diff --git a/.changeset/chart-colors-docs-refine.md b/.changeset/chart-colors-docs-refine.md deleted file mode 100644 index c7508fd312..0000000000 --- a/.changeset/chart-colors-docs-refine.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@cloudflare/kumo": patch -"@cloudflare/kumo-docs-astro": patch ---- - -Update chart color docs and demos, including sequential heatmap/CVD coverage and improved chart demo behavior. \ No newline at end of file diff --git a/.changeset/checkbox-breaking-onCheckedChange.md b/.changeset/checkbox-breaking-onCheckedChange.md deleted file mode 100644 index d20640d732..0000000000 --- a/.changeset/checkbox-breaking-onCheckedChange.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -"@cloudflare/kumo": major ---- - -**BREAKING:** Checkbox `onCheckedChange` now receives event details as second argument - -The `onCheckedChange` callback signature now matches Base UI, providing access to the underlying event: - -```tsx -// Before -onCheckedChange={(checked) => console.log(checked)} - -// After (event details available as optional second arg) -onCheckedChange={(checked, eventDetails) => { - console.log(checked); - console.log(eventDetails.event); // native event -}} -``` - -**Removed deprecated props:** - -- `onChange` - use `onCheckedChange` instead -- `onValueChange` on individual checkboxes - use `onCheckedChange` instead -- `onClick` - was redundant, use standard React event handling via spread props - -**Migration:** - -```tsx -// Before (deprecated) - console.log(e.target.checked)} /> - setChecked(checked)} /> - -// After - setChecked(checked)} /> -``` - -Note: `Checkbox.Group`'s `onValueChange` prop is unchanged - it still accepts `(values: string[]) => void`. diff --git a/.changeset/composable-group-legend.md b/.changeset/composable-group-legend.md deleted file mode 100644 index f5fed37631..0000000000 --- a/.changeset/composable-group-legend.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@cloudflare/kumo": minor ---- - -feat(radio, checkbox, switch): add composable Legend sub-component for group components - -- Add `Radio.Legend`, `Checkbox.Legend`, and `Switch.Legend` sub-components -- Accepts `className` for full styling control (e.g. `className="sr-only"` to visually hide) -- Make `legend` string prop optional when using the sub-component instead -- Useful when a parent Field already provides a visible label and the legend would be redundant -- **Breaking:** `Switch.Group` no longer renders a visible border/padding/rounded container — now consistent with `Radio.Group` and `Checkbox.Group`. Use `className` to add a border if needed. diff --git a/.changeset/decouple-text-heading-semantics.md b/.changeset/decouple-text-heading-semantics.md deleted file mode 100644 index 2baa7333a6..0000000000 --- a/.changeset/decouple-text-heading-semantics.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -"@cloudflare/kumo": major ---- - -feat(Text): decouple visual heading variants from semantic HTML elements - -**Breaking change:** `heading1`, `heading2`, `heading3` variants no longer auto-render `

`, `

`, `

` tags. They now render as `` by default. Use the `as` prop to set the appropriate semantic heading level for your document outline. - -Before: - -```tsx -Title // rendered

-``` - -After: - -```tsx - - Title - // explicit semantic element -``` - -The `as` prop is now restricted to valid text elements: `"h1"` through `"h6"`, `"p"`, and `"span"`. diff --git a/.changeset/feat-input-group-revamp.md b/.changeset/feat-input-group-revamp.md deleted file mode 100644 index 25b9d68fc1..0000000000 --- a/.changeset/feat-input-group-revamp.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -"@cloudflare/kumo": minor -"@cloudflare/kumo-docs-astro": patch ---- - -Add `InputGroup` compound component for composing decorated inputs - -Compound structure: `InputGroup`, `InputGroup.Input`, `InputGroup.Addon`, `InputGroup.Suffix`, `InputGroup.Button`. - -- Field integration — pass `label`, `description`, `error`, `required`, and `labelTooltip` directly to `InputGroup` -- Size variants (`xs`, `sm`, `base`, `lg`) propagate to all sub-components via context, including icon sizing in addons -- `InputGroup.Addon` — positions icons, text, or buttons at `align="start"` (default) or `align="end"` of the input -- `InputGroup.Suffix` — inline text suffix (e.g. `.workers.dev`) -- `InputGroup.Button` — ghost button for secondary actions with tooltip support -- Deprecated `InputGroup.Label` — use `InputGroup.Addon` instead -- Deprecated `InputGroup.Description` — use `InputGroup.Suffix` instead - -```tsx -{/* Reveal / hide password */} - - - - setShow(!show)} - > - {show ? : } - - - -``` - -```tsx -{/* Search input */} - - - - - - -``` diff --git a/.changeset/global-typography-defaults.md b/.changeset/global-typography-defaults.md deleted file mode 100644 index c784a0c835..0000000000 --- a/.changeset/global-typography-defaults.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@cloudflare/kumo-docs-astro": patch ---- - -Add global letter-spacing and typography defaults - -- Set global `letter-spacing: -0.01em`, `line-height: 1.5`, and OpenType font features (`cv02`, `cv03`, `cv04`, `calt`) on `html` -- Reset `letter-spacing: normal` on `pre`, `code`, `kbd`, and `.font-mono` elements -- Replace hardcoded `tracking-[-0.02em]` with `tracking-tight` utility across headings -- Switch prose paragraphs and lists from `leading-relaxed` to `leading-normal` diff --git a/.changeset/odd-oranges-give.md b/.changeset/odd-oranges-give.md deleted file mode 100644 index ab1b0041fd..0000000000 --- a/.changeset/odd-oranges-give.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@cloudflare/kumo-docs-astro": minor -"@cloudflare/kumo": minor ---- - -Adds Autocomplete component. A free-form text input with an optional filtered suggestion list. Unlike Combobox, the value is not constrained to the items list. diff --git a/.changeset/table-of-contents-polish.md b/.changeset/table-of-contents-polish.md deleted file mode 100644 index 12e31a7ca9..0000000000 --- a/.changeset/table-of-contents-polish.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@cloudflare/kumo": minor ---- - -Polish TableOfContents indicator and semantic HTML - -- Replace pill/background-tint hover with left-border indicator pattern -- Switch to semantic `ul`/`li` HTML structure -- Add `href` and `active` props to `TableOfContents.Group` for clickable labels diff --git a/.changeset/update-base-ui-1.4.0.md b/.changeset/update-base-ui-1.4.0.md deleted file mode 100644 index 598c3e874d..0000000000 --- a/.changeset/update-base-ui-1.4.0.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/kumo": patch ---- - -chore: update @base-ui/react to v1.4.0 - -Bugfix release with improvements to Popover hover state, Checkbox/Switch readOnly mode, Select touch handling, Tabs activation direction, Toast timers, and various other fixes. No breaking changes. diff --git a/packages/kumo-docs-astro/CHANGELOG.md b/packages/kumo-docs-astro/CHANGELOG.md index aa3aad2636..8bc94d6f69 100644 --- a/packages/kumo-docs-astro/CHANGELOG.md +++ b/packages/kumo-docs-astro/CHANGELOG.md @@ -1,5 +1,75 @@ # @cloudflare/kumo-docs-astro +## 1.4.0 + +### Minor Changes + +- 353faea: Adds Autocomplete component. A free-form text input with an optional filtered suggestion list. Unlike Combobox, the value is not constrained to the items list. + +### Patch Changes + +- ec73bc5: Update chart color docs and demos, including sequential heatmap/CVD coverage and improved chart demo behavior. +- 1eee41a: Add `InputGroup` compound component for composing decorated inputs + + Compound structure: `InputGroup`, `InputGroup.Input`, `InputGroup.Addon`, `InputGroup.Suffix`, `InputGroup.Button`. + - Field integration — pass `label`, `description`, `error`, `required`, and `labelTooltip` directly to `InputGroup` + - Size variants (`xs`, `sm`, `base`, `lg`) propagate to all sub-components via context, including icon sizing in addons + - `InputGroup.Addon` — positions icons, text, or buttons at `align="start"` (default) or `align="end"` of the input + - `InputGroup.Suffix` — inline text suffix (e.g. `.workers.dev`) + - `InputGroup.Button` — ghost button for secondary actions with tooltip support + - Deprecated `InputGroup.Label` — use `InputGroup.Addon` instead + - Deprecated `InputGroup.Description` — use `InputGroup.Suffix` instead + + ```tsx + { + /* Reveal / hide password */ + } + + + + setShow(!show)} + > + {show ? : } + + + ; + ``` + + ```tsx + { + /* Search input */ + } + + + + + + ; + ``` + +- 87432f8: Add global letter-spacing and typography defaults + - Set global `letter-spacing: -0.01em`, `line-height: 1.5`, and OpenType font features (`cv02`, `cv03`, `cv04`, `calt`) on `html` + - Reset `letter-spacing: normal` on `pre`, `code`, `kbd`, and `.font-mono` elements + - Replace hardcoded `tracking-[-0.02em]` with `tracking-tight` utility across headings + - Switch prose paragraphs and lists from `leading-relaxed` to `leading-normal` + +- Updated dependencies [ec73bc5] +- Updated dependencies [bf68ac0] +- Updated dependencies [1954aa8] +- Updated dependencies [3256a7b] +- Updated dependencies [1eee41a] +- Updated dependencies [353faea] +- Updated dependencies [f9d8b76] +- Updated dependencies [6765526] + - @cloudflare/kumo@2.0.0 + ## 1.3.18 ### Patch Changes diff --git a/packages/kumo-docs-astro/package.json b/packages/kumo-docs-astro/package.json index e441ac7a97..a7583abd51 100644 --- a/packages/kumo-docs-astro/package.json +++ b/packages/kumo-docs-astro/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/kumo-docs-astro", - "version": "1.3.18", + "version": "1.4.0", "private": true, "type": "module", "exports": { diff --git a/packages/kumo-figma/CHANGELOG.md b/packages/kumo-figma/CHANGELOG.md index 97d828a299..d969967349 100644 --- a/packages/kumo-figma/CHANGELOG.md +++ b/packages/kumo-figma/CHANGELOG.md @@ -1,5 +1,19 @@ # @cloudflare/figma-plugin +## 0.3.24 + +### Patch Changes + +- Updated dependencies [ec73bc5] +- Updated dependencies [bf68ac0] +- Updated dependencies [1954aa8] +- Updated dependencies [3256a7b] +- Updated dependencies [1eee41a] +- Updated dependencies [353faea] +- Updated dependencies [f9d8b76] +- Updated dependencies [6765526] + - @cloudflare/kumo@2.0.0 + ## 0.3.23 ### Patch Changes diff --git a/packages/kumo-figma/package.json b/packages/kumo-figma/package.json index 60f243ea82..fdbcbad9eb 100644 --- a/packages/kumo-figma/package.json +++ b/packages/kumo-figma/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/kumo-figma", - "version": "0.3.23", + "version": "0.3.24", "private": true, "type": "module", "description": "Figma plugin for generating Kumo UI Kit components", diff --git a/packages/kumo/CHANGELOG.md b/packages/kumo/CHANGELOG.md index 5fa4ef21bf..e964173cdd 100644 --- a/packages/kumo/CHANGELOG.md +++ b/packages/kumo/CHANGELOG.md @@ -1,5 +1,129 @@ # @cloudflare/kumo +## 2.0.0 + +### Major Changes + +- bf68ac0: **BREAKING:** Checkbox `onCheckedChange` now receives event details as second argument + + The `onCheckedChange` callback signature now matches Base UI, providing access to the underlying event: + + ```tsx + // Before + onCheckedChange={(checked) => console.log(checked)} + + // After (event details available as optional second arg) + onCheckedChange={(checked, eventDetails) => { + console.log(checked); + console.log(eventDetails.event); // native event + }} + ``` + + **Removed deprecated props:** + - `onChange` - use `onCheckedChange` instead + - `onValueChange` on individual checkboxes - use `onCheckedChange` instead + - `onClick` - was redundant, use standard React event handling via spread props + + **Migration:** + + ```tsx + // Before (deprecated) + console.log(e.target.checked)} /> + setChecked(checked)} /> + + // After + setChecked(checked)} /> + ``` + + Note: `Checkbox.Group`'s `onValueChange` prop is unchanged - it still accepts `(values: string[]) => void`. + +- 3256a7b: feat(Text): decouple visual heading variants from semantic HTML elements + + **Breaking change:** `heading1`, `heading2`, `heading3` variants no longer auto-render `

