@cloudflare/kumo 1.4.0 → 1.5.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 (150) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +15 -7
  3. package/ai/component-registry.json +45 -127
  4. package/ai/component-registry.md +95 -100
  5. package/ai/schemas.ts +5 -4
  6. package/dist/.build-complete +1 -1
  7. package/dist/button-Bh96oxRL.js.map +1 -1
  8. package/dist/catalog.js +1 -1
  9. package/dist/{checkbox-C1LPq8eL.js → checkbox-CWANiedi.js} +3 -3
  10. package/dist/{checkbox-C1LPq8eL.js.map → checkbox-CWANiedi.js.map} +1 -1
  11. package/dist/{clipboard-text-CJSI9X2m.js → clipboard-text-CqueQiB8.js} +2 -2
  12. package/dist/{clipboard-text-CJSI9X2m.js.map → clipboard-text-CqueQiB8.js.map} +1 -1
  13. package/dist/{combobox-CWxn5aHA.js → combobox-C9koouxM.js} +4 -4
  14. package/dist/{combobox-CWxn5aHA.js.map → combobox-C9koouxM.js.map} +1 -1
  15. package/dist/command-line/cli.js +5 -5
  16. package/dist/command-line/commands/doc.js +3 -3
  17. package/dist/command-line/commands/ls.js +2 -2
  18. package/dist/{command-palette-J50WKjS7.js → command-palette-TGXgr6Vq.js} +2 -2
  19. package/dist/{command-palette-J50WKjS7.js.map → command-palette-TGXgr6Vq.js.map} +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 +8 -7
  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 +5 -4
  41. package/dist/components/tooltip.js +1 -1
  42. package/dist/dialog-CpCeOqSZ.js +97 -0
  43. package/dist/dialog-CpCeOqSZ.js.map +1 -0
  44. package/dist/{dropdown-BAyk1knz.js → dropdown-DFeFcKfn.js} +3 -3
  45. package/dist/{dropdown-BAyk1knz.js.map → dropdown-DFeFcKfn.js.map} +1 -1
  46. package/dist/{field-B7ORz5ej.js → field-Dt-XuSaQ.js} +3 -3
  47. package/dist/{field-B7ORz5ej.js.map → field-Dt-XuSaQ.js.map} +1 -1
  48. package/dist/index.js +106 -104
  49. package/dist/{input-D6YgDfDG.js → input-GZAWBXYX.js} +3 -3
  50. package/dist/{input-D6YgDfDG.js.map → input-GZAWBXYX.js.map} +1 -1
  51. package/dist/{input-area-DN_Ncliw.js → input-area-CS1-ceY4.js} +21 -19
  52. package/dist/input-area-CS1-ceY4.js.map +1 -0
  53. package/dist/{input-group-BXzBwH4p.js → input-group-COo-wz5O.js} +2 -2
  54. package/dist/{input-group-BXzBwH4p.js.map → input-group-COo-wz5O.js.map} +1 -1
  55. package/dist/label-ChZ2Pp5p.js +58 -0
  56. package/dist/label-ChZ2Pp5p.js.map +1 -0
  57. package/dist/{link-CcuZKqob.js → link-Mj2WM1AS.js} +2 -2
  58. package/dist/{link-CcuZKqob.js.map → link-Mj2WM1AS.js.map} +1 -1
  59. package/dist/{menubar-CzimiryS.js → menubar-CbXWXQYR.js} +2 -2
  60. package/dist/{menubar-CzimiryS.js.map → menubar-CbXWXQYR.js.map} +1 -1
  61. package/dist/{meter-BrJnHJ3Q.js → meter-Bu5f3mAc.js} +2 -2
  62. package/dist/{meter-BrJnHJ3Q.js.map → meter-Bu5f3mAc.js.map} +1 -1
  63. package/dist/{pagination-D0x9KQSk.js → pagination-Bm8eMWpj.js} +2 -2
  64. package/dist/{pagination-D0x9KQSk.js.map → pagination-Bm8eMWpj.js.map} +1 -1
  65. package/dist/{popover-CtKDH8Yc.js → popover-D7yeRosi.js} +2 -2
  66. package/dist/{popover-CtKDH8Yc.js.map → popover-D7yeRosi.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-CYejLANA.js → radio-CKn09bGo.js} +2 -2
  106. package/dist/{radio-CYejLANA.js.map → radio-CKn09bGo.js.map} +1 -1
  107. package/dist/{schemas-DCw6TIy0.js → schemas-B-D2OT-O.js} +7 -8
  108. package/dist/{schemas-DCw6TIy0.js.map → schemas-B-D2OT-O.js.map} +1 -1
  109. package/dist/{select-D4rKQAax.js → select-DvpgiOau.js} +3 -3
  110. package/dist/{select-D4rKQAax.js.map → select-DvpgiOau.js.map} +1 -1
  111. package/dist/{sensitive-input-DYvAmxkN.js → sensitive-input-BuYT6U6C.js} +4 -4
  112. package/dist/{sensitive-input-DYvAmxkN.js.map → sensitive-input-BuYT6U6C.js.map} +1 -1
  113. package/dist/src/components/button/button.d.ts +20 -12
  114. package/dist/src/components/button/button.d.ts.map +1 -1
  115. package/dist/src/components/dialog/dialog.d.ts +54 -13
  116. package/dist/src/components/dialog/dialog.d.ts.map +1 -1
  117. package/dist/src/components/dialog/index.d.ts +1 -1
  118. package/dist/src/components/dialog/index.d.ts.map +1 -1
  119. package/dist/src/components/input/index.d.ts +1 -1
  120. package/dist/src/components/input/index.d.ts.map +1 -1
  121. package/dist/src/components/input/input-area.d.ts +19 -0
  122. package/dist/src/components/input/input-area.d.ts.map +1 -1
  123. package/dist/src/components/label/label.d.ts +5 -3
  124. package/dist/src/components/label/label.d.ts.map +1 -1
  125. package/dist/src/components/toast/index.d.ts +1 -1
  126. package/dist/src/components/toast/index.d.ts.map +1 -1
  127. package/dist/src/components/toast/toast.d.ts +2 -0
  128. package/dist/src/components/toast/toast.d.ts.map +1 -1
  129. package/dist/src/index.d.ts +3 -3
  130. package/dist/src/index.d.ts.map +1 -1
  131. package/dist/styles/kumo-standalone.css +1 -1
  132. package/dist/{switch-z7FE1nQE.js → switch-Tu34uFoa.js} +3 -3
  133. package/dist/{switch-z7FE1nQE.js.map → switch-Tu34uFoa.js.map} +1 -1
  134. package/dist/{table-Sd2Etb1N.js → table-BUmvaBj8.js} +2 -2
  135. package/dist/{table-Sd2Etb1N.js.map → table-BUmvaBj8.js.map} +1 -1
  136. package/dist/{tabs-DAEeuQLd.js → tabs-B7THfqHW.js} +2 -2
  137. package/dist/{tabs-DAEeuQLd.js.map → tabs-B7THfqHW.js.map} +1 -1
  138. package/dist/{toast-B8ebpHaU.js → toast-Du4y8qng.js} +16 -14
  139. package/dist/{toast-B8ebpHaU.js.map → toast-Du4y8qng.js.map} +1 -1
  140. package/dist/{tooltip-C4DRhJi1.js → tooltip-BxV1H6AV.js} +2 -2
  141. package/dist/{tooltip-C4DRhJi1.js.map → tooltip-BxV1H6AV.js.map} +1 -1
  142. package/dist/{vendor-base-ui-kX0wjdav.js → vendor-base-ui-CQ6wEonS.js} +5 -5
  143. package/dist/{vendor-base-ui-kX0wjdav.js.map → vendor-base-ui-CQ6wEonS.js.map} +1 -1
  144. package/package.json +2 -2
  145. package/scripts/component-registry/index.ts +68 -12
  146. package/dist/dialog-x9n9wI13.js +0 -77
  147. package/dist/dialog-x9n9wI13.js.map +0 -1
  148. package/dist/input-area-DN_Ncliw.js.map +0 -1
  149. package/dist/label-B4FY8MX_.js +0 -50
  150. package/dist/label-B4FY8MX_.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { d as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { d as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as Avatar
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { B as o } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { B as o } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  o as Button
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { C as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { C as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as CheckboxGroup
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { e as c } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { e as c } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  c as Checkbox
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { f as o } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { f as o } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  o as Collapsible
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { g as b } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { g as b } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  b as Combobox
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { h as n } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { h as n } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  n as ContextMenu
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { j as a } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { j as a } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  a as Dialog
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { D as r, u as o } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { D as r, u as o } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as DirectionProvider,
5
5
  o as useDirection
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { k as l } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { k as l } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  l as Field
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { l as s } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { l as s } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  s as Fieldset
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { F as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { F as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as Form
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { I as n } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { I as n } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  n as Input
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { m as n } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { m as n } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  n as Menu
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { M as a } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { M as a } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  a as Menubar
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { n as t } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { n as t } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  t as Meter
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { o as a } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { o as a } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  a as NavigationMenu
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { p as i } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { p as i } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  i as NumberField
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { q as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { q as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as Popover
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { r as a } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { r as a } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  a as PreviewCard
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { s as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { s as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as Progress
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { R as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { R as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as RadioGroup
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { t } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  t as Radio
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { v as l } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { v as l } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  l as ScrollArea
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { w as c } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { w as c } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  c as Select
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { S as a } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { S as a } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  a as Separator
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { x as i } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { x as i } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  i as Slider
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { y as c } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { y as c } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  c as Switch
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { z as a } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { z as a } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  a as Tabs
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { i as s } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { i as s } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  s as Toast
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { T as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { T as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as ToggleGroup
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { A as g } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { A as g } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  g as Toggle
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { E as r } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { E as r } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  r as Toolbar
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { G as t } from "../vendor-base-ui-kX0wjdav.js";
2
+ import { G as t } from "../vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  t as Tooltip
5
5
  };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { a as o, b as e, c as r, d as i, B as t, e as l, C as u, f as n, g as c, h as p, j as b, D as d, k as g, l as C, F as T, I as m, m as v, M as x, n as A, o as M, p as S, q as D, r as F, s as h, t as G, R as P, v as k, w, S as R, x as f, y as B, z as I, i as N, A as j, T as q, E as y, G as z, u as E } from "./vendor-base-ui-kX0wjdav.js";
2
+ import { a as o, b as e, c as r, d as i, B as t, e as l, C as u, f as n, g as c, h as p, j as b, D as d, k as g, l as C, F as T, I as m, m as v, M as x, n as A, o as M, p as S, q as D, r as F, s as h, t as G, R as P, v as k, w, S as R, x as f, y as B, z as I, i as N, A as j, T as q, E as y, G as z, u as E } from "./vendor-base-ui-CQ6wEonS.js";
3
3
  export {
4
4
  o as Accordion,
5
5
  e as AlertDialog,
@@ -2,7 +2,7 @@
2
2
  import { jsx as e, jsxs as c } from "react/jsx-runtime";
3
3
  import { forwardRef as h, createContext as N, useContext as b } from "react";
4
4
  import { c as t } from "./cn-Bhsu1vx2.js";
5
- import { R as k, N as I, O as w, b6 as A, b7 as y } from "./vendor-base-ui-kX0wjdav.js";
5
+ import { R as k, N as I, O as w, b6 as A, b7 as y } from "./vendor-base-ui-CQ6wEonS.js";
6
6
  const j = {
7
7
  variant: {
8
8
  default: {
@@ -122,4 +122,4 @@ export {
122
122
  G as b,
123
123
  V as r
124
124
  };
125
- //# sourceMappingURL=radio-CYejLANA.js.map
125
+ //# sourceMappingURL=radio-CKn09bGo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-CYejLANA.js","sources":["../src/components/radio/radio.tsx"],"sourcesContent":["import { forwardRef, createContext, useContext, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Fieldset } from \"@base-ui/react/fieldset\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\n\n/** Radio variant definitions mapping variant names to their Tailwind classes. */\nexport const KUMO_RADIO_VARIANTS = {\n variant: {\n default: {\n classes: \"ring-kumo-line\",\n description: \"Default radio appearance\",\n },\n error: {\n classes: \"ring-destructive\",\n description: \"Error state for validation failures\",\n },\n },\n} as const;\n\nexport const KUMO_RADIO_DEFAULT_VARIANTS = {\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_RADIO_VARIANTS\nexport type KumoRadioVariant = keyof typeof KUMO_RADIO_VARIANTS.variant;\n\nexport interface KumoRadioVariantsProps {\n /**\n * Visual variant.\n * - `\"default\"` — Standard radio appearance\n * - `\"error\"` — Error state for validation failures\n * @default \"default\"\n */\n variant?: KumoRadioVariant;\n}\n\nexport function radioVariants({\n variant = KUMO_RADIO_DEFAULT_VARIANTS.variant,\n}: KumoRadioVariantsProps = {}) {\n return cn(KUMO_RADIO_VARIANTS.variant[variant].classes);\n}\n\n// Legacy type alias for backwards compatibility\nexport type RadioVariant = KumoRadioVariant;\n\n/** Position of the radio control relative to its label */\nexport type RadioControlPosition = \"start\" | \"end\";\n\n// Context for passing controlPosition from Group to Items\nconst RadioGroupContext = createContext<{\n controlPosition: RadioControlPosition;\n}>({\n controlPosition: \"start\",\n});\n\n/**\n * Radio group component props (with built-in Fieldset and RadioGroup)\n *\n * @example\n * // Basic usage\n * ```tsx\n * <Radio.Group legend=\"Notification preference\" defaultValue=\"email\">\n * <Radio.Item label=\"Email\" value=\"email\" />\n * <Radio.Item label=\"SMS\" value=\"sms\" />\n * <Radio.Item label=\"Push\" value=\"push\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // Horizontal layout\n * ```tsx\n * <Radio.Group legend=\"Size\" orientation=\"horizontal\" defaultValue=\"md\">\n * <Radio.Item label=\"Small\" value=\"sm\" />\n * <Radio.Item label=\"Medium\" value=\"md\" />\n * <Radio.Item label=\"Large\" value=\"lg\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // With error and description\n * ```tsx\n * <Radio.Group\n * legend=\"Payment method\"\n * error=\"Please select a payment method\"\n * description=\"Choose how you'd like to pay\"\n * >\n * <Radio.Item label=\"Credit Card\" value=\"card\" />\n * <Radio.Item label=\"PayPal\" value=\"paypal\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // Controlled\n * ```tsx\n * const [value, setValue] = useState(\"email\");\n * <Radio.Group legend=\"Contact\" value={value} onValueChange={setValue}>\n * <Radio.Item label=\"Email\" value=\"email\" />\n * <Radio.Item label=\"Phone\" value=\"phone\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // Label before radio (controlPosition=\"end\")\n * ```tsx\n * <Radio.Group legend=\"Options\" controlPosition=\"end\" defaultValue=\"a\">\n * <Radio.Item label=\"Option A\" value=\"a\" />\n * <Radio.Item label=\"Option B\" value=\"b\" />\n * </Radio.Group>\n * ```\n */\nexport interface RadioGroupProps {\n /** Legend text for the group (required for accessibility) */\n legend: string;\n /** Child Radio.Item components */\n children: ReactNode;\n /** Layout direction of the radio items */\n orientation?: \"vertical\" | \"horizontal\";\n /** Error message for the group */\n error?: string;\n /** Helper text for the group */\n description?: ReactNode;\n /** Value of the radio that should be initially selected (uncontrolled) */\n defaultValue?: string;\n /** Value of the radio that should be selected (controlled) */\n value?: string;\n /** Event handler called when radio value changes */\n onValueChange?: (value: string) => void;\n /** Whether all radios in the group are disabled */\n disabled?: boolean;\n /** Position of radio control relative to label: \"start\" (default) puts radio before label, \"end\" puts label before radio */\n controlPosition?: RadioControlPosition;\n /** Form submission name for the radio group */\n name?: string;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Individual radio item within a group\n *\n * @example\n * ```tsx\n * <Radio.Item label=\"Option A\" value=\"a\" />\n * ```\n *\n * @example\n * // Disabled item\n * ```tsx\n * <Radio.Item label=\"Unavailable\" value=\"unavailable\" disabled />\n * ```\n */\nexport type RadioItemProps = {\n /** Visual variant: \"default\" or \"error\" for validation failures */\n variant?: RadioVariant;\n /** Label text displayed next to radio (required) */\n label: string;\n /** Value of the radio (required) */\n value: string;\n /** Additional CSS classes for the label wrapper */\n className?: string;\n /** Whether the radio is disabled */\n disabled?: boolean;\n};\n\n// Radio.Item for use within Radio.Group\nconst RadioItem = forwardRef<HTMLButtonElement, RadioItemProps>(\n ({ className, disabled, variant = \"default\", label, value }, ref) => {\n const { controlPosition } = useContext(RadioGroupContext);\n\n return (\n <label\n className={cn(\n \"group relative inline-flex items-center gap-2\",\n // \"start\" (default): radio before label\n // \"end\": label before radio using flex-row-reverse\n controlPosition === \"end\" && \"flex-row-reverse justify-end\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <BaseRadio.Root\n ref={ref}\n value={value}\n disabled={disabled}\n className={cn(\n \"flex h-4 w-4 items-center justify-center rounded-full border-0 bg-kumo-base ring\",\n variant === \"error\" ? \"ring-kumo-danger\" : \"ring-kumo-line\",\n !disabled &&\n \"group-hover:ring-kumo-ring focus-visible:ring-kumo-ring focus-visible:outline-offset-3\",\n \"data-checked:bg-kumo-contrast\",\n )}\n >\n <BaseRadio.Indicator className=\"flex items-center justify-center\">\n <span className=\"h-2 w-2 rounded-full bg-kumo-base\" />\n </BaseRadio.Indicator>\n </BaseRadio.Root>\n <span className=\"text-base font-medium text-kumo-default\">{label}</span>\n </label>\n );\n },\n);\n\nRadioItem.displayName = \"Radio.Item\";\n\n// Radio.Group with built-in Fieldset and RadioGroup\nfunction RadioGroup({\n legend,\n children,\n orientation = \"vertical\",\n error,\n description,\n defaultValue,\n value,\n onValueChange,\n disabled,\n controlPosition = \"start\",\n name,\n className,\n}: RadioGroupProps) {\n return (\n <RadioGroupContext.Provider value={{ controlPosition }}>\n <BaseRadioGroup\n defaultValue={defaultValue}\n value={value}\n onValueChange={(newValue) => onValueChange?.(newValue as string)}\n disabled={disabled}\n name={name}\n >\n <Fieldset.Root\n className={cn(\n \"flex flex-col gap-4 rounded-lg border border-kumo-line p-4\",\n className,\n )}\n >\n <Fieldset.Legend className=\"text-lg font-medium text-kumo-default\">\n {legend}\n </Fieldset.Legend>\n <div\n className={cn(\n \"flex gap-2\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\n )}\n >\n {children}\n </div>\n {error && <p className=\"text-sm text-kumo-danger\">{error}</p>}\n {description && <p className=\"text-sm text-kumo-subtle\">{description}</p>}\n </Fieldset.Root>\n </BaseRadioGroup>\n </RadioGroupContext.Provider>\n );\n}\n\nRadioGroup.displayName = \"Radio.Group\";\n\n// Export RadioGroup directly for external usage\nexport { RadioGroup };\n\n/**\n * Radio — radio button group for single-select choices.\n *\n * Compound component: `Radio.Group` (with built-in Fieldset) and `Radio.Item`.\n * Built on `@base-ui/react/radio-group` + `@base-ui/react/radio`.\n *\n * @example\n * ```tsx\n * <Radio.Group legend=\"Notification preference\" defaultValue=\"email\">\n * <Radio.Item label=\"Email\" value=\"email\" />\n * <Radio.Item label=\"SMS\" value=\"sms\" />\n * <Radio.Item label=\"Push\" value=\"push\" />\n * </Radio.Group>\n * ```\n */\nexport const Radio = {\n Item: RadioItem,\n Group: RadioGroup,\n};\n"],"names":["KUMO_RADIO_VARIANTS","KUMO_RADIO_DEFAULT_VARIANTS","radioVariants","variant","cn","RadioGroupContext","createContext","RadioItem","forwardRef","className","disabled","label","value","ref","controlPosition","useContext","jsxs","jsx","BaseRadio.Root","BaseRadio.Indicator","RadioGroup","legend","children","orientation","error","description","defaultValue","onValueChange","name","BaseRadioGroup","newValue","Fieldset.Root","Fieldset.Legend","Radio"],"mappings":"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"}
1
+ {"version":3,"file":"radio-CKn09bGo.js","sources":["../src/components/radio/radio.tsx"],"sourcesContent":["import { forwardRef, createContext, useContext, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Fieldset } from \"@base-ui/react/fieldset\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\n\n/** Radio variant definitions mapping variant names to their Tailwind classes. */\nexport const KUMO_RADIO_VARIANTS = {\n variant: {\n default: {\n classes: \"ring-kumo-line\",\n description: \"Default radio appearance\",\n },\n error: {\n classes: \"ring-destructive\",\n description: \"Error state for validation failures\",\n },\n },\n} as const;\n\nexport const KUMO_RADIO_DEFAULT_VARIANTS = {\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_RADIO_VARIANTS\nexport type KumoRadioVariant = keyof typeof KUMO_RADIO_VARIANTS.variant;\n\nexport interface KumoRadioVariantsProps {\n /**\n * Visual variant.\n * - `\"default\"` — Standard radio appearance\n * - `\"error\"` — Error state for validation failures\n * @default \"default\"\n */\n variant?: KumoRadioVariant;\n}\n\nexport function radioVariants({\n variant = KUMO_RADIO_DEFAULT_VARIANTS.variant,\n}: KumoRadioVariantsProps = {}) {\n return cn(KUMO_RADIO_VARIANTS.variant[variant].classes);\n}\n\n// Legacy type alias for backwards compatibility\nexport type RadioVariant = KumoRadioVariant;\n\n/** Position of the radio control relative to its label */\nexport type RadioControlPosition = \"start\" | \"end\";\n\n// Context for passing controlPosition from Group to Items\nconst RadioGroupContext = createContext<{\n controlPosition: RadioControlPosition;\n}>({\n controlPosition: \"start\",\n});\n\n/**\n * Radio group component props (with built-in Fieldset and RadioGroup)\n *\n * @example\n * // Basic usage\n * ```tsx\n * <Radio.Group legend=\"Notification preference\" defaultValue=\"email\">\n * <Radio.Item label=\"Email\" value=\"email\" />\n * <Radio.Item label=\"SMS\" value=\"sms\" />\n * <Radio.Item label=\"Push\" value=\"push\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // Horizontal layout\n * ```tsx\n * <Radio.Group legend=\"Size\" orientation=\"horizontal\" defaultValue=\"md\">\n * <Radio.Item label=\"Small\" value=\"sm\" />\n * <Radio.Item label=\"Medium\" value=\"md\" />\n * <Radio.Item label=\"Large\" value=\"lg\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // With error and description\n * ```tsx\n * <Radio.Group\n * legend=\"Payment method\"\n * error=\"Please select a payment method\"\n * description=\"Choose how you'd like to pay\"\n * >\n * <Radio.Item label=\"Credit Card\" value=\"card\" />\n * <Radio.Item label=\"PayPal\" value=\"paypal\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // Controlled\n * ```tsx\n * const [value, setValue] = useState(\"email\");\n * <Radio.Group legend=\"Contact\" value={value} onValueChange={setValue}>\n * <Radio.Item label=\"Email\" value=\"email\" />\n * <Radio.Item label=\"Phone\" value=\"phone\" />\n * </Radio.Group>\n * ```\n *\n * @example\n * // Label before radio (controlPosition=\"end\")\n * ```tsx\n * <Radio.Group legend=\"Options\" controlPosition=\"end\" defaultValue=\"a\">\n * <Radio.Item label=\"Option A\" value=\"a\" />\n * <Radio.Item label=\"Option B\" value=\"b\" />\n * </Radio.Group>\n * ```\n */\nexport interface RadioGroupProps {\n /** Legend text for the group (required for accessibility) */\n legend: string;\n /** Child Radio.Item components */\n children: ReactNode;\n /** Layout direction of the radio items */\n orientation?: \"vertical\" | \"horizontal\";\n /** Error message for the group */\n error?: string;\n /** Helper text for the group */\n description?: ReactNode;\n /** Value of the radio that should be initially selected (uncontrolled) */\n defaultValue?: string;\n /** Value of the radio that should be selected (controlled) */\n value?: string;\n /** Event handler called when radio value changes */\n onValueChange?: (value: string) => void;\n /** Whether all radios in the group are disabled */\n disabled?: boolean;\n /** Position of radio control relative to label: \"start\" (default) puts radio before label, \"end\" puts label before radio */\n controlPosition?: RadioControlPosition;\n /** Form submission name for the radio group */\n name?: string;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Individual radio item within a group\n *\n * @example\n * ```tsx\n * <Radio.Item label=\"Option A\" value=\"a\" />\n * ```\n *\n * @example\n * // Disabled item\n * ```tsx\n * <Radio.Item label=\"Unavailable\" value=\"unavailable\" disabled />\n * ```\n */\nexport type RadioItemProps = {\n /** Visual variant: \"default\" or \"error\" for validation failures */\n variant?: RadioVariant;\n /** Label text displayed next to radio (required) */\n label: string;\n /** Value of the radio (required) */\n value: string;\n /** Additional CSS classes for the label wrapper */\n className?: string;\n /** Whether the radio is disabled */\n disabled?: boolean;\n};\n\n// Radio.Item for use within Radio.Group\nconst RadioItem = forwardRef<HTMLButtonElement, RadioItemProps>(\n ({ className, disabled, variant = \"default\", label, value }, ref) => {\n const { controlPosition } = useContext(RadioGroupContext);\n\n return (\n <label\n className={cn(\n \"group relative inline-flex items-center gap-2\",\n // \"start\" (default): radio before label\n // \"end\": label before radio using flex-row-reverse\n controlPosition === \"end\" && \"flex-row-reverse justify-end\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <BaseRadio.Root\n ref={ref}\n value={value}\n disabled={disabled}\n className={cn(\n \"flex h-4 w-4 items-center justify-center rounded-full border-0 bg-kumo-base ring\",\n variant === \"error\" ? \"ring-kumo-danger\" : \"ring-kumo-line\",\n !disabled &&\n \"group-hover:ring-kumo-ring focus-visible:ring-kumo-ring focus-visible:outline-offset-3\",\n \"data-checked:bg-kumo-contrast\",\n )}\n >\n <BaseRadio.Indicator className=\"flex items-center justify-center\">\n <span className=\"h-2 w-2 rounded-full bg-kumo-base\" />\n </BaseRadio.Indicator>\n </BaseRadio.Root>\n <span className=\"text-base font-medium text-kumo-default\">{label}</span>\n </label>\n );\n },\n);\n\nRadioItem.displayName = \"Radio.Item\";\n\n// Radio.Group with built-in Fieldset and RadioGroup\nfunction RadioGroup({\n legend,\n children,\n orientation = \"vertical\",\n error,\n description,\n defaultValue,\n value,\n onValueChange,\n disabled,\n controlPosition = \"start\",\n name,\n className,\n}: RadioGroupProps) {\n return (\n <RadioGroupContext.Provider value={{ controlPosition }}>\n <BaseRadioGroup\n defaultValue={defaultValue}\n value={value}\n onValueChange={(newValue) => onValueChange?.(newValue as string)}\n disabled={disabled}\n name={name}\n >\n <Fieldset.Root\n className={cn(\n \"flex flex-col gap-4 rounded-lg border border-kumo-line p-4\",\n className,\n )}\n >\n <Fieldset.Legend className=\"text-lg font-medium text-kumo-default\">\n {legend}\n </Fieldset.Legend>\n <div\n className={cn(\n \"flex gap-2\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\n )}\n >\n {children}\n </div>\n {error && <p className=\"text-sm text-kumo-danger\">{error}</p>}\n {description && <p className=\"text-sm text-kumo-subtle\">{description}</p>}\n </Fieldset.Root>\n </BaseRadioGroup>\n </RadioGroupContext.Provider>\n );\n}\n\nRadioGroup.displayName = \"Radio.Group\";\n\n// Export RadioGroup directly for external usage\nexport { RadioGroup };\n\n/**\n * Radio — radio button group for single-select choices.\n *\n * Compound component: `Radio.Group` (with built-in Fieldset) and `Radio.Item`.\n * Built on `@base-ui/react/radio-group` + `@base-ui/react/radio`.\n *\n * @example\n * ```tsx\n * <Radio.Group legend=\"Notification preference\" defaultValue=\"email\">\n * <Radio.Item label=\"Email\" value=\"email\" />\n * <Radio.Item label=\"SMS\" value=\"sms\" />\n * <Radio.Item label=\"Push\" value=\"push\" />\n * </Radio.Group>\n * ```\n */\nexport const Radio = {\n Item: RadioItem,\n Group: RadioGroup,\n};\n"],"names":["KUMO_RADIO_VARIANTS","KUMO_RADIO_DEFAULT_VARIANTS","radioVariants","variant","cn","RadioGroupContext","createContext","RadioItem","forwardRef","className","disabled","label","value","ref","controlPosition","useContext","jsxs","jsx","BaseRadio.Root","BaseRadio.Indicator","RadioGroup","legend","children","orientation","error","description","defaultValue","onValueChange","name","BaseRadioGroup","newValue","Fieldset.Root","Fieldset.Legend","Radio"],"mappings":"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"}
@@ -3030,18 +3030,15 @@ const g = k([
3030
3030
  className: c().optional()
3031
3031
  // Additional CSS classes merged via `cn()`.
3032
3032
  }), Sa = b({
3033
+ shape: v(["base", "square", "circle"]).optional(),
3034
+ size: v(["xs", "sm", "base", "lg"]).optional(),
3035
+ variant: v(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
3033
3036
  children: k([c(), y(), h(), w(), g]).optional(),
3034
3037
  className: c().optional(),
3035
3038
  icon: k([c(), y(), h(), w(), g]).optional(),
3036
3039
  // Icon from `@phosphor-icons/react` or a React element. Rendered before children.
3037
3040
  loading: h().optional(),
3038
3041
  // Shows a loading spinner and disables interaction.
3039
- shape: v(["base", "square", "circle"]).optional(),
3040
- // Button shape. - `"base"` — Default rectangular button - `"square"` — Square button for icon-only actions - `"circle"` — Circular button for icon-only actions
3041
- size: v(["xs", "sm", "base", "lg"]).optional(),
3042
- // Button size. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary actions - `"base"` — Default size - `"lg"` — Large for primary CTAs
3043
- variant: v(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
3044
- // Visual style of the button. - `"primary"` — High-emphasis, brand-colored for primary actions - `"secondary"` — Default style with border for most actions - `"ghost"` — Minimal, no background for tertiary actions - `"destructive"` — Danger button for destructive actions - `"secondary-destructive"` — Secondary style with destructive text - `"outline"` — Bordered with transparent background
3045
3042
  id: c().optional(),
3046
3043
  lang: c().optional(),
3047
3044
  title: c().optional(),
@@ -3475,8 +3472,10 @@ const g = k([
3475
3472
  // Tooltip content displayed next to the label via an info icon.
3476
3473
  className: c().optional(),
3477
3474
  // Additional CSS classes merged via `cn()`.
3475
+ htmlFor: c().optional(),
3476
+ // The id of the form element this label is associated with
3478
3477
  asContent: h().optional()
3479
- // When `true`, only renders the inline content (indicators, tooltip) without the outer span with font styling. Useful when composed inside another label element that already provides the text styling.
3478
+ // When true, only renders the inline content (indicators, tooltip) without the outer label element with font styling. Useful when composed inside another label element that already provides the text styling.
3480
3479
  }), Ma = b({
3481
3480
  children: k([c(), y(), h(), w(), g]).optional(),
3482
3481
  className: c().optional()
@@ -3856,4 +3855,4 @@ export {
3856
3855
  ls as validateElementProps,
3857
3856
  ps as validateUITree
3858
3857
  };
3859
- //# sourceMappingURL=schemas-DCw6TIy0.js.map
3858
+ //# sourceMappingURL=schemas-B-D2OT-O.js.map