@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.
- package/dist/crm-dashboard.d.ts +18 -0
- package/dist/crm-dashboard.d.ts.map +1 -0
- package/dist/cta-banner.d.ts +33 -0
- package/dist/cta-banner.d.ts.map +1 -0
- package/dist/feature-grid.d.ts +52 -0
- package/dist/feature-grid.d.ts.map +1 -0
- package/dist/feature-list-item.d.ts +34 -0
- package/dist/feature-list-item.d.ts.map +1 -0
- package/dist/feature-spotlight.d.ts +33 -0
- package/dist/feature-spotlight.d.ts.map +1 -0
- package/dist/funnel-chart.d.ts +33 -0
- package/dist/funnel-chart.d.ts.map +1 -0
- package/dist/hero-banner-with-badge.d.ts +21 -0
- package/dist/hero-banner-with-badge.d.ts.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +2465 -0
- package/dist/index.umd.js +8 -0
- package/dist/internal-link-clusters.d.ts +64 -0
- package/dist/internal-link-clusters.d.ts.map +1 -0
- package/dist/landing-builder.d.ts +33 -0
- package/dist/landing-builder.d.ts.map +1 -0
- package/dist/nps-survey.d.ts +33 -0
- package/dist/nps-survey.d.ts.map +1 -0
- package/dist/sales-report.d.ts +18 -0
- package/dist/sales-report.d.ts.map +1 -0
- package/dist/subscriber-list.d.ts +18 -0
- package/dist/subscriber-list.d.ts.map +1 -0
- package/dist/survey-builder.d.ts +33 -0
- package/dist/survey-builder.d.ts.map +1 -0
- package/dist/testimonial-slider.d.ts +33 -0
- package/dist/testimonial-slider.d.ts.map +1 -0
- package/dist/use-case-grid.d.ts +17 -0
- package/dist/use-case-grid.d.ts.map +1 -0
- package/dist/welcome-screen.d.ts +33 -0
- package/dist/welcome-screen.d.ts.map +1 -0
- 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
|
+
};
|