@sudobility/marketing-components 1.0.9

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 (37) hide show
  1. package/dist/crm-dashboard.d.ts +18 -0
  2. package/dist/crm-dashboard.d.ts.map +1 -0
  3. package/dist/cta-banner.d.ts +33 -0
  4. package/dist/cta-banner.d.ts.map +1 -0
  5. package/dist/feature-grid.d.ts +52 -0
  6. package/dist/feature-grid.d.ts.map +1 -0
  7. package/dist/feature-list-item.d.ts +34 -0
  8. package/dist/feature-list-item.d.ts.map +1 -0
  9. package/dist/feature-spotlight.d.ts +33 -0
  10. package/dist/feature-spotlight.d.ts.map +1 -0
  11. package/dist/funnel-chart.d.ts +33 -0
  12. package/dist/funnel-chart.d.ts.map +1 -0
  13. package/dist/hero-banner-with-badge.d.ts +21 -0
  14. package/dist/hero-banner-with-badge.d.ts.map +1 -0
  15. package/dist/index.d.ts +24 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.esm.js +2465 -0
  18. package/dist/index.umd.js +8 -0
  19. package/dist/internal-link-clusters.d.ts +64 -0
  20. package/dist/internal-link-clusters.d.ts.map +1 -0
  21. package/dist/landing-builder.d.ts +33 -0
  22. package/dist/landing-builder.d.ts.map +1 -0
  23. package/dist/nps-survey.d.ts +33 -0
  24. package/dist/nps-survey.d.ts.map +1 -0
  25. package/dist/sales-report.d.ts +18 -0
  26. package/dist/sales-report.d.ts.map +1 -0
  27. package/dist/subscriber-list.d.ts +18 -0
  28. package/dist/subscriber-list.d.ts.map +1 -0
  29. package/dist/survey-builder.d.ts +33 -0
  30. package/dist/survey-builder.d.ts.map +1 -0
  31. package/dist/testimonial-slider.d.ts +33 -0
  32. package/dist/testimonial-slider.d.ts.map +1 -0
  33. package/dist/use-case-grid.d.ts +17 -0
  34. package/dist/use-case-grid.d.ts.map +1 -0
  35. package/dist/welcome-screen.d.ts +33 -0
  36. package/dist/welcome-screen.d.ts.map +1 -0
  37. package/package.json +57 -0
