@cloudflare/kumo 1.6.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 (159) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/ai/component-registry.json +30 -35
  3. package/ai/component-registry.md +54 -117
  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-Bw5rKPXz.js → clipboard-text-BVKGunue.js} +4 -4
  14. package/dist/{clipboard-text-Bw5rKPXz.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/flow.js +5640 -0
  28. package/dist/components/flow.js.map +1 -0
  29. package/dist/components/input.js +3 -3
  30. package/dist/components/label.js +1 -1
  31. package/dist/components/link.js +1 -1
  32. package/dist/components/menubar.js +1 -1
  33. package/dist/components/meter.js +1 -1
  34. package/dist/components/pagination.js +1 -1
  35. package/dist/components/popover.js +1 -1
  36. package/dist/components/radio.js +1 -1
  37. package/dist/components/select.js +1 -1
  38. package/dist/components/sensitive-input.js +1 -1
  39. package/dist/components/switch.js +1 -1
  40. package/dist/components/table.js +1 -1
  41. package/dist/components/tabs.js +1 -1
  42. package/dist/components/toast.js +2 -2
  43. package/dist/components/tooltip.js +1 -1
  44. package/dist/date-range-picker-CbKEQ9pi.js.map +1 -1
  45. package/dist/{dialog-toS9krNF.js → dialog-B2EHaSoL.js} +2 -2
  46. package/dist/{dialog-toS9krNF.js.map → dialog-B2EHaSoL.js.map} +1 -1
  47. package/dist/{dropdown-BquiYKKC.js → dropdown-mGDt95gv.js} +3 -3
  48. package/dist/{dropdown-BquiYKKC.js.map → dropdown-mGDt95gv.js.map} +1 -1
  49. package/dist/{field-DCq04TgZ.js → field-Bkh5pJay.js} +3 -3
  50. package/dist/{field-DCq04TgZ.js.map → field-Bkh5pJay.js.map} +1 -1
  51. package/dist/index.js +37 -35
  52. package/dist/index.js.map +1 -1
  53. package/dist/{input-CCR8NGG7.js → input-DjItb3_k.js} +3 -3
  54. package/dist/{input-CCR8NGG7.js.map → input-DjItb3_k.js.map} +1 -1
  55. package/dist/{input-area-DU2Yvp_t.js → input-area-BcidmGaO.js} +3 -3
  56. package/dist/{input-area-DU2Yvp_t.js.map → input-area-BcidmGaO.js.map} +1 -1
  57. package/dist/{input-group-C365-qBq.js → input-group-CMAvOKIV.js} +2 -2
  58. package/dist/{input-group-C365-qBq.js.map → input-group-CMAvOKIV.js.map} +1 -1
  59. package/dist/{label-zjtV7oXa.js → label-Cjpb7l1F.js} +2 -2
  60. package/dist/{label-zjtV7oXa.js.map → label-Cjpb7l1F.js.map} +1 -1
  61. package/dist/{link-C8pUZ4Q-.js → link-DUqZGMVk.js} +2 -2
  62. package/dist/{link-C8pUZ4Q-.js.map → link-DUqZGMVk.js.map} +1 -1
  63. package/dist/{menubar-D7WvAf6x.js → menubar-bgBP3EJi.js} +2 -2
  64. package/dist/{menubar-D7WvAf6x.js.map → menubar-bgBP3EJi.js.map} +1 -1
  65. package/dist/{meter-jQGKS1z4.js → meter-BziPAH9D.js} +2 -2
  66. package/dist/{meter-jQGKS1z4.js.map → meter-BziPAH9D.js.map} +1 -1
  67. package/dist/{pagination-BN80iKY6.js → pagination-dNzgZRjV.js} +2 -2
  68. package/dist/{pagination-BN80iKY6.js.map → pagination-dNzgZRjV.js.map} +1 -1
  69. package/dist/{popover-syU1104E.js → popover-C2w2uRlu.js} +2 -2
  70. package/dist/{popover-syU1104E.js.map → popover-C2w2uRlu.js.map} +1 -1
  71. package/dist/primitives/accordion.js +1 -1
  72. package/dist/primitives/alert-dialog.js +1 -1
  73. package/dist/primitives/autocomplete.js +1 -1
  74. package/dist/primitives/avatar.js +1 -1
  75. package/dist/primitives/button.js +1 -1
  76. package/dist/primitives/checkbox-group.js +1 -1
  77. package/dist/primitives/checkbox.js +1 -1
  78. package/dist/primitives/collapsible.js +1 -1
  79. package/dist/primitives/combobox.js +1 -1
  80. package/dist/primitives/context-menu.js +1 -1
  81. package/dist/primitives/dialog.js +1 -1
  82. package/dist/primitives/direction-provider.js +1 -1
  83. package/dist/primitives/field.js +1 -1
  84. package/dist/primitives/fieldset.js +1 -1
  85. package/dist/primitives/form.js +1 -1
  86. package/dist/primitives/input.js +1 -1
  87. package/dist/primitives/menu.js +1 -1
  88. package/dist/primitives/menubar.js +1 -1
  89. package/dist/primitives/meter.js +1 -1
  90. package/dist/primitives/navigation-menu.js +1 -1
  91. package/dist/primitives/number-field.js +1 -1
  92. package/dist/primitives/popover.js +1 -1
  93. package/dist/primitives/preview-card.js +1 -1
  94. package/dist/primitives/progress.js +1 -1
  95. package/dist/primitives/radio-group.js +1 -1
  96. package/dist/primitives/radio.js +1 -1
  97. package/dist/primitives/scroll-area.js +1 -1
  98. package/dist/primitives/select.js +1 -1
  99. package/dist/primitives/separator.js +1 -1
  100. package/dist/primitives/slider.js +1 -1
  101. package/dist/primitives/switch.js +1 -1
  102. package/dist/primitives/tabs.js +1 -1
  103. package/dist/primitives/toast.js +1 -1
  104. package/dist/primitives/toggle-group.js +1 -1
  105. package/dist/primitives/toggle.js +1 -1
  106. package/dist/primitives/toolbar.js +1 -1
  107. package/dist/primitives/tooltip.js +1 -1
  108. package/dist/primitives.js +1 -1
  109. package/dist/{radio-CWMtSx65.js → radio-B8Jk1PFe.js} +2 -2
  110. package/dist/{radio-CWMtSx65.js.map → radio-B8Jk1PFe.js.map} +1 -1
  111. package/dist/{schemas-DbIwo0ET.js → schemas-DKFFjjzb.js} +216 -213
  112. package/dist/{schemas-DbIwo0ET.js.map → schemas-DKFFjjzb.js.map} +1 -1
  113. package/dist/{select-G6JqBVkg.js → select-BWTULnCR.js} +3 -3
  114. package/dist/{select-G6JqBVkg.js.map → select-BWTULnCR.js.map} +1 -1
  115. package/dist/{sensitive-input-DNFpycoy.js → sensitive-input-CgjTfZLO.js} +4 -4
  116. package/dist/{sensitive-input-DNFpycoy.js.map → sensitive-input-CgjTfZLO.js.map} +1 -1
  117. package/dist/src/components/banner/banner.d.ts +28 -11
  118. package/dist/src/components/banner/banner.d.ts.map +1 -1
  119. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  120. package/dist/src/components/combobox/combobox.d.ts +4 -1
  121. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  122. package/dist/src/components/date-range-picker/date-range-picker.d.ts +7 -0
  123. package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  124. package/dist/src/components/date-range-picker/index.d.ts +3 -0
  125. package/dist/src/components/date-range-picker/index.d.ts.map +1 -1
  126. package/dist/src/components/flow/connectors.d.ts +35 -0
  127. package/dist/src/components/flow/connectors.d.ts.map +1 -0
  128. package/dist/src/components/flow/diagram.d.ts +62 -0
  129. package/dist/src/components/flow/diagram.d.ts.map +1 -0
  130. package/dist/src/components/flow/index.d.ts +26 -0
  131. package/dist/src/components/flow/index.d.ts.map +1 -0
  132. package/dist/src/components/flow/node.d.ts +52 -0
  133. package/dist/src/components/flow/node.d.ts.map +1 -0
  134. package/dist/src/components/flow/parallel.d.ts +5 -0
  135. package/dist/src/components/flow/parallel.d.ts.map +1 -0
  136. package/dist/src/components/flow/use-children.d.ts +69 -0
  137. package/dist/src/components/flow/use-children.d.ts.map +1 -0
  138. package/dist/src/index.d.ts +4 -0
  139. package/dist/src/index.d.ts.map +1 -1
  140. package/dist/styles/kumo-standalone.css +1 -1
  141. package/dist/styles/theme-kumo.css +1 -1
  142. package/dist/{switch-CmsZ4z-g.js → switch-DdjM7eh6.js} +3 -3
  143. package/dist/{switch-CmsZ4z-g.js.map → switch-DdjM7eh6.js.map} +1 -1
  144. package/dist/{table-Dc0AGcLV.js → table-D1EXUDHL.js} +2 -2
  145. package/dist/{table-Dc0AGcLV.js.map → table-D1EXUDHL.js.map} +1 -1
  146. package/dist/{tabs-BpD1iUiz.js → tabs-Bs43O3E4.js} +2 -2
  147. package/dist/{tabs-BpD1iUiz.js.map → tabs-Bs43O3E4.js.map} +1 -1
  148. package/dist/{toast-BrR0pjLE.js → toast-BqZw7a2p.js} +2 -2
  149. package/dist/{toast-BrR0pjLE.js.map → toast-BqZw7a2p.js.map} +1 -1
  150. package/dist/{tooltip-daVJYtXY.js → tooltip-BwOFPK5h.js} +2 -2
  151. package/dist/{tooltip-daVJYtXY.js.map → tooltip-BwOFPK5h.js.map} +1 -1
  152. package/dist/{vendor-base-ui-9w7J6BvW.js → vendor-base-ui-B61LL9jT.js} +3 -3
  153. package/dist/{vendor-base-ui-9w7J6BvW.js.map → vendor-base-ui-B61LL9jT.js.map} +1 -1
  154. package/package.json +7 -1
  155. package/scripts/theme-generator/config.ts +1 -1
  156. package/dist/banner-4fkH6Sbt.js +0 -51
  157. package/dist/banner-4fkH6Sbt.js.map +0 -1
  158. package/dist/checkbox-Dt8iSNOg.js.map +0 -1
  159. package/dist/combobox-BIC-YZ2L.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
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
+
27
+ ## 1.7.0
28
+
29
+ ### Minor Changes
30
+
31
+ - d9b6498: feat(flow): add FlowDiagram components for building directed flow diagrams
32
+
33
+ New components for visualizing workflows and data flows:
34
+ - `FlowDiagram` - Root container with pan/scroll support for large diagrams
35
+ - `FlowNode` - Individual node with automatic connector points
36
+ - `FlowNode.Anchor` - Custom attachment points for connectors within nodes
37
+ - `FlowParallelNode` - Container for parallel branches with junction connectors
38
+
39
+ Adds `motion` as a new dependency for smooth panning interactions.
40
+
41
+ ### Patch Changes
42
+
43
+ - 835a7c0: Deprecate DateRangePicker in favor of DatePicker with `mode="range"`
44
+ - Added `@deprecated` JSDoc comments to DateRangePicker component and its exports
45
+ - IDEs will now show deprecation warnings guiding users to use DatePicker instead
46
+
47
+ - 391f13a: Prevented ClipboardText from overflowing with long text values.
48
+ - d0e1d29: chore(kumo): add test scripts to root package.json
49
+
3
50
  ## 1.6.0
4
51
 
5
52
  ### 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",
@@ -2344,13 +2345,7 @@
2344
2345
  "description": "Callback when end date changes"
2345
2346
  }
