@cloudflare/kumo 1.16.0 → 1.17.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 (254) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/ai/USAGE.md +3 -1
  3. package/ai/component-registry.json +200 -59
  4. package/ai/component-registry.md +269 -33
  5. package/ai/schemas.ts +15 -5
  6. package/dist/.build-complete +1 -1
  7. package/dist/ai/schemas.d.ts +101 -37
  8. package/dist/ai/schemas.d.ts.map +1 -1
  9. package/dist/ai/schemas.js +187 -174
  10. package/dist/ai/schemas.js.map +1 -1
  11. package/dist/chunks/{Legend-bov5dqf08wemc2qj.js → Legend-o0ntojbaplmszwk0.js} +4 -2
  12. package/dist/chunks/Legend-o0ntojbaplmszwk0.js.map +1 -0
  13. package/dist/chunks/badge-n80t3z8u9ttlxi20.js +120 -0
  14. package/dist/chunks/badge-n80t3z8u9ttlxi20.js.map +1 -0
  15. package/dist/chunks/banner-nz0eryqnz3qd86ln.js +79 -0
  16. package/dist/chunks/banner-nz0eryqnz3qd86ln.js.map +1 -0
  17. package/dist/chunks/{breadcrumbs-m79gm4gjwbfajpna.js → breadcrumbs-cjgn3w4drahvqnuj.js} +3 -3
  18. package/dist/chunks/{breadcrumbs-m79gm4gjwbfajpna.js.map → breadcrumbs-cjgn3w4drahvqnuj.js.map} +1 -1
  19. package/dist/chunks/{button-j0hi0afn33w9lxgi.js → button-odxi0hp4fvi5i2w3.js} +50 -48
  20. package/dist/chunks/button-odxi0hp4fvi5i2w3.js.map +1 -0
  21. package/dist/chunks/{checkbox-lawmt1894wr6rpgi.js → checkbox-dx8x0rzv582yjv7n.js} +38 -47
  22. package/dist/chunks/{checkbox-lawmt1894wr6rpgi.js.map → checkbox-dx8x0rzv582yjv7n.js.map} +1 -1
  23. package/dist/chunks/{clipboard-text-ohx8kkpxisz382rj.js → clipboard-text-kyk51d1ze7zvdn4q.js} +55 -54
  24. package/dist/chunks/clipboard-text-kyk51d1ze7zvdn4q.js.map +1 -0
  25. package/dist/chunks/{combobox-ft0u7rfaxawk0r0c.js → combobox-9fhjzprab46csmon.js} +97 -82
  26. package/dist/chunks/combobox-9fhjzprab46csmon.js.map +1 -0
  27. package/dist/chunks/{command-palette-b31nq4wk7o7gx4sa.js → command-palette-kenx2bbdzd4kpx36.js} +158 -154
  28. package/dist/chunks/command-palette-kenx2bbdzd4kpx36.js.map +1 -0
  29. package/dist/chunks/{dialog-l5tmwxrzp9g83jmw.js → dialog-e05ysa8t2fklw065.js} +22 -20
  30. package/dist/chunks/dialog-e05ysa8t2fklw065.js.map +1 -0
  31. package/dist/chunks/{dropdown-icy3xatdwhzr4une.js → dropdown-g587px7zv3ssaxr4.js} +96 -90
  32. package/dist/chunks/dropdown-g587px7zv3ssaxr4.js.map +1 -0
  33. package/dist/chunks/{empty-hrwtammqp0b2nvtf.js → empty-fuz1un7r7mbz0kim.js} +2 -2
  34. package/dist/chunks/{empty-hrwtammqp0b2nvtf.js.map → empty-fuz1un7r7mbz0kim.js.map} +1 -1
  35. package/dist/chunks/{field-csje72m7j9403fj5.js → field-fq504lyu7ttsh5m9.js} +3 -3
  36. package/dist/chunks/{field-csje72m7j9403fj5.js.map → field-fq504lyu7ttsh5m9.js.map} +1 -1
  37. package/dist/chunks/{input-area-jko15sbc6zeage3l.js → input-area-nq40szg9110on89c.js} +4 -4
  38. package/dist/chunks/{input-area-jko15sbc6zeage3l.js.map → input-area-nq40szg9110on89c.js.map} +1 -1
  39. package/dist/chunks/{input-group-cjsy8kh4vf9312xl.js → input-group-hbebbyh8fo6aqydn.js} +3 -3
  40. package/dist/chunks/{input-group-cjsy8kh4vf9312xl.js.map → input-group-hbebbyh8fo6aqydn.js.map} +1 -1
  41. package/dist/chunks/{input-c8jmidy7gdqfiky1.js → input-kvhyo3p4859bexvx.js} +4 -4
  42. package/dist/chunks/input-kvhyo3p4859bexvx.js.map +1 -0
  43. package/dist/chunks/{label-i46xnnzdh9bsxk6a.js → label-j9owppbgnn35mebg.js} +3 -3
  44. package/dist/chunks/{label-i46xnnzdh9bsxk6a.js.map → label-j9owppbgnn35mebg.js.map} +1 -1
  45. package/dist/chunks/{layer-card-mu2w82x6ko1nhhtr.js → layer-card-l5yjvrxry1dhte57.js} +8 -8
  46. package/dist/chunks/{layer-card-mu2w82x6ko1nhhtr.js.map → layer-card-l5yjvrxry1dhte57.js.map} +1 -1
  47. package/dist/chunks/{link-o7yfj4kwgl19fklp.js → link-hmmf3k1xn6rm72rt.js} +2 -2
  48. package/dist/chunks/{link-o7yfj4kwgl19fklp.js.map → link-hmmf3k1xn6rm72rt.js.map} +1 -1
  49. package/dist/chunks/{menubar-g1wqqjuyyfvsim83.js → menubar-abojnm0uwjuni8ok.js} +20 -20
  50. package/dist/chunks/menubar-abojnm0uwjuni8ok.js.map +1 -0
  51. package/dist/chunks/{meter-cqkrg5axjenbsuue.js → meter-i84dte2f82qmvn7y.js} +2 -2
  52. package/dist/chunks/{meter-cqkrg5axjenbsuue.js.map → meter-i84dte2f82qmvn7y.js.map} +1 -1
  53. package/dist/chunks/{pagination-e3dp8bd80s35f7sd.js → pagination-pbd7qqik97ac0l7m.js} +3 -3
  54. package/dist/chunks/{pagination-e3dp8bd80s35f7sd.js.map → pagination-pbd7qqik97ac0l7m.js.map} +1 -1
  55. package/dist/chunks/{popover-jurf834u2uywluux.js → popover-i951xjcgezeqr4iv.js} +31 -28
  56. package/dist/chunks/popover-i951xjcgezeqr4iv.js.map +1 -0
  57. package/dist/chunks/portal-provider-hwmkdmkpvct0cb76.js +18 -0
  58. package/dist/chunks/portal-provider-hwmkdmkpvct0cb76.js.map +1 -0
  59. package/dist/chunks/{radio-l9dzm6sohcvvrsdc.js → radio-l2vkcue40d84fmo1.js} +13 -16
  60. package/dist/chunks/{radio-l9dzm6sohcvvrsdc.js.map → radio-l2vkcue40d84fmo1.js.map} +1 -1
  61. package/dist/chunks/{select-hnt87e3cfos48qql.js → select-paedwa3nlhpq82ua.js} +39 -37
  62. package/dist/chunks/select-paedwa3nlhpq82ua.js.map +1 -0
  63. package/dist/chunks/{sensitive-input-lvtccf3iqc06lj7b.js → sensitive-input-kznmknpp5h1grc6k.js} +97 -91
  64. package/dist/chunks/sensitive-input-kznmknpp5h1grc6k.js.map +1 -0
  65. package/dist/chunks/{sidebar-l6rk9o5qf8k5vth1.js → sidebar-jepeq7gaf4issuw6.js} +3 -3
  66. package/dist/chunks/{sidebar-l6rk9o5qf8k5vth1.js.map → sidebar-jepeq7gaf4issuw6.js.map} +1 -1
  67. package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js +33 -0
  68. package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js.map +1 -0
  69. package/dist/chunks/surface-blo81kgy9g0sexgm.js +36 -0
  70. package/dist/chunks/surface-blo81kgy9g0sexgm.js.map +1 -0
  71. package/dist/chunks/{switch-fukrbip86khvqjn7.js → switch-i0zwcp3wq6vsxm1c.js} +64 -64
  72. package/dist/chunks/{switch-fukrbip86khvqjn7.js.map → switch-i0zwcp3wq6vsxm1c.js.map} +1 -1
  73. package/dist/chunks/table-nrcw19tlpduayukl.js +183 -0
  74. package/dist/chunks/table-nrcw19tlpduayukl.js.map +1 -0
  75. package/dist/chunks/tabs-bw92jb303zxw7w4f.js +92 -0
  76. package/dist/chunks/{tabs-n0t7iro7wr0pzgk2.js.map → tabs-bw92jb303zxw7w4f.js.map} +1 -1
  77. package/dist/chunks/{text-gzt92mlji1lug13d.js → text-nmyi1rkwdj37f30f.js} +24 -22
  78. package/dist/chunks/text-nmyi1rkwdj37f30f.js.map +1 -0
  79. package/dist/chunks/{toast-r9ajsces7xp8l85w.js → toast-lrnwby56drs7vtae.js} +59 -57
  80. package/dist/chunks/toast-lrnwby56drs7vtae.js.map +1 -0
  81. package/dist/chunks/toml-nczb2z9n0o23o3ci.js +8 -0
  82. package/dist/chunks/toml-nczb2z9n0o23o3ci.js.map +1 -0
  83. package/dist/chunks/{tooltip-hnc71tg4gz2gpcvc.js → tooltip-cit9ltlxfuhwctuj.js} +24 -21
  84. package/dist/chunks/tooltip-cit9ltlxfuhwctuj.js.map +1 -0
  85. package/dist/chunks/{vendor-base-ui-ccr5l0ynrievzzv3.js → vendor-base-ui-n30qblevnpk9cc5c.js} +42 -41
  86. package/dist/chunks/{vendor-base-ui-ccr5l0ynrievzzv3.js.map → vendor-base-ui-n30qblevnpk9cc5c.js.map} +1 -1
  87. package/dist/code/server.js +10 -9
  88. package/dist/code/server.js.map +1 -1
  89. package/dist/code.js +3 -2
  90. package/dist/code.js.map +1 -1
  91. package/dist/components/badge.js +1 -1
  92. package/dist/components/banner.js +1 -1
  93. package/dist/components/breadcrumbs.js +1 -1
  94. package/dist/components/button.js +1 -1
  95. package/dist/components/chart.js +1 -1
  96. package/dist/components/checkbox.js +1 -1
  97. package/dist/components/clipboard-text.js +1 -1
  98. package/dist/components/combobox.js +1 -1
  99. package/dist/components/command-palette.js +1 -1
  100. package/dist/components/dialog.js +1 -1
  101. package/dist/components/dropdown.js +1 -1
  102. package/dist/components/empty.js +1 -1
  103. package/dist/components/field.js +1 -1
  104. package/dist/components/flow.js +5 -4
  105. package/dist/components/flow.js.map +1 -1
  106. package/dist/components/input.js +3 -3
  107. package/dist/components/label.js +1 -1
  108. package/dist/components/layer-card.js +1 -1
  109. package/dist/components/link.js +1 -1
  110. package/dist/components/loader.js +1 -1
  111. package/dist/components/menubar.js +1 -1
  112. package/dist/components/meter.js +1 -1
  113. package/dist/components/pagination.js +1 -1
  114. package/dist/components/popover.js +1 -1
  115. package/dist/components/radio.js +1 -1
  116. package/dist/components/select.js +1 -1
  117. package/dist/components/sensitive-input.js +1 -1
  118. package/dist/components/sidebar.js +1 -1
  119. package/dist/components/surface.js +1 -1
  120. package/dist/components/switch.js +1 -1
  121. package/dist/components/table.js +1 -1
  122. package/dist/components/tabs.js +1 -1
  123. package/dist/components/text.js +1 -1
  124. package/dist/components/toast.js +2 -2
  125. package/dist/components/tooltip.js +1 -1
  126. package/dist/index.js +75 -73
  127. package/dist/index.js.map +1 -1
  128. package/dist/primitives/accordion.js +1 -1
  129. package/dist/primitives/alert-dialog.js +1 -1
  130. package/dist/primitives/autocomplete.js +1 -1
  131. package/dist/primitives/avatar.js +1 -1
  132. package/dist/primitives/button.js +1 -1
  133. package/dist/primitives/checkbox-group.js +1 -1
  134. package/dist/primitives/checkbox.js +1 -1
  135. package/dist/primitives/collapsible.js +1 -1
  136. package/dist/primitives/combobox.js +1 -1
  137. package/dist/primitives/context-menu.js +1 -1
  138. package/dist/primitives/csp-provider.js +1 -1
  139. package/dist/primitives/dialog.js +1 -1
  140. package/dist/primitives/direction-provider.js +1 -1
  141. package/dist/primitives/drawer.js +1 -1
  142. package/dist/primitives/field.js +1 -1
  143. package/dist/primitives/fieldset.js +1 -1
  144. package/dist/primitives/form.js +1 -1
  145. package/dist/primitives/input.js +1 -1
  146. package/dist/primitives/menu.js +1 -1
  147. package/dist/primitives/menubar.js +1 -1
  148. package/dist/primitives/meter.js +1 -1
  149. package/dist/primitives/navigation-menu.js +1 -1
  150. package/dist/primitives/number-field.js +1 -1
  151. package/dist/primitives/popover.js +1 -1
  152. package/dist/primitives/preview-card.js +1 -1
  153. package/dist/primitives/progress.js +1 -1
  154. package/dist/primitives/radio-group.js +1 -1
  155. package/dist/primitives/radio.js +1 -1
  156. package/dist/primitives/scroll-area.js +1 -1
  157. package/dist/primitives/select.js +1 -1
  158. package/dist/primitives/separator.js +1 -1
  159. package/dist/primitives/slider.js +1 -1
  160. package/dist/primitives/switch.js +1 -1
  161. package/dist/primitives/tabs.js +1 -1
  162. package/dist/primitives/toast.js +1 -1
  163. package/dist/primitives/toggle-group.js +1 -1
  164. package/dist/primitives/toggle.js +1 -1
  165. package/dist/primitives/toolbar.js +1 -1
  166. package/dist/primitives/tooltip.js +1 -1
  167. package/dist/primitives.js +1 -1
  168. package/dist/scripts/theme-generator/config.d.ts.map +1 -1
  169. package/dist/scripts/theme-generator/config.js +288 -24
  170. package/dist/scripts/theme-generator/config.js.map +1 -1
  171. package/dist/src/code/provider.d.ts.map +1 -1
  172. package/dist/src/code/server.d.ts.map +1 -1
  173. package/dist/src/code/types.d.ts +1 -1
  174. package/dist/src/code/types.d.ts.map +1 -1
  175. package/dist/src/components/badge/badge.d.ts +95 -22
  176. package/dist/src/components/badge/badge.d.ts.map +1 -1
  177. package/dist/src/components/banner/banner.d.ts +2 -0
  178. package/dist/src/components/banner/banner.d.ts.map +1 -1
  179. package/dist/src/components/button/button.d.ts +2 -0
  180. package/dist/src/components/button/button.d.ts.map +1 -1
  181. package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -1
  182. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  183. package/dist/src/components/clipboard-text/clipboard-text.d.ts +2 -0
  184. package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
  185. package/dist/src/components/combobox/combobox.d.ts +8 -1
  186. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  187. package/dist/src/components/command-palette/command-palette.d.ts +9 -2
  188. package/dist/src/components/command-palette/command-palette.d.ts.map +1 -1
  189. package/dist/src/components/command-palette/types.d.ts +7 -0
  190. package/dist/src/components/command-palette/types.d.ts.map +1 -1
  191. package/dist/src/components/dialog/dialog.d.ts +8 -1
  192. package/dist/src/components/dialog/dialog.d.ts.map +1 -1
  193. package/dist/src/components/dropdown/dropdown.d.ts +17 -2
  194. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
  195. package/dist/src/components/flow/diagram.d.ts.map +1 -1
  196. package/dist/src/components/loader/skeleton-line.d.ts +2 -1
  197. package/dist/src/components/loader/skeleton-line.d.ts.map +1 -1
  198. package/dist/src/components/popover/popover.d.ts +8 -1
  199. package/dist/src/components/popover/popover.d.ts.map +1 -1
  200. package/dist/src/components/radio/radio.d.ts.map +1 -1
  201. package/dist/src/components/select/select.d.ts +8 -1
  202. package/dist/src/components/select/select.d.ts.map +1 -1
  203. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
  204. package/dist/src/components/surface/surface.d.ts +23 -23
  205. package/dist/src/components/surface/surface.d.ts.map +1 -1
  206. package/dist/src/components/table/table.d.ts +34 -2
  207. package/dist/src/components/table/table.d.ts.map +1 -1
  208. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  209. package/dist/src/components/text/text.d.ts +5 -0
  210. package/dist/src/components/text/text.d.ts.map +1 -1
  211. package/dist/src/components/toast/toast.d.ts +16 -9
  212. package/dist/src/components/toast/toast.d.ts.map +1 -1
  213. package/dist/src/components/tooltip/tooltip.d.ts +11 -6
  214. package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
  215. package/dist/src/index.d.ts +1 -0
  216. package/dist/src/index.d.ts.map +1 -1
  217. package/dist/src/utils/index.d.ts +1 -0
  218. package/dist/src/utils/index.d.ts.map +1 -1
  219. package/dist/src/utils/portal-provider.d.ts +56 -0
  220. package/dist/src/utils/portal-provider.d.ts.map +1 -0
  221. package/dist/styles/kumo-binding.css +49 -46
  222. package/dist/styles/kumo-standalone.css +1 -1
  223. package/dist/styles/theme-fedramp.css +3 -3
  224. package/dist/styles/theme-kumo.css +202 -22
  225. package/dist/utils.js +8 -6
  226. package/dist/utils.js.map +1 -1
  227. package/package.json +2 -2
  228. package/scripts/theme-generator/config.ts +298 -24
  229. package/dist/chunks/Legend-bov5dqf08wemc2qj.js.map +0 -1
  230. package/dist/chunks/badge-mrshucy2530o70cq.js +0 -56
  231. package/dist/chunks/badge-mrshucy2530o70cq.js.map +0 -1
  232. package/dist/chunks/banner-vzdjbqsb6em7tmdk.js +0 -75
  233. package/dist/chunks/banner-vzdjbqsb6em7tmdk.js.map +0 -1
  234. package/dist/chunks/button-j0hi0afn33w9lxgi.js.map +0 -1
  235. package/dist/chunks/clipboard-text-ohx8kkpxisz382rj.js.map +0 -1
  236. package/dist/chunks/combobox-ft0u7rfaxawk0r0c.js.map +0 -1
  237. package/dist/chunks/command-palette-b31nq4wk7o7gx4sa.js.map +0 -1
  238. package/dist/chunks/dialog-l5tmwxrzp9g83jmw.js.map +0 -1
  239. package/dist/chunks/dropdown-icy3xatdwhzr4une.js.map +0 -1
  240. package/dist/chunks/input-c8jmidy7gdqfiky1.js.map +0 -1
  241. package/dist/chunks/menubar-g1wqqjuyyfvsim83.js.map +0 -1
  242. package/dist/chunks/popover-jurf834u2uywluux.js.map +0 -1
  243. package/dist/chunks/select-hnt87e3cfos48qql.js.map +0 -1
  244. package/dist/chunks/sensitive-input-lvtccf3iqc06lj7b.js.map +0 -1
  245. package/dist/chunks/skeleton-line-1j5exu6vv07mmhfb.js +0 -28
  246. package/dist/chunks/skeleton-line-1j5exu6vv07mmhfb.js.map +0 -1
  247. package/dist/chunks/surface-dhshylwccuaz91d1.js +0 -21
  248. package/dist/chunks/surface-dhshylwccuaz91d1.js.map +0 -1
  249. package/dist/chunks/table-orfgzwvxh8yr90dk.js +0 -155
  250. package/dist/chunks/table-orfgzwvxh8yr90dk.js.map +0 -1
  251. package/dist/chunks/tabs-n0t7iro7wr0pzgk2.js +0 -86
  252. package/dist/chunks/text-gzt92mlji1lug13d.js.map +0 -1
  253. package/dist/chunks/toast-r9ajsces7xp8l85w.js.map +0 -1
  254. package/dist/chunks/tooltip-hnc71tg4gz2gpcvc.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { jsxs as c, jsx as e } from "react/jsx-runtime";
