Merged
Conversation
Replace legacy :value/@input and custom 'input' events with Vue 3 v-model style bindings across multiple UI components. Changes include :value -> :model-value, @input -> @update:model-value (or @update:modelValue for emitted events), and prop renames value -> modelValue where applicable (e.g. Input, Select, Range, Editor, Monaco, Preview, Toggle*, Control*). This standardizes two-way binding and prepares the components for Vue 3 v-model usage.
Replace the legacy <Select> implementation with a new set of reka-ui based select components. Removed components/Select.vue and added components/ui/select/* (Select, SelectContent, SelectGroup, SelectItem, SelectItemText, SelectLabel, SelectScrollUpButton, SelectScrollDownButton, SelectSeparator, SelectTrigger, SelectValue, index.js). Updated Editor.vue, ModalPreferences.vue, TabPreview.vue and ToggleSocialBadge.vue to use the slot-based Select API (SelectTrigger, SelectValue, SelectContent, SelectItem) and adjust v-model/emit handling (stringifying numeric options where needed and casting back on update). This unifies select UI behavior and styling across the app.
Introduce a new reusable Slider component (components/ui/slider/Slider.vue + index.js) built on reka-ui primitives and remove the old Range.vue. Update all consumers (Preview.vue, TabPreview.vue, ToggleBackgroundBlur.vue, ToggleShine.vue, ToggleSocialBadge.vue) to use <Slider> instead of <Range> and adapt bindings: model-value is passed as an array, update:model-value handlers now extract the first value (e.g. $event[0]) and convert to Number where appropriate. The change centralizes slider UI/behavior, enables multi-thumb support and consistent styling/prop forwarding.
Migrate custom dropdowns, popovers, dialogs, and label components to reka-ui primitives. Add a new components/ui library (dialog, popover, dropdown-menu, label, switch wrappers) and replace usages in Dropdown, FileDropdown, Modal, Toggle, Editor, ControlFitToWindow and PopoverSettings to use the new primitives (including a new PopoverPanel). Remove legacy Label.vue and Popover.vue and eliminate local click-outside/transition boilerplate and local toggle state where appropriate. Also update composables/useApplicationStore.js to align with these changes. This standardizes UI primitives and reduces custom positioning/state code.
Introduce a new UI tabs wrapper (components/ui/tabs/*.vue) that adapt reka-ui Tabs primitives with consistent styling and prop forwarding (Tabs, TabsList, TabsTrigger, TabsContent) and an index export. Update Tab.vue to a redesigned tab appearance: editable project name (inline input with dblclick to edit), revised layout/classes, replaced legacy Dropdown with DropdownMenu, simplified icon imports, and removed unused state. Change FileDropdown.vue to use Button (ghost) and expose text/options props with defaults. Update pages/index.vue to match the new tab/file styles and layout (adjust classes on container, draggable list and add-button). Overall refactor aligns tab components with reka-ui primitives and updates UI/CSS classes for the tab bar.
Replace idb-keyval/useIndexedDb persistence with pinia-plugin-persistedstate (localStorage). Add a one-time migrate-storage plugin that copies existing IndexedDB entries to localStorage and deletes the originals. Remove the useIndexedDb composable and related manual sync/load/clear logic; update project, settings and template stores to use pinia persistence (adjusted state shapes, e.g. templates -> { items: [] }, settings defaults). Wire the persistedstate plugin into nuxt.config and add the dependency to package.json. Also include minor fixes: refine ControlAspectRatios button styles and simplify PHP tag/lineOffset handling in useEditorUtils.
Replace raw-markdown rendering in Help and Changelog modals with structured templates and data: - ModalChangelog: add parseChangelog to parse changelog.md (raw) into dated entries, sections and items; convert markdown links and inline code to safe HTML; add badgeClass mapping and a styled list layout. - ModalHelp: replace runtime-markdown with a static structured sections array (text, images, tables) for richer, consistent rendering. - CodeLine: fix empty-line rendering by using v-text '\n' for proper newline display. - Page: remove an extra gap class from the editor container to adjust layout spacing. These changes remove dependency on runtime-marked rendering and provide more robust, styled UI for help and changelog content.
Add handlers to prevent unwanted popover closing and delay tooltip activation. Register @pointer-down-outside and @focus-outside to call onDismissOutside, which prevents the popover from closing when interacting with nested floating-vue poppers (checks .v-popper__popper and calls event.preventDefault()). Introduce tooltipsReady reactive state and a watch on open to enable tooltips 400ms after opening; update v-tooltip bindings to use tooltipsReady. Also import watch from Vue.
Update CI to use actions v4 and Node 20, install with npm ci, and run unit tests with Vitest (npx vitest run) instead of the previous browser/Dusk pipeline. Add .nuxtrc, vitest.config.js, and new composable/unit test files to enable Vitest-based testing. Fix Tab.vue animation by removing the always-on animate class and adding an animatingIn flag (cleared on mount) to avoid unwanted enter animations. Defer project store cleanup in useProjectStores to the nextTick to prevent disposing stores/localStorage removal during the render cycle.
✅ Deploy Preview for festive-hermann-8f687a ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.