@cloudflare/kumo 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/ai/component-registry.json +29 -28
  3. package/ai/component-registry.md +54 -29
  4. package/ai/schemas.ts +4 -2
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +11 -3
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/banner-BKDBfLHA.js +75 -0
  9. package/dist/banner-BKDBfLHA.js.map +1 -0
  10. package/dist/catalog.js +1 -1
  11. package/dist/{checkbox-Dt8iSNOg.js → checkbox-BUV90tNU.js} +56 -56
  12. package/dist/checkbox-BUV90tNU.js.map +1 -0
  13. package/dist/{clipboard-text-CeoyR28P.js → clipboard-text-BVKGunue.js} +3 -3
  14. package/dist/{clipboard-text-CeoyR28P.js.map → clipboard-text-BVKGunue.js.map} +1 -1
  15. package/dist/{combobox-BIC-YZ2L.js → combobox-DyTgHki4.js} +83 -61
  16. package/dist/combobox-DyTgHki4.js.map +1 -0
  17. package/dist/{command-palette-D3MNR7w9.js → command-palette-B2hkPSQm.js} +2 -2
  18. package/dist/{command-palette-D3MNR7w9.js.map → command-palette-B2hkPSQm.js.map} +1 -1
  19. package/dist/components/banner.js +1 -1
  20. package/dist/components/checkbox.js +1 -1
  21. package/dist/components/clipboard-text.js +1 -1
  22. package/dist/components/combobox.js +1 -1
  23. package/dist/components/command-palette.js +1 -1
  24. package/dist/components/dialog.js +1 -1
  25. package/dist/components/dropdown.js +1 -1
  26. package/dist/components/field.js +1 -1
  27. package/dist/components/input.js +3 -3
  28. package/dist/components/label.js +1 -1
  29. package/dist/components/link.js +1 -1
  30. package/dist/components/menubar.js +1 -1
  31. package/dist/components/meter.js +1 -1
  32. package/dist/components/pagination.js +1 -1
  33. package/dist/components/popover.js +1 -1
  34. package/dist/components/radio.js +1 -1
  35. package/dist/components/select.js +1 -1
  36. package/dist/components/sensitive-input.js +1 -1
  37. package/dist/components/switch.js +1 -1
  38. package/dist/components/table.js +1 -1
  39. package/dist/components/tabs.js +1 -1
  40. package/dist/components/toast.js +2 -2
  41. package/dist/components/tooltip.js +1 -1
  42. package/dist/{dialog-toS9krNF.js → dialog-B2EHaSoL.js} +2 -2
  43. package/dist/{dialog-toS9krNF.js.map → dialog-B2EHaSoL.js.map} +1 -1
  44. package/dist/{dropdown-BquiYKKC.js → dropdown-mGDt95gv.js} +3 -3
  45. package/dist/{dropdown-BquiYKKC.js.map → dropdown-mGDt95gv.js.map} +1 -1
  46. package/dist/{field-DCq04TgZ.js → field-Bkh5pJay.js} +3 -3
  47. package/dist/{field-DCq04TgZ.js.map → field-Bkh5pJay.js.map} +1 -1
  48. package/dist/index.js +29 -29
  49. package/dist/{input-CCR8NGG7.js → input-DjItb3_k.js} +3 -3
  50. package/dist/{input-CCR8NGG7.js.map → input-DjItb3_k.js.map} +1 -1
  51. package/dist/{input-area-DU2Yvp_t.js → input-area-BcidmGaO.js} +3 -3
  52. package/dist/{input-area-DU2Yvp_t.js.map → input-area-BcidmGaO.js.map} +1 -1
  53. package/dist/{input-group-C365-qBq.js → input-group-CMAvOKIV.js} +2 -2
  54. package/dist/{input-group-C365-qBq.js.map → input-group-CMAvOKIV.js.map} +1 -1
  55. package/dist/{label-zjtV7oXa.js → label-Cjpb7l1F.js} +2 -2
  56. package/dist/{label-zjtV7oXa.js.map → label-Cjpb7l1F.js.map} +1 -1
  57. package/dist/{link-C8pUZ4Q-.js → link-DUqZGMVk.js} +2 -2
  58. package/dist/{link-C8pUZ4Q-.js.map → link-DUqZGMVk.js.map} +1 -1
  59. package/dist/{menubar-D7WvAf6x.js → menubar-bgBP3EJi.js} +2 -2
  60. package/dist/{menubar-D7WvAf6x.js.map → menubar-bgBP3EJi.js.map} +1 -1
  61. package/dist/{meter-jQGKS1z4.js → meter-BziPAH9D.js} +2 -2
  62. package/dist/{meter-jQGKS1z4.js.map → meter-BziPAH9D.js.map} +1 -1
  63. package/dist/{pagination-BN80iKY6.js → pagination-dNzgZRjV.js} +2 -2
  64. package/dist/{pagination-BN80iKY6.js.map → pagination-dNzgZRjV.js.map} +1 -1
  65. package/dist/{popover-syU1104E.js → popover-C2w2uRlu.js} +2 -2
  66. package/dist/{popover-syU1104E.js.map → popover-C2w2uRlu.js.map} +1 -1
  67. package/dist/primitives/accordion.js +1 -1
  68. package/dist/primitives/alert-dialog.js +1 -1
  69. package/dist/primitives/autocomplete.js +1 -1
  70. package/dist/primitives/avatar.js +1 -1
  71. package/dist/primitives/button.js +1 -1
  72. package/dist/primitives/checkbox-group.js +1 -1
  73. package/dist/primitives/checkbox.js +1 -1
  74. package/dist/primitives/collapsible.js +1 -1
  75. package/dist/primitives/combobox.js +1 -1
  76. package/dist/primitives/context-menu.js +1 -1
  77. package/dist/primitives/dialog.js +1 -1
  78. package/dist/primitives/direction-provider.js +1 -1
  79. package/dist/primitives/field.js +1 -1
  80. package/dist/primitives/fieldset.js +1 -1
  81. package/dist/primitives/form.js +1 -1
  82. package/dist/primitives/input.js +1 -1
  83. package/dist/primitives/menu.js +1 -1
  84. package/dist/primitives/menubar.js +1 -1
  85. package/dist/primitives/meter.js +1 -1
  86. package/dist/primitives/navigation-menu.js +1 -1
  87. package/dist/primitives/number-field.js +1 -1
  88. package/dist/primitives/popover.js +1 -1
  89. package/dist/primitives/preview-card.js +1 -1
  90. package/dist/primitives/progress.js +1 -1
  91. package/dist/primitives/radio-group.js +1 -1
  92. package/dist/primitives/radio.js +1 -1
  93. package/dist/primitives/scroll-area.js +1 -1
  94. package/dist/primitives/select.js +1 -1
  95. package/dist/primitives/separator.js +1 -1
  96. package/dist/primitives/slider.js +1 -1
  97. package/dist/primitives/switch.js +1 -1
  98. package/dist/primitives/tabs.js +1 -1
  99. package/dist/primitives/toast.js +1 -1
  100. package/dist/primitives/toggle-group.js +1 -1
  101. package/dist/primitives/toggle.js +1 -1
  102. package/dist/primitives/toolbar.js +1 -1
  103. package/dist/primitives/tooltip.js +1 -1
  104. package/dist/primitives.js +1 -1
  105. package/dist/{radio-CWMtSx65.js → radio-B8Jk1PFe.js} +2 -2
  106. package/dist/{radio-CWMtSx65.js.map → radio-B8Jk1PFe.js.map} +1 -1
  107. package/dist/{schemas-DbIwo0ET.js → schemas-DKFFjjzb.js} +216 -213
  108. package/dist/{schemas-DbIwo0ET.js.map → schemas-DKFFjjzb.js.map} +1 -1
  109. package/dist/{select-G6JqBVkg.js → select-BWTULnCR.js} +3 -3
  110. package/dist/{select-G6JqBVkg.js.map → select-BWTULnCR.js.map} +1 -1
  111. package/dist/{sensitive-input-DNFpycoy.js → sensitive-input-CgjTfZLO.js} +4 -4
  112. package/dist/{sensitive-input-DNFpycoy.js.map → sensitive-input-CgjTfZLO.js.map} +1 -1
  113. package/dist/src/components/banner/banner.d.ts +28 -11
  114. package/dist/src/components/banner/banner.d.ts.map +1 -1
  115. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  116. package/dist/src/components/combobox/combobox.d.ts +4 -1
  117. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  118. package/dist/styles/kumo-standalone.css +1 -1
  119. package/dist/{switch-CmsZ4z-g.js → switch-DdjM7eh6.js} +3 -3
  120. package/dist/{switch-CmsZ4z-g.js.map → switch-DdjM7eh6.js.map} +1 -1
  121. package/dist/{table-Dc0AGcLV.js → table-D1EXUDHL.js} +2 -2
  122. package/dist/{table-Dc0AGcLV.js.map → table-D1EXUDHL.js.map} +1 -1
  123. package/dist/{tabs-BpD1iUiz.js → tabs-Bs43O3E4.js} +2 -2
  124. package/dist/{tabs-BpD1iUiz.js.map → tabs-Bs43O3E4.js.map} +1 -1
  125. package/dist/{toast-BrR0pjLE.js → toast-BqZw7a2p.js} +2 -2
  126. package/dist/{toast-BrR0pjLE.js.map → toast-BqZw7a2p.js.map} +1 -1
  127. package/dist/{tooltip-daVJYtXY.js → tooltip-BwOFPK5h.js} +2 -2
  128. package/dist/{tooltip-daVJYtXY.js.map → tooltip-BwOFPK5h.js.map} +1 -1
  129. package/dist/{vendor-base-ui-9w7J6BvW.js → vendor-base-ui-B61LL9jT.js} +3 -3
  130. package/dist/{vendor-base-ui-9w7J6BvW.js.map → vendor-base-ui-B61LL9jT.js.map} +1 -1
  131. package/package.json +1 -1
  132. package/dist/banner-4fkH6Sbt.js +0 -51
  133. package/dist/banner-4fkH6Sbt.js.map +0 -1
  134. package/dist/checkbox-Dt8iSNOg.js.map +0 -1
  135. package/dist/combobox-BIC-YZ2L.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @cloudflare/kumo