2346
2347
  },
2347
- "examples": [
2348
- "<div className=\"flex flex-col gap-4\">\n <DateRangePicker\n onStartDateChange={setStartDate}\n onEndDateChange={setEndDate}\n />\n <div className=\"text-sm text-kumo-subtle\">\n {startDate && endDate ? (\n <span>\n Selected: {startDate.toLocaleDateString()} -{\" \"}\n {endDate.toLocaleDateString()}\n </span>\n ) : startDate ? (\n <span>Start: {startDate.toLocaleDateString()} (select end date)</span>\n ) : (\n <span>Select a date range</span>\n )}\n </div>\n </div>",
2349
- "<div className=\"flex flex-col gap-8\">\n <div>\n <p className=\"mb-2 text-sm font-medium text-kumo-default\">Small</p>\n <DateRangePicker\n size=\"sm\"\n onStartDateChange={() => {}}\n onEndDateChange={() => {}}\n />\n </div>\n <div>\n <p className=\"mb-2 text-sm font-medium text-kumo-default\">\n Base (default)\n </p>\n <DateRangePicker\n size=\"base\"\n onStartDateChange={() => {}}\n onEndDateChange={() => {}}\n />\n </div>\n <div>\n <p className=\"mb-2 text-sm font-medium text-kumo-default\">Large</p>\n <DateRangePicker\n size=\"lg\"\n onStartDateChange={() => {}}\n onEndDateChange={() => {}}\n />\n </div>\n </div>",
2350
- "<div className=\"flex flex-col gap-8\">\n <div>\n <p className=\"mb-2 text-sm font-medium text-kumo-default\">\n Default variant\n </p>\n <DateRangePicker\n variant=\"default\"\n onStartDateChange={() => {}}\n onEndDateChange={() => {}}\n />\n </div>\n <div>\n <p className=\"mb-2 text-sm font-medium text-kumo-default\">\n Subtle variant\n </p>\n <DateRangePicker\n variant=\"subtle\"\n onStartDateChange={() => {}}\n onEndDateChange={() => {}}\n />\n </div>\n </div>",
2351
- "<DateRangePicker\n timezone=\"London, UK (GMT+0)\"\n onStartDateChange={() => {}}\n onEndDateChange={() => {}}\n />",
2352
- "<div className=\"flex flex-col gap-4\">\n <DateRangePicker\n onStartDateChange={setStartDate}\n onEndDateChange={setEndDate}\n />\n <div className=\"rounded-lg bg-kumo-control p-3 text-sm text-kumo-default\">\n <strong>Selection:</strong> {formatDateRange()}\n </div>\n </div>"
2353
- ],
2348
+ "examples": [],
2354
2349
  "colors": [
2355
2350
  "bg-kumo-base",
2356
2351
  "bg-kumo-contrast",
@@ -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
+ />
121
+ ```
122
+
123
+ ```tsx
124
+ <Banner
125
+ icon={<Warning weight="fill" />}
126
+ variant="alert"
127
+ title="Session expiring"
128
+ description="Your session will expire in 5 minutes."
129
+ />
100
130
  ```
101
131
 
102
132
  ```tsx
103
- <Banner variant="alert">Your session will expire soon.</Banner>
133
+ <Banner
134
+ icon={<Info weight="fill" />}
135
+ title="Your changes have been saved."
136
+ />
104
137
  ```
105
138
 
106
139
  ```tsx
107
- <Banner icon={<WarningCircle />} variant="alert">
108
- Review your billing information.
109
- </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
+ />
110
149
  ```
111
150
 
112
151
  ```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>
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
 
@@ -1892,94 +1917,6 @@ DateRangePicker — dual-calendar date range selector. Renders two side-by-side
1892
1917
  - padding: 20
1893
1918
  - gap: 12
1894
1919
 
1895
- **Examples:**
1896
-
1897
- ```tsx
1898
- <div className="flex flex-col gap-4">
1899
- <DateRangePicker
1900
- onStartDateChange={setStartDate}
1901
- onEndDateChange={setEndDate}
1902
- />
1903
- <div className="text-sm text-kumo-subtle">
1904
- {startDate && endDate ? (
1905
- <span>
1906
- Selected: {startDate.toLocaleDateString()} -{" "}
1907
- {endDate.toLocaleDateString()}
1908
- </span>
1909
- ) : startDate ? (
1910
- <span>Start: {startDate.toLocaleDateString()} (select end date)</span>
1911
- ) : (
1912
- <span>Select a date range</span>
1913
- )}
1914
- </div>
1915
- </div>
1916
- ```
1917
-
1918
- ```tsx
1919
- <div className="flex flex-col gap-8">
1920
- <div>
1921
- <p className="mb-2 text-sm font-medium text-kumo-default">Small</p>
1922
- <DateRangePicker
1923
- size="sm"
1924
- onStartDateChange={() => {}}
1925
- onEndDateChange={() => {}}
1926
- />
1927
- </div>
1928
- <div>
1929
- <p className="mb-2 text-sm font-medium text-kumo-default">
1930
- Base (default)
1931
- </p>
1932
- <DateRangePicker
1933
- size="base"
1934
- onStartDateChange={() => {}}
1935
- onEndDateChange={() => {}}
1936
- />
1937
- </div>
1938
- <div>
1939
- <p className="mb-2 text-sm font-medium text-kumo-default">Large</p>
1940
- <DateRangePicker
1941
- size="lg"
1942
- onStartDateChange={() => {}}
1943
- onEndDateChange={() => {}}
1944
- />
1945
- </div>
1946
- </div>
1947
- ```
1948
-
1949
- ```tsx
1950
- <div className="flex flex-col gap-8">
1951
- <div>
1952
- <p className="mb-2 text-sm font-medium text-kumo-default">
1953
- Default variant
1954
- </p>
1955
- <DateRangePicker
1956
- variant="default"
1957
- onStartDateChange={() => {}}
1958
- onEndDateChange={() => {}}
1959
- />
1960
- </div>
1961
- <div>
1962
- <p className="mb-2 text-sm font-medium text-kumo-default">
1963
- Subtle variant
1964
- </p>
1965
- <DateRangePicker
1966
- variant="subtle"
1967
- onStartDateChange={() => {}}
1968
- onEndDateChange={() => {}}
1969
- />
1970
- </div>
1971
- </div>
1972
- ```
1973
-
1974
- ```tsx
1975
- <DateRangePicker
1976
- timezone="London, UK (GMT+0)"
1977
- onStartDateChange={() => {}}
1978
- onEndDateChange={() => {}}
1979
- />
1980
- ```
1981
-
1982
-
1983
1920
  ---
1984
1921
 
1985
1922
  ### Dialog
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
- 1771426000663
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)