@doneisbetter/gds-core 2.6.6 → 2.6.7

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
@@ -46,11 +46,14 @@ __export(server_exports, {
46
46
  MediaCard: () => MediaCard,
47
47
  MediaField: () => MediaField,
48
48
  MetricCard: () => MetricCard,
49
+ PROVIDER_IDENTITY_REGISTRY: () => PROVIDER_IDENTITY_REGISTRY,
49
50
  PageHeader: () => PageHeader,
50
51
  PlaceholderPanel: () => PlaceholderPanel,
51
52
  PlaybackSurface: () => PlaybackSurface,
52
53
  ProductCard: () => ProductCard,
53
54
  ProgressCard: () => ProgressCard,
55
+ ProviderIdentityButton: () => ProviderIdentityButton,
56
+ ProviderIdentityButtonGroup: () => ProviderIdentityButtonGroup,
54
57
  PublicBrandFooter: () => PublicBrandFooter,
55
58
  PublicFlowShell: () => PublicFlowShell,
56
59
  PublicFoodCard: () => PublicFoodCard,
@@ -75,14 +78,17 @@ __export(server_exports, {
75
78
  fr: () => fr,
76
79
  gdsLocales: () => gdsLocales,
77
80
  getGdsMessages: () => getGdsMessages,
81
+ getProviderIdentityLabel: () => getProviderIdentityLabel,
78
82
  getSemanticActionConfig: () => getSemanticActionConfig,
79
83
  getSemanticActionLabel: () => getSemanticActionLabel,
80
84
  he: () => he,
81
85
  hu: () => hu,
86
+ isPresentationMode: () => isPresentationMode,
82
87
  it: () => it,
83
88
  mergeGdsVocabularyPacks: () => mergeGdsVocabularyPacks,
84
89
  resolveAccentPanelStyles: () => resolveAccentPanelStyles,
85
90
  resolveSemanticActionConfig: () => resolveSemanticActionConfig,
91
+ resolveSurfacePresentationStyles: () => resolveSurfacePresentationStyles,
86
92
  ru: () => ru
87
93
  });
88
94
  module.exports = __toCommonJS(server_exports);
@@ -554,6 +560,51 @@ var import_core9 = require("@mantine/core");
554
560
 
555
561
  // src/SectionPanel.tsx
556
562
  var import_core8 = require("@mantine/core");
563
+
564
+ // src/SurfacePresentation.ts
565
+ var toCssLength = (value) => {
566
+ if (typeof value === "number") {
567
+ return `${value}px`;
568
+ }
569
+ return value;
570
+ };
571
+ function resolveSurfacePresentationStyles(props) {
572
+ const {
573
+ presentation = "inline",
574
+ minHeight,
575
+ contentAlign,
576
+ contentJustify
577
+ } = props;
578
+ if (presentation === "inline") {
579
+ return {
580
+ minHeight: toCssLength(minHeight)
581
+ };
582
+ }
583
+ const align = contentAlign ?? "center";
584
+ const justify = contentJustify ?? (presentation === "centered" ? "center" : "start");
585
+ if (presentation === "fill") {
586
+ return {
587
+ minHeight: toCssLength(minHeight),
588
+ display: "flex",
589
+ flex: 1,
590
+ flexDirection: "column",
591
+ alignItems: align === "center" ? "center" : "flex-start",
592
+ justifyContent: justify === "center" ? "center" : "flex-start"
593
+ };
594
+ }
595
+ return {
596
+ minHeight: toCssLength(minHeight),
597
+ display: "flex",
598
+ flexDirection: "column",
599
+ alignItems: align === "center" ? "center" : "flex-start",
600
+ justifyContent: justify === "center" ? "center" : "flex-start"
601
+ };
602
+ }
603
+ function isPresentationMode(value) {
604
+ return value === "inline" || value === "centered" || value === "fill";
605
+ }
606
+
607
+ // src/SectionPanel.tsx
557
608
  var import_jsx_runtime9 = require("react/jsx-runtime");
558
609
  var toneBackgrounds = {
559
610
  default: "var(--mantine-color-body)",
@@ -568,8 +619,18 @@ function SectionPanel({
568
619
  children,
569
620
  tone = "default",
570
621
  id,
571
- divided = true
622
+ divided = true,
623
+ presentation = "inline",
624
+ minHeight,
625
+ contentAlign,
626
+ contentJustify
572
627
  }) {
628
+ const bodyLayout = resolveSurfacePresentationStyles({
629
+ presentation,
630
+ minHeight,
631
+ contentAlign,
632
+ contentJustify
633
+ });
573
634
  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
635
  title || description || action ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
575
636
  /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_core8.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
@@ -581,7 +642,7 @@ function SectionPanel({
581
642
  ] }),
582
643
  divided ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Divider, {}) : null
583
644
  ] }) : null,
584
- children
645
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_core8.Box, { style: bodyLayout, children })
585
646
  ] }) });
586
647
  }
587
648
 
