@doneisbetter/gds-core 2.6.4 → 2.6.6

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/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/SectionPanel.tsx
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, import_jsx_runtime6.jsx)(import_core6.Paper, { id, withBorder: true, radius: "xl", p: "lg", style: { background: toneBackgrounds[tone] }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Stack, { gap: "md", children: [
475
- title || description || action ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
476
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
477
- title || description ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Stack, { gap: 4, children: [
478
- title ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Title, { order: 3, children: title }) : null,
479
- description ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Text, { size: "sm", c: "dimmed", children: description }) : null
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, import_jsx_runtime6.jsx)(import_core6.Divider, {}) : null
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 import_jsx_runtime7 = require("react/jsx-runtime");
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, import_jsx_runtime7.jsx)(SectionPanel, { title, description, action, tone, children });
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 import_core7 = require("@mantine/core");
503
- var import_jsx_runtime8 = require("react/jsx-runtime");
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, import_jsx_runtime8.jsx)(import_core7.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children });
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 import_core8 = require("@mantine/core");
513
- var import_jsx_runtime9 = require("react/jsx-runtime");
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, import_jsx_runtime9.jsx)(import_core8.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Stack, { gap: "md", children: [
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, import_jsx_runtime9.jsxs)(import_core8.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
529
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Group, { align: "flex-start", gap: "sm", wrap: "nowrap", children: [
530
- icon ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.ThemeIcon, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null,
531
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Stack, { gap: 4, children: [
532
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Title, { order: 4, children: title }),
533
- description ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Text, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
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, import_jsx_runtime9.jsxs)(import_core8.Group, { gap: "xs", align: "center", wrap: "nowrap", children: [
537
- typeof status === "string" ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Badge, { variant: "light", children: status }) : status,
538
- secondaryActions.length ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Menu, { position: "bottom-end", withinPortal: true, children: [
539
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Menu.Target, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.ActionIcon, { variant: "subtle", "aria-label": "More actions", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(MoreIcon, { size: "1rem" }) }) }),
540
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Menu.Dropdown, { children: secondaryActions.map(
541
- (action) => action.href ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Menu.Item, { component: "a", href: action.href, color: action.color, children: action.label }, action.label) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Menu.Item, { onClick: action.onClick, color: action.color, children: action.label }, action.label)
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, import_jsx_runtime9.jsx)(import_core8.Stack, { gap: 6, children: metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Group, { justify: "space-between", gap: "sm", children: [
547
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Text, { size: "sm", c: "dimmed", children: item.label }),
548
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Text, { size: "sm", fw: 500, ta: "right", children: item.value })
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, import_jsx_runtime9.jsx)(import_core8.Group, { justify: "space-between", children: primaryAction }) : null,
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 import_core9 = require("@mantine/core");
557
- var import_jsx_runtime10 = require("react/jsx-runtime");
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, import_jsx_runtime10.jsx)(import_core9.AspectRatio, { ratio: compact ? 16 / 10 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
578
- import_core9.Box,
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, import_jsx_runtime10.jsx)(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
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, import_jsx_runtime10.jsxs)(
612
- import_core9.Card,
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, import_jsx_runtime10.jsx)(import_core9.Card.Section, { className: classNames?.media, children: media ?? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(EditorialMediaFallback, { compact }) }),
627
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_core9.Stack, { gap: "md", p: compact ? "md" : "lg", className: classNames?.body, children: [
628
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_core9.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
629
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_core9.Stack, { gap: 4, flex: 1, children: [
630
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Text, { size: "xs", fw: 700, c: "dimmed", children: eyebrow }) : null,
631
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Title, { order: compact ? 4 : 3, className: classNames?.title, children: title })
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, import_jsx_runtime10.jsx)(import_core9.Badge, { color: palette.accent, variant: "light", children: badge }) : badge : null
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, import_jsx_runtime10.jsx)(import_core9.Text, { size: "sm", c: "dimmed", children: description }) : null,
636
- meta ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Text, { size: "sm", c: "dimmed", className: classNames?.meta, children: meta }) : null,
637
- href || onClick || ctaLabel ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_core9.Group, { gap: 6, c: `${palette.accent}.7`, className: classNames?.action, children: [
638
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.Text, { fw: 600, size: "sm", children: ctaLabel }),
639
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
640
- import_core9.Anchor,
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 import_core10 = require("@mantine/core");
659
- var import_jsx_runtime11 = require("react/jsx-runtime");
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, import_jsx_runtime11.jsx)(import_core10.AspectRatio, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
677
- import_core10.ThemeIcon,
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, import_jsx_runtime11.jsx)(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
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, import_jsx_runtime11.jsx)(import_core10.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Stack, { gap: "md", children: [
690
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.AspectRatio, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Skeleton, { radius: "md" }) }),
691
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Stack, { gap: "xs", children: [
692
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Skeleton, { height: 20, radius: "sm", width: "70%" }),
693
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Skeleton, { height: 14, radius: "sm", width: "100%" }),
694
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Skeleton, { height: 14, radius: "sm", width: "85%" })
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, import_jsx_runtime11.jsxs)(import_core10.Group, { justify: "space-between", align: "center", children: [
697
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Skeleton, { height: 18, radius: "sm", width: 72 }),
698
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Skeleton, { height: 36, radius: "md", width: 120 })
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, import_jsx_runtime11.jsx)(LoadingCard, { compact });
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, import_jsx_runtime11.jsx)(import_core10.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Stack, { gap: compact ? "sm" : "md", children: [
735
- image ?? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ImageFallback, { compact }),
736
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", gap: "sm", children: [
737
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Stack, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
738
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Title, { order: compact ? 5 : 4, lineClamp: 2, children: title }),
739
- description ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
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, import_jsx_runtime11.jsx)(import_core10.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
873
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
742
874
  ] }),