3
- import { CheckIcon as N, CopyIcon as R } from "@phosphor-icons/react";
4
- import { forwardRef as A, useState as S, useRef as P, useCallback as _ } from "react";
5
- import { B as I } from "./button-j0hi0afn33w9lxgi.js";
6
- import { i as O } from "./input-c8jmidy7gdqfiky1.js";
7
- import { c as i } from "./cn-ct4n7r74mh8y0f48.js";
8
- import { U as M, V, W as j, X as B, Y as U, Z as D, _ as E, $ as L, a0 as X, a1 as K, a2 as W, a3 as F, a4 as Y } from "./vendor-base-ui-ccr5l0ynrievzzv3.js";
9
- const h = M(), y = {
3
+ import { CheckIcon as R, CopyIcon as A } from "@phosphor-icons/react";
4
+ import { forwardRef as S, useState as P, useRef as _, useCallback as I } from "react";
5
+ import { B as O } from "./button-odxi0hp4fvi5i2w3.js";
6
+ import { i as M } from "./input-kvhyo3p4859bexvx.js";
7
+ import { c as s } from "./cn-ct4n7r74mh8y0f48.js";
8
+ import { U as V, V as j, W as B, X as U, Y as D, Z as E, _ as L, $ as X, a0 as K, a1 as W, a2 as F, a3 as Y, a4 as Z } from "./vendor-base-ui-n30qblevnpk9cc5c.js";
9
+ const h = V(), y = {
10
10
  size: {
11
11
  sm: {
12
12
  classes: "text-xs",
@@ -24,7 +24,7 @@ const h = M(), y = {
24
24
  description: "Large clipboard text for prominent display"
25
25
  }
26
26
  }
27
- }, C = {
27
+ }, v = {
28
28
  size: "lg"
29
29
  }, l = {
30
30
  slide: {
@@ -33,56 +33,57 @@ const h = M(), y = {
33
33
  end: "pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 -translate-y-full"
34
34
  }
35
35
  };
36
- function Z({
37
- size: t = C.size
36
+ function $({
37
+ size: t = v.size
38
38
  } = {}) {
39
- return i(
39
+ return s(
40
40
  // Base styles
41
41
  "flex items-center overflow-hidden bg-kumo-base px-0 font-mono",
42
42
  // Apply size styles from KUMO_CLIPBOARD_TEXT_VARIANTS
43
43
  y.size[t].classes
44
44
  );
45
45
  }
46
- function $() {
47
- const { toasts: t } = X();
48
- return /* @__PURE__ */ e(K, { className: "pointer-events-none fixed inset-0 isolate", children: t.map((s) => /* @__PURE__ */ e(W, { toast: s, className: "absolute", children: /* @__PURE__ */ e(
49
- F,
46
+ function q() {
47
+ const { toasts: t } = K();
48
+ return /* @__PURE__ */ e(W, { className: "pointer-events-none fixed inset-0 isolate", children: t.map((i) => /* @__PURE__ */ e(F, { toast: i, className: "absolute", children: /* @__PURE__ */ e(
49
+ Y,
50
50
  {
51
- toast: s,
52
- className: i(
51
+ toast: i,
52
+ className: s(
53
53
  "flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default font-sans",
54
54
  "shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill"
55
55
  ),
56
- children: /* @__PURE__ */ e(Y, {})
56
+ children: /* @__PURE__ */ e(Z, {})
57
57
  }
58
- ) }, s.id)) });
58
+ ) }, i.id)) });
59
59
  }
60
- function q({ children: t }) {
61
- return /* @__PURE__ */ e(E, { children: /* @__PURE__ */ c(L, { toastManager: h, children: [
62
- /* @__PURE__ */ e($, {}),
60
+ function G({ children: t }) {
61
+ return /* @__PURE__ */ e(L, { children: /* @__PURE__ */ c(X, { toastManager: h, children: [
62
+ /* @__PURE__ */ e(q, {}),
63
63
  t
64
64
  ] }) });
65
65
  }
66
- const G = A(
66
+ const H = S(
67
67
  ({
68
68
  text: t,
69
- className: s,
70
- size: m = C.size,
69
+ textToCopy: i,
70
+ className: C,
71
+ size: m = v.size,
71
72
  onCopy: f,
72
73
  tooltip: n,
73
- labels: { copyAction: v = "Copy to clipboard" } = {}
74
- }, w) => {
75
- const [r, d] = S(!1), b = P(null), x = y.size[m], {
76
- text: z = "Copy",
74
+ labels: { copyAction: w = "Copy to clipboard" } = {}
75
+ }, z) => {
76
+ const [r, d] = P(!1), b = _(null), x = y.size[m], {
77
+ text: k = "Copy",
77
78
  copiedText: p = "Copied",
78
79
  side: u = "top"
79
- } = n ?? {}, k = _(async () => {
80
+ } = n ?? {}, N = I(async () => {
80
81
  try {
81
82
  if (typeof navigator < "u" && navigator.clipboard && typeof navigator.clipboard.writeText == "function")
82
- await navigator.clipboard.writeText(t);
83
+ await navigator.clipboard.writeText(i ?? t);
83
84
  else if (typeof document < "u") {
84
85
  const o = document.createElement("textarea");
85
- o.value = t, o.setAttribute("readonly", ""), o.style.position = "absolute", o.style.left = "-9999px", document.body.appendChild(o);
86
+ o.value = i ?? t, o.setAttribute("readonly", ""), o.style.position = "absolute", o.style.left = "-9999px", document.body.appendChild(o);
86
87
  const a = document.getSelection(), T = a?.rangeCount ? a.getRangeAt(0) : null;
87
88
  o.select();
88
89
  try {
@@ -107,33 +108,33 @@ const G = A(
107
108
  console.warn("Clipboard copy failed", o);
108
109
  }
109
110
  }, [t, f, n, p, u]), g = /* @__PURE__ */ c(
110
- I,
111
+ O,
111
112
  {
112
113
  ref: b,
113
114
  size: x.buttonSize,
114
115
  variant: "ghost",
115
116
  className: "rounded-none border-l! border-kumo-line! px-3 relative overflow-hidden transition-all duration-200",
116
- onClick: k,
117
- "aria-label": v,
117
+ onClick: N,
118
+ "aria-label": w,
118
119
  children: [
119
120
  /* @__PURE__ */ e(
120
121
  "span",
121
122
  {
122
- className: i(
123
+ className: s(
123
124
  "flex items-center gap-1 transition-all duration-200",
124
125
  r ? l.slide.animate : l.slide.initial
125
126
  ),
126
- children: /* @__PURE__ */ e(N, {})
127
+ children: /* @__PURE__ */ e(R, {})
127
128
  }
128
129
  ),
129
130
  /* @__PURE__ */ e(
130
131
  "span",
131
132
  {
132
- className: i(
133
+ className: s(
133
134
  "flex items-center justify-center transition-all duration-200",
134
135
  r ? l.slide.end : l.slide.animate
135
136
  ),
136
- children: /* @__PURE__ */ e(R, {})
137
+ children: /* @__PURE__ */ e(A, {})
137
138
  }
138
139
  )
139
140
  ]
@@ -142,31 +143,31 @@ const G = A(
142
143
  return /* @__PURE__ */ c(
143
144
  "div",
144
145
  {
145
- ref: w,
146
- className: i(
147
- O({ size: x.buttonSize }),
148
- Z({ size: m }),
149
- s
146
+ ref: z,
147
+ className: s(
148
+ M({ size: x.buttonSize }),
149
+ $({ size: m }),
150
+ C
150
151
  ),
151
152
  children: [
152
153
  /* @__PURE__ */ e("span", { className: "grow truncate ps-4 pe-2", children: t }),
153
- n ? /* @__PURE__ */ e(q, { children: /* @__PURE__ */ c(
154
- V,
154
+ n ? /* @__PURE__ */ e(G, { children: /* @__PURE__ */ c(
155
+ j,
155
156
  {
156
157
  disabled: r,
157
158
  onOpenChange: (o, a) => {
158
159
  a.reason === "trigger-press" && a.cancel();
159
160
  },
160
161
  children: [
161
- /* @__PURE__ */ e(j, { render: g }),
162
- /* @__PURE__ */ e(B, { children: /* @__PURE__ */ e(U, { side: u, sideOffset: 8, children: /* @__PURE__ */ e(
163
- D,
162
+ /* @__PURE__ */ e(B, { render: g }),
163
+ /* @__PURE__ */ e(U, { children: /* @__PURE__ */ e(D, { side: u, sideOffset: 8, children: /* @__PURE__ */ e(
164
+ E,
164
165
  {
165
- className: i(
166
+ className: s(
166
167
  "flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default",
167
168
  "shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill"
168
169
  ),
169
- children: z
170
+ children: k
170
171
  }
171
172
  ) }) })
172
173
  ]
@@ -178,8 +179,8 @@ const G = A(
178
179
  );
179
180
  }
180
181
  );
181
- G.displayName = "ClipboardText";
182
+ H.displayName = "ClipboardText";
182
183
  export {
183
- G as C
184
+ H as C
184
185
  };
185
- //# sourceMappingURL=clipboard-text-ohx8kkpxisz382rj.js.map
186
+ //# sourceMappingURL=clipboard-text-kyk51d1ze7zvdn4q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard-text-kyk51d1ze7zvdn4q.js","sources":["../../src/components/clipboard-text/clipboard-text.tsx"],"sourcesContent":["import { CheckIcon, CopyIcon } from \"@phosphor-icons/react\";\nimport { forwardRef, useCallback, useRef, useState } from \"react\";\nimport { Toast } from \"@base-ui/react/toast\";\nimport { Tooltip } from \"@base-ui/react/tooltip\";\nimport { Button } from \"../button\";\nimport { inputVariants } from \"../input\";\nimport { cn } from \"../../utils/cn\";\n\n// Create a toast manager for anchored \"Copied\" toasts\nconst clipboardToastManager = Toast.createToastManager();\n\n/** ClipboardText size variant definitions mapping sizes to their Tailwind classes. */\nexport const KUMO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: {\n classes: \"text-xs\",\n buttonSize: \"sm\" as const,\n description: \"Small clipboard text for compact UIs\",\n },\n base: {\n classes: \"text-sm\",\n buttonSize: \"base\" as const,\n description: \"Default clipboard text size\",\n },\n lg: {\n classes: \"text-sm\",\n buttonSize: \"lg\" as const,\n description: \"Large clipboard text for prominent display\",\n },\n },\n} as const;\n\nexport const KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = {\n size: \"lg\",\n} as const;\n\nconst clipboardTextAnimations = {\n slide: {\n initial:\n \"pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 translate-y-full\",\n animate: \"translate-y-0 opacity-100\",\n end: \"pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 -translate-y-full\",\n },\n} as const;\n\n// Derived types from KUMO_CLIPBOARD_TEXT_VARIANTS\nexport type KumoClipboardTextSize =\n keyof typeof KUMO_CLIPBOARD_TEXT_VARIANTS.size;\n\nexport interface KumoClipboardTextVariantsProps {\n /**\n * Size of the clipboard text field.\n * - `\"sm\"` — Small clipboard text for compact UIs\n * - `\"base\"` — Default clipboard text size\n * - `\"lg\"` — Large clipboard text for prominent display\n * @default \"lg\"\n */\n size?: KumoClipboardTextSize;\n}\n\nexport function clipboardTextVariants({\n size = KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS.size,\n}: KumoClipboardTextVariantsProps = {}) {\n return cn(\n // Base styles\n \"flex items-center overflow-hidden bg-kumo-base px-0 font-mono\",\n // Apply size styles from KUMO_CLIPBOARD_TEXT_VARIANTS\n KUMO_CLIPBOARD_TEXT_VARIANTS.size[size].classes,\n );\n}\n\n// Legacy type alias for backwards compatibility\nexport type ClipboardTextSize = KumoClipboardTextSize;\n\n/**\n * ClipboardText component props.\n *\n * @example\n * ```tsx\n * <ClipboardText text=\"sk_live_abc123\" />\n * <ClipboardText text=\"npm install @cloudflare/kumo\" size=\"sm\" />\n * ```\n */\nexport interface ClipboardTextProps extends KumoClipboardTextVariantsProps {\n /** The text to display and copy to clipboard. */\n text: string;\n /** If provided, this text will be copied to clipboard instead of the `text` prop. */\n textToCopy?: string;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Callback fired after text is copied to clipboard. */\n onCopy?: () => void;\n /**\n * Tooltip config. Shows tooltip on hover, anchored toast on click.\n * @example\n * ```tsx\n * <ClipboardText\n * text=\"abc123\"\n * tooltip={{ text: \"Copy\", copiedText: \"Copied!\", side: \"top\" }}\n * />\n * ```\n */\n tooltip?: {\n /** Text shown in tooltip on hover. @default \"Copy\" */\n text?: string;\n /** Text shown in toast after copying. @default \"Copied\" */\n copiedText?: string;\n /** Tooltip/toast placement. @default \"top\" */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n };\n /** Accessible labels for i18n. */\n labels?: {\n /** @default \"Copy to clipboard\" */\n copyAction?: string;\n };\n}\n\n/**\n * Anchored toasts viewport - renders \"Copied\" toasts anchored to buttons\n */\nfunction AnchoredToasts() {\n const { toasts } = Toast.useToastManager();\n return (\n <Toast.Viewport className=\"pointer-events-none fixed inset-0 isolate\">\n {toasts.map((toast) => (\n <Toast.Positioner key={toast.id} toast={toast} className=\"absolute\">\n <Toast.Root\n toast={toast}\n className={cn(\n \"flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default font-sans\",\n \"shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill\",\n )}\n >\n <Toast.Description />\n </Toast.Root>\n </Toast.Positioner>\n ))}\n </Toast.Viewport>\n );\n}\n\n/**\n * Internal wrapper that provides Toast context when tooltip is enabled.\n */\nfunction TooltipWrapper({ children }: { children: React.ReactNode }) {\n return (\n <Tooltip.Provider>\n <Toast.Provider toastManager={clipboardToastManager}>\n <AnchoredToasts />\n {children}\n </Toast.Provider>\n </Tooltip.Provider>\n );\n}\n\n/**\n * Read-only text field with a one-click copy-to-clipboard button.\n *\n * @example\n * ```tsx\n * <ClipboardText text=\"0c239dd2\" />\n * ```\n */\nexport const ClipboardText = forwardRef<HTMLDivElement, ClipboardTextProps>(\n (\n {\n text,\n textToCopy,\n className,\n size = KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS.size,\n onCopy,\n tooltip,\n labels: { copyAction = \"Copy to clipboard\" } = {},\n },\n ref,\n ) => {\n const [copied, setCopied] = useState(false);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const sizeConfig = KUMO_CLIPBOARD_TEXT_VARIANTS.size[size];\n\n // Destructure tooltip config with defaults\n const {\n text: tooltipText = \"Copy\",\n copiedText = \"Copied\",\n side: tooltipSide = \"top\",\n } = tooltip ?? {};\n\n const copyToClipboard = useCallback(async () => {\n try {\n if (\n typeof navigator !== \"undefined\" &&\n navigator.clipboard &&\n typeof navigator.clipboard.writeText === \"function\"\n ) {\n await navigator.clipboard.writeText(textToCopy ?? text);\n } else if (typeof document !== \"undefined\") {\n // Fallback for older browsers\n const textarea = document.createElement(\"textarea\");\n textarea.value = textToCopy ?? text;\n textarea.setAttribute(\"readonly\", \"\");\n textarea.style.position = \"absolute\";\n textarea.style.left = \"-9999px\";\n document.body.appendChild(textarea);\n const selection = document.getSelection();\n const previousRange = selection?.rangeCount\n ? selection.getRangeAt(0)\n : null;\n textarea.select();\n try {\n document.execCommand(\"copy\");\n } finally {\n document.body.removeChild(textarea);\n if (previousRange) {\n selection?.removeAllRanges();\n selection?.addRange(previousRange);\n }\n }\n }\n\n setCopied(true);\n\n // Show anchored toast if tooltip mode is enabled\n if (tooltip) {\n clipboardToastManager.add({\n description: copiedText,\n positionerProps: {\n anchor: buttonRef.current,\n side: tooltipSide,\n sideOffset: 8,\n },\n timeout: 1500,\n onClose() {\n setCopied(false);\n },\n });\n } else {\n // Reset copied state after delay when no tooltip\n setTimeout(() => setCopied(false), 1500);\n }\n\n onCopy?.();\n } catch (error) {\n console.warn(\"Clipboard copy failed\", error);\n }\n }, [text, onCopy, tooltip, copiedText, tooltipSide]);\n\n const copyButton = (\n <Button\n ref={buttonRef}\n size={sizeConfig.buttonSize}\n variant=\"ghost\"\n className=\"rounded-none border-l! border-kumo-line! px-3 relative overflow-hidden transition-all duration-200\"\n onClick={copyToClipboard}\n aria-label={copyAction}\n >\n <span\n className={cn(\n \"flex items-center gap-1 transition-all duration-200\",\n copied\n ? clipboardTextAnimations.slide.animate\n : clipboardTextAnimations.slide.initial,\n )}\n >\n <CheckIcon />\n </span>\n <span\n className={cn(\n \"flex items-center justify-center transition-all duration-200\",\n copied\n ? clipboardTextAnimations.slide.end\n : clipboardTextAnimations.slide.animate,\n )}\n >\n <CopyIcon />\n </span>\n </Button>\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n inputVariants({ size: sizeConfig.buttonSize }),\n clipboardTextVariants({ size }),\n className,\n )}\n >\n <span className=\"grow truncate ps-4 pe-2\">{text}</span>\n {tooltip ? (\n <TooltipWrapper>\n <Tooltip.Root\n disabled={copied}\n onOpenChange={(open, eventDetails) => {\n // Prevent tooltip from closing when button is clicked\n if (eventDetails.reason === \"trigger-press\") {\n eventDetails.cancel();\n }\n }}\n >\n <Tooltip.Trigger render={copyButton} />\n <Tooltip.Portal>\n <Tooltip.Positioner side={tooltipSide} sideOffset={8}>\n <Tooltip.Popup\n className={cn(\n \"flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default\",\n \"shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill\",\n )}\n >\n {tooltipText}\n </Tooltip.Popup>\n </Tooltip.Positioner>\n </Tooltip.Portal>\n </Tooltip.Root>\n </TooltipWrapper>\n ) : (\n copyButton\n )}\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? copiedText : \"\"}\n </span>\n </div>\n );\n },\n);\n\nClipboardText.displayName = \"ClipboardText\";\n"],"names":["clipboardToastManager","Toast.createToastManager","KUMO_CLIPBOARD_TEXT_VARIANTS","KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","clipboardTextAnimations","clipboardTextVariants","size","cn","AnchoredToasts","toasts","Toast.useToastManager","Toast.Viewport","toast","Toast.Positioner","jsx","Toast.Root","Toast.Description","TooltipWrapper","children","Tooltip.Provider","Toast.Provider","ClipboardText","forwardRef","text","textToCopy","className","onCopy","tooltip","copyAction","ref","copied","setCopied","useState","buttonRef","useRef","sizeConfig","tooltipText","copiedText","tooltipSide","copyToClipboard","useCallback","textarea","selection","previousRange","error","copyButton","jsxs","Button","CheckIcon","CopyIcon","inputVariants","Tooltip.Root","open","eventDetails","Tooltip.Trigger","Tooltip.Portal","Tooltip.Positioner","Tooltip.Popup"],"mappings":"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"}
@@ -1,24 +1,25 @@
1
1
  "use client";
2
- import { jsx as o, jsxs as c } from "react/jsx-runtime";
3
- import { CheckIcon as w, XIcon as d, CaretDownIcon as x } from "@phosphor-icons/react";
4
- import { createContext as T, useContext as u, Fragment as V } from "react";
5
- import { i as p, K as P } from "./input-c8jmidy7gdqfiky1.js";
2
+ import { jsx as o, jsxs as m } from "react/jsx-runtime";
3
+ import { CheckIcon as S, XIcon as h, CaretDownIcon as x } from "@phosphor-icons/react";
4
+ import { createContext as T, useContext as u, Fragment as P } from "react";
5
+ import { i as p, K as V } from "./input-kvhyo3p4859bexvx.js";
6
6
  import { c as a } from "./cn-ct4n7r74mh8y0f48.js";
7
- import { F as j } from "./field-csje72m7j9403fj5.js";
8
- import { a5 as G, a6 as L, a7 as M, a8 as F, a9 as _, aa as A, ab as g, ac as E, ad as K, ae as O, af as U, ag as W, ah as f, ai as D, aj as C, ak as N, al as H, am as X, an as q } from "./vendor-base-ui-ccr5l0ynrievzzv3.js";
9
- P.size;
10
- const h = T("base");
7
+ import { F as j } from "./field-fq504lyu7ttsh5m9.js";
8
+ import { u as G } from "./portal-provider-hwmkdmkpvct0cb76.js";
9
+ import { a5 as L, a6 as M, a7 as F, a8 as _, a9 as A, aa as E, ab as b, ac as K, ad as O, ae as U, af as W, ag as D, ah as f, ai as H, aj as C, ak as N, al as X, am as q, an as B } from "./vendor-base-ui-n30qblevnpk9cc5c.js";
10
+ V.size;
11
+ const g = T("base");
11
12
  function y({
12
13
  label: e,
13
14
  required: t,
14
15
  labelTooltip: i,
15
16
  description: r,
16
17
  error: n,
17
- children: s,
18
- size: l = "base",
19
- ...m
18
+ children: c,
19
+ size: s = "base",
20
+ ...l
20
21
  }) {
21
- const b = /* @__PURE__ */ o(h.Provider, { value: l, children: /* @__PURE__ */ o(L, { ...m, children: s }) });
22
+ const d = /* @__PURE__ */ o(g.Provider, { value: s, children: /* @__PURE__ */ o(M, { ...l, children: c }) });
22
23
  return e ? /* @__PURE__ */ o(
23
24
  j,
24
25
  {
@@ -27,28 +28,30 @@ function y({
27
28
  labelTooltip: i,
28
29
  description: r,
29
30
  error: n ? typeof n == "string" ? { message: n, match: !0 } : n : void 0,
30
- children: b
31
+ children: d
31
32
  }
32
- ) : b;
33
+ ) : d;
33
34
  }
34
- function z({
35
+ function v({
35
36
  children: e,
36
37
  className: t,
37
38
  align: i = "start",
38
39
  sideOffset: r = 4,
39
40
  alignOffset: n,
40
- side: s
41
+ side: c,
42
+ container: s
41
43
  }) {
42
- return /* @__PURE__ */ o(H, { children: /* @__PURE__ */ o(
43
- X,
44
+ const l = G();
45
+ return /* @__PURE__ */ o(X, { container: s ?? l ?? void 0, children: /* @__PURE__ */ o(
46
+ q,
44
47
  {
45
48
  className: "",
46
49
  align: i,
47
50
  sideOffset: r,
48
51
  alignOffset: n,
49
- side: s,
52
+ side: c,
50
53
  children: /* @__PURE__ */ o(
51
- q,
54
+ B,
52
55
  {
53
56
  className: a(
54
57
  "flex flex-col",
@@ -66,23 +69,24 @@ function z({
66
69
  }
67
70
  ) });
68
71
  }
69
- const B = {
72
+ const J = {
70
73
  xs: { padding: "pr-5", iconSize: 12, iconRight: "right-1" },
71
74
  sm: { padding: "pr-6", iconSize: 14, iconRight: "right-1.5" },
72
75
  base: { padding: "pr-8", iconSize: 16, iconRight: "right-2" },
73
76
  lg: { padding: "pr-10", iconSize: 18, iconRight: "right-3" }
74
77
  };
75
- function R({
78
+ function z({
76
79
  className: e,
77
80
  ...t
78
81
  }) {
79
- const i = u(h), r = B[i];
80
- return /* @__PURE__ */ c(
82
+ const i = u(g), r = J[i];
83
+ return /* @__PURE__ */ m(
81
84
  C,
82
85
  {
83
86
  className: a(
84
87
  p({ size: i }),
85
88
  "relative flex items-center",
89
+ "data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed",
86
90
  r.padding,
87
91
  e
88
92
  ),
@@ -102,7 +106,7 @@ function R({
102
106
  }
103
107
  );
104
108
  }
105
- const J = {
109
+ const Q = {
106
110
  xs: {
107
111
  padding: "pr-7",
108
112
  iconSize: 12,
@@ -128,28 +132,38 @@ const J = {
128
132
  caretRight: "right-3"
129
133
  }
130
134
  };
131
- function v(e) {
132
- const t = u(h), i = J[t];
133
- return /* @__PURE__ */ c(
135
+ function R(e) {
136
+ const t = u(g), i = Q[t];
137
+ return /* @__PURE__ */ m(
134
138
  "div",
135
139
  {
136
- className: a("relative inline-block w-full max-w-xs", e.className),
140
+ className: a(
141
+ "relative inline-block w-full max-w-xs",
142
+ "has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed",
143
+ e.className
144
+ ),
137
145
  children: [
138
146
  /* @__PURE__ */ o(
139
- g,
147
+ b,
140
148
  {
141
149
  ...e,
142
- className: a(p({ size: t }), "w-full", i.padding)
150
+ className: a(
151
+ p({ size: t }),
152
+ "w-full",
153
+ i.padding,
154
+ "disabled:cursor-not-allowed"
155
+ )
143
156
  }
144
157
  ),
145
158
  /* @__PURE__ */ o(
146
- D,
159
+ H,
147
160
  {
148
161
  className: a(
149
162
  "absolute top-1/2 flex -translate-y-1/2 cursor-pointer bg-transparent p-0",
163
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-0",
150
164
  i.clearRight
151
165
  ),
152
- children: /* @__PURE__ */ o(d, { size: i.iconSize })
166
+ children: /* @__PURE__ */ o(h, { size: i.iconSize })
153
167
  }
154
168
  ),
155
169
  /* @__PURE__ */ o(C, { className: "p-0", children: /* @__PURE__ */ o(
@@ -167,21 +181,21 @@ function v(e) {
167
181
  );
168
182
  }
169
183
  function I({ children: e, ...t }) {
170
- return /* @__PURE__ */ c(
171
- E,
184
+ return /* @__PURE__ */ m(
185
+ K,
172
186
  {
173
187
  ...t,
174
188
  className: "group mx-1.5 grid cursor-pointer grid-cols-[1fr_16px] gap-2 rounded px-2 py-1.5 text-base data-highlighted:bg-kumo-tint",
175
189
  children: [
176
190
  /* @__PURE__ */ o("div", { className: "col-start-1", children: e }),
177
- /* @__PURE__ */ o(K, { className: "col-start-2 flex items-center", children: /* @__PURE__ */ o(w, {}) })
191
+ /* @__PURE__ */ o(O, { className: "col-start-2 flex items-center", children: /* @__PURE__ */ o(S, {}) })
178
192
  ]
179
193
  }
180
194
  );
181
195
  }
182
- function Q(e) {
196
+ function Y(e) {
183
197
  return /* @__PURE__ */ o(
184
- A,
198
+ E,
185
199
  {
186
200
  ...e,
187
201
  className: a(
@@ -191,9 +205,9 @@ function Q(e) {
191
205
  }
192
206
  );
193
207
  }
194
- function Y(e) {
208
+ function Z(e) {
195
209
  return /* @__PURE__ */ o(
196
- g,
210
+ b,
197
211
  {
198
212
  ...e,
199
213
  className: a(
@@ -204,12 +218,12 @@ function Y(e) {
204
218
  }
205
219
  );
206
220
  }
207
- function Z({
221
+ function $({
208
222
  className: e,
209
223
  ...t
210
224
  }) {
211
225
  return /* @__PURE__ */ o(
212
- M,
226
+ F,
213
227
  {
214
228
  ...t,
215
229
  className: a(
@@ -219,9 +233,9 @@ function Z({
219
233
  }
220
234
  );
221
235
  }
222
- function $(e) {
236
+ function ee(e) {
223
237
  return /* @__PURE__ */ o(
224
- _,
238
+ A,
225
239
  {
226
240
  ...e,
227
241
  className: a(
@@ -231,18 +245,18 @@ function $(e) {
231
245
  }
232
246
  );
233
247
  }
234
- function ee(e) {
248
+ function oe(e) {
235
249
  return /* @__PURE__ */ o(
236
- F,
250
+ _,
237
251
  {
238
252
  ...e,
239
253
  className: "border-t border-kumo-line mt-2 pt-2 first:border-t-0 first:mt-0 first:pt-0"
240
254
  }
241
255
  );
242
256
  }
243
- function k(e) {
244
- return /* @__PURE__ */ c(
245
- O,
257
+ function w(e) {
258
+ return /* @__PURE__ */ m(
259
+ U,
246
260
  {
247
261
  ...e,
248
262
  className: a(
@@ -260,57 +274,58 @@ function k(e) {
260
274
  children: [
261
275
  e.children,
262
276
  /* @__PURE__ */ o(
263
- U,
277
+ W,
264
278
  {
265
279
  className: a(
266
280
  "cursor-pointer rounded-md p-1 hover:bg-kumo-fill-hover",
267
281
  "bg-transparent flex"
268
282
  ),
269
- children: /* @__PURE__ */ o(d, { size: 10 })
283
+ children: /* @__PURE__ */ o(h, { size: 10 })
270
284
  }
271
285
  )
272
286
  ]
273
287
  }
274
288
  );
275
289
  }
276
- const oe = {
290
+ const te = {
277
291
  xs: "min-h-5",
278
292
  sm: "min-h-6.5",
279
293
  base: "min-h-9",
280
294
  lg: "min-h-10"
281
295
  };
282
- function S({
296
+ function k({
283
297
  placeholder: e,
284
298
  renderItem: t,
285
299
  className: i,
286
300
  inputSide: r = "right",
287
301
  value: n
288
302
  }) {
289
- const s = u(h), l = n;
290
- return /* @__PURE__ */ c(
291
- W,
303
+ const c = u(g), s = n;
304
+ return /* @__PURE__ */ m(
305
+ D,
292
306
  {
293
307
  className: a(
294
- p({ size: s }),
308
+ p({ size: c }),
295
309
  "flex flex-col",
296
310
  "gap-1 py-1 px-1.5",
297
- oe[s],
311
+ te[c],
298
312
  "h-auto",
313
+ "data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed",
299
314
  i
300
315
  ),
301
316
  children: [
302
317
  r === "top" && /* @__PURE__ */ o(
303
- g,
318
+ b,
304
319
  {
305
320
  placeholder: e,
306
321
  className: "w-full px-2 py-1 border-0 bg-inherit"
307
322
  }
308
323
  ),
309
- /* @__PURE__ */ c("div", { className: "flex items-center flex-wrap gap-1.5 flex-1", children: [
310
- l !== void 0 && l.length > 0 && l.map((m) => t(m)),
311
- /* @__PURE__ */ o(f, { children: (m) => l !== void 0 ? null : /* @__PURE__ */ o(V, { children: m.map((b) => t(b)) }) }),
324
+ /* @__PURE__ */ m("div", { className: "flex items-center flex-wrap gap-1.5 flex-1", children: [
325
+ s !== void 0 && s.length > 0 && s.map((l) => t(l)),
326
+ /* @__PURE__ */ o(f, { children: (l) => s !== void 0 ? null : /* @__PURE__ */ o(P, { children: l.map((d) => t(d)) }) }),
312
327
  r === "right" && /* @__PURE__ */ o(
313
- g,
328
+ b,
314
329
  {
315
330
  placeholder: e,
316
331
  className: "min-w-[100px] flex-1 px-2 py-1 border-0 bg-inherit"
@@ -322,32 +337,32 @@ function S({
322
337
  );
323
338
  }
324
339
  y.displayName = "Combobox.Root";
325
- z.displayName = "Combobox.Content";
326
- R.displayName = "Combobox.TriggerValue";
327
- v.displayName = "Combobox.TriggerInput";
340
+ v.displayName = "Combobox.Content";
341
+ z.displayName = "Combobox.TriggerValue";
342
+ R.displayName = "Combobox.TriggerInput";
328
343
  I.displayName = "Combobox.Item";
329
- k.displayName = "Combobox.Chip";
330
- S.displayName = "Combobox.TriggerMultipleWithInput";
331
- const ce = Object.assign(y, {
344
+ w.displayName = "Combobox.Chip";
345
+ k.displayName = "Combobox.TriggerMultipleWithInput";
346
+ const de = Object.assign(y, {
332
347
  // Helper components
333
- Content: z,
334
- TriggerValue: R,
335
- TriggerInput: v,
336
- TriggerMultipleWithInput: S,
348
+ Content: v,
349
+ TriggerValue: z,
350
+ TriggerInput: R,
351
+ TriggerMultipleWithInput: k,
337
352
  // Slightly modified BaseUI
338
- Chip: k,
353
+ Chip: w,
339
354
  Item: I,
340
355
  // Styled BaseUI
341
- Input: Y,
342
- Empty: Q,
343
- GroupLabel: $,
344
- Group: ee,
356
+ Input: Z,
357
+ Empty: Y,
358
+ GroupLabel: ee,
359
+ Group: oe,
345
360
  // Styled BaseUI
346
- List: Z,
361
+ List: $,
347
362
  // BaseUI
348
- Collection: G
363
+ Collection: L
349
364
  });
350
365
  export {
351
- ce as C
366
+ de as C
352
367
  };
353
- //# sourceMappingURL=combobox-ft0u7rfaxawk0r0c.js.map
368
+ //# sourceMappingURL=combobox-9fhjzprab46csmon.js.map