2
2
 
3
+ ## 1.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - cf4ff38: Refactor Banner component with softer styling and i18n-friendly props
8
+ - Added `title` and `description` props for structured content with i18n support
9
+ - Softened visual appearance: reduced background opacity (20% -> 10%), muted border colors
10
+ - Text now uses `text-kumo-default` for readability, with colored icons for variant indication
11
+ - Added `iconClasses` to variant config for per-variant icon coloring
12
+ - Component now uses `forwardRef` and sets `displayName` per conventions
13
+ - Deprecated `children` and `text` props in favor of `title`/`description`
14
+ - Legacy `children` prop still works for backwards compatibility
15
+
16
+ ### Patch Changes
17
+
18
+ - 0ca3b05: Fix Checkbox ring color to use `ring-kumo-contrast` when checked or indeterminate
19
+ - f69df6d: Fix Combobox dropdown scrolling regression and improve scroll behavior.
20
+
21
+ **Bug fix:** The `overflow-hidden` class was accidentally re-introduced during a semantic color token migration, which overrode `overflow-y-auto` and caused dropdown content to be clipped instead of scrollable.
22
+
23
+ **Improvement:** Restructured Combobox.Content to use flexbox layout so that when using `Combobox.Input` inside the dropdown (searchable popup pattern), the input stays fixed at the top while only the list scrolls. Previously, the entire popup content would scroll together.
24
+
25
+ **Scrollbar fix:** Moved horizontal padding from the popup container to individual child components, so the scrollbar renders flush with the popup edge instead of being inset (which was clipping the checkmark indicators).
26
+
3
27
  ## 1.7.0
