@pelatform/ui 1.5.2 → 1.5.4

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.
@@ -3,6 +3,7 @@
3
3
 
4
4
 
5
5
 
6
+ var _chunkZBO5IAMAcjs = require('./chunk-ZBO5IAMA.cjs');
6
7
 
7
8
 
8
9
 
@@ -38,7 +39,13 @@
38
39
 
39
40
 
40
41
 
41
- var _chunkDBE4IGCPcjs = require('./chunk-DBE4IGCP.cjs');
42
+
43
+
44
+
45
+
46
+
47
+
48
+ var _chunkHILACSFAcjs = require('./chunk-HILACSFA.cjs');
42
49
 
43
50
 
44
51
 
@@ -49,7 +56,9 @@ var _chunkBXUKTDPNcjs = require('./chunk-BXUKTDPN.cjs');
49
56
  var _chunkJ4JGE3U5cjs = require('./chunk-J4JGE3U5.cjs');
50
57
 
51
58
 
52
- var _chunkKNS6QRVBcjs = require('./chunk-KNS6QRVB.cjs');
59
+
60
+
61
+ var _chunkWI36EFUScjs = require('./chunk-WI36EFUS.cjs');
53
62
 
54
63
 
55
64
  var _chunkCJXIPSTGcjs = require('./chunk-CJXIPSTG.cjs');
@@ -75,9 +84,9 @@ function AlertToast({
75
84
  variant = "mono"
76
85
  }) {
77
86
  _sonner.toast.custom(
78
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant, icon, children: [
79
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: iconMap[_nullishCoalesce(icon, () => ( "success"))] }),
80
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: message })
87
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant, icon, children: [
88
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: iconMap[_nullishCoalesce(icon, () => ( "success"))] }),
89
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: message })
81
90
  ] }),
82
91
  {
83
92
  // Auto-dismiss after 4 seconds
@@ -103,9 +112,9 @@ function AlertNotification({ message, variant = "info" }) {
103
112
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Info, {});
104
113
  }
105
114
  };
106
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant, children: [
107
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: getIcon() }),
108
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: message })
115
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant, children: [
116
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: getIcon() }),
117
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: message })
109
118
  ] });
110
119
  }
111
120
  var AlertComingsoon = ({
@@ -114,9 +123,9 @@ var AlertComingsoon = ({
114
123
  variant = "mono"
115
124
  } = {}) => {
116
125
  _sonner.toast.custom(
117
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant, icon, children: [
118
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
119
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: message })
126
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant, icon, children: [
127
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
128
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: message })
120
129
  ] }),
121
130
  {
122
131
  // Toast configuration for better UX
@@ -149,14 +158,14 @@ var ConfirmDismissDialog = ({
149
158
  onOpenChange(false);
150
159
  }
151
160
  };
152
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.AlertDialogContent, { className: maxWidth, children: [
153
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.AlertDialogHeader, { children: [
154
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertDialogTitle, { children: title }),
155
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertDialogDescription, { children: description })
161
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.AlertDialogContent, { className: maxWidth, children: [
162
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.AlertDialogHeader, { children: [
163
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertDialogTitle, { children: title }),
164
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertDialogDescription, { children: description })
156
165
  ] }),
157
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.AlertDialogFooter, { children: [
158
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertDialogCancel, { onClick: handleCancel, children: cancelText }),
159
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertDialogAction, { onClick: onConfirm, children: confirmText })
166
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.AlertDialogFooter, { children: [
167
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertDialogCancel, { onClick: handleCancel, children: cancelText }),
168
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertDialogAction, { onClick: onConfirm, children: confirmText })
160
169
  ] })
161
170
  ] }) });
162
171
  };
@@ -181,7 +190,7 @@ function ScreenLoader({
181
190
  "div",
182
191
  {
183
192
  className: _chunkCJXIPSTGcjs.cn.call(void 0,
184
- "fixed inset-0 z-50 flex flex-col items-center justify-center gap-2 transition-opacity duration-700 ease-in-out",
193
+ "fixed inset-0 z-500 flex flex-col items-center justify-center gap-2 bg-background transition-opacity duration-700 ease-in-out",
185
194
  className
186
195
  ),
187
196
  role: "status",
@@ -195,14 +204,19 @@ function ScreenLoader({
195
204
  );
196
205
  }
197
206
 
198
- // src/components/layout/body.tsx
207
+ // src/components/layout/auth.tsx
199
208
 
200
- function useMode(slug) {
201
- return Array.isArray(slug) && slug.length > 0 ? slug[0] : void 0;
202
- }
203
- function Body({ slug, children, className }) {
204
- const mode = useMode(slug);
205
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "body", { className: _chunkCJXIPSTGcjs.cn.call(void 0, mode, className), children });
209
+ function LayoutAuth({ children, className, logo }) {
210
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
211
+ "div",
212
+ {
213
+ className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex min-h-screen grow flex-col items-center justify-center p-4", className),
214
+ children: [
215
+ logo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "m-5", children: logo }),
216
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.Card, { className: "w-full max-w-md", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.CardContent, { className: "p-6", children }) })
217
+ ]
218
+ }
219
+ );
206
220
  }
207
221
 
208
222
  // src/components/layout/grid.tsx
@@ -248,6 +262,158 @@ function Grid({
248
262
  );
249
263
  }
250
264
 
