@tempots/beatui 0.20.0 → 0.22.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 (155) hide show
  1. package/README.md +37 -6
  2. package/dist/{2019-B4Mw3glM.js → 2019-BD_R8GCb.js} +2 -2
  3. package/dist/{2019-u0Cs1ZdE.cjs → 2019-DsAbc1I5.cjs} +1 -1
  4. package/dist/{2020-BvFyb4Gy.js → 2020-DZOE7XZH.js} +2 -2
  5. package/dist/{2020-BcwEHv2O.cjs → 2020-j6NLRYni.cjs} +1 -1
  6. package/dist/{ar-DyhaQaJU.cjs → ar-CYAprS9_.cjs} +1 -1
  7. package/dist/{ar-RkpJ2n6w.js → ar-DuYtkwHz.js} +1 -1
  8. package/dist/auth/index.cjs.js +1 -1
  9. package/dist/auth/index.es.js +232 -232
  10. package/dist/beatui.css +6840 -1
  11. package/dist/beatui.tailwind.css +6507 -0
  12. package/dist/colors-5Nwx_gSj.js +528 -0
  13. package/dist/colors-B8HoRLA_.cjs +1 -0
  14. package/dist/{de-BdSVR4Zm.js → de-BSxDfb1B.js} +1 -1
  15. package/dist/{de-CnZ4Ik2a.cjs → de-rQvC-Ydh.cjs} +1 -1
  16. package/dist/{es-ZKraCneL.cjs → es-BvmzhRc0.cjs} +1 -1
  17. package/dist/{es-B_Qn5EUy.js → es-CAIPTBfa.js} +1 -1
  18. package/dist/{fa-D2p_ch4Q.cjs → fa-B3IJgHCh.cjs} +1 -1
  19. package/dist/{fa-jBaLjqfG.js → fa-COTldXuh.js} +1 -1
  20. package/dist/{fr-CBeo42lQ.cjs → fr-C9hsLGOb.cjs} +1 -1
  21. package/dist/{fr-B0KaMM2j.js → fr-Djxzcm-x.js} +1 -1
  22. package/dist/{he-BmqEF3o-.cjs → he-CHrcixO3.cjs} +1 -1
  23. package/dist/{he-DjeYjcW7.js → he-C_CvtpO2.js} +1 -1
  24. package/dist/{hi-DxBQV0uz.js → hi-C47vc5OG.js} +1 -1
  25. package/dist/{hi-BAfIFl1n.cjs → hi-CpbCblie.cjs} +1 -1
  26. package/dist/{index-c-O5R5i2.js → index--c2sxg96.js} +2 -2
  27. package/dist/{index-NysVuvZA.js → index-2J0cohRF.js} +2 -2
  28. package/dist/{index-uR3OZ_8K.cjs → index-B8EM1O9d.cjs} +1 -1
  29. package/dist/{index-CpKAa22o.cjs → index-BHOzetMx.cjs} +1 -1
  30. package/dist/{index-C4xio93t.js → index-BIBYSE0O.js} +3 -3
  31. package/dist/{index-BInDdLXi.cjs → index-BIbSEVsf.cjs} +1 -1
  32. package/dist/{index-Jt6D3QJ7.cjs → index-BJZGXsLQ.cjs} +1 -1
  33. package/dist/{index-DdlxwtnE.cjs → index-BK8EFVAw.cjs} +1 -1
  34. package/dist/index-BLjWV-YV.cjs +8 -0
  35. package/dist/{index-CpMCZBAl.js → index-BNQL8moK.js} +2 -2
  36. package/dist/{index-cjtIcxwt.cjs → index-BUE3WeDh.cjs} +1 -1
  37. package/dist/{index-BX_AooS9.js → index-BXHmDsV_.js} +2 -2
  38. package/dist/{index-CdvplJG6.js → index-BiHxJSI9.js} +3 -3
  39. package/dist/index-Br70wXYb.cjs +1 -0
  40. package/dist/{index-MyVoESdk.js → index-BtAze4TI.js} +3 -3
  41. package/dist/{index-D7o5LhMm.cjs → index-C-UADaTN.cjs} +1 -1
  42. package/dist/{index-DOyppfix.cjs → index-C0yFCSoy.cjs} +1 -1
  43. package/dist/{index-C4jYy0NW.js → index-C4wKda5M.js} +2 -2
  44. package/dist/{index-CaOzAsWD.cjs → index-CBlls5Ux.cjs} +1 -1
  45. package/dist/{index-BnbEC2zq.js → index-CQcRWw-d.js} +2 -2
  46. package/dist/{index-CvRJPSEv.cjs → index-CSK499Fw.cjs} +1 -1
  47. package/dist/{index-DiV6JJiS.js → index-CW3QYddJ.js} +2 -2
  48. package/dist/{index-C5l1mFuD.js → index-C_T9Gzw8.js} +2 -2
  49. package/dist/{index-DlaVE6S2.cjs → index-CcB11LV-.cjs} +1 -1
  50. package/dist/{index-KcBlGDqr.cjs → index-CeyxEbJL.cjs} +1 -1
  51. package/dist/{index-Cs_PxtnZ.js → index-CjQ-nqcq.js} +1 -1
  52. package/dist/{index-DXUQTPON.cjs → index-CngY8bhO.cjs} +1 -1
  53. package/dist/{index-BnaafQ9o.js → index-CsPpB1Kw.js} +1 -1
  54. package/dist/{index-Dl-wY6fc.cjs → index-CtlfDEiP.cjs} +1 -1
  55. package/dist/{index-CaNnYmEs.js → index-D3y-KMW-.js} +4 -4
  56. package/dist/{index-DOlgncMG.js → index-D7a7hidA.js} +1230 -1216
  57. package/dist/{index-CJM_lW9n.cjs → index-DPHERztz.cjs} +1 -1
  58. package/dist/{index-9UO7Pd64.cjs → index-DS0bdfOa.cjs} +1 -1
  59. package/dist/index-DVdM4Oz7.js +420 -0
  60. package/dist/{index-D5nWhHZv.js → index-DtpMK8Ak.js} +2 -2
  61. package/dist/{index-DhJIuRg9.js → index-Du_-zpYu.js} +4 -4
  62. package/dist/{index-fnMeddEM.js → index-KlPMACee.js} +2 -2
  63. package/dist/{index-DC5Cn-TM.js → index-OUX19p46.js} +2 -2
  64. package/dist/{index-CDYYXcsk.cjs → index-SP-G4Erl.cjs} +1 -1
  65. package/dist/{index-CpB78PPQ.cjs → index-YbpU8b-b.cjs} +1 -1
  66. package/dist/{index-DCpnqWRN.js → index-_0aF8UPX.js} +2 -2
  67. package/dist/{index-BWiQR9j3.cjs → index-c5HMVa4V.cjs} +1 -1
  68. package/dist/{index-BIUeLQJ1.js → index-h82qauh2.js} +4 -4
  69. package/dist/{index-ClvbjqJL.js → index-jLIz3LSI.js} +2 -2
  70. package/dist/{index-Blq-MoAk.cjs → index-jr-7RW3y.cjs} +1 -1
  71. package/dist/{index-B001qopB.js → index-m-1yJOxv.js} +3 -3
  72. package/dist/{index-4NoQLiJo.cjs → index-o4bA2Ymm.cjs} +1 -1
  73. package/dist/{index-RGCDszX8.cjs → index-zcRhAq4N.cjs} +1 -1
  74. package/dist/index.cjs.js +4 -143
  75. package/dist/index.es.js +2489 -3357
  76. package/dist/{it-CzKrFTFY.cjs → it-iA1CUA-2.cjs} +1 -1
  77. package/dist/{it-B4qZsicu.js → it-l8u4xqsP.js} +1 -1
  78. package/dist/{ja-i_9MZ1j0.cjs → ja-CRKtLvpo.cjs} +1 -1
  79. package/dist/{ja-BnCSmhkg.js → ja-Dr2Azv8X.js} +1 -1
  80. package/dist/json-schema/index.cjs.js +1 -1
  81. package/dist/json-schema/index.es.js +1 -1
  82. package/dist/{ko-D_gGkjrC.js → ko-C97MbNN9.js} +1 -1
  83. package/dist/{ko-CF9il-Az.cjs → ko-DAqjjbor.cjs} +1 -1
  84. package/dist/markdown/index.cjs.js +2 -2
  85. package/dist/markdown/index.es.js +34 -34
  86. package/dist/markdown.css +162 -0
  87. package/dist/milkdown/index.cjs.js +1 -1
  88. package/dist/milkdown/index.es.js +1 -1
  89. package/dist/{milkdown-input-CYme9OBn.js → milkdown-input-Dp-upGqQ.js} +26 -26
  90. package/dist/{milkdown-input-KjtVqDzi.cjs → milkdown-input-EMBZNdma.cjs} +2 -2
  91. package/dist/milkdown-url-DgMTahqt.js +4 -0
  92. package/dist/milkdown-url-DjKYrEOH.cjs +1 -0
  93. package/dist/milkdown.css +21 -10
  94. package/dist/{modal-BItfEmu0.js → modal-at2TcO_O.js} +85 -85
  95. package/dist/{modal-B-f3LBKr.cjs → modal-hr4K3edu.cjs} +1 -1
  96. package/dist/{nl-CsLCWUFF.js → nl-BnDPAHZz.js} +1 -1
  97. package/dist/{nl-DfWlqR6T.cjs → nl-CCa2fPh7.cjs} +1 -1
  98. package/dist/notice-CplKL-zm.cjs +1 -0
  99. package/dist/notice-DhynzVip.js +2467 -0
  100. package/dist/{pl-wK2sgv7l.cjs → pl-BVuQd0i3.cjs} +1 -1
  101. package/dist/{pl-Bsmj1KbZ.js → pl-DYEVmpx5.js} +1 -1
  102. package/dist/{pt-DAQIuOPW.cjs → pt-BFGThC8F.cjs} +1 -1
  103. package/dist/{pt-BR_NuRJS.js → pt-C-cIHGoh.js} +1 -1
  104. package/dist/{ru-BnoiCxrw.cjs → ru-M4WO0h1a.cjs} +1 -1
  105. package/dist/{ru-CiQ_qKD_.js → ru-n2tT3Gv-.js} +1 -1
  106. package/dist/styles-url-CIhMtnm4.js +4 -0
  107. package/dist/styles-url-SkuBc_7K.cjs +1 -0
  108. package/dist/tailwind/index.cjs.js +1 -0
  109. package/dist/tailwind/index.es.js +5 -0
  110. package/dist/tailwind/preset.cjs.js +1 -0
  111. package/dist/tailwind/preset.es.js +6 -0
  112. package/dist/tailwind/vite-plugin.cjs.js +26 -0
  113. package/dist/tailwind/vite-plugin.es.js +297 -0
  114. package/dist/{tr-Q9xP1nE4.js → tr-CFUAqbmS.js} +1 -1
  115. package/dist/{tr-Bme5PfaE.cjs → tr-KxY4CbD3.cjs} +1 -1
  116. package/dist/{translations-ClgoCEFC.js → translations-924E7r4Q.js} +756 -582
  117. package/dist/translations-BtAHDMLA.cjs +2 -0
  118. package/dist/{translations-D4hFMU4P.js → translations-DGCYRUSw.js} +1 -1
  119. package/dist/{translations-lnK_6RdU.cjs → translations-Do79R-x4.cjs} +1 -1
  120. package/dist/types/components/button/button.d.ts +3 -1
  121. package/dist/types/components/data/icon.d.ts +3 -1
  122. package/dist/types/components/form/input/input-wrapper.d.ts +2 -1
  123. package/dist/types/components/form/use-form.d.ts +3 -3
  124. package/dist/types/components/navigation/flyout.d.ts +2 -0
  125. package/dist/types/components/navigation/link/button-link.d.ts +7 -3
  126. package/dist/types/components/navigation/link/link.d.ts +7 -2
  127. package/dist/types/components/navigation/link/navigation-link.d.ts +5 -5
  128. package/dist/types/components/navigation/link/navigation-options.d.ts +5 -0
  129. package/dist/types/components/navigation/sidebar/sidebar-link.d.ts +5 -0
  130. package/dist/types/components/navigation/tabs/tabs.d.ts +7 -7
  131. package/dist/types/components/theme/style-utils.d.ts +16 -0
  132. package/dist/types/index.d.ts +1 -0
  133. package/dist/types/markdown/index.d.ts +1 -1
  134. package/dist/types/styles/base.d.ts +2 -0
  135. package/dist/types/tailwind/index.d.ts +2 -0
  136. package/dist/types/tailwind/preset.d.ts +37 -0
  137. package/dist/types/tailwind/vite-plugin.d.ts +16 -0
  138. package/dist/types/temporal/with-temporal.d.ts +5 -1
  139. package/dist/types/tokens/colors.d.ts +13 -3
  140. package/dist/types/tokens/index.d.ts +3 -0
  141. package/dist/{ur-CGTjSoJt.js → ur-B7kT0PwV.js} +1 -1
  142. package/dist/{ur-B4b39hNV.cjs → ur-GeXcd9eA.cjs} +1 -1
  143. package/dist/{vi-BF3HTFU9.js → vi-CA85io1z.js} +1 -1
  144. package/dist/{vi-CSpW181L.cjs → vi-DYvrvqim.cjs} +1 -1
  145. package/dist/{zh-PeL8FN2c.cjs → zh-EIWIyzbZ.cjs} +1 -1
  146. package/dist/{zh-BreM8U2w.js → zh-cLh5uTFh.js} +1 -1
  147. package/package.json +27 -3
  148. package/dist/index-JHbFZFZF.cjs +0 -8
  149. package/dist/milkdown-url-BKbqhNCO.js +0 -4
  150. package/dist/milkdown-url-BLgXPmZR.cjs +0 -1
  151. package/dist/notice-B7JqE59s.cjs +0 -1
  152. package/dist/notice-CmmpobJd.js +0 -2415
  153. package/dist/styles-url-B-d6aezR.cjs +0 -1
  154. package/dist/styles-url-B4WGMvfi.js +0 -4
  155. package/dist/translations-DRBh70w8.cjs +0 -2