4
28
 
5
29
  ### Minor Changes
@@ -70,14 +70,24 @@
70
70
  "Banner": {
71
71
  "name": "Banner",
72
72
  "type": "component",
73
- "description": "Full-width message bar for informational, warning, or error notices.",
73
+ "description": "Full-width message bar for informational, warning, or error notices. Supports structured title/description for i18n, or simple children for basic usage.",
74
74
  "importPath": "@cloudflare/kumo",
75
75
  "category": "Feedback",
76
76
  "props": {
77
77
  "icon": {
78
78
  "type": "ReactNode",
79
79
  "optional": true,
80
- "description": "Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`)."
80
+ "description": "Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`)."
81
+ },
82
+ "title": {
83
+ "type": "string",
84
+ "optional": true,
85
+ "description": "Primary heading text for the banner. Use for i18n string injection."
86
+ },
87
+ "description": {
88
+ "type": "ReactNode",
89
+ "optional": true,
90
+ "description": "Secondary description text displayed below the title. Use for i18n string injection."
81
91
  },
82
92
  "text": {
83
93
  "type": "string",
@@ -85,8 +95,7 @@
85
95
  },
86
96
  "children": {
87
97
  "type": "ReactNode",
88
- "optional": true,
89
- "description": "Banner message content. Accepts strings or custom React elements."
98
+ "optional": true
90
99
  },
91
100
  "variant": {
92
101
  "type": "enum",
@@ -103,9 +112,9 @@
103
112
  "error": "Error banner for critical issues"
104
113
  },
105
114
  "classes": {
106
- "default": "bg-kumo-info/20 border-kumo-info text-kumo-link selection:bg-kumo-info-tint",
107
- "alert": "bg-kumo-warning/20 border-kumo-warning text-kumo-warning selection:bg-kumo-warning-tint",
108
- "error": "bg-kumo-danger/20 border-kumo-danger text-kumo-danger selection:bg-kumo-danger-tint"
115
+ "default": "bg-kumo-info/10 border-kumo-info/30 text-kumo-info selection:bg-kumo-info-tint",
116
+ "alert": "bg-kumo-warning/10 border-kumo-warning/30 text-kumo-warning selection:bg-kumo-warning-tint",
117
+ "error": "bg-kumo-danger/10 border-kumo-danger/30 text-kumo-danger selection:bg-kumo-danger-tint"
109
118
  },
110
119
  "default": "default"
111
120
  },
@@ -116,12 +125,14 @@
116
125
  }
117
126
  },
118
127
  "examples": [
119
- "<div className=\"space-y-3\">\n <Banner>This is an informational banner.</Banner>\n <Banner variant=\"alert\">This is an alert banner.</Banner>\n <Banner variant=\"error\">This is an error banner.</Banner>\n </div>",
120
- "<Banner>This is an informational banner.</Banner>",
121
- "<Banner variant=\"alert\">Your session will expire soon.</Banner>",
122
- "<Banner variant=\"error\">We couldn't save your changes.</Banner>",
123
- "<Banner icon={<WarningCircle />} variant=\"alert\">\n Review your billing information.\n </Banner>",
124
- "<Banner icon={<Info />}>\n <Text DANGEROUS_className=\"text-inherit\">\n This banner supports <strong>custom content</strong> with Text.\n </Text>\n </Banner>"
128
+ "<div className=\"space-y-3\">\n <Banner\n icon={<Info weight=\"fill\" />}\n title=\"Update available\"\n description=\"A new version is ready to install.\"\n />\n <Banner\n icon={<Warning weight=\"fill\" />}\n variant=\"alert\"\n title=\"Session expiring\"\n description=\"Your session will expire in 5 minutes.\"\n />\n <Banner\n icon={<WarningCircle weight=\"fill\" />}\n variant=\"error\"\n title=\"Save failed\"\n description=\"We couldn't save your changes. Please try again.\"\n />\n </div>",
129
+ "<Banner\n icon={<Info weight=\"fill\" />}\n title=\"Update available\"\n description=\"A new version is ready to install.\"\n />",
130
+ "<Banner\n icon={<Warning weight=\"fill\" />}\n variant=\"alert\"\n title=\"Session expiring\"\n description=\"Your session will expire in 5 minutes.\"\n />",
131
+ "<Banner\n icon={<WarningCircle weight=\"fill\" />}\n variant=\"error\"\n title=\"Save failed\"\n description=\"We couldn't save your changes. Please try again.\"\n />",
132
+ "<Banner\n icon={<Info weight=\"fill\" />}\n title=\"Your changes have been saved.\"\n />",
133
+ "<Banner\n icon={<Warning weight=\"fill\" />}\n variant=\"alert\"\n title=\"Review required\"\n description=\"Please review your billing information before proceeding.\"\n />",
134
+ "<Banner\n icon={<Info weight=\"fill\" />}\n title=\"Custom content supported\"\n description={\n <Text DANGEROUS_className=\"text-inherit\">\n This banner supports <strong>custom content</strong> with Text.\n </Text>\n }\n />",
135
+ "<Banner icon={<Info />}>This is a simple banner using children.</Banner>"
125
136
  ],
