@doneisbetter/gds-core 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-NBCULITN.mjs → chunk-6FX7WZZO.mjs} +856 -155
- package/dist/{chunk-P7ICTEEB.mjs → chunk-YP7RL2MC.mjs} +784 -364
- package/dist/client.d.mts +259 -8
- package/dist/client.d.ts +259 -8
- package/dist/client.js +1720 -562
- package/dist/client.mjs +74 -4
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1720 -562
- package/dist/index.mjs +74 -4
- package/dist/{server-woziKWie.d.mts → server-DCXU_K9q.d.mts} +144 -4
- package/dist/{server-woziKWie.d.ts → server-DCXU_K9q.d.ts} +144 -4
- package/dist/server.d.mts +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +831 -395
- package/dist/server.mjs +29 -1
- package/package.json +2 -2
|
@@ -8,9 +8,24 @@ var statusColorMap = {
|
|
|
8
8
|
info: "blue",
|
|
9
9
|
neutral: "gray"
|
|
10
10
|
};
|
|
11
|
+
var labelTagColorMap = {
|
|
12
|
+
neutral: "gray",
|
|
13
|
+
info: "blue",
|
|
14
|
+
warning: "yellow",
|
|
15
|
+
success: "green"
|
|
16
|
+
};
|
|
11
17
|
function StatusBadge({ status, children, ...props }) {
|
|
12
18
|
return /* @__PURE__ */ jsx(Badge, { color: statusColorMap[status], variant: "light", ...props, children });
|
|
13
19
|
}
|
|
20
|
+
function LabelTag({ tone = "neutral", label, ...props }) {
|
|
21
|
+
return /* @__PURE__ */ jsx(Badge, { color: labelTagColorMap[tone], variant: "outline", ...props, children: label });
|
|
22
|
+
}
|
|
23
|
+
function CountBadge({ value, cap = 99, srLabel, ...props }) {
|
|
24
|
+
const normalizedValue = Number.isFinite(value) ? Math.max(0, Math.floor(value)) : 0;
|
|
25
|
+
const normalizedCap = Math.max(1, Math.floor(cap));
|
|
26
|
+
const displayValue = normalizedValue > normalizedCap ? `${normalizedCap}+` : String(normalizedValue);
|
|
27
|
+
return /* @__PURE__ */ jsx(Badge, { color: "violet", variant: "filled", "aria-label": srLabel, ...props, children: displayValue });
|
|
28
|
+
}
|
|
14
29
|
|
|
15
30
|
// src/EmptyState.tsx
|
|
16
31
|
import { Stack, Text, Title, Box } from "@mantine/core";
|
|
@@ -631,6 +646,22 @@ function FormField({ label, description, error, children }) {
|
|
|
631
646
|
] }) });
|
|
632
647
|
}
|
|
633
648
|
|
|
649
|
+
// src/CardContracts.ts
|
|
650
|
+
var gdsCardSizePaddingMap = {
|
|
651
|
+
xs: "xs",
|
|
652
|
+
sm: "sm",
|
|
653
|
+
md: "md",
|
|
654
|
+
lg: "lg",
|
|
655
|
+
xl: "xl"
|
|
656
|
+
};
|
|
657
|
+
var gdsCardTitleOrderMap = {
|
|
658
|
+
xs: 6,
|
|
659
|
+
sm: 5,
|
|
660
|
+
md: 4,
|
|
661
|
+
lg: 4,
|
|
662
|
+
xl: 3
|
|
663
|
+
};
|
|
664
|
+
|
|
634
665
|
// src/ListingCard.tsx
|
|
635
666
|
import { ActionIcon as ActionIcon2, AspectRatio, Badge as Badge4, Card, Group as Group6, Stack as Stack8, Text as Text7, ThemeIcon, Title as Title5 } from "@mantine/core";
|
|
636
667
|
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
@@ -701,17 +732,27 @@ function ListingCard({
|
|
|
701
732
|
primaryAction,
|
|
702
733
|
saveAction,
|
|
703
734
|
shareAction,
|
|
704
|
-
compact = false
|
|
735
|
+
compact = false,
|
|
736
|
+
size = "md",
|
|
737
|
+
interactiveMode = "none",
|
|
738
|
+
revealContent,
|
|
739
|
+
onSurfaceActivate,
|
|
740
|
+
defaultFlipped = false
|
|
705
741
|
}) {
|
|
742
|
+
const cardPadding = compact ? "md" : gdsCardSizePaddingMap[size];
|
|
706
743
|
const titleContent = href && typeof title === "string" ? /* @__PURE__ */ jsx10(Text7, { component: "a", href, inherit: true, td: "none", children: title }) : title;
|
|
707
|
-
|
|
744
|
+
const interactiveProps = interactiveMode === "surface-link" && href ? { component: "a", href } : interactiveMode === "surface-button" ? { component: "button", type: "button", onClick: onSurfaceActivate } : {};
|
|
745
|
+
if (interactiveMode === "flip" && defaultFlipped && revealContent) {
|
|
746
|
+
return /* @__PURE__ */ jsx10(Card, { withBorder: true, radius: "lg", padding: cardPadding, children: /* @__PURE__ */ jsx10(Stack8, { gap: "sm", children: revealContent }) });
|
|
747
|
+
}
|
|
748
|
+
return /* @__PURE__ */ jsx10(Card, { withBorder: true, radius: "lg", padding: cardPadding, ...interactiveProps, children: /* @__PURE__ */ jsxs8(Stack8, { gap: compact ? "sm" : "md", children: [
|
|
708
749
|
image ?? /* @__PURE__ */ jsx10(ListingImageFallback, { mediaRatio }),
|
|
709
750
|
featured || sponsoredDisclosure ? /* @__PURE__ */ jsxs8(Group6, { justify: "space-between", gap: "sm", wrap: "wrap", children: [
|
|
710
751
|
featured ? /* @__PURE__ */ jsx10(Badge4, { variant: "light", color: "violet", children: "Featured" }) : /* @__PURE__ */ jsx10("span", {}),
|
|
711
752
|
sponsoredDisclosure ? /* @__PURE__ */ jsx10(Text7, { size: "xs", c: "dimmed", children: sponsoredDisclosure }) : null
|
|
712
753
|
] }) : null,
|
|
713
754
|
/* @__PURE__ */ jsxs8(Stack8, { gap: 4, children: [
|
|
714
|
-
/* @__PURE__ */ jsx10(Title5, { order: compact ? 5 :
|
|
755
|
+
/* @__PURE__ */ jsx10(Title5, { order: compact ? 5 : gdsCardTitleOrderMap[size], lineClamp: 2, children: titleContent }),
|
|
715
756
|
description ? /* @__PURE__ */ jsx10(Text7, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
716
757
|
] }),
|
|
717
758
|
metadata.length ? /* @__PURE__ */ jsx10(Stack8, { gap: "xs", children: metadata.map((item) => /* @__PURE__ */ jsxs8(Group6, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
@@ -726,7 +767,8 @@ function ListingCard({
|
|
|
726
767
|
/* @__PURE__ */ jsxs8(Group6, { gap: "xs", wrap: "nowrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
727
768
|
saveAction ? /* @__PURE__ */ jsx10(ListingAffordance, { affordance: saveAction }) : null,
|
|
728
769
|
shareAction ? /* @__PURE__ */ jsx10(ListingAffordance, { affordance: shareAction }) : null,
|
|
729
|
-
primaryAction
|
|
770
|
+
primaryAction,
|
|
771
|
+
interactiveMode === "flip" && revealContent ? /* @__PURE__ */ jsx10(Text7, { size: "xs", c: "dimmed", children: "Flip mode supports reveal surfaces." }) : null
|
|
730
772
|
] })
|
|
731
773
|
] })
|
|
732
774
|
] }) });
|
|
@@ -1028,16 +1070,17 @@ function ProductCard({
|
|
|
1028
1070
|
metadata = [],
|
|
1029
1071
|
primaryAction,
|
|
1030
1072
|
secondaryActions = [],
|
|
1031
|
-
footer
|
|
1073
|
+
footer,
|
|
1074
|
+
size = "md"
|
|
1032
1075
|
}) {
|
|
1033
1076
|
const MoreIcon = GdsIcons.Menu;
|
|
1034
|
-
return /* @__PURE__ */ jsx18(Card5, { withBorder: true, radius: "lg", padding:
|
|
1077
|
+
return /* @__PURE__ */ jsx18(Card5, { withBorder: true, radius: "lg", padding: gdsCardSizePaddingMap[size], children: /* @__PURE__ */ jsxs13(Stack13, { gap: "md", children: [
|
|
1035
1078
|
media,
|
|
1036
1079
|
/* @__PURE__ */ jsxs13(Group10, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
|
|
1037
1080
|
/* @__PURE__ */ jsxs13(Group10, { align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
1038
1081
|
icon ? /* @__PURE__ */ jsx18(ThemeIcon4, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null,
|
|
1039
1082
|
/* @__PURE__ */ jsxs13(Stack13, { gap: 4, children: [
|
|
1040
|
-
/* @__PURE__ */ jsx18(Title10, { order:
|
|
1083
|
+
/* @__PURE__ */ jsx18(Title10, { order: gdsCardTitleOrderMap[size], children: title }),
|
|
1041
1084
|
description ? /* @__PURE__ */ jsx18(Text12, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
|
|
1042
1085
|
] })
|
|
1043
1086
|
] }),
|
|
@@ -1121,8 +1164,11 @@ function PublicProductCard({
|
|
|
1121
1164
|
secondaryAction,
|
|
1122
1165
|
metadata = [],
|
|
1123
1166
|
compact = false,
|
|
1167
|
+
size = "md",
|
|
1124
1168
|
loading = false,
|
|
1125
|
-
disabled = false
|
|
1169
|
+
disabled = false,
|
|
1170
|
+
interactiveMode = "none",
|
|
1171
|
+
onSurfaceActivate
|
|
1126
1172
|
}) {
|
|
1127
1173
|
if (loading) {
|
|
1128
1174
|
return /* @__PURE__ */ jsx19(LoadingCard, { compact });
|
|
@@ -1138,11 +1184,12 @@ function PublicProductCard({
|
|
|
1138
1184
|
const pickupHelper = helperKind === "pickup" ? helperText : pickupNote;
|
|
1139
1185
|
const inventoryHelper = helperKind === "inventory" ? helperText : inventoryNote;
|
|
1140
1186
|
const hasSupportingRegion = Boolean(price || supportingHelper || pickupHelper || inventoryHelper);
|
|
1141
|
-
|
|
1187
|
+
const interactiveProps = interactiveMode === "surface-button" ? { component: "button", type: "button", onClick: onSurfaceActivate } : {};
|
|
1188
|
+
return /* @__PURE__ */ jsx19(Card6, { withBorder: true, radius: "lg", padding: compact ? "md" : gdsCardSizePaddingMap[size], ...interactiveProps, children: /* @__PURE__ */ jsxs14(Stack14, { gap: compact ? "sm" : "md", children: [
|
|
1142
1189
|
image ?? /* @__PURE__ */ jsx19(ImageFallback, { compact }),
|
|
1143
1190
|
/* @__PURE__ */ jsxs14(Group11, { justify: "space-between", align: "flex-start", wrap: "nowrap", gap: "sm", children: [
|
|
1144
1191
|
/* @__PURE__ */ jsxs14(Stack14, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
|
|
1145
|
-
/* @__PURE__ */ jsx19(Title11, { order: compact ? 5 :
|
|
1192
|
+
/* @__PURE__ */ jsx19(Title11, { order: compact ? 5 : gdsCardTitleOrderMap[size], lineClamp: 2, children: title }),
|
|
1146
1193
|
description ? /* @__PURE__ */ jsx19(Text13, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
1147
1194
|
] }),
|
|
1148
1195
|
/* @__PURE__ */ jsx19(Badge9, { variant: "light", color: stateBadge.color, children: stateBadge.label })
|
|
@@ -1514,16 +1561,205 @@ function DetailProfileShell({
|
|
|
1514
1561
|
] }) });
|
|
1515
1562
|
}
|
|
1516
1563
|
|
|
1564
|
+
// src/AsyncSurface.tsx
|
|
1565
|
+
import { Fragment as Fragment4, jsx as jsx25 } from "react/jsx-runtime";
|
|
1566
|
+
function getRetryAction(onRetry) {
|
|
1567
|
+
if (!onRetry) {
|
|
1568
|
+
return void 0;
|
|
1569
|
+
}
|
|
1570
|
+
return /* @__PURE__ */ jsx25("button", { type: "button", onClick: onRetry, children: "Retry" });
|
|
1571
|
+
}
|
|
1572
|
+
function renderStateBlock({
|
|
1573
|
+
variant,
|
|
1574
|
+
title,
|
|
1575
|
+
description,
|
|
1576
|
+
compact,
|
|
1577
|
+
presentation,
|
|
1578
|
+
minHeight,
|
|
1579
|
+
contentAlign,
|
|
1580
|
+
contentJustify,
|
|
1581
|
+
action
|
|
1582
|
+
}) {
|
|
1583
|
+
return /* @__PURE__ */ jsx25(
|
|
1584
|
+
StateBlock,
|
|
1585
|
+
{
|
|
1586
|
+
variant,
|
|
1587
|
+
title,
|
|
1588
|
+
description,
|
|
1589
|
+
action,
|
|
1590
|
+
compact,
|
|
1591
|
+
presentation,
|
|
1592
|
+
minHeight,
|
|
1593
|
+
contentAlign,
|
|
1594
|
+
contentJustify
|
|
1595
|
+
}
|
|
1596
|
+
);
|
|
1597
|
+
}
|
|
1598
|
+
function AsyncSurface({
|
|
1599
|
+
state,
|
|
1600
|
+
successContent,
|
|
1601
|
+
idleContent,
|
|
1602
|
+
loadingTitle = "Loading",
|
|
1603
|
+
loadingDescription = "This surface is still synchronizing.",
|
|
1604
|
+
emptyTitle = "No results",
|
|
1605
|
+
emptyDescription = "No data is available for this surface yet.",
|
|
1606
|
+
errorTitle = "Unable to load",
|
|
1607
|
+
errorDescription = "Something went wrong while preparing this surface.",
|
|
1608
|
+
refreshingTitle = "Refreshing",
|
|
1609
|
+
refreshingDescription = "The latest data is being fetched.",
|
|
1610
|
+
onRetry,
|
|
1611
|
+
retryAction,
|
|
1612
|
+
compact = false,
|
|
1613
|
+
presentation = "inline",
|
|
1614
|
+
minHeight,
|
|
1615
|
+
contentAlign,
|
|
1616
|
+
contentJustify
|
|
1617
|
+
}) {
|
|
1618
|
+
const fallbackRetryAction = retryAction ?? getRetryAction(onRetry);
|
|
1619
|
+
if (state === "success") {
|
|
1620
|
+
return /* @__PURE__ */ jsx25(Fragment4, { children: successContent });
|
|
1621
|
+
}
|
|
1622
|
+
if (state === "idle") {
|
|
1623
|
+
return /* @__PURE__ */ jsx25(Fragment4, { children: idleContent ?? successContent ?? null });
|
|
1624
|
+
}
|
|
1625
|
+
if (state === "loading") {
|
|
1626
|
+
return renderStateBlock({
|
|
1627
|
+
variant: "loading",
|
|
1628
|
+
title: loadingTitle,
|
|
1629
|
+
description: loadingDescription,
|
|
1630
|
+
compact,
|
|
1631
|
+
presentation,
|
|
1632
|
+
minHeight,
|
|
1633
|
+
contentAlign,
|
|
1634
|
+
contentJustify
|
|
1635
|
+
});
|
|
1636
|
+
}
|
|
1637
|
+
if (state === "empty") {
|
|
1638
|
+
return renderStateBlock({
|
|
1639
|
+
variant: "empty",
|
|
1640
|
+
title: emptyTitle,
|
|
1641
|
+
description: emptyDescription,
|
|
1642
|
+
compact,
|
|
1643
|
+
presentation,
|
|
1644
|
+
minHeight,
|
|
1645
|
+
contentAlign,
|
|
1646
|
+
contentJustify,
|
|
1647
|
+
action: fallbackRetryAction
|
|
1648
|
+
});
|
|
1649
|
+
}
|
|
1650
|
+
if (state === "error") {
|
|
1651
|
+
return renderStateBlock({
|
|
1652
|
+
variant: "error",
|
|
1653
|
+
title: errorTitle,
|
|
1654
|
+
description: errorDescription,
|
|
1655
|
+
compact,
|
|
1656
|
+
presentation,
|
|
1657
|
+
minHeight,
|
|
1658
|
+
contentAlign,
|
|
1659
|
+
contentJustify,
|
|
1660
|
+
action: fallbackRetryAction
|
|
1661
|
+
});
|
|
1662
|
+
}
|
|
1663
|
+
return renderStateBlock({
|
|
1664
|
+
variant: "info",
|
|
1665
|
+
title: refreshingTitle,
|
|
1666
|
+
description: refreshingDescription,
|
|
1667
|
+
compact,
|
|
1668
|
+
presentation,
|
|
1669
|
+
minHeight,
|
|
1670
|
+
contentAlign,
|
|
1671
|
+
contentJustify
|
|
1672
|
+
});
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
// src/ListingPrimitives.tsx
|
|
1676
|
+
import { Badge as Badge13, Button as Button3, Group as Group16, Select, Stack as Stack20, Text as Text17 } from "@mantine/core";
|
|
1677
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1678
|
+
function ActiveFilterChips({
|
|
1679
|
+
filters,
|
|
1680
|
+
emptyLabel = "No active filters."
|
|
1681
|
+
}) {
|
|
1682
|
+
if (!filters.length) {
|
|
1683
|
+
return /* @__PURE__ */ jsx26(Text17, { size: "sm", c: "dimmed", children: emptyLabel });
|
|
1684
|
+
}
|
|
1685
|
+
return /* @__PURE__ */ jsx26(Group16, { gap: "xs", children: filters.map((filter) => /* @__PURE__ */ jsx26(
|
|
1686
|
+
Badge13,
|
|
1687
|
+
{
|
|
1688
|
+
variant: "light",
|
|
1689
|
+
rightSection: filter.onRemove ? "\xD7" : void 0,
|
|
1690
|
+
style: filter.onRemove ? { cursor: "pointer" } : void 0,
|
|
1691
|
+
onClick: filter.onRemove,
|
|
1692
|
+
children: filter.label
|
|
1693
|
+
},
|
|
1694
|
+
filter.id
|
|
1695
|
+
)) });
|
|
1696
|
+
}
|
|
1697
|
+
function ResultSummary({
|
|
1698
|
+
resultCount,
|
|
1699
|
+
noun = "results",
|
|
1700
|
+
description
|
|
1701
|
+
}) {
|
|
1702
|
+
return /* @__PURE__ */ jsxs20(Stack20, { gap: 2, children: [
|
|
1703
|
+
/* @__PURE__ */ jsxs20(Text17, { size: "sm", fw: 600, children: [
|
|
1704
|
+
resultCount,
|
|
1705
|
+
" ",
|
|
1706
|
+
noun
|
|
1707
|
+
] }),
|
|
1708
|
+
description ? /* @__PURE__ */ jsx26(Text17, { size: "xs", c: "dimmed", children: description }) : null
|
|
1709
|
+
] });
|
|
1710
|
+
}
|
|
1711
|
+
function SortMenu({
|
|
1712
|
+
value,
|
|
1713
|
+
options,
|
|
1714
|
+
onChange,
|
|
1715
|
+
label = "Sort"
|
|
1716
|
+
}) {
|
|
1717
|
+
return /* @__PURE__ */ jsx26(
|
|
1718
|
+
Select,
|
|
1719
|
+
{
|
|
1720
|
+
"aria-label": label,
|
|
1721
|
+
label,
|
|
1722
|
+
value,
|
|
1723
|
+
data: options,
|
|
1724
|
+
onChange: (next) => {
|
|
1725
|
+
if (next) {
|
|
1726
|
+
onChange?.(next);
|
|
1727
|
+
}
|
|
1728
|
+
},
|
|
1729
|
+
w: 220
|
|
1730
|
+
}
|
|
1731
|
+
);
|
|
1732
|
+
}
|
|
1733
|
+
function BulkActionsBar({
|
|
1734
|
+
selectedCount,
|
|
1735
|
+
actions,
|
|
1736
|
+
clearAction
|
|
1737
|
+
}) {
|
|
1738
|
+
if (selectedCount <= 0) {
|
|
1739
|
+
return null;
|
|
1740
|
+
}
|
|
1741
|
+
return /* @__PURE__ */ jsxs20(Group16, { justify: "space-between", align: "center", children: [
|
|
1742
|
+
/* @__PURE__ */ jsxs20(Text17, { size: "sm", fw: 600, children: [
|
|
1743
|
+
selectedCount,
|
|
1744
|
+
" selected"
|
|
1745
|
+
] }),
|
|
1746
|
+
/* @__PURE__ */ jsxs20(Group16, { gap: "xs", children: [
|
|
1747
|
+
actions,
|
|
1748
|
+
clearAction ?? /* @__PURE__ */ jsx26(Button3, { variant: "subtle", size: "xs", children: "Clear selection" })
|
|
1749
|
+
] })
|
|
1750
|
+
] });
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1517
1753
|
// src/PublicNav.tsx
|
|
1518
|
-
import { Anchor as Anchor4, Group as
|
|
1519
|
-
import { jsx as
|
|
1754
|
+
import { Anchor as Anchor4, Group as Group17 } from "@mantine/core";
|
|
1755
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1520
1756
|
function PublicNav({ items, activeId, renderLink }) {
|
|
1521
|
-
return /* @__PURE__ */
|
|
1757
|
+
return /* @__PURE__ */ jsx27(Group17, { component: "nav", "aria-label": "Primary", gap: "lg", wrap: "nowrap", children: items.map((item) => {
|
|
1522
1758
|
const active = item.id === activeId;
|
|
1523
1759
|
if (renderLink) {
|
|
1524
|
-
return /* @__PURE__ */
|
|
1760
|
+
return /* @__PURE__ */ jsx27("span", { children: renderLink(item, active) }, item.id);
|
|
1525
1761
|
}
|
|
1526
|
-
return /* @__PURE__ */
|
|
1762
|
+
return /* @__PURE__ */ jsx27(
|
|
1527
1763
|
Anchor4,
|
|
1528
1764
|
{
|
|
1529
1765
|
href: item.href,
|
|
@@ -1541,15 +1777,15 @@ function PublicNav({ items, activeId, renderLink }) {
|
|
|
1541
1777
|
}
|
|
1542
1778
|
|
|
1543
1779
|
// src/PublicShell.tsx
|
|
1544
|
-
import { AppShell, Box as Box8, Burger, Container, Group as
|
|
1545
|
-
import { jsx as
|
|
1780
|
+
import { AppShell, Box as Box8, Burger, Container, Group as Group18, Stack as Stack21, Text as Text18 } from "@mantine/core";
|
|
1781
|
+
import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1546
1782
|
function InlineMobileNavigation({
|
|
1547
1783
|
mobileNavigation,
|
|
1548
1784
|
className,
|
|
1549
1785
|
mode
|
|
1550
1786
|
}) {
|
|
1551
|
-
return /* @__PURE__ */
|
|
1552
|
-
/* @__PURE__ */
|
|
1787
|
+
return /* @__PURE__ */ jsxs21(Box8, { component: "details", hiddenFrom: "sm", className, children: [
|
|
1788
|
+
/* @__PURE__ */ jsxs21(
|
|
1553
1789
|
Box8,
|
|
1554
1790
|
{
|
|
1555
1791
|
component: "summary",
|
|
@@ -1562,12 +1798,12 @@ function InlineMobileNavigation({
|
|
|
1562
1798
|
gap: "0.5rem"
|
|
1563
1799
|
},
|
|
1564
1800
|
children: [
|
|
1565
|
-
/* @__PURE__ */
|
|
1566
|
-
/* @__PURE__ */
|
|
1801
|
+
/* @__PURE__ */ jsx28(Burger, { opened: false, "aria-hidden": true }),
|
|
1802
|
+
/* @__PURE__ */ jsx28(Text18, { size: "sm", fw: 600, children: "Menu" })
|
|
1567
1803
|
]
|
|
1568
1804
|
}
|
|
1569
1805
|
),
|
|
1570
|
-
/* @__PURE__ */
|
|
1806
|
+
/* @__PURE__ */ jsx28(
|
|
1571
1807
|
Box8,
|
|
1572
1808
|
{
|
|
1573
1809
|
mt: "sm",
|
|
@@ -1577,7 +1813,7 @@ function InlineMobileNavigation({
|
|
|
1577
1813
|
border: "1px solid var(--mantine-color-default-border)",
|
|
1578
1814
|
background: mode === "drawer" ? "light-dark(var(--mantine-color-white), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))" : "var(--mantine-color-body)"
|
|
1579
1815
|
},
|
|
1580
|
-
children: /* @__PURE__ */
|
|
1816
|
+
children: /* @__PURE__ */ jsx28(Stack21, { gap: "sm", children: mobileNavigation })
|
|
1581
1817
|
}
|
|
1582
1818
|
)
|
|
1583
1819
|
] });
|
|
@@ -1598,13 +1834,13 @@ function PublicShell({
|
|
|
1598
1834
|
mobileNavigationMode = "sheet",
|
|
1599
1835
|
classNames
|
|
1600
1836
|
}) {
|
|
1601
|
-
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */
|
|
1837
|
+
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */ jsx28(PublicNav, { items: navItems, activeId: activeNavId }) : null);
|
|
1602
1838
|
const containerSize = maxContentWidth ?? (compact ? "md" : "lg");
|
|
1603
1839
|
const headerHeight = headerVariant === "compact" ? 64 : headerVariant === "branded-quiet" ? 88 : 72;
|
|
1604
1840
|
const mainPadding = headerVariant === "compact" ? "lg" : "xl";
|
|
1605
1841
|
const usesInlineMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode !== "sheet";
|
|
1606
1842
|
const usesSheetMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode === "sheet";
|
|
1607
|
-
return /* @__PURE__ */
|
|
1843
|
+
return /* @__PURE__ */ jsxs21(
|
|
1608
1844
|
AppShell,
|
|
1609
1845
|
{
|
|
1610
1846
|
className: classNames?.root,
|
|
@@ -1612,16 +1848,16 @@ function PublicShell({
|
|
|
1612
1848
|
footer: usesSheetMobileNavigation ? { height: 68 } : void 0,
|
|
1613
1849
|
padding: 0,
|
|
1614
1850
|
children: [
|
|
1615
|
-
/* @__PURE__ */
|
|
1616
|
-
|
|
1851
|
+
/* @__PURE__ */ jsx28(AppShell.Header, { withBorder: headerBordered, className: classNames?.header, "data-header-variant": headerVariant, children: /* @__PURE__ */ jsx28(Container, { size: containerSize, h: "100%", py: headerVariant === "branded-quiet" ? "sm" : 0, children: /* @__PURE__ */ jsxs21(
|
|
1852
|
+
Group18,
|
|
1617
1853
|
{
|
|
1618
1854
|
h: "100%",
|
|
1619
1855
|
justify: "space-between",
|
|
1620
1856
|
wrap: "nowrap",
|
|
1621
1857
|
gap: headerVariant === "compact" ? "sm" : "lg",
|
|
1622
1858
|
children: [
|
|
1623
|
-
/* @__PURE__ */
|
|
1624
|
-
usesInlineMobileNavigation ? /* @__PURE__ */
|
|
1859
|
+
/* @__PURE__ */ jsxs21(Group18, { wrap: "nowrap", gap: headerVariant === "compact" ? "xs" : "sm", className: classNames?.brand, children: [
|
|
1860
|
+
usesInlineMobileNavigation ? /* @__PURE__ */ jsx28(
|
|
1625
1861
|
InlineMobileNavigation,
|
|
1626
1862
|
{
|
|
1627
1863
|
mobileNavigation,
|
|
@@ -1629,17 +1865,17 @@ function PublicShell({
|
|
|
1629
1865
|
mode: mobileNavigationMode
|
|
1630
1866
|
}
|
|
1631
1867
|
) : null,
|
|
1632
|
-
/* @__PURE__ */
|
|
1868
|
+
/* @__PURE__ */ jsx28(Box8, { children: brand })
|
|
1633
1869
|
] }),
|
|
1634
|
-
/* @__PURE__ */
|
|
1635
|
-
/* @__PURE__ */
|
|
1870
|
+
/* @__PURE__ */ jsx28(Group18, { visibleFrom: "sm", gap: headerVariant === "compact" ? "md" : "lg", className: classNames?.navigation, children: resolvedNavigation }),
|
|
1871
|
+
/* @__PURE__ */ jsx28(Group18, { gap: "sm", className: classNames?.actions, children: actions })
|
|
1636
1872
|
]
|
|
1637
1873
|
}
|
|
1638
1874
|
) }) }),
|
|
1639
|
-
usesSheetMobileNavigation ? /* @__PURE__ */
|
|
1640
|
-
/* @__PURE__ */
|
|
1641
|
-
/* @__PURE__ */
|
|
1642
|
-
footer ? /* @__PURE__ */
|
|
1875
|
+
usesSheetMobileNavigation ? /* @__PURE__ */ jsx28(AppShell.Footer, { withBorder: true, children: /* @__PURE__ */ jsx28(Container, { size: containerSize, h: "100%", children: /* @__PURE__ */ jsx28(Group18, { h: "100%", justify: "space-around", wrap: "nowrap", children: mobileNavigation }) }) }) : null,
|
|
1876
|
+
/* @__PURE__ */ jsxs21(AppShell.Main, { children: [
|
|
1877
|
+
/* @__PURE__ */ jsx28(Container, { size: containerSize, py: mainPadding, className: classNames?.content, children: /* @__PURE__ */ jsx28(Stack21, { gap: "xl", children }) }),
|
|
1878
|
+
footer ? /* @__PURE__ */ jsx28(Box8, { component: typeof footer === "string" ? "footer" : "div", py: "xl", children: /* @__PURE__ */ jsx28(Container, { size: containerSize, children: typeof footer === "string" ? /* @__PURE__ */ jsx28(Text18, { size: "sm", c: "dimmed", children: footer }) : footer }) }) : null
|
|
1643
1879
|
] })
|
|
1644
1880
|
]
|
|
1645
1881
|
}
|
|
@@ -1647,18 +1883,18 @@ function PublicShell({
|
|
|
1647
1883
|
}
|
|
1648
1884
|
|
|
1649
1885
|
// src/PublicSiteFooter.tsx
|
|
1650
|
-
import { Group as
|
|
1651
|
-
import { jsx as
|
|
1886
|
+
import { Group as Group19, Stack as Stack22, Text as Text19 } from "@mantine/core";
|
|
1887
|
+
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1652
1888
|
function PublicSiteFooter({ children, meta }) {
|
|
1653
|
-
return /* @__PURE__ */
|
|
1654
|
-
children ? /* @__PURE__ */
|
|
1655
|
-
meta ? /* @__PURE__ */
|
|
1889
|
+
return /* @__PURE__ */ jsxs22(Stack22, { component: "footer", gap: "xs", children: [
|
|
1890
|
+
children ? /* @__PURE__ */ jsx29(Text19, { size: "sm", children }) : null,
|
|
1891
|
+
meta ? /* @__PURE__ */ jsx29(Group19, { gap: "sm", children: /* @__PURE__ */ jsx29(Text19, { size: "xs", c: "dimmed", children: meta }) }) : null
|
|
1656
1892
|
] });
|
|
1657
1893
|
}
|
|
1658
1894
|
|
|
1659
1895
|
// src/PublicBrandFooter.tsx
|
|
1660
|
-
import { Box as Box9, Divider as Divider3, Grid, Group as
|
|
1661
|
-
import { Fragment as
|
|
1896
|
+
import { Box as Box9, Divider as Divider3, Grid, Group as Group20, Paper as Paper6, Stack as Stack23, Text as Text20, Title as Title15 } from "@mantine/core";
|
|
1897
|
+
import { Fragment as Fragment5, jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1662
1898
|
function PublicBrandFooter({
|
|
1663
1899
|
media,
|
|
1664
1900
|
brandTitle,
|
|
@@ -1673,7 +1909,7 @@ function PublicBrandFooter({
|
|
|
1673
1909
|
const mediaSpan = layoutVariant === "immersive-media" ? 5 : 4;
|
|
1674
1910
|
const primarySpan = media ? layoutVariant === "balanced-quote" ? 4 : 4 : secondary ? 6 : 12;
|
|
1675
1911
|
const secondarySpan = media ? Math.max(3, 12 - mediaSpan - primarySpan) : Math.max(4, 12 - primarySpan);
|
|
1676
|
-
return /* @__PURE__ */
|
|
1912
|
+
return /* @__PURE__ */ jsx30(
|
|
1677
1913
|
Paper6,
|
|
1678
1914
|
{
|
|
1679
1915
|
component: "footer",
|
|
@@ -1682,19 +1918,19 @@ function PublicBrandFooter({
|
|
|
1682
1918
|
p: compact ? "lg" : "xl",
|
|
1683
1919
|
className: classNames?.root,
|
|
1684
1920
|
"data-layout-variant": layoutVariant,
|
|
1685
|
-
children: /* @__PURE__ */
|
|
1686
|
-
/* @__PURE__ */
|
|
1687
|
-
media ? /* @__PURE__ */
|
|
1688
|
-
/* @__PURE__ */
|
|
1689
|
-
brandTitle ? /* @__PURE__ */
|
|
1690
|
-
description ? /* @__PURE__ */
|
|
1691
|
-
actions ? /* @__PURE__ */
|
|
1921
|
+
children: /* @__PURE__ */ jsxs23(Stack23, { gap: "lg", children: [
|
|
1922
|
+
/* @__PURE__ */ jsxs23(Grid, { gutter: compact ? "lg" : "xl", align: "flex-start", children: [
|
|
1923
|
+
media ? /* @__PURE__ */ jsx30(Grid.Col, { span: { base: 12, md: mediaSpan }, children: /* @__PURE__ */ jsx30(Box9, { className: classNames?.media, children: media }) }) : null,
|
|
1924
|
+
/* @__PURE__ */ jsx30(Grid.Col, { span: { base: 12, md: primarySpan }, children: /* @__PURE__ */ jsxs23(Stack23, { gap: compact ? "xs" : "sm", className: classNames?.primary, children: [
|
|
1925
|
+
brandTitle ? /* @__PURE__ */ jsx30(Title15, { order: 4, children: brandTitle }) : null,
|
|
1926
|
+
description ? /* @__PURE__ */ jsx30(Text20, { c: "dimmed", children: description }) : null,
|
|
1927
|
+
actions ? /* @__PURE__ */ jsx30(Box9, { children: actions }) : null
|
|
1692
1928
|
] }) }),
|
|
1693
|
-
secondary ? /* @__PURE__ */
|
|
1929
|
+
secondary ? /* @__PURE__ */ jsx30(Grid.Col, { span: { base: 12, md: secondarySpan }, children: /* @__PURE__ */ jsx30(Stack23, { gap: compact ? "xs" : "sm", className: classNames?.secondary, children: secondary }) }) : null
|
|
1694
1930
|
] }),
|
|
1695
|
-
legal ? /* @__PURE__ */
|
|
1696
|
-
/* @__PURE__ */
|
|
1697
|
-
/* @__PURE__ */
|
|
1931
|
+
legal ? /* @__PURE__ */ jsxs23(Fragment5, { children: [
|
|
1932
|
+
/* @__PURE__ */ jsx30(Divider3, {}),
|
|
1933
|
+
/* @__PURE__ */ jsx30(Group20, { justify: "space-between", gap: "sm", wrap: "wrap", className: classNames?.legal, children: typeof legal === "string" ? /* @__PURE__ */ jsx30(Text20, { size: "sm", c: "dimmed", children: legal }) : legal })
|
|
1698
1934
|
] }) : null
|
|
1699
1935
|
] })
|
|
1700
1936
|
}
|
|
@@ -1702,8 +1938,8 @@ function PublicBrandFooter({
|
|
|
1702
1938
|
}
|
|
1703
1939
|
|
|
1704
1940
|
// src/AuthShell.tsx
|
|
1705
|
-
import { Alert, Badge as
|
|
1706
|
-
import { jsx as
|
|
1941
|
+
import { Alert, Badge as Badge14, Box as Box10, Card as Card8, Container as Container2, Divider as Divider4, Group as Group21, Stack as Stack24, Text as Text21, Title as Title16 } from "@mantine/core";
|
|
1942
|
+
import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1707
1943
|
function AuthShell({
|
|
1708
1944
|
title,
|
|
1709
1945
|
description,
|
|
@@ -1719,34 +1955,34 @@ function AuthShell({
|
|
|
1719
1955
|
dividerLabel = "Or continue with your account",
|
|
1720
1956
|
children
|
|
1721
1957
|
}) {
|
|
1722
|
-
return /* @__PURE__ */
|
|
1723
|
-
brand || headerActions ? /* @__PURE__ */
|
|
1724
|
-
brand ? /* @__PURE__ */
|
|
1725
|
-
headerActions ? /* @__PURE__ */
|
|
1958
|
+
return /* @__PURE__ */ jsx31(Box10, { py: { base: "xl", md: "4rem" }, children: /* @__PURE__ */ jsx31(Container2, { size: "xs", children: /* @__PURE__ */ jsxs24(Stack24, { gap: "xl", children: [
|
|
1959
|
+
brand || headerActions ? /* @__PURE__ */ jsxs24(Group21, { justify: brand && headerActions ? "space-between" : "center", align: "center", children: [
|
|
1960
|
+
brand ? /* @__PURE__ */ jsx31(Box10, { children: brand }) : /* @__PURE__ */ jsx31(Box10, {}),
|
|
1961
|
+
headerActions ? /* @__PURE__ */ jsx31(Group21, { gap: "sm", children: headerActions }) : null
|
|
1726
1962
|
] }) : null,
|
|
1727
|
-
/* @__PURE__ */
|
|
1728
|
-
/* @__PURE__ */
|
|
1729
|
-
/* @__PURE__ */
|
|
1730
|
-
/* @__PURE__ */
|
|
1731
|
-
description ? /* @__PURE__ */
|
|
1963
|
+
/* @__PURE__ */ jsx31(Card8, { withBorder: true, radius: "lg", padding: "xl", children: /* @__PURE__ */ jsxs24(Stack24, { gap: "lg", children: [
|
|
1964
|
+
/* @__PURE__ */ jsxs24(Stack24, { gap: "xs", ta: "center", children: [
|
|
1965
|
+
/* @__PURE__ */ jsx31(Group21, { justify: "center", children: /* @__PURE__ */ jsx31(Badge14, { variant: "light", color: intent === "account-linking" ? "blue" : intent === "guest-entry" ? "gray" : "teal", children: intent.replace("-", " ") }) }),
|
|
1966
|
+
/* @__PURE__ */ jsx31(Title16, { order: 2, children: title }),
|
|
1967
|
+
description ? /* @__PURE__ */ jsx31(Text21, { c: "dimmed", size: "sm", children: description }) : null
|
|
1732
1968
|
] }),
|
|
1733
|
-
error ? /* @__PURE__ */
|
|
1734
|
-
socialAuth ? /* @__PURE__ */
|
|
1735
|
-
socialAuth ? /* @__PURE__ */
|
|
1969
|
+
error ? /* @__PURE__ */ jsx31(Alert, { color: "red", variant: "light", role: "alert", children: error }) : null,
|
|
1970
|
+
socialAuth ? /* @__PURE__ */ jsx31(Box10, { children: socialAuth }) : null,
|
|
1971
|
+
socialAuth ? /* @__PURE__ */ jsx31(Divider4, { label: dividerLabel, labelPosition: "center" }) : null,
|
|
1736
1972
|
children,
|
|
1737
|
-
guestAction || supportAction ? /* @__PURE__ */
|
|
1973
|
+
guestAction || supportAction ? /* @__PURE__ */ jsxs24(Group21, { justify: "center", gap: "sm", children: [
|
|
1738
1974
|
guestAction,
|
|
1739
1975
|
supportAction
|
|
1740
1976
|
] }) : null,
|
|
1741
|
-
helper ? /* @__PURE__ */
|
|
1977
|
+
helper ? /* @__PURE__ */ jsx31(Text21, { size: "sm", c: "dimmed", ta: "center", children: helper }) : null
|
|
1742
1978
|
] }) }),
|
|
1743
|
-
footer ? /* @__PURE__ */
|
|
1979
|
+
footer ? /* @__PURE__ */ jsx31(Text21, { size: "sm", c: "dimmed", ta: "center", children: footer }) : null
|
|
1744
1980
|
] }) }) });
|
|
1745
1981
|
}
|
|
1746
1982
|
|
|
1747
1983
|
// src/ProviderIdentityButtons.tsx
|
|
1748
|
-
import { Button as
|
|
1749
|
-
import { jsx as
|
|
1984
|
+
import { Button as Button4, SimpleGrid as SimpleGrid5, Stack as Stack25, Text as Text22, ThemeIcon as ThemeIcon7 } from "@mantine/core";
|
|
1985
|
+
import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1750
1986
|
var PROVIDER_IDENTITY_REGISTRY = {
|
|
1751
1987
|
google: {
|
|
1752
1988
|
providerLabel: "Google",
|
|
@@ -1852,7 +2088,7 @@ function getProviderIdentityPolicy(provider) {
|
|
|
1852
2088
|
}
|
|
1853
2089
|
function ProviderIdentityMark({ provider }) {
|
|
1854
2090
|
const meta = getProviderIdentityMeta(provider);
|
|
1855
|
-
return /* @__PURE__ */
|
|
2091
|
+
return /* @__PURE__ */ jsx32(
|
|
1856
2092
|
ThemeIcon7,
|
|
1857
2093
|
{
|
|
1858
2094
|
variant: "light",
|
|
@@ -1860,7 +2096,7 @@ function ProviderIdentityMark({ provider }) {
|
|
|
1860
2096
|
radius: "xl",
|
|
1861
2097
|
size: "md",
|
|
1862
2098
|
"aria-hidden": "true",
|
|
1863
|
-
children: /* @__PURE__ */
|
|
2099
|
+
children: /* @__PURE__ */ jsx32(Text22, { size: "xs", fw: 700, c: "inherit", children: meta.markLabel })
|
|
1864
2100
|
}
|
|
1865
2101
|
);
|
|
1866
2102
|
}
|
|
@@ -1891,8 +2127,8 @@ function ProviderIdentityButton({
|
|
|
1891
2127
|
} : {
|
|
1892
2128
|
onClick
|
|
1893
2129
|
};
|
|
1894
|
-
return /* @__PURE__ */
|
|
1895
|
-
|
|
2130
|
+
return /* @__PURE__ */ jsx32(
|
|
2131
|
+
Button4,
|
|
1896
2132
|
{
|
|
1897
2133
|
variant: mapVariant(variant),
|
|
1898
2134
|
color: variant === "solid" ? meta.brandColor : void 0,
|
|
@@ -1901,17 +2137,17 @@ function ProviderIdentityButton({
|
|
|
1901
2137
|
size,
|
|
1902
2138
|
"aria-label": ariaLabel ?? (typeof buttonLabel === "string" ? buttonLabel : void 0),
|
|
1903
2139
|
"aria-describedby": describedBy,
|
|
1904
|
-
leftSection: /* @__PURE__ */
|
|
2140
|
+
leftSection: /* @__PURE__ */ jsx32(ProviderIdentityMark, { provider }),
|
|
1905
2141
|
disabled: resolvedDisabled,
|
|
1906
2142
|
loading,
|
|
1907
2143
|
styles: { root: { minHeight: minTouchTargetPx } },
|
|
1908
2144
|
...buttonProps,
|
|
1909
|
-
children: /* @__PURE__ */
|
|
1910
|
-
/* @__PURE__ */
|
|
1911
|
-
description ? /* @__PURE__ */
|
|
1912
|
-
policyNote ? /* @__PURE__ */
|
|
1913
|
-
tenantDisabledReason ? /* @__PURE__ */
|
|
1914
|
-
error ? /* @__PURE__ */
|
|
2145
|
+
children: /* @__PURE__ */ jsxs25(Stack25, { gap: 0, align: "flex-start", children: [
|
|
2146
|
+
/* @__PURE__ */ jsx32(Text22, { inherit: true, children: buttonLabel }),
|
|
2147
|
+
description ? /* @__PURE__ */ jsx32(Text22, { size: "xs", c: "dimmed", lh: 1.2, children: description }) : null,
|
|
2148
|
+
policyNote ? /* @__PURE__ */ jsx32(Text22, { size: "xs", c: "dimmed", lh: 1.2, children: policyNote }) : null,
|
|
2149
|
+
tenantDisabledReason ? /* @__PURE__ */ jsx32(Text22, { size: "xs", c: "orange.7", lh: 1.2, children: tenantDisabledReason }) : null,
|
|
2150
|
+
error ? /* @__PURE__ */ jsx32(Text22, { size: "xs", c: "red.7", lh: 1.2, role: "alert", children: error }) : null
|
|
1915
2151
|
] })
|
|
1916
2152
|
}
|
|
1917
2153
|
);
|
|
@@ -1922,17 +2158,17 @@ function ProviderIdentityButtonGroup({ providers, layout = "stack" }) {
|
|
|
1922
2158
|
}
|
|
1923
2159
|
const content = providers.map((entry, index) => {
|
|
1924
2160
|
const key = `${normalizeProviderId(String(entry.provider)) || "provider"}-${index}`;
|
|
1925
|
-
return /* @__PURE__ */
|
|
2161
|
+
return /* @__PURE__ */ jsx32(ProviderIdentityButton, { ...entry }, key);
|
|
1926
2162
|
});
|
|
1927
2163
|
if (layout === "grid") {
|
|
1928
|
-
return /* @__PURE__ */
|
|
2164
|
+
return /* @__PURE__ */ jsx32(SimpleGrid5, { cols: { base: 1, sm: 2 }, spacing: "sm", children: content });
|
|
1929
2165
|
}
|
|
1930
|
-
return /* @__PURE__ */
|
|
2166
|
+
return /* @__PURE__ */ jsx32(Stack25, { gap: "sm", children: content });
|
|
1931
2167
|
}
|
|
1932
2168
|
|
|
1933
2169
|
// src/SocialAuthButtons.tsx
|
|
1934
|
-
import { Divider as Divider5, Group as
|
|
1935
|
-
import { jsx as
|
|
2170
|
+
import { Divider as Divider5, Group as Group22, Stack as Stack26, Text as Text23 } from "@mantine/core";
|
|
2171
|
+
import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1936
2172
|
function SocialAuthButtons({
|
|
1937
2173
|
providers,
|
|
1938
2174
|
title = "Continue with a trusted provider",
|
|
@@ -1957,53 +2193,53 @@ function SocialAuthButtons({
|
|
|
1957
2193
|
size: provider.size ?? (compact ? "sm" : "md"),
|
|
1958
2194
|
variant: provider.variant
|
|
1959
2195
|
}));
|
|
1960
|
-
return /* @__PURE__ */
|
|
1961
|
-
/* @__PURE__ */
|
|
1962
|
-
/* @__PURE__ */
|
|
1963
|
-
/* @__PURE__ */
|
|
1964
|
-
/* @__PURE__ */
|
|
2196
|
+
return /* @__PURE__ */ jsxs26(Stack26, { gap: "md", children: [
|
|
2197
|
+
/* @__PURE__ */ jsxs26(Stack26, { gap: 4, ta: "center", children: [
|
|
2198
|
+
/* @__PURE__ */ jsxs26(Group22, { justify: "center", gap: "xs", children: [
|
|
2199
|
+
/* @__PURE__ */ jsx33(GdsIcons.Login, { size: "1rem" }),
|
|
2200
|
+
/* @__PURE__ */ jsx33(Text23, { fw: 600, children: title })
|
|
1965
2201
|
] }),
|
|
1966
|
-
description ? /* @__PURE__ */
|
|
2202
|
+
description ? /* @__PURE__ */ jsx33(Text23, { size: "sm", c: "dimmed", children: description }) : null
|
|
1967
2203
|
] }),
|
|
1968
|
-
/* @__PURE__ */
|
|
1969
|
-
/* @__PURE__ */
|
|
2204
|
+
/* @__PURE__ */ jsx33(Divider5, {}),
|
|
2205
|
+
/* @__PURE__ */ jsx33(ProviderIdentityButtonGroup, { providers: buttons, layout })
|
|
1970
2206
|
] });
|
|
1971
2207
|
}
|
|
1972
2208
|
|
|
1973
2209
|
// src/ArticleShell.tsx
|
|
1974
|
-
import { Container as Container3, Group as
|
|
1975
|
-
import { jsx as
|
|
2210
|
+
import { Container as Container3, Group as Group23, Stack as Stack27, Text as Text24, Title as Title17 } from "@mantine/core";
|
|
2211
|
+
import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1976
2212
|
function ArticleShell({ eyebrow, title, lead, meta, sideRail, children }) {
|
|
1977
|
-
return /* @__PURE__ */
|
|
1978
|
-
/* @__PURE__ */
|
|
1979
|
-
/* @__PURE__ */
|
|
1980
|
-
eyebrow ? /* @__PURE__ */
|
|
1981
|
-
/* @__PURE__ */
|
|
1982
|
-
lead ? /* @__PURE__ */
|
|
1983
|
-
meta ? /* @__PURE__ */
|
|
2213
|
+
return /* @__PURE__ */ jsx34(Container3, { size: "lg", py: "xl", children: /* @__PURE__ */ jsxs27(Group23, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
2214
|
+
/* @__PURE__ */ jsxs27(Stack27, { gap: "lg", maw: 760, flex: 1, children: [
|
|
2215
|
+
/* @__PURE__ */ jsxs27(Stack27, { gap: "sm", children: [
|
|
2216
|
+
eyebrow ? /* @__PURE__ */ jsx34(Text24, { size: "sm", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
2217
|
+
/* @__PURE__ */ jsx34(Title17, { order: 1, children: title }),
|
|
2218
|
+
lead ? /* @__PURE__ */ jsx34(Text24, { size: "lg", c: "dimmed", children: lead }) : null,
|
|
2219
|
+
meta ? /* @__PURE__ */ jsx34(Group23, { gap: "md", children: meta }) : null
|
|
1984
2220
|
] }),
|
|
1985
|
-
/* @__PURE__ */
|
|
2221
|
+
/* @__PURE__ */ jsx34(Stack27, { gap: "md", children })
|
|
1986
2222
|
] }),
|
|
1987
|
-
sideRail ? /* @__PURE__ */
|
|
2223
|
+
sideRail ? /* @__PURE__ */ jsx34(Stack27, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
1988
2224
|
] }) });
|
|
1989
2225
|
}
|
|
1990
2226
|
|
|
1991
2227
|
// src/CtaButtonGroup.tsx
|
|
1992
|
-
import { Group as
|
|
1993
|
-
import { jsx as
|
|
2228
|
+
import { Group as Group24, Stack as Stack28 } from "@mantine/core";
|
|
2229
|
+
import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1994
2230
|
function CtaButtonGroup({ primary, secondary, tertiary }) {
|
|
1995
|
-
return /* @__PURE__ */
|
|
1996
|
-
/* @__PURE__ */
|
|
1997
|
-
/* @__PURE__ */
|
|
1998
|
-
secondary ? /* @__PURE__ */
|
|
2231
|
+
return /* @__PURE__ */ jsxs28(Stack28, { gap: "sm", children: [
|
|
2232
|
+
/* @__PURE__ */ jsxs28(Group24, { gap: "sm", align: "stretch", children: [
|
|
2233
|
+
/* @__PURE__ */ jsx35("div", { children: primary }),
|
|
2234
|
+
secondary ? /* @__PURE__ */ jsx35("div", { children: secondary }) : null
|
|
1999
2235
|
] }),
|
|
2000
|
-
tertiary ? /* @__PURE__ */
|
|
2236
|
+
tertiary ? /* @__PURE__ */ jsx35("div", { children: tertiary }) : null
|
|
2001
2237
|
] });
|
|
2002
2238
|
}
|
|
2003
2239
|
|
|
2004
2240
|
// src/DocsPageShell.tsx
|
|
2005
|
-
import { Anchor as Anchor5, Breadcrumbs, Container as Container4, Group as
|
|
2006
|
-
import { jsx as
|
|
2241
|
+
import { Anchor as Anchor5, Breadcrumbs, Container as Container4, Group as Group25, Stack as Stack29, Text as Text25, Title as Title18 } from "@mantine/core";
|
|
2242
|
+
import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2007
2243
|
function DocsPageShell({
|
|
2008
2244
|
breadcrumbs = [],
|
|
2009
2245
|
title,
|
|
@@ -2014,27 +2250,27 @@ function DocsPageShell({
|
|
|
2014
2250
|
footerNext,
|
|
2015
2251
|
children
|
|
2016
2252
|
}) {
|
|
2017
|
-
return /* @__PURE__ */
|
|
2018
|
-
/* @__PURE__ */
|
|
2019
|
-
breadcrumbs.length ? /* @__PURE__ */
|
|
2020
|
-
(crumb) => crumb.href ? /* @__PURE__ */
|
|
2253
|
+
return /* @__PURE__ */ jsx36(Container4, { fluid: true, py: "xl", px: { base: "md", md: "lg", lg: "xl" }, w: "100%", maw: "100%", children: /* @__PURE__ */ jsxs29(Group25, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
2254
|
+
/* @__PURE__ */ jsxs29(Stack29, { component: "article", gap: "lg", flex: 1, miw: 0, children: [
|
|
2255
|
+
breadcrumbs.length ? /* @__PURE__ */ jsx36(Breadcrumbs, { children: breadcrumbs.map(
|
|
2256
|
+
(crumb) => crumb.href ? /* @__PURE__ */ jsx36(Anchor5, { href: crumb.href, children: crumb.label }, `${crumb.label}-${crumb.href}`) : /* @__PURE__ */ jsx36(Text25, { children: crumb.label }, crumb.label)
|
|
2021
2257
|
) }) : null,
|
|
2022
|
-
/* @__PURE__ */
|
|
2023
|
-
eyebrow ? /* @__PURE__ */
|
|
2024
|
-
/* @__PURE__ */
|
|
2025
|
-
lead ? /* @__PURE__ */
|
|
2026
|
-
meta ? /* @__PURE__ */
|
|
2258
|
+
/* @__PURE__ */ jsxs29(Stack29, { gap: "sm", children: [
|
|
2259
|
+
eyebrow ? /* @__PURE__ */ jsx36(Text25, { size: "sm", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
2260
|
+
/* @__PURE__ */ jsx36(Title18, { order: 1, children: title }),
|
|
2261
|
+
lead ? /* @__PURE__ */ jsx36(Text25, { size: "lg", c: "dimmed", children: lead }) : null,
|
|
2262
|
+
meta ? /* @__PURE__ */ jsx36(Group25, { gap: "md", children: meta }) : null
|
|
2027
2263
|
] }),
|
|
2028
|
-
/* @__PURE__ */
|
|
2029
|
-
footerNext ? /* @__PURE__ */
|
|
2264
|
+
/* @__PURE__ */ jsx36(Stack29, { gap: "md", children }),
|
|
2265
|
+
footerNext ? /* @__PURE__ */ jsx36(Anchor5, { href: footerNext.href, fw: 600, children: footerNext.label }) : null
|
|
2030
2266
|
] }),
|
|
2031
|
-
sideRail ? /* @__PURE__ */
|
|
2267
|
+
sideRail ? /* @__PURE__ */ jsx36(Stack29, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
2032
2268
|
] }) });
|
|
2033
2269
|
}
|
|
2034
2270
|
|
|
2035
2271
|
// src/EditorialHero.tsx
|
|
2036
|
-
import { Anchor as Anchor6, AspectRatio as AspectRatio5, Box as Box11, Grid as Grid2, Group as
|
|
2037
|
-
import { jsx as
|
|
2272
|
+
import { Anchor as Anchor6, AspectRatio as AspectRatio5, Box as Box11, Grid as Grid2, Group as Group26, Paper as Paper7, Skeleton as Skeleton3, Stack as Stack30, Text as Text26, ThemeIcon as ThemeIcon8, Title as Title19 } from "@mantine/core";
|
|
2273
|
+
import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2038
2274
|
function resolveActionVariant(action, index, seenPrimary) {
|
|
2039
2275
|
const requested = action.variant ?? (index === 0 ? "primary" : "secondary");
|
|
2040
2276
|
if (requested === "primary" && !seenPrimary) {
|
|
@@ -2046,7 +2282,7 @@ function resolveActionVariant(action, index, seenPrimary) {
|
|
|
2046
2282
|
return { variant: "default", seenPrimary };
|
|
2047
2283
|
}
|
|
2048
2284
|
function HeroAction({ action, variant }) {
|
|
2049
|
-
const content = /* @__PURE__ */
|
|
2285
|
+
const content = /* @__PURE__ */ jsx37(
|
|
2050
2286
|
Anchor6,
|
|
2051
2287
|
{
|
|
2052
2288
|
href: action.href,
|
|
@@ -2071,7 +2307,7 @@ function HeroAction({ action, variant }) {
|
|
|
2071
2307
|
}
|
|
2072
2308
|
);
|
|
2073
2309
|
if (!action.href) {
|
|
2074
|
-
return /* @__PURE__ */
|
|
2310
|
+
return /* @__PURE__ */ jsx37(
|
|
2075
2311
|
Box11,
|
|
2076
2312
|
{
|
|
2077
2313
|
component: "button",
|
|
@@ -2099,22 +2335,22 @@ function HeroAction({ action, variant }) {
|
|
|
2099
2335
|
return content;
|
|
2100
2336
|
}
|
|
2101
2337
|
function LoadingHero({ compact }) {
|
|
2102
|
-
return /* @__PURE__ */
|
|
2103
|
-
/* @__PURE__ */
|
|
2104
|
-
/* @__PURE__ */
|
|
2105
|
-
/* @__PURE__ */
|
|
2106
|
-
/* @__PURE__ */
|
|
2107
|
-
/* @__PURE__ */
|
|
2108
|
-
/* @__PURE__ */
|
|
2109
|
-
/* @__PURE__ */
|
|
2110
|
-
/* @__PURE__ */
|
|
2338
|
+
return /* @__PURE__ */ jsx37(Paper7, { withBorder: true, radius: "xl", p: compact ? "lg" : "xl", children: /* @__PURE__ */ jsxs30(Grid2, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
2339
|
+
/* @__PURE__ */ jsx37(Grid2.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ jsxs30(Stack30, { gap: "md", children: [
|
|
2340
|
+
/* @__PURE__ */ jsx37(Skeleton3, { height: 16, width: 96, radius: "xl" }),
|
|
2341
|
+
/* @__PURE__ */ jsx37(Skeleton3, { height: 48, width: "90%", radius: "md" }),
|
|
2342
|
+
/* @__PURE__ */ jsx37(Skeleton3, { height: 18, width: "100%", radius: "md" }),
|
|
2343
|
+
/* @__PURE__ */ jsx37(Skeleton3, { height: 18, width: "82%", radius: "md" }),
|
|
2344
|
+
/* @__PURE__ */ jsxs30(Group26, { children: [
|
|
2345
|
+
/* @__PURE__ */ jsx37(Skeleton3, { height: 40, width: 140, radius: "md" }),
|
|
2346
|
+
/* @__PURE__ */ jsx37(Skeleton3, { height: 40, width: 140, radius: "md" })
|
|
2111
2347
|
] })
|
|
2112
2348
|
] }) }),
|
|
2113
|
-
/* @__PURE__ */
|
|
2349
|
+
/* @__PURE__ */ jsx37(Grid2.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ jsx37(AspectRatio5, { ratio: 16 / 11, children: /* @__PURE__ */ jsx37(Skeleton3, { radius: "lg" }) }) })
|
|
2114
2350
|
] }) });
|
|
2115
2351
|
}
|
|
2116
2352
|
function MediaFallback() {
|
|
2117
|
-
return /* @__PURE__ */
|
|
2353
|
+
return /* @__PURE__ */ jsx37(AspectRatio5, { ratio: 16 / 11, children: /* @__PURE__ */ jsx37(
|
|
2118
2354
|
ThemeIcon8,
|
|
2119
2355
|
{
|
|
2120
2356
|
size: "100%",
|
|
@@ -2122,7 +2358,7 @@ function MediaFallback() {
|
|
|
2122
2358
|
color: "gray",
|
|
2123
2359
|
variant: "light",
|
|
2124
2360
|
"aria-label": "Hero media is unavailable",
|
|
2125
|
-
children: /* @__PURE__ */
|
|
2361
|
+
children: /* @__PURE__ */ jsx37(GdsIcons.Gallery, { size: "2.5rem" })
|
|
2126
2362
|
}
|
|
2127
2363
|
) });
|
|
2128
2364
|
}
|
|
@@ -2142,7 +2378,7 @@ function MediaFrame({
|
|
|
2142
2378
|
} else if (mediaFade === "soft-start") {
|
|
2143
2379
|
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%)";
|
|
2144
2380
|
}
|
|
2145
|
-
return /* @__PURE__ */
|
|
2381
|
+
return /* @__PURE__ */ jsxs30(
|
|
2146
2382
|
Box11,
|
|
2147
2383
|
{
|
|
2148
2384
|
component: "figure",
|
|
@@ -2156,8 +2392,8 @@ function MediaFrame({
|
|
|
2156
2392
|
},
|
|
2157
2393
|
"aria-label": mediaAlt,
|
|
2158
2394
|
children: [
|
|
2159
|
-
media ?? /* @__PURE__ */
|
|
2160
|
-
media && overlayBackground ? /* @__PURE__ */
|
|
2395
|
+
media ?? /* @__PURE__ */ jsx37(MediaFallback, {}),
|
|
2396
|
+
media && overlayBackground ? /* @__PURE__ */ jsx37(
|
|
2161
2397
|
Box11,
|
|
2162
2398
|
{
|
|
2163
2399
|
"aria-hidden": true,
|
|
@@ -2191,7 +2427,7 @@ function EditorialHero({
|
|
|
2191
2427
|
classNames
|
|
2192
2428
|
}) {
|
|
2193
2429
|
if (loading) {
|
|
2194
|
-
return /* @__PURE__ */
|
|
2430
|
+
return /* @__PURE__ */ jsx37(LoadingHero, { compact });
|
|
2195
2431
|
}
|
|
2196
2432
|
const stackAlign = align === "center" ? "center" : "flex-start";
|
|
2197
2433
|
const textAlign = align === "center" ? "center" : "left";
|
|
@@ -2199,15 +2435,15 @@ function EditorialHero({
|
|
|
2199
2435
|
const renderedActions = actions.slice(0, 3).map((action, index) => {
|
|
2200
2436
|
const resolved = resolveActionVariant(action, index, seenPrimary);
|
|
2201
2437
|
seenPrimary = resolved.seenPrimary;
|
|
2202
|
-
return /* @__PURE__ */
|
|
2438
|
+
return /* @__PURE__ */ jsx37(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
|
|
2203
2439
|
});
|
|
2204
|
-
const textSlot = /* @__PURE__ */
|
|
2205
|
-
/* @__PURE__ */
|
|
2206
|
-
eyebrow ? /* @__PURE__ */
|
|
2207
|
-
/* @__PURE__ */
|
|
2208
|
-
description ? /* @__PURE__ */
|
|
2440
|
+
const textSlot = /* @__PURE__ */ jsxs30(Stack30, { gap: compact ? "md" : "lg", justify: "center", h: "100%", className: classNames?.content, children: [
|
|
2441
|
+
/* @__PURE__ */ jsxs30(Stack30, { gap: "sm", align: stackAlign, children: [
|
|
2442
|
+
eyebrow ? /* @__PURE__ */ jsx37(Text26, { size: "sm", fw: 700, c: "dimmed", ta: textAlign, children: eyebrow }) : null,
|
|
2443
|
+
/* @__PURE__ */ jsx37(Title19, { order: 1, maw: 760, ta: textAlign, children: title }),
|
|
2444
|
+
description ? /* @__PURE__ */ jsx37(Text26, { size: compact ? "md" : "lg", c: "dimmed", maw: 720, ta: textAlign, children: description }) : null
|
|
2209
2445
|
] }),
|
|
2210
|
-
renderedActions.length ? /* @__PURE__ */
|
|
2446
|
+
renderedActions.length ? /* @__PURE__ */ jsx37(Box11, { className: classNames?.actions, children: /* @__PURE__ */ jsx37(
|
|
2211
2447
|
CtaButtonGroup,
|
|
2212
2448
|
{
|
|
2213
2449
|
primary: renderedActions[0],
|
|
@@ -2215,8 +2451,8 @@ function EditorialHero({
|
|
|
2215
2451
|
tertiary: renderedActions[2]
|
|
2216
2452
|
}
|
|
2217
2453
|
) }) : null,
|
|
2218
|
-
meta.length ? /* @__PURE__ */
|
|
2219
|
-
|
|
2454
|
+
meta.length ? /* @__PURE__ */ jsx37(Group26, { gap: "sm", wrap: "wrap", "aria-label": "Supporting details", className: classNames?.meta, children: meta.map((item) => /* @__PURE__ */ jsxs30(
|
|
2455
|
+
Group26,
|
|
2220
2456
|
{
|
|
2221
2457
|
gap: 6,
|
|
2222
2458
|
px: "sm",
|
|
@@ -2227,16 +2463,16 @@ function EditorialHero({
|
|
|
2227
2463
|
},
|
|
2228
2464
|
children: [
|
|
2229
2465
|
item.icon,
|
|
2230
|
-
/* @__PURE__ */
|
|
2466
|
+
/* @__PURE__ */ jsx37(Text26, { size: "sm", c: "dimmed", children: item.label })
|
|
2231
2467
|
]
|
|
2232
2468
|
},
|
|
2233
2469
|
item.id
|
|
2234
2470
|
)) }) : null
|
|
2235
2471
|
] });
|
|
2236
|
-
const mediaSlot = error ? /* @__PURE__ */
|
|
2237
|
-
const textCol = /* @__PURE__ */
|
|
2238
|
-
const mediaCol = /* @__PURE__ */
|
|
2239
|
-
return /* @__PURE__ */
|
|
2472
|
+
const mediaSlot = error ? /* @__PURE__ */ jsx37(AccentPanel, { tone: "red", variant: "soft-outline", title: "Media unavailable", children: error }) : /* @__PURE__ */ jsx37(MediaFrame, { media, mediaAlt, mediaFade, className: classNames?.media });
|
|
2473
|
+
const textCol = /* @__PURE__ */ jsx37(Grid2.Col, { span: { base: 12, md: 6 }, order: { base: 1, md: mediaPosition === "left" ? 2 : 1 }, children: textSlot });
|
|
2474
|
+
const mediaCol = /* @__PURE__ */ jsx37(Grid2.Col, { span: { base: 12, md: 6 }, order: { base: 2, md: mediaPosition === "left" ? 1 : 2 }, children: mediaSlot });
|
|
2475
|
+
return /* @__PURE__ */ jsx37(
|
|
2240
2476
|
Paper7,
|
|
2241
2477
|
{
|
|
2242
2478
|
component: "section",
|
|
@@ -2245,7 +2481,7 @@ function EditorialHero({
|
|
|
2245
2481
|
p: compact ? "lg" : "xl",
|
|
2246
2482
|
className: classNames?.root,
|
|
2247
2483
|
style: surfaceVariant === "flat-public" ? { boxShadow: "none" } : void 0,
|
|
2248
|
-
children: /* @__PURE__ */
|
|
2484
|
+
children: /* @__PURE__ */ jsxs30(Grid2, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
2249
2485
|
textCol,
|
|
2250
2486
|
mediaCol
|
|
2251
2487
|
] })
|
|
@@ -2254,19 +2490,19 @@ function EditorialHero({
|
|
|
2254
2490
|
}
|
|
2255
2491
|
|
|
2256
2492
|
// src/FeatureBand.tsx
|
|
2257
|
-
import { Box as Box12, Group as
|
|
2258
|
-
import { Fragment as
|
|
2493
|
+
import { Box as Box12, Group as Group27, Paper as Paper8, SimpleGrid as SimpleGrid6, Skeleton as Skeleton4, Stack as Stack31, Text as Text27, ThemeIcon as ThemeIcon9, Title as Title20 } from "@mantine/core";
|
|
2494
|
+
import { Fragment as Fragment6, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2259
2495
|
function FeatureBandSkeleton({
|
|
2260
2496
|
columns = 3,
|
|
2261
2497
|
bordered = true,
|
|
2262
2498
|
variant = "default"
|
|
2263
2499
|
}) {
|
|
2264
|
-
return /* @__PURE__ */
|
|
2265
|
-
/* @__PURE__ */
|
|
2266
|
-
/* @__PURE__ */
|
|
2267
|
-
/* @__PURE__ */
|
|
2268
|
-
/* @__PURE__ */
|
|
2269
|
-
/* @__PURE__ */
|
|
2500
|
+
return /* @__PURE__ */ jsx38(SimpleGrid6, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx38(Paper8, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ jsxs31(Stack31, { gap: "md", children: [
|
|
2501
|
+
/* @__PURE__ */ jsx38(Skeleton4, { height: variant === "process" ? 28 : 42, width: variant === "process" ? 72 : 42, radius: "xl" }),
|
|
2502
|
+
/* @__PURE__ */ jsxs31(Stack31, { gap: "xs", children: [
|
|
2503
|
+
/* @__PURE__ */ jsx38(Skeleton4, { height: 20, width: "75%", radius: "md" }),
|
|
2504
|
+
/* @__PURE__ */ jsx38(Skeleton4, { height: 14, width: "100%", radius: "md" }),
|
|
2505
|
+
/* @__PURE__ */ jsx38(Skeleton4, { height: 14, width: "82%", radius: "md" })
|
|
2270
2506
|
] })
|
|
2271
2507
|
] }) }, index)) });
|
|
2272
2508
|
}
|
|
@@ -2279,10 +2515,10 @@ function FeatureBand({
|
|
|
2279
2515
|
variant = "default"
|
|
2280
2516
|
}) {
|
|
2281
2517
|
if (loading) {
|
|
2282
|
-
return /* @__PURE__ */
|
|
2518
|
+
return /* @__PURE__ */ jsx38(FeatureBandSkeleton, { columns, bordered, variant });
|
|
2283
2519
|
}
|
|
2284
2520
|
if (!items.length) {
|
|
2285
|
-
return emptyState ? /* @__PURE__ */
|
|
2521
|
+
return emptyState ? /* @__PURE__ */ jsx38(Fragment6, { children: emptyState }) : /* @__PURE__ */ jsx38(
|
|
2286
2522
|
EmptyState,
|
|
2287
2523
|
{
|
|
2288
2524
|
title: "No supporting details available",
|
|
@@ -2290,9 +2526,9 @@ function FeatureBand({
|
|
|
2290
2526
|
}
|
|
2291
2527
|
);
|
|
2292
2528
|
}
|
|
2293
|
-
return /* @__PURE__ */
|
|
2294
|
-
variant === "process" ? /* @__PURE__ */
|
|
2295
|
-
|
|
2529
|
+
return /* @__PURE__ */ jsx38(Box12, { component: "section", "aria-label": "Supporting features", children: /* @__PURE__ */ jsx38(SimpleGrid6, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: items.map((item, index) => /* @__PURE__ */ jsx38(Paper8, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ jsxs31(Stack31, { gap: "md", children: [
|
|
2530
|
+
variant === "process" ? /* @__PURE__ */ jsx38(Group27, { children: /* @__PURE__ */ jsx38(
|
|
2531
|
+
Text27,
|
|
2296
2532
|
{
|
|
2297
2533
|
fw: 800,
|
|
2298
2534
|
size: "sm",
|
|
@@ -2304,18 +2540,18 @@ function FeatureBand({
|
|
|
2304
2540
|
},
|
|
2305
2541
|
children: item.stepLabel ?? `Step ${index + 1}`
|
|
2306
2542
|
}
|
|
2307
|
-
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */
|
|
2308
|
-
/* @__PURE__ */
|
|
2309
|
-
/* @__PURE__ */
|
|
2310
|
-
item.description ? /* @__PURE__ */
|
|
2311
|
-
item.meta ? /* @__PURE__ */
|
|
2543
|
+
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ jsx38(Group27, { children: /* @__PURE__ */ jsx38(ThemeIcon9, { size: "xl", radius: "xl", variant: "light", color: "violet", children: item.icon }) }) : /* @__PURE__ */ jsx38(Group27, { children: /* @__PURE__ */ jsx38(ThemeIcon9, { size: "xl", radius: "xl", variant: "light", color: "gray", "aria-hidden": true, children: /* @__PURE__ */ jsx38(GdsIcons.Info, { size: "1.25rem" }) }) }),
|
|
2544
|
+
/* @__PURE__ */ jsxs31(Stack31, { gap: "xs", children: [
|
|
2545
|
+
/* @__PURE__ */ jsx38(Title20, { order: 4, children: item.title }),
|
|
2546
|
+
item.description ? /* @__PURE__ */ jsx38(Text27, { c: "dimmed", children: item.description }) : null,
|
|
2547
|
+
item.meta ? /* @__PURE__ */ jsx38(Text27, { size: "sm", c: "dimmed", children: item.meta }) : null
|
|
2312
2548
|
] })
|
|
2313
2549
|
] }) }, item.id)) }) });
|
|
2314
2550
|
}
|
|
2315
2551
|
|
|
2316
2552
|
// src/MapPanel.tsx
|
|
2317
|
-
import { AspectRatio as AspectRatio6, Box as Box13, Group as
|
|
2318
|
-
import { jsx as
|
|
2553
|
+
import { AspectRatio as AspectRatio6, Box as Box13, Group as Group28, Paper as Paper9, Stack as Stack32, Text as Text28, Title as Title21 } from "@mantine/core";
|
|
2554
|
+
import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2319
2555
|
function MapPanel({
|
|
2320
2556
|
title,
|
|
2321
2557
|
description,
|
|
@@ -2331,7 +2567,7 @@ function MapPanel({
|
|
|
2331
2567
|
}) {
|
|
2332
2568
|
let body;
|
|
2333
2569
|
if (loading) {
|
|
2334
|
-
body = /* @__PURE__ */
|
|
2570
|
+
body = /* @__PURE__ */ jsx39(
|
|
2335
2571
|
StateBlock,
|
|
2336
2572
|
{
|
|
2337
2573
|
variant: "loading",
|
|
@@ -2341,9 +2577,9 @@ function MapPanel({
|
|
|
2341
2577
|
}
|
|
2342
2578
|
);
|
|
2343
2579
|
} else if (error) {
|
|
2344
|
-
body = /* @__PURE__ */
|
|
2580
|
+
body = /* @__PURE__ */ jsx39(StateBlock, { variant: "error", title: "Map unavailable", description: error, compact: true });
|
|
2345
2581
|
} else if (!iframeSrc && !renderMap) {
|
|
2346
|
-
body = /* @__PURE__ */
|
|
2582
|
+
body = /* @__PURE__ */ jsx39(
|
|
2347
2583
|
StateBlock,
|
|
2348
2584
|
{
|
|
2349
2585
|
variant: "empty",
|
|
@@ -2353,9 +2589,9 @@ function MapPanel({
|
|
|
2353
2589
|
}
|
|
2354
2590
|
);
|
|
2355
2591
|
} else if (renderMap) {
|
|
2356
|
-
body = /* @__PURE__ */
|
|
2592
|
+
body = /* @__PURE__ */ jsx39(Box13, { style: { minHeight }, children: renderMap() });
|
|
2357
2593
|
} else {
|
|
2358
|
-
body = /* @__PURE__ */
|
|
2594
|
+
body = /* @__PURE__ */ jsx39(AspectRatio6, { ratio: 16 / 9, children: /* @__PURE__ */ jsx39(
|
|
2359
2595
|
"iframe",
|
|
2360
2596
|
{
|
|
2361
2597
|
src: iframeSrc,
|
|
@@ -2367,21 +2603,21 @@ function MapPanel({
|
|
|
2367
2603
|
}
|
|
2368
2604
|
) });
|
|
2369
2605
|
}
|
|
2370
|
-
return /* @__PURE__ */
|
|
2371
|
-
/* @__PURE__ */
|
|
2372
|
-
/* @__PURE__ */
|
|
2373
|
-
/* @__PURE__ */
|
|
2374
|
-
description ? /* @__PURE__ */
|
|
2606
|
+
return /* @__PURE__ */ jsx39(Paper9, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs32(Stack32, { gap: "md", children: [
|
|
2607
|
+
/* @__PURE__ */ jsxs32(Group28, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2608
|
+
/* @__PURE__ */ jsxs32(Stack32, { gap: 4, children: [
|
|
2609
|
+
/* @__PURE__ */ jsx39(Title21, { order: 3, children: title }),
|
|
2610
|
+
description ? /* @__PURE__ */ jsx39(Text28, { size: "sm", c: "dimmed", children: description }) : null
|
|
2375
2611
|
] }),
|
|
2376
|
-
actions ? /* @__PURE__ */
|
|
2612
|
+
actions ? /* @__PURE__ */ jsx39(ActionBar, { ...actions }) : null
|
|
2377
2613
|
] }),
|
|
2378
2614
|
body
|
|
2379
2615
|
] }) });
|
|
2380
2616
|
}
|
|
2381
2617
|
|
|
2382
2618
|
// src/PublicFlowShell.tsx
|
|
2383
|
-
import { Badge as
|
|
2384
|
-
import { jsx as
|
|
2619
|
+
import { Badge as Badge15, Group as Group29, Paper as Paper10, Stack as Stack33, Text as Text29, Title as Title22 } from "@mantine/core";
|
|
2620
|
+
import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
2385
2621
|
var stageTone = {
|
|
2386
2622
|
idle: { label: "Idle", color: "gray" },
|
|
2387
2623
|
loading: { label: "Loading", color: "blue" },
|
|
@@ -2433,7 +2669,7 @@ function PublicFlowShell({
|
|
|
2433
2669
|
const actionBar = toActionBar(stage.actions);
|
|
2434
2670
|
let body = stage.body;
|
|
2435
2671
|
if (stage.status === "loading") {
|
|
2436
|
-
body = /* @__PURE__ */
|
|
2672
|
+
body = /* @__PURE__ */ jsx40(
|
|
2437
2673
|
StateBlock,
|
|
2438
2674
|
{
|
|
2439
2675
|
variant: "loading",
|
|
@@ -2442,7 +2678,7 @@ function PublicFlowShell({
|
|
|
2442
2678
|
}
|
|
2443
2679
|
);
|
|
2444
2680
|
} else if (stage.status === "error") {
|
|
2445
|
-
body = errorState ?? /* @__PURE__ */
|
|
2681
|
+
body = errorState ?? /* @__PURE__ */ jsx40(
|
|
2446
2682
|
StateBlock,
|
|
2447
2683
|
{
|
|
2448
2684
|
variant: "error",
|
|
@@ -2451,7 +2687,7 @@ function PublicFlowShell({
|
|
|
2451
2687
|
}
|
|
2452
2688
|
);
|
|
2453
2689
|
} else if (!stage.body && !hardwareSurface) {
|
|
2454
|
-
body = emptyState ?? /* @__PURE__ */
|
|
2690
|
+
body = emptyState ?? /* @__PURE__ */ jsx40(
|
|
2455
2691
|
EmptyState,
|
|
2456
2692
|
{
|
|
2457
2693
|
title: "No stage content available",
|
|
@@ -2459,29 +2695,29 @@ function PublicFlowShell({
|
|
|
2459
2695
|
}
|
|
2460
2696
|
);
|
|
2461
2697
|
}
|
|
2462
|
-
return /* @__PURE__ */
|
|
2463
|
-
/* @__PURE__ */
|
|
2464
|
-
/* @__PURE__ */
|
|
2465
|
-
eyebrow ? /* @__PURE__ */
|
|
2466
|
-
/* @__PURE__ */
|
|
2467
|
-
/* @__PURE__ */
|
|
2468
|
-
/* @__PURE__ */
|
|
2698
|
+
return /* @__PURE__ */ jsx40(Paper10, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs33(Stack33, { gap: "lg", children: [
|
|
2699
|
+
/* @__PURE__ */ jsxs33(Group29, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2700
|
+
/* @__PURE__ */ jsxs33(Stack33, { gap: 4, children: [
|
|
2701
|
+
eyebrow ? /* @__PURE__ */ jsx40(Text29, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
2702
|
+
/* @__PURE__ */ jsxs33(Group29, { gap: "sm", wrap: "wrap", children: [
|
|
2703
|
+
/* @__PURE__ */ jsx40(Title22, { order: 2, children: stage.title }),
|
|
2704
|
+
/* @__PURE__ */ jsx40(Badge15, { variant: "light", color: tone.color, children: tone.label })
|
|
2469
2705
|
] }),
|
|
2470
|
-
stage.description ? /* @__PURE__ */
|
|
2706
|
+
stage.description ? /* @__PURE__ */ jsx40(Text29, { size: "sm", c: "dimmed", children: stage.description }) : null
|
|
2471
2707
|
] }),
|
|
2472
2708
|
exitAction
|
|
2473
2709
|
] }),
|
|
2474
|
-
stage.notice ? /* @__PURE__ */
|
|
2710
|
+
stage.notice ? /* @__PURE__ */ jsx40(Text29, { size: "sm", c: "dimmed", children: stage.notice }) : null,
|
|
2475
2711
|
body,
|
|
2476
2712
|
hardwareSurface,
|
|
2477
2713
|
stage.aside,
|
|
2478
|
-
actionBar ? /* @__PURE__ */
|
|
2714
|
+
actionBar ? /* @__PURE__ */ jsx40(ActionBar, { ...actionBar }) : null
|
|
2479
2715
|
] }) });
|
|
2480
2716
|
}
|
|
2481
2717
|
|
|
2482
2718
|
// src/PlaybackSurface.tsx
|
|
2483
|
-
import { Badge as
|
|
2484
|
-
import { jsx as
|
|
2719
|
+
import { Badge as Badge16, Group as Group30, Paper as Paper11, Stack as Stack34, Text as Text30, Title as Title23 } from "@mantine/core";
|
|
2720
|
+
import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2485
2721
|
var stateTone = {
|
|
2486
2722
|
loading: { label: "Loading", color: "blue" },
|
|
2487
2723
|
ready: { label: "Ready", color: "teal" },
|
|
@@ -2504,7 +2740,7 @@ function PlaybackSurface({
|
|
|
2504
2740
|
const tone = stateTone[state];
|
|
2505
2741
|
let content;
|
|
2506
2742
|
if (state === "loading") {
|
|
2507
|
-
content = /* @__PURE__ */
|
|
2743
|
+
content = /* @__PURE__ */ jsx41(
|
|
2508
2744
|
StateBlock,
|
|
2509
2745
|
{
|
|
2510
2746
|
variant: "loading",
|
|
@@ -2513,7 +2749,7 @@ function PlaybackSurface({
|
|
|
2513
2749
|
}
|
|
2514
2750
|
);
|
|
2515
2751
|
} else if (state === "empty") {
|
|
2516
|
-
content = emptyState ?? /* @__PURE__ */
|
|
2752
|
+
content = emptyState ?? /* @__PURE__ */ jsx41(
|
|
2517
2753
|
EmptyState,
|
|
2518
2754
|
{
|
|
2519
2755
|
title: "No playback content available",
|
|
@@ -2521,7 +2757,7 @@ function PlaybackSurface({
|
|
|
2521
2757
|
}
|
|
2522
2758
|
);
|
|
2523
2759
|
} else if (state === "error") {
|
|
2524
|
-
content = errorState ?? /* @__PURE__ */
|
|
2760
|
+
content = errorState ?? /* @__PURE__ */ jsx41(
|
|
2525
2761
|
StateBlock,
|
|
2526
2762
|
{
|
|
2527
2763
|
variant: "error",
|
|
@@ -2530,23 +2766,23 @@ function PlaybackSurface({
|
|
|
2530
2766
|
}
|
|
2531
2767
|
);
|
|
2532
2768
|
} else {
|
|
2533
|
-
content = /* @__PURE__ */
|
|
2769
|
+
content = /* @__PURE__ */ jsxs34(Stack34, { gap: "md", children: [
|
|
2534
2770
|
media,
|
|
2535
2771
|
overlays
|
|
2536
2772
|
] });
|
|
2537
2773
|
}
|
|
2538
|
-
return /* @__PURE__ */
|
|
2539
|
-
title || statusMessage || controls ? /* @__PURE__ */
|
|
2540
|
-
/* @__PURE__ */
|
|
2541
|
-
title ? /* @__PURE__ */
|
|
2542
|
-
statusMessage ? /* @__PURE__ */
|
|
2774
|
+
return /* @__PURE__ */ jsx41(Paper11, { withBorder: true, radius: "xl", p: "lg", "data-playback-mode": mode, children: /* @__PURE__ */ jsxs34(Stack34, { gap: "md", children: [
|
|
2775
|
+
title || statusMessage || controls ? /* @__PURE__ */ jsxs34(Group30, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2776
|
+
/* @__PURE__ */ jsxs34(Stack34, { gap: 4, children: [
|
|
2777
|
+
title ? /* @__PURE__ */ jsx41(Title23, { order: 3, children: title }) : null,
|
|
2778
|
+
statusMessage ? /* @__PURE__ */ jsx41(Text30, { size: "sm", c: "dimmed", children: statusMessage }) : null
|
|
2543
2779
|
] }),
|
|
2544
|
-
/* @__PURE__ */
|
|
2545
|
-
/* @__PURE__ */
|
|
2780
|
+
/* @__PURE__ */ jsxs34(Group30, { gap: "sm", align: "center", wrap: "wrap", children: [
|
|
2781
|
+
/* @__PURE__ */ jsx41(Badge16, { variant: "light", color: tone.color, children: tone.label }),
|
|
2546
2782
|
controls
|
|
2547
2783
|
] })
|
|
2548
2784
|
] }) : null,
|
|
2549
|
-
state === "degraded" ? /* @__PURE__ */
|
|
2785
|
+
state === "degraded" ? /* @__PURE__ */ jsx41(
|
|
2550
2786
|
StateBlock,
|
|
2551
2787
|
{
|
|
2552
2788
|
variant: "info",
|
|
@@ -2560,8 +2796,8 @@ function PlaybackSurface({
|
|
|
2560
2796
|
}
|
|
2561
2797
|
|
|
2562
2798
|
// src/MediaField.tsx
|
|
2563
|
-
import { Badge as
|
|
2564
|
-
import { Fragment as
|
|
2799
|
+
import { Badge as Badge17, Button as Button5, Divider as Divider6, Group as Group31, Paper as Paper12, Progress as Progress2, Stack as Stack35, Text as Text31 } from "@mantine/core";
|
|
2800
|
+
import { Fragment as Fragment7, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
2565
2801
|
var stateLabels = {
|
|
2566
2802
|
empty: { label: "Empty", color: "gray" },
|
|
2567
2803
|
"drag-active": { label: "Drop to select", color: "violet" },
|
|
@@ -2602,44 +2838,44 @@ function MediaField({
|
|
|
2602
2838
|
}) {
|
|
2603
2839
|
const resolvedState = readonly ? "readonly" : state;
|
|
2604
2840
|
const stateBadge = stateLabels[resolvedState];
|
|
2605
|
-
const resolvedRemoveAction = removeAction ?? (!readonly && onRemove ? /* @__PURE__ */
|
|
2606
|
-
const resolvedResetAction = resetAction ?? (!readonly && onReset ? /* @__PURE__ */
|
|
2841
|
+
const resolvedRemoveAction = removeAction ?? (!readonly && onRemove ? /* @__PURE__ */ jsx42(Button5, { type: "button", variant: "light", color: "red", onClick: onRemove, children: "Remove" }) : null);
|
|
2842
|
+
const resolvedResetAction = resetAction ?? (!readonly && onReset ? /* @__PURE__ */ jsx42(Button5, { type: "button", variant: "default", onClick: onReset, children: "Reset" }) : null);
|
|
2607
2843
|
const boundedProgress = typeof progress === "number" ? Math.max(0, Math.min(100, progress)) : void 0;
|
|
2608
|
-
return /* @__PURE__ */
|
|
2844
|
+
return /* @__PURE__ */ jsx42(
|
|
2609
2845
|
FormField,
|
|
2610
2846
|
{
|
|
2611
2847
|
label,
|
|
2612
2848
|
description,
|
|
2613
2849
|
error,
|
|
2614
|
-
children: /* @__PURE__ */
|
|
2615
|
-
/* @__PURE__ */
|
|
2616
|
-
/* @__PURE__ */
|
|
2850
|
+
children: /* @__PURE__ */ jsx42(Paper12, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs35(Stack35, { gap: "md", children: [
|
|
2851
|
+
/* @__PURE__ */ jsx42(Group31, { justify: "flex-end", align: "center", gap: "sm", children: /* @__PURE__ */ jsxs35(Group31, { gap: "xs", justify: "flex-end", children: [
|
|
2852
|
+
/* @__PURE__ */ jsx42(Badge17, { variant: "light", color: stateBadge.color, children: stateBadge.label }),
|
|
2617
2853
|
statusAction
|
|
2618
2854
|
] }) }),
|
|
2619
2855
|
preview ? preview : null,
|
|
2620
|
-
typeof boundedProgress === "number" ? /* @__PURE__ */
|
|
2621
|
-
/* @__PURE__ */
|
|
2622
|
-
/* @__PURE__ */
|
|
2856
|
+
typeof boundedProgress === "number" ? /* @__PURE__ */ jsxs35(Stack35, { gap: 4, children: [
|
|
2857
|
+
/* @__PURE__ */ jsx42(Progress2, { value: boundedProgress, "aria-label": "Upload progress" }),
|
|
2858
|
+
/* @__PURE__ */ jsxs35(Text31, { size: "xs", c: "dimmed", children: [
|
|
2623
2859
|
boundedProgress,
|
|
2624
2860
|
"% complete"
|
|
2625
2861
|
] })
|
|
2626
2862
|
] }) : null,
|
|
2627
|
-
(uploadControl || urlInput) && !readonly ? /* @__PURE__ */
|
|
2628
|
-
/* @__PURE__ */
|
|
2629
|
-
/* @__PURE__ */
|
|
2863
|
+
(uploadControl || urlInput) && !readonly ? /* @__PURE__ */ jsxs35(Fragment7, { children: [
|
|
2864
|
+
/* @__PURE__ */ jsx42(Divider6, {}),
|
|
2865
|
+
/* @__PURE__ */ jsxs35(Stack35, { gap: "sm", style: mode === "split" ? { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))" } : void 0, children: [
|
|
2630
2866
|
uploadControl,
|
|
2631
2867
|
urlInput
|
|
2632
2868
|
] })
|
|
2633
2869
|
] }) : null,
|
|
2634
|
-
value ? /* @__PURE__ */
|
|
2635
|
-
helpText ? /* @__PURE__ */
|
|
2636
|
-
acceptedTypes || maxSize ? /* @__PURE__ */
|
|
2637
|
-
acceptedTypes ? /* @__PURE__ */
|
|
2638
|
-
maxSize ? /* @__PURE__ */
|
|
2870
|
+
value ? /* @__PURE__ */ jsx42(Text31, { size: "sm", c: "dimmed", style: { wordBreak: "break-all" }, children: value }) : null,
|
|
2871
|
+
helpText ? /* @__PURE__ */ jsx42(Text31, { size: "sm", c: "dimmed", children: helpText }) : null,
|
|
2872
|
+
acceptedTypes || maxSize ? /* @__PURE__ */ jsxs35(Group31, { gap: "xs", wrap: "wrap", children: [
|
|
2873
|
+
acceptedTypes ? /* @__PURE__ */ jsx42(Badge17, { variant: "outline", color: "gray", children: acceptedTypes }) : null,
|
|
2874
|
+
maxSize ? /* @__PURE__ */ jsx42(Badge17, { variant: "outline", color: "gray", children: maxSize }) : null
|
|
2639
2875
|
] }) : null,
|
|
2640
|
-
policyText ? /* @__PURE__ */
|
|
2876
|
+
policyText ? /* @__PURE__ */ jsx42(Text31, { size: "sm", c: error ? "red.7" : "dimmed", children: policyText }) : null,
|
|
2641
2877
|
typeof error !== "string" && error ? error : null,
|
|
2642
|
-
replaceAction || resolvedRemoveAction || resolvedResetAction || retryAction ? /* @__PURE__ */
|
|
2878
|
+
replaceAction || resolvedRemoveAction || resolvedResetAction || retryAction ? /* @__PURE__ */ jsxs35(Group31, { gap: "sm", children: [
|
|
2643
2879
|
replaceAction,
|
|
2644
2880
|
resolvedResetAction,
|
|
2645
2881
|
retryAction,
|
|
@@ -2651,31 +2887,31 @@ function MediaField({
|
|
|
2651
2887
|
}
|
|
2652
2888
|
|
|
2653
2889
|
// src/MediaCard.tsx
|
|
2654
|
-
import { ActionIcon as ActionIcon4, Badge as
|
|
2655
|
-
import { jsx as
|
|
2890
|
+
import { ActionIcon as ActionIcon4, Badge as Badge18, Card as Card9, Group as Group32, Stack as Stack36, Text as Text32, Title as Title24 } from "@mantine/core";
|
|
2891
|
+
import { jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
2656
2892
|
function MediaCard({ title, image, description, status, overlay, actions = [] }) {
|
|
2657
2893
|
const EyeIcon = GdsIcons.Eye;
|
|
2658
|
-
return /* @__PURE__ */
|
|
2659
|
-
/* @__PURE__ */
|
|
2894
|
+
return /* @__PURE__ */ jsxs36(Card9, { withBorder: true, radius: "lg", padding: "md", children: [
|
|
2895
|
+
/* @__PURE__ */ jsxs36(Card9.Section, { pos: "relative", children: [
|
|
2660
2896
|
image,
|
|
2661
|
-
overlay ? /* @__PURE__ */
|
|
2897
|
+
overlay ? /* @__PURE__ */ jsx43("div", { style: { position: "absolute", inset: 12, display: "flex", justifyContent: "flex-end", alignItems: "flex-start" }, children: overlay }) : null
|
|
2662
2898
|
] }),
|
|
2663
|
-
/* @__PURE__ */
|
|
2664
|
-
/* @__PURE__ */
|
|
2665
|
-
/* @__PURE__ */
|
|
2666
|
-
/* @__PURE__ */
|
|
2667
|
-
description ? /* @__PURE__ */
|
|
2899
|
+
/* @__PURE__ */ jsxs36(Stack36, { gap: "sm", mt: "md", children: [
|
|
2900
|
+
/* @__PURE__ */ jsxs36(Group32, { justify: "space-between", align: "flex-start", children: [
|
|
2901
|
+
/* @__PURE__ */ jsxs36(Stack36, { gap: 4, children: [
|
|
2902
|
+
/* @__PURE__ */ jsx43(Title24, { order: 4, children: title }),
|
|
2903
|
+
description ? /* @__PURE__ */ jsx43(Text32, { size: "sm", c: "dimmed", lineClamp: 2, children: description }) : null
|
|
2668
2904
|
] }),
|
|
2669
|
-
status ? /* @__PURE__ */
|
|
2905
|
+
status ? /* @__PURE__ */ jsx43(Badge18, { variant: "light", children: status }) : null
|
|
2670
2906
|
] }),
|
|
2671
|
-
actions.length ? /* @__PURE__ */
|
|
2907
|
+
actions.length ? /* @__PURE__ */ jsx43(Group32, { justify: "flex-end", gap: "xs", children: actions.map((action) => /* @__PURE__ */ jsx43(ActionIcon4, { variant: "light", "aria-label": action.label, onClick: action.onClick, children: /* @__PURE__ */ jsx43(EyeIcon, { size: "1rem" }) }, action.label)) }) : null
|
|
2672
2908
|
] })
|
|
2673
2909
|
] });
|
|
2674
2910
|
}
|
|
2675
2911
|
|
|
2676
2912
|
// src/AccessSummary.tsx
|
|
2677
|
-
import { Badge as
|
|
2678
|
-
import { jsx as
|
|
2913
|
+
import { Badge as Badge19, Card as Card10, Group as Group33, Stack as Stack37, Text as Text33, Title as Title25 } from "@mantine/core";
|
|
2914
|
+
import { jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
2679
2915
|
var accessStateMeta = {
|
|
2680
2916
|
allowed: { label: "Allowed", color: "teal" },
|
|
2681
2917
|
blocked: { label: "Blocked", color: "red" },
|
|
@@ -2686,28 +2922,28 @@ var accessStateMeta = {
|
|
|
2686
2922
|
function AccessSummary({ title, roles, scope, blocked = false, state, owner, recoveryHint, description }) {
|
|
2687
2923
|
const resolvedState = state ?? (blocked ? "blocked" : "allowed");
|
|
2688
2924
|
const meta = accessStateMeta[resolvedState];
|
|
2689
|
-
return /* @__PURE__ */
|
|
2690
|
-
/* @__PURE__ */
|
|
2691
|
-
/* @__PURE__ */
|
|
2692
|
-
/* @__PURE__ */
|
|
2925
|
+
return /* @__PURE__ */ jsx44(Card10, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ jsxs37(Stack37, { gap: "sm", children: [
|
|
2926
|
+
/* @__PURE__ */ jsxs37(Group33, { justify: "space-between", align: "center", children: [
|
|
2927
|
+
/* @__PURE__ */ jsx44(Title25, { order: 4, children: title }),
|
|
2928
|
+
/* @__PURE__ */ jsx44(Badge19, { color: meta.color, variant: "light", children: meta.label })
|
|
2693
2929
|
] }),
|
|
2694
|
-
/* @__PURE__ */
|
|
2695
|
-
scope ? /* @__PURE__ */
|
|
2930
|
+
/* @__PURE__ */ jsx44(Group33, { gap: "xs", children: roles.map((role) => /* @__PURE__ */ jsx44(Badge19, { variant: "outline", children: role }, role)) }),
|
|
2931
|
+
scope ? /* @__PURE__ */ jsxs37(Text33, { size: "sm", c: "dimmed", children: [
|
|
2696
2932
|
"Scope: ",
|
|
2697
2933
|
scope
|
|
2698
2934
|
] }) : null,
|
|
2699
|
-
owner ? /* @__PURE__ */
|
|
2935
|
+
owner ? /* @__PURE__ */ jsxs37(Text33, { size: "sm", c: "dimmed", children: [
|
|
2700
2936
|
"Owner: ",
|
|
2701
2937
|
owner
|
|
2702
2938
|
] }) : null,
|
|
2703
|
-
recoveryHint ? /* @__PURE__ */
|
|
2704
|
-
description ? /* @__PURE__ */
|
|
2939
|
+
recoveryHint ? /* @__PURE__ */ jsx44(Text33, { size: "sm", c: resolvedState === "allowed" ? "dimmed" : "red.7", children: recoveryHint }) : null,
|
|
2940
|
+
description ? /* @__PURE__ */ jsx44(Text33, { size: "sm", children: description }) : null
|
|
2705
2941
|
] }) });
|
|
2706
2942
|
}
|
|
2707
2943
|
|
|
2708
2944
|
// src/PageHeader.tsx
|
|
2709
|
-
import { Box as Box14, Group as
|
|
2710
|
-
import { jsx as
|
|
2945
|
+
import { Box as Box14, Group as Group34, Stack as Stack38, Text as Text34, Title as Title26 } from "@mantine/core";
|
|
2946
|
+
import { jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
2711
2947
|
function PageHeader({
|
|
2712
2948
|
title,
|
|
2713
2949
|
description,
|
|
@@ -2718,19 +2954,19 @@ function PageHeader({
|
|
|
2718
2954
|
}) {
|
|
2719
2955
|
const resolvedDescription = description ?? subtitle;
|
|
2720
2956
|
const eyebrowProps = eyebrowVariant === "ornamental" ? { tt: "uppercase", style: { letterSpacing: "0.12em" } } : {};
|
|
2721
|
-
return /* @__PURE__ */
|
|
2722
|
-
/* @__PURE__ */
|
|
2723
|
-
eyebrow && /* @__PURE__ */
|
|
2724
|
-
/* @__PURE__ */
|
|
2725
|
-
resolvedDescription && /* @__PURE__ */
|
|
2957
|
+
return /* @__PURE__ */ jsxs38(Group34, { justify: "space-between", align: "flex-start", gap: "lg", wrap: "wrap", children: [
|
|
2958
|
+
/* @__PURE__ */ jsxs38(Stack38, { gap: "xs", children: [
|
|
2959
|
+
eyebrow && /* @__PURE__ */ jsx45(Text34, { size: "xs", fw: 700, c: "dimmed", ...eyebrowProps, children: eyebrow }),
|
|
2960
|
+
/* @__PURE__ */ jsx45(Title26, { order: 1, children: title }),
|
|
2961
|
+
resolvedDescription && /* @__PURE__ */ jsx45(Text34, { c: "dimmed", maw: 720, children: resolvedDescription })
|
|
2726
2962
|
] }),
|
|
2727
|
-
actions ? /* @__PURE__ */
|
|
2963
|
+
actions ? /* @__PURE__ */ jsx45(Box14, { children: actions }) : null
|
|
2728
2964
|
] });
|
|
2729
2965
|
}
|
|
2730
2966
|
|
|
2731
2967
|
// src/FilterDrawer.tsx
|
|
2732
|
-
import { Drawer, Group as
|
|
2733
|
-
import { jsx as
|
|
2968
|
+
import { Drawer, Group as Group35, Stack as Stack39, Text as Text35 } from "@mantine/core";
|
|
2969
|
+
import { jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
2734
2970
|
function FilterDrawer({
|
|
2735
2971
|
opened,
|
|
2736
2972
|
onClose,
|
|
@@ -2746,7 +2982,7 @@ function FilterDrawer({
|
|
|
2746
2982
|
}) {
|
|
2747
2983
|
const resolvedPrimaryAction = applyAction ?? primaryAction;
|
|
2748
2984
|
const resolvedSecondaryAction = resetAction ?? secondaryAction;
|
|
2749
|
-
return /* @__PURE__ */
|
|
2985
|
+
return /* @__PURE__ */ jsx46(
|
|
2750
2986
|
Drawer,
|
|
2751
2987
|
{
|
|
2752
2988
|
opened,
|
|
@@ -2755,11 +2991,11 @@ function FilterDrawer({
|
|
|
2755
2991
|
position: mode === "bottom-sheet" ? "bottom" : "right",
|
|
2756
2992
|
size: mode === "bottom-sheet" ? "auto" : "md",
|
|
2757
2993
|
radius: mode === "bottom-sheet" ? "xl" : void 0,
|
|
2758
|
-
children: /* @__PURE__ */
|
|
2759
|
-
description ? /* @__PURE__ */
|
|
2994
|
+
children: /* @__PURE__ */ jsxs39(Stack39, { gap: "md", children: [
|
|
2995
|
+
description ? /* @__PURE__ */ jsx46(Text35, { size: "sm", c: "dimmed", children: description }) : null,
|
|
2760
2996
|
children,
|
|
2761
|
-
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */
|
|
2762
|
-
/* @__PURE__ */
|
|
2997
|
+
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ jsxs39(Group35, { justify: "space-between", mt: "md", children: [
|
|
2998
|
+
/* @__PURE__ */ jsxs39(Group35, { gap: "sm", children: [
|
|
2763
2999
|
closeAction,
|
|
2764
3000
|
resolvedSecondaryAction
|
|
2765
3001
|
] }),
|
|
@@ -2771,8 +3007,8 @@ function FilterDrawer({
|
|
|
2771
3007
|
}
|
|
2772
3008
|
|
|
2773
3009
|
// src/PlaceholderPanel.tsx
|
|
2774
|
-
import { Badge as
|
|
2775
|
-
import { Fragment as
|
|
3010
|
+
import { Badge as Badge20, Card as Card11, Stack as Stack40, Text as Text36, Title as Title27 } from "@mantine/core";
|
|
3011
|
+
import { Fragment as Fragment8, jsx as jsx47, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
2776
3012
|
function PlaceholderPanel({
|
|
2777
3013
|
title,
|
|
2778
3014
|
description,
|
|
@@ -2782,16 +3018,16 @@ function PlaceholderPanel({
|
|
|
2782
3018
|
mode
|
|
2783
3019
|
}) {
|
|
2784
3020
|
if (mode === "live" && children) {
|
|
2785
|
-
return /* @__PURE__ */
|
|
3021
|
+
return /* @__PURE__ */ jsx47(Fragment8, { children });
|
|
2786
3022
|
}
|
|
2787
|
-
return /* @__PURE__ */
|
|
2788
|
-
badge ? /* @__PURE__ */
|
|
2789
|
-
/* @__PURE__ */
|
|
2790
|
-
/* @__PURE__ */
|
|
2791
|
-
/* @__PURE__ */
|
|
3023
|
+
return /* @__PURE__ */ jsx47(Card11, { children: /* @__PURE__ */ jsxs40(Stack40, { gap: "md", children: [
|
|
3024
|
+
badge ? /* @__PURE__ */ jsx47(Badge20, { variant: "light", color: "blue", w: "fit-content", children: badge }) : null,
|
|
3025
|
+
/* @__PURE__ */ jsxs40(Stack40, { gap: "xs", children: [
|
|
3026
|
+
/* @__PURE__ */ jsx47(Title27, { order: 4, children: title }),
|
|
3027
|
+
/* @__PURE__ */ jsx47(Text36, { c: "dimmed", children: description })
|
|
2792
3028
|
] }),
|
|
2793
|
-
footer ? /* @__PURE__ */
|
|
2794
|
-
/* @__PURE__ */
|
|
3029
|
+
footer ? /* @__PURE__ */ jsx47(Text36, { size: "sm", children: footer }) : null,
|
|
3030
|
+
/* @__PURE__ */ jsx47(
|
|
2795
3031
|
StateBlock,
|
|
2796
3032
|
{
|
|
2797
3033
|
variant: "not-enough-data",
|
|
@@ -2805,7 +3041,7 @@ function PlaceholderPanel({
|
|
|
2805
3041
|
|
|
2806
3042
|
// src/SimpleDataTable.tsx
|
|
2807
3043
|
import { ScrollArea, Table } from "@mantine/core";
|
|
2808
|
-
import { jsx as
|
|
3044
|
+
import { jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
2809
3045
|
function SimpleDataTable({
|
|
2810
3046
|
columns,
|
|
2811
3047
|
rows,
|
|
@@ -2816,23 +3052,23 @@ function SimpleDataTable({
|
|
|
2816
3052
|
getRowKey
|
|
2817
3053
|
}) {
|
|
2818
3054
|
if (error) {
|
|
2819
|
-
return /* @__PURE__ */
|
|
3055
|
+
return /* @__PURE__ */ jsx48(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
|
|
2820
3056
|
}
|
|
2821
3057
|
if (loading) {
|
|
2822
|
-
return /* @__PURE__ */
|
|
3058
|
+
return /* @__PURE__ */ jsx48(StateBlock, { variant: "loading", title: "Loading data", description: "Please wait while the shared dataset is prepared.", compact: true });
|
|
2823
3059
|
}
|
|
2824
3060
|
if (!rows.length) {
|
|
2825
|
-
return /* @__PURE__ */
|
|
3061
|
+
return /* @__PURE__ */ jsx48(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
|
|
2826
3062
|
}
|
|
2827
|
-
return /* @__PURE__ */
|
|
2828
|
-
/* @__PURE__ */
|
|
2829
|
-
/* @__PURE__ */
|
|
3063
|
+
return /* @__PURE__ */ jsx48(ScrollArea, { children: /* @__PURE__ */ jsxs41(Table, { striped: true, highlightOnHover: true, withTableBorder: true, withColumnBorders: true, children: [
|
|
3064
|
+
/* @__PURE__ */ jsx48(Table.Thead, { children: /* @__PURE__ */ jsx48(Table.Tr, { children: columns.map((column) => /* @__PURE__ */ jsx48(Table.Th, { children: column.header }, String(column.key))) }) }),
|
|
3065
|
+
/* @__PURE__ */ jsx48(Table.Tbody, { children: rows.map((row, index) => /* @__PURE__ */ jsx48(Table.Tr, { children: columns.map((column) => /* @__PURE__ */ jsx48(Table.Td, { children: column.render ? column.render(row) : String(row[column.key] ?? "") }, String(column.key))) }, getRowKey ? getRowKey(row, index) : index)) })
|
|
2830
3066
|
] }) });
|
|
2831
3067
|
}
|
|
2832
3068
|
|
|
2833
3069
|
// src/StatsSection.tsx
|
|
2834
|
-
import { Stack as
|
|
2835
|
-
import { jsx as
|
|
3070
|
+
import { Stack as Stack41, Title as Title28 } from "@mantine/core";
|
|
3071
|
+
import { jsx as jsx49, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
2836
3072
|
function StatsSection({
|
|
2837
3073
|
title,
|
|
2838
3074
|
loading = false,
|
|
@@ -2844,11 +3080,11 @@ function StatsSection({
|
|
|
2844
3080
|
}) {
|
|
2845
3081
|
let content = children;
|
|
2846
3082
|
if (error) {
|
|
2847
|
-
content = /* @__PURE__ */
|
|
3083
|
+
content = /* @__PURE__ */ jsx49(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
|
|
2848
3084
|
} else if (loading) {
|
|
2849
|
-
content = /* @__PURE__ */
|
|
3085
|
+
content = /* @__PURE__ */ jsx49(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
|
|
2850
3086
|
} else if (belowThreshold) {
|
|
2851
|
-
content = /* @__PURE__ */
|
|
3087
|
+
content = /* @__PURE__ */ jsx49(
|
|
2852
3088
|
StateBlock,
|
|
2853
3089
|
{
|
|
2854
3090
|
variant: "not-enough-data",
|
|
@@ -2858,17 +3094,17 @@ function StatsSection({
|
|
|
2858
3094
|
}
|
|
2859
3095
|
);
|
|
2860
3096
|
} else if (placeholder) {
|
|
2861
|
-
content = /* @__PURE__ */
|
|
3097
|
+
content = /* @__PURE__ */ jsx49(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
|
|
2862
3098
|
}
|
|
2863
|
-
return /* @__PURE__ */
|
|
2864
|
-
/* @__PURE__ */
|
|
3099
|
+
return /* @__PURE__ */ jsxs42(Stack41, { gap: "md", children: [
|
|
3100
|
+
/* @__PURE__ */ jsx49(Title28, { order: 3, children: title }),
|
|
2865
3101
|
content
|
|
2866
3102
|
] });
|
|
2867
3103
|
}
|
|
2868
3104
|
|
|
2869
3105
|
// src/PeriodSelector.tsx
|
|
2870
|
-
import { Badge as
|
|
2871
|
-
import { jsx as
|
|
3106
|
+
import { Badge as Badge21, Group as Group36, Stack as Stack42, Text as Text37 } from "@mantine/core";
|
|
3107
|
+
import { jsx as jsx50, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
2872
3108
|
function PeriodSelector({
|
|
2873
3109
|
label,
|
|
2874
3110
|
description,
|
|
@@ -2884,34 +3120,34 @@ function PeriodSelector({
|
|
|
2884
3120
|
disabled = false
|
|
2885
3121
|
}) {
|
|
2886
3122
|
const selectedOption = options.find((option) => option.value === value);
|
|
2887
|
-
return /* @__PURE__ */
|
|
2888
|
-
/* @__PURE__ */
|
|
3123
|
+
return /* @__PURE__ */ jsx50(FormField, { label, description, error, children: /* @__PURE__ */ jsxs43(Stack42, { gap: "sm", children: [
|
|
3124
|
+
/* @__PURE__ */ jsx50(
|
|
2889
3125
|
"select",
|
|
2890
3126
|
{
|
|
2891
3127
|
"aria-label": typeof label === "string" ? label : "Reporting period",
|
|
2892
3128
|
value,
|
|
2893
3129
|
disabled,
|
|
2894
3130
|
onChange: (event) => onChange?.(event.currentTarget.value),
|
|
2895
|
-
children: options.map((option) => /* @__PURE__ */
|
|
3131
|
+
children: options.map((option) => /* @__PURE__ */ jsx50("option", { value: option.value, children: option.label }, option.value))
|
|
2896
3132
|
}
|
|
2897
3133
|
),
|
|
2898
|
-
/* @__PURE__ */
|
|
2899
|
-
timezone ? /* @__PURE__ */
|
|
3134
|
+
/* @__PURE__ */ jsxs43(Group36, { gap: "xs", wrap: "wrap", children: [
|
|
3135
|
+
timezone ? /* @__PURE__ */ jsxs43(Badge21, { variant: "outline", color: "gray", children: [
|
|
2900
3136
|
"Timezone: ",
|
|
2901
3137
|
timezone
|
|
2902
3138
|
] }) : null,
|
|
2903
|
-
filtered ? /* @__PURE__ */
|
|
2904
|
-
stale ? /* @__PURE__ */
|
|
2905
|
-
scope ? /* @__PURE__ */
|
|
3139
|
+
filtered ? /* @__PURE__ */ jsx50(Badge21, { variant: "light", color: "blue", children: "Filtered" }) : null,
|
|
3140
|
+
stale ? /* @__PURE__ */ jsx50(Badge21, { variant: "light", color: "orange", children: "Stale data" }) : null,
|
|
3141
|
+
scope ? /* @__PURE__ */ jsx50(Badge21, { variant: "outline", color: "gray", children: scope }) : null
|
|
2906
3142
|
] }),
|
|
2907
|
-
selectedOption?.description ? /* @__PURE__ */
|
|
2908
|
-
helperText ? /* @__PURE__ */
|
|
3143
|
+
selectedOption?.description ? /* @__PURE__ */ jsx50(Text37, { size: "sm", c: "dimmed", children: selectedOption.description }) : null,
|
|
3144
|
+
helperText ? /* @__PURE__ */ jsx50(Text37, { size: "sm", c: "dimmed", children: helperText }) : null
|
|
2909
3145
|
] }) });
|
|
2910
3146
|
}
|
|
2911
3147
|
|
|
2912
3148
|
// src/EvidencePanel.tsx
|
|
2913
|
-
import { Alert as Alert2, Badge as
|
|
2914
|
-
import { jsx as
|
|
3149
|
+
import { Alert as Alert2, Badge as Badge22, Group as Group37, Paper as Paper13, Stack as Stack43, Text as Text38, Title as Title29 } from "@mantine/core";
|
|
3150
|
+
import { jsx as jsx51, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
2915
3151
|
var stateTone2 = {
|
|
2916
3152
|
current: { label: "Current", color: "teal" },
|
|
2917
3153
|
stale: { label: "Stale", color: "orange" },
|
|
@@ -2936,33 +3172,33 @@ function EvidencePanel({
|
|
|
2936
3172
|
}) {
|
|
2937
3173
|
const tone = stateTone2[state];
|
|
2938
3174
|
const isProblem = state === "error" || state === "permission-limited" || state === "stale" || state === "partial";
|
|
2939
|
-
return /* @__PURE__ */
|
|
2940
|
-
/* @__PURE__ */
|
|
2941
|
-
/* @__PURE__ */
|
|
2942
|
-
/* @__PURE__ */
|
|
2943
|
-
description ? /* @__PURE__ */
|
|
3175
|
+
return /* @__PURE__ */ jsx51(Paper13, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs44(Stack43, { gap: "md", children: [
|
|
3176
|
+
/* @__PURE__ */ jsxs44(Group37, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
3177
|
+
/* @__PURE__ */ jsxs44(Stack43, { gap: 4, children: [
|
|
3178
|
+
/* @__PURE__ */ jsx51(Title29, { order: 4, children: title }),
|
|
3179
|
+
description ? /* @__PURE__ */ jsx51(Text38, { size: "sm", c: "dimmed", children: description }) : null
|
|
2944
3180
|
] }),
|
|
2945
|
-
/* @__PURE__ */
|
|
3181
|
+
/* @__PURE__ */ jsx51(Badge22, { variant: "light", color: tone.color, children: tone.label })
|
|
2946
3182
|
] }),
|
|
2947
|
-
/* @__PURE__ */
|
|
2948
|
-
source ? /* @__PURE__ */
|
|
3183
|
+
/* @__PURE__ */ jsxs44(Group37, { gap: "xs", wrap: "wrap", children: [
|
|
3184
|
+
source ? /* @__PURE__ */ jsxs44(Badge22, { variant: "outline", color: "gray", children: [
|
|
2949
3185
|
"Source: ",
|
|
2950
3186
|
source
|
|
2951
3187
|
] }) : null,
|
|
2952
|
-
freshness ? /* @__PURE__ */
|
|
3188
|
+
freshness ? /* @__PURE__ */ jsxs44(Badge22, { variant: "outline", color: "gray", children: [
|
|
2953
3189
|
"Freshness: ",
|
|
2954
3190
|
freshness
|
|
2955
3191
|
] }) : null,
|
|
2956
|
-
confidence ? /* @__PURE__ */
|
|
3192
|
+
confidence ? /* @__PURE__ */ jsxs44(Badge22, { variant: "outline", color: "gray", children: [
|
|
2957
3193
|
"Confidence: ",
|
|
2958
3194
|
confidence
|
|
2959
3195
|
] }) : null,
|
|
2960
|
-
typeof evidenceCount === "number" ? /* @__PURE__ */
|
|
3196
|
+
typeof evidenceCount === "number" ? /* @__PURE__ */ jsxs44(Badge22, { variant: "outline", color: "gray", children: [
|
|
2961
3197
|
"Evidence: ",
|
|
2962
3198
|
evidenceCount
|
|
2963
3199
|
] }) : null
|
|
2964
3200
|
] }),
|
|
2965
|
-
permissionNote ? /* @__PURE__ */
|
|
3201
|
+
permissionNote ? /* @__PURE__ */ jsx51(Alert2, { color: isProblem ? tone.color : "gray", variant: "light", children: permissionNote }) : null,
|
|
2966
3202
|
details,
|
|
2967
3203
|
children,
|
|
2968
3204
|
retryAction
|
|
@@ -2970,8 +3206,8 @@ function EvidencePanel({
|
|
|
2970
3206
|
}
|
|
2971
3207
|
|
|
2972
3208
|
// src/ChartTokenPanel.tsx
|
|
2973
|
-
import { Badge as
|
|
2974
|
-
import { jsx as
|
|
3209
|
+
import { Badge as Badge23, Group as Group38, Paper as Paper14, Stack as Stack44, Text as Text39, Title as Title30 } from "@mantine/core";
|
|
3210
|
+
import { jsx as jsx52, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
2975
3211
|
function ChartTokenPanel({
|
|
2976
3212
|
title,
|
|
2977
3213
|
description,
|
|
@@ -2983,42 +3219,127 @@ function ChartTokenPanel({
|
|
|
2983
3219
|
retryAction
|
|
2984
3220
|
}) {
|
|
2985
3221
|
if (state === "loading") {
|
|
2986
|
-
return /* @__PURE__ */
|
|
3222
|
+
return /* @__PURE__ */ jsx52(StateBlock, { variant: "loading", title: "Loading chart", description: summary, compact: true, action: retryAction });
|
|
2987
3223
|
}
|
|
2988
3224
|
if (state === "empty") {
|
|
2989
|
-
return /* @__PURE__ */
|
|
3225
|
+
return /* @__PURE__ */ jsx52(StateBlock, { variant: "empty", title: "No chart data", description: summary, compact: true, action: retryAction });
|
|
2990
3226
|
}
|
|
2991
3227
|
if (state === "below-threshold") {
|
|
2992
|
-
return /* @__PURE__ */
|
|
3228
|
+
return /* @__PURE__ */ jsx52(StateBlock, { variant: "not-enough-data", title: "Not enough data for chart", description: summary, compact: true, action: retryAction });
|
|
2993
3229
|
}
|
|
2994
3230
|
if (state === "error") {
|
|
2995
|
-
return /* @__PURE__ */
|
|
3231
|
+
return /* @__PURE__ */ jsx52(StateBlock, { variant: "error", title: "Unable to load chart", description: summary, compact: true, action: retryAction });
|
|
2996
3232
|
}
|
|
2997
|
-
return /* @__PURE__ */
|
|
2998
|
-
/* @__PURE__ */
|
|
2999
|
-
/* @__PURE__ */
|
|
3000
|
-
/* @__PURE__ */
|
|
3001
|
-
description ? /* @__PURE__ */
|
|
3233
|
+
return /* @__PURE__ */ jsx52(Paper14, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs45(Stack44, { gap: "md", children: [
|
|
3234
|
+
/* @__PURE__ */ jsxs45(Group38, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
3235
|
+
/* @__PURE__ */ jsxs45(Stack44, { gap: 4, children: [
|
|
3236
|
+
/* @__PURE__ */ jsx52(Title30, { order: 4, children: title }),
|
|
3237
|
+
description ? /* @__PURE__ */ jsx52(Text39, { size: "sm", c: "dimmed", children: description }) : null
|
|
3002
3238
|
] }),
|
|
3003
|
-
state !== "ready" ? /* @__PURE__ */
|
|
3239
|
+
state !== "ready" ? /* @__PURE__ */ jsx52(Badge23, { variant: "light", color: state === "permission-limited" ? "grape" : "yellow", children: state.replace("-", " ") }) : null
|
|
3004
3240
|
] }),
|
|
3005
|
-
/* @__PURE__ */
|
|
3006
|
-
legend.length ? /* @__PURE__ */
|
|
3241
|
+
/* @__PURE__ */ jsx52(Text39, { size: "sm", children: summary }),
|
|
3242
|
+
legend.length ? /* @__PURE__ */ jsx52(Group38, { gap: "xs", wrap: "wrap", "aria-label": "Chart legend", children: legend.map((item, index) => /* @__PURE__ */ jsxs45(Badge23, { variant: "outline", color: "gray", title: typeof item.description === "string" ? item.description : void 0, children: [
|
|
3007
3243
|
item.label,
|
|
3008
3244
|
": ",
|
|
3009
3245
|
item.token
|
|
3010
3246
|
] }, `${String(item.label)}-${index}`)) }) : null,
|
|
3011
3247
|
children,
|
|
3012
|
-
tableFallback ? /* @__PURE__ */
|
|
3013
|
-
/* @__PURE__ */
|
|
3248
|
+
tableFallback ? /* @__PURE__ */ jsxs45(Stack44, { gap: "xs", children: [
|
|
3249
|
+
/* @__PURE__ */ jsx52(Text39, { size: "sm", fw: 600, children: "Accessible data fallback" }),
|
|
3014
3250
|
tableFallback
|
|
3015
3251
|
] }) : null
|
|
3016
3252
|
] }) });
|
|
3017
3253
|
}
|
|
3018
3254
|
|
|
3255
|
+
// src/GdsChart.tsx
|
|
3256
|
+
import { Badge as Badge24, Group as Group39, Paper as Paper15, Stack as Stack45, Text as Text40 } from "@mantine/core";
|
|
3257
|
+
import { jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
3258
|
+
function GdsChart({ type, title, summary, data, state = "ready", retryAction }) {
|
|
3259
|
+
const tableRows = data.map((item) => ({ label: item.label, value: String(item.value), group: item.group ?? "-" }));
|
|
3260
|
+
return /* @__PURE__ */ jsx53(
|
|
3261
|
+
ChartTokenPanel,
|
|
3262
|
+
{
|
|
3263
|
+
title,
|
|
3264
|
+
summary,
|
|
3265
|
+
state,
|
|
3266
|
+
retryAction,
|
|
3267
|
+
legend: [
|
|
3268
|
+
{ label: "Primary", token: "var(--mantine-color-blue-6)" },
|
|
3269
|
+
{ label: "Secondary", token: "var(--mantine-color-teal-6)" }
|
|
3270
|
+
],
|
|
3271
|
+
tableFallback: /* @__PURE__ */ jsx53(
|
|
3272
|
+
SimpleDataTable,
|
|
3273
|
+
{
|
|
3274
|
+
columns: [
|
|
3275
|
+
{ key: "label", header: "Label" },
|
|
3276
|
+
{ key: "value", header: "Value" },
|
|
3277
|
+
{ key: "group", header: "Group" }
|
|
3278
|
+
],
|
|
3279
|
+
rows: tableRows
|
|
3280
|
+
}
|
|
3281
|
+
),
|
|
3282
|
+
children: /* @__PURE__ */ jsx53(Paper15, { withBorder: true, radius: "md", p: "md", children: /* @__PURE__ */ jsxs46(Stack45, { gap: "sm", children: [
|
|
3283
|
+
/* @__PURE__ */ jsxs46(Group39, { justify: "space-between", children: [
|
|
3284
|
+
/* @__PURE__ */ jsx53(Text40, { fw: 700, children: title }),
|
|
3285
|
+
/* @__PURE__ */ jsx53(Badge24, { variant: "light", children: type })
|
|
3286
|
+
] }),
|
|
3287
|
+
/* @__PURE__ */ jsx53(Text40, { size: "sm", c: "dimmed", children: summary }),
|
|
3288
|
+
/* @__PURE__ */ jsxs46(Text40, { size: "xs", c: "dimmed", children: [
|
|
3289
|
+
"Type lane: ",
|
|
3290
|
+
type
|
|
3291
|
+
] })
|
|
3292
|
+
] }) })
|
|
3293
|
+
}
|
|
3294
|
+
);
|
|
3295
|
+
}
|
|
3296
|
+
|
|
3297
|
+
// src/LayoutBlocks.tsx
|
|
3298
|
+
import { Alert as Alert3, Card as Card12, SimpleGrid as SimpleGrid7, Stack as Stack46, Text as Text41, Title as Title31 } from "@mantine/core";
|
|
3299
|
+
import { jsx as jsx54, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
3300
|
+
function renderBlock(block) {
|
|
3301
|
+
switch (block.type) {
|
|
3302
|
+
case "hero":
|
|
3303
|
+
return /* @__PURE__ */ jsx54(SectionPanel, { title: String(block.props.title ?? "Hero"), description: String(block.props.description ?? "Hero block"), children: /* @__PURE__ */ jsx54(Text41, { children: String(block.props.body ?? "Composable hero content") }) });
|
|
3304
|
+
case "stats":
|
|
3305
|
+
return /* @__PURE__ */ jsx54(SimpleGrid7, { cols: { base: 1, md: 3 }, children: block.props.items?.map((item) => /* @__PURE__ */ jsx54(Card12, { withBorder: true, children: /* @__PURE__ */ jsxs47(Stack46, { gap: 2, children: [
|
|
3306
|
+
/* @__PURE__ */ jsx54(Text41, { size: "sm", c: "dimmed", children: item.label }),
|
|
3307
|
+
/* @__PURE__ */ jsx54(Title31, { order: 4, children: item.value })
|
|
3308
|
+
] }) }, `${block.id}-${item.label}`)) ?? null });
|
|
3309
|
+
case "cards-grid":
|
|
3310
|
+
return /* @__PURE__ */ jsx54(SimpleGrid7, { cols: { base: 1, md: 2 }, children: block.props.items?.map((item) => /* @__PURE__ */ jsx54(ListingCard, { title: item.title, description: item.description, size: "sm" }, `${block.id}-${item.title}`)) ?? null });
|
|
3311
|
+
case "chart":
|
|
3312
|
+
return /* @__PURE__ */ jsx54(
|
|
3313
|
+
GdsChart,
|
|
3314
|
+
{
|
|
3315
|
+
type: block.props.chartType ?? "bar",
|
|
3316
|
+
title: String(block.props.title ?? "Chart block"),
|
|
3317
|
+
summary: String(block.props.summary ?? "Block-composed chart summary"),
|
|
3318
|
+
data: block.props.data ?? [{ label: "A", value: 10 }]
|
|
3319
|
+
}
|
|
3320
|
+
);
|
|
3321
|
+
case "cta":
|
|
3322
|
+
return /* @__PURE__ */ jsx54(
|
|
3323
|
+
ActionBar,
|
|
3324
|
+
{
|
|
3325
|
+
primary: { action: "save" },
|
|
3326
|
+
secondary: [{ action: "cancel" }],
|
|
3327
|
+
tertiary: [{ action: "preview" }]
|
|
3328
|
+
}
|
|
3329
|
+
);
|
|
3330
|
+
case "footer":
|
|
3331
|
+
return /* @__PURE__ */ jsx54(Text41, { size: "sm", c: "dimmed", children: String(block.props.text ?? "Footer block") });
|
|
3332
|
+
default:
|
|
3333
|
+
return /* @__PURE__ */ jsx54(Alert3, { color: "red", children: "Unsupported block type." });
|
|
3334
|
+
}
|
|
3335
|
+
}
|
|
3336
|
+
function renderGdsLayout(schema) {
|
|
3337
|
+
return /* @__PURE__ */ jsx54(Stack46, { gap: "lg", children: schema.blocks.map((block) => /* @__PURE__ */ jsx54("div", { children: renderBlock(block) }, block.id)) });
|
|
3338
|
+
}
|
|
3339
|
+
|
|
3019
3340
|
// src/ReportingSection.tsx
|
|
3020
|
-
import { Group as
|
|
3021
|
-
import { jsx as
|
|
3341
|
+
import { Group as Group40, Paper as Paper16, Stack as Stack47, Text as Text42, Title as Title32 } from "@mantine/core";
|
|
3342
|
+
import { jsx as jsx55, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
3022
3343
|
function ReportingSection({
|
|
3023
3344
|
title,
|
|
3024
3345
|
description,
|
|
@@ -3034,26 +3355,26 @@ function ReportingSection({
|
|
|
3034
3355
|
}) {
|
|
3035
3356
|
let stateBlock = null;
|
|
3036
3357
|
if (state === "loading") {
|
|
3037
|
-
stateBlock = /* @__PURE__ */
|
|
3358
|
+
stateBlock = /* @__PURE__ */ jsx55(StateBlock, { variant: "loading", title: "Loading report", description: stateMessage ?? "The reporting surface is synchronizing.", compact: true });
|
|
3038
3359
|
} else if (state === "empty") {
|
|
3039
|
-
stateBlock = /* @__PURE__ */
|
|
3360
|
+
stateBlock = /* @__PURE__ */ jsx55(StateBlock, { variant: "empty", title: "No report data", description: stateMessage ?? "No records match this reporting scope yet.", compact: true });
|
|
3040
3361
|
} else if (state === "error") {
|
|
3041
|
-
stateBlock = /* @__PURE__ */
|
|
3362
|
+
stateBlock = /* @__PURE__ */ jsx55(StateBlock, { variant: "error", title: "Unable to load report", description: stateMessage ?? "The report could not be prepared.", compact: true, action: retryAction });
|
|
3042
3363
|
} else if (state === "below-threshold") {
|
|
3043
|
-
stateBlock = /* @__PURE__ */
|
|
3364
|
+
stateBlock = /* @__PURE__ */ jsx55(StateBlock, { variant: "not-enough-data", title: "Not enough data", description: stateMessage ?? "This report is hidden until the threshold is met.", compact: true });
|
|
3044
3365
|
} else if (state === "permission-limited") {
|
|
3045
|
-
stateBlock = /* @__PURE__ */
|
|
3366
|
+
stateBlock = /* @__PURE__ */ jsx55(StateBlock, { variant: "permission", title: "Permission-limited report", description: stateMessage ?? "Some evidence is hidden by access rules.", compact: true, action: retryAction });
|
|
3046
3367
|
}
|
|
3047
|
-
return /* @__PURE__ */
|
|
3048
|
-
/* @__PURE__ */
|
|
3049
|
-
/* @__PURE__ */
|
|
3050
|
-
/* @__PURE__ */
|
|
3051
|
-
description ? /* @__PURE__ */
|
|
3368
|
+
return /* @__PURE__ */ jsx55(Paper16, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs48(Stack47, { gap: "lg", children: [
|
|
3369
|
+
/* @__PURE__ */ jsxs48(Group40, { justify: "space-between", align: "flex-start", gap: "md", children: [
|
|
3370
|
+
/* @__PURE__ */ jsxs48(Stack47, { gap: 4, children: [
|
|
3371
|
+
/* @__PURE__ */ jsx55(Title32, { order: 3, children: title }),
|
|
3372
|
+
description ? /* @__PURE__ */ jsx55(Text42, { size: "sm", c: "dimmed", children: description }) : null
|
|
3052
3373
|
] }),
|
|
3053
3374
|
action
|
|
3054
3375
|
] }),
|
|
3055
3376
|
periodControl,
|
|
3056
|
-
(state === "partial" || state === "stale" || state === "filtered") && stateMessage ? /* @__PURE__ */
|
|
3377
|
+
(state === "partial" || state === "stale" || state === "filtered") && stateMessage ? /* @__PURE__ */ jsx55(StateBlock, { variant: "info", title: state === "partial" ? "Partial report" : state === "stale" ? "Stale report" : "Filtered report", description: stateMessage, compact: true }) : null,
|
|
3057
3378
|
stateBlock,
|
|
3058
3379
|
metrics,
|
|
3059
3380
|
chart,
|
|
@@ -3062,6 +3383,91 @@ function ReportingSection({
|
|
|
3062
3383
|
] }) });
|
|
3063
3384
|
}
|
|
3064
3385
|
|
|
3386
|
+
// src/Notifications.tsx
|
|
3387
|
+
import { Alert as Alert4, Badge as Badge25, Button as Button6, Group as Group41, Paper as Paper17, Stack as Stack48, Text as Text43, Title as Title33 } from "@mantine/core";
|
|
3388
|
+
import { jsx as jsx56, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
3389
|
+
var notificationColorMap = {
|
|
3390
|
+
success: "teal",
|
|
3391
|
+
error: "red",
|
|
3392
|
+
warning: "yellow",
|
|
3393
|
+
info: "blue",
|
|
3394
|
+
neutral: "gray"
|
|
3395
|
+
};
|
|
3396
|
+
function severityToStateVariant(severity) {
|
|
3397
|
+
if (severity === "success") return "success";
|
|
3398
|
+
if (severity === "error") return "error";
|
|
3399
|
+
if (severity === "warning") return "not-enough-data";
|
|
3400
|
+
if (severity === "neutral") return "disabled";
|
|
3401
|
+
return "info";
|
|
3402
|
+
}
|
|
3403
|
+
function InlineAlert({
|
|
3404
|
+
title,
|
|
3405
|
+
message,
|
|
3406
|
+
severity = "info",
|
|
3407
|
+
action
|
|
3408
|
+
}) {
|
|
3409
|
+
return /* @__PURE__ */ jsx56(
|
|
3410
|
+
Alert4,
|
|
3411
|
+
{
|
|
3412
|
+
variant: "light",
|
|
3413
|
+
color: notificationColorMap[severity],
|
|
3414
|
+
title,
|
|
3415
|
+
icon: /* @__PURE__ */ jsx56(GdsIcons.Info, { size: "1rem" }),
|
|
3416
|
+
role: severity === "error" ? "alert" : "status",
|
|
3417
|
+
children: /* @__PURE__ */ jsxs49(Stack48, { gap: "xs", children: [
|
|
3418
|
+
message ? /* @__PURE__ */ jsx56(Text43, { size: "sm", children: message }) : null,
|
|
3419
|
+
action
|
|
3420
|
+
] })
|
|
3421
|
+
}
|
|
3422
|
+
);
|
|
3423
|
+
}
|
|
3424
|
+
function BannerNotice({
|
|
3425
|
+
eyebrow,
|
|
3426
|
+
title,
|
|
3427
|
+
message,
|
|
3428
|
+
severity = "info",
|
|
3429
|
+
action
|
|
3430
|
+
}) {
|
|
3431
|
+
return /* @__PURE__ */ jsx56(Paper17, { withBorder: true, radius: "lg", p: "md", children: /* @__PURE__ */ jsxs49(Stack48, { gap: "xs", children: [
|
|
3432
|
+
/* @__PURE__ */ jsxs49(Group41, { justify: "space-between", align: "center", children: [
|
|
3433
|
+
/* @__PURE__ */ jsxs49(Group41, { gap: "xs", children: [
|
|
3434
|
+
eyebrow ? /* @__PURE__ */ jsx56(Badge25, { variant: "light", children: eyebrow }) : null,
|
|
3435
|
+
/* @__PURE__ */ jsx56(Badge25, { variant: "light", color: notificationColorMap[severity], children: severityToStateVariant(severity).replace("-", " ") })
|
|
3436
|
+
] }),
|
|
3437
|
+
action
|
|
3438
|
+
] }),
|
|
3439
|
+
/* @__PURE__ */ jsx56(Title33, { order: 4, children: title }),
|
|
3440
|
+
message ? /* @__PURE__ */ jsx56(Text43, { size: "sm", c: "dimmed", children: message }) : null
|
|
3441
|
+
] }) });
|
|
3442
|
+
}
|
|
3443
|
+
function NotificationCenterView({
|
|
3444
|
+
notifications,
|
|
3445
|
+
onDismiss,
|
|
3446
|
+
onClear,
|
|
3447
|
+
title = "Notifications",
|
|
3448
|
+
emptyMessage = "No active notifications."
|
|
3449
|
+
}) {
|
|
3450
|
+
return /* @__PURE__ */ jsx56(Paper17, { withBorder: true, radius: "lg", p: "md", children: /* @__PURE__ */ jsxs49(Stack48, { gap: "md", children: [
|
|
3451
|
+
/* @__PURE__ */ jsxs49(Group41, { justify: "space-between", align: "center", children: [
|
|
3452
|
+
/* @__PURE__ */ jsx56(Title33, { order: 4, children: title }),
|
|
3453
|
+
/* @__PURE__ */ jsx56(Button6, { size: "xs", variant: "subtle", onClick: onClear, disabled: notifications.length === 0 || !onClear, children: "Clear all" })
|
|
3454
|
+
] }),
|
|
3455
|
+
notifications.length === 0 ? /* @__PURE__ */ jsx56(Text43, { size: "sm", c: "dimmed", children: emptyMessage }) : /* @__PURE__ */ jsx56(Stack48, { gap: "sm", children: notifications.map((item) => /* @__PURE__ */ jsx56(
|
|
3456
|
+
InlineAlert,
|
|
3457
|
+
{
|
|
3458
|
+
severity: item.severity,
|
|
3459
|
+
title: item.title,
|
|
3460
|
+
message: item.message,
|
|
3461
|
+
action: /* @__PURE__ */ jsxs49(Group41, { gap: "xs", children: [
|
|
3462
|
+
item.actions?.map((action) => /* @__PURE__ */ jsx56(Button6, { size: "xs", variant: "default", onClick: action.onClick, children: action.label }, action.id)),
|
|
3463
|
+
/* @__PURE__ */ jsx56(Button6, { size: "xs", variant: "subtle", onClick: () => onDismiss?.(item.id), disabled: !onDismiss, children: "Dismiss" })
|
|
3464
|
+
] })
|
|
3465
|
+
},
|
|
3466
|
+
item.id
|
|
3467
|
+
)) })
|
|
3468
|
+
] }) });
|
|
3469
|
+
}
|
|
3470
|
+
|
|
3065
3471
|
// src/locales/ar.ts
|
|
3066
3472
|
var ar = {
|
|
3067
3473
|
"gds.action.settings": "\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",
|
|
@@ -4367,6 +4773,8 @@ function getGdsMessages(locale) {
|
|
|
4367
4773
|
|
|
4368
4774
|
export {
|
|
4369
4775
|
StatusBadge,
|
|
4776
|
+
LabelTag,
|
|
4777
|
+
CountBadge,
|
|
4370
4778
|
EmptyState,
|
|
4371
4779
|
GdsIcons,
|
|
4372
4780
|
GdsVocabulary,
|
|
@@ -4385,6 +4793,8 @@ export {
|
|
|
4385
4793
|
ReferenceSection,
|
|
4386
4794
|
ActionBar,
|
|
4387
4795
|
FormField,
|
|
4796
|
+
gdsCardSizePaddingMap,
|
|
4797
|
+
gdsCardTitleOrderMap,
|
|
4388
4798
|
ListingCard,
|
|
4389
4799
|
StateBlock,
|
|
4390
4800
|
ChoiceChip,
|
|
@@ -4400,6 +4810,11 @@ export {
|
|
|
4400
4810
|
DataToolbar,
|
|
4401
4811
|
BrowseSurface,
|
|
4402
4812
|
DetailProfileShell,
|
|
4813
|
+
AsyncSurface,
|
|
4814
|
+
ActiveFilterChips,
|
|
4815
|
+
ResultSummary,
|
|
4816
|
+
SortMenu,
|
|
4817
|
+
BulkActionsBar,
|
|
4403
4818
|
PublicNav,
|
|
4404
4819
|
PublicShell,
|
|
4405
4820
|
PublicSiteFooter,
|
|
@@ -4431,7 +4846,12 @@ export {
|
|
|
4431
4846
|
PeriodSelector,
|
|
4432
4847
|
EvidencePanel,
|
|
4433
4848
|
ChartTokenPanel,
|
|
4849
|
+
GdsChart,
|
|
4850
|
+
renderGdsLayout,
|
|
4434
4851
|
ReportingSection,
|
|
4852
|
+
InlineAlert,
|
|
4853
|
+
BannerNotice,
|
|
4854
|
+
NotificationCenterView,
|
|
4435
4855
|
ar,
|
|
4436
4856
|
de,
|
|
4437
4857
|
en,
|