fiboui 2.6.4 → 2.7.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 (50) hide show
  1. package/README.md +16 -6
  2. package/dist/cli/bin.js +3 -4
  3. package/dist/cli/commands/generate/component.js +21 -33
  4. package/dist/cli/commands/generate/index.js +3 -3
  5. package/dist/cli/commands/generate/module.js +21 -24
  6. package/dist/cli/commands/generate/plugin.js +18 -34
  7. package/dist/cli/commands/init.js +5 -25
  8. package/dist/cli/config.js +118 -0
  9. package/dist/cli/names.js +35 -0
  10. package/dist/cli/templates.js +76 -0
  11. package/dist/client-CGjHCx8F.js +17621 -0
  12. package/dist/content.d.ts +1 -0
  13. package/dist/content.js +14 -14
  14. package/dist/core.d.ts +2 -0
  15. package/dist/core.js +65 -59
  16. package/dist/effects-BxvduC-G.js +14 -0
  17. package/dist/icons-GEqYd2M9.js +383 -0
  18. package/dist/index-7bieEGAP.js +944 -0
  19. package/dist/index-C4qvvr03.js +1474 -0
  20. package/dist/index-D-ljLuf8.js +839 -0
  21. package/dist/index-DVApKYWt.js +217 -0
  22. package/dist/index-Db8lVjta.js +150 -0
  23. package/dist/index.d.ts +73156 -505
  24. package/dist/index.js +4419 -2238
  25. package/dist/interactive.d.ts +2 -0
  26. package/dist/interactive.js +22 -9
  27. package/dist/layout.d.ts +1 -0
  28. package/dist/layout.js +14 -13
  29. package/dist/metadata-3YYH1uiS.js +147 -0
  30. package/dist/navigation.d.ts +1 -0
  31. package/dist/navigation.js +15 -9
  32. package/dist/page-CYqQOLXe.js +266 -0
  33. package/dist/server.d.ts +2 -0
  34. package/dist/server.js +5001 -1777
  35. package/dist/structure.d.ts +1 -0
  36. package/dist/structure.js +13 -9
  37. package/dist/style.css +1 -1
  38. package/dist/theme.d.ts +2 -0
  39. package/dist/theme.js +8 -8
  40. package/package.json +9 -2
  41. package/dist/Link-YjcbA4af.js +0 -50
  42. package/dist/PluginManager-BRjgOLVa.js +0 -110
  43. package/dist/client-DzQ13khL.js +0 -10605
  44. package/dist/effects-D16XdB_d.js +0 -10
  45. package/dist/index-B-cCNvV4.js +0 -455
  46. package/dist/index-Bj-IMHC8.js +0 -119
  47. package/dist/index-CWyBsVAL.js +0 -608
  48. package/dist/index-CYisDyI8.js +0 -602
  49. package/dist/index-Dil2ZG0X.js +0 -1028
  50. package/dist/mount-CDwiTTXM.js +0 -135