743
- hasSupportingRegion ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Group, { justify: "space-between", align: "flex-end", gap: "sm", wrap: "nowrap", children: [
744
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Stack, { gap: 2, style: { minWidth: 0, flex: 1 }, children: [
745
- price ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { fw: 700, size: compact ? "md" : "lg", children: price }) : null,
746
- supportingHelper ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "xs", c: "dimmed", children: supportingHelper }) : null
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, import_jsx_runtime11.jsx)(import_core10.Group, { justify: "flex-end", children: resolvedPrimaryAction }) : null,
750
- pickupHelper || inventoryHelper || metadata.length ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Stack, { gap: 6, children: [
751
- pickupHelper ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_core10.Group, { justify: "space-between", gap: "sm", children: [
752
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "sm", c: "dimmed", children: "Pickup" }),
753
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "sm", fw: 500, ta: "right", children: pickupHelper })
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, import_jsx_runtime11.jsxs)(import_core10.Group, { justify: "space-between", gap: "sm", children: [
756
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "sm", c: "dimmed", children: "Availability" }),
757
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "sm", fw: 500, ta: "right", children: inventoryHelper })
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, import_jsx_runtime11.jsxs)(import_core10.Group, { justify: "space-between", gap: "sm", children: [
760
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "sm", c: "dimmed", children: item.label }),
761
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "sm", fw: 500, ta: "right", children: item.value })
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, import_jsx_runtime11.jsx)(import_core10.Group, { justify: "flex-end", children: resolvedSecondaryAction }) : null
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 import_core11 = require("@mantine/core");
771
- var import_jsx_runtime12 = require("react/jsx-runtime");
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, import_jsx_runtime12.jsx)(import_core11.AspectRatio, { ratio: ratioMap[mediaRatio], children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.ThemeIcon, { size: "100%", radius: "md", variant: "light", color: "gray", "aria-label": "No food image available", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(GdsIcons.Gallery, { size: "2rem" }) }) });
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, import_jsx_runtime12.jsx)(import_core11.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: "md", children: [
804
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.AspectRatio, { ratio: ratioMap[mediaRatio], children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Skeleton, { radius: "md" }) }),
805
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: "xs", children: [
806
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Skeleton, { height: 20, radius: "sm", width: "72%" }),
807
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Skeleton, { height: 14, radius: "sm", width: "96%" }),
808
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Skeleton, { height: 14, radius: "sm", width: "78%" })
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, import_jsx_runtime12.jsxs)(import_core11.Group, { justify: "space-between", align: "center", children: [
811
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Skeleton, { height: 18, radius: "sm", width: 96 }),
812
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Skeleton, { height: 36, radius: "md", width: 112 })
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, import_jsx_runtime12.jsx)(LoadingFoodCard, { mediaRatio });
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, import_jsx_runtime12.jsx)(import_core11.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: "md", children: [
843
- image ?? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FoodImageFallback, { mediaRatio }),
844
- markers.length > 0 || quantityHint ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Group, { justify: "space-between", align: "center", wrap: "wrap", gap: "xs", children: [
845
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Group, { gap: "xs", wrap: "wrap", children: markers.map((marker) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Badge, { variant: "light", color: markerToneMap[marker.tone ?? "default"], children: marker.label }, marker.id)) }),
846
- quantityHint ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "xs", fw: 600, c: "dimmed", children: quantityHint }) : null
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, import_jsx_runtime12.jsxs)(import_core11.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
849
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
850
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Title, { order: 4, lineClamp: 2, children: title }),
851
- description ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
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, import_jsx_runtime12.jsx)(import_core11.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
985
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core14.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
854
986
  ] }),
855
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Group, { justify: "space-between", align: "flex-end", gap: "sm", wrap: "nowrap", children: [
856
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: 2, style: { minWidth: 0, flex: 1 }, children: [
857
- price ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { fw: 800, size: "lg", children: price }) : null,
858
- priceNote ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "xs", c: "dimmed", children: priceNote }) : null,
859
- helperText ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", c: "dimmed", children: helperText }) : null
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, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: 6, children: [
864
- pickupNote ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
865
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", c: "dimmed", children: "Pickup" }),
866
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", fw: 500, ta: "right", children: pickupNote })
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, import_jsx_runtime12.jsxs)(import_core11.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
869
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", c: "dimmed", children: "Freshness" }),
870
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", fw: 500, ta: "right", children: freshnessNote })
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, import_jsx_runtime12.jsx)(import_core11.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Group, { gap: "xs", wrap: "nowrap", children: [
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, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", c: "dimmed", children: item.label })
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, import_jsx_runtime12.jsx)(import_core11.Group, { justify: "flex-end", children: resolvedSecondaryAction }) : null
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 import_core12 = require("@mantine/core");
883
- var import_jsx_runtime13 = require("react/jsx-runtime");
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, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
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, import_jsx_runtime13.jsx)(import_core12.Box, { component: "section", "aria-label": typeof title === "string" ? title : "Food menu section", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Stack, { gap: "xl", children: [
907
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
908
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Stack, { gap: 4, children: [
909
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
910
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Title, { order: 2, children: title }),
911
- description ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "sm", c: "dimmed", maw: 760, children: description }) : null,
912
- sectionNote ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "sm", c: "dimmed", children: sectionNote }) : null
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, import_jsx_runtime13.jsx)(import_core12.Stack, { gap: "xl", children: visibleCategories.map((category) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Stack, { gap: "md", children: [
917
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Stack, { gap: 4, children: [
918
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Title, { order: 3, children: category.title }),
919
- category.description ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "sm", c: "dimmed", children: category.description }) : null,
920
- category.helperNote ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "sm", c: "dimmed", children: category.helperNote }) : null
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, import_jsx_runtime13.jsx)(import_core12.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: category.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(PublicFoodCard, { ...item }, item.id)) }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
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 import_core13 = require("@mantine/core");
935
- var import_jsx_runtime14 = require("react/jsx-runtime");
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, import_jsx_runtime14.jsx)(import_core13.AspectRatio, { ratio: ratioMap2[mediaRatio], children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
949
- import_core13.ThemeIcon,
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, import_jsx_runtime14.jsx)(GdsIcons.Gallery, { size: "2rem" })
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, import_jsx_runtime14.jsx)(
966
- import_core13.ActionIcon,
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, import_jsx_runtime14.jsx)(Icon, { size: "1rem", stroke: 1.75 })
1106
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { size: "1rem", stroke: 1.75 })
975
1107
  }
