@doneisbetter/gds-core 2.6.4 → 2.6.5
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/{chunk-BAS4ZGKL.mjs → chunk-6LOTZ3IZ.mjs} +870 -807
- package/dist/chunk-BU3CRWRC.mjs +905 -0
- package/dist/client.d.mts +7 -3
- package/dist/client.d.ts +7 -3
- package/dist/client.js +1291 -926
- package/dist/client.mjs +10 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1291 -926
- package/dist/index.mjs +10 -2
- package/dist/{server-BqFksoV3.d.mts → server-CF4gCYQ-.d.mts} +45 -13
- package/dist/{server-BqFksoV3.d.ts → server-CF4gCYQ-.d.ts} +45 -13
- package/dist/server.d.mts +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +679 -611
- package/dist/server.mjs +7 -1
- package/package.json +2 -2
- package/dist/chunk-EN3TN22M.mjs +0 -585
package/dist/server.js
CHANGED
|
@@ -58,6 +58,9 @@ __export(server_exports, {
|
|
|
58
58
|
PublicProductCard: () => PublicProductCard,
|
|
59
59
|
PublicShell: () => PublicShell,
|
|
60
60
|
PublicSiteFooter: () => PublicSiteFooter,
|
|
61
|
+
ReferenceLinkGrid: () => ReferenceLinkGrid,
|
|
62
|
+
ReferenceLocaleNotice: () => ReferenceLocaleNotice,
|
|
63
|
+
ReferenceSection: () => ReferenceSection,
|
|
61
64
|
SectionPanel: () => SectionPanel,
|
|
62
65
|
SimpleDataTable: () => SimpleDataTable,
|
|
63
66
|
SocialAuthButtons: () => SocialAuthButtons,
|
|
@@ -453,9 +456,105 @@ function ProgressCard({
|
|
|
453
456
|
] }) });
|
|
454
457
|
}
|
|
455
458
|
|
|
456
|
-
// src/
|
|
459
|
+
// src/AccentPanel.tsx
|
|
457
460
|
var import_core6 = require("@mantine/core");
|
|
458
461
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
462
|
+
var toneStyles = {
|
|
463
|
+
gray: {
|
|
464
|
+
bg: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-gray-7) 88%, black))",
|
|
465
|
+
border: "light-dark(var(--mantine-color-gray-2), color-mix(in srgb, var(--mantine-color-gray-4) 70%, transparent))",
|
|
466
|
+
color: "light-dark(var(--mantine-color-gray-9), var(--mantine-color-gray-0))"
|
|
467
|
+
},
|
|
468
|
+
violet: {
|
|
469
|
+
bg: "light-dark(var(--mantine-color-violet-0), color-mix(in srgb, var(--mantine-color-violet-9) 70%, black))",
|
|
470
|
+
border: "light-dark(var(--mantine-color-violet-2), color-mix(in srgb, var(--mantine-color-violet-4) 75%, transparent))",
|
|
471
|
+
color: "light-dark(var(--mantine-color-violet-9), var(--mantine-color-violet-0))"
|
|
472
|
+
},
|
|
473
|
+
green: {
|
|
474
|
+
bg: "light-dark(var(--mantine-color-green-0), color-mix(in srgb, var(--mantine-color-green-9) 72%, black))",
|
|
475
|
+
border: "light-dark(var(--mantine-color-green-2), color-mix(in srgb, var(--mantine-color-green-4) 78%, transparent))",
|
|
476
|
+
color: "light-dark(var(--mantine-color-green-9), var(--mantine-color-green-0))"
|
|
477
|
+
},
|
|
478
|
+
red: {
|
|
479
|
+
bg: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 72%, black))",
|
|
480
|
+
border: "light-dark(var(--mantine-color-red-2), color-mix(in srgb, var(--mantine-color-red-4) 78%, transparent))",
|
|
481
|
+
color: "light-dark(var(--mantine-color-red-9), var(--mantine-color-red-0))"
|
|
482
|
+
},
|
|
483
|
+
amber: {
|
|
484
|
+
bg: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-8) 78%, black))",
|
|
485
|
+
border: "light-dark(var(--mantine-color-yellow-3), color-mix(in srgb, var(--mantine-color-yellow-5) 70%, transparent))",
|
|
486
|
+
color: "light-dark(var(--mantine-color-yellow-9), var(--mantine-color-yellow-0))"
|
|
487
|
+
},
|
|
488
|
+
blue: {
|
|
489
|
+
bg: "light-dark(var(--mantine-color-blue-0), color-mix(in srgb, var(--mantine-color-blue-9) 74%, black))",
|
|
490
|
+
border: "light-dark(var(--mantine-color-blue-2), color-mix(in srgb, var(--mantine-color-blue-4) 75%, transparent))",
|
|
491
|
+
color: "light-dark(var(--mantine-color-blue-9), var(--mantine-color-blue-0))"
|
|
492
|
+
}
|
|
493
|
+
};
|
|
494
|
+
function resolveAccentPanelStyles(tone = "violet", variant = "subtle") {
|
|
495
|
+
const token = toneStyles[tone];
|
|
496
|
+
if (variant === "soft-outline") {
|
|
497
|
+
return {
|
|
498
|
+
backgroundColor: "light-dark(var(--mantine-color-body), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
|
|
499
|
+
border: `1px solid ${token.border}`,
|
|
500
|
+
color: token.color
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
return {
|
|
504
|
+
backgroundColor: token.bg,
|
|
505
|
+
border: `1px solid ${token.border}`,
|
|
506
|
+
color: token.color
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
function AccentPanel({
|
|
510
|
+
tone = "violet",
|
|
511
|
+
variant = "subtle",
|
|
512
|
+
title,
|
|
513
|
+
badge,
|
|
514
|
+
children
|
|
515
|
+
}) {
|
|
516
|
+
const styles = resolveAccentPanelStyles(tone, variant);
|
|
517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Paper, { withBorder: true, radius: "lg", p: "lg", style: styles, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Stack, { gap: "sm", children: [
|
|
518
|
+
title || badge ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
519
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Title, { order: 4, c: "inherit", children: title }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Box, {}),
|
|
520
|
+
badge ? typeof badge === "string" ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Badge, { color: tone === "amber" ? "yellow" : tone, variant: "filled", children: badge }) : badge : null
|
|
521
|
+
] }) : null,
|
|
522
|
+
typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Text, { c: "inherit", children }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Box, { c: "inherit", children })
|
|
523
|
+
] }) });
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
// src/ReferenceLocaleNotice.tsx
|
|
527
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
528
|
+
function ReferenceLocaleNotice({ localeLabel, detail }) {
|
|
529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(AccentPanel, { tone: "amber", variant: "soft-outline", title: "Localization status", badge: localeLabel, children: detail });
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
// src/ReferenceLinkGrid.tsx
|
|
533
|
+
var import_core7 = require("@mantine/core");
|
|
534
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
535
|
+
function ReferenceLinkGrid({
|
|
536
|
+
items,
|
|
537
|
+
columns = 3
|
|
538
|
+
}) {
|
|
539
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), xl: columns }, spacing: "lg", children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_core7.Stack, { gap: "md", children: [
|
|
540
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_core7.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
541
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_core7.Stack, { gap: 6, maw: 540, children: [
|
|
542
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.Title, { order: 4, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.Anchor, { href: item.href, underline: "never", children: item.title }) }),
|
|
543
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.Text, { size: "sm", c: "dimmed", children: item.description })
|
|
544
|
+
] }),
|
|
545
|
+
item.badge ? typeof item.badge === "string" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.Badge, { variant: "light", color: "violet", children: item.badge }) : item.badge : null
|
|
546
|
+
] }),
|
|
547
|
+
item.meta ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.Text, { size: "sm", c: "dimmed", children: item.meta }) : null,
|
|
548
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core7.Anchor, { href: item.href, fw: 600, children: "Open section" })
|
|
549
|
+
] }) }, item.id)) });
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
// src/ReferenceSection.tsx
|
|
553
|
+
var import_core9 = require("@mantine/core");
|
|
554
|
+
|
|
555
|
+
// src/SectionPanel.tsx
|
|
556
|
+
var import_core8 = require("@mantine/core");
|
|
557
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
459
558
|
var toneBackgrounds = {
|
|
460
559
|
default: "var(--mantine-color-body)",
|
|
461
560
|
supporting: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
|
|
@@ -471,23 +570,56 @@ function SectionPanel({
|
|
|
471
570
|
id,
|
|
472
571
|
divided = true
|
|
473
572
|
}) {
|
|
474
|
-
return /* @__PURE__ */ (0,
|
|
475
|
-
title || description || action ? /* @__PURE__ */ (0,
|
|
476
|
-
/* @__PURE__ */ (0,
|
|
477
|
-
title || description ? /* @__PURE__ */ (0,
|
|
478
|
-
title ? /* @__PURE__ */ (0,
|
|
479
|
-
description ? /* @__PURE__ */ (0,
|
|
573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Paper, { id, withBorder: true, radius: "xl", p: "lg", style: { background: toneBackgrounds[tone] }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Stack, { gap: "md", children: [
|
|
574
|
+
title || description || action ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
575
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
576
|
+
title || description ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Stack, { gap: 4, children: [
|
|
577
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Title, { order: 3, children: title }) : null,
|
|
578
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
480
579
|
] }) : null,
|
|
481
580
|
action
|
|
482
581
|
] }),
|
|
483
|
-
divided ? /* @__PURE__ */ (0,
|
|
582
|
+
divided ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Divider, {}) : null
|
|
484
583
|
] }) : null,
|
|
485
584
|
children
|
|
486
585
|
] }) });
|
|
487
586
|
}
|
|
488
587
|
|
|
588
|
+
// src/ReferenceSection.tsx
|
|
589
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
590
|
+
function ReferenceSection({
|
|
591
|
+
title,
|
|
592
|
+
description,
|
|
593
|
+
eyebrow,
|
|
594
|
+
action,
|
|
595
|
+
href,
|
|
596
|
+
linkLabel = "Open section",
|
|
597
|
+
tone = "default",
|
|
598
|
+
children
|
|
599
|
+
}) {
|
|
600
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
601
|
+
SectionPanel,
|
|
602
|
+
{
|
|
603
|
+
tone,
|
|
604
|
+
title: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_core9.Stack, { gap: 4, children: [
|
|
605
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Text, { size: "xs", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
606
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_core9.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
607
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_core9.Stack, { gap: 4, children: [
|
|
608
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Text, { component: "span", fw: 700, size: "xl", children: title }),
|
|
609
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
610
|
+
] }),
|
|
611
|
+
href ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Anchor, { href, fw: 600, children: linkLabel }) : null
|
|
612
|
+
] })
|
|
613
|
+
] }),
|
|
614
|
+
action,
|
|
615
|
+
divided: false,
|
|
616
|
+
children
|
|
617
|
+
}
|
|
618
|
+
);
|
|
619
|
+
}
|
|
620
|
+
|
|
489
621
|
// src/ConsumerSection.tsx
|
|
490
|
-
var
|
|
622
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
491
623
|
function ConsumerSection({
|
|
492
624
|
title,
|
|
493
625
|
description,
|
|
@@ -495,22 +627,22 @@ function ConsumerSection({
|
|
|
495
627
|
children,
|
|
496
628
|
tone = "default"
|
|
497
629
|
}) {
|
|
498
|
-
return /* @__PURE__ */ (0,
|
|
630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SectionPanel, { title, description, action, tone, children });
|
|
499
631
|
}
|
|
500
632
|
|
|
501
633
|
// src/ConsumerDashboardGrid.tsx
|
|
502
|
-
var
|
|
503
|
-
var
|
|
634
|
+
var import_core10 = require("@mantine/core");
|
|
635
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
504
636
|
function ConsumerDashboardGrid({
|
|
505
637
|
children,
|
|
506
638
|
columns = 3
|
|
507
639
|
}) {
|
|
508
|
-
return /* @__PURE__ */ (0,
|
|
640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core10.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children });
|
|
509
641
|
}
|
|
510
642
|
|
|
511
643
|
// src/ProductCard.tsx
|
|
512
|
-
var
|
|
513
|
-
var
|
|
644
|
+
var import_core11 = require("@mantine/core");
|
|
645
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
514
646
|
function ProductCard({
|
|
515
647
|
title,
|
|
516
648
|
description,
|
|
@@ -523,38 +655,38 @@ function ProductCard({
|
|
|
523
655
|
footer
|
|
524
656
|
}) {
|
|
525
657
|
const MoreIcon = GdsIcons.Menu;
|
|
526
|
-
return /* @__PURE__ */ (0,
|
|
658
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Stack, { gap: "md", children: [
|
|
527
659
|
media,
|
|
528
|
-
/* @__PURE__ */ (0,
|
|
529
|
-
/* @__PURE__ */ (0,
|
|
530
|
-
icon ? /* @__PURE__ */ (0,
|
|
531
|
-
/* @__PURE__ */ (0,
|
|
532
|
-
/* @__PURE__ */ (0,
|
|
533
|
-
description ? /* @__PURE__ */ (0,
|
|
660
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
|
|
661
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Group, { align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
662
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.ThemeIcon, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null,
|
|
663
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Stack, { gap: 4, children: [
|
|
664
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Title, { order: 4, children: title }),
|
|
665
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Text, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
|
|
534
666
|
] })
|
|
535
667
|
] }),
|
|
536
|
-
/* @__PURE__ */ (0,
|
|
537
|
-
typeof status === "string" ? /* @__PURE__ */ (0,
|
|
538
|
-
secondaryActions.length ? /* @__PURE__ */ (0,
|
|
539
|
-
/* @__PURE__ */ (0,
|
|
540
|
-
/* @__PURE__ */ (0,
|
|
541
|
-
(action) => action.href ? /* @__PURE__ */ (0,
|
|
668
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Group, { gap: "xs", align: "center", wrap: "nowrap", children: [
|
|
669
|
+
typeof status === "string" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Badge, { variant: "light", children: status }) : status,
|
|
670
|
+
secondaryActions.length ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Menu, { position: "bottom-end", withinPortal: true, children: [
|
|
671
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Menu.Target, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.ActionIcon, { variant: "subtle", "aria-label": "More actions", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MoreIcon, { size: "1rem" }) }) }),
|
|
672
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Menu.Dropdown, { children: secondaryActions.map(
|
|
673
|
+
(action) => action.href ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Menu.Item, { component: "a", href: action.href, color: action.color, children: action.label }, action.label) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Menu.Item, { onClick: action.onClick, color: action.color, children: action.label }, action.label)
|
|
542
674
|
) })
|
|
543
675
|
] }) : null
|
|
544
676
|
] })
|
|
545
677
|
] }),
|
|
546
|
-
metadata.length ? /* @__PURE__ */ (0,
|
|
547
|
-
/* @__PURE__ */ (0,
|
|
548
|
-
/* @__PURE__ */ (0,
|
|
678
|
+
metadata.length ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Stack, { gap: 6, children: metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Group, { justify: "space-between", gap: "sm", children: [
|
|
679
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Text, { size: "sm", c: "dimmed", children: item.label }),
|
|
680
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Text, { size: "sm", fw: 500, ta: "right", children: item.value })
|
|
549
681
|
] }, item.label)) }) : null,
|
|
550
|
-
primaryAction ? /* @__PURE__ */ (0,
|
|
682
|
+
primaryAction ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Group, { justify: "space-between", children: primaryAction }) : null,
|
|
551
683
|
footer
|
|
552
684
|
] }) });
|
|
553
685
|
}
|
|
554
686
|
|
|
555
687
|
// src/EditorialCard.tsx
|
|
556
|
-
var
|
|
557
|
-
var
|
|
688
|
+
var import_core12 = require("@mantine/core");
|
|
689
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
558
690
|
var tonePalette = {
|
|
559
691
|
default: {
|
|
560
692
|
accent: "violet",
|
|
@@ -574,8 +706,8 @@ var tonePalette = {
|
|
|
574
706
|
}
|
|
575
707
|
};
|
|
576
708
|
function EditorialMediaFallback({ compact }) {
|
|
577
|
-
return /* @__PURE__ */ (0,
|
|
578
|
-
|
|
709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.AspectRatio, { ratio: compact ? 16 / 10 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
710
|
+
import_core12.Box,
|
|
579
711
|
{
|
|
580
712
|
style: {
|
|
581
713
|
display: "grid",
|
|
@@ -585,7 +717,7 @@ function EditorialMediaFallback({ compact }) {
|
|
|
585
717
|
background: "var(--mantine-color-gray-0)",
|
|
586
718
|
borderRadius: "var(--mantine-radius-md)"
|
|
587
719
|
},
|
|
588
|
-
children: /* @__PURE__ */ (0,
|
|
720
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
|
|
589
721
|
}
|
|
590
722
|
) });
|
|
591
723
|
}
|
|
@@ -608,8 +740,8 @@ function EditorialCard({
|
|
|
608
740
|
const featured = variant === "featured";
|
|
609
741
|
const palette = tonePalette[tone];
|
|
610
742
|
const interactiveProps = href ? { component: "a", href } : onClick ? { component: "button", onClick, type: "button" } : {};
|
|
611
|
-
return /* @__PURE__ */ (0,
|
|
612
|
-
|
|
743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
744
|
+
import_core12.Card,
|
|
613
745
|
{
|
|
614
746
|
className: classNames?.root,
|
|
615
747
|
withBorder: true,
|
|
@@ -623,21 +755,21 @@ function EditorialCard({
|
|
|
623
755
|
cursor: href || onClick ? "pointer" : "default"
|
|
624
756
|
},
|
|
625
757
|
children: [
|
|
626
|
-
/* @__PURE__ */ (0,
|
|
627
|
-
/* @__PURE__ */ (0,
|
|
628
|
-
/* @__PURE__ */ (0,
|
|
629
|
-
/* @__PURE__ */ (0,
|
|
630
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
631
|
-
/* @__PURE__ */ (0,
|
|
758
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.Card.Section, { className: classNames?.media, children: media ?? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(EditorialMediaFallback, { compact }) }),
|
|
759
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core12.Stack, { gap: "md", p: compact ? "md" : "lg", className: classNames?.body, children: [
|
|
760
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core12.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
761
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core12.Stack, { gap: 4, flex: 1, children: [
|
|
762
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.Text, { size: "xs", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
763
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.Title, { order: compact ? 4 : 3, className: classNames?.title, children: title })
|
|
632
764
|
] }),
|
|
633
|
-
badge ? typeof badge === "string" ? /* @__PURE__ */ (0,
|
|
765
|
+
badge ? typeof badge === "string" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.Badge, { color: palette.accent, variant: "light", children: badge }) : badge : null
|
|
634
766
|
] }),
|
|
635
|
-
description ? /* @__PURE__ */ (0,
|
|
636
|
-
meta ? /* @__PURE__ */ (0,
|
|
637
|
-
href || onClick || ctaLabel ? /* @__PURE__ */ (0,
|
|
638
|
-
/* @__PURE__ */ (0,
|
|
639
|
-
/* @__PURE__ */ (0,
|
|
640
|
-
|
|
767
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.Text, { size: "sm", c: "dimmed", children: description }) : null,
|
|
768
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.Text, { size: "sm", c: "dimmed", className: classNames?.meta, children: meta }) : null,
|
|
769
|
+
href || onClick || ctaLabel ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core12.Group, { gap: 6, c: `${palette.accent}.7`, className: classNames?.action, children: [
|
|
770
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core12.Text, { fw: 600, size: "sm", children: ctaLabel }),
|
|
771
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
772
|
+
import_core12.Anchor,
|
|
641
773
|
{
|
|
642
774
|
component: "span",
|
|
643
775
|
underline: "never",
|
|
@@ -655,8 +787,8 @@ function EditorialCard({
|
|
|
655
787
|
|
|
656
788
|
// src/PublicProductCard.tsx
|
|
657
789
|
var import_react = require("react");
|
|
658
|
-
var
|
|
659
|
-
var
|
|
790
|
+
var import_core13 = require("@mantine/core");
|
|
791
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
660
792
|
var stateConfig = {
|
|
661
793
|
available: { label: "Available", color: "teal" },
|
|
662
794
|
limited: { label: "Limited", color: "yellow" },
|
|
@@ -673,29 +805,29 @@ function enhanceAction(action, disabled) {
|
|
|
673
805
|
});
|
|
674
806
|
}
|
|
675
807
|
function ImageFallback({ compact }) {
|
|
676
|
-
return /* @__PURE__ */ (0,
|
|
677
|
-
|
|
808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.AspectRatio, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
809
|
+
import_core13.ThemeIcon,
|
|
678
810
|
{
|
|
679
811
|
size: "100%",
|
|
680
812
|
radius: "md",
|
|
681
813
|
variant: "light",
|
|
682
814
|
color: "gray",
|
|
683
815
|
"aria-label": "No product image available",
|
|
684
|
-
children: /* @__PURE__ */ (0,
|
|
816
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
|
|
685
817
|
}
|
|
686
818
|
) });
|
|
687
819
|
}
|
|
688
820
|
function LoadingCard({ compact }) {
|
|
689
|
-
return /* @__PURE__ */ (0,
|
|
690
|
-
/* @__PURE__ */ (0,
|
|
691
|
-
/* @__PURE__ */ (0,
|
|
692
|
-
/* @__PURE__ */ (0,
|
|
693
|
-
/* @__PURE__ */ (0,
|
|
694
|
-
/* @__PURE__ */ (0,
|
|
821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: "md", children: [
|
|
822
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.AspectRatio, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Skeleton, { radius: "md" }) }),
|
|
823
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: "xs", children: [
|
|
824
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Skeleton, { height: 20, radius: "sm", width: "70%" }),
|
|
825
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Skeleton, { height: 14, radius: "sm", width: "100%" }),
|
|
826
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Skeleton, { height: 14, radius: "sm", width: "85%" })
|
|
695
827
|
] }),
|
|
696
|
-
/* @__PURE__ */ (0,
|
|
697
|
-
/* @__PURE__ */ (0,
|
|
698
|
-
/* @__PURE__ */ (0,
|
|
828
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Group, { justify: "space-between", align: "center", children: [
|
|
829
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Skeleton, { height: 18, radius: "sm", width: 72 }),
|
|
830
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Skeleton, { height: 36, radius: "md", width: 120 })
|
|
699
831
|
] })
|
|
700
832
|
] }) });
|
|
701
833
|
}
|
|
@@ -718,7 +850,7 @@ function PublicProductCard({
|
|
|
718
850
|
disabled = false
|
|
719
851
|
}) {
|
|
720
852
|
if (loading) {
|
|
721
|
-
return /* @__PURE__ */ (0,
|
|
853
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(LoadingCard, { compact });
|
|
722
854
|
}
|
|
723
855
|
const isActionDisabled = disabled || state === "sold-out";
|
|
724
856
|
const resolvedPrimaryAction = enhanceAction(primaryAction, isActionDisabled);
|
|
@@ -731,44 +863,44 @@ function PublicProductCard({
|
|
|
731
863
|
const pickupHelper = helperKind === "pickup" ? helperText : pickupNote;
|
|
732
864
|
const inventoryHelper = helperKind === "inventory" ? helperText : inventoryNote;
|
|
733
865
|
const hasSupportingRegion = Boolean(price || supportingHelper || pickupHelper || inventoryHelper);
|
|
734
|
-
return /* @__PURE__ */ (0,
|
|
735
|
-
image ?? /* @__PURE__ */ (0,
|
|
736
|
-
/* @__PURE__ */ (0,
|
|
737
|
-
/* @__PURE__ */ (0,
|
|
738
|
-
/* @__PURE__ */ (0,
|
|
739
|
-
description ? /* @__PURE__ */ (0,
|
|
866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: compact ? "sm" : "md", children: [
|
|
867
|
+
image ?? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ImageFallback, { compact }),
|
|
868
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", gap: "sm", children: [
|
|
869
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
|
|
870
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Title, { order: compact ? 5 : 4, lineClamp: 2, children: title }),
|
|
871
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
740
872
|
] }),
|
|
741
|
-
/* @__PURE__ */ (0,
|
|
873
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
|
|
742
874
|
] }),
|
|
743
|
-
hasSupportingRegion ? /* @__PURE__ */ (0,
|
|
744
|
-
/* @__PURE__ */ (0,
|
|
745
|
-
price ? /* @__PURE__ */ (0,
|
|
746
|
-
supportingHelper ? /* @__PURE__ */ (0,
|
|
875
|
+
hasSupportingRegion ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Group, { justify: "space-between", align: "flex-end", gap: "sm", wrap: "nowrap", children: [
|
|
876
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: 2, style: { minWidth: 0, flex: 1 }, children: [
|
|
877
|
+
price ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { fw: 700, size: compact ? "md" : "lg", children: price }) : null,
|
|
878
|
+
supportingHelper ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "xs", c: "dimmed", children: supportingHelper }) : null
|
|
747
879
|
] }),
|
|
748
880
|
resolvedPrimaryAction
|
|
749
|
-
] }) : resolvedPrimaryAction ? /* @__PURE__ */ (0,
|
|
750
|
-
pickupHelper || inventoryHelper || metadata.length ? /* @__PURE__ */ (0,
|
|
751
|
-
pickupHelper ? /* @__PURE__ */ (0,
|
|
752
|
-
/* @__PURE__ */ (0,
|
|
753
|
-
/* @__PURE__ */ (0,
|
|
881
|
+
] }) : resolvedPrimaryAction ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Group, { justify: "flex-end", children: resolvedPrimaryAction }) : null,
|
|
882
|
+
pickupHelper || inventoryHelper || metadata.length ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: 6, children: [
|
|
883
|
+
pickupHelper ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Group, { justify: "space-between", gap: "sm", children: [
|
|
884
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", c: "dimmed", children: "Pickup" }),
|
|
885
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", fw: 500, ta: "right", children: pickupHelper })
|
|
754
886
|
] }) : null,
|
|
755
|
-
inventoryHelper ? /* @__PURE__ */ (0,
|
|
756
|
-
/* @__PURE__ */ (0,
|
|
757
|
-
/* @__PURE__ */ (0,
|
|
887
|
+
inventoryHelper ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Group, { justify: "space-between", gap: "sm", children: [
|
|
888
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", c: "dimmed", children: "Availability" }),
|
|
889
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", fw: 500, ta: "right", children: inventoryHelper })
|
|
758
890
|
] }) : null,
|
|
759
|
-
metadata.map((item) => /* @__PURE__ */ (0,
|
|
760
|
-
/* @__PURE__ */ (0,
|
|
761
|
-
/* @__PURE__ */ (0,
|
|
891
|
+
metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Group, { justify: "space-between", gap: "sm", children: [
|
|
892
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", c: "dimmed", children: item.label }),
|
|
893
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", fw: 500, ta: "right", children: item.value })
|
|
762
894
|
] }, item.label))
|
|
763
895
|
] }) : null,
|
|
764
|
-
resolvedSecondaryAction ? /* @__PURE__ */ (0,
|
|
896
|
+
resolvedSecondaryAction ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Group, { justify: "flex-end", children: resolvedSecondaryAction }) : null
|
|
765
897
|
] }) });
|
|
766
898
|
}
|
|
767
899
|
|
|
768
900
|
// src/PublicFoodCard.tsx
|
|
769
901
|
var import_react2 = require("react");
|
|
770
|
-
var
|
|
771
|
-
var
|
|
902
|
+
var import_core14 = require("@mantine/core");
|
|
903
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
772
904
|
var ratioMap = {
|
|
773
905
|
square: 1,
|
|
774
906
|
dish: 4 / 3,
|
|
@@ -797,19 +929,19 @@ function enhanceAction2(action, disabled) {
|
|
|
797
929
|
});
|
|
798
930
|
}
|
|
799
931
|
function FoodImageFallback({ mediaRatio }) {
|
|
800
|
-
return /* @__PURE__ */ (0,
|
|
932
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.AspectRatio, { ratio: ratioMap[mediaRatio], children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.ThemeIcon, { size: "100%", radius: "md", variant: "light", color: "gray", "aria-label": "No food image available", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Gallery, { size: "2rem" }) }) });
|
|
801
933
|
}
|
|
802
934
|
function LoadingFoodCard({ mediaRatio }) {
|
|
803
|
-
return /* @__PURE__ */ (0,
|
|
804
|
-
/* @__PURE__ */ (0,
|
|
805
|
-
/* @__PURE__ */ (0,
|
|
806
|
-
/* @__PURE__ */ (0,
|
|
807
|
-
/* @__PURE__ */ (0,
|
|
808
|
-
/* @__PURE__ */ (0,
|
|
935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Stack, { gap: "md", children: [
|
|
936
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.AspectRatio, { ratio: ratioMap[mediaRatio], children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Skeleton, { radius: "md" }) }),
|
|
937
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Stack, { gap: "xs", children: [
|
|
938
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Skeleton, { height: 20, radius: "sm", width: "72%" }),
|
|
939
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Skeleton, { height: 14, radius: "sm", width: "96%" }),
|
|
940
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Skeleton, { height: 14, radius: "sm", width: "78%" })
|
|
809
941
|
] }),
|
|
810
|
-
/* @__PURE__ */ (0,
|
|
811
|
-
/* @__PURE__ */ (0,
|
|
812
|
-
/* @__PURE__ */ (0,
|
|
942
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Group, { justify: "space-between", align: "center", children: [
|
|
943
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Skeleton, { height: 18, radius: "sm", width: 96 }),
|
|
944
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Skeleton, { height: 36, radius: "md", width: 112 })
|
|
813
945
|
] })
|
|
814
946
|
] }) });
|
|
815
947
|
}
|
|
@@ -833,54 +965,54 @@ function PublicFoodCard({
|
|
|
833
965
|
disabled = false
|
|
834
966
|
}) {
|
|
835
967
|
if (loading) {
|
|
836
|
-
return /* @__PURE__ */ (0,
|
|
968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(LoadingFoodCard, { mediaRatio });
|
|
837
969
|
}
|
|
838
970
|
const stateBadge = stateConfig2[state];
|
|
839
971
|
const isActionDisabled = disabled || state === "sold-out" || state === "coming-soon";
|
|
840
972
|
const resolvedPrimaryAction = enhanceAction2(primaryAction, isActionDisabled);
|
|
841
973
|
const resolvedSecondaryAction = enhanceAction2(secondaryAction, disabled);
|
|
842
|
-
return /* @__PURE__ */ (0,
|
|
843
|
-
image ?? /* @__PURE__ */ (0,
|
|
844
|
-
markers.length > 0 || quantityHint ? /* @__PURE__ */ (0,
|
|
845
|
-
/* @__PURE__ */ (0,
|
|
846
|
-
quantityHint ? /* @__PURE__ */ (0,
|
|
974
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Stack, { gap: "md", children: [
|
|
975
|
+
image ?? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FoodImageFallback, { mediaRatio }),
|
|
976
|
+
markers.length > 0 || quantityHint ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Group, { justify: "space-between", align: "center", wrap: "wrap", gap: "xs", children: [
|
|
977
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Group, { gap: "xs", wrap: "wrap", children: markers.map((marker) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Badge, { variant: "light", color: markerToneMap[marker.tone ?? "default"], children: marker.label }, marker.id)) }),
|
|
978
|
+
quantityHint ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "xs", fw: 600, c: "dimmed", children: quantityHint }) : null
|
|
847
979
|
] }) : null,
|
|
848
|
-
/* @__PURE__ */ (0,
|
|
849
|
-
/* @__PURE__ */ (0,
|
|
850
|
-
/* @__PURE__ */ (0,
|
|
851
|
-
description ? /* @__PURE__ */ (0,
|
|
980
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
981
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Stack, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
|
|
982
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Title, { order: 4, lineClamp: 2, children: title }),
|
|
983
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
|
|
852
984
|
] }),
|
|
853
|
-
/* @__PURE__ */ (0,
|
|
985
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
|
|
854
986
|
] }),
|
|
855
|
-
/* @__PURE__ */ (0,
|
|
856
|
-
/* @__PURE__ */ (0,
|
|
857
|
-
price ? /* @__PURE__ */ (0,
|
|
858
|
-
priceNote ? /* @__PURE__ */ (0,
|
|
859
|
-
helperText ? /* @__PURE__ */ (0,
|
|
987
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Group, { justify: "space-between", align: "flex-end", gap: "sm", wrap: "nowrap", children: [
|
|
988
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Stack, { gap: 2, style: { minWidth: 0, flex: 1 }, children: [
|
|
989
|
+
price ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { fw: 800, size: "lg", children: price }) : null,
|
|
990
|
+
priceNote ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "xs", c: "dimmed", children: priceNote }) : null,
|
|
991
|
+
helperText ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "sm", c: "dimmed", children: helperText }) : null
|
|
860
992
|
] }),
|
|
861
993
|
resolvedPrimaryAction
|
|
862
994
|
] }),
|
|
863
|
-
pickupNote || freshnessNote || metadata.length > 0 ? /* @__PURE__ */ (0,
|
|
864
|
-
pickupNote ? /* @__PURE__ */ (0,
|
|
865
|
-
/* @__PURE__ */ (0,
|
|
866
|
-
/* @__PURE__ */ (0,
|
|
995
|
+
pickupNote || freshnessNote || metadata.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Stack, { gap: 6, children: [
|
|
996
|
+
pickupNote ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
997
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "sm", c: "dimmed", children: "Pickup" }),
|
|
998
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "sm", fw: 500, ta: "right", children: pickupNote })
|
|
867
999
|
] }) : null,
|
|
868
|
-
freshnessNote ? /* @__PURE__ */ (0,
|
|
869
|
-
/* @__PURE__ */ (0,
|
|
870
|
-
/* @__PURE__ */ (0,
|
|
1000
|
+
freshnessNote ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
1001
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "sm", c: "dimmed", children: "Freshness" }),
|
|
1002
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "sm", fw: 500, ta: "right", children: freshnessNote })
|
|
871
1003
|
] }) : null,
|
|
872
|
-
metadata.map((item) => /* @__PURE__ */ (0,
|
|
1004
|
+
metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core14.Group, { gap: "xs", wrap: "nowrap", children: [
|
|
873
1005
|
item.icon,
|
|
874
|
-
/* @__PURE__ */ (0,
|
|
1006
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Text, { size: "sm", c: "dimmed", children: item.label })
|
|
875
1007
|
] }) }, item.id))
|
|
876
1008
|
] }) : null,
|
|
877
|
-
resolvedSecondaryAction ? /* @__PURE__ */ (0,
|
|
1009
|
+
resolvedSecondaryAction ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Group, { justify: "flex-end", children: resolvedSecondaryAction }) : null
|
|
878
1010
|
] }) });
|
|
879
1011
|
}
|
|
880
1012
|
|
|
881
1013
|
// src/FoodMenuSection.tsx
|
|
882
|
-
var
|
|
883
|
-
var
|
|
1014
|
+
var import_core15 = require("@mantine/core");
|
|
1015
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
884
1016
|
function FoodMenuSection({
|
|
885
1017
|
title,
|
|
886
1018
|
description,
|
|
@@ -895,7 +1027,7 @@ function FoodMenuSection({
|
|
|
895
1027
|
const normalizedCategories = (categories ?? []).filter(Boolean);
|
|
896
1028
|
const visibleCategories = showEmptyCategories ? normalizedCategories : normalizedCategories.filter((category) => category.items.length > 0);
|
|
897
1029
|
if (!visibleCategories.length) {
|
|
898
|
-
return emptyState ? /* @__PURE__ */ (0,
|
|
1030
|
+
return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
899
1031
|
EmptyState,
|
|
900
1032
|
{
|
|
901
1033
|
title: "No active menu available",
|
|
@@ -903,23 +1035,23 @@ function FoodMenuSection({
|
|
|
903
1035
|
}
|
|
904
1036
|
);
|
|
905
1037
|
}
|
|
906
|
-
return /* @__PURE__ */ (0,
|
|
907
|
-
/* @__PURE__ */ (0,
|
|
908
|
-
/* @__PURE__ */ (0,
|
|
909
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
910
|
-
/* @__PURE__ */ (0,
|
|
911
|
-
description ? /* @__PURE__ */ (0,
|
|
912
|
-
sectionNote ? /* @__PURE__ */ (0,
|
|
1038
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Box, { component: "section", "aria-label": typeof title === "string" ? title : "Food menu section", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core15.Stack, { gap: "xl", children: [
|
|
1039
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core15.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
1040
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core15.Stack, { gap: 4, children: [
|
|
1041
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Text, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
1042
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Title, { order: 2, children: title }),
|
|
1043
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Text, { size: "sm", c: "dimmed", maw: 760, children: description }) : null,
|
|
1044
|
+
sectionNote ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Text, { size: "sm", c: "dimmed", children: sectionNote }) : null
|
|
913
1045
|
] }),
|
|
914
1046
|
action
|
|
915
1047
|
] }),
|
|
916
|
-
/* @__PURE__ */ (0,
|
|
917
|
-
/* @__PURE__ */ (0,
|
|
918
|
-
/* @__PURE__ */ (0,
|
|
919
|
-
category.description ? /* @__PURE__ */ (0,
|
|
920
|
-
category.helperNote ? /* @__PURE__ */ (0,
|
|
1048
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Stack, { gap: "xl", children: visibleCategories.map((category) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core15.Stack, { gap: "md", children: [
|
|
1049
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core15.Stack, { gap: 4, children: [
|
|
1050
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Title, { order: 3, children: category.title }),
|
|
1051
|
+
category.description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Text, { size: "sm", c: "dimmed", children: category.description }) : null,
|
|
1052
|
+
category.helperNote ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.Text, { size: "sm", c: "dimmed", children: category.helperNote }) : null
|
|
921
1053
|
] }),
|
|
922
|
-
category.items.length ? /* @__PURE__ */ (0,
|
|
1054
|
+
category.items.length ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core15.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: category.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PublicFoodCard, { ...item }, item.id)) }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
923
1055
|
EmptyState,
|
|
924
1056
|
{
|
|
925
1057
|
title: "No items in this category",
|
|
@@ -931,8 +1063,8 @@ function FoodMenuSection({
|
|
|
931
1063
|
}
|
|
932
1064
|
|
|
933
1065
|
// src/ListingCard.tsx
|
|
934
|
-
var
|
|
935
|
-
var
|
|
1066
|
+
var import_core16 = require("@mantine/core");
|
|
1067
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
936
1068
|
var ratioMap2 = {
|
|
937
1069
|
"1:1": 1,
|
|
938
1070
|
"4:3": 4 / 3,
|
|
@@ -945,15 +1077,15 @@ var toneColorMap = {
|
|
|
945
1077
|
muted: "gray"
|
|
946
1078
|
};
|
|
947
1079
|
function ListingImageFallback({ mediaRatio }) {
|
|
948
|
-
return /* @__PURE__ */ (0,
|
|
949
|
-
|
|
1080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.AspectRatio, { ratio: ratioMap2[mediaRatio], children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1081
|
+
import_core16.ThemeIcon,
|
|
950
1082
|
{
|
|
951
1083
|
size: "100%",
|
|
952
1084
|
radius: "md",
|
|
953
1085
|
variant: "light",
|
|
954
1086
|
color: "gray",
|
|
955
1087
|
"aria-label": "No listing image available",
|
|
956
|
-
children: /* @__PURE__ */ (0,
|
|
1088
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GdsIcons.Gallery, { size: "2rem" })
|
|
957
1089
|
}
|
|
958
1090
|
) });
|
|
959
1091
|
}
|
|
@@ -962,8 +1094,8 @@ function ListingAffordance({ affordance }) {
|
|
|
962
1094
|
const Icon = config.icon;
|
|
963
1095
|
const label = affordance.ariaLabel ?? getSemanticActionLabel(affordance.action);
|
|
964
1096
|
if (affordance.href) {
|
|
965
|
-
return /* @__PURE__ */ (0,
|
|
966
|
-
|
|
1097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1098
|
+
import_core16.ActionIcon,
|
|
967
1099
|
{
|
|
968
1100
|
component: "a",
|
|
969
1101
|
href: affordance.href,
|
|
@@ -971,19 +1103,19 @@ function ListingAffordance({ affordance }) {
|
|
|
971
1103
|
size: "lg",
|
|
972
1104
|
"aria-label": label,
|
|
973
1105
|
disabled: affordance.disabled,
|
|
974
|
-
children: /* @__PURE__ */ (0,
|
|
1106
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { size: "1rem", stroke: 1.75 })
|
|
975
1107
|
}
|
|
976
1108
|
);
|
|
977
1109
|
}
|
|
978
|
-
return /* @__PURE__ */ (0,
|
|
979
|
-
|
|
1110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1111
|
+
import_core16.ActionIcon,
|
|
980
1112
|
{
|
|
981
1113
|
variant: "subtle",
|
|
982
1114
|
size: "lg",
|
|
983
1115
|
"aria-label": label,
|
|
984
1116
|
onClick: affordance.onClick,
|
|
985
1117
|
disabled: affordance.disabled,
|
|
986
|
-
children: /* @__PURE__ */ (0,
|
|
1118
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { size: "1rem", stroke: 1.75 })
|
|
987
1119
|
}
|
|
988
1120
|
);
|
|
989
1121
|
}
|
|
@@ -1002,29 +1134,29 @@ function ListingCard({
|
|
|
1002
1134
|
shareAction,
|
|
1003
1135
|
compact = false
|
|
1004
1136
|
}) {
|
|
1005
|
-
const titleContent = href && typeof title === "string" ? /* @__PURE__ */ (0,
|
|
1006
|
-
return /* @__PURE__ */ (0,
|
|
1007
|
-
image ?? /* @__PURE__ */ (0,
|
|
1008
|
-
featured || sponsoredDisclosure ? /* @__PURE__ */ (0,
|
|
1009
|
-
featured ? /* @__PURE__ */ (0,
|
|
1010
|
-
sponsoredDisclosure ? /* @__PURE__ */ (0,
|
|
1137
|
+
const titleContent = href && typeof title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { component: "a", href, inherit: true, td: "none", children: title }) : title;
|
|
1138
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Stack, { gap: compact ? "sm" : "md", children: [
|
|
1139
|
+
image ?? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ListingImageFallback, { mediaRatio }),
|
|
1140
|
+
featured || sponsoredDisclosure ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { justify: "space-between", gap: "sm", wrap: "wrap", children: [
|
|
1141
|
+
featured ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Badge, { variant: "light", color: "violet", children: "Featured" }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", {}),
|
|
1142
|
+
sponsoredDisclosure ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { size: "xs", c: "dimmed", children: sponsoredDisclosure }) : null
|
|
1011
1143
|
] }) : null,
|
|
1012
|
-
/* @__PURE__ */ (0,
|
|
1013
|
-
/* @__PURE__ */ (0,
|
|
1014
|
-
description ? /* @__PURE__ */ (0,
|
|
1144
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Stack, { gap: 4, children: [
|
|
1145
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Title, { order: compact ? 5 : 4, lineClamp: 2, children: titleContent }),
|
|
1146
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
1015
1147
|
] }),
|
|
1016
|
-
metadata.length ? /* @__PURE__ */ (0,
|
|
1017
|
-
/* @__PURE__ */ (0,
|
|
1148
|
+
metadata.length ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Stack, { gap: "xs", children: metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
1149
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { gap: "xs", wrap: "nowrap", style: { minWidth: 0, flex: 1 }, children: [
|
|
1018
1150
|
item.icon,
|
|
1019
|
-
/* @__PURE__ */ (0,
|
|
1151
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { size: "sm", c: item.tone ? toneColorMap[item.tone] : "dimmed", lineClamp: 1, children: item.label })
|
|
1020
1152
|
] }),
|
|
1021
|
-
item.value ? /* @__PURE__ */ (0,
|
|
1153
|
+
item.value ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { size: "sm", fw: 500, ta: "right", children: item.value }) : null
|
|
1022
1154
|
] }, item.id)) }) : null,
|
|
1023
|
-
/* @__PURE__ */ (0,
|
|
1024
|
-
/* @__PURE__ */ (0,
|
|
1025
|
-
/* @__PURE__ */ (0,
|
|
1026
|
-
saveAction ? /* @__PURE__ */ (0,
|
|
1027
|
-
shareAction ? /* @__PURE__ */ (0,
|
|
1155
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { justify: "space-between", align: "center", gap: "sm", wrap: "wrap", children: [
|
|
1156
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Stack, { gap: 2, style: { minWidth: 0, flex: 1 }, children: price ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { fw: 700, size: compact ? "md" : "lg", children: price }) : null }),
|
|
1157
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { gap: "xs", wrap: "nowrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
1158
|
+
saveAction ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ListingAffordance, { affordance: saveAction }) : null,
|
|
1159
|
+
shareAction ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ListingAffordance, { affordance: shareAction }) : null,
|
|
1028
1160
|
primaryAction
|
|
1029
1161
|
] })
|
|
1030
1162
|
] })
|
|
@@ -1032,11 +1164,11 @@ function ListingCard({
|
|
|
1032
1164
|
}
|
|
1033
1165
|
|
|
1034
1166
|
// src/BrowseSurface.tsx
|
|
1035
|
-
var
|
|
1167
|
+
var import_core19 = require("@mantine/core");
|
|
1036
1168
|
|
|
1037
1169
|
// src/DataToolbar.tsx
|
|
1038
|
-
var
|
|
1039
|
-
var
|
|
1170
|
+
var import_core17 = require("@mantine/core");
|
|
1171
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1040
1172
|
function DataToolbar({
|
|
1041
1173
|
searchSlot,
|
|
1042
1174
|
filterSlot,
|
|
@@ -1045,20 +1177,20 @@ function DataToolbar({
|
|
|
1045
1177
|
createAction,
|
|
1046
1178
|
activeFilters = []
|
|
1047
1179
|
}) {
|
|
1048
|
-
return /* @__PURE__ */ (0,
|
|
1049
|
-
/* @__PURE__ */ (0,
|
|
1050
|
-
/* @__PURE__ */ (0,
|
|
1180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core17.Stack, { gap: "sm", children: [
|
|
1181
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core17.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
1182
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core17.Group, { flex: 1, align: "flex-start", gap: "sm", children: [
|
|
1051
1183
|
searchSlot,
|
|
1052
1184
|
filterSlot,
|
|
1053
1185
|
sortSlot
|
|
1054
1186
|
] }),
|
|
1055
|
-
/* @__PURE__ */ (0,
|
|
1187
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core17.Group, { gap: "sm", children: [
|
|
1056
1188
|
resetAction,
|
|
1057
1189
|
createAction
|
|
1058
1190
|
] })
|
|
1059
1191
|
] }),
|
|
1060
|
-
activeFilters.length ? /* @__PURE__ */ (0,
|
|
1061
|
-
|
|
1192
|
+
activeFilters.length ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core17.Group, { gap: "xs", children: activeFilters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1193
|
+
import_core17.Badge,
|
|
1062
1194
|
{
|
|
1063
1195
|
variant: "light",
|
|
1064
1196
|
rightSection: filter.onRemove ? "\xD7" : void 0,
|
|
@@ -1072,17 +1204,17 @@ function DataToolbar({
|
|
|
1072
1204
|
}
|
|
1073
1205
|
|
|
1074
1206
|
// src/StateBlock.tsx
|
|
1075
|
-
var
|
|
1076
|
-
var
|
|
1207
|
+
var import_core18 = require("@mantine/core");
|
|
1208
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1077
1209
|
var variantConfig = {
|
|
1078
|
-
loading: { color: "violet", icon: /* @__PURE__ */ (0,
|
|
1079
|
-
empty: { color: "gray", icon: /* @__PURE__ */ (0,
|
|
1080
|
-
error: { color: "red", icon: /* @__PURE__ */ (0,
|
|
1081
|
-
permission: { color: "orange", icon: /* @__PURE__ */ (0,
|
|
1082
|
-
disabled: { color: "gray", icon: /* @__PURE__ */ (0,
|
|
1083
|
-
success: { color: "teal", icon: /* @__PURE__ */ (0,
|
|
1084
|
-
info: { color: "blue", icon: /* @__PURE__ */ (0,
|
|
1085
|
-
"not-enough-data": { color: "yellow", icon: /* @__PURE__ */ (0,
|
|
1210
|
+
loading: { color: "violet", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core18.Loader, { size: "sm" }) },
|
|
1211
|
+
empty: { color: "gray", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GdsIcons.Inbox, { size: "1.1rem" }) },
|
|
1212
|
+
error: { color: "red", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GdsIcons.Danger, { size: "1.1rem" }) },
|
|
1213
|
+
permission: { color: "orange", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GdsIcons.Verify, { size: "1.1rem" }) },
|
|
1214
|
+
disabled: { color: "gray", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GdsIcons.Toggle, { size: "1.1rem" }) },
|
|
1215
|
+
success: { color: "teal", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GdsIcons.Success, { size: "1.1rem" }) },
|
|
1216
|
+
info: { color: "blue", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GdsIcons.Info, { size: "1.1rem" }) },
|
|
1217
|
+
"not-enough-data": { color: "yellow", icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GdsIcons.Analytics, { size: "1.1rem" }) }
|
|
1086
1218
|
};
|
|
1087
1219
|
function StateBlock({
|
|
1088
1220
|
variant,
|
|
@@ -1093,8 +1225,8 @@ function StateBlock({
|
|
|
1093
1225
|
compact = false
|
|
1094
1226
|
}) {
|
|
1095
1227
|
const config = variantConfig[variant];
|
|
1096
|
-
return /* @__PURE__ */ (0,
|
|
1097
|
-
|
|
1228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
1229
|
+
import_core18.Stack,
|
|
1098
1230
|
{
|
|
1099
1231
|
align: compact ? "flex-start" : "center",
|
|
1100
1232
|
justify: "center",
|
|
@@ -1102,10 +1234,10 @@ function StateBlock({
|
|
|
1102
1234
|
py: compact ? "md" : "xl",
|
|
1103
1235
|
ta: compact ? "left" : "center",
|
|
1104
1236
|
children: [
|
|
1105
|
-
/* @__PURE__ */ (0,
|
|
1106
|
-
/* @__PURE__ */ (0,
|
|
1107
|
-
/* @__PURE__ */ (0,
|
|
1108
|
-
description ? /* @__PURE__ */ (0,
|
|
1237
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core18.ThemeIcon, { variant: "light", color: config.color, size: compact ? "lg" : "xl", radius: "xl", children: icon ?? config.icon }),
|
|
1238
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core18.Stack, { gap: 6, align: compact ? "flex-start" : "center", children: [
|
|
1239
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core18.Title, { order: compact ? 4 : 3, children: title }),
|
|
1240
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core18.Text, { c: "dimmed", maw: compact ? void 0 : 480, children: description }) : null
|
|
1109
1241
|
] }),
|
|
1110
1242
|
action
|
|
1111
1243
|
]
|
|
@@ -1114,7 +1246,7 @@ function StateBlock({
|
|
|
1114
1246
|
}
|
|
1115
1247
|
|
|
1116
1248
|
// src/BrowseSurface.tsx
|
|
1117
|
-
var
|
|
1249
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1118
1250
|
function BrowseSurface({
|
|
1119
1251
|
eyebrow,
|
|
1120
1252
|
title,
|
|
@@ -1148,22 +1280,22 @@ function BrowseSurface({
|
|
|
1148
1280
|
}));
|
|
1149
1281
|
let body = content;
|
|
1150
1282
|
if (loading) {
|
|
1151
|
-
body = /* @__PURE__ */ (0,
|
|
1283
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StateBlock, { variant: "loading", title: loadingTitle, description: loadingDescription, compact: true });
|
|
1152
1284
|
} else if (error) {
|
|
1153
|
-
body = /* @__PURE__ */ (0,
|
|
1285
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StateBlock, { variant: "error", title: errorTitle, description: error, action: errorAction ?? emptyAction, compact: true });
|
|
1154
1286
|
} else if (empty) {
|
|
1155
|
-
body = /* @__PURE__ */ (0,
|
|
1287
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, action: emptyAction, compact: true });
|
|
1156
1288
|
}
|
|
1157
|
-
return /* @__PURE__ */ (0,
|
|
1158
|
-
/* @__PURE__ */ (0,
|
|
1159
|
-
/* @__PURE__ */ (0,
|
|
1160
|
-
/* @__PURE__ */ (0,
|
|
1161
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
1162
|
-
/* @__PURE__ */ (0,
|
|
1163
|
-
description ? /* @__PURE__ */ (0,
|
|
1289
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { gap: "lg", children: [
|
|
1290
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Paper, { withBorder: true, radius: "xl", p: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { gap: "lg", children: [
|
|
1291
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Group, { justify: "space-between", align: "flex-start", gap: "md", children: [
|
|
1292
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { gap: "xs", maw: 760, children: [
|
|
1293
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Text, { size: "xs", fw: 700, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.18em" }, children: eyebrow }) : null,
|
|
1294
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Title, { order: 1, children: title }),
|
|
1295
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Text, { size: "lg", c: "dimmed", children: description }) : null
|
|
1164
1296
|
] }),
|
|
1165
|
-
/* @__PURE__ */ (0,
|
|
1166
|
-
typeof resultCount === "number" ? /* @__PURE__ */ (0,
|
|
1297
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { align: "flex-end", gap: "xs", children: [
|
|
1298
|
+
typeof resultCount === "number" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Badge, { size: "lg", radius: "xl", variant: "light", color: "violet", children: [
|
|
1167
1299
|
resultCount,
|
|
1168
1300
|
" ",
|
|
1169
1301
|
resultLabel
|
|
@@ -1171,10 +1303,10 @@ function BrowseSurface({
|
|
|
1171
1303
|
primaryControls
|
|
1172
1304
|
] })
|
|
1173
1305
|
] }),
|
|
1174
|
-
scopeOptions.length ? /* @__PURE__ */ (0,
|
|
1175
|
-
/* @__PURE__ */ (0,
|
|
1176
|
-
/* @__PURE__ */ (0,
|
|
1177
|
-
|
|
1306
|
+
scopeOptions.length ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { gap: "xs", children: [
|
|
1307
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Text, { size: "sm", fw: 600, c: "dimmed", children: scopeLabel }),
|
|
1308
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Group, { gap: "xs", wrap: "wrap", children: scopeOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1309
|
+
import_core19.Button,
|
|
1178
1310
|
{
|
|
1179
1311
|
variant: option.active ? "filled" : "default",
|
|
1180
1312
|
color: option.active ? "violet" : "gray",
|
|
@@ -1186,30 +1318,30 @@ function BrowseSurface({
|
|
|
1186
1318
|
option.id
|
|
1187
1319
|
)) })
|
|
1188
1320
|
] }) : null,
|
|
1189
|
-
locationControls ? /* @__PURE__ */ (0,
|
|
1190
|
-
/* @__PURE__ */ (0,
|
|
1321
|
+
locationControls ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { gap: "xs", children: [
|
|
1322
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Text, { size: "sm", fw: 600, c: "dimmed", children: "Location" }),
|
|
1191
1323
|
locationControls
|
|
1192
1324
|
] }) : null,
|
|
1193
|
-
toolbar || sortControl ? /* @__PURE__ */ (0,
|
|
1194
|
-
toolbar ? /* @__PURE__ */ (0,
|
|
1325
|
+
toolbar || sortControl ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.SimpleGrid, { cols: { base: 1, lg: sortControl ? 2 : 1 }, spacing: "md", children: [
|
|
1326
|
+
toolbar ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1195
1327
|
DataToolbar,
|
|
1196
1328
|
{
|
|
1197
1329
|
...toolbar,
|
|
1198
1330
|
activeFilters: toolbarFilters.length ? toolbarFilters : toolbar.fallbackActiveFilters
|
|
1199
1331
|
}
|
|
1200
|
-
) : /* @__PURE__ */ (0,
|
|
1201
|
-
sortControl ? /* @__PURE__ */ (0,
|
|
1202
|
-
/* @__PURE__ */ (0,
|
|
1332
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Box, {}),
|
|
1333
|
+
sortControl ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { gap: "xs", align: "stretch", children: [
|
|
1334
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Text, { size: "sm", fw: 600, c: "dimmed", children: "Sort" }),
|
|
1203
1335
|
sortControl
|
|
1204
1336
|
] }) : null
|
|
1205
1337
|
] }) : null,
|
|
1206
|
-
mobileFilters ? /* @__PURE__ */ (0,
|
|
1207
|
-
/* @__PURE__ */ (0,
|
|
1338
|
+
mobileFilters ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core19.Stack, { hiddenFrom: "lg", gap: "xs", children: [
|
|
1339
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Text, { size: "sm", fw: 600, c: "dimmed", children: "Filters" }),
|
|
1208
1340
|
mobileFilters
|
|
1209
1341
|
] }) : null,
|
|
1210
|
-
filterDrawer ? /* @__PURE__ */ (0,
|
|
1211
|
-
activeFilters.length ? /* @__PURE__ */ (0,
|
|
1212
|
-
|
|
1342
|
+
filterDrawer ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Box, { hiddenFrom: "lg", children: filterDrawer }) : null,
|
|
1343
|
+
activeFilters.length ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core19.Group, { gap: "xs", wrap: "wrap", children: activeFilters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1344
|
+
import_core19.Badge,
|
|
1213
1345
|
{
|
|
1214
1346
|
variant: "light",
|
|
1215
1347
|
color: "violet",
|
|
@@ -1225,76 +1357,9 @@ function BrowseSurface({
|
|
|
1225
1357
|
] });
|
|
1226
1358
|
}
|
|
1227
1359
|
|
|
1228
|
-
// src/AccentPanel.tsx
|
|
1229
|
-
var import_core17 = require("@mantine/core");
|
|
1230
|
-
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1231
|
-
var toneStyles = {
|
|
1232
|
-
gray: {
|
|
1233
|
-
bg: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-gray-7) 88%, black))",
|
|
1234
|
-
border: "light-dark(var(--mantine-color-gray-2), color-mix(in srgb, var(--mantine-color-gray-4) 70%, transparent))",
|
|
1235
|
-
color: "light-dark(var(--mantine-color-gray-9), var(--mantine-color-gray-0))"
|
|
1236
|
-
},
|
|
1237
|
-
violet: {
|
|
1238
|
-
bg: "light-dark(var(--mantine-color-violet-0), color-mix(in srgb, var(--mantine-color-violet-9) 70%, black))",
|
|
1239
|
-
border: "light-dark(var(--mantine-color-violet-2), color-mix(in srgb, var(--mantine-color-violet-4) 75%, transparent))",
|
|
1240
|
-
color: "light-dark(var(--mantine-color-violet-9), var(--mantine-color-violet-0))"
|
|
1241
|
-
},
|
|
1242
|
-
green: {
|
|
1243
|
-
bg: "light-dark(var(--mantine-color-green-0), color-mix(in srgb, var(--mantine-color-green-9) 72%, black))",
|
|
1244
|
-
border: "light-dark(var(--mantine-color-green-2), color-mix(in srgb, var(--mantine-color-green-4) 78%, transparent))",
|
|
1245
|
-
color: "light-dark(var(--mantine-color-green-9), var(--mantine-color-green-0))"
|
|
1246
|
-
},
|
|
1247
|
-
red: {
|
|
1248
|
-
bg: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 72%, black))",
|
|
1249
|
-
border: "light-dark(var(--mantine-color-red-2), color-mix(in srgb, var(--mantine-color-red-4) 78%, transparent))",
|
|
1250
|
-
color: "light-dark(var(--mantine-color-red-9), var(--mantine-color-red-0))"
|
|
1251
|
-
},
|
|
1252
|
-
amber: {
|
|
1253
|
-
bg: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-8) 78%, black))",
|
|
1254
|
-
border: "light-dark(var(--mantine-color-yellow-3), color-mix(in srgb, var(--mantine-color-yellow-5) 70%, transparent))",
|
|
1255
|
-
color: "light-dark(var(--mantine-color-yellow-9), var(--mantine-color-yellow-0))"
|
|
1256
|
-
},
|
|
1257
|
-
blue: {
|
|
1258
|
-
bg: "light-dark(var(--mantine-color-blue-0), color-mix(in srgb, var(--mantine-color-blue-9) 74%, black))",
|
|
1259
|
-
border: "light-dark(var(--mantine-color-blue-2), color-mix(in srgb, var(--mantine-color-blue-4) 75%, transparent))",
|
|
1260
|
-
color: "light-dark(var(--mantine-color-blue-9), var(--mantine-color-blue-0))"
|
|
1261
|
-
}
|
|
1262
|
-
};
|
|
1263
|
-
function resolveAccentPanelStyles(tone = "violet", variant = "subtle") {
|
|
1264
|
-
const token = toneStyles[tone];
|
|
1265
|
-
if (variant === "soft-outline") {
|
|
1266
|
-
return {
|
|
1267
|
-
backgroundColor: "light-dark(var(--mantine-color-body), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
|
|
1268
|
-
border: `1px solid ${token.border}`,
|
|
1269
|
-
color: token.color
|
|
1270
|
-
};
|
|
1271
|
-
}
|
|
1272
|
-
return {
|
|
1273
|
-
backgroundColor: token.bg,
|
|
1274
|
-
border: `1px solid ${token.border}`,
|
|
1275
|
-
color: token.color
|
|
1276
|
-
};
|
|
1277
|
-
}
|
|
1278
|
-
function AccentPanel({
|
|
1279
|
-
tone = "violet",
|
|
1280
|
-
variant = "subtle",
|
|
1281
|
-
title,
|
|
1282
|
-
badge,
|
|
1283
|
-
children
|
|
1284
|
-
}) {
|
|
1285
|
-
const styles = resolveAccentPanelStyles(tone, variant);
|
|
1286
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Paper, { withBorder: true, radius: "lg", p: "lg", style: styles, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Stack, { gap: "sm", children: [
|
|
1287
|
-
title || badge ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
1288
|
-
title ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Title, { order: 4, c: "inherit", children: title }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, {}),
|
|
1289
|
-
badge ? typeof badge === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Badge, { color: tone === "amber" ? "yellow" : tone, variant: "filled", children: badge }) : badge : null
|
|
1290
|
-
] }) : null,
|
|
1291
|
-
typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Text, { c: "inherit", children }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { c: "inherit", children })
|
|
1292
|
-
] }) });
|
|
1293
|
-
}
|
|
1294
|
-
|
|
1295
1360
|
// src/DetailProfileShell.tsx
|
|
1296
|
-
var
|
|
1297
|
-
var
|
|
1361
|
+
var import_core20 = require("@mantine/core");
|
|
1362
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1298
1363
|
function DetailProfileShell({
|
|
1299
1364
|
mode = "page",
|
|
1300
1365
|
hero,
|
|
@@ -1305,34 +1370,34 @@ function DetailProfileShell({
|
|
|
1305
1370
|
showDividers = true
|
|
1306
1371
|
}) {
|
|
1307
1372
|
const content = sections.filter(Boolean);
|
|
1308
|
-
return /* @__PURE__ */ (0,
|
|
1373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core20.Paper, { withBorder: mode === "drawer", radius: mode === "drawer" ? "xl" : "md", p: padding, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core20.Stack, { gap: "lg", children: [
|
|
1309
1374
|
hero,
|
|
1310
1375
|
actions,
|
|
1311
|
-
content.map((section, index) => /* @__PURE__ */ (0,
|
|
1312
|
-
index > 0 && showDividers ? /* @__PURE__ */ (0,
|
|
1376
|
+
content.map((section, index) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core20.Stack, { gap: "lg", children: [
|
|
1377
|
+
index > 0 && showDividers ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core20.Divider, {}) : null,
|
|
1313
1378
|
section
|
|
1314
1379
|
] }, index)),
|
|
1315
|
-
related ? /* @__PURE__ */ (0,
|
|
1316
|
-
content.length && showDividers ? /* @__PURE__ */ (0,
|
|
1380
|
+
related ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
|
|
1381
|
+
content.length && showDividers ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core20.Divider, {}) : null,
|
|
1317
1382
|
related
|
|
1318
1383
|
] }) : null
|
|
1319
1384
|
] }) });
|
|
1320
1385
|
}
|
|
1321
1386
|
|
|
1322
1387
|
// src/PublicShell.tsx
|
|
1323
|
-
var
|
|
1388
|
+
var import_core22 = require("@mantine/core");
|
|
1324
1389
|
|
|
1325
1390
|
// src/PublicNav.tsx
|
|
1326
|
-
var
|
|
1327
|
-
var
|
|
1391
|
+
var import_core21 = require("@mantine/core");
|
|
1392
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1328
1393
|
function PublicNav({ items, activeId, renderLink }) {
|
|
1329
|
-
return /* @__PURE__ */ (0,
|
|
1394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core21.Group, { component: "nav", "aria-label": "Primary", gap: "lg", wrap: "nowrap", children: items.map((item) => {
|
|
1330
1395
|
const active = item.id === activeId;
|
|
1331
1396
|
if (renderLink) {
|
|
1332
|
-
return /* @__PURE__ */ (0,
|
|
1397
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { children: renderLink(item, active) }, item.id);
|
|
1333
1398
|
}
|
|
1334
|
-
return /* @__PURE__ */ (0,
|
|
1335
|
-
|
|
1399
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1400
|
+
import_core21.Anchor,
|
|
1336
1401
|
{
|
|
1337
1402
|
href: item.href,
|
|
1338
1403
|
"aria-current": active ? "page" : void 0,
|
|
@@ -1349,15 +1414,15 @@ function PublicNav({ items, activeId, renderLink }) {
|
|
|
1349
1414
|
}
|
|
1350
1415
|
|
|
1351
1416
|
// src/PublicShell.tsx
|
|
1352
|
-
var
|
|
1417
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1353
1418
|
function InlineMobileNavigation({
|
|
1354
1419
|
mobileNavigation,
|
|
1355
1420
|
className,
|
|
1356
1421
|
mode
|
|
1357
1422
|
}) {
|
|
1358
|
-
return /* @__PURE__ */ (0,
|
|
1359
|
-
/* @__PURE__ */ (0,
|
|
1360
|
-
|
|
1423
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core22.Box, { component: "details", hiddenFrom: "sm", className, children: [
|
|
1424
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1425
|
+
import_core22.Box,
|
|
1361
1426
|
{
|
|
1362
1427
|
component: "summary",
|
|
1363
1428
|
"aria-label": mode === "drawer" ? "Open site navigation drawer" : "Open site navigation",
|
|
@@ -1369,13 +1434,13 @@ function InlineMobileNavigation({
|
|
|
1369
1434
|
gap: "0.5rem"
|
|
1370
1435
|
},
|
|
1371
1436
|
children: [
|
|
1372
|
-
/* @__PURE__ */ (0,
|
|
1373
|
-
/* @__PURE__ */ (0,
|
|
1437
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Burger, { opened: false, "aria-hidden": true }),
|
|
1438
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Text, { size: "sm", fw: 600, children: "Menu" })
|
|
1374
1439
|
]
|
|
1375
1440
|
}
|
|
1376
1441
|
),
|
|
1377
|
-
/* @__PURE__ */ (0,
|
|
1378
|
-
|
|
1442
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1443
|
+
import_core22.Box,
|
|
1379
1444
|
{
|
|
1380
1445
|
mt: "sm",
|
|
1381
1446
|
p: "sm",
|
|
@@ -1384,7 +1449,7 @@ function InlineMobileNavigation({
|
|
|
1384
1449
|
border: "1px solid var(--mantine-color-default-border)",
|
|
1385
1450
|
background: mode === "drawer" ? "light-dark(var(--mantine-color-white), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))" : "var(--mantine-color-body)"
|
|
1386
1451
|
},
|
|
1387
|
-
children: /* @__PURE__ */ (0,
|
|
1452
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Stack, { gap: "sm", children: mobileNavigation })
|
|
1388
1453
|
}
|
|
1389
1454
|
)
|
|
1390
1455
|
] });
|
|
@@ -1405,30 +1470,30 @@ function PublicShell({
|
|
|
1405
1470
|
mobileNavigationMode = "sheet",
|
|
1406
1471
|
classNames
|
|
1407
1472
|
}) {
|
|
1408
|
-
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */ (0,
|
|
1473
|
+
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(PublicNav, { items: navItems, activeId: activeNavId }) : null);
|
|
1409
1474
|
const containerSize = maxContentWidth ?? (compact ? "md" : "lg");
|
|
1410
1475
|
const headerHeight = headerVariant === "compact" ? 64 : headerVariant === "branded-quiet" ? 88 : 72;
|
|
1411
1476
|
const mainPadding = headerVariant === "compact" ? "lg" : "xl";
|
|
1412
1477
|
const usesInlineMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode !== "sheet";
|
|
1413
1478
|
const usesSheetMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode === "sheet";
|
|
1414
|
-
return /* @__PURE__ */ (0,
|
|
1415
|
-
|
|
1479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1480
|
+
import_core22.AppShell,
|
|
1416
1481
|
{
|
|
1417
1482
|
className: classNames?.root,
|
|
1418
1483
|
header: { height: headerHeight },
|
|
1419
1484
|
footer: usesSheetMobileNavigation ? { height: 68 } : void 0,
|
|
1420
1485
|
padding: 0,
|
|
1421
1486
|
children: [
|
|
1422
|
-
/* @__PURE__ */ (0,
|
|
1423
|
-
|
|
1487
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.AppShell.Header, { withBorder: headerBordered, className: classNames?.header, "data-header-variant": headerVariant, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Container, { size: containerSize, h: "100%", py: headerVariant === "branded-quiet" ? "sm" : 0, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1488
|
+
import_core22.Group,
|
|
1424
1489
|
{
|
|
1425
1490
|
h: "100%",
|
|
1426
1491
|
justify: "space-between",
|
|
1427
1492
|
wrap: "nowrap",
|
|
1428
1493
|
gap: headerVariant === "compact" ? "sm" : "lg",
|
|
1429
1494
|
children: [
|
|
1430
|
-
/* @__PURE__ */ (0,
|
|
1431
|
-
usesInlineMobileNavigation ? /* @__PURE__ */ (0,
|
|
1495
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core22.Group, { wrap: "nowrap", gap: headerVariant === "compact" ? "xs" : "sm", className: classNames?.brand, children: [
|
|
1496
|
+
usesInlineMobileNavigation ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1432
1497
|
InlineMobileNavigation,
|
|
1433
1498
|
{
|
|
1434
1499
|
mobileNavigation,
|
|
@@ -1436,17 +1501,17 @@ function PublicShell({
|
|
|
1436
1501
|
mode: mobileNavigationMode
|
|
1437
1502
|
}
|
|
1438
1503
|
) : null,
|
|
1439
|
-
/* @__PURE__ */ (0,
|
|
1504
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Box, { children: brand })
|
|
1440
1505
|
] }),
|
|
1441
|
-
/* @__PURE__ */ (0,
|
|
1442
|
-
/* @__PURE__ */ (0,
|
|
1506
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Group, { visibleFrom: "sm", gap: headerVariant === "compact" ? "md" : "lg", className: classNames?.navigation, children: resolvedNavigation }),
|
|
1507
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Group, { gap: "sm", className: classNames?.actions, children: actions })
|
|
1443
1508
|
]
|
|
1444
1509
|
}
|
|
1445
1510
|
) }) }),
|
|
1446
|
-
usesSheetMobileNavigation ? /* @__PURE__ */ (0,
|
|
1447
|
-
/* @__PURE__ */ (0,
|
|
1448
|
-
/* @__PURE__ */ (0,
|
|
1449
|
-
footer ? /* @__PURE__ */ (0,
|
|
1511
|
+
usesSheetMobileNavigation ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.AppShell.Footer, { withBorder: true, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Container, { size: containerSize, h: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Group, { h: "100%", justify: "space-around", wrap: "nowrap", children: mobileNavigation }) }) }) : null,
|
|
1512
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core22.AppShell.Main, { children: [
|
|
1513
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Container, { size: containerSize, py: mainPadding, className: classNames?.content, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Stack, { gap: "xl", children }) }),
|
|
1514
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Box, { component: typeof footer === "string" ? "footer" : "div", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Container, { size: containerSize, children: typeof footer === "string" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Text, { size: "sm", c: "dimmed", children: footer }) : footer }) }) : null
|
|
1450
1515
|
] })
|
|
1451
1516
|
]
|
|
1452
1517
|
}
|
|
@@ -1454,18 +1519,18 @@ function PublicShell({
|
|
|
1454
1519
|
}
|
|
1455
1520
|
|
|
1456
1521
|
// src/PublicSiteFooter.tsx
|
|
1457
|
-
var
|
|
1458
|
-
var
|
|
1522
|
+
var import_core23 = require("@mantine/core");
|
|
1523
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1459
1524
|
function PublicSiteFooter({ children, meta }) {
|
|
1460
|
-
return /* @__PURE__ */ (0,
|
|
1461
|
-
children ? /* @__PURE__ */ (0,
|
|
1462
|
-
meta ? /* @__PURE__ */ (0,
|
|
1525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core23.Stack, { component: "footer", gap: "xs", children: [
|
|
1526
|
+
children ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core23.Text, { size: "sm", children }) : null,
|
|
1527
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core23.Group, { gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core23.Text, { size: "xs", c: "dimmed", children: meta }) }) : null
|
|
1463
1528
|
] });
|
|
1464
1529
|
}
|
|
1465
1530
|
|
|
1466
1531
|
// src/PublicBrandFooter.tsx
|
|
1467
|
-
var
|
|
1468
|
-
var
|
|
1532
|
+
var import_core24 = require("@mantine/core");
|
|
1533
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1469
1534
|
function PublicBrandFooter({
|
|
1470
1535
|
media,
|
|
1471
1536
|
brandTitle,
|
|
@@ -1480,8 +1545,8 @@ function PublicBrandFooter({
|
|
|
1480
1545
|
const mediaSpan = layoutVariant === "immersive-media" ? 5 : 4;
|
|
1481
1546
|
const primarySpan = media ? layoutVariant === "balanced-quote" ? 4 : 4 : secondary ? 6 : 12;
|
|
1482
1547
|
const secondarySpan = media ? Math.max(3, 12 - mediaSpan - primarySpan) : Math.max(4, 12 - primarySpan);
|
|
1483
|
-
return /* @__PURE__ */ (0,
|
|
1484
|
-
|
|
1548
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1549
|
+
import_core24.Paper,
|
|
1485
1550
|
{
|
|
1486
1551
|
component: "footer",
|
|
1487
1552
|
withBorder: true,
|
|
@@ -1489,19 +1554,19 @@ function PublicBrandFooter({
|
|
|
1489
1554
|
p: compact ? "lg" : "xl",
|
|
1490
1555
|
className: classNames?.root,
|
|
1491
1556
|
"data-layout-variant": layoutVariant,
|
|
1492
|
-
children: /* @__PURE__ */ (0,
|
|
1493
|
-
/* @__PURE__ */ (0,
|
|
1494
|
-
media ? /* @__PURE__ */ (0,
|
|
1495
|
-
/* @__PURE__ */ (0,
|
|
1496
|
-
brandTitle ? /* @__PURE__ */ (0,
|
|
1497
|
-
description ? /* @__PURE__ */ (0,
|
|
1498
|
-
actions ? /* @__PURE__ */ (0,
|
|
1557
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core24.Stack, { gap: "lg", children: [
|
|
1558
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core24.Grid, { gutter: compact ? "lg" : "xl", align: "flex-start", children: [
|
|
1559
|
+
media ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Grid.Col, { span: { base: 12, md: mediaSpan }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Box, { className: classNames?.media, children: media }) }) : null,
|
|
1560
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Grid.Col, { span: { base: 12, md: primarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core24.Stack, { gap: compact ? "xs" : "sm", className: classNames?.primary, children: [
|
|
1561
|
+
brandTitle ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Title, { order: 4, children: brandTitle }) : null,
|
|
1562
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Text, { c: "dimmed", children: description }) : null,
|
|
1563
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Box, { children: actions }) : null
|
|
1499
1564
|
] }) }),
|
|
1500
|
-
secondary ? /* @__PURE__ */ (0,
|
|
1565
|
+
secondary ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Grid.Col, { span: { base: 12, md: secondarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Stack, { gap: compact ? "xs" : "sm", className: classNames?.secondary, children: secondary }) }) : null
|
|
1501
1566
|
] }),
|
|
1502
|
-
legal ? /* @__PURE__ */ (0,
|
|
1503
|
-
/* @__PURE__ */ (0,
|
|
1504
|
-
/* @__PURE__ */ (0,
|
|
1567
|
+
legal ? /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
|
|
1568
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Divider, {}),
|
|
1569
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Group, { justify: "space-between", gap: "sm", wrap: "wrap", className: classNames?.legal, children: typeof legal === "string" ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core24.Text, { size: "sm", c: "dimmed", children: legal }) : legal })
|
|
1505
1570
|
] }) : null
|
|
1506
1571
|
] })
|
|
1507
1572
|
}
|
|
@@ -1509,8 +1574,8 @@ function PublicBrandFooter({
|
|
|
1509
1574
|
}
|
|
1510
1575
|
|
|
1511
1576
|
// src/AuthShell.tsx
|
|
1512
|
-
var
|
|
1513
|
-
var
|
|
1577
|
+
var import_core25 = require("@mantine/core");
|
|
1578
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1514
1579
|
function AuthShell({
|
|
1515
1580
|
title,
|
|
1516
1581
|
description,
|
|
@@ -1522,28 +1587,28 @@ function AuthShell({
|
|
|
1522
1587
|
dividerLabel = "Or continue with your account",
|
|
1523
1588
|
children
|
|
1524
1589
|
}) {
|
|
1525
|
-
return /* @__PURE__ */ (0,
|
|
1526
|
-
brand || headerActions ? /* @__PURE__ */ (0,
|
|
1527
|
-
brand ? /* @__PURE__ */ (0,
|
|
1528
|
-
headerActions ? /* @__PURE__ */ (0,
|
|
1590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Box, { py: { base: "xl", md: "4rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Container, { size: "xs", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core25.Stack, { gap: "xl", children: [
|
|
1591
|
+
brand || headerActions ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core25.Group, { justify: brand && headerActions ? "space-between" : "center", align: "center", children: [
|
|
1592
|
+
brand ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Box, { children: brand }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Box, {}),
|
|
1593
|
+
headerActions ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Group, { gap: "sm", children: headerActions }) : null
|
|
1529
1594
|
] }) : null,
|
|
1530
|
-
/* @__PURE__ */ (0,
|
|
1531
|
-
/* @__PURE__ */ (0,
|
|
1532
|
-
/* @__PURE__ */ (0,
|
|
1533
|
-
description ? /* @__PURE__ */ (0,
|
|
1595
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Card, { withBorder: true, radius: "lg", padding: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core25.Stack, { gap: "lg", children: [
|
|
1596
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core25.Stack, { gap: "xs", ta: "center", children: [
|
|
1597
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Title, { order: 2, children: title }),
|
|
1598
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Text, { c: "dimmed", size: "sm", children: description }) : null
|
|
1534
1599
|
] }),
|
|
1535
|
-
socialAuth ? /* @__PURE__ */ (0,
|
|
1536
|
-
socialAuth ? /* @__PURE__ */ (0,
|
|
1600
|
+
socialAuth ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Box, { children: socialAuth }) : null,
|
|
1601
|
+
socialAuth ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Divider, { label: dividerLabel, labelPosition: "center" }) : null,
|
|
1537
1602
|
children,
|
|
1538
|
-
helper ? /* @__PURE__ */ (0,
|
|
1603
|
+
helper ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Text, { size: "sm", c: "dimmed", ta: "center", children: helper }) : null
|
|
1539
1604
|
] }) }),
|
|
1540
|
-
footer ? /* @__PURE__ */ (0,
|
|
1605
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core25.Text, { size: "sm", c: "dimmed", ta: "center", children: footer }) : null
|
|
1541
1606
|
] }) }) });
|
|
1542
1607
|
}
|
|
1543
1608
|
|
|
1544
1609
|
// src/SocialAuthButtons.tsx
|
|
1545
|
-
var
|
|
1546
|
-
var
|
|
1610
|
+
var import_core26 = require("@mantine/core");
|
|
1611
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1547
1612
|
var providerConfig = {
|
|
1548
1613
|
google: { label: "Google", mark: "G", color: "red" },
|
|
1549
1614
|
apple: { label: "Apple", mark: "A", color: "dark" },
|
|
@@ -1557,26 +1622,26 @@ var providerConfig = {
|
|
|
1557
1622
|
};
|
|
1558
1623
|
function ProviderMark({ id }) {
|
|
1559
1624
|
const config = providerConfig[id] ?? { label: id, mark: id.slice(0, 2).toUpperCase(), color: "gray" };
|
|
1560
|
-
return /* @__PURE__ */ (0,
|
|
1625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.ThemeIcon, { variant: "light", color: config.color, radius: "xl", size: "md", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { size: "xs", fw: 700, children: config.mark }) });
|
|
1561
1626
|
}
|
|
1562
1627
|
function SocialAuthButton({ provider, compact = false }) {
|
|
1563
1628
|
const config = providerConfig[provider.id] ?? { label: provider.id, mark: provider.id.slice(0, 2).toUpperCase(), color: "gray" };
|
|
1564
1629
|
const label = provider.label ?? `Continue with ${config.label}`;
|
|
1565
1630
|
const buttonProps = provider.href ? { component: "a", href: provider.href } : { onClick: provider.onClick };
|
|
1566
|
-
return /* @__PURE__ */ (0,
|
|
1567
|
-
|
|
1631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1632
|
+
import_core26.Button,
|
|
1568
1633
|
{
|
|
1569
1634
|
variant: "default",
|
|
1570
1635
|
justify: "space-between",
|
|
1571
1636
|
fullWidth: true,
|
|
1572
1637
|
size: compact ? "sm" : "md",
|
|
1573
|
-
leftSection: /* @__PURE__ */ (0,
|
|
1638
|
+
leftSection: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ProviderMark, { id: provider.id }),
|
|
1574
1639
|
disabled: provider.disabled,
|
|
1575
1640
|
loading: provider.loading,
|
|
1576
1641
|
...buttonProps,
|
|
1577
|
-
children: /* @__PURE__ */ (0,
|
|
1578
|
-
/* @__PURE__ */ (0,
|
|
1579
|
-
provider.description ? /* @__PURE__ */ (0,
|
|
1642
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core26.Stack, { gap: 0, align: "flex-start", children: [
|
|
1643
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { inherit: true, children: label }),
|
|
1644
|
+
provider.description ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { size: "xs", c: "dimmed", lh: 1.2, children: provider.description }) : null
|
|
1580
1645
|
] })
|
|
1581
1646
|
}
|
|
1582
1647
|
);
|
|
@@ -1591,54 +1656,54 @@ function SocialAuthButtons({
|
|
|
1591
1656
|
if (!providers.length) {
|
|
1592
1657
|
return null;
|
|
1593
1658
|
}
|
|
1594
|
-
const content = providers.map((provider) => /* @__PURE__ */ (0,
|
|
1595
|
-
return /* @__PURE__ */ (0,
|
|
1596
|
-
/* @__PURE__ */ (0,
|
|
1597
|
-
/* @__PURE__ */ (0,
|
|
1598
|
-
/* @__PURE__ */ (0,
|
|
1599
|
-
/* @__PURE__ */ (0,
|
|
1659
|
+
const content = providers.map((provider) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SocialAuthButton, { provider, compact }, provider.id));
|
|
1660
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core26.Stack, { gap: "md", children: [
|
|
1661
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core26.Stack, { gap: 4, ta: "center", children: [
|
|
1662
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core26.Group, { justify: "center", gap: "xs", children: [
|
|
1663
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(GdsIcons.Login, { size: "1rem" }),
|
|
1664
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { fw: 600, children: title })
|
|
1600
1665
|
] }),
|
|
1601
|
-
description ? /* @__PURE__ */ (0,
|
|
1666
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
1602
1667
|
] }),
|
|
1603
|
-
/* @__PURE__ */ (0,
|
|
1604
|
-
layout === "grid" ? /* @__PURE__ */ (0,
|
|
1668
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Divider, {}),
|
|
1669
|
+
layout === "grid" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: content }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Stack, { gap: "sm", children: content })
|
|
1605
1670
|
] });
|
|
1606
1671
|
}
|
|
1607
1672
|
|
|
1608
1673
|
// src/ArticleShell.tsx
|
|
1609
|
-
var
|
|
1610
|
-
var
|
|
1674
|
+
var import_core27 = require("@mantine/core");
|
|
1675
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1611
1676
|
function ArticleShell({ eyebrow, title, lead, meta, sideRail, children }) {
|
|
1612
|
-
return /* @__PURE__ */ (0,
|
|
1613
|
-
/* @__PURE__ */ (0,
|
|
1614
|
-
/* @__PURE__ */ (0,
|
|
1615
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
1616
|
-
/* @__PURE__ */ (0,
|
|
1617
|
-
lead ? /* @__PURE__ */ (0,
|
|
1618
|
-
meta ? /* @__PURE__ */ (0,
|
|
1677
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core27.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
1678
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core27.Stack, { gap: "lg", maw: 760, flex: 1, children: [
|
|
1679
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core27.Stack, { gap: "sm", children: [
|
|
1680
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Text, { size: "sm", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
1681
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Title, { order: 1, children: title }),
|
|
1682
|
+
lead ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Text, { size: "lg", c: "dimmed", children: lead }) : null,
|
|
1683
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Group, { gap: "md", children: meta }) : null
|
|
1619
1684
|
] }),
|
|
1620
|
-
/* @__PURE__ */ (0,
|
|
1685
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Stack, { gap: "md", children })
|
|
1621
1686
|
] }),
|
|
1622
|
-
sideRail ? /* @__PURE__ */ (0,
|
|
1687
|
+
sideRail ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
1623
1688
|
] }) });
|
|
1624
1689
|
}
|
|
1625
1690
|
|
|
1626
1691
|
// src/CtaButtonGroup.tsx
|
|
1627
|
-
var
|
|
1628
|
-
var
|
|
1692
|
+
var import_core28 = require("@mantine/core");
|
|
1693
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1629
1694
|
function CtaButtonGroup({ primary, secondary, tertiary }) {
|
|
1630
|
-
return /* @__PURE__ */ (0,
|
|
1631
|
-
/* @__PURE__ */ (0,
|
|
1632
|
-
/* @__PURE__ */ (0,
|
|
1633
|
-
secondary ? /* @__PURE__ */ (0,
|
|
1695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core28.Stack, { gap: "sm", children: [
|
|
1696
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core28.Group, { gap: "sm", align: "stretch", children: [
|
|
1697
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { children: primary }),
|
|
1698
|
+
secondary ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { children: secondary }) : null
|
|
1634
1699
|
] }),
|
|
1635
|
-
tertiary ? /* @__PURE__ */ (0,
|
|
1700
|
+
tertiary ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { children: tertiary }) : null
|
|
1636
1701
|
] });
|
|
1637
1702
|
}
|
|
1638
1703
|
|
|
1639
1704
|
// src/DocsPageShell.tsx
|
|
1640
|
-
var
|
|
1641
|
-
var
|
|
1705
|
+
var import_core29 = require("@mantine/core");
|
|
1706
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1642
1707
|
function DocsPageShell({
|
|
1643
1708
|
breadcrumbs = [],
|
|
1644
1709
|
title,
|
|
@@ -1649,27 +1714,27 @@ function DocsPageShell({
|
|
|
1649
1714
|
footerNext,
|
|
1650
1715
|
children
|
|
1651
1716
|
}) {
|
|
1652
|
-
return /* @__PURE__ */ (0,
|
|
1653
|
-
/* @__PURE__ */ (0,
|
|
1654
|
-
breadcrumbs.length ? /* @__PURE__ */ (0,
|
|
1655
|
-
(crumb) => crumb.href ? /* @__PURE__ */ (0,
|
|
1717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core29.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
1718
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core29.Stack, { component: "article", gap: "lg", maw: 760, flex: 1, children: [
|
|
1719
|
+
breadcrumbs.length ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Breadcrumbs, { children: breadcrumbs.map(
|
|
1720
|
+
(crumb) => crumb.href ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Anchor, { href: crumb.href, children: crumb.label }, `${crumb.label}-${crumb.href}`) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Text, { children: crumb.label }, crumb.label)
|
|
1656
1721
|
) }) : null,
|
|
1657
|
-
/* @__PURE__ */ (0,
|
|
1658
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
1659
|
-
/* @__PURE__ */ (0,
|
|
1660
|
-
lead ? /* @__PURE__ */ (0,
|
|
1661
|
-
meta ? /* @__PURE__ */ (0,
|
|
1722
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core29.Stack, { gap: "sm", children: [
|
|
1723
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Text, { size: "sm", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
1724
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Title, { order: 1, children: title }),
|
|
1725
|
+
lead ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Text, { size: "lg", c: "dimmed", children: lead }) : null,
|
|
1726
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Group, { gap: "md", children: meta }) : null
|
|
1662
1727
|
] }),
|
|
1663
|
-
/* @__PURE__ */ (0,
|
|
1664
|
-
footerNext ? /* @__PURE__ */ (0,
|
|
1728
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Stack, { gap: "md", children }),
|
|
1729
|
+
footerNext ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Anchor, { href: footerNext.href, fw: 600, children: footerNext.label }) : null
|
|
1665
1730
|
] }),
|
|
1666
|
-
sideRail ? /* @__PURE__ */ (0,
|
|
1731
|
+
sideRail ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
1667
1732
|
] }) });
|
|
1668
1733
|
}
|
|
1669
1734
|
|
|
1670
1735
|
// src/EditorialHero.tsx
|
|
1671
|
-
var
|
|
1672
|
-
var
|
|
1736
|
+
var import_core30 = require("@mantine/core");
|
|
1737
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1673
1738
|
function resolveActionVariant(action, index, seenPrimary) {
|
|
1674
1739
|
const requested = action.variant ?? (index === 0 ? "primary" : "secondary");
|
|
1675
1740
|
if (requested === "primary" && !seenPrimary) {
|
|
@@ -1681,8 +1746,8 @@ function resolveActionVariant(action, index, seenPrimary) {
|
|
|
1681
1746
|
return { variant: "default", seenPrimary };
|
|
1682
1747
|
}
|
|
1683
1748
|
function HeroAction({ action, variant }) {
|
|
1684
|
-
const content = /* @__PURE__ */ (0,
|
|
1685
|
-
|
|
1749
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1750
|
+
import_core30.Anchor,
|
|
1686
1751
|
{
|
|
1687
1752
|
href: action.href,
|
|
1688
1753
|
onClick: action.onClick,
|
|
@@ -1706,8 +1771,8 @@ function HeroAction({ action, variant }) {
|
|
|
1706
1771
|
}
|
|
1707
1772
|
);
|
|
1708
1773
|
if (!action.href) {
|
|
1709
|
-
return /* @__PURE__ */ (0,
|
|
1710
|
-
|
|
1774
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1775
|
+
import_core30.Box,
|
|
1711
1776
|
{
|
|
1712
1777
|
component: "button",
|
|
1713
1778
|
type: "button",
|
|
@@ -1734,30 +1799,30 @@ function HeroAction({ action, variant }) {
|
|
|
1734
1799
|
return content;
|
|
1735
1800
|
}
|
|
1736
1801
|
function LoadingHero({ compact }) {
|
|
1737
|
-
return /* @__PURE__ */ (0,
|
|
1738
|
-
/* @__PURE__ */ (0,
|
|
1739
|
-
/* @__PURE__ */ (0,
|
|
1740
|
-
/* @__PURE__ */ (0,
|
|
1741
|
-
/* @__PURE__ */ (0,
|
|
1742
|
-
/* @__PURE__ */ (0,
|
|
1743
|
-
/* @__PURE__ */ (0,
|
|
1744
|
-
/* @__PURE__ */ (0,
|
|
1745
|
-
/* @__PURE__ */ (0,
|
|
1802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Paper, { withBorder: true, radius: "xl", p: compact ? "lg" : "xl", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
1803
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Stack, { gap: "md", children: [
|
|
1804
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Skeleton, { height: 16, width: 96, radius: "xl" }),
|
|
1805
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Skeleton, { height: 48, width: "90%", radius: "md" }),
|
|
1806
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Skeleton, { height: 18, width: "100%", radius: "md" }),
|
|
1807
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Skeleton, { height: 18, width: "82%", radius: "md" }),
|
|
1808
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Group, { children: [
|
|
1809
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Skeleton, { height: 40, width: 140, radius: "md" }),
|
|
1810
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Skeleton, { height: 40, width: 140, radius: "md" })
|
|
1746
1811
|
] })
|
|
1747
1812
|
] }) }),
|
|
1748
|
-
/* @__PURE__ */ (0,
|
|
1813
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Skeleton, { radius: "lg" }) }) })
|
|
1749
1814
|
] }) });
|
|
1750
1815
|
}
|
|
1751
1816
|
function MediaFallback() {
|
|
1752
|
-
return /* @__PURE__ */ (0,
|
|
1753
|
-
|
|
1817
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1818
|
+
import_core30.ThemeIcon,
|
|
1754
1819
|
{
|
|
1755
1820
|
size: "100%",
|
|
1756
1821
|
radius: "lg",
|
|
1757
1822
|
color: "gray",
|
|
1758
1823
|
variant: "light",
|
|
1759
1824
|
"aria-label": "Hero media is unavailable",
|
|
1760
|
-
children: /* @__PURE__ */ (0,
|
|
1825
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(GdsIcons.Gallery, { size: "2.5rem" })
|
|
1761
1826
|
}
|
|
1762
1827
|
) });
|
|
1763
1828
|
}
|
|
@@ -1777,8 +1842,8 @@ function MediaFrame({
|
|
|
1777
1842
|
} else if (mediaFade === "soft-start") {
|
|
1778
1843
|
overlayBackground = "linear-gradient(90deg, light-dark(rgba(255,255,255,0.9), rgba(17,24,39,0.72)) 0%, rgba(255,255,255,0) 28%)";
|
|
1779
1844
|
}
|
|
1780
|
-
return /* @__PURE__ */ (0,
|
|
1781
|
-
|
|
1845
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
1846
|
+
import_core30.Box,
|
|
1782
1847
|
{
|
|
1783
1848
|
component: "figure",
|
|
1784
1849
|
m: 0,
|
|
@@ -1791,9 +1856,9 @@ function MediaFrame({
|
|
|
1791
1856
|
},
|
|
1792
1857
|
"aria-label": mediaAlt,
|
|
1793
1858
|
children: [
|
|
1794
|
-
media ?? /* @__PURE__ */ (0,
|
|
1795
|
-
media && overlayBackground ? /* @__PURE__ */ (0,
|
|
1796
|
-
|
|
1859
|
+
media ?? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MediaFallback, {}),
|
|
1860
|
+
media && overlayBackground ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1861
|
+
import_core30.Box,
|
|
1797
1862
|
{
|
|
1798
1863
|
"aria-hidden": true,
|
|
1799
1864
|
style: {
|
|
@@ -1826,7 +1891,7 @@ function EditorialHero({
|
|
|
1826
1891
|
classNames
|
|
1827
1892
|
}) {
|
|
1828
1893
|
if (loading) {
|
|
1829
|
-
return /* @__PURE__ */ (0,
|
|
1894
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(LoadingHero, { compact });
|
|
1830
1895
|
}
|
|
1831
1896
|
const stackAlign = align === "center" ? "center" : "flex-start";
|
|
1832
1897
|
const textAlign = align === "center" ? "center" : "left";
|
|
@@ -1834,15 +1899,15 @@ function EditorialHero({
|
|
|
1834
1899
|
const renderedActions = actions.slice(0, 3).map((action, index) => {
|
|
1835
1900
|
const resolved = resolveActionVariant(action, index, seenPrimary);
|
|
1836
1901
|
seenPrimary = resolved.seenPrimary;
|
|
1837
|
-
return /* @__PURE__ */ (0,
|
|
1902
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
|
|
1838
1903
|
});
|
|
1839
|
-
const textSlot = /* @__PURE__ */ (0,
|
|
1840
|
-
/* @__PURE__ */ (0,
|
|
1841
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
1842
|
-
/* @__PURE__ */ (0,
|
|
1843
|
-
description ? /* @__PURE__ */ (0,
|
|
1904
|
+
const textSlot = /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Stack, { gap: compact ? "md" : "lg", justify: "center", h: "100%", className: classNames?.content, children: [
|
|
1905
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Stack, { gap: "sm", align: stackAlign, children: [
|
|
1906
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Text, { size: "sm", fw: 700, c: "dimmed", ta: textAlign, children: eyebrow }) : null,
|
|
1907
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Title, { order: 1, maw: 760, ta: textAlign, children: title }),
|
|
1908
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Text, { size: compact ? "md" : "lg", c: "dimmed", maw: 720, ta: textAlign, children: description }) : null
|
|
1844
1909
|
] }),
|
|
1845
|
-
renderedActions.length ? /* @__PURE__ */ (0,
|
|
1910
|
+
renderedActions.length ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Box, { className: classNames?.actions, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1846
1911
|
CtaButtonGroup,
|
|
1847
1912
|
{
|
|
1848
1913
|
primary: renderedActions[0],
|
|
@@ -1850,8 +1915,8 @@ function EditorialHero({
|
|
|
1850
1915
|
tertiary: renderedActions[2]
|
|
1851
1916
|
}
|
|
1852
1917
|
) }) : null,
|
|
1853
|
-
meta.length ? /* @__PURE__ */ (0,
|
|
1854
|
-
|
|
1918
|
+
meta.length ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Group, { gap: "sm", wrap: "wrap", "aria-label": "Supporting details", className: classNames?.meta, children: meta.map((item) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
1919
|
+
import_core30.Group,
|
|
1855
1920
|
{
|
|
1856
1921
|
gap: 6,
|
|
1857
1922
|
px: "sm",
|
|
@@ -1862,17 +1927,17 @@ function EditorialHero({
|
|
|
1862
1927
|
},
|
|
1863
1928
|
children: [
|
|
1864
1929
|
item.icon,
|
|
1865
|
-
/* @__PURE__ */ (0,
|
|
1930
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Text, { size: "sm", c: "dimmed", children: item.label })
|
|
1866
1931
|
]
|
|
1867
1932
|
},
|
|
1868
1933
|
item.id
|
|
1869
1934
|
)) }) : null
|
|
1870
1935
|
] });
|
|
1871
|
-
const mediaSlot = error ? /* @__PURE__ */ (0,
|
|
1872
|
-
const textCol = /* @__PURE__ */ (0,
|
|
1873
|
-
const mediaCol = /* @__PURE__ */ (0,
|
|
1874
|
-
return /* @__PURE__ */ (0,
|
|
1875
|
-
|
|
1936
|
+
const mediaSlot = error ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AccentPanel, { tone: "red", variant: "soft-outline", title: "Media unavailable", children: error }) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MediaFrame, { media, mediaAlt, mediaFade, className: classNames?.media });
|
|
1937
|
+
const textCol = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 1, md: mediaPosition === "left" ? 2 : 1 }, children: textSlot });
|
|
1938
|
+
const mediaCol = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 2, md: mediaPosition === "left" ? 1 : 2 }, children: mediaSlot });
|
|
1939
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1940
|
+
import_core30.Paper,
|
|
1876
1941
|
{
|
|
1877
1942
|
component: "section",
|
|
1878
1943
|
withBorder: true,
|
|
@@ -1880,7 +1945,7 @@ function EditorialHero({
|
|
|
1880
1945
|
p: compact ? "lg" : "xl",
|
|
1881
1946
|
className: classNames?.root,
|
|
1882
1947
|
style: surfaceVariant === "flat-public" ? { boxShadow: "none" } : void 0,
|
|
1883
|
-
children: /* @__PURE__ */ (0,
|
|
1948
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
1884
1949
|
textCol,
|
|
1885
1950
|
mediaCol
|
|
1886
1951
|
] })
|
|
@@ -1889,19 +1954,19 @@ function EditorialHero({
|
|
|
1889
1954
|
}
|
|
1890
1955
|
|
|
1891
1956
|
// src/FeatureBand.tsx
|
|
1892
|
-
var
|
|
1893
|
-
var
|
|
1957
|
+
var import_core31 = require("@mantine/core");
|
|
1958
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1894
1959
|
function FeatureBandSkeleton({
|
|
1895
1960
|
columns = 3,
|
|
1896
1961
|
bordered = true,
|
|
1897
1962
|
variant = "default"
|
|
1898
1963
|
}) {
|
|
1899
|
-
return /* @__PURE__ */ (0,
|
|
1900
|
-
/* @__PURE__ */ (0,
|
|
1901
|
-
/* @__PURE__ */ (0,
|
|
1902
|
-
/* @__PURE__ */ (0,
|
|
1903
|
-
/* @__PURE__ */ (0,
|
|
1904
|
-
/* @__PURE__ */ (0,
|
|
1964
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Stack, { gap: "md", children: [
|
|
1965
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: variant === "process" ? 28 : 42, width: variant === "process" ? 72 : 42, radius: "xl" }),
|
|
1966
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Stack, { gap: "xs", children: [
|
|
1967
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 20, width: "75%", radius: "md" }),
|
|
1968
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 14, width: "100%", radius: "md" }),
|
|
1969
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 14, width: "82%", radius: "md" })
|
|
1905
1970
|
] })
|
|
1906
1971
|
] }) }, index)) });
|
|
1907
1972
|
}
|
|
@@ -1914,10 +1979,10 @@ function FeatureBand({
|
|
|
1914
1979
|
variant = "default"
|
|
1915
1980
|
}) {
|
|
1916
1981
|
if (loading) {
|
|
1917
|
-
return /* @__PURE__ */ (0,
|
|
1982
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FeatureBandSkeleton, { columns, bordered, variant });
|
|
1918
1983
|
}
|
|
1919
1984
|
if (!items.length) {
|
|
1920
|
-
return emptyState ? /* @__PURE__ */ (0,
|
|
1985
|
+
return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1921
1986
|
EmptyState,
|
|
1922
1987
|
{
|
|
1923
1988
|
title: "No supporting details available",
|
|
@@ -1925,9 +1990,9 @@ function FeatureBand({
|
|
|
1925
1990
|
}
|
|
1926
1991
|
);
|
|
1927
1992
|
}
|
|
1928
|
-
return /* @__PURE__ */ (0,
|
|
1929
|
-
variant === "process" ? /* @__PURE__ */ (0,
|
|
1930
|
-
|
|
1993
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Box, { component: "section", "aria-label": "Supporting features", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Stack, { gap: "md", children: [
|
|
1994
|
+
variant === "process" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1995
|
+
import_core31.Text,
|
|
1931
1996
|
{
|
|
1932
1997
|
fw: 800,
|
|
1933
1998
|
size: "sm",
|
|
@@ -1939,31 +2004,31 @@ function FeatureBand({
|
|
|
1939
2004
|
},
|
|
1940
2005
|
children: item.stepLabel ?? `Step ${index + 1}`
|
|
1941
2006
|
}
|
|
1942
|
-
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ (0,
|
|
1943
|
-
/* @__PURE__ */ (0,
|
|
1944
|
-
/* @__PURE__ */ (0,
|
|
1945
|
-
item.description ? /* @__PURE__ */ (0,
|
|
1946
|
-
item.meta ? /* @__PURE__ */ (0,
|
|
2007
|
+
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "violet", children: item.icon }) }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "gray", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GdsIcons.Info, { size: "1.25rem" }) }) }),
|
|
2008
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Stack, { gap: "xs", children: [
|
|
2009
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Title, { order: 4, children: item.title }),
|
|
2010
|
+
item.description ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Text, { c: "dimmed", children: item.description }) : null,
|
|
2011
|
+
item.meta ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Text, { size: "sm", c: "dimmed", children: item.meta }) : null
|
|
1947
2012
|
] })
|
|
1948
2013
|
] }) }, item.id)) }) });
|
|
1949
2014
|
}
|
|
1950
2015
|
|
|
1951
2016
|
// src/MapPanel.tsx
|
|
1952
|
-
var
|
|
2017
|
+
var import_core33 = require("@mantine/core");
|
|
1953
2018
|
|
|
1954
2019
|
// src/ActionBar.tsx
|
|
1955
|
-
var
|
|
1956
|
-
var
|
|
2020
|
+
var import_core32 = require("@mantine/core");
|
|
2021
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1957
2022
|
function renderSemanticAction(action, slot, vocabularyPacks) {
|
|
1958
2023
|
const { action: actionId, variant, ariaLabel, ...props } = action;
|
|
1959
2024
|
const fallbackVariant = slot === "primary" ? "filled" : slot === "secondary" ? "default" : "subtle";
|
|
1960
2025
|
const config = resolveSemanticActionConfig(actionId, vocabularyPacks);
|
|
1961
2026
|
const Icon = config.icon;
|
|
1962
2027
|
const label = getSemanticActionLabel(actionId, void 0, vocabularyPacks);
|
|
1963
|
-
return /* @__PURE__ */ (0,
|
|
1964
|
-
|
|
2028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2029
|
+
import_core32.Button,
|
|
1965
2030
|
{
|
|
1966
|
-
leftSection: /* @__PURE__ */ (0,
|
|
2031
|
+
leftSection: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { size: "1rem", stroke: 1.75 }),
|
|
1967
2032
|
"aria-label": ariaLabel ?? label,
|
|
1968
2033
|
variant: variant ?? fallbackVariant,
|
|
1969
2034
|
...props,
|
|
@@ -1980,23 +2045,23 @@ function ActionBar({
|
|
|
1980
2045
|
gap = "sm",
|
|
1981
2046
|
vocabularyPacks = []
|
|
1982
2047
|
}) {
|
|
1983
|
-
return /* @__PURE__ */ (0,
|
|
1984
|
-
/* @__PURE__ */ (0,
|
|
2048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Stack, { gap, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Group, { justify: "space-between", align: "center", gap, wrap: "wrap", children: [
|
|
2049
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Group, { gap, wrap: "wrap", children: [
|
|
1985
2050
|
secondary.map((action) => renderSemanticAction(action, "secondary", vocabularyPacks)),
|
|
1986
2051
|
tertiary.map((action) => renderSemanticAction(action, "tertiary", vocabularyPacks))
|
|
1987
2052
|
] }),
|
|
1988
|
-
/* @__PURE__ */ (0,
|
|
2053
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Group, { gap, wrap: "wrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
1989
2054
|
iconOnly.map(({ action, ariaLabel, ...props }) => {
|
|
1990
2055
|
const config = resolveSemanticActionConfig(action, vocabularyPacks);
|
|
1991
2056
|
const Icon = config.icon;
|
|
1992
|
-
return /* @__PURE__ */ (0,
|
|
1993
|
-
|
|
2057
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2058
|
+
import_core32.ActionIcon,
|
|
1994
2059
|
{
|
|
1995
2060
|
variant: "subtle",
|
|
1996
2061
|
size: "lg",
|
|
1997
2062
|
"aria-label": ariaLabel ?? getSemanticActionLabel(action, void 0, vocabularyPacks),
|
|
1998
2063
|
...props,
|
|
1999
|
-
children: /* @__PURE__ */ (0,
|
|
2064
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { size: "1rem", stroke: 1.75 })
|
|
2000
2065
|
},
|
|
2001
2066
|
`icon-${action}`
|
|
2002
2067
|
);
|
|
@@ -2007,7 +2072,7 @@ function ActionBar({
|
|
|
2007
2072
|
}
|
|
2008
2073
|
|
|
2009
2074
|
// src/MapPanel.tsx
|
|
2010
|
-
var
|
|
2075
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2011
2076
|
function MapPanel({
|
|
2012
2077
|
title,
|
|
2013
2078
|
description,
|
|
@@ -2023,7 +2088,7 @@ function MapPanel({
|
|
|
2023
2088
|
}) {
|
|
2024
2089
|
let body;
|
|
2025
2090
|
if (loading) {
|
|
2026
|
-
body = /* @__PURE__ */ (0,
|
|
2091
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2027
2092
|
StateBlock,
|
|
2028
2093
|
{
|
|
2029
2094
|
variant: "loading",
|
|
@@ -2033,9 +2098,9 @@ function MapPanel({
|
|
|
2033
2098
|
}
|
|
2034
2099
|
);
|
|
2035
2100
|
} else if (error) {
|
|
2036
|
-
body = /* @__PURE__ */ (0,
|
|
2101
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StateBlock, { variant: "error", title: "Map unavailable", description: error, compact: true });
|
|
2037
2102
|
} else if (!iframeSrc && !renderMap) {
|
|
2038
|
-
body = /* @__PURE__ */ (0,
|
|
2103
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2039
2104
|
StateBlock,
|
|
2040
2105
|
{
|
|
2041
2106
|
variant: "empty",
|
|
@@ -2045,9 +2110,9 @@ function MapPanel({
|
|
|
2045
2110
|
}
|
|
2046
2111
|
);
|
|
2047
2112
|
} else if (renderMap) {
|
|
2048
|
-
body = /* @__PURE__ */ (0,
|
|
2113
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.Box, { style: { minHeight }, children: renderMap() });
|
|
2049
2114
|
} else {
|
|
2050
|
-
body = /* @__PURE__ */ (0,
|
|
2115
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.AspectRatio, { ratio: 16 / 9, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2051
2116
|
"iframe",
|
|
2052
2117
|
{
|
|
2053
2118
|
src: iframeSrc,
|
|
@@ -2059,21 +2124,21 @@ function MapPanel({
|
|
|
2059
2124
|
}
|
|
2060
2125
|
) });
|
|
2061
2126
|
}
|
|
2062
|
-
return /* @__PURE__ */ (0,
|
|
2063
|
-
/* @__PURE__ */ (0,
|
|
2064
|
-
/* @__PURE__ */ (0,
|
|
2065
|
-
/* @__PURE__ */ (0,
|
|
2066
|
-
description ? /* @__PURE__ */ (0,
|
|
2127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core33.Stack, { gap: "md", children: [
|
|
2128
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core33.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2129
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core33.Stack, { gap: 4, children: [
|
|
2130
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.Title, { order: 3, children: title }),
|
|
2131
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
2067
2132
|
] }),
|
|
2068
|
-
actions ? /* @__PURE__ */ (0,
|
|
2133
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ActionBar, { ...actions }) : null
|
|
2069
2134
|
] }),
|
|
2070
2135
|
body
|
|
2071
2136
|
] }) });
|
|
2072
2137
|
}
|
|
2073
2138
|
|
|
2074
2139
|
// src/PublicFlowShell.tsx
|
|
2075
|
-
var
|
|
2076
|
-
var
|
|
2140
|
+
var import_core34 = require("@mantine/core");
|
|
2141
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2077
2142
|
var stageTone = {
|
|
2078
2143
|
idle: { label: "Idle", color: "gray" },
|
|
2079
2144
|
loading: { label: "Loading", color: "blue" },
|
|
@@ -2125,7 +2190,7 @@ function PublicFlowShell({
|
|
|
2125
2190
|
const actionBar = toActionBar(stage.actions);
|
|
2126
2191
|
let body = stage.body;
|
|
2127
2192
|
if (stage.status === "loading") {
|
|
2128
|
-
body = /* @__PURE__ */ (0,
|
|
2193
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2129
2194
|
StateBlock,
|
|
2130
2195
|
{
|
|
2131
2196
|
variant: "loading",
|
|
@@ -2134,7 +2199,7 @@ function PublicFlowShell({
|
|
|
2134
2199
|
}
|
|
2135
2200
|
);
|
|
2136
2201
|
} else if (stage.status === "error") {
|
|
2137
|
-
body = errorState ?? /* @__PURE__ */ (0,
|
|
2202
|
+
body = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2138
2203
|
StateBlock,
|
|
2139
2204
|
{
|
|
2140
2205
|
variant: "error",
|
|
@@ -2143,7 +2208,7 @@ function PublicFlowShell({
|
|
|
2143
2208
|
}
|
|
2144
2209
|
);
|
|
2145
2210
|
} else if (!stage.body && !hardwareSurface) {
|
|
2146
|
-
body = emptyState ?? /* @__PURE__ */ (0,
|
|
2211
|
+
body = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2147
2212
|
EmptyState,
|
|
2148
2213
|
{
|
|
2149
2214
|
title: "No stage content available",
|
|
@@ -2151,29 +2216,29 @@ function PublicFlowShell({
|
|
|
2151
2216
|
}
|
|
2152
2217
|
);
|
|
2153
2218
|
}
|
|
2154
|
-
return /* @__PURE__ */ (0,
|
|
2155
|
-
/* @__PURE__ */ (0,
|
|
2156
|
-
/* @__PURE__ */ (0,
|
|
2157
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
2158
|
-
/* @__PURE__ */ (0,
|
|
2159
|
-
/* @__PURE__ */ (0,
|
|
2160
|
-
/* @__PURE__ */ (0,
|
|
2219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core34.Stack, { gap: "lg", children: [
|
|
2220
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core34.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2221
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core34.Stack, { gap: 4, children: [
|
|
2222
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Text, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
2223
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core34.Group, { gap: "sm", wrap: "wrap", children: [
|
|
2224
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Title, { order: 2, children: stage.title }),
|
|
2225
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Badge, { variant: "light", color: tone.color, children: tone.label })
|
|
2161
2226
|
] }),
|
|
2162
|
-
stage.description ? /* @__PURE__ */ (0,
|
|
2227
|
+
stage.description ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Text, { size: "sm", c: "dimmed", children: stage.description }) : null
|
|
2163
2228
|
] }),
|
|
2164
2229
|
exitAction
|
|
2165
2230
|
] }),
|
|
2166
|
-
stage.notice ? /* @__PURE__ */ (0,
|
|
2231
|
+
stage.notice ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Text, { size: "sm", c: "dimmed", children: stage.notice }) : null,
|
|
2167
2232
|
body,
|
|
2168
2233
|
hardwareSurface,
|
|
2169
2234
|
stage.aside,
|
|
2170
|
-
actionBar ? /* @__PURE__ */ (0,
|
|
2235
|
+
actionBar ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ActionBar, { ...actionBar }) : null
|
|
2171
2236
|
] }) });
|
|
2172
2237
|
}
|
|
2173
2238
|
|
|
2174
2239
|
// src/PlaybackSurface.tsx
|
|
2175
|
-
var
|
|
2176
|
-
var
|
|
2240
|
+
var import_core35 = require("@mantine/core");
|
|
2241
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2177
2242
|
var stateTone = {
|
|
2178
2243
|
loading: { label: "Loading", color: "blue" },
|
|
2179
2244
|
ready: { label: "Ready", color: "teal" },
|
|
@@ -2196,7 +2261,7 @@ function PlaybackSurface({
|
|
|
2196
2261
|
const tone = stateTone[state];
|
|
2197
2262
|
let content;
|
|
2198
2263
|
if (state === "loading") {
|
|
2199
|
-
content = /* @__PURE__ */ (0,
|
|
2264
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2200
2265
|
StateBlock,
|
|
2201
2266
|
{
|
|
2202
2267
|
variant: "loading",
|
|
@@ -2205,7 +2270,7 @@ function PlaybackSurface({
|
|
|
2205
2270
|
}
|
|
2206
2271
|
);
|
|
2207
2272
|
} else if (state === "empty") {
|
|
2208
|
-
content = emptyState ?? /* @__PURE__ */ (0,
|
|
2273
|
+
content = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2209
2274
|
EmptyState,
|
|
2210
2275
|
{
|
|
2211
2276
|
title: "No playback content available",
|
|
@@ -2213,7 +2278,7 @@ function PlaybackSurface({
|
|
|
2213
2278
|
}
|
|
2214
2279
|
);
|
|
2215
2280
|
} else if (state === "error") {
|
|
2216
|
-
content = errorState ?? /* @__PURE__ */ (0,
|
|
2281
|
+
content = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2217
2282
|
StateBlock,
|
|
2218
2283
|
{
|
|
2219
2284
|
variant: "error",
|
|
@@ -2222,23 +2287,23 @@ function PlaybackSurface({
|
|
|
2222
2287
|
}
|
|
2223
2288
|
);
|
|
2224
2289
|
} else {
|
|
2225
|
-
content = /* @__PURE__ */ (0,
|
|
2290
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Stack, { gap: "md", children: [
|
|
2226
2291
|
media,
|
|
2227
2292
|
overlays
|
|
2228
2293
|
] });
|
|
2229
2294
|
}
|
|
2230
|
-
return /* @__PURE__ */ (0,
|
|
2231
|
-
title || statusMessage || controls ? /* @__PURE__ */ (0,
|
|
2232
|
-
/* @__PURE__ */ (0,
|
|
2233
|
-
title ? /* @__PURE__ */ (0,
|
|
2234
|
-
statusMessage ? /* @__PURE__ */ (0,
|
|
2295
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Paper, { withBorder: true, radius: "xl", p: "lg", "data-playback-mode": mode, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Stack, { gap: "md", children: [
|
|
2296
|
+
title || statusMessage || controls ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2297
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Stack, { gap: 4, children: [
|
|
2298
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Title, { order: 3, children: title }) : null,
|
|
2299
|
+
statusMessage ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Text, { size: "sm", c: "dimmed", children: statusMessage }) : null
|
|
2235
2300
|
] }),
|
|
2236
|
-
/* @__PURE__ */ (0,
|
|
2237
|
-
/* @__PURE__ */ (0,
|
|
2301
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Group, { gap: "sm", align: "center", wrap: "wrap", children: [
|
|
2302
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Badge, { variant: "light", color: tone.color, children: tone.label }),
|
|
2238
2303
|
controls
|
|
2239
2304
|
] })
|
|
2240
2305
|
] }) : null,
|
|
2241
|
-
state === "degraded" ? /* @__PURE__ */ (0,
|
|
2306
|
+
state === "degraded" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2242
2307
|
StateBlock,
|
|
2243
2308
|
{
|
|
2244
2309
|
variant: "info",
|
|
@@ -2252,22 +2317,22 @@ function PlaybackSurface({
|
|
|
2252
2317
|
}
|
|
2253
2318
|
|
|
2254
2319
|
// src/MediaField.tsx
|
|
2255
|
-
var
|
|
2320
|
+
var import_core37 = require("@mantine/core");
|
|
2256
2321
|
|
|
2257
2322
|
// src/FormField.tsx
|
|
2258
|
-
var
|
|
2259
|
-
var
|
|
2323
|
+
var import_core36 = require("@mantine/core");
|
|
2324
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2260
2325
|
function FormField({ label, description, error, children }) {
|
|
2261
|
-
return /* @__PURE__ */ (0,
|
|
2262
|
-
typeof label === "string" ? /* @__PURE__ */ (0,
|
|
2263
|
-
description ? typeof description === "string" ? /* @__PURE__ */ (0,
|
|
2326
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Box, { component: "label", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core36.Stack, { gap: 4, children: [
|
|
2327
|
+
typeof label === "string" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Text, { size: "xs", fw: 600, c: "dimmed", children: label }) : label,
|
|
2328
|
+
description ? typeof description === "string" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Text, { size: "xs", c: "dimmed", children: description }) : description : null,
|
|
2264
2329
|
children,
|
|
2265
|
-
error ? typeof error === "string" ? /* @__PURE__ */ (0,
|
|
2330
|
+
error ? typeof error === "string" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Text, { size: "xs", c: "red.7", children: error }) : error : null
|
|
2266
2331
|
] }) });
|
|
2267
2332
|
}
|
|
2268
2333
|
|
|
2269
2334
|
// src/MediaField.tsx
|
|
2270
|
-
var
|
|
2335
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2271
2336
|
var stateLabels = {
|
|
2272
2337
|
empty: { label: "Empty", color: "gray" },
|
|
2273
2338
|
selected: { label: "Selected", color: "blue" },
|
|
@@ -2295,32 +2360,32 @@ function MediaField({
|
|
|
2295
2360
|
mode = "stacked"
|
|
2296
2361
|
}) {
|
|
2297
2362
|
const stateBadge = stateLabels[state];
|
|
2298
|
-
const resolvedRemoveAction = removeAction ?? (onRemove ? /* @__PURE__ */ (0,
|
|
2299
|
-
const resolvedResetAction = resetAction ?? (onReset ? /* @__PURE__ */ (0,
|
|
2300
|
-
return /* @__PURE__ */ (0,
|
|
2363
|
+
const resolvedRemoveAction = removeAction ?? (onRemove ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Button, { type: "button", variant: "light", color: "red", onClick: onRemove, children: "Remove" }) : null);
|
|
2364
|
+
const resolvedResetAction = resetAction ?? (onReset ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Button, { type: "button", variant: "default", onClick: onReset, children: "Reset" }) : null);
|
|
2365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2301
2366
|
FormField,
|
|
2302
2367
|
{
|
|
2303
2368
|
label,
|
|
2304
2369
|
description,
|
|
2305
2370
|
error,
|
|
2306
|
-
children: /* @__PURE__ */ (0,
|
|
2307
|
-
/* @__PURE__ */ (0,
|
|
2308
|
-
/* @__PURE__ */ (0,
|
|
2371
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core37.Stack, { gap: "md", children: [
|
|
2372
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Group, { justify: "flex-end", align: "center", gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core37.Group, { gap: "xs", justify: "flex-end", children: [
|
|
2373
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label }),
|
|
2309
2374
|
statusAction
|
|
2310
2375
|
] }) }),
|
|
2311
2376
|
preview ? preview : null,
|
|
2312
|
-
uploadControl || urlInput ? /* @__PURE__ */ (0,
|
|
2313
|
-
/* @__PURE__ */ (0,
|
|
2314
|
-
/* @__PURE__ */ (0,
|
|
2377
|
+
uploadControl || urlInput ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
2378
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Divider, {}),
|
|
2379
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core37.Stack, { gap: "sm", style: mode === "split" ? { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))" } : void 0, children: [
|
|
2315
2380
|
uploadControl,
|
|
2316
2381
|
urlInput
|
|
2317
2382
|
] })
|
|
2318
2383
|
] }) : null,
|
|
2319
|
-
value ? /* @__PURE__ */ (0,
|
|
2320
|
-
helpText ? /* @__PURE__ */ (0,
|
|
2321
|
-
policyText ? /* @__PURE__ */ (0,
|
|
2384
|
+
value ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Text, { size: "sm", c: "dimmed", style: { wordBreak: "break-all" }, children: value }) : null,
|
|
2385
|
+
helpText ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Text, { size: "sm", c: "dimmed", children: helpText }) : null,
|
|
2386
|
+
policyText ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Text, { size: "sm", c: error ? "red.7" : "dimmed", children: policyText }) : null,
|
|
2322
2387
|
typeof error !== "string" && error ? error : null,
|
|
2323
|
-
resolvedRemoveAction || resolvedResetAction ? /* @__PURE__ */ (0,
|
|
2388
|
+
resolvedRemoveAction || resolvedResetAction ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core37.Group, { gap: "sm", children: [
|
|
2324
2389
|
resolvedResetAction,
|
|
2325
2390
|
retryAction,
|
|
2326
2391
|
resolvedRemoveAction
|
|
@@ -2331,49 +2396,49 @@ function MediaField({
|
|
|
2331
2396
|
}
|
|
2332
2397
|
|
|
2333
2398
|
// src/MediaCard.tsx
|
|
2334
|
-
var
|
|
2335
|
-
var
|
|
2399
|
+
var import_core38 = require("@mantine/core");
|
|
2400
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2336
2401
|
function MediaCard({ title, image, description, status, overlay, actions = [] }) {
|
|
2337
2402
|
const EyeIcon = GdsIcons.Eye;
|
|
2338
|
-
return /* @__PURE__ */ (0,
|
|
2339
|
-
/* @__PURE__ */ (0,
|
|
2403
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Card, { withBorder: true, radius: "lg", padding: "md", children: [
|
|
2404
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Card.Section, { pos: "relative", children: [
|
|
2340
2405
|
image,
|
|
2341
|
-
overlay ? /* @__PURE__ */ (0,
|
|
2406
|
+
overlay ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { style: { position: "absolute", inset: 12, display: "flex", justifyContent: "flex-end", alignItems: "flex-start" }, children: overlay }) : null
|
|
2342
2407
|
] }),
|
|
2343
|
-
/* @__PURE__ */ (0,
|
|
2344
|
-
/* @__PURE__ */ (0,
|
|
2345
|
-
/* @__PURE__ */ (0,
|
|
2346
|
-
/* @__PURE__ */ (0,
|
|
2347
|
-
description ? /* @__PURE__ */ (0,
|
|
2408
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Stack, { gap: "sm", mt: "md", children: [
|
|
2409
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Group, { justify: "space-between", align: "flex-start", children: [
|
|
2410
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Stack, { gap: 4, children: [
|
|
2411
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Title, { order: 4, children: title }),
|
|
2412
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Text, { size: "sm", c: "dimmed", lineClamp: 2, children: description }) : null
|
|
2348
2413
|
] }),
|
|
2349
|
-
status ? /* @__PURE__ */ (0,
|
|
2414
|
+
status ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Badge, { variant: "light", children: status }) : null
|
|
2350
2415
|
] }),
|
|
2351
|
-
actions.length ? /* @__PURE__ */ (0,
|
|
2416
|
+
actions.length ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Group, { justify: "flex-end", gap: "xs", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.ActionIcon, { variant: "light", "aria-label": action.label, onClick: action.onClick, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(EyeIcon, { size: "1rem" }) }, action.label)) }) : null
|
|
2352
2417
|
] })
|
|
2353
2418
|
] });
|
|
2354
2419
|
}
|
|
2355
2420
|
|
|
2356
2421
|
// src/AccessSummary.tsx
|
|
2357
|
-
var
|
|
2358
|
-
var
|
|
2422
|
+
var import_core39 = require("@mantine/core");
|
|
2423
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2359
2424
|
function AccessSummary({ title, roles, scope, blocked = false, description }) {
|
|
2360
|
-
return /* @__PURE__ */ (0,
|
|
2361
|
-
/* @__PURE__ */ (0,
|
|
2362
|
-
/* @__PURE__ */ (0,
|
|
2363
|
-
/* @__PURE__ */ (0,
|
|
2425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Stack, { gap: "sm", children: [
|
|
2426
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Group, { justify: "space-between", align: "center", children: [
|
|
2427
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Title, { order: 4, children: title }),
|
|
2428
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Badge, { color: blocked ? "red" : "teal", variant: "light", children: blocked ? "Blocked" : "Allowed" })
|
|
2364
2429
|
] }),
|
|
2365
|
-
/* @__PURE__ */ (0,
|
|
2366
|
-
scope ? /* @__PURE__ */ (0,
|
|
2430
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Group, { gap: "xs", children: roles.map((role) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Badge, { variant: "outline", children: role }, role)) }),
|
|
2431
|
+
scope ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Text, { size: "sm", c: "dimmed", children: [
|
|
2367
2432
|
"Scope: ",
|
|
2368
2433
|
scope
|
|
2369
2434
|
] }) : null,
|
|
2370
|
-
description ? /* @__PURE__ */ (0,
|
|
2435
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Text, { size: "sm", children: description }) : null
|
|
2371
2436
|
] }) });
|
|
2372
2437
|
}
|
|
2373
2438
|
|
|
2374
2439
|
// src/PageHeader.tsx
|
|
2375
|
-
var
|
|
2376
|
-
var
|
|
2440
|
+
var import_core40 = require("@mantine/core");
|
|
2441
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2377
2442
|
function PageHeader({
|
|
2378
2443
|
title,
|
|
2379
2444
|
description,
|
|
@@ -2384,19 +2449,19 @@ function PageHeader({
|
|
|
2384
2449
|
}) {
|
|
2385
2450
|
const resolvedDescription = description ?? subtitle;
|
|
2386
2451
|
const eyebrowProps = eyebrowVariant === "ornamental" ? { tt: "uppercase", style: { letterSpacing: "0.12em" } } : {};
|
|
2387
|
-
return /* @__PURE__ */ (0,
|
|
2388
|
-
/* @__PURE__ */ (0,
|
|
2389
|
-
eyebrow && /* @__PURE__ */ (0,
|
|
2390
|
-
/* @__PURE__ */ (0,
|
|
2391
|
-
resolvedDescription && /* @__PURE__ */ (0,
|
|
2452
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core40.Group, { justify: "space-between", align: "flex-start", gap: "lg", wrap: "wrap", children: [
|
|
2453
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core40.Stack, { gap: "xs", children: [
|
|
2454
|
+
eyebrow && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Text, { size: "xs", fw: 700, c: "dimmed", ...eyebrowProps, children: eyebrow }),
|
|
2455
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Title, { order: 1, children: title }),
|
|
2456
|
+
resolvedDescription && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Text, { c: "dimmed", maw: 720, children: resolvedDescription })
|
|
2392
2457
|
] }),
|
|
2393
|
-
actions ? /* @__PURE__ */ (0,
|
|
2458
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Box, { children: actions }) : null
|
|
2394
2459
|
] });
|
|
2395
2460
|
}
|
|
2396
2461
|
|
|
2397
2462
|
// src/FilterDrawer.tsx
|
|
2398
|
-
var
|
|
2399
|
-
var
|
|
2463
|
+
var import_core41 = require("@mantine/core");
|
|
2464
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
2400
2465
|
function FilterDrawer({
|
|
2401
2466
|
opened,
|
|
2402
2467
|
onClose,
|
|
@@ -2412,8 +2477,8 @@ function FilterDrawer({
|
|
|
2412
2477
|
}) {
|
|
2413
2478
|
const resolvedPrimaryAction = applyAction ?? primaryAction;
|
|
2414
2479
|
const resolvedSecondaryAction = resetAction ?? secondaryAction;
|
|
2415
|
-
return /* @__PURE__ */ (0,
|
|
2416
|
-
|
|
2480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
2481
|
+
import_core41.Drawer,
|
|
2417
2482
|
{
|
|
2418
2483
|
opened,
|
|
2419
2484
|
onClose,
|
|
@@ -2421,11 +2486,11 @@ function FilterDrawer({
|
|
|
2421
2486
|
position: mode === "bottom-sheet" ? "bottom" : "right",
|
|
2422
2487
|
size: mode === "bottom-sheet" ? "auto" : "md",
|
|
2423
2488
|
radius: mode === "bottom-sheet" ? "xl" : void 0,
|
|
2424
|
-
children: /* @__PURE__ */ (0,
|
|
2425
|
-
description ? /* @__PURE__ */ (0,
|
|
2489
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core41.Stack, { gap: "md", children: [
|
|
2490
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core41.Text, { size: "sm", c: "dimmed", children: description }) : null,
|
|
2426
2491
|
children,
|
|
2427
|
-
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ (0,
|
|
2428
|
-
/* @__PURE__ */ (0,
|
|
2492
|
+
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core41.Group, { justify: "space-between", mt: "md", children: [
|
|
2493
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core41.Group, { gap: "sm", children: [
|
|
2429
2494
|
closeAction,
|
|
2430
2495
|
resolvedSecondaryAction
|
|
2431
2496
|
] }),
|
|
@@ -2437,8 +2502,8 @@ function FilterDrawer({
|
|
|
2437
2502
|
}
|
|
2438
2503
|
|
|
2439
2504
|
// src/PlaceholderPanel.tsx
|
|
2440
|
-
var
|
|
2441
|
-
var
|
|
2505
|
+
var import_core42 = require("@mantine/core");
|
|
2506
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
2442
2507
|
function PlaceholderPanel({
|
|
2443
2508
|
title,
|
|
2444
2509
|
description,
|
|
@@ -2448,16 +2513,16 @@ function PlaceholderPanel({
|
|
|
2448
2513
|
mode
|
|
2449
2514
|
}) {
|
|
2450
2515
|
if (mode === "live" && children) {
|
|
2451
|
-
return /* @__PURE__ */ (0,
|
|
2516
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children });
|
|
2452
2517
|
}
|
|
2453
|
-
return /* @__PURE__ */ (0,
|
|
2454
|
-
badge ? /* @__PURE__ */ (0,
|
|
2455
|
-
/* @__PURE__ */ (0,
|
|
2456
|
-
/* @__PURE__ */ (0,
|
|
2457
|
-
/* @__PURE__ */ (0,
|
|
2518
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core42.Card, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core42.Stack, { gap: "md", children: [
|
|
2519
|
+
badge ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core42.Badge, { variant: "light", color: "blue", w: "fit-content", children: badge }) : null,
|
|
2520
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core42.Stack, { gap: "xs", children: [
|
|
2521
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core42.Title, { order: 4, children: title }),
|
|
2522
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core42.Text, { c: "dimmed", children: description })
|
|
2458
2523
|
] }),
|
|
2459
|
-
footer ? /* @__PURE__ */ (0,
|
|
2460
|
-
/* @__PURE__ */ (0,
|
|
2524
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core42.Text, { size: "sm", children: footer }) : null,
|
|
2525
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
2461
2526
|
StateBlock,
|
|
2462
2527
|
{
|
|
2463
2528
|
variant: "not-enough-data",
|
|
@@ -2470,8 +2535,8 @@ function PlaceholderPanel({
|
|
|
2470
2535
|
}
|
|
2471
2536
|
|
|
2472
2537
|
// src/SimpleDataTable.tsx
|
|
2473
|
-
var
|
|
2474
|
-
var
|
|
2538
|
+
var import_core43 = require("@mantine/core");
|
|
2539
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
2475
2540
|
function SimpleDataTable({
|
|
2476
2541
|
columns,
|
|
2477
2542
|
rows,
|
|
@@ -2482,23 +2547,23 @@ function SimpleDataTable({
|
|
|
2482
2547
|
getRowKey
|
|
2483
2548
|
}) {
|
|
2484
2549
|
if (error) {
|
|
2485
|
-
return /* @__PURE__ */ (0,
|
|
2550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
|
|
2486
2551
|
}
|
|
2487
2552
|
if (loading) {
|
|
2488
|
-
return /* @__PURE__ */ (0,
|
|
2553
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(StateBlock, { variant: "loading", title: "Loading data", description: "Please wait while the shared dataset is prepared.", compact: true });
|
|
2489
2554
|
}
|
|
2490
2555
|
if (!rows.length) {
|
|
2491
|
-
return /* @__PURE__ */ (0,
|
|
2556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
|
|
2492
2557
|
}
|
|
2493
|
-
return /* @__PURE__ */ (0,
|
|
2494
|
-
/* @__PURE__ */ (0,
|
|
2495
|
-
/* @__PURE__ */ (0,
|
|
2558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.ScrollArea, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_core43.Table, { striped: true, highlightOnHover: true, withTableBorder: true, withColumnBorders: true, children: [
|
|
2559
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Table.Thead, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Table.Th, { children: column.header }, String(column.key))) }) }),
|
|
2560
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Table.Tbody, { children: rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Table.Td, { children: column.render ? column.render(row) : String(row[column.key] ?? "") }, String(column.key))) }, getRowKey ? getRowKey(row, index) : index)) })
|
|
2496
2561
|
] }) });
|
|
2497
2562
|
}
|
|
2498
2563
|
|
|
2499
2564
|
// src/StatsSection.tsx
|
|
2500
|
-
var
|
|
2501
|
-
var
|
|
2565
|
+
var import_core44 = require("@mantine/core");
|
|
2566
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2502
2567
|
function StatsSection({
|
|
2503
2568
|
title,
|
|
2504
2569
|
loading = false,
|
|
@@ -2510,11 +2575,11 @@ function StatsSection({
|
|
|
2510
2575
|
}) {
|
|
2511
2576
|
let content = children;
|
|
2512
2577
|
if (error) {
|
|
2513
|
-
content = /* @__PURE__ */ (0,
|
|
2578
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
|
|
2514
2579
|
} else if (loading) {
|
|
2515
|
-
content = /* @__PURE__ */ (0,
|
|
2580
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
|
|
2516
2581
|
} else if (belowThreshold) {
|
|
2517
|
-
content = /* @__PURE__ */ (0,
|
|
2582
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2518
2583
|
StateBlock,
|
|
2519
2584
|
{
|
|
2520
2585
|
variant: "not-enough-data",
|
|
@@ -2524,10 +2589,10 @@ function StatsSection({
|
|
|
2524
2589
|
}
|
|
2525
2590
|
);
|
|
2526
2591
|
} else if (placeholder) {
|
|
2527
|
-
content = /* @__PURE__ */ (0,
|
|
2592
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
|
|
2528
2593
|
}
|
|
2529
|
-
return /* @__PURE__ */ (0,
|
|
2530
|
-
/* @__PURE__ */ (0,
|
|
2594
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_core44.Stack, { gap: "md", children: [
|
|
2595
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.Title, { order: 3, children: title }),
|
|
2531
2596
|
content
|
|
2532
2597
|
] });
|
|
2533
2598
|
}
|
|
@@ -3874,6 +3939,9 @@ function getGdsMessages(locale) {
|
|
|
3874
3939
|
PublicProductCard,
|
|
3875
3940
|
PublicShell,
|
|
3876
3941
|
PublicSiteFooter,
|
|
3942
|
+
ReferenceLinkGrid,
|
|
3943
|
+
ReferenceLocaleNotice,
|
|
3944
|
+
ReferenceSection,
|
|
3877
3945
|
SectionPanel,
|
|
3878
3946
|
SimpleDataTable,
|
|
3879
3947
|
SocialAuthButtons,
|