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