@@ -0,0 +1,2467 @@
1
+ import { Use as O, Value as i, prop as K, html as $, attr as a, on as k, WithElement as ie, OnDispose as Z, aria as N, bind as $e, computedOf as B, style as fe, When as E, NotEmpty as Ge, Fragment as L, ForEach as de, svg as Ae, svgAttr as ge, Empty as S, emitValue as j, coalesce as Qe, Ensure as Pe, OneOfType as Je, Repeat as Oe, signal as Fe, input as ee, emitValueAsNullableDate as Ke, emitValueAsNullableDateTime as et, emitValueAsNumber as G, emit as tt, Task as Be, Unless as nt } from "@tempots/dom";
2
+ import { f as st } from "./colors-5Nwx_gSj.js";
3
+ import { g as rt } from "./timer-CQlK5LhW.js";
4
+ import { ElementRect as je, AutoSelect as lt } from "@tempots/ui";
5
+ import { B as W, e as P, f as at, C as me, I as z, g as H, h as ot, i as ct, j as He, k as ye, T as it, E as ut, P as pt, S as ne, s as ft, L as dt, l as mt, a as be, n as ve, O as ae, o as Ve } from "./translations-924E7r4Q.js";
6
+ class ht extends Error {
7
+ constructor(t = "Missing implementation") {
8
+ super(t), this.name = "MissingImplementationError";
9
+ }
10
+ }
11
+ const pn = (e) => gt(e).split("_").join(" "), gt = (e) => (e = e.replace(/::/g, "/"), e = e.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2"), e = e.replace(/([a-z\d])([A-Z])/g, "$1_$2"), e = e.replace(/-/g, "_"), e.toLowerCase()), fn = (e) => e.substring(0, 1).toUpperCase() + e.substring(1), bt = (e) => {
12
+ if (typeof Buffer < "u")
13
+ return Buffer.from(e, "base64").toString("utf8");
14
+ if (typeof atob < "u")
15
+ return atob(e);
16
+ throw new ht(
17
+ "No implementation found for base64 decoding"
18
+ );
19
+ };
20
+ function Le({
21
+ onChange: e,
22
+ value: t,
23
+ accept: r = "*/*",
24
+ enableClick: n = !0,
25
+ content: s,
26
+ disabled: o = !1,
27
+ allowMultiple: l
28
+ }) {
29
+ return O(W, (u) => {
30
+ const c = i.deriveProp(t ?? []), f = K(!1), h = (g) => {
31
+ g.preventDefault(), g.stopPropagation(), f.value = !0;
32
+ }, d = (g) => {
33
+ g.preventDefault(), g.stopPropagation(), (!g.currentTarget || !g.currentTarget.contains(g.relatedTarget)) && (f.value = !1);
34
+ }, b = (g) => {
35
+ g.preventDefault(), g.stopPropagation(), f.value = !1;
36
+ const v = Array.from(g.dataTransfer?.files || []);
37
+ v.length > 0 && (c.value = v, e(v));
38
+ }, p = (g) => {
39
+ i.get(n) && g.currentTarget.querySelector(
40
+ 'input[type="file"]'
41
+ )?.click();
42
+ };
43
+ let m = null;
44
+ const x = () => {
45
+ if (m == null) return;
46
+ const g = Array.from(m.files ?? []);
47
+ g.length > 0 && (c.value = g, e(g)), m.value = "";
48
+ }, _ = (g) => {
49
+ i.get(n) && (g.key === "Enter" || g.key === " ") && (g.preventDefault(), p(g));
50
+ };
51
+ return $.div(
52
+ a.role("button"),
53
+ a.tabindex(
54
+ i.map(n, (g) => g ? 0 : -1)
55
+ ),
56
+ a.style("position: relative;"),
57
+ k.dragover(h),
58
+ k.dragleave(d),
59
+ k.drop(b),
60
+ k.click(p),
61
+ k.keydown(_),
62
+ // Hidden file input
63
+ $.input(
64
+ a.type("file"),
65
+ a.disabled(o),
66
+ a.accept(r),
67
+ a.multiple(l),
68
+ a.style(
69
+ "position: absolute; left: -9999px; opacity: 0; pointer-events: none;"
70
+ ),
71
+ k.change(x),
72
+ ie((g) => (m = g, Z(
73
+ c.on((v) => {
74
+ const T = globalThis.DataTransfer;
75
+ if (T != null) {
76
+ const C = new T();
77
+ v.forEach((y) => C.items.add(y)), g.files = C.files;
78
+ }
79
+ })
80
+ )))
81
+ ),
82
+ // Screen reader instructions
83
+ N.label($e(u.$.dropZoneInstructions)(n)),
84
+ // Content
85
+ s({ files: c, clear: () => c.value = [], change: c.set })
86
+ );
87
+ });
88
+ }
89
+ function vt(e, t) {
90
+ return e.length === t.length && e.every((r, n) => r === t[n]);
91
+ }
92
+ function xt(e, t) {
93
+ const r = ["bc-segmented-control", `bc-segmented-control--size-${e}`];
94
+ return t && r.push("bc-segmented-control--disabled"), r.join(" ");
95
+ }
96
+ function dn({
97
+ options: e,
98
+ value: t,
99
+ onChange: r,
100
+ size: n = "md",
101
+ disabled: s = !1
102
+ }, ...o) {
103
+ const l = st(e).map(([u, c]) => ({
104
+ key: u,
105
+ label: c
106
+ }));
107
+ return ie(() => {
108
+ const u = Object.fromEntries(
109
+ l.map((f, h) => [f.key, h])
110
+ ), c = K(
111
+ l.map(() => ({ left: 0, width: 0 })),
112
+ vt
113
+ );
114
+ return $.div(
115
+ a.class(
116
+ B(
117
+ n,
118
+ s
119
+ )(
120
+ (f, h) => xt(f ?? "md", h ?? !1)
121
+ )
122
+ ),
123
+ $.div(
124
+ a.class("bc-segmented-control__container"),
125
+ $.div(
126
+ a.class("bc-segmented-control__indicator"),
127
+ fe.width(
128
+ B(
129
+ t,
130
+ c
131
+ )((f, h) => {
132
+ const { width: d } = h[u[f] ?? 0];
133
+ return `${d}px`;
134
+ })
135
+ ),
136
+ fe.left(
137
+ B(
138
+ t,
139
+ c
140
+ )((f, h) => {
141
+ const { left: d } = h[u[f] ?? 0];
142
+ return `${d}px`;
143
+ })
144
+ )
145
+ ),
146
+ // clickable buttons
147
+ l.map(({ label: f, key: h }, d) => $.button(
148
+ k.click((b) => {
149
+ b.preventDefault(), i.get(s) || r?.(h);
150
+ }),
151
+ a.disabled(s),
152
+ a.class("bc-segmented-control__segment"),
153
+ a.class(
154
+ i.map(t, (b) => b === h ? "bc-segmented-control__segment--active" : "bc-segmented-control__segment--inactive")
155
+ ),
156
+ je((b) => {
157
+ function p() {
158
+ c.update((x) => {
159
+ const _ = [...x];
160
+ return _[d] = {
161
+ width: b.value.width,
162
+ left: b.value.localLeft
163
+ }, _;
164
+ });
165
+ }
166
+ const m = rt(p);
167
+ return Z(m, b.on(p));
168
+ }),
169
+ f
170
+ ))
171
+ ),
172
+ ...o
173
+ );
174
+ });
175
+ }
176
+ function wt(e) {
177
+ const t = e.type.toLowerCase();
178
+ return t.startsWith("image/") && (t.includes("jpeg") || t.includes("jpg") || t.includes("png") || t.includes("gif") || t.includes("webp") || t.includes("svg"));
179
+ }
180
+ function _t(e) {
181
+ const t = e.type.toLowerCase();
182
+ return t.startsWith("image/") ? "vscode-icons:file-type-image" : t.startsWith("video/") ? "vscode-icons:file-type-video" : t.startsWith("audio/") ? "vscode-icons:file-type-audio" : t.includes("pdf") ? "vscode-icons:file-type-pdf2" : t.includes("word") || t.includes("document") ? "vscode-icons:file-type-word" : t.includes("excel") || t.includes("spreadsheet") ? "vscode-icons:file-type-excel" : t.includes("powerpoint") || t.includes("presentation") ? "vscode-icons:file-type-powerpoint" : t.includes("zip") || t.includes("archive") ? "vscode-icons:file-type-zip" : t.includes("text") ? "vscode-icons:file-type-text" : t.includes("json") ? "vscode-icons:file-type-json-official" : t.includes("csv") ? "vscode-icons:file-type-csv" : t.includes("xml") ? "vscode-icons:file-type-xml" : t.includes("yaml") ? "vscode-icons:file-type-yaml-official" : "vscode-icons:file-type-binary";
183
+ }
184
+ function Ee(e) {
185
+ return E(
186
+ e.map(wt),
187
+ () => {
188
+ const t = K(null);
189
+ return e.on((r) => {
190
+ t.value && URL.revokeObjectURL(t.value);
191
+ const n = URL.createObjectURL(r);
192
+ t.value = n;
193
+ }), $.div(
194
+ a.class("bc-file-input__thumbnail-container"),
195
+ $.img(
196
+ a.src(t),
197
+ a.alt(e.map((r) => r.name)),
198
+ a.class("bc-file-input__thumbnail"),
199
+ Z(() => {
200
+ t.value && URL.revokeObjectURL(t.value);
201
+ })
202
+ )
203
+ );
204
+ },
205
+ () => z({ icon: e.map(_t) })
206
+ );
207
+ }
208
+ const $t = (e, ...t) => {
209
+ const {
210
+ value: r = K([]),
211
+ accept: n = "*/*",
212
+ maxFiles: s,
213
+ maxFileSize: o,
214
+ onChange: l,
215
+ onBlur: u,
216
+ disabled: c,
217
+ hasError: f,
218
+ mode: h = "default",
219
+ showFileList: d = !0,
220
+ ...b
221
+ } = e, p = r, m = i.map(h, (C) => C === "compact"), x = (C) => {
222
+ let y = C;
223
+ if (s != null) {
224
+ const w = i.get(s);
225
+ y = y.slice(0, w);
226
+ }
227
+ if (o) {
228
+ const w = i.get(o);
229
+ y = y.filter((I) => I.size <= w);
230
+ }
231
+ l?.(y);
232
+ }, _ = (C) => {
233
+ const w = p.value.filter((I, M) => M !== C);
234
+ l?.(w);
235
+ }, g = () => {
236
+ l?.([]);
237
+ }, v = ({
238
+ files: C,
239
+ clear: y,
240
+ change: w
241
+ }) => O(
242
+ W,
243
+ (I) => $.div(
244
+ a.class("bc-file-input__drop-zone"),
245
+ $.div(
246
+ a.class(
247
+ "bc-file-input__drop-zone-content bc-file-input__drop-zone-content--empty"
248
+ ),
249
+ z({ icon: "mdi:cloud-upload-outline", size: "xl" }),
250
+ $.div(
251
+ a.class("bc-file-input__drop-zone-text"),
252
+ $e(I.$.filesInputInstructions)(
253
+ s,
254
+ o,
255
+ I.$.fileSizeUnits.value
256
+ )
257
+ )
258
+ )
259
+ )
260
+ ), T = ({
261
+ files: C
262
+ }) => O(
263
+ W,
264
+ (y) => $.div(
265
+ a.class("bc-file-input__compact-input"),
266
+ E(
267
+ C.map((w) => w.length > 0),
268
+ () => $.span(
269
+ a.class("bc-file-input__compact-value"),
270
+ de(
271
+ C,
272
+ (w) => $.span(
273
+ a.class("bc-file-input__compact-value-item"),
274
+ Ee(w),
275
+ $.span(
276
+ a.class("bc-file-input__compact-value-item-name"),
277
+ w.$.name
278
+ )
279
+ )
280
+ )
281
+ ),
282
+ () => $.span(
283
+ a.class("bc-file-input__compact-placeholder"),
284
+ z({ icon: "mdi:cloud-upload-outline", size: "sm" }),
285
+ " ",
286
+ $e(y.$.filesInputInstructions)(
287
+ s,
288
+ o,
289
+ y.$.fileSizeUnits.value
290
+ )
291
+ )
292
+ )
293
+ )
294
+ );
295
+ return O(
296
+ W,
297
+ (C) => P(
298
+ {
299
+ baseContainer: i.map(m, (y) => !y),
300
+ disabled: c,
301
+ hasError: f,
302
+ after: E(
303
+ m,
304
+ () => E(
305
+ p.map(({ length: y }) => y > 0),
306
+ () => me(
307
+ {
308
+ size: "sm",
309
+ label: C.$.clearAllFiles,
310
+ disabled: c,
311
+ onClick: g
312
+ },
313
+ a.class("bc-file-input__compact-clear")
314
+ )
315
+ )
316
+ ),
317
+ ...b,
318
+ input: E(
319
+ m,
320
+ () => $.div(
321
+ a.class("bc-file-input bc-file-input--compact"),
322
+ Le({
323
+ value: p,
324
+ accept: n,
325
+ enableClick: !0,
326
+ allowMultiple: i.map(s ?? 1 / 0, (y) => y > 1),
327
+ disabled: c,
328
+ onChange: x,
329
+ content: T
330
+ })
331
+ ),
332
+ () => $.div(
333
+ a.class("bc-file-input"),
334
+ Le({
335
+ value: p,
336
+ accept: n,
337
+ enableClick: !0,
338
+ allowMultiple: i.map(s ?? 1 / 0, (y) => y > 1),
339
+ disabled: c,
340
+ onChange: x,
341
+ content: v
342
+ }),
343
+ E(
344
+ d,
345
+ () => Ge(
346
+ p,
347
+ () => L(
348
+ $.div(
349
+ a.class("bc-file-input__file-list"),
350
+ de(p, (y, w) => {
351
+ const I = w.index;
352
+ return $.div(
353
+ a.class("bc-file-input__file-item"),
354
+ $.div(
355
+ a.class("bc-file-input__file-icon"),
356
+ Ee(y)
357
+ ),
358
+ $.div(
359
+ a.class("bc-file-input__file-info"),
360
+ $.div(
361
+ a.class("bc-file-input__file-name"),
362
+ a.title(y.$.name),
363
+ y.$.name
364
+ ),
365
+ $.div(
366
+ a.class("bc-file-input__file-meta"),
367
+ B(
368
+ y.$.size,
369
+ C.$.fileSizeUnits
370
+ )(
371
+ (M, A) => at(M, { units: A })
372
+ ),
373
+ " • ",
374
+ B(
375
+ y.$.type,
376
+ C.$.unknownType
377
+ )((M, A) => M || A)
378
+ )
379
+ ),
380
+ me(
381
+ {
382
+ size: "sm",
383
+ label: C.$.removeFile,
384
+ disabled: c,
385
+ onClick: () => _(I)
386
+ },
387
+ a.class("bc-file-input__remove-button")
388
+ )
389
+ );
390
+ })
391
+ ),
392
+ E(
393
+ p.map(({ length: y }) => y > 1),
394
+ () => $.div(
395
+ a.class(
396
+ "bc-file-input__clear-all-button-container"
397
+ ),
398
+ $.button(
399
+ a.type("button"),
400
+ a.class("bc-file-input__clear-all-button"),
401
+ a.disabled(c),
402
+ C.$.clearAllFiles,
403
+ k.click((y) => {
404
+ y.preventDefault(), y.stopPropagation(), g();
405
+ })
406
+ )
407
+ )
408
+ )
409
+ )
410
+ )
411
+ )
412
+ )
413
+ )
414
+ },
415
+ ...t
416
+ )
417
+ );
418
+ };
419
+ async function yt(e) {
420
+ return new Promise((t, r) => {
421
+ const n = new FileReader();
422
+ n.readAsDataURL(e), n.onload = () => {
423
+ const s = n.result;
424
+ t(s.split(",")[1]);
425
+ }, n.onerror = (s) => r(s);
426
+ });
427
+ }
428
+ function It(e) {
429
+ return Promise.all(e.map(yt));
430
+ }
431
+ function kt(e) {
432
+ if (e.length >= 4) {
433
+ if (e[0] === 137 && e[1] === 80 && e[2] === 78 && e[3] === 71)
434
+ return "image/png";
435
+ if (e[0] === 255 && e[1] === 216) return "image/jpeg";
436
+ if (e[0] === 71 && e[1] === 73 && e[2] === 70)
437
+ return "image/gif";
438
+ if (e[0] === 82 && e[1] === 73 && e[2] === 70 && e[3] === 70 && e.length >= 12 && e[8] === 87 && e[9] === 69 && e[10] === 66 && e[11] === 80)
439
+ return "image/webp";
440
+ }
441
+ try {
442
+ if (new TextDecoder("utf-8").decode(e.slice(0, 256)).includes("<svg")) return "image/svg+xml";
443
+ } catch {
444
+ }
445
+ return "application/octet-stream";
446
+ }
447
+ function Ct(e) {
448
+ const t = bt(e ?? ""), r = t.length, n = new Uint8Array(r);
449
+ for (let s = 0; s < r; s++) n[s] = t.charCodeAt(s);
450
+ return n;
451
+ }
452
+ function Mt(e) {
453
+ const {
454
+ value: t,
455
+ onChange: r,
456
+ onInput: n,
457
+ ...s
458
+ } = e, o = /* @__PURE__ */ new Map(), l = i.toSignal(t).map((h) => h.map((d, b) => {
459
+ const p = o.get(d), m = Ct(d ?? ""), x = p?.type || kt(m), _ = p?.name ?? `file-${b}`, g = m.buffer.slice(
460
+ m.byteOffset,
461
+ m.byteOffset + m.byteLength
462
+ ), v = new Blob([g], { type: x });
463
+ return new File([v], _, { type: x });
464
+ })), u = (h) => (d) => {
465
+ h && It(d).then((b) => {
466
+ for (const [p, m] of b.entries())
467
+ o.set(m, { name: d[p].name, type: d[p].type });
468
+ h(b);
469
+ });
470
+ }, c = u(r), f = u(n);
471
+ return $t({
472
+ ...s,
473
+ value: l,
474
+ onChange: c,
475
+ onInput: f
476
+ });
477
+ }
478
+ function mn(e) {
479
+ const {
480
+ value: t,
481
+ onInput: r,
482
+ onChange: n,
483
+ ...s
484
+ } = e;
485
+ return Mt({
486
+ ...s,
487
+ maxFiles: 1,
488
+ value: i.map(t, (o) => o == null ? [] : [o]),
489
+ onChange: (o) => {
490
+ n?.(o[0]);
491
+ },
492
+ onInput: (o) => {
493
+ r?.(o[0]);
494
+ }
495
+ });
496
+ }
497
+ function Ie(e) {
498
+ const t = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);
499
+ return t ? [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)] : [0, 0, 0];
500
+ }
501
+ function ke(e, t, r) {
502
+ const n = (s) => s.toString(16).padStart(2, "0");
503
+ return `#${n(Math.max(0, Math.min(255, e)))}${n(
504
+ Math.max(0, Math.min(255, t))
505
+ )}${n(Math.max(0, Math.min(255, r)))}`;
506
+ }
507
+ function Tt(e) {
508
+ if (!e) return [0, 0, 0, 1];
509
+ const r = e.trim().match(
510
+ /^#?([a-fA-F0-9]{3,4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$/
511
+ );
512
+ if (r) {
513
+ const d = r[1];
514
+ if (d.length === 8) {
515
+ const b = parseInt(d.slice(0, 2), 16), p = parseInt(d.slice(2, 4), 16), m = parseInt(d.slice(4, 6), 16), x = parseInt(d.slice(6, 8), 16) / 255;
516
+ return [b, p, m, x];
517
+ }
518
+ if (d.length === 6)
519
+ return [
520
+ parseInt(d.slice(0, 2), 16),
521
+ parseInt(d.slice(2, 4), 16),
522
+ parseInt(d.slice(4, 6), 16),
523
+ 1
524
+ ];
525
+ if (d.length === 4) {
526
+ const b = parseInt(d[0] + d[0], 16), p = parseInt(d[1] + d[1], 16), m = parseInt(d[2] + d[2], 16), x = parseInt(d[3] + d[3], 16) / 255;
527
+ return [b, p, m, x];
528
+ }
529
+ if (d.length === 3) {
530
+ const b = parseInt(d[0] + d[0], 16), p = parseInt(d[1] + d[1], 16), m = parseInt(d[2] + d[2], 16);
531
+ return [b, p, m, 1];
532
+ }
533
+ }
534
+ const n = e.match(
535
+ /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0|1|0?\.\d+)\s*\)$/i
536
+ );
537
+ if (n)
538
+ return [
539
+ parseInt(n[1], 10),
540
+ parseInt(n[2], 10),
541
+ parseInt(n[3], 10),
542
+ parseFloat(n[4])
543
+ ];
544
+ const s = e.match(
545
+ /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i
546
+ );
547
+ if (s)
548
+ return [parseInt(s[1], 10), parseInt(s[2], 10), parseInt(s[3], 10), 1];
549
+ const o = e.match(
550
+ /^hsla?\(\s*([+-]?[\d.]+)(?:deg)?\s*[ ,]?\s*([\d.]+)%\s*[ ,]?\s*([\d.]+)%\s*(?:[/,]\s*(\d?(?:\.\d+)?))?\s*\)$/i
551
+ );
552
+ if (o) {
553
+ const d = parseFloat(o[1]), b = parseFloat(o[2]), p = parseFloat(o[3]), m = o[4] != null ? parseFloat(o[4]) : 1, [x, _, g] = We(d, b / 100, p / 100);
554
+ return [x, _, g, m];
555
+ }
556
+ const l = e.match(
557
+ /^hwb\(\s*([+-]?[\d.]+)(?:deg)?\s*[, ]\s*([\d.]+)%\s*[, ]\s*([\d.]+)%\s*(?:[/]\s*(\d?(?:\.\d+)?))?\s*\)$/i
558
+ );
559
+ if (l) {
560
+ const d = parseFloat(l[1]), b = parseFloat(l[2]) / 100, p = parseFloat(l[3]) / 100, m = l[4] != null ? parseFloat(l[4]) : 1, [x, _, g] = At(d, b, p);
561
+ return [x, _, g, m];
562
+ }
563
+ const u = e.match(
564
+ /^oklch\(\s*([+-]?[\d.]+%?)\s+([\d.]+)\s+([+-]?[\d.]+)(?:deg)?(?:\s*\/\s*(\d?(?:\.\d+)?))?\s*\)$/i
565
+ );
566
+ if (u) {
567
+ const d = u[1], b = parseFloat(u[2]), p = parseFloat(u[3]), m = u[4] != null ? parseFloat(u[4]) : 1, x = d.endsWith("%") ? Math.max(0, Math.min(1, parseFloat(d) / 100)) : Math.max(0, Math.min(1, parseFloat(d))), [_, g, v] = Bt(x, b, p);
568
+ return [_, g, v, m];
569
+ }
570
+ const [c, f, h] = Ie(e);
571
+ return [c, f, h, 1];
572
+ }
573
+ const Dt = (e, t, r, n) => `rgba(${Math.round(e)}, ${Math.round(t)}, ${Math.round(r)}, ${Math.max(
574
+ 0,
575
+ Math.min(1, Math.round(n * 100) / 100)
576
+ )})`;
577
+ function St(e) {
578
+ let t = e + 1831565813;
579
+ return function() {
580
+ return t = Math.imul(t ^ t >>> 15, t | 1), t ^= t + Math.imul(t ^ t >>> 7, t | 61), ((t ^ t >>> 14) >>> 0) / 4294967296;
581
+ };
582
+ }
583
+ function We(e, t, r) {
584
+ e = (e % 360 + 360) % 360;
585
+ const n = (1 - Math.abs(2 * r - 1)) * t, s = n * (1 - Math.abs(e / 60 % 2 - 1)), o = r - n / 2;
586
+ let l = 0, u = 0, c = 0;
587
+ return 0 <= e && e < 60 ? [l, u, c] = [n, s, 0] : 60 <= e && e < 120 ? [l, u, c] = [s, n, 0] : 120 <= e && e < 180 ? [l, u, c] = [0, n, s] : 180 <= e && e < 240 ? [l, u, c] = [0, s, n] : 240 <= e && e < 300 ? [l, u, c] = [s, 0, n] : [l, u, c] = [n, 0, s], [
588
+ Math.round((l + o) * 255),
589
+ Math.round((u + o) * 255),
590
+ Math.round((c + o) * 255)
591
+ ];
592
+ }
593
+ function At(e, t, r) {
594
+ e = (e % 360 + 360) % 360;
595
+ const n = t + r;
596
+ n > 1 && (t /= n, r /= n);
597
+ const [s, o, l] = We(e, 1, 0.5).map((d) => d / 255), u = 1 - t - r, c = s * u + t, f = o * u + t, h = l * u + t;
598
+ return [Math.round(c * 255), Math.round(f * 255), Math.round(h * 255)];
599
+ }
600
+ function Ce(e, t, r) {
601
+ e /= 255, t /= 255, r /= 255;
602
+ const n = Math.max(e, t, r), s = Math.min(e, t, r);
603
+ let o = 0, l = 0;
604
+ const u = (n + s) / 2, c = n - s;
605
+ if (c !== 0) {
606
+ switch (l = u > 0.5 ? c / (2 - n - s) : c / (n + s), n) {
607
+ case e:
608
+ o = (t - r) / c + (t < r ? 6 : 0);
609
+ break;
610
+ case t:
611
+ o = (r - e) / c + 2;
612
+ break;
613
+ default:
614
+ o = (e - t) / c + 4;
615
+ }
616
+ o *= 60;
617
+ }
618
+ return [Math.round(o), Math.round(l * 100), Math.round(u * 100)];
619
+ }
620
+ function Ft(e, t, r) {
621
+ const [n] = Ce(e, t, r), s = e / 255, o = t / 255, l = r / 255, u = Math.min(s, o, l), c = 1 - Math.max(s, o, l);
622
+ return [n, Math.round(u * 100), Math.round(c * 100)];
623
+ }
624
+ function xe(e) {
625
+ const t = e / 255;
626
+ return t <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4);
627
+ }
628
+ function we(e) {
629
+ const t = e <= 31308e-7 ? 12.92 * e : 1.055 * Math.pow(e, 0.4166666666666667) - 0.055;
630
+ return Math.round(Math.max(0, Math.min(1, t)) * 255);
631
+ }
632
+ function Bt(e, t, r) {
633
+ const n = r * Math.PI / 180, s = Math.cos(n) * t, o = Math.sin(n) * t, l = e + 0.3963377774 * s + 0.2158037573 * o, u = e - 0.1055613458 * s - 0.0638541728 * o, c = e - 0.0894841775 * s - 1.291485548 * o, f = l * l * l, h = u * u * u, d = c * c * c, b = 4.0767416621 * f - 3.3077115913 * h + 0.2309699292 * d, p = -1.2684380046 * f + 2.6097574011 * h - 0.3413193965 * d, m = -0.0041960863 * f - 0.7034186147 * h + 1.707614701 * d;
634
+ return [we(b), we(p), we(m)];
635
+ }
636
+ function Vt(e, t, r) {
637
+ const n = xe(e), s = xe(t), o = xe(r), l = 0.4122214708 * n + 0.5363325363 * s + 0.0514459929 * o, u = 0.2119034982 * n + 0.6806995451 * s + 0.1073969566 * o, c = 0.0883024619 * n + 0.2817188376 * s + 0.6299787005 * o, f = Math.cbrt(l), h = Math.cbrt(u), d = Math.cbrt(c), b = 0.2104542553 * f + 0.793617785 * h - 0.0040720468 * d, p = 1.9779984951 * f - 2.428592205 * h + 0.4505937099 * d, m = 0.0259040371 * f + 0.7827717662 * h - 0.808675766 * d, x = Math.sqrt(p * p + m * m);
638
+ let _ = Math.atan2(m, p) * 180 / Math.PI;
639
+ return _ < 0 && (_ += 360), [b, x, _];
640
+ }
641
+ function oe(e, t, r, n, s, o) {
642
+ switch (s) {
643
+ case "hex":
644
+ if (o) {
645
+ const l = (c) => c.toString(16).padStart(2, "0"), u = Math.max(0, Math.min(255, Math.round(n * 255)));
646
+ return `#${l(e)}${l(t)}${l(r)}${l(u)}`;
647
+ }
648
+ return ke(e, t, r);
649
+ case "rgb":
650
+ return `rgb(${e}, ${t}, ${r})`;
651
+ case "rgba":
652
+ return `rgba(${e}, ${t}, ${r}, ${Math.round(n * 100) / 100})`;
653
+ case "hsl": {
654
+ const [l, u, c] = Ce(e, t, r);
655
+ return `hsl(${l}, ${u}%, ${c}%)`;
656
+ }
657
+ case "hsla": {
658
+ const [l, u, c] = Ce(e, t, r);
659
+ return `hsla(${l}, ${u}%, ${c}%, ${Math.round(n * 100) / 100})`;
660
+ }
661
+ case "hwb": {
662
+ const [l, u, c] = Ft(e, t, r);
663
+ return n < 1 ? `hwb(${l} ${u}% ${c}% / ${Math.round(n * 100) / 100})` : `hwb(${l} ${u}% ${c}%)`;
664
+ }
665
+ case "oklch": {
666
+ const [l, u, c] = Vt(e, t, r), f = (Math.round(l * 1e3) / 1e3).toFixed(3), h = (Math.round(u * 1e3) / 1e3).toFixed(3), d = (Math.round(c * 10) / 10).toFixed(1), b = Math.round(n * 100) / 100;
667
+ return o || n < 1 ? `oklch(${f} ${h} ${d} / ${b})` : `oklch(${f} ${h} ${d})`;
668
+ }
669
+ }
670
+ }
671
+ function ce(e, t) {
672
+ return t ? e === "rgb" ? "rgba" : e === "hsl" ? "hsla" : e : e === "rgba" ? "rgb" : e === "hsla" ? "hsl" : e;
673
+ }
674
+ function Lt(e, t) {
675
+ const [r, n, s] = e, o = r << 16 ^ n << 8 ^ s, l = St(o), u = 6 + Math.floor(l() * 5), c = 0.18 + l() * 0.06, f = [];
676
+ for (let p = 0; p < u; p++) {
677
+ const m = p / u * Math.PI * 2, x = t * (1 + (l() * 2 - 1) * c), _ = Math.cos(m) * x, g = Math.sin(m) * x;
678
+ f.push({ x: _, y: g });
679
+ }
680
+ const h = (f[0].x + f[u - 1].x) / 2, d = (f[0].y + f[u - 1].y) / 2;
681
+ let b = `M ${h.toFixed(3)} ${d.toFixed(3)}`;
682
+ for (let p = 0; p < u; p++) {
683
+ const m = f[p], x = f[(p + 1) % u], _ = (m.x + x.x) / 2, g = (m.y + x.y) / 2;
684
+ b += ` Q ${m.x.toFixed(3)} ${m.y.toFixed(3)} ${_.toFixed(3)} ${g.toFixed(3)}`;
685
+ }
686
+ return b += " Z", b;
687
+ }
688
+ const hn = (e) => {
689
+ const { value: t, onBlur: r, onChange: n, onInput: s, displayValue: o, size: l, withAlpha: u } = e, c = i.map(l ?? 32, (w) => w), f = i.map(t, (w) => Tt(w ?? "#000000")), h = i.map(
690
+ f,
691
+ ([w, I, M]) => [w, I, M]
692
+ ), d = i.map(f, ([, , , w]) => w), b = K(i.get(d) ?? 1), p = i.map(u ?? !1, (w) => w), m = i.map(
693
+ e.colorTextFormat ?? "rgb",
694
+ (w) => w
695
+ ), x = B(
696
+ h,
697
+ b,
698
+ m,
699
+ p
700
+ )(
701
+ ([w, I, M], A, F, D) => oe(w, I, M, A ?? 1, ce(F, D), D)
702
+ ), _ = i.map(
703
+ e.colorTextFormat ?? "hex",
704
+ (w) => w
705
+ ), g = i.map(c, (w) => `-${w / 2} -${w / 2} ${w} ${w}`), v = B(
706
+ h,
707
+ c
708
+ )((w, I) => Lt(w, I / 2)), T = B(
709
+ h,
710
+ b,
711
+ p
712
+ )(
713
+ ([w, I, M], A, F) => F || A < 1 ? Dt(w, I, M, A) : ke(w, I, M)
714
+ ), C = $.div(
715
+ a.class("bc-color-input__control"),
716
+ a.class(
717
+ i.map(
718
+ p,
719
+ (w) => w ? "bc-color-input__control--alpha" : ""
720
+ )
721
+ ),
722
+ a.style(B(c)((w) => `min-width:${w}px;height:${w}px`)),
723
+ // The SVG blob preview
724
+ Ae.svg(
725
+ a.class("bc-color-input__svg"),
726
+ ge.viewBox(g),
727
+ Ae.path(ge.d(v), ge.fill(T))
728
+ ),
729
+ // Invisible native input overlays the blob for picker and accessibility
730
+ $.input(
731
+ a.type("color"),
732
+ H(e),
733
+ // Native color input needs hex without alpha
734
+ a.value(i.map(h, ([w, I, M]) => ke(w, I, M))),
735
+ a.class("bc-input bc-color-input bc-color-input__native"),
736
+ r != null ? k.blur(r) : S,
737
+ n != null ? k.change((w) => {
738
+ const I = w.target.value;
739
+ if (!n) return;
740
+ const [M, A, F] = Ie(I), D = i.get(b) ?? 1, V = ce(
741
+ i.get(_),
742
+ i.get(p)
743
+ ), R = oe(M, A, F, D, V, i.get(p));
744
+ n(R);
745
+ }) : S,
746
+ s != null ? k.input((w) => {
747
+ const I = w.target.value;
748
+ if (!s) return;
749
+ const [M, A, F] = Ie(I), D = i.get(b) ?? 1, V = ce(
750
+ i.get(_),
751
+ i.get(p)
752
+ ), R = oe(M, A, F, D, V, i.get(p));
753
+ s(R);
754
+ }) : S
755
+ )
756
+ ), y = E(
757
+ p,
758
+ () => $.input(
759
+ a.type("range"),
760
+ a.class("bc-color-input__alpha"),
761
+ a.min(0),
762
+ a.max(1),
763
+ a.step(0.01),
764
+ a.value(i.map(b, (w) => String(w ?? 1))),
765
+ a.disabled(e.disabled),
766
+ k.input((w) => {
767
+ const I = parseFloat(w.target.value);
768
+ b.set(I);
769
+ const [M, A, F] = i.get(h), D = ce(
770
+ i.get(_),
771
+ i.get(p)
772
+ ), V = oe(M, A, F, I, D, i.get(p));
773
+ s?.(V);
774
+ }),
775
+ k.change((w) => {
776
+ const I = parseFloat(w.target.value);
777
+ b.set(I);
778
+ const [M, A, F] = i.get(h), D = ce(
779
+ i.get(_),
780
+ i.get(p)
781
+ ), V = oe(M, A, F, I, D, i.get(p));
782
+ n?.(V);
783
+ })
784
+ )
785
+ );
786
+ return P({
787
+ baseContainer: !0,
788
+ ...e,
789
+ // ensure our control does not try to grow
790
+ growInput: !1,
791
+ input: C,
792
+ // If caller provided an `after`, append RGB before it
793
+ after: L(
794
+ E(
795
+ o ?? !1,
796
+ () => $.span(a.class("bc-color-input__rgb"), x)
797
+ ),
798
+ y,
799
+ e.after
800
+ )
801
+ });
802
+ }, Te = "$$tts-exp-", Et = (e, t) => ie((r) => {
803
+ const n = `${Te}${e}`;
804
+ return Z(i.on(t, (s) => Reflect.set(r, n, s)));
805
+ }), gn = (e, t) => {
806
+ const r = `${Te}${e}`;
807
+ return (n) => {
808
+ t(Reflect.get(n.target, r));
809
+ };
810
+ }, Ut = (e, t) => {
811
+ const r = `${Te}${e}`;
812
+ return (n) => {
813
+ const s = n.target, o = s.selectedIndex, l = s.options[o];
814
+ t(Reflect.get(l, r));
815
+ };
816
+ };
817
+ function Nt(e, t, r) {
818
+ const n = ["bc-card"];
819
+ return e !== "default" && n.push(`bc-card--${e}`), t !== "md" && n.push(`bc-card--padding-${t}`), r !== "lg" && n.push(`bc-card--rounded-${r}`), n.join(" ");
820
+ }
821
+ function bn({ variant: e = "default", size: t = "md", roundedness: r = "lg" } = {}, ...n) {
822
+ return $.div(
823
+ a.class(
824
+ B(
825
+ e,
826
+ t,
827
+ r
828
+ )(
829
+ (s, o, l) => Nt(
830
+ s ?? "default",
831
+ o ?? "md",
832
+ l ?? "lg"
833
+ )
834
+ )
835
+ ),
836
+ ...n
837
+ );
838
+ }
839
+ function pe(...e) {
840
+ return $.div(a.class("bc-group"), ...e);
841
+ }
842
+ const vn = ({
843
+ startEditing: e,
844
+ value: t,
845
+ onChange: r,
846
+ placeholder: n,
847
+ disabled: s
848
+ }) => {
849
+ const o = i.deriveProp(e ?? !1), l = K(!1), u = i.map(s ?? !1, (c) => c);
850
+ return $.div(
851
+ a.class("bc-editable-text"),
852
+ a.class(
853
+ i.map(
854
+ u,
855
+ (c) => c ? "bc-editable-text--disabled" : ""
856
+ )
857
+ ),
858
+ N.disabled(u),
859
+ E(
860
+ o,
861
+ () => $.input(
862
+ a.placeholder(n),
863
+ a.value(t),
864
+ a.class("bc-editable-text__input"),
865
+ lt(),
866
+ k.keydown((c) => {
867
+ c.key === "Enter" ? o.set(!1) : c.key === "Escape" && (l.set(!0), o.set(!1));
868
+ }),
869
+ k.blur(
870
+ j((c) => {
871
+ if (o.set(!1), l.value) {
872
+ l.set(!1);
873
+ return;
874
+ }
875
+ r(c);
876
+ })
877
+ )
878
+ ),
879
+ () => $.span(
880
+ k.click(() => {
881
+ i.get(u) || o.set(!0);
882
+ }),
883
+ a.class("bc-editable-text__display"),
884
+ E(
885
+ i.map(t, (c) => c != null && c.trim() !== ""),
886
+ () => $.span(a.class("bc-editable-text__text"), t),
887
+ () => $.span(
888
+ a.class("bc-editable-text__placeholder"),
889
+ n
890
+ )
891
+ ),
892
+ E(
893
+ i.map(u, (c) => !c),
894
+ () => $.button(
895
+ a.class("bc-editable-text__edit-button"),
896
+ O(W, (c) => N.label(c.$.editLabel)),
897
+ k.click(() => o.set(!0)),
898
+ z({ icon: "line-md/pencil", color: "neutral" })
899
+ )
900
+ )
901
+ )
902
+ )
903
+ );
904
+ }, Ze = (e, t, r) => Pe(
905
+ e,
906
+ (n) => Je(n, {
907
+ value: (s) => {
908
+ const o = B(
909
+ s,
910
+ r
911
+ )((l, u) => t(l.value, u));
912
+ return $.option(
913
+ Z(o.dispose),
914
+ a.selected(o),
915
+ Et("value", s.$.value),
916
+ s.$.label
917
+ );
918
+ },
919
+ group: (s) => $.optgroup(
920
+ a.label(s.$.group),
921
+ de(
922
+ s.$.options,
923
+ (o) => Ze(
924
+ o,
925
+ t,
926
+ r
927
+ )
928
+ )
929
+ ),
930
+ break: () => $.hr()
931
+ })
932
+ ), zt = (e) => {
933
+ const {
934
+ value: t,
935
+ onBlur: r,
936
+ onChange: n,
937
+ options: s,
938
+ unselectedLabel: o,
939
+ equality: l = (f, h) => f === h,
940
+ after: u
941
+ } = e;
942
+ let c;
943
+ return P(
944
+ {
945
+ ...e,
946
+ after: L(
947
+ z({
948
+ icon: "ph:caret-down-bold",
949
+ color: "neutral",
950
+ size: "sm"
951
+ }),
952
+ u
953
+ ),
954
+ input: $.select(
955
+ ie((f) => {
956
+ c = f;
957
+ const h = new MutationObserver((d) => {
958
+ const { removedNodes: b } = d[0];
959
+ b.length > 0 && (c.selectedIndex = 0);
960
+ });
961
+ return h.observe(f, { childList: !0 }), Z(() => h.disconnect());
962
+ }),
963
+ H(e),
964
+ a.class("bc-native-select bc-input"),
965
+ O(
966
+ W,
967
+ (f) => $.option(
968
+ a.hidden("hidden"),
969
+ Qe(o, f.$.selectOne)
970
+ )
971
+ ),
972
+ de(s, (f) => Ze(f, l, t)),
973
+ r != null ? k.blur(r) : S,
974
+ n != null ? k.change(Ut("value", (f) => n(f))) : S
975
+ )
976
+ },
977
+ k.click(() => {
978
+ c?.focus(), typeof c?.showPicker == "function" && c.showPicker();
979
+ })
980
+ );
981
+ };
982
+ function Rt(e) {
983
+ const { controller: t, onChange: r, onBlur: n, ...s } = e;
984
+ return zt({
985
+ ...s,
986
+ value: t.value,
987
+ onChange: ct(t, r),
988
+ onBlur: ot(t, n)
989
+ });
990
+ }
991
+ function xn(e) {
992
+ return He({
993
+ ...e,
994
+ content: Rt(e)
995
+ });
996
+ }
997
+ function Pt(e, t, r) {
998
+ const n = e.length.map((s) => s);
999
+ return L(
1000
+ Z(() => n.dispose()),
1001
+ Oe(
1002
+ n,
1003
+ (s) => {
1004
+ const o = e.item(s.index), l = [];
1005
+ return L(
1006
+ Z(() => {
1007
+ o.dispose(), l.forEach((u) => u());
1008
+ }),
1009
+ t({
1010
+ list: e,
1011
+ item: o,
1012
+ position: s,
1013
+ remove: () => e.removeAt(s.index),
1014
+ move: (u) => {
1015
+ switch (u) {
1016
+ case "up":
1017
+ if (s.index === 0) return;
1018
+ e.move(s.index, s.index - 1);
1019
+ break;
1020
+ case "down":
1021
+ if (s.index === e.length.value - 1) return;
1022
+ e.move(s.index, s.index + 1);
1023
+ break;
1024
+ case "first":
1025
+ e.move(s.index, 0);
1026
+ break;
1027
+ case "last":
1028
+ e.move(s.index, e.length.value - 1);
1029
+ }
1030
+ },
1031
+ canMove: (u) => {
1032
+ const c = (() => {
1033
+ switch (u) {
1034
+ case "up":
1035
+ return Fe(s.index > 0);
1036
+ case "down":
1037
+ return e.length.map((f) => s.index < f - 1);
1038
+ }
1039
+ })();
1040
+ return l.push(() => c.dispose()), c;
1041
+ },
1042
+ cannotMove: (u) => {
1043
+ const c = (() => {
1044
+ switch (u) {
1045
+ case "up":
1046
+ return Fe(s.index === 0);
1047
+ case "down":
1048
+ return e.length.map((f) => s.index === f - 1);
1049
+ }
1050
+ })();
1051
+ return l.push(() => c.dispose()), c;
1052
+ }
1053
+ })
1054
+ );
1055
+ },
1056
+ r
1057
+ )
1058
+ );
1059
+ }
1060
+ const Ue = {
1061
+ 9: { pattern: /^[0-9]$/ },
1062
+ A: { pattern: /^[A-Za-z]$/, transform: (e) => e.toUpperCase() },
1063
+ "*": { pattern: /^.$/ }
1064
+ }, Ot = (e) => e instanceof RegExp;
1065
+ function Ye(e, t, r) {
1066
+ if (e == null) return [];
1067
+ const n = r ? { ...Ue, ...t } : t ?? Ue, s = (l, u) => {
1068
+ const c = n[u];
1069
+ c ? l.push({ type: "pattern", name: u, ...c }) : l.push({ type: "literal", char: u });
1070
+ }, o = [];
1071
+ if (typeof e == "string") {
1072
+ for (const l of e) s(o, l);
1073
+ return o;
1074
+ }
1075
+ for (const l of e)
1076
+ if (typeof l == "string")
1077
+ if (l.length <= 1) s(o, l);
1078
+ else for (const u of l) s(o, u);
1079
+ else Ot(l) ? o.push({ type: "pattern", pattern: l }) : typeof l == "object" && l && o.push(l);
1080
+ return o;
1081
+ }
1082
+ function jt(e, t) {
1083
+ return (r) => {
1084
+ switch (e) {
1085
+ case "digits":
1086
+ return /[0-9]/.test(r);
1087
+ case "letters":
1088
+ return /[A-Za-z]/.test(r);
1089
+ case "alphanumeric":
1090
+ return /[A-Za-z0-9]/.test(r);
1091
+ case "custom":
1092
+ return t?.(r) ?? !0;
1093
+ default:
1094
+ return !0;
1095
+ }
1096
+ };
1097
+ }
1098
+ function Ne(e, t, r, n, s, o) {
1099
+ const l = {
1100
+ raw: e,
1101
+ previousConformed: t,
1102
+ cursor: s ?? e.length,
1103
+ completed: !1
1104
+ }, u = n.definitions ?? {}, c = typeof r == "function" ? r(e, l) : r, f = Ye(
1105
+ c,
1106
+ u,
1107
+ n.useDefaultDefinitions ?? !0
1108
+ ), h = jt(n.allowMode, n.allow), d = /* @__PURE__ */ new Set();
1109
+ for (const D of f) D.type === "literal" && d.add(D.char);
1110
+ if (n.prefix) for (const D of n.prefix) d.add(D);
1111
+ if (n.suffix) for (const D of n.suffix) d.add(D);
1112
+ const b = Array.from(e).filter((D) => h(D) && !d.has(D));
1113
+ if (b.length === 0) return { value: "", cursor: 0, completed: !1 };
1114
+ const p = [], m = [];
1115
+ let x = 0, _ = 0, g = 0, v = -1;
1116
+ for (const D of f) {
1117
+ if (D.type === "literal") {
1118
+ p.push(D.char), m.push({ kind: "literal", filled: !0 });
1119
+ continue;
1120
+ }
1121
+ _ += D.optional ? 0 : 1;
1122
+ const V = b[x];
1123
+ if (V == null)
1124
+ break;
1125
+ if (D.type === "any") {
1126
+ g++, p.push(D.transform ? D.transform(V) : V), m.push({ kind: "slot", filled: !0 }), v = m.length - 1, x++;
1127
+ continue;
1128
+ }
1129
+ if (D.type === "pattern")
1130
+ if (D.pattern.test(V)) {
1131
+ g++;
1132
+ const R = D.transform ? D.transform(V) : V;
1133
+ p.push(R), m.push({ kind: "slot", filled: !0 }), v = m.length - 1, x++;
1134
+ } else {
1135
+ x++;
1136
+ continue;
1137
+ }
1138
+ }
1139
+ const T = p.join(""), C = (n.prefix ?? "") + T + (n.suffix ?? "");
1140
+ let w = (n.prefix ?? "").length;
1141
+ if (v >= 0) {
1142
+ let D = v + 1;
1143
+ if ((o?.policy ?? "smart") !== "sticky")
1144
+ for (; D < m.length && m[D].kind === "literal"; ) D++;
1145
+ w += D;
1146
+ }
1147
+ const I = n.completion?.mode === "min" ? (n.completion.minChars ?? 0) <= g : n.completion?.mode === "custom" ? !!n.completion.isComplete?.(C) : _ > 0 && g >= _, M = n.pipe?.(C, { ...l, completed: I });
1148
+ let A, F = w;
1149
+ return M === !1 ? (A = t, F = t.length) : typeof M == "string" ? (A = M, F = M.length) : typeof M == "object" && M ? (A = M.value, F = M.cursor ?? M.value.length) : A = C, { value: A, cursor: F, completed: I };
1150
+ }
1151
+ function Ht(e, t) {
1152
+ const r = t?.strategy ?? "none";
1153
+ return r === "custom" && t?.unmask ? t.unmask(e) : r === "strip" ? e.replace(/[^A-Za-z0-9]/g, "") : e;
1154
+ }
1155
+ const Xe = (e) => {
1156
+ const {
1157
+ value: t,
1158
+ onBlur: r,
1159
+ onChange: n,
1160
+ onInput: s,
1161
+ onAccept: o,
1162
+ onComplete: l,
1163
+ mask: u,
1164
+ definitions: c,
1165
+ useDefaultDefinitions: f,
1166
+ extraLiterals: h,
1167
+ prefix: d,
1168
+ suffix: b,
1169
+ autofix: p,
1170
+ pipe: m,
1171
+ completion: x,
1172
+ unmask: _,
1173
+ allowMode: g,
1174
+ allow: v,
1175
+ placeholder: T,
1176
+ placeholderOptions: C
1177
+ } = e, y = B(
1178
+ t,
1179
+ u,
1180
+ c,
1181
+ f,
1182
+ h,
1183
+ d,
1184
+ b,
1185
+ p,
1186
+ x,
1187
+ _,
1188
+ g,
1189
+ T,
1190
+ C
1191
+ )((I, M, A, F, D, V, R, re, le, te, Q, ue, q) => M ? Ne(I ?? "", "", M, {
1192
+ definitions: A ?? {},
1193
+ useDefaultDefinitions: F ?? !0,
1194
+ extraLiterals: D ?? [],
1195
+ autofix: re ?? "none",
1196
+ completion: le ?? { mode: "mask" },
1197
+ pipe: m ?? ((U) => U),
1198
+ unmask: te ?? { strategy: "none" },
1199
+ allowMode: Q ?? "all",
1200
+ allow: v,
1201
+ prefix: V,
1202
+ suffix: R
1203
+ }).value : I ?? ""), w = (I, M) => {
1204
+ const A = I.value ?? "", F = i.get(t) ?? "", D = u != null ? i.get(u) : null, V = c != null ? i.get(c) : void 0, R = f != null ? i.get(f) : void 0, re = h != null ? i.get(h) : void 0, le = p != null ? i.get(p) : void 0, te = x != null ? i.get(x) : void 0, Q = _ != null ? i.get(_) : void 0, ue = g != null ? i.get(g) : void 0, q = d != null ? i.get(d) : void 0, U = b != null ? i.get(b) : void 0, {
1205
+ value: J,
1206
+ cursor: he,
1207
+ completed: De
1208
+ } = D ? Ne(
1209
+ A,
1210
+ F,
1211
+ D,
1212
+ {
1213
+ definitions: V ?? {},
1214
+ useDefaultDefinitions: R ?? !0,
1215
+ extraLiterals: re ?? [],
1216
+ autofix: le ?? "none",
1217
+ completion: te ?? { mode: "mask" },
1218
+ pipe: m ?? ((qe) => qe),
1219
+ unmask: Q ?? { strategy: "none" },
1220
+ allowMode: ue ?? "all",
1221
+ allow: v,
1222
+ prefix: q,
1223
+ suffix: U
1224
+ },
1225
+ I.selectionStart ?? A.length,
1226
+ e.cursor ? i.get(e.cursor) : void 0
1227
+ ) : { value: A, cursor: A.length, completed: !0 };
1228
+ if (J !== A) {
1229
+ I.value = J;
1230
+ try {
1231
+ I.setSelectionRange(he, he);
1232
+ } catch {
1233
+ }
1234
+ }
1235
+ const Se = Ht(J, Q);
1236
+ o?.({
1237
+ raw: Se,
1238
+ conformed: J,
1239
+ completed: De,
1240
+ cursor: he
1241
+ }), M === "input" ? s?.(J) : (n?.(J), De && l?.({ raw: Se, conformed: J }));
1242
+ };
1243
+ return P({
1244
+ ...e,
1245
+ input: ee.text(
1246
+ H(e),
1247
+ a.value(y),
1248
+ a.class("bc-input"),
1249
+ r != null ? k.blur(r) : S,
1250
+ ie(
1251
+ (I) => I instanceof HTMLInputElement ? L(
1252
+ k.input(() => w(I, "input")),
1253
+ k.change(() => w(I, "change")),
1254
+ k.keydown((M) => {
1255
+ if (M.key !== "Backspace" || !(e.cursor ? i.get(e.cursor)?.backspaceRubberBand ?? !0 : !0)) return;
1256
+ const F = I.selectionStart ?? 0, D = I.selectionEnd ?? F;
1257
+ if (F !== D || F <= 0) return;
1258
+ const V = I.value ?? "", R = u != null ? i.get(u) : null;
1259
+ if (!R) return;
1260
+ const re = c != null ? i.get(c) : void 0, le = f != null ? i.get(f) : !0, te = d != null ? i.get(d) : void 0, Q = b != null ? i.get(b) : void 0, ue = Ye(
1261
+ typeof R == "function" ? R(V, {
1262
+ raw: V,
1263
+ previousConformed: V,
1264
+ cursor: F,
1265
+ completed: !1
1266
+ }) : R,
1267
+ re ?? {},
1268
+ le ?? !0
1269
+ ), q = /* @__PURE__ */ new Set();
1270
+ for (const U of ue)
1271
+ U.type === "literal" && q.add(U.char);
1272
+ if (te) for (const U of te) q.add(U);
1273
+ if (Q) for (const U of Q) q.add(U);
1274
+ if (q.has(V[F - 1])) {
1275
+ let U = F - 1;
1276
+ for (; U >= 0 && q.has(V[U]); ) U--;
1277
+ U >= 0 && (M.preventDefault(), M.stopPropagation(), I.value = V.slice(0, U) + V.slice(U + 1), w(I, "input"));
1278
+ }
1279
+ })
1280
+ ) : S
1281
+ )
1282
+ )
1283
+ });
1284
+ };
1285
+ function X(e, t, r) {
1286
+ const n = i.map(e, (o) => o != null), s = ye.clearValue;
1287
+ return E(
1288
+ n,
1289
+ () => $.button(
1290
+ a.type("button"),
1291
+ a.class("bc-input-container__reset"),
1292
+ N.label(s),
1293
+ a.title(s),
1294
+ a.disabled(t ?? !1),
1295
+ z({ icon: "mdi:close", size: "sm" }),
1296
+ k.click((o) => {
1297
+ o.preventDefault(), o.stopPropagation(), r?.(null);
1298
+ })
1299
+ )
1300
+ );
1301
+ }
1302
+ const wn = (e) => {
1303
+ const { value: t, onBlur: r, onChange: n, after: s, disabled: o } = e, l = X(t, o, n);
1304
+ return P({
1305
+ ...e,
1306
+ input: ee.date(
1307
+ H(e),
1308
+ a.valueAsDate(t),
1309
+ a.class("bc-input"),
1310
+ r != null ? k.blur(j(r)) : S,
1311
+ n != null ? k.change(Ke(n)) : S
1312
+ ),
1313
+ after: s != null ? L(l, s) : l
1314
+ });
1315
+ }, Wt = (e) => {
1316
+ const t = e.getFullYear(), r = e.getMonth() + 1, n = e.getDate(), s = e.getHours(), o = e.getMinutes(), l = e.getSeconds();
1317
+ return `${t}-${r.toString().padStart(2, "0")}-${n.toString().padStart(2, "0")}T${s.toString().padStart(2, "0")}:${o.toString().padStart(2, "0")}:${l.toString().padStart(2, "0")}`;
1318
+ }, _n = (e) => {
1319
+ const { value: t, onBlur: r, onChange: n, after: s, disabled: o } = e, l = i.map(t, (c) => c != null ? Wt(c) : null), u = X(t, o, n);
1320
+ return P({
1321
+ ...e,
1322
+ input: ee["datetime-local"](
1323
+ H(e),
1324
+ a.value(i.map(l, (c) => c ?? null)),
1325
+ a.class("bc-input"),
1326
+ r != null ? k.blur(j(r)) : S,
1327
+ n != null ? k.change(et(n)) : S
1328
+ ),
1329
+ after: s != null ? L(u, s) : u
1330
+ });
1331
+ }, Y = (e) => typeof e == "string" && e.trim() === "" ? null : e, se = (e) => e ?? "", $n = (e) => {
1332
+ const { value: t, onBlur: r, onChange: n, onInput: s, after: o, disabled: l, ...u } = e, c = X(t, l, n);
1333
+ return it({
1334
+ ...u,
1335
+ value: i.map(t, se),
1336
+ onChange: n != null ? (f) => n(Y(f)) : void 0,
1337
+ onInput: s != null ? (f) => s(Y(f)) : void 0,
1338
+ onBlur: r,
1339
+ after: o != null ? L(c, o) : c
1340
+ });
1341
+ }, yn = (e) => {
1342
+ const { value: t, onBlur: r, onChange: n, onInput: s, after: o, disabled: l, ...u } = e, c = X(t, l, n);
1343
+ return ut({
1344
+ ...u,
1345
+ value: i.map(t, se),
1346
+ onChange: n != null ? (f) => n(Y(f)) : void 0,
1347
+ onInput: s != null ? (f) => s(Y(f)) : void 0,
1348
+ onBlur: r,
1349
+ after: o != null ? L(c, o) : c
1350
+ });
1351
+ }, In = (e) => {
1352
+ const { value: t, onBlur: r, onChange: n, onInput: s, after: o, disabled: l, ...u } = e, c = X(t, l, n);
1353
+ return pt({
1354
+ ...u,
1355
+ value: i.map(t, se),
1356
+ onChange: n != null ? (f) => n(Y(f)) : void 0,
1357
+ onInput: s != null ? (f) => s(Y(f)) : void 0,
1358
+ onBlur: r,
1359
+ after: o != null ? L(c, o) : c
1360
+ });
1361
+ }, Zt = (e) => {
1362
+ const { value: t, onBlur: r, onChange: n, onInput: s, rows: o } = e;
1363
+ return P({
1364
+ ...e,
1365
+ input: $.textarea(
1366
+ H(e),
1367
+ a.rows(o ?? 3),
1368
+ a.value(t),
1369
+ a.class("bc-input"),
1370
+ r != null ? k.blur(j(r)) : S,
1371
+ n != null ? k.change(j(n)) : S,
1372
+ s != null ? k.input(j(s)) : S
1373
+ )
1374
+ });
1375
+ }, kn = (e) => {
1376
+ const { value: t, onBlur: r, onChange: n, onInput: s, after: o, disabled: l, ...u } = e, c = X(t, l, n);
1377
+ return Zt({
1378
+ ...u,
1379
+ value: i.map(t, se),
1380
+ onChange: n != null ? (f) => n(Y(f)) : void 0,
1381
+ onInput: s != null ? (f) => s(Y(f)) : void 0,
1382
+ onBlur: r,
1383
+ after: o != null ? L(c, o) : c
1384
+ });
1385
+ }, Cn = (e) => {
1386
+ const { value: t, step: r, min: n, max: s, onBlur: o, onChange: l, onInput: u, after: c } = e, f = (b) => {
1387
+ const p = n != null ? i.get(n) : void 0, m = s != null ? i.get(s) : void 0;
1388
+ return p != null && b < p ? p : m != null && b > m ? m : b;
1389
+ }, h = r != null ? O(W, (b) => {
1390
+ const p = B(
1391
+ t,
1392
+ n
1393
+ )((g, v) => v == null ? !0 : (g ?? 0) > v), m = B(
1394
+ t,
1395
+ s
1396
+ )((g, v) => v == null ? !0 : (g ?? 0) < v), x = (g) => {
1397
+ const v = i.get(t) ?? 0, T = i.get(r), C = g?.shiftKey ? 10 : 1, y = v - T * C, w = n != null ? i.get(n) : void 0;
1398
+ if (w != null && y < w)
1399
+ return;
1400
+ const I = f(y);
1401
+ I !== v && l && l(I);
1402
+ }, _ = (g) => {
1403
+ const v = i.get(t) ?? 0, T = i.get(r), C = g?.shiftKey ? 10 : 1, y = v + T * C, w = s != null ? i.get(s) : void 0;
1404
+ if (w != null && y > w)
1405
+ return;
1406
+ const I = f(y);
1407
+ I !== v && l && l(I);
1408
+ };
1409
+ return ne(
1410
+ a.class("bc-number-input-steppers"),
1411
+ // Increment second
1412
+ $.button(
1413
+ a.class(
1414
+ "bc-button bc-number-input-steppers-button bc-number-input-steppers-button--increment"
1415
+ ),
1416
+ a.disabled(
1417
+ B(
1418
+ m,
1419
+ e.disabled ?? !1
1420
+ )((g, v) => !g || v)
1421
+ ),
1422
+ k.click((g) => _(g)),
1423
+ N.label(b.$.incrementValue),
1424
+ z({ icon: "line-md:plus", size: "xs" })
1425
+ ),
1426
+ // Decrement first (matches tests expecting first button to be decrement)
1427
+ $.button(
1428
+ a.class(
1429
+ "bc-button bc-number-input-steppers-button bc-number-input-steppers-button--decrement"
1430
+ ),
1431
+ a.disabled(
1432
+ B(
1433
+ p,
1434
+ e.disabled ?? !1
1435
+ )((g, v) => !g || v)
1436
+ ),
1437
+ k.click((g) => x(g)),
1438
+ N.label(b.$.decrementValue),
1439
+ z({ icon: "line-md:minus", size: "xs" })
1440
+ )
1441
+ );
1442
+ }) : null, d = c != null && h != null ? L(h, c) : c ?? h;
1443
+ return P({
1444
+ ...e,
1445
+ input: ee.number(
1446
+ n != null ? L(
1447
+ a.min(n),
1448
+ Z(
1449
+ i.on(n, (b) => {
1450
+ b < i.get(t);
1451
+ })
1452
+ )
1453
+ ) : S,
1454
+ s != null ? L(
1455
+ a.max(s),
1456
+ Z(
1457
+ i.on(s, (b) => {
1458
+ b > i.get(t);
1459
+ })
1460
+ )
1461
+ ) : S,
1462
+ H(e),
1463
+ a.valueAsNumber(t),
1464
+ a.step(r),
1465
+ a.class("bc-input bc-number-input"),
1466
+ o != null ? k.blur(j(o)) : S,
1467
+ l != null ? k.change(G(l)) : S,
1468
+ u != null ? k.input(G(u)) : S,
1469
+ // Add wheel event support when step is defined
1470
+ r != null ? k.wheel((b) => {
1471
+ b.preventDefault();
1472
+ const p = i.get(t) ?? 0, m = i.get(r), x = b.shiftKey ? 10 : 1, _ = b.deltaY < 0 ? m * x : -m * x, g = f(p + _);
1473
+ g !== p && l && l(g);
1474
+ }) : S
1475
+ ),
1476
+ after: d
1477
+ });
1478
+ }, ze = (e) => {
1479
+ if (e == null || e === "") return null;
1480
+ const t = Number(e);
1481
+ return Number.isNaN(t) ? null : t;
1482
+ }, Mn = (e) => {
1483
+ const { value: t, step: r, min: n, max: s, onBlur: o, onChange: l, onInput: u, after: c } = e, f = (p) => {
1484
+ const m = n != null ? i.get(n) : void 0, x = s != null ? i.get(s) : void 0;
1485
+ return m != null && p < m ? m : x != null && p > x ? x : p;
1486
+ }, h = (() => {
1487
+ if (r == null) return null;
1488
+ const p = B(
1489
+ t,
1490
+ n
1491
+ )((v, T) => {
1492
+ const C = v ?? 0;
1493
+ return T == null ? !0 : C > T;
1494
+ }), m = B(
1495
+ t,
1496
+ s
1497
+ )((v, T) => {
1498
+ const C = v ?? 0;
1499
+ return T == null ? !0 : C < T;
1500
+ }), x = (v) => {
1501
+ const T = i.get(t) ?? 0, C = i.get(r), y = v?.shiftKey ? 10 : 1, w = T - C * y, I = n != null ? i.get(n) : void 0;
1502
+ if (I != null && w < I) return;
1503
+ const M = f(w);
1504
+ M !== T && l && l(M);
1505
+ }, _ = (v) => {
1506
+ const T = i.get(t) ?? 0, C = i.get(r), y = v?.shiftKey ? 10 : 1, w = T + C * y, I = s != null ? i.get(s) : void 0;
1507
+ if (I != null && w > I) return;
1508
+ const M = f(w);
1509
+ M !== T && l && l(M);
1510
+ };
1511
+ return ((v, T) => ne(
1512
+ a.class("bc-number-input-steppers"),
1513
+ $.button(
1514
+ a.class(
1515
+ "bc-button bc-number-input-steppers-button bc-number-input-steppers-button--increment"
1516
+ ),
1517
+ a.disabled(
1518
+ B(
1519
+ m,
1520
+ e.disabled ?? !1
1521
+ )((C, y) => !C || y)
1522
+ ),
1523
+ k.click((C) => _(C)),
1524
+ N.label(v),
1525
+ z({ icon: "line-md:plus", size: "xs" })
1526
+ ),
1527
+ $.button(
1528
+ a.class(
1529
+ "bc-button bc-number-input-steppers-button bc-number-input-steppers-button--decrement"
1530
+ ),
1531
+ a.disabled(
1532
+ B(
1533
+ p,
1534
+ e.disabled ?? !1
1535
+ )((C, y) => !C || y)
1536
+ ),
1537
+ k.click((C) => x(C)),
1538
+ N.label(T),
1539
+ z({ icon: "line-md:minus", size: "xs" })
1540
+ )
1541
+ ))(
1542
+ ye.incrementValue,
1543
+ ye.decrementValue
1544
+ );
1545
+ })(), d = X(t, e.disabled, l), b = c != null && h != null ? L(h, d, c) : c != null ? L(d, c) : h != null ? L(h, d) : d;
1546
+ return P({
1547
+ ...e,
1548
+ input: ee.number(
1549
+ // min/max attributes and reactive watchers (no forced correction)
1550
+ n != null ? L(
1551
+ a.min(n),
1552
+ Z(
1553
+ i.on(n, (p) => {
1554
+ })
1555
+ )
1556
+ ) : S,
1557
+ s != null ? L(
1558
+ a.max(s),
1559
+ Z(
1560
+ i.on(s, (p) => {
1561
+ })
1562
+ )
1563
+ ) : S,
1564
+ H(e),
1565
+ // Represent null as empty string so the field can be cleared
1566
+ a.value(i.map(t, (p) => p == null ? "" : String(p))),
1567
+ a.step(r),
1568
+ a.class("bc-input bc-number-input"),
1569
+ o != null ? k.blur(j(o)) : S,
1570
+ l != null ? k.change(
1571
+ j((p) => {
1572
+ const m = ze(p);
1573
+ l(m);
1574
+ })
1575
+ ) : S,
1576
+ u != null ? k.input(
1577
+ j((p) => {
1578
+ const m = ze(p);
1579
+ u(m);
1580
+ })
1581
+ ) : S,
1582
+ // Wheel support when step is defined
1583
+ r != null ? k.wheel((p) => {
1584
+ p.preventDefault();
1585
+ const m = i.get(t) ?? 0, x = i.get(r), _ = p.shiftKey ? 10 : 1, g = p.deltaY < 0 ? x * _ : -x * _, v = f(m + g);
1586
+ v !== m && l && l(v);
1587
+ }) : S
1588
+ ),
1589
+ after: b
1590
+ });
1591
+ }, Tn = ({
1592
+ value: e,
1593
+ onChange: t,
1594
+ offLabel: r,
1595
+ onLabel: n,
1596
+ label: s,
1597
+ disabled: o = !1,
1598
+ size: l = "md",
1599
+ id: u
1600
+ }) => {
1601
+ const c = u ?? ft("switch"), f = `${c}-label`;
1602
+ function h(p, m) {
1603
+ const x = [
1604
+ "bc-switch",
1605
+ `bc-switch--size-${m}`,
1606
+ `bc-switch--${m}`
1607
+ ];
1608
+ return p && x.push("bc-switch--disabled"), x.join(" ");
1609
+ }
1610
+ const d = () => {
1611
+ i.get(o) || t(!i.get(e));
1612
+ }, b = (p) => {
1613
+ i.get(o) || (p.key === " " || p.key === "Enter") && (p.preventDefault(), d());
1614
+ };
1615
+ return $.div(
1616
+ a.class(
1617
+ B(
1618
+ o ?? !1,
1619
+ l
1620
+ )(
1621
+ (p, m) => h(p ?? !1, m ?? "md")
1622
+ )
1623
+ ),
1624
+ a.id(c),
1625
+ a.role("switch"),
1626
+ a.tabindex(
1627
+ i.map(o, (p) => p ? -1 : 0)
1628
+ ),
1629
+ N.checked(e),
1630
+ N.disabled(o),
1631
+ N.labelledby(s != null ? f : void 0),
1632
+ k.click(d),
1633
+ k.keydown(b),
1634
+ s != null ? dt(
1635
+ a.id(f),
1636
+ a.class(
1637
+ `bc-switch__label bc-switch__label--size-${l} bc-switch__label--nowrap`
1638
+ ),
1639
+ s
1640
+ ) : null,
1641
+ $.div(
1642
+ a.class("bc-switch__track"),
1643
+ a.class(
1644
+ i.map(
1645
+ e,
1646
+ (p) => p ? "bc-switch__track--on" : "bc-switch__track--off"
1647
+ )
1648
+ ),
1649
+ r != null ? $.div(
1650
+ N.hidden(!0),
1651
+ a.class("bc-switch__track-label bc-switch__track-label--off"),
1652
+ a.class(
1653
+ i.map(
1654
+ e,
1655
+ (p) => p ? "bc-switch__track-label--hidden" : "bc-switch__track-label--visible"
1656
+ )
1657
+ ),
1658
+ r
1659
+ ) : null,
1660
+ n != null ? $.div(
1661
+ a.class("bc-switch__track-label bc-switch__track-label--on"),
1662
+ a.class(
1663
+ i.map(
1664
+ e,
1665
+ (p) => p ? "bc-switch__track-label--visible" : "bc-switch__track-label--hidden"
1666
+ )
1667
+ ),
1668
+ n
1669
+ ) : null,
1670
+ je(
1671
+ (p) => O(
1672
+ mt,
1673
+ ({ direction: m }) => $.div(
1674
+ a.class("bc-switch__thumb"),
1675
+ a.class(
1676
+ i.map(
1677
+ e,
1678
+ (x) => x ? "bc-switch__thumb--on" : "bc-switch__thumb--off"
1679
+ )
1680
+ ),
1681
+ fe.transform(
1682
+ B(
1683
+ e,
1684
+ p,
1685
+ l,
1686
+ m
1687
+ )((x, { width: _ }, g, v) => {
1688
+ const T = (() => {
1689
+ switch (g) {
1690
+ case "xs":
1691
+ return 5;
1692
+ case "sm":
1693
+ return 5.5;
1694
+ case "md":
1695
+ return 6;
1696
+ case "lg":
1697
+ return 7;
1698
+ case "xl":
1699
+ return 8;
1700
+ }
1701
+ })(), C = v === "rtl" ? `calc((var(--spacing-base) * ${T}) - ${_}px)` : `calc(${_}px - (var(--spacing-base) * ${T}))`;
1702
+ return x ? `translateX(${C})` : "translateX(0)";
1703
+ })
1704
+ )
1705
+ )
1706
+ )
1707
+ )
1708
+ )
1709
+ );
1710
+ }, Yt = (e) => {
1711
+ const t = {
1712
+ type: "pattern",
1713
+ pattern: /[0-9A-Fa-f]/,
1714
+ transform: (n) => n.toLowerCase()
1715
+ };
1716
+ return Xe({
1717
+ ...e,
1718
+ mask: [
1719
+ t,
1720
+ t,
1721
+ t,
1722
+ t,
1723
+ t,
1724
+ t,
1725
+ t,
1726
+ t,
1727
+ "-",
1728
+ t,
1729
+ t,
1730
+ t,
1731
+ t,
1732
+ "-",
1733
+ t,
1734
+ t,
1735
+ t,
1736
+ t,
1737
+ "-",
1738
+ t,
1739
+ t,
1740
+ t,
1741
+ t,
1742
+ "-",
1743
+ t,
1744
+ t,
1745
+ t,
1746
+ t,
1747
+ t,
1748
+ t,
1749
+ t,
1750
+ t,
1751
+ t,
1752
+ t,
1753
+ t,
1754
+ t
1755
+ ],
1756
+ // Sensible default placeholder; can be overridden via options.placeholder
1757
+ placeholder: e.placeholder ?? "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
1758
+ });
1759
+ }, Dn = (e) => {
1760
+ const { value: t, onBlur: r, onChange: n, onInput: s, after: o, disabled: l, ...u } = e, c = X(t, l, n);
1761
+ return Yt({
1762
+ ...u,
1763
+ value: i.map(t, se),
1764
+ onChange: n != null ? (f) => n(Y(f)) : void 0,
1765
+ onInput: s != null ? (f) => s(Y(f)) : void 0,
1766
+ onBlur: r,
1767
+ after: o != null ? L(c, o) : c
1768
+ });
1769
+ }, Xt = "line-md:star-alt-filled", qt = "line-md:star-alt", Gt = (e) => {
1770
+ const {
1771
+ value: t,
1772
+ onChange: r,
1773
+ disabled: n,
1774
+ max: s = 5,
1775
+ fullColor: o = "yellow",
1776
+ emptyColor: l = "neutral",
1777
+ fullIcon: u = Xt,
1778
+ emptyIcon: c = qt,
1779
+ size: f = "md",
1780
+ onBlur: h,
1781
+ rounding: d = 1
1782
+ } = e, b = () => {
1783
+ const v = i.get(d);
1784
+ return v > 0 ? v : 1;
1785
+ }, p = (v) => Math.min(Math.max(v, 0), i.get(s)), m = (v, T) => {
1786
+ if (i.get(n ?? !1)) return;
1787
+ const y = v.currentTarget.getBoundingClientRect(), w = (v.clientX - y.left) / y.width, I = T - 1 + w, M = b(), A = Math.ceil(I / M) * M, F = p(A);
1788
+ r?.(F);
1789
+ }, x = (v) => {
1790
+ if (i.get(n ?? !1)) return;
1791
+ const T = b(), C = i.get(t) ?? 0;
1792
+ let y;
1793
+ switch (v.key) {
1794
+ case "ArrowRight":
1795
+ case "ArrowUp":
1796
+ y = p(C + T);
1797
+ break;
1798
+ case "ArrowLeft":
1799
+ case "ArrowDown":
1800
+ y = p(C - T);
1801
+ break;
1802
+ case "Home":
1803
+ y = 0;
1804
+ break;
1805
+ case "End":
1806
+ y = i.get(s);
1807
+ break;
1808
+ default:
1809
+ return;
1810
+ }
1811
+ v.preventDefault(), r?.(y);
1812
+ }, _ = i.map(f, (v) => `bc-icon--${v}`), g = ({ index: v, counter: T }) => $.span(
1813
+ a.class("bc-rating-input__icon-container"),
1814
+ a.class(_),
1815
+ z(
1816
+ { icon: c, size: f, color: l, tone: "soft" },
1817
+ a.class("bc-rating-input__icon-empty")
1818
+ ),
1819
+ $.span(
1820
+ a.class("bc-rating-input__icon-clipper"),
1821
+ a.class(_),
1822
+ fe.width(
1823
+ i.map(t, (C) => {
1824
+ const y = Math.floor(C);
1825
+ return y > v ? "100%" : y < v ? "0%" : `${(C - v) * 100}%`;
1826
+ })
1827
+ ),
1828
+ z(
1829
+ { icon: u, size: f, color: o, tone: "soft" },
1830
+ a.class("bc-rating-input__icon-full")
1831
+ )
1832
+ ),
1833
+ k.click(
1834
+ tt((C) => m(C, T), {
1835
+ preventDefault: !0,
1836
+ stopPropagation: !0
1837
+ })
1838
+ )
1839
+ );
1840
+ return P({
1841
+ baseContainer: !0,
1842
+ growInput: !1,
1843
+ focusableSelector: '[role="slider"]',
1844
+ ...e,
1845
+ input: $.div(
1846
+ // Common input attributes (id, required, invalid, custom classes, etc.)
1847
+ H(e),
1848
+ a.class("bc-rating-input"),
1849
+ // ARIA slider semantics
1850
+ a.role("slider"),
1851
+ a.tabindex(i.map(n ?? !1, (v) => v ? -1 : 0)),
1852
+ N.disabled(n ?? !1),
1853
+ N.valuemin(0),
1854
+ N.valuemax(i.map(s, (v) => v ?? 0)),
1855
+ N.valuenow(i.map(t, (v) => v ?? 0)),
1856
+ N.valuetext(
1857
+ B(
1858
+ t,
1859
+ s
1860
+ )((v, T) => {
1861
+ const C = v ?? 0, y = T ?? 0;
1862
+ return `${String(C)} / ${String(y)}`;
1863
+ })
1864
+ ),
1865
+ // Keyboard & focus handlers
1866
+ k.keydown(x),
1867
+ h != null ? k.blur(h) : null,
1868
+ Oe(s, g)
1869
+ )
1870
+ });
1871
+ }, Sn = (e) => {
1872
+ const { value: t, onChange: r, onBlur: n, after: s, disabled: o, ...l } = e, u = X(t, o, r);
1873
+ return Gt({
1874
+ ...l,
1875
+ // Map null -> 0 for display so the control shows as empty when null
1876
+ value: i.map(t, (c) => c ?? 0),
1877
+ // Pass through numeric changes; clear button will call onChange(null)
1878
+ onChange: r,
1879
+ onBlur: n,
1880
+ after: s != null ? L(u, s) : u
1881
+ });
1882
+ }, An = (e) => {
1883
+ const { value: t, step: r, min: n, max: s, onBlur: o, onChange: l, onInput: u } = e;
1884
+ return P({
1885
+ ...e,
1886
+ // Make sure clicks anywhere focus the range input
1887
+ focusableSelector: 'input[type="range"]',
1888
+ input: $.input(
1889
+ a.type("range"),
1890
+ H(e),
1891
+ a.min(n),
1892
+ a.max(s),
1893
+ a.step(r),
1894
+ // Using value as number to keep it in sync
1895
+ a.valueAsNumber(t),
1896
+ a.class("bc-input bc-slider-input"),
1897
+ o != null ? k.blur(G(o)) : S,
1898
+ l != null ? k.change(G(l)) : S,
1899
+ u != null ? k.input(G(u)) : S
1900
+ )
1901
+ });
1902
+ }, Fn = (e) => {
1903
+ const { value: t, step: r, min: n, max: s, onBlur: o, onChange: l, onInput: u } = e, c = i.map(t, (h) => {
1904
+ if (h != null) return h;
1905
+ const d = n != null ? i.get(n) : void 0;
1906
+ return typeof d == "number" ? d : 0;
1907
+ }), f = X(t, e.disabled, (h) => {
1908
+ l?.(h);
1909
+ });
1910
+ return P(
1911
+ {
1912
+ ...e,
1913
+ focusableSelector: 'input[type="range"]',
1914
+ after: f,
1915
+ input: $.input(
1916
+ a.type("range"),
1917
+ H(e),
1918
+ a.min(n),
1919
+ a.max(s),
1920
+ a.step(r),
1921
+ a.valueAsNumber(c),
1922
+ a.class("bc-input bc-slider-input"),
1923
+ o != null ? k.blur(G(o)) : S,
1924
+ l != null ? k.change(
1925
+ G((h) => {
1926
+ l(h);
1927
+ })
1928
+ ) : S,
1929
+ u != null ? k.input(
1930
+ G((h) => {
1931
+ u(h);
1932
+ })
1933
+ ) : S
1934
+ )
1935
+ },
1936
+ // Ensure container grows input naturally
1937
+ L()
1938
+ );
1939
+ };
1940
+ let _e = null;
1941
+ async function Me() {
1942
+ const e = globalThis;
1943
+ return e.Temporal ? e.Temporal : (_e || (_e = import("./index.esm-DPNh6inz.js").then((t) => {
1944
+ const r = t.Temporal;
1945
+ return e.Temporal || (e.Temporal = r), r;
1946
+ })), _e);
1947
+ }
1948
+ const Qt = (e, t) => t ? Be(Me, {
1949
+ then: e,
1950
+ pending: t.pending,
1951
+ error: t.error
1952
+ }) : Be(Me, e), Jt = /^P(\d+([YMWD]|$)){0,4}(T(\d+([HMS]|$)){0,3})?$/i, Kt = /^P(?:(\d+Y)?(\d+M)?(\d+W)?(\d+D)?)(T(\d+H)?(\d+M)?(\d+S)?)?$/i;
1953
+ function en(e) {
1954
+ return {
1955
+ mask: null,
1956
+ allowMode: "custom",
1957
+ allow: (t) => /[0-9ptwdhms]/i.test(t),
1958
+ pipe: (t) => {
1959
+ const r = t.toUpperCase();
1960
+ return r.length === 0 ? r : !r.startsWith("P") || !Jt.test(r) ? !1 : r;
1961
+ },
1962
+ completion: {
1963
+ mode: "custom",
1964
+ isComplete: (t) => {
1965
+ const r = t.toUpperCase();
1966
+ if (!Kt.test(r)) return !1;
1967
+ try {
1968
+ return e(r), !0;
1969
+ } catch {
1970
+ return !1;
1971
+ }
1972
+ }
1973
+ }
1974
+ };
1975
+ }
1976
+ const Re = (e, t) => {
1977
+ if (e == null) return null;
1978
+ try {
1979
+ return e.Duration.from(t);
1980
+ } catch {
1981
+ return null;
1982
+ }
1983
+ }, Bn = (e) => {
1984
+ const { value: t, onChange: r, after: n, disabled: s, onBlur: o } = e, l = () => {
1985
+ const f = X(t, s, r);
1986
+ return n != null ? L(f, n) : f;
1987
+ }, u = e.placeholder != null ? S : a.placeholder("P0DT0H0M0S");
1988
+ return Qt(
1989
+ (f) => Xe({
1990
+ ...e,
1991
+ value: i.map(t, (h) => h?.toString() ?? ""),
1992
+ onChange: r ? (h) => r(h === "" ? null : f.Duration.from(h)) : void 0,
1993
+ onInput: void 0,
1994
+ ...en(f.Duration.from),
1995
+ placeholder: "P0DT0H0M0S",
1996
+ after: l()
1997
+ }),
1998
+ { pending: () => P({
1999
+ ...e,
2000
+ input: ee.text(
2001
+ H(e),
2002
+ a.value(i.map(t, (f) => f?.toString() ?? "")),
2003
+ a.class("bc-input"),
2004
+ u,
2005
+ o != null ? k.blur(() => o()) : S,
2006
+ r != null ? k.change((f) => {
2007
+ const d = f.currentTarget?.value ?? "";
2008
+ if (d === "") {
2009
+ r(null);
2010
+ return;
2011
+ }
2012
+ const b = globalThis.Temporal, p = Re(b, d);
2013
+ if (p != null) {
2014
+ r(p);
2015
+ return;
2016
+ }
2017
+ Me().then((m) => {
2018
+ const x = Re(m, d);
2019
+ x != null && r(x);
2020
+ }).catch(() => {
2021
+ });
2022
+ }) : S
2023
+ ),
2024
+ after: l()
2025
+ }) }
2026
+ );
2027
+ }, tn = (e) => {
2028
+ const { value: t, onBlur: r, onChange: n, onInput: s } = e;
2029
+ return P({
2030
+ ...e,
2031
+ input: ee.url(
2032
+ H(e),
2033
+ a.value(t),
2034
+ a.class("bc-input"),
2035
+ r != null ? k.blur(j(r)) : S,
2036
+ n != null ? k.change(j(n)) : S,
2037
+ s != null ? k.input(j(s)) : S
2038
+ )
2039
+ });
2040
+ }, Vn = (e) => {
2041
+ const { value: t, onBlur: r, onChange: n, onInput: s, after: o, disabled: l, ...u } = e, c = X(t, l, n);
2042
+ return tn({
2043
+ ...u,
2044
+ value: i.map(t, se),
2045
+ onChange: n != null ? (f) => n(Y(f)) : void 0,
2046
+ onInput: s != null ? (f) => s(Y(f)) : void 0,
2047
+ onBlur: r,
2048
+ after: o != null ? L(c, o) : c
2049
+ });
2050
+ }, Ln = (e, ...t) => {
2051
+ const {
2052
+ element: r,
2053
+ separator: n,
2054
+ showMove: s = !0,
2055
+ showRemove: o = !0,
2056
+ showAdd: l = !0,
2057
+ createItem: u,
2058
+ addLabel: c,
2059
+ controlsLayout: f = "aside",
2060
+ ...h
2061
+ } = e, d = i.toSignal(f).map((m) => m === "aside"), b = (m) => {
2062
+ const x = E(
2063
+ s ?? !1,
2064
+ () => $.div(
2065
+ a.class("bc-group--align-center"),
2066
+ a.class(
2067
+ d.map(
2068
+ (g) => g ? "bc-group--direction-column bc-group--gap-1" : "bc-group--direction-row bc-group--gap-1"
2069
+ )
2070
+ ),
2071
+ be(
2072
+ {
2073
+ size: "xs",
2074
+ roundedness: "full",
2075
+ variant: "text",
2076
+ onClick: () => m.move("up"),
2077
+ disabled: m.cannotMove("up")
2078
+ },
2079
+ O(
2080
+ W,
2081
+ (g) => z({
2082
+ size: "xs",
2083
+ icon: "line-md:arrow-up",
2084
+ title: g.$.incrementValue
2085
+ })
2086
+ )
2087
+ ),
2088
+ be(
2089
+ {
2090
+ size: "xs",
2091
+ roundedness: "full",
2092
+ variant: "text",
2093
+ onClick: () => m.move("down"),
2094
+ disabled: m.cannotMove("down")
2095
+ },
2096
+ O(
2097
+ W,
2098
+ (g) => z({
2099
+ size: "xs",
2100
+ icon: "line-md:arrow-down",
2101
+ title: g.$.decrementValue
2102
+ })
2103
+ )
2104
+ )
2105
+ )
2106
+ ), _ = E(
2107
+ o,
2108
+ () => O(
2109
+ W,
2110
+ (g) => me({
2111
+ size: "xs",
2112
+ // Use a lowercase label to satisfy tests that query with [aria-label*="remove"]
2113
+ label: i.map(g.$.removeItem, (v) => v.toLowerCase()),
2114
+ color: "error",
2115
+ disabled: e.removeDisabled,
2116
+ onClick: m.remove
2117
+ })
2118
+ )
2119
+ );
2120
+ return (g) => E(
2121
+ d,
2122
+ () => pe(
2123
+ a.class("bc-group--gap-1 bc-group--align-center"),
2124
+ ne(a.class("bc-stack--grow"), g),
2125
+ ne(
2126
+ a.class("bc-stack--align-center"),
2127
+ E(
2128
+ e.controller.value.map((v) => v.length > 1),
2129
+ () => x
2130
+ ),
2131
+ _
2132
+ )
2133
+ ),
2134
+ () => ne(
2135
+ a.class("bc-stack--gap-2"),
2136
+ g,
2137
+ pe(
2138
+ a.class("bc-group--gap-2 bc-group--justify-between"),
2139
+ E(
2140
+ e.controller.value.map((v) => v.length > 1),
2141
+ () => x,
2142
+ () => $.div()
2143
+ ),
2144
+ _
2145
+ )
2146
+ )
2147
+ );
2148
+ }, p = E(
2149
+ B(l, u)((m, x) => m && x != null),
2150
+ () => pe(
2151
+ a.class(
2152
+ "bc-group--gap-2 bc-group--align-center bc-group--justify-center"
2153
+ ),
2154
+ be(
2155
+ {
2156
+ size: "sm",
2157
+ variant: "filled",
2158
+ onClick: () => h.controller.push(u()),
2159
+ disabled: B(
2160
+ h.controller.disabled,
2161
+ e.addDisabled ?? !1
2162
+ )((m, x) => m || x)
2163
+ },
2164
+ O(
2165
+ W,
2166
+ (m) => pe(
2167
+ a.class("bc-group--gap-2"),
2168
+ z({ icon: "line-md:plus" }),
2169
+ c ?? m.$.addLabel
2170
+ )
2171
+ )
2172
+ )
2173
+ )
2174
+ );
2175
+ return He(
2176
+ {
2177
+ ...h,
2178
+ content: ne(
2179
+ a.class("bc-stack--gap-2"),
2180
+ Pt(
2181
+ h.controller,
2182
+ (m) => b(m)(r(m)),
2183
+ n
2184
+ ),
2185
+ p
2186
+ )
2187
+ },
2188
+ ...t
2189
+ );
2190
+ };
2191
+ class En extends ve {
2192
+ branches;
2193
+ activeBranch;
2194
+ #t;
2195
+ #e = /* @__PURE__ */ new Map();
2196
+ constructor(t, r, n, s, o, l, u = ae) {
2197
+ super(t, r, n, s, o, u), this.branches = l;
2198
+ const c = (h) => {
2199
+ for (const d of l)
2200
+ if (d.detect(h))
2201
+ return d.key;
2202
+ return l[0]?.key ?? "unknown";
2203
+ };
2204
+ this.activeBranch = n.map(c, ae);
2205
+ const f = (h) => {
2206
+ if (this.#e.has(h))
2207
+ return this.#e.get(h);
2208
+ const d = l.find((p) => p.key === h);
2209
+ if (!d)
2210
+ throw new Error(`Unknown branch: ${h}`);
2211
+ const b = new ve(
2212
+ [...t, h],
2213
+ (p) => {
2214
+ this.change(p);
2215
+ },
2216
+ n.map(
2217
+ (p) => d.detect(p) ? p : d.defaultValue(),
2218
+ u
2219
+ ),
2220
+ s.map(Ve([h])),
2221
+ {
2222
+ disabled: this.disabled,
2223
+ validationMode: this.parent.validationMode
2224
+ },
2225
+ u
2226
+ );
2227
+ return this.#e.set(h, b), b;
2228
+ };
2229
+ this.#t = this.activeBranch.map(
2230
+ (h) => f(h),
2231
+ ae
2232
+ ), this.onDispose(() => {
2233
+ for (const h of this.#e.values())
2234
+ h.dispose();
2235
+ this.#e.clear(), this.activeBranch.dispose(), this.#t.dispose();
2236
+ });
2237
+ }
2238
+ /**
2239
+ * Get the controller for the currently active branch
2240
+ */
2241
+ get activeController() {
2242
+ return i.get(this.#t);
2243
+ }
2244
+ /**
2245
+ * Get a controller for a specific branch
2246
+ */
2247
+ getBranchController(t) {
2248
+ const r = this.branches.find((s) => s.key === t);
2249
+ if (!r)
2250
+ throw new Error(`Unknown branch: ${t}`);
2251
+ if (this.#e.has(t))
2252
+ return this.#e.get(t);
2253
+ const n = new ve(
2254
+ [...this.path, t],
2255
+ (s) => {
2256
+ this.change(s);
2257
+ },
2258
+ this.value.map(
2259
+ (s) => r.detect(s) ? s : r.defaultValue(),
2260
+ ae
2261
+ ),
2262
+ this.status.map(Ve([t])),
2263
+ {
2264
+ disabled: this.disabled,
2265
+ validationMode: this.parent.validationMode
2266
+ },
2267
+ ae
2268
+ );
2269
+ return this.#e.set(t, n), n;
2270
+ }
2271
+ /**
2272
+ * Switch to a different branch
2273
+ */
2274
+ switchToBranch(t, r = !1) {
2275
+ const n = this.branches.find((l) => l.key === t);
2276
+ if (!n)
2277
+ throw new Error(`Unknown branch: ${t}`);
2278
+ const s = i.get(this.value);
2279
+ if (n.detect(s))
2280
+ return !0;
2281
+ if (n.convert) {
2282
+ const l = n.convert(s);
2283
+ if (l.ok)
2284
+ return this.change(l.value), !0;
2285
+ }
2286
+ if (r && typeof window == "object" && typeof window.confirm == "function" && !window.confirm(
2287
+ "Changing type will clear the current value. Continue?"
2288
+ ))
2289
+ return !1;
2290
+ const o = n.defaultValue();
2291
+ return this.change(o), !0;
2292
+ }
2293
+ /**
2294
+ * Get the current active branch definition
2295
+ */
2296
+ get activeBranchDefinition() {
2297
+ const t = i.get(this.activeBranch);
2298
+ return this.branches.find((r) => r.key === t);
2299
+ }
2300
+ }
2301
+ function Un(e) {
2302
+ return e.transform(
2303
+ (t) => t ?? null,
2304
+ (t) => t ?? void 0
2305
+ );
2306
+ }
2307
+ function Nn(e) {
2308
+ return e.transform(
2309
+ (t) => t ?? "",
2310
+ (t) => t === "" ? void 0 : t
2311
+ );
2312
+ }
2313
+ function zn(e) {
2314
+ return e.transform(
2315
+ (t) => t ?? void 0,
2316
+ (t) => t ?? null
2317
+ );
2318
+ }
2319
+ function nn(e) {
2320
+ switch (e) {
2321
+ case "success":
2322
+ return "material-symbols:check-circle-outline";
2323
+ case "warning":
2324
+ return "material-symbols:warning-outline";
2325
+ case "error":
2326
+ return "material-symbols:error-outline";
2327
+ case "info":
2328
+ default:
2329
+ return "material-symbols:info-outline";
2330
+ }
2331
+ }
2332
+ function sn(e) {
2333
+ switch (e) {
2334
+ case "success":
2335
+ return "success";
2336
+ case "warning":
2337
+ return "warning";
2338
+ case "error":
2339
+ return "error";
2340
+ case "info":
2341
+ default:
2342
+ return "info";
2343
+ }
2344
+ }
2345
+ function rn(e, t, r, n) {
2346
+ const s = [
2347
+ "bc-notice",
2348
+ `bc-notice--${e}`,
2349
+ `bc-notice--tone-${t}`
2350
+ ];
2351
+ return r && s.push("bc-notice--dismissible"), n && n.length > 0 && s.push(n), s.join(" ");
2352
+ }
2353
+ function Rn({
2354
+ variant: e = "info",
2355
+ tone: t = "subtle",
2356
+ role: r,
2357
+ title: n,
2358
+ icon: s,
2359
+ closable: o = !1,
2360
+ onDismiss: l,
2361
+ class: u
2362
+ }, ...c) {
2363
+ const f = i.map(
2364
+ o,
2365
+ (x) => !!x || l != null
2366
+ ), h = i.map(e, (x) => x ?? "info"), d = i.map(t, (x) => x ?? "subtle"), b = B(
2367
+ r,
2368
+ h
2369
+ )((x, _) => x ?? (_ === "error" ? "alert" : "status")), p = K(!0), m = O(
2370
+ W,
2371
+ (x) => $.div(
2372
+ a.class(
2373
+ B(
2374
+ h,
2375
+ d,
2376
+ f,
2377
+ u
2378
+ )((_, g, v, T) => rn(_, g, v, T))
2379
+ ),
2380
+ // Accessibility role mapping (always defined)
2381
+ a.role(i.map(b, (_) => _)),
2382
+ nt(
2383
+ i.map(s, (_) => _ === !1),
2384
+ () => $.div(
2385
+ a.class("bc-notice__icon"),
2386
+ z({
2387
+ icon: B(
2388
+ s,
2389
+ h
2390
+ )((_, g) => _ === void 0 ? nn(g) : String(_)),
2391
+ size: "md",
2392
+ color: i.map(h, sn)
2393
+ })
2394
+ )
2395
+ ),
2396
+ $.div(
2397
+ a.class("bc-notice__body"),
2398
+ Pe(n, (_) => $.div(a.class("bc-notice__title"), _)),
2399
+ $.div(a.class("bc-notice__content"), ...c)
2400
+ ),
2401
+ E(
2402
+ f,
2403
+ () => me({
2404
+ size: "xs",
2405
+ label: x.$.closeModal,
2406
+ onClick: () => {
2407
+ p.set(!1), l?.();
2408
+ }
2409
+ })
2410
+ )
2411
+ )
2412
+ );
2413
+ return E(p, () => m);
2414
+ }
2415
+ export {
2416
+ An as A,
2417
+ mn as B,
2418
+ hn as C,
2419
+ Fn as D,
2420
+ Et as E,
2421
+ $t as F,
2422
+ pe as G,
2423
+ Bn as H,
2424
+ tn as I,
2425
+ Vn as J,
2426
+ bn as K,
2427
+ Ln as L,
2428
+ Xe as M,
2429
+ zt as N,
2430
+ gn as O,
2431
+ Ut as P,
2432
+ Rn as Q,
2433
+ Gt as R,
2434
+ dn as S,
2435
+ Zt as T,
2436
+ Le as U,
2437
+ Me as V,
2438
+ Qt as W,
2439
+ pn as X,
2440
+ fn as _,
2441
+ X as a,
2442
+ En as b,
2443
+ Nn as c,
2444
+ en as d,
2445
+ Y as e,
2446
+ zn as f,
2447
+ yt as g,
2448
+ Mt as h,
2449
+ vn as i,
2450
+ Pt as j,
2451
+ Rt as k,
2452
+ xn as l,
2453
+ wn as m,
2454
+ se as n,
2455
+ _n as o,
2456
+ yn as p,
2457
+ In as q,
2458
+ kn as r,
2459
+ $n as s,
2460
+ Un as t,
2461
+ Cn as u,
2462
+ Mn as v,
2463
+ Tn as w,
2464
+ Yt as x,
2465
+ Dn as y,
2466
+ Sn as z
2467
+ };