126
137
  "colors": [
127
138
  "bg-kumo-danger",
@@ -134,10 +145,10 @@
134
145
  "border-kumo-info",
135
146
  "border-kumo-warning",
136
147
  "text-kumo-danger",
137
- "text-kumo-link",
148
+ "text-kumo-info",
138
149
  "text-kumo-warning"
139
150
  ],
140
- "baseStyles": "flex w-full items-center gap-2 rounded-lg border px-4 py-1.5 text-base"
151
+ "baseStyles": "flex w-full items-start gap-3 rounded-lg border px-4 py-3 text-base"
141
152
  },
142
153
  "Breadcrumbs": {
143
154
  "name": "Breadcrumbs",
@@ -509,6 +520,7 @@
509
520
  "bg-kumo-base",
510
521
  "bg-kumo-contrast",
511
522
  "border-kumo-line",
523
+ "ring-kumo-contrast",
512
524
  "ring-kumo-danger",
513
525
  "ring-kumo-line",
514
526
  "ring-kumo-ring",
@@ -2182,19 +2194,8 @@
2182
2194
  },
2183
2195
  "List": {
2184
2196
  "name": "List",
2185
- "description": "A container for combobox items. Supports render prop for custom item rendering.",
2186
- "props": {
2187
- "children": {
2188
- "type": "ReactNode | ((item: T, index: number) => ReactNode)",
2189
- "description": "Items to render, or a function that receives each item and returns a node"
2190
- }
2191
- },
2192
- "isPassThrough": true,
2193
- "baseComponent": "ComboboxBase.List",
2194
- "usageExamples": [
2195
- "<Combobox.List>\n {(item) => <Combobox.Item value={item}>{item.label}</Combobox.Item>}\n</Combobox.List>"
2196
- ],
2197
- "renderElement": "<div>"
2197
+ "description": "List sub-component",
2198
+ "props": {}
2198
2199
  },
2199
2200
  "Collection": {
2200
2201
  "name": "Collection",
@@ -59,7 +59,7 @@ Small status label for categorizing or highlighting content.
59
59
 
60
60
  ### Banner
61
61
 
62
- Full-width message bar for informational, warning, or error notices.
62
+ Full-width message bar for informational, warning, or error notices. Supports structured title/description for i18n, or simple children for basic usage.
63
63
 
64
64
  **Type:** component
65
65
 
@@ -70,10 +70,13 @@ Full-width message bar for informational, warning, or error notices.
70
70
  **Props:**
71
71
 
72
72
  - `icon`: ReactNode
73
- Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`).
73
+ Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`).
74
+ - `title`: string
75
+ Primary heading text for the banner. Use for i18n string injection.
76
+ - `description`: ReactNode
77
+ Secondary description text displayed below the title. Use for i18n string injection.
74
78
  - `text`: string
75
79
  - `children`: ReactNode
76
- Banner message content. Accepts strings or custom React elements.
77
80
  - `variant`: enum [default: default]
78
81
  - `"default"`: Informational banner for general messages
79
82
  - `"alert"`: Warning banner for cautionary messages
@@ -83,38 +86,70 @@ Full-width message bar for informational, warning, or error notices.
83
86
 
84
87
  **Colors (kumo tokens used):**
85
88
 
86
- `bg-kumo-danger`, `bg-kumo-danger-tint`, `bg-kumo-info`, `bg-kumo-info-tint`, `bg-kumo-warning`, `bg-kumo-warning-tint`, `border-kumo-danger`, `border-kumo-info`, `border-kumo-warning`, `text-kumo-danger`, `text-kumo-link`, `text-kumo-warning`
89
+ `bg-kumo-danger`, `bg-kumo-danger-tint`, `bg-kumo-info`, `bg-kumo-info-tint`, `bg-kumo-warning`, `bg-kumo-warning-tint`, `border-kumo-danger`, `border-kumo-info`, `border-kumo-warning`, `text-kumo-danger`, `text-kumo-info`, `text-kumo-warning`
87
90
 
88
91
  **Examples:**
89
92
 
90
93
  ```tsx
91
94
  <div className="space-y-3">
92
- <Banner>This is an informational banner.</Banner>
93
- <Banner variant="alert">This is an alert banner.</Banner>
94
- <Banner variant="error">This is an error banner.</Banner>
95
+ <Banner
96
+ icon={<Info weight="fill" />}
97
+ title="Update available"
98
+ description="A new version is ready to install."
99
+ />
100
+ <Banner
101
+ icon={<Warning weight="fill" />}
102
+ variant="alert"
103
+ title="Session expiring"
104
+ description="Your session will expire in 5 minutes."
105
+ />
106
+ <Banner
107
+ icon={<WarningCircle weight="fill" />}
108
+ variant="error"
109
+ title="Save failed"
110
+ description="We couldn't save your changes. Please try again."
111
+ />
95
112
  </div>
96
113
  ```