`, `

`, `

` tags. They now render as `` by default. Use the `as` prop to set the appropriate semantic heading level for your document outline. + + Before: + + ```tsx + Title // rendered

+ ``` + + After: + + ```tsx + + Title + // explicit semantic element + ``` + + The `as` prop is now restricted to valid text elements: `"h1"` through `"h6"`, `"p"`, and `"span"`. + +### Minor Changes + +- 1954aa8: feat(radio, checkbox, switch): add composable Legend sub-component for group components + - Add `Radio.Legend`, `Checkbox.Legend`, and `Switch.Legend` sub-components + - Accepts `className` for full styling control (e.g. `className="sr-only"` to visually hide) + - Make `legend` string prop optional when using the sub-component instead + - Useful when a parent Field already provides a visible label and the legend would be redundant + - **Breaking:** `Switch.Group` no longer renders a visible border/padding/rounded container — now consistent with `Radio.Group` and `Checkbox.Group`. Use `className` to add a border if needed. + +- 1eee41a: Add `InputGroup` compound component for composing decorated inputs + + Compound structure: `InputGroup`, `InputGroup.Input`, `InputGroup.Addon`, `InputGroup.Suffix`, `InputGroup.Button`. + - Field integration — pass `label`, `description`, `error`, `required`, and `labelTooltip` directly to `InputGroup` + - Size variants (`xs`, `sm`, `base`, `lg`) propagate to all sub-components via context, including icon sizing in addons + - `InputGroup.Addon` — positions icons, text, or buttons at `align="start"` (default) or `align="end"` of the input + - `InputGroup.Suffix` — inline text suffix (e.g. `.workers.dev`) + - `InputGroup.Button` — ghost button for secondary actions with tooltip support + - Deprecated `InputGroup.Label` — use `InputGroup.Addon` instead + - Deprecated `InputGroup.Description` — use `InputGroup.Suffix` instead + + ```tsx + { + /* Reveal / hide password */ + } + + + + setShow(!show)} + > + {show ? : } + + + ; + ``` + + ```tsx + { + /* Search input */ + } + + + + + + ; + ``` + +- 353faea: Adds Autocomplete component. A free-form text input with an optional filtered suggestion list. Unlike Combobox, the value is not constrained to the items list. +- f9d8b76: Polish TableOfContents indicator and semantic HTML + - Replace pill/background-tint hover with left-border indicator pattern + - Switch to semantic `ul`/`li` HTML structure + - Add `href` and `active` props to `TableOfContents.Group` for clickable labels + +### Patch Changes + +- ec73bc5: Update chart color docs and demos, including sequential heatmap/CVD coverage and improved chart demo behavior. +- 6765526: chore: update @base-ui/react to v1.4.0 + + Bugfix release with improvements to Popover hover state, Checkbox/Switch readOnly mode, Select touch handling, Tabs activation direction, Toast timers, and various other fixes. No breaking changes. + ## 1.19.0 ### Minor Changes diff --git a/packages/kumo/package.json b/packages/kumo/package.json index 240ac94134..ec791088bb 100644 --- a/packages/kumo/package.json +++ b/packages/kumo/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/kumo", - "version": "1.19.0", + "version": "2.0.0", "private": false, "type": "module", "description": "Kumo - Cloudflare's component library for building modern web applications",