265
+ // src/components/layout/blank.tsx
266
+
267
+ function LayoutBlank({ children, footer, className, logo, logoHref }) {
268
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
269
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 isolate overflow-hidden bg-background", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
270
+ "div",
271
+ {
272
+ className: _chunkCJXIPSTGcjs.cn.call(void 0,
273
+ "-translate-x-1/2 absolute inset-y-0 start-1/2 w-[1200px]",
274
+ "mask-intersect mask-[linear-gradient(black,transparent_320px),linear-gradient(90deg,transparent,black_5%,black_95%,transparent)]"
275
+ ),
276
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Grid, { cellSize: 60, patternOffset: [0.75, 0], className: "text-foreground/15" })
277
+ }
278
+ ) }),
279
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
280
+ "div",
281
+ {
282
+ className: _chunkCJXIPSTGcjs.cn.call(void 0,
283
+ "relative flex min-h-screen w-full flex-col items-center justify-between",
284
+ className
285
+ ),
286
+ children: [
287
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grow basis-0", children: logo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: _nullishCoalesce(logoHref, () => ( "#")), target: "_blank", className: "block", children: logo }) }) }),
288
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-4xl px-4 py-16", children }),
289
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grow basis-0", children: footer })
290
+ ]
291
+ }
292
+ )
293
+ ] });
294
+ }
295
+
296
+ // src/components/layout/body.tsx
297
+
298
+ function useMode(slug) {
299
+ return Array.isArray(slug) && slug.length > 0 ? slug[0] : void 0;
300
+ }
301
+ function Body({ slug, children, className }) {
302
+ const mode = useMode(slug);
303
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "body", { className: _chunkCJXIPSTGcjs.cn.call(void 0, mode, className), children });
304
+ }
305
+
306
+ // src/components/layout/comingsoon.tsx
307
+
308
+ function ComingSoon({ className, title, description }) {
309
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "h-[calc(100vh-54px)] w-full overflow-hidden", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
310
+ _chunkZBO5IAMAcjs.HoverBackground,
311
+ {
312
+ colors: {
313
+ background: "bg-gradient-to-br from-black via-gray-900 to-zinc-900",
314
+ objects: [
315
+ "bg-emerald-500/30",
316
+ "bg-teal-500/30",
317
+ "bg-green-500/30",
318
+ "bg-lime-500/30",
319
+ "bg-cyan-500/30",
320
+ "bg-blue-500/30"
321
+ ],
322
+ glow: "shadow-emerald-400/70"
323
+ },
324
+ objectCount: 8,
325
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center justify-center space-y-4 text-center", children: [
326
+ title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-bold text-4xl text-white/90", children: title }),
327
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "max-w-md text-emerald-100/80 text-lg", children: description })
328
+ ] })
329
+ }
330
+ ) });
331
+ }
332
+
333
+ // src/components/layout/error.tsx
334
+
335
+ function ErrorComponents({
336
+ className,
337
+ type = "default",
338
+ textTitle,
339
+ textSubtitle,
340
+ button
341
+ }) {
342
+ if (type === "404") {
343
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex h-[95%] grow flex-col items-center justify-center", className), children: [
344
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-10", children: [
345
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
346
+ "img",
347
+ {
348
+ src: _chunkWI36EFUScjs.getAssetsUrl.call(void 0, "media/illustrations/19.svg"),
349
+ className: "max-h-40 dark:hidden",
350
+ alt: "illustrations"
351
+ }
352
+ ),
353
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
354
+ "img",
355
+ {
356
+ src: _chunkWI36EFUScjs.getAssetsUrl.call(void 0, "media/illustrations/19-dark.svg"),
357
+ className: "hidden max-h-40 dark:block",
358
+ alt: "illustrations"
359
+ }
360
+ )
361
+ ] }),
362
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.Badge, { variant: "destructive", appearance: "outline", className: "mb-3", children: "404 Error" }),
363
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-2 text-center font-semibold text-2xl text-foreground", children: textTitle }),
364
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-10 text-center text-base text-secondary-foreground", children: textSubtitle })
365
+ ] });
366
+ }
367
+ if (type === "500") {
368
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex h-[95%] grow flex-col items-center justify-center", className), children: [
369
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-10", children: [
370
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
371
+ "img",
372
+ {
373
+ src: _chunkWI36EFUScjs.getAssetsUrl.call(void 0, "media/illustrations/20.svg"),
374
+ className: "max-h-40 dark:hidden",
375
+ alt: "illustrations"
376
+ }
377
+ ),
378
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
379
+ "img",
380
+ {
381
+ src: _chunkWI36EFUScjs.getAssetsUrl.call(void 0, "media/illustrations/20-dark.svg"),
382
+ className: "hidden max-h-40 dark:block",
383
+ alt: "illustrations"
384
+ }
385
+ )
386
+ ] }),
387
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.Badge, { variant: "destructive", appearance: "outline", className: "mb-3", children: "500 Error" }),
388
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-2 text-center font-semibold text-2xl text-foreground", children: textTitle }),
389
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-10 text-center text-base text-secondary-foreground", children: textSubtitle }),
390
+ button
391
+ ] });
392
+ }
393
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex h-[95%] grow flex-col items-center justify-center", className), children: [
394
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-10", children: [
395
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
396
+ "img",
397
+ {
398
+ src: _chunkWI36EFUScjs.getAssetsUrl.call(void 0, "media/illustrations/29.svg"),
399
+ className: "max-h-40 dark:hidden",
400
+ alt: "illustrations"
401
+ }
402
+ ),
403
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
404
+ "img",
405
+ {
406
+ src: _chunkWI36EFUScjs.getAssetsUrl.call(void 0, "media/illustrations/29-dark.svg"),
407
+ className: "hidden max-h-40 dark:block",
408
+ alt: "illustrations"
409
+ }
410
+ )
411
+ ] }),
412
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-2 text-center font-semibold text-2xl text-foreground", children: textTitle }),
413
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-10 text-center text-base text-secondary-foreground", children: textSubtitle })
414
+ ] });
415
+ }
416
+
251
417
  // src/components/layout/section.tsx
252
418
 
253
419
 