976
1108
  );
977
1109
  }
978
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
979
- import_core13.ActionIcon,
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, import_jsx_runtime14.jsx)(Icon, { size: "1rem", stroke: 1.75 })
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, import_jsx_runtime14.jsx)(import_core13.Text, { component: "a", href, inherit: true, td: "none", children: title }) : title;
1006
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: compact ? "sm" : "md", children: [
1007
- image ?? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ListingImageFallback, { mediaRatio }),
1008
- featured || sponsoredDisclosure ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", gap: "sm", wrap: "wrap", children: [
1009
- featured ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Badge, { variant: "light", color: "violet", children: "Featured" }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", {}),
1010
- sponsoredDisclosure ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "xs", c: "dimmed", children: sponsoredDisclosure }) : null
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, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: 4, children: [
1013
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Title, { order: compact ? 5 : 4, lineClamp: 2, children: titleContent }),
1014
- description ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
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, import_jsx_runtime14.jsx)(import_core13.Stack, { gap: "xs", children: metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
1017
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { gap: "xs", wrap: "nowrap", style: { minWidth: 0, flex: 1 }, children: [
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, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", c: item.tone ? toneColorMap[item.tone] : "dimmed", lineClamp: 1, children: item.label })
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, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", fw: 500, ta: "right", children: item.value }) : null
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, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", align: "center", gap: "sm", wrap: "wrap", children: [
1024
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Stack, { gap: 2, style: { minWidth: 0, flex: 1 }, children: price ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { fw: 700, size: compact ? "md" : "lg", children: price }) : null }),
1025
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { gap: "xs", wrap: "nowrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
1026
- saveAction ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ListingAffordance, { affordance: saveAction }) : null,
1027
- shareAction ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ListingAffordance, { affordance: shareAction }) : null,
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 import_core16 = require("@mantine/core");
1167
+ var import_core19 = require("@mantine/core");
1036
1168
 
1037
1169
  // src/DataToolbar.tsx
1038
- var import_core14 = require("@mantine/core");
1039
- var import_jsx_runtime15 = require("react/jsx-runtime");
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, import_jsx_runtime15.jsxs)(import_core14.Stack, { gap: "sm", children: [
1049
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core14.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
1050
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core14.Group, { flex: 1, align: "flex-start", gap: "sm", children: [
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, import_jsx_runtime15.jsxs)(import_core14.Group, { gap: "sm", children: [
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, import_jsx_runtime15.jsx)(import_core14.Group, { gap: "xs", children: activeFilters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1061
- import_core14.Badge,
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 import_core15 = require("@mantine/core");
1076
- var import_jsx_runtime16 = require("react/jsx-runtime");
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, import_jsx_runtime16.jsx)(import_core15.Loader, { size: "sm" }) },
1079
- empty: { color: "gray", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Inbox, { size: "1.1rem" }) },
1080
- error: { color: "red", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Danger, { size: "1.1rem" }) },
1081
- permission: { color: "orange", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Verify, { size: "1.1rem" }) },
1082
- disabled: { color: "gray", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Toggle, { size: "1.1rem" }) },
1083
- success: { color: "teal", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Success, { size: "1.1rem" }) },
1084
- info: { color: "blue", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Info, { size: "1.1rem" }) },
1085
- "not-enough-data": { color: "yellow", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Analytics, { size: "1.1rem" }) }
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, import_jsx_runtime16.jsxs)(
1097
- import_core15.Stack,
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, import_jsx_runtime16.jsx)(import_core15.ThemeIcon, { variant: "light", color: config.color, size: compact ? "lg" : "xl", radius: "xl", children: icon ?? config.icon }),
1106
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core15.Stack, { gap: 6, align: compact ? "flex-start" : "center", children: [
1107
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core15.Title, { order: compact ? 4 : 3, children: title }),
1108
- description ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core15.Text, { c: "dimmed", maw: compact ? void 0 : 480, children: description }) : null
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 import_jsx_runtime17 = require("react/jsx-runtime");
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, import_jsx_runtime17.jsx)(StateBlock, { variant: "loading", title: loadingTitle, description: loadingDescription, compact: true });
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, import_jsx_runtime17.jsx)(StateBlock, { variant: "error", title: errorTitle, description: error, action: errorAction ?? emptyAction, compact: true });
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, import_jsx_runtime17.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, action: emptyAction, compact: true });
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, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "lg", children: [
1158
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Paper, { withBorder: true, radius: "xl", p: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "lg", children: [
1159
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Group, { justify: "space-between", align: "flex-start", gap: "md", children: [
1160
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", maw: 760, children: [
1161
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "xs", fw: 700, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.18em" }, children: eyebrow }) : null,
1162
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Title, { order: 1, children: title }),
1163
- description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "lg", c: "dimmed", children: description }) : null
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, import_jsx_runtime17.jsxs)(import_core16.Stack, { align: "flex-end", gap: "xs", children: [
1166
- typeof resultCount === "number" ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Badge, { size: "lg", radius: "xl", variant: "light", color: "violet", children: [
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, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", children: [
1175
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: scopeLabel }),
1176
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Group, { gap: "xs", wrap: "wrap", children: scopeOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1177
- import_core16.Button,
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, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", children: [
1190
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: "Location" }),
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, import_jsx_runtime17.jsxs)(import_core16.SimpleGrid, { cols: { base: 1, lg: sortControl ? 2 : 1 }, spacing: "md", children: [
1194
- toolbar ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(import_core16.Box, {}),
1201
- sortControl ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", align: "stretch", children: [
1202
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: "Sort" }),
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, import_jsx_runtime17.jsxs)(import_core16.Stack, { hiddenFrom: "lg", gap: "xs", children: [
1207
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: "Filters" }),
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, import_jsx_runtime17.jsx)(import_core16.Box, { hiddenFrom: "lg", children: filterDrawer }) : null,
1211
- activeFilters.length ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Group, { gap: "xs", wrap: "wrap", children: activeFilters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1212
- import_core16.Badge,
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 import_core18 = require("@mantine/core");
1297
- var import_jsx_runtime19 = require("react/jsx-runtime");
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, import_jsx_runtime19.jsx)(import_core18.Paper, { withBorder: mode === "drawer", radius: mode === "drawer" ? "xl" : "md", p: padding, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core18.Stack, { gap: "lg", children: [
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, import_jsx_runtime19.jsxs)(import_core18.Stack, { gap: "lg", children: [
1312
- index > 0 && showDividers ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Divider, {}) : null,
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, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
1316
- content.length && showDividers ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Divider, {}) : null,
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 import_core20 = require("@mantine/core");
1388
+ var import_core22 = require("@mantine/core");
1324
1389
 
1325
1390
  // src/PublicNav.tsx
1326
- var import_core19 = require("@mantine/core");
1327
- var import_jsx_runtime20 = require("react/jsx-runtime");
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, import_jsx_runtime20.jsx)(import_core19.Group, { component: "nav", "aria-label": "Primary", gap: "lg", wrap: "nowrap", children: items.map((item) => {
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, import_jsx_runtime20.jsx)("span", { children: renderLink(item, active) }, item.id);
1397
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { children: renderLink(item, active) }, item.id);
1333
1398
  }
1334
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1335
- import_core19.Anchor,
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 import_jsx_runtime21 = require("react/jsx-runtime");
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, import_jsx_runtime21.jsxs)(import_core20.Box, { component: "details", hiddenFrom: "sm", className, children: [
1359
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1360
- import_core20.Box,
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, import_jsx_runtime21.jsx)(import_core20.Burger, { opened: false, "aria-hidden": true }),
1373
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Text, { size: "sm", fw: 600, children: "Menu" })
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, import_jsx_runtime21.jsx)(
1378
- import_core20.Box,
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, import_jsx_runtime21.jsx)(import_core20.Stack, { gap: "sm", children: mobileNavigation })
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, import_jsx_runtime21.jsx)(PublicNav, { items: navItems, activeId: activeNavId }) : null);
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, import_jsx_runtime21.jsxs)(
1415
- import_core20.AppShell,
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, import_jsx_runtime21.jsx)(import_core20.AppShell.Header, { withBorder: headerBordered, className: classNames?.header, "data-header-variant": headerVariant, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Container, { size: containerSize, h: "100%", py: headerVariant === "branded-quiet" ? "sm" : 0, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1423
- import_core20.Group,
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, import_jsx_runtime21.jsxs)(import_core20.Group, { wrap: "nowrap", gap: headerVariant === "compact" ? "xs" : "sm", className: classNames?.brand, children: [
1431
- usesInlineMobileNavigation ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
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, import_jsx_runtime21.jsx)(import_core20.Box, { children: brand })
1504
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core22.Box, { children: brand })
1440
1505
  ] }),
1441
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Group, { visibleFrom: "sm", gap: headerVariant === "compact" ? "md" : "lg", className: classNames?.navigation, children: resolvedNavigation }),
1442
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Group, { gap: "sm", className: classNames?.actions, children: actions })
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, import_jsx_runtime21.jsx)(import_core20.AppShell.Footer, { withBorder: true, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Container, { size: containerSize, h: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Group, { h: "100%", justify: "space-around", wrap: "nowrap", children: mobileNavigation }) }) }) : null,
1447
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core20.AppShell.Main, { children: [
1448
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Container, { size: containerSize, py: mainPadding, className: classNames?.content, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Stack, { gap: "xl", children }) }),
1449
- footer ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Box, { component: typeof footer === "string" ? "footer" : "div", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Container, { size: containerSize, children: typeof footer === "string" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Text, { size: "sm", c: "dimmed", children: footer }) : footer }) }) : null
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 import_core21 = require("@mantine/core");
1458
- var import_jsx_runtime22 = require("react/jsx-runtime");
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, import_jsx_runtime22.jsxs)(import_core21.Stack, { component: "footer", gap: "xs", children: [
1461
- children ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Text, { size: "sm", children }) : null,
1462
- meta ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Group, { gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Text, { size: "xs", c: "dimmed", children: meta }) }) : null
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 import_core22 = require("@mantine/core");
1468
- var import_jsx_runtime23 = require("react/jsx-runtime");
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, import_jsx_runtime23.jsx)(
1484
- import_core22.Paper,
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, import_jsx_runtime23.jsxs)(import_core22.Stack, { gap: "lg", children: [
1493
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_core22.Grid, { gutter: compact ? "lg" : "xl", align: "flex-start", children: [
1494
- media ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Grid.Col, { span: { base: 12, md: mediaSpan }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Box, { className: classNames?.media, children: media }) }) : null,
1495
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Grid.Col, { span: { base: 12, md: primarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_core22.Stack, { gap: compact ? "xs" : "sm", className: classNames?.primary, children: [
1496
- brandTitle ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Title, { order: 4, children: brandTitle }) : null,
1497
- description ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Text, { c: "dimmed", children: description }) : null,
1498
- actions ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Box, { children: actions }) : null
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, import_jsx_runtime23.jsx)(import_core22.Grid.Col, { span: { base: 12, md: secondarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Stack, { gap: compact ? "xs" : "sm", className: classNames?.secondary, children: secondary }) }) : null
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, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
1503
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Divider, {}),
1504
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Group, { justify: "space-between", gap: "sm", wrap: "wrap", className: classNames?.legal, children: typeof legal === "string" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Text, { size: "sm", c: "dimmed", children: legal }) : legal })
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 import_core23 = require("@mantine/core");
1513
- var import_jsx_runtime24 = require("react/jsx-runtime");
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, import_jsx_runtime24.jsx)(import_core23.Box, { py: { base: "xl", md: "4rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Container, { size: "xs", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Stack, { gap: "xl", children: [
1526
- brand || headerActions ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Group, { justify: brand && headerActions ? "space-between" : "center", align: "center", children: [
1527
- brand ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Box, { children: brand }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Box, {}),
1528
- headerActions ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Group, { gap: "sm", children: headerActions }) : null
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, import_jsx_runtime24.jsx)(import_core23.Card, { withBorder: true, radius: "lg", padding: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Stack, { gap: "lg", children: [
1531
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Stack, { gap: "xs", ta: "center", children: [
1532
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Title, { order: 2, children: title }),
1533
- description ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Text, { c: "dimmed", size: "sm", children: description }) : null
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, import_jsx_runtime24.jsx)(import_core23.Box, { children: socialAuth }) : null,
1536
- socialAuth ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Divider, { label: dividerLabel, labelPosition: "center" }) : null,
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, import_jsx_runtime24.jsx)(import_core23.Text, { size: "sm", c: "dimmed", ta: "center", children: helper }) : null
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, import_jsx_runtime24.jsx)(import_core23.Text, { size: "sm", c: "dimmed", ta: "center", children: footer }) : null
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 import_core24 = require("@mantine/core");
1546
- var import_jsx_runtime25 = require("react/jsx-runtime");
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, import_jsx_runtime25.jsx)(import_core24.ThemeIcon, { variant: "light", color: config.color, radius: "xl", size: "md", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Text, { size: "xs", fw: 700, children: config.mark }) });
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, import_jsx_runtime25.jsx)(
1567
- import_core24.Button,
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, import_jsx_runtime25.jsx)(ProviderMark, { id: provider.id }),
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, import_jsx_runtime25.jsxs)(import_core24.Stack, { gap: 0, align: "flex-start", children: [
1578
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Text, { inherit: true, children: label }),
1579
- provider.description ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Text, { size: "xs", c: "dimmed", lh: 1.2, children: provider.description }) : null
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, import_jsx_runtime25.jsx)(SocialAuthButton, { provider, compact }, provider.id));
1595
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core24.Stack, { gap: "md", children: [
1596
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core24.Stack, { gap: 4, ta: "center", children: [
1597
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core24.Group, { justify: "center", gap: "xs", children: [
1598
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GdsIcons.Login, { size: "1rem" }),
1599
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Text, { fw: 600, children: title })
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, import_jsx_runtime25.jsx)(import_core24.Text, { size: "sm", c: "dimmed", children: description }) : null
1666
+ description ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { size: "sm", c: "dimmed", children: description }) : null
1602
1667
  ] }),
