Conversation
…tion - Full editor for tonies.custom.json (add, edit, delete entries) - Image management via reusable file browser (upload, select, custom_img) - Form validation, defaults, and localization
- Remove custom_editor_preview setting (editor always active) - Ignore contrib/data/www/ (compiled web assets) - Update teddycloud_web submodule (v0.7.0, PR feedback)
…n and grey out buttons
- aligned Custom-Model-Editor with tonies view - Implemented custom image management in the library - Introduced selection options for custom and original images in TeddyStudio and Custom-Model-Editor - Added audio setting option in tonie edit modal for differing audio sources - Updated translations for better clarity and consistency across languages
- Updated translations and removed defaultValue - Refactored and organized custom model utilities and types for better maintainability
- Add useUploadTimeoutMs hook - Use setting in UploadFilesModal and SelectImageModal - Localize upload timeout error message
- Updated Vite configuration to support dynamic proxy URLs for API requests ued for dev sandbox. - Added new translations for improved user experience across multiple languages. - Introduced new modals for selecting audio and images with enhanced functionality. - Implemented a Custom Model Card component for better display and interaction with custom models. - Refactored the Custom Model Editor to streamline the editing process and improve usability.
- Added new components for selecting and managing custom and original images, including ThumbnailCell, CustomImagesPanel, and OriginalImagesPanel. - Introduced hooks for managing original image data and search functionality. - Updated SelectImageModal to support multiple image selection and improved UI interactions. - Enhanced translations for better user experience across multiple languages. - Refactored file browser components to integrate new image selection features.
- removed outdated Vite configuration for proxy URL. - Enhanced ThumbnailCell to utilize Ant Design's theme for consistent styling. - Refactored SelectImageModal to optimize state management and UI interactions without hardcoded pixels. - Improved responsiveness and layout of file browser components.
Updated Packages to fix vulnerabilities, removed legacy ESP32 flasher, added bottem/left margin option to TeddyStudio
feat: Custom models editor with image picker and file browser integration
Adds six SIL Open Font License v1.1 typefaces (latin + latin-ext woff2, weight 400) under src/components/tonies/teddystudio/styles/fonts/ so TeddyStudio can render labels with kid-friendly / accessible typography without fetching from fonts.googleapis.com at runtime — printing offline must still work. Bundled families: - Atkinson Hyperlegible (accessibility-focused) - Fredoka (rounded sans) - Bubblegum Sans (display) - Patrick Hand (handwritten) - Indie Flower (handwritten) - Schoolbell (chalkboard) A companion fonts.css declares matching @font-face rules with unicode-range so each subset only loads when needed. The web-safe families (sans-serif, serif, Comic Sans MS, Courier New) are not bundled — those resolve via the OS.
- useSettings: add fontFamily to SettingsState (default 'sans-serif', preserving existing renders for users who never open the picker), the reducer's persisted-fields list, and a setFontFamily action. - useAutoFitFontSize: take an optional fontFamily so the binary-search fit re-runs when the typeface changes (font swap doesn't fire ResizeObserver on its own). - CircleText: accept a fontFamily prop and apply it to the SVG <text> element (so getComputedTextLength measures the right glyphs) and add it to the fit-effect deps. - SquareTextLabel: accept fontFamily, forward to the auto-fit hook, and apply to the rendered div's inline style. - LabelGrid: import fonts.css, destructure fontFamily from effectiveSettings, set fontFamily on the .traveltonieCouple wrapper so it cascades to all label text, and pass the value explicitly to CircleText.
Adds a font picker as a Select dropdown next to textFontSize. Each option's label is rendered in its own font so users see a live preview in the dropdown. The catalog (fontCatalog.ts) is split between system web-safe families (sans-serif, serif, Comic Sans MS, Courier New) which fall back to the OS, and six SIL OFL Google Fonts (Atkinson Hyperlegible, Fredoka, Bubblegum Sans, Patrick Hand, Indie Flower, Schoolbell) that ship locally as woff2 — see styles/fonts.css and styles/fonts/LICENSES.md. One global font for the whole sheet; per-label override is intentionally out of scope for v1.
Adds three keys per supported language under tonies.teddystudio: - fontFamily — the picker label - fontFamilyPlaceholder — Select placeholder text - fontFamilyHelp — tooltip explaining web-safe vs bundled options
Adds four widely-used clean fonts to balance the existing kid-friendly set: - Inter (modern UI humanist sans) - Roboto (Google/Android default) - Open Sans (humanist sans, wide language coverage) - Merriweather (clean readable serif) All SIL OFL licensed, bundled as woff2 (latin + latin-ext subsets at weight 400) so offline printing works. Grouped in the catalog under 'Clean / professional' alongside the system-safe fallbacks; the kid-friendly set keeps its own section.
- move bundled fonts from styles/fonts/ to src/assets/fonts/teddystudio/ - de.json: use "Schriftart" for fontFamily label (matches sibling strings) - CHANGELOG: add gui entry under new 0.7.1 block
updated packages, fixed some deprecations and errors caused by update…
… block until release cut)
…iner feedback)
feat(teddystudio): font selection for label text
Replaces the checkbox-in-dropdown approach (which fought antd's Select primitive and produced scroll-reset + search-instability bugs) with a dedicated modal using antd's <Transfer> component. The existing single-add search interface is untouched. - New <BulkAddToniesModal> with two-pane Transfer (catalog <-> queued) - Toolbar button in TeddyStudio opens the modal - On confirm, queued items batch-added via useCustomItems.addResults() - Single-add primitives (ToniesJsonSearch, SearchDropdown, ToniesJsonSearchWrapper) reverted to upstream develop
The full catalog is large enough that mounting every row in the Transfer left pane on modal open is unusably slow. Gate the dataSource behind a modal-level search input — empty until the user types >=2 characters, then Transfer only ever sees filtered results. - New search input above the Transfer (Input.Search with debounce ~300ms) - dataSource = empty array when search input is short; filtered catalog when search is >=2 chars (matches title/series/episodes substring) - Transfer's own showSearch disabled — outer search is canonical - Queued items (right pane) preserved across search changes - New en/de translations for search prompt + hint
- de.json/en.json: replace "Katalog"/"Catalog" with "tonies.json" (existing convention) - add fr.json + es.json translations for bulk-add modal (per repo README) - CHANGELOG: add gui entry under next version block
… block until release cut)
PR #297 fixed the doubled-label-text bug (gh-296) by changing the ToniesJsonEntry shape to use a separate `series` field, and the LabelGrid renderer to drop the `dataset.series` line (now rendering just `dataset.text` bold + `dataset.episodes`). Bulk-add was building the old buggy shape (text = "series - episodes" concatenated, no series field), so when #297 lands and the renderer changes, our modal still produced doubled text on the label. Switch the bulk-add dataset shape to match post-#297: - raw.text = series (rendered bold by LabelGrid post-#297) - new series field on BulkAddDataset (data-only, mirrors single-add) Per henryk86's inline review on BulkAddToniesModal.tsx.
feat(teddystudio): bulk-add tonies via Transfer modal (search-gated)
* chore: update dependencies and add prettier configuration - Updated @ant-design/icons from ^6.1.1 to ^6.2.2 - Updated @types/node from ^25.6.0 to ^25.6.2 - Updated antd from ^6.3.6 to ^6.3.7 - Updated i18next from ^26.0.8 to ^26.1.0 - Updated i18next-http-backend from ^3.0.6 to ^4.0.0 - Updated react from ^19.2.5 to ^19.2.6 - Updated react-dom from ^19.2.5 to ^19.2.6 - Updated react-i18next from ^17.0.4 to ^17.0.7 - Updated react-router-dom from ^7.14.2 to ^7.15.0 - Updated vite from ^8.0.10 to ^8.0.12 - Added prettier as a dependency with version ^3.8.3 - Added format and format:check scripts for prettier - Changed prettier printWidth from 120 to 100 * executed npm run format * chore: add .gitattributes file for repository configuration * feat: enhance LabelGrid component with improved text display and layout adjustments * fix: update changelog formatting and improve layout in TeddyStudio component * chore: add names to CI jobs for better clarity * docs: update README to clarify CI workflow for formatting checks and production builds
… bump electron-to-chromium and node-releases versions
…able, improved images
- Added support for ESP32-C3 as a hardware tool option in the CC3200 flashing guide. - Updated UI to allow users to switch between UART and ESP32-C3 configurations. - Modified steps for preparations, bootloader installation, and certificate handling to accommodate ESP32-C3. - Improved translations in the French language files for better clarity and additional instructions. - Introduced new tables and instructions specific to ESP32-C3 setup and configuration.
Links opened with target="_blank" but no rel give the opened page window.opener access (reverse-tabnabbing) and leak a referrer. Add rel="noopener noreferrer" to every external target="_blank" link that lacked a rel (mechanical, no behavioral change). Notably covers the TonieboxCard link built from server-provided box IP. Fixes #308
…ank" links" This reverts commit 0557740.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.