@@ -315,7 +481,7 @@ function SiteHeader({ className, children }) {
315
481
  "header",
316
482
  {
317
483
  className: _chunkCJXIPSTGcjs.cn.call(void 0,
318
- "sticky top-0 z-50 w-full border-border border-b bg-background/95 backdrop-blur-sm supports-backdrop-filter:bg-background/60 dark:border-border",
484
+ "sticky top-0 z-50 w-full border-border border-b bg-background/95 backdrop-blur-sm supports-backdrop-filter:bg-background/60",
319
485
  className
320
486
  ),
321
487
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "container flex h-16 items-center justify-between gap-4", children })
@@ -477,7 +643,7 @@ function CommandMenu({
477
643
  setOpen((currentOpen) => {
478
644
  const newState = !currentOpen;
479
645
  if (newState) {
480
- _chunkKNS6QRVBcjs.googleTrackEvent.call(void 0, {
646
+ _chunkWI36EFUScjs.googleTrackEvent.call(void 0, {
481
647
  name: "site_header_search_trigger_shortcut",
482
648
  properties: {
483
649
  method: e.key === "/" ? "slash" : "cmd_k",
@@ -495,7 +661,7 @@ function CommandMenu({
495
661
  return () => document.removeEventListener("keydown", handleKeyDown);
496
662
  }, []);
497
663
  const handleButtonClick = React.useCallback(() => {
498
- _chunkKNS6QRVBcjs.googleTrackEvent.call(void 0, {
664
+ _chunkWI36EFUScjs.googleTrackEvent.call(void 0, {
499
665
  name: "site_header_search_trigger_click",
500
666
  properties: {
501
667
  method: "button_click",
@@ -535,7 +701,7 @@ function CommandMenu({
535
701
  }
536
702
  ),
537
703
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
538
- _chunkDBE4IGCPcjs.CommandDialog,
704
+ _chunkHILACSFAcjs.CommandDialog,
539
705
  {
540
706
  open,
541
707
  onOpenChange: setOpen,
@@ -544,8 +710,8 @@ function CommandMenu({
544
710
  classDialog
545
711
  ),
546
712
  children: [
547
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.CommandInput, { placeholder: commandInputPlaceholder, "aria-label": "Search commands" }),
548
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.CommandList, { children })
713
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.CommandInput, { placeholder: commandInputPlaceholder, "aria-label": "Search commands" }),
714
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.CommandList, { children })
549
715
  ]
550
716
  }
551
717
  )
@@ -566,8 +732,8 @@ function NavItemRenderer({ Link = DefaultLink, item, pathname, level }) {
566
732
  )]), () => ( false)))
567
733
  )]), () => ( false)) : item.href === pathname || item.href !== "/" && item.href && _optionalChain([pathname, 'optionalAccess', _12 => _12.startsWith, 'call', _13 => _13(item.href)]);
568
734
  if (hasChildren && level <= 3) {
569
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.DropdownMenu, { children: [
570
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
735
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.DropdownMenu, { children: [
736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
571
737
  "button",
572
738
  {
573
739
  className: _chunkCJXIPSTGcjs.cn.call(void 0,
@@ -582,7 +748,7 @@ function NavItemRenderer({ Link = DefaultLink, item, pathname, level }) {
582
748
  }
583
749
  ) }),
584
750
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
585
- _chunkDBE4IGCPcjs.DropdownMenuContent,
751
+ _chunkHILACSFAcjs.DropdownMenuContent,
586
752
  {
587
753
  className: "min-w-[150px] overflow-visible",
588
754
  side: "bottom",
@@ -626,9 +792,9 @@ function ChildNavItemRenderer({ Link = DefaultLink, item, pathname, level }) {
626
792
  (grandchild) => grandchild.href === pathname || grandchild.href !== "/" && grandchild.href && _optionalChain([pathname, 'optionalAccess', _22 => _22.startsWith, 'call', _23 => _23(grandchild.href)])
627
793
  )]), () => ( false)));
628
794
  if (hasChildren && level <= 3) {
629
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.DropdownMenuSub, { children: [
795
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.DropdownMenuSub, { children: [
630
796
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
631
- _chunkDBE4IGCPcjs.DropdownMenuSubTrigger,
797
+ _chunkHILACSFAcjs.DropdownMenuSubTrigger,
632
798
  {
633
799
  className: _chunkCJXIPSTGcjs.cn.call(void 0,
634
800
  "flex w-full items-center justify-between text-muted-foreground hover:text-foreground",
@@ -640,7 +806,7 @@ function ChildNavItemRenderer({ Link = DefaultLink, item, pathname, level }) {
640
806
  ]
641
807
  }
642
808
  ),
643
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.DropdownMenuSubContent, { className: "min-w-[150px]", children: _optionalChain([item, 'access', _24 => _24.children, 'optionalAccess', _25 => _25.map, 'call', _26 => _26((child) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
809
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DropdownMenuSubContent, { className: "min-w-[150px]", children: _optionalChain([item, 'access', _24 => _24.children, 'optionalAccess', _25 => _25.map, 'call', _26 => _26((child) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
644
810
  ChildNavItemRenderer,
645
811
  {
646
812
  item: child,
@@ -651,7 +817,7 @@ function ChildNavItemRenderer({ Link = DefaultLink, item, pathname, level }) {
651
817
  ))]) })
652
818
  ] });
653
819
  }
654
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
820
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
655
821
  Link,
656
822
  {
657
823
  href: item.href || "",
@@ -670,7 +836,7 @@ function ChildNavItemRenderer({ Link = DefaultLink, item, pathname, level }) {
670
836
  ) });
671
837
  }
672
838
  function handleMenuClick(item) {
673
- _chunkKNS6QRVBcjs.googleTrackEvent.call(void 0, {
839
+ _chunkWI36EFUScjs.googleTrackEvent.call(void 0, {
674
840
  name: `site_header_menu_${item.title.toLowerCase().replace(/\s+/g, "_")}_link_click`,
675
841
  properties: {
676
842
  menu_item: item.title,
@@ -696,15 +862,15 @@ function MobileNav({ children, className }) {
696
862
  },
697
863
  [setMetaColor, metaColor]
698
864
  );
699
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex items-center gap-2.5 md:hidden", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Drawer, { open, onOpenChange, children: [
700
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.DrawerTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBXUKTDPNcjs.Button, { variant: "ghost", className: "group/toggle size-8 px-0 text-foreground", children: [
865
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex items-center gap-2.5 md:hidden", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Drawer, { open, onOpenChange, children: [
866
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DrawerTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBXUKTDPNcjs.Button, { variant: "ghost", className: "group/toggle size-8 px-0 text-foreground", children: [
701
867
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Menu, {}),
702
868
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: "Toggle Menu" })
703
869
  ] }) }),
704
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.DrawerContent, { className: "max-h-[60svh] p-0", children: [
705
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.DrawerTitle, { className: "sr-only", children: "Mobile menu" }),
870
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.DrawerContent, { className: "max-h-[60svh] p-0", children: [
871
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DrawerTitle, { className: "sr-only", children: "Mobile menu" }),
706
872
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-auto p-6", children }),
707
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.DrawerDescription, { className: "sr-only", children: "Mobile menu" })
873
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DrawerDescription, { className: "sr-only", children: "Mobile menu" })
708
874
  ] })
709
875
  ] }) });
710
876
  }
@@ -726,9 +892,9 @@ function MobileNavItemRenderer({
726
892
  )]), () => ( false)) : item.href === pathname || item.href !== "/" && item.href && _optionalChain([pathname, 'optionalAccess', _37 => _37.startsWith, 'call', _38 => _38(item.href)]);