97
114
 
98
115
  ```tsx
99
- <Banner>This is an informational banner.</Banner>
116
+ <Banner
117
+ icon={<Info weight="fill" />}
118
+ title="Update available"
119
+ description="A new version is ready to install."
120
+ />
100
121
  ```
101
122
 
102
123
  ```tsx
103
- <Banner variant="alert">Your session will expire soon.</Banner>
124
+ <Banner
125
+ icon={<Warning weight="fill" />}
126
+ variant="alert"
127
+ title="Session expiring"
128
+ description="Your session will expire in 5 minutes."
129
+ />
104
130
  ```
105
131
 
106
132
  ```tsx
107
- <Banner icon={<WarningCircle />} variant="alert">
108
- Review your billing information.
109
- </Banner>
133
+ <Banner
134
+ icon={<Info weight="fill" />}
135
+ title="Your changes have been saved."
136
+ />
110
137
  ```
111
138
 
112
139
  ```tsx
113
- <Banner icon={<Info />}>
114
- <Text DANGEROUS_className="text-inherit">
115
- This banner supports <strong>custom content</strong> with Text.
116
- </Text>
117
- </Banner>
140
+ <Banner
141
+ icon={<Info weight="fill" />}
142
+ title="Custom content supported"
143
+ description={
144
+ <Text DANGEROUS_className="text-inherit">
145
+ This banner supports <strong>custom content</strong> with Text.
146
+ </Text>
147
+ }
148
+ />
149
+ ```
150
+
151
+ ```tsx
152
+ <Banner icon={<Info />}>This is a simple banner using children.</Banner>
118
153
  ```
119
154
 
120
155
 
@@ -387,7 +422,7 @@ Checkbox component
387
422
 
388
423
  **Colors (kumo tokens used):**
389
424
 
390
- `bg-kumo-base`, `bg-kumo-contrast`, `border-kumo-line`, `ring-kumo-danger`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-inverse`, `text-kumo-subtle`
425
+ `bg-kumo-base`, `bg-kumo-contrast`, `border-kumo-line`, `ring-kumo-contrast`, `ring-kumo-danger`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-inverse`, `text-kumo-subtle`
391
426
 
392
427
  **Styling:**
393
428
 
@@ -1221,17 +1256,7 @@ Group sub-component
1221
1256
 
1222
1257
  #### Combobox.List
1223
1258
 
1224
- A container for combobox items. Supports render prop for custom item rendering. Renders a `<div>` element.
1225
-
1226
- Props:
1227
- - `children`: ReactNode | ((item: T, index: number) => ReactNode) - Items to render, or a function that receives each item and returns a node
1228
-
1229
- Usage:
1230
- ```tsx
1231
- <Combobox.List>
1232
- {(item) => <Combobox.Item value={item}>{item.label}</Combobox.Item>}
1233
- </Combobox.List>
1234
- ```
1259
+ List sub-component
1235
1260
 
1236
1261
  #### Combobox.Collection
1237
1262
 
package/ai/schemas.ts CHANGED
@@ -117,9 +117,11 @@ export const BadgePropsSchema = z.object({
117
117
  });
118
118
 
119
119
  export const BannerPropsSchema = z.object({
120
- icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`).
120
+ icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`).
121
+ title: z.string().optional(), // Primary heading text for the banner. Use for i18n string injection.
122
+ description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Secondary description text displayed below the title. Use for i18n string injection.
121
123
  text: z.string().optional(),
122
- children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Banner message content. Accepts strings or custom React elements.
124
+ children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
123
125
  variant: z.enum(["default", "alert", "error"]).optional(), // Visual style of the banner. - `"default"` — Informational blue banner for general messages - `"alert"` — Warning yellow banner for cautionary messages - `"error"` — Error red banner for critical issues
124
126
  className: z.string().optional(), // Additional CSS classes merged via `cn()`.
125
127
  });
@@ -1 +1 @@
1
- 1771589636862
1
+ 1771946430289
@@ -112,6 +112,10 @@ export declare const BannerPropsSchema: z.ZodObject<{
112
112
  icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
113
113
  path: z.ZodString;
114
114
  }, z.core.$strip>]>]>>;
115
+ title: z.ZodOptional<z.ZodString>;
116
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
117
+ path: z.ZodString;
118
+ }, z.core.$strip>]>]>>;
115
119
  text: z.ZodOptional<z.ZodString>;
116
120
  children: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
117
121
  path: z.ZodString;