@@ -1222,20 +1283,34 @@ function StateBlock({
1222
1283
  description,
1223
1284
  action,
1224
1285
  icon,
1225
- compact = false
1286
+ compact = false,
1287
+ presentation = "inline",
1288
+ minHeight,
1289
+ contentAlign,
1290
+ contentJustify
1226
1291
  }) {
1227
1292
  const config = variantConfig[variant];
1293
+ const layout = resolveSurfacePresentationStyles({
1294
+ presentation,
1295
+ minHeight,
1296
+ contentAlign,
1297
+ contentJustify
1298
+ });
1299
+ const centeredText = presentation !== "inline" ? (contentAlign ?? "center") === "center" : !compact;
1300
+ const centeredAlign = presentation !== "inline" ? contentAlign ?? "center" : "start";
1301
+ const headingAlign = presentation === "inline" ? compact ? "flex-start" : "center" : centeredAlign === "center" ? "center" : "flex-start";
1228
1302
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1229
1303
  import_core18.Stack,
1230
1304
  {
1231
- align: compact ? "flex-start" : "center",
1232
- justify: "center",
1305
+ align: headingAlign,
1306
+ justify: presentation === "inline" ? "center" : void 0,
1233
1307
  gap: "md",
1234
1308
  py: compact ? "md" : "xl",
1235
- ta: compact ? "left" : "center",
1309
+ ta: centeredText ? "center" : "left",
1310
+ style: layout,
1236
1311
  children: [
1237
1312
  /* @__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: [
1313
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core18.Stack, { gap: 6, align: headingAlign, children: [
1239
1314
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core18.Title, { order: compact ? 4 : 3, children: title }),
1240
1315
  description ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core18.Text, { c: "dimmed", maw: compact ? void 0 : 480, children: description }) : null
1241
1316
  ] }),
@@ -1607,45 +1682,175 @@ function AuthShell({
1607
1682
  }
1608
1683
 
1609
1684
  // src/SocialAuthButtons.tsx
1685
+ var import_core27 = require("@mantine/core");
1686
+
1687
+ // src/ProviderIdentityButtons.tsx
1610
1688
  var import_core26 = require("@mantine/core");
1611
1689
  var import_jsx_runtime28 = require("react/jsx-runtime");
1612
- var providerConfig = {
1613
- google: { label: "Google", mark: "G", color: "red" },
1614
- apple: { label: "Apple", mark: "A", color: "dark" },
1615
- github: { label: "GitHub", mark: "GH", color: "gray" },
1616
- facebook: { label: "Facebook", mark: "F", color: "blue" },
1617
- microsoft: { label: "Microsoft", mark: "M", color: "cyan" },
1618
- linkedin: { label: "LinkedIn", mark: "in", color: "blue" },
1619
- discord: { label: "Discord", mark: "D", color: "indigo" },
1620
- x: { label: "X", mark: "X", color: "dark" },
1621
- email: { label: "Email", mark: "@", color: "gray" }
1690
+ var PROVIDER_IDENTITY_REGISTRY = {
1691
+ google: {
1692
+ providerLabel: "Google",
1693
+ markLabel: "G",
1694
+ brandColor: "red"
1695
+ },
1696
+ apple: {
1697
+ providerLabel: "Apple",
1698
+ markLabel: "A",
1699
+ brandColor: "dark"
1700
+ },
1701
+ github: {
1702
+ providerLabel: "GitHub",
1703
+ markLabel: "GH",
1704
+ brandColor: "gray"
1705
+ },
1706
+ facebook: {
1707
+ providerLabel: "Facebook",
1708
+ markLabel: "F",
1709
+ brandColor: "blue"
1710
+ },
1711
+ microsoft: {
1712
+ providerLabel: "Microsoft",
1713
+ markLabel: "M",
1714
+ brandColor: "cyan"
1715
+ },
1716
+ linkedin: {
1717
+ providerLabel: "LinkedIn",
1718
+ markLabel: "in",
1719
+ brandColor: "blue"
1720
+ },
1721
+ discord: {
1722
+ providerLabel: "Discord",
1723
+ markLabel: "D",
1724
+ brandColor: "indigo"
1725
+ },
1726
+ x: {
1727
+ providerLabel: "X",
1728
+ markLabel: "X",
1729
+ brandColor: "dark"
1730
+ },
1731
+ email: {
1732
+ providerLabel: "Email",
1733
+ markLabel: "@",
1734
+ brandColor: "gray"
1735
+ }
1622
1736
  };
1623
- function ProviderMark({ id }) {
1624
- const config = providerConfig[id] ?? { label: id, mark: id.slice(0, 2).toUpperCase(), color: "gray" };
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 }) });
1626
- }
1627
- function SocialAuthButton({ provider, compact = false }) {
1628
- const config = providerConfig[provider.id] ?? { label: provider.id, mark: provider.id.slice(0, 2).toUpperCase(), color: "gray" };
1629
- const label = provider.label ?? `Continue with ${config.label}`;
1630
- const buttonProps = provider.href ? { component: "a", href: provider.href } : { onClick: provider.onClick };
1737
+ function normalizeProviderId(provider) {
1738
+ return (provider ?? "").trim().toLowerCase();
1739
+ }
1740
+ function isSupportedProviderId(provider) {
1741
+ return provider in PROVIDER_IDENTITY_REGISTRY;
1742
+ }
1743
+ function getProviderIdentityMeta(provider) {
1744
+ const normalized = normalizeProviderId(provider);
1745
+ if (isSupportedProviderId(normalized)) {
1746
+ return {
1747
+ id: normalized,
1748
+ supported: true,
1749
+ ...PROVIDER_IDENTITY_REGISTRY[normalized]
1750
+ };
1751
+ }
1752
+ return {
1753
+ id: normalized || "provider",
1754
+ supported: false,
1755
+ providerLabel: provider ? provider : "Provider",
1756
+ markLabel: (provider ?? "PR").slice(0, 2).toUpperCase(),
1757
+ brandColor: "gray"
1758
+ };
1759
+ }
1760
+ function resolveProviderLabel(provider, customLabel) {
1761
+ const meta = getProviderIdentityMeta(provider);
1762
+ if (customLabel != null) {
1763
+ return customLabel;
1764
+ }
1765
+ return `Continue with ${meta.providerLabel}`;
1766
+ }
1767
+ function mapVariant(variant = "neutral") {
1768
+ if (variant === "solid") {
1769
+ return "filled";
1770
+ }
1771
+ if (variant === "outline") {
1772
+ return "outline";
1773
+ }
1774
+ return "default";
1775
+ }
1776
+ function getProviderIdentityLabel(provider, fallbackOverride) {
1777
+ return resolveProviderLabel(provider, fallbackOverride);
1778
+ }
1779
+ function ProviderIdentityMark({ provider }) {
1780
+ const meta = getProviderIdentityMeta(provider);
1781
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1782
+ import_core26.ThemeIcon,
1783
+ {
1784
+ variant: "light",
1785
+ color: meta.brandColor,
1786
+ radius: "xl",
1787
+ size: "md",
1788
+ "aria-hidden": "true",
1789
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { size: "xs", fw: 700, c: "inherit", children: meta.markLabel })
1790
+ }
1791
+ );
1792
+ }
1793
+ function ProviderIdentityButton({
1794
+ provider,
1795
+ label,
1796
+ description,
1797
+ href,
1798
+ onClick,
1799
+ disabled,
1800
+ loading,
1801
+ fullWidth = true,
1802
+ size = "md",
1803
+ variant = "neutral",
1804
+ ariaLabel,
1805
+ describedBy,
1806
+ minTouchTargetPx = 44
1807
+ }) {
1808
+ const meta = getProviderIdentityMeta(provider);
1809
+ const buttonLabel = resolveProviderLabel(provider, label);
1810
+ const buttonProps = href ? {
1811
+ component: "a",
1812
+ href
1813
+ } : {
1814
+ onClick
1815
+ };
1631
1816
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1632
1817
  import_core26.Button,
1633
1818
  {
1634
- variant: "default",
1819
+ variant: mapVariant(variant),
1820
+ color: variant === "solid" ? meta.brandColor : void 0,
1635
1821
  justify: "space-between",
1636
- fullWidth: true,
1637
- size: compact ? "sm" : "md",
1638
- leftSection: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ProviderMark, { id: provider.id }),
1639
- disabled: provider.disabled,
1640
- loading: provider.loading,
1822
+ fullWidth,
1823
+ size,
1824
+ "aria-label": ariaLabel ?? (typeof buttonLabel === "string" ? buttonLabel : void 0),
1825
+ "aria-describedby": describedBy,
1826
+ leftSection: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ProviderIdentityMark, { provider }),
1827
+ disabled,
1828
+ loading,
1829
+ styles: { root: { minHeight: minTouchTargetPx } },
1641
1830
  ...buttonProps,
1642
1831
  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
1832
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { inherit: true, children: buttonLabel }),
1833
+ description ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { size: "xs", c: "dimmed", lh: 1.2, children: description }) : null
1645
1834
  ] })
1646
1835
  }
1647
1836
  );
1648
1837
  }
1838
+ function ProviderIdentityButtonGroup({ providers, layout = "stack" }) {
1839
+ if (!providers.length) {
1840
+ return null;
1841
+ }
1842
+ const content = providers.map((entry, index) => {
1843
+ const key = `${normalizeProviderId(String(entry.provider)) || "provider"}-${index}`;
1844
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ProviderIdentityButton, { ...entry }, key);
1845
+ });
1846
+ if (layout === "grid") {
1847
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: content });
1848
+ }
1849
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Stack, { gap: "sm", children: content });
1850
+ }
1851
+
1852
+ // src/SocialAuthButtons.tsx
1853
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1649
1854
  function SocialAuthButtons({
1650
1855
  providers,
1651
1856
  title = "Continue with a trusted provider",
@@ -1656,54 +1861,64 @@ function SocialAuthButtons({
1656
1861
  if (!providers.length) {
1657
1862
  return null;
1658
1863
  }
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 })
1864
+ const buttons = providers.map((provider) => ({
1865
+ provider: provider.id,
1866
+ label: provider.label,
1867
+ description: provider.description,
1868
+ href: provider.href,
1869
+ onClick: provider.onClick,
1870
+ disabled: provider.disabled,
1871
+ loading: provider.loading,
1872
+ size: provider.size ?? (compact ? "sm" : "md"),
1873
+ variant: provider.variant
1874
+ }));
1875
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core27.Stack, { gap: "md", children: [
1876
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core27.Stack, { gap: 4, ta: "center", children: [
1877
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core27.Group, { justify: "center", gap: "xs", children: [
1878
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GdsIcons.Login, { size: "1rem" }),
1879
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Text, { fw: 600, children: title })
1665
1880
  ] }),
1666
- description ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core26.Text, { size: "sm", c: "dimmed", children: description }) : null
1881
+ description ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Text, { size: "sm", c: "dimmed", children: description }) : null
1667
1882
  ] }),
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 })
1883
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Divider, {}),
1884
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ProviderIdentityButtonGroup, { providers: buttons, layout })
1670
1885
  ] });
1671
1886
  }
1672
1887
 
1673
1888
  // src/ArticleShell.tsx
1674
- var import_core27 = require("@mantine/core");
1675
- var import_jsx_runtime29 = require("react/jsx-runtime");
1889
+ var import_core28 = require("@mantine/core");
1890
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1676
1891
  function ArticleShell({ eyebrow, title, lead, meta, sideRail, children }) {
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
1892
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core28.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
1893
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core28.Stack, { gap: "lg", maw: 760, flex: 1, children: [
1894
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core28.Stack, { gap: "sm", children: [
1895
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Text, { size: "sm", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
1896
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Title, { order: 1, children: title }),
1897
+ lead ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Text, { size: "lg", c: "dimmed", children: lead }) : null,
1898
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Group, { gap: "md", children: meta }) : null
1684
1899
  ] }),
1685
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Stack, { gap: "md", children })
1900
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Stack, { gap: "md", children })
1686
1901
  ] }),
1687
- sideRail ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core27.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
1902
+ sideRail ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
1688
1903
  ] }) });
1689
1904
  }
1690
1905
 
1691
1906
  // src/CtaButtonGroup.tsx
1692
- var import_core28 = require("@mantine/core");
1693
- var import_jsx_runtime30 = require("react/jsx-runtime");
1907
+ var import_core29 = require("@mantine/core");
1908
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1694
1909
  function CtaButtonGroup({ primary, secondary, tertiary }) {
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
1910
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core29.Stack, { gap: "sm", children: [
1911
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core29.Group, { gap: "sm", align: "stretch", children: [
1912
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { children: primary }),
1913
+ secondary ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { children: secondary }) : null
1699
1914
  ] }),
1700
- tertiary ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { children: tertiary }) : null
1915
+ tertiary ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { children: tertiary }) : null
1701
1916
  ] });
1702
1917
  }
1703
1918
 
1704
1919
  // src/DocsPageShell.tsx
1705
- var import_core29 = require("@mantine/core");
1706
- var import_jsx_runtime31 = require("react/jsx-runtime");
1920
+ var import_core30 = require("@mantine/core");
1921
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1707
1922
  function DocsPageShell({
1708
1923
  breadcrumbs = [],
1709
1924
  title,
@@ -1714,27 +1929,27 @@ function DocsPageShell({
1714
1929
  footerNext,
1715
1930
  children
1716
1931
  }) {
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)
1932
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Container, { fluid: true, py: "xl", px: { base: "md", md: "lg", lg: "xl" }, w: "100%", maw: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
1933
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Stack, { component: "article", gap: "lg", flex: 1, miw: 0, children: [
1934
+ breadcrumbs.length ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Breadcrumbs, { children: breadcrumbs.map(
1935
+ (crumb) => crumb.href ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Anchor, { href: crumb.href, children: crumb.label }, `${crumb.label}-${crumb.href}`) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Text, { children: crumb.label }, crumb.label)
1721
1936
  ) }) : 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
1937
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Stack, { gap: "sm", children: [
1938
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Text, { size: "sm", fw: 700, c: "dimmed", children: eyebrow }) : null,
1939
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Title, { order: 1, children: title }),
1940
+ lead ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Text, { size: "lg", c: "dimmed", children: lead }) : null,
1941
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Group, { gap: "md", children: meta }) : null
1727
1942
  ] }),
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
1943
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Stack, { gap: "md", children }),
1944
+ footerNext ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Anchor, { href: footerNext.href, fw: 600, children: footerNext.label }) : null
1730
1945
  ] }),
1731
- sideRail ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core29.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
1946
+ sideRail ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
1732
1947
  ] }) });
1733
1948
  }
1734
1949
 
1735
1950
  // src/EditorialHero.tsx
1736
- var import_core30 = require("@mantine/core");
1737
- var import_jsx_runtime32 = require("react/jsx-runtime");
1951
+ var import_core31 = require("@mantine/core");
1952
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1738
1953
  function resolveActionVariant(action, index, seenPrimary) {
1739
1954
  const requested = action.variant ?? (index === 0 ? "primary" : "secondary");
1740
1955
  if (requested === "primary" && !seenPrimary) {
@@ -1746,8 +1961,8 @@ function resolveActionVariant(action, index, seenPrimary) {
1746
1961
  return { variant: "default", seenPrimary };
1747
1962
  }
1748
1963
  function HeroAction({ action, variant }) {
1749
- const content = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1750
- import_core30.Anchor,
1964
+ const content = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1965
+ import_core31.Anchor,
1751
1966
  {
1752
1967
  href: action.href,
1753
1968
  onClick: action.onClick,
@@ -1771,8 +1986,8 @@ function HeroAction({ action, variant }) {
1771
1986
  }
1772
1987
  );
1773
1988
  if (!action.href) {
1774
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1775
- import_core30.Box,
1989
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1990
+ import_core31.Box,
1776
1991
  {
1777
1992
  component: "button",
1778
1993
  type: "button",
@@ -1799,30 +2014,30 @@ function HeroAction({ action, variant }) {
1799
2014
  return content;
1800
2015
  }
1801
2016
  function LoadingHero({ compact }) {
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" })
2017
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Paper, { withBorder: true, radius: "xl", p: compact ? "lg" : "xl", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
2018
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Stack, { gap: "md", children: [
2019
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 16, width: 96, radius: "xl" }),
2020
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 48, width: "90%", radius: "md" }),
2021
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 18, width: "100%", radius: "md" }),
2022
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 18, width: "82%", radius: "md" }),
2023
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Group, { children: [
2024
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 40, width: 140, radius: "md" }),
2025
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { height: 40, width: 140, radius: "md" })
1811
2026
  ] })
1812
2027
  ] }) }),
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" }) }) })
2028
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Skeleton, { radius: "lg" }) }) })
1814
2029
  ] }) });
1815
2030
  }
1816
2031
  function MediaFallback() {
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,
2032
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2033
+ import_core31.ThemeIcon,
1819
2034
  {
1820
2035
  size: "100%",
1821
2036
  radius: "lg",
1822
2037
  color: "gray",
1823
2038
  variant: "light",
1824
2039
  "aria-label": "Hero media is unavailable",
1825
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(GdsIcons.Gallery, { size: "2.5rem" })
2040
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GdsIcons.Gallery, { size: "2.5rem" })
1826
2041
  }
1827
2042
  ) });
1828
2043
  }
@@ -1842,8 +2057,8 @@ function MediaFrame({
1842
2057
  } else if (mediaFade === "soft-start") {
1843
2058
  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%)";
1844
2059
  }
1845
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1846
- import_core30.Box,
2060
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2061
+ import_core31.Box,
1847
2062
  {
1848
2063
  component: "figure",
1849
2064
  m: 0,
@@ -1856,9 +2071,9 @@ function MediaFrame({
1856
2071
  },
1857
2072
  "aria-label": mediaAlt,
1858
2073
  children: [
1859
- media ?? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MediaFallback, {}),
1860
- media && overlayBackground ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1861
- import_core30.Box,
2074
+ media ?? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(MediaFallback, {}),
2075
+ media && overlayBackground ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2076
+ import_core31.Box,
1862
2077
  {
1863
2078
  "aria-hidden": true,
1864
2079
  style: {
@@ -1891,7 +2106,7 @@ function EditorialHero({
1891
2106
  classNames
1892
2107
  }) {
1893
2108
  if (loading) {
1894
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(LoadingHero, { compact });
2109
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(LoadingHero, { compact });
1895
2110
  }
1896
2111
  const stackAlign = align === "center" ? "center" : "flex-start";
1897
2112
  const textAlign = align === "center" ? "center" : "left";
@@ -1899,15 +2114,15 @@ function EditorialHero({
1899
2114
  const renderedActions = actions.slice(0, 3).map((action, index) => {
1900
2115
  const resolved = resolveActionVariant(action, index, seenPrimary);
1901
2116
  seenPrimary = resolved.seenPrimary;
1902
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
2117
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
1903
2118
  });
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
2119
+ const textSlot = /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Stack, { gap: compact ? "md" : "lg", justify: "center", h: "100%", className: classNames?.content, children: [
2120
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Stack, { gap: "sm", align: stackAlign, children: [
2121
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Text, { size: "sm", fw: 700, c: "dimmed", ta: textAlign, children: eyebrow }) : null,
2122
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Title, { order: 1, maw: 760, ta: textAlign, children: title }),
2123
+ description ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Text, { size: compact ? "md" : "lg", c: "dimmed", maw: 720, ta: textAlign, children: description }) : null
1909
2124
  ] }),
1910
- renderedActions.length ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Box, { className: classNames?.actions, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2125
+ renderedActions.length ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Box, { className: classNames?.actions, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1911
2126
  CtaButtonGroup,
1912
2127
  {
1913
2128
  primary: renderedActions[0],
@@ -1915,8 +2130,8 @@ function EditorialHero({
1915
2130
  tertiary: renderedActions[2]
1916
2131
  }
1917
2132
  ) }) : null,
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,
2133
+ meta.length ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Group, { gap: "sm", wrap: "wrap", "aria-label": "Supporting details", className: classNames?.meta, children: meta.map((item) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2134
+ import_core31.Group,
1920
2135
  {
1921
2136
  gap: 6,
1922
2137
  px: "sm",
@@ -1927,17 +2142,17 @@ function EditorialHero({
1927
2142
  },
1928
2143
  children: [
1929
2144
  item.icon,
1930
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core30.Text, { size: "sm", c: "dimmed", children: item.label })
2145
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Text, { size: "sm", c: "dimmed", children: item.label })
1931
2146
  ]
1932
2147
  },
1933
2148
  item.id
1934
2149
  )) }) : null
1935
2150
  ] });
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,
2151
+ const mediaSlot = error ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(AccentPanel, { tone: "red", variant: "soft-outline", title: "Media unavailable", children: error }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(MediaFrame, { media, mediaAlt, mediaFade, className: classNames?.media });
2152
+ const textCol = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 1, md: mediaPosition === "left" ? 2 : 1 }, children: textSlot });
2153
+ const mediaCol = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core31.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 2, md: mediaPosition === "left" ? 1 : 2 }, children: mediaSlot });
2154
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2155
+ import_core31.Paper,
1941
2156
  {
1942
2157
  component: "section",
1943
2158
  withBorder: true,
@@ -1945,7 +2160,7 @@ function EditorialHero({
1945
2160
  p: compact ? "lg" : "xl",
1946
2161
  className: classNames?.root,
1947
2162
  style: surfaceVariant === "flat-public" ? { boxShadow: "none" } : void 0,
1948
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core30.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
2163
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core31.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
1949
2164
  textCol,
1950
2165
  mediaCol
1951
2166
  ] })
@@ -1954,19 +2169,19 @@ function EditorialHero({
1954
2169
  }
1955
2170
 
1956
2171
  // src/FeatureBand.tsx
1957
- var import_core31 = require("@mantine/core");
1958
- var import_jsx_runtime33 = require("react/jsx-runtime");
2172
+ var import_core32 = require("@mantine/core");
2173
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1959
2174
  function FeatureBandSkeleton({
1960
2175
  columns = 3,
1961
2176
  bordered = true,
1962
2177
  variant = "default"
1963
2178
  }) {
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" })
2179
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Stack, { gap: "md", children: [
2180
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Skeleton, { height: variant === "process" ? 28 : 42, width: variant === "process" ? 72 : 42, radius: "xl" }),
2181
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Stack, { gap: "xs", children: [
2182
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Skeleton, { height: 20, width: "75%", radius: "md" }),
2183
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Skeleton, { height: 14, width: "100%", radius: "md" }),
2184
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Skeleton, { height: 14, width: "82%", radius: "md" })
1970
2185
  ] })
1971
2186
  ] }) }, index)) });
1972
2187
  }
@@ -1979,10 +2194,10 @@ function FeatureBand({
1979
2194
  variant = "default"
1980
2195
  }) {
1981
2196
  if (loading) {
1982
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FeatureBandSkeleton, { columns, bordered, variant });
2197
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(FeatureBandSkeleton, { columns, bordered, variant });
1983
2198
  }
1984
2199
  if (!items.length) {
1985
- return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2200
+ return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1986
2201
  EmptyState,
1987
2202
  {
1988
2203
  title: "No supporting details available",
@@ -1990,9 +2205,9 @@ function FeatureBand({
1990
2205
  }
1991
2206
  );
1992
2207
  }
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,
2208
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Box, { component: "section", "aria-label": "Supporting features", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Stack, { gap: "md", children: [
2209
+ variant === "process" ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2210
+ import_core32.Text,
1996
2211
  {
1997
2212
  fw: 800,
1998
2213
  size: "sm",
@@ -2004,31 +2219,31 @@ function FeatureBand({
2004
2219
  },
2005
2220
  children: item.stepLabel ?? `Step ${index + 1}`
2006
2221
  }
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
2222
+ ) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "violet", children: item.icon }) }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "gray", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(GdsIcons.Info, { size: "1.25rem" }) }) }),
2223
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Stack, { gap: "xs", children: [
2224
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Title, { order: 4, children: item.title }),
2225
+ item.description ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Text, { c: "dimmed", children: item.description }) : null,
2226
+ item.meta ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core32.Text, { size: "sm", c: "dimmed", children: item.meta }) : null
2012
2227
  ] })
2013
2228
  ] }) }, item.id)) }) });
2014
2229
  }
2015
2230
 
2016
2231
  // src/MapPanel.tsx
2017
- var import_core33 = require("@mantine/core");
2232
+ var import_core34 = require("@mantine/core");
2018
2233
 
2019
2234
  // src/ActionBar.tsx
2020
- var import_core32 = require("@mantine/core");
2021
- var import_jsx_runtime34 = require("react/jsx-runtime");
2235
+ var import_core33 = require("@mantine/core");
2236
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2022
2237
  function renderSemanticAction(action, slot, vocabularyPacks) {
2023
2238
  const { action: actionId, variant, ariaLabel, ...props } = action;
2024
2239
  const fallbackVariant = slot === "primary" ? "filled" : slot === "secondary" ? "default" : "subtle";
2025
2240
  const config = resolveSemanticActionConfig(actionId, vocabularyPacks);
2026
2241
  const Icon = config.icon;
2027
2242
  const label = getSemanticActionLabel(actionId, void 0, vocabularyPacks);
2028
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2029
- import_core32.Button,
2243
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2244
+ import_core33.Button,
2030
2245
  {
2031
- leftSection: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { size: "1rem", stroke: 1.75 }),
2246
+ leftSection: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon, { size: "1rem", stroke: 1.75 }),
2032
2247
  "aria-label": ariaLabel ?? label,
2033
2248
  variant: variant ?? fallbackVariant,
2034
2249
  ...props,
@@ -2045,23 +2260,23 @@ function ActionBar({
2045
2260
  gap = "sm",
2046
2261
  vocabularyPacks = []
2047
2262
  }) {
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: [
2263
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.Stack, { gap, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core33.Group, { justify: "space-between", align: "center", gap, wrap: "wrap", children: [
2264
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core33.Group, { gap, wrap: "wrap", children: [
2050
2265
  secondary.map((action) => renderSemanticAction(action, "secondary", vocabularyPacks)),
2051
2266
  tertiary.map((action) => renderSemanticAction(action, "tertiary", vocabularyPacks))
2052
2267
  ] }),
2053
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core32.Group, { gap, wrap: "wrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
2268
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core33.Group, { gap, wrap: "wrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
2054
2269
  iconOnly.map(({ action, ariaLabel, ...props }) => {
2055
2270
  const config = resolveSemanticActionConfig(action, vocabularyPacks);
2056
2271
  const Icon = config.icon;
2057
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2058
- import_core32.ActionIcon,
2272
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2273
+ import_core33.ActionIcon,
2059
2274
  {
2060
2275
  variant: "subtle",
2061
2276
  size: "lg",
2062
2277
  "aria-label": ariaLabel ?? getSemanticActionLabel(action, void 0, vocabularyPacks),
2063
2278
  ...props,
2064
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { size: "1rem", stroke: 1.75 })
2279
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon, { size: "1rem", stroke: 1.75 })
2065
2280
  },
2066
2281
  `icon-${action}`
2067
2282
  );
@@ -2072,7 +2287,7 @@ function ActionBar({
2072
2287
  }
2073
2288
 
2074
2289
  // src/MapPanel.tsx
2075
- var import_jsx_runtime35 = require("react/jsx-runtime");
2290
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2076
2291
  function MapPanel({
2077
2292
  title,
2078
2293
  description,
@@ -2088,7 +2303,7 @@ function MapPanel({
2088
2303
  }) {
2089
2304
  let body;
2090
2305
  if (loading) {
2091
- body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2306
+ body = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2092
2307
  StateBlock,
2093
2308
  {
2094
2309
  variant: "loading",
@@ -2098,9 +2313,9 @@ function MapPanel({
2098
2313
  }
2099
2314
  );
2100
2315
  } else if (error) {
2101
- body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StateBlock, { variant: "error", title: "Map unavailable", description: error, compact: true });
2316
+ body = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(StateBlock, { variant: "error", title: "Map unavailable", description: error, compact: true });
2102
2317
  } else if (!iframeSrc && !renderMap) {
2103
- body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2318
+ body = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2104
2319
  StateBlock,
2105
2320
  {
2106
2321
  variant: "empty",
@@ -2110,9 +2325,9 @@ function MapPanel({
2110
2325
  }
2111
2326
  );
2112
2327
  } else if (renderMap) {
2113
- body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.Box, { style: { minHeight }, children: renderMap() });
2328
+ body = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Box, { style: { minHeight }, children: renderMap() });
2114
2329
  } else {
2115
- body = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core33.AspectRatio, { ratio: 16 / 9, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2330
+ body = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.AspectRatio, { ratio: 16 / 9, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2116
2331
  "iframe",
2117
2332
  {
2118
2333
  src: iframeSrc,
@@ -2124,21 +2339,21 @@ function MapPanel({
2124
2339
  }
2125
2340
  ) });
2126
2341
  }
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
2342
+ 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: "md", children: [
2343
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core34.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
2344
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core34.Stack, { gap: 4, children: [
2345
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Title, { order: 3, children: title }),
2346
+ description ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Text, { size: "sm", c: "dimmed", children: description }) : null
2132
2347
  ] }),
2133
- actions ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ActionBar, { ...actions }) : null
2348
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ActionBar, { ...actions }) : null
2134
2349
  ] }),
2135
2350
  body
2136
2351
  ] }) });
2137
2352
  }
2138
2353
 
2139
2354
  // src/PublicFlowShell.tsx
2140
- var import_core34 = require("@mantine/core");
2141
- var import_jsx_runtime36 = require("react/jsx-runtime");
2355
+ var import_core35 = require("@mantine/core");
2356
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2142
2357
  var stageTone = {
2143
2358
  idle: { label: "Idle", color: "gray" },
2144
2359
  loading: { label: "Loading", color: "blue" },
@@ -2190,7 +2405,7 @@ function PublicFlowShell({
2190
2405
  const actionBar = toActionBar(stage.actions);
2191
2406
  let body = stage.body;
2192
2407
  if (stage.status === "loading") {
2193
- body = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2408
+ body = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2194
2409
  StateBlock,
2195
2410
  {
2196
2411
  variant: "loading",
@@ -2199,7 +2414,7 @@ function PublicFlowShell({
2199
2414
  }
2200
2415
  );
2201
2416
  } else if (stage.status === "error") {
2202
- body = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2417
+ body = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2203
2418
  StateBlock,
2204
2419
  {
2205
2420
  variant: "error",
@@ -2208,7 +2423,7 @@ function PublicFlowShell({
2208
2423
  }
2209
2424
  );
2210
2425
  } else if (!stage.body && !hardwareSurface) {
2211
- body = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2426
+ body = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2212
2427
  EmptyState,
2213
2428
  {
2214
2429
  title: "No stage content available",
@@ -2216,29 +2431,29 @@ function PublicFlowShell({
2216
2431
  }
2217
2432
  );
2218
2433
  }
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 })
2434
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Stack, { gap: "lg", children: [
2435
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
2436
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Stack, { gap: 4, children: [
2437
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Text, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
2438
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Group, { gap: "sm", wrap: "wrap", children: [
2439
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Title, { order: 2, children: stage.title }),
2440
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Badge, { variant: "light", color: tone.color, children: tone.label })
2226
2441
  ] }),
2227
- stage.description ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Text, { size: "sm", c: "dimmed", children: stage.description }) : null
2442
+ stage.description ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Text, { size: "sm", c: "dimmed", children: stage.description }) : null
2228
2443
  ] }),
2229
2444
  exitAction
2230
2445
  ] }),
2231
- stage.notice ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core34.Text, { size: "sm", c: "dimmed", children: stage.notice }) : null,
2446
+ stage.notice ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core35.Text, { size: "sm", c: "dimmed", children: stage.notice }) : null,
2232
2447
  body,
2233
2448
  hardwareSurface,
2234
2449
  stage.aside,
2235
- actionBar ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ActionBar, { ...actionBar }) : null
2450
+ actionBar ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ActionBar, { ...actionBar }) : null
2236
2451
  ] }) });
2237
2452
  }
2238
2453
 
2239
2454
  // src/PlaybackSurface.tsx
2240
- var import_core35 = require("@mantine/core");
2241
- var import_jsx_runtime37 = require("react/jsx-runtime");
2455
+ var import_core36 = require("@mantine/core");
2456
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2242
2457
  var stateTone = {
2243
2458
  loading: { label: "Loading", color: "blue" },
2244
2459
  ready: { label: "Ready", color: "teal" },
@@ -2261,7 +2476,7 @@ function PlaybackSurface({
2261
2476
  const tone = stateTone[state];
2262
2477
  let content;
2263
2478
  if (state === "loading") {
2264
- content = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2479
+ content = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2265
2480
  StateBlock,
2266
2481
  {
2267
2482
  variant: "loading",
@@ -2270,7 +2485,7 @@ function PlaybackSurface({
2270
2485
  }
2271
2486
  );
2272
2487
  } else if (state === "empty") {
2273
- content = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2488
+ content = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2274
2489
  EmptyState,
2275
2490
  {
2276
2491
  title: "No playback content available",
@@ -2278,7 +2493,7 @@ function PlaybackSurface({
2278
2493
  }
2279
2494
  );
2280
2495
  } else if (state === "error") {
2281
- content = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2496
+ content = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2282
2497
  StateBlock,
2283
2498
  {
2284
2499
  variant: "error",
@@ -2287,23 +2502,23 @@ function PlaybackSurface({
2287
2502
  }
2288
2503
  );
2289
2504
  } else {
2290
- content = /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core35.Stack, { gap: "md", children: [
2505
+ content = /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core36.Stack, { gap: "md", children: [
2291
2506
  media,
2292
2507
  overlays
2293
2508
  ] });
2294
2509
  }
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
2510
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Paper, { withBorder: true, radius: "xl", p: "lg", "data-playback-mode": mode, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core36.Stack, { gap: "md", children: [
2511
+ title || statusMessage || controls ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core36.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
2512
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core36.Stack, { gap: 4, children: [
2513
+ title ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Title, { order: 3, children: title }) : null,
2514
+ statusMessage ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Text, { size: "sm", c: "dimmed", children: statusMessage }) : null
2300
2515
  ] }),
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 }),
2516
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core36.Group, { gap: "sm", align: "center", wrap: "wrap", children: [
2517
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Badge, { variant: "light", color: tone.color, children: tone.label }),
2303
2518
  controls
2304
2519
  ] })
2305
2520
  ] }) : null,
2306
- state === "degraded" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2521
+ state === "degraded" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2307
2522
  StateBlock,
2308
2523
  {
2309
2524
  variant: "info",
@@ -2317,22 +2532,22 @@ function PlaybackSurface({
2317
2532
  }
2318
2533
 
2319
2534
  // src/MediaField.tsx
2320
- var import_core37 = require("@mantine/core");
2535
+ var import_core38 = require("@mantine/core");
2321
2536
 
2322
2537
  // src/FormField.tsx
2323
- var import_core36 = require("@mantine/core");
2324
- var import_jsx_runtime38 = require("react/jsx-runtime");
2538
+ var import_core37 = require("@mantine/core");
2539
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2325
2540
  function FormField({ label, description, error, children }) {
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,
2541
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Box, { component: "label", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core37.Stack, { gap: 4, children: [
2542
+ typeof label === "string" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Text, { size: "xs", fw: 600, c: "dimmed", children: label }) : label,
2543
+ description ? typeof description === "string" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Text, { size: "xs", c: "dimmed", children: description }) : description : null,
2329
2544
  children,
2330
- error ? typeof error === "string" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core36.Text, { size: "xs", c: "red.7", children: error }) : error : null
2545
+ error ? typeof error === "string" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core37.Text, { size: "xs", c: "red.7", children: error }) : error : null
2331
2546
  ] }) });
2332
2547
  }
2333
2548
 
2334
2549
  // src/MediaField.tsx
2335
- var import_jsx_runtime39 = require("react/jsx-runtime");
2550
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2336
2551
  var stateLabels = {
2337
2552
  empty: { label: "Empty", color: "gray" },
2338
2553
  selected: { label: "Selected", color: "blue" },
@@ -2360,32 +2575,32 @@ function MediaField({
2360
2575
  mode = "stacked"
2361
2576
  }) {
2362
2577
  const stateBadge = stateLabels[state];
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)(
2578
+ const resolvedRemoveAction = removeAction ?? (onRemove ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Button, { type: "button", variant: "light", color: "red", onClick: onRemove, children: "Remove" }) : null);
2579
+ const resolvedResetAction = resetAction ?? (onReset ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Button, { type: "button", variant: "default", onClick: onReset, children: "Reset" }) : null);
2580
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2366
2581
  FormField,
2367
2582
  {
2368
2583
  label,
2369
2584
  description,
2370
2585
  error,
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 }),
2586
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Stack, { gap: "md", children: [
2587
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Group, { justify: "flex-end", align: "center", gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Group, { gap: "xs", justify: "flex-end", children: [
2588
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label }),
2374
2589
  statusAction
2375
2590
  ] }) }),
2376
2591
  preview ? preview : null,
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: [
2592
+ uploadControl || urlInput ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
2593
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Divider, {}),
2594
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Stack, { gap: "sm", style: mode === "split" ? { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))" } : void 0, children: [
2380
2595
  uploadControl,
2381
2596
  urlInput
2382
2597
  ] })
2383
2598
  ] }) : 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,
2599
+ value ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Text, { size: "sm", c: "dimmed", style: { wordBreak: "break-all" }, children: value }) : null,
2600
+ helpText ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Text, { size: "sm", c: "dimmed", children: helpText }) : null,
2601
+ policyText ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Text, { size: "sm", c: error ? "red.7" : "dimmed", children: policyText }) : null,
2387
2602
  typeof error !== "string" && error ? error : null,
2388
- resolvedRemoveAction || resolvedResetAction ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core37.Group, { gap: "sm", children: [
2603
+ resolvedRemoveAction || resolvedResetAction ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core38.Group, { gap: "sm", children: [
2389
2604
  resolvedResetAction,
2390
2605
  retryAction,
2391
2606
  resolvedRemoveAction
@@ -2396,49 +2611,49 @@ function MediaField({
2396
2611
  }
2397
2612
 
2398
2613
  // src/MediaCard.tsx
2399
- var import_core38 = require("@mantine/core");
2400
- var import_jsx_runtime40 = require("react/jsx-runtime");
2614
+ var import_core39 = require("@mantine/core");
2615
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2401
2616
  function MediaCard({ title, image, description, status, overlay, actions = [] }) {
2402
2617
  const EyeIcon = GdsIcons.Eye;
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: [
2618
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Card, { withBorder: true, radius: "lg", padding: "md", children: [
2619
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Card.Section, { pos: "relative", children: [
2405
2620
  image,
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
2621
+ overlay ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { style: { position: "absolute", inset: 12, display: "flex", justifyContent: "flex-end", alignItems: "flex-start" }, children: overlay }) : null
2407
2622
  ] }),
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
2623
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Stack, { gap: "sm", mt: "md", children: [
2624
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Group, { justify: "space-between", align: "flex-start", children: [
2625
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core39.Stack, { gap: 4, children: [
2626
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Title, { order: 4, children: title }),
2627
+ description ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Text, { size: "sm", c: "dimmed", lineClamp: 2, children: description }) : null
2413
2628
  ] }),
2414
- status ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core38.Badge, { variant: "light", children: status }) : null
2629
+ status ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Badge, { variant: "light", children: status }) : null
2415
2630
  ] }),
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
2631
+ actions.length ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Group, { justify: "flex-end", gap: "xs", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.ActionIcon, { variant: "light", "aria-label": action.label, onClick: action.onClick, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(EyeIcon, { size: "1rem" }) }, action.label)) }) : null
2417
2632
  ] })
2418
2633
  ] });
2419
2634
  }
2420
2635
 
2421
2636
  // src/AccessSummary.tsx
2422
- var import_core39 = require("@mantine/core");
2423
- var import_jsx_runtime41 = require("react/jsx-runtime");
2637
+ var import_core40 = require("@mantine/core");
2638
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2424
2639
  function AccessSummary({ title, roles, scope, blocked = false, description }) {
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" })
2640
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core40.Stack, { gap: "sm", children: [
2641
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core40.Group, { justify: "space-between", align: "center", children: [
2642
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Title, { order: 4, children: title }),
2643
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Badge, { color: blocked ? "red" : "teal", variant: "light", children: blocked ? "Blocked" : "Allowed" })
2429
2644
  ] }),
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: [
2645
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Group, { gap: "xs", children: roles.map((role) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Badge, { variant: "outline", children: role }, role)) }),
2646
+ scope ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core40.Text, { size: "sm", c: "dimmed", children: [
2432
2647
  "Scope: ",
2433
2648
  scope
2434
2649
  ] }) : null,
2435
- description ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core39.Text, { size: "sm", children: description }) : null
2650
+ description ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Text, { size: "sm", children: description }) : null
2436
2651
  ] }) });
2437
2652
  }
2438
2653
 
2439
2654
  // src/PageHeader.tsx
2440
- var import_core40 = require("@mantine/core");
2441
- var import_jsx_runtime42 = require("react/jsx-runtime");
2655
+ var import_core41 = require("@mantine/core");
2656
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2442
2657
  function PageHeader({
2443
2658
  title,
2444
2659
  description,
@@ -2449,19 +2664,19 @@ function PageHeader({
2449
2664
  }) {
2450
2665
  const resolvedDescription = description ?? subtitle;
2451
2666
  const eyebrowProps = eyebrowVariant === "ornamental" ? { tt: "uppercase", style: { letterSpacing: "0.12em" } } : {};
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 })
2667
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core41.Group, { justify: "space-between", align: "flex-start", gap: "lg", wrap: "wrap", children: [
2668
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core41.Stack, { gap: "xs", children: [
2669
+ eyebrow && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core41.Text, { size: "xs", fw: 700, c: "dimmed", ...eyebrowProps, children: eyebrow }),
2670
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core41.Title, { order: 1, children: title }),
2671
+ resolvedDescription && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core41.Text, { c: "dimmed", maw: 720, children: resolvedDescription })
2457
2672
  ] }),
2458
- actions ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core40.Box, { children: actions }) : null
2673
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core41.Box, { children: actions }) : null
2459
2674
  ] });
2460
2675
  }
2461
2676
 
2462
2677
  // src/FilterDrawer.tsx
2463
- var import_core41 = require("@mantine/core");
2464
- var import_jsx_runtime43 = require("react/jsx-runtime");
2678
+ var import_core42 = require("@mantine/core");
2679
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2465
2680
  function FilterDrawer({
2466
2681
  opened,
2467
2682
  onClose,
@@ -2477,8 +2692,8 @@ function FilterDrawer({
2477
2692
  }) {
2478
2693
  const resolvedPrimaryAction = applyAction ?? primaryAction;
2479
2694
  const resolvedSecondaryAction = resetAction ?? secondaryAction;
2480
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2481
- import_core41.Drawer,
2695
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2696
+ import_core42.Drawer,
2482
2697
  {
2483
2698
  opened,
2484
2699
  onClose,
@@ -2486,11 +2701,11 @@ function FilterDrawer({
2486
2701
  position: mode === "bottom-sheet" ? "bottom" : "right",
2487
2702
  size: mode === "bottom-sheet" ? "auto" : "md",
2488
2703
  radius: mode === "bottom-sheet" ? "xl" : void 0,
2489
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core41.Stack, { gap: "md", children: [
2490
- description ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core41.Text, { size: "sm", c: "dimmed", children: description }) : null,
2704
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core42.Stack, { gap: "md", children: [
2705
+ description ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core42.Text, { size: "sm", c: "dimmed", children: description }) : null,
2491
2706
  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: [
2707
+ resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core42.Group, { justify: "space-between", mt: "md", children: [
2708
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core42.Group, { gap: "sm", children: [
2494
2709
  closeAction,
2495
2710
  resolvedSecondaryAction
2496
2711
  ] }),
@@ -2502,8 +2717,8 @@ function FilterDrawer({
2502
2717
  }
2503
2718
 
2504
2719
  // src/PlaceholderPanel.tsx
2505
- var import_core42 = require("@mantine/core");
2506
- var import_jsx_runtime44 = require("react/jsx-runtime");
2720
+ var import_core43 = require("@mantine/core");
2721
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2507
2722
  function PlaceholderPanel({
2508
2723
  title,
2509
2724
  description,
@@ -2513,16 +2728,16 @@ function PlaceholderPanel({
2513
2728
  mode
2514
2729
  }) {
2515
2730
  if (mode === "live" && children) {
2516
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children });
2731
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children });
2517
2732
  }
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 })
2733
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Card, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_core43.Stack, { gap: "md", children: [
2734
+ badge ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Badge, { variant: "light", color: "blue", w: "fit-content", children: badge }) : null,
2735
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_core43.Stack, { gap: "xs", children: [
2736
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Title, { order: 4, children: title }),
2737
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Text, { c: "dimmed", children: description })
2523
2738
  ] }),
2524
- footer ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core42.Text, { size: "sm", children: footer }) : null,
2525
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2739
+ footer ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core43.Text, { size: "sm", children: footer }) : null,
2740
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
2526
2741
  StateBlock,
2527
2742
  {
2528
2743
  variant: "not-enough-data",
@@ -2535,8 +2750,8 @@ function PlaceholderPanel({
2535
2750
  }
2536
2751
 
2537
2752
  // src/SimpleDataTable.tsx
2538
- var import_core43 = require("@mantine/core");
2539
- var import_jsx_runtime45 = require("react/jsx-runtime");
2753
+ var import_core44 = require("@mantine/core");
2754
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2540
2755
  function SimpleDataTable({
2541
2756
  columns,
2542
2757
  rows,
@@ -2547,23 +2762,23 @@ function SimpleDataTable({
2547
2762
  getRowKey
2548
2763
  }) {
2549
2764
  if (error) {
2550
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
2765
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
2551
2766
  }
2552
2767
  if (loading) {
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 });
2768
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(StateBlock, { variant: "loading", title: "Loading data", description: "Please wait while the shared dataset is prepared.", compact: true });
2554
2769
  }
2555
2770
  if (!rows.length) {
2556
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
2771
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
2557
2772
  }
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)) })
2773
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.ScrollArea, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_core44.Table, { striped: true, highlightOnHover: true, withTableBorder: true, withColumnBorders: true, children: [
2774
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.Table.Thead, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.Table.Th, { children: column.header }, String(column.key))) }) }),
2775
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.Table.Tbody, { children: rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core44.Table.Td, { children: column.render ? column.render(row) : String(row[column.key] ?? "") }, String(column.key))) }, getRowKey ? getRowKey(row, index) : index)) })
2561
2776
  ] }) });
2562
2777
  }
2563
2778
 
2564
2779
  // src/StatsSection.tsx
2565
- var import_core44 = require("@mantine/core");
2566
- var import_jsx_runtime46 = require("react/jsx-runtime");
2780
+ var import_core45 = require("@mantine/core");
2781
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2567
2782
  function StatsSection({
2568
2783
  title,
2569
2784
  loading = false,
@@ -2575,11 +2790,11 @@ function StatsSection({
2575
2790
  }) {
2576
2791
  let content = children;
2577
2792
  if (error) {
2578
- content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
2793
+ content = /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
2579
2794
  } else if (loading) {
2580
- content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
2795
+ content = /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
2581
2796
  } else if (belowThreshold) {
2582
- content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2797
+ content = /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2583
2798
  StateBlock,
2584
2799
  {
2585
2800
  variant: "not-enough-data",
@@ -2589,10 +2804,10 @@ function StatsSection({
2589
2804
  }
2590
2805
  );
2591
2806
  } else if (placeholder) {
2592
- content = /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
2807
+ content = /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
2593
2808
  }
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 }),
2809
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_core45.Stack, { gap: "md", children: [
2810
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_core45.Title, { order: 3, children: title }),
2596
2811
  content
2597
2812
  ] });
2598
2813
  }
@@ -3927,11 +4142,14 @@ function getGdsMessages(locale) {
3927
4142
  MediaCard,
3928
4143
  MediaField,
3929
4144
  MetricCard,
4145
+ PROVIDER_IDENTITY_REGISTRY,
3930
4146
  PageHeader,
3931
4147
  PlaceholderPanel,
3932
4148
  PlaybackSurface,
3933
4149
  ProductCard,
3934
4150
  ProgressCard,
4151
+ ProviderIdentityButton,
4152
+ ProviderIdentityButtonGroup,
3935
4153
  PublicBrandFooter,
3936
4154
  PublicFlowShell,
3937
4155
  PublicFoodCard,
@@ -3956,13 +4174,16 @@ function getGdsMessages(locale) {
3956
4174
  fr,
3957
4175
  gdsLocales,
3958
4176
  getGdsMessages,
4177
+ getProviderIdentityLabel,
3959
4178
  getSemanticActionConfig,
3960
4179
  getSemanticActionLabel,
3961
4180
  he,
3962
4181
  hu,
4182
+ isPresentationMode,
3963
4183
  it,
3964
4184
  mergeGdsVocabularyPacks,
3965
4185
  resolveAccentPanelStyles,
3966
4186
  resolveSemanticActionConfig,
4187
+ resolveSurfacePresentationStyles,
3967
4188
  ru
3968
4189
  });