727
893
  if (hasChildren && level <= 3) {
728
894
  console.log(item);
729
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Collapsible, { open: isOpen, onOpenChange: setIsOpen, children: [
895
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Collapsible, { open: isOpen, onOpenChange: setIsOpen, children: [
730
896
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
731
- _chunkDBE4IGCPcjs.CollapsibleTrigger,
897
+ _chunkHILACSFAcjs.CollapsibleTrigger,
732
898
  {
733
899
  className: _chunkCJXIPSTGcjs.cn.call(void 0,
734
900
  "flex w-full cursor-pointer items-center gap-1 text-sm transition-colors",
@@ -749,7 +915,7 @@ function MobileNavItemRenderer({
749
915
  ]
750
916
  }
751
917
  ),
752
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.CollapsibleContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex flex-col space-y-2.5 pt-3", `ps-5`), children: item.children.map((child) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
918
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.CollapsibleContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkCJXIPSTGcjs.cn.call(void 0, "flex flex-col space-y-2.5 pt-3", `ps-5`), children: item.children.map((child) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
753
919
  MobileNavItemRenderer,
754
920
  {
755
921
  item: child,
@@ -836,9 +1002,9 @@ var QueryProvider = ({ children }) => {
836
1002
  });
837
1003
  }
838
1004
  _sonner.toast.custom(
839
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "destructive", close: false, children: [
840
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
841
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: message })
1005
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "destructive", close: false, children: [
1006
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
1007
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: message })
842
1008
  ] }),
843
1009
  {
844
1010
  position: "top-center",
@@ -870,7 +1036,7 @@ function ThemeProvider({ children, ...props }) {
870
1036
  storageKey: "theme",
871
1037
  themes: [_chunkI46SELBAcjs.THEME_MODES.LIGHT, _chunkI46SELBAcjs.THEME_MODES.DARK, _chunkI46SELBAcjs.THEME_MODES.SYSTEM],
872
1038
  ...props,
873
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.TooltipProvider, { delayDuration: 0, children })
1039
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.TooltipProvider, { delayDuration: 0, children })
874
1040
  }
875
1041
  );
876
1042
  }