@@ -1018,6 +1022,7 @@ export declare const TooltipPropsSchema: z.ZodObject<{
1018
1022
  */
1019
1023
  export type KumoComponentType = "Badge" | "Banner" | "Breadcrumbs" | "Button" | "Checkbox" | "ClipboardText" | "CloudflareLogo" | "Code" | "Collapsible" | "Combobox" | "CommandPalette" | "DatePicker" | "DateRangePicker" | "Dialog" | "DropdownMenu" | "Empty" | "Field" | "Grid" | "Input" | "InputArea" | "Label" | "LayerCard" | "Link" | "Loader" | "MenuBar" | "Meter" | "Pagination" | "Popover" | "Radio" | "Select" | "SensitiveInput" | "Surface" | "Switch" | "Table" | "Tabs" | "Text" | "Toasty" | "Tooltip";
1020
1024
  export declare const KumoComponentTypeSchema: z.ZodEnum<{
1025
+ Banner: "Banner";
1021
1026
  Button: "Button";
1022
1027
  Label: "Label";
1023
1028
  Checkbox: "Checkbox";
@@ -1036,7 +1041,6 @@ export declare const KumoComponentTypeSchema: z.ZodEnum<{
1036
1041
  DatePicker: "DatePicker";
1037
1042
  Select: "Select";
1038
1043
  Badge: "Badge";
1039
- Banner: "Banner";
1040
1044
  Breadcrumbs: "Breadcrumbs";
1041
1045
  Combobox: "Combobox";
1042
1046
  CommandPalette: "CommandPalette";
@@ -1078,6 +1082,10 @@ export declare const ComponentPropsSchemas: {
1078
1082
  icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
1079
1083
  path: z.ZodString;
1080
1084
  }, z.core.$strip>]>]>>;
1085
+ title: z.ZodOptional<z.ZodString>;
1086
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
1087
+ path: z.ZodString;
1088
+ }, z.core.$strip>]>]>>;
1081
1089
  text: z.ZodOptional<z.ZodString>;
1082
1090
  children: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
1083
1091
  path: z.ZodString;