@@ -0,0 +1,2465 @@
1
+ import * as c from "react";
2
+ import me from "react";
3
+ import { cn as E } from "@sudobility/components";
4
+ import { textVariants as z, ui as nt } from "@sudobility/design";
5
+ var X = { exports: {} }, Y = {};
6
+ var Se;
7
+ function at() {
8
+ if (Se) return Y;
9
+ Se = 1;
10
+ var e = Symbol.for("react.transitional.element"), r = Symbol.for("react.fragment");
11
+ function t(n, a, o) {
12
+ var l = null;
13
+ if (o !== void 0 && (l = "" + o), a.key !== void 0 && (l = "" + a.key), "key" in a) {
14
+ o = {};
15
+ for (var i in a)
16
+ i !== "key" && (o[i] = a[i]);
17
+ } else o = a;
18
+ return a = o.ref, {
19
+ $$typeof: e,
20
+ type: n,
21
+ key: l,
22
+ ref: a !== void 0 ? a : null,
23
+ props: o
24
+ };
25
+ }
26
+ return Y.Fragment = r, Y.jsx = t, Y.jsxs = t, Y;
27
+ }
28
+ var H = {};
29
+ var Pe;
30
+ function ot() {
31
+ return Pe || (Pe = 1, process.env.NODE_ENV !== "production" && (function() {
32
+ function e(u) {
33
+ if (u == null) return null;
34
+ if (typeof u == "function")
35
+ return u.$$typeof === q ? null : u.displayName || u.name || null;
36
+ if (typeof u == "string") return u;
37
+ switch (u) {
38
+ case v:
39
+ return "Fragment";
40
+ case g:
41
+ return "Profiler";
42
+ case k:
43
+ return "StrictMode";
44
+ case M:
45
+ return "Suspense";
46
+ case D:
47
+ return "SuspenseList";
48
+ case O:
49
+ return "Activity";
50
+ }
51
+ if (typeof u == "object")
52
+ switch (typeof u.tag == "number" && console.error(
53
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
54
+ ), u.$$typeof) {
55
+ case C:
56
+ return "Portal";
57
+ case _:
58
+ return u.displayName || "Context";
59
+ case w:
60
+ return (u._context.displayName || "Context") + ".Consumer";
61
+ case L:
62
+ var y = u.render;
63
+ return u = u.displayName, u || (u = y.displayName || y.name || "", u = u !== "" ? "ForwardRef(" + u + ")" : "ForwardRef"), u;
64
+ case W:
65
+ return y = u.displayName || null, y !== null ? y : e(u.type) || "Memo";
66
+ case P:
67
+ y = u._payload, u = u._init;
68
+ try {
69
+ return e(u(y));
70
+ } catch {
71
+ }
72
+ }
73
+ return null;
74
+ }
75
+ function r(u) {
76
+ return "" + u;
77
+ }
78
+ function t(u) {
79
+ try {
80
+ r(u);
81
+ var y = !1;
82
+ } catch {
83
+ y = !0;
84
+ }
85
+ if (y) {
86
+ y = console;
87
+ var R = y.error, N = typeof Symbol == "function" && Symbol.toStringTag && u[Symbol.toStringTag] || u.constructor.name || "Object";
88
+ return R.call(
89
+ y,
90
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
91
+ N
92
+ ), r(u);
93
+ }
94
+ }
95
+ function n(u) {
96
+ if (u === v) return "<>";
97
+ if (typeof u == "object" && u !== null && u.$$typeof === P)
98
+ return "<...>";
99
+ try {
100
+ var y = e(u);
101
+ return y ? "<" + y + ">" : "<...>";
102
+ } catch {
103
+ return "<...>";
104
+ }
105
+ }
106
+ function a() {
107
+ var u = oe.A;
108
+ return u === null ? null : u.getOwner();
109
+ }
110
+ function o() {
111
+ return Error("react-stack-top-frame");
112
+ }
113
+ function l(u) {
114
+ if (we.call(u, "key")) {
115
+ var y = Object.getOwnPropertyDescriptor(u, "key").get;
116
+ if (y && y.isReactWarning) return !1;
117
+ }
118
+ return u.key !== void 0;
119
+ }
120
+ function i(u, y) {
121
+ function R() {
122
+ Ee || (Ee = !0, console.error(
123
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
124
+ y
125
+ ));
126
+ }
127
+ R.isReactWarning = !0, Object.defineProperty(u, "key", {
128
+ get: R,
129
+ configurable: !0
130
+ });
131
+ }
132
+ function s() {
133
+ var u = e(this.type);
134
+ return Ce[u] || (Ce[u] = !0, console.error(
135
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
136
+ )), u = this.props.ref, u !== void 0 ? u : null;
137
+ }
138
+ function d(u, y, R, N, K, ie) {
139
+ var j = R.ref;
140
+ return u = {
141
+ $$typeof: x,
142
+ type: u,
143
+ key: y,
144
+ props: R,
145
+ _owner: N
146
+ }, (j !== void 0 ? j : null) !== null ? Object.defineProperty(u, "ref", {
147
+ enumerable: !1,
148
+ get: s
149
+ }) : Object.defineProperty(u, "ref", { enumerable: !1, value: null }), u._store = {}, Object.defineProperty(u._store, "validated", {
150
+ configurable: !1,
151
+ enumerable: !1,
152
+ writable: !0,
153
+ value: 0
154
+ }), Object.defineProperty(u, "_debugInfo", {
155
+ configurable: !1,
156
+ enumerable: !1,
157
+ writable: !0,
158
+ value: null
159
+ }), Object.defineProperty(u, "_debugStack", {
160
+ configurable: !1,
161
+ enumerable: !1,
162
+ writable: !0,
163
+ value: K
164
+ }), Object.defineProperty(u, "_debugTask", {
165
+ configurable: !1,
166
+ enumerable: !1,
167
+ writable: !0,
168
+ value: ie
169
+ }), Object.freeze && (Object.freeze(u.props), Object.freeze(u)), u;
170
+ }
171
+ function f(u, y, R, N, K, ie) {
172
+ var j = y.children;
173
+ if (j !== void 0)
174
+ if (N)
175
+ if (tt(j)) {
176
+ for (N = 0; N < j.length; N++)
177
+ m(j[N]);
178
+ Object.freeze && Object.freeze(j);
179
+ } else
180
+ console.error(
181
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
182
+ );
183
+ else m(j);
184
+ if (we.call(y, "key")) {
185
+ j = e(u);
186
+ var V = Object.keys(y).filter(function(rt) {
187
+ return rt !== "key";
188
+ });
189
+ N = 0 < V.length ? "{key: someKey, " + V.join(": ..., ") + ": ...}" : "{key: someKey}", je[j + N] || (V = 0 < V.length ? "{" + V.join(": ..., ") + ": ...}" : "{}", console.error(
190
+ `A props object containing a "key" prop is being spread into JSX:
191
+ let props = %s;
192
+ <%s {...props} />
193
+ React keys must be passed directly to JSX without using spread:
194
+ let props = %s;
195
+ <%s key={someKey} {...props} />`,
196
+ N,
197
+ j,
198
+ V,
199
+ j
200
+ ), je[j + N] = !0);
201
+ }
202
+ if (j = null, R !== void 0 && (t(R), j = "" + R), l(y) && (t(y.key), j = "" + y.key), "key" in y) {
203
+ R = {};
204
+ for (var se in y)
205
+ se !== "key" && (R[se] = y[se]);
206
+ } else R = y;
207
+ return j && i(
208
+ R,
209
+ typeof u == "function" ? u.displayName || u.name || "Unknown" : u
210
+ ), d(
211
+ u,
212
+ j,
213
+ R,
214
+ a(),
215
+ K,
216
+ ie
217
+ );
218
+ }
219
+ function m(u) {
220
+ p(u) ? u._store && (u._store.validated = 1) : typeof u == "object" && u !== null && u.$$typeof === P && (u._payload.status === "fulfilled" ? p(u._payload.value) && u._payload.value._store && (u._payload.value._store.validated = 1) : u._store && (u._store.validated = 1));
221
+ }
222
+ function p(u) {
223
+ return typeof u == "object" && u !== null && u.$$typeof === x;
224
+ }
225
+ var b = me, x = Symbol.for("react.transitional.element"), C = Symbol.for("react.portal"), v = Symbol.for("react.fragment"), k = Symbol.for("react.strict_mode"), g = Symbol.for("react.profiler"), w = Symbol.for("react.consumer"), _ = Symbol.for("react.context"), L = Symbol.for("react.forward_ref"), M = Symbol.for("react.suspense"), D = Symbol.for("react.suspense_list"), W = Symbol.for("react.memo"), P = Symbol.for("react.lazy"), O = Symbol.for("react.activity"), q = Symbol.for("react.client.reference"), oe = b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, we = Object.prototype.hasOwnProperty, tt = Array.isArray, le = console.createTask ? console.createTask : function() {
226
+ return null;
227
+ };
228
+ b = {
229
+ react_stack_bottom_frame: function(u) {
230
+ return u();
231
+ }
232
+ };
233
+ var Ee, Ce = {}, Re = b.react_stack_bottom_frame.bind(
234
+ b,
235
+ o
236
+ )(), Ne = le(n(o)), je = {};
237
+ H.Fragment = v, H.jsx = function(u, y, R) {
238
+ var N = 1e4 > oe.recentlyCreatedOwnerStacks++;
239
+ return f(
240
+ u,
241
+ y,
242
+ R,
243
+ !1,
244
+ N ? Error("react-stack-top-frame") : Re,
245
+ N ? le(n(u)) : Ne
246
+ );
247
+ }, H.jsxs = function(u, y, R) {
248
+ var N = 1e4 > oe.recentlyCreatedOwnerStacks++;
249
+ return f(
250
+ u,
251
+ y,
252
+ R,
253
+ !0,
254
+ N ? Error("react-stack-top-frame") : Re,
255
+ N ? le(n(u)) : Ne
256
+ );
257
+ };
258
+ })()), H;
259
+ }
260
+ var _e;
261
+ function lt() {
262
+ return _e || (_e = 1, process.env.NODE_ENV === "production" ? X.exports = at() : X.exports = ot()), X.exports;
263
+ }
264
+ var h = lt();
265
+ const Or = ({
266
+ className: e,
267
+ children: r,
268
+ disabled: t
269
+ }) => /* @__PURE__ */ h.jsx(
270
+ "div",
271
+ {
272
+ className: E(
273
+ "p-4 rounded-lg border transition-colors",
274
+ "bg-white dark:bg-gray-900",
275
+ "border-gray-200 dark:border-gray-700",
276
+ "text-gray-900 dark:text-white",
277
+ t && "opacity-50 cursor-not-allowed",
278
+ e
279
+ ),
280
+ role: "region",
281
+ "aria-label": "CrmDashboard",
282
+ children: r || "CrmDashboard Component"
283
+ }
284
+ ), Fr = ({
285
+ className: e,
286
+ children: r,
287
+ disabled: t = !1,
288
+ onClick: n
289
+ }) => /* @__PURE__ */ h.jsx(
290
+ "div",
291
+ {
292
+ className: E(
293
+ "p-4 rounded-lg border transition-colors",
294
+ "bg-white dark:bg-gray-900",
295
+ "border-gray-200 dark:border-gray-700",
296
+ "text-gray-900 dark:text-white",
297
+ t && "opacity-50 cursor-not-allowed",
298
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
299
+ e
300
+ ),
301
+ onClick: t ? void 0 : n,
302
+ role: "region",
303
+ "aria-label": "UctaUbanner",
304
+ children: r || "UctaUbanner Component"
305
+ }
306
+ );
307
+ function De(e) {
308
+ var r, t, n = "";
309
+ if (typeof e == "string" || typeof e == "number") n += e;
310
+ else if (typeof e == "object") if (Array.isArray(e)) {
311
+ var a = e.length;
312
+ for (r = 0; r < a; r++) e[r] && (t = De(e[r])) && (n && (n += " "), n += t);
313
+ } else for (t in e) e[t] && (n && (n += " "), n += t);
314
+ return n;
315
+ }
316
+ function it() {
317
+ for (var e, r, t = 0, n = "", a = arguments.length; t < a; t++) (e = arguments[t]) && (r = De(e)) && (n && (n += " "), n += r);
318
+ return n;
319
+ }
320
+ const Le = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, Te = it, fe = (e, r) => (t) => {
321
+ var n;
322
+ if (r?.variants == null) return Te(e, t?.class, t?.className);
323
+ const { variants: a, defaultVariants: o } = r, l = Object.keys(a).map((d) => {
324
+ const f = t?.[d], m = o?.[d];
325
+ if (f === null) return null;
326
+ const p = Le(f) || Le(m);
327
+ return a[d][p];
328
+ }), i = t && Object.entries(t).reduce((d, f) => {
329
+ let [m, p] = f;
330
+ return p === void 0 || (d[m] = p), d;
331
+ }, {}), s = r == null || (n = r.compoundVariants) === null || n === void 0 ? void 0 : n.reduce((d, f) => {
332
+ let { class: m, className: p, ...b } = f;
333
+ return Object.entries(b).every((x) => {
334
+ let [C, v] = x;
335
+ return Array.isArray(v) ? v.includes({
336
+ ...o,
337
+ ...i
338
+ }[C]) : {
339
+ ...o,
340
+ ...i
341
+ }[C] === v;
342
+ }) ? [
343
+ ...d,
344
+ m,
345
+ p
346
+ ] : d;
347
+ }, []);
348
+ return Te(e, l, s, t?.class, t?.className);
349
+ }, st = fe("grid gap-8", {
350
+ variants: {
351
+ columns: {
352
+ 1: "grid-cols-1",
353
+ 2: "grid-cols-1 md:grid-cols-2",
354
+ 3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
355
+ 4: "grid-cols-1 md:grid-cols-2 lg:grid-cols-4"
356
+ },
357
+ spacing: {
358
+ sm: "gap-4",
359
+ md: "gap-8",
360
+ lg: "gap-12"
361
+ }
362
+ },
363
+ defaultVariants: {
364
+ columns: 3,
365
+ spacing: "md"
366
+ }
367
+ }), ut = fe("group transition-all duration-300", {
368
+ variants: {
369
+ variant: {
370
+ default: "text-center",
371
+ left: "text-left",
372
+ hoverable: "text-center hover:transform hover:scale-105 cursor-pointer",
373
+ card: "bg-white dark:bg-gray-800 rounded-2xl p-8 shadow-lg hover:shadow-xl text-center",
374
+ minimal: "text-center space-y-4"
375
+ },
376
+ animation: {
377
+ none: "",
378
+ hover: "hover:transform hover:scale-105",
379
+ float: "hover:-translate-y-2"
380
+ }
381
+ },
382
+ defaultVariants: {
383
+ variant: "default",
384
+ animation: "hover"
385
+ }
386
+ }), ct = fe(
387
+ "flex items-center justify-center rounded-2xl mb-6 transition-all duration-300",
388
+ {
389
+ variants: {
390
+ size: {
391
+ sm: "w-16 h-16",
392
+ md: "w-20 h-20",
393
+ lg: "w-24 h-24"
394
+ },
395
+ style: {
396
+ gradient: "bg-gradient-to-br from-blue-100 to-blue-200 dark:from-blue-900/30 dark:to-blue-800/30 group-hover:from-blue-200 group-hover:to-blue-300 dark:group-hover:from-blue-800/40 dark:group-hover:to-blue-700/40",
397
+ solid: "bg-blue-100 dark:bg-blue-900/30 group-hover:bg-blue-200 dark:group-hover:bg-blue-800/40",
398
+ outline: "border-2 border-blue-200 dark:border-blue-800 group-hover:border-blue-300 dark:group-hover:border-blue-700",
399
+ colorful: "group-hover:scale-110"
400
+ },
401
+ position: {
402
+ center: "mx-auto",
403
+ left: "",
404
+ right: "ml-auto"
405
+ }
406
+ },
407
+ defaultVariants: {
408
+ size: "md",
409
+ style: "gradient",
410
+ position: "center"
411
+ }
412
+ }
413
+ ), dt = {
414
+ success: "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300",
415
+ info: "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300",
416
+ warning: "bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300",
417
+ default: "bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300"
418
+ }, Dr = ({
419
+ className: e,
420
+ features: r,
421
+ columns: t = 3,
422
+ spacing: n = "md",
423
+ cardVariant: a = "default",
424
+ cardAnimation: o = "hover",
425
+ iconSize: l = "md",
426
+ iconStyle: i = "gradient",
427
+ iconPosition: s = "center",
428
+ titleClass: d,
429
+ descriptionClass: f,
430
+ animate: m = !0,
431
+ animationDelay: p = 0,
432
+ staggerDelay: b = 100,
433
+ onFeatureClick: x,
434
+ defaultLinkText: C = "Learn more"
435
+ }) => {
436
+ const v = (g, w) => {
437
+ if (i === "colorful" && g.gradient)
438
+ return {
439
+ background: `linear-gradient(135deg, ${g.gradient.from}, ${g.gradient.to})`
440
+ };
441
+ if (i === "colorful") {
442
+ const _ = [
443
+ { from: "#3B82F6", to: "#1D4ED8" },
444
+ // blue
445
+ { from: "#10B981", to: "#059669" },
446
+ // emerald
447
+ { from: "#8B5CF6", to: "#7C3AED" },
448
+ // violet
449
+ { from: "#F59E0B", to: "#D97706" },
450
+ // amber
451
+ { from: "#EF4444", to: "#DC2626" },
452
+ // red
453
+ { from: "#06B6D4", to: "#0891B2" }
454
+ // cyan
455
+ ], L = _[w % _.length];
456
+ return {
457
+ background: `linear-gradient(135deg, ${L.from}, ${L.to})`
458
+ };
459
+ }
460
+ }, k = (g, w) => {
461
+ const _ = /* @__PURE__ */ h.jsxs(
462
+ "div",
463
+ {
464
+ className: E(
465
+ ut({ variant: a, animation: o })
466
+ ),
467
+ onClick: () => x?.(g),
468
+ role: x ? "button" : void 0,
469
+ tabIndex: x ? 0 : void 0,
470
+ children: [
471
+ g.badge && /* @__PURE__ */ h.jsx("div", { className: "mb-4", children: /* @__PURE__ */ h.jsx(
472
+ "span",
473
+ {
474
+ className: E(
475
+ "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",
476
+ dt[g.badge.variant || "default"]
477
+ ),
478
+ children: g.badge.text
479
+ }
480
+ ) }),
481
+ /* @__PURE__ */ h.jsx(
482
+ "div",
483
+ {
484
+ className: E(
485
+ ct({
486
+ size: l,
487
+ style: i,
488
+ position: s
489
+ })
490
+ ),
491
+ style: v(g, w),
492
+ children: /* @__PURE__ */ h.jsx(
493
+ "div",
494
+ {
495
+ className: E(
496
+ "flex items-center justify-center",
497
+ i === "colorful" ? "text-white" : "text-blue-600 dark:text-blue-400"
498
+ ),
499
+ children: g.icon
500
+ }
501
+ )
502
+ }
503
+ ),
504
+ /* @__PURE__ */ h.jsx(
505
+ "h3",
506
+ {
507
+ className: E(
508
+ "text-xl font-bold text-gray-900 dark:text-white mb-4",
509
+ d
510
+ ),
511
+ children: g.title
512
+ }
513
+ ),
514
+ /* @__PURE__ */ h.jsx(
515
+ "div",
516
+ {
517
+ className: E(
518
+ "text-gray-600 dark:text-gray-300 leading-relaxed",
519
+ f
520
+ ),
521
+ children: g.description
522
+ }
523
+ ),
524
+ g.link && /* @__PURE__ */ h.jsx("div", { className: "mt-6", children: /* @__PURE__ */ h.jsxs(
525
+ "a",
526
+ {
527
+ href: g.link.href,
528
+ className: "inline-flex items-center text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 font-medium transition-colors duration-200",
529
+ children: [
530
+ g.link.text || C,
531
+ /* @__PURE__ */ h.jsx(
532
+ "svg",
533
+ {
534
+ className: "w-4 h-4 ml-1",
535
+ fill: "none",
536
+ stroke: "currentColor",
537
+ viewBox: "0 0 24 24",
538
+ children: /* @__PURE__ */ h.jsx(
539
+ "path",
540
+ {
541
+ strokeLinecap: "round",
542
+ strokeLinejoin: "round",
543
+ strokeWidth: 2,
544
+ d: "M9 5l7 7-7 7"
545
+ }
546
+ )
547
+ }
548
+ )
549
+ ]
550
+ }
551
+ ) })
552
+ ]
553
+ }
554
+ );
555
+ return /* @__PURE__ */ h.jsx("div", { children: _ }, g.id || w);
556
+ };
557
+ return /* @__PURE__ */ h.jsx("div", { className: E(st({ columns: t, spacing: n }), e), children: r.map(k) });
558
+ }, Ue = (e, r, t, n) => ({
559
+ icon: e,
560
+ title: r,
561
+ description: t,
562
+ ...n
563
+ }), Ir = (e) => [
564
+ Ue(
565
+ /* @__PURE__ */ h.jsx(
566
+ "svg",
567
+ {
568
+ className: "w-8 h-8",
569
+ fill: "none",
570
+ stroke: "currentColor",
571
+ viewBox: "0 0 24 24",
572
+ children: /* @__PURE__ */ h.jsx(
573
+ "path",
574
+ {
575
+ strokeLinecap: "round",
576
+ strokeLinejoin: "round",
577
+ strokeWidth: 2,
578
+ d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"
579
+ }
580
+ )
581
+ }
582
+ ),
583
+ e?.passwordlessTitle || "Passwordless Security",
584
+ e?.passwordlessDescription || "Authenticate using your Web3 wallet - no passwords to remember or lose."
585
+ ),
586
+ Ue(
587
+ /* @__PURE__ */ h.jsx(
588
+ "svg",
589
+ {
590
+ className: "w-8 h-8",
591
+ fill: "none",
592
+ stroke: "currentColor",
593
+ viewBox: "0 0 24 24",
594
+ children: /* @__PURE__ */ h.jsx(
595
+ "path",
596
+ {
597
+ strokeLinecap: "round",
598
+ strokeLinejoin: "round",
599
+ strokeWidth: 2,
600
+ d: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.40A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"
601
+ }
602
+ )
603
+ }
604
+ ),
605
+ e?.encryptionTitle || "End-to-End Encryption",
606
+ e?.encryptionDescription || "Your emails are encrypted and only you can read them."
607
+ )
608
+ ];
609
+ function mt({
610
+ title: e,
611
+ titleId: r,
612
+ ...t
613
+ }, n) {
614
+ return /* @__PURE__ */ c.createElement("svg", Object.assign({
615
+ xmlns: "http://www.w3.org/2000/svg",
616
+ fill: "none",
617
+ viewBox: "0 0 24 24",
618
+ strokeWidth: 1.5,
619
+ stroke: "currentColor",
620
+ "aria-hidden": "true",
621
+ "data-slot": "icon",
622
+ ref: n,
623
+ "aria-labelledby": r
624
+ }, t), e ? /* @__PURE__ */ c.createElement("title", {
625
+ id: r
626
+ }, e) : null, /* @__PURE__ */ c.createElement("path", {
627
+ strokeLinecap: "round",
628
+ strokeLinejoin: "round",
629
+ d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
630
+ }));
631
+ }
632
+ const ft = /* @__PURE__ */ c.forwardRef(mt), Mr = ({
633
+ title: e,
634
+ description: r,
635
+ icon: t = ft,
636
+ iconVariant: n = "success",
637
+ size: a = "md",
638
+ className: o
639
+ }) => {
640
+ const l = {
641
+ primary: "bg-blue-400 text-blue-900",
642
+ success: "bg-green-400 text-emerald-900",
643
+ warning: "bg-yellow-400 text-yellow-900",
644
+ info: "bg-cyan-400 text-cyan-900",
645
+ gradient: "bg-gradient-to-br from-blue-400 to-purple-500 text-white"
646
+ }, s = {
647
+ sm: {
648
+ container: "gap-2",
649
+ icon: "p-1.5",
650
+ iconSize: "h-4 w-4",
651
+ title: z.body.md(),
652
+ description: z.body.sm()
653
+ },
654
+ md: {
655
+ container: "gap-3",
656
+ icon: "p-2",
657
+ iconSize: "h-5 w-5",
658
+ title: z.body.strong.md(),
659
+ description: z.body.md()
660
+ },
661
+ lg: {
662
+ container: "gap-4",
663
+ icon: "p-3",
664
+ iconSize: "h-6 w-6",
665
+ title: z.heading.h4(),
666
+ description: z.body.md()
667
+ }
668
+ }[a];
669
+ return /* @__PURE__ */ h.jsxs("div", { className: E("flex items-start", s.container, o), children: [
670
+ /* @__PURE__ */ h.jsx(
671
+ "div",
672
+ {
673
+ className: E(
674
+ "rounded-full flex-shrink-0",
675
+ s.icon,
676
+ l[n]
677
+ ),
678
+ children: /* @__PURE__ */ h.jsx(t, { className: s.iconSize })
679
+ }
680
+ ),
681
+ /* @__PURE__ */ h.jsxs("div", { className: "flex-1 min-w-0", children: [
682
+ /* @__PURE__ */ h.jsx("h4", { className: s.title, children: e }),
683
+ r && /* @__PURE__ */ h.jsx(
684
+ "p",
685
+ {
686
+ className: E(
687
+ s.description,
688
+ "mt-1 text-gray-600 dark:text-gray-300"
689
+ ),
690
+ children: r
691
+ }
692
+ )
693
+ ] })
694
+ ] });
695
+ }, Wr = ({
696
+ className: e,
697
+ children: r,
698
+ disabled: t = !1,
699
+ onClick: n
700
+ }) => /* @__PURE__ */ h.jsx(
701
+ "div",
702
+ {
703
+ className: E(
704
+ "p-4 rounded-lg border transition-colors",
705
+ "bg-white dark:bg-gray-900",
706
+ "border-gray-200 dark:border-gray-700",
707
+ "text-gray-900 dark:text-white",
708
+ t && "opacity-50 cursor-not-allowed",
709
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
710
+ e
711
+ ),
712
+ onClick: t ? void 0 : n,
713
+ role: "region",
714
+ "aria-label": "UfeatureUspotlight",
715
+ children: r || "UfeatureUspotlight Component"
716
+ }
717
+ ), Vr = ({
718
+ className: e,
719
+ children: r,
720
+ disabled: t = !1,
721
+ onClick: n
722
+ }) => /* @__PURE__ */ h.jsx(
723
+ "div",
724
+ {
725
+ className: E(
726
+ "p-4 rounded-lg border transition-colors",
727
+ "bg-white dark:bg-gray-900",
728
+ "border-gray-200 dark:border-gray-700",
729
+ "text-gray-900 dark:text-white",
730
+ t && "opacity-50 cursor-not-allowed",
731
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
732
+ e
733
+ ),
734
+ onClick: t ? void 0 : n,
735
+ role: "region",
736
+ "aria-label": "UfunnelUchart",
737
+ children: r || "UfunnelUchart Component"
738
+ }
739
+ ), zr = ({
740
+ badgeIcon: e,
741
+ badgeText: r,
742
+ badgeColor: t = "blue",
743
+ title: n,
744
+ subtitle: a,
745
+ description: o,
746
+ primaryButton: l,
747
+ secondaryButton: i,
748
+ className: s,
749
+ children: d
750
+ }) => {
751
+ const m = {
752
+ blue: "bg-blue-100 dark:bg-blue-900/30 border-blue-300 dark:border-blue-700 text-blue-800 dark:text-blue-200",
753
+ green: "bg-green-100 dark:bg-green-900/30 border-green-300 dark:border-green-700 text-green-800 dark:text-green-200",
754
+ purple: "bg-purple-100 dark:bg-purple-900/30 border-purple-300 dark:border-purple-700 text-purple-800 dark:text-purple-200",
755
+ orange: "bg-orange-100 dark:bg-orange-900/30 border-orange-300 dark:border-orange-700 text-orange-800 dark:text-orange-200",
756
+ pink: "bg-pink-100 dark:bg-pink-900/30 border-pink-300 dark:border-pink-700 text-pink-800 dark:text-pink-200",
757
+ gray: "bg-gray-100 dark:bg-gray-900/30 border-gray-300 dark:border-gray-700 text-gray-800 dark:text-gray-200"
758
+ }[t];
759
+ return /* @__PURE__ */ h.jsx("section", { className: E("py-20", s), children: /* @__PURE__ */ h.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: [
760
+ /* @__PURE__ */ h.jsxs(
761
+ "div",
762
+ {
763
+ className: E(
764
+ "inline-flex items-center border px-6 py-3 rounded-full mb-6",
765
+ m
766
+ ),
767
+ children: [
768
+ e && /* @__PURE__ */ h.jsx("span", { className: "mr-3", children: e }),
769
+ /* @__PURE__ */ h.jsx("span", { className: "font-semibold", children: r })
770
+ ]
771
+ }
772
+ ),
773
+ /* @__PURE__ */ h.jsxs("h1", { className: "text-4xl md:text-6xl font-bold text-gray-900 dark:text-gray-100 mb-6", children: [
774
+ typeof n == "string" ? /* @__PURE__ */ h.jsx("span", { dangerouslySetInnerHTML: { __html: n } }) : n,
775
+ a && /* @__PURE__ */ h.jsx("span", { className: "text-blue-600 dark:text-blue-400 block", children: a })
776
+ ] }),
777
+ /* @__PURE__ */ h.jsx("p", { className: "text-xl text-gray-600 dark:text-gray-300 mb-8 max-w-4xl mx-auto leading-relaxed", children: o }),
778
+ (l || i) && /* @__PURE__ */ h.jsxs("div", { className: "flex flex-col sm:flex-row gap-4 justify-center mb-8", children: [
779
+ l && (l.href ? /* @__PURE__ */ h.jsx(
780
+ "a",
781
+ {
782
+ href: l.href,
783
+ className: E(
784
+ "px-8 py-3 rounded-md bg-blue-600 text-white hover:bg-blue-700 transition-colors inline-block",
785
+ l.className
786
+ ),
787
+ children: l.text
788
+ }
789
+ ) : /* @__PURE__ */ h.jsx(
790
+ "button",
791
+ {
792
+ onClick: l.onClick,
793
+ className: E(
794
+ "px-8 py-3 rounded-md bg-blue-600 text-white hover:bg-blue-700 transition-colors",
795
+ l.className
796
+ ),
797
+ children: l.text
798
+ }
799
+ )),
800
+ i && (i.href ? /* @__PURE__ */ h.jsx(
801
+ "a",
802
+ {
803
+ href: i.href,
804
+ className: E(
805
+ "px-8 py-3 rounded-md border-2 border-gray-300 dark:border-gray-600 hover:border-gray-400 transition-colors inline-block",
806
+ i.className
807
+ ),
808
+ children: i.text
809
+ }
810
+ ) : /* @__PURE__ */ h.jsx(
811
+ "button",
812
+ {
813
+ onClick: i.onClick,
814
+ className: E(
815
+ "px-8 py-3 rounded-md border-2 border-gray-300 dark:border-gray-600 hover:border-gray-400 transition-colors",
816
+ i.className
817
+ ),
818
+ children: i.text
819
+ }
820
+ ))
821
+ ] }),
822
+ d
823
+ ] }) });
824
+ };
825
+ function S(e, r) {
826
+ if (e === !1 || e === null || typeof e > "u")
827
+ throw new Error(r);
828
+ }
829
+ function T(e, r) {
830
+ if (!e) {
831
+ typeof console < "u" && console.warn(r);
832
+ try {
833
+ throw new Error(r);
834
+ } catch {
835
+ }
836
+ }
837
+ }
838
+ function de({
839
+ pathname: e = "/",
840
+ search: r = "",
841
+ hash: t = ""
842
+ }) {
843
+ return r && r !== "?" && (e += r.charAt(0) === "?" ? r : "?" + r), t && t !== "#" && (e += t.charAt(0) === "#" ? t : "#" + t), e;
844
+ }
845
+ function he(e) {
846
+ let r = {};
847
+ if (e) {
848
+ let t = e.indexOf("#");
849
+ t >= 0 && (r.hash = e.substring(t), e = e.substring(0, t));
850
+ let n = e.indexOf("?");
851
+ n >= 0 && (r.search = e.substring(n), e = e.substring(0, n)), e && (r.pathname = e);
852
+ }
853
+ return r;
854
+ }
855
+ function Ie(e, r, t = "/") {
856
+ return ht(e, r, t, !1);
857
+ }
858
+ function ht(e, r, t, n) {
859
+ let a = typeof r == "string" ? he(r) : r, o = F(a.pathname || "/", t);
860
+ if (o == null)
861
+ return null;
862
+ let l = Me(e);
863
+ gt(l);
864
+ let i = null;
865
+ for (let s = 0; i == null && s < l.length; ++s) {
866
+ let d = Nt(o);
867
+ i = Ct(
868
+ l[s],
869
+ d,
870
+ n
871
+ );
872
+ }
873
+ return i;
874
+ }
875
+ function Me(e, r = [], t = [], n = "", a = !1) {
876
+ let o = (l, i, s = a, d) => {
877
+ let f = {
878
+ relativePath: d === void 0 ? l.path || "" : d,
879
+ caseSensitive: l.caseSensitive === !0,
880
+ childrenIndex: i,
881
+ route: l
882
+ };
883
+ if (f.relativePath.startsWith("/")) {
884
+ if (!f.relativePath.startsWith(n) && s)
885
+ return;
886
+ S(
887
+ f.relativePath.startsWith(n),
888
+ `Absolute route path "${f.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`
889
+ ), f.relativePath = f.relativePath.slice(n.length);
890
+ }
891
+ let m = U([n, f.relativePath]), p = t.concat(f);
892
+ l.children && l.children.length > 0 && (S(
893
+ // Our types know better, but runtime JS may not!
894
+ // @ts-expect-error
895
+ l.index !== !0,
896
+ `Index routes must not have child routes. Please remove all child routes from route path "${m}".`
897
+ ), Me(
898
+ l.children,
899
+ r,
900
+ p,
901
+ m,
902
+ s
903
+ )), !(l.path == null && !l.index) && r.push({
904
+ path: m,
905
+ score: wt(m, l.index),
906
+ routesMeta: p
907
+ });
908
+ };
909
+ return e.forEach((l, i) => {
910
+ if (l.path === "" || !l.path?.includes("?"))
911
+ o(l, i);
912
+ else
913
+ for (let s of We(l.path))
914
+ o(l, i, !0, s);
915
+ }), r;
916
+ }
917
+ function We(e) {
918
+ let r = e.split("/");
919
+ if (r.length === 0) return [];
920
+ let [t, ...n] = r, a = t.endsWith("?"), o = t.replace(/\?$/, "");
921
+ if (n.length === 0)
922
+ return a ? [o, ""] : [o];
923
+ let l = We(n.join("/")), i = [];
924
+ return i.push(
925
+ ...l.map(
926
+ (s) => s === "" ? o : [o, s].join("/")
927
+ )
928
+ ), a && i.push(...l), i.map(
929
+ (s) => e.startsWith("/") && s === "" ? "/" : s
930
+ );
931
+ }
932
+ function gt(e) {
933
+ e.sort(
934
+ (r, t) => r.score !== t.score ? t.score - r.score : Et(
935
+ r.routesMeta.map((n) => n.childrenIndex),
936
+ t.routesMeta.map((n) => n.childrenIndex)
937
+ )
938
+ );
939
+ }
940
+ var pt = /^:[\w-]+$/, bt = 3, xt = 2, vt = 1, yt = 10, kt = -2, $e = (e) => e === "*";
941
+ function wt(e, r) {
942
+ let t = e.split("/"), n = t.length;
943
+ return t.some($e) && (n += kt), r && (n += xt), t.filter((a) => !$e(a)).reduce(
944
+ (a, o) => a + (pt.test(o) ? bt : o === "" ? vt : yt),
945
+ n
946
+ );
947
+ }
948
+ function Et(e, r) {
949
+ return e.length === r.length && e.slice(0, -1).every((n, a) => n === r[a]) ? (
950
+ // If two routes are siblings, we should try to match the earlier sibling
951
+ // first. This allows people to have fine-grained control over the matching
952
+ // behavior by simply putting routes with identical paths in the order they
953
+ // want them tried.
954
+ e[e.length - 1] - r[r.length - 1]
955
+ ) : (
956
+ // Otherwise, it doesn't really make sense to rank non-siblings by index,
957
+ // so they sort equally.
958
+ 0
959
+ );
960
+ }
961
+ function Ct(e, r, t = !1) {
962
+ let { routesMeta: n } = e, a = {}, o = "/", l = [];
963
+ for (let i = 0; i < n.length; ++i) {
964
+ let s = n[i], d = i === n.length - 1, f = o === "/" ? r : r.slice(o.length) || "/", m = te(
965
+ { path: s.relativePath, caseSensitive: s.caseSensitive, end: d },
966
+ f
967
+ ), p = s.route;
968
+ if (!m && d && t && !n[n.length - 1].route.index && (m = te(
969
+ {
970
+ path: s.relativePath,
971
+ caseSensitive: s.caseSensitive,
972
+ end: !1
973
+ },
974
+ f
975
+ )), !m)
976
+ return null;
977
+ Object.assign(a, m.params), l.push({
978
+ // TODO: Can this as be avoided?
979
+ params: a,
980
+ pathname: U([o, m.pathname]),
981
+ pathnameBase: Lt(
982
+ U([o, m.pathnameBase])
983
+ ),
984
+ route: p
985
+ }), m.pathnameBase !== "/" && (o = U([o, m.pathnameBase]));
986
+ }
987
+ return l;
988
+ }
989
+ function te(e, r) {
990
+ typeof e == "string" && (e = { path: e, caseSensitive: !1, end: !0 });
991
+ let [t, n] = Rt(
992
+ e.path,
993
+ e.caseSensitive,
994
+ e.end
995
+ ), a = r.match(t);
996
+ if (!a) return null;
997
+ let o = a[0], l = o.replace(/(.)\/+$/, "$1"), i = a.slice(1);
998
+ return {
999
+ params: n.reduce(
1000
+ (d, { paramName: f, isOptional: m }, p) => {
1001
+ if (f === "*") {
1002
+ let x = i[p] || "";
1003
+ l = o.slice(0, o.length - x.length).replace(/(.)\/+$/, "$1");
1004
+ }
1005
+ const b = i[p];
1006
+ return m && !b ? d[f] = void 0 : d[f] = (b || "").replace(/%2F/g, "/"), d;
1007
+ },
1008
+ {}
1009
+ ),
1010
+ pathname: o,
1011
+ pathnameBase: l,
1012
+ pattern: e
1013
+ };
1014
+ }
1015
+ function Rt(e, r = !1, t = !0) {
1016
+ T(
1017
+ e === "*" || !e.endsWith("*") || e.endsWith("/*"),
1018
+ `Route path "${e}" will be treated as if it were "${e.replace(/\*$/, "/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/, "/*")}".`
1019
+ );
1020
+ let n = [], a = "^" + e.replace(/\/*\*?$/, "").replace(/^\/*/, "/").replace(/[\\.*+^${}|()[\]]/g, "\\$&").replace(
1021
+ /\/:([\w-]+)(\?)?/g,
1022
+ (l, i, s) => (n.push({ paramName: i, isOptional: s != null }), s ? "/?([^\\/]+)?" : "/([^\\/]+)")
1023
+ ).replace(/\/([\w-]+)\?(\/|$)/g, "(/$1)?$2");
1024
+ return e.endsWith("*") ? (n.push({ paramName: "*" }), a += e === "*" || e === "/*" ? "(.*)$" : "(?:\\/(.+)|\\/*)$") : t ? a += "\\/*$" : e !== "" && e !== "/" && (a += "(?:(?=\\/|$))"), [new RegExp(a, r ? void 0 : "i"), n];
1025
+ }
1026
+ function Nt(e) {
1027
+ try {
1028
+ return e.split("/").map((r) => decodeURIComponent(r).replace(/\//g, "%2F")).join("/");
1029
+ } catch (r) {
1030
+ return T(
1031
+ !1,
1032
+ `The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${r}).`
1033
+ ), e;
1034
+ }
1035
+ }
1036
+ function F(e, r) {
1037
+ if (r === "/") return e;
1038
+ if (!e.toLowerCase().startsWith(r.toLowerCase()))
1039
+ return null;
1040
+ let t = r.endsWith("/") ? r.length - 1 : r.length, n = e.charAt(t);
1041
+ return n && n !== "/" ? null : e.slice(t) || "/";
1042
+ }
1043
+ var jt = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i, St = (e) => jt.test(e);
1044
+ function Pt(e, r = "/") {
1045
+ let {
1046
+ pathname: t,
1047
+ search: n = "",
1048
+ hash: a = ""
1049
+ } = typeof e == "string" ? he(e) : e, o;
1050
+ if (t)
1051
+ if (St(t))
1052
+ o = t;
1053
+ else {
1054
+ if (t.includes("//")) {
1055
+ let l = t;
1056
+ t = t.replace(/\/\/+/g, "/"), T(
1057
+ !1,
1058
+ `Pathnames cannot have embedded double slashes - normalizing ${l} -> ${t}`
1059
+ );
1060
+ }
1061
+ t.startsWith("/") ? o = Ae(t.substring(1), "/") : o = Ae(t, r);
1062
+ }
1063
+ else
1064
+ o = r;
1065
+ return {
1066
+ pathname: o,
1067
+ search: Tt(n),
1068
+ hash: Ut(a)
1069
+ };
1070
+ }
1071
+ function Ae(e, r) {
1072
+ let t = r.replace(/\/+$/, "").split("/");
1073
+ return e.split("/").forEach((a) => {
1074
+ a === ".." ? t.length > 1 && t.pop() : a !== "." && t.push(a);
1075
+ }), t.length > 1 ? t.join("/") : "/";
1076
+ }
1077
+ function ue(e, r, t, n) {
1078
+ return `Cannot include a '${e}' character in a manually specified \`to.${r}\` field [${JSON.stringify(
1079
+ n
1080
+ )}]. Please separate it out to the \`to.${t}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`;
1081
+ }
1082
+ function _t(e) {
1083
+ return e.filter(
1084
+ (r, t) => t === 0 || r.route.path && r.route.path.length > 0
1085
+ );
1086
+ }
1087
+ function Ve(e) {
1088
+ let r = _t(e);
1089
+ return r.map(
1090
+ (t, n) => n === r.length - 1 ? t.pathname : t.pathnameBase
1091
+ );
1092
+ }
1093
+ function ze(e, r, t, n = !1) {
1094
+ let a;
1095
+ typeof e == "string" ? a = he(e) : (a = { ...e }, S(
1096
+ !a.pathname || !a.pathname.includes("?"),
1097
+ ue("?", "pathname", "search", a)
1098
+ ), S(
1099
+ !a.pathname || !a.pathname.includes("#"),
1100
+ ue("#", "pathname", "hash", a)
1101
+ ), S(
1102
+ !a.search || !a.search.includes("#"),
1103
+ ue("#", "search", "hash", a)
1104
+ ));
1105
+ let o = e === "" || a.pathname === "", l = o ? "/" : a.pathname, i;
1106
+ if (l == null)
1107
+ i = t;
1108
+ else {
1109
+ let m = r.length - 1;
1110
+ if (!n && l.startsWith("..")) {
1111
+ let p = l.split("/");
1112
+ for (; p[0] === ".."; )
1113
+ p.shift(), m -= 1;
1114
+ a.pathname = p.join("/");
1115
+ }
1116
+ i = m >= 0 ? r[m] : "/";
1117
+ }
1118
+ let s = Pt(a, i), d = l && l !== "/" && l.endsWith("/"), f = (o || l === ".") && t.endsWith("/");
1119
+ return !s.pathname.endsWith("/") && (d || f) && (s.pathname += "/"), s;
1120
+ }
1121
+ var U = (e) => e.join("/").replace(/\/\/+/g, "/"), Lt = (e) => e.replace(/\/+$/, "").replace(/^\/*/, "/"), Tt = (e) => !e || e === "?" ? "" : e.startsWith("?") ? e : "?" + e, Ut = (e) => !e || e === "#" ? "" : e.startsWith("#") ? e : "#" + e;
1122
+ function $t(e) {
1123
+ return e != null && typeof e.status == "number" && typeof e.statusText == "string" && typeof e.internal == "boolean" && "data" in e;
1124
+ }
1125
+ Object.getOwnPropertyNames(Object.prototype).sort().join("\0");
1126
+ var Be = [
1127
+ "POST",
1128
+ "PUT",
1129
+ "PATCH",
1130
+ "DELETE"
1131
+ ];
1132
+ new Set(
1133
+ Be
1134
+ );
1135
+ var At = [
1136
+ "GET",
1137
+ ...Be
1138
+ ];
1139
+ new Set(At);
1140
+ var B = c.createContext(null);
1141
+ B.displayName = "DataRouter";
1142
+ var re = c.createContext(null);
1143
+ re.displayName = "DataRouterState";
1144
+ c.createContext(!1);
1145
+ var Ye = c.createContext({
1146
+ isTransitioning: !1
1147
+ });
1148
+ Ye.displayName = "ViewTransition";
1149
+ var Ot = c.createContext(
1150
+ /* @__PURE__ */ new Map()
1151
+ );
1152
+ Ot.displayName = "Fetchers";
1153
+ var Ft = c.createContext(null);
1154
+ Ft.displayName = "Await";
1155
+ var $ = c.createContext(
1156
+ null
1157
+ );
1158
+ $.displayName = "Navigation";
1159
+ var ge = c.createContext(
1160
+ null
1161
+ );
1162
+ ge.displayName = "Location";
1163
+ var A = c.createContext({
1164
+ outlet: null,
1165
+ matches: [],
1166
+ isDataRoute: !1
1167
+ });
1168
+ A.displayName = "Route";
1169
+ var pe = c.createContext(null);
1170
+ pe.displayName = "RouteError";
1171
+ function Dt(e, { relative: r } = {}) {
1172
+ S(
1173
+ ne(),
1174
+ // TODO: This error is probably because they somehow have 2 versions of the
1175
+ // router loaded. We can help them understand how to avoid that.
1176
+ "useHref() may be used only in the context of a <Router> component."
1177
+ );
1178
+ let { basename: t, navigator: n } = c.useContext($), { hash: a, pathname: o, search: l } = G(e, { relative: r }), i = o;
1179
+ return t !== "/" && (i = o === "/" ? t : U([t, o])), n.createHref({ pathname: i, search: l, hash: a });
1180
+ }
1181
+ function ne() {
1182
+ return c.useContext(ge) != null;
1183
+ }
1184
+ function I() {
1185
+ return S(
1186
+ ne(),
1187
+ // TODO: This error is probably because they somehow have 2 versions of the
1188
+ // router loaded. We can help them understand how to avoid that.
1189
+ "useLocation() may be used only in the context of a <Router> component."
1190
+ ), c.useContext(ge).location;
1191
+ }
1192
+ var He = "You should call navigate() in a React.useEffect(), not when your component is first rendered.";
1193
+ function Je(e) {
1194
+ c.useContext($).static || c.useLayoutEffect(e);
1195
+ }
1196
+ function It() {
1197
+ let { isDataRoute: e } = c.useContext(A);
1198
+ return e ? Zt() : Mt();
1199
+ }
1200
+ function Mt() {
1201
+ S(
1202
+ ne(),
1203
+ // TODO: This error is probably because they somehow have 2 versions of the
1204
+ // router loaded. We can help them understand how to avoid that.
1205
+ "useNavigate() may be used only in the context of a <Router> component."
1206
+ );
1207
+ let e = c.useContext(B), { basename: r, navigator: t } = c.useContext($), { matches: n } = c.useContext(A), { pathname: a } = I(), o = JSON.stringify(Ve(n)), l = c.useRef(!1);
1208
+ return Je(() => {
1209
+ l.current = !0;
1210
+ }), c.useCallback(
1211
+ (s, d = {}) => {
1212
+ if (T(l.current, He), !l.current) return;
1213
+ if (typeof s == "number") {
1214
+ t.go(s);
1215
+ return;
1216
+ }
1217
+ let f = ze(
1218
+ s,
1219
+ JSON.parse(o),
1220
+ a,
1221
+ d.relative === "path"
1222
+ );
1223
+ e == null && r !== "/" && (f.pathname = f.pathname === "/" ? r : U([r, f.pathname])), (d.replace ? t.replace : t.push)(
1224
+ f,
1225
+ d.state,
1226
+ d
1227
+ );
1228
+ },
1229
+ [
1230
+ r,
1231
+ t,
1232
+ o,
1233
+ a,
1234
+ e
1235
+ ]
1236
+ );
1237
+ }
1238
+ c.createContext(null);
1239
+ function G(e, { relative: r } = {}) {
1240
+ let { matches: t } = c.useContext(A), { pathname: n } = I(), a = JSON.stringify(Ve(t));
1241
+ return c.useMemo(
1242
+ () => ze(
1243
+ e,
1244
+ JSON.parse(a),
1245
+ n,
1246
+ r === "path"
1247
+ ),
1248
+ [e, a, n, r]
1249
+ );
1250
+ }
1251
+ function Wt(e, r, t, n, a) {
1252
+ S(
1253
+ ne(),
1254
+ // TODO: This error is probably because they somehow have 2 versions of the
1255
+ // router loaded. We can help them understand how to avoid that.
1256
+ "useRoutes() may be used only in the context of a <Router> component."
1257
+ );
1258
+ let { navigator: o } = c.useContext($), { matches: l } = c.useContext(A), i = l[l.length - 1], s = i ? i.params : {}, d = i ? i.pathname : "/", f = i ? i.pathnameBase : "/", m = i && i.route;
1259
+ {
1260
+ let g = m && m.path || "";
1261
+ Ge(
1262
+ d,
1263
+ !m || g.endsWith("*") || g.endsWith("*?"),
1264
+ `You rendered descendant <Routes> (or called \`useRoutes()\`) at "${d}" (under <Route path="${g}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
1265
+
1266
+ Please change the parent <Route path="${g}"> to <Route path="${g === "/" ? "*" : `${g}/*`}">.`
1267
+ );
1268
+ }
1269
+ let p = I(), b;
1270
+ b = p;
1271
+ let x = b.pathname || "/", C = x;
1272
+ if (f !== "/") {
1273
+ let g = f.replace(/^\//, "").split("/");
1274
+ C = "/" + x.replace(/^\//, "").split("/").slice(g.length).join("/");
1275
+ }
1276
+ let v = Ie(e, { pathname: C });
1277
+ return T(
1278
+ m || v != null,
1279
+ `No routes matched location "${b.pathname}${b.search}${b.hash}" `
1280
+ ), T(
1281
+ v == null || v[v.length - 1].route.element !== void 0 || v[v.length - 1].route.Component !== void 0 || v[v.length - 1].route.lazy !== void 0,
1282
+ `Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`
1283
+ ), Ht(
1284
+ v && v.map(
1285
+ (g) => Object.assign({}, g, {
1286
+ params: Object.assign({}, s, g.params),
1287
+ pathname: U([
1288
+ f,
1289
+ // Re-encode pathnames that were decoded inside matchRoutes.
1290
+ // Pre-encode `?` and `#` ahead of `encodeLocation` because it uses
1291
+ // `new URL()` internally and we need to prevent it from treating
1292
+ // them as separators
1293
+ o.encodeLocation ? o.encodeLocation(
1294
+ g.pathname.replace(/\?/g, "%3F").replace(/#/g, "%23")
1295
+ ).pathname : g.pathname
1296
+ ]),
1297
+ pathnameBase: g.pathnameBase === "/" ? f : U([
1298
+ f,
1299
+ // Re-encode pathnames that were decoded inside matchRoutes
1300
+ // Pre-encode `?` and `#` ahead of `encodeLocation` because it uses
1301
+ // `new URL()` internally and we need to prevent it from treating
1302
+ // them as separators
1303
+ o.encodeLocation ? o.encodeLocation(
1304
+ g.pathnameBase.replace(/\?/g, "%3F").replace(/#/g, "%23")
1305
+ ).pathname : g.pathnameBase
1306
+ ])
1307
+ })
1308
+ ),
1309
+ l,
1310
+ t,
1311
+ n,
1312
+ a
1313
+ );
1314
+ }
1315
+ function Vt() {
1316
+ let e = Xt(), r = $t(e) ? `${e.status} ${e.statusText}` : e instanceof Error ? e.message : JSON.stringify(e), t = e instanceof Error ? e.stack : null, n = "rgba(200,200,200, 0.5)", a = { padding: "0.5rem", backgroundColor: n }, o = { padding: "2px 4px", backgroundColor: n }, l = null;
1317
+ return console.error(
1318
+ "Error handled by React Router default ErrorBoundary:",
1319
+ e
1320
+ ), l = /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("p", null, "💿 Hey developer 👋"), /* @__PURE__ */ c.createElement("p", null, "You can provide a way better UX than this when your app throws errors by providing your own ", /* @__PURE__ */ c.createElement("code", { style: o }, "ErrorBoundary"), " or", " ", /* @__PURE__ */ c.createElement("code", { style: o }, "errorElement"), " prop on your route.")), /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("h2", null, "Unexpected Application Error!"), /* @__PURE__ */ c.createElement("h3", { style: { fontStyle: "italic" } }, r), t ? /* @__PURE__ */ c.createElement("pre", { style: a }, t) : null, l);
1321
+ }
1322
+ var zt = /* @__PURE__ */ c.createElement(Vt, null), Bt = class extends c.Component {
1323
+ constructor(e) {
1324
+ super(e), this.state = {
1325
+ location: e.location,
1326
+ revalidation: e.revalidation,
1327
+ error: e.error
1328
+ };
1329
+ }
1330
+ static getDerivedStateFromError(e) {
1331
+ return { error: e };
1332
+ }
1333
+ static getDerivedStateFromProps(e, r) {
1334
+ return r.location !== e.location || r.revalidation !== "idle" && e.revalidation === "idle" ? {
1335
+ error: e.error,
1336
+ location: e.location,
1337
+ revalidation: e.revalidation
1338
+ } : {
1339
+ error: e.error !== void 0 ? e.error : r.error,
1340
+ location: r.location,
1341
+ revalidation: e.revalidation || r.revalidation
1342
+ };
1343
+ }
1344
+ componentDidCatch(e, r) {
1345
+ this.props.onError ? this.props.onError(e, r) : console.error(
1346
+ "React Router caught the following error during render",
1347
+ e
1348
+ );
1349
+ }
1350
+ render() {
1351
+ return this.state.error !== void 0 ? /* @__PURE__ */ c.createElement(A.Provider, { value: this.props.routeContext }, /* @__PURE__ */ c.createElement(
1352
+ pe.Provider,
1353
+ {
1354
+ value: this.state.error,
1355
+ children: this.props.component
1356
+ }
1357
+ )) : this.props.children;
1358
+ }
1359
+ };
1360
+ function Yt({ routeContext: e, match: r, children: t }) {
1361
+ let n = c.useContext(B);
1362
+ return n && n.static && n.staticContext && (r.route.errorElement || r.route.ErrorBoundary) && (n.staticContext._deepestRenderedBoundaryId = r.route.id), /* @__PURE__ */ c.createElement(A.Provider, { value: e }, t);
1363
+ }
1364
+ function Ht(e, r = [], t = null, n = null, a = null) {
1365
+ if (e == null) {
1366
+ if (!t)
1367
+ return null;
1368
+ if (t.errors)
1369
+ e = t.matches;
1370
+ else if (r.length === 0 && !t.initialized && t.matches.length > 0)
1371
+ e = t.matches;
1372
+ else
1373
+ return null;
1374
+ }
1375
+ let o = e, l = t?.errors;
1376
+ if (l != null) {
1377
+ let f = o.findIndex(
1378
+ (m) => m.route.id && l?.[m.route.id] !== void 0
1379
+ );
1380
+ S(
1381
+ f >= 0,
1382
+ `Could not find a matching route for errors on route IDs: ${Object.keys(
1383
+ l
1384
+ ).join(",")}`
1385
+ ), o = o.slice(
1386
+ 0,
1387
+ Math.min(o.length, f + 1)
1388
+ );
1389
+ }
1390
+ let i = !1, s = -1;
1391
+ if (t)
1392
+ for (let f = 0; f < o.length; f++) {
1393
+ let m = o[f];
1394
+ if ((m.route.HydrateFallback || m.route.hydrateFallbackElement) && (s = f), m.route.id) {
1395
+ let { loaderData: p, errors: b } = t, x = m.route.loader && !p.hasOwnProperty(m.route.id) && (!b || b[m.route.id] === void 0);
1396
+ if (m.route.lazy || x) {
1397
+ i = !0, s >= 0 ? o = o.slice(0, s + 1) : o = [o[0]];
1398
+ break;
1399
+ }
1400
+ }
1401
+ }
1402
+ let d = t && n ? (f, m) => {
1403
+ n(f, {
1404
+ location: t.location,
1405
+ params: t.matches?.[0]?.params ?? {},
1406
+ errorInfo: m
1407
+ });
1408
+ } : void 0;
1409
+ return o.reduceRight(
1410
+ (f, m, p) => {
1411
+ let b, x = !1, C = null, v = null;
1412
+ t && (b = l && m.route.id ? l[m.route.id] : void 0, C = m.route.errorElement || zt, i && (s < 0 && p === 0 ? (Ge(
1413
+ "route-fallback",
1414
+ !1,
1415
+ "No `HydrateFallback` element provided to render during initial hydration"
1416
+ ), x = !0, v = null) : s === p && (x = !0, v = m.route.hydrateFallbackElement || null)));
1417
+ let k = r.concat(o.slice(0, p + 1)), g = () => {
1418
+ let w;
1419
+ return b ? w = C : x ? w = v : m.route.Component ? w = /* @__PURE__ */ c.createElement(m.route.Component, null) : m.route.element ? w = m.route.element : w = f, /* @__PURE__ */ c.createElement(
1420
+ Yt,
1421
+ {
1422
+ match: m,
1423
+ routeContext: {
1424
+ outlet: f,
1425
+ matches: k,
1426
+ isDataRoute: t != null
1427
+ },
1428
+ children: w
1429
+ }
1430
+ );
1431
+ };
1432
+ return t && (m.route.ErrorBoundary || m.route.errorElement || p === 0) ? /* @__PURE__ */ c.createElement(
1433
+ Bt,
1434
+ {
1435
+ location: t.location,
1436
+ revalidation: t.revalidation,
1437
+ component: C,
1438
+ error: b,
1439
+ children: g(),
1440
+ routeContext: { outlet: null, matches: k, isDataRoute: !0 },
1441
+ onError: d
1442
+ }
1443
+ ) : g();
1444
+ },
1445
+ null
1446
+ );
1447
+ }
1448
+ function be(e) {
1449
+ return `${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
1450
+ }
1451
+ function Jt(e) {
1452
+ let r = c.useContext(B);
1453
+ return S(r, be(e)), r;
1454
+ }
1455
+ function Gt(e) {
1456
+ let r = c.useContext(re);
1457
+ return S(r, be(e)), r;
1458
+ }
1459
+ function qt(e) {
1460
+ let r = c.useContext(A);
1461
+ return S(r, be(e)), r;
1462
+ }
1463
+ function xe(e) {
1464
+ let r = qt(e), t = r.matches[r.matches.length - 1];
1465
+ return S(
1466
+ t.route.id,
1467
+ `${e} can only be used on routes that contain a unique "id"`
1468
+ ), t.route.id;
1469
+ }
1470
+ function Kt() {
1471
+ return xe(
1472
+ "useRouteId"
1473
+ /* UseRouteId */
1474
+ );
1475
+ }
1476
+ function Xt() {
1477
+ let e = c.useContext(pe), r = Gt(
1478
+ "useRouteError"
1479
+ /* UseRouteError */
1480
+ ), t = xe(
1481
+ "useRouteError"
1482
+ /* UseRouteError */
1483
+ );
1484
+ return e !== void 0 ? e : r.errors?.[t];
1485
+ }
1486
+ function Zt() {
1487
+ let { router: e } = Jt(
1488
+ "useNavigate"
1489
+ /* UseNavigateStable */
1490
+ ), r = xe(
1491
+ "useNavigate"
1492
+ /* UseNavigateStable */
1493
+ ), t = c.useRef(!1);
1494
+ return Je(() => {
1495
+ t.current = !0;
1496
+ }), c.useCallback(
1497
+ async (a, o = {}) => {
1498
+ T(t.current, He), t.current && (typeof a == "number" ? e.navigate(a) : await e.navigate(a, { fromRouteId: r, ...o }));
1499
+ },
1500
+ [e, r]
1501
+ );
1502
+ }
1503
+ var Oe = {};
1504
+ function Ge(e, r, t) {
1505
+ !r && !Oe[e] && (Oe[e] = !0, T(!1, t));
1506
+ }
1507
+ c.memo(Qt);
1508
+ function Qt({
1509
+ routes: e,
1510
+ future: r,
1511
+ state: t,
1512
+ unstable_onError: n
1513
+ }) {
1514
+ return Wt(e, void 0, t, n, r);
1515
+ }
1516
+ var Q = "get", ee = "application/x-www-form-urlencoded";
1517
+ function ae(e) {
1518
+ return e != null && typeof e.tagName == "string";
1519
+ }
1520
+ function er(e) {
1521
+ return ae(e) && e.tagName.toLowerCase() === "button";
1522
+ }
1523
+ function tr(e) {
1524
+ return ae(e) && e.tagName.toLowerCase() === "form";
1525
+ }
1526
+ function rr(e) {
1527
+ return ae(e) && e.tagName.toLowerCase() === "input";
1528
+ }
1529
+ function nr(e) {
1530
+ return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
1531
+ }
1532
+ function ar(e, r) {
1533
+ return e.button === 0 && // Ignore everything but left clicks
1534
+ (!r || r === "_self") && // Let browser handle "target=_blank" etc.
1535
+ !nr(e);
1536
+ }
1537
+ var Z = null;
1538
+ function or() {
1539
+ if (Z === null)
1540
+ try {
1541
+ new FormData(
1542
+ document.createElement("form"),
1543
+ // @ts-expect-error if FormData supports the submitter parameter, this will throw
1544
+ 0
1545
+ ), Z = !1;
1546
+ } catch {
1547
+ Z = !0;
1548
+ }
1549
+ return Z;
1550
+ }
1551
+ var lr = /* @__PURE__ */ new Set([
1552
+ "application/x-www-form-urlencoded",
1553
+ "multipart/form-data",
1554
+ "text/plain"
1555
+ ]);
1556
+ function ce(e) {
1557
+ return e != null && !lr.has(e) ? (T(
1558
+ !1,
1559
+ `"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${ee}"`
1560
+ ), null) : e;
1561
+ }
1562
+ function ir(e, r) {
1563
+ let t, n, a, o, l;
1564
+ if (tr(e)) {
1565
+ let i = e.getAttribute("action");
1566
+ n = i ? F(i, r) : null, t = e.getAttribute("method") || Q, a = ce(e.getAttribute("enctype")) || ee, o = new FormData(e);
1567
+ } else if (er(e) || rr(e) && (e.type === "submit" || e.type === "image")) {
1568
+ let i = e.form;
1569
+ if (i == null)
1570
+ throw new Error(
1571
+ 'Cannot submit a <button> or <input type="submit"> without a <form>'
1572
+ );
1573
+ let s = e.getAttribute("formaction") || i.getAttribute("action");
1574
+ if (n = s ? F(s, r) : null, t = e.getAttribute("formmethod") || i.getAttribute("method") || Q, a = ce(e.getAttribute("formenctype")) || ce(i.getAttribute("enctype")) || ee, o = new FormData(i, e), !or()) {
1575
+ let { name: d, type: f, value: m } = e;
1576
+ if (f === "image") {
1577
+ let p = d ? `${d}.` : "";
1578
+ o.append(`${p}x`, "0"), o.append(`${p}y`, "0");
1579
+ } else d && o.append(d, m);
1580
+ }
1581
+ } else {
1582
+ if (ae(e))
1583
+ throw new Error(
1584
+ 'Cannot submit element that is not <form>, <button>, or <input type="submit|image">'
1585
+ );
1586
+ t = Q, n = null, a = ee, l = e;
1587
+ }
1588
+ return o && a === "text/plain" && (l = o, o = void 0), { action: n, method: t.toLowerCase(), encType: a, formData: o, body: l };
1589
+ }
1590
+ Object.getOwnPropertyNames(Object.prototype).sort().join("\0");
1591
+ function ve(e, r) {
1592
+ if (e === !1 || e === null || typeof e > "u")
1593
+ throw new Error(r);
1594
+ }
1595
+ function sr(e, r, t) {
1596
+ let n = typeof e == "string" ? new URL(
1597
+ e,
1598
+ // This can be called during the SSR flow via PrefetchPageLinksImpl so
1599
+ // don't assume window is available
1600
+ typeof window > "u" ? "server://singlefetch/" : window.location.origin
1601
+ ) : e;
1602
+ return n.pathname === "/" ? n.pathname = `_root.${t}` : r && F(n.pathname, r) === "/" ? n.pathname = `${r.replace(/\/$/, "")}/_root.${t}` : n.pathname = `${n.pathname.replace(/\/$/, "")}.${t}`, n;
1603
+ }
1604
+ async function ur(e, r) {
1605
+ if (e.id in r)
1606
+ return r[e.id];
1607
+ try {
1608
+ let t = await import(
1609
+ /* @vite-ignore */
1610
+ /* webpackIgnore: true */
1611
+ e.module
1612
+ );
1613
+ return r[e.id] = t, t;
1614
+ } catch (t) {
1615
+ return console.error(
1616
+ `Error loading route module \`${e.module}\`, reloading page...`
1617
+ ), console.error(t), window.__reactRouterContext && window.__reactRouterContext.isSpaMode, window.location.reload(), new Promise(() => {
1618
+ });
1619
+ }
1620
+ }
1621
+ function cr(e) {
1622
+ return e == null ? !1 : e.href == null ? e.rel === "preload" && typeof e.imageSrcSet == "string" && typeof e.imageSizes == "string" : typeof e.rel == "string" && typeof e.href == "string";
1623
+ }
1624
+ async function dr(e, r, t) {
1625
+ let n = await Promise.all(
1626
+ e.map(async (a) => {
1627
+ let o = r.routes[a.route.id];
1628
+ if (o) {
1629
+ let l = await ur(o, t);
1630
+ return l.links ? l.links() : [];
1631
+ }
1632
+ return [];
1633
+ })
1634
+ );
1635
+ return gr(
1636
+ n.flat(1).filter(cr).filter((a) => a.rel === "stylesheet" || a.rel === "preload").map(
1637
+ (a) => a.rel === "stylesheet" ? { ...a, rel: "prefetch", as: "style" } : { ...a, rel: "prefetch" }
1638
+ )
1639
+ );
1640
+ }
1641
+ function Fe(e, r, t, n, a, o) {
1642
+ let l = (s, d) => t[d] ? s.route.id !== t[d].route.id : !0, i = (s, d) => (
1643
+ // param change, /users/123 -> /users/456
1644
+ t[d].pathname !== s.pathname || // splat param changed, which is not present in match.path
1645
+ // e.g. /files/images/avatar.jpg -> files/finances.xls
1646
+ t[d].route.path?.endsWith("*") && t[d].params["*"] !== s.params["*"]
1647
+ );
1648
+ return o === "assets" ? r.filter(
1649
+ (s, d) => l(s, d) || i(s, d)
1650
+ ) : o === "data" ? r.filter((s, d) => {
1651
+ let f = n.routes[s.route.id];
1652
+ if (!f || !f.hasLoader)
1653
+ return !1;
1654
+ if (l(s, d) || i(s, d))
1655
+ return !0;
1656
+ if (s.route.shouldRevalidate) {
1657
+ let m = s.route.shouldRevalidate({
1658
+ currentUrl: new URL(
1659
+ a.pathname + a.search + a.hash,
1660
+ window.origin
1661
+ ),
1662
+ currentParams: t[0]?.params || {},
1663
+ nextUrl: new URL(e, window.origin),
1664
+ nextParams: s.params,
1665
+ defaultShouldRevalidate: !0
1666
+ });
1667
+ if (typeof m == "boolean")
1668
+ return m;
1669
+ }
1670
+ return !0;
1671
+ }) : [];
1672
+ }
1673
+ function mr(e, r, { includeHydrateFallback: t } = {}) {
1674
+ return fr(
1675
+ e.map((n) => {
1676
+ let a = r.routes[n.route.id];
1677
+ if (!a) return [];
1678
+ let o = [a.module];
1679
+ return a.clientActionModule && (o = o.concat(a.clientActionModule)), a.clientLoaderModule && (o = o.concat(a.clientLoaderModule)), t && a.hydrateFallbackModule && (o = o.concat(a.hydrateFallbackModule)), a.imports && (o = o.concat(a.imports)), o;
1680
+ }).flat(1)
1681
+ );
1682
+ }
1683
+ function fr(e) {
1684
+ return [...new Set(e)];
1685
+ }
1686
+ function hr(e) {
1687
+ let r = {}, t = Object.keys(e).sort();
1688
+ for (let n of t)
1689
+ r[n] = e[n];
1690
+ return r;
1691
+ }
1692
+ function gr(e, r) {
1693
+ let t = /* @__PURE__ */ new Set();
1694
+ return new Set(r), e.reduce((n, a) => {
1695
+ let o = JSON.stringify(hr(a));
1696
+ return t.has(o) || (t.add(o), n.push({ key: o, link: a })), n;
1697
+ }, []);
1698
+ }
1699
+ function qe() {
1700
+ let e = c.useContext(B);
1701
+ return ve(
1702
+ e,
1703
+ "You must render this element inside a <DataRouterContext.Provider> element"
1704
+ ), e;
1705
+ }
1706
+ function pr() {
1707
+ let e = c.useContext(re);
1708
+ return ve(
1709
+ e,
1710
+ "You must render this element inside a <DataRouterStateContext.Provider> element"
1711
+ ), e;
1712
+ }
1713
+ var ye = c.createContext(void 0);
1714
+ ye.displayName = "FrameworkContext";
1715
+ function Ke() {
1716
+ let e = c.useContext(ye);
1717
+ return ve(
1718
+ e,
1719
+ "You must render this element inside a <HydratedRouter> element"
1720
+ ), e;
1721
+ }
1722
+ function br(e, r) {
1723
+ let t = c.useContext(ye), [n, a] = c.useState(!1), [o, l] = c.useState(!1), { onFocus: i, onBlur: s, onMouseEnter: d, onMouseLeave: f, onTouchStart: m } = r, p = c.useRef(null);
1724
+ c.useEffect(() => {
1725
+ if (e === "render" && l(!0), e === "viewport") {
1726
+ let C = (k) => {
1727
+ k.forEach((g) => {
1728
+ l(g.isIntersecting);
1729
+ });
1730
+ }, v = new IntersectionObserver(C, { threshold: 0.5 });
1731
+ return p.current && v.observe(p.current), () => {
1732
+ v.disconnect();
1733
+ };
1734
+ }
1735
+ }, [e]), c.useEffect(() => {
1736
+ if (n) {
1737
+ let C = setTimeout(() => {
1738
+ l(!0);
1739
+ }, 100);
1740
+ return () => {
1741
+ clearTimeout(C);
1742
+ };
1743
+ }
1744
+ }, [n]);
1745
+ let b = () => {
1746
+ a(!0);
1747
+ }, x = () => {
1748
+ a(!1), l(!1);
1749
+ };
1750
+ return t ? e !== "intent" ? [o, p, {}] : [
1751
+ o,
1752
+ p,
1753
+ {
1754
+ onFocus: J(i, b),
1755
+ onBlur: J(s, x),
1756
+ onMouseEnter: J(d, b),
1757
+ onMouseLeave: J(f, x),
1758
+ onTouchStart: J(m, b)
1759
+ }
1760
+ ] : [!1, p, {}];
1761
+ }
1762
+ function J(e, r) {
1763
+ return (t) => {
1764
+ e && e(t), t.defaultPrevented || r(t);
1765
+ };
1766
+ }
1767
+ function xr({ page: e, ...r }) {
1768
+ let { router: t } = qe(), n = c.useMemo(
1769
+ () => Ie(t.routes, e, t.basename),
1770
+ [t.routes, e, t.basename]
1771
+ );
1772
+ return n ? /* @__PURE__ */ c.createElement(yr, { page: e, matches: n, ...r }) : null;
1773
+ }
1774
+ function vr(e) {
1775
+ let { manifest: r, routeModules: t } = Ke(), [n, a] = c.useState([]);
1776
+ return c.useEffect(() => {
1777
+ let o = !1;
1778
+ return dr(e, r, t).then(
1779
+ (l) => {
1780
+ o || a(l);
1781
+ }
1782
+ ), () => {
1783
+ o = !0;
1784
+ };
1785
+ }, [e, r, t]), n;
1786
+ }
1787
+ function yr({
1788
+ page: e,
1789
+ matches: r,
1790
+ ...t
1791
+ }) {
1792
+ let n = I(), { manifest: a, routeModules: o } = Ke(), { basename: l } = qe(), { loaderData: i, matches: s } = pr(), d = c.useMemo(
1793
+ () => Fe(
1794
+ e,
1795
+ r,
1796
+ s,
1797
+ a,
1798
+ n,
1799
+ "data"
1800
+ ),
1801
+ [e, r, s, a, n]
1802
+ ), f = c.useMemo(
1803
+ () => Fe(
1804
+ e,
1805
+ r,
1806
+ s,
1807
+ a,
1808
+ n,
1809
+ "assets"
1810
+ ),
1811
+ [e, r, s, a, n]
1812
+ ), m = c.useMemo(() => {
1813
+ if (e === n.pathname + n.search + n.hash)
1814
+ return [];
1815
+ let x = /* @__PURE__ */ new Set(), C = !1;
1816
+ if (r.forEach((k) => {
1817
+ let g = a.routes[k.route.id];
1818
+ !g || !g.hasLoader || (!d.some((w) => w.route.id === k.route.id) && k.route.id in i && o[k.route.id]?.shouldRevalidate || g.hasClientLoader ? C = !0 : x.add(k.route.id));
1819
+ }), x.size === 0)
1820
+ return [];
1821
+ let v = sr(e, l, "data");
1822
+ return C && x.size > 0 && v.searchParams.set(
1823
+ "_routes",
1824
+ r.filter((k) => x.has(k.route.id)).map((k) => k.route.id).join(",")
1825
+ ), [v.pathname + v.search];
1826
+ }, [
1827
+ l,
1828
+ i,
1829
+ n,
1830
+ a,
1831
+ d,
1832
+ r,
1833
+ e,
1834
+ o
1835
+ ]), p = c.useMemo(
1836
+ () => mr(f, a),
1837
+ [f, a]
1838
+ ), b = vr(f);
1839
+ return /* @__PURE__ */ c.createElement(c.Fragment, null, m.map((x) => /* @__PURE__ */ c.createElement("link", { key: x, rel: "prefetch", as: "fetch", href: x, ...t })), p.map((x) => /* @__PURE__ */ c.createElement("link", { key: x, rel: "modulepreload", href: x, ...t })), b.map(({ key: x, link: C }) => (
1840
+ // these don't spread `linkProps` because they are full link descriptors
1841
+ // already with their own props
1842
+ /* @__PURE__ */ c.createElement("link", { key: x, nonce: t.nonce, ...C })
1843
+ )));
1844
+ }
1845
+ function kr(...e) {
1846
+ return (r) => {
1847
+ e.forEach((t) => {
1848
+ typeof t == "function" ? t(r) : t != null && (t.current = r);
1849
+ });
1850
+ };
1851
+ }
1852
+ var Xe = typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u";
1853
+ try {
1854
+ Xe && (window.__reactRouterVersion = // @ts-expect-error
1855
+ "7.9.6");
1856
+ } catch {
1857
+ }
1858
+ var Ze = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i, ke = c.forwardRef(
1859
+ function({
1860
+ onClick: r,
1861
+ discover: t = "render",
1862
+ prefetch: n = "none",
1863
+ relative: a,
1864
+ reloadDocument: o,
1865
+ replace: l,
1866
+ state: i,
1867
+ target: s,
1868
+ to: d,
1869
+ preventScrollReset: f,
1870
+ viewTransition: m,
1871
+ ...p
1872
+ }, b) {
1873
+ let { basename: x } = c.useContext($), C = typeof d == "string" && Ze.test(d), v, k = !1;
1874
+ if (typeof d == "string" && C && (v = d, Xe))
1875
+ try {
1876
+ let P = new URL(window.location.href), O = d.startsWith("//") ? new URL(P.protocol + d) : new URL(d), q = F(O.pathname, x);
1877
+ O.origin === P.origin && q != null ? d = q + O.search + O.hash : k = !0;
1878
+ } catch {
1879
+ T(
1880
+ !1,
1881
+ `<Link to="${d}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`
1882
+ );
1883
+ }
1884
+ let g = Dt(d, { relative: a }), [w, _, L] = br(
1885
+ n,
1886
+ p
1887
+ ), M = Rr(d, {
1888
+ replace: l,
1889
+ state: i,
1890
+ target: s,
1891
+ preventScrollReset: f,
1892
+ relative: a,
1893
+ viewTransition: m
1894
+ });
1895
+ function D(P) {
1896
+ r && r(P), P.defaultPrevented || M(P);
1897
+ }
1898
+ let W = (
1899
+ // eslint-disable-next-line jsx-a11y/anchor-has-content
1900
+ /* @__PURE__ */ c.createElement(
1901
+ "a",
1902
+ {
1903
+ ...p,
1904
+ ...L,
1905
+ href: v || g,
1906
+ onClick: k || o ? r : D,
1907
+ ref: kr(b, _),
1908
+ target: s,
1909
+ "data-discover": !C && t === "render" ? "true" : void 0
1910
+ }
1911
+ )
1912
+ );
1913
+ return w && !C ? /* @__PURE__ */ c.createElement(c.Fragment, null, W, /* @__PURE__ */ c.createElement(xr, { page: g })) : W;
1914
+ }
1915
+ );
1916
+ ke.displayName = "Link";
1917
+ var wr = c.forwardRef(
1918
+ function({
1919
+ "aria-current": r = "page",
1920
+ caseSensitive: t = !1,
1921
+ className: n = "",
1922
+ end: a = !1,
1923
+ style: o,
1924
+ to: l,
1925
+ viewTransition: i,
1926
+ children: s,
1927
+ ...d
1928
+ }, f) {
1929
+ let m = G(l, { relative: d.relative }), p = I(), b = c.useContext(re), { navigator: x, basename: C } = c.useContext($), v = b != null && // Conditional usage is OK here because the usage of a data router is static
1930
+ // eslint-disable-next-line react-hooks/rules-of-hooks
1931
+ _r(m) && i === !0, k = x.encodeLocation ? x.encodeLocation(m).pathname : m.pathname, g = p.pathname, w = b && b.navigation && b.navigation.location ? b.navigation.location.pathname : null;
1932
+ t || (g = g.toLowerCase(), w = w ? w.toLowerCase() : null, k = k.toLowerCase()), w && C && (w = F(w, C) || w);
1933
+ const _ = k !== "/" && k.endsWith("/") ? k.length - 1 : k.length;
1934
+ let L = g === k || !a && g.startsWith(k) && g.charAt(_) === "/", M = w != null && (w === k || !a && w.startsWith(k) && w.charAt(k.length) === "/"), D = {
1935
+ isActive: L,
1936
+ isPending: M,
1937
+ isTransitioning: v
1938
+ }, W = L ? r : void 0, P;
1939
+ typeof n == "function" ? P = n(D) : P = [
1940
+ n,
1941
+ L ? "active" : null,
1942
+ M ? "pending" : null,
1943
+ v ? "transitioning" : null
1944
+ ].filter(Boolean).join(" ");
1945
+ let O = typeof o == "function" ? o(D) : o;
1946
+ return /* @__PURE__ */ c.createElement(
1947
+ ke,
1948
+ {
1949
+ ...d,
1950
+ "aria-current": W,
1951
+ className: P,
1952
+ ref: f,
1953
+ style: O,
1954
+ to: l,
1955
+ viewTransition: i
1956
+ },
1957
+ typeof s == "function" ? s(D) : s
1958
+ );
1959
+ }
1960
+ );
1961
+ wr.displayName = "NavLink";
1962
+ var Er = c.forwardRef(
1963
+ ({
1964
+ discover: e = "render",
1965
+ fetcherKey: r,
1966
+ navigate: t,
1967
+ reloadDocument: n,
1968
+ replace: a,
1969
+ state: o,
1970
+ method: l = Q,
1971
+ action: i,
1972
+ onSubmit: s,
1973
+ relative: d,
1974
+ preventScrollReset: f,
1975
+ viewTransition: m,
1976
+ ...p
1977
+ }, b) => {
1978
+ let x = Sr(), C = Pr(i, { relative: d }), v = l.toLowerCase() === "get" ? "get" : "post", k = typeof i == "string" && Ze.test(i), g = (w) => {
1979
+ if (s && s(w), w.defaultPrevented) return;
1980
+ w.preventDefault();
1981
+ let _ = w.nativeEvent.submitter, L = _?.getAttribute("formmethod") || l;
1982
+ x(_ || w.currentTarget, {
1983
+ fetcherKey: r,
1984
+ method: L,
1985
+ navigate: t,
1986
+ replace: a,
1987
+ state: o,
1988
+ relative: d,
1989
+ preventScrollReset: f,
1990
+ viewTransition: m
1991
+ });
1992
+ };
1993
+ return /* @__PURE__ */ c.createElement(
1994
+ "form",
1995
+ {
1996
+ ref: b,
1997
+ method: v,
1998
+ action: C,
1999
+ onSubmit: n ? s : g,
2000
+ ...p,
2001
+ "data-discover": !k && e === "render" ? "true" : void 0
2002
+ }
2003
+ );
2004
+ }
2005
+ );
2006
+ Er.displayName = "Form";
2007
+ function Cr(e) {
2008
+ return `${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
2009
+ }
2010
+ function Qe(e) {
2011
+ let r = c.useContext(B);
2012
+ return S(r, Cr(e)), r;
2013
+ }
2014
+ function Rr(e, {
2015
+ target: r,
2016
+ replace: t,
2017
+ state: n,
2018
+ preventScrollReset: a,
2019
+ relative: o,
2020
+ viewTransition: l
2021
+ } = {}) {
2022
+ let i = It(), s = I(), d = G(e, { relative: o });
2023
+ return c.useCallback(
2024
+ (f) => {
2025
+ if (ar(f, r)) {
2026
+ f.preventDefault();
2027
+ let m = t !== void 0 ? t : de(s) === de(d);
2028
+ i(e, {
2029
+ replace: m,
2030
+ state: n,
2031
+ preventScrollReset: a,
2032
+ relative: o,
2033
+ viewTransition: l
2034
+ });
2035
+ }
2036
+ },
2037
+ [
2038
+ s,
2039
+ i,
2040
+ d,
2041
+ t,
2042
+ n,
2043
+ r,
2044
+ e,
2045
+ a,
2046
+ o,
2047
+ l
2048
+ ]
2049
+ );
2050
+ }
2051
+ var Nr = 0, jr = () => `__${String(++Nr)}__`;
2052
+ function Sr() {
2053
+ let { router: e } = Qe(
2054
+ "useSubmit"
2055
+ /* UseSubmit */
2056
+ ), { basename: r } = c.useContext($), t = Kt();
2057
+ return c.useCallback(
2058
+ async (n, a = {}) => {
2059
+ let { action: o, method: l, encType: i, formData: s, body: d } = ir(
2060
+ n,
2061
+ r
2062
+ );
2063
+ if (a.navigate === !1) {
2064
+ let f = a.fetcherKey || jr();
2065
+ await e.fetch(f, t, a.action || o, {
2066
+ preventScrollReset: a.preventScrollReset,
2067
+ formData: s,
2068
+ body: d,
2069
+ formMethod: a.method || l,
2070
+ formEncType: a.encType || i,
2071
+ flushSync: a.flushSync
2072
+ });
2073
+ } else
2074
+ await e.navigate(a.action || o, {
2075
+ preventScrollReset: a.preventScrollReset,
2076
+ formData: s,
2077
+ body: d,
2078
+ formMethod: a.method || l,
2079
+ formEncType: a.encType || i,
2080
+ replace: a.replace,
2081
+ state: a.state,
2082
+ fromRouteId: t,
2083
+ flushSync: a.flushSync,
2084
+ viewTransition: a.viewTransition
2085
+ });
2086
+ },
2087
+ [e, r, t]
2088
+ );
2089
+ }
2090
+ function Pr(e, { relative: r } = {}) {
2091
+ let { basename: t } = c.useContext($), n = c.useContext(A);
2092
+ S(n, "useFormAction must be used inside a RouteContext");
2093
+ let [a] = n.matches.slice(-1), o = { ...G(e || ".", { relative: r }) }, l = I();
2094
+ if (e == null) {
2095
+ o.search = l.search;
2096
+ let i = new URLSearchParams(o.search), s = i.getAll("index");
2097
+ if (s.some((f) => f === "")) {
2098
+ i.delete("index"), s.filter((m) => m).forEach((m) => i.append("index", m));
2099
+ let f = i.toString();
2100
+ o.search = f ? `?${f}` : "";
2101
+ }
2102
+ }
2103
+ return (!e || e === ".") && a.route.index && (o.search = o.search ? o.search.replace(/^\?/, "?index&") : "?index"), t !== "/" && (o.pathname = o.pathname === "/" ? t : U([t, o.pathname])), de(o);
2104
+ }
2105
+ function _r(e, { relative: r } = {}) {
2106
+ let t = c.useContext(Ye);
2107
+ S(
2108
+ t != null,
2109
+ "`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?"
2110
+ );
2111
+ let { basename: n } = Qe(
2112
+ "useViewTransitionState"
2113
+ /* useViewTransitionState */
2114
+ ), a = G(e, { relative: r });
2115
+ if (!t.isTransitioning)
2116
+ return !1;
2117
+ let o = F(t.currentLocation.pathname, n) || t.currentLocation.pathname, l = F(t.nextLocation.pathname, n) || t.nextLocation.pathname;
2118
+ return te(a.pathname, l) != null || te(a.pathname, o) != null;
2119
+ }
2120
+ const Lr = {
2121
+ primary: "text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 underline font-medium",
2122
+ secondary: "text-green-600 hover:text-green-800 dark:text-green-400 dark:hover:text-green-300 underline font-medium",
2123
+ subtle: "text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200 underline"
2124
+ }, et = ({
2125
+ to: e,
2126
+ children: r,
2127
+ className: t,
2128
+ variant: n = "primary"
2129
+ }) => /* @__PURE__ */ h.jsx(
2130
+ ke,
2131
+ {
2132
+ to: e,
2133
+ className: E(Lr[n], t),
2134
+ "aria-label": typeof r == "string" ? `Navigate to ${r}` : void 0,
2135
+ children: r
2136
+ }
2137
+ ), Tr = {
2138
+ // Getting Started cluster
2139
+ gettingStarted: {
2140
+ documentation: "/document#getting-started",
2141
+ connect: "/connect",
2142
+ features: "/document#email-management"
2143
+ },
2144
+ // Benefits cluster
2145
+ benefits: {
2146
+ users: "/web3-users",
2147
+ projects: "/web3-projects",
2148
+ security: "/document#technical-details",
2149
+ nameService: "/document#name-service-subscription"
2150
+ },
2151
+ // Technical cluster
2152
+ technical: {
2153
+ documentation: "/document",
2154
+ apiDocs: "/document#api-documentation",
2155
+ smartContracts: "/document#smart-contracts",
2156
+ security: "/document#technical-details"
2157
+ },
2158
+ // Integration cluster
2159
+ integration: {
2160
+ projects: "/web3-projects",
2161
+ delegation: "/document#email-delegation",
2162
+ nameService: "/document#name-service-subscription",
2163
+ troubleshooting: "/document#troubleshooting"
2164
+ }
2165
+ }, Br = ({
2166
+ cluster: e,
2167
+ context: r = "",
2168
+ className: t
2169
+ }) => {
2170
+ const n = Tr[e], a = {
2171
+ gettingStarted: {
2172
+ documentation: "Learn how it works",
2173
+ connect: "Get started now",
2174
+ features: "Explore features"
2175
+ },
2176
+ benefits: {
2177
+ users: "Benefits for users",
2178
+ projects: "For Web3 projects",
2179
+ security: "Security details",
2180
+ nameService: "ENS/SNS domains"
2181
+ },
2182
+ technical: {
2183
+ documentation: "Full documentation",
2184
+ apiDocs: "API reference",
2185
+ smartContracts: "Smart contract integration",
2186
+ security: "Technical security"
2187
+ },
2188
+ integration: {
2189
+ projects: "Integration examples",
2190
+ delegation: "Email delegation",
2191
+ nameService: "Domain setup",
2192
+ troubleshooting: "Troubleshooting guide"
2193
+ }
2194
+ };
2195
+ return /* @__PURE__ */ h.jsx("span", { className: E("text-sm text-gray-600 dark:text-gray-400", t), children: Object.entries(n).map(([o, l], i) => /* @__PURE__ */ h.jsxs(me.Fragment, { children: [
2196
+ /* @__PURE__ */ h.jsx(et, { to: l, variant: "primary", children: a[e][o] }),
2197
+ i < Object.keys(n).length - 1 && " • "
2198
+ ] }, o)) });
2199
+ }, Yr = ({
2200
+ title: e = "Related:",
2201
+ links: r,
2202
+ className: t
2203
+ }) => /* @__PURE__ */ h.jsxs(
2204
+ "div",
2205
+ {
2206
+ className: E(
2207
+ "mt-4 p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg border border-blue-200 dark:border-blue-800",
2208
+ t
2209
+ ),
2210
+ children: [
2211
+ /* @__PURE__ */ h.jsx("span", { className: "text-sm font-medium text-blue-900 dark:text-blue-200 mr-2", children: e }),
2212
+ r.map((n, a) => /* @__PURE__ */ h.jsxs(me.Fragment, { children: [
2213
+ /* @__PURE__ */ h.jsx(et, { to: n.url, variant: n.variant || "primary", children: n.text }),
2214
+ a < r.length - 1 && " • "
2215
+ ] }, a))
2216
+ ]
2217
+ }
2218
+ ), Hr = (e, r) => ({
2219
+ homepage: [
2220
+ { text: "How it works", url: "/document#getting-started" },
2221
+ { text: "User benefits", url: "/web3-users" },
2222
+ { text: "For projects", url: "/web3-projects" }
2223
+ ],
2224
+ documentation: [
2225
+ { text: "Get started", url: "/connect" },
2226
+ { text: "User guide", url: "/web3-users" },
2227
+ { text: "API docs", url: "/document#api-documentation" }
2228
+ ],
2229
+ users: [
2230
+ { text: "Start now", url: "/connect" },
2231
+ { text: "Documentation", url: "/document" },
2232
+ { text: "For projects", url: "/web3-projects" }
2233
+ ],
2234
+ projects: [
2235
+ { text: "API integration", url: "/document#api-documentation" },
2236
+ { text: "Smart contracts", url: "/document#smart-contracts" },
2237
+ { text: "User benefits", url: "/web3-users" }
2238
+ ]
2239
+ })[e] || [], Jr = ({
2240
+ className: e,
2241
+ children: r,
2242
+ disabled: t = !1,
2243
+ onClick: n
2244
+ }) => /* @__PURE__ */ h.jsx(
2245
+ "div",
2246
+ {
2247
+ className: E(
2248
+ "p-4 rounded-lg border transition-colors",
2249
+ "bg-white dark:bg-gray-900",
2250
+ "border-gray-200 dark:border-gray-700",
2251
+ "text-gray-900 dark:text-white",
2252
+ t && "opacity-50 cursor-not-allowed",
2253
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
2254
+ e
2255
+ ),
2256
+ onClick: t ? void 0 : n,
2257
+ role: "region",
2258
+ "aria-label": "UlandingUbuilder",
2259
+ children: r || "UlandingUbuilder Component"
2260
+ }
2261
+ ), Gr = ({
2262
+ className: e,
2263
+ children: r,
2264
+ disabled: t = !1,
2265
+ onClick: n
2266
+ }) => /* @__PURE__ */ h.jsx(
2267
+ "div",
2268
+ {
2269
+ className: E(
2270
+ "p-4 rounded-lg border transition-colors",
2271
+ "bg-white dark:bg-gray-900",
2272
+ "border-gray-200 dark:border-gray-700",
2273
+ "text-gray-900 dark:text-white",
2274
+ t && "opacity-50 cursor-not-allowed",
2275
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
2276
+ e
2277
+ ),
2278
+ onClick: t ? void 0 : n,
2279
+ role: "region",
2280
+ "aria-label": "UnpsUsurvey",
2281
+ children: r || "UnpsUsurvey Component"
2282
+ }
2283
+ ), qr = ({
2284
+ className: e,
2285
+ children: r,
2286
+ disabled: t
2287
+ }) => /* @__PURE__ */ h.jsx(
2288
+ "div",
2289
+ {
2290
+ className: E(
2291
+ "p-4 rounded-lg border transition-colors",
2292
+ "bg-white dark:bg-gray-900",
2293
+ "border-gray-200 dark:border-gray-700",
2294
+ "text-gray-900 dark:text-white",
2295
+ t && "opacity-50 cursor-not-allowed",
2296
+ e
2297
+ ),
2298
+ role: "region",
2299
+ "aria-label": "SalesReport",
2300
+ children: r || "SalesReport Component"
2301
+ }
2302
+ ), Kr = ({
2303
+ className: e,
2304
+ children: r,
2305
+ disabled: t
2306
+ }) => /* @__PURE__ */ h.jsx(
2307
+ "div",
2308
+ {
2309
+ className: E(
2310
+ "p-4 rounded-lg border transition-colors",
2311
+ "bg-white dark:bg-gray-900",
2312
+ "border-gray-200 dark:border-gray-700",
2313
+ "text-gray-900 dark:text-white",
2314
+ t && "opacity-50 cursor-not-allowed",
2315
+ e
2316
+ ),
2317
+ role: "region",
2318
+ "aria-label": "SubscriberList",
2319
+ children: r || "SubscriberList Component"
2320
+ }
2321
+ ), Xr = ({
2322
+ className: e,
2323
+ children: r,
2324
+ disabled: t = !1,
2325
+ onClick: n
2326
+ }) => /* @__PURE__ */ h.jsx(
2327
+ "div",
2328
+ {
2329
+ className: E(
2330
+ "p-4 rounded-lg border transition-colors",
2331
+ "bg-white dark:bg-gray-900",
2332
+ "border-gray-200 dark:border-gray-700",
2333
+ "text-gray-900 dark:text-white",
2334
+ t && "opacity-50 cursor-not-allowed",
2335
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
2336
+ e
2337
+ ),
2338
+ onClick: t ? void 0 : n,
2339
+ role: "region",
2340
+ "aria-label": "UsurveyUbuilder",
2341
+ children: r || "UsurveyUbuilder Component"
2342
+ }
2343
+ ), Zr = ({
2344
+ className: e,
2345
+ children: r,
2346
+ disabled: t = !1,
2347
+ onClick: n
2348
+ }) => /* @__PURE__ */ h.jsx(
2349
+ "div",
2350
+ {
2351
+ className: E(
2352
+ "p-4 rounded-lg border transition-colors",
2353
+ "bg-white dark:bg-gray-900",
2354
+ "border-gray-200 dark:border-gray-700",
2355
+ "text-gray-900 dark:text-white",
2356
+ t && "opacity-50 cursor-not-allowed",
2357
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
2358
+ e
2359
+ ),
2360
+ onClick: t ? void 0 : n,
2361
+ role: "region",
2362
+ "aria-label": "UtestimonialUslider",
2363
+ children: r || "UtestimonialUslider Component"
2364
+ }
2365
+ ), Qr = ({
2366
+ title: e,
2367
+ description: r,
2368
+ useCases: t,
2369
+ columns: n = 3,
2370
+ className: a
2371
+ }) => {
2372
+ const o = {
2373
+ blue: "text-blue-600 dark:text-blue-400",
2374
+ green: "text-green-600 dark:text-green-400",
2375
+ purple: "text-purple-600 dark:text-purple-400",
2376
+ orange: "text-orange-600 dark:text-orange-400",
2377
+ pink: "text-pink-600 dark:text-pink-400",
2378
+ gray: "text-gray-600 dark:text-gray-400"
2379
+ }, l = {
2380
+ 2: "grid-cols-1 md:grid-cols-2",
2381
+ 3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
2382
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
2383
+ };
2384
+ return /* @__PURE__ */ h.jsx("section", { className: E(nt.section.gradient, a), children: /* @__PURE__ */ h.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
2385
+ (e || r) && /* @__PURE__ */ h.jsxs("div", { className: "text-center mb-12", children: [
2386
+ e && /* @__PURE__ */ h.jsx("h2", { className: "text-3xl font-bold text-gray-900 dark:text-white mb-4", children: e }),
2387
+ r && /* @__PURE__ */ h.jsx("p", { className: "text-xl text-gray-600 dark:text-gray-300 max-w-3xl mx-auto", children: r })
2388
+ ] }),
2389
+ /* @__PURE__ */ h.jsx("div", { className: E("grid gap-8", l[n]), children: t.map((i, s) => {
2390
+ const d = i.color ? o[i.color] : o.blue;
2391
+ return /* @__PURE__ */ h.jsxs(
2392
+ "div",
2393
+ {
2394
+ className: "bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700 hover:shadow-lg transition-shadow",
2395
+ children: [
2396
+ /* @__PURE__ */ h.jsx("div", { className: E("flex-shrink-0 mb-4", d), children: i.icon }),
2397
+ /* @__PURE__ */ h.jsx("h3", { className: "text-xl font-semibold text-gray-900 dark:text-white mb-3", children: i.title }),
2398
+ /* @__PURE__ */ h.jsx("p", { className: "text-gray-600 dark:text-gray-300 mb-4", children: i.description }),
2399
+ i.examples && i.examples.length > 0 && /* @__PURE__ */ h.jsxs("div", { children: [
2400
+ /* @__PURE__ */ h.jsx("h4", { className: "text-sm font-semibold text-gray-700 dark:text-gray-300 mb-2", children: "Examples:" }),
2401
+ /* @__PURE__ */ h.jsx("ul", { className: "space-y-1", children: i.examples.map((f, m) => /* @__PURE__ */ h.jsxs("li", { className: "flex items-start", children: [
2402
+ /* @__PURE__ */ h.jsx(
2403
+ "div",
2404
+ {
2405
+ className: E(
2406
+ "w-1.5 h-1.5 rounded-full mt-2 mr-2 flex-shrink-0",
2407
+ i.color ? `bg-${i.color}-500` : "bg-blue-500"
2408
+ )
2409
+ }
2410
+ ),
2411
+ /* @__PURE__ */ h.jsx("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: f })
2412
+ ] }, m)) })
2413
+ ] })
2414
+ ]
2415
+ },
2416
+ s
2417
+ );
2418
+ }) })
2419
+ ] }) });
2420
+ }, en = ({
2421
+ className: e,
2422
+ children: r,
2423
+ disabled: t = !1,
2424
+ onClick: n
2425
+ }) => /* @__PURE__ */ h.jsx(
2426
+ "div",
2427
+ {
2428
+ className: E(
2429
+ "p-4 rounded-lg border transition-colors",
2430
+ "bg-white dark:bg-gray-900",
2431
+ "border-gray-200 dark:border-gray-700",
2432
+ "text-gray-900 dark:text-white",
2433
+ t && "opacity-50 cursor-not-allowed",
2434
+ "hover:bg-gray-50 dark:hover:bg-gray-800",
2435
+ e
2436
+ ),
2437
+ onClick: t ? void 0 : n,
2438
+ role: "region",
2439
+ "aria-label": "UwelcomeUscreen",
2440
+ children: r || "UwelcomeUscreen Component"
2441
+ }
2442
+ );
2443
+ export {
2444
+ Or as CrmDashboard,
2445
+ Dr as FeatureGrid,
2446
+ Mr as FeatureListItem,
2447
+ zr as HeroBannerWithBadge,
2448
+ et as InternalLink,
2449
+ Yr as RelatedLinks,
2450
+ qr as SalesReport,
2451
+ Kr as SubscriberList,
2452
+ Br as TopicClusterLinks,
2453
+ Fr as UctaUbanner,
2454
+ Wr as UfeatureUspotlight,
2455
+ Vr as UfunnelUchart,
2456
+ Jr as UlandingUbuilder,
2457
+ Gr as UnpsUsurvey,
2458
+ Qr as UseCaseGrid,
2459
+ Xr as UsurveyUbuilder,
2460
+ Zr as UtestimonialUslider,
2461
+ en as UwelcomeUscreen,
2462
+ Ue as createFeature,
2463
+ Ir as createSecurityFeatures,
2464
+ Hr as generateContextualLinks
2465
+ };