From 805cd6cf8853e5704340d3c300354a3b347c2903 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 16:54:27 +0000 Subject: [PATCH] chore: version packages --- .changeset/four-small-gaps.md | 47 ---------------------------------- apps/example/CHANGELOG.md | 7 +++++ apps/example/package.json | 2 +- packages/sve-ui/CHANGELOG.md | 48 +++++++++++++++++++++++++++++++++++ packages/sve-ui/package.json | 2 +- 5 files changed, 57 insertions(+), 49 deletions(-) delete mode 100644 .changeset/four-small-gaps.md diff --git a/.changeset/four-small-gaps.md b/.changeset/four-small-gaps.md deleted file mode 100644 index b84bf90..0000000 --- a/.changeset/four-small-gaps.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -'sve-ui': minor ---- - -Four new components: `Kbd`, `ButtonGroup`, `Empty` and `InputGroup`. - -These are the first components added since the library finished wrapping every -one of Bits UI's 41 primitives, so all four are hand-built. They were chosen by -diffing the catalog against shadcn-svelte: each one is a gap people currently fill -with a hand-rolled div, and none needs a new dependency. - -**`Kbd`** — a keycap. `label` is the part that matters: `⌘`, `⇧` and `⌥` are -punctuation to a screen reader, and some voices skip them entirely, so a shortcut -rendered as glyphs alone can be announced as nothing at all. With a label the -glyph is hidden from the accessibility tree and the word is announced instead. -The library shipped `Command`, a command palette, with no way to draw the shortcut -it advertises. - -**`ButtonGroup`** — attaches independent buttons into one control, collapsing the -doubled border between them and lifting whichever has focus so its ring is never -clipped by a neighbour. `label` or `labelledby` is required: it renders -`role="group"`, and a role without a name tells a screen reader there is a -boundary here and then cannot say what for. Use `Toolbar` when the whole bar -should be one tab stop, and `ToggleGroup` when the buttons carry a value. - -**`Empty`** — the state a list, table or result set is in with nothing to show. -Three defaults, each usually got wrong: `Media` is always `aria-hidden` because -the icon restates the title; `Title` renders a `

` rather than a heading, so an -empty state inside a card cannot inject "No results" into the document outline; -and `announce` is opt-in, for the case that actually needs it — results replaced -by emptiness after a search, which is a change the user caused and cannot see. - -**`InputGroup`** — an `Input` with prefix and suffix addons, drawn as one control. -The group owns the border and the `:focus-within` ring and the input owns neither, -which is what makes an addon read as part of the field instead of a box beside it. -`Addon` is `aria-hidden` by default and cannot be the label: a `$` is a hint for -the eye, and the meaning belongs in the input's accessible name. - -Also in this release, both found by tightening a guard rather than by reading code: - -- `apps/example`'s coverage guard accepted a namespace member as proof of a - top-level export, so `\bEmpty\b` matched `Command.Empty`. With that fixed it - reported the standalone `Calendar` as never rendered — true for months, and now - rendered on the booking screen. A calendar inside a picker is a different mount. -- A test asserting `Empty.Root` is not a live region by default was measuring its - own fixture's default. Flipping the component default to `true` left it green. - Caught by mutation, and the fixture now renders the prop genuinely absent. diff --git a/apps/example/CHANGELOG.md b/apps/example/CHANGELOG.md index ce034fb..2c858aa 100644 --- a/apps/example/CHANGELOG.md +++ b/apps/example/CHANGELOG.md @@ -1,5 +1,12 @@ # example +## 0.0.7 + +### Patch Changes + +- Updated dependencies [126272e] + - sve-ui@0.14.0 + ## 0.0.6 ### Patch Changes diff --git a/apps/example/package.json b/apps/example/package.json index 9a6c7a0..f669adb 100644 --- a/apps/example/package.json +++ b/apps/example/package.json @@ -1,7 +1,7 @@ { "name": "example", "private": true, - "version": "0.0.6", + "version": "0.0.7", "type": "module", "scripts": { "dev": "vite dev", diff --git a/packages/sve-ui/CHANGELOG.md b/packages/sve-ui/CHANGELOG.md index 9ad32d9..aff4e1f 100644 --- a/packages/sve-ui/CHANGELOG.md +++ b/packages/sve-ui/CHANGELOG.md @@ -1,5 +1,53 @@ # sve-ui +## 0.14.0 + +### Minor Changes + +- 126272e: Four new components: `Kbd`, `ButtonGroup`, `Empty` and `InputGroup`. + + These are the first components added since the library finished wrapping every + one of Bits UI's 41 primitives, so all four are hand-built. They were chosen by + diffing the catalog against shadcn-svelte: each one is a gap people currently fill + with a hand-rolled div, and none needs a new dependency. + + **`Kbd`** — a keycap. `label` is the part that matters: `⌘`, `⇧` and `⌥` are + punctuation to a screen reader, and some voices skip them entirely, so a shortcut + rendered as glyphs alone can be announced as nothing at all. With a label the + glyph is hidden from the accessibility tree and the word is announced instead. + The library shipped `Command`, a command palette, with no way to draw the shortcut + it advertises. + + **`ButtonGroup`** — attaches independent buttons into one control, collapsing the + doubled border between them and lifting whichever has focus so its ring is never + clipped by a neighbour. `label` or `labelledby` is required: it renders + `role="group"`, and a role without a name tells a screen reader there is a + boundary here and then cannot say what for. Use `Toolbar` when the whole bar + should be one tab stop, and `ToggleGroup` when the buttons carry a value. + + **`Empty`** — the state a list, table or result set is in with nothing to show. + Three defaults, each usually got wrong: `Media` is always `aria-hidden` because + the icon restates the title; `Title` renders a `

` rather than a heading, so an + empty state inside a card cannot inject "No results" into the document outline; + and `announce` is opt-in, for the case that actually needs it — results replaced + by emptiness after a search, which is a change the user caused and cannot see. + + **`InputGroup`** — an `Input` with prefix and suffix addons, drawn as one control. + The group owns the border and the `:focus-within` ring and the input owns neither, + which is what makes an addon read as part of the field instead of a box beside it. + `Addon` is `aria-hidden` by default and cannot be the label: a `$` is a hint for + the eye, and the meaning belongs in the input's accessible name. + + Also in this release, both found by tightening a guard rather than by reading code: + + - `apps/example`'s coverage guard accepted a namespace member as proof of a + top-level export, so `\bEmpty\b` matched `Command.Empty`. With that fixed it + reported the standalone `Calendar` as never rendered — true for months, and now + rendered on the booking screen. A calendar inside a picker is a different mount. + - A test asserting `Empty.Root` is not a live region by default was measuring its + own fixture's default. Flipping the component default to `true` left it green. + Caught by mutation, and the fixture now renders the prop genuinely absent. + ## 0.13.2 ### Patch Changes diff --git a/packages/sve-ui/package.json b/packages/sve-ui/package.json index e4a8220..36daf70 100644 --- a/packages/sve-ui/package.json +++ b/packages/sve-ui/package.json @@ -1,6 +1,6 @@ { "name": "sve-ui", - "version": "0.13.2", + "version": "0.14.0", "type": "module", "description": "Styled, accessible Svelte 5 components built on Bits UI. No Tailwind, no config — install, import, and theme with CSS variables. Light and dark out of the box.", "author": "Rodrigo Abregu (https://rodriab.io/)",