From 23c5ea1061ac7d7b1ffdc8164a310908e8d34ad1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2026 23:20:18 +0000 Subject: [PATCH] chore: version packages --- .changeset/compact-display.md | 19 ------ .changeset/context-menu-keyboard.md | 10 --- .changeset/dialog-focus.md | 15 ----- .changeset/non-empty-values.md | 13 ---- .changeset/number-input-empty-fallback.md | 11 ---- .changeset/positioner-z-index.md | 9 --- .changeset/resolve-tokens.md | 10 --- .changeset/select-empty-value.md | 8 --- .changeset/tabs-panels-elsewhere.md | 10 --- .changeset/vite-plugin-dev-imports.md | 8 --- .changeset/wizard-texts.md | 8 --- packages/blocks-react/CHANGELOG.md | 18 ++++++ packages/blocks-react/package.json | 2 +- packages/blocks-vue/CHANGELOG.md | 18 ++++++ packages/blocks-vue/package.json | 2 +- packages/css/CHANGELOG.md | 16 +++++ packages/css/package.json | 2 +- packages/native/CHANGELOG.md | 35 +++++++++++ packages/native/package.json | 2 +- packages/react/CHANGELOG.md | 76 +++++++++++++++++++++++ packages/react/package.json | 2 +- packages/recipes/CHANGELOG.md | 37 +++++++++++ packages/recipes/package.json | 2 +- packages/tokens/CHANGELOG.md | 15 +++++ packages/tokens/package.json | 2 +- packages/vue/CHANGELOG.md | 76 +++++++++++++++++++++++ packages/vue/package.json | 2 +- 27 files changed, 299 insertions(+), 129 deletions(-) delete mode 100644 .changeset/compact-display.md delete mode 100644 .changeset/context-menu-keyboard.md delete mode 100644 .changeset/dialog-focus.md delete mode 100644 .changeset/non-empty-values.md delete mode 100644 .changeset/number-input-empty-fallback.md delete mode 100644 .changeset/positioner-z-index.md delete mode 100644 .changeset/resolve-tokens.md delete mode 100644 .changeset/select-empty-value.md delete mode 100644 .changeset/tabs-panels-elsewhere.md delete mode 100644 .changeset/vite-plugin-dev-imports.md delete mode 100644 .changeset/wizard-texts.md diff --git a/.changeset/compact-display.md b/.changeset/compact-display.md deleted file mode 100644 index ded9e8c..0000000 --- a/.changeset/compact-display.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@wirecore/wirelayer-recipes': minor -'@wirecore/wirelayer-css': minor -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor -'@wirecore/wirelayer-native': minor ---- - -Display parts for dense desktop UIs, all opt-in: - -- `Progress status="neutral"`: a grey fill, e.g. for a cancelled transfer (also React Native) -- `Avatar initials`: own initials instead of the ones from `name` ("MS" for "my-server"; also React Native) -- `Card size="sm"`: smaller radius, padding and title, for lists of cards inside a dialog (`wc-card-sm` in HTML); - `ConfigProvider size` leaves cards alone -- `Code` in the main package: code in a sentence with the look of `InlineCode`, without syntax colours and without the - optional `shiki` - -`rounded-card` and `rounded-panel` now count as radii for tailwind-merge (like `rounded-popup`): another radius in -`class`/`classes` replaces them instead of both classes ending up on the element. diff --git a/.changeset/context-menu-keyboard.md b/.changeset/context-menu-keyboard.md deleted file mode 100644 index 89336ea..0000000 --- a/.changeset/context-menu-keyboard.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@wirecore/wirelayer-recipes': minor -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor ---- - -`ContextMenu`'s `before-open` / `onBeforeOpen` gets a second argument `{ source: 'pointer' | 'keyboard', focused }`: -opened with Shift+F10 or the menu key, `focused` is the element with the focus – a list can tell a row from its empty -space even when the browser fires the event on the whole area. The first argument stays as it was. -`createContextMenuSource()` in the recipes tells the two apart. diff --git a/.changeset/dialog-focus.md b/.changeset/dialog-focus.md deleted file mode 100644 index 1c8e07c..0000000 --- a/.changeset/dialog-focus.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@wirecore/wirelayer-recipes': minor -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor ---- - -Focus for dialogs and wizards whose content changes: - -- `data-autoselect` on a field in a `Dialog`: it gets the focus when the dialog opens, with its text selected (e.g. a - prefilled name). Without it Ark's choice stays (an alertdialog's close button, `data-autofocus`, the first element) -- `focusFirst(container)` (also from the component packages) focuses like opening does – `data-autoselect`, - `data-autofocus`/`autofocus`, otherwise the first field; Vue's `DialogContent` exposes it as `focusFirst()` -- `Wizard focusOnStepChange` moves the focus into each new step the same way (not after a failed check: the invalid - field keeps it) -- `autoselectElement(content)` in the recipes for a dialog's own initial focus diff --git a/.changeset/non-empty-values.md b/.changeset/non-empty-values.md deleted file mode 100644 index 0894963..0000000 --- a/.changeset/non-empty-values.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor -'@wirecore/wirelayer-native': minor ---- - -Choices that cannot be empty give their value type without the empty value – no `$event && …` guard for a model that -is never empty. Only the types change, unless noted: - -- `RadioGroup` and `SegmentedControl` with `required`: v-model / `onValueChange` get `V`, not `V | null`. A form reset - back to an empty start (the only way Ark empties the group) is no longer passed on for a required group. - `SegmentedControl` takes `required` now (`aria-required` on the group); React Native's `RadioGroup` is typed the same -- `NativeSelect` without `placeholder`: `V`, not `V | ''` (only the placeholder option gives `''`) diff --git a/.changeset/number-input-empty-fallback.md b/.changeset/number-input-empty-fallback.md deleted file mode 100644 index b898776..0000000 --- a/.changeset/number-input-empty-fallback.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor ---- - -`NumberInput` with `emptyFallback`, for fields that always need a number (e.g. a port): an emptied field keeps its value -while it is empty and falls back to `min` (or 0) or to the last valid number (`previous`) when it is left or Enter is -pressed. v-model / `onValueChange` is then typed `number`. Without it an emptied field still reports null. - -Note for type code around the components: `NumberInput` (Vue) is generic now, so `InstanceType` and -Storybook's `Meta` need a cast (as for Select). diff --git a/.changeset/positioner-z-index.md b/.changeset/positioner-z-index.md deleted file mode 100644 index 9851f4c..0000000 --- a/.changeset/positioner-z-index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@wirecore/wirelayer-tokens': patch -'@wirecore/wirelayer-vue': patch -'@wirecore/wirelayer-react': patch ---- - -Popups with a positioner (Select, Combobox, Menu, Popover …) stay above a dialog: the theme gives Ark's positioners -`z-index: var(--z-index)` (in the base layer). Ark sets the z-index inline, but Vue removed it again whenever the popup -rendered anew – the list then lay behind the dialog, looked closed and the pointer hit the dialog. diff --git a/.changeset/resolve-tokens.md b/.changeset/resolve-tokens.md deleted file mode 100644 index e505032..0000000 --- a/.changeset/resolve-tokens.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@wirecore/wirelayer-tokens': minor -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor ---- - -Token colours as fixed values for canvas libraries (xterm.js, charts) that cannot read CSS variables: -`resolveTokens(element?)` gives the colours that apply right now (mode, theme and own overrides) as hex – `#rrggbbaa` for -the translucent ones – and `watchTokens(onChange)` reports a change of mode, theme or system colour scheme. The -composable/hook `useResolvedTokens()` keeps them up to date. diff --git a/.changeset/select-empty-value.md b/.changeset/select-empty-value.md deleted file mode 100644 index a3a70fa..0000000 --- a/.changeset/select-empty-value.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor ---- - -`Select` with `emptyValue`, e.g. `""` for a model that uses an empty string for "nothing chosen": the value counts as -null – the placeholder shows, no development warning about an unknown value – and clearing gives it back instead of null -(typed `V | E`). Without it `""` is still an unknown value shown as text. diff --git a/.changeset/tabs-panels-elsewhere.md b/.changeset/tabs-panels-elsewhere.md deleted file mode 100644 index a38c9b7..0000000 --- a/.changeset/tabs-panels-elsewhere.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor ---- - -`Tabs` for panels that live elsewhere (editor or terminal tabs, panes shown with `v-show`): - -- `TabsTrigger controls="pane-id"` points `aria-controls` at that element; `null` removes it (tabs without panels) -- `Tabs` takes `null` as its value: no tab selected. The first enabled tab then stays reachable with Tab (Ark takes - every tab out of the Tab order without a selection); Tabs without a value stay as they were diff --git a/.changeset/vite-plugin-dev-imports.md b/.changeset/vite-plugin-dev-imports.md deleted file mode 100644 index 145fbed..0000000 --- a/.changeset/vite-plugin-dev-imports.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@wirecore/wirelayer-recipes': patch ---- - -Vite plugin: a component imported for the first time while `vite dev` runs gets its classes right away. The plugin added -its sources file to the CSS, but Tailwind's Vite plugin only builds a CSS file again when a file it imports changes on -disk – the classes were missing until a restart (cards without padding, tiny avatars). In the dev server the imports now -live in a file in Vite's cache folder; the build is unchanged. diff --git a/.changeset/wizard-texts.md b/.changeset/wizard-texts.md deleted file mode 100644 index 81ebf1b..0000000 --- a/.changeset/wizard-texts.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@wirecore/wirelayer-vue': minor -'@wirecore/wirelayer-react': minor ---- - -Own texts in `Wizard` (and `Stepper`): `finishLabel` names the last button (default "Finish"), and a step's `validate` -may return a text (also async) – it keeps the step open and is shown as its error instead of "Please check the entries -in this step". diff --git a/packages/blocks-react/CHANGELOG.md b/packages/blocks-react/CHANGELOG.md index 03f5882..6d4358c 100644 --- a/packages/blocks-react/CHANGELOG.md +++ b/packages/blocks-react/CHANGELOG.md @@ -1,5 +1,23 @@ # @wirecore/wirelayer-blocks-react +## 0.2.7 + +### Patch Changes + +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] + - @wirecore/wirelayer-recipes@0.8.0 + - @wirecore/wirelayer-react@0.9.0 + ## 0.2.6 ### Patch Changes diff --git a/packages/blocks-react/package.json b/packages/blocks-react/package.json index 5ab8278..c08eb39 100644 --- a/packages/blocks-react/package.json +++ b/packages/blocks-react/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-blocks-react", - "version": "0.2.6", + "version": "0.2.7", "description": "Page blocks for React (site header, CTA section, mode toggle, sign-in form and layout) and the condition builder, built on @wirecore/wirelayer-react", "license": "MIT", "repository": { diff --git a/packages/blocks-vue/CHANGELOG.md b/packages/blocks-vue/CHANGELOG.md index 9eaf925..58e32f0 100644 --- a/packages/blocks-vue/CHANGELOG.md +++ b/packages/blocks-vue/CHANGELOG.md @@ -1,5 +1,23 @@ # @wirecore/wirelayer-blocks-vue +## 0.2.7 + +### Patch Changes + +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] + - @wirecore/wirelayer-recipes@0.8.0 + - @wirecore/wirelayer-vue@0.9.0 + ## 0.2.6 ### Patch Changes diff --git a/packages/blocks-vue/package.json b/packages/blocks-vue/package.json index c0e7c36..37151d5 100644 --- a/packages/blocks-vue/package.json +++ b/packages/blocks-vue/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-blocks-vue", - "version": "0.2.6", + "version": "0.2.7", "description": "Page blocks for Vue (site header, CTA section, mode toggle, sign-in form and layout) and the condition builder, built on @wirecore/wirelayer-vue", "license": "MIT", "repository": { diff --git a/packages/css/CHANGELOG.md b/packages/css/CHANGELOG.md index 037b238..70cee09 100644 --- a/packages/css/CHANGELOG.md +++ b/packages/css/CHANGELOG.md @@ -1,5 +1,21 @@ # @wirecore/wirelayer-css +## 0.9.0 + +### Minor Changes + +- 849eac6: Display parts for dense desktop UIs, all opt-in: + + - `Progress status="neutral"`: a grey fill, e.g. for a cancelled transfer (also React Native) + - `Avatar initials`: own initials instead of the ones from `name` ("MS" for "my-server"; also React Native) + - `Card size="sm"`: smaller radius, padding and title, for lists of cards inside a dialog (`wc-card-sm` in HTML); + `ConfigProvider size` leaves cards alone + - `Code` in the main package: code in a sentence with the look of `InlineCode`, without syntax colours and without the + optional `shiki` + + `rounded-card` and `rounded-panel` now count as radii for tailwind-merge (like `rounded-popup`): another radius in + `class`/`classes` replaces them instead of both classes ending up on the element. + ## 0.8.0 ### Minor Changes diff --git a/packages/css/package.json b/packages/css/package.json index d308765..949568b 100644 --- a/packages/css/package.json +++ b/packages/css/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-css", - "version": "0.8.0", + "version": "0.9.0", "description": "WireLayer components as plain CSS classes (.wc-*) for HTML and server templates", "license": "MIT", "repository": { diff --git a/packages/native/CHANGELOG.md b/packages/native/CHANGELOG.md index e9f2357..1576812 100644 --- a/packages/native/CHANGELOG.md +++ b/packages/native/CHANGELOG.md @@ -1,5 +1,40 @@ # @wirecore/wirelayer-native +## 0.6.0 + +### Minor Changes + +- 849eac6: Display parts for dense desktop UIs, all opt-in: + + - `Progress status="neutral"`: a grey fill, e.g. for a cancelled transfer (also React Native) + - `Avatar initials`: own initials instead of the ones from `name` ("MS" for "my-server"; also React Native) + - `Card size="sm"`: smaller radius, padding and title, for lists of cards inside a dialog (`wc-card-sm` in HTML); + `ConfigProvider size` leaves cards alone + - `Code` in the main package: code in a sentence with the look of `InlineCode`, without syntax colours and without the + optional `shiki` + + `rounded-card` and `rounded-panel` now count as radii for tailwind-merge (like `rounded-popup`): another radius in + `class`/`classes` replaces them instead of both classes ending up on the element. + +- 849eac6: Choices that cannot be empty give their value type without the empty value – no `$event && …` guard for a model that + is never empty. Only the types change, unless noted: + + - `RadioGroup` and `SegmentedControl` with `required`: v-model / `onValueChange` get `V`, not `V | null`. A form reset + back to an empty start (the only way Ark empties the group) is no longer passed on for a required group. + `SegmentedControl` takes `required` now (`aria-required` on the group); React Native's `RadioGroup` is typed the same + - `NativeSelect` without `placeholder`: `V`, not `V | ''` (only the placeholder option gives `''`) + +### Patch Changes + +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] + - @wirecore/wirelayer-recipes@0.8.0 + - @wirecore/wirelayer-tokens@0.5.0 + ## 0.5.0 ### Minor Changes diff --git a/packages/native/package.json b/packages/native/package.json index a0aeaf0..05b4392 100644 --- a/packages/native/package.json +++ b/packages/native/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-native", - "version": "0.5.0", + "version": "0.6.0", "description": "WireLayer components for React Native (Expo) with Uniwind", "license": "MIT", "repository": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 4b6b0c4..707b2c8 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,81 @@ # @wirecore/wirelayer-react +## 0.9.0 + +### Minor Changes + +- 849eac6: Display parts for dense desktop UIs, all opt-in: + + - `Progress status="neutral"`: a grey fill, e.g. for a cancelled transfer (also React Native) + - `Avatar initials`: own initials instead of the ones from `name` ("MS" for "my-server"; also React Native) + - `Card size="sm"`: smaller radius, padding and title, for lists of cards inside a dialog (`wc-card-sm` in HTML); + `ConfigProvider size` leaves cards alone + - `Code` in the main package: code in a sentence with the look of `InlineCode`, without syntax colours and without the + optional `shiki` + + `rounded-card` and `rounded-panel` now count as radii for tailwind-merge (like `rounded-popup`): another radius in + `class`/`classes` replaces them instead of both classes ending up on the element. + +- 849eac6: `ContextMenu`'s `before-open` / `onBeforeOpen` gets a second argument `{ source: 'pointer' | 'keyboard', focused }`: + opened with Shift+F10 or the menu key, `focused` is the element with the focus – a list can tell a row from its empty + space even when the browser fires the event on the whole area. The first argument stays as it was. + `createContextMenuSource()` in the recipes tells the two apart. +- 849eac6: Focus for dialogs and wizards whose content changes: + + - `data-autoselect` on a field in a `Dialog`: it gets the focus when the dialog opens, with its text selected (e.g. a + prefilled name). Without it Ark's choice stays (an alertdialog's close button, `data-autofocus`, the first element) + - `focusFirst(container)` (also from the component packages) focuses like opening does – `data-autoselect`, + `data-autofocus`/`autofocus`, otherwise the first field; Vue's `DialogContent` exposes it as `focusFirst()` + - `Wizard focusOnStepChange` moves the focus into each new step the same way (not after a failed check: the invalid + field keeps it) + - `autoselectElement(content)` in the recipes for a dialog's own initial focus + +- 849eac6: Choices that cannot be empty give their value type without the empty value – no `$event && …` guard for a model that + is never empty. Only the types change, unless noted: + + - `RadioGroup` and `SegmentedControl` with `required`: v-model / `onValueChange` get `V`, not `V | null`. A form reset + back to an empty start (the only way Ark empties the group) is no longer passed on for a required group. + `SegmentedControl` takes `required` now (`aria-required` on the group); React Native's `RadioGroup` is typed the same + - `NativeSelect` without `placeholder`: `V`, not `V | ''` (only the placeholder option gives `''`) + +- 849eac6: `NumberInput` with `emptyFallback`, for fields that always need a number (e.g. a port): an emptied field keeps its value + while it is empty and falls back to `min` (or 0) or to the last valid number (`previous`) when it is left or Enter is + pressed. v-model / `onValueChange` is then typed `number`. Without it an emptied field still reports null. + + Note for type code around the components: `NumberInput` (Vue) is generic now, so `InstanceType` and + Storybook's `Meta` need a cast (as for Select). + +- 849eac6: Token colours as fixed values for canvas libraries (xterm.js, charts) that cannot read CSS variables: + `resolveTokens(element?)` gives the colours that apply right now (mode, theme and own overrides) as hex – `#rrggbbaa` for + the translucent ones – and `watchTokens(onChange)` reports a change of mode, theme or system colour scheme. The + composable/hook `useResolvedTokens()` keeps them up to date. +- 849eac6: `Select` with `emptyValue`, e.g. `""` for a model that uses an empty string for "nothing chosen": the value counts as + null – the placeholder shows, no development warning about an unknown value – and clearing gives it back instead of null + (typed `V | E`). Without it `""` is still an unknown value shown as text. +- 849eac6: `Tabs` for panels that live elsewhere (editor or terminal tabs, panes shown with `v-show`): + + - `TabsTrigger controls="pane-id"` points `aria-controls` at that element; `null` removes it (tabs without panels) + - `Tabs` takes `null` as its value: no tab selected. The first enabled tab then stays reachable with Tab (Ark takes + every tab out of the Tab order without a selection); Tabs without a value stay as they were + +- 849eac6: Own texts in `Wizard` (and `Stepper`): `finishLabel` names the last button (default "Finish"), and a step's `validate` + may return a text (also async) – it keeps the step open and is shown as its error instead of "Please check the entries + in this step". + +### Patch Changes + +- 849eac6: Popups with a positioner (Select, Combobox, Menu, Popover …) stay above a dialog: the theme gives Ark's positioners + `z-index: var(--z-index)` (in the base layer). Ark sets the z-index inline, but Vue removed it again whenever the popup + rendered anew – the list then lay behind the dialog, looked closed and the pointer hit the dialog. +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] + - @wirecore/wirelayer-recipes@0.8.0 + - @wirecore/wirelayer-tokens@0.5.0 + ## 0.8.0 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index c7996b3..80cdbde 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-react", - "version": "0.8.0", + "version": "0.9.0", "description": "WireLayer components for React", "license": "MIT", "repository": { diff --git a/packages/recipes/CHANGELOG.md b/packages/recipes/CHANGELOG.md index 58e11ae..bc7ac0e 100644 --- a/packages/recipes/CHANGELOG.md +++ b/packages/recipes/CHANGELOG.md @@ -1,5 +1,42 @@ # @wirecore/wirelayer-recipes +## 0.8.0 + +### Minor Changes + +- 849eac6: Display parts for dense desktop UIs, all opt-in: + + - `Progress status="neutral"`: a grey fill, e.g. for a cancelled transfer (also React Native) + - `Avatar initials`: own initials instead of the ones from `name` ("MS" for "my-server"; also React Native) + - `Card size="sm"`: smaller radius, padding and title, for lists of cards inside a dialog (`wc-card-sm` in HTML); + `ConfigProvider size` leaves cards alone + - `Code` in the main package: code in a sentence with the look of `InlineCode`, without syntax colours and without the + optional `shiki` + + `rounded-card` and `rounded-panel` now count as radii for tailwind-merge (like `rounded-popup`): another radius in + `class`/`classes` replaces them instead of both classes ending up on the element. + +- 849eac6: `ContextMenu`'s `before-open` / `onBeforeOpen` gets a second argument `{ source: 'pointer' | 'keyboard', focused }`: + opened with Shift+F10 or the menu key, `focused` is the element with the focus – a list can tell a row from its empty + space even when the browser fires the event on the whole area. The first argument stays as it was. + `createContextMenuSource()` in the recipes tells the two apart. +- 849eac6: Focus for dialogs and wizards whose content changes: + + - `data-autoselect` on a field in a `Dialog`: it gets the focus when the dialog opens, with its text selected (e.g. a + prefilled name). Without it Ark's choice stays (an alertdialog's close button, `data-autofocus`, the first element) + - `focusFirst(container)` (also from the component packages) focuses like opening does – `data-autoselect`, + `data-autofocus`/`autofocus`, otherwise the first field; Vue's `DialogContent` exposes it as `focusFirst()` + - `Wizard focusOnStepChange` moves the focus into each new step the same way (not after a failed check: the invalid + field keeps it) + - `autoselectElement(content)` in the recipes for a dialog's own initial focus + +### Patch Changes + +- 849eac6: Vite plugin: a component imported for the first time while `vite dev` runs gets its classes right away. The plugin added + its sources file to the CSS, but Tailwind's Vite plugin only builds a CSS file again when a file it imports changes on + disk – the classes were missing until a restart (cards without padding, tiny avatars). In the dev server the imports now + live in a file in Vite's cache folder; the build is unchanged. + ## 0.7.0 ### Minor Changes diff --git a/packages/recipes/package.json b/packages/recipes/package.json index 68dc0b6..01cf1bb 100644 --- a/packages/recipes/package.json +++ b/packages/recipes/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-recipes", - "version": "0.7.0", + "version": "0.8.0", "description": "Framework-agnostic WireLayer component recipes (tailwind-variants)", "license": "MIT", "repository": { diff --git a/packages/tokens/CHANGELOG.md b/packages/tokens/CHANGELOG.md index 1b8a7ab..f1d9643 100644 --- a/packages/tokens/CHANGELOG.md +++ b/packages/tokens/CHANGELOG.md @@ -1,5 +1,20 @@ # @wirecore/wirelayer-tokens +## 0.5.0 + +### Minor Changes + +- 849eac6: Token colours as fixed values for canvas libraries (xterm.js, charts) that cannot read CSS variables: + `resolveTokens(element?)` gives the colours that apply right now (mode, theme and own overrides) as hex – `#rrggbbaa` for + the translucent ones – and `watchTokens(onChange)` reports a change of mode, theme or system colour scheme. The + composable/hook `useResolvedTokens()` keeps them up to date. + +### Patch Changes + +- 849eac6: Popups with a positioner (Select, Combobox, Menu, Popover …) stay above a dialog: the theme gives Ark's positioners + `z-index: var(--z-index)` (in the base layer). Ark sets the z-index inline, but Vue removed it again whenever the popup + rendered anew – the list then lay behind the dialog, looked closed and the pointer hit the dialog. + ## 0.4.0 ### Minor Changes diff --git a/packages/tokens/package.json b/packages/tokens/package.json index 03b42c7..7b8c6f7 100644 --- a/packages/tokens/package.json +++ b/packages/tokens/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-tokens", - "version": "0.4.0", + "version": "0.5.0", "description": "WireLayer design tokens and Tailwind v4 theme", "license": "MIT", "repository": { diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index 5bdbb81..fe472a6 100644 --- a/packages/vue/CHANGELOG.md +++ b/packages/vue/CHANGELOG.md @@ -1,5 +1,81 @@ # @wirecore/wirelayer-vue +## 0.9.0 + +### Minor Changes + +- 849eac6: Display parts for dense desktop UIs, all opt-in: + + - `Progress status="neutral"`: a grey fill, e.g. for a cancelled transfer (also React Native) + - `Avatar initials`: own initials instead of the ones from `name` ("MS" for "my-server"; also React Native) + - `Card size="sm"`: smaller radius, padding and title, for lists of cards inside a dialog (`wc-card-sm` in HTML); + `ConfigProvider size` leaves cards alone + - `Code` in the main package: code in a sentence with the look of `InlineCode`, without syntax colours and without the + optional `shiki` + + `rounded-card` and `rounded-panel` now count as radii for tailwind-merge (like `rounded-popup`): another radius in + `class`/`classes` replaces them instead of both classes ending up on the element. + +- 849eac6: `ContextMenu`'s `before-open` / `onBeforeOpen` gets a second argument `{ source: 'pointer' | 'keyboard', focused }`: + opened with Shift+F10 or the menu key, `focused` is the element with the focus – a list can tell a row from its empty + space even when the browser fires the event on the whole area. The first argument stays as it was. + `createContextMenuSource()` in the recipes tells the two apart. +- 849eac6: Focus for dialogs and wizards whose content changes: + + - `data-autoselect` on a field in a `Dialog`: it gets the focus when the dialog opens, with its text selected (e.g. a + prefilled name). Without it Ark's choice stays (an alertdialog's close button, `data-autofocus`, the first element) + - `focusFirst(container)` (also from the component packages) focuses like opening does – `data-autoselect`, + `data-autofocus`/`autofocus`, otherwise the first field; Vue's `DialogContent` exposes it as `focusFirst()` + - `Wizard focusOnStepChange` moves the focus into each new step the same way (not after a failed check: the invalid + field keeps it) + - `autoselectElement(content)` in the recipes for a dialog's own initial focus + +- 849eac6: Choices that cannot be empty give their value type without the empty value – no `$event && …` guard for a model that + is never empty. Only the types change, unless noted: + + - `RadioGroup` and `SegmentedControl` with `required`: v-model / `onValueChange` get `V`, not `V | null`. A form reset + back to an empty start (the only way Ark empties the group) is no longer passed on for a required group. + `SegmentedControl` takes `required` now (`aria-required` on the group); React Native's `RadioGroup` is typed the same + - `NativeSelect` without `placeholder`: `V`, not `V | ''` (only the placeholder option gives `''`) + +- 849eac6: `NumberInput` with `emptyFallback`, for fields that always need a number (e.g. a port): an emptied field keeps its value + while it is empty and falls back to `min` (or 0) or to the last valid number (`previous`) when it is left or Enter is + pressed. v-model / `onValueChange` is then typed `number`. Without it an emptied field still reports null. + + Note for type code around the components: `NumberInput` (Vue) is generic now, so `InstanceType` and + Storybook's `Meta` need a cast (as for Select). + +- 849eac6: Token colours as fixed values for canvas libraries (xterm.js, charts) that cannot read CSS variables: + `resolveTokens(element?)` gives the colours that apply right now (mode, theme and own overrides) as hex – `#rrggbbaa` for + the translucent ones – and `watchTokens(onChange)` reports a change of mode, theme or system colour scheme. The + composable/hook `useResolvedTokens()` keeps them up to date. +- 849eac6: `Select` with `emptyValue`, e.g. `""` for a model that uses an empty string for "nothing chosen": the value counts as + null – the placeholder shows, no development warning about an unknown value – and clearing gives it back instead of null + (typed `V | E`). Without it `""` is still an unknown value shown as text. +- 849eac6: `Tabs` for panels that live elsewhere (editor or terminal tabs, panes shown with `v-show`): + + - `TabsTrigger controls="pane-id"` points `aria-controls` at that element; `null` removes it (tabs without panels) + - `Tabs` takes `null` as its value: no tab selected. The first enabled tab then stays reachable with Tab (Ark takes + every tab out of the Tab order without a selection); Tabs without a value stay as they were + +- 849eac6: Own texts in `Wizard` (and `Stepper`): `finishLabel` names the last button (default "Finish"), and a step's `validate` + may return a text (also async) – it keeps the step open and is shown as its error instead of "Please check the entries + in this step". + +### Patch Changes + +- 849eac6: Popups with a positioner (Select, Combobox, Menu, Popover …) stay above a dialog: the theme gives Ark's positioners + `z-index: var(--z-index)` (in the base layer). Ark sets the z-index inline, but Vue removed it again whenever the popup + rendered anew – the list then lay behind the dialog, looked closed and the pointer hit the dialog. +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] +- Updated dependencies [849eac6] + - @wirecore/wirelayer-recipes@0.8.0 + - @wirecore/wirelayer-tokens@0.5.0 + ## 0.8.0 ### Minor Changes diff --git a/packages/vue/package.json b/packages/vue/package.json index 3eb2235..ba11615 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@wirecore/wirelayer-vue", - "version": "0.8.0", + "version": "0.9.0", "description": "WireLayer components for Vue 3", "license": "MIT", "repository": {