1603
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Divider, {}),
1604
- layout === "grid" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: content }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Stack, { gap: "sm", children: content })
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 import_core25 = require("@mantine/core");
1610
- var import_jsx_runtime26 = require("react/jsx-runtime");
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, import_jsx_runtime26.jsx)(import_core25.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core25.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
1613
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core25.Stack, { gap: "lg", maw: 760, flex: 1, children: [
1614
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core25.Stack, { gap: "sm", children: [
1615
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core25.Text, { size: "sm", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
1616
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core25.Title, { order: 1, children: title }),
1617
- lead ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core25.Text, { size: "lg", c: "dimmed", children: lead }) : null,
1618
- meta ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core25.Group, { gap: "md", children: meta }) : null
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, import_jsx_runtime26.jsx)(import_core25.Stack, { gap: "md", children })
1685
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Stack, { gap: "md", children })
1621
1686
  ] }),
1622
- sideRail ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core25.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
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 import_core26 = require("@mantine/core");
1628
- var import_jsx_runtime27 = require("react/jsx-runtime");
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, import_jsx_runtime27.jsxs)(import_core26.Stack, { gap: "sm", children: [
1631
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core26.Group, { gap: "sm", align: "stretch", children: [
1632
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { children: primary }),
1633
- secondary ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { children: secondary }) : null
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, import_jsx_runtime27.jsx)("div", { children: tertiary }) : null
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 import_core27 = require("@mantine/core");
1641
- var import_jsx_runtime28 = require("react/jsx-runtime");
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, import_jsx_runtime28.jsx)(import_core27.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
1653
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Stack, { component: "article", gap: "lg", maw: 760, flex: 1, children: [
1654
- breadcrumbs.length ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Breadcrumbs, { children: breadcrumbs.map(
1655
- (crumb) => crumb.href ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Anchor, { href: crumb.href, children: crumb.label }, `${crumb.label}-${crumb.href}`) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Text, { children: crumb.label }, crumb.label)
1717
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Container, { fluid: true, py: "xl", px: "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", flex: 1, miw: 0, 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, import_jsx_runtime28.jsxs)(import_core27.Stack, { gap: "sm", children: [
1658
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Text, { size: "sm", fw: 700, c: "dimmed", children: eyebrow }) : null,
1659
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Title, { order: 1, children: title }),
1660
- lead ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Text, { size: "lg", c: "dimmed", children: lead }) : null,
1661
- meta ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Group, { gap: "md", children: meta }) : null
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", maw: 920, children: lead }) : null,
1726
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Group, { gap: "md", children: meta }) : null
1662
1727
  ] }),