@@ -883,7 +1049,7 @@ var Announcement = ({
883
1049
  className,
884
1050
  ...props
885
1051
  }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
886
- _chunkDBE4IGCPcjs.Badge,
1052
+ _chunkHILACSFAcjs.Badge,
887
1053
  {
888
1054
  variant,
889
1055
  className: _chunkCJXIPSTGcjs.cn.call(void 0,
@@ -1734,6 +1900,149 @@ var ImageInput = ({
1734
1900
  ] });
1735
1901
  };
1736
1902
 
1903
+ // src/components/ui/language-switcher.tsx
1904
+
1905
+
1906
+
1907
+ function LanguageSwitcher({
1908
+ className,
1909
+ type = "dropdown",
1910
+ variant = "ghost",
1911
+ size = "md",
1912
+ showNames = true,
1913
+ showFlags = true,
1914
+ label = "Language",
1915
+ i18nEnabled = true,
1916
+ currentLocale,
1917
+ locales,
1918
+ onLocaleChange,
1919
+ // flagsBasePath = '/flags',
1920
+ Image: Image2 = DefaultImage
1921
+ }) {
1922
+ const [isPending, startTransition] = _react.useTransition.call(void 0, );
1923
+ const languages = _nullishCoalesce(locales, () => ( []));
1924
+ const currentLanguage = languages.find((l) => l.code === currentLocale);
1925
+ function handleLanguageChange(newLocale) {
1926
+ if (newLocale === currentLocale) return;
1927
+ startTransition(() => {
1928
+ const maybePromise = _optionalChain([onLocaleChange, 'optionalCall', _50 => _50(newLocale)]);
1929
+ return maybePromise;
1930
+ });
1931
+ }
1932
+ if (!i18nEnabled && (_nullishCoalesce(_optionalChain([languages, 'optionalAccess', _51 => _51.length]), () => ( 0))) <= 1) {
1933
+ return null;
1934
+ }
1935
+ if (type === "dropdown") {
1936
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.DropdownMenu, { children: [
1937
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1938
+ _chunkBXUKTDPNcjs.Button,
1939
+ {
1940
+ variant,
1941
+ size,
1942
+ className: _chunkCJXIPSTGcjs.cn.call(void 0,
1943
+ "group/toggle size-8 px-0 text-foreground ring-0! focus:outline-none! focus:ring-0! focus-visible:outline-none! focus-visible:ring-0! focus-visible:ring-offset-0!",
1944
+ isPending && "cursor-not-allowed opacity-50",
1945
+ className
1946
+ ),
1947
+ disabled: isPending,
1948
+ children: [
1949
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Languages, { className: "size-4" }),
1950
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: isPending ? "Changing language..." : "Language dropdown" })
1951
+ ]
1952
+ }
1953
+ ) }),
1954
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1955
+ _chunkHILACSFAcjs.DropdownMenuContent,
1956
+ {
1957
+ align: "end",
1958
+ className: "min-w-[150px]",
1959
+ onCloseAutoFocus: (e) => e.preventDefault(),
1960
+ children: languages.map((lang) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1961
+ _chunkHILACSFAcjs.DropdownMenuItem,
1962
+ {
1963
+ onClick: () => handleLanguageChange(lang.code),
1964
+ className: _chunkCJXIPSTGcjs.cn.call(void 0, "gap-2", currentLocale === lang.code && "bg-accent"),
1965
+ children: [
1966
+ showFlags && lang.flag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1967
+ Image2,
1968
+ {
1969
+ src: _chunkWI36EFUScjs.getFlagUrl.call(void 0, lang.flag),
1970
+ alt: `${lang.name} flag`,
1971
+ className: "size-4 rounded-full object-cover",
1972
+ width: 24,
1973
+ height: 24
1974
+ }
1975
+ ) : showFlags ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className: "size-4" }) : null,
1976
+ showNames && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: lang.name }),
1977
+ currentLocale === lang.code && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "ms-auto text-muted-foreground text-xs", children: "\u2713" })
1978
+ ]
1979
+ },
1980
+ lang.code
1981
+ ))
1982
+ }
1983
+ )
1984
+ ] });
1985
+ }
1986
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.DropdownMenuSub, { children: [
1987
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1988
+ _chunkHILACSFAcjs.DropdownMenuSubTrigger,
1989
+ {
1990
+ className: _chunkCJXIPSTGcjs.cn.call(void 0,
1991
+ "flex items-center gap-2 data-[state=open]:**:data-[slot=badge]:border-input **:data-[slot=dropdown-menu-sub-trigger-indicator]:hidden hover:**:data-[slot=badge]:border-input",
1992
+ className
1993
+ ),
1994
+ children: [
1995
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className: "size-4" }),
1996
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative flex grow items-center justify-between gap-2", children: [
1997
+ label,
1998
+ currentLanguage && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Badge, { appearance: "outline", className: "-translate-y-1/2 absolute end-0 top-1/2", children: [
1999
+ currentLanguage.name,
2000
+ showFlags && currentLanguage.flag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2001
+ Image2,
2002
+ {
2003
+ src: _chunkWI36EFUScjs.getFlagUrl.call(void 0, currentLanguage.flag),
2004
+ alt: currentLanguage.name,
2005
+ className: "ms-1 size-3.5 rounded-full",
2006
+ width: 24,
2007
+ height: 24
2008
+ }
2009
+ )
2010
+ ] })
2011
+ ] })
2012
+ ]
2013
+ }
2014
+ ),
2015
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DropdownMenuSubContent, { className: "w-48", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2016
+ _chunkHILACSFAcjs.DropdownMenuRadioGroup,
2017
+ {
2018
+ value: currentLocale,
2019
+ onValueChange: (value) => handleLanguageChange(value),
2020
+ children: languages.map((item) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2021
+ _chunkHILACSFAcjs.DropdownMenuRadioItem,
2022
+ {
2023
+ value: item.code,
2024
+ className: "flex items-center gap-2",
2025
+ children: [
2026
+ showFlags && item.flag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2027
+ Image2,
2028
+ {
2029
+ src: _chunkWI36EFUScjs.getFlagUrl.call(void 0, item.flag),
2030
+ alt: `${item.name} flag`,
2031
+ className: "size-4 rounded-full object-cover",
2032
+ width: 24,
2033
+ height: 24
2034
+ }
2035
+ ) : showFlags ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className: "size-4" }) : null,
2036
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: item.name })
2037
+ ]
2038
+ },
2039
+ item.code
2040
+ ))
2041
+ }
2042
+ ) })
2043
+ ] });
2044
+ }
2045
+
1737
2046
  // src/components/ui/logo.tsx
1738
2047
 
1739
2048
  function Logo({ className }) {
@@ -1763,7 +2072,13 @@ function ModeSwitcher({
1763
2072
  className,
1764
2073
  variant = "ghost",
1765
2074
  size = "md",
1766
- cycleOrder = [_chunkI46SELBAcjs.THEME_MODES.SYSTEM, _chunkI46SELBAcjs.THEME_MODES.LIGHT, _chunkI46SELBAcjs.THEME_MODES.DARK]
2075
+ cycleOrder = [_chunkI46SELBAcjs.THEME_MODES.SYSTEM, _chunkI46SELBAcjs.THEME_MODES.LIGHT, _chunkI46SELBAcjs.THEME_MODES.DARK],
2076
+ type = "toogle",
2077
+ label = {
2078
+ system: "System",
2079
+ dark: "Dark",
2080
+ light: "Light"
2081
+ }
1767
2082
  }) {
1768
2083
  const { setTheme, theme } = _nextthemes.useTheme.call(void 0, );
1769
2084
  const toggleTheme = React2.useCallback(() => {
@@ -1772,27 +2087,107 @@ function ModeSwitcher({
1772
2087
  const nextTheme = cycleOrder[nextIndex];
1773
2088
  setTheme(nextTheme);
1774
2089
  }, [theme, setTheme, cycleOrder]);
1775
- const getCurrentIcon = () => {
2090
+ const getCurrentIcon = (withLabel = false) => {
1776
2091
  if (theme === _chunkI46SELBAcjs.THEME_MODES.SYSTEM) {
1777
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Monitor, {});
2092
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2093
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Monitor, {}),
2094
+ " ",
2095
+ _nullishCoalesce(withLabel, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: label.system })))
2096
+ ] });
1778
2097
  }
