@tempots/beatui 0.81.0 → 0.82.1

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 (237) hide show
  1. package/dist/_commonjsHelpers-DKOUU3wS.cjs +1 -0
  2. package/dist/_commonjsHelpers-DaMA6jEr.js +8 -0
  3. package/dist/{ar-DwHLVgKj.cjs → ar-D7CXDmVZ.cjs} +1 -1
  4. package/dist/{ar-Bo_FZZi7.js → ar-nOSKXpIW.js} +1 -1
  5. package/dist/auth/index.cjs.js +1 -1
  6. package/dist/auth/index.es.js +63 -1349
  7. package/dist/auth-divider-BqZPH1-z.cjs +1 -0
  8. package/dist/auth-divider-Wr-S16kF.js +1355 -0
  9. package/dist/beatui.css +2035 -295
  10. package/dist/beatui.tailwind.css +2036 -296
  11. package/dist/better-auth/index.cjs.js +1 -0
  12. package/dist/better-auth/index.es.js +754 -0
  13. package/dist/{de-zI5mdV4M.cjs → de-WzsOu9Gn.cjs} +1 -1
  14. package/dist/{de-CCqwOkqN.js → de-f2xcEb34.js} +1 -1
  15. package/dist/{deep-merge-1uN6CG6K.js → deep-merge-BYm0y62g.js} +271 -285
  16. package/dist/deep-merge-d7sf0xmN.cjs +1 -0
  17. package/dist/duration-input-B9UNmUCh.cjs +1 -0
  18. package/dist/{duration-input-C9kpsw-t.js → duration-input-DqcJbxKD.js} +31 -29
  19. package/dist/editor-toolbar-group--a-xgsJw.cjs +1 -0
  20. package/dist/editor-toolbar-group-CVpl5mxF.js +31 -0
  21. package/dist/{es-BF02UrPL.js → es-CDqqzpCw.js} +1 -1
  22. package/dist/{es-Cw90CAbu.cjs → es-Ds2Xf3wV.cjs} +1 -1
  23. package/dist/{fa-DPQV4YB8.js → fa-C7tE_hR3.js} +1 -1
  24. package/dist/{fa-B4lssnzR.cjs → fa-Ct1UtDB7.cjs} +1 -1
  25. package/dist/{fr-1Kd6z1F-.cjs → fr-CzAkRFed.cjs} +1 -1
  26. package/dist/{fr-dmxPhwkD.js → fr-yOW_68YY.js} +1 -1
  27. package/dist/{he-BtQbrVt3.js → he-D2oUloCJ.js} +1 -1
  28. package/dist/{he-CJ3XnuPm.cjs → he-DlXALrK7.cjs} +1 -1
  29. package/dist/{hi-BpfnFKHp.cjs → hi-3dBhLwDs.cjs} +1 -1
  30. package/dist/{hi-D_Le4Yka.js → hi-D5ZlZoQq.js} +1 -1
  31. package/dist/{hls.light.min-Bhrf47iR.cjs → hls.light.min-C6xKDzRR.cjs} +1 -1
  32. package/dist/{hls.light.min-C6VwviEa.js → hls.light.min-hEMf_E8u.js} +1 -1
  33. package/dist/{index-CfaWytS2.cjs → index-05UbKOYe.cjs} +1 -1
  34. package/dist/{index-K6u33-GC.cjs → index-Bt7FYl80.cjs} +19 -19
  35. package/dist/{index-YtW7SCWB.js → index-C2Lq1m45.js} +1434 -1463
  36. package/dist/{index-CGEzILlC.js → index-lYhXnu6I.js} +1 -1
  37. package/dist/index.cjs.js +4 -4
  38. package/dist/index.es.js +2389 -2738
  39. package/dist/input-container-C6qEIjcA.cjs +1 -0
  40. package/dist/input-container-DiCjOzR2.js +247 -0
  41. package/dist/{it-DyHjSuHN.js → it-6e6X-4BB.js} +1 -1
  42. package/dist/{it-COCZ9NyB.cjs → it-DohtcWi9.cjs} +1 -1
  43. package/dist/{ja-X43lABza.js → ja-BxNuNo2H.js} +1 -1
  44. package/dist/{ja--NdggLU9.cjs → ja-eyTArrgS.cjs} +1 -1
  45. package/dist/json-schema/index.cjs.js +1 -8
  46. package/dist/json-schema/index.es.js +1359 -7608
  47. package/dist/json-schema-display/index.cjs.js +1 -0
  48. package/dist/json-schema-display/index.es.js +846 -0
  49. package/dist/json-structure/index.cjs.js +1 -1
  50. package/dist/json-structure/index.es.js +542 -698
  51. package/dist/{ko-BUvb0ggK.cjs → ko-BFLCDMMs.cjs} +1 -1
  52. package/dist/{ko-B9g9iw99.js → ko-Ch0jFsBV.js} +1 -1
  53. package/dist/lexical/index.cjs.js +46 -0
  54. package/dist/lexical/index.es.js +21370 -0
  55. package/dist/lexical.css +1124 -0
  56. package/dist/menu-CZzRsQP_.js +372 -0
  57. package/dist/menu-ClrU72xH.cjs +1 -0
  58. package/dist/modal-I5srcntN.cjs +1 -0
  59. package/dist/modal-v3u2Fpnd.js +488 -0
  60. package/dist/{nl-0S25Gsld.cjs → nl-Bx2ACvr4.cjs} +1 -1
  61. package/dist/{nl-Ew5jnSsT.js → nl-NuTdZO1s.js} +1 -1
  62. package/dist/{notice-C-964yaY.js → notice-BuZvdvZh.js} +84 -82
  63. package/dist/notice-CLDdy1MW.cjs +1 -0
  64. package/dist/oneof-branch-detection-DsM1K5xc.cjs +8 -0
  65. package/dist/oneof-branch-detection-Dt8ss9lc.js +6281 -0
  66. package/dist/{pl-C9f6UBSe.js → pl-Bs4nLJ__.js} +1 -1
  67. package/dist/{pl-B3k-K3S4.cjs → pl-QHl6sl8f.cjs} +1 -1
  68. package/dist/prosemirror/index.cjs.js +1 -1
  69. package/dist/prosemirror/index.es.js +1 -1
  70. package/dist/{pt-DYtAvbrw.js → pt-BETjHZrL.js} +1 -1
  71. package/dist/{pt-CKoikRO5.cjs → pt-DZGw2Z-1.cjs} +1 -1
  72. package/dist/{ru-ZexN-b8V.js → ru-Bi1_DEKM.js} +1 -1
  73. package/dist/{ru-COb7RSDt.cjs → ru-D03IuLqh.cjs} +1 -1
  74. package/dist/session-id-3KiilioY.js +8 -0
  75. package/dist/session-id-B5lJMzbB.cjs +1 -0
  76. package/dist/stack-BJgsPJ9A.js +873 -0
  77. package/dist/stack-DcZ_u50f.cjs +1 -0
  78. package/dist/string-B9vVyfq3.cjs +1 -0
  79. package/dist/string-DYyMxBl-.js +19 -0
  80. package/dist/styles-url-B2dzXrYt.cjs +1 -0
  81. package/dist/styles-url-Cw_mxshe.js +4 -0
  82. package/dist/text-input-B3VBat1k.js +44 -0
  83. package/dist/text-input-Ds8e7Z1G.cjs +1 -0
  84. package/dist/{toolbar-DNpBIoJo.js → toolbar-D994_E_s.js} +4 -4
  85. package/dist/toolbar-x0_8lmKu.cjs +1 -0
  86. package/dist/{tr-tO_EH-Y2.cjs → tr-B_-_1wua.cjs} +1 -1
  87. package/dist/{tr-BDvn05-H.js → tr-DiYB-FwX.js} +1 -1
  88. package/dist/translations-B4-Zd2LM.cjs +1 -0
  89. package/dist/translations-Cq8bUKJP.js +584 -0
  90. package/dist/{translations-DwGC_94w.cjs → translations-D62qqNV9.cjs} +1 -1
  91. package/dist/{translations-CfWR4loD.js → translations-DPr6c05Z.js} +1 -1
  92. package/dist/types/better-auth/bridge.d.ts +2 -0
  93. package/dist/types/better-auth/callbacks.d.ts +6 -0
  94. package/dist/types/better-auth/components/authenticated.d.ts +4 -0
  95. package/dist/types/better-auth/components/better-auth-container.d.ts +4 -0
  96. package/dist/types/better-auth/components/better-auth-modal.d.ts +4 -0
  97. package/dist/types/better-auth/components/magic-link-form.d.ts +7 -0
  98. package/dist/types/better-auth/components/passkey-management.d.ts +6 -0
  99. package/dist/types/better-auth/components/passkey-signin.d.ts +12 -0
  100. package/dist/types/better-auth/components/two-factor-setup.d.ts +8 -0
  101. package/dist/types/better-auth/components/two-factor-verify.d.ts +10 -0
  102. package/dist/types/better-auth/i18n/default.d.ts +29 -0
  103. package/dist/types/better-auth/i18n/locales/en.d.ts +28 -0
  104. package/dist/types/better-auth/i18n/translations.d.ts +27 -0
  105. package/dist/types/better-auth/index.d.ts +22 -0
  106. package/dist/types/better-auth/provider.d.ts +6 -0
  107. package/dist/types/better-auth/session.d.ts +14 -0
  108. package/dist/types/better-auth/social-mapping.d.ts +2 -0
  109. package/dist/types/better-auth/types.d.ts +164 -0
  110. package/dist/types/components/auth/auth-container.d.ts +1 -1
  111. package/dist/types/components/auth/social-providers.d.ts +1 -1
  112. package/dist/types/components/auth/types.d.ts +2 -0
  113. package/dist/types/components/editor-toolbar/editor-toolbar-button.d.ts +16 -0
  114. package/dist/types/components/editor-toolbar/editor-toolbar-group.d.ts +9 -0
  115. package/dist/types/components/editor-toolbar/index.d.ts +2 -0
  116. package/dist/types/components/json-schema-display/display-widget-customization.d.ts +61 -0
  117. package/dist/types/components/json-schema-display/display-wrapper.d.ts +14 -0
  118. package/dist/types/components/json-schema-display/displays/any-display.d.ts +14 -0
  119. package/dist/types/components/json-schema-display/displays/array-display.d.ts +13 -0
  120. package/dist/types/components/json-schema-display/displays/boolean-display.d.ts +13 -0
  121. package/dist/types/components/json-schema-display/displays/composition-display.d.ts +14 -0
  122. package/dist/types/components/json-schema-display/displays/enum-const-display.d.ts +13 -0
  123. package/dist/types/components/json-schema-display/displays/generic-display.d.ts +18 -0
  124. package/dist/types/components/json-schema-display/displays/null-display.d.ts +13 -0
  125. package/dist/types/components/json-schema-display/displays/number-display.d.ts +13 -0
  126. package/dist/types/components/json-schema-display/displays/object-display.d.ts +13 -0
  127. package/dist/types/components/json-schema-display/displays/string-display.d.ts +14 -0
  128. package/dist/types/components/json-schema-display/index.d.ts +14 -0
  129. package/dist/types/components/json-schema-display/json-schema-display.d.ts +25 -0
  130. package/dist/types/components/json-schema-display/mismatch.d.ts +14 -0
  131. package/dist/types/components/json-structure/controls/control-utils.d.ts +19 -0
  132. package/dist/types/components/json-structure/controls/index.d.ts +1 -0
  133. package/dist/types/components/lexical/bare-editor.d.ts +29 -0
  134. package/dist/types/components/lexical/code/index.d.ts +1 -0
  135. package/dist/types/components/lexical/code/language-selector.d.ts +13 -0
  136. package/dist/types/components/lexical/contextual-editor.d.ts +22 -0
  137. package/dist/types/components/lexical/docked-editor.d.ts +23 -0
  138. package/dist/types/components/lexical/floating/block-handle.d.ts +16 -0
  139. package/dist/types/components/lexical/floating/floating-toolbar.d.ts +12 -0
  140. package/dist/types/components/lexical/floating/index.d.ts +6 -0
  141. package/dist/types/components/lexical/floating/slash-command-palette.d.ts +20 -0
  142. package/dist/types/components/lexical/index.d.ts +8 -0
  143. package/dist/types/components/lexical/lexical-editor-input.d.ts +30 -0
  144. package/dist/types/components/lexical/table/index.d.ts +1 -0
  145. package/dist/types/components/lexical/table/table-controls.d.ts +12 -0
  146. package/dist/types/components/lexical/toolbar/index.d.ts +6 -0
  147. package/dist/types/components/lexical/toolbar/lexical-toolbar.d.ts +12 -0
  148. package/dist/types/components/lexical/toolbar/toolbar-button.d.ts +1 -0
  149. package/dist/types/components/lexical/toolbar/toolbar-group.d.ts +1 -0
  150. package/dist/types/components/lexical/toolbar/toolbar-helpers.d.ts +30 -0
  151. package/dist/types/components/prosemirror/etoolbar-button.d.ts +1 -11
  152. package/dist/types/components/prosemirror/etoolbar-group.d.ts +1 -4
  153. package/dist/types/json-schema-display/index.d.ts +1 -0
  154. package/dist/types/lexical/commands/index.d.ts +17 -0
  155. package/dist/types/lexical/headless.d.ts +39 -0
  156. package/dist/types/lexical/horizontal-rule-node.d.ts +20 -0
  157. package/dist/types/lexical/index.d.ts +20 -0
  158. package/dist/types/lexical/lazy-loader.d.ts +35 -0
  159. package/dist/types/lexical/nodes.d.ts +29 -0
  160. package/dist/types/lexical/plugins/auto-link.d.ts +7 -0
  161. package/dist/types/lexical/plugins/clipboard.d.ts +11 -0
  162. package/dist/types/lexical/plugins/code-shiki.d.ts +11 -0
  163. package/dist/types/lexical/plugins/code.d.ts +7 -0
  164. package/dist/types/lexical/plugins/dragon.d.ts +6 -0
  165. package/dist/types/lexical/plugins/file-io.d.ts +10 -0
  166. package/dist/types/lexical/plugins/hashtag.d.ts +7 -0
  167. package/dist/types/lexical/plugins/history.d.ts +7 -0
  168. package/dist/types/lexical/plugins/horizontal-rule.d.ts +12 -0
  169. package/dist/types/lexical/plugins/html-io.d.ts +9 -0
  170. package/dist/types/lexical/plugins/index.d.ts +24 -0
  171. package/dist/types/lexical/plugins/link.d.ts +6 -0
  172. package/dist/types/lexical/plugins/list.d.ts +6 -0
  173. package/dist/types/lexical/plugins/mark.d.ts +15 -0
  174. package/dist/types/lexical/plugins/markdown-io.d.ts +13 -0
  175. package/dist/types/lexical/plugins/offset.d.ts +6 -0
  176. package/dist/types/lexical/plugins/overflow.d.ts +7 -0
  177. package/dist/types/lexical/plugins/plain-text.d.ts +6 -0
  178. package/dist/types/lexical/plugins/rich-text.d.ts +6 -0
  179. package/dist/types/lexical/plugins/selection.d.ts +6 -0
  180. package/dist/types/lexical/plugins/slash-commands.d.ts +26 -0
  181. package/dist/types/lexical/plugins/table.d.ts +11 -0
  182. package/dist/types/lexical/plugins/text.d.ts +13 -0
  183. package/dist/types/lexical/plugins/yjs.d.ts +9 -0
  184. package/dist/types/lexical/styles-url.d.ts +2 -0
  185. package/dist/types/lexical/styles.d.ts +2 -0
  186. package/dist/types/lexical/types.d.ts +634 -0
  187. package/dist/types/lexical-i18n/default.d.ts +92 -0
  188. package/dist/types/lexical-i18n/index.d.ts +21 -0
  189. package/dist/types/lexical-i18n/locales/ar.d.ts +91 -0
  190. package/dist/types/lexical-i18n/locales/de.d.ts +91 -0
  191. package/dist/types/lexical-i18n/locales/en.d.ts +91 -0
  192. package/dist/types/lexical-i18n/locales/es.d.ts +91 -0
  193. package/dist/types/lexical-i18n/locales/fa.d.ts +91 -0
  194. package/dist/types/lexical-i18n/locales/fr.d.ts +91 -0
  195. package/dist/types/lexical-i18n/locales/he.d.ts +91 -0
  196. package/dist/types/lexical-i18n/locales/hi.d.ts +91 -0
  197. package/dist/types/lexical-i18n/locales/it.d.ts +91 -0
  198. package/dist/types/lexical-i18n/locales/ja.d.ts +91 -0
  199. package/dist/types/lexical-i18n/locales/ko.d.ts +91 -0
  200. package/dist/types/lexical-i18n/locales/nl.d.ts +91 -0
  201. package/dist/types/lexical-i18n/locales/pl.d.ts +91 -0
  202. package/dist/types/lexical-i18n/locales/pt.d.ts +91 -0
  203. package/dist/types/lexical-i18n/locales/ru.d.ts +91 -0
  204. package/dist/types/lexical-i18n/locales/tr.d.ts +91 -0
  205. package/dist/types/lexical-i18n/locales/ur.d.ts +91 -0
  206. package/dist/types/lexical-i18n/locales/vi.d.ts +91 -0
  207. package/dist/types/lexical-i18n/locales/zh.d.ts +91 -0
  208. package/dist/types/lexical-i18n/translations.d.ts +21 -0
  209. package/dist/{ur-DbEqQgS6.js → ur-B69X-xNs.js} +1 -1
  210. package/dist/{ur-BbnYJ3HS.cjs → ur-DyUSmIbo.cjs} +1 -1
  211. package/dist/use-animated-toggle-ChycsEoj.js +175 -0
  212. package/dist/use-animated-toggle-DR6CyMac.cjs +1 -0
  213. package/dist/use-form-B56E_x5Y.js +859 -0
  214. package/dist/use-form-Cnp3XQ5X.cjs +2 -0
  215. package/dist/utils-DEbsp9Q9.js +129 -0
  216. package/dist/utils-DIUEhA-Z.cjs +1 -0
  217. package/dist/{vi-CpZUeuSj.js → vi-BdzxA60L.js} +1 -1
  218. package/dist/{vi-ByBwvGQY.cjs → vi-CBmPaHxg.cjs} +1 -1
  219. package/dist/widget-customization-Dk7XcVly.cjs +1 -0
  220. package/dist/widget-customization-Ds9sicAg.js +1073 -0
  221. package/dist/{zh-DnxK0ieB.cjs → zh-Cb1b8uik.cjs} +1 -1
  222. package/dist/{zh-DJyhKO0I.js → zh-Dn1UJiZa.js} +1 -1
  223. package/package.json +59 -8
  224. package/dist/_commonjsHelpers-C6fGbg64.js +0 -6
  225. package/dist/_commonjsHelpers-DwGv2jUC.cjs +0 -1
  226. package/dist/deep-merge-CBIkQM4E.cjs +0 -1
  227. package/dist/duration-input-DHWhQJnn.cjs +0 -1
  228. package/dist/modal-CSHIhHvI.js +0 -654
  229. package/dist/modal-cc8Ehngz.cjs +0 -1
  230. package/dist/notice-C_BWqu2K.cjs +0 -1
  231. package/dist/toolbar-D5FcnRju.cjs +0 -1
  232. package/dist/translations-0tLX4x7M.js +0 -866
  233. package/dist/translations-WPN3ibDg.cjs +0 -1
  234. package/dist/use-form-D4JFOcjo.cjs +0 -2
  235. package/dist/use-form-D4rqJkvG.js +0 -1731
  236. package/dist/widget-customization-BSjJz3_Y.js +0 -1195
  237. package/dist/widget-customization-CrFVrt4V.cjs +0 -1