1663
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Stack, { gap: "md", children }),
1664
- footerNext ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Anchor, { href: footerNext.href, fw: 600, children: footerNext.label }) : null
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, import_jsx_runtime28.jsx)(import_core27.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
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 import_core28 = require("@mantine/core");
1672
- var import_jsx_runtime29 = require("react/jsx-runtime");
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, import_jsx_runtime29.jsx)(
1685
- import_core28.Anchor,
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, import_jsx_runtime29.jsx)(
1710
- import_core28.Box,
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, import_jsx_runtime29.jsx)(import_core28.Paper, { withBorder: true, radius: "xl", p: compact ? "lg" : "xl", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
1738
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "md", children: [
1739
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 16, width: 96, radius: "xl" }),
1740
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 48, width: "90%", radius: "md" }),
1741
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 18, width: "100%", radius: "md" }),
1742
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 18, width: "82%", radius: "md" }),
1743
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Group, { children: [
1744
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 40, width: 140, radius: "md" }),
1745
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 40, width: 140, radius: "md" })
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, import_jsx_runtime29.jsx)(import_core28.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { radius: "lg" }) }) })
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, import_jsx_runtime29.jsx)(import_core28.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1753
- import_core28.ThemeIcon,
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, import_jsx_runtime29.jsx)(GdsIcons.Gallery, { size: "2.5rem" })
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, import_jsx_runtime29.jsxs)(
1781
- import_core28.Box,
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, import_jsx_runtime29.jsx)(MediaFallback, {}),
1795
- media && overlayBackground ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1796
- import_core28.Box,
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, import_jsx_runtime29.jsx)(LoadingHero, { compact });
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, import_jsx_runtime29.jsx)(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
1902
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
1838
1903
  });
