@appforgeapps/uiforge 0.1.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.
@@ -0,0 +1,1882 @@
1
+ import { jsx as e, jsxs as d, Fragment as _e } from "react/jsx-runtime";
2
+ import { useState as j, useMemo as te, useCallback as L, useRef as G, useEffect as ne } from "react";
3
+ const It = ({
4
+ variant: t = "primary",
5
+ size: n = "medium",
6
+ children: r,
7
+ className: i = "",
8
+ ...h
9
+ }) => {
10
+ const p = "uiforge-button", u = `${p}--${t}`, f = `${p}--${n}`, k = `${p} ${u} ${f} ${i}`.trim();
11
+ return /* @__PURE__ */ e("button", { className: k, ...h, children: r });
12
+ }, Bt = ({
13
+ columns: t,
14
+ data: n,
15
+ selectable: r = !1,
16
+ selectedRows: i,
17
+ getRowKey: h = (ie, X) => X,
18
+ onSelectionChange: p,
19
+ onCellEdit: u,
20
+ actionButtons: f = [],
21
+ searchable: k = !1,
22
+ searchPlaceholder: Z = "Search...",
23
+ onSearch: H,
24
+ customFilter: F,
25
+ pagination: s,
26
+ onPageChange: S,
27
+ onPageSizeChange: D,
28
+ pageSizeOptions: q = [10, 25, 50, 100],
29
+ className: A = "",
30
+ loading: C = !1,
31
+ emptyMessage: z = "No data available"
32
+ }) => {
33
+ const [ie, X] = j(/* @__PURE__ */ new Set()), [$, J] = j(""), [I, O] = j(null), [P, a] = j(""), v = i ?? ie, g = te(() => !k || !$ ? n : n.filter((l) => F ? F(l, $) : Object.values(l).some((x) => x == null ? !1 : String(x).toLowerCase().includes($.toLowerCase()))), [n, $, k, F]), y = te(() => {
34
+ if (!s || s.serverSide)
35
+ return g;
36
+ const l = s.currentPage * s.pageSize, x = l + s.pageSize;
37
+ return g.slice(l, x);
38
+ }, [g, s]), K = te(() => s ? s.serverSide && s.totalItems !== void 0 ? Math.ceil(s.totalItems / s.pageSize) : Math.ceil(g.length / s.pageSize) : 1, [s, g.length]), T = L(() => n.filter((l, x) => {
39
+ const w = h(l, x);
40
+ return v.has(w);
41
+ }), [n, v, h]), le = L(
42
+ (l) => {
43
+ const x = /* @__PURE__ */ new Set();
44
+ l && y.forEach((w) => {
45
+ const N = n.indexOf(w), ae = h(w, N);
46
+ x.add(ae);
47
+ }), i === void 0 && X(x), p?.(x, l ? y : []);
48
+ },
49
+ [y, n, h, p, i]
50
+ ), re = L(
51
+ (l, x, w) => {
52
+ const N = new Set(v);
53
+ w ? N.add(l) : N.delete(l), i === void 0 && X(N);
54
+ const ae = n.filter((B, he) => {
55
+ const ue = h(B, he);
56
+ return N.has(ue);
57
+ });
58
+ p?.(N, ae);
59
+ },
60
+ [v, n, h, p, i]
61
+ ), Q = L(
62
+ (l) => {
63
+ J(l), H?.(l);
64
+ },
65
+ [H]
66
+ ), oe = L(
67
+ (l, x, w) => {
68
+ O({ rowKey: l, columnKey: x }), a(w);
69
+ },
70
+ []
71
+ ), ce = L(
72
+ (l, x, w) => {
73
+ u?.(l, x, P, w), O(null), a("");
74
+ },
75
+ [P, u]
76
+ ), c = L(() => {
77
+ O(null), a("");
78
+ }, []), E = L(
79
+ (l) => {
80
+ s && S?.(l, s.pageSize);
81
+ },
82
+ [s, S]
83
+ ), _ = L(
84
+ (l) => {
85
+ D?.(l), s && S?.(0, l);
86
+ },
87
+ [D, S, s]
88
+ ), M = te(() => y.length === 0 ? !1 : y.every((l) => {
89
+ const x = n.indexOf(l), w = h(l, x);
90
+ return v.has(w);
91
+ }), [y, v, n, h]), U = te(() => y.length === 0 ? !1 : y.some((x) => {
92
+ const w = n.indexOf(x), N = h(x, w);
93
+ return v.has(N);
94
+ }) && !M, [y, v, M, n, h]), m = "uiforge-grid";
95
+ return /* @__PURE__ */ d("div", { className: `${m} ${A}`.trim(), children: [
96
+ (k || f.length > 0) && /* @__PURE__ */ d("div", { className: `${m}__toolbar`, children: [
97
+ k && /* @__PURE__ */ e("div", { className: `${m}__search`, children: /* @__PURE__ */ e(
98
+ "input",
99
+ {
100
+ type: "text",
101
+ className: `${m}__search-input`,
102
+ placeholder: Z,
103
+ value: $,
104
+ onChange: (l) => Q(l.target.value),
105
+ "aria-label": "Search"
106
+ }
107
+ ) }),
108
+ f.length > 0 && /* @__PURE__ */ e("div", { className: `${m}__actions`, children: f.map((l, x) => {
109
+ const w = l.disabled || l.requiresSelection && v.size === 0;
110
+ return /* @__PURE__ */ e(
111
+ "button",
112
+ {
113
+ className: `${m}__action-button ${m}__action-button--${l.variant || "primary"}`,
114
+ onClick: () => l.onClick(T()),
115
+ disabled: w,
116
+ children: l.label
117
+ },
118
+ x
119
+ );
120
+ }) })
121
+ ] }),
122
+ /* @__PURE__ */ e("div", { className: `${m}__table-container`, children: /* @__PURE__ */ d("table", { className: `${m}__table`, role: "table", children: [
123
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ d("tr", { children: [
124
+ r && /* @__PURE__ */ e("th", { className: `${m}__header-cell ${m}__header-cell--checkbox`, children: /* @__PURE__ */ e(
125
+ "input",
126
+ {
127
+ type: "checkbox",
128
+ checked: M,
129
+ ref: (l) => {
130
+ l && (l.indeterminate = U);
131
+ },
132
+ onChange: (l) => le(l.target.checked),
133
+ "aria-label": "Select all rows"
134
+ }
135
+ ) }),
136
+ t.map((l) => /* @__PURE__ */ e(
137
+ "th",
138
+ {
139
+ className: `${m}__header-cell`,
140
+ style: { width: l.width },
141
+ children: l.header
142
+ },
143
+ l.key
144
+ ))
145
+ ] }) }),
146
+ /* @__PURE__ */ e("tbody", { children: C ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
147
+ "td",
148
+ {
149
+ colSpan: t.length + (r ? 1 : 0),
150
+ className: `${m}__loading-cell`,
151
+ children: "Loading..."
152
+ }
153
+ ) }) : y.length === 0 ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
154
+ "td",
155
+ {
156
+ colSpan: t.length + (r ? 1 : 0),
157
+ className: `${m}__empty-cell`,
158
+ children: z
159
+ }
160
+ ) }) : y.map((l, x) => {
161
+ const w = n.indexOf(l), N = h(l, w), ae = v.has(N);
162
+ return /* @__PURE__ */ d(
163
+ "tr",
164
+ {
165
+ className: `${m}__row ${ae ? `${m}__row--selected` : ""}`,
166
+ children: [
167
+ r && /* @__PURE__ */ e("td", { className: `${m}__cell ${m}__cell--checkbox`, children: /* @__PURE__ */ e(
168
+ "input",
169
+ {
170
+ type: "checkbox",
171
+ checked: ae,
172
+ onChange: (B) => re(N, l, B.target.checked),
173
+ "aria-label": `Select row ${x + 1}`
174
+ }
175
+ ) }),
176
+ t.map((B) => {
177
+ const he = B.field ? l[B.field] : void 0, ue = I?.rowKey === N && I?.columnKey === B.key;
178
+ return /* @__PURE__ */ e("td", { className: `${m}__cell`, children: ue ? /* @__PURE__ */ d("div", { className: `${m}__edit-cell`, children: [
179
+ /* @__PURE__ */ e(
180
+ "input",
181
+ {
182
+ type: "text",
183
+ className: `${m}__edit-input`,
184
+ value: String(P ?? ""),
185
+ onChange: (se) => a(se.target.value),
186
+ onKeyDown: (se) => {
187
+ se.key === "Enter" ? ce(N, B.key, l) : se.key === "Escape" && c();
188
+ },
189
+ autoFocus: !0,
190
+ "aria-label": `Edit ${B.header}`
191
+ }
192
+ ),
193
+ /* @__PURE__ */ e(
194
+ "button",
195
+ {
196
+ className: `${m}__edit-button ${m}__edit-button--save`,
197
+ onClick: () => ce(N, B.key, l),
198
+ "aria-label": "Save",
199
+ children: "✓"
200
+ }
201
+ ),
202
+ /* @__PURE__ */ e(
203
+ "button",
204
+ {
205
+ className: `${m}__edit-button ${m}__edit-button--cancel`,
206
+ onClick: c,
207
+ "aria-label": "Cancel",
208
+ children: "✕"
209
+ }
210
+ )
211
+ ] }) : /* @__PURE__ */ e(
212
+ "div",
213
+ {
214
+ className: `${m}__cell-content ${B.editable ? `${m}__cell-content--editable` : ""}`,
215
+ onClick: () => {
216
+ B.editable && oe(N, B.key, he);
217
+ },
218
+ onKeyDown: (se) => {
219
+ B.editable && (se.key === "Enter" || se.key === " ") && oe(N, B.key, he);
220
+ },
221
+ tabIndex: B.editable ? 0 : void 0,
222
+ role: B.editable ? "button" : void 0,
223
+ "aria-label": B.editable ? `Edit ${B.header}` : void 0,
224
+ children: B.render ? B.render(he, l, w) : String(he ?? "")
225
+ }
226
+ ) }, B.key);
227
+ })
228
+ ]
229
+ },
230
+ N
231
+ );
232
+ }) })
233
+ ] }) }),
234
+ s && K > 1 && /* @__PURE__ */ d("div", { className: `${m}__pagination`, children: [
235
+ /* @__PURE__ */ e("div", { className: `${m}__pagination-info`, children: s.serverSide && s.totalItems !== void 0 ? /* @__PURE__ */ d(_e, { children: [
236
+ "Showing ",
237
+ s.currentPage * s.pageSize + 1,
238
+ " to",
239
+ " ",
240
+ Math.min(
241
+ (s.currentPage + 1) * s.pageSize,
242
+ s.totalItems
243
+ ),
244
+ " ",
245
+ "of ",
246
+ s.totalItems,
247
+ " items"
248
+ ] }) : /* @__PURE__ */ d(_e, { children: [
249
+ "Showing ",
250
+ s.currentPage * s.pageSize + 1,
251
+ " to",
252
+ " ",
253
+ Math.min((s.currentPage + 1) * s.pageSize, g.length),
254
+ " ",
255
+ "of ",
256
+ g.length,
257
+ " items"
258
+ ] }) }),
259
+ /* @__PURE__ */ d("div", { className: `${m}__pagination-controls`, children: [
260
+ /* @__PURE__ */ e(
261
+ "button",
262
+ {
263
+ className: `${m}__pagination-button`,
264
+ onClick: () => E(s.currentPage - 1),
265
+ disabled: s.currentPage === 0,
266
+ "aria-label": "Previous page",
267
+ children: "‹"
268
+ }
269
+ ),
270
+ Array.from({ length: K }, (l, x) => x).map((l) => l === 0 || l === K - 1 || Math.abs(l - s.currentPage) <= 1 ? /* @__PURE__ */ e(
271
+ "button",
272
+ {
273
+ className: `${m}__pagination-button ${l === s.currentPage ? `${m}__pagination-button--active` : ""}`,
274
+ onClick: () => E(l),
275
+ "aria-label": `Page ${l + 1}`,
276
+ "aria-current": l === s.currentPage ? "page" : void 0,
277
+ children: l + 1
278
+ },
279
+ l
280
+ ) : l === s.currentPage - 2 || l === s.currentPage + 2 ? /* @__PURE__ */ e("span", { className: `${m}__pagination-ellipsis`, children: "..." }, l) : null),
281
+ /* @__PURE__ */ e(
282
+ "button",
283
+ {
284
+ className: `${m}__pagination-button`,
285
+ onClick: () => E(s.currentPage + 1),
286
+ disabled: s.currentPage >= K - 1,
287
+ "aria-label": "Next page",
288
+ children: "›"
289
+ }
290
+ )
291
+ ] }),
292
+ /* @__PURE__ */ d("div", { className: `${m}__page-size`, children: [
293
+ /* @__PURE__ */ e("label", { htmlFor: "page-size-select", children: "Items per page:" }),
294
+ /* @__PURE__ */ e(
295
+ "select",
296
+ {
297
+ id: "page-size-select",
298
+ className: `${m}__page-size-select`,
299
+ value: s.pageSize,
300
+ onChange: (l) => _(Number(l.target.value)),
301
+ children: q.map((l) => /* @__PURE__ */ e("option", { value: l, children: l }, l))
302
+ }
303
+ )
304
+ ] })
305
+ ] })
306
+ ] });
307
+ }, Ie = () => `block-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`, me = (t = "paragraph") => ({
308
+ id: Ie(),
309
+ type: t,
310
+ content: "",
311
+ format: {}
312
+ }), St = ({
313
+ initialBlocks: t = [],
314
+ onChange: n,
315
+ placeholder: r = "Start typing...",
316
+ readOnly: i = !1,
317
+ className: h = "",
318
+ maxHeight: p
319
+ }) => {
320
+ const [u, f] = j(
321
+ t.length > 0 ? t : [me()]
322
+ ), [k, Z] = j(null), [H, F] = j(null), [s, S] = j(!1), D = G(null);
323
+ ne(() => {
324
+ n && n(u);
325
+ }, [u, n]);
326
+ const q = L((a, v) => {
327
+ f((g) => g.map((y) => y.id === a ? { ...y, ...v } : y));
328
+ }, []), A = L((a = "paragraph", v) => {
329
+ const g = me(a);
330
+ f((y) => {
331
+ if (!v)
332
+ return [...y, g];
333
+ const K = y.findIndex((le) => le.id === v), T = [...y];
334
+ return T.splice(K + 1, 0, g), T;
335
+ }), Z(g.id);
336
+ }, []), C = L((a) => {
337
+ f((v) => {
338
+ const g = v.filter((y) => y.id !== a);
339
+ return g.length > 0 ? g : [me()];
340
+ });
341
+ }, []), z = L((a, v) => {
342
+ f((g) => {
343
+ const y = g.findIndex((re) => re.id === a), K = g.findIndex((re) => re.id === v);
344
+ if (y === -1 || K === -1) return g;
345
+ const T = [...g], [le] = T.splice(y, 1);
346
+ return T.splice(K, 0, le), T;
347
+ });
348
+ }, []), ie = L(
349
+ (a, v) => {
350
+ i || (F(v), a.dataTransfer.effectAllowed = "move");
351
+ },
352
+ [i]
353
+ ), X = L((a) => {
354
+ a.preventDefault(), a.dataTransfer.dropEffect = "move";
355
+ }, []), $ = L(
356
+ (a, v) => {
357
+ a.preventDefault(), H && H !== v && z(H, v), F(null);
358
+ },
359
+ [H, z]
360
+ ), J = L(() => {
361
+ F(null);
362
+ }, []), I = L(
363
+ (a) => {
364
+ k && f(
365
+ (v) => v.map((g) => {
366
+ if (g.id === k) {
367
+ const y = g.format || {};
368
+ return {
369
+ ...g,
370
+ format: {
371
+ ...y,
372
+ [a]: !y[a]
373
+ }
374
+ };
375
+ }
376
+ return g;
377
+ })
378
+ );
379
+ },
380
+ [k]
381
+ ), O = L(
382
+ (a, v) => {
383
+ q(a, { type: v });
384
+ },
385
+ [q]
386
+ ), P = L(
387
+ (a, v) => {
388
+ if (!i) {
389
+ if ((a.metaKey || a.ctrlKey) && a.key === "b")
390
+ a.preventDefault(), I("bold");
391
+ else if ((a.metaKey || a.ctrlKey) && a.key === "i")
392
+ a.preventDefault(), I("italic");
393
+ else if ((a.metaKey || a.ctrlKey) && a.key === "u")
394
+ a.preventDefault(), I("underline");
395
+ else if (a.key === "Enter" && !a.shiftKey) {
396
+ const g = u.find((y) => y.id === v);
397
+ g && g.type !== "code" && (a.preventDefault(), A("paragraph", v));
398
+ } else if (a.key === "Backspace") {
399
+ const g = u.find((y) => y.id === v);
400
+ g && !g.content && u.length > 1 && (a.preventDefault(), C(v));
401
+ }
402
+ }
403
+ },
404
+ [i, u, I, A, C]
405
+ );
406
+ return /* @__PURE__ */ d("div", { className: `uiforge-blocks-editor ${h}`, ref: D, style: { maxHeight: p }, children: [
407
+ !i && s && k && /* @__PURE__ */ e(
408
+ Be,
409
+ {
410
+ selectedBlock: u.find((a) => a.id === k),
411
+ onFormatToggle: I,
412
+ onBlockTypeChange: (a) => O(k, a)
413
+ }
414
+ ),
415
+ /* @__PURE__ */ e("div", { className: "uiforge-blocks-editor__content", children: u.map((a, v) => /* @__PURE__ */ e(
416
+ Se,
417
+ {
418
+ block: a,
419
+ isSelected: k === a.id,
420
+ isDragging: H === a.id,
421
+ readOnly: i,
422
+ placeholder: v === 0 && u.length === 1 ? r : void 0,
423
+ onSelect: () => {
424
+ Z(a.id), S(!0);
425
+ },
426
+ onChange: (g) => q(a.id, g),
427
+ onDelete: () => C(a.id),
428
+ onDragStart: (g) => ie(g, a.id),
429
+ onDragOver: X,
430
+ onDrop: (g) => $(g, a.id),
431
+ onDragEnd: J,
432
+ onKeyDown: (g) => P(g, a.id)
433
+ },
434
+ a.id
435
+ )) }),
436
+ !i && /* @__PURE__ */ e(De, { onAddBlock: A })
437
+ ] });
438
+ }, Be = ({ selectedBlock: t, onFormatToggle: n, onBlockTypeChange: r }) => {
439
+ if (!t) return null;
440
+ const i = t.format || {};
441
+ return /* @__PURE__ */ d("div", { className: "uiforge-blocks-editor__toolbar", role: "toolbar", "aria-label": "Text formatting", children: [
442
+ /* @__PURE__ */ e("div", { className: "uiforge-blocks-editor__toolbar-group", children: /* @__PURE__ */ d(
443
+ "select",
444
+ {
445
+ value: t.type,
446
+ onChange: (h) => r(h.target.value),
447
+ className: "uiforge-blocks-editor__toolbar-select",
448
+ "aria-label": "Block type",
449
+ children: [
450
+ /* @__PURE__ */ e("option", { value: "paragraph", children: "Paragraph" }),
451
+ /* @__PURE__ */ e("option", { value: "heading1", children: "Heading 1" }),
452
+ /* @__PURE__ */ e("option", { value: "heading2", children: "Heading 2" }),
453
+ /* @__PURE__ */ e("option", { value: "heading3", children: "Heading 3" }),
454
+ /* @__PURE__ */ e("option", { value: "list", children: "List" }),
455
+ /* @__PURE__ */ e("option", { value: "quote", children: "Quote" }),
456
+ /* @__PURE__ */ e("option", { value: "code", children: "Code" }),
457
+ /* @__PURE__ */ e("option", { value: "image", children: "Image" })
458
+ ]
459
+ }
460
+ ) }),
461
+ /* @__PURE__ */ e("div", { className: "uiforge-blocks-editor__toolbar-divider" }),
462
+ /* @__PURE__ */ d("div", { className: "uiforge-blocks-editor__toolbar-group", children: [
463
+ /* @__PURE__ */ e(
464
+ "button",
465
+ {
466
+ type: "button",
467
+ className: `uiforge-blocks-editor__toolbar-button ${i.bold ? "active" : ""}`,
468
+ onClick: () => n("bold"),
469
+ title: "Bold (Ctrl+B)",
470
+ "aria-label": "Bold",
471
+ "aria-pressed": i.bold,
472
+ children: /* @__PURE__ */ e("strong", { children: "B" })
473
+ }
474
+ ),
475
+ /* @__PURE__ */ e(
476
+ "button",
477
+ {
478
+ type: "button",
479
+ className: `uiforge-blocks-editor__toolbar-button ${i.italic ? "active" : ""}`,
480
+ onClick: () => n("italic"),
481
+ title: "Italic (Ctrl+I)",
482
+ "aria-label": "Italic",
483
+ "aria-pressed": i.italic,
484
+ children: /* @__PURE__ */ e("em", { children: "I" })
485
+ }
486
+ ),
487
+ /* @__PURE__ */ e(
488
+ "button",
489
+ {
490
+ type: "button",
491
+ className: `uiforge-blocks-editor__toolbar-button ${i.underline ? "active" : ""}`,
492
+ onClick: () => n("underline"),
493
+ title: "Underline (Ctrl+U)",
494
+ "aria-label": "Underline",
495
+ "aria-pressed": i.underline,
496
+ children: /* @__PURE__ */ e("u", { children: "U" })
497
+ }
498
+ ),
499
+ /* @__PURE__ */ e(
500
+ "button",
501
+ {
502
+ type: "button",
503
+ className: `uiforge-blocks-editor__toolbar-button ${i.code ? "active" : ""}`,
504
+ onClick: () => n("code"),
505
+ title: "Inline Code",
506
+ "aria-label": "Code",
507
+ "aria-pressed": i.code,
508
+ children: "</>"
509
+ }
510
+ )
511
+ ] })
512
+ ] });
513
+ }, Se = ({
514
+ block: t,
515
+ isSelected: n,
516
+ isDragging: r,
517
+ readOnly: i,
518
+ placeholder: h,
519
+ onSelect: p,
520
+ onChange: u,
521
+ onDelete: f,
522
+ onDragStart: k,
523
+ onDragOver: Z,
524
+ onDrop: H,
525
+ onDragEnd: F,
526
+ onKeyDown: s
527
+ }) => {
528
+ const S = [
529
+ "uiforge-blocks-editor__block",
530
+ `uiforge-blocks-editor__block--${t.type}`,
531
+ n ? "uiforge-blocks-editor__block--selected" : "",
532
+ r ? "uiforge-blocks-editor__block--dragging" : ""
533
+ ].filter(Boolean).join(" "), D = [
534
+ "uiforge-blocks-editor__block-text",
535
+ t.format?.bold ? "uiforge-blocks-editor__block-text--bold" : "",
536
+ t.format?.italic ? "uiforge-blocks-editor__block-text--italic" : "",
537
+ t.format?.underline ? "uiforge-blocks-editor__block-text--underline" : "",
538
+ t.format?.code ? "uiforge-blocks-editor__block-text--code" : ""
539
+ ].filter(Boolean).join(" "), q = (C) => {
540
+ u({ content: C.target.value });
541
+ }, A = () => {
542
+ const C = {
543
+ value: t.content,
544
+ onChange: q,
545
+ onFocus: p,
546
+ onKeyDown: s,
547
+ placeholder: h,
548
+ readOnly: i,
549
+ className: D
550
+ };
551
+ switch (t.type) {
552
+ case "heading1":
553
+ return /* @__PURE__ */ e(
554
+ "input",
555
+ {
556
+ ...C,
557
+ type: "text",
558
+ className: `${D} uiforge-blocks-editor__heading1`,
559
+ placeholder: h || "Heading 1"
560
+ }
561
+ );
562
+ case "heading2":
563
+ return /* @__PURE__ */ e(
564
+ "input",
565
+ {
566
+ ...C,
567
+ type: "text",
568
+ className: `${D} uiforge-blocks-editor__heading2`,
569
+ placeholder: h || "Heading 2"
570
+ }
571
+ );
572
+ case "heading3":
573
+ return /* @__PURE__ */ e(
574
+ "input",
575
+ {
576
+ ...C,
577
+ type: "text",
578
+ className: `${D} uiforge-blocks-editor__heading3`,
579
+ placeholder: h || "Heading 3"
580
+ }
581
+ );
582
+ case "code":
583
+ return /* @__PURE__ */ e(
584
+ "textarea",
585
+ {
586
+ ...C,
587
+ className: `${D} uiforge-blocks-editor__code`,
588
+ placeholder: h || "Code block",
589
+ rows: 4
590
+ }
591
+ );
592
+ case "quote":
593
+ return /* @__PURE__ */ e(
594
+ "textarea",
595
+ {
596
+ ...C,
597
+ className: `${D} uiforge-blocks-editor__quote`,
598
+ placeholder: h || "Quote",
599
+ rows: 2
600
+ }
601
+ );
602
+ case "image":
603
+ return /* @__PURE__ */ d("div", { className: "uiforge-blocks-editor__image-block", children: [
604
+ /* @__PURE__ */ e(
605
+ "input",
606
+ {
607
+ type: "text",
608
+ value: t.imageUrl || "",
609
+ onChange: (z) => u({ imageUrl: z.target.value }),
610
+ placeholder: "Image URL",
611
+ className: "uiforge-blocks-editor__image-url",
612
+ readOnly: i
613
+ }
614
+ ),
615
+ /* @__PURE__ */ e(
616
+ "input",
617
+ {
618
+ type: "text",
619
+ value: t.imageAlt || "",
620
+ onChange: (z) => u({ imageAlt: z.target.value }),
621
+ placeholder: "Alt text",
622
+ className: "uiforge-blocks-editor__image-alt",
623
+ readOnly: i
624
+ }
625
+ ),
626
+ t.imageUrl && /* @__PURE__ */ e(
627
+ "img",
628
+ {
629
+ src: t.imageUrl,
630
+ alt: t.imageAlt || "Block image",
631
+ className: "uiforge-blocks-editor__image-preview"
632
+ }
633
+ )
634
+ ] });
635
+ default:
636
+ return /* @__PURE__ */ e(
637
+ "textarea",
638
+ {
639
+ ...C,
640
+ className: `${D} uiforge-blocks-editor__paragraph`,
641
+ placeholder: h || "Start typing...",
642
+ rows: 1,
643
+ style: { minHeight: "1.5em" }
644
+ }
645
+ );
646
+ }
647
+ };
648
+ return /* @__PURE__ */ d(
649
+ "div",
650
+ {
651
+ className: S,
652
+ draggable: !i,
653
+ onDragStart: k,
654
+ onDragOver: Z,
655
+ onDrop: H,
656
+ onDragEnd: F,
657
+ "data-block-id": t.id,
658
+ children: [
659
+ !i && /* @__PURE__ */ d("div", { className: "uiforge-blocks-editor__block-controls", children: [
660
+ /* @__PURE__ */ e(
661
+ "button",
662
+ {
663
+ type: "button",
664
+ className: "uiforge-blocks-editor__drag-handle",
665
+ title: "Drag to reorder",
666
+ "aria-label": "Drag to reorder",
667
+ children: "⋮⋮"
668
+ }
669
+ ),
670
+ /* @__PURE__ */ e(
671
+ "button",
672
+ {
673
+ type: "button",
674
+ className: "uiforge-blocks-editor__delete-button",
675
+ onClick: f,
676
+ title: "Delete block",
677
+ "aria-label": "Delete block",
678
+ children: "×"
679
+ }
680
+ )
681
+ ] }),
682
+ /* @__PURE__ */ e("div", { className: "uiforge-blocks-editor__block-content", children: A() })
683
+ ]
684
+ }
685
+ );
686
+ }, De = ({ onAddBlock: t }) => {
687
+ const [n, r] = j(!1);
688
+ return /* @__PURE__ */ d("div", { className: "uiforge-blocks-editor__block-menu", children: [
689
+ /* @__PURE__ */ e(
690
+ "button",
691
+ {
692
+ type: "button",
693
+ className: "uiforge-blocks-editor__add-button",
694
+ onClick: () => r(!n),
695
+ "aria-label": "Add block",
696
+ "aria-expanded": n,
697
+ children: "+ Add Block"
698
+ }
699
+ ),
700
+ n && /* @__PURE__ */ e("div", { className: "uiforge-blocks-editor__block-menu-dropdown", children: [
701
+ { type: "paragraph", label: "Paragraph", icon: "¶" },
702
+ { type: "heading1", label: "Heading 1", icon: "H1" },
703
+ { type: "heading2", label: "Heading 2", icon: "H2" },
704
+ { type: "heading3", label: "Heading 3", icon: "H3" },
705
+ { type: "list", label: "List", icon: "≡" },
706
+ { type: "quote", label: "Quote", icon: '"' },
707
+ { type: "code", label: "Code", icon: "</>" },
708
+ { type: "image", label: "Image", icon: "🖼" }
709
+ ].map(({ type: h, label: p, icon: u }) => /* @__PURE__ */ d(
710
+ "button",
711
+ {
712
+ type: "button",
713
+ className: "uiforge-blocks-editor__block-menu-item",
714
+ onClick: () => {
715
+ t(h), r(!1);
716
+ },
717
+ children: [
718
+ /* @__PURE__ */ e("span", { className: "uiforge-blocks-editor__block-menu-icon", children: u }),
719
+ /* @__PURE__ */ e("span", { children: p })
720
+ ]
721
+ },
722
+ h
723
+ )) })
724
+ ] });
725
+ };
726
+ function pe(t) {
727
+ return t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
728
+ }
729
+ function Ve(t) {
730
+ const n = t.trim(), r = ["javascript:", "data:", "vbscript:", "file:"], i = n.toLowerCase();
731
+ for (const h of r)
732
+ if (i.startsWith(h))
733
+ return "";
734
+ return n;
735
+ }
736
+ function Dt(t) {
737
+ return t.map((n) => {
738
+ let r = pe(n.content);
739
+ switch (n.format?.bold && (r = `<strong>${r}</strong>`), n.format?.italic && (r = `<em>${r}</em>`), n.format?.underline && (r = `<u>${r}</u>`), n.format?.code && (r = `<code>${r}</code>`), n.type) {
740
+ case "heading1":
741
+ return `<h1>${r}</h1>`;
742
+ case "heading2":
743
+ return `<h2>${r}</h2>`;
744
+ case "heading3":
745
+ return `<h3>${r}</h3>`;
746
+ case "quote":
747
+ return `<blockquote>${r}</blockquote>`;
748
+ case "code":
749
+ return `<pre><code>${pe(n.content)}</code></pre>`;
750
+ case "image": {
751
+ const i = Ve(n.imageUrl || ""), h = pe(n.imageAlt || "");
752
+ return i ? `<img src="${i}" alt="${h}" />` : "";
753
+ }
754
+ case "list":
755
+ return `<ul><li>${r}</li></ul>`;
756
+ default:
757
+ return `<p>${r}</p>`;
758
+ }
759
+ }).join(`
760
+ `);
761
+ }
762
+ function Vt(t) {
763
+ return t.map((n) => {
764
+ let r = n.content;
765
+ switch (n.format?.bold && (r = `**${r}**`), n.format?.italic && (r = `*${r}*`), n.format?.code && (r = `\`${r}\``), n.type) {
766
+ case "heading1":
767
+ return `# ${r}`;
768
+ case "heading2":
769
+ return `## ${r}`;
770
+ case "heading3":
771
+ return `### ${r}`;
772
+ case "quote":
773
+ return `> ${r}`;
774
+ case "code":
775
+ return `\`\`\`
776
+ ${n.content}
777
+ \`\`\``;
778
+ case "image":
779
+ return `![${n.imageAlt || ""}](${n.imageUrl || ""})`;
780
+ case "list":
781
+ return `- ${r}`;
782
+ default:
783
+ return r;
784
+ }
785
+ }).join(`
786
+
787
+ `);
788
+ }
789
+ function Ht(t) {
790
+ return JSON.stringify(t, null, 2);
791
+ }
792
+ const At = ({
793
+ options: t = [],
794
+ value: n,
795
+ onChange: r,
796
+ onSearch: i,
797
+ placeholder: h = "Select an option...",
798
+ disabled: p = !1,
799
+ clearable: u = !1,
800
+ className: f = "",
801
+ renderOption: k,
802
+ renderValue: Z,
803
+ loading: H = !1,
804
+ maxHeight: F = "300px",
805
+ debounceMs: s = 300,
806
+ searchable: S = !0,
807
+ noOptionsMessage: D = "No options found",
808
+ ariaLabel: q,
809
+ enableCache: A = !1,
810
+ cacheTTL: C,
811
+ refreshOnOpen: z = !1,
812
+ onClearCache: ie,
813
+ onForceRefresh: X
814
+ }) => {
815
+ const [$, J] = j(!1), [I, O] = j(""), [P, a] = j([]), [v, g] = j(0), [y, K] = j(!1), T = G(null), le = G(null), re = G(null), Q = G(null), oe = G(null), ce = G(i), c = G(null), E = G(!1), _ = G(/* @__PURE__ */ new Map()), M = G(A), U = G(C), m = L((o, b = 0) => o.reduce((Y, V) => {
816
+ const R = { ...V, level: b };
817
+ return Y.push(R), V.children && V.children.length > 0 && Y.push(...m(V.children, b + 1)), Y;
818
+ }, []), []), l = (o) => typeof o == "string" && (o.startsWith("http://") || o.startsWith("https://") || o.startsWith("data:") || o.startsWith("/")), x = te(() => m(P.length > 0 ? P : t).find((b) => b.value === n) || null, [n, t, P, m]), w = L((o, b) => {
819
+ if (!b.trim()) return o;
820
+ const Y = b.toLowerCase(), V = (R) => R.reduce((ee, de) => {
821
+ const ge = de.label.toLowerCase().includes(Y), fe = de.children ? V(de.children) : [];
822
+ return (ge || fe.length > 0) && ee.push({
823
+ ...de,
824
+ children: fe.length > 0 ? fe : de.children
825
+ }), ee;
826
+ }, []);
827
+ return V(o);
828
+ }, []);
829
+ ne(() => {
830
+ ce.current = i, oe.current = null;
831
+ }, [i]), ne(() => {
832
+ M.current = A;
833
+ }, [A]), ne(() => {
834
+ U.current = C;
835
+ }, [C]), ne(() => {
836
+ ie && ie(() => {
837
+ _.current.clear();
838
+ }), X && X(() => {
839
+ if (!ce.current) return;
840
+ c.current && c.current.abort(), c.current = new AbortController();
841
+ const o = c.current.signal;
842
+ K(!0), (async () => {
843
+ try {
844
+ const b = Date.now(), Y = I, V = _.current.get(Y), R = V && (!U.current || b - V.timestamp < U.current);
845
+ let ee;
846
+ M.current && R ? ee = V.data : (ee = await (ce.current ? ce.current(I, o) : i?.(I, o) ?? []), !o.aborted && M.current && _.current.set(Y, { data: ee, timestamp: b })), o.aborted || (a(ee), oe.current = I);
847
+ } catch (b) {
848
+ console.error(b), a([]);
849
+ } finally {
850
+ K(!1);
851
+ }
852
+ })();
853
+ });
854
+ }, [ie, X, I]), ne(() => {
855
+ if (i && $) {
856
+ const o = oe.current === I, b = !E.current && $;
857
+ return o && !(z && b) ? void 0 : (Q.current && clearTimeout(Q.current), Q.current = setTimeout(async () => {
858
+ c.current && c.current.abort(), c.current = new AbortController();
859
+ const V = c.current.signal;
860
+ K(!0);
861
+ try {
862
+ let R;
863
+ const ee = I, de = _.current.get(ee), ge = Date.now(), fe = de && (!U.current || ge - de.timestamp < U.current);
864
+ if (M.current && fe ? R = de.data : (R = await (ce.current ? ce.current(I, V) : i(I, V)), !V.aborted && M.current && _.current.set(ee, { data: R, timestamp: ge })), V.aborted) return;
865
+ a(R), oe.current = I;
866
+ } catch (R) {
867
+ console.error("Error fetching options:", R), a([]);
868
+ } finally {
869
+ K(!1);
870
+ }
871
+ }, s), () => {
872
+ Q.current && clearTimeout(Q.current), c.current && (c.current.abort(), c.current = null);
873
+ });
874
+ } else i || a(w(t, I));
875
+ E.current = $;
876
+ }, [I, $, t, s, w, z]), ne(() => {
877
+ i || a(t);
878
+ }, [t, i]), ne(() => {
879
+ const o = (b) => {
880
+ T.current && !T.current.contains(b.target) && (J(!1), O(""));
881
+ };
882
+ return document.addEventListener("mousedown", o), () => document.removeEventListener("mousedown", o);
883
+ }, []);
884
+ const N = te(() => m(P.length > 0 ? P : t).filter((b) => !b.disabled), [P, t, m]), ae = te(() => m(P.length > 0 ? P : t), [P, t, m]), B = te(() => {
885
+ const o = /* @__PURE__ */ new Map();
886
+ return ae.forEach((b) => {
887
+ const Y = JSON.stringify({ value: b.value, label: b.label }), V = N.findIndex(
888
+ (R) => R.value === b.value && R.label === b.label
889
+ );
890
+ o.set(Y, V);
891
+ }), o;
892
+ }, [ae, N]), he = (o) => {
893
+ if (!p)
894
+ switch (o.key) {
895
+ case "ArrowDown":
896
+ o.preventDefault(), $ ? g((b) => b < N.length - 1 ? b + 1 : 0) : J(!0);
897
+ break;
898
+ case "ArrowUp":
899
+ o.preventDefault(), $ && g((b) => b > 0 ? b - 1 : N.length - 1);
900
+ break;
901
+ case "Enter":
902
+ o.preventDefault(), $ && N[v] ? ue(N[v]) : J(!$);
903
+ break;
904
+ case "Escape":
905
+ o.preventDefault(), J(!1), O("");
906
+ break;
907
+ case "Tab":
908
+ $ && (J(!1), O(""));
909
+ break;
910
+ }
911
+ };
912
+ ne(() => {
913
+ if ($ && re.current) {
914
+ const o = re.current.querySelector(
915
+ `[data-index="${v}"]`
916
+ );
917
+ o && typeof o.scrollIntoView == "function" && o.scrollIntoView({ block: "nearest" });
918
+ }
919
+ }, [v, $]);
920
+ const ue = (o) => {
921
+ o.disabled || (r?.(o.value, o), J(!1), O(""), g(0));
922
+ }, se = (o) => {
923
+ o.stopPropagation(), r?.(null, null), O("");
924
+ }, Ce = () => {
925
+ p || J((o) => {
926
+ const b = !o;
927
+ return b && setTimeout(() => le.current?.focus(), 0), b;
928
+ });
929
+ };
930
+ ne(() => {
931
+ $ || (oe.current = null);
932
+ }, [$]);
933
+ const $e = (o) => {
934
+ O(o.target.value), $ || J(!0), g(0);
935
+ }, Ne = (o) => {
936
+ const b = (o.level || 0) * 20;
937
+ return /* @__PURE__ */ d("div", { className: "uiforge-combobox-option-content", style: { paddingLeft: `${b}px` }, children: [
938
+ o.icon && /* @__PURE__ */ e("span", { className: "uiforge-combobox-option-icon", children: l(o.icon) ? /* @__PURE__ */ e(
939
+ "img",
940
+ {
941
+ src: o.icon,
942
+ alt: "",
943
+ className: "uiforge-combobox-option-icon-img"
944
+ }
945
+ ) : o.icon }),
946
+ /* @__PURE__ */ e("span", { className: "uiforge-combobox-option-label", children: o.label })
947
+ ] });
948
+ }, Me = (o) => o ? /* @__PURE__ */ d("div", { className: "uiforge-combobox-value-content", children: [
949
+ o.icon && /* @__PURE__ */ e("span", { className: "uiforge-combobox-value-icon", children: l(o.icon) ? /* @__PURE__ */ e("img", { src: o.icon, alt: "", className: "uiforge-combobox-value-icon-img" }) : o.icon }),
950
+ /* @__PURE__ */ e("span", { className: "uiforge-combobox-value-label", children: o.label })
951
+ ] }) : h, W = "uiforge-combobox", Le = [
952
+ W,
953
+ $ && `${W}--open`,
954
+ p && `${W}--disabled`,
955
+ f
956
+ ].filter(Boolean).join(" ");
957
+ return /* @__PURE__ */ d(
958
+ "div",
959
+ {
960
+ ref: T,
961
+ className: Le,
962
+ onKeyDown: he,
963
+ role: "combobox",
964
+ "aria-expanded": $,
965
+ "aria-haspopup": "listbox",
966
+ "aria-label": q,
967
+ "aria-disabled": p,
968
+ tabIndex: p ? -1 : 0,
969
+ children: [
970
+ /* @__PURE__ */ d("div", { className: `${W}-control`, onClick: Ce, children: [
971
+ S && $ ? /* @__PURE__ */ e(
972
+ "input",
973
+ {
974
+ ref: le,
975
+ type: "text",
976
+ className: `${W}-input`,
977
+ value: I,
978
+ onChange: $e,
979
+ placeholder: h,
980
+ disabled: p,
981
+ "aria-autocomplete": "list",
982
+ "aria-controls": `${W}-listbox`
983
+ }
984
+ ) : /* @__PURE__ */ e("div", { className: `${W}-value`, children: Z ? Z(x) : Me(x) }),
985
+ /* @__PURE__ */ d("div", { className: `${W}-indicators`, children: [
986
+ u && n !== null && n !== void 0 && !p && /* @__PURE__ */ e(
987
+ "button",
988
+ {
989
+ type: "button",
990
+ className: `${W}-clear`,
991
+ onClick: se,
992
+ "aria-label": "Clear selection",
993
+ tabIndex: -1,
994
+ children: "×"
995
+ }
996
+ ),
997
+ /* @__PURE__ */ e("span", { className: `${W}-arrow`, children: "▼" })
998
+ ] })
999
+ ] }),
1000
+ $ && /* @__PURE__ */ e(
1001
+ "div",
1002
+ {
1003
+ ref: re,
1004
+ className: `${W}-dropdown`,
1005
+ style: { maxHeight: F },
1006
+ role: "listbox",
1007
+ id: `${W}-listbox`,
1008
+ children: H || y ? /* @__PURE__ */ e("div", { className: `${W}-loading`, children: "Loading..." }) : N.length === 0 ? /* @__PURE__ */ e("div", { className: `${W}-no-options`, children: D }) : ae.map((o) => {
1009
+ const b = JSON.stringify({ value: o.value, label: o.label }), Y = B.get(b) ?? -1, V = o.value === n, R = Y === v, ee = [
1010
+ `${W}-option`,
1011
+ V && `${W}-option--selected`,
1012
+ R && `${W}-option--highlighted`,
1013
+ o.disabled && `${W}-option--disabled`
1014
+ ].filter(Boolean).join(" ");
1015
+ return /* @__PURE__ */ e(
1016
+ "div",
1017
+ {
1018
+ className: ee,
1019
+ onClick: () => ue(o),
1020
+ role: "option",
1021
+ "aria-selected": V,
1022
+ "aria-disabled": o.disabled,
1023
+ "data-index": Y,
1024
+ children: k ? k(o) : Ne(o)
1025
+ },
1026
+ b
1027
+ );
1028
+ })
1029
+ }
1030
+ )
1031
+ ]
1032
+ }
1033
+ );
1034
+ }, He = ({
1035
+ size: t = 16,
1036
+ className: n = "",
1037
+ color: r = "currentColor"
1038
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M11.93 8.5a4.002 4.002 0 01-7.86 0H.75a.75.75 0 010-1.5h3.32a4.002 4.002 0 017.86 0h3.32a.75.75 0 010 1.5h-3.32zM8 5a3 3 0 100 6 3 3 0 000-6z" }) }), Ae = ({
1039
+ size: t = 16,
1040
+ className: n = "",
1041
+ color: r = "currentColor"
1042
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z" }) }), Ee = ({
1043
+ size: t = 16,
1044
+ className: n = "",
1045
+ color: r = "currentColor"
1046
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1047
+ /* @__PURE__ */ e("path", { d: "M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z" }),
1048
+ /* @__PURE__ */ e("path", { d: "M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z" })
1049
+ ] }), ze = ({
1050
+ size: t = 16,
1051
+ className: n = "",
1052
+ color: r = "currentColor"
1053
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0114.25 13H8.06l-2.573 2.573A1.458 1.458 0 013 14.543V13H1.75A1.75 1.75 0 010 11.25v-8.5zM1.75 2.5a.25.25 0 00-.25.25v8.5c0 .138.112.25.25.25h2a.75.75 0 01.75.75v2.19l2.72-2.72a.75.75 0 01.53-.22h6.5a.25.25 0 00.25-.25v-8.5a.25.25 0 00-.25-.25H1.75z" }) }), Pe = ({
1054
+ size: t = 16,
1055
+ className: n = "",
1056
+ color: r = "currentColor"
1057
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25z" }) }), Te = ({
1058
+ size: t = 16,
1059
+ className: n = "",
1060
+ color: r = "currentColor"
1061
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z" }) }), We = ({
1062
+ size: t = 16,
1063
+ className: n = "",
1064
+ color: r = "currentColor"
1065
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M5 3.254V3.25v.005a.75.75 0 110-.005v.004zm.45 1.9a2.25 2.25 0 10-1.95.218v5.256a2.25 2.25 0 101.5 0V7.123A5.735 5.735 0 009.25 9h1.378a2.251 2.251 0 100-1.5H9.25a4.25 4.25 0 01-3.8-2.346zM12.75 9a.75.75 0 100-1.5.75.75 0 000 1.5zm-8.5 4.5a.75.75 0 100-1.5.75.75 0 000 1.5z" }) }), Oe = ({
1066
+ size: t = 16,
1067
+ className: n = "",
1068
+ color: r = "currentColor"
1069
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z" }) }), Ue = ({
1070
+ size: t = 16,
1071
+ className: n = "",
1072
+ color: r = "currentColor"
1073
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M4.53 4.75A.75.75 0 015 6.25h6a.75.75 0 00.53-1.28l-3-3a.75.75 0 00-1.06 0l-3 3zm.47 6.47a.75.75 0 01.53-.22h6a.75.75 0 01.53 1.28l-3 3a.75.75 0 01-1.06 0l-3-3a.75.75 0 01-.01-1.06h.01z" }) }), Re = ({
1074
+ size: t = 20,
1075
+ className: n = "",
1076
+ color: r = "currentColor"
1077
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 20 20", fill: "none", className: n, children: [
1078
+ /* @__PURE__ */ e(
1079
+ "path",
1080
+ {
1081
+ d: "M10 2L6 6M10 2L14 6M10 2V7.5",
1082
+ stroke: r,
1083
+ strokeWidth: "2.5",
1084
+ strokeLinecap: "round",
1085
+ strokeLinejoin: "round"
1086
+ }
1087
+ ),
1088
+ /* @__PURE__ */ e(
1089
+ "path",
1090
+ {
1091
+ d: "M3 10H17",
1092
+ stroke: r,
1093
+ strokeWidth: "1.5",
1094
+ strokeLinecap: "round",
1095
+ strokeDasharray: "1 2"
1096
+ }
1097
+ ),
1098
+ /* @__PURE__ */ e(
1099
+ "path",
1100
+ {
1101
+ d: "M10 18L6 14M10 18L14 14M10 18V12.5",
1102
+ stroke: r,
1103
+ strokeWidth: "2.5",
1104
+ strokeLinecap: "round",
1105
+ strokeLinejoin: "round"
1106
+ }
1107
+ )
1108
+ ] }), je = ({
1109
+ size: t = 20,
1110
+ className: n = "",
1111
+ color: r = "currentColor"
1112
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 20 20", fill: "none", className: n, children: [
1113
+ /* @__PURE__ */ e(
1114
+ "path",
1115
+ {
1116
+ d: "M10 7.5L6 4M10 7.5L14 4M10 7.5V2",
1117
+ stroke: r,
1118
+ strokeWidth: "2.5",
1119
+ strokeLinecap: "round",
1120
+ strokeLinejoin: "round"
1121
+ }
1122
+ ),
1123
+ /* @__PURE__ */ e(
1124
+ "path",
1125
+ {
1126
+ d: "M3 10H17",
1127
+ stroke: r,
1128
+ strokeWidth: "1.5",
1129
+ strokeLinecap: "round",
1130
+ strokeDasharray: "1 2"
1131
+ }
1132
+ ),
1133
+ /* @__PURE__ */ e(
1134
+ "path",
1135
+ {
1136
+ d: "M10 12.5L6 16M10 12.5L14 16M10 12.5V18",
1137
+ stroke: r,
1138
+ strokeWidth: "2.5",
1139
+ strokeLinecap: "round",
1140
+ strokeLinejoin: "round"
1141
+ }
1142
+ )
1143
+ ] }), Fe = ({
1144
+ size: t = 16,
1145
+ className: n = "",
1146
+ color: r = "currentColor"
1147
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z" }) }), qe = ({
1148
+ size: t = 16,
1149
+ className: n = "",
1150
+ color: r = "currentColor"
1151
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z" }) }), Ke = ({
1152
+ size: t = 16,
1153
+ className: n = "",
1154
+ color: r = "currentColor"
1155
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: "none", className: n, children: [
1156
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "8", r: "7", stroke: r, strokeWidth: "1.5" }),
1157
+ /* @__PURE__ */ e(
1158
+ "path",
1159
+ {
1160
+ d: "M8 1C11.866 1 15 4.134 15 8C15 11.866 11.866 15 8 15",
1161
+ fill: r
1162
+ }
1163
+ ),
1164
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "5", r: "2", fill: r === "currentColor" ? "white" : "#fff" }),
1165
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "11", r: "2", fill: r }),
1166
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "5", r: "0.5", fill: r }),
1167
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "11", r: "0.5", fill: r === "currentColor" ? "white" : "#fff" })
1168
+ ] }), Ze = ({
1169
+ size: t = 16,
1170
+ className: n = "",
1171
+ color: r = "currentColor"
1172
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1173
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "3", r: "1.5" }),
1174
+ /* @__PURE__ */ e("path", { d: "M8 5C6.5 5 5 6 5 7.5V9C5 9 5.5 10 6 10.5L5 14H7L8 11L9 14H11L10 10.5C10.5 10 11 9 11 9V7.5C11 6 9.5 5 8 5Z" }),
1175
+ /* @__PURE__ */ e("path", { d: "M4 9L2 10M12 9L14 10", strokeWidth: "1", stroke: r, fill: "none" })
1176
+ ] }), Ge = ({
1177
+ size: t = 16,
1178
+ className: n = "",
1179
+ color: r = "currentColor"
1180
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1181
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "2.5", r: "1.5" }),
1182
+ /* @__PURE__ */ e("path", { d: "M8 4.5L6 8L4 14H6L7 10H9L10 14H12L10 8L8 4.5Z" }),
1183
+ /* @__PURE__ */ e("path", { d: "M6 8L3 6M10 8L13 6", strokeWidth: "1.5", stroke: r, fill: "none" })
1184
+ ] }), Je = ({
1185
+ size: t = 16,
1186
+ className: n = "",
1187
+ color: r = "currentColor"
1188
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1189
+ /* @__PURE__ */ e("rect", { x: "1", y: "6", width: "2", height: "4", rx: "0.5" }),
1190
+ /* @__PURE__ */ e("rect", { x: "13", y: "6", width: "2", height: "4", rx: "0.5" }),
1191
+ /* @__PURE__ */ e("rect", { x: "3", y: "5.5", width: "1", height: "5" }),
1192
+ /* @__PURE__ */ e("rect", { x: "12", y: "5.5", width: "1", height: "5" }),
1193
+ /* @__PURE__ */ e("rect", { x: "4", y: "7", width: "8", height: "2", rx: "0.5" })
1194
+ ] }), Ye = ({
1195
+ size: t = 16,
1196
+ className: n = "",
1197
+ color: r = "currentColor"
1198
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1199
+ /* @__PURE__ */ e("circle", { cx: "10", cy: "2.5", r: "1.5" }),
1200
+ /* @__PURE__ */ e("path", { d: "M9 4.5L8 6L6 7L4 8L6 9L8 8L10 7L11 9L10 12L9 14H11L12 11L13 9L12 6L10 4.5H9Z" }),
1201
+ /* @__PURE__ */ e("path", { d: "M6 14H4L5 11" })
1202
+ ] }), Qe = ({
1203
+ size: t = 16,
1204
+ className: n = "",
1205
+ color: r = "currentColor"
1206
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: "none", className: n, children: /* @__PURE__ */ e(
1207
+ "path",
1208
+ {
1209
+ d: "M2 8H5L6.5 5L8 11L9.5 8H14",
1210
+ stroke: r,
1211
+ strokeWidth: "1.5",
1212
+ strokeLinecap: "round",
1213
+ strokeLinejoin: "round"
1214
+ }
1215
+ ) }), Xe = ({
1216
+ size: t = 16,
1217
+ className: n = "",
1218
+ color: r = "currentColor"
1219
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1220
+ /* @__PURE__ */ e("path", { d: "M4 8C4 6 5 4 7 4C8 4 8.5 4.5 8.5 5.5C8.5 6 8.8 6.5 9.5 6.5C10.5 6.5 11 7 11 8C11 9.5 10 11 8 12C6 13 4 12 4 10V8Z" }),
1221
+ /* @__PURE__ */ e("circle", { cx: "7", cy: "3", r: "1.5" })
1222
+ ] }), et = ({
1223
+ size: t = 16,
1224
+ className: n = "",
1225
+ color: r = "currentColor"
1226
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1227
+ /* @__PURE__ */ e("rect", { x: "2", y: "2", width: "12", height: "3", rx: "0.5" }),
1228
+ /* @__PURE__ */ e("rect", { x: "2", y: "6.5", width: "12", height: "3", rx: "0.5" }),
1229
+ /* @__PURE__ */ e("rect", { x: "2", y: "11", width: "12", height: "3", rx: "0.5" }),
1230
+ /* @__PURE__ */ e("circle", { cx: "4", cy: "3.5", r: "0.5" }),
1231
+ /* @__PURE__ */ e("circle", { cx: "4", cy: "8", r: "0.5" }),
1232
+ /* @__PURE__ */ e("circle", { cx: "4", cy: "12.5", r: "0.5" })
1233
+ ] }), tt = ({
1234
+ size: t = 16,
1235
+ className: n = "",
1236
+ color: r = "currentColor"
1237
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1238
+ /* @__PURE__ */ e("ellipse", { cx: "8", cy: "3", rx: "5", ry: "2" }),
1239
+ /* @__PURE__ */ e("path", { d: "M3 3V13C3 14.1 5.2 15 8 15C10.8 15 13 14.1 13 13V3" }),
1240
+ /* @__PURE__ */ e("path", { d: "M3 8C3 9.1 5.2 10 8 10C10.8 10 13 9.1 13 8" })
1241
+ ] }), rt = ({
1242
+ size: t = 16,
1243
+ className: n = "",
1244
+ color: r = "currentColor"
1245
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M4.5 10C2.5 10 1 8.5 1 6.5C1 4.5 2.5 3 4.5 3C4.6 3 4.7 3 4.8 3.05C5.3 1.8 6.5 1 8 1C10 1 11.5 2.5 11.5 4.5C11.5 4.6 11.5 4.7 11.5 4.8C12.9 5.1 14 6.3 14 7.75C14 9.5 12.5 11 10.75 11H4.5Z" }) }), nt = ({
1246
+ size: t = 16,
1247
+ className: n = "",
1248
+ color: r = "currentColor"
1249
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1250
+ /* @__PURE__ */ e("path", { d: "M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75z" }),
1251
+ /* @__PURE__ */ e(
1252
+ "path",
1253
+ {
1254
+ d: "M3 5.5L6 8L3 10.5",
1255
+ stroke: "white",
1256
+ strokeWidth: "1.5",
1257
+ strokeLinecap: "round",
1258
+ strokeLinejoin: "round",
1259
+ fill: "none"
1260
+ }
1261
+ ),
1262
+ /* @__PURE__ */ e("line", { x1: "8", y1: "10.5", x2: "12", y2: "10.5", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" })
1263
+ ] }), it = ({
1264
+ size: t = 16,
1265
+ className: n = "",
1266
+ color: r = "currentColor"
1267
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1268
+ /* @__PURE__ */ e("path", { d: "M4.75 7.5a3.25 3.25 0 116.5 0v3.75a3.25 3.25 0 01-6.5 0V7.5z" }),
1269
+ /* @__PURE__ */ e("path", { d: "M5.75 7.5c0-.69.56-1.25 1.25-1.25h2c.69 0 1.25.56 1.25 1.25M4 5.5L2 4M12 5.5L14 4M4 9H1M15 9H12M4 12L2 13.5M12 12L14 13.5", stroke: r, strokeWidth: "1.5", fill: "none" }),
1270
+ /* @__PURE__ */ e("ellipse", { cx: "8", cy: "4", rx: "2.5", ry: "1.5" })
1271
+ ] }), lt = ({
1272
+ size: t = 16,
1273
+ className: n = "",
1274
+ color: r = "currentColor"
1275
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M5.28 3.72a.75.75 0 00-1.06 1.06L7.44 8l-3.22 3.22a.75.75 0 101.06 1.06l3.75-3.75a.75.75 0 000-1.06L5.28 3.72zM8.5 11.5a.75.75 0 000 1.5h5a.75.75 0 000-1.5h-5z" }) }), ct = ({
1276
+ size: t = 16,
1277
+ className: n = "",
1278
+ color: r = "currentColor"
1279
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1280
+ /* @__PURE__ */ e("path", { d: "M8 0C6 0 4.5 2 3.5 5L1 7L4 8L5 11L7 8.5C9 7.5 11 6 13 3C14 2 15 0 16 0C16 0 14 2 13 3C11 5 9.5 6.5 8 7.5M10 4C10.552 4 11 3.552 11 3C11 2.448 10.552 2 10 2C9.448 2 9 2.448 9 3C9 3.552 9.448 4 10 4Z" }),
1281
+ /* @__PURE__ */ e("path", { d: "M2 12C2 12 0 14 0 16C2 16 4 14 4 14" })
1282
+ ] }), at = ({
1283
+ size: t = 16,
1284
+ className: n = "",
1285
+ color: r = "currentColor"
1286
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1287
+ /* @__PURE__ */ e("rect", { x: "6", y: "6", width: "4", height: "4", rx: "0.5" }),
1288
+ /* @__PURE__ */ e("path", { d: "M4 4L2 2M4 12L2 14M12 4L14 2M12 12L14 14", strokeWidth: "1.5", stroke: r, strokeLinecap: "round" }),
1289
+ /* @__PURE__ */ e("rect", { x: "1", y: "1", width: "1.5", height: "1.5" }),
1290
+ /* @__PURE__ */ e("rect", { x: "13.5", y: "1", width: "1.5", height: "1.5" }),
1291
+ /* @__PURE__ */ e("rect", { x: "1", y: "13.5", width: "1.5", height: "1.5" }),
1292
+ /* @__PURE__ */ e("rect", { x: "13.5", y: "13.5", width: "1.5", height: "1.5" }),
1293
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "8", r: "1" })
1294
+ ] }), ot = ({
1295
+ size: t = 16,
1296
+ className: n = "",
1297
+ color: r = "currentColor"
1298
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1299
+ /* @__PURE__ */ e("path", { d: "M8 1C4 1 2 3 2 6C2 8 2 10 3 11C3.5 11.5 4 12 5 12C5.5 12 6 11.5 6.5 10.5C7 9.5 7.5 9 8 9C8.5 9 9 9.5 9.5 10.5C10 11.5 10.5 12 11 12C12 12 12.5 11.5 13 11C14 10 14 8 14 6C14 3 12 1 8 1Z" }),
1300
+ /* @__PURE__ */ e("ellipse", { cx: "6", cy: "5.5", rx: "1.5", ry: "2", fill: "white" }),
1301
+ /* @__PURE__ */ e("ellipse", { cx: "10", cy: "5.5", rx: "1.5", ry: "2", fill: "white" }),
1302
+ /* @__PURE__ */ e("circle", { cx: "6", cy: "5.5", r: "0.75", fill: r }),
1303
+ /* @__PURE__ */ e("circle", { cx: "10", cy: "5.5", r: "0.75", fill: r })
1304
+ ] }), st = ({
1305
+ size: t = 16,
1306
+ className: n = "",
1307
+ color: r = "currentColor"
1308
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1309
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "8", r: "5" }),
1310
+ /* @__PURE__ */ e("ellipse", { cx: "8", cy: "8", rx: "8", ry: "2.5", fill: "none", stroke: r, strokeWidth: "1", opacity: "0.6" }),
1311
+ /* @__PURE__ */ e("circle", { cx: "6", cy: "6", r: "1", opacity: "0.4", fill: r === "currentColor" ? "white" : "#fff" })
1312
+ ] }), dt = ({
1313
+ size: t = 16,
1314
+ className: n = "",
1315
+ color: r = "currentColor"
1316
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1317
+ /* @__PURE__ */ e("path", { d: "M1 8L6 6L14 2L12 10L10 8L8 14H6L8 8L1 8Z" }),
1318
+ /* @__PURE__ */ e("path", { d: "M10 8L12 10", strokeWidth: "1.5", stroke: r })
1319
+ ] }), ht = ({
1320
+ size: t = 16,
1321
+ className: n = "",
1322
+ color: r = "currentColor"
1323
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M1.5 13.5V2.5a.5.5 0 01.5-.5h.5a.5.5 0 01.5.5v11a.5.5 0 01-.5.5H2a.5.5 0 01-.5-.5zM5 13.5V5.5a.5.5 0 01.5-.5H6a.5.5 0 01.5.5v8a.5.5 0 01-.5.5h-.5a.5.5 0 01-.5-.5zM8.5 13.5V7.5a.5.5 0 01.5-.5h.5a.5.5 0 01.5.5v6a.5.5 0 01-.5.5H9a.5.5 0 01-.5-.5zM12 13.5V3.5a.5.5 0 01.5-.5h.5a.5.5 0 01.5.5v10a.5.5 0 01-.5.5h-.5a.5.5 0 01-.5-.5z" }) }), ut = ({
1324
+ size: t = 16,
1325
+ className: n = "",
1326
+ color: r = "currentColor"
1327
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1328
+ /* @__PURE__ */ e("circle", { cx: "5", cy: "4", r: "2" }),
1329
+ /* @__PURE__ */ e("circle", { cx: "11", cy: "4", r: "2" }),
1330
+ /* @__PURE__ */ e("path", { d: "M1 14V12C1 10.5 2.5 9 5 9C7.5 9 9 10.5 9 12V14H1Z" }),
1331
+ /* @__PURE__ */ e("path", { d: "M7 14V12C7 10.5 8.5 9 11 9C13.5 9 15 10.5 15 12V14H7Z" })
1332
+ ] }), ft = ({
1333
+ size: t = 16,
1334
+ className: n = "",
1335
+ color: r = "currentColor"
1336
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1337
+ /* @__PURE__ */ e("path", { d: "M3 1.75C3 .784 3.784 0 4.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0113.25 16h-8.5A1.75 1.75 0 013 14.25V1.75z" }),
1338
+ /* @__PURE__ */ e("path", { d: "M10 0v3.5c0 .275.225.5.5.5H14", fill: r === "currentColor" ? "white" : "#fff" })
1339
+ ] }), gt = ({
1340
+ size: t = 16,
1341
+ className: n = "",
1342
+ color: r = "currentColor"
1343
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M4.75 0a.75.75 0 01.75.75V2h5V.75a.75.75 0 011.5 0V2h1.25c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0113.25 16H2.75A1.75 1.75 0 011 14.25V3.75C1 2.784 1.784 2 2.75 2H4V.75A.75.75 0 014.75 0zM2.5 7.5v6.75c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25V7.5h-11z" }) }), mt = ({
1344
+ size: t = 16,
1345
+ className: n = "",
1346
+ color: r = "currentColor"
1347
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M6.75 0A1.75 1.75 0 005 1.75V3H1.75C.784 3 0 3.784 0 4.75v8.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3H11V1.75A1.75 1.75 0 009.25 0h-2.5zM9.5 3V1.75a.25.25 0 00-.25-.25h-2.5a.25.25 0 00-.25.25V3h3z" }) }), pt = ({
1348
+ size: t = 16,
1349
+ className: n = "",
1350
+ color: r = "currentColor"
1351
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M11.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122V6A2.5 2.5 0 0110 8.5H6a1 1 0 00-1 1v1.128a2.251 2.251 0 11-1.5 0V5.372a2.25 2.25 0 111.5 0v1.836A2.492 2.492 0 016 7h4a1 1 0 001-1v-.628A2.25 2.25 0 019.5 3.25zM4.25 12a.75.75 0 100 1.5.75.75 0 000-1.5zM3.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0z" }) }), vt = ({
1352
+ size: t = 16,
1353
+ className: n = "",
1354
+ color: r = "currentColor"
1355
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1356
+ /* @__PURE__ */ e("path", { d: "M3.25 1A2.25 2.25 0 011 3.25v9.5A2.25 2.25 0 013.25 15h9.5A2.25 2.25 0 0115 12.75v-9.5A2.25 2.25 0 0012.75 1h-9.5zM2.5 3.25a.75.75 0 01.75-.75h9.5a.75.75 0 01.75.75v9.5a.75.75 0 01-.75.75h-9.5a.75.75 0 01-.75-.75v-9.5z" }),
1357
+ /* @__PURE__ */ e("path", { d: "M8 4a.75.75 0 01.75.75v2.5h2.5a.75.75 0 010 1.5h-2.5v2.5a.75.75 0 01-1.5 0v-2.5h-2.5a.75.75 0 010-1.5h2.5v-2.5A.75.75 0 018 4z" })
1358
+ ] }), bt = ({
1359
+ size: t = 16,
1360
+ className: n = "",
1361
+ color: r = "currentColor"
1362
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1363
+ /* @__PURE__ */ e("path", { d: "M6 1h4v1H6V1zM5.5 3h5L13 13c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2L5.5 3z" }),
1364
+ /* @__PURE__ */ e("circle", { cx: "7", cy: "8", r: "1", fill: r === "currentColor" ? "white" : "#fff", opacity: "0.5" }),
1365
+ /* @__PURE__ */ e("circle", { cx: "9", cy: "10", r: "0.75", fill: r === "currentColor" ? "white" : "#fff", opacity: "0.5" })
1366
+ ] }), yt = ({
1367
+ size: t = 16,
1368
+ className: n = "",
1369
+ color: r = "currentColor"
1370
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1371
+ /* @__PURE__ */ e("path", { d: "M8 0L0 3v5c0 5 3 7.5 8 8 5-.5 8-3 8-8V3L8 0z" }),
1372
+ /* @__PURE__ */ e("path", { d: "M7 10L4.5 7.5l1-1L7 8l3.5-3.5 1 1L7 10z", fill: r === "currentColor" ? "white" : "#fff" })
1373
+ ] }), _t = ({
1374
+ size: t = 16,
1375
+ className: n = "",
1376
+ color: r = "currentColor"
1377
+ }) => /* @__PURE__ */ d("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: [
1378
+ /* @__PURE__ */ e("rect", { x: "1", y: "1", width: "9", height: "11", rx: "1" }),
1379
+ /* @__PURE__ */ e("line", { x1: "3", y1: "4", x2: "7", y2: "4", stroke: r === "currentColor" ? "white" : "#fff", strokeWidth: "1" }),
1380
+ /* @__PURE__ */ e("line", { x1: "3", y1: "6.5", x2: "7", y2: "6.5", stroke: r === "currentColor" ? "white" : "#fff", strokeWidth: "1" }),
1381
+ /* @__PURE__ */ e("circle", { cx: "11", cy: "11", r: "3", fill: "none", stroke: r, strokeWidth: "1.5" }),
1382
+ /* @__PURE__ */ e("line", { x1: "13", y1: "13", x2: "15.5", y2: "15.5", stroke: r, strokeWidth: "1.5", strokeLinecap: "round" })
1383
+ ] }), wt = ({
1384
+ size: t = 16,
1385
+ className: n = "",
1386
+ color: r = "currentColor"
1387
+ }) => /* @__PURE__ */ e("svg", { width: t, height: t, viewBox: "0 0 16 16", fill: r, className: n, children: /* @__PURE__ */ e("path", { d: "M4.48 7.27c.26.26 1.28 1.33 1.28 1.33l.56-.58-.88-.91 1.69-1.8s-.76-.74-.43-.45c.32-1.19.03-2.51-.87-3.44C4.93.5 3.66.2 2.52.51l1.93 2-.51 1.96-1.89.52-1.93-2C-.19 4.17.1 5.48 1 6.4c.94.98 2.29 1.26 3.48.87zm6.44 1.94l-2.33 2.3 3.84 3.98c.31.33.73.49 1.14.49.41 0 .82-.16 1.14-.49.63-.65.63-1.7 0-2.35l-3.79-3.93zM16 2.53L13.55 0 6.33 7.46l.88.91-4.31 4.46-.99.53-1.39 2.27.35.37 2.2-1.44.51-1.02L7.9 9.08l.88.91L16 2.53z" }) }), we = {
1388
+ commit: He,
1389
+ pr: Ae,
1390
+ issue: Ee,
1391
+ comment: ze,
1392
+ star: Pe,
1393
+ fork: Te,
1394
+ merge: We,
1395
+ release: Oe,
1396
+ deploy: Ue
1397
+ }, xe = {
1398
+ unfold: Re,
1399
+ fold: je,
1400
+ close: Fe,
1401
+ check: qe
1402
+ }, Et = {
1403
+ taichi: Ke,
1404
+ meditation: Ze,
1405
+ yoga: Ge
1406
+ }, zt = {
1407
+ dumbbell: Je,
1408
+ running: Ye,
1409
+ heartrate: Qe,
1410
+ strength: Xe
1411
+ }, Pt = {
1412
+ server: et,
1413
+ database: tt,
1414
+ cloud: rt,
1415
+ terminal: nt,
1416
+ bug: it,
1417
+ code: lt
1418
+ }, Tt = {
1419
+ rocket: ct,
1420
+ satellite: at,
1421
+ alien: ot,
1422
+ planet: st,
1423
+ telescope: dt
1424
+ }, Wt = {
1425
+ chart: ht,
1426
+ meeting: ut,
1427
+ document: ft,
1428
+ calendar: gt,
1429
+ briefcase: mt
1430
+ }, Ot = {
1431
+ gitbranch: pt,
1432
+ prdraft: vt,
1433
+ testing: bt,
1434
+ deployment: yt,
1435
+ review: _t,
1436
+ build: wt
1437
+ }, xt = (t) => {
1438
+ const n = we[t] || we.commit;
1439
+ return /* @__PURE__ */ e(n, { size: 16 });
1440
+ }, ve = (t, n = 2) => {
1441
+ if (t.length === 0) return [];
1442
+ const r = [];
1443
+ let i = [], h = null;
1444
+ return t.forEach((p, u) => {
1445
+ h === p.type ? i.push(p) : (i.length >= n && h ? r.push(ke(i, h)) : i.forEach((f) => {
1446
+ r.push({
1447
+ id: f.id.toString(),
1448
+ type: f.type,
1449
+ count: 1,
1450
+ title: f.title,
1451
+ timestamp: new Date(f.timestamp),
1452
+ icon: f.icon,
1453
+ events: [f]
1454
+ });
1455
+ }), i = [p], h = p.type), u === t.length - 1 && (i.length >= n && h ? r.push(ke(i, h)) : i.forEach((f) => {
1456
+ r.push({
1457
+ id: f.id.toString(),
1458
+ type: f.type,
1459
+ count: 1,
1460
+ title: f.title,
1461
+ timestamp: new Date(f.timestamp),
1462
+ icon: f.icon,
1463
+ events: [f]
1464
+ });
1465
+ }));
1466
+ }), r;
1467
+ }, ke = (t, n) => {
1468
+ const r = t.reduce(
1469
+ (u, f) => {
1470
+ const k = f.metadata?.repository || "unknown";
1471
+ return u[k] || (u[k] = []), u[k].push(f), u;
1472
+ },
1473
+ {}
1474
+ ), i = Object.entries(r), h = i.length > 1;
1475
+ let p = "";
1476
+ if (h)
1477
+ p = `Created ${t.length} ${be(n)} in ${i.length} repositories`;
1478
+ else {
1479
+ const u = i[0][0];
1480
+ p = `Created ${t.length} ${be(n)}${u !== "unknown" ? ` in ${u}` : ""}`;
1481
+ }
1482
+ return {
1483
+ id: `group-${n}-${t[0].id}`,
1484
+ type: n,
1485
+ count: t.length,
1486
+ title: p,
1487
+ timestamp: new Date(t[0].timestamp),
1488
+ icon: t[0].icon,
1489
+ events: t,
1490
+ children: h ? i.map(([u, f]) => ({
1491
+ id: `group-${n}-${u}`,
1492
+ type: n,
1493
+ count: f.length,
1494
+ title: `Created ${f.length} ${be(n)} in ${u}`,
1495
+ timestamp: new Date(f[0].timestamp),
1496
+ icon: f[0].icon,
1497
+ events: f
1498
+ })) : void 0
1499
+ };
1500
+ }, be = (t) => ({
1501
+ pr: "pull requests",
1502
+ issue: "issues",
1503
+ commit: "commits",
1504
+ comment: "comments",
1505
+ star: "stars",
1506
+ fork: "forks",
1507
+ merge: "merges",
1508
+ release: "releases",
1509
+ deploy: "deployments"
1510
+ })[t] || `${t}s`, ye = (t) => {
1511
+ if (t.length === 0) return [];
1512
+ const n = [];
1513
+ let r = null;
1514
+ return t.forEach((i, h) => {
1515
+ if ("type" in i && i.type === "date-separator") {
1516
+ n.push(i);
1517
+ return;
1518
+ }
1519
+ const u = i.timestamp, f = `${u.getFullYear()}-${u.getMonth()}`;
1520
+ if (f !== r) {
1521
+ const k = {
1522
+ id: `sep-${h}`,
1523
+ type: "date-separator",
1524
+ date: u,
1525
+ label: kt(u)
1526
+ };
1527
+ n.push(k), r = f;
1528
+ }
1529
+ n.push(i);
1530
+ }), n;
1531
+ }, kt = (t) => t.toLocaleDateString("en-US", { month: "long", year: "numeric" }), Ct = (t) => {
1532
+ const n = typeof t == "string" ? new Date(t) : t, i = (/* @__PURE__ */ new Date()).getTime() - n.getTime(), h = Math.floor(i / 1e3), p = Math.floor(h / 60), u = Math.floor(p / 60), f = Math.floor(u / 24);
1533
+ return h < 60 ? "just now" : p < 60 ? `${p}m ago` : u < 24 ? `${u}h ago` : f < 30 ? `${f}d ago` : n.toLocaleDateString();
1534
+ }, Ut = ({
1535
+ events: t,
1536
+ theme: n = "light",
1537
+ className: r = "",
1538
+ showLoadMore: i = !0,
1539
+ loading: h = !1,
1540
+ onLoadMore: p,
1541
+ pagination: u,
1542
+ maxHeight: f,
1543
+ showMoreThreshold: k = 100,
1544
+ initiallyExpandedAll: Z = !1,
1545
+ emptyMessage: H = "No activity to display",
1546
+ onToggleExpand: F,
1547
+ enableGrouping: s = !0,
1548
+ groupingThreshold: S = 2,
1549
+ showDateSeparators: D = !0,
1550
+ showTimeline: q = !0,
1551
+ scale: A = 1,
1552
+ renderIcon: C,
1553
+ renderEvent: z
1554
+ }) => {
1555
+ const [ie, X] = j(() => {
1556
+ const c = /* @__PURE__ */ new Set();
1557
+ return (s ? D ? ye(ve(t, S)) : ve(t, S) : t.map((_) => ({
1558
+ id: _.id.toString(),
1559
+ type: _.type,
1560
+ count: 1,
1561
+ title: _.title,
1562
+ timestamp: new Date(_.timestamp),
1563
+ icon: _.icon,
1564
+ events: [_]
1565
+ }))).forEach((_) => {
1566
+ if ("events" in _ && _.type !== "date-separator") {
1567
+ const M = _;
1568
+ (Z || M.events.some((U) => U.initiallyExpanded)) && c.add(M.id), M.children && M.children.forEach((U) => {
1569
+ (Z || U.events.some((m) => m.initiallyExpanded)) && c.add(U.id);
1570
+ });
1571
+ }
1572
+ }), c;
1573
+ }), [$, J] = j(!1), I = G(null), O = G(null), P = te(() => {
1574
+ if (!s) {
1575
+ const E = t.map((_) => ({
1576
+ id: _.id.toString(),
1577
+ type: _.type,
1578
+ count: 1,
1579
+ title: _.title,
1580
+ timestamp: new Date(_.timestamp),
1581
+ icon: _.icon,
1582
+ events: [_]
1583
+ }));
1584
+ return D ? ye(E) : E;
1585
+ }
1586
+ const c = ve(t, S);
1587
+ return D ? ye(c) : c;
1588
+ }, [t, s, S, D]), a = L(() => {
1589
+ if (!O.current || !i || !p) return;
1590
+ const { scrollTop: c, scrollHeight: E, clientHeight: _ } = O.current, M = E - c - _;
1591
+ J(M <= k);
1592
+ }, [i, p, k]);
1593
+ ne(() => {
1594
+ const c = O.current;
1595
+ if (c)
1596
+ return c.addEventListener("scroll", a), a(), () => {
1597
+ c.removeEventListener("scroll", a);
1598
+ };
1599
+ }, [a]);
1600
+ const v = L(
1601
+ (c, E) => {
1602
+ X((_) => {
1603
+ const M = new Set(_), U = M.has(c);
1604
+ return U ? M.delete(c) : M.add(c), F?.(E, !U), M;
1605
+ });
1606
+ },
1607
+ [F]
1608
+ ), g = (c, E = !1) => {
1609
+ const _ = ie.has(c.id), M = c.children && c.children.length > 0, U = c.count > 1, m = c.count === 1 && c.events[0]?.description, l = U || M || m, x = c.count === 1 && c.events.length === 1 ? c.events[0].id : c.id;
1610
+ return z && c.count === 1 && c.events.length === 1 ? /* @__PURE__ */ d(
1611
+ "div",
1612
+ {
1613
+ className: `activity-stream__item ${E ? "activity-stream__item--child" : ""}`,
1614
+ "data-event-id": c.id,
1615
+ children: [
1616
+ q && !E && /* @__PURE__ */ e("div", { className: "activity-stream__timeline-marker" }),
1617
+ z(c.events[0])
1618
+ ]
1619
+ },
1620
+ c.id
1621
+ ) : /* @__PURE__ */ d(
1622
+ "div",
1623
+ {
1624
+ className: `activity-stream__item ${E ? "activity-stream__item--child" : ""}`,
1625
+ "data-event-id": c.id,
1626
+ children: [
1627
+ q && !E && /* @__PURE__ */ e("div", { className: "activity-stream__timeline-marker" }),
1628
+ /* @__PURE__ */ e("div", { className: "activity-stream__icon", children: C && c.events.length === 1 ? C(c.events[0]) : c.icon || xt(c.type) }),
1629
+ /* @__PURE__ */ d("div", { className: "activity-stream__content", children: [
1630
+ /* @__PURE__ */ d(
1631
+ "div",
1632
+ {
1633
+ className: `activity-stream__header ${l ? "activity-stream__header--clickable" : ""}`,
1634
+ onClick: () => l && v(c.id, x),
1635
+ onKeyDown: (w) => {
1636
+ l && (w.key === "Enter" || w.key === " ") && (w.preventDefault(), v(c.id, x));
1637
+ },
1638
+ role: l ? "button" : void 0,
1639
+ tabIndex: l ? 0 : void 0,
1640
+ "aria-expanded": l ? _ : void 0,
1641
+ children: [
1642
+ /* @__PURE__ */ e("div", { className: "activity-stream__title", children: c.title }),
1643
+ /* @__PURE__ */ e("div", { className: "activity-stream__timestamp", children: Ct(c.timestamp) }),
1644
+ l && /* @__PURE__ */ e("div", { className: "activity-stream__toggle", children: _ ? /* @__PURE__ */ e(xe.fold, { size: 16 }) : /* @__PURE__ */ e(xe.unfold, { size: 16 }) })
1645
+ ]
1646
+ }
1647
+ ),
1648
+ _ && M && c.children && /* @__PURE__ */ e("div", { className: "activity-stream__children", children: c.children.map((w) => g(w, !0)) }),
1649
+ _ && !M && c.events.length > 1 && /* @__PURE__ */ e("div", { className: "activity-stream__events-list", children: c.events.map(
1650
+ (w) => z ? /* @__PURE__ */ e("div", { className: "activity-stream__event-item", children: z(w) }, w.id) : /* @__PURE__ */ d("div", { className: "activity-stream__event-item", children: [
1651
+ /* @__PURE__ */ e("div", { className: "activity-stream__event-title", children: w.title }),
1652
+ w.description && /* @__PURE__ */ e("div", { className: "activity-stream__event-description", children: w.description })
1653
+ ] }, w.id)
1654
+ ) }),
1655
+ _ && c.count === 1 && c.events[0].description && /* @__PURE__ */ e("div", { className: "activity-stream__description", children: c.events[0].description })
1656
+ ] })
1657
+ ]
1658
+ },
1659
+ c.id
1660
+ );
1661
+ }, y = (c) => /* @__PURE__ */ d("div", { className: "activity-stream__date-separator", children: [
1662
+ /* @__PURE__ */ e("div", { className: "activity-stream__date-label", children: c.label }),
1663
+ /* @__PURE__ */ e("div", { className: "activity-stream__date-line" })
1664
+ ] }, c.id), K = u?.hasMore !== void 0 ? u.hasMore : u?.totalItems !== void 0 ? t.length < u.totalItems : !0, T = "activity-stream", le = `${T}--${n}`, re = q ? `${T}--with-timeline` : "";
1665
+ let Q = `${T} ${le} ${re} ${r}`.trim();
1666
+ return A && A < 1 && (Q = `${Q} ${T}--compact`), A && A > 1 && (Q = `${Q} ${T}--spacious`), /* @__PURE__ */ e("div", { ref: I, className: Q, "data-theme": n, children: /* @__PURE__ */ d(
1667
+ "div",
1668
+ {
1669
+ ref: O,
1670
+ className: "activity-stream__container",
1671
+ style: {
1672
+ ...f ? { maxHeight: f } : void 0,
1673
+ ...{ "--activity-stream-scale": A }
1674
+ },
1675
+ children: [
1676
+ P.length === 0 ? /* @__PURE__ */ e("div", { className: "activity-stream__empty", children: H }) : /* @__PURE__ */ e("div", { className: "activity-stream__items", children: P.map(
1677
+ (c) => "type" in c && c.type === "date-separator" ? y(c) : g(c)
1678
+ ) }),
1679
+ h && /* @__PURE__ */ d("div", { className: "activity-stream__loading", children: [
1680
+ /* @__PURE__ */ e("div", { className: "activity-stream__spinner" }),
1681
+ /* @__PURE__ */ e("span", { children: "Loading..." })
1682
+ ] }),
1683
+ i && !h && K && p && /* @__PURE__ */ e(
1684
+ "div",
1685
+ {
1686
+ className: `activity-stream__load-more ${$ ? "activity-stream__load-more--visible" : ""}`,
1687
+ onClick: p,
1688
+ onKeyDown: (c) => {
1689
+ (c.key === "Enter" || c.key === " ") && (c.preventDefault(), p());
1690
+ },
1691
+ role: "button",
1692
+ tabIndex: 0,
1693
+ "aria-label": "Load more activities",
1694
+ children: "Show more"
1695
+ }
1696
+ )
1697
+ ]
1698
+ }
1699
+ ) });
1700
+ }, $t = () => /* @__PURE__ */ d(
1701
+ "svg",
1702
+ {
1703
+ width: "64",
1704
+ height: "64",
1705
+ viewBox: "0 0 64 64",
1706
+ fill: "none",
1707
+ xmlns: "http://www.w3.org/2000/svg",
1708
+ className: "uiforge-video__play-icon",
1709
+ children: [
1710
+ /* @__PURE__ */ e("circle", { cx: "32", cy: "32", r: "32", fill: "white", fillOpacity: "0.9" }),
1711
+ /* @__PURE__ */ e(
1712
+ "path",
1713
+ {
1714
+ d: "M26 20L46 32L26 44V20Z",
1715
+ fill: "currentColor",
1716
+ style: { color: "#3b82f6" }
1717
+ }
1718
+ )
1719
+ ]
1720
+ }
1721
+ ), Nt = () => /* @__PURE__ */ d(
1722
+ "svg",
1723
+ {
1724
+ width: "20",
1725
+ height: "20",
1726
+ viewBox: "0 0 20 20",
1727
+ fill: "currentColor",
1728
+ xmlns: "http://www.w3.org/2000/svg",
1729
+ className: "uiforge-video-preview__icon",
1730
+ children: [
1731
+ /* @__PURE__ */ e("path", { d: "M2 5a2 2 0 012-2h12a2 2 0 012 2v10a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm2-1a1 1 0 00-1 1v10a1 1 0 001 1h12a1 1 0 001-1V5a1 1 0 00-1-1H4z" }),
1732
+ /* @__PURE__ */ e("path", { d: "M8 7l5 3-5 3V7z" })
1733
+ ]
1734
+ }
1735
+ ), Rt = ({
1736
+ title: t,
1737
+ description: n,
1738
+ youtubeId: r,
1739
+ vimeoId: i,
1740
+ thumbnailUrl: h,
1741
+ onPlay: p,
1742
+ className: u = "",
1743
+ overlayIcon: f,
1744
+ aspectRatio: k = "16/9"
1745
+ }) => {
1746
+ const [Z, H] = j(!1), F = G(null), s = r ? "youtube" : i ? "vimeo" : null, S = r || i || "", D = te(() => !s || !S ? "" : s === "youtube" ? `https://www.youtube.com/embed/${S}?autoplay=1&rel=0` : s === "vimeo" ? `https://player.vimeo.com/video/${S}?autoplay=1` : "", [s, S]), q = te(() => {
1747
+ if (h) return h;
1748
+ if (s === "youtube" && r)
1749
+ return `https://img.youtube.com/vi/${r}/maxresdefault.jpg`;
1750
+ if (s === "vimeo" && i)
1751
+ return;
1752
+ }, [h, s, r, i]), A = L(() => {
1753
+ !s || !S || (H(!0), p && p(S, s));
1754
+ }, [s, S, p]);
1755
+ if (!r && !i)
1756
+ return console.warn("UIForgeVideo: Either youtubeId or vimeoId must be provided"), null;
1757
+ const C = "uiforge-video", z = `${C} ${u}`.trim();
1758
+ return /* @__PURE__ */ d("div", { className: z, children: [
1759
+ /* @__PURE__ */ d("div", { className: `${C}__header`, children: [
1760
+ /* @__PURE__ */ e("h3", { className: `${C}__title`, children: t }),
1761
+ n && /* @__PURE__ */ e("p", { className: `${C}__description`, children: n })
1762
+ ] }),
1763
+ /* @__PURE__ */ e(
1764
+ "div",
1765
+ {
1766
+ className: `${C}__player-container`,
1767
+ style: { aspectRatio: k },
1768
+ children: Z ? /* @__PURE__ */ e(
1769
+ "iframe",
1770
+ {
1771
+ ref: F,
1772
+ src: D,
1773
+ title: t,
1774
+ className: `${C}__iframe`,
1775
+ allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
1776
+ allowFullScreen: !0
1777
+ }
1778
+ ) : /* @__PURE__ */ d(_e, { children: [
1779
+ q && /* @__PURE__ */ e(
1780
+ "img",
1781
+ {
1782
+ src: q,
1783
+ alt: t,
1784
+ className: `${C}__thumbnail`
1785
+ }
1786
+ ),
1787
+ /* @__PURE__ */ e(
1788
+ "button",
1789
+ {
1790
+ className: `${C}__overlay`,
1791
+ onClick: A,
1792
+ "aria-label": `Play video: ${t}`,
1793
+ type: "button",
1794
+ children: f || /* @__PURE__ */ e($t, {})
1795
+ }
1796
+ )
1797
+ ] })
1798
+ }
1799
+ )
1800
+ ] });
1801
+ }, jt = ({
1802
+ title: t,
1803
+ icon: n,
1804
+ className: r = "",
1805
+ onClick: i
1806
+ }) => {
1807
+ const h = "uiforge-video-preview", p = `${h} ${r}`.trim();
1808
+ return /* @__PURE__ */ d(i ? "button" : "div", { className: p, ...i ? {
1809
+ type: "button",
1810
+ onClick: () => {
1811
+ i && i();
1812
+ },
1813
+ onKeyDown: (H) => {
1814
+ i && (H.key === "Enter" || H.key === " ") && (H.preventDefault(), i());
1815
+ }
1816
+ } : {}, children: [
1817
+ /* @__PURE__ */ e("div", { className: `${h}__icon-container`, children: n || /* @__PURE__ */ e(Nt, {}) }),
1818
+ /* @__PURE__ */ e("span", { className: `${h}__title`, children: t })
1819
+ ] });
1820
+ };
1821
+ export {
1822
+ we as ActivityIcons,
1823
+ ot as AlienIcon,
1824
+ mt as BriefcaseIcon,
1825
+ it as BugIcon,
1826
+ wt as BuildIcon,
1827
+ Wt as BusinessIcons,
1828
+ It as Button,
1829
+ gt as CalendarIcon,
1830
+ ht as ChartIcon,
1831
+ qe as CheckIcon,
1832
+ Fe as CloseIcon,
1833
+ rt as CloudIcon,
1834
+ lt as CodeIcon,
1835
+ ze as CommentIcon,
1836
+ He as CommitIcon,
1837
+ tt as DatabaseIcon,
1838
+ Ue as DeployIcon,
1839
+ yt as DeploymentIcon,
1840
+ Ot as DevProcessIcons,
1841
+ ft as DocumentIcon,
1842
+ Je as DumbbellIcon,
1843
+ zt as FitnessIcons,
1844
+ je as FoldIcon,
1845
+ Te as ForkIcon,
1846
+ pt as GitBranchIcon,
1847
+ Qe as HeartRateIcon,
1848
+ Ee as IssueIcon,
1849
+ Ze as MeditationIcon,
1850
+ ut as MeetingIcon,
1851
+ We as MergeIcon,
1852
+ st as PlanetIcon,
1853
+ vt as PullRequestDraftIcon,
1854
+ Ae as PullRequestIcon,
1855
+ Oe as ReleaseIcon,
1856
+ _t as ReviewIcon,
1857
+ ct as RocketIcon,
1858
+ Ye as RunningIcon,
1859
+ at as SatelliteIcon,
1860
+ et as ServerIcon,
1861
+ Tt as SpaceIcons,
1862
+ Pe as StarIcon,
1863
+ Xe as StrengthIcon,
1864
+ Ke as TaiChiIcon,
1865
+ Pt as TechIcons,
1866
+ dt as TelescopeIcon,
1867
+ nt as TerminalIcon,
1868
+ bt as TestingIcon,
1869
+ Ut as UIForgeActivityStream,
1870
+ St as UIForgeBlocksEditor,
1871
+ At as UIForgeComboBox,
1872
+ Bt as UIForgeGrid,
1873
+ Rt as UIForgeVideo,
1874
+ jt as UIForgeVideoPreview,
1875
+ xe as UIIcons,
1876
+ Re as UnfoldIcon,
1877
+ Et as WellnessIcons,
1878
+ Ge as YogaIcon,
1879
+ Dt as blocksToHTML,
1880
+ Ht as blocksToJSON,
1881
+ Vt as blocksToMarkdown
1882
+ };