1779
2098
  if (theme === _chunkI46SELBAcjs.THEME_MODES.DARK) {
1780
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Moon, {});
2099
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2100
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Moon, {}),
2101
+ " ",
2102
+ _nullishCoalesce(withLabel, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: label.dark })))
2103
+ ] });
1781
2104
  }
1782
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sun, {});
2105
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2106
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sun, {}),
2107
+ " ",
2108
+ _nullishCoalesce(withLabel, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: label.light })))
2109
+ ] });
1783
2110
  };
1784
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1785
- _chunkBXUKTDPNcjs.Button,
2111
+ const isActive = (val) => theme === val;
2112
+ if (type === "toogle") {
2113
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2114
+ _chunkBXUKTDPNcjs.Button,
2115
+ {
2116
+ variant,
2117
+ size,
2118
+ className: _chunkCJXIPSTGcjs.cn.call(void 0, "group/toggle size-8 px-0 text-foreground", className),
2119
+ onClick: toggleTheme,
2120
+ "aria-label": "Switch theme",
2121
+ children: [
2122
+ getCurrentIcon(),
2123
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: "Toggle theme" })
2124
+ ]
2125
+ }
2126
+ );
2127
+ }
2128
+ if (type === "dropdown") {
2129
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.DropdownMenu, { children: [
2130
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2131
+ _chunkBXUKTDPNcjs.Button,
2132
+ {
2133
+ variant,
2134
+ size,
2135
+ className: _chunkCJXIPSTGcjs.cn.call(void 0,
2136
+ "group/toggle size-8 px-0 text-foreground ring-0! focus:outline-none! focus:ring-0! focus-visible:outline-none! focus-visible:ring-0! focus-visible:ring-offset-0!",
2137
+ className
2138
+ ),
2139
+ children: [
2140
+ getCurrentIcon(),
2141
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: "Toggle theme" })
2142
+ ]
2143
+ }
2144
+ ) }),
2145
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.DropdownMenuContent, { align: "end", onCloseAutoFocus: (e) => e.preventDefault(), children: [
2146
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2147
+ _chunkHILACSFAcjs.DropdownMenuItem,
2148
+ {
2149
+ className: isActive("light") ? "bg-accent" : "",
2150
+ onClick: () => setTheme("light"),
2151
+ children: [
2152
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sun, {}),
2153
+ label.light
2154
+ ]
2155
+ }
2156
+ ),
2157
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2158
+ _chunkHILACSFAcjs.DropdownMenuItem,
2159
+ {
2160
+ className: isActive("dark") ? "bg-accent" : "",
2161
+ onClick: () => setTheme("dark"),
2162
+ children: [
2163
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Moon, {}),
2164
+ label.dark
2165
+ ]
2166
+ }
2167
+ ),
2168
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2169
+ _chunkHILACSFAcjs.DropdownMenuItem,
2170
+ {
2171
+ className: isActive("system") ? "bg-accent" : "",
2172
+ onClick: () => setTheme("system"),
2173
+ children: [
2174
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Monitor, {}),
2175
+ label.system
2176
+ ]
2177
+ }
2178
+ )
2179
+ ] })
2180
+ ] });
2181
+ }
2182
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2183
+ _chunkHILACSFAcjs.DropdownMenuItem,
1786
2184
  {
1787
- variant,
1788
- size,
1789
- className: _chunkCJXIPSTGcjs.cn.call(void 0, "group/toggle size-8 px-0 text-foreground", className),
1790
- onClick: toggleTheme,
1791
- "aria-label": "Switch theme",
1792
- children: [
1793
- getCurrentIcon(),
1794
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: "Toggle theme" })
1795
- ]
2185
+ className,
2186
+ onSelect: (e) => {
2187
+ e.preventDefault();
2188
+ toggleTheme();
2189
+ },
2190
+ children: getCurrentIcon(true)
1796
2191
  }
1797
2192
  );
1798
2193
  }
@@ -1862,14 +2257,14 @@ var MovingBorder = ({
1862
2257
  const pathRef = _react.useRef.call(void 0, null);
1863
2258
  const progress = _react2.useMotionValue.call(void 0, 0);
1864
2259
  _react2.useAnimationFrame.call(void 0, (time) => {
1865
- const length = _optionalChain([pathRef, 'access', _50 => _50.current, 'optionalAccess', _51 => _51.getTotalLength, 'call', _52 => _52()]);
2260
+ const length = _optionalChain([pathRef, 'access', _52 => _52.current, 'optionalAccess', _53 => _53.getTotalLength, 'call', _54 => _54()]);
1866
2261
  if (length) {
1867
2262
  const pxPerMillisecond = length / duration;
1868
2263
  progress.set(time * pxPerMillisecond % length);
1869
2264
  }
1870
2265
  });
1871
- const x = _react2.useTransform.call(void 0, progress, (val) => _optionalChain([pathRef, 'access', _53 => _53.current, 'optionalAccess', _54 => _54.getPointAtLength, 'call', _55 => _55(val), 'access', _56 => _56.x]));
1872
- const y = _react2.useTransform.call(void 0, progress, (val) => _optionalChain([pathRef, 'access', _57 => _57.current, 'optionalAccess', _58 => _58.getPointAtLength, 'call', _59 => _59(val), 'access', _60 => _60.y]));
2266
+ const x = _react2.useTransform.call(void 0, progress, (val) => _optionalChain([pathRef, 'access', _55 => _55.current, 'optionalAccess', _56 => _56.getPointAtLength, 'call', _57 => _57(val), 'access', _58 => _58.x]));
2267
+ const y = _react2.useTransform.call(void 0, progress, (val) => _optionalChain([pathRef, 'access', _59 => _59.current, 'optionalAccess', _60 => _60.getPointAtLength, 'call', _61 => _61(val), 'access', _62 => _62.y]));
1873
2268
  const transform = _react2.useMotionTemplate`translateX(${x}px) translateY(${y}px) translateX(-50%) translateY(-50%)`;
1874
2269
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1875
2270
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -1933,9 +2328,9 @@ function RecaptchaPopover({
1933
2328
  const token = getToken();
1934
2329
  if (!token) {
1935
2330
  _sonner.toast.custom(
1936
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "destructive", children: [
1937
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
1938
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: "Please complete the reCAPTCHA verification." })
2331
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "destructive", children: [
2332
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2333
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: "Please complete the reCAPTCHA verification." })
1939
2334
  ] }),
1940
2335
  {
1941
2336
  position: "top-center"
@@ -1947,9 +2342,9 @@ function RecaptchaPopover({
1947
2342
  } catch (error) {
1948
2343
  console.error("Error getting reCAPTCHA token:", error);
1949
2344
  _sonner.toast.custom(
1950
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "destructive", children: [
1951
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
1952
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: "Please complete the reCAPTCHA verification." })
2345
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "destructive", children: [
2346
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2347
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: "Please complete the reCAPTCHA verification." })
1953
2348
  ] }),
