@cloudflare/kumo 2.1.0 → 2.2.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 (182) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/ai/component-registry.json +24 -1
  3. package/ai/component-registry.md +87 -11
  4. package/ai/schemas.ts +3 -0
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +12 -0
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/ai/schemas.js +137 -131
  9. package/dist/ai/schemas.js.map +1 -1
  10. package/dist/chunks/SankeyChart-h1kzhs1tyt20luha.js +629 -0
  11. package/dist/chunks/SankeyChart-h1kzhs1tyt20luha.js.map +1 -0
  12. package/dist/chunks/{autocomplete-1hi2rgzo10bczkfa.js → autocomplete-nw1ig02pawtj3il9.js} +4 -4
  13. package/dist/chunks/{autocomplete-1hi2rgzo10bczkfa.js.map → autocomplete-nw1ig02pawtj3il9.js.map} +1 -1
  14. package/dist/chunks/{breadcrumbs-davmangc0urzivbs.js → breadcrumbs-f7bi3g8tx6dfcgl6.js} +2 -2
  15. package/dist/chunks/{breadcrumbs-davmangc0urzivbs.js.map → breadcrumbs-f7bi3g8tx6dfcgl6.js.map} +1 -1
  16. package/dist/chunks/{button-n859eyw550yi2b9z.js → button-gflkhovvkmt0ftzz.js} +2 -2
  17. package/dist/chunks/{button-n859eyw550yi2b9z.js.map → button-gflkhovvkmt0ftzz.js.map} +1 -1
  18. package/dist/chunks/{checkbox-dfl2fr8nchh43qfc.js → checkbox-imuc4c45j7sds6wk.js} +3 -3
  19. package/dist/chunks/{checkbox-dfl2fr8nchh43qfc.js.map → checkbox-imuc4c45j7sds6wk.js.map} +1 -1
  20. package/dist/chunks/{clipboard-text-ic9k5qjkljlr9z3b.js → clipboard-text-dp5eb2c2qudgusnc.js} +4 -4
  21. package/dist/chunks/{clipboard-text-ic9k5qjkljlr9z3b.js.map → clipboard-text-dp5eb2c2qudgusnc.js.map} +1 -1
  22. package/dist/chunks/{collapsible-jvebgqfqljzokj8h.js → collapsible-ej6p2bq758sw30nk.js} +2 -2
  23. package/dist/chunks/{collapsible-jvebgqfqljzokj8h.js.map → collapsible-ej6p2bq758sw30nk.js.map} +1 -1
  24. package/dist/chunks/{combobox-f5nyw45yiwx5f69l.js → combobox-42i2nyvfgkqjb5a4.js} +4 -4
  25. package/dist/chunks/{combobox-f5nyw45yiwx5f69l.js.map → combobox-42i2nyvfgkqjb5a4.js.map} +1 -1
  26. package/dist/chunks/{command-palette-ezbzp2fpbbo97ogf.js → command-palette-eep807rf6iapoz8r.js} +3 -3
  27. package/dist/chunks/{command-palette-ezbzp2fpbbo97ogf.js.map → command-palette-eep807rf6iapoz8r.js.map} +1 -1
  28. package/dist/chunks/{dialog-n6uc2s99xwdn2pnb.js → dialog-fo3qhv9fgiadq5gp.js} +3 -3
  29. package/dist/chunks/{dialog-n6uc2s99xwdn2pnb.js.map → dialog-fo3qhv9fgiadq5gp.js.map} +1 -1
  30. package/dist/chunks/{dropdown-mftv4iv9nzhprg81.js → dropdown-cobpydatw4vlb3ov.js} +2 -2
  31. package/dist/chunks/{dropdown-mftv4iv9nzhprg81.js.map → dropdown-cobpydatw4vlb3ov.js.map} +1 -1
  32. package/dist/chunks/{empty-mmtirqntk6enx51o.js → empty-jwan4d5hqjocakhm.js} +2 -2
  33. package/dist/chunks/{empty-mmtirqntk6enx51o.js.map → empty-jwan4d5hqjocakhm.js.map} +1 -1
  34. package/dist/chunks/{field-mil8efu3x0s68eed.js → field-yhlyu6fy0qi1ewtl.js} +36 -30
  35. package/dist/chunks/field-yhlyu6fy0qi1ewtl.js.map +1 -0
  36. package/dist/chunks/input-area-d85jzxlnvx7mc3x9.js +78 -0
  37. package/dist/chunks/input-area-d85jzxlnvx7mc3x9.js.map +1 -0
  38. package/dist/chunks/{input-kmztt6h4mzy101ho.js → input-cyils8jxj8e0udr7.js} +61 -45
  39. package/dist/chunks/input-cyils8jxj8e0udr7.js.map +1 -0
  40. package/dist/chunks/{input-group-5luo0442jgsie018.js → input-group-mu8yklweljytpt04.js} +5 -5
  41. package/dist/chunks/{input-group-5luo0442jgsie018.js.map → input-group-mu8yklweljytpt04.js.map} +1 -1
  42. package/dist/chunks/{label-d14ibjmcbk1qmyrt.js → label-kaz4uxdt1yf3i5x5.js} +3 -3
  43. package/dist/chunks/{label-d14ibjmcbk1qmyrt.js.map → label-kaz4uxdt1yf3i5x5.js.map} +1 -1
  44. package/dist/chunks/{layer-card-eomdoafn3sfpih1d.js → layer-card-hyz8lfxceudt05pv.js} +2 -2
  45. package/dist/chunks/{layer-card-eomdoafn3sfpih1d.js.map → layer-card-hyz8lfxceudt05pv.js.map} +1 -1
  46. package/dist/chunks/{link-ihastr6a2dmo1so5.js → link-lkzjiitte3l29q87.js} +2 -2
  47. package/dist/chunks/{link-ihastr6a2dmo1so5.js.map → link-lkzjiitte3l29q87.js.map} +1 -1
  48. package/dist/chunks/{menubar-f6xelkurau8cl60f.js → menubar-gk322oew1y1lr851.js} +2 -2
  49. package/dist/chunks/{menubar-f6xelkurau8cl60f.js.map → menubar-gk322oew1y1lr851.js.map} +1 -1
  50. package/dist/chunks/{meter-g1ja8cwtum0frcdj.js → meter-jbxkh6gfggx1kjna.js} +2 -2
  51. package/dist/chunks/{meter-g1ja8cwtum0frcdj.js.map → meter-jbxkh6gfggx1kjna.js.map} +1 -1
  52. package/dist/chunks/{pagination-kmtbb3twehv79tm8.js → pagination-kswioh2znglyq7as.js} +3 -3
  53. package/dist/chunks/{pagination-kmtbb3twehv79tm8.js.map → pagination-kswioh2znglyq7as.js.map} +1 -1
  54. package/dist/chunks/{popover-f3t99000mahsnjzc.js → popover-i4opvl9g0as52fyx.js} +2 -2
  55. package/dist/chunks/{popover-f3t99000mahsnjzc.js.map → popover-i4opvl9g0as52fyx.js.map} +1 -1
  56. package/dist/chunks/{radio-me5m5ei86beum5bo.js → radio-g56o5rftpu1qpxuv.js} +6 -6
  57. package/dist/chunks/{radio-me5m5ei86beum5bo.js.map → radio-g56o5rftpu1qpxuv.js.map} +1 -1
  58. package/dist/chunks/select-hz8wwd2msvp1u0jp.js +226 -0
  59. package/dist/chunks/select-hz8wwd2msvp1u0jp.js.map +1 -0
  60. package/dist/chunks/{sensitive-input-gyf5hhgyolt07y1p.js → sensitive-input-mdtjukbb3wimz1iy.js} +4 -4
  61. package/dist/chunks/{sensitive-input-gyf5hhgyolt07y1p.js.map → sensitive-input-mdtjukbb3wimz1iy.js.map} +1 -1
  62. package/dist/chunks/{sidebar-o8y71x814ptc0xpf.js → sidebar-dlh79t5uliezwniq.js} +3 -3
  63. package/dist/chunks/{sidebar-o8y71x814ptc0xpf.js.map → sidebar-dlh79t5uliezwniq.js.map} +1 -1
  64. package/dist/chunks/{surface-ivrb4btwdoq91ytl.js → surface-ck1nt2uqfzmod4sz.js} +2 -2
  65. package/dist/chunks/{surface-ivrb4btwdoq91ytl.js.map → surface-ck1nt2uqfzmod4sz.js.map} +1 -1
  66. package/dist/chunks/{switch-c0avfhj6n85inmtb.js → switch-luut1d75u179g7x6.js} +3 -3
  67. package/dist/chunks/{switch-c0avfhj6n85inmtb.js.map → switch-luut1d75u179g7x6.js.map} +1 -1
  68. package/dist/chunks/{table-htqdo9dgy8c6hwuq.js → table-ef63hg1r1zia9u9j.js} +2 -2
  69. package/dist/chunks/{table-htqdo9dgy8c6hwuq.js.map → table-ef63hg1r1zia9u9j.js.map} +1 -1
  70. package/dist/chunks/tabs-g8ier5pehjpfxauf.js +152 -0
  71. package/dist/chunks/tabs-g8ier5pehjpfxauf.js.map +1 -0
  72. package/dist/chunks/{toast-evn3ce20j18hpyqt.js → toast-e5id2hx8pv0x3vue.js} +42 -38
  73. package/dist/chunks/{toast-evn3ce20j18hpyqt.js.map → toast-e5id2hx8pv0x3vue.js.map} +1 -1
  74. package/dist/chunks/{tooltip-fjxy4s4l75hjxp1x.js → tooltip-caka3fmn1ogdc7q8.js} +2 -2
  75. package/dist/chunks/{tooltip-fjxy4s4l75hjxp1x.js.map → tooltip-caka3fmn1ogdc7q8.js.map} +1 -1
  76. package/dist/chunks/{vendor-base-ui-epfrwb4nfbd4btaz.js → vendor-base-ui-nbyiqqi138hcoz52.js} +30 -29
  77. package/dist/chunks/{vendor-base-ui-epfrwb4nfbd4btaz.js.map → vendor-base-ui-nbyiqqi138hcoz52.js.map} +1 -1
  78. package/dist/code.js +1 -1
  79. package/dist/components/autocomplete.js +1 -1
  80. package/dist/components/breadcrumbs.js +1 -1
  81. package/dist/components/button.js +1 -1
  82. package/dist/components/chart.js +1 -1
  83. package/dist/components/checkbox.js +1 -1
  84. package/dist/components/clipboard-text.js +1 -1
  85. package/dist/components/collapsible.js +1 -1
  86. package/dist/components/combobox.js +1 -1
  87. package/dist/components/command-palette.js +1 -1
  88. package/dist/components/dialog.js +1 -1
  89. package/dist/components/dropdown.js +1 -1
  90. package/dist/components/empty.js +1 -1
  91. package/dist/components/field.js +6 -5
  92. package/dist/components/input-group.js +1 -1
  93. package/dist/components/input.js +3 -3
  94. package/dist/components/label.js +1 -1
  95. package/dist/components/layer-card.js +1 -1
  96. package/dist/components/link.js +1 -1
  97. package/dist/components/menubar.js +1 -1
  98. package/dist/components/meter.js +1 -1
  99. package/dist/components/pagination.js +1 -1
  100. package/dist/components/popover.js +1 -1
  101. package/dist/components/radio.js +1 -1
  102. package/dist/components/select.js +1 -1
  103. package/dist/components/sensitive-input.js +1 -1
  104. package/dist/components/sidebar.js +1 -1
  105. package/dist/components/surface.js +1 -1
  106. package/dist/components/switch.js +1 -1
  107. package/dist/components/table.js +1 -1
  108. package/dist/components/tabs.js +1 -1
  109. package/dist/components/toast.js +2 -2
  110. package/dist/components/tooltip.js +1 -1
  111. package/dist/index.js +138 -137
  112. package/dist/primitives/accordion.js +1 -1
  113. package/dist/primitives/alert-dialog.js +1 -1
  114. package/dist/primitives/autocomplete.js +1 -1
  115. package/dist/primitives/avatar.js +1 -1
  116. package/dist/primitives/button.js +1 -1
  117. package/dist/primitives/checkbox-group.js +1 -1
  118. package/dist/primitives/checkbox.js +1 -1
  119. package/dist/primitives/collapsible.js +1 -1
  120. package/dist/primitives/combobox.js +1 -1
  121. package/dist/primitives/context-menu.js +1 -1
  122. package/dist/primitives/csp-provider.js +1 -1
  123. package/dist/primitives/dialog.js +1 -1
  124. package/dist/primitives/direction-provider.js +1 -1
  125. package/dist/primitives/drawer.js +1 -1
  126. package/dist/primitives/field.js +1 -1
  127. package/dist/primitives/fieldset.js +1 -1
  128. package/dist/primitives/form.js +1 -1
  129. package/dist/primitives/input.js +1 -1
  130. package/dist/primitives/menu.js +1 -1
  131. package/dist/primitives/menubar.js +1 -1
  132. package/dist/primitives/meter.js +1 -1
  133. package/dist/primitives/navigation-menu.js +1 -1
  134. package/dist/primitives/number-field.js +1 -1
  135. package/dist/primitives/otp-field.js +1 -1
  136. package/dist/primitives/popover.js +1 -1
  137. package/dist/primitives/preview-card.js +1 -1
  138. package/dist/primitives/progress.js +1 -1
  139. package/dist/primitives/radio-group.js +1 -1
  140. package/dist/primitives/radio.js +1 -1
  141. package/dist/primitives/scroll-area.js +1 -1
  142. package/dist/primitives/select.js +1 -1
  143. package/dist/primitives/separator.js +1 -1
  144. package/dist/primitives/slider.js +1 -1
  145. package/dist/primitives/switch.js +1 -1
  146. package/dist/primitives/tabs.js +1 -1
  147. package/dist/primitives/toast.js +1 -1
  148. package/dist/primitives/toggle-group.js +1 -1
  149. package/dist/primitives/toggle.js +1 -1
  150. package/dist/primitives/toolbar.js +1 -1
  151. package/dist/primitives/tooltip.js +1 -1
  152. package/dist/primitives.js +1 -1
  153. package/dist/src/components/chart/SankeyChart.d.ts.map +1 -1
  154. package/dist/src/components/chart/TimeseriesChart.d.ts +7 -1
  155. package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -1
  156. package/dist/src/components/field/field.d.ts +22 -1
  157. package/dist/src/components/field/field.d.ts.map +1 -1
  158. package/dist/src/components/field/index.d.ts +1 -1
  159. package/dist/src/components/field/index.d.ts.map +1 -1
  160. package/dist/src/components/input/input-area.d.ts.map +1 -1
  161. package/dist/src/components/input/input.d.ts +4 -0
  162. package/dist/src/components/input/input.d.ts.map +1 -1
  163. package/dist/src/components/select/select.d.ts.map +1 -1
  164. package/dist/src/components/tabs/tabs.d.ts +10 -1
  165. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  166. package/dist/src/components/toast/toast.d.ts +28 -1
  167. package/dist/src/components/toast/toast.d.ts.map +1 -1
  168. package/dist/src/index.d.ts +1 -1
  169. package/dist/src/index.d.ts.map +1 -1
  170. package/dist/styles/kumo-binding.css +65 -0
  171. package/dist/styles/kumo-standalone.css +1 -1
  172. package/package.json +3 -3
  173. package/dist/chunks/SankeyChart-i4vgcatj89zpgpl9.js +0 -626
  174. package/dist/chunks/SankeyChart-i4vgcatj89zpgpl9.js.map +0 -1
  175. package/dist/chunks/field-mil8efu3x0s68eed.js.map +0 -1
  176. package/dist/chunks/input-area-hl1rdb9xcrqyt8xw.js +0 -78
  177. package/dist/chunks/input-area-hl1rdb9xcrqyt8xw.js.map +0 -1
  178. package/dist/chunks/input-kmztt6h4mzy101ho.js.map +0 -1
  179. package/dist/chunks/select-brzswxbhhf1ktx9t.js +0 -215
  180. package/dist/chunks/select-brzswxbhhf1ktx9t.js.map +0 -1
  181. package/dist/chunks/tabs-fdkhdhv8kvnpp8nt.js +0 -92
  182. package/dist/chunks/tabs-fdkhdhv8kvnpp8nt.js.map +0 -1