1839
- const textSlot = /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: compact ? "md" : "lg", justify: "center", h: "100%", className: classNames?.content, children: [
1840
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "sm", align: stackAlign, children: [
1841
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Text, { size: "sm", fw: 700, c: "dimmed", ta: textAlign, children: eyebrow }) : null,
1842
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Title, { order: 1, maw: 760, ta: textAlign, children: title }),
1843
- description ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Text, { size: compact ? "md" : "lg", c: "dimmed", maw: 720, ta: textAlign, children: description }) : null
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, import_jsx_runtime29.jsx)(import_core28.Box, { className: classNames?.actions, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
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, import_jsx_runtime29.jsx)(import_core28.Group, { gap: "sm", wrap: "wrap", "aria-label": "Supporting details", className: classNames?.meta, children: meta.map((item) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
1854
- import_core28.Group,
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, import_jsx_runtime29.jsx)(import_core28.Text, { size: "sm", c: "dimmed", children: item.label })
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, import_jsx_runtime29.jsx)(AccentPanel, { tone: "red", variant: "soft-outline", title: "Media unavailable", children: error }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MediaFrame, { media, mediaAlt, mediaFade, className: classNames?.media });
1872
- const textCol = /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 1, md: mediaPosition === "left" ? 2 : 1 }, children: textSlot });
1873
- const mediaCol = /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 2, md: mediaPosition === "left" ? 1 : 2 }, children: mediaSlot });
1874
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1875
- import_core28.Paper,
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, import_jsx_runtime29.jsxs)(import_core28.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
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 import_core29 = require("@mantine/core");
1893
- var import_jsx_runtime30 = require("react/jsx-runtime");
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, import_jsx_runtime30.jsx)(import_core29.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core29.Stack, { gap: "md", children: [
1900
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Skeleton, { height: variant === "process" ? 28 : 42, width: variant === "process" ? 72 : 42, radius: "xl" }),
1901
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core29.Stack, { gap: "xs", children: [
1902
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Skeleton, { height: 20, width: "75%", radius: "md" }),
1903
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Skeleton, { height: 14, width: "100%", radius: "md" }),
1904
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Skeleton, { height: 14, width: "82%", radius: "md" })
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, import_jsx_runtime30.jsx)(FeatureBandSkeleton, { columns, bordered, variant });
1982
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FeatureBandSkeleton, { columns, bordered, variant });
1918
1983
  }
1919
1984
  if (!items.length) {
1920
- return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
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, import_jsx_runtime30.jsx)(import_core29.Box, { component: "section", "aria-label": "Supporting features", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core29.Stack, { gap: "md", children: [
1929
- variant === "process" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1930
- import_core29.Text,
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, import_jsx_runtime30.jsx)(import_core29.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "violet", children: item.icon }) }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "gray", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(GdsIcons.Info, { size: "1.25rem" }) }) }),
1943
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core29.Stack, { gap: "xs", children: [
1944
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Title, { order: 4, children: item.title }),
1945
- item.description ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Text, { c: "dimmed", children: item.description }) : null,
1946
- item.meta ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Text, { size: "sm", c: "dimmed", children: item.meta }) : null
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 import_core31 = require("@mantine/core");
2017
+ var import_core33 = require("@mantine/core");
1953
2018
 
1954
2019
  // src/ActionBar.tsx