1954
2349
  {
1955
2350
  position: "top-center"
@@ -2005,9 +2400,9 @@ function Subscribe({
2005
2400
  const validateEmail = () => {
2006
2401
  if (!email.match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/)) {
2007
2402
  _sonner.toast.custom(
2008
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "destructive", children: [
2009
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2010
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: invalidEmailMessage })
2403
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "destructive", children: [
2404
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2405
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: invalidEmailMessage })
2011
2406
  ] }),
2012
2407
  {
2013
2408
  position: "top-center"
@@ -2028,9 +2423,9 @@ function Subscribe({
2028
2423
  const handleVerifiedSubmit = async (token) => {
2029
2424
  if (!token) {
2030
2425
  _sonner.toast.custom(
2031
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "destructive", children: [
2032
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2033
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: recaptchaMessage })
2426
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "destructive", children: [
2427
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2428
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: recaptchaMessage })
2034
2429
  ] }),
2035
2430
  {
2036
2431
  position: "top-center"
@@ -2041,7 +2436,7 @@ function Subscribe({
2041
2436
  setLoading(true);
2042
2437
  setShowRecaptcha(false);
2043
2438
  try {
2044
- _chunkKNS6QRVBcjs.googleTrackEvent.call(void 0, {
2439
+ _chunkWI36EFUScjs.googleTrackEvent.call(void 0, {
2045
2440
  name: "site_newsletter_subscribe_submit",
2046
2441
  properties: {
2047
2442
  category: "conversion",
@@ -2060,15 +2455,15 @@ function Subscribe({
2060
2455
  const data = await res.json();
2061
2456
  if (res.ok) {
2062
2457
  _sonner.toast.custom(
2063
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "success", children: [
2064
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleCheck, {}) }),
2065
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: successMessage })
2458
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "success", children: [
2459
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleCheck, {}) }),
2460
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: successMessage })
2066
2461
  ] }),
2067
2462
  {
2068
2463
  position: "top-center"
2069
2464
  }
2070
2465
  );
2071
- _chunkKNS6QRVBcjs.googleTrackEvent.call(void 0, {
2466
+ _chunkWI36EFUScjs.googleTrackEvent.call(void 0, {
2072
2467
  name: "site_newsletter_subscribe_success",
2073
2468
  properties: {
2074
2469
  category: "conversion",
@@ -2079,9 +2474,9 @@ function Subscribe({
2079
2474
  setEmail("");
2080
2475
  } else {
2081
2476
  _sonner.toast.custom(
2082
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "destructive", children: [
2083
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2084
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: data.message || errorMessage })
2477
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "destructive", children: [
2478
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2479
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: data.message || errorMessage })
2085
2480
  ] }),
2086
2481
  {
2087
2482
  position: "top-center"
@@ -2091,9 +2486,9 @@ function Subscribe({
2091
2486
  } catch (err) {
2092
2487
  console.error("Newsletter subscription error:", err);
2093
2488
  _sonner.toast.custom(
2094
- () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Alert, { variant: "mono", icon: "destructive", children: [
2095
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2096
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AlertTitle, { children: errorMessage })
2489
+ () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Alert, { variant: "mono", icon: "destructive", children: [
2490
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertIcon, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleAlert, {}) }),
2491
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AlertTitle, { children: errorMessage })
2097
2492
  ] }),
2098
2493
  {
2099
2494
  position: "top-center"
@@ -2179,10 +2574,10 @@ var ToolbarActions = ({ children }) => {
2179
2574
  function UserAvatar({ className, indicator = false, src, alt }) {
2180
2575
  const name = _nullishCoalesce(alt, () => ( "User"));
2181
2576
  const initial = getInitials(name);
2182
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDBE4IGCPcjs.Avatar, { className, children: [
2183
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AvatarImage, { src: _nullishCoalesce(src, () => ( void 0)), alt: name }),
2184
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AvatarFallback, { children: initial }),
2185
- indicator && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AvatarIndicator, { className: "-end-2 -top-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDBE4IGCPcjs.AvatarStatus, { variant: "online", className: "size-2.5" }) })
2577
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHILACSFAcjs.Avatar, { className, children: [
2578
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AvatarImage, { src: _nullishCoalesce(src, () => ( void 0)), alt: name }),
2579
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AvatarFallback, { children: initial }),
2580
+ indicator && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AvatarIndicator, { className: "-end-2 -top-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHILACSFAcjs.AvatarStatus, { variant: "online", className: "size-2.5" }) })
2186
2581
  ] });
2187
2582
  }
2188
2583
  var getInitials = (name, count) => {
@@ -2270,4 +2665,9 @@ function SatoshiFontCSS() {
2270
2665
 
2271
2666
 
2272
2667
 
2273
- exports.AlertComingsoon = AlertComingsoon; exports.AlertNotification = AlertNotification; exports.AlertToast = AlertToast; exports.Announcement = Announcement; exports.AnnouncementTag = AnnouncementTag; exports.AnnouncementTitle = AnnouncementTitle; exports.BackLink = BackLink; exports.BackgroundPaths = BackgroundPaths; exports.Body = Body; exports.Book = Book; exports.CodeDisplay = CodeDisplay; exports.CommandMenu = CommandMenu; exports.ConfirmDismissDialog = ConfirmDismissDialog; exports.DEFAULT_DATA_URL_KEY = DEFAULT_DATA_URL_KEY; exports.DEFAULT_NULL_INDEX = DEFAULT_NULL_INDEX; exports.DefaultImage = DefaultImage; exports.DefaultLink = DefaultLink; exports.DefaultNavigate = DefaultNavigate; exports.DotsPattern = DotsPattern; exports.DownloadFile = DownloadFile; exports.ExtraLink = ExtraLink; exports.FloatingPaths = FloatingPaths; exports.Grid = Grid; exports.GridBackground = GridBackground; exports.Icons = Icons; exports.ImageInput = ImageInput; exports.Logo = Logo; exports.MainNav = MainNav; exports.MaxWidthWrapper = MaxWidthWrapper; exports.MobileNav = MobileNav; exports.MobileNavItemRenderer = MobileNavItemRenderer; exports.ModeSwitcher = ModeSwitcher; exports.MovingBorder = MovingBorder; exports.MovingLabel = MovingLabel; exports.QueryProvider = QueryProvider; exports.RecaptchaPopover = RecaptchaPopover; exports.SatoshiFontCSS = SatoshiFontCSS; exports.ScreenLoader = ScreenLoader; exports.Section = Section; exports.SiteFooter = SiteFooter; exports.SiteHeader = SiteHeader; exports.Stack = Stack; exports.Subscribe = Subscribe; exports.ThemeProvider = ThemeProvider; exports.Toolbar = Toolbar; exports.ToolbarActions = ToolbarActions; exports.ToolbarHeading = ToolbarHeading; exports.ToolbarTitle = ToolbarTitle; exports.UserAvatar = UserAvatar; exports.Video = Video; exports.Wrapper = Wrapper; exports.Youtube = Youtube; exports.cssFontFace = cssFontFace; exports.getAcceptTypeString = getAcceptTypeString; exports.getBase64 = getBase64; exports.getImage = getImage; exports.getInitials = getInitials; exports.getListFiles = getListFiles; exports.handleMenuClick = handleMenuClick; exports.openFileDialog = openFileDialog; exports.satoshiFontUrl = satoshiFontUrl;
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+ exports.AlertComingsoon = AlertComingsoon; exports.AlertNotification = AlertNotification; exports.AlertToast = AlertToast; exports.Announcement = Announcement; exports.AnnouncementTag = AnnouncementTag; exports.AnnouncementTitle = AnnouncementTitle; exports.BackLink = BackLink; exports.BackgroundPaths = BackgroundPaths; exports.Body = Body; exports.Book = Book; exports.CodeDisplay = CodeDisplay; exports.ComingSoon = ComingSoon; exports.CommandMenu = CommandMenu; exports.ConfirmDismissDialog = ConfirmDismissDialog; exports.DEFAULT_DATA_URL_KEY = DEFAULT_DATA_URL_KEY; exports.DEFAULT_NULL_INDEX = DEFAULT_NULL_INDEX; exports.DefaultImage = DefaultImage; exports.DefaultLink = DefaultLink; exports.DefaultNavigate = DefaultNavigate; exports.DotsPattern = DotsPattern; exports.DownloadFile = DownloadFile; exports.ErrorComponents = ErrorComponents; exports.ExtraLink = ExtraLink; exports.FloatingPaths = FloatingPaths; exports.Grid = Grid; exports.GridBackground = GridBackground; exports.Icons = Icons; exports.ImageInput = ImageInput; exports.LanguageSwitcher = LanguageSwitcher; exports.LayoutAuth = LayoutAuth; exports.LayoutBlank = LayoutBlank; exports.Logo = Logo; exports.MainNav = MainNav; exports.MaxWidthWrapper = MaxWidthWrapper; exports.MobileNav = MobileNav; exports.MobileNavItemRenderer = MobileNavItemRenderer; exports.ModeSwitcher = ModeSwitcher; exports.MovingBorder = MovingBorder; exports.MovingLabel = MovingLabel; exports.QueryProvider = QueryProvider; exports.RecaptchaPopover = RecaptchaPopover; exports.SatoshiFontCSS = SatoshiFontCSS; exports.ScreenLoader = ScreenLoader; exports.Section = Section; exports.SiteFooter = SiteFooter; exports.SiteHeader = SiteHeader; exports.Stack = Stack; exports.Subscribe = Subscribe; exports.ThemeProvider = ThemeProvider; exports.Toolbar = Toolbar; exports.ToolbarActions = ToolbarActions; exports.ToolbarHeading = ToolbarHeading; exports.ToolbarTitle = ToolbarTitle; exports.UserAvatar = UserAvatar; exports.Video = Video; exports.Wrapper = Wrapper; exports.Youtube = Youtube; exports.cssFontFace = cssFontFace; exports.getAcceptTypeString = getAcceptTypeString; exports.getBase64 = getBase64; exports.getImage = getImage; exports.getInitials = getInitials; exports.getListFiles = getListFiles; exports.handleMenuClick = handleMenuClick; exports.openFileDialog = openFileDialog; exports.satoshiFontUrl = satoshiFontUrl;