Repository navigation
v0.0.1-beta.18
Pre-release
Pre-release
·
6 commits
to main
since this release
Note: v0.0.1-beta.18 was a partial publish: only
@destyler-ui/reactreached npm;@destyler-ui/vue,@destyler-ui/svelteand@destyler-ui/solidwere not published. It is superseded by v0.0.1-beta.19.
Highlights
Destyler core 0.3.1 adoption
- All
@destyler-ui/*packages now depend on@destyler/*^0.3.1and require Node.js >=22.22.3 (#163). - The local core type patches have been removed; the release is gated on packed exact-core consumers for Dialog, Popover, Menu and Tabs across React, Vue, Solid and Svelte (#157, #163).
Tabs: nullable value (#151)
- Tabs
value/onValueChangedetails are now typed as nullable, matching core'sValueChangeDetailsin all four frameworks (#84, #163).
Controllable API migration (core 0.2.7)
- Components follow the core controllable API: pass
default*props (for exampledefaultOpen,defaultValue) for uncontrolled state, or the plain prop (open,value, ...) for controlled state (#49). *.controlledprops are removed. Replace them with the controlled prop plus its change callback, or with the matchingdefault*prop.
Menu fix
- Controlled Menu no longer reopens or desyncs on external toggles; behavior is coordinated across frameworks (#63, #158).
Breaking: Svelte Tree branch triggers (#154, #60)
- Svelte
Tree.BranchTriggernow renders a non-tabbabledivwithrole="button"instead of a nativebutton. InsideTree.BranchControl, the trigger handles pointer expansion; the branch control owns keyboard navigation and the tree's roving tab stop. - Props and event
currentTargettypes now describeHTMLDivElementrather thanHTMLButtonElement. Consumers relying on button-only attributes or native button defaults must use explicitasChildcomposition. - Migration guide: https://github.com/destyler/ui/blob/main/packages/svelte/README.md#tree-branch-triggers
Full Changelog: v0.0.1-beta.17...v0.0.1-beta.18
🚨 Breaking Changes
🐞 Bug Fixes
- Adopt core 0.2.10 and guard UI input / Tour regressions - by @elonehoo in #61 (e59e6)
- Adopt core 0.2.11 and cover Tree keyboard regressions - by @elonehoo in #64 (a87ed)
- Guard UI publication scope and private workspaces - by @elonehoo in #147 (c663e)
- Use official UI documentation domain - by @elonehoo and Codex in #150 (97945)
- carousel:
- combobox:
- docs:
- lint:
- menu:
- react:
- Restore packed React 18 consumer compatibility - by @elonehoo in #51 (48a66)
- Preserve composed callback ref cleanup - by @elonehoo in #65 (7455d)
- Pair Frame content lifecycle callbacks in StrictMode - by @elonehoo in #67 (bc75d)
- Rebind Frame resize observer when srcDoc replaces its root - by @elonehoo in #68 (0f82d)
- Accumulate batched uncontrolled checkbox group operations - by @elonehoo in #69 (ffcd9)
- Preserve Field and Fieldset hook order when ids change - by @elonehoo in #76 (8ca32)
- Refresh Field descriptions when text presence changes - by @elonehoo in #79 (4f62a)
- Honor Field root and control ID overrides - by @elonehoo in #80 (27ced)
- Forward Combobox Trigger focusable - by @elonehoo in #91 (fe5fb)
- Preserve numeric zero Progress value text - by @elonehoo in #89 (93e9f)
- Compose ColorPicker area thumb props - by @elonehoo in #106 (abfdd)
- Keep label IDs in machine props - by @elonehoo in #101 (3f8e7)
- Keep FloatingPanel controls linked to mounted content - by @elonehoo in #109 (181b5)
- Await rendering in generated component tests - by @elonehoo in #132 (596d2)
- scripts:
- solid:
- svelte:
- Isolate Frame lifecycle callbacks from reactive dependencies - by @elonehoo in #75 (685cc)
- Preserve Calendar content ref ownership - by @elonehoo in #87 (3e85b)
- Clear combobox content refs on removal - by @elonehoo in #92 (bd422)
- Clear Presence refs on owner teardown - by @elonehoo in #96 (f624f)
- Preserve inherited Checkbox field defaults - by @elonehoo in #105 (3e718)
- Preserve live slider thumb index and name - by @elonehoo in #98 (2a7a4)
- Avoid duplicate FloatingPanel open callbacks - by @elonehoo in #108 (65d30)
- tabs:
- tree:
- vue:
- Prevent controlled Menu external toggle from reopening - by @elonehoo in #63 (8aacb)
- Make packed declarations support Vue 3.5.0 - by @elonehoo in #53 (59fc4)
- Preserve consecutive passive model parent writes - by @elonehoo in #66 (15e04)
- Remember initially mounted Presence state - by @elonehoo in #71 (c8189)
- Evaluate asChild mode reactively during rendering - by @elonehoo in #73 (ffb6d)
- Preserve native handler arrays during asChild composition - by @elonehoo in #74 (a7a3c)
- Keep field descriptions reactive across root and ID changes - by @elonehoo in #82 (78ab8)
- Honor Field root and control ID overrides - by @elonehoo in #83 (7eed2)
- Preserve absent Field control slots during hydration - by @elonehoo in #85 (8a533)
- Refresh ToggleGroup values after in-place parent writes - by @elonehoo in #90 (1b9ef)
- Preserve Checkbox item notifications in groups - by @elonehoo in #103 (6c1e4)
- Omit absent slots on choice hidden inputs - by @elonehoo in #104 (c8f1c)
- Forward Progress root value events - by @elonehoo in #88 (12440)
- Forward QR code value and model events - by @elonehoo in #110 (fe6a5)
- Forward Highlight mark attributes - by @elonehoo in #111 (d5aff)
- Forward FloatingPanel geometry callbacks - by @elonehoo in #107 (b1ca5)