@@ -1,1028 +0,0 @@
1
- var U = Object.defineProperty;
2
- var G = (n, s, e) => s in n ? U(n, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[s] = e;
3
- var r = (n, s, e) => G(n, typeof s != "symbol" ? s + "" : s, e);
4
- import t from "react";
5
- import { at as C, au as F, a4 as j, $ as O } from "./client-DzQ13khL.js";
6
- import { R as J } from "./index-Bj-IMHC8.js";
7
- import { jsxs as $, jsx as f } from "react/jsx-runtime";
8
- const K = ({ size: n }) => t.createElement(
9
- "svg",
10
- {
11
- width: n,
12
- height: n,
13
- viewBox: "0 0 24 24",
14
- "aria-hidden": !0,
15
- className: "fibo-avatar-user"
16
- },
17
- t.createElement("circle", { cx: 12, cy: 12, r: 12, fill: "#f2f2f2" }),
18
- t.createElement("circle", { cx: 12, cy: 9.4, r: 3.6, fill: "#6a6a6a" }),
19
- t.createElement("path", {
20
- d: "M5.6 19.2c.9-3.1 3.4-5 6.4-5s5.5 1.9 6.4 5C16.6 20.6 14.4 21.4 12 21.4s-4.6-.8-6.4-2.2z",
21
- fill: "#6a6a6a"
22
- })
23
- ), Q = t.memo((n) => {
24
- const { image: s, size: e, border: a, shape: i, status: o, initials: h, icon: d, className: y, style: p } = n, c = typeof e == "number" ? `${e}px` : e, u = typeof e == "number" ? e : 40, S = {
25
- circle: "50%",
26
- rounded: "24%",
27
- square: "0"
28
- }, z = {
29
- none: "transparent",
30
- online: "#10B981",
31
- offline: "#9CA3AF",
32
- busy: "#EF4444"
33
- }, A = o !== "none" ? j().style({
34
- position: "absolute",
35
- bottom: "-2%",
36
- right: "-2%",
37
- width: "28%",
38
- height: "28%",
39
- minWidth: "10px",
40
- minHeight: "10px",
41
- backgroundColor: z[o],
42
- borderRadius: "50%",
43
- border: "3px solid #ffffff",
44
- boxSizing: "content-box"
45
- }).build() : null, k = s ? null : h ? String(h).slice(0, 2).toUpperCase() : d === "user" ? t.createElement(K, { size: c }) : d || null;
46
- return j().className(`fibo-avatar ${y || ""}`).style({
47
- position: "relative",
48
- width: c,
49
- height: c,
50
- borderRadius: S[i],
51
- backgroundImage: s ? `url(${s})` : void 0,
52
- backgroundColor: s ? void 0 : (p == null ? void 0 : p.backgroundColor) || (h ? "#ddd" : "transparent"),
53
- backgroundSize: "cover",
54
- backgroundPosition: "center",
55
- border: a,
56
- boxShadow: a !== "none" ? "0 2px 8px rgba(0,0,0,0.05)" : "none",
57
- display: "flex",
58
- alignItems: "center",
59
- justifyContent: "center",
60
- overflow: "hidden",
61
- color: (p == null ? void 0 : p.color) || "#555",
62
- fontSize: u * 0.42,
63
- fontWeight: 500,
64
- lineHeight: 1,
65
- ...p
66
- }).children([k, A]).build();
67
- });
68
- class X extends F {
69
- constructor() {
70
- super(...arguments);
71
- r(this, "_image", "");
72
- r(this, "_size", 40);
73
- r(this, "_border", "none");
74
- r(this, "_shape", "circle");
75
- r(this, "_status", "none");
76
- r(this, "_initials");
77
- r(this, "_icon");
78
- }
79
- image(e) {
80
- return this._image = e, this;
81
- }
82
- size(e) {
83
- return this._size = e, this;
84
- }
85
- border(e) {
86
- return this._border = e, this;
87
- }
88
- shape(e) {
89
- return this._shape = e, this;
90
- }
91
- status(e) {
92
- return this._status = e, this;
93
- }
94
- initials(e) {
95
- return this._initials = e, this;
96
- }
97
- icon(e = "user") {
98
- return this._icon = e, this;
99
- }
100
- build() {
101
- const e = {
102
- image: this._image,
103
- size: this._size,
104
- border: this._border,
105
- shape: this._shape,
106
- status: this._status,
107
- initials: this._initials,
108
- icon: this._icon,
109
- className: this.getClassName(),
110
- style: this.getStyle()
111
- };
112
- return t.createElement(Q, e);
113
- }
114
- }
115
- const ye = C(X), Y = t.memo((n) => {
116
- const { text: s, icon: e, variant: a, intent: i, shape: o, className: h, style: d } = n, y = {
117
- none: { bg: "#F9FAFB", text: "#6B7280", border: "#E5E7EB" },
118
- success: { bg: "#ECFDF5", text: "#059669", border: "transparent" },
119
- warning: { bg: "#FFFBEB", text: "#D97706", border: "transparent" },
120
- error: { bg: "#FFF1F2", text: "#E11D48", border: "transparent" },
121
- info: { bg: "#EFF6FF", text: "#2563EB", border: "transparent" }
122
- };
123
- let c = { ...{
124
- neutral: { backgroundColor: "#F9FAFB", color: "#6B7280", border: "1px solid #E5E7EB" },
125
- accent: { backgroundColor: "#EFF6FF", color: "#3B82F6", border: "none" },
126
- outline: { backgroundColor: "transparent", color: "#FFFFFF", border: "1px solid rgba(255,255,255,0.3)" },
127
- glass: {
128
- backgroundColor: "rgba(255, 255, 255, 0.85)",
129
- backdropFilter: "blur(12px)",
130
- color: "#111827",
131
- border: "1px solid rgba(255, 255, 255, 0.4)"
132
- },
133
- solid: { backgroundColor: "#111827", color: "#FFFFFF", border: "none" },
134
- dot: { backgroundColor: "transparent", color: "#6B7280", border: "1px solid #E5E7EB", padding: "4px 10px" }
135
- }[a] };
136
- if (i !== "none") {
137
- const S = y[i];
138
- if (a === "solid") {
139
- const z = {
140
- none: "#111827",
141
- success: "#059669",
142
- warning: "#D97706",
143
- error: "#E11D48",
144
- info: "#2563EB"
145
- };
146
- c.backgroundColor = z[i], c.color = "#FFFFFF";
147
- } else a === "dot" ? (c.color = "#374151", c.borderColor = "#E5E7EB") : (c.backgroundColor = S.bg, c.color = S.text, S.border ? c.border = `1px solid ${S.border}` : c.border = "none");
148
- }
149
- const u = {
150
- pill: "9999px",
151
- rounded: "8px"
152
- };
153
- return j().className(h).style({
154
- ...c,
155
- borderRadius: u[o],
156
- padding: a === "dot" ? "4px 8px" : "4px 10px",
157
- display: "inline-flex",
158
- alignItems: "center",
159
- justifyContent: "center",
160
- height: "fit-content",
161
- fontSize: "11px",
162
- lineHeight: "1",
163
- fontWeight: 600,
164
- ...d
165
- }).children(
166
- J().gap(6).alignItems("center").children([
167
- a === "dot" && i !== "none" ? j().style({
168
- width: "6px",
169
- height: "6px",
170
- borderRadius: "50%",
171
- backgroundColor: y[i].text,
172
- boxShadow: `0 0 6px ${y[i].text}66`
173
- }).build() : null,
174
- e ? j().classNames(["flex", "items-center"]).children(e).build() : null,
175
- O(s).fontSize(12).fontWeight(600).style({ color: "inherit" }).build()
176
- ]).build()
177
- ).build();
178
- });
179
- class Z extends F {
180
- constructor() {
181
- super(...arguments);
182
- r(this, "_text", "");
183
- r(this, "_icon");
184
- r(this, "_variant", "neutral");
185
- r(this, "_intent", "none");
186
- r(this, "_shape", "rounded");
187
- }
188
- text(e) {
189
- return this._text = e, this;
190
- }
191
- icon(e) {
192
- return this._icon = e, this;
193
- }
194
- variant(e) {
195
- return this._variant = e, this;
196
- }
197
- intent(e) {
198
- return this._intent = e, this;
199
- }
200
- shape(e) {
201
- return this._shape = e, this;
202
- }
203
- build() {
204
- const e = {
205
- text: this._text,
206
- icon: this._icon,
207
- variant: this._variant,
208
- intent: this._intent,
209
- shape: this._shape,
210
- className: this.getClassName(),
211
- style: this.getStyle()
212
- };
213
- return t.createElement(Y, e);
214
- }
215
- }
216
- const _e = C(Z), ee = t.memo((n) => {
217
- const { text: s, htmlFor: e, required: a, className: i, style: o, ...h } = n;
218
- return t.createElement(
219
- "label",
220
- {
221
- className: `fibo-label text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 ${i}`,
222
- htmlFor: e,
223
- style: o,
224
- ...h
225
- },
226
- s,
227
- a && t.createElement("span", { className: "text-red-500 ml-0.5" }, "*")
228
- );
229
- });
230
- class te extends F {
231
- constructor(e = "") {
232
- super();
233
- r(this, "_text", "");
234
- r(this, "_htmlFor");
235
- r(this, "_required", !1);
236
- this._text = e;
237
- }
238
- text(e) {
239
- return this._text = e, this;
240
- }
241
- htmlFor(e) {
242
- return this._htmlFor = e, this;
243
- }
244
- required(e = !0) {
245
- return this._required = e, this;
246
- }
247
- build() {
248
- const e = {
249
- text: this._text,
250
- htmlFor: this._htmlFor,
251
- required: this._required,
252
- className: this.getClassName(),
253
- style: this.getStyle(),
254
- ...this._props
255
- };
256
- return t.createElement(ee, e);
257
- }
258
- }
259
- const ve = C(te), re = t.memo((n) => {
260
- const {
261
- src: s,
262
- alt: e,
263
- fit: a,
264
- resizable: i,
265
- clipShape: o,
266
- frameWidth: h,
267
- frameHeight: d,
268
- className: y,
269
- style: p,
270
- ...c
271
- } = n, u = { ...p };
272
- return u.objectFit = a, h && (u.width = `${h}px`), d && (u.height = `${d}px`), i && (u.maxWidth = "100%", u.height = "auto"), t.createElement("img", {
273
- src: s,
274
- alt: e,
275
- className: y,
276
- style: u,
277
- ...c
278
- });
279
- });
280
- class se extends F {
281
- constructor(e = "") {
282
- super();
283
- r(this, "_src", "");
284
- r(this, "_alt", "");
285
- r(this, "_fit", "cover");
286
- r(this, "_resizable", !1);
287
- r(this, "_clipShape");
288
- r(this, "_frameWidth");
289
- r(this, "_frameHeight");
290
- r(this, "_foregroundStyle");
291
- this._src = e;
292
- }
293
- src(e) {
294
- return this._src = e, this;
295
- }
296
- alt(e) {
297
- return this._alt = e, this;
298
- }
299
- resizable() {
300
- return this._resizable = !0, this;
301
- }
302
- scaledToFit() {
303
- return this._fit = "contain", this;
304
- }
305
- scaledToFill() {
306
- return this._fit = "cover", this;
307
- }
308
- frame(e) {
309
- return this._frameWidth = e.width, this._frameHeight = e.height, this;
310
- }
311
- clipShape(e) {
312
- return this._clipShape = e, this;
313
- }
314
- foregroundStyle(e) {
315
- return this._foregroundStyle = e, this;
316
- }
317
- build() {
318
- const e = ["fibo-image", ...this._classNames];
319
- this._clipShape === "circle" ? e.push("rounded-full") : this._clipShape === "rounded" && e.push("rounded-lg");
320
- const a = e.filter(Boolean).join(" "), i = this.getStyle();
321
- this._foregroundStyle && (i.color = this._foregroundStyle);
322
- const o = {
323
- src: this._src,
324
- alt: this._alt,
325
- fit: this._fit,
326
- resizable: this._resizable,
327
- clipShape: this._clipShape,
328
- frameWidth: this._frameWidth,
329
- frameHeight: this._frameHeight,
330
- className: a,
331
- style: i,
332
- ...this._props
333
- };
334
- return t.createElement(re, o);
335
- }
336
- }
337
- const ke = C(se), ne = t.memo((n) => {
338
- const { size: s, color: e, variant: a = "circle", className: i, style: o, ...h } = n, y = typeof s == "number" ? s : {
339
- sm: 16,
340
- md: 24,
341
- lg: 32,
342
- xl: 48
343
- }[s] || 24, p = e || "currentColor", c = {
344
- className: `fibo-spinner ${i}`,
345
- style: { width: y, height: y, ...o },
346
- role: "status",
347
- "aria-live": "polite",
348
- "aria-label": n["aria-label"] || "Loading",
349
- ...h
350
- };
351
- return a === "dots" ? t.createElement(
352
- "div",
353
- { ...c, className: `${c.className} flex items-center justify-between` },
354
- [0, 1, 2].map((u) => t.createElement("div", {
355
- key: u,
356
- className: "w-[25%] h-[25%] rounded-full animate-bounce",
357
- style: {
358
- backgroundColor: p,
359
- animationDelay: `${u * 0.1}s`
360
- }
361
- }))
362
- ) : a === "pulse" ? t.createElement(
363
- "div",
364
- { ...c, className: `${c.className} relative flex items-center justify-center` },
365
- [
366
- t.createElement("div", {
367
- key: "ring",
368
- className: "absolute inset-0 rounded-full opacity-75 animate-ping",
369
- style: { backgroundColor: p }
370
- }),
371
- t.createElement("div", {
372
- key: "dot",
373
- className: "relative rounded-full h-[75%] w-[75%]",
374
- style: { backgroundColor: p }
375
- })
376
- ]
377
- ) : a === "blocks" ? t.createElement(
378
- "div",
379
- { ...c, className: `${c.className} grid grid-cols-2 gap-[10%] p-[10%]` },
380
- [0, 1, 2, 3].map((u) => t.createElement("div", {
381
- key: u,
382
- className: "w-full h-full bg-current animate-pulse",
383
- style: {
384
- backgroundColor: p,
385
- animationDelay: `${u * 0.15}s`,
386
- opacity: 0.6
387
- }
388
- }))
389
- ) : t.createElement(
390
- "div",
391
- { ...c, className: `${c.className} animate-spin` },
392
- t.createElement(
393
- "svg",
394
- {
395
- xmlns: "http://www.w3.org/2000/svg",
396
- fill: "none",
397
- viewBox: "0 0 24 24",
398
- style: { width: "100%", height: "100%" }
399
- },
400
- t.createElement("circle", {
401
- className: "opacity-20",
402
- cx: "12",
403
- cy: "12",
404
- r: "10",
405
- stroke: p,
406
- strokeWidth: "4"
407
- }),
408
- t.createElement("path", {
409
- className: "",
410
- fill: p,
411
- d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
412
- })
413
- )
414
- );
415
- });
416
- class ae extends F {
417
- constructor() {
418
- super(...arguments);
419
- r(this, "_size", "md");
420
- r(this, "_color");
421
- r(this, "_variant", "circle");
422
- }
423
- size(e) {
424
- return this._size = e, this;
425
- }
426
- color(e) {
427
- return this._color = e, this;
428
- }
429
- variant(e) {
430
- return this._variant = e, this;
431
- }
432
- build() {
433
- const e = {
434
- size: this._size,
435
- color: this._color,
436
- variant: this._variant,
437
- className: this.getClassName(),
438
- style: this.getStyle(),
439
- ...this._props
440
- };
441
- return t.createElement(ne, e);
442
- }
443
- }
444
- const Ee = C(ae), ie = t.memo((n) => {
445
- const { width: s, height: e, shape: a, className: i, style: o, ...h } = n, d = ["animate-pulse", "bg-gray-200", "loading-skeleton"];
446
- return a === "circle" ? d.push("rounded-full") : a === "rounded-sm" ? d.push("rounded-sm") : a === "rounded-md" ? d.push("rounded-md") : a === "rounded-lg" ? d.push("rounded-lg") : a === "square" ? d.push("rounded-none") : d.push("rounded"), t.createElement("div", {
447
- className: [...d, i].filter(Boolean).join(" "),
448
- role: "status",
449
- "aria-live": "polite",
450
- "aria-label": h["aria-label"] || "Loading",
451
- style: {
452
- width: s,
453
- height: e,
454
- ...o
455
- },
456
- ...h
457
- });
458
- });
459
- class le extends F {
460
- constructor() {
461
- super(...arguments);
462
- r(this, "_width", "100%");
463
- r(this, "_height", "20px");
464
- r(this, "_shape", "rounded");
465
- }
466
- width(e) {
467
- return this._width = e, this;
468
- }
469
- height(e) {
470
- return this._height = e, this;
471
- }
472
- shape(e) {
473
- return this._shape = e, this;
474
- }
475
- build() {
476
- const e = {
477
- width: this._width,
478
- height: this._height,
479
- shape: this._shape,
480
- className: this.getClassName(),
481
- style: this.getStyle(),
482
- ...this._props
483
- };
484
- return t.createElement(ie, e);
485
- }
486
- }
487
- const we = C(le), M = {
488
- Heart: /* @__PURE__ */ f("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ f("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" }) }),
489
- Eth: /* @__PURE__ */ f("svg", { width: "14", height: "24", viewBox: "0 0 32 32", fill: "currentColor", children: /* @__PURE__ */ f("path", { d: "M15.925 23.96l-9.815-5.8 9.815 13.84 9.825-13.84-9.825 5.8zm0-23.96l-9.815 16.275 9.815 5.675 9.825-5.675-9.825-16.275zm0 20.3l-8.915-5.265 8.915-12.42 8.925 12.42-8.925 5.265z" }) }),
490
- Verify: /* @__PURE__ */ f("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "#3B82F6", stroke: "none", children: /* @__PURE__ */ f("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) }),
491
- More: /* @__PURE__ */ $("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
492
- /* @__PURE__ */ f("circle", { cx: "12", cy: "12", r: "1" }),
493
- /* @__PURE__ */ f("circle", { cx: "19", cy: "12", r: "1" }),
494
- /* @__PURE__ */ f("circle", { cx: "5", cy: "12", r: "1" })
495
- ] }),
496
- Clock: /* @__PURE__ */ $("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
497
- /* @__PURE__ */ f("circle", { cx: "12", cy: "12", r: "10" }),
498
- /* @__PURE__ */ f("polyline", { points: "12 6 12 12 16 14" })
499
- ] }),
500
- Info: /* @__PURE__ */ $("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
501
- /* @__PURE__ */ f("circle", { cx: "12", cy: "12", r: "10" }),
502
- /* @__PURE__ */ f("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
503
- /* @__PURE__ */ f("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
504
- ] }),
505
- Check: /* @__PURE__ */ $("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
506
- /* @__PURE__ */ f("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }),
507
- /* @__PURE__ */ f("polyline", { points: "22 4 12 14.01 9 11.01" })
508
- ] }),
509
- Search: /* @__PURE__ */ $("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
510
- /* @__PURE__ */ f("circle", { cx: "11", cy: "11", r: "8" }),
511
- /* @__PURE__ */ f("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })
512
- ] }),
513
- Close: /* @__PURE__ */ $("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
514
- /* @__PURE__ */ f("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
515
- /* @__PURE__ */ f("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
516
- ] })
517
- }, oe = t.memo((n) => {
518
- const { title: s, description: e, intent: a = "info", className: i, style: o, ...h } = n, d = a, y = {
519
- info: "bg-blue-500 text-white",
520
- success: "bg-emerald-500 text-white",
521
- warning: "bg-orange-400 text-white",
522
- error: "bg-rose-500 text-white"
523
- }, p = {
524
- info: "bg-blue-600",
525
- success: "bg-emerald-600",
526
- warning: "bg-orange-500",
527
- error: "bg-rose-600"
528
- }, c = {
529
- info: M.Info || t.createElement("span", {}, "?"),
530
- success: M.Check || t.createElement("span", {}, "✔"),
531
- warning: M.Search || t.createElement("span", {}, "!"),
532
- error: M.Close || t.createElement("span", {}, "x")
533
- }, u = `relative overflow-hidden flex items-start gap-4 p-5 rounded-3xl shadow-lg border-none ${y[d]}`;
534
- return t.createElement("div", {
535
- className: `${u} ${i}`,
536
- style: o,
537
- ...h
538
- }, [
539
- t.createElement("div", {
540
- key: "blob1",
541
- className: "absolute -top-6 -right-6 w-24 h-24 rounded-full bg-white opacity-10 pointer-events-none"
542
- }),
543
- t.createElement("div", {
544
- key: "blob2",
545
- className: "absolute bottom-[-10px] left-10 w-12 h-12 rounded-full bg-black opacity-5 pointer-events-none"
546
- }),
547
- t.createElement("div", {
548
- key: "blob3",
549
- className: "absolute top-10 right-20 w-8 h-8 rounded-full bg-white opacity-10 pointer-events-none"
550
- }),
551
- t.createElement("div", {
552
- key: "icon-wrapper",
553
- className: `relative z-10 shrink-0 w-10 h-10 rounded-full flex items-center justify-center shadow-sm ${p[d]}`
554
- }, t.cloneElement(c[d], { width: 20, height: 20, strokeWidth: 3 })),
555
- t.createElement("div", { key: "content", className: "relative z-10 flex flex-col gap-1.5 pt-0.5" }, [
556
- s && t.createElement("h5", { key: "title", className: "font-bold text-lg leading-none tracking-tight" }, s),
557
- e && t.createElement("p", { key: "desc", className: "text-sm font-medium opacity-90 leading-relaxed" }, e)
558
- ])
559
- ]);
560
- });
561
- class ce extends F {
562
- constructor() {
563
- super(...arguments);
564
- r(this, "_title", "");
565
- r(this, "_description");
566
- r(this, "_intent", "info");
567
- }
568
- title(e) {
569
- return this._title = e, this;
570
- }
571
- description(e) {
572
- return this._description = e, this;
573
- }
574
- intent(e) {
575
- return this._intent = e, this;
576
- }
577
- build() {
578
- const e = {
579
- title: this._title,
580
- description: this._description,
581
- intent: this._intent,
582
- className: this.getClassName(),
583
- style: this.getStyle(),
584
- ...this._props
585
- };
586
- return t.createElement(oe, e);
587
- }
588
- }
589
- const Ne = C(ce), he = t.memo((n) => {
590
- const {
591
- value: s,
592
- max: e,
593
- color: a,
594
- height: i,
595
- variant: o = "default",
596
- label: h,
597
- subLabel: d,
598
- items: y = [],
599
- size: p,
600
- strokeWidth: c,
601
- segments: u,
602
- gap: S,
603
- trackColor: z,
604
- children: A,
605
- className: k,
606
- style: w,
607
- ...N
608
- } = n, _ = Math.min(100, Math.max(0, s / e * 100)), v = a || "#3B82F6";
609
- if (o === "ring") {
610
- const m = p ?? (typeof i == "number" ? i : 190), g = c ?? 2.4, x = Array.isArray(u) && u.length ? u : [{ value: _, color: v }], l = S ?? (x.length > 1 ? 5e-3 : 0), b = 88, E = 2 * Math.PI * b, I = x.reduce((L, D) => L + D.value, 0) || 1;
611
- let B = 0;
612
- const W = [];
613
- return z && W.push(t.createElement("circle", {
614
- key: "track",
615
- cx: 100,
616
- cy: 100,
617
- r: b,
618
- stroke: z,
619
- strokeWidth: g,
620
- fill: "none"
621
- })), x.forEach((L, D) => {
622
- const H = L.value / I, T = Math.max(0, H * E - l * E);
623
- W.push(t.createElement("circle", {
624
- key: `seg-${D}`,
625
- cx: 100,
626
- cy: 100,
627
- r: b,
628
- stroke: L.color,
629
- strokeWidth: L.strokeWidth ?? g,
630
- fill: "none",
631
- strokeDasharray: `${T} ${E}`,
632
- strokeDashoffset: -B,
633
- transform: "rotate(-90 100 100)",
634
- style: { transition: "all .4s" }
635
- })), B += H * E;
636
- }), t.createElement("div", {
637
- className: `fibo-progress-ring relative inline-flex items-center justify-center ${k || ""}`,
638
- style: { width: m, height: m, ...w },
639
- role: "progressbar",
640
- "aria-valuenow": s,
641
- "aria-valuemin": 0,
642
- "aria-valuemax": e,
643
- "aria-label": h || "Progress",
644
- ...N
645
- }, [
646
- t.createElement("svg", {
647
- key: "svg",
648
- width: m,
649
- height: m,
650
- viewBox: "0 0 200 200",
651
- "aria-hidden": !0
652
- }, W),
653
- A ? t.createElement("div", {
654
- key: "center",
655
- className: "absolute inset-0 flex flex-col items-center justify-center"
656
- }, A) : null
657
- ]);
658
- }
659
- if (o === "circular") {
660
- const m = typeof i == "number" ? i : 64, g = 8, x = (m - g) / 2, l = x * 2 * Math.PI, b = l - _ / 100 * l;
661
- return t.createElement("div", {
662
- className: `relative inline-flex items-center justify-center ${k}`,
663
- style: { width: m, height: m, ...w },
664
- role: "progressbar",
665
- "aria-valuenow": s,
666
- "aria-valuemin": 0,
667
- "aria-valuemax": e,
668
- "aria-label": h || "Progress",
669
- ...N
670
- }, [
671
- t.createElement("svg", {
672
- key: "svg",
673
- className: "transform -rotate-90",
674
- width: m,
675
- height: m
676
- }, [
677
- t.createElement("circle", {
678
- key: "track",
679
- className: "text-gray-100",
680
- stroke: "currentColor",
681
- strokeWidth: g,
682
- fill: "transparent",
683
- r: x,
684
- cx: m / 2,
685
- cy: m / 2
686
- }),
687
- t.createElement("circle", {
688
- key: "prog",
689
- stroke: v,
690
- strokeWidth: g,
691
- strokeDasharray: l,
692
- strokeDashoffset: b,
693
- strokeLinecap: "round",
694
- fill: "transparent",
695
- r: x,
696
- cx: m / 2,
697
- cy: m / 2,
698
- className: "transition-all duration-1000 ease-out"
699
- })
700
- ]),
701
- t.createElement("span", {
702
- key: "label",
703
- className: "absolute text-sm font-bold text-gray-700"
704
- }, h || `${Math.round(_)}%`)
705
- ]);
706
- }
707
- if (o === "pagination") {
708
- const g = Math.floor(_ / 100 * 5);
709
- return t.createElement("div", {
710
- className: `flex items-center gap-2 ${k}`,
711
- style: w,
712
- ...N
713
- }, Array.from({ length: 5 }).map((x, l) => {
714
- const b = l === g;
715
- return t.createElement("div", {
716
- key: l,
717
- className: `h-3 rounded-full transition-all duration-300 ${b ? "w-8" : "w-3"}`,
718
- style: { backgroundColor: l <= g ? v : "#E5E7EB" }
719
- });
720
- }));
721
- }
722
- if (o === "timeline") {
723
- const m = y.length ? y : [
724
- { title: "Order components", date: "Done" },
725
- { title: "Draft implementation", date: "In Progress" },
726
- { title: "Verify functionality", date: "Pending" }
727
- ], g = Math.floor(_ / 100 * m.length);
728
- return t.createElement("div", {
729
- className: `flex flex-col relative ${k}`,
730
- style: w,
731
- ...N
732
- }, m.map((x, l) => {
733
- const b = l < g, E = l === g, I = l === m.length - 1, B = b || E ? v : "#E5E7EB", W = b ? t.createElement("span", {}, "✓") : l + 1;
734
- return t.createElement("div", {
735
- key: l,
736
- className: "relative flex items-start gap-4 pb-8 last:pb-0"
737
- }, [
738
- !I && t.createElement("div", {
739
- key: "tail",
740
- className: "absolute left-[19px] top-10 bottom-0 w-0.5 transition-colors duration-500",
741
- style: { backgroundColor: b ? v : "#E5E7EB" }
742
- }),
743
- t.createElement("div", {
744
- key: "dot",
745
- className: "relative z-10 w-10 h-10 rounded-full flex items-center justify-center border-2 bg-white transition-all duration-300 shrink-0 text-sm font-bold shadow-sm",
746
- style: {
747
- borderColor: B,
748
- color: b ? "#fff" : E ? B : "#9CA3AF",
749
- backgroundColor: b ? B : "#fff"
750
- }
751
- }, W),
752
- t.createElement("div", { key: "content", className: "pt-2" }, [
753
- t.createElement("div", { className: "text-sm font-bold text-gray-900 leading-none" }, x.title),
754
- x.description && t.createElement("div", { className: "text-xs text-gray-500 mt-1.5" }, x.description),
755
- x.date && t.createElement("div", { className: "text-xs font-mono text-gray-400 mt-1" }, x.date)
756
- ])
757
- ]);
758
- }));
759
- }
760
- if (o === "floating")
761
- return t.createElement("div", {
762
- className: `w-full bg-white rounded-xl shadow-sm border border-gray-100 p-4 relative overflow-hidden ${k}`,
763
- style: w,
764
- ...N
765
- }, [
766
- t.createElement("div", { key: "info", className: "flex justify-between items-center mb-3 px-1" }, [
767
- t.createElement(
768
- "span",
769
- { key: "l", className: "text-sm font-semibold text-gray-700" },
770
- h ? t.createElement("span", { className: "text-blue-600 mr-2" }, `${Math.round(_)}%`) : null,
771
- h || "Update in progress..."
772
- ),
773
- d && t.createElement("span", { key: "r", className: "text-xs font-medium text-gray-400" }, d)
774
- ]),
775
- t.createElement("div", {
776
- key: "track",
777
- className: "w-full bg-blue-50 h-1.5 rounded-full overflow-hidden"
778
- }, t.createElement("div", {
779
- className: "h-full rounded-full transition-all duration-1000 ease-out",
780
- style: { width: `${_}%`, backgroundColor: v }
781
- }))
782
- ]);
783
- if (o === "chevron") {
784
- const g = Math.floor(_ / 100 * 3);
785
- return t.createElement("div", {
786
- className: `flex w-full rounded-lg overflow-hidden ${k}`,
787
- style: w,
788
- ...N
789
- }, Array.from({ length: 3 }).map((x, l) => {
790
- const b = l <= g;
791
- return t.createElement("div", {
792
- key: l,
793
- className: "flex-1 h-10 flex items-center justify-center text-sm font-bold text-white transition-colors duration-300",
794
- style: {
795
- backgroundColor: b ? l === g ? v : "#60A5FA" : "#E5E7EB",
796
- clipPath: l === 0 ? "polygon(0% 0%, 85% 0%, 100% 50%, 85% 100%, 0% 100%)" : l === 2 ? "polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%, 15% 50%)" : "polygon(0% 0%, 85% 0%, 100% 50%, 85% 100%, 0% 100%, 15% 50%)",
797
- marginLeft: l === 0 ? 0 : "-10px",
798
- paddingLeft: l === 0 ? 0 : "10px",
799
- zIndex: 3 - l
800
- }
801
- }, `Step ${l + 1}`);
802
- }));
803
- }
804
- if (o === "steps") {
805
- const g = Math.ceil(_ / 100 * 3);
806
- return t.createElement("div", {
807
- className: `w-full flex items-center justify-between relative ${k}`,
808
- style: {
809
- marginTop: "1rem",
810
- ...w
811
- },
812
- ...N
813
- }, [
814
- t.createElement("div", {
815
- key: "line-bg",
816
- className: "absolute top-1/2 left-0 w-full h-1.5 bg-gray-200 z-0 transform -translate-y-1/2 rounded-full"
817
- }),
818
- t.createElement("div", {
819
- key: "line-active",
820
- className: "absolute top-1/2 left-0 h-1.5 z-0 transform -translate-y-1/2 transition-all duration-500 rounded-full",
821
- style: { width: `${_}%`, backgroundColor: v }
822
- }),
823
- ...Array.from({ length: 3 }).map((x, l) => {
824
- const b = l + 1, E = b <= g, I = b < g;
825
- return t.createElement("div", {
826
- key: l,
827
- className: `relative z-10 w-10 h-10 rounded-full flex items-center justify-center text-sm font-bold transition-all duration-300 border-4 ${E ? "text-white border-white shadow-md" : "bg-gray-100 text-gray-400 border-gray-50"}`,
828
- style: { backgroundColor: E ? v : void 0 }
829
- }, I ? t.createElement("span", {}, "✔") : b);
830
- })
831
- ]);
832
- }
833
- const R = i || 12;
834
- if (o === "segments") {
835
- const g = Math.round(_ / 100 * 10);
836
- return t.createElement(
837
- "div",
838
- {
839
- className: `flex gap-1.5 w-full ${k}`,
840
- style: w,
841
- ...N
842
- },
843
- Array.from({ length: 10 }).map((x, l) => t.createElement("div", {
844
- key: l,
845
- className: "h-3 flex-1 rounded-sm transition-all duration-300 first:rounded-l-full last:rounded-r-full",
846
- style: {
847
- height: i || 12,
848
- backgroundColor: l < g ? v : "#E5E7EB"
849
- }
850
- }))
851
- );
852
- }
853
- let P = null;
854
- o === "striped" && (P = t.createElement("div", {
855
- className: "w-full h-full opacity-30 animate-[stripes_1s_linear_infinite]",
856
- style: {
857
- backgroundImage: "linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.25) 50%,rgba(255,255,255,.25) 75%,transparent 75%,transparent)",
858
- backgroundSize: "20px 20px"
859
- }
860
- }));
861
- const q = o === "labeled" ? t.createElement("div", {
862
- className: "absolute -top-12 transform -translate-x-1/2 bg-slate-800 text-white text-xs font-bold py-1.5 px-3 rounded-lg shadow-xl whitespace-nowrap",
863
- style: { left: `${_}%` }
864
- }, [
865
- h || `${Math.round(_)}%`,
866
- t.createElement("div", { key: "arrow", className: "absolute -bottom-1 left-1/2 transform -translate-x-1/2 w-2 h-2 bg-slate-800 rotate-45" })
867
- ]) : null, V = o === "knob" ? t.createElement("div", {
868
- className: "absolute top-1/2 right-0 w-7 h-7 bg-white rounded-full shadow-lg border-4 transform translate-x-1/2 -translate-y-1/2 flex items-center justify-center",
869
- style: { borderColor: v }
870
- }, t.createElement("div", { className: "w-1.5 h-1.5 rounded-full", style: { backgroundColor: v } })) : null;
871
- return t.createElement("div", {
872
- className: `relative w-full ${o === "labeled" ? "mt-8" : ""}`,
873
- role: "progressbar",
874
- "aria-valuenow": s,
875
- "aria-valuemin": 0,
876
- "aria-valuemax": e,
877
- "aria-label": h || "Progress",
878
- ...N
879
- }, [
880
- q,
881
- t.createElement(
882
- "div",
883
- {
884
- key: "track",
885
- className: `w-full bg-slate-100 rounded-full ${k}`,
886
- style: {
887
- width: "100%",
888
- height: R,
889
- ...w
890
- }
891
- },
892
- t.createElement("div", {
893
- className: "h-full transition-all duration-1000 ease-out rounded-full flex items-center justify-center relative",
894
- style: {
895
- width: `${_}%`,
896
- backgroundColor: v
897
- }
898
- }, [P, V])
899
- )
900
- ]);
901
- });
902
- class de extends F {
903
- constructor() {
904
- super(...arguments);
905
- r(this, "_value", 0);
906
- r(this, "_max", 100);
907
- r(this, "_color");
908
- r(this, "_height");
909
- r(this, "_variant", "default");
910
- r(this, "_label");
911
- r(this, "_subLabel");
912
- r(this, "_items");
913
- r(this, "_size");
914
- r(this, "_strokeWidth");
915
- r(this, "_segments");
916
- r(this, "_gap");
917
- r(this, "_trackColor");
918
- }
919
- value(e) {
920
- return this._value = e, this;
921
- }
922
- max(e) {
923
- return this._max = e, this;
924
- }
925
- color(e) {
926
- return this._color = e, this;
927
- }
928
- height(e) {
929
- return this._height = e, this;
930
- }
931
- size(e) {
932
- return this._size = e, this;
933
- }
934
- strokeWidth(e) {
935
- return this._strokeWidth = e, this;
936
- }
937
- segments(e) {
938
- return this._segments = e, this;
939
- }
940
- gap(e) {
941
- return this._gap = e, this;
942
- }
943
- trackColor(e) {
944
- return this._trackColor = e, this;
945
- }
946
- variant(e) {
947
- return this._variant = e, this;
948
- }
949
- label(e) {
950
- return this._label = e, this;
951
- }
952
- subLabel(e) {
953
- return this._subLabel = e, this;
954
- }
955
- items(e) {
956
- return this._items = e, this;
957
- }
958
- build() {
959
- const e = {
960
- value: this._value,
961
- max: this._max,
962
- color: this._color,
963
- height: this._height,
964
- variant: this._variant,
965
- label: this._label,
966
- subLabel: this._subLabel,
967
- items: this._items,
968
- size: this._size,
969
- strokeWidth: this._strokeWidth,
970
- segments: this._segments,
971
- gap: this._gap,
972
- trackColor: this._trackColor,
973
- children: this.processChildren(),
974
- className: this.getClassName(),
975
- style: this.getStyle(),
976
- ...this._props
977
- };
978
- return t.createElement(he, e);
979
- }
980
- }
981
- const Ce = C(de), ue = t.memo((n) => {
982
- const {
983
- source: s,
984
- className: e,
985
- style: a,
986
- ...i
987
- } = n;
988
- return s ? t.createElement(s, {
989
- className: e,
990
- style: a,
991
- ...i
992
- }) : null;
993
- });
994
- class me extends F {
995
- constructor(e) {
996
- super();
997
- r(this, "_source");
998
- this._source = e;
999
- }
1000
- source(e) {
1001
- return this._source = e, this;
1002
- }
1003
- props(e) {
1004
- return this._props = { ...this._props, ...e }, this;
1005
- }
1006
- build() {
1007
- const a = ["fibo-integration", ...this._classNames].filter(Boolean).join(" "), i = {
1008
- source: this._source,
1009
- className: a,
1010
- style: this.getStyle(),
1011
- ...this._props
1012
- };
1013
- return t.createElement(ue, i);
1014
- }
1015
- }
1016
- const Fe = C(me);
1017
- export {
1018
- ye as A,
1019
- _e as B,
1020
- ke as I,
1021
- ve as L,
1022
- Ce as P,
1023
- Ee as S,
1024
- we as a,
1025
- Ne as b,
1026
- Fe as c,
1027
- M as d
1028
- };