@@ -1986,6 +1994,7 @@ export declare const ComponentPropsSchemas: {
1986
1994
  export declare const UIElementBaseSchema: z.ZodObject<{
1987
1995
  key: z.ZodString;
1988
1996
  type: z.ZodEnum<{
1997
+ Banner: "Banner";
1989
1998
  Button: "Button";
1990
1999
  Label: "Label";
1991
2000
  Checkbox: "Checkbox";
@@ -2004,7 +2013,6 @@ export declare const UIElementBaseSchema: z.ZodObject<{
2004
2013
  DatePicker: "DatePicker";
2005
2014
  Select: "Select";
2006
2015
  Badge: "Badge";
2007
- Banner: "Banner";
2008
2016
  Breadcrumbs: "Breadcrumbs";
2009
2017
  Combobox: "Combobox";
2010
2018
  CommandPalette: "CommandPalette";
@@ -2072,6 +2080,7 @@ export declare const UITreeSchema: z.ZodObject<{
2072
2080
  elements: z.ZodRecord<z.ZodString, z.ZodObject<{
2073
2081
  key: z.ZodString;
2074
2082
  type: z.ZodEnum<{
2083
+ Banner: "Banner";
2075
2084
  Button: "Button";
2076
2085
  Label: "Label";
2077
2086
  Checkbox: "Checkbox";
@@ -2090,7 +2099,6 @@ export declare const UITreeSchema: z.ZodObject<{
2090
2099
  DatePicker: "DatePicker";
2091
2100
  Select: "Select";
2092
2101
  Badge: "Badge";
2093
- Banner: "Banner";
2094
2102
  Breadcrumbs: "Breadcrumbs";
2095
2103
  Combobox: "Combobox";
2096
2104
  CommandPalette: "CommandPalette";
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../ai/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../ai/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { jsxs as l, jsx as n } from "react/jsx-runtime";
3
+ import { forwardRef as E, isValidElement as d } from "react";
4
+ import { c as r } from "./cn-Bhsu1vx2.js";
5
+ const R = "flex w-full items-start gap-3 rounded-lg border px-4 py-3 text-base", f = {
6
+ variant: {
7
+ default: {
8
+ classes: "bg-kumo-info/10 border-kumo-info/30 text-kumo-info selection:bg-kumo-info-tint",
9
+ iconClasses: "text-kumo-info",
10
+ description: "Informational banner for general messages"
11
+ },
12
+ alert: {
13
+ classes: "bg-kumo-warning/10 border-kumo-warning/30 text-kumo-warning selection:bg-kumo-warning-tint",
14
+ iconClasses: "text-kumo-warning",
15
+ description: "Warning banner for cautionary messages"
16
+ },
17
+ error: {
18
+ classes: "bg-kumo-danger/10 border-kumo-danger/30 text-kumo-danger selection:bg-kumo-danger-tint",
19
+ iconClasses: "text-kumo-danger",
20
+ description: "Error banner for critical issues"
21
+ }
22
+ }
23
+ }, k = {
24
+ variant: "default"
25
+ };
26
+ function g({
27
+ variant: e = k.variant
28
+ } = {}) {
29
+ return r(
30
+ // Base styles (exported as KUMO_BANNER_BASE_STYLES for Figma plugin)
31
+ R,
32
+ // Apply variant styles from KUMO_BANNER_VARIANTS
33
+ f.variant[e].classes
34
+ );
35
+ }
36
+ var p = /* @__PURE__ */ ((e) => (e[e.DEFAULT = 0] = "DEFAULT", e[e.ALERT = 1] = "ALERT", e[e.ERROR = 2] = "ERROR", e))(p || {});
37
+ const A = E(function({
38
+ icon: a,
39
+ title: o,
40
+ description: s,
41
+ children: x,
42
+ text: b,
43
+ variant: t = k.variant,
44
+ className: c
45
+ }, m) {
46
+ const u = f.variant[t];
47
+ if (o || s)
48
+ return /* @__PURE__ */ l("div", { ref: m, className: r(g({ variant: t }), c), children: [
49
+ a && /* @__PURE__ */ n(
50
+ "span",
51
+ {
52
+ className: r(
53
+ "shrink-0 flex items-center h-[1.375em]",
54
+ u.iconClasses
55
+ ),
56
+ children: a
57
+ }
58
+ ),
59
+ /* @__PURE__ */ l("div", { className: "flex flex-col gap-0.5", children: [
60
+ o && /* @__PURE__ */ n("p", { className: "font-medium leading-snug", children: o }),
61
+ s && /* @__PURE__ */ n("div", { className: "text-sm leading-snug", children: d(s) ? s : /* @__PURE__ */ n("p", { children: s }) })
62
+ ] })
63
+ ] });
64
+ const i = x ?? b, N = d(i) ? i : /* @__PURE__ */ n("p", { children: i });
65
+ return /* @__PURE__ */ l("div", { ref: m, className: r(g({ variant: t }), c), children: [
66
+ a && /* @__PURE__ */ n("span", { className: r("shrink-0", u.iconClasses), children: a }),
67
+ N
68
+ ] });
69
+ });
70
+ A.displayName = "Banner";
71
+ export {
72
+ A as B,
73
+ p as a
74
+ };
75
+ //# sourceMappingURL=banner-BKDBfLHA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner-BKDBfLHA.js","sources":["../src/components/banner/banner.tsx"],"sourcesContent":["import { type ReactNode, isValidElement, forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Base styles applied to all banner variants. */\nexport const KUMO_BANNER_BASE_STYLES =\n \"flex w-full items-start gap-3 rounded-lg border px-4 py-3 text-base\";\n\n/** Banner variant definitions mapping variant names to their Tailwind classes and descriptions. */\nexport const KUMO_BANNER_VARIANTS = {\n variant: {\n default: {\n classes:\n \"bg-kumo-info/10 border-kumo-info/30 text-kumo-info selection:bg-kumo-info-tint\",\n iconClasses: \"text-kumo-info\",\n description: \"Informational banner for general messages\",\n },\n alert: {\n classes:\n \"bg-kumo-warning/10 border-kumo-warning/30 text-kumo-warning selection:bg-kumo-warning-tint\",\n iconClasses: \"text-kumo-warning\",\n description: \"Warning banner for cautionary messages\",\n },\n error: {\n classes:\n \"bg-kumo-danger/10 border-kumo-danger/30 text-kumo-danger selection:bg-kumo-danger-tint\",\n iconClasses: \"text-kumo-danger\",\n description: \"Error banner for critical issues\",\n },\n },\n} as const;\n\nexport const KUMO_BANNER_DEFAULT_VARIANTS = {\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_BANNER_VARIANTS\nexport type KumoBannerVariant = keyof typeof KUMO_BANNER_VARIANTS.variant;\n\nexport interface KumoBannerVariantsProps {\n /**\n * Visual style of the banner.\n * - `\"default\"` — Informational banner for general messages\n * - `\"alert\"` — Warning banner for cautionary messages\n * - `\"error\"` — Error banner for critical issues\n * @default \"default\"\n */\n variant?: KumoBannerVariant;\n}\n\nexport function bannerVariants({\n variant = KUMO_BANNER_DEFAULT_VARIANTS.variant,\n}: KumoBannerVariantsProps = {}) {\n return cn(\n // Base styles (exported as KUMO_BANNER_BASE_STYLES for Figma plugin)\n KUMO_BANNER_BASE_STYLES,\n // Apply variant styles from KUMO_BANNER_VARIANTS\n KUMO_BANNER_VARIANTS.variant[variant].classes,\n );\n}\n\n// Legacy enum for backwards compatibility\nexport enum BannerVariant {\n DEFAULT,\n ALERT,\n ERROR,\n}\n\n/**\n * Banner component props.\n *\n * @example\n * ```tsx\n * <Banner title=\"Update available\" description=\"A new version is ready to install.\" />\n * <Banner variant=\"alert\" title=\"Session expiring\" description=\"Your session will expire soon.\" />\n * <Banner variant=\"error\" title=\"Save failed\" description=\"We couldn't save your changes.\" />\n * ```\n */\nexport interface BannerProps {\n /** Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`). */\n icon?: ReactNode;\n /** Primary heading text for the banner. Use for i18n string injection. */\n title?: string;\n /** Secondary description text displayed below the title. Use for i18n string injection. */\n description?: ReactNode;\n /** @deprecated Use `title` and `description` instead. Will be removed in a future major version. */\n text?: string;\n /** @deprecated Use `title` and `description` instead for better i18n support. */\n children?: ReactNode;\n /**\n * Visual style of the banner.\n * - `\"default\"` — Informational blue banner for general messages\n * - `\"alert\"` — Warning yellow banner for cautionary messages\n * - `\"error\"` — Error red banner for critical issues\n * @default \"default\"\n */\n variant?: KumoBannerVariant;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n}\n\n/**\n * Full-width message bar for informational, warning, or error notices.\n * Supports structured title/description for i18n, or simple children for basic usage.\n *\n * @example\n * ```tsx\n * // Structured (recommended for i18n)\n * <Banner\n * variant=\"alert\"\n * icon={<WarningCircle />}\n * title=\"Review required\"\n * description=\"Please review your billing information.\"\n * />\n *\n * // Simple (backwards compatible)\n * <Banner variant=\"alert\" icon={<WarningCircle />}>\n * Review your billing information.\n * </Banner>\n * ```\n */\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>(function Banner(\n {\n icon,\n title,\n description,\n children,\n text,\n variant = KUMO_BANNER_DEFAULT_VARIANTS.variant,\n className,\n },\n ref,\n) {\n const variantConfig = KUMO_BANNER_VARIANTS.variant[variant];\n\n // Structured mode: title and/or description provided\n if (title || description) {\n return (\n <div ref={ref} className={cn(bannerVariants({ variant }), className)}>\n {icon && (\n <span\n className={cn(\n \"shrink-0 flex items-center h-[1.375em]\",\n variantConfig.iconClasses,\n )}\n >\n {icon}\n </span>\n )}\n <div className=\"flex flex-col gap-0.5\">\n {title && <p className=\"font-medium leading-snug\">{title}</p>}\n {description && (\n <div className=\"text-sm leading-snug\">\n {isValidElement(description) ? description : <p>{description}</p>}\n </div>\n )}\n </div>\n </div>\n );\n }\n\n // Legacy mode: children or text prop\n const value = children ?? text;\n const content = isValidElement(value) ? value : <p>{value}</p>;\n\n return (\n <div ref={ref} className={cn(bannerVariants({ variant }), className)}>\n {icon && (\n <span className={cn(\"shrink-0\", variantConfig.iconClasses)}>\n {icon}\n </span>\n )}\n {content}\n </div>\n );\n});\n\nBanner.displayName = \"Banner\";\n"],"names":["KUMO_BANNER_BASE_STYLES","KUMO_BANNER_VARIANTS","KUMO_BANNER_DEFAULT_VARIANTS","bannerVariants","variant","cn","BannerVariant","Banner","forwardRef","icon","title","description","children","text","className","ref","variantConfig","jsxs","jsx","isValidElement","value","content"],"mappings":";;;;AAIO,MAAMA,IACX,uEAGWC,IAAuB;AAAA,EAClC,SAAS;AAAA,IACP,SAAS;AAAA,MACP,SACE;AAAA,MACF,aAAa;AAAA,MACb,aAAa;AAAA,IAAA;AAAA,IAEf,OAAO;AAAA,MACL,SACE;AAAA,MACF,aAAa;AAAA,MACb,aAAa;AAAA,IAAA;AAAA,IAEf,OAAO;AAAA,MACL,SACE;AAAA,MACF,aAAa;AAAA,MACb,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GAEaC,IAA+B;AAAA,EAC1C,SAAS;AACX;AAgBO,SAASC,EAAe;AAAA,EAC7B,SAAAC,IAAUF,EAA6B;AACzC,IAA6B,IAAI;AAC/B,SAAOG;AAAA;AAAA,IAELL;AAAA;AAAA,IAEAC,EAAqB,QAAQG,CAAO,EAAE;AAAA,EAAA;AAE1C;AAGO,IAAKE,sBAAAA,OACVA,EAAAA,EAAA,UAAA,CAAA,IAAA,WACAA,EAAAA,EAAA,QAAA,CAAA,IAAA,SACAA,EAAAA,EAAA,QAAA,CAAA,IAAA,SAHUA,IAAAA,KAAA,CAAA,CAAA;AA2DL,MAAMC,IAASC,EAAwC,SAC5D;AAAA,EACE,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAT,IAAUF,EAA6B;AAAA,EACvC,WAAAY;AACF,GACAC,GACA;AACA,QAAMC,IAAgBf,EAAqB,QAAQG,CAAO;AAG1D,MAAIM,KAASC;AACX,WACE,gBAAAM,EAAC,OAAA,EAAI,KAAAF,GAAU,WAAWV,EAAGF,EAAe,EAAE,SAAAC,EAAA,CAAS,GAAGU,CAAS,GAChE,UAAA;AAAA,MAAAL,KACC,gBAAAS;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWb;AAAA,YACT;AAAA,YACAW,EAAc;AAAA,UAAA;AAAA,UAGf,UAAAP;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,gBAAAQ,EAAC,OAAA,EAAI,WAAU,yBACZ,UAAA;AAAA,QAAAP,KAAS,gBAAAQ,EAAC,KAAA,EAAE,WAAU,4BAA4B,UAAAR,GAAM;AAAA,QACxDC,KACC,gBAAAO,EAAC,OAAA,EAAI,WAAU,wBACZ,UAAAC,EAAeR,CAAW,IAAIA,IAAc,gBAAAO,EAAC,KAAA,EAAG,UAAAP,EAAA,CAAY,EAAA,CAC/D;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,GACF;AAKJ,QAAMS,IAAQR,KAAYC,GACpBQ,IAAUF,EAAeC,CAAK,IAAIA,IAAQ,gBAAAF,EAAC,OAAG,UAAAE,GAAM;AAE1D,SACE,gBAAAH,EAAC,OAAA,EAAI,KAAAF,GAAU,WAAWV,EAAGF,EAAe,EAAE,SAAAC,EAAA,CAAS,GAAGU,CAAS,GAChE,UAAA;AAAA,IAAAL,KACC,gBAAAS,EAAC,UAAK,WAAWb,EAAG,YAAYW,EAAc,WAAW,GACtD,UAAAP,EAAA,CACH;AAAA,IAEDY;AAAA,EAAA,GACH;AAEJ,CAAC;AAEDd,EAAO,cAAc;"}
package/dist/catalog.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  let c = null, h = null;
3
3
  async function y() {
4
- return c || h || (h = import("./schemas-DbIwo0ET.js").then((t) => (c = t, c)), h);
4
+ return c || h || (h = import("./schemas-DKFFjjzb.js").then((t) => (c = t, c)), h);
5
5
  }
6
6
  function l() {
7
7
  if (!c)