@@ -0,0 +1,1073 @@
1
+ import { Value as p, prop as rt, computedOf as D, html as _, attr as u, svg as tt, svgAttr as Y, on as I, Empty as A, When as H, Fragment as E, aria as N, emitValue as Z, Use as ot, input as ct, emitValueAsNullableDate as et, emitValueAsNullableDateTime as nt, style as it, Repeat as pt, emit as dt, emitValueAsNumber as V } from "@tempots/dom";
2
+ import { F as gt, N as z, T as ht, U as ft, a as mt } from "./deep-merge-BYm0y62g.js";
3
+ import { $ as bt } from "./string-DYyMxBl-.js";
4
+ import { I as L } from "./input-container-DiCjOzR2.js";
5
+ import { C as U, T as wt } from "./text-input-B3VBat1k.js";
6
+ import { B as yt, I as q, L as $t, b as st, a as It } from "./translations-Cq8bUKJP.js";
7
+ import { AutoSelect as Mt, ElementRect as xt } from "@tempots/ui";
8
+ import { E as _t, P as kt } from "./notice-BuZvdvZh.js";
9
+ import { s as Ft } from "./session-id-3KiilioY.js";
10
+ import { r as Ct } from "./utils-DEbsp9Q9.js";
11
+ function lt(t) {
12
+ if (typeof t != "string") return !1;
13
+ const e = t.startsWith("#") ? t.slice(1) : t;
14
+ return /^[0-9A-Fa-f]{3}$|^[0-9A-Fa-f]{6}$/.test(e);
15
+ }
16
+ function Tt(t) {
17
+ if (typeof t != "string") return !1;
18
+ const e = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i, s = t.match(e);
19
+ if (!s) return !1;
20
+ const [, n, r, a] = s, o = parseInt(n, 10), c = parseInt(r, 10), i = parseInt(a, 10);
21
+ return o >= 0 && o <= 255 && c >= 0 && c <= 255 && i >= 0 && i <= 255;
22
+ }
23
+ function At(t) {
24
+ if (typeof t != "string") return !1;
25
+ const e = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0|1|0?\.\d+)\s*\)$/i, s = t.match(e);
26
+ if (!s) return !1;
27
+ const [, n, r, a, o] = s, c = parseInt(n, 10), i = parseInt(r, 10), l = parseInt(a, 10), d = parseFloat(o);
28
+ return c >= 0 && c <= 255 && i >= 0 && i <= 255 && l >= 0 && l <= 255 && d >= 0 && d <= 1;
29
+ }
30
+ function St(t) {
31
+ if (typeof t != "string") return !1;
32
+ const e = /^hsl\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*\)$/i, s = t.match(e);
33
+ if (!s) return !1;
34
+ const [, n, r, a] = s, o = parseInt(n, 10), c = parseInt(r, 10), i = parseInt(a, 10);
35
+ return o >= 0 && o <= 360 && c >= 0 && c <= 100 && i >= 0 && i <= 100;
36
+ }
37
+ function ce(t) {
38
+ return lt(t) || Tt(t) || At(t) || St(t);
39
+ }
40
+ function vt(t) {
41
+ if (!lt(t)) return null;
42
+ let e = t.startsWith("#") ? t.slice(1) : t;
43
+ return e.length === 3 && (e = e.split("").map((s) => s + s).join("")), `#${e.toLowerCase()}`;
44
+ }
45
+ function Q(t, e, s) {
46
+ const n = (r) => {
47
+ const a = Math.round(Math.max(0, Math.min(255, r))).toString(16);
48
+ return a.length === 1 ? "0" + a : a;
49
+ };
50
+ return `#${n(t)}${n(e)}${n(s)}`;
51
+ }
52
+ function j(t) {
53
+ const e = vt(t);
54
+ if (!e) return null;
55
+ const s = /^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);
56
+ return s ? {
57
+ r: parseInt(s[1], 16),
58
+ g: parseInt(s[2], 16),
59
+ b: parseInt(s[3], 16)
60
+ } : null;
61
+ }
62
+ function ie(t, e) {
63
+ const s = j(t), n = j(e);
64
+ if (!s || !n) return null;
65
+ const r = (l, d, f) => {
66
+ const [b, g, y] = [l, d, f].map(($) => ($ = $ / 255, $ <= 0.03928 ? $ / 12.92 : Math.pow(($ + 0.055) / 1.055, 2.4)));
67
+ return 0.2126 * b + 0.7152 * g + 0.0722 * y;
68
+ }, a = r(s.r, s.g, s.b), o = r(n.r, n.g, n.b), c = Math.max(a, o), i = Math.min(a, o);
69
+ return (c + 0.05) / (i + 0.05);
70
+ }
71
+ function Rt(t) {
72
+ if (!t) return [0, 0, 0, 1];
73
+ const s = t.trim().match(
74
+ /^#?([a-fA-F0-9]{3,4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$/
75
+ );
76
+ if (s) {
77
+ const l = s[1];
78
+ if (l.length === 8) {
79
+ const d = parseInt(l.slice(0, 2), 16), f = parseInt(l.slice(2, 4), 16), b = parseInt(l.slice(4, 6), 16), g = parseInt(l.slice(6, 8), 16) / 255;
80
+ return [d, f, b, g];
81
+ }
82
+ if (l.length === 6)
83
+ return [
84
+ parseInt(l.slice(0, 2), 16),
85
+ parseInt(l.slice(2, 4), 16),
86
+ parseInt(l.slice(4, 6), 16),
87
+ 1
88
+ ];
89
+ if (l.length === 4) {
90
+ const d = parseInt(l[0] + l[0], 16), f = parseInt(l[1] + l[1], 16), b = parseInt(l[2] + l[2], 16), g = parseInt(l[3] + l[3], 16) / 255;
91
+ return [d, f, b, g];
92
+ }
93
+ if (l.length === 3) {
94
+ const d = parseInt(l[0] + l[0], 16), f = parseInt(l[1] + l[1], 16), b = parseInt(l[2] + l[2], 16);
95
+ return [d, f, b, 1];
96
+ }
97
+ }
98
+ const n = t.match(
99
+ /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0|1|0?\.\d+)\s*\)$/i
100
+ );
101
+ if (n)
102
+ return [
103
+ parseInt(n[1], 10),
104
+ parseInt(n[2], 10),
105
+ parseInt(n[3], 10),
106
+ parseFloat(n[4])
107
+ ];
108
+ const r = t.match(
109
+ /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i
110
+ );
111
+ if (r)
112
+ return [parseInt(r[1], 10), parseInt(r[2], 10), parseInt(r[3], 10), 1];
113
+ const a = t.match(
114
+ /^hsla?\(\s*([+-]?[\d.]+)(?:deg)?\s*[ ,]?\s*([\d.]+)%\s*[ ,]?\s*([\d.]+)%\s*(?:[/,]\s*(\d?(?:\.\d+)?))?\s*\)$/i
115
+ );
116
+ if (a) {
117
+ const l = parseFloat(a[1]), d = parseFloat(a[2]), f = parseFloat(a[3]), b = a[4] != null ? parseFloat(a[4]) : 1, [g, y, $] = ut(l, d / 100, f / 100);
118
+ return [g, y, $, b];
119
+ }
120
+ const o = t.match(
121
+ /^hwb\(\s*([+-]?[\d.]+)(?:deg)?\s*[, ]\s*([\d.]+)%\s*[, ]\s*([\d.]+)%\s*(?:[/]\s*(\d?(?:\.\d+)?))?\s*\)$/i
122
+ );
123
+ if (o) {
124
+ const l = parseFloat(o[1]), d = parseFloat(o[2]) / 100, f = parseFloat(o[3]) / 100, b = o[4] != null ? parseFloat(o[4]) : 1, [g, y, $] = Bt(l, d, f);
125
+ return [g, y, $, b];
126
+ }
127
+ const c = t.match(
128
+ /^oklch\(\s*([+-]?[\d.]+%?)\s+([\d.]+)\s+([+-]?[\d.]+)(?:deg)?(?:\s*\/\s*(\d?(?:\.\d+)?))?\s*\)$/i
129
+ );
130
+ if (c) {
131
+ const l = c[1], d = parseFloat(c[2]), f = parseFloat(c[3]), b = c[4] != null ? parseFloat(c[4]) : 1, g = l.endsWith("%") ? Math.max(0, Math.min(1, parseFloat(l) / 100)) : Math.max(0, Math.min(1, parseFloat(l))), [y, $, w] = Et(g, d, f);
132
+ return [y, $, w, b];
133
+ }
134
+ const i = j(t);
135
+ return i ? [i.r, i.g, i.b, 1] : [0, 0, 0, 1];
136
+ }
137
+ function Nt(t, e, s, n) {
138
+ return `rgba(${Math.round(t)}, ${Math.round(e)}, ${Math.round(s)}, ${Math.max(
139
+ 0,
140
+ Math.min(1, Math.round(n * 100) / 100)
141
+ )})`;
142
+ }
143
+ function Dt(t) {
144
+ let e = t + 1831565813;
145
+ return function() {
146
+ return e = Math.imul(e ^ e >>> 15, e | 1), e ^= e + Math.imul(e ^ e >>> 7, e | 61), ((e ^ e >>> 14) >>> 0) / 4294967296;
147
+ };
148
+ }
149
+ function ut(t, e, s) {
150
+ t = (t % 360 + 360) % 360;
151
+ const n = (1 - Math.abs(2 * s - 1)) * e, r = n * (1 - Math.abs(t / 60 % 2 - 1)), a = s - n / 2;
152
+ let o = 0, c = 0, i = 0;
153
+ return 0 <= t && t < 60 ? [o, c, i] = [n, r, 0] : 60 <= t && t < 120 ? [o, c, i] = [r, n, 0] : 120 <= t && t < 180 ? [o, c, i] = [0, n, r] : 180 <= t && t < 240 ? [o, c, i] = [0, r, n] : 240 <= t && t < 300 ? [o, c, i] = [r, 0, n] : [o, c, i] = [n, 0, r], [
154
+ Math.round((o + a) * 255),
155
+ Math.round((c + a) * 255),
156
+ Math.round((i + a) * 255)
157
+ ];
158
+ }
159
+ function Bt(t, e, s) {
160
+ t = (t % 360 + 360) % 360;
161
+ const n = e + s;
162
+ n > 1 && (e /= n, s /= n);
163
+ const [r, a, o] = ut(t, 1, 0.5).map((f) => f / 255), c = 1 - e - s, i = r * c + e, l = a * c + e, d = o * c + e;
164
+ return [Math.round(i * 255), Math.round(l * 255), Math.round(d * 255)];
165
+ }
166
+ function J(t, e, s) {
167
+ t /= 255, e /= 255, s /= 255;
168
+ const n = Math.max(t, e, s), r = Math.min(t, e, s);
169
+ let a = 0, o = 0;
170
+ const c = (n + r) / 2, i = n - r;
171
+ if (i !== 0) {
172
+ switch (o = c > 0.5 ? i / (2 - n - r) : i / (n + r), n) {
173
+ case t:
174
+ a = (e - s) / i + (e < s ? 6 : 0);
175
+ break;
176
+ case e:
177
+ a = (s - t) / i + 2;
178
+ break;
179
+ default:
180
+ a = (t - e) / i + 4;
181
+ }
182
+ a *= 60;
183
+ }
184
+ return [Math.round(a), Math.round(o * 100), Math.round(c * 100)];
185
+ }
186
+ function Vt(t, e, s) {
187
+ const [n] = J(t, e, s), r = t / 255, a = e / 255, o = s / 255, c = Math.min(r, a, o), i = 1 - Math.max(r, a, o);
188
+ return [n, Math.round(c * 100), Math.round(i * 100)];
189
+ }
190
+ function G(t) {
191
+ const e = t / 255;
192
+ return e <= 0.04045 ? e / 12.92 : Math.pow((e + 0.055) / 1.055, 2.4);
193
+ }
194
+ function K(t) {
195
+ const e = t <= 31308e-7 ? 12.92 * t : 1.055 * Math.pow(t, 0.4166666666666667) - 0.055;
196
+ return Math.round(Math.max(0, Math.min(1, e)) * 255);
197
+ }
198
+ function Et(t, e, s) {
199
+ const n = s * Math.PI / 180, r = Math.cos(n) * e, a = Math.sin(n) * e, o = t + 0.3963377774 * r + 0.2158037573 * a, c = t - 0.1055613458 * r - 0.0638541728 * a, i = t - 0.0894841775 * r - 1.291485548 * a, l = o * o * o, d = c * c * c, f = i * i * i, b = 4.0767416621 * l - 3.3077115913 * d + 0.2309699292 * f, g = -1.2684380046 * l + 2.6097574011 * d - 0.3413193965 * f, y = -0.0041960863 * l - 0.7034186147 * d + 1.707614701 * f;
200
+ return [K(b), K(g), K(y)];
201
+ }
202
+ function Lt(t, e, s) {
203
+ const n = G(t), r = G(e), a = G(s), o = 0.4122214708 * n + 0.5363325363 * r + 0.0514459929 * a, c = 0.2119034982 * n + 0.6806995451 * r + 0.1073969566 * a, i = 0.0883024619 * n + 0.2817188376 * r + 0.6299787005 * a, l = Math.cbrt(o), d = Math.cbrt(c), f = Math.cbrt(i), b = 0.2104542553 * l + 0.793617785 * d - 0.0040720468 * f, g = 1.9779984951 * l - 2.428592205 * d + 0.4505937099 * f, y = 0.0259040371 * l + 0.7827717662 * d - 0.808675766 * f, $ = Math.sqrt(g * g + y * y);
204
+ let w = Math.atan2(y, g) * 180 / Math.PI;
205
+ return w < 0 && (w += 360), [b, $, w];
206
+ }
207
+ function O(t, e, s, n, r, a) {
208
+ switch (r) {
209
+ case "hex":
210
+ if (a) {
211
+ const o = (i) => i.toString(16).padStart(2, "0"), c = Math.max(0, Math.min(255, Math.round(n * 255)));
212
+ return `#${o(t)}${o(e)}${o(s)}${o(c)}`;
213
+ }
214
+ return Q(t, e, s);
215
+ case "rgb":
216
+ return `rgb(${t}, ${e}, ${s})`;
217
+ case "rgba":
218
+ return `rgba(${t}, ${e}, ${s}, ${Math.round(n * 100) / 100})`;
219
+ case "hsl": {
220
+ const [o, c, i] = J(t, e, s);
221
+ return `hsl(${o}, ${c}%, ${i}%)`;
222
+ }
223
+ case "hsla": {
224
+ const [o, c, i] = J(t, e, s);
225
+ return `hsla(${o}, ${c}%, ${i}%, ${Math.round(n * 100) / 100})`;
226
+ }
227
+ case "hwb": {
228
+ const [o, c, i] = Vt(t, e, s);
229
+ return n < 1 ? `hwb(${o} ${c}% ${i}% / ${Math.round(n * 100) / 100})` : `hwb(${o} ${c}% ${i}%)`;
230
+ }
231
+ case "oklch": {
232
+ const [o, c, i] = Lt(t, e, s), l = (Math.round(o * 1e3) / 1e3).toFixed(3), d = (Math.round(c * 1e3) / 1e3).toFixed(3), f = (Math.round(i * 10) / 10).toFixed(1), b = Math.round(n * 100) / 100;
233
+ return a || n < 1 ? `oklch(${l} ${d} ${f} / ${b})` : `oklch(${l} ${d} ${f})`;
234
+ }
235
+ }
236
+ }
237
+ function W(t, e) {
238
+ return e ? t === "rgb" ? "rgba" : t === "hsl" ? "hsla" : t : t === "rgba" ? "rgb" : t === "hsla" ? "hsl" : t;
239
+ }
240
+ async function Ut(t) {
241
+ return new Promise((e, s) => {
242
+ const n = new FileReader();
243
+ n.readAsDataURL(t), n.onload = () => {
244
+ const r = n.result;
245
+ e(r.split(",")[1]);
246
+ }, n.onerror = (r) => s(r);
247
+ });
248
+ }
249
+ function Pt(t) {
250
+ return Promise.all(t.map(Ut));
251
+ }
252
+ function Ot(t) {
253
+ if (t.length >= 4) {
254
+ if (t[0] === 137 && t[1] === 80 && t[2] === 78 && t[3] === 71)
255
+ return "image/png";
256
+ if (t[0] === 255 && t[1] === 216) return "image/jpeg";
257
+ if (t[0] === 71 && t[1] === 73 && t[2] === 70)
258
+ return "image/gif";
259
+ if (t[0] === 82 && t[1] === 73 && t[2] === 70 && t[3] === 70 && t.length >= 12 && t[8] === 87 && t[9] === 69 && t[10] === 66 && t[11] === 80)
260
+ return "image/webp";
261
+ }
262
+ try {
263
+ if (new TextDecoder("utf-8").decode(t.slice(0, 256)).includes("<svg")) return "image/svg+xml";
264
+ } catch {
265
+ }
266
+ return "application/octet-stream";
267
+ }
268
+ function Wt(t) {
269
+ const e = bt(t ?? ""), s = e.length, n = new Uint8Array(s);
270
+ for (let r = 0; r < s; r++) n[r] = e.charCodeAt(r);
271
+ return n;
272
+ }
273
+ function Ht(t) {
274
+ const {
275
+ value: e,
276
+ onChange: s,
277
+ onInput: n,
278
+ ...r
279
+ } = t, a = /* @__PURE__ */ new Map(), o = p.toSignal(e).map((d) => d.map((f, b) => {
280
+ const g = a.get(f), y = Wt(f ?? ""), $ = g?.type || Ot(y), w = g?.name ?? `file-${b}`, x = y.buffer.slice(
281
+ y.byteOffset,
282
+ y.byteOffset + y.byteLength
283
+ ), m = new Blob([x], { type: $ });
284
+ return new File([m], w, { type: $ });
285
+ })), c = (d) => (f) => {
286
+ d && Pt(f).then((b) => {
287
+ for (const [g, y] of b.entries())
288
+ a.set(y, { name: f[g].name, type: f[g].type });
289
+ d(b);
290
+ });
291
+ }, i = c(s), l = c(n);
292
+ return gt({
293
+ ...r,
294
+ value: o,
295
+ onChange: i,
296
+ onInput: l
297
+ });
298
+ }
299
+ function le(t) {
300
+ const {
301
+ value: e,
302
+ onInput: s,
303
+ onChange: n,
304
+ ...r
305
+ } = t;
306
+ return Ht({
307
+ ...r,
308
+ maxFiles: 1,
309
+ value: p.map(e, (a) => a == null ? [] : [a]),
310
+ onChange: (a) => {
311
+ n?.(a[0]);
312
+ },
313
+ onInput: (a) => {
314
+ s?.(a[0]);
315
+ }
316
+ });
317
+ }
318
+ function jt(t, e) {
319
+ const [s, n, r] = t, a = s << 16 ^ n << 8 ^ r, o = Dt(a), c = 6 + Math.floor(o() * 5), i = 0.18 + o() * 0.06, l = [];
320
+ for (let g = 0; g < c; g++) {
321
+ const y = g / c * Math.PI * 2, $ = e * (1 + (o() * 2 - 1) * i), w = Math.cos(y) * $, x = Math.sin(y) * $;
322
+ l.push({ x: w, y: x });
323
+ }
324
+ const d = (l[0].x + l[c - 1].x) / 2, f = (l[0].y + l[c - 1].y) / 2;
325
+ let b = `M ${d.toFixed(3)} ${f.toFixed(3)}`;
326
+ for (let g = 0; g < c; g++) {
327
+ const y = l[g], $ = l[(g + 1) % c], w = (y.x + $.x) / 2, x = (y.y + $.y) / 2;
328
+ b += ` Q ${y.x.toFixed(3)} ${y.y.toFixed(3)} ${w.toFixed(3)} ${x.toFixed(3)}`;
329
+ }
330
+ return b += " Z", b;
331
+ }
332
+ const ue = (t) => {
333
+ const { value: e, onBlur: s, onChange: n, onInput: r, displayValue: a, size: o, withAlpha: c } = t, i = p.map(o ?? 32, (h) => h), l = p.map(e, (h) => Rt(h ?? "#000000")), d = p.map(
334
+ l,
335
+ ([h, M, F]) => [h, M, F]
336
+ ), f = p.map(l, ([, , , h]) => h), b = rt(p.get(f) ?? 1), g = p.map(c ?? !1, (h) => h), y = p.map(
337
+ t.colorTextFormat ?? "rgb",
338
+ (h) => h
339
+ ), $ = D(
340
+ d,
341
+ b,
342
+ y,
343
+ g
344
+ )(
345
+ ([h, M, F], S, v, R) => O(h, M, F, S ?? 1, W(v, R), R)
346
+ ), w = p.map(
347
+ t.colorTextFormat ?? "hex",
348
+ (h) => h
349
+ ), x = p.map(i, (h) => `${-h / 2} ${-h / 2} ${h} ${h}`), m = D(
350
+ d,
351
+ i
352
+ )((h, M) => jt(h, M / 2)), T = D(
353
+ d,
354
+ b,
355
+ g
356
+ )(
357
+ ([h, M, F], S, v) => v || S < 1 ? Nt(h, M, F, S) : Q(h, M, F)
358
+ ), C = _.div(
359
+ u.class("bc-color-swatch-input__control"),
360
+ u.class(
361
+ p.map(
362
+ g,
363
+ (h) => h ? "bc-color-swatch-input__control--alpha" : ""
364
+ )
365
+ ),
366
+ u.style(
367
+ D(i)((h) => `min-width:${h + 2}px;height:${h + 2}px`)
368
+ ),
369
+ // The SVG blob preview
370
+ tt.svg(
371
+ u.class("bc-color-swatch-input__svg"),
372
+ Y.viewBox(x),
373
+ tt.path(Y.d(m), Y.fill(T))
374
+ ),
375
+ // Invisible native input overlays the blob for picker and accessibility
376
+ _.input(
377
+ u.type("color"),
378
+ U(t),
379
+ // Native color input needs hex without alpha
380
+ u.value(p.map(d, ([h, M, F]) => Q(h, M, F))),
381
+ u.class(
382
+ "bc-input bc-color-swatch-input bc-color-swatch-input__native"
383
+ ),
384
+ s != null ? I.blur(s) : A,
385
+ n != null ? I.change((h) => {
386
+ const M = h.target.value;
387
+ if (!n) return;
388
+ const { r: F, g: S, b: v } = j(M) ?? { r: 0, g: 0, b: 0 }, R = p.get(b) ?? 1, B = W(
389
+ p.get(w),
390
+ p.get(g)
391
+ ), X = O(F, S, v, R, B, p.get(g));
392
+ n(X);
393
+ }) : A,
394
+ r != null ? I.input((h) => {
395
+ const M = h.target.value;
396
+ if (!r) return;
397
+ const { r: F, g: S, b: v } = j(M) ?? { r: 0, g: 0, b: 0 }, R = p.get(b) ?? 1, B = W(
398
+ p.get(w),
399
+ p.get(g)
400
+ ), X = O(F, S, v, R, B, p.get(g));
401
+ r(X);
402
+ }) : A
403
+ )
404
+ ), k = H(
405
+ g,
406
+ () => _.input(
407
+ u.type("range"),
408
+ u.class("bc-color-swatch-input__alpha"),
409
+ u.min(0),
410
+ u.max(1),
411
+ u.step(0.01),
412
+ u.value(p.map(b, (h) => String(h ?? 1))),
413
+ u.disabled(t.disabled),
414
+ I.input((h) => {
415
+ const M = parseFloat(h.target.value);
416
+ b.set(M);
417
+ const [F, S, v] = p.get(d), R = W(
418
+ p.get(w),
419
+ p.get(g)
420
+ ), B = O(F, S, v, M, R, p.get(g));
421
+ r?.(B);
422
+ }),
423
+ I.change((h) => {
424
+ const M = parseFloat(h.target.value);
425
+ b.set(M);
426
+ const [F, S, v] = p.get(d), R = W(
427
+ p.get(w),
428
+ p.get(g)
429
+ ), B = O(F, S, v, M, R, p.get(g));
430
+ n?.(B);
431
+ })
432
+ )
433
+ );
434
+ return L({
435
+ baseContainer: !0,
436
+ ...t,
437
+ // ensure our control does not try to grow
438
+ growInput: !1,
439
+ input: C,
440
+ // If caller provided an `after`, append RGB before it
441
+ after: E(
442
+ H(
443
+ a ?? !1,
444
+ () => _.span(u.class("bc-color-swatch-input__rgb"), $)
445
+ ),
446
+ k,
447
+ t.after
448
+ )
449
+ });
450
+ }, pe = ({
451
+ startEditing: t,
452
+ value: e,
453
+ onChange: s,
454
+ placeholder: n,
455
+ disabled: r
456
+ }) => {
457
+ const a = p.deriveProp(t ?? !1), o = rt(!1), c = p.map(r ?? !1, (i) => i);
458
+ return _.div(
459
+ u.class("bc-editable-text"),
460
+ u.class(
461
+ p.map(
462
+ c,
463
+ (i) => i ? "bc-editable-text--disabled" : ""
464
+ )
465
+ ),
466
+ N.disabled(c),
467
+ H(
468
+ a,
469
+ () => _.input(
470
+ u.placeholder(n),
471
+ u.value(e),
472
+ u.class("bc-editable-text__input"),
473
+ Mt(),
474
+ I.keydown((i) => {
475
+ i.key === "Enter" ? a.set(!1) : i.key === "Escape" && (o.set(!0), a.set(!1));
476
+ }),
477
+ I.blur(
478
+ Z((i) => {
479
+ if (a.set(!1), o.value) {
480
+ o.set(!1);
481
+ return;
482
+ }
483
+ s(i);
484
+ })
485
+ )
486
+ ),
487
+ () => _.span(
488
+ I.click(() => {
489
+ p.get(c) || a.set(!0);
490
+ }),
491
+ u.class("bc-editable-text__display"),
492
+ H(
493
+ p.map(e, (i) => i != null && i.trim() !== ""),
494
+ () => _.span(u.class("bc-editable-text__text"), e),
495
+ () => _.span(
496
+ u.class("bc-editable-text__placeholder"),
497
+ n
498
+ )
499
+ ),
500
+ H(
501
+ p.map(c, (i) => !i),
502
+ () => _.button(
503
+ u.type("button"),
504
+ u.class("bc-editable-text__edit-button"),
505
+ ot(yt, (i) => N.label(i.$.editLabel)),
506
+ I.click(() => a.set(!0)),
507
+ q({ icon: "line-md/pencil", color: "neutral" })
508
+ )
509
+ )
510
+ )
511
+ )
512
+ );
513
+ }, de = (t) => {
514
+ const { value: e, onBlur: s, onChange: n, onInput: r, after: a, disabled: o } = t, c = z(e, o, n ?? r);
515
+ return L({
516
+ ...t,
517
+ input: ct.date(
518
+ U(t),
519
+ u.valueAsDate(e),
520
+ u.class("bc-input"),
521
+ s != null ? I.blur(Z(s)) : A,
522
+ n != null ? I.change(et(n)) : A,
523
+ r != null ? I.input(et(r)) : A
524
+ ),
525
+ after: a != null ? E(c, a) : c
526
+ });
527
+ }, zt = (t) => {
528
+ const e = t.getFullYear(), s = t.getMonth() + 1, n = t.getDate(), r = t.getHours(), a = t.getMinutes(), o = t.getSeconds();
529
+ return `${e}-${s.toString().padStart(2, "0")}-${n.toString().padStart(2, "0")}T${r.toString().padStart(2, "0")}:${a.toString().padStart(2, "0")}:${o.toString().padStart(2, "0")}`;
530
+ }, ge = (t) => {
531
+ const { value: e, onBlur: s, onChange: n, onInput: r, after: a, disabled: o } = t, c = p.map(e, (l) => l != null ? zt(l) : null), i = z(e, o, n ?? r);
532
+ return L({
533
+ ...t,
534
+ input: ct["datetime-local"](
535
+ U(t),
536
+ u.value(p.map(c, (l) => l ?? null)),
537
+ u.class("bc-input"),
538
+ s != null ? I.blur(Z(s)) : A,
539
+ n != null ? I.change(nt(n)) : A,
540
+ r != null ? I.input(nt(r)) : A
541
+ ),
542
+ after: a != null ? E(i, a) : i
543
+ });
544
+ }, at = (t) => typeof t == "string" && t.trim() === "" ? null : t, Xt = (t) => t ?? "";
545
+ function P(t) {
546
+ return (e) => {
547
+ const { value: s, onBlur: n, onChange: r, onInput: a, after: o, disabled: c, ...i } = e, l = z(s, c, r ?? a);
548
+ return t({
549
+ ...i,
550
+ disabled: c,
551
+ value: p.map(s, Xt),
552
+ onChange: r != null ? (d) => r(at(d)) : void 0,
553
+ onInput: a != null ? (d) => a(at(d)) : void 0,
554
+ onBlur: n,
555
+ after: o != null ? E(l, o) : l
556
+ });
557
+ };
558
+ }
559
+ const he = P(_t), fe = P(wt), me = P(kt), be = P(
560
+ ht
561
+ ), we = ({
562
+ value: t,
563
+ onChange: e,
564
+ onInput: s,
565
+ onBlur: n,
566
+ offLabel: r,
567
+ onLabel: a,
568
+ disabled: o = !1,
569
+ size: c = "md",
570
+ id: i,
571
+ color: l = "primary",
572
+ tabIndex: d = 0
573
+ }) => {
574
+ const f = i ?? Ft("switch");
575
+ function b(w, x) {
576
+ const m = [
577
+ "bc-switch",
578
+ `bc-switch--size-${x}`,
579
+ `bc-switch--${x}`
580
+ ];
581
+ return w && m.push("bc-switch--disabled"), m.join(" ");
582
+ }
583
+ function g(w) {
584
+ const x = w ?? "primary", m = /* @__PURE__ */ new Map(), T = st(x, "solid", "light"), C = st(x, "solid", "dark");
585
+ return m.set("--switch-track-on-bg", T.backgroundColor), m.set("--switch-track-on-label", T.textColor), m.set("--switch-track-on-bg-dark", C.backgroundColor), m.set("--switch-track-on-label-dark", C.textColor), m.set(
586
+ "--switch-track-on-border-dark",
587
+ It(x, "dark")
588
+ ), Array.from(m.entries()).map(([k, h]) => `${k}: ${h}`).join("; ");
589
+ }
590
+ const y = () => {
591
+ p.get(o) || (e?.(!p.get(t)), s?.(!p.get(t)));
592
+ }, $ = (w) => {
593
+ p.get(o) || (w.key === " " || w.key === "Enter") && (w.preventDefault(), y());
594
+ };
595
+ return _.div(
596
+ u.class(
597
+ D(
598
+ o ?? !1,
599
+ c
600
+ )(
601
+ (w, x) => b(w ?? !1, x ?? "md")
602
+ )
603
+ ),
604
+ u.style(
605
+ D(l)(
606
+ (w) => g(w)
607
+ )
608
+ ),
609
+ u.id(f),
610
+ u.role("switch"),
611
+ u.tabindex(
612
+ D(
613
+ o ?? !1,
614
+ d
615
+ )((w, x) => w ? -1 : x ?? 0)
616
+ ),
617
+ N.checked(t),
618
+ N.disabled(o),
619
+ I.click(y),
620
+ I.keydown($),
621
+ n != null ? I.blur(n) : null,
622
+ _.div(
623
+ u.class("bc-switch__track"),
624
+ u.class(
625
+ p.map(
626
+ t,
627
+ (w) => w ? "bc-switch__track--on" : "bc-switch__track--off"
628
+ )
629
+ ),
630
+ r != null ? _.div(
631
+ N.hidden(!0),
632
+ u.class("bc-switch__track-label bc-switch__track-label--off"),
633
+ u.class(
634
+ p.map(
635
+ t,
636
+ (w) => w ? "bc-switch__track-label--hidden" : "bc-switch__track-label--visible"
637
+ )
638
+ ),
639
+ r
640
+ ) : null,
641
+ a != null ? _.div(
642
+ u.class("bc-switch__track-label bc-switch__track-label--on"),
643
+ u.class(
644
+ p.map(
645
+ t,
646
+ (w) => w ? "bc-switch__track-label--visible" : "bc-switch__track-label--hidden"
647
+ )
648
+ ),
649
+ a
650
+ ) : null,
651
+ xt(
652
+ (w) => ot(
653
+ $t,
654
+ ({ direction: x }) => _.div(
655
+ u.class("bc-switch__thumb"),
656
+ u.class(
657
+ p.map(
658
+ t,
659
+ (m) => m ? "bc-switch__thumb--on" : "bc-switch__thumb--off"
660
+ )
661
+ ),
662
+ it.transform(
663
+ D(
664
+ t,
665
+ w,
666
+ c,
667
+ x
668
+ )((m, { width: T }, C, k) => {
669
+ const h = (() => {
670
+ switch (C) {
671
+ case "xs":
672
+ return 5;
673
+ case "sm":
674
+ return 5.5;
675
+ case "md":
676
+ return 6;
677
+ case "lg":
678
+ return 7;
679
+ case "xl":
680
+ return 8;
681
+ }
682
+ })(), M = k === "rtl" ? `calc((var(--spacing-base) * ${h}) - ${T}px)` : `calc(${T}px - (var(--spacing-base) * ${h}))`;
683
+ return m ? `translateX(${M})` : "translateX(0)";
684
+ })
685
+ )
686
+ )
687
+ )
688
+ )
689
+ )
690
+ );
691
+ }, ye = P(ft), Yt = "line-md:star-alt-filled", Gt = "line-md:star-alt", Kt = (t) => {
692
+ const {
693
+ value: e,
694
+ onChange: s,
695
+ disabled: n,
696
+ max: r = 5,
697
+ fullColor: a = "yellow",
698
+ emptyColor: o = "neutral",
699
+ fullIcon: c = Yt,
700
+ emptyIcon: i = Gt,
701
+ size: l = "md",
702
+ onBlur: d,
703
+ rounding: f = 1
704
+ } = t, b = () => {
705
+ const m = p.get(f);
706
+ return m > 0 ? m : 1;
707
+ }, g = (m) => Math.min(Math.max(m, 0), p.get(r)), y = (m, T) => {
708
+ if (p.get(n ?? !1)) return;
709
+ const k = m.currentTarget.getBoundingClientRect(), h = (m.clientX - k.left) / k.width, M = T - 1 + h, F = b(), S = Math.ceil(M / F) * F, v = g(S);
710
+ s?.(v);
711
+ }, $ = (m) => {
712
+ if (p.get(n ?? !1)) return;
713
+ const T = b(), C = p.get(e) ?? 0;
714
+ let k;
715
+ switch (m.key) {
716
+ case "ArrowRight":
717
+ case "ArrowUp":
718
+ k = g(C + T);
719
+ break;
720
+ case "ArrowLeft":
721
+ case "ArrowDown":
722
+ k = g(C - T);
723
+ break;
724
+ case "Home":
725
+ k = 0;
726
+ break;
727
+ case "End":
728
+ k = p.get(r);
729
+ break;
730
+ default:
731
+ return;
732
+ }
733
+ m.preventDefault(), s?.(k);
734
+ }, w = p.map(l, (m) => `bc-icon--${m}`), x = ({ index: m, counter: T }) => _.span(
735
+ u.class("bc-rating-input__icon-container"),
736
+ u.class(w),
737
+ q(
738
+ {
739
+ icon: i,
740
+ size: l,
741
+ color: o,
742
+ tone: "soft"
743
+ },
744
+ u.class("bc-rating-input__icon-empty")
745
+ ),
746
+ _.span(
747
+ u.class("bc-rating-input__icon-clipper"),
748
+ u.class(w),
749
+ it.width(
750
+ p.map(e, (C) => {
751
+ const k = Math.floor(C);
752
+ return k > m ? "100%" : k < m ? "0%" : `${(C - m) * 100}%`;
753
+ })
754
+ ),
755
+ q(
756
+ {
757
+ icon: c,
758
+ size: l,
759
+ color: a,
760
+ tone: "soft"
761
+ },
762
+ u.class("bc-rating-input__icon-full")
763
+ )
764
+ ),
765
+ I.click(
766
+ dt((C) => y(C, T), {
767
+ preventDefault: !0,
768
+ stopPropagation: !0
769
+ })
770
+ )
771
+ );
772
+ return L({
773
+ baseContainer: !0,
774
+ growInput: !1,
775
+ focusableSelector: '[role="slider"]',
776
+ ...t,
777
+ input: _.div(
778
+ // Common input attributes (id, required, invalid, custom classes, etc.)
779
+ U(t),
780
+ u.class("bc-rating-input"),
781
+ // ARIA slider semantics
782
+ u.role("slider"),
783
+ u.tabindex(p.map(n ?? !1, (m) => m ? -1 : 0)),
784
+ N.disabled(n ?? !1),
785
+ N.valuemin(0),
786
+ N.valuemax(p.map(r, (m) => m ?? 0)),
787
+ N.valuenow(p.map(e, (m) => m ?? 0)),
788
+ N.valuetext(
789
+ D(
790
+ e,
791
+ r
792
+ )((m, T) => {
793
+ const C = m ?? 0, k = T ?? 0;
794
+ return `${String(C)} / ${String(k)}`;
795
+ })
796
+ ),
797
+ // Keyboard & focus handlers
798
+ I.keydown($),
799
+ d != null ? I.blur(d) : null,
800
+ pt(r, x)
801
+ )
802
+ });
803
+ }, $e = (t) => {
804
+ const { value: e, onChange: s, onInput: n, onBlur: r, after: a, disabled: o, ...c } = t, i = z(e, o, s ?? n);
805
+ return Kt({
806
+ ...c,
807
+ // Map null -> 0 for display so the control shows as empty when null
808
+ value: p.map(e, (l) => l ?? 0),
809
+ // Pass through numeric changes; clear button will call onChange(null)
810
+ onChange: s,
811
+ onInput: n,
812
+ onBlur: r,
813
+ after: a != null ? E(i, a) : i
814
+ });
815
+ }, Ie = (t) => {
816
+ const { value: e, step: s, min: n, max: r, onBlur: a, onChange: o, onInput: c } = t;
817
+ return L({
818
+ ...t,
819
+ // Make sure clicks anywhere focus the range input
820
+ focusableSelector: 'input[type="range"]',
821
+ input: _.input(
822
+ u.type("range"),
823
+ U(t),
824
+ u.min(n),
825
+ u.max(r),
826
+ u.step(s),
827
+ // Using value as number to keep it in sync
828
+ u.valueAsNumber(e),
829
+ u.class("bc-input bc-slider-input"),
830
+ a != null ? I.blur(V(a)) : A,
831
+ o != null ? I.change(V(o)) : A,
832
+ c != null ? I.input(V(c)) : A
833
+ )
834
+ });
835
+ }, Me = (t) => {
836
+ const { value: e, step: s, min: n, max: r, onBlur: a, onChange: o, onInput: c } = t, i = p.map(e, (d) => {
837
+ if (d != null) return d;
838
+ const f = n != null ? p.get(n) : void 0;
839
+ return typeof f == "number" ? f : 0;
840
+ }), l = z(
841
+ e,
842
+ t.disabled,
843
+ o ?? c
844
+ );
845
+ return L(
846
+ {
847
+ ...t,
848
+ focusableSelector: 'input[type="range"]',
849
+ after: l,
850
+ input: _.input(
851
+ u.type("range"),
852
+ U(t),
853
+ u.min(n),
854
+ u.max(r),
855
+ u.step(s),
856
+ u.valueAsNumber(i),
857
+ u.class("bc-input bc-slider-input"),
858
+ a != null ? I.blur(V(a)) : A,
859
+ o != null ? I.change(
860
+ V((d) => {
861
+ o(d);
862
+ })
863
+ ) : A,
864
+ c != null ? I.input(
865
+ V((d) => {
866
+ c(d);
867
+ })
868
+ ) : A
869
+ )
870
+ },
871
+ // Ensure container grows input naturally
872
+ E()
873
+ );
874
+ }, xe = P(mt);
875
+ class qt {
876
+ widgets = /* @__PURE__ */ new Map();
877
+ typeMapping = /* @__PURE__ */ new Map();
878
+ // JSON Schema type -> widget names
879
+ /**
880
+ * Register a custom widget
881
+ */
882
+ register(e, s) {
883
+ if (this.widgets.set(e, s), s.supportedTypes)
884
+ for (const n of s.supportedTypes)
885
+ this.typeMapping.has(n) || this.typeMapping.set(n, []), this.typeMapping.get(n).push(e), this.typeMapping.get(n).sort((r, a) => {
886
+ const o = this.widgets.get(r)?.priority || 0;
887
+ return (this.widgets.get(a)?.priority || 0) - o;
888
+ });
889
+ }
890
+ /**
891
+ * Unregister a widget
892
+ */
893
+ unregister(e) {
894
+ const s = this.widgets.get(e);
895
+ if (s && (this.widgets.delete(e), s.supportedTypes))
896
+ for (const n of s.supportedTypes) {
897
+ const r = this.typeMapping.get(n);
898
+ if (r) {
899
+ const a = r.indexOf(e);
900
+ a >= 0 && r.splice(a, 1), r.length === 0 && this.typeMapping.delete(n);
901
+ }
902
+ }
903
+ }
904
+ /**
905
+ * Get a registered widget
906
+ */
907
+ get(e) {
908
+ return this.widgets.get(e);
909
+ }
910
+ /**
911
+ * Get all registered widgets
912
+ */
913
+ getAll() {
914
+ return new Map(this.widgets);
915
+ }
916
+ /**
917
+ * Get widgets that support a specific JSON Schema type
918
+ */
919
+ getForType(e) {
920
+ return (this.typeMapping.get(e) || []).map((n) => this.widgets.get(n)).filter(Boolean);
921
+ }
922
+ /**
923
+ * Find the best widget for a schema context
924
+ */
925
+ findBestWidget(e) {
926
+ const s = Ct(e.definition, e.name);
927
+ if (s?.widget) {
928
+ const r = this.widgets.get(s.widget);
929
+ if (r)
930
+ return { name: s.widget, registration: r, resolved: s };
931
+ }
932
+ const n = [];
933
+ for (const [r, a] of this.widgets.entries())
934
+ if (a.matcher)
935
+ try {
936
+ a.matcher(e) && n.push({
937
+ name: r,
938
+ registration: a,
939
+ priority: a.priority ?? 0
940
+ });
941
+ } catch (o) {
942
+ console.warn(`Error in matcher for widget "${r}":`, o);
943
+ }
944
+ if (n.length > 0) {
945
+ n.sort((a, o) => o.priority - a.priority);
946
+ const r = n[0];
947
+ return {
948
+ name: r.name,
949
+ registration: r.registration,
950
+ resolved: { widget: r.name, source: "heuristics" }
951
+ };
952
+ }
953
+ if (typeof e.definition == "object" && e.definition.type) {
954
+ const r = Array.isArray(e.definition.type) ? e.definition.type[0] : e.definition.type, a = this.getForType(r);
955
+ if (a.length > 0) {
956
+ const o = this.typeMapping.get(r)[0];
957
+ return {
958
+ name: o,
959
+ registration: a[0],
960
+ resolved: { widget: o, source: "type-fallback" }
961
+ };
962
+ }
963
+ }
964
+ return null;
965
+ }
966
+ }
967
+ const _e = new qt();
968
+ function ke(t, e, s) {
969
+ return {
970
+ factory: e,
971
+ matcher: (n) => {
972
+ const a = n.definition["x:ui"];
973
+ return a === t || typeof a == "object" && a !== null && a.widget === t;
974
+ },
975
+ displayName: s?.displayName ?? t,
976
+ priority: s?.priority ?? 100,
977
+ // High priority for explicit matches
978
+ ...s
979
+ };
980
+ }
981
+ function Fe(t, e, s) {
982
+ return {
983
+ factory: e,
984
+ matcher: (n) => n.definition.format === t,
985
+ displayName: s?.displayName ?? `${t} widget`,
986
+ priority: s?.priority ?? 75,
987
+ ...s
988
+ };
989
+ }
990
+ function Ce(t, e, s, n) {
991
+ return {
992
+ factory: s,
993
+ matcher: (r) => {
994
+ const a = r.definition;
995
+ return a.type === t && a.format === e;
996
+ },
997
+ displayName: n?.displayName ?? `${t}:${e} widget`,
998
+ priority: n?.priority ?? 80,
999
+ ...n
1000
+ };
1001
+ }
1002
+ function Te(t) {
1003
+ const e = t?.logPrefix ?? "WIDGET_DIAG", s = t?.filterFn ?? (() => !0);
1004
+ return {
1005
+ factory: () => null,
1006
+ displayName: "Diagnostic Widget (never matches)",
1007
+ priority: -1e3,
1008
+ // Very low priority, should never actually match
1009
+ matcher: (n) => {
1010
+ if (!s(n)) return !1;
1011
+ const r = n.definition, a = {
1012
+ name: n.name,
1013
+ path: n.path.map(String),
1014
+ type: r?.type,
1015
+ hasRegistry: n.widgetRegistry !== void 0,
1016
+ definition: r
1017
+ };
1018
+ return console.log(
1019
+ `[${e}] name="${a.name ?? "ROOT"}" path=[${a.path.join(", ")}] type="${a.type ?? "unknown"}" hasRegistry=${a.hasRegistry}`
1020
+ ), t?.onProcess?.(a), !1;
1021
+ }
1022
+ };
1023
+ }
1024
+ export {
1025
+ j as A,
1026
+ le as B,
1027
+ ue as C,
1028
+ ie as D,
1029
+ pe as E,
1030
+ Rt as F,
1031
+ Nt as G,
1032
+ Dt as H,
1033
+ ut as I,
1034
+ Bt as J,
1035
+ J as K,
1036
+ Vt as L,
1037
+ G as M,
1038
+ fe as N,
1039
+ K as O,
1040
+ Et as P,
1041
+ Lt as Q,
1042
+ Kt as R,
1043
+ Ie as S,
1044
+ O as T,
1045
+ W as U,
1046
+ qt as W,
1047
+ be as a,
1048
+ ye as b,
1049
+ xe as c,
1050
+ me as d,
1051
+ ge as e,
1052
+ de as f,
1053
+ _e as g,
1054
+ he as h,
1055
+ Me as i,
1056
+ $e as j,
1057
+ we as k,
1058
+ ke as l,
1059
+ Fe as m,
1060
+ Ce as n,
1061
+ Te as o,
1062
+ at as p,
1063
+ Xt as q,
1064
+ ce as r,
1065
+ lt as s,
1066
+ vt as t,
1067
+ Ut as u,
1068
+ Ht as v,
1069
+ Tt as w,
1070
+ At as x,
1071
+ St as y,
1072
+ Q as z
1073
+ };