From 7891cad61914c3f1926092a4138315795eb010f6 Mon Sep 17 00:00:00 2001 From: balint Date: Wed, 5 Aug 2026 13:57:17 +0100 Subject: [PATCH] feat!: remove xs size variant from form and action components Removes the 'xs' size variant from Button, Input, InputArea, InputGroup, Select, Combobox, Autocomplete, SensitiveInput, and Toolbar. Both the type unions and the runtime KUMO_*_VARIANTS.size entries are gone. Passing size='xs' will fail TypeScript compilation. Text keeps xs (it is a real typographic step, 12px). Banner: a size='sm' Banner used to render its Banner.Action children at xs (h-5). It now renders them at sm (h-6.5). BannerActionSize is narrowed to just 'sm'. Migration: find/replace size='xs' -> size='sm'. --- .changeset/remove-xs-size.md | 14 ++++++++++ .../src/components/demos/AutocompleteDemo.tsx | 14 +--------- .../src/components/demos/ButtonDemo.tsx | 3 --- .../src/components/demos/InputAreaDemo.tsx | 5 ---- .../src/components/demos/InputDemo.tsx | 1 - .../src/components/demos/InputGroupDemo.tsx | 15 ----------- .../src/components/demos/PopoverDemo.tsx | 2 +- .../src/components/demos/SelectDemo.tsx | 12 +-------- .../components/demos/SelectStressTestDemo.tsx | 6 ----- .../src/pages/components/autocomplete.mdx | 5 ++-- .../src/pages/components/combobox.mdx | 4 +-- .../src/pages/components/input-area.mdx | 2 +- .../src/pages/components/input-group.mdx | 4 +-- .../src/pages/components/input.mdx | 2 +- .../src/pages/components/toolbar.mdx | 4 +-- .../src/pages/tests/select.astro | 5 ++-- packages/kumo-figma/src/build-theme-data.ts | 4 +-- packages/kumo-figma/src/generators/button.ts | 4 +-- .../src/generators/drift-detection.test.ts | 8 ++---- .../kumo-figma/src/generators/input-area.ts | 2 -- packages/kumo-figma/src/generators/input.ts | 3 --- .../src/generators/refresh-button.test.ts | 26 ++++++------------- .../src/generators/refresh-button.ts | 1 - .../src/generators/sensitive-input.test.ts | 8 +++--- .../src/generators/sensitive-input.ts | 8 ------ packages/kumo-figma/src/generators/shared.ts | 2 -- .../scripts/component-registry/metadata.ts | 1 - .../autocomplete/autocomplete.test.tsx | 1 - .../components/autocomplete/autocomplete.tsx | 1 - .../src/components/banner/banner-action.tsx | 7 +++-- .../src/components/banner/banner.test.tsx | 13 +++++----- .../kumo/src/components/banner/banner.tsx | 12 +++++---- .../kumo/src/components/button/button.tsx | 6 ----- .../src/components/combobox/combobox.test.tsx | 2 +- .../kumo/src/components/combobox/combobox.tsx | 9 ------- .../src/components/input-group/context.ts | 14 ---------- .../input-group/input-group-button.tsx | 5 ++-- .../input-group/input-group.test.tsx | 10 +++---- .../components/input-group/input-group.tsx | 4 --- .../kumo/src/components/input/input-area.tsx | 5 ++-- .../kumo/src/components/input/input.test.tsx | 6 ----- packages/kumo/src/components/input/input.tsx | 6 ----- packages/kumo/src/components/label/label.tsx | 2 +- .../src/components/select/select.test.tsx | 6 ++--- .../kumo/src/components/select/select.tsx | 2 -- .../sensitive-input/sensitive-input.tsx | 7 +---- .../kumo/src/components/toolbar/toolbar.tsx | 4 --- 47 files changed, 79 insertions(+), 208 deletions(-) create mode 100644 .changeset/remove-xs-size.md diff --git a/.changeset/remove-xs-size.md b/.changeset/remove-xs-size.md new file mode 100644 index 0000000000..142d7454bd --- /dev/null +++ b/.changeset/remove-xs-size.md @@ -0,0 +1,14 @@ +--- +"@cloudflare/kumo": major +--- + +**BREAKING:** Remove the `xs` size variant from `Button`, `Input`, `InputArea`, `InputGroup`, `Select`, `Combobox`, `Autocomplete`, `SensitiveInput`, and `Toolbar`. + +The type unions no longer include `"xs"` and the runtime `KUMO_*_VARIANTS.size` objects no longer contain an `xs` entry. Passing `size="xs"` will fail TypeScript compilation. Migrate to `size="sm"` — it is the next visual step and remains available. + +**`Banner`:** A `size="sm"` Banner used to render its `Banner.Action` children at Button's `xs` size (h-5). It now renders them at `sm` (h-6.5) instead. `Banner.Action` accepts only `size="sm"` as a consequence. + +**Unaffected:** + +- `Text` — `xs` is a legitimate typographic step (12px) and stays. +- `Banner.Action` — the type still exists but is narrowed to `"sm"` only. diff --git a/packages/kumo-docs-astro/src/components/demos/AutocompleteDemo.tsx b/packages/kumo-docs-astro/src/components/demos/AutocompleteDemo.tsx index bec1fb4cc4..615cc9136e 100644 --- a/packages/kumo-docs-astro/src/components/demos/AutocompleteDemo.tsx +++ b/packages/kumo-docs-astro/src/components/demos/AutocompleteDemo.tsx @@ -210,22 +210,10 @@ export function AutocompleteGroupedDemo() { ); } -/** Demonstrates the four size variants: xs, sm, base, and lg. */ +/** Demonstrates the three size variants: sm, base, and lg. */ export function AutocompleteSizesDemo() { return (
- - - - - {(item: string) => ( - - {item} - - )} - - - diff --git a/packages/kumo-docs-astro/src/components/demos/ButtonDemo.tsx b/packages/kumo-docs-astro/src/components/demos/ButtonDemo.tsx index 7fade2087e..df67f88ee9 100644 --- a/packages/kumo-docs-astro/src/components/demos/ButtonDemo.tsx +++ b/packages/kumo-docs-astro/src/components/demos/ButtonDemo.tsx @@ -42,9 +42,6 @@ export function ButtonSecondaryDestructiveDemo() { export function ButtonSizesDemo() { return (
- diff --git a/packages/kumo-docs-astro/src/components/demos/InputAreaDemo.tsx b/packages/kumo-docs-astro/src/components/demos/InputAreaDemo.tsx index b4f9696153..ce99967564 100644 --- a/packages/kumo-docs-astro/src/components/demos/InputAreaDemo.tsx +++ b/packages/kumo-docs-astro/src/components/demos/InputAreaDemo.tsx @@ -48,11 +48,6 @@ export function InputAreaErrorObjectDemo() { export function InputAreaSizesDemo() { return (
- diff --git a/packages/kumo-docs-astro/src/components/demos/InputDemo.tsx b/packages/kumo-docs-astro/src/components/demos/InputDemo.tsx index 77af223fa0..abfa1dfe0d 100644 --- a/packages/kumo-docs-astro/src/components/demos/InputDemo.tsx +++ b/packages/kumo-docs-astro/src/components/demos/InputDemo.tsx @@ -50,7 +50,6 @@ export function InputErrorObjectDemo() { export function InputSizesDemo() { return (
- diff --git a/packages/kumo-docs-astro/src/components/demos/InputGroupDemo.tsx b/packages/kumo-docs-astro/src/components/demos/InputGroupDemo.tsx index 4adb7052aa..d773c775da 100644 --- a/packages/kumo-docs-astro/src/components/demos/InputGroupDemo.tsx +++ b/packages/kumo-docs-astro/src/components/demos/InputGroupDemo.tsx @@ -226,21 +226,6 @@ export function InputGroupSuffixDemo() { export function InputGroupSizesDemo() { return (
- - - - - - - - - - diff --git a/packages/kumo-docs-astro/src/components/demos/PopoverDemo.tsx b/packages/kumo-docs-astro/src/components/demos/PopoverDemo.tsx index b33afd6e6a..8c7dd1f973 100644 --- a/packages/kumo-docs-astro/src/components/demos/PopoverDemo.tsx +++ b/packages/kumo-docs-astro/src/components/demos/PopoverDemo.tsx @@ -200,7 +200,7 @@ export function PopoverVirtualAnchorDemo() { {row.status}