@@ -2722,7 +2722,7 @@ function f(e) {
2722
2722
  const Mi = /* @__PURE__ */ d("ZodNull", (e, o) => {
2723
2723
  fn.init(e, o), P.init(e, o), e._zod.processJSONSchema = (t, n, r) => xr(e, t, n);
2724
2724
  });
2725
- function b(e) {
2725
+ function y(e) {
2726
2726
  return /* @__PURE__ */ dr(Mi, e);
2727
2727
  }
2728
2728
  const Ji = /* @__PURE__ */ d("ZodUnknown", (e, o) => {
@@ -2744,7 +2744,7 @@ function U(e, o) {
2744
2744
  return /* @__PURE__ */ Zr(Wi, e, o);
2745
2745
  }
2746
2746
  const Gi = /* @__PURE__ */ d("ZodObject", (e, o) => {
2747
- vn.init(e, o), P.init(e, o), e._zod.processJSONSchema = (t, n, r) => Mr(e, t, n, r), $(e, "shape", () => o.shape), e.keyof = () => y(Object.keys(e._zod.def.shape)), e.catchall = (t) => e.clone({ ...e._zod.def, catchall: t }), e.passthrough = () => e.clone({ ...e._zod.def, catchall: s() }), e.loose = () => e.clone({ ...e._zod.def, catchall: s() }), e.strict = () => e.clone({ ...e._zod.def, catchall: Bi() }), e.strip = () => e.clone({ ...e._zod.def, catchall: void 0 }), e.extend = (t) => jo(e, t), e.safeExtend = (t) => Ro(e, t), e.merge = (t) => Do(e, t), e.pick = (t) => Ao(e, t), e.omit = (t) => xo(e, t), e.partial = (...t) => Uo(wo, e, t[0]), e.required = (...t) => Fo(So, e, t[0]);
2747
+ vn.init(e, o), P.init(e, o), e._zod.processJSONSchema = (t, n, r) => Mr(e, t, n, r), $(e, "shape", () => o.shape), e.keyof = () => b(Object.keys(e._zod.def.shape)), e.catchall = (t) => e.clone({ ...e._zod.def, catchall: t }), e.passthrough = () => e.clone({ ...e._zod.def, catchall: s() }), e.loose = () => e.clone({ ...e._zod.def, catchall: s() }), e.strict = () => e.clone({ ...e._zod.def, catchall: Bi() }), e.strip = () => e.clone({ ...e._zod.def, catchall: void 0 }), e.extend = (t) => jo(e, t), e.safeExtend = (t) => Ro(e, t), e.merge = (t) => Do(e, t), e.pick = (t) => Ao(e, t), e.omit = (t) => xo(e, t), e.partial = (...t) => Uo(wo, e, t[0]), e.required = (...t) => Fo(So, e, t[0]);
2748
2748
  });
2749
2749
  function z(e, o) {
2750
2750
  const t = {
@@ -2831,7 +2831,7 @@ const ve = /* @__PURE__ */ d("ZodEnum", (e, o) => {
2831
2831
  });
2832
2832
  };
2833
2833
  });
2834
- function y(e, o) {
2834
+ function b(e, o) {
2835
2835
  const t = Array.isArray(e) ? Object.fromEntries(e.map((n) => [n, n])) : e;
2836
2836
  return new ve({
2837
2837
  type: "enum",
@@ -2974,7 +2974,7 @@ const m = v([
2974
2974
  c(),
2975
2975
  g(),
2976
2976
  f(),
2977
- b(),
2977
+ y(),
2978
2978
  z({ path: c() })
2979
2979
  ]), ie = ma(
2980
2980
  () => v([
@@ -2992,12 +2992,12 @@ const m = v([
2992
2992
  ), ba = v([
2993
2993
  f(),
2994
2994
  z({ path: c() }),
2995
- z({ auth: y(["signedIn", "signedOut"]) }),
2995
+ z({ auth: b(["signedIn", "signedOut"]) }),
2996
2996
  ie
2997
2997
  ]), ya = z({
2998
2998
  title: c(),
2999
2999
  message: c(),
3000
- variant: y(["default", "danger"]).optional(),
3000
+ variant: b(["default", "danger"]).optional(),
3001
3001
  confirmLabel: c().optional(),
3002
3002
  cancelLabel: c().optional()
3003
3003
  }), za = z({
@@ -3013,55 +3013,55 @@ const m = v([
3013
3013
  // The controlled input value
3014
3014
  open: f().optional(),
3015
3015
  // Whether the popup is open (controlled)
3016
- children: v([c(), g(), f(), b(), m]).optional(),
3016
+ children: v([c(), g(), f(), y(), m]).optional(),
3017
3017
  // Autocomplete content (input group, popup content)
3018
3018
  className: c().optional(),
3019
3019
  // Additional CSS classes
3020
- label: v([c(), g(), f(), b(), m]).optional(),
3020
+ label: v([c(), g(), f(), y(), m]).optional(),
3021
3021
  // Label content (enables Field wrapper)
3022
3022
  required: f().optional(),
3023
3023
  // Whether the field is required
3024
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3024
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3025
3025
  // Tooltip content to display next to the label
3026
- description: v([c(), g(), f(), b(), m]).optional(),
3026
+ description: v([c(), g(), f(), y(), m]).optional(),
3027
3027
  // Helper text displayed below the field
3028
3028
  error: s().optional()
3029
3029
  // Error message or validation error object
3030
3030
  }), wa = z({
3031
- variant: y(["primary", "secondary", "error", "warning", "success", "destructive", "info", "beta", "outline", "red", "green", "neutral", "orange", "purple", "teal", "teal-subtle", "blue"]).optional(),
3031
+ variant: b(["primary", "secondary", "error", "warning", "success", "destructive", "info", "beta", "outline", "red", "green", "neutral", "orange", "purple", "teal", "teal-subtle", "blue"]).optional(),
3032
3032
  // Color variant of the badge. Recommended semantic variants: - `"primary"` — Primary badge - `"secondary"` — Secondary badge - `"error"` — Error badge - `"warning"` — Warning badge - `"success"` — Success badge - `"info"` — Info badge Additional token variants: - `"red"`, `"orange"`, `"green"`, `"teal"`, `"blue"`, `"purple"`, `"neutral"` - `"teal-subtle"`, `"neutral-subtle"` - `"inverted"` - `"outline"` — Bordered badge with transparent background - `"beta"` — Dashed-border badge for beta/experimental features
3033
3033
  className: c().optional(),
3034
3034
  // Additional CSS classes merged via `cn()`.
3035
- children: v([c(), g(), f(), b(), m]).optional()
3035
+ children: v([c(), g(), f(), y(), m]).optional()
3036
3036
  // Content rendered inside the badge.
3037
3037
  }), Sa = z({
3038
- icon: v([c(), g(), f(), b(), m]).optional(),
3038
+ icon: v([c(), g(), f(), y(), m]).optional(),
3039
3039
  // Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`).
3040
3040
  title: c().optional(),
3041
3041
  // Primary heading text for the banner. Use for i18n string injection.
3042
- description: v([c(), g(), f(), b(), m]).optional(),
3042
+ description: v([c(), g(), f(), y(), m]).optional(),
3043
3043
  // Secondary description text displayed below the title. Use for i18n string injection.
3044
- action: v([c(), g(), f(), b(), m]).optional(),
3044
+ action: v([c(), g(), f(), y(), m]).optional(),
3045
3045
  // Action slot rendered at the trailing end of the banner (e.g. a CTA button or link). Only used in structured mode (with `title` or `description`).
3046
3046
  text: c().optional(),
3047
- children: v([c(), g(), f(), b(), m]).optional(),
3048
- variant: y(["default", "alert", "error"]).optional(),
3047
+ children: v([c(), g(), f(), y(), m]).optional(),
3048
+ variant: b(["default", "alert", "error"]).optional(),
3049
3049
  // 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
3050
3050
  className: c().optional()
3051
3051
  // Additional CSS classes merged via `cn()`.
3052
3052
  }), $a = z({
3053
- size: y(["sm", "base"]).optional(),
3053
+ size: b(["sm", "base"]).optional(),
3054
3054
  // Size of the breadcrumbs. - `"sm"` — Compact breadcrumbs for dense UIs - `"base"` — Default breadcrumbs size
3055
- children: v([c(), g(), f(), b(), m]).optional(),
3055
+ children: v([c(), g(), f(), y(), m]).optional(),
3056
3056
  className: c().optional()
3057
3057
  // Additional CSS classes merged via `cn()`.
3058
3058
  }), Za = z({
3059
- shape: y(["base", "square", "circle"]).optional(),
3060
- size: y(["xs", "sm", "base", "lg"]).optional(),
3061
- variant: y(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
3062
- children: v([c(), g(), f(), b(), m]).optional(),
3059
+ shape: b(["base", "square", "circle"]).optional(),
3060
+ size: b(["xs", "sm", "base", "lg"]).optional(),
3061
+ variant: b(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
3062
+ children: v([c(), g(), f(), y(), m]).optional(),
3063
3063
  className: c().optional(),
3064
- icon: v([c(), g(), f(), b(), m]).optional(),
3064
+ icon: v([c(), g(), f(), y(), m]).optional(),
3065
3065
  // Icon from `@phosphor-icons/react` or a React element. Rendered before children.
3066
3066
  loading: f().optional(),
3067
3067
  // Shows a loading spinner and disables interaction.
@@ -3070,14 +3070,14 @@ const m = v([
3070
3070
  lang: c().optional(),
3071
3071
  disabled: f().optional(),
3072
3072
  name: c().optional(),
3073
- type: y(["submit", "reset", "button"]).optional(),
3073
+ type: b(["submit", "reset", "button"]).optional(),
3074
3074
  value: s().optional()
3075
3075
  }), Pa = z({
3076
- variant: y(["default", "error"]).optional(),
3076
+ variant: b(["default", "error"]).optional(),
3077
3077
  // Visual variant: "default" or "error" for validation failures (visual only, no error text)
3078
- label: v([c(), g(), f(), b(), m]).optional(),
3078
+ label: v([c(), g(), f(), y(), m]).optional(),
3079
3079
  // Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node
3080
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3080
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3081
3081
  // Tooltip content to display next to the label via an info icon
3082
3082
  controlFirst: f().optional(),
3083
3083
  // When true (default), checkbox appears before label. When false, label appears before checkbox.
@@ -3094,7 +3094,7 @@ const m = v([
3094
3094
  className: c().optional()
3095
3095
  // Additional class name
3096
3096
  }), Ta = z({
3097
- size: y(["sm", "base", "lg"]).optional(),
3097
+ size: b(["sm", "base", "lg"]).optional(),
3098
3098
  // Size of the clipboard text field. - `"sm"` — Small clipboard text for compact UIs - `"base"` — Default clipboard text size - `"lg"` — Large clipboard text for prominent display
3099
3099
  text: c(),
3100
3100
  // The text to display and copy to clipboard.
@@ -3107,7 +3107,7 @@ const m = v([
3107
3107
  labels: s().optional()
3108
3108
  // Accessible labels for i18n.
3109
3109
  }), Oa = z({
3110
- children: v([c(), g(), f(), b(), m]).optional(),
3110
+ children: v([c(), g(), f(), y(), m]).optional(),
3111
3111
  className: c().optional(),
3112
3112
  height: s().optional(),
3113
3113
  id: c().optional(),
@@ -3119,13 +3119,13 @@ const m = v([
3119
3119
  type: c().optional(),
3120
3120
  width: s().optional(),
3121
3121
  accentHeight: s().optional(),
3122
- accumulate: y(["none", "sum"]).optional(),
3123
- additive: y(["replace", "sum"]).optional(),
3124
- alignmentBaseline: y(["auto", "baseline", "before-edge", "text-before-edge", "middle", "central", "after-edge", "text-after-edge", "ideographic", "alphabetic", "hanging", "mathematical", "inherit"]).optional(),
3125
- allowReorder: y(["no", "yes"]).optional(),
3122
+ accumulate: b(["none", "sum"]).optional(),
3123
+ additive: b(["replace", "sum"]).optional(),
3124
+ alignmentBaseline: b(["auto", "baseline", "before-edge", "text-before-edge", "middle", "central", "after-edge", "text-after-edge", "ideographic", "alphabetic", "hanging", "mathematical", "inherit"]).optional(),
3125
+ allowReorder: b(["no", "yes"]).optional(),
3126
3126
  alphabetic: s().optional(),
3127
3127
  amplitude: s().optional(),
3128
- arabicForm: y(["initial", "medial", "terminal", "isolated"]).optional(),
3128
+ arabicForm: b(["initial", "medial", "terminal", "isolated"]).optional(),
3129
3129
  ascent: s().optional(),
3130
3130
  attributeName: c().optional(),
3131
3131
  attributeType: c().optional(),
@@ -3145,7 +3145,7 @@ const m = v([
3145
3145
  clipPathUnits: s().optional(),
3146
3146
  clipRule: s().optional(),
3147
3147
  colorInterpolation: s().optional(),
3148
- colorInterpolationFilters: y(["auto", "sRGB", "linearRGB", "inherit"]).optional(),
3148
+ colorInterpolationFilters: b(["auto", "sRGB", "linearRGB", "inherit"]).optional(),
3149
3149
  colorProfile: s().optional(),
3150
3150
  colorRendering: s().optional(),
3151
3151
  contentScriptType: s().optional(),
@@ -3160,7 +3160,7 @@ const m = v([
3160
3160
  direction: s().optional(),
3161
3161
  display: s().optional(),
3162
3162
  divisor: s().optional(),
3163
- dominantBaseline: y(["auto", "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge", "inherit"]).optional(),
3163
+ dominantBaseline: b(["auto", "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge", "inherit"]).optional(),
3164
3164
  dur: s().optional(),
3165
3165
  dx: s().optional(),
3166
3166
  dy: s().optional(),
@@ -3172,7 +3172,7 @@ const m = v([
3172
3172
  externalResourcesRequired: s().optional(),
3173
3173
  fill: c().optional(),
3174
3174
  fillOpacity: s().optional(),
3175
- fillRule: y(["nonzero", "evenodd", "inherit"]).optional(),
3175
+ fillRule: b(["nonzero", "evenodd", "inherit"]).optional(),
3176
3176
  filter: c().optional(),
3177
3177
  filterRes: s().optional(),
3178
3178
  filterUnits: s().optional(),
@@ -3297,8 +3297,8 @@ const m = v([
3297
3297
  stroke: c().optional(),
3298
3298
  strokeDasharray: s().optional(),
3299
3299
  strokeDashoffset: s().optional(),
3300
- strokeLinecap: y(["butt", "round", "square", "inherit"]).optional(),
3301
- strokeLinejoin: y(["miter", "round", "bevel", "inherit"]).optional(),
3300
+ strokeLinecap: b(["butt", "round", "square", "inherit"]).optional(),
3301
+ strokeLinejoin: b(["miter", "round", "bevel", "inherit"]).optional(),
3302
3302
  strokeMiterlimit: s().optional(),
3303
3303
  strokeOpacity: s().optional(),
3304
3304
  strokeWidth: s().optional(),
@@ -3307,7 +3307,7 @@ const m = v([
3307
3307
  tableValues: s().optional(),
3308
3308
  targetX: s().optional(),
3309
3309
  targetY: s().optional(),
3310
- textAnchor: y(["start", "middle", "end", "inherit"]).optional(),
3310
+ textAnchor: b(["start", "middle", "end", "inherit"]).optional(),
3311
3311
  textDecoration: s().optional(),
3312
3312
  textLength: s().optional(),
3313
3313
  textRendering: s().optional(),
@@ -3360,10 +3360,10 @@ const m = v([
3360
3360
  yChannelSelector: c().optional(),
3361
3361
  z: s().optional(),
3362
3362
  zoomAndPan: c().optional(),
3363
- variant: y(["glyph", "full"]).optional()
3363
+ variant: b(["glyph", "full"]).optional()
3364
3364
  // Logo variant - `glyph`: Cloud icon only - `full`: Cloud icon with "CLOUDFLARE" wordmark below
3365
3365
  }), Ia = z({
3366
- lang: y(["ts", "tsx", "jsonc", "bash", "css"]).optional(),
3366
+ lang: b(["ts", "tsx", "jsonc", "bash", "css"]).optional(),
3367
3367
  // Language hint for the code content. - `"ts"` — TypeScript code - `"tsx"` — TypeScript JSX code - `"jsonc"` — JSON with comments - `"bash"` — Shell/Bash commands - `"css"` — CSS styles
3368
3368
  code: c(),
3369
3369
  // The code string to display.
@@ -3377,25 +3377,25 @@ const m = v([
3377
3377
  onOpenChange: s().optional()
3378
3378
  // Callback when collapsed state changes
3379
3379
  }), Ea = z({
3380
- size: y(["xs", "sm", "base", "lg"]).optional(),
3380
+ size: b(["xs", "sm", "base", "lg"]).optional(),
3381
3381
  // Size of the combobox trigger. Matches Input component sizes. - `"xs"` — Extra small for compact UIs (h-5 / 20px) - `"sm"` — Small for secondary fields (h-6.5 / 26px) - `"base"` — Default size (h-9 / 36px) - `"lg"` — Large for prominent fields (h-10 / 40px)
3382
- inputSide: y(["right", "top"]).optional(),
3382
+ inputSide: b(["right", "top"]).optional(),
3383
3383
  // Position of the text input relative to chips in multi-select mode. - `"right"` — Input inline to the right of chips - `"top"` — Input above chips
3384
3384
  items: U(s()),
3385
3385
  // Array of items to display in the dropdown
3386
3386
  value: U(s()).optional(),
3387
3387
  // Currently selected value(s)
3388
- children: v([c(), g(), f(), b(), m]).optional(),
3388
+ children: v([c(), g(), f(), y(), m]).optional(),
3389
3389
  // Combobox content (trigger, content, items)
3390
3390
  className: c().optional(),
3391
3391
  // Additional CSS classes
3392
- label: v([c(), g(), f(), b(), m]).optional(),
3392
+ label: v([c(), g(), f(), y(), m]).optional(),
3393
3393
  // Label content for the combobox (enables Field wrapper) - can be a string or any React node
3394
3394
  required: f().optional(),
3395
3395
  // Whether the combobox is required
3396
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3396
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3397
3397
  // Tooltip content to display next to the label via an info icon
3398
- description: v([c(), g(), f(), b(), m]).optional(),
3398
+ description: v([c(), g(), f(), y(), m]).optional(),
3399
3399
  // Helper text displayed below the combobox
3400
3400
  error: s().optional(),
3401
3401
  // Error message or validation error object
@@ -3408,19 +3408,19 @@ const m = v([
3408
3408
  }), Ca = z({
3409
3409
  open: f(),
3410
3410
  // Whether the dialog is open
3411
- children: v([c(), g(), f(), b(), m]).optional(),
3411
+ children: v([c(), g(), f(), y(), m]).optional(),
3412
3412
  // Child content - typically one or more Panel components
3413
3413
  container: s().optional()
3414
3414
  // Container element for the portal. Use this to render the command palette inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
3415
3415
  }), Aa = z({
3416
3416
  className: c().optional(),
3417
3417
  // Additional CSS classes
3418
- children: v([c(), g(), f(), b(), m]).optional()
3418
+ children: v([c(), g(), f(), y(), m]).optional()
3419
3419
  // Child elements
3420
3420
  }), xa = z({
3421
- size: y(["sm", "base", "lg"]).optional(),
3421
+ size: b(["sm", "base", "lg"]).optional(),
3422
3422
  // Calendar size. - `"sm"` — Compact calendar for tight spaces - `"base"` — Default calendar size - `"lg"` — Large calendar for prominent date selection
3423
- variant: y(["default", "subtle"]).optional(),
3423
+ variant: b(["default", "subtle"]).optional(),
3424
3424
  // Visual variant. - `"default"` — Standard appearance with overlay background - `"subtle"` — Minimal background
3425
3425
  timezone: c().optional(),
3426
3426
  // Display timezone string shown in the footer.
@@ -3433,19 +3433,19 @@ const m = v([
3433
3433
  }), ja = z({
3434
3434
  className: c().optional(),
3435
3435
  // Additional CSS classes merged via `cn()`.
3436
- children: v([c(), g(), f(), b(), m]).optional(),
3436
+ children: v([c(), g(), f(), y(), m]).optional(),
3437
3437
  // Dialog content (typically Title, Description, Close, and action buttons).
3438
3438
  container: s().optional(),
3439
3439
  // Container element for the portal. Use this to render the dialog inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
3440
- size: y(["base", "sm", "lg", "xl"]).optional()
3440
+ size: b(["base", "sm", "lg", "xl"]).optional()
3441
3441
  // Dialog width. - `"sm"` — Small (min 288px) for simple confirmations - `"base"` — Default (min 384px) - `"lg"` — Large (min 512px) for complex content - `"xl"` — Extra large (min 768px) for detailed views
3442
3442
  }), Ra = z({
3443
- variant: y(["default", "danger"]).optional()
3443
+ variant: b(["default", "danger"]).optional()
3444
3444
  // Visual style of the dropdown item. - `"default"` — Standard item appearance - `"danger"` — Destructive action with red text
3445
3445
  }), Da = z({
3446
- size: y(["sm", "base", "lg"]).optional(),
3446
+ size: b(["sm", "base", "lg"]).optional(),
3447
3447
  // Size of the empty state container. - `"sm"` — Compact empty state for smaller containers - `"base"` — Default empty state size - `"lg"` — Large empty state for prominent placement
3448
- icon: v([c(), g(), f(), b(), m]).optional(),
3448
+ icon: v([c(), g(), f(), y(), m]).optional(),
3449
3449
  // Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
3450
3450
  title: c(),
3451
3451
  // Primary heading text for the empty state.
@@ -3453,27 +3453,29 @@ const m = v([
3453
3453
  // Secondary description text displayed below the title.
3454
3454
  commandLine: c().optional(),
3455
3455
  // Shell command displayed in a copyable code block.
3456
- contents: v([c(), g(), f(), b(), m]).optional(),
3456
+ contents: v([c(), g(), f(), y(), m]).optional(),
3457
3457
  // Additional content (buttons, links) rendered below the description.
3458
3458
  className: c().optional()
3459
3459
  // Additional CSS classes merged via `cn()`.
3460
3460
  }), Ua = z({
3461
3461
  controlFirst: f().optional(),
3462
3462
  // When `true`, places the control before the label (for checkbox/switch layouts).
3463
- children: v([c(), g(), f(), b(), m]).optional(),
3463
+ children: v([c(), g(), f(), y(), m]).optional(),
3464
3464
  // The form control element(s) to wrap (Input, Select, Checkbox, etc.).
3465
- label: v([c(), g(), f(), b(), m]).optional(),
3465
+ label: v([c(), g(), f(), y(), m]).optional(),
3466
3466
  // The label content — can be a string or any React node.
3467
3467
  required: f().optional(),
3468
3468
  // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
3469
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3469
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3470
3470
  // Tooltip content displayed next to the label via an info icon.
3471
3471
  error: s().optional(),
3472
3472
  // Validation error with a message and a browser `ValidityState` match key.
3473
- description: v([c(), g(), f(), b(), m]).optional()
3473
+ description: v([c(), g(), f(), y(), m]).optional(),
3474
3474
  // Helper text displayed below the control (hidden when `error` is present).
3475
+ hideLabel: f().optional()
3476
+ // When `true`, Field renders layout, description, and error but skips the `<label>` element. Use when the child component provides its own accessible label (e.g. Select uses Base UI's `Select.Label` to avoid hover/focus coupling from native `<label>`).
3475
3477
  }), Fa = z({
3476
- children: v([c(), g(), f(), b(), m]).optional(),
3478
+ children: v([c(), g(), f(), y(), m]).optional(),
3477
3479
  // Grid items to render.
3478
3480
  className: c().optional(),
3479
3481
  // Additional CSS classes merged via `cn()`.
@@ -3482,47 +3484,49 @@ const m = v([
3482
3484
  title: c().optional(),
3483
3485
  mobileDivider: f().optional(),
3484
3486
  // Show dividers between grid items on mobile (only works with `"4up"` variant).
3485
- gap: y(["none", "sm", "base", "lg"]).optional(),
3487
+ gap: b(["none", "sm", "base", "lg"]).optional(),
3486
3488
  // Gap size between grid items. - `"none"` — No gap - `"sm"` — 12px gap - `"base"` — Responsive gap (8px → 24px → 32px) - `"lg"` — 32px gap
3487
- variant: y(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional()
3489
+ variant: b(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional()
3488
3490
  // Responsive column layout variant. - `"2up"` — 1 col → 2 cols at md - `"side-by-side"` — Always 2 cols - `"2-1"` — 66%/33% split at md - `"1-2"` — 33%/66% split at md - `"3up"` — 1 → 2 → 3 cols - `"4up"` — 1 → 2 → 3 → 4 cols - `"6up"` — 2 → 3 → 4 → 6 cols - `"1-2-4up"` — 1 → 2 → 4 cols
3489
3491
  }), La = z({
3490
- label: v([c(), g(), f(), b(), m]).optional(),
3492
+ label: v([c(), g(), f(), y(), m]).optional(),
3491
3493
  // Label content for the input (enables Field wrapper) - can be a string or any React node
3492
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3494
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3493
3495
  // Tooltip content to display next to the label via an info icon
3494
- description: v([c(), g(), f(), b(), m]).optional(),
3496
+ description: v([c(), g(), f(), y(), m]).optional(),
3495
3497
  // Helper text displayed below the input
3496
3498
  error: s().optional(),
3497
3499
  // Error message or validation error object
3498
- size: y(["xs", "sm", "base", "lg"]).optional(),
3500
+ passwordManagerIgnore: f().optional(),
3501
+ // Suppress browser extension password manager overlays on non-credential inputs.
3502
+ size: b(["xs", "sm", "base", "lg"]).optional(),
3499
3503
  // Input size. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default size - `"lg"` — Large for prominent fields
3500
- variant: y(["default", "error"]).optional()
3504
+ variant: b(["default", "error"]).optional()
3501
3505
  // Visual variant. - `"default"` — Standard input - `"error"` — Error state for validation failures
3502
3506
  }), Ma = z({}), Ja = z({
3503
- label: v([c(), g(), f(), b(), m]).optional(),
3507
+ label: v([c(), g(), f(), y(), m]).optional(),
3504
3508
  // The label content — can be a string or any React node.
3505
- description: v([c(), g(), f(), b(), m]).optional(),
3509
+ description: v([c(), g(), f(), y(), m]).optional(),
3506
3510
  // Helper text displayed below the control (hidden when `error` is present).
3507
3511
  error: s().optional(),
3508
3512
  // Validation error with a message and a browser `ValidityState` match key.
3509
3513
  required: f().optional(),
3510
3514
  // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
3511
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3515
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3512
3516
  // Tooltip content displayed next to the label via an info icon.
3513
- children: v([c(), g(), f(), b(), m]).optional(),
3517
+ children: v([c(), g(), f(), y(), m]).optional(),
3514
3518
  className: c().optional(),
3515
3519
  id: c().optional(),
3516
3520
  lang: c().optional(),
3517
3521
  title: c().optional(),
3518
- size: y(["xs", "sm", "base", "lg"]).optional(),
3522
+ size: b(["xs", "sm", "base", "lg"]).optional(),
3519
3523
  disabled: f().optional()
3520
3524
  }), Va = z({
3521
- children: v([c(), g(), f(), b(), m]).optional(),
3525
+ children: v([c(), g(), f(), y(), m]).optional(),
3522
3526
  // The label content — can be a string or any React node.
3523
3527
  showOptional: f().optional(),
3524
3528
  // When `true`, shows gray "(optional)" text after the label.
3525
- tooltip: v([c(), g(), f(), b(), m]).optional(),
3529
+ tooltip: v([c(), g(), f(), y(), m]).optional(),
3526
3530
  // Tooltip content displayed next to the label via an info icon.
3527
3531
  className: c().optional(),
3528
3532
  // Additional CSS classes merged via `cn()`.
@@ -3531,18 +3535,18 @@ const m = v([
3531
3535
  asContent: f().optional()
3532
3536
  // 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.
3533
3537
  }), Ba = z({
3534
- render: v([c(), g(), f(), b(), m]).optional(),
3538
+ render: v([c(), g(), f(), y(), m]).optional(),
3535
3539
  // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
3536
- children: v([c(), g(), f(), b(), m]).optional(),
3540
+ children: v([c(), g(), f(), y(), m]).optional(),
3537
3541
  className: c().optional(),
3538
3542
  id: c().optional(),
3539
3543
  lang: c().optional(),
3540
3544
  title: c().optional()
3541
3545
  }), Wa = z({
3542
- variant: y(["inline", "current", "plain"]).optional(),
3546
+ variant: b(["inline", "current", "plain"]).optional(),
3543
3547
  // Visual style of the link. - `"inline"` — Inline text link that flows with content - `"current"` — Link that inherits color from parent text - `"plain"` — Link without underline decoration
3544
3548
  to: c().optional(),
3545
- children: v([c(), g(), f(), b(), m]).optional(),
3549
+ children: v([c(), g(), f(), y(), m]).optional(),
3546
3550
  className: c().optional(),
3547
3551
  id: c().optional(),
3548
3552
  lang: c().optional(),
@@ -3554,13 +3558,13 @@ const m = v([
3554
3558
  ping: c().optional(),
3555
3559
  target: s().optional(),
3556
3560
  type: c().optional(),
3557
- referrerPolicy: y(["", "no-referrer", "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "same-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"]).optional(),
3558
- render: v([c(), g(), f(), b(), m]).optional()
3561
+ referrerPolicy: b(["", "no-referrer", "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "same-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"]).optional(),
3562
+ render: v([c(), g(), f(), y(), m]).optional()
3559
3563
  // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
3560
3564
  }), Ga = z({
3561
3565
  className: c().optional(),
3562
3566
  // Additional CSS classes merged via `cn()`.
3563
- size: y(["sm", "base", "lg"]).optional()
3567
+ size: b(["sm", "base", "lg"]).optional()
3564
3568
  // Size of the spinner. Use a preset name or a custom pixel number. - `"sm"` — 16px, for inline use - `"base"` — 24px, default size - `"lg"` — 32px, for prominent loading states
3565
3569
  }), qa = z({
3566
3570
  className: c().optional(),
@@ -3601,31 +3605,31 @@ const m = v([
3601
3605
  // Additional CSS classes for the container
3602
3606
  labels: s().optional(),
3603
3607
  // Labels for internationalization of aria-labels. All labels have English defaults. For visible text like "Showing X of Y", use render props on sub-components: - `Pagination.Info` children for the info text - `Pagination.PageSize` label prop for the "Per page:" text
3604
- children: v([c(), g(), f(), b(), m]).optional(),
3608
+ children: v([c(), g(), f(), y(), m]).optional(),
3605
3609
  // Compound component children for custom layouts. Use Pagination.Info, Pagination.PageSize, Pagination.Controls, and Pagination.Separator.
3606
- controls: y(["full", "simple"]).optional(),
3610
+ controls: b(["full", "simple"]).optional(),
3607
3611
  text: s().optional()
3608
3612
  }), Ya = z({
3609
- side: y(["top", "bottom", "left", "right"]).optional()
3613
+ side: b(["top", "bottom", "left", "right"]).optional()
3610
3614
  // Which side of the trigger the popover appears on. - `"top"` — Above the trigger - `"bottom"` — Below the trigger - `"left"` — Left of the trigger - `"right"` — Right of the trigger
3611
3615
  }), Ha = z({
3612
3616
  legend: c().optional(),
3613
3617
  // Legend text for the group (required for accessibility). For more control over legend styling, omit this prop and use `<Radio.Legend>` as a child instead.
3614
- children: v([c(), g(), f(), b(), m]).optional(),
3618
+ children: v([c(), g(), f(), y(), m]).optional(),
3615
3619
  // Child Radio.Item components (and optionally a Radio.Legend)
3616
- orientation: y(["vertical", "horizontal"]).optional(),
3620
+ orientation: b(["vertical", "horizontal"]).optional(),
3617
3621
  // Layout direction of the radio items
3618
- appearance: y(["default", "card"]).optional(),
3622
+ appearance: b(["default", "card"]).optional(),
3619
3623
  // Visual appearance applied to all Radio.Item children. - `"default"` — Standard inline radio items - `"card"` — Choice card with border, padding, and highlighted selection state Individual items can override this with their own `appearance` prop.
3620
3624
  error: c().optional(),
3621
3625
  // Error message for the group
3622
- description: v([c(), g(), f(), b(), m]).optional(),
3626
+ description: v([c(), g(), f(), y(), m]).optional(),
3623
3627
  // Helper text for the group
3624
3628
  value: c().optional(),
3625
3629
  // Value of the radio that should be selected (controlled)
3626
3630
  disabled: f().optional(),
3627
3631
  // Whether all radios in the group are disabled
3628
- controlPosition: y(["start", "end"]).optional(),
3632
+ controlPosition: b(["start", "end"]).optional(),
3629
3633
  // Position of radio control relative to label: "start" puts radio before label, "end" puts label before radio. Defaults to "start" for default appearance and "end" for card appearance.
3630
3634
  name: c().optional(),
3631
3635
  // Form submission name for the radio group
@@ -3634,9 +3638,9 @@ const m = v([
3634
3638
  }), Qa = z({
3635
3639
  className: c().optional(),
3636
3640
  // Additional CSS classes merged via `cn()`.
3637
- size: y(["xs", "sm", "base", "lg"]).optional(),
3641
+ size: b(["xs", "sm", "base", "lg"]).optional(),
3638
3642
  // Size of the select trigger. Matches Input component sizes.
3639
- label: v([c(), g(), f(), b(), m]).optional(),
3643
+ label: v([c(), g(), f(), y(), m]).optional(),
3640
3644
  // Label content for the select. When provided, enables the Field wrapper with a visible label above the select. For accessibility without a visible label, use `aria-label` instead.
3641
3645
  hideLabel: f().optional(),
3642
3646
  placeholder: c().optional(),
@@ -3647,13 +3651,13 @@ const m = v([
3647
3651
  // Whether the select is disabled.
3648
3652
  required: f().optional(),
3649
3653
  // Whether the select is required. When `false`, shows "(optional)" text.
3650
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3654
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3651
3655
  // Tooltip content displayed next to the label via an info icon.
3652
3656
  value: s().optional(),
3653
3657
  // Currently selected value (controlled mode).
3654
- children: v([c(), g(), f(), b(), m]).optional(),
3658
+ children: v([c(), g(), f(), y(), m]).optional(),
3655
3659
  // `Select.Option` elements to render in the dropdown.
3656
- description: v([c(), g(), f(), b(), m]).optional(),
3660
+ description: v([c(), g(), f(), y(), m]).optional(),
3657
3661
  // Helper text displayed below the select.
3658
3662
  error: s().optional(),
3659
3663
  // Error message string or validation error object with `match` key.
@@ -3683,18 +3687,18 @@ const m = v([
3683
3687
  id: c().optional(),
3684
3688
  lang: c().optional(),
3685
3689
  title: c().optional(),
3686
- children: v([c(), g(), f(), b(), m]).optional(),
3690
+ children: v([c(), g(), f(), y(), m]).optional(),
3687
3691
  value: c().optional(),
3688
3692
  // Controlled value
3689
- size: y(["xs", "sm", "base", "lg"]).optional(),
3693
+ size: b(["xs", "sm", "base", "lg"]).optional(),
3690
3694
  // Size of the input. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default input size - `"lg"` — Large for prominent fields
3691
- variant: y(["default", "error"]).optional(),
3695
+ variant: b(["default", "error"]).optional(),
3692
3696
  // Style variant of the input. - `"default"` — Default input appearance - `"error"` — Error state for validation failures
3693
- label: v([c(), g(), f(), b(), m]).optional(),
3697
+ label: v([c(), g(), f(), y(), m]).optional(),
3694
3698
  // Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
3695
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3699
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3696
3700
  // Tooltip content to display next to the label via an info icon
3697
- description: v([c(), g(), f(), b(), m]).optional(),
3701
+ description: v([c(), g(), f(), y(), m]).optional(),
3698
3702
  // Helper text displayed below the input
3699
3703
  error: s().optional()
3700
3704
  // Error message or validation error object
@@ -3703,11 +3707,11 @@ const m = v([
3703
3707
  // Initial open state when uncontrolled.
3704
3708
  open: f().optional(),
3705
3709
  // Controlled open state.
3706
- variant: y(["sidebar", "floating", "inset"]).optional(),
3710
+ variant: b(["sidebar", "floating", "inset"]).optional(),
3707
3711
  // Sidebar layout variant.
3708
- side: y(["left", "right"]).optional(),
3712
+ side: b(["left", "right"]).optional(),
3709
3713
  // Which side the sidebar is on.
3710
- collapsible: y(["icon", "offcanvas", "none"]).optional(),
3714
+ collapsible: b(["icon", "offcanvas", "none"]).optional(),
3711
3715
  resizable: f().optional(),
3712
3716
  // Enable drag-to-resize on the sidebar edge.
3713
3717
  defaultWidth: g().optional(),
@@ -3716,36 +3720,36 @@ const m = v([
3716
3720
  // Minimum width in pixels when resizing.
3717
3721
  maxWidth: g().optional(),
3718
3722
  // Maximum width in pixels when resizing.
3719
- children: v([c(), g(), f(), b(), m]).optional(),
3723
+ children: v([c(), g(), f(), y(), m]).optional(),
3720
3724
  // Content — typically `<Sidebar>` + main content.
3721
3725
  className: c().optional()
3722
3726
  // Additional CSS classes for the wrapper div.
3723
3727
  }), ts = z({
3724
3728
  as: s().optional(),
3725
- render: v([c(), g(), f(), b(), m]).optional(),
3729
+ render: v([c(), g(), f(), y(), m]).optional(),
3726
3730
  // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
3727
- children: v([c(), g(), f(), b(), m]).optional(),
3731
+ children: v([c(), g(), f(), y(), m]).optional(),
3728
3732
  className: c().optional(),
3729
3733
  id: c().optional(),
3730
3734
  lang: c().optional(),
3731
3735
  title: c().optional()
3732
3736
  }), ns = z({
3733
- variant: y(["default", "neutral"]).optional(),
3737
+ variant: b(["default", "neutral"]).optional(),
3734
3738
  // Visual variant: "default" (pill, brand color) or "neutral" (squircle, monochrome)
3735
- label: v([c(), g(), f(), b(), m]).optional(),
3739
+ label: v([c(), g(), f(), y(), m]).optional(),
3736
3740
  // Label content for the switch (Field wrapper is built-in) - can be a string or any React node. Optional when used standalone for visual-only purposes.
3737
- labelTooltip: v([c(), g(), f(), b(), m]).optional(),
3741
+ labelTooltip: v([c(), g(), f(), y(), m]).optional(),
3738
3742
  // Tooltip content to display next to the label via an info icon
3739
3743
  required: f().optional(),
3740
3744
  // Whether the switch is required. When explicitly false, shows "(optional)" text after the label.
3741
3745
  controlFirst: f().optional(),
3742
3746
  // When true (default), switch appears before label. When false, label appears before switch.
3743
- size: y(["sm", "base", "lg"]).optional(),
3747
+ size: b(["sm", "base", "lg"]).optional(),
3744
3748
  checked: f().optional(),
3745
3749
  disabled: f().optional(),
3746
3750
  transitioning: f().optional(),
3747
3751
  name: c().optional(),
3748
- type: y(["submit", "reset", "button"]).optional(),
3752
+ type: b(["submit", "reset", "button"]).optional(),
3749
3753
  value: s().optional(),
3750
3754
  className: c().optional(),
3751
3755
  id: c().optional(),
@@ -3754,15 +3758,15 @@ const m = v([
3754
3758
  onClick: s()
3755
3759
  // Callback when switch is clicked
3756
3760
  }), rs = z({
3757
- layout: y(["auto", "fixed"]).optional(),
3758
- variant: y(["default", "selected"]).optional(),
3759
- sticky: y(["left", "right"]).optional(),
3761
+ layout: b(["auto", "fixed"]).optional(),
3762
+ variant: b(["default", "selected"]).optional(),
3763
+ sticky: b(["left", "right"]).optional(),
3760
3764
  className: c().optional(),
3761
3765
  // Additional CSS classes
3762
- children: v([c(), g(), f(), b(), m]).optional()
3766
+ children: v([c(), g(), f(), y(), m]).optional()
3763
3767
  // Child elements
3764
3768
  }), is = z({
3765
- children: v([c(), g(), f(), b(), m]).optional(),
3769
+ children: v([c(), g(), f(), y(), m]).optional(),
3766
3770
  className: c().optional(),
3767
3771
  id: c().optional(),
3768
3772
  lang: c().optional(),
@@ -3782,38 +3786,40 @@ const m = v([
3782
3786
  // Additional CSS classes for the tab list element.
3783
3787
  indicatorClassName: c().optional(),
3784
3788
  // Additional CSS classes for the indicator element.
3785
- variant: y(["segmented", "underline"]).optional(),
3789
+ variant: b(["segmented", "underline"]).optional(),
3786
3790
  // Tab style. - `"segmented"` — Pill-shaped indicator on a filled track - `"underline"` — Underline indicator below tab text
3791
+ size: b(["base", "sm"]).optional(),
3792
+ // Tab size. - `"base"` — Default size (h-9, text-base) - `"sm"` — Compact size (h-6.5, text-xs) — matches Input size="sm"
3787
3793
  onValueChange: s().optional()
3788
3794
  // Callback when active tab changes
3789
3795
  }), ss = z({
3790
- variant: y(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(),
3796
+ variant: b(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(),
3791
3797
  // Text style variant. Determines color, font, and weight. - `"heading1"` — Large page title (30px, semibold) - `"heading2"` — Section title (24px, semibold) - `"heading3"` — Subsection title (18px, semibold) - `"body"` — Default body text - `"secondary"` — Muted text for secondary information - `"success"` — Success state text - `"error"` — Error state text - `"mono"` — Monospace text for code - `"mono-secondary"` — Muted monospace text
3792
- size: y(["xs", "sm", "base", "lg"]).optional(),
3798
+ size: b(["xs", "sm", "base", "lg"]).optional(),
3793
3799
  // Text size (only applies to body/secondary/success/error variants). - `"xs"` — 12px - `"sm"` — 14px - `"base"` — 16px - `"lg"` — 18px
3794
3800
  bold: f().optional(),
3795
3801
  // Whether to use bold font weight (only applies to body variants).
3796
3802
  truncate: f().optional(),
3797
3803
  // Whether to truncate overflowing text with an ellipsis. Adds `truncate min-w-0` classes.
3798
- as: y(["h1", "h2", "h3", "h4", "h5", "h6", "p", "span", "label", "dt", "dd", "li", "figcaption", "legend", "pre", "code", "em", "strong", "small", "abbr", "time"]).optional(),
3804
+ as: b(["h1", "h2", "h3", "h4", "h5", "h6", "p", "span", "label", "dt", "dd", "li", "figcaption", "legend", "pre", "code", "em", "strong", "small", "abbr", "time"]).optional(),
3799
3805
  // The HTML element to render. Accepts headings (`"h1"`–`"h6"`), block text (`"p"`, `"pre"`), inline text (`"span"`, `"code"`, `"em"`, `"strong"`, `"small"`, `"abbr"`, `"time"`), form-related (`"label"`, `"legend"`), list/definition (`"dt"`, `"dd"`, `"li"`), and `"figcaption"`. - **Required** for heading variants (`"heading1"`, `"heading2"`, `"heading3"`) — pick the element that reflects this text's place in the document outline, or `"span"` for decorative heading-styled text that is not a section heading. - **Optional** for body variants (defaults to `"p"`) and monospace variants (defaults to `"span"`).
3800
- children: v([c(), g(), f(), b(), m]).optional()
3806
+ children: v([c(), g(), f(), y(), m]).optional()
3801
3807
  // Text content.
3802
3808
  }), cs = z({
3803
- variant: y(["default", "success", "error", "warning", "info"]).optional(),
3809
+ variant: b(["default", "success", "error", "warning", "info"]).optional(),
3804
3810
  className: c().optional(),
3805
3811
  // Additional CSS classes
3806
- children: v([c(), g(), f(), b(), m]).optional()
3812
+ children: v([c(), g(), f(), y(), m]).optional()
3807
3813
  // Child elements
3808
3814
  }), ls = z({
3809
- side: y(["top", "bottom", "left", "right"]).optional(),
3815
+ side: b(["top", "bottom", "left", "right"]).optional(),
3810
3816
  className: c().optional(),
3811
3817
  // Additional CSS classes
3812
- children: v([c(), g(), f(), b(), m]).optional(),
3818
+ children: v([c(), g(), f(), y(), m]).optional(),
3813
3819
  // Child elements
3814
- content: v([c(), g(), f(), b(), m])
3820
+ content: v([c(), g(), f(), y(), m])
3815
3821
  // Content to display in the tooltip
3816
- }), us = y([
3822
+ }), us = b([
3817
3823
  "Autocomplete",
3818
3824
  "Badge",
3819
3825
  "Banner",