1955
- var import_core30 = require("@mantine/core");
1956
- var import_jsx_runtime31 = require("react/jsx-runtime");
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, import_jsx_runtime31.jsx)(
1964
- import_core30.Button,
2028
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2029
+ import_core32.Button,
1965
2030
  {
1966
- leftSection: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Icon, { size: "1rem", stroke: 1.75 }),
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, import_jsx_runtime31.jsx)(import_core30.Stack, { gap, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core30.Group, { justify: "space-between", align: "center", gap, wrap: "wrap", children: [
1984
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core30.Group, { gap, wrap: "wrap", children: [
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, import_jsx_runtime31.jsxs)(import_core30.Group, { gap, wrap: "wrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
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, import_jsx_runtime31.jsx)(
1993
- import_core30.ActionIcon,
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, import_jsx_runtime31.jsx)(Icon, { size: "1rem", stroke: 1.75 })
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 import_jsx_runtime32 = require("react/jsx-runtime");
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, import_jsx_runtime32.jsx)(
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, import_jsx_runtime32.jsx)(StateBlock, { variant: "error", title: "Map unavailable", description: error, compact: true });
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, import_jsx_runtime32.jsx)(
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, import_jsx_runtime32.jsx)(import_core31.Box, { style: { minHeight }, children: renderMap() });
2113
+ body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.Box, { style: { minHeight }, children: renderMap() });
2049
2114
  } else {
2050
- body = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.AspectRatio, { ratio: 16 / 9, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
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, import_jsx_runtime32.jsx)(import_core31.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Stack, { gap: "md", children: [
2063
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
2064
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Stack, { gap: 4, children: [
2065
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Title, { order: 3, children: title }),
2066
- description ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Text, { size: "sm", c: "dimmed", children: description }) : null
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, import_jsx_runtime32.jsx)(ActionBar, { ...actions }) : null
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 import_core32 = require("@mantine/core");
2076
- var import_jsx_runtime33 = require("react/jsx-runtime");
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, import_jsx_runtime33.jsx)(
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, import_jsx_runtime33.jsx)(
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, import_jsx_runtime33.jsx)(
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, import_jsx_runtime33.jsx)(import_core32.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { gap: "lg", children: [
2155
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
2156
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { gap: 4, children: [
2157
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Text, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
2158
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Group, { gap: "sm", wrap: "wrap", children: [
2159
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Title, { order: 2, children: stage.title }),
2160
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Badge, { variant: "light", color: tone.color, children: tone.label })
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, import_jsx_runtime33.jsx)(import_core32.Text, { size: "sm", c: "dimmed", children: stage.description }) : null
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, import_jsx_runtime33.jsx)(import_core32.Text, { size: "sm", c: "dimmed", children: stage.notice }) : null,
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, import_jsx_runtime33.jsx)(ActionBar, { ...actionBar }) : null
2235
+ actionBar ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ActionBar, { ...actionBar }) : null
2171
2236
  ] }) });
2172
2237
  }
2173
2238
 
2174
2239
  // src/PlaybackSurface.tsx
