@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
@@ -1,866 +0,0 @@
1
- import { makeProviderMark as O, localStorageProp as E, computedOf as k, Use as N, html as g, attr as i, When as w, Fragment as y, aria as f, coalesce as z, style as D, prop as j, on as I, Value as V, Empty as L, WithElement as K, OnDispose as W, input as J, emitValue as S } from "@tempots/dom";
2
- import { WhenInViewport as Q, Query as Y, ElementRect as Z } from "@tempots/ui";
3
- import { b as X, g as tt } from "./colors-DPo9GEJR.js";
4
- function et(t, {
5
- units: e = ["B", "KB", "MB", "GB", "TB"],
6
- decimalPlaces: o = 0,
7
- locale: n
8
- } = {}) {
9
- if (t === 0 || t === 0n)
10
- return new Intl.NumberFormat(n, {
11
- style: "unit",
12
- unit: "byte",
13
- unitDisplay: "short",
14
- maximumFractionDigits: 0
15
- }).format(0).replace("byte", e[0]);
16
- let a, r;
17
- if (typeof t == "bigint") {
18
- let l = t < 0n ? -t : t;
19
- for (a = 0; l >= 1024n && a < e.length - 1; )
20
- l = l / 1024n, a++;
21
- r = Number(t) / Math.pow(1024, a);
22
- } else
23
- a = Math.floor(Math.log(Math.abs(t)) / Math.log(1024)), a = Math.min(a, e.length - 1), r = t / Math.pow(1024, a);
24
- return new Intl.NumberFormat(n, {
25
- style: "unit",
26
- unit: "byte",
27
- unitDisplay: "short",
28
- minimumFractionDigits: a === 0 ? 0 : o,
29
- maximumFractionDigits: a === 0 ? 0 : o
30
- }).format(r).replace("byte", e[a]);
31
- }
32
- const nt = {
33
- loadingExtended: "Loading, please wait",
34
- loadingShort: "Loading...",
35
- locale: "Locale",
36
- iconDescription: "Icon",
37
- loadingIcon: "Loading icon",
38
- failedToLoadIcon: "Failed to load icon",
39
- editLabel: "Edit",
40
- selectOne: "Select one",
41
- selectNone: "None",
42
- selectMany: "Select many",
43
- noResults: "No results",
44
- passwordPlaceholderText: "Secret Password",
45
- togglePasswordVisibility: "Toggle password visibility",
46
- toggleMenu: "Toggle menu",
47
- toggleAside: "Toggle aside",
48
- mainNavigation: "Main navigation",
49
- sidebar: "Sidebar",
50
- closeDrawer: "Close drawer",
51
- closeModal: "Close modal",
52
- confirm: "Confirm",
53
- cancel: "Cancel",
54
- addLabel: "Add",
55
- removeItem: "Remove item",
56
- // languages
57
- currentLocale: "English",
58
- ar: "Arabic",
59
- de: "German",
60
- en: "English",
61
- es: "Spanish",
62
- fr: "French",
63
- hi: "Hindi",
64
- it: "Italian",
65
- ja: "Japanese",
66
- ko: "Korean",
67
- nl: "Dutch",
68
- pl: "Polish",
69
- pt: "Portuguese",
70
- ru: "Russian",
71
- tr: "Turkish",
72
- vi: "Vietnamese",
73
- zh: "Chinese",
74
- he: "Hebrew",
75
- fa: "Persian",
76
- ur: "Urdu",
77
- // input
78
- emailPlaceholderText: "Enter your email",
79
- incrementValue: "Increment value",
80
- decrementValue: "Decrement value",
81
- // drop zone
82
- dropZoneInstructions: (t) => t ? "Click to choose or drag files here, or press Enter or Space to open file selector" : "Drag files here",
83
- // size
84
- fileSizeUnits: ["Bytes", "KB", "MB", "GB", "TB"],
85
- // file input
86
- removeFile: "Remove file",
87
- clearAllFiles: "Clear all files",
88
- // inputs reset
89
- clearValue: "Reset",
90
- unknownType: "Unknown type",
91
- filesInputInstructions: (t, e, o) => {
92
- let n = t == null || t > 1 ? "Click to choose or drag files here" : "Click to choose or drag a file here";
93
- if (t || e) {
94
- const a = [];
95
- if (t != null && t > 1 && a.push(`up to ${t} files`), e && o) {
96
- const r = et(e, {
97
- units: o
98
- });
99
- a.push(`max ${r} each`);
100
- }
101
- a.length > 0 && (n += ` (${a.join(", ")})`);
102
- }
103
- return n;
104
- },
105
- // ProseMirror editor
106
- prosemirror: {
107
- bold: "Bold",
108
- italic: "Italic",
109
- code: "Inline code",
110
- link: "Insert link",
111
- removeLink: "Remove link",
112
- heading: (t) => `Heading ${t}`,
113
- bulletList: "Bullet list",
114
- orderedList: "Ordered list",
115
- blockquote: "Blockquote",
116
- codeBlock: "Code block",
117
- horizontalRule: "Horizontal rule",
118
- linkUrlPlaceholder: "https://example.com"
119
- },
120
- // PDF Page Viewer
121
- pdfPageViewer: {
122
- loading: "Loading PDF...",
123
- loadFailed: "Failed to load PDF",
124
- invalidPdf: "Invalid PDF file",
125
- pageOutOfRange: (t, e) => `Page ${t} is out of range (1-${e})`,
126
- renderFailed: "Failed to render PDF page"
127
- }
128
- }, M = nt, T = "en", ot = /* @__PURE__ */ new Set([
129
- "ar",
130
- // Arabic
131
- "he",
132
- // Hebrew
133
- "fa",
134
- // Persian/Farsi
135
- "ur",
136
- // Urdu
137
- "ps",
138
- // Pashto
139
- "sd",
140
- // Sindhi
141
- "ku",
142
- // Kurdish
143
- "dv",
144
- // Divehi/Maldivian
145
- "yi",
146
- // Yiddish
147
- "ji",
148
- // Yiddish (alternative code)
149
- "iw",
150
- // Hebrew (deprecated, but still used)
151
- "in"
152
- // Indonesian (deprecated, but sometimes confused)
153
- ]);
154
- function A(t) {
155
- if (!t) return "ltr";
156
- const e = t.split(/[-_]/)[0].toLowerCase();
157
- return ot.has(e) ? "rtl" : "ltr";
158
- }
159
- function rt(t, e) {
160
- return t === "auto" ? A(e) : t;
161
- }
162
- function Vt(t) {
163
- return `b-${t}`;
164
- }
165
- function _t(t) {
166
- return A(t) === "rtl";
167
- }
168
- function Et(t) {
169
- return t === "ltr" ? "rtl" : "ltr";
170
- }
171
- const at = {
172
- ltr: {
173
- "inline-start": "left",
174
- "inline-end": "right",
175
- "block-start": "top",
176
- "block-end": "bottom"
177
- },
178
- rtl: {
179
- "inline-start": "right",
180
- "inline-end": "left",
181
- "block-start": "top",
182
- "block-end": "bottom"
183
- }
184
- };
185
- function Tt(t, e) {
186
- return at[e][t];
187
- }
188
- const st = {
189
- mark: O("Locale"),
190
- create: (t) => {
191
- const e = E({
192
- defaultValue: navigator.language ?? "en-US",
193
- key: "beatui-locale"
194
- }), o = E({
195
- defaultValue: "auto",
196
- key: "beatui-direction-preference"
197
- }), n = k(
198
- e,
199
- o
200
- )(
201
- (r, s) => rt(s, r)
202
- );
203
- return {
204
- value: {
205
- locale: e,
206
- setLocale: (r) => e.set(r),
207
- direction: n,
208
- directionPreference: o,
209
- setDirectionPreference: (r) => o.set(r)
210
- },
211
- dispose: () => {
212
- e.dispose(), o.dispose(), n.dispose();
213
- }
214
- };
215
- }
216
- }, {
217
- variants: lt,
218
- special: it,
219
- overrides: _
220
- } = X;
221
- function v(t, e) {
222
- switch (t) {
223
- case "white":
224
- return "var(--color-white)";
225
- case "black":
226
- return "var(--color-black)";
227
- case "transparent":
228
- return "transparent";
229
- default:
230
- return tt(t, e);
231
- }
232
- }
233
- function U(t, e) {
234
- const o = it[t];
235
- if (!o) return;
236
- if (e === "light")
237
- return o;
238
- const n = _[t];
239
- return n ? n[e] : o;
240
- }
241
- function x(t, e, o) {
242
- const n = _[t];
243
- if (n) {
244
- const r = n[o];
245
- if (r)
246
- return { backgroundColor: r.backgroundColor, textColor: r.color };
247
- }
248
- if (e === "solid") {
249
- const r = U(t, o);
250
- if (r)
251
- return {
252
- backgroundColor: r.backgroundColor,
253
- textColor: r.color
254
- };
255
- }
256
- const a = lt[e][o];
257
- return {
258
- backgroundColor: v(t, a.bgShade),
259
- textColor: a.textColor
260
- };
261
- }
262
- const ct = {
263
- light: { shade: 600, textColor: "var(--color-white)" },
264
- dark: { shade: 600, textColor: "var(--text-inverted-dark)" }
265
- }, ut = {
266
- light: { shade: 300, textColor: "var(--text-normal-light)" },
267
- dark: { shade: 700, textColor: "var(--text-normal-dark)" }
268
- }, dt = {
269
- light: { shade: 400, textColor: "var(--text-normal-light)" },
270
- dark: { shade: 600, textColor: "var(--text-normal-dark)" }
271
- };
272
- function m(t, e, o) {
273
- const n = _[t];
274
- if (n) {
275
- const r = n[o];
276
- if (r)
277
- return { backgroundColor: r.backgroundColor, textColor: r.color };
278
- }
279
- if (e === "solid") {
280
- const r = U(t, o);
281
- if (r)
282
- return {
283
- backgroundColor: r.backgroundColor,
284
- textColor: r.color
285
- };
286
- const s = ct[o];
287
- return {
288
- backgroundColor: v(t, s.shade),
289
- textColor: s.textColor
290
- };
291
- }
292
- const a = e === "light" ? ut[o] : dt[o];
293
- return {
294
- backgroundColor: v(t, a.shade),
295
- textColor: a.textColor
296
- };
297
- }
298
- function F(t, e) {
299
- const o = e === "light" ? 500 : 600;
300
- switch (t) {
301
- case "white":
302
- return e === "light" ? "var(--text-inverse-light)" : "var(--text-inverted-dark)";
303
- case "black":
304
- return "var(--color-black)";
305
- case "transparent":
306
- return "transparent";
307
- default:
308
- return v(t, o);
309
- }
310
- }
311
- function C(t, e) {
312
- return t === "white" ? "var(--color-white)" : t === "black" ? "var(--color-black)" : t === "transparent" ? "inherit" : v(t, e === "light" ? 800 : 200);
313
- }
314
- function R(t, e, o) {
315
- return e === "soft" ? v(t, o === "light" ? 300 : 700) : v(t, o === "light" ? 500 : 600);
316
- }
317
- const ht = "bui-icons", P = /* @__PURE__ */ new Map(), q = (() => {
318
- try {
319
- return typeof indexedDB < "u" && indexedDB !== null;
320
- } catch {
321
- return !1;
322
- }
323
- })();
324
- function ft() {
325
- return q ? new Promise((t, e) => {
326
- const o = indexedDB.open(ht, 1);
327
- o.onupgradeneeded = function(n) {
328
- const a = n.target.result;
329
- a.objectStoreNames.contains("icons") || a.createObjectStore("icons");
330
- }, o.onsuccess = function() {
331
- t(o.result);
332
- }, o.onerror = function() {
333
- e(o.error);
334
- };
335
- }) : Promise.reject(new Error("IndexedDB not available"));
336
- }
337
- const B = q ? ft() : null;
338
- async function gt(t, e) {
339
- try {
340
- if (B) {
341
- const o = await B;
342
- return new Promise((n, a) => {
343
- const r = o.transaction("icons", "readwrite");
344
- r.objectStore("icons").put(e, t), r.oncomplete = () => n(), r.onerror = a;
345
- });
346
- } else
347
- P.set(t, e);
348
- } catch {
349
- P.set(t, e);
350
- }
351
- }
352
- async function bt(t) {
353
- try {
354
- if (B) {
355
- const e = await B;
356
- return new Promise((o, n) => {
357
- const s = e.transaction("icons", "readonly").objectStore("icons").get(t);
358
- s.onsuccess = function() {
359
- o(s.result);
360
- }, s.onerror = n;
361
- });
362
- } else
363
- return P.get(t) || null;
364
- } catch {
365
- return P.get(t) || null;
366
- }
367
- }
368
- async function pt(t) {
369
- const e = `https://api.iconify.design/${t}.svg`;
370
- return fetch(e).then((o) => {
371
- if (o.status === 200)
372
- return o.text();
373
- throw new Error(`Failed to load icon: ${t}`);
374
- });
375
- }
376
- async function kt(t) {
377
- const e = t.replace(":", "/"), o = await bt(e);
378
- if (o)
379
- return o;
380
- const n = await pt(e);
381
- return await gt(e, n), n;
382
- }
383
- function mt(t) {
384
- return ["bc-icon", `bc-icon--${t}`].join(" ");
385
- }
386
- function vt(t, e = "solid") {
387
- if (!t) return "";
388
- const o = R(t, e, "light"), n = R(t, e, "dark");
389
- return `--icon-color: ${o}; --icon-color-dark: ${n}`;
390
- }
391
- function G({
392
- icon: t,
393
- size: e = "md",
394
- color: o,
395
- title: n,
396
- accessibility: a = "auto",
397
- tone: r = "solid"
398
- }, ...s) {
399
- const c = k(
400
- a,
401
- n
402
- )((l, u) => l === "decorative" ? !1 : l === "informative" ? !0 : u != null && u !== "");
403
- return N(
404
- H,
405
- (l) => g.span(
406
- i.class(
407
- k(e, o)((u) => mt(u ?? "md"))
408
- ),
409
- i.style(
410
- k(
411
- o,
412
- r
413
- )(
414
- (u, b) => vt(u ?? void 0, b ?? "solid")
415
- )
416
- ),
417
- // Add accessibility attributes based on icon type
418
- w(
419
- c,
420
- () => y(
421
- i.role("img"),
422
- f.label(z(n, l.$.iconDescription))
423
- ),
424
- () => f.hidden(!0)
425
- ),
426
- Q(
427
- { once: !0 },
428
- () => Y({
429
- request: t,
430
- load: ({ request: u }) => kt(u),
431
- convertError: String,
432
- success: ({ value: u }) => g.span(
433
- D.width("100%"),
434
- D.height("100%"),
435
- i.innerHTML(u)
436
- ),
437
- pending: () => g.span(
438
- i.class("animate-spin"),
439
- // Loading state accessibility
440
- w(
441
- c,
442
- () => y(i.role("img"), f.label(l.$.loadingIcon)),
443
- () => f.hidden(!0)
444
- ),
445
- "↻"
446
- ),
447
- failure: ({ error: u }) => g.span(
448
- i.title(u),
449
- i.class("text-red-500"),
450
- // Error state accessibility
451
- w(
452
- c,
453
- () => y(i.role("img"), f.label(l.$.failedToLoadIcon)),
454
- () => f.hidden(!0)
455
- ),
456
- "🚫"
457
- )
458
- })
459
- ),
460
- ...s
461
- )
462
- );
463
- }
464
- function xt(t, e, o, n) {
465
- const a = [
466
- "bc-button",
467
- `bc-button--size-${t}`,
468
- `bc-control--padding-${t}`,
469
- `bc-control--rounded-${e}`
470
- ];
471
- return o && a.push("bc-button--loading"), n && a.push("bc-button--full-width"), a.join(" ");
472
- }
473
- function Ct(t, e, o) {
474
- const n = /* @__PURE__ */ new Map();
475
- n.set("--button-text-shadow", "var(--text-shadow-none)"), n.set("--button-text-shadow-dark", "var(--text-shadow-none)");
476
- const a = (r, s, c, l) => {
477
- o || (n.set("--button-bg-hover", r), n.set("--button-text-hover", c), n.set("--button-bg-hover-dark", s), n.set("--button-text-hover-dark", l));
478
- };
479
- switch (t) {
480
- case "filled": {
481
- const r = x(e, "solid", "light"), s = x(e, "solid", "dark");
482
- n.set("--button-bg", r.backgroundColor), n.set("--button-text", r.textColor), n.set("--button-bg-dark", s.backgroundColor), n.set("--button-text-dark", s.textColor), n.set(
483
- "--button-text-shadow",
484
- "var(--text-shadow-button-filled, var(--text-shadow-sm))"
485
- ), n.set(
486
- "--button-text-shadow-dark",
487
- "var(--text-shadow-button-filled, var(--text-shadow-sm))"
488
- );
489
- const c = m(e, "solid", "light"), l = m(e, "solid", "dark");
490
- a(
491
- c.backgroundColor,
492
- l.backgroundColor,
493
- c.textColor,
494
- l.textColor
495
- );
496
- break;
497
- }
498
- case "light": {
499
- const r = x(e, "light", "light"), s = x(e, "light", "dark");
500
- n.set("--button-bg", r.backgroundColor), n.set("--button-text", r.textColor), n.set("--button-bg-dark", s.backgroundColor), n.set("--button-text-dark", s.textColor);
501
- const c = m(e, "light", "light"), l = m(e, "light", "dark");
502
- a(
503
- c.backgroundColor,
504
- l.backgroundColor,
505
- c.textColor,
506
- l.textColor
507
- );
508
- break;
509
- }
510
- case "outline": {
511
- n.set("--button-bg", "transparent"), n.set("--button-bg-dark", "transparent"), n.set("--button-border", F(e, "light")), n.set("--button-border-dark", F(e, "dark")), n.set("--button-text", C(e, "light")), n.set("--button-text-dark", C(e, "dark")), n.set(
512
- "--button-text-shadow",
513
- "var(--text-shadow-button-light, var(--text-shadow-xs))"
514
- ), n.set(
515
- "--button-text-shadow-dark",
516
- "var(--text-shadow-button-light, var(--text-shadow-xs))"
517
- );
518
- const r = m(e, "light", "light"), s = m(e, "light", "dark");
519
- a(
520
- r.backgroundColor,
521
- s.backgroundColor,
522
- r.textColor,
523
- s.textColor
524
- );
525
- break;
526
- }
527
- case "default": {
528
- const r = x("neutral", "light", "light"), s = x("neutral", "light", "dark");
529
- n.set("--button-bg", r.backgroundColor), n.set("--button-text", C(e, "light")), n.set("--button-bg-dark", s.backgroundColor), n.set("--button-text-dark", C(e, "dark")), n.set(
530
- "--button-text-shadow",
531
- "var(--text-shadow-button-default, var(--text-shadow-2xs))"
532
- ), n.set(
533
- "--button-text-shadow-dark",
534
- "var(--text-shadow-button-default, var(--text-shadow-2xs))"
535
- );
536
- const c = m("base", "light", "light"), l = m("base", "light", "dark");
537
- a(
538
- c.backgroundColor,
539
- l.backgroundColor,
540
- n.get("--button-text") ?? r.textColor,
541
- n.get("--button-text-dark") ?? s.textColor
542
- );
543
- break;
544
- }
545
- case "text": {
546
- n.set("--button-bg", "transparent"), n.set("--button-bg-dark", "transparent"), n.set("--button-text", C(e, "light")), n.set("--button-text-dark", C(e, "dark")), o || n.set("--button-hover-decoration", "underline");
547
- break;
548
- }
549
- }
550
- return Array.from(n.entries()).map(([r, s]) => `${r}: ${s}`).join("; ");
551
- }
552
- function Ft({
553
- type: t = "button",
554
- disabled: e = !1,
555
- loading: o = !1,
556
- variant: n = "filled",
557
- size: a = "md",
558
- color: r = "base",
559
- roundedness: s = "sm",
560
- onClick: c = () => {
561
- },
562
- fullWidth: l = !1,
563
- stopPropagation: u = !0
564
- }, ...b) {
565
- const d = j(null);
566
- return N(
567
- H,
568
- (p) => g.button(
569
- i.type(t),
570
- i.disabled(
571
- k(
572
- e,
573
- o
574
- )((h, $) => h || $)
575
- ),
576
- // Add ARIA attributes for accessibility
577
- f.busy(o ?? !1),
578
- w(o ?? !1, () => f.label(p.$.loadingExtended)),
579
- i.class(
580
- k(a, s, o, l)(xt)
581
- ),
582
- i.style(k(n, r, e)(Ct)),
583
- w(
584
- o ?? !1,
585
- () => y(
586
- D.width(
587
- d.map((h) => h == null ? "" : `${h.width}px`)
588
- ),
589
- D.height(
590
- d.map((h) => h == null ? "" : `${h.height}px`)
591
- ),
592
- G({ icon: "line-md:loading-twotone-loop", size: a ?? "md" }),
593
- // Hidden live region for screen reader announcements
594
- g.span(
595
- i.class("sr-only"),
596
- f.live("polite"),
597
- p.$.loadingExtended
598
- )
599
- ),
600
- () => y(
601
- I.click((h) => {
602
- t !== "submit" && h.preventDefault(), u && h.stopPropagation(), c();
603
- }),
604
- ...b
605
- )
606
- ),
607
- w(
608
- o != null,
609
- () => Z((h) => (h.on(($) => {
610
- V.get(o ?? !1) || d.set($);
611
- }), L))
612
- )
613
- )
614
- );
615
- }
616
- function wt(t, e, o) {
617
- const n = [
618
- t ? "bc-base-input-container" : "bc-input-container"
619
- ];
620
- return e ? n.push(
621
- t ? "bc-base-input-container--disabled" : "bc-input-container--disabled"
622
- ) : n.push(
623
- t ? "bc-base-input-container--default" : "bc-input-container--default"
624
- ), o && n.push("bc-input-container--error"), n.join(" ");
625
- }
626
- function yt(t, e) {
627
- const o = ["bc-input-container__input"];
628
- return t || (o.push(`bc-control--padding-${e}`), o.push(`bc-control--text-size-${e}`)), o.join(" ");
629
- }
630
- const It = ({
631
- baseContainer: t,
632
- disabled: e,
633
- input: o,
634
- before: n,
635
- after: a,
636
- hasError: r,
637
- focusableSelector: s = "input, select, textarea",
638
- growInput: c = !0,
639
- size: l
640
- }, ...u) => {
641
- const b = V.map(e ?? !1, (d) => d);
642
- return g.div(
643
- K((d) => {
644
- const p = () => {
645
- d.querySelector(s)?.focus();
646
- };
647
- return d.addEventListener("click", p), W(() => d.removeEventListener("click", p));
648
- }),
649
- i.class(
650
- k(
651
- t,
652
- b,
653
- r ?? !1
654
- // size ?? 'md'
655
- )(
656
- (d, p, h) => wt(
657
- d ?? !1,
658
- p ?? !1,
659
- h ?? !1
660
- // (size ?? 'md') as ControlSize
661
- )
662
- )
663
- ),
664
- n != null ? g.span(i.class("bc-input-container__before"), n) : null,
665
- g.div(
666
- i.class(
667
- k(
668
- t,
669
- l ?? "md"
670
- )(
671
- (d, p) => yt(
672
- d ?? !1,
673
- p ?? "md"
674
- )
675
- )
676
- ),
677
- // attr.class('bc-input-container__input'),
678
- i.class(
679
- V.map(
680
- c,
681
- (d) => d ? "bc-input-container__input--grow" : ""
682
- )
683
- ),
684
- o
685
- ),
686
- a != null ? g.span(i.class("bc-input-container__after"), a) : null,
687
- ...u
688
- );
689
- };
690
- function Rt({
691
- icon: t,
692
- size: e = "md",
693
- color: o = "neutral"
694
- }) {
695
- return g.span(
696
- i.class("bc-input-container__icon"),
697
- G({ icon: t, size: e, color: o })
698
- );
699
- }
700
- const Lt = ({
701
- autocomplete: t,
702
- autofocus: e,
703
- class: o,
704
- disabled: n,
705
- name: a,
706
- placeholder: r,
707
- id: s,
708
- required: c,
709
- tabIndex: l,
710
- hasError: u
711
- }) => y(
712
- i.autocomplete(t),
713
- i.autofocus(e),
714
- i.class(o),
715
- i.disabled(n),
716
- i.name(a ?? s),
717
- i.placeholder(r),
718
- i.id(s),
719
- f.required(c),
720
- i.tabindex(l),
721
- u != null ? f.invalid(
722
- u ?? !1
723
- ) : null
724
- ), Ot = (t) => {
725
- const { value: e, onBlur: o, onChange: n, onInput: a } = t;
726
- return It({
727
- ...t,
728
- input: J.text(
729
- Lt(t),
730
- i.value(e),
731
- i.class("bc-input"),
732
- o != null ? I.blur(S(o)) : L,
733
- n != null ? I.change(S(n)) : L,
734
- a != null ? I.input(S(a)) : L
735
- )
736
- });
737
- };
738
- function Dt(t) {
739
- const e = t.split("-"), o = [t];
740
- return e.length > 1 && o.push(e[0]), o;
741
- }
742
- function Pt({
743
- locale: t,
744
- defaultLocale: e = "en-US",
745
- defaultMessages: o,
746
- localeLoader: n
747
- }) {
748
- const a = j(e), r = j(o), s = t.on(async (c) => {
749
- if (c === a.value) return;
750
- a.set(c);
751
- const l = Dt(c);
752
- for (const u of l)
753
- try {
754
- const b = await n(u);
755
- if (
756
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
757
- typeof b.default == "object" && Object.keys(b).length === 1
758
- ) {
759
- console.error(
760
- "It appears that you are trying to load a translation module without referencing the default export. Please use `(await import(...)).default` in your loader function."
761
- );
762
- return;
763
- }
764
- if (c === a.value) {
765
- r.set(b);
766
- return;
767
- }
768
- } catch {
769
- continue;
770
- }
771
- console.warn(`No locale found for "${t.value}", using fallback`), c === a.value && r.set(o);
772
- });
773
- return {
774
- /** Clean up all resources and event listeners */
775
- dispose: () => {
776
- s(), a.dispose(), r.dispose();
777
- },
778
- /** Translation functions that return reactive signals */
779
- t: r
780
- };
781
- }
782
- function Bt({
783
- defaultLocale: t,
784
- defaultMessages: e,
785
- localeLoader: o,
786
- providerName: n = "I18nProvider"
787
- }) {
788
- return {
789
- mark: O(n),
790
- create: (a, r) => {
791
- const {
792
- value: { locale: s }
793
- } = r.getProvider(st.mark), { t: c, dispose: l } = Pt({
794
- locale: s,
795
- defaultMessages: e,
796
- defaultLocale: t,
797
- localeLoader: o
798
- });
799
- return {
800
- value: c,
801
- dispose: l
802
- };
803
- }
804
- };
805
- }
806
- const $t = /* @__PURE__ */ Object.assign({
807
- "./locales/ar.ts": () => import("./ar-Bo_FZZi7.js").then((t) => t.default),
808
- "./locales/de.ts": () => import("./de-CCqwOkqN.js").then((t) => t.default),
809
- "./locales/es.ts": () => import("./es-BF02UrPL.js").then((t) => t.default),
810
- "./locales/fa.ts": () => import("./fa-DPQV4YB8.js").then((t) => t.default),
811
- "./locales/fr.ts": () => import("./fr-dmxPhwkD.js").then((t) => t.default),
812
- "./locales/he.ts": () => import("./he-BtQbrVt3.js").then((t) => t.default),
813
- "./locales/hi.ts": () => import("./hi-D_Le4Yka.js").then((t) => t.default),
814
- "./locales/it.ts": () => import("./it-DyHjSuHN.js").then((t) => t.default),
815
- "./locales/ja.ts": () => import("./ja-X43lABza.js").then((t) => t.default),
816
- "./locales/ko.ts": () => import("./ko-B9g9iw99.js").then((t) => t.default),
817
- "./locales/nl.ts": () => import("./nl-Ew5jnSsT.js").then((t) => t.default),
818
- "./locales/pl.ts": () => import("./pl-C9f6UBSe.js").then((t) => t.default),
819
- "./locales/pt.ts": () => import("./pt-DYtAvbrw.js").then((t) => t.default),
820
- "./locales/ru.ts": () => import("./ru-ZexN-b8V.js").then((t) => t.default),
821
- "./locales/tr.ts": () => import("./tr-BDvn05-H.js").then((t) => t.default),
822
- "./locales/ur.ts": () => import("./ur-DbEqQgS6.js").then((t) => t.default),
823
- "./locales/vi.ts": () => import("./vi-CpZUeuSj.js").then((t) => t.default),
824
- "./locales/zh.ts": () => import("./zh-DJyhKO0I.js").then((t) => t.default)
825
- }), H = Bt({
826
- defaultLocale: T,
827
- defaultMessages: M,
828
- localeLoader: async (t) => {
829
- if (t === T) return M;
830
- const e = $t[`./locales/${t}.ts`];
831
- return e ? await e() : M;
832
- },
833
- providerName: "BeatUII18n"
834
- });
835
- export {
836
- Ft as B,
837
- Lt as C,
838
- Rt as I,
839
- st as L,
840
- Ot as T,
841
- H as a,
842
- It as b,
843
- G as c,
844
- x as d,
845
- F as e,
846
- et as f,
847
- M as g,
848
- yt as h,
849
- m as i,
850
- xt as j,
851
- Ct as k,
852
- T as l,
853
- Bt as m,
854
- q as n,
855
- bt as o,
856
- Pt as p,
857
- A as q,
858
- rt as r,
859
- gt as s,
860
- C as t,
861
- Vt as u,
862
- _t as v,
863
- Et as w,
864
- at as x,
865
- Tt as y
866
- };