2175
- var import_core33 = require("@mantine/core");
2176
- var import_jsx_runtime34 = require("react/jsx-runtime");
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, import_jsx_runtime34.jsx)(
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, import_jsx_runtime34.jsx)(
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, import_jsx_runtime34.jsx)(
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, import_jsx_runtime34.jsxs)(import_core33.Stack, { gap: "md", children: [
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, import_jsx_runtime34.jsx)(import_core33.Paper, { withBorder: true, radius: "xl", p: "lg", "data-playback-mode": mode, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core33.Stack, { gap: "md", children: [
2231
- title || statusMessage || controls ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core33.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
2232
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core33.Stack, { gap: 4, children: [
2233
- title ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Title, { order: 3, children: title }) : null,
2234
- statusMessage ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Text, { size: "sm", c: "dimmed", children: statusMessage }) : null
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, import_jsx_runtime34.jsxs)(import_core33.Group, { gap: "sm", align: "center", wrap: "wrap", children: [
2237
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Badge, { variant: "light", color: tone.color, children: tone.label }),
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, import_jsx_runtime34.jsx)(
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 import_core35 = require("@mantine/core");
2320
+ var import_core37 = require("@mantine/core");
2256
2321
 
2257
2322
  // src/FormField.tsx
2258
- var import_core34 = require("@mantine/core");
2259
- var import_jsx_runtime35 = require("react/jsx-runtime");
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, import_jsx_runtime35.jsx)(import_core34.Box, { component: "label", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core34.Stack, { gap: 4, children: [
2262
- typeof label === "string" ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Text, { size: "xs", fw: 600, c: "dimmed", children: label }) : label,
2263
- description ? typeof description === "string" ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Text, { size: "xs", c: "dimmed", children: description }) : description : null,
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, import_jsx_runtime35.jsx)(import_core34.Text, { size: "xs", c: "red.7", children: error }) : error : null
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 import_jsx_runtime36 = require("react/jsx-runtime");
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, import_jsx_runtime36.jsx)(import_core35.Button, { type: "button", variant: "light", color: "red", onClick: onRemove, children: "Remove" }) : null);
2299
- const resolvedResetAction = resetAction ?? (onReset ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Button, { type: "button", variant: "default", onClick: onReset, children: "Reset" }) : null);
2300
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(import_core35.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core35.Stack, { gap: "md", children: [
2307
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Group, { justify: "flex-end", align: "center", gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core35.Group, { gap: "xs", justify: "flex-end", children: [
2308
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label }),
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, import_jsx_runtime36.jsxs)(import_jsx_runtime36.Fragment, { children: [
2313
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Divider, {}),
2314
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core35.Stack, { gap: "sm", style: mode === "split" ? { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))" } : void 0, children: [
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, import_jsx_runtime36.jsx)(import_core35.Text, { size: "sm", c: "dimmed", style: { wordBreak: "break-all" }, children: value }) : null,
2320
- helpText ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Text, { size: "sm", c: "dimmed", children: helpText }) : null,
2321
- policyText ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Text, { size: "sm", c: error ? "red.7" : "dimmed", children: policyText }) : null,
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, import_jsx_runtime36.jsxs)(import_core35.Group, { gap: "sm", children: [
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 import_core36 = require("@mantine/core");
2335
- var import_jsx_runtime37 = require("react/jsx-runtime");
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, import_jsx_runtime37.jsxs)(import_core36.Card, { withBorder: true, radius: "lg", padding: "md", children: [
2339
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core36.Card.Section, { pos: "relative", children: [
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, import_jsx_runtime37.jsx)("div", { style: { position: "absolute", inset: 12, display: "flex", justifyContent: "flex-end", alignItems: "flex-start" }, children: overlay }) : null
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, import_jsx_runtime37.jsxs)(import_core36.Stack, { gap: "sm", mt: "md", children: [
2344
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core36.Group, { justify: "space-between", align: "flex-start", children: [
2345
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core36.Stack, { gap: 4, children: [
2346
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core36.Title, { order: 4, children: title }),
2347
- description ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core36.Text, { size: "sm", c: "dimmed", lineClamp: 2, children: description }) : null
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, import_jsx_runtime37.jsx)(import_core36.Badge, { variant: "light", children: status }) : null
2414
+ status ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Badge, { variant: "light", children: status }) : null
2350
2415
  ] }),
2351
- actions.length ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core36.Group, { justify: "flex-end", gap: "xs", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core36.ActionIcon, { variant: "light", "aria-label": action.label, onClick: action.onClick, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(EyeIcon, { size: "1rem" }) }, action.label)) }) : null
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 import_core37 = require("@mantine/core");
2358
- var import_jsx_runtime38 = require("react/jsx-runtime");
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, import_jsx_runtime38.jsx)(import_core37.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core37.Stack, { gap: "sm", children: [
2361
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core37.Group, { justify: "space-between", align: "center", children: [
2362
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Title, { order: 4, children: title }),
2363
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Badge, { color: blocked ? "red" : "teal", variant: "light", children: blocked ? "Blocked" : "Allowed" })
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, import_jsx_runtime38.jsx)(import_core37.Group, { gap: "xs", children: roles.map((role) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Badge, { variant: "outline", children: role }, role)) }),
2366
- scope ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core37.Text, { size: "sm", c: "dimmed", children: [
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, import_jsx_runtime38.jsx)(import_core37.Text, { size: "sm", children: description }) : null
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 import_core38 = require("@mantine/core");
2376
- var import_jsx_runtime39 = require("react/jsx-runtime");
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, import_jsx_runtime39.jsxs)(import_core38.Group, { justify: "space-between", align: "flex-start", gap: "lg", wrap: "wrap", children: [
2388
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core38.Stack, { gap: "xs", children: [
2389
- eyebrow && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Text, { size: "xs", fw: 700, c: "dimmed", ...eyebrowProps, children: eyebrow }),
2390
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Title, { order: 1, children: title }),
2391
- resolvedDescription && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Text, { c: "dimmed", maw: 720, children: resolvedDescription })
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, import_jsx_runtime39.jsx)(import_core38.Box, { children: actions }) : null
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 import_core39 = require("@mantine/core");
2399
- var import_jsx_runtime40 = require("react/jsx-runtime");
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, import_jsx_runtime40.jsx)(
2416
- import_core39.Drawer,
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, import_jsx_runtime40.jsxs)(import_core39.Stack, { gap: "md", children: [
2425
- description ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core39.Text, { size: "sm", c: "dimmed", children: description }) : null,
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, import_jsx_runtime40.jsxs)(import_core39.Group, { justify: "space-between", mt: "md", children: [
2428
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core39.Group, { gap: "sm", children: [
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 import_core40 = require("@mantine/core");
2441
- var import_jsx_runtime41 = require("react/jsx-runtime");
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, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children });
2516
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children });
2452
2517
  }
2453
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core40.Card, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core40.Stack, { gap: "md", children: [
2454
- badge ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core40.Badge, { variant: "light", color: "blue", w: "fit-content", children: badge }) : null,
2455
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core40.Stack, { gap: "xs", children: [
2456
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core40.Title, { order: 4, children: title }),
2457
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core40.Text, { c: "dimmed", children: description })
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, import_jsx_runtime41.jsx)(import_core40.Text, { size: "sm", children: footer }) : null,
2460
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
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 import_core41 = require("@mantine/core");
2474
- var import_jsx_runtime42 = require("react/jsx-runtime");
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, import_jsx_runtime42.jsx)(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
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, import_jsx_runtime42.jsx)(StateBlock, { variant: "loading", title: "Loading data", description: "Please wait while the shared dataset is prepared.", compact: true });
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, import_jsx_runtime42.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
2556
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
2492
2557
  }
2493
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core41.ScrollArea, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core41.Table, { striped: true, highlightOnHover: true, withTableBorder: true, withColumnBorders: true, children: [
2494
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core41.Table.Thead, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core41.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core41.Table.Th, { children: column.header }, String(column.key))) }) }),
2495
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core41.Table.Tbody, { children: rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core41.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core41.Table.Td, { children: column.render ? column.render(row) : String(row[column.key] ?? "") }, String(column.key))) }, getRowKey ? getRowKey(row, index) : index)) })
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 import_core42 = require("@mantine/core");
2501
- var import_jsx_runtime43 = require("react/jsx-runtime");
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, import_jsx_runtime43.jsx)(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
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, import_jsx_runtime43.jsx)(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
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, import_jsx_runtime43.jsx)(
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, import_jsx_runtime43.jsx)(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
2592
+ content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
2528
2593
  }
2529
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core42.Stack, { gap: "md", children: [
2530
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core42.Title, { order: 3, children: title }),
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,