@doneisbetter/gds-core 3.0.0 → 3.0.2
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
package/dist/server.js
CHANGED
|
@@ -22,13 +22,18 @@ var server_exports = {};
|
|
|
22
22
|
__export(server_exports, {
|
|
23
23
|
AccentPanel: () => AccentPanel,
|
|
24
24
|
AccessSummary: () => AccessSummary,
|
|
25
|
+
ActiveFilterChips: () => ActiveFilterChips,
|
|
25
26
|
ArticleShell: () => ArticleShell,
|
|
27
|
+
AsyncSurface: () => AsyncSurface,
|
|
26
28
|
AuthShell: () => AuthShell,
|
|
29
|
+
BannerNotice: () => BannerNotice,
|
|
27
30
|
BrowseSurface: () => BrowseSurface,
|
|
31
|
+
BulkActionsBar: () => BulkActionsBar,
|
|
28
32
|
ChartTokenPanel: () => ChartTokenPanel,
|
|
29
33
|
ChoiceChip: () => ChoiceChip,
|
|
30
34
|
ConsumerDashboardGrid: () => ConsumerDashboardGrid,
|
|
31
35
|
ConsumerSection: () => ConsumerSection,
|
|
36
|
+
CountBadge: () => CountBadge,
|
|
32
37
|
CtaButtonGroup: () => CtaButtonGroup,
|
|
33
38
|
DataToolbar: () => DataToolbar,
|
|
34
39
|
DetailProfileShell: () => DetailProfileShell,
|
|
@@ -41,13 +46,17 @@ __export(server_exports, {
|
|
|
41
46
|
FilterDrawer: () => FilterDrawer,
|
|
42
47
|
FoodMenuSection: () => FoodMenuSection,
|
|
43
48
|
FormField: () => FormField,
|
|
49
|
+
GdsChart: () => GdsChart,
|
|
44
50
|
GdsIcons: () => GdsIcons,
|
|
45
51
|
GdsVocabulary: () => GdsVocabulary,
|
|
52
|
+
InlineAlert: () => InlineAlert,
|
|
53
|
+
LabelTag: () => LabelTag,
|
|
46
54
|
ListingCard: () => ListingCard,
|
|
47
55
|
MapPanel: () => MapPanel,
|
|
48
56
|
MediaCard: () => MediaCard,
|
|
49
57
|
MediaField: () => MediaField,
|
|
50
58
|
MetricCard: () => MetricCard,
|
|
59
|
+
NotificationCenterView: () => NotificationCenterView,
|
|
51
60
|
PROVIDER_IDENTITY_REGISTRY: () => PROVIDER_IDENTITY_REGISTRY,
|
|
52
61
|
PageHeader: () => PageHeader,
|
|
53
62
|
PeriodSelector: () => PeriodSelector,
|
|
@@ -68,9 +77,11 @@ __export(server_exports, {
|
|
|
68
77
|
ReferenceLocaleNotice: () => ReferenceLocaleNotice,
|
|
69
78
|
ReferenceSection: () => ReferenceSection,
|
|
70
79
|
ReportingSection: () => ReportingSection,
|
|
80
|
+
ResultSummary: () => ResultSummary,
|
|
71
81
|
SectionPanel: () => SectionPanel,
|
|
72
82
|
SimpleDataTable: () => SimpleDataTable,
|
|
73
83
|
SocialAuthButtons: () => SocialAuthButtons,
|
|
84
|
+
SortMenu: () => SortMenu,
|
|
74
85
|
StateBlock: () => StateBlock,
|
|
75
86
|
StatsSection: () => StatsSection,
|
|
76
87
|
StatusBadge: () => StatusBadge,
|
|
@@ -80,6 +91,8 @@ __export(server_exports, {
|
|
|
80
91
|
en: () => en,
|
|
81
92
|
es: () => es,
|
|
82
93
|
fr: () => fr,
|
|
94
|
+
gdsCardSizePaddingMap: () => gdsCardSizePaddingMap,
|
|
95
|
+
gdsCardTitleOrderMap: () => gdsCardTitleOrderMap,
|
|
83
96
|
gdsLocales: () => gdsLocales,
|
|
84
97
|
getGdsMessages: () => getGdsMessages,
|
|
85
98
|
getProviderIdentityLabel: () => getProviderIdentityLabel,
|
|
@@ -92,6 +105,7 @@ __export(server_exports, {
|
|
|
92
105
|
isPresentationMode: () => isPresentationMode,
|
|
93
106
|
it: () => it,
|
|
94
107
|
mergeGdsVocabularyPacks: () => mergeGdsVocabularyPacks,
|
|
108
|
+
renderGdsLayout: () => renderGdsLayout,
|
|
95
109
|
resolveAccentPanelStyles: () => resolveAccentPanelStyles,
|
|
96
110
|
resolveSemanticActionConfig: () => resolveSemanticActionConfig,
|
|
97
111
|
resolveSurfacePresentationStyles: () => resolveSurfacePresentationStyles,
|
|
@@ -394,9 +408,24 @@ var statusColorMap = {
|
|
|
394
408
|
info: "blue",
|
|
395
409
|
neutral: "gray"
|
|
396
410
|
};
|
|
411
|
+
var labelTagColorMap = {
|
|
412
|
+
neutral: "gray",
|
|
413
|
+
info: "blue",
|
|
414
|
+
warning: "yellow",
|
|
415
|
+
success: "green"
|
|
416
|
+
};
|
|
397
417
|
function StatusBadge({ status, children, ...props }) {
|
|
398
418
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_core2.Badge, { color: statusColorMap[status], variant: "light", ...props, children });
|
|
399
419
|
}
|
|
420
|
+
function LabelTag({ tone = "neutral", label, ...props }) {
|
|
421
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_core2.Badge, { color: labelTagColorMap[tone], variant: "outline", ...props, children: label });
|
|
422
|
+
}
|
|
423
|
+
function CountBadge({ value, cap = 99, srLabel, ...props }) {
|
|
424
|
+
const normalizedValue = Number.isFinite(value) ? Math.max(0, Math.floor(value)) : 0;
|
|
425
|
+
const normalizedCap = Math.max(1, Math.floor(cap));
|
|
426
|
+
const displayValue = normalizedValue > normalizedCap ? `${normalizedCap}+` : String(normalizedValue);
|
|
427
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_core2.Badge, { color: "violet", variant: "filled", "aria-label": srLabel, ...props, children: displayValue });
|
|
428
|
+
}
|
|
400
429
|
|
|
401
430
|
// src/EmptyState.tsx
|
|
402
431
|
var import_core3 = require("@mantine/core");
|
|
@@ -709,6 +738,24 @@ function ConsumerDashboardGrid({
|
|
|
709
738
|
|
|
710
739
|
// src/ProductCard.tsx
|
|
711
740
|
var import_core11 = require("@mantine/core");
|
|
741
|
+
|
|
742
|
+
// src/CardContracts.ts
|
|
743
|
+
var gdsCardSizePaddingMap = {
|
|
744
|
+
xs: "xs",
|
|
745
|
+
sm: "sm",
|
|
746
|
+
md: "md",
|
|
747
|
+
lg: "lg",
|
|
748
|
+
xl: "xl"
|
|
749
|
+
};
|
|
750
|
+
var gdsCardTitleOrderMap = {
|
|
751
|
+
xs: 6,
|
|
752
|
+
sm: 5,
|
|
753
|
+
md: 4,
|
|
754
|
+
lg: 4,
|
|
755
|
+
xl: 3
|
|
756
|
+
};
|
|
757
|
+
|
|
758
|
+
// src/ProductCard.tsx
|
|
712
759
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
713
760
|
function ProductCard({
|
|
714
761
|
title,
|
|
@@ -719,16 +766,17 @@ function ProductCard({
|
|
|
719
766
|
metadata = [],
|
|
720
767
|
primaryAction,
|
|
721
768
|
secondaryActions = [],
|
|
722
|
-
footer
|
|
769
|
+
footer,
|
|
770
|
+
size = "md"
|
|
723
771
|
}) {
|
|
724
772
|
const MoreIcon = GdsIcons.Menu;
|
|
725
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Card, { withBorder: true, radius: "lg", padding:
|
|
773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Card, { withBorder: true, radius: "lg", padding: gdsCardSizePaddingMap[size], children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Stack, { gap: "md", children: [
|
|
726
774
|
media,
|
|
727
775
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
|
|
728
776
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Group, { align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
729
777
|
icon ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.ThemeIcon, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null,
|
|
730
778
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core11.Stack, { gap: 4, children: [
|
|
731
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Title, { order:
|
|
779
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Title, { order: gdsCardTitleOrderMap[size], children: title }),
|
|
732
780
|
description ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core11.Text, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
|
|
733
781
|
] })
|
|
734
782
|
] }),
|
|
@@ -913,8 +961,11 @@ function PublicProductCard({
|
|
|
913
961
|
secondaryAction,
|
|
914
962
|
metadata = [],
|
|
915
963
|
compact = false,
|
|
964
|
+
size = "md",
|
|
916
965
|
loading = false,
|
|
917
|
-
disabled = false
|
|
966
|
+
disabled = false,
|
|
967
|
+
interactiveMode = "none",
|
|
968
|
+
onSurfaceActivate
|
|
918
969
|
}) {
|
|
919
970
|
if (loading) {
|
|
920
971
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(LoadingCard, { compact });
|
|
@@ -930,11 +981,12 @@ function PublicProductCard({
|
|
|
930
981
|
const pickupHelper = helperKind === "pickup" ? helperText : pickupNote;
|
|
931
982
|
const inventoryHelper = helperKind === "inventory" ? helperText : inventoryNote;
|
|
932
983
|
const hasSupportingRegion = Boolean(price || supportingHelper || pickupHelper || inventoryHelper);
|
|
933
|
-
|
|
984
|
+
const interactiveProps = interactiveMode === "surface-button" ? { component: "button", type: "button", onClick: onSurfaceActivate } : {};
|
|
985
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : gdsCardSizePaddingMap[size], ...interactiveProps, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: compact ? "sm" : "md", children: [
|
|
934
986
|
image ?? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ImageFallback, { compact }),
|
|
935
987
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", gap: "sm", children: [
|
|
936
988
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core13.Stack, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
|
|
937
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Title, { order: compact ? 5 :
|
|
989
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Title, { order: compact ? 5 : gdsCardTitleOrderMap[size], lineClamp: 2, children: title }),
|
|
938
990
|
description ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Text, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
939
991
|
] }),
|
|
940
992
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core13.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
|
|
@@ -1199,17 +1251,27 @@ function ListingCard({
|
|
|
1199
1251
|
primaryAction,
|
|
1200
1252
|
saveAction,
|
|
1201
1253
|
shareAction,
|
|
1202
|
-
compact = false
|
|
1254
|
+
compact = false,
|
|
1255
|
+
size = "md",
|
|
1256
|
+
interactiveMode = "none",
|
|
1257
|
+
revealContent,
|
|
1258
|
+
onSurfaceActivate,
|
|
1259
|
+
defaultFlipped = false
|
|
1203
1260
|
}) {
|
|
1261
|
+
const cardPadding = compact ? "md" : gdsCardSizePaddingMap[size];
|
|
1204
1262
|
const titleContent = href && typeof title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { component: "a", href, inherit: true, td: "none", children: title }) : title;
|
|
1205
|
-
|
|
1263
|
+
const interactiveProps = interactiveMode === "surface-link" && href ? { component: "a", href } : interactiveMode === "surface-button" ? { component: "button", type: "button", onClick: onSurfaceActivate } : {};
|
|
1264
|
+
if (interactiveMode === "flip" && defaultFlipped && revealContent) {
|
|
1265
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Card, { withBorder: true, radius: "lg", padding: cardPadding, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Stack, { gap: "sm", children: revealContent }) });
|
|
1266
|
+
}
|
|
1267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Card, { withBorder: true, radius: "lg", padding: cardPadding, ...interactiveProps, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Stack, { gap: compact ? "sm" : "md", children: [
|
|
1206
1268
|
image ?? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ListingImageFallback, { mediaRatio }),
|
|
1207
1269
|
featured || sponsoredDisclosure ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { justify: "space-between", gap: "sm", wrap: "wrap", children: [
|
|
1208
1270
|
featured ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Badge, { variant: "light", color: "violet", children: "Featured" }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", {}),
|
|
1209
1271
|
sponsoredDisclosure ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { size: "xs", c: "dimmed", children: sponsoredDisclosure }) : null
|
|
1210
1272
|
] }) : null,
|
|
1211
1273
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Stack, { gap: 4, children: [
|
|
1212
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Title, { order: compact ? 5 :
|
|
1274
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Title, { order: compact ? 5 : gdsCardTitleOrderMap[size], lineClamp: 2, children: titleContent }),
|
|
1213
1275
|
description ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
1214
1276
|
] }),
|
|
1215
1277
|
metadata.length ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Stack, { gap: "xs", children: metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
@@ -1224,7 +1286,8 @@ function ListingCard({
|
|
|
1224
1286
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core16.Group, { gap: "xs", wrap: "nowrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
1225
1287
|
saveAction ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ListingAffordance, { affordance: saveAction }) : null,
|
|
1226
1288
|
shareAction ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ListingAffordance, { affordance: shareAction }) : null,
|
|
1227
|
-
primaryAction
|
|
1289
|
+
primaryAction,
|
|
1290
|
+
interactiveMode === "flip" && revealContent ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core16.Text, { size: "xs", c: "dimmed", children: "Flip mode supports reveal surfaces." }) : null
|
|
1228
1291
|
] })
|
|
1229
1292
|
] })
|
|
1230
1293
|
] }) });
|
|
@@ -1465,20 +1528,209 @@ function DetailProfileShell({
|
|
|
1465
1528
|
] }) });
|
|
1466
1529
|
}
|
|
1467
1530
|
|
|
1531
|
+
// src/AsyncSurface.tsx
|
|
1532
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1533
|
+
function getRetryAction(onRetry) {
|
|
1534
|
+
if (!onRetry) {
|
|
1535
|
+
return void 0;
|
|
1536
|
+
}
|
|
1537
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { type: "button", onClick: onRetry, children: "Retry" });
|
|
1538
|
+
}
|
|
1539
|
+
function renderStateBlock({
|
|
1540
|
+
variant,
|
|
1541
|
+
title,
|
|
1542
|
+
description,
|
|
1543
|
+
compact,
|
|
1544
|
+
presentation,
|
|
1545
|
+
minHeight,
|
|
1546
|
+
contentAlign,
|
|
1547
|
+
contentJustify,
|
|
1548
|
+
action
|
|
1549
|
+
}) {
|
|
1550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1551
|
+
StateBlock,
|
|
1552
|
+
{
|
|
1553
|
+
variant,
|
|
1554
|
+
title,
|
|
1555
|
+
description,
|
|
1556
|
+
action,
|
|
1557
|
+
compact,
|
|
1558
|
+
presentation,
|
|
1559
|
+
minHeight,
|
|
1560
|
+
contentAlign,
|
|
1561
|
+
contentJustify
|
|
1562
|
+
}
|
|
1563
|
+
);
|
|
1564
|
+
}
|
|
1565
|
+
function AsyncSurface({
|
|
1566
|
+
state,
|
|
1567
|
+
successContent,
|
|
1568
|
+
idleContent,
|
|
1569
|
+
loadingTitle = "Loading",
|
|
1570
|
+
loadingDescription = "This surface is still synchronizing.",
|
|
1571
|
+
emptyTitle = "No results",
|
|
1572
|
+
emptyDescription = "No data is available for this surface yet.",
|
|
1573
|
+
errorTitle = "Unable to load",
|
|
1574
|
+
errorDescription = "Something went wrong while preparing this surface.",
|
|
1575
|
+
refreshingTitle = "Refreshing",
|
|
1576
|
+
refreshingDescription = "The latest data is being fetched.",
|
|
1577
|
+
onRetry,
|
|
1578
|
+
retryAction,
|
|
1579
|
+
compact = false,
|
|
1580
|
+
presentation = "inline",
|
|
1581
|
+
minHeight,
|
|
1582
|
+
contentAlign,
|
|
1583
|
+
contentJustify
|
|
1584
|
+
}) {
|
|
1585
|
+
const fallbackRetryAction = retryAction ?? getRetryAction(onRetry);
|
|
1586
|
+
if (state === "success") {
|
|
1587
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, { children: successContent });
|
|
1588
|
+
}
|
|
1589
|
+
if (state === "idle") {
|
|
1590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, { children: idleContent ?? successContent ?? null });
|
|
1591
|
+
}
|
|
1592
|
+
if (state === "loading") {
|
|
1593
|
+
return renderStateBlock({
|
|
1594
|
+
variant: "loading",
|
|
1595
|
+
title: loadingTitle,
|
|
1596
|
+
description: loadingDescription,
|
|
1597
|
+
compact,
|
|
1598
|
+
presentation,
|
|
1599
|
+
minHeight,
|
|
1600
|
+
contentAlign,
|
|
1601
|
+
contentJustify
|
|
1602
|
+
});
|
|
1603
|
+
}
|
|
1604
|
+
if (state === "empty") {
|
|
1605
|
+
return renderStateBlock({
|
|
1606
|
+
variant: "empty",
|
|
1607
|
+
title: emptyTitle,
|
|
1608
|
+
description: emptyDescription,
|
|
1609
|
+
compact,
|
|
1610
|
+
presentation,
|
|
1611
|
+
minHeight,
|
|
1612
|
+
contentAlign,
|
|
1613
|
+
contentJustify,
|
|
1614
|
+
action: fallbackRetryAction
|
|
1615
|
+
});
|
|
1616
|
+
}
|
|
1617
|
+
if (state === "error") {
|
|
1618
|
+
return renderStateBlock({
|
|
1619
|
+
variant: "error",
|
|
1620
|
+
title: errorTitle,
|
|
1621
|
+
description: errorDescription,
|
|
1622
|
+
compact,
|
|
1623
|
+
presentation,
|
|
1624
|
+
minHeight,
|
|
1625
|
+
contentAlign,
|
|
1626
|
+
contentJustify,
|
|
1627
|
+
action: fallbackRetryAction
|
|
1628
|
+
});
|
|
1629
|
+
}
|
|
1630
|
+
return renderStateBlock({
|
|
1631
|
+
variant: "info",
|
|
1632
|
+
title: refreshingTitle,
|
|
1633
|
+
description: refreshingDescription,
|
|
1634
|
+
compact,
|
|
1635
|
+
presentation,
|
|
1636
|
+
minHeight,
|
|
1637
|
+
contentAlign,
|
|
1638
|
+
contentJustify
|
|
1639
|
+
});
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
// src/ListingPrimitives.tsx
|
|
1643
|
+
var import_core21 = require("@mantine/core");
|
|
1644
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1645
|
+
function ActiveFilterChips({
|
|
1646
|
+
filters,
|
|
1647
|
+
emptyLabel = "No active filters."
|
|
1648
|
+
}) {
|
|
1649
|
+
if (!filters.length) {
|
|
1650
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core21.Text, { size: "sm", c: "dimmed", children: emptyLabel });
|
|
1651
|
+
}
|
|
1652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core21.Group, { gap: "xs", children: filters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1653
|
+
import_core21.Badge,
|
|
1654
|
+
{
|
|
1655
|
+
variant: "light",
|
|
1656
|
+
rightSection: filter.onRemove ? "\xD7" : void 0,
|
|
1657
|
+
style: filter.onRemove ? { cursor: "pointer" } : void 0,
|
|
1658
|
+
onClick: filter.onRemove,
|
|
1659
|
+
children: filter.label
|
|
1660
|
+
},
|
|
1661
|
+
filter.id
|
|
1662
|
+
)) });
|
|
1663
|
+
}
|
|
1664
|
+
function ResultSummary({
|
|
1665
|
+
resultCount,
|
|
1666
|
+
noun = "results",
|
|
1667
|
+
description
|
|
1668
|
+
}) {
|
|
1669
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core21.Stack, { gap: 2, children: [
|
|
1670
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core21.Text, { size: "sm", fw: 600, children: [
|
|
1671
|
+
resultCount,
|
|
1672
|
+
" ",
|
|
1673
|
+
noun
|
|
1674
|
+
] }),
|
|
1675
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core21.Text, { size: "xs", c: "dimmed", children: description }) : null
|
|
1676
|
+
] });
|
|
1677
|
+
}
|
|
1678
|
+
function SortMenu({
|
|
1679
|
+
value,
|
|
1680
|
+
options,
|
|
1681
|
+
onChange,
|
|
1682
|
+
label = "Sort"
|
|
1683
|
+
}) {
|
|
1684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1685
|
+
import_core21.Select,
|
|
1686
|
+
{
|
|
1687
|
+
"aria-label": label,
|
|
1688
|
+
label,
|
|
1689
|
+
value,
|
|
1690
|
+
data: options,
|
|
1691
|
+
onChange: (next) => {
|
|
1692
|
+
if (next) {
|
|
1693
|
+
onChange?.(next);
|
|
1694
|
+
}
|
|
1695
|
+
},
|
|
1696
|
+
w: 220
|
|
1697
|
+
}
|
|
1698
|
+
);
|
|
1699
|
+
}
|
|
1700
|
+
function BulkActionsBar({
|
|
1701
|
+
selectedCount,
|
|
1702
|
+
actions,
|
|
1703
|
+
clearAction
|
|
1704
|
+
}) {
|
|
1705
|
+
if (selectedCount <= 0) {
|
|
1706
|
+
return null;
|
|
1707
|
+
}
|
|
1708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core21.Group, { justify: "space-between", align: "center", children: [
|
|
1709
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core21.Text, { size: "sm", fw: 600, children: [
|
|
1710
|
+
selectedCount,
|
|
1711
|
+
" selected"
|
|
1712
|
+
] }),
|
|
1713
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core21.Group, { gap: "xs", children: [
|
|
1714
|
+
actions,
|
|
1715
|
+
clearAction ?? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core21.Button, { variant: "subtle", size: "xs", children: "Clear selection" })
|
|
1716
|
+
] })
|
|
1717
|
+
] });
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1468
1720
|
// src/PublicShell.tsx
|
|
1469
|
-
var
|
|
1721
|
+
var import_core23 = require("@mantine/core");
|
|
1470
1722
|
|
|
1471
1723
|
// src/PublicNav.tsx
|
|
1472
|
-
var
|
|
1473
|
-
var
|
|
1724
|
+
var import_core22 = require("@mantine/core");
|
|
1725
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1474
1726
|
function PublicNav({ items, activeId, renderLink }) {
|
|
1475
|
-
return /* @__PURE__ */ (0,
|
|
1727
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core22.Group, { component: "nav", "aria-label": "Primary", gap: "lg", wrap: "nowrap", children: items.map((item) => {
|
|
1476
1728
|
const active = item.id === activeId;
|
|
1477
1729
|
if (renderLink) {
|
|
1478
|
-
return /* @__PURE__ */ (0,
|
|
1730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: renderLink(item, active) }, item.id);
|
|
1479
1731
|
}
|
|
1480
|
-
return /* @__PURE__ */ (0,
|
|
1481
|
-
|
|
1732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1733
|
+
import_core22.Anchor,
|
|
1482
1734
|
{
|
|
1483
1735
|
href: item.href,
|
|
1484
1736
|
"aria-current": active ? "page" : void 0,
|
|
@@ -1495,15 +1747,15 @@ function PublicNav({ items, activeId, renderLink }) {
|
|
|
1495
1747
|
}
|
|
1496
1748
|
|
|
1497
1749
|
// src/PublicShell.tsx
|
|
1498
|
-
var
|
|
1750
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1499
1751
|
function InlineMobileNavigation({
|
|
1500
1752
|
mobileNavigation,
|
|
1501
1753
|
className,
|
|
1502
1754
|
mode
|
|
1503
1755
|
}) {
|
|
1504
|
-
return /* @__PURE__ */ (0,
|
|
1505
|
-
/* @__PURE__ */ (0,
|
|
1506
|
-
|
|
1756
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core23.Box, { component: "details", hiddenFrom: "sm", className, children: [
|
|
1757
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1758
|
+
import_core23.Box,
|
|
1507
1759
|
{
|
|
1508
1760
|
component: "summary",
|
|
1509
1761
|
"aria-label": mode === "drawer" ? "Open site navigation drawer" : "Open site navigation",
|
|
@@ -1515,13 +1767,13 @@ function InlineMobileNavigation({
|
|
|
1515
1767
|
gap: "0.5rem"
|
|
1516
1768
|
},
|
|
1517
1769
|
children: [
|
|
1518
|
-
/* @__PURE__ */ (0,
|
|
1519
|
-
/* @__PURE__ */ (0,
|
|
1770
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Burger, { opened: false, "aria-hidden": true }),
|
|
1771
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Text, { size: "sm", fw: 600, children: "Menu" })
|
|
1520
1772
|
]
|
|
1521
1773
|
}
|
|
1522
1774
|
),
|
|
1523
|
-
/* @__PURE__ */ (0,
|
|
1524
|
-
|
|
1775
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1776
|
+
import_core23.Box,
|
|
1525
1777
|
{
|
|
1526
1778
|
mt: "sm",
|
|
1527
1779
|
p: "sm",
|
|
@@ -1530,7 +1782,7 @@ function InlineMobileNavigation({
|
|
|
1530
1782
|
border: "1px solid var(--mantine-color-default-border)",
|
|
1531
1783
|
background: mode === "drawer" ? "light-dark(var(--mantine-color-white), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))" : "var(--mantine-color-body)"
|
|
1532
1784
|
},
|
|
1533
|
-
children: /* @__PURE__ */ (0,
|
|
1785
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Stack, { gap: "sm", children: mobileNavigation })
|
|
1534
1786
|
}
|
|
1535
1787
|
)
|
|
1536
1788
|
] });
|
|
@@ -1551,30 +1803,30 @@ function PublicShell({
|
|
|
1551
1803
|
mobileNavigationMode = "sheet",
|
|
1552
1804
|
classNames
|
|
1553
1805
|
}) {
|
|
1554
|
-
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */ (0,
|
|
1806
|
+
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(PublicNav, { items: navItems, activeId: activeNavId }) : null);
|
|
1555
1807
|
const containerSize = maxContentWidth ?? (compact ? "md" : "lg");
|
|
1556
1808
|
const headerHeight = headerVariant === "compact" ? 64 : headerVariant === "branded-quiet" ? 88 : 72;
|
|
1557
1809
|
const mainPadding = headerVariant === "compact" ? "lg" : "xl";
|
|
1558
1810
|
const usesInlineMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode !== "sheet";
|
|
1559
1811
|
const usesSheetMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode === "sheet";
|
|
1560
|
-
return /* @__PURE__ */ (0,
|
|
1561
|
-
|
|
1812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1813
|
+
import_core23.AppShell,
|
|
1562
1814
|
{
|
|
1563
1815
|
className: classNames?.root,
|
|
1564
1816
|
header: { height: headerHeight },
|
|
1565
1817
|
footer: usesSheetMobileNavigation ? { height: 68 } : void 0,
|
|
1566
1818
|
padding: 0,
|
|
1567
1819
|
children: [
|
|
1568
|
-
/* @__PURE__ */ (0,
|
|
1569
|
-
|
|
1820
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.AppShell.Header, { withBorder: headerBordered, className: classNames?.header, "data-header-variant": headerVariant, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Container, { size: containerSize, h: "100%", py: headerVariant === "branded-quiet" ? "sm" : 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1821
|
+
import_core23.Group,
|
|
1570
1822
|
{
|
|
1571
1823
|
h: "100%",
|
|
1572
1824
|
justify: "space-between",
|
|
1573
1825
|
wrap: "nowrap",
|
|
1574
1826
|
gap: headerVariant === "compact" ? "sm" : "lg",
|
|
1575
1827
|
children: [
|
|
1576
|
-
/* @__PURE__ */ (0,
|
|
1577
|
-
usesInlineMobileNavigation ? /* @__PURE__ */ (0,
|
|
1828
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core23.Group, { wrap: "nowrap", gap: headerVariant === "compact" ? "xs" : "sm", className: classNames?.brand, children: [
|
|
1829
|
+
usesInlineMobileNavigation ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1578
1830
|
InlineMobileNavigation,
|
|
1579
1831
|
{
|
|
1580
1832
|
mobileNavigation,
|
|
@@ -1582,17 +1834,17 @@ function PublicShell({
|
|
|
1582
1834
|
mode: mobileNavigationMode
|
|
1583
1835
|
}
|
|
1584
1836
|
) : null,
|
|
1585
|
-
/* @__PURE__ */ (0,
|
|
1837
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Box, { children: brand })
|
|
1586
1838
|
] }),
|
|
1587
|
-
/* @__PURE__ */ (0,
|
|
1588
|
-
/* @__PURE__ */ (0,
|
|
1839
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Group, { visibleFrom: "sm", gap: headerVariant === "compact" ? "md" : "lg", className: classNames?.navigation, children: resolvedNavigation }),
|
|
1840
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Group, { gap: "sm", className: classNames?.actions, children: actions })
|
|
1589
1841
|
]
|
|
1590
1842
|
}
|
|
1591
1843
|
) }) }),
|
|
1592
|
-
usesSheetMobileNavigation ? /* @__PURE__ */ (0,
|
|
1593
|
-
/* @__PURE__ */ (0,
|
|
1594
|
-
/* @__PURE__ */ (0,
|
|
1595
|
-
footer ? /* @__PURE__ */ (0,
|
|
1844
|
+
usesSheetMobileNavigation ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.AppShell.Footer, { withBorder: true, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Container, { size: containerSize, h: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Group, { h: "100%", justify: "space-around", wrap: "nowrap", children: mobileNavigation }) }) }) : null,
|
|
1845
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core23.AppShell.Main, { children: [
|
|
1846
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Container, { size: containerSize, py: mainPadding, className: classNames?.content, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Stack, { gap: "xl", children }) }),
|
|
1847
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Box, { component: typeof footer === "string" ? "footer" : "div", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Container, { size: containerSize, children: typeof footer === "string" ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core23.Text, { size: "sm", c: "dimmed", children: footer }) : footer }) }) : null
|
|
1596
1848
|
] })
|
|
1597
1849
|
]
|
|
1598
1850
|
}
|
|
@@ -1600,18 +1852,18 @@ function PublicShell({
|
|
|
1600
1852
|
}
|
|
1601
1853
|
|
|
1602
1854
|
// src/PublicSiteFooter.tsx
|
|
1603
|
-
var
|
|
1604
|
-
var
|
|
1855
|
+
var import_core24 = require("@mantine/core");
|
|
1856
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1605
1857
|
function PublicSiteFooter({ children, meta }) {
|
|
1606
|
-
return /* @__PURE__ */ (0,
|
|
1607
|
-
children ? /* @__PURE__ */ (0,
|
|
1608
|
-
meta ? /* @__PURE__ */ (0,
|
|
1858
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core24.Stack, { component: "footer", gap: "xs", children: [
|
|
1859
|
+
children ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core24.Text, { size: "sm", children }) : null,
|
|
1860
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core24.Group, { gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core24.Text, { size: "xs", c: "dimmed", children: meta }) }) : null
|
|
1609
1861
|
] });
|
|
1610
1862
|
}
|
|
1611
1863
|
|
|
1612
1864
|
// src/PublicBrandFooter.tsx
|
|
1613
|
-
var
|
|
1614
|
-
var
|
|
1865
|
+
var import_core25 = require("@mantine/core");
|
|
1866
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1615
1867
|
function PublicBrandFooter({
|
|
1616
1868
|
media,
|
|
1617
1869
|
brandTitle,
|
|
@@ -1626,8 +1878,8 @@ function PublicBrandFooter({
|
|
|
1626
1878
|
const mediaSpan = layoutVariant === "immersive-media" ? 5 : 4;
|
|
1627
1879
|
const primarySpan = media ? layoutVariant === "balanced-quote" ? 4 : 4 : secondary ? 6 : 12;
|
|
1628
1880
|
const secondarySpan = media ? Math.max(3, 12 - mediaSpan - primarySpan) : Math.max(4, 12 - primarySpan);
|
|
1629
|
-
return /* @__PURE__ */ (0,
|
|
1630
|
-
|
|
1881
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1882
|
+
import_core25.Paper,
|
|
1631
1883
|
{
|
|
1632
1884
|
component: "footer",
|
|
1633
1885
|
withBorder: true,
|
|
@@ -1635,19 +1887,19 @@ function PublicBrandFooter({
|
|
|
1635
1887
|
p: compact ? "lg" : "xl",
|
|
1636
1888
|
className: classNames?.root,
|
|
1637
1889
|
"data-layout-variant": layoutVariant,
|
|
1638
|
-
children: /* @__PURE__ */ (0,
|
|
1639
|
-
/* @__PURE__ */ (0,
|
|
1640
|
-
media ? /* @__PURE__ */ (0,
|
|
1641
|
-
/* @__PURE__ */ (0,
|
|
1642
|
-
brandTitle ? /* @__PURE__ */ (0,
|
|
1643
|
-
description ? /* @__PURE__ */ (0,
|
|
1644
|
-
actions ? /* @__PURE__ */ (0,
|
|
1890
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core25.Stack, { gap: "lg", children: [
|
|
1891
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core25.Grid, { gutter: compact ? "lg" : "xl", align: "flex-start", children: [
|
|
1892
|
+
media ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Grid.Col, { span: { base: 12, md: mediaSpan }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Box, { className: classNames?.media, children: media }) }) : null,
|
|
1893
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Grid.Col, { span: { base: 12, md: primarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core25.Stack, { gap: compact ? "xs" : "sm", className: classNames?.primary, children: [
|
|
1894
|
+
brandTitle ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Title, { order: 4, children: brandTitle }) : null,
|
|
1895
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Text, { c: "dimmed", children: description }) : null,
|
|
1896
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Box, { children: actions }) : null
|
|
1645
1897
|
] }) }),
|
|
1646
|
-
secondary ? /* @__PURE__ */ (0,
|
|
1898
|
+
secondary ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Grid.Col, { span: { base: 12, md: secondarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Stack, { gap: compact ? "xs" : "sm", className: classNames?.secondary, children: secondary }) }) : null
|
|
1647
1899
|
] }),
|
|
1648
|
-
legal ? /* @__PURE__ */ (0,
|
|
1649
|
-
/* @__PURE__ */ (0,
|
|
1650
|
-
/* @__PURE__ */ (0,
|
|
1900
|
+
legal ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
|
|
1901
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Divider, {}),
|
|
1902
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Group, { justify: "space-between", gap: "sm", wrap: "wrap", className: classNames?.legal, children: typeof legal === "string" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core25.Text, { size: "sm", c: "dimmed", children: legal }) : legal })
|
|
1651
1903
|
] }) : null
|
|
1652
1904
|
] })
|
|
1653
1905
|
}
|
|
@@ -1655,8 +1907,8 @@ function PublicBrandFooter({
|
|
|
1655
1907
|
}
|
|
1656
1908
|
|
|
1657
1909
|
// src/AuthShell.tsx
|
|
1658
|
-
var
|
|
1659
|
-
var
|
|
1910
|
+
var import_core26 = require("@mantine/core");
|
|
1911
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1660
1912
|
function AuthShell({
|
|
1661
1913
|
title,
|
|
1662
1914
|
description,
|
|
@@ -1672,37 +1924,37 @@ function AuthShell({
|
|
|
1672
1924
|
dividerLabel = "Or continue with your account",
|
|
1673
1925
|
children
|
|
1674
1926
|
}) {
|
|
1675
|
-
return /* @__PURE__ */ (0,
|
|
1676
|
-
brand || headerActions ? /* @__PURE__ */ (0,
|
|
1677
|
-
brand ? /* @__PURE__ */ (0,
|
|
1678
|
-
headerActions ? /* @__PURE__ */ (0,
|
|
1927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Box, { py: { base: "xl", md: "4rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Container, { size: "xs", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core26.Stack, { gap: "xl", children: [
|
|
1928
|
+
brand || headerActions ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core26.Group, { justify: brand && headerActions ? "space-between" : "center", align: "center", children: [
|
|
1929
|
+
brand ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Box, { children: brand }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Box, {}),
|
|
1930
|
+
headerActions ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Group, { gap: "sm", children: headerActions }) : null
|
|
1679
1931
|
] }) : null,
|
|
1680
|
-
/* @__PURE__ */ (0,
|
|
1681
|
-
/* @__PURE__ */ (0,
|
|
1682
|
-
/* @__PURE__ */ (0,
|
|
1683
|
-
/* @__PURE__ */ (0,
|
|
1684
|
-
description ? /* @__PURE__ */ (0,
|
|
1932
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Card, { withBorder: true, radius: "lg", padding: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core26.Stack, { gap: "lg", children: [
|
|
1933
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core26.Stack, { gap: "xs", ta: "center", children: [
|
|
1934
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Group, { justify: "center", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Badge, { variant: "light", color: intent === "account-linking" ? "blue" : intent === "guest-entry" ? "gray" : "teal", children: intent.replace("-", " ") }) }),
|
|
1935
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Title, { order: 2, children: title }),
|
|
1936
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Text, { c: "dimmed", size: "sm", children: description }) : null
|
|
1685
1937
|
] }),
|
|
1686
|
-
error ? /* @__PURE__ */ (0,
|
|
1687
|
-
socialAuth ? /* @__PURE__ */ (0,
|
|
1688
|
-
socialAuth ? /* @__PURE__ */ (0,
|
|
1938
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Alert, { color: "red", variant: "light", role: "alert", children: error }) : null,
|
|
1939
|
+
socialAuth ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Box, { children: socialAuth }) : null,
|
|
1940
|
+
socialAuth ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Divider, { label: dividerLabel, labelPosition: "center" }) : null,
|
|
1689
1941
|
children,
|
|
1690
|
-
guestAction || supportAction ? /* @__PURE__ */ (0,
|
|
1942
|
+
guestAction || supportAction ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core26.Group, { justify: "center", gap: "sm", children: [
|
|
1691
1943
|
guestAction,
|
|
1692
1944
|
supportAction
|
|
1693
1945
|
] }) : null,
|
|
1694
|
-
helper ? /* @__PURE__ */ (0,
|
|
1946
|
+
helper ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Text, { size: "sm", c: "dimmed", ta: "center", children: helper }) : null
|
|
1695
1947
|
] }) }),
|
|
1696
|
-
footer ? /* @__PURE__ */ (0,
|
|
1948
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core26.Text, { size: "sm", c: "dimmed", ta: "center", children: footer }) : null
|
|
1697
1949
|
] }) }) });
|
|
1698
1950
|
}
|
|
1699
1951
|
|
|
1700
1952
|
// src/SocialAuthButtons.tsx
|
|
1701
|
-
var
|
|
1953
|
+
var import_core28 = require("@mantine/core");
|
|
1702
1954
|
|
|
1703
1955
|
// src/ProviderIdentityButtons.tsx
|
|
1704
|
-
var
|
|
1705
|
-
var
|
|
1956
|
+
var import_core27 = require("@mantine/core");
|
|
1957
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1706
1958
|
var PROVIDER_IDENTITY_REGISTRY = {
|
|
1707
1959
|
google: {
|
|
1708
1960
|
providerLabel: "Google",
|
|
@@ -1808,15 +2060,15 @@ function getProviderIdentityPolicy(provider) {
|
|
|
1808
2060
|
}
|
|
1809
2061
|
function ProviderIdentityMark({ provider }) {
|
|
1810
2062
|
const meta = getProviderIdentityMeta(provider);
|
|
1811
|
-
return /* @__PURE__ */ (0,
|
|
1812
|
-
|
|
2063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2064
|
+
import_core27.ThemeIcon,
|
|
1813
2065
|
{
|
|
1814
2066
|
variant: "light",
|
|
1815
2067
|
color: meta.brandColor,
|
|
1816
2068
|
radius: "xl",
|
|
1817
2069
|
size: "md",
|
|
1818
2070
|
"aria-hidden": "true",
|
|
1819
|
-
children: /* @__PURE__ */ (0,
|
|
2071
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.Text, { size: "xs", fw: 700, c: "inherit", children: meta.markLabel })
|
|
1820
2072
|
}
|
|
1821
2073
|
);
|
|
1822
2074
|
}
|
|
@@ -1847,8 +2099,8 @@ function ProviderIdentityButton({
|
|
|
1847
2099
|
} : {
|
|
1848
2100
|
onClick
|
|
1849
2101
|
};
|
|
1850
|
-
return /* @__PURE__ */ (0,
|
|
1851
|
-
|
|
2102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2103
|
+
import_core27.Button,
|
|
1852
2104
|
{
|
|
1853
2105
|
variant: mapVariant(variant),
|
|
1854
2106
|
color: variant === "solid" ? meta.brandColor : void 0,
|
|
@@ -1857,17 +2109,17 @@ function ProviderIdentityButton({
|
|
|
1857
2109
|
size,
|
|
1858
2110
|
"aria-label": ariaLabel ?? (typeof buttonLabel === "string" ? buttonLabel : void 0),
|
|
1859
2111
|
"aria-describedby": describedBy,
|
|
1860
|
-
leftSection: /* @__PURE__ */ (0,
|
|
2112
|
+
leftSection: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ProviderIdentityMark, { provider }),
|
|
1861
2113
|
disabled: resolvedDisabled,
|
|
1862
2114
|
loading,
|
|
1863
2115
|
styles: { root: { minHeight: minTouchTargetPx } },
|
|
1864
2116
|
...buttonProps,
|
|
1865
|
-
children: /* @__PURE__ */ (0,
|
|
1866
|
-
/* @__PURE__ */ (0,
|
|
1867
|
-
description ? /* @__PURE__ */ (0,
|
|
1868
|
-
policyNote ? /* @__PURE__ */ (0,
|
|
1869
|
-
tenantDisabledReason ? /* @__PURE__ */ (0,
|
|
1870
|
-
error ? /* @__PURE__ */ (0,
|
|
2117
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core27.Stack, { gap: 0, align: "flex-start", children: [
|
|
2118
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.Text, { inherit: true, children: buttonLabel }),
|
|
2119
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.Text, { size: "xs", c: "dimmed", lh: 1.2, children: description }) : null,
|
|
2120
|
+
policyNote ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.Text, { size: "xs", c: "dimmed", lh: 1.2, children: policyNote }) : null,
|
|
2121
|
+
tenantDisabledReason ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.Text, { size: "xs", c: "orange.7", lh: 1.2, children: tenantDisabledReason }) : null,
|
|
2122
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.Text, { size: "xs", c: "red.7", lh: 1.2, role: "alert", children: error }) : null
|
|
1871
2123
|
] })
|
|
1872
2124
|
}
|
|
1873
2125
|
);
|
|
@@ -1878,16 +2130,16 @@ function ProviderIdentityButtonGroup({ providers, layout = "stack" }) {
|
|
|
1878
2130
|
}
|
|
1879
2131
|
const content = providers.map((entry, index) => {
|
|
1880
2132
|
const key = `${normalizeProviderId(String(entry.provider)) || "provider"}-${index}`;
|
|
1881
|
-
return /* @__PURE__ */ (0,
|
|
2133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ProviderIdentityButton, { ...entry }, key);
|
|
1882
2134
|
});
|
|
1883
2135
|
if (layout === "grid") {
|
|
1884
|
-
return /* @__PURE__ */ (0,
|
|
2136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: content });
|
|
1885
2137
|
}
|
|
1886
|
-
return /* @__PURE__ */ (0,
|
|
2138
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core27.Stack, { gap: "sm", children: content });
|
|
1887
2139
|
}
|
|
1888
2140
|
|
|
1889
2141
|
// src/SocialAuthButtons.tsx
|
|
1890
|
-
var
|
|
2142
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1891
2143
|
function SocialAuthButtons({
|
|
1892
2144
|
providers,
|
|
1893
2145
|
title = "Continue with a trusted provider",
|
|
@@ -1912,53 +2164,53 @@ function SocialAuthButtons({
|
|
|
1912
2164
|
size: provider.size ?? (compact ? "sm" : "md"),
|
|
1913
2165
|
variant: provider.variant
|
|
1914
2166
|
}));
|
|
1915
|
-
return /* @__PURE__ */ (0,
|
|
1916
|
-
/* @__PURE__ */ (0,
|
|
1917
|
-
/* @__PURE__ */ (0,
|
|
1918
|
-
/* @__PURE__ */ (0,
|
|
1919
|
-
/* @__PURE__ */ (0,
|
|
2167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core28.Stack, { gap: "md", children: [
|
|
2168
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core28.Stack, { gap: 4, ta: "center", children: [
|
|
2169
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core28.Group, { justify: "center", gap: "xs", children: [
|
|
2170
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(GdsIcons.Login, { size: "1rem" }),
|
|
2171
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core28.Text, { fw: 600, children: title })
|
|
1920
2172
|
] }),
|
|
1921
|
-
description ? /* @__PURE__ */ (0,
|
|
2173
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core28.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
1922
2174
|
] }),
|
|
1923
|
-
/* @__PURE__ */ (0,
|
|
1924
|
-
/* @__PURE__ */ (0,
|
|
2175
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core28.Divider, {}),
|
|
2176
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ProviderIdentityButtonGroup, { providers: buttons, layout })
|
|
1925
2177
|
] });
|
|
1926
2178
|
}
|
|
1927
2179
|
|
|
1928
2180
|
// src/ArticleShell.tsx
|
|
1929
|
-
var
|
|
1930
|
-
var
|
|
2181
|
+
var import_core29 = require("@mantine/core");
|
|
2182
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1931
2183
|
function ArticleShell({ eyebrow, title, lead, meta, sideRail, children }) {
|
|
1932
|
-
return /* @__PURE__ */ (0,
|
|
1933
|
-
/* @__PURE__ */ (0,
|
|
1934
|
-
/* @__PURE__ */ (0,
|
|
1935
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
1936
|
-
/* @__PURE__ */ (0,
|
|
1937
|
-
lead ? /* @__PURE__ */ (0,
|
|
1938
|
-
meta ? /* @__PURE__ */ (0,
|
|
2184
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core29.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
2185
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core29.Stack, { gap: "lg", maw: 760, flex: 1, children: [
|
|
2186
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core29.Stack, { gap: "sm", children: [
|
|
2187
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Text, { size: "sm", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
2188
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Title, { order: 1, children: title }),
|
|
2189
|
+
lead ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Text, { size: "lg", c: "dimmed", children: lead }) : null,
|
|
2190
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Group, { gap: "md", children: meta }) : null
|
|
1939
2191
|
] }),
|
|
1940
|
-
/* @__PURE__ */ (0,
|
|
2192
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Stack, { gap: "md", children })
|
|
1941
2193
|
] }),
|
|
1942
|
-
sideRail ? /* @__PURE__ */ (0,
|
|
2194
|
+
sideRail ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
1943
2195
|
] }) });
|
|
1944
2196
|
}
|
|
1945
2197
|
|
|
1946
2198
|
// src/CtaButtonGroup.tsx
|
|
1947
|
-
var
|
|
1948
|
-
var
|
|
2199
|
+
var import_core30 = require("@mantine/core");
|
|
2200
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1949
2201
|
function CtaButtonGroup({ primary, secondary, tertiary }) {
|
|
1950
|
-
return /* @__PURE__ */ (0,
|
|
1951
|
-
/* @__PURE__ */ (0,
|
|
1952
|
-
/* @__PURE__ */ (0,
|
|
1953
|
-
secondary ? /* @__PURE__ */ (0,
|
|
2202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core30.Stack, { gap: "sm", children: [
|
|
2203
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core30.Group, { gap: "sm", align: "stretch", children: [
|
|
2204
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { children: primary }),
|
|
2205
|
+
secondary ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { children: secondary }) : null
|
|
1954
2206
|
] }),
|
|
1955
|
-
tertiary ? /* @__PURE__ */ (0,
|
|
2207
|
+
tertiary ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { children: tertiary }) : null
|
|
1956
2208
|
] });
|
|
1957
2209
|
}
|
|
1958
2210
|
|
|
1959
2211
|
// src/DocsPageShell.tsx
|
|
1960
|
-
var
|
|
1961
|
-
var
|
|
2212
|
+
var import_core31 = require("@mantine/core");
|
|
2213
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1962
2214
|
function DocsPageShell({
|
|
1963
2215
|
breadcrumbs = [],
|
|
1964
2216
|
title,
|
|
@@ -1969,27 +2221,27 @@ function DocsPageShell({
|
|
|
1969
2221
|
footerNext,
|
|
1970
2222
|
children
|
|
1971
2223
|
}) {
|
|
1972
|
-
return /* @__PURE__ */ (0,
|
|
1973
|
-
/* @__PURE__ */ (0,
|
|
1974
|
-
breadcrumbs.length ? /* @__PURE__ */ (0,
|
|
1975
|
-
(crumb) => crumb.href ? /* @__PURE__ */ (0,
|
|
2224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Container, { fluid: true, py: "xl", px: { base: "md", md: "lg", lg: "xl" }, w: "100%", maw: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core31.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
2225
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core31.Stack, { component: "article", gap: "lg", flex: 1, miw: 0, children: [
|
|
2226
|
+
breadcrumbs.length ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Breadcrumbs, { children: breadcrumbs.map(
|
|
2227
|
+
(crumb) => crumb.href ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Anchor, { href: crumb.href, children: crumb.label }, `${crumb.label}-${crumb.href}`) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Text, { children: crumb.label }, crumb.label)
|
|
1976
2228
|
) }) : null,
|
|
1977
|
-
/* @__PURE__ */ (0,
|
|
1978
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
1979
|
-
/* @__PURE__ */ (0,
|
|
1980
|
-
lead ? /* @__PURE__ */ (0,
|
|
1981
|
-
meta ? /* @__PURE__ */ (0,
|
|
2229
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core31.Stack, { gap: "sm", children: [
|
|
2230
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Text, { size: "sm", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
2231
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Title, { order: 1, children: title }),
|
|
2232
|
+
lead ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Text, { size: "lg", c: "dimmed", children: lead }) : null,
|
|
2233
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Group, { gap: "md", children: meta }) : null
|
|
1982
2234
|
] }),
|
|
1983
|
-
/* @__PURE__ */ (0,
|
|
1984
|
-
footerNext ? /* @__PURE__ */ (0,
|
|
2235
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Stack, { gap: "md", children }),
|
|
2236
|
+
footerNext ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Anchor, { href: footerNext.href, fw: 600, children: footerNext.label }) : null
|
|
1985
2237
|
] }),
|
|
1986
|
-
sideRail ? /* @__PURE__ */ (0,
|
|
2238
|
+
sideRail ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core31.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
1987
2239
|
] }) });
|
|
1988
2240
|
}
|
|
1989
2241
|
|
|
1990
2242
|
// src/EditorialHero.tsx
|
|
1991
|
-
var
|
|
1992
|
-
var
|
|
2243
|
+
var import_core32 = require("@mantine/core");
|
|
2244
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
1993
2245
|
function resolveActionVariant(action, index, seenPrimary) {
|
|
1994
2246
|
const requested = action.variant ?? (index === 0 ? "primary" : "secondary");
|
|
1995
2247
|
if (requested === "primary" && !seenPrimary) {
|
|
@@ -2001,8 +2253,8 @@ function resolveActionVariant(action, index, seenPrimary) {
|
|
|
2001
2253
|
return { variant: "default", seenPrimary };
|
|
2002
2254
|
}
|
|
2003
2255
|
function HeroAction({ action, variant }) {
|
|
2004
|
-
const content = /* @__PURE__ */ (0,
|
|
2005
|
-
|
|
2256
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2257
|
+
import_core32.Anchor,
|
|
2006
2258
|
{
|
|
2007
2259
|
href: action.href,
|
|
2008
2260
|
onClick: action.onClick,
|
|
@@ -2026,8 +2278,8 @@ function HeroAction({ action, variant }) {
|
|
|
2026
2278
|
}
|
|
2027
2279
|
);
|
|
2028
2280
|
if (!action.href) {
|
|
2029
|
-
return /* @__PURE__ */ (0,
|
|
2030
|
-
|
|
2281
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2282
|
+
import_core32.Box,
|
|
2031
2283
|
{
|
|
2032
2284
|
component: "button",
|
|
2033
2285
|
type: "button",
|
|
@@ -2054,30 +2306,30 @@ function HeroAction({ action, variant }) {
|
|
|
2054
2306
|
return content;
|
|
2055
2307
|
}
|
|
2056
2308
|
function LoadingHero({ compact }) {
|
|
2057
|
-
return /* @__PURE__ */ (0,
|
|
2058
|
-
/* @__PURE__ */ (0,
|
|
2059
|
-
/* @__PURE__ */ (0,
|
|
2060
|
-
/* @__PURE__ */ (0,
|
|
2061
|
-
/* @__PURE__ */ (0,
|
|
2062
|
-
/* @__PURE__ */ (0,
|
|
2063
|
-
/* @__PURE__ */ (0,
|
|
2064
|
-
/* @__PURE__ */ (0,
|
|
2065
|
-
/* @__PURE__ */ (0,
|
|
2309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Paper, { withBorder: true, radius: "xl", p: compact ? "lg" : "xl", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core32.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
2310
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core32.Stack, { gap: "md", children: [
|
|
2311
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Skeleton, { height: 16, width: 96, radius: "xl" }),
|
|
2312
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Skeleton, { height: 48, width: "90%", radius: "md" }),
|
|
2313
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Skeleton, { height: 18, width: "100%", radius: "md" }),
|
|
2314
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Skeleton, { height: 18, width: "82%", radius: "md" }),
|
|
2315
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core32.Group, { children: [
|
|
2316
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Skeleton, { height: 40, width: 140, radius: "md" }),
|
|
2317
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Skeleton, { height: 40, width: 140, radius: "md" })
|
|
2066
2318
|
] })
|
|
2067
2319
|
] }) }),
|
|
2068
|
-
/* @__PURE__ */ (0,
|
|
2320
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Skeleton, { radius: "lg" }) }) })
|
|
2069
2321
|
] }) });
|
|
2070
2322
|
}
|
|
2071
2323
|
function MediaFallback() {
|
|
2072
|
-
return /* @__PURE__ */ (0,
|
|
2073
|
-
|
|
2324
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2325
|
+
import_core32.ThemeIcon,
|
|
2074
2326
|
{
|
|
2075
2327
|
size: "100%",
|
|
2076
2328
|
radius: "lg",
|
|
2077
2329
|
color: "gray",
|
|
2078
2330
|
variant: "light",
|
|
2079
2331
|
"aria-label": "Hero media is unavailable",
|
|
2080
|
-
children: /* @__PURE__ */ (0,
|
|
2332
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(GdsIcons.Gallery, { size: "2.5rem" })
|
|
2081
2333
|
}
|
|
2082
2334
|
) });
|
|
2083
2335
|
}
|
|
@@ -2097,8 +2349,8 @@ function MediaFrame({
|
|
|
2097
2349
|
} else if (mediaFade === "soft-start") {
|
|
2098
2350
|
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%)";
|
|
2099
2351
|
}
|
|
2100
|
-
return /* @__PURE__ */ (0,
|
|
2101
|
-
|
|
2352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
2353
|
+
import_core32.Box,
|
|
2102
2354
|
{
|
|
2103
2355
|
component: "figure",
|
|
2104
2356
|
m: 0,
|
|
@@ -2111,9 +2363,9 @@ function MediaFrame({
|
|
|
2111
2363
|
},
|
|
2112
2364
|
"aria-label": mediaAlt,
|
|
2113
2365
|
children: [
|
|
2114
|
-
media ?? /* @__PURE__ */ (0,
|
|
2115
|
-
media && overlayBackground ? /* @__PURE__ */ (0,
|
|
2116
|
-
|
|
2366
|
+
media ?? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(MediaFallback, {}),
|
|
2367
|
+
media && overlayBackground ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2368
|
+
import_core32.Box,
|
|
2117
2369
|
{
|
|
2118
2370
|
"aria-hidden": true,
|
|
2119
2371
|
style: {
|
|
@@ -2146,7 +2398,7 @@ function EditorialHero({
|
|
|
2146
2398
|
classNames
|
|
2147
2399
|
}) {
|
|
2148
2400
|
if (loading) {
|
|
2149
|
-
return /* @__PURE__ */ (0,
|
|
2401
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(LoadingHero, { compact });
|
|
2150
2402
|
}
|
|
2151
2403
|
const stackAlign = align === "center" ? "center" : "flex-start";
|
|
2152
2404
|
const textAlign = align === "center" ? "center" : "left";
|
|
@@ -2154,15 +2406,15 @@ function EditorialHero({
|
|
|
2154
2406
|
const renderedActions = actions.slice(0, 3).map((action, index) => {
|
|
2155
2407
|
const resolved = resolveActionVariant(action, index, seenPrimary);
|
|
2156
2408
|
seenPrimary = resolved.seenPrimary;
|
|
2157
|
-
return /* @__PURE__ */ (0,
|
|
2409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
|
|
2158
2410
|
});
|
|
2159
|
-
const textSlot = /* @__PURE__ */ (0,
|
|
2160
|
-
/* @__PURE__ */ (0,
|
|
2161
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
2162
|
-
/* @__PURE__ */ (0,
|
|
2163
|
-
description ? /* @__PURE__ */ (0,
|
|
2411
|
+
const textSlot = /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core32.Stack, { gap: compact ? "md" : "lg", justify: "center", h: "100%", className: classNames?.content, children: [
|
|
2412
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core32.Stack, { gap: "sm", align: stackAlign, children: [
|
|
2413
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Text, { size: "sm", fw: 700, c: "dimmed", ta: textAlign, children: eyebrow }) : null,
|
|
2414
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Title, { order: 1, maw: 760, ta: textAlign, children: title }),
|
|
2415
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Text, { size: compact ? "md" : "lg", c: "dimmed", maw: 720, ta: textAlign, children: description }) : null
|
|
2164
2416
|
] }),
|
|
2165
|
-
renderedActions.length ? /* @__PURE__ */ (0,
|
|
2417
|
+
renderedActions.length ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Box, { className: classNames?.actions, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2166
2418
|
CtaButtonGroup,
|
|
2167
2419
|
{
|
|
2168
2420
|
primary: renderedActions[0],
|
|
@@ -2170,8 +2422,8 @@ function EditorialHero({
|
|
|
2170
2422
|
tertiary: renderedActions[2]
|
|
2171
2423
|
}
|
|
2172
2424
|
) }) : null,
|
|
2173
|
-
meta.length ? /* @__PURE__ */ (0,
|
|
2174
|
-
|
|
2425
|
+
meta.length ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Group, { gap: "sm", wrap: "wrap", "aria-label": "Supporting details", className: classNames?.meta, children: meta.map((item) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
2426
|
+
import_core32.Group,
|
|
2175
2427
|
{
|
|
2176
2428
|
gap: 6,
|
|
2177
2429
|
px: "sm",
|
|
@@ -2182,17 +2434,17 @@ function EditorialHero({
|
|
|
2182
2434
|
},
|
|
2183
2435
|
children: [
|
|
2184
2436
|
item.icon,
|
|
2185
|
-
/* @__PURE__ */ (0,
|
|
2437
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Text, { size: "sm", c: "dimmed", children: item.label })
|
|
2186
2438
|
]
|
|
2187
2439
|
},
|
|
2188
2440
|
item.id
|
|
2189
2441
|
)) }) : null
|
|
2190
2442
|
] });
|
|
2191
|
-
const mediaSlot = error ? /* @__PURE__ */ (0,
|
|
2192
|
-
const textCol = /* @__PURE__ */ (0,
|
|
2193
|
-
const mediaCol = /* @__PURE__ */ (0,
|
|
2194
|
-
return /* @__PURE__ */ (0,
|
|
2195
|
-
|
|
2443
|
+
const mediaSlot = error ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(AccentPanel, { tone: "red", variant: "soft-outline", title: "Media unavailable", children: error }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(MediaFrame, { media, mediaAlt, mediaFade, className: classNames?.media });
|
|
2444
|
+
const textCol = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 1, md: mediaPosition === "left" ? 2 : 1 }, children: textSlot });
|
|
2445
|
+
const mediaCol = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core32.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 2, md: mediaPosition === "left" ? 1 : 2 }, children: mediaSlot });
|
|
2446
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2447
|
+
import_core32.Paper,
|
|
2196
2448
|
{
|
|
2197
2449
|
component: "section",
|
|
2198
2450
|
withBorder: true,
|
|
@@ -2200,7 +2452,7 @@ function EditorialHero({
|
|
|
2200
2452
|
p: compact ? "lg" : "xl",
|
|
2201
2453
|
className: classNames?.root,
|
|
2202
2454
|
style: surfaceVariant === "flat-public" ? { boxShadow: "none" } : void 0,
|
|
2203
|
-
children: /* @__PURE__ */ (0,
|
|
2455
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core32.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
2204
2456
|
textCol,
|
|
2205
2457
|
mediaCol
|
|
2206
2458
|
] })
|
|
@@ -2209,19 +2461,19 @@ function EditorialHero({
|
|
|
2209
2461
|
}
|
|
2210
2462
|
|
|
2211
2463
|
// src/FeatureBand.tsx
|
|
2212
|
-
var
|
|
2213
|
-
var
|
|
2464
|
+
var import_core33 = require("@mantine/core");
|
|
2465
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2214
2466
|
function FeatureBandSkeleton({
|
|
2215
2467
|
columns = 3,
|
|
2216
2468
|
bordered = true,
|
|
2217
2469
|
variant = "default"
|
|
2218
2470
|
}) {
|
|
2219
|
-
return /* @__PURE__ */ (0,
|
|
2220
|
-
/* @__PURE__ */ (0,
|
|
2221
|
-
/* @__PURE__ */ (0,
|
|
2222
|
-
/* @__PURE__ */ (0,
|
|
2223
|
-
/* @__PURE__ */ (0,
|
|
2224
|
-
/* @__PURE__ */ (0,
|
|
2471
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core33.Stack, { gap: "md", children: [
|
|
2472
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Skeleton, { height: variant === "process" ? 28 : 42, width: variant === "process" ? 72 : 42, radius: "xl" }),
|
|
2473
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core33.Stack, { gap: "xs", children: [
|
|
2474
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Skeleton, { height: 20, width: "75%", radius: "md" }),
|
|
2475
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Skeleton, { height: 14, width: "100%", radius: "md" }),
|
|
2476
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Skeleton, { height: 14, width: "82%", radius: "md" })
|
|
2225
2477
|
] })
|
|
2226
2478
|
] }) }, index)) });
|
|
2227
2479
|
}
|
|
@@ -2234,10 +2486,10 @@ function FeatureBand({
|
|
|
2234
2486
|
variant = "default"
|
|
2235
2487
|
}) {
|
|
2236
2488
|
if (loading) {
|
|
2237
|
-
return /* @__PURE__ */ (0,
|
|
2489
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(FeatureBandSkeleton, { columns, bordered, variant });
|
|
2238
2490
|
}
|
|
2239
2491
|
if (!items.length) {
|
|
2240
|
-
return emptyState ? /* @__PURE__ */ (0,
|
|
2492
|
+
return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2241
2493
|
EmptyState,
|
|
2242
2494
|
{
|
|
2243
2495
|
title: "No supporting details available",
|
|
@@ -2245,9 +2497,9 @@ function FeatureBand({
|
|
|
2245
2497
|
}
|
|
2246
2498
|
);
|
|
2247
2499
|
}
|
|
2248
|
-
return /* @__PURE__ */ (0,
|
|
2249
|
-
variant === "process" ? /* @__PURE__ */ (0,
|
|
2250
|
-
|
|
2500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Box, { component: "section", "aria-label": "Supporting features", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core33.Stack, { gap: "md", children: [
|
|
2501
|
+
variant === "process" ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2502
|
+
import_core33.Text,
|
|
2251
2503
|
{
|
|
2252
2504
|
fw: 800,
|
|
2253
2505
|
size: "sm",
|
|
@@ -2259,31 +2511,31 @@ function FeatureBand({
|
|
|
2259
2511
|
},
|
|
2260
2512
|
children: item.stepLabel ?? `Step ${index + 1}`
|
|
2261
2513
|
}
|
|
2262
|
-
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ (0,
|
|
2263
|
-
/* @__PURE__ */ (0,
|
|
2264
|
-
/* @__PURE__ */ (0,
|
|
2265
|
-
item.description ? /* @__PURE__ */ (0,
|
|
2266
|
-
item.meta ? /* @__PURE__ */ (0,
|
|
2514
|
+
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "violet", children: item.icon }) }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "gray", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(GdsIcons.Info, { size: "1.25rem" }) }) }),
|
|
2515
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core33.Stack, { gap: "xs", children: [
|
|
2516
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Title, { order: 4, children: item.title }),
|
|
2517
|
+
item.description ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Text, { c: "dimmed", children: item.description }) : null,
|
|
2518
|
+
item.meta ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core33.Text, { size: "sm", c: "dimmed", children: item.meta }) : null
|
|
2267
2519
|
] })
|
|
2268
2520
|
] }) }, item.id)) }) });
|
|
2269
2521
|
}
|
|
2270
2522
|
|
|
2271
2523
|
// src/MapPanel.tsx
|
|
2272
|
-
var
|
|
2524
|
+
var import_core35 = require("@mantine/core");
|
|
2273
2525
|
|
|
2274
2526
|
// src/ActionBar.tsx
|
|
2275
|
-
var
|
|
2276
|
-
var
|
|
2527
|
+
var import_core34 = require("@mantine/core");
|
|
2528
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2277
2529
|
function renderSemanticAction(action, slot, vocabularyPacks) {
|
|
2278
2530
|
const { action: actionId, variant, ariaLabel, ...props } = action;
|
|
2279
2531
|
const fallbackVariant = slot === "primary" ? "filled" : slot === "secondary" ? "default" : "subtle";
|
|
2280
2532
|
const config = resolveSemanticActionConfig(actionId, vocabularyPacks);
|
|
2281
2533
|
const Icon = config.icon;
|
|
2282
2534
|
const label = getSemanticActionLabel(actionId, void 0, vocabularyPacks);
|
|
2283
|
-
return /* @__PURE__ */ (0,
|
|
2284
|
-
|
|
2535
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2536
|
+
import_core34.Button,
|
|
2285
2537
|
{
|
|
2286
|
-
leftSection: /* @__PURE__ */ (0,
|
|
2538
|
+
leftSection: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { size: "1rem", stroke: 1.75 }),
|
|
2287
2539
|
"aria-label": ariaLabel ?? label,
|
|
2288
2540
|
variant: variant ?? fallbackVariant,
|
|
2289
2541
|
...props,
|
|
@@ -2300,23 +2552,23 @@ function ActionBar({
|
|
|
2300
2552
|
gap = "sm",
|
|
2301
2553
|
vocabularyPacks = []
|
|
2302
2554
|
}) {
|
|
2303
|
-
return /* @__PURE__ */ (0,
|
|
2304
|
-
/* @__PURE__ */ (0,
|
|
2555
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core34.Stack, { gap, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core34.Group, { justify: "space-between", align: "center", gap, wrap: "wrap", children: [
|
|
2556
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core34.Group, { gap, wrap: "wrap", children: [
|
|
2305
2557
|
secondary.map((action) => renderSemanticAction(action, "secondary", vocabularyPacks)),
|
|
2306
2558
|
tertiary.map((action) => renderSemanticAction(action, "tertiary", vocabularyPacks))
|
|
2307
2559
|
] }),
|
|
2308
|
-
/* @__PURE__ */ (0,
|
|
2560
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core34.Group, { gap, wrap: "wrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
2309
2561
|
iconOnly.map(({ action, ariaLabel, ...props }) => {
|
|
2310
2562
|
const config = resolveSemanticActionConfig(action, vocabularyPacks);
|
|
2311
2563
|
const Icon = config.icon;
|
|
2312
|
-
return /* @__PURE__ */ (0,
|
|
2313
|
-
|
|
2564
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2565
|
+
import_core34.ActionIcon,
|
|
2314
2566
|
{
|
|
2315
2567
|
variant: "subtle",
|
|
2316
2568
|
size: "lg",
|
|
2317
2569
|
"aria-label": ariaLabel ?? getSemanticActionLabel(action, void 0, vocabularyPacks),
|
|
2318
2570
|
...props,
|
|
2319
|
-
children: /* @__PURE__ */ (0,
|
|
2571
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { size: "1rem", stroke: 1.75 })
|
|
2320
2572
|
},
|
|
2321
2573
|
`icon-${action}`
|
|
2322
2574
|
);
|
|
@@ -2327,7 +2579,7 @@ function ActionBar({
|
|
|
2327
2579
|
}
|
|
2328
2580
|
|
|
2329
2581
|
// src/MapPanel.tsx
|
|
2330
|
-
var
|
|
2582
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2331
2583
|
function MapPanel({
|
|
2332
2584
|
title,
|
|
2333
2585
|
description,
|
|
@@ -2343,7 +2595,7 @@ function MapPanel({
|
|
|
2343
2595
|
}) {
|
|
2344
2596
|
let body;
|
|
2345
2597
|
if (loading) {
|
|
2346
|
-
body = /* @__PURE__ */ (0,
|
|
2598
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
2347
2599
|
StateBlock,
|
|
2348
2600
|
{
|
|
2349
2601
|
variant: "loading",
|
|
@@ -2353,9 +2605,9 @@ function MapPanel({
|
|
|
2353
2605
|
}
|
|
2354
2606
|
);
|
|
2355
2607
|
} else if (error) {
|
|
2356
|
-
body = /* @__PURE__ */ (0,
|
|
2608
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(StateBlock, { variant: "error", title: "Map unavailable", description: error, compact: true });
|
|
2357
2609
|
} else if (!iframeSrc && !renderMap) {
|
|
2358
|
-
body = /* @__PURE__ */ (0,
|
|
2610
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
2359
2611
|
StateBlock,
|
|
2360
2612
|
{
|
|
2361
2613
|
variant: "empty",
|
|
@@ -2365,9 +2617,9 @@ function MapPanel({
|
|
|
2365
2617
|
}
|
|
2366
2618
|
);
|
|
2367
2619
|
} else if (renderMap) {
|
|
2368
|
-
body = /* @__PURE__ */ (0,
|
|
2620
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core35.Box, { style: { minHeight }, children: renderMap() });
|
|
2369
2621
|
} else {
|
|
2370
|
-
body = /* @__PURE__ */ (0,
|
|
2622
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core35.AspectRatio, { ratio: 16 / 9, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
2371
2623
|
"iframe",
|
|
2372
2624
|
{
|
|
2373
2625
|
src: iframeSrc,
|
|
@@ -2379,21 +2631,21 @@ function MapPanel({
|
|
|
2379
2631
|
}
|
|
2380
2632
|
) });
|
|
2381
2633
|
}
|
|
2382
|
-
return /* @__PURE__ */ (0,
|
|
2383
|
-
/* @__PURE__ */ (0,
|
|
2384
|
-
/* @__PURE__ */ (0,
|
|
2385
|
-
/* @__PURE__ */ (0,
|
|
2386
|
-
description ? /* @__PURE__ */ (0,
|
|
2634
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core35.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core35.Stack, { gap: "md", children: [
|
|
2635
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core35.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2636
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core35.Stack, { gap: 4, children: [
|
|
2637
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core35.Title, { order: 3, children: title }),
|
|
2638
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core35.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
2387
2639
|
] }),
|
|
2388
|
-
actions ? /* @__PURE__ */ (0,
|
|
2640
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ActionBar, { ...actions }) : null
|
|
2389
2641
|
] }),
|
|
2390
2642
|
body
|
|
2391
2643
|
] }) });
|
|
2392
2644
|
}
|
|
2393
2645
|
|
|
2394
2646
|
// src/PublicFlowShell.tsx
|
|
2395
|
-
var
|
|
2396
|
-
var
|
|
2647
|
+
var import_core36 = require("@mantine/core");
|
|
2648
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2397
2649
|
var stageTone = {
|
|
2398
2650
|
idle: { label: "Idle", color: "gray" },
|
|
2399
2651
|
loading: { label: "Loading", color: "blue" },
|
|
@@ -2445,7 +2697,7 @@ function PublicFlowShell({
|
|
|
2445
2697
|
const actionBar = toActionBar(stage.actions);
|
|
2446
2698
|
let body = stage.body;
|
|
2447
2699
|
if (stage.status === "loading") {
|
|
2448
|
-
body = /* @__PURE__ */ (0,
|
|
2700
|
+
body = /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2449
2701
|
StateBlock,
|
|
2450
2702
|
{
|
|
2451
2703
|
variant: "loading",
|
|
@@ -2454,7 +2706,7 @@ function PublicFlowShell({
|
|
|
2454
2706
|
}
|
|
2455
2707
|
);
|
|
2456
2708
|
} else if (stage.status === "error") {
|
|
2457
|
-
body = errorState ?? /* @__PURE__ */ (0,
|
|
2709
|
+
body = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2458
2710
|
StateBlock,
|
|
2459
2711
|
{
|
|
2460
2712
|
variant: "error",
|
|
@@ -2463,7 +2715,7 @@ function PublicFlowShell({
|
|
|
2463
2715
|
}
|
|
2464
2716
|
);
|
|
2465
2717
|
} else if (!stage.body && !hardwareSurface) {
|
|
2466
|
-
body = emptyState ?? /* @__PURE__ */ (0,
|
|
2718
|
+
body = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2467
2719
|
EmptyState,
|
|
2468
2720
|
{
|
|
2469
2721
|
title: "No stage content available",
|
|
@@ -2471,29 +2723,29 @@ function PublicFlowShell({
|
|
|
2471
2723
|
}
|
|
2472
2724
|
);
|
|
2473
2725
|
}
|
|
2474
|
-
return /* @__PURE__ */ (0,
|
|
2475
|
-
/* @__PURE__ */ (0,
|
|
2476
|
-
/* @__PURE__ */ (0,
|
|
2477
|
-
eyebrow ? /* @__PURE__ */ (0,
|
|
2478
|
-
/* @__PURE__ */ (0,
|
|
2479
|
-
/* @__PURE__ */ (0,
|
|
2480
|
-
/* @__PURE__ */ (0,
|
|
2726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core36.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core36.Stack, { gap: "lg", children: [
|
|
2727
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core36.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2728
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core36.Stack, { gap: 4, children: [
|
|
2729
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core36.Text, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
2730
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core36.Group, { gap: "sm", wrap: "wrap", children: [
|
|
2731
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core36.Title, { order: 2, children: stage.title }),
|
|
2732
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core36.Badge, { variant: "light", color: tone.color, children: tone.label })
|
|
2481
2733
|
] }),
|
|
2482
|
-
stage.description ? /* @__PURE__ */ (0,
|
|
2734
|
+
stage.description ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core36.Text, { size: "sm", c: "dimmed", children: stage.description }) : null
|
|
2483
2735
|
] }),
|
|
2484
2736
|
exitAction
|
|
2485
2737
|
] }),
|
|
2486
|
-
stage.notice ? /* @__PURE__ */ (0,
|
|
2738
|
+
stage.notice ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core36.Text, { size: "sm", c: "dimmed", children: stage.notice }) : null,
|
|
2487
2739
|
body,
|
|
2488
2740
|
hardwareSurface,
|
|
2489
2741
|
stage.aside,
|
|
2490
|
-
actionBar ? /* @__PURE__ */ (0,
|
|
2742
|
+
actionBar ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ActionBar, { ...actionBar }) : null
|
|
2491
2743
|
] }) });
|
|
2492
2744
|
}
|
|
2493
2745
|
|
|
2494
2746
|
// src/PlaybackSurface.tsx
|
|
2495
|
-
var
|
|
2496
|
-
var
|
|
2747
|
+
var import_core37 = require("@mantine/core");
|
|
2748
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2497
2749
|
var stateTone = {
|
|
2498
2750
|
loading: { label: "Loading", color: "blue" },
|
|
2499
2751
|
ready: { label: "Ready", color: "teal" },
|
|
@@ -2516,7 +2768,7 @@ function PlaybackSurface({
|
|
|
2516
2768
|
const tone = stateTone[state];
|
|
2517
2769
|
let content;
|
|
2518
2770
|
if (state === "loading") {
|
|
2519
|
-
content = /* @__PURE__ */ (0,
|
|
2771
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2520
2772
|
StateBlock,
|
|
2521
2773
|
{
|
|
2522
2774
|
variant: "loading",
|
|
@@ -2525,7 +2777,7 @@ function PlaybackSurface({
|
|
|
2525
2777
|
}
|
|
2526
2778
|
);
|
|
2527
2779
|
} else if (state === "empty") {
|
|
2528
|
-
content = emptyState ?? /* @__PURE__ */ (0,
|
|
2780
|
+
content = emptyState ?? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2529
2781
|
EmptyState,
|
|
2530
2782
|
{
|
|
2531
2783
|
title: "No playback content available",
|
|
@@ -2533,7 +2785,7 @@ function PlaybackSurface({
|
|
|
2533
2785
|
}
|
|
2534
2786
|
);
|
|
2535
2787
|
} else if (state === "error") {
|
|
2536
|
-
content = errorState ?? /* @__PURE__ */ (0,
|
|
2788
|
+
content = errorState ?? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2537
2789
|
StateBlock,
|
|
2538
2790
|
{
|
|
2539
2791
|
variant: "error",
|
|
@@ -2542,23 +2794,23 @@ function PlaybackSurface({
|
|
|
2542
2794
|
}
|
|
2543
2795
|
);
|
|
2544
2796
|
} else {
|
|
2545
|
-
content = /* @__PURE__ */ (0,
|
|
2797
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core37.Stack, { gap: "md", children: [
|
|
2546
2798
|
media,
|
|
2547
2799
|
overlays
|
|
2548
2800
|
] });
|
|
2549
2801
|
}
|
|
2550
|
-
return /* @__PURE__ */ (0,
|
|
2551
|
-
title || statusMessage || controls ? /* @__PURE__ */ (0,
|
|
2552
|
-
/* @__PURE__ */ (0,
|
|
2553
|
-
title ? /* @__PURE__ */ (0,
|
|
2554
|
-
statusMessage ? /* @__PURE__ */ (0,
|
|
2802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core37.Paper, { withBorder: true, radius: "xl", p: "lg", "data-playback-mode": mode, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core37.Stack, { gap: "md", children: [
|
|
2803
|
+
title || statusMessage || controls ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core37.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2804
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core37.Stack, { gap: 4, children: [
|
|
2805
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core37.Title, { order: 3, children: title }) : null,
|
|
2806
|
+
statusMessage ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core37.Text, { size: "sm", c: "dimmed", children: statusMessage }) : null
|
|
2555
2807
|
] }),
|
|
2556
|
-
/* @__PURE__ */ (0,
|
|
2557
|
-
/* @__PURE__ */ (0,
|
|
2808
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core37.Group, { gap: "sm", align: "center", wrap: "wrap", children: [
|
|
2809
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core37.Badge, { variant: "light", color: tone.color, children: tone.label }),
|
|
2558
2810
|
controls
|
|
2559
2811
|
] })
|
|
2560
2812
|
] }) : null,
|
|
2561
|
-
state === "degraded" ? /* @__PURE__ */ (0,
|
|
2813
|
+
state === "degraded" ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2562
2814
|
StateBlock,
|
|
2563
2815
|
{
|
|
2564
2816
|
variant: "info",
|
|
@@ -2572,22 +2824,22 @@ function PlaybackSurface({
|
|
|
2572
2824
|
}
|
|
2573
2825
|
|
|
2574
2826
|
// src/MediaField.tsx
|
|
2575
|
-
var
|
|
2827
|
+
var import_core39 = require("@mantine/core");
|
|
2576
2828
|
|
|
2577
2829
|
// src/FormField.tsx
|
|
2578
|
-
var
|
|
2579
|
-
var
|
|
2830
|
+
var import_core38 = require("@mantine/core");
|
|
2831
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2580
2832
|
function FormField({ label, description, error, children }) {
|
|
2581
|
-
return /* @__PURE__ */ (0,
|
|
2582
|
-
typeof label === "string" ? /* @__PURE__ */ (0,
|
|
2583
|
-
description ? typeof description === "string" ? /* @__PURE__ */ (0,
|
|
2833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core38.Box, { component: "label", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_core38.Stack, { gap: 4, children: [
|
|
2834
|
+
typeof label === "string" ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core38.Text, { size: "xs", fw: 600, c: "dimmed", children: label }) : label,
|
|
2835
|
+
description ? typeof description === "string" ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core38.Text, { size: "xs", c: "dimmed", children: description }) : description : null,
|
|
2584
2836
|
children,
|
|
2585
|
-
error ? typeof error === "string" ? /* @__PURE__ */ (0,
|
|
2837
|
+
error ? typeof error === "string" ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core38.Text, { size: "xs", c: "red.7", children: error }) : error : null
|
|
2586
2838
|
] }) });
|
|
2587
2839
|
}
|
|
2588
2840
|
|
|
2589
2841
|
// src/MediaField.tsx
|
|
2590
|
-
var
|
|
2842
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2591
2843
|
var stateLabels = {
|
|
2592
2844
|
empty: { label: "Empty", color: "gray" },
|
|
2593
2845
|
"drag-active": { label: "Drop to select", color: "violet" },
|
|
@@ -2628,44 +2880,44 @@ function MediaField({
|
|
|
2628
2880
|
}) {
|
|
2629
2881
|
const resolvedState = readonly ? "readonly" : state;
|
|
2630
2882
|
const stateBadge = stateLabels[resolvedState];
|
|
2631
|
-
const resolvedRemoveAction = removeAction ?? (!readonly && onRemove ? /* @__PURE__ */ (0,
|
|
2632
|
-
const resolvedResetAction = resetAction ?? (!readonly && onReset ? /* @__PURE__ */ (0,
|
|
2883
|
+
const resolvedRemoveAction = removeAction ?? (!readonly && onRemove ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Button, { type: "button", variant: "light", color: "red", onClick: onRemove, children: "Remove" }) : null);
|
|
2884
|
+
const resolvedResetAction = resetAction ?? (!readonly && onReset ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Button, { type: "button", variant: "default", onClick: onReset, children: "Reset" }) : null);
|
|
2633
2885
|
const boundedProgress = typeof progress === "number" ? Math.max(0, Math.min(100, progress)) : void 0;
|
|
2634
|
-
return /* @__PURE__ */ (0,
|
|
2886
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2635
2887
|
FormField,
|
|
2636
2888
|
{
|
|
2637
2889
|
label,
|
|
2638
2890
|
description,
|
|
2639
2891
|
error,
|
|
2640
|
-
children: /* @__PURE__ */ (0,
|
|
2641
|
-
/* @__PURE__ */ (0,
|
|
2642
|
-
/* @__PURE__ */ (0,
|
|
2892
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core39.Stack, { gap: "md", children: [
|
|
2893
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Group, { justify: "flex-end", align: "center", gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core39.Group, { gap: "xs", justify: "flex-end", children: [
|
|
2894
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label }),
|
|
2643
2895
|
statusAction
|
|
2644
2896
|
] }) }),
|
|
2645
2897
|
preview ? preview : null,
|
|
2646
|
-
typeof boundedProgress === "number" ? /* @__PURE__ */ (0,
|
|
2647
|
-
/* @__PURE__ */ (0,
|
|
2648
|
-
/* @__PURE__ */ (0,
|
|
2898
|
+
typeof boundedProgress === "number" ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core39.Stack, { gap: 4, children: [
|
|
2899
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Progress, { value: boundedProgress, "aria-label": "Upload progress" }),
|
|
2900
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core39.Text, { size: "xs", c: "dimmed", children: [
|
|
2649
2901
|
boundedProgress,
|
|
2650
2902
|
"% complete"
|
|
2651
2903
|
] })
|
|
2652
2904
|
] }) : null,
|
|
2653
|
-
(uploadControl || urlInput) && !readonly ? /* @__PURE__ */ (0,
|
|
2654
|
-
/* @__PURE__ */ (0,
|
|
2655
|
-
/* @__PURE__ */ (0,
|
|
2905
|
+
(uploadControl || urlInput) && !readonly ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
2906
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Divider, {}),
|
|
2907
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core39.Stack, { gap: "sm", style: mode === "split" ? { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))" } : void 0, children: [
|
|
2656
2908
|
uploadControl,
|
|
2657
2909
|
urlInput
|
|
2658
2910
|
] })
|
|
2659
2911
|
] }) : null,
|
|
2660
|
-
value ? /* @__PURE__ */ (0,
|
|
2661
|
-
helpText ? /* @__PURE__ */ (0,
|
|
2662
|
-
acceptedTypes || maxSize ? /* @__PURE__ */ (0,
|
|
2663
|
-
acceptedTypes ? /* @__PURE__ */ (0,
|
|
2664
|
-
maxSize ? /* @__PURE__ */ (0,
|
|
2912
|
+
value ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Text, { size: "sm", c: "dimmed", style: { wordBreak: "break-all" }, children: value }) : null,
|
|
2913
|
+
helpText ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Text, { size: "sm", c: "dimmed", children: helpText }) : null,
|
|
2914
|
+
acceptedTypes || maxSize ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core39.Group, { gap: "xs", wrap: "wrap", children: [
|
|
2915
|
+
acceptedTypes ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Badge, { variant: "outline", color: "gray", children: acceptedTypes }) : null,
|
|
2916
|
+
maxSize ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Badge, { variant: "outline", color: "gray", children: maxSize }) : null
|
|
2665
2917
|
] }) : null,
|
|
2666
|
-
policyText ? /* @__PURE__ */ (0,
|
|
2918
|
+
policyText ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_core39.Text, { size: "sm", c: error ? "red.7" : "dimmed", children: policyText }) : null,
|
|
2667
2919
|
typeof error !== "string" && error ? error : null,
|
|
2668
|
-
replaceAction || resolvedRemoveAction || resolvedResetAction || retryAction ? /* @__PURE__ */ (0,
|
|
2920
|
+
replaceAction || resolvedRemoveAction || resolvedResetAction || retryAction ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_core39.Group, { gap: "sm", children: [
|
|
2669
2921
|
replaceAction,
|
|
2670
2922
|
resolvedResetAction,
|
|
2671
2923
|
retryAction,
|
|
@@ -2677,31 +2929,31 @@ function MediaField({
|
|
|
2677
2929
|
}
|
|
2678
2930
|
|
|
2679
2931
|
// src/MediaCard.tsx
|
|
2680
|
-
var
|
|
2681
|
-
var
|
|
2932
|
+
var import_core40 = require("@mantine/core");
|
|
2933
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
2682
2934
|
function MediaCard({ title, image, description, status, overlay, actions = [] }) {
|
|
2683
2935
|
const EyeIcon = GdsIcons.Eye;
|
|
2684
|
-
return /* @__PURE__ */ (0,
|
|
2685
|
-
/* @__PURE__ */ (0,
|
|
2936
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core40.Card, { withBorder: true, radius: "lg", padding: "md", children: [
|
|
2937
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core40.Card.Section, { pos: "relative", children: [
|
|
2686
2938
|
image,
|
|
2687
|
-
overlay ? /* @__PURE__ */ (0,
|
|
2939
|
+
overlay ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { style: { position: "absolute", inset: 12, display: "flex", justifyContent: "flex-end", alignItems: "flex-start" }, children: overlay }) : null
|
|
2688
2940
|
] }),
|
|
2689
|
-
/* @__PURE__ */ (0,
|
|
2690
|
-
/* @__PURE__ */ (0,
|
|
2691
|
-
/* @__PURE__ */ (0,
|
|
2692
|
-
/* @__PURE__ */ (0,
|
|
2693
|
-
description ? /* @__PURE__ */ (0,
|
|
2941
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core40.Stack, { gap: "sm", mt: "md", children: [
|
|
2942
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core40.Group, { justify: "space-between", align: "flex-start", children: [
|
|
2943
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_core40.Stack, { gap: 4, children: [
|
|
2944
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core40.Title, { order: 4, children: title }),
|
|
2945
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core40.Text, { size: "sm", c: "dimmed", lineClamp: 2, children: description }) : null
|
|
2694
2946
|
] }),
|
|
2695
|
-
status ? /* @__PURE__ */ (0,
|
|
2947
|
+
status ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core40.Badge, { variant: "light", children: status }) : null
|
|
2696
2948
|
] }),
|
|
2697
|
-
actions.length ? /* @__PURE__ */ (0,
|
|
2949
|
+
actions.length ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core40.Group, { justify: "flex-end", gap: "xs", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_core40.ActionIcon, { variant: "light", "aria-label": action.label, onClick: action.onClick, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(EyeIcon, { size: "1rem" }) }, action.label)) }) : null
|
|
2698
2950
|
] })
|
|
2699
2951
|
] });
|
|
2700
2952
|
}
|
|
2701
2953
|
|
|
2702
2954
|
// src/AccessSummary.tsx
|
|
2703
|
-
var
|
|
2704
|
-
var
|
|
2955
|
+
var import_core41 = require("@mantine/core");
|
|
2956
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
2705
2957
|
var accessStateMeta = {
|
|
2706
2958
|
allowed: { label: "Allowed", color: "teal" },
|
|
2707
2959
|
blocked: { label: "Blocked", color: "red" },
|
|
@@ -2712,28 +2964,28 @@ var accessStateMeta = {
|
|
|
2712
2964
|
function AccessSummary({ title, roles, scope, blocked = false, state, owner, recoveryHint, description }) {
|
|
2713
2965
|
const resolvedState = state ?? (blocked ? "blocked" : "allowed");
|
|
2714
2966
|
const meta = accessStateMeta[resolvedState];
|
|
2715
|
-
return /* @__PURE__ */ (0,
|
|
2716
|
-
/* @__PURE__ */ (0,
|
|
2717
|
-
/* @__PURE__ */ (0,
|
|
2718
|
-
/* @__PURE__ */ (0,
|
|
2967
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core41.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core41.Stack, { gap: "sm", children: [
|
|
2968
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core41.Group, { justify: "space-between", align: "center", children: [
|
|
2969
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core41.Title, { order: 4, children: title }),
|
|
2970
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core41.Badge, { color: meta.color, variant: "light", children: meta.label })
|
|
2719
2971
|
] }),
|
|
2720
|
-
/* @__PURE__ */ (0,
|
|
2721
|
-
scope ? /* @__PURE__ */ (0,
|
|
2972
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core41.Group, { gap: "xs", children: roles.map((role) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core41.Badge, { variant: "outline", children: role }, role)) }),
|
|
2973
|
+
scope ? /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core41.Text, { size: "sm", c: "dimmed", children: [
|
|
2722
2974
|
"Scope: ",
|
|
2723
2975
|
scope
|
|
2724
2976
|
] }) : null,
|
|
2725
|
-
owner ? /* @__PURE__ */ (0,
|
|
2977
|
+
owner ? /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_core41.Text, { size: "sm", c: "dimmed", children: [
|
|
2726
2978
|
"Owner: ",
|
|
2727
2979
|
owner
|
|
2728
2980
|
] }) : null,
|
|
2729
|
-
recoveryHint ? /* @__PURE__ */ (0,
|
|
2730
|
-
description ? /* @__PURE__ */ (0,
|
|
2981
|
+
recoveryHint ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core41.Text, { size: "sm", c: resolvedState === "allowed" ? "dimmed" : "red.7", children: recoveryHint }) : null,
|
|
2982
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_core41.Text, { size: "sm", children: description }) : null
|
|
2731
2983
|
] }) });
|
|
2732
2984
|
}
|
|
2733
2985
|
|
|
2734
2986
|
// src/PageHeader.tsx
|
|
2735
|
-
var
|
|
2736
|
-
var
|
|
2987
|
+
var import_core42 = require("@mantine/core");
|
|
2988
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
2737
2989
|
function PageHeader({
|
|
2738
2990
|
title,
|
|
2739
2991
|
description,
|
|
@@ -2744,19 +2996,19 @@ function PageHeader({
|
|
|
2744
2996
|
}) {
|
|
2745
2997
|
const resolvedDescription = description ?? subtitle;
|
|
2746
2998
|
const eyebrowProps = eyebrowVariant === "ornamental" ? { tt: "uppercase", style: { letterSpacing: "0.12em" } } : {};
|
|
2747
|
-
return /* @__PURE__ */ (0,
|
|
2748
|
-
/* @__PURE__ */ (0,
|
|
2749
|
-
eyebrow && /* @__PURE__ */ (0,
|
|
2750
|
-
/* @__PURE__ */ (0,
|
|
2751
|
-
resolvedDescription && /* @__PURE__ */ (0,
|
|
2999
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_core42.Group, { justify: "space-between", align: "flex-start", gap: "lg", wrap: "wrap", children: [
|
|
3000
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_core42.Stack, { gap: "xs", children: [
|
|
3001
|
+
eyebrow && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core42.Text, { size: "xs", fw: 700, c: "dimmed", ...eyebrowProps, children: eyebrow }),
|
|
3002
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core42.Title, { order: 1, children: title }),
|
|
3003
|
+
resolvedDescription && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core42.Text, { c: "dimmed", maw: 720, children: resolvedDescription })
|
|
2752
3004
|
] }),
|
|
2753
|
-
actions ? /* @__PURE__ */ (0,
|
|
3005
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_core42.Box, { children: actions }) : null
|
|
2754
3006
|
] });
|
|
2755
3007
|
}
|
|
2756
3008
|
|
|
2757
3009
|
// src/FilterDrawer.tsx
|
|
2758
|
-
var
|
|
2759
|
-
var
|
|
3010
|
+
var import_core43 = require("@mantine/core");
|
|
3011
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2760
3012
|
function FilterDrawer({
|
|
2761
3013
|
opened,
|
|
2762
3014
|
onClose,
|
|
@@ -2772,8 +3024,8 @@ function FilterDrawer({
|
|
|
2772
3024
|
}) {
|
|
2773
3025
|
const resolvedPrimaryAction = applyAction ?? primaryAction;
|
|
2774
3026
|
const resolvedSecondaryAction = resetAction ?? secondaryAction;
|
|
2775
|
-
return /* @__PURE__ */ (0,
|
|
2776
|
-
|
|
3027
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
3028
|
+
import_core43.Drawer,
|
|
2777
3029
|
{
|
|
2778
3030
|
opened,
|
|
2779
3031
|
onClose,
|
|
@@ -2781,11 +3033,11 @@ function FilterDrawer({
|
|
|
2781
3033
|
position: mode === "bottom-sheet" ? "bottom" : "right",
|
|
2782
3034
|
size: mode === "bottom-sheet" ? "auto" : "md",
|
|
2783
3035
|
radius: mode === "bottom-sheet" ? "xl" : void 0,
|
|
2784
|
-
children: /* @__PURE__ */ (0,
|
|
2785
|
-
description ? /* @__PURE__ */ (0,
|
|
3036
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_core43.Stack, { gap: "md", children: [
|
|
3037
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_core43.Text, { size: "sm", c: "dimmed", children: description }) : null,
|
|
2786
3038
|
children,
|
|
2787
|
-
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ (0,
|
|
2788
|
-
/* @__PURE__ */ (0,
|
|
3039
|
+
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_core43.Group, { justify: "space-between", mt: "md", children: [
|
|
3040
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_core43.Group, { gap: "sm", children: [
|
|
2789
3041
|
closeAction,
|
|
2790
3042
|
resolvedSecondaryAction
|
|
2791
3043
|
] }),
|
|
@@ -2797,8 +3049,8 @@ function FilterDrawer({
|
|
|
2797
3049
|
}
|
|
2798
3050
|
|
|
2799
3051
|
// src/PlaceholderPanel.tsx
|
|
2800
|
-
var
|
|
2801
|
-
var
|
|
3052
|
+
var import_core44 = require("@mantine/core");
|
|
3053
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
2802
3054
|
function PlaceholderPanel({
|
|
2803
3055
|
title,
|
|
2804
3056
|
description,
|
|
@@ -2808,16 +3060,16 @@ function PlaceholderPanel({
|
|
|
2808
3060
|
mode
|
|
2809
3061
|
}) {
|
|
2810
3062
|
if (mode === "live" && children) {
|
|
2811
|
-
return /* @__PURE__ */ (0,
|
|
3063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children });
|
|
2812
3064
|
}
|
|
2813
|
-
return /* @__PURE__ */ (0,
|
|
2814
|
-
badge ? /* @__PURE__ */ (0,
|
|
2815
|
-
/* @__PURE__ */ (0,
|
|
2816
|
-
/* @__PURE__ */ (0,
|
|
2817
|
-
/* @__PURE__ */ (0,
|
|
3065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_core44.Card, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_core44.Stack, { gap: "md", children: [
|
|
3066
|
+
badge ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_core44.Badge, { variant: "light", color: "blue", w: "fit-content", children: badge }) : null,
|
|
3067
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_core44.Stack, { gap: "xs", children: [
|
|
3068
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_core44.Title, { order: 4, children: title }),
|
|
3069
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_core44.Text, { c: "dimmed", children: description })
|
|
2818
3070
|
] }),
|
|
2819
|
-
footer ? /* @__PURE__ */ (0,
|
|
2820
|
-
/* @__PURE__ */ (0,
|
|
3071
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_core44.Text, { size: "sm", children: footer }) : null,
|
|
3072
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
2821
3073
|
StateBlock,
|
|
2822
3074
|
{
|
|
2823
3075
|
variant: "not-enough-data",
|
|
@@ -2830,8 +3082,8 @@ function PlaceholderPanel({
|
|
|
2830
3082
|
}
|
|
2831
3083
|
|
|
2832
3084
|
// src/SimpleDataTable.tsx
|
|
2833
|
-
var
|
|
2834
|
-
var
|
|
3085
|
+
var import_core45 = require("@mantine/core");
|
|
3086
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
2835
3087
|
function SimpleDataTable({
|
|
2836
3088
|
columns,
|
|
2837
3089
|
rows,
|
|
@@ -2842,23 +3094,23 @@ function SimpleDataTable({
|
|
|
2842
3094
|
getRowKey
|
|
2843
3095
|
}) {
|
|
2844
3096
|
if (error) {
|
|
2845
|
-
return /* @__PURE__ */ (0,
|
|
3097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
|
|
2846
3098
|
}
|
|
2847
3099
|
if (loading) {
|
|
2848
|
-
return /* @__PURE__ */ (0,
|
|
3100
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(StateBlock, { variant: "loading", title: "Loading data", description: "Please wait while the shared dataset is prepared.", compact: true });
|
|
2849
3101
|
}
|
|
2850
3102
|
if (!rows.length) {
|
|
2851
|
-
return /* @__PURE__ */ (0,
|
|
3103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
|
|
2852
3104
|
}
|
|
2853
|
-
return /* @__PURE__ */ (0,
|
|
2854
|
-
/* @__PURE__ */ (0,
|
|
2855
|
-
/* @__PURE__ */ (0,
|
|
3105
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_core45.ScrollArea, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_core45.Table, { striped: true, highlightOnHover: true, withTableBorder: true, withColumnBorders: true, children: [
|
|
3106
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_core45.Table.Thead, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_core45.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_core45.Table.Th, { children: column.header }, String(column.key))) }) }),
|
|
3107
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_core45.Table.Tbody, { children: rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_core45.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_core45.Table.Td, { children: column.render ? column.render(row) : String(row[column.key] ?? "") }, String(column.key))) }, getRowKey ? getRowKey(row, index) : index)) })
|
|
2856
3108
|
] }) });
|
|
2857
3109
|
}
|
|
2858
3110
|
|
|
2859
3111
|
// src/StatsSection.tsx
|
|
2860
|
-
var
|
|
2861
|
-
var
|
|
3112
|
+
var import_core46 = require("@mantine/core");
|
|
3113
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
2862
3114
|
function StatsSection({
|
|
2863
3115
|
title,
|
|
2864
3116
|
loading = false,
|
|
@@ -2870,11 +3122,11 @@ function StatsSection({
|
|
|
2870
3122
|
}) {
|
|
2871
3123
|
let content = children;
|
|
2872
3124
|
if (error) {
|
|
2873
|
-
content = /* @__PURE__ */ (0,
|
|
3125
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
|
|
2874
3126
|
} else if (loading) {
|
|
2875
|
-
content = /* @__PURE__ */ (0,
|
|
3127
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
|
|
2876
3128
|
} else if (belowThreshold) {
|
|
2877
|
-
content = /* @__PURE__ */ (0,
|
|
3129
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
2878
3130
|
StateBlock,
|
|
2879
3131
|
{
|
|
2880
3132
|
variant: "not-enough-data",
|
|
@@ -2884,17 +3136,17 @@ function StatsSection({
|
|
|
2884
3136
|
}
|
|
2885
3137
|
);
|
|
2886
3138
|
} else if (placeholder) {
|
|
2887
|
-
content = /* @__PURE__ */ (0,
|
|
3139
|
+
content = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
|
|
2888
3140
|
}
|
|
2889
|
-
return /* @__PURE__ */ (0,
|
|
2890
|
-
/* @__PURE__ */ (0,
|
|
3141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_core46.Stack, { gap: "md", children: [
|
|
3142
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_core46.Title, { order: 3, children: title }),
|
|
2891
3143
|
content
|
|
2892
3144
|
] });
|
|
2893
3145
|
}
|
|
2894
3146
|
|
|
2895
3147
|
// src/PeriodSelector.tsx
|
|
2896
|
-
var
|
|
2897
|
-
var
|
|
3148
|
+
var import_core47 = require("@mantine/core");
|
|
3149
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
2898
3150
|
function PeriodSelector({
|
|
2899
3151
|
label,
|
|
2900
3152
|
description,
|
|
@@ -2910,34 +3162,34 @@ function PeriodSelector({
|
|
|
2910
3162
|
disabled = false
|
|
2911
3163
|
}) {
|
|
2912
3164
|
const selectedOption = options.find((option) => option.value === value);
|
|
2913
|
-
return /* @__PURE__ */ (0,
|
|
2914
|
-
/* @__PURE__ */ (0,
|
|
3165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(FormField, { label, description, error, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_core47.Stack, { gap: "sm", children: [
|
|
3166
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2915
3167
|
"select",
|
|
2916
3168
|
{
|
|
2917
3169
|
"aria-label": typeof label === "string" ? label : "Reporting period",
|
|
2918
3170
|
value,
|
|
2919
3171
|
disabled,
|
|
2920
3172
|
onChange: (event) => onChange?.(event.currentTarget.value),
|
|
2921
|
-
children: options.map((option) => /* @__PURE__ */ (0,
|
|
3173
|
+
children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("option", { value: option.value, children: option.label }, option.value))
|
|
2922
3174
|
}
|
|
2923
3175
|
),
|
|
2924
|
-
/* @__PURE__ */ (0,
|
|
2925
|
-
timezone ? /* @__PURE__ */ (0,
|
|
3176
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_core47.Group, { gap: "xs", wrap: "wrap", children: [
|
|
3177
|
+
timezone ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_core47.Badge, { variant: "outline", color: "gray", children: [
|
|
2926
3178
|
"Timezone: ",
|
|
2927
3179
|
timezone
|
|
2928
3180
|
] }) : null,
|
|
2929
|
-
filtered ? /* @__PURE__ */ (0,
|
|
2930
|
-
stale ? /* @__PURE__ */ (0,
|
|
2931
|
-
scope ? /* @__PURE__ */ (0,
|
|
3181
|
+
filtered ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_core47.Badge, { variant: "light", color: "blue", children: "Filtered" }) : null,
|
|
3182
|
+
stale ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_core47.Badge, { variant: "light", color: "orange", children: "Stale data" }) : null,
|
|
3183
|
+
scope ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_core47.Badge, { variant: "outline", color: "gray", children: scope }) : null
|
|
2932
3184
|
] }),
|
|
2933
|
-
selectedOption?.description ? /* @__PURE__ */ (0,
|
|
2934
|
-
helperText ? /* @__PURE__ */ (0,
|
|
3185
|
+
selectedOption?.description ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_core47.Text, { size: "sm", c: "dimmed", children: selectedOption.description }) : null,
|
|
3186
|
+
helperText ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_core47.Text, { size: "sm", c: "dimmed", children: helperText }) : null
|
|
2935
3187
|
] }) });
|
|
2936
3188
|
}
|
|
2937
3189
|
|
|
2938
3190
|
// src/EvidencePanel.tsx
|
|
2939
|
-
var
|
|
2940
|
-
var
|
|
3191
|
+
var import_core48 = require("@mantine/core");
|
|
3192
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
2941
3193
|
var stateTone2 = {
|
|
2942
3194
|
current: { label: "Current", color: "teal" },
|
|
2943
3195
|
stale: { label: "Stale", color: "orange" },
|
|
@@ -2962,33 +3214,33 @@ function EvidencePanel({
|
|
|
2962
3214
|
}) {
|
|
2963
3215
|
const tone = stateTone2[state];
|
|
2964
3216
|
const isProblem = state === "error" || state === "permission-limited" || state === "stale" || state === "partial";
|
|
2965
|
-
return /* @__PURE__ */ (0,
|
|
2966
|
-
/* @__PURE__ */ (0,
|
|
2967
|
-
/* @__PURE__ */ (0,
|
|
2968
|
-
/* @__PURE__ */ (0,
|
|
2969
|
-
description ? /* @__PURE__ */ (0,
|
|
3217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_core48.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Stack, { gap: "md", children: [
|
|
3218
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
3219
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Stack, { gap: 4, children: [
|
|
3220
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_core48.Title, { order: 4, children: title }),
|
|
3221
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_core48.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
2970
3222
|
] }),
|
|
2971
|
-
/* @__PURE__ */ (0,
|
|
3223
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_core48.Badge, { variant: "light", color: tone.color, children: tone.label })
|
|
2972
3224
|
] }),
|
|
2973
|
-
/* @__PURE__ */ (0,
|
|
2974
|
-
source ? /* @__PURE__ */ (0,
|
|
3225
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Group, { gap: "xs", wrap: "wrap", children: [
|
|
3226
|
+
source ? /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Badge, { variant: "outline", color: "gray", children: [
|
|
2975
3227
|
"Source: ",
|
|
2976
3228
|
source
|
|
2977
3229
|
] }) : null,
|
|
2978
|
-
freshness ? /* @__PURE__ */ (0,
|
|
3230
|
+
freshness ? /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Badge, { variant: "outline", color: "gray", children: [
|
|
2979
3231
|
"Freshness: ",
|
|
2980
3232
|
freshness
|
|
2981
3233
|
] }) : null,
|
|
2982
|
-
confidence ? /* @__PURE__ */ (0,
|
|
3234
|
+
confidence ? /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Badge, { variant: "outline", color: "gray", children: [
|
|
2983
3235
|
"Confidence: ",
|
|
2984
3236
|
confidence
|
|
2985
3237
|
] }) : null,
|
|
2986
|
-
typeof evidenceCount === "number" ? /* @__PURE__ */ (0,
|
|
3238
|
+
typeof evidenceCount === "number" ? /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_core48.Badge, { variant: "outline", color: "gray", children: [
|
|
2987
3239
|
"Evidence: ",
|
|
2988
3240
|
evidenceCount
|
|
2989
3241
|
] }) : null
|
|
2990
3242
|
] }),
|
|
2991
|
-
permissionNote ? /* @__PURE__ */ (0,
|
|
3243
|
+
permissionNote ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_core48.Alert, { color: isProblem ? tone.color : "gray", variant: "light", children: permissionNote }) : null,
|
|
2992
3244
|
details,
|
|
2993
3245
|
children,
|
|
2994
3246
|
retryAction
|
|
@@ -2996,8 +3248,8 @@ function EvidencePanel({
|
|
|
2996
3248
|
}
|
|
2997
3249
|
|
|
2998
3250
|
// src/ChartTokenPanel.tsx
|
|
2999
|
-
var
|
|
3000
|
-
var
|
|
3251
|
+
var import_core49 = require("@mantine/core");
|
|
3252
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
3001
3253
|
function ChartTokenPanel({
|
|
3002
3254
|
title,
|
|
3003
3255
|
description,
|
|
@@ -3009,42 +3261,127 @@ function ChartTokenPanel({
|
|
|
3009
3261
|
retryAction
|
|
3010
3262
|
}) {
|
|
3011
3263
|
if (state === "loading") {
|
|
3012
|
-
return /* @__PURE__ */ (0,
|
|
3264
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(StateBlock, { variant: "loading", title: "Loading chart", description: summary, compact: true, action: retryAction });
|
|
3013
3265
|
}
|
|
3014
3266
|
if (state === "empty") {
|
|
3015
|
-
return /* @__PURE__ */ (0,
|
|
3267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(StateBlock, { variant: "empty", title: "No chart data", description: summary, compact: true, action: retryAction });
|
|
3016
3268
|
}
|
|
3017
3269
|
if (state === "below-threshold") {
|
|
3018
|
-
return /* @__PURE__ */ (0,
|
|
3270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(StateBlock, { variant: "not-enough-data", title: "Not enough data for chart", description: summary, compact: true, action: retryAction });
|
|
3019
3271
|
}
|
|
3020
3272
|
if (state === "error") {
|
|
3021
|
-
return /* @__PURE__ */ (0,
|
|
3273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(StateBlock, { variant: "error", title: "Unable to load chart", description: summary, compact: true, action: retryAction });
|
|
3022
3274
|
}
|
|
3023
|
-
return /* @__PURE__ */ (0,
|
|
3024
|
-
/* @__PURE__ */ (0,
|
|
3025
|
-
/* @__PURE__ */ (0,
|
|
3026
|
-
/* @__PURE__ */ (0,
|
|
3027
|
-
description ? /* @__PURE__ */ (0,
|
|
3275
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core49.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_core49.Stack, { gap: "md", children: [
|
|
3276
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_core49.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
3277
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_core49.Stack, { gap: 4, children: [
|
|
3278
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core49.Title, { order: 4, children: title }),
|
|
3279
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core49.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
3028
3280
|
] }),
|
|
3029
|
-
state !== "ready" ? /* @__PURE__ */ (0,
|
|
3281
|
+
state !== "ready" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core49.Badge, { variant: "light", color: state === "permission-limited" ? "grape" : "yellow", children: state.replace("-", " ") }) : null
|
|
3030
3282
|
] }),
|
|
3031
|
-
/* @__PURE__ */ (0,
|
|
3032
|
-
legend.length ? /* @__PURE__ */ (0,
|
|
3283
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core49.Text, { size: "sm", children: summary }),
|
|
3284
|
+
legend.length ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core49.Group, { gap: "xs", wrap: "wrap", "aria-label": "Chart legend", children: legend.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_core49.Badge, { variant: "outline", color: "gray", title: typeof item.description === "string" ? item.description : void 0, children: [
|
|
3033
3285
|
item.label,
|
|
3034
3286
|
": ",
|
|
3035
3287
|
item.token
|
|
3036
3288
|
] }, `${String(item.label)}-${index}`)) }) : null,
|
|
3037
3289
|
children,
|
|
3038
|
-
tableFallback ? /* @__PURE__ */ (0,
|
|
3039
|
-
/* @__PURE__ */ (0,
|
|
3290
|
+
tableFallback ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_core49.Stack, { gap: "xs", children: [
|
|
3291
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core49.Text, { size: "sm", fw: 600, children: "Accessible data fallback" }),
|
|
3040
3292
|
tableFallback
|
|
3041
3293
|
] }) : null
|
|
3042
3294
|
] }) });
|
|
3043
3295
|
}
|
|
3044
3296
|
|
|
3297
|
+
// src/GdsChart.tsx
|
|
3298
|
+
var import_core50 = require("@mantine/core");
|
|
3299
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
3300
|
+
function GdsChart({ type, title, summary, data, state = "ready", retryAction }) {
|
|
3301
|
+
const tableRows = data.map((item) => ({ label: item.label, value: String(item.value), group: item.group ?? "-" }));
|
|
3302
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
3303
|
+
ChartTokenPanel,
|
|
3304
|
+
{
|
|
3305
|
+
title,
|
|
3306
|
+
summary,
|
|
3307
|
+
state,
|
|
3308
|
+
retryAction,
|
|
3309
|
+
legend: [
|
|
3310
|
+
{ label: "Primary", token: "var(--mantine-color-blue-6)" },
|
|
3311
|
+
{ label: "Secondary", token: "var(--mantine-color-teal-6)" }
|
|
3312
|
+
],
|
|
3313
|
+
tableFallback: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
3314
|
+
SimpleDataTable,
|
|
3315
|
+
{
|
|
3316
|
+
columns: [
|
|
3317
|
+
{ key: "label", header: "Label" },
|
|
3318
|
+
{ key: "value", header: "Value" },
|
|
3319
|
+
{ key: "group", header: "Group" }
|
|
3320
|
+
],
|
|
3321
|
+
rows: tableRows
|
|
3322
|
+
}
|
|
3323
|
+
),
|
|
3324
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_core50.Paper, { withBorder: true, radius: "md", p: "md", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_core50.Stack, { gap: "sm", children: [
|
|
3325
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_core50.Group, { justify: "space-between", children: [
|
|
3326
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_core50.Text, { fw: 700, children: title }),
|
|
3327
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_core50.Badge, { variant: "light", children: type })
|
|
3328
|
+
] }),
|
|
3329
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_core50.Text, { size: "sm", c: "dimmed", children: summary }),
|
|
3330
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_core50.Text, { size: "xs", c: "dimmed", children: [
|
|
3331
|
+
"Type lane: ",
|
|
3332
|
+
type
|
|
3333
|
+
] })
|
|
3334
|
+
] }) })
|
|
3335
|
+
}
|
|
3336
|
+
);
|
|
3337
|
+
}
|
|
3338
|
+
|
|
3339
|
+
// src/LayoutBlocks.tsx
|
|
3340
|
+
var import_core51 = require("@mantine/core");
|
|
3341
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
3342
|
+
function renderBlock(block) {
|
|
3343
|
+
switch (block.type) {
|
|
3344
|
+
case "hero":
|
|
3345
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SectionPanel, { title: String(block.props.title ?? "Hero"), description: String(block.props.description ?? "Hero block"), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.Text, { children: String(block.props.body ?? "Composable hero content") }) });
|
|
3346
|
+
case "stats":
|
|
3347
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.SimpleGrid, { cols: { base: 1, md: 3 }, children: block.props.items?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.Card, { withBorder: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_core51.Stack, { gap: 2, children: [
|
|
3348
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.Text, { size: "sm", c: "dimmed", children: item.label }),
|
|
3349
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.Title, { order: 4, children: item.value })
|
|
3350
|
+
] }) }, `${block.id}-${item.label}`)) ?? null });
|
|
3351
|
+
case "cards-grid":
|
|
3352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.SimpleGrid, { cols: { base: 1, md: 2 }, children: block.props.items?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ListingCard, { title: item.title, description: item.description, size: "sm" }, `${block.id}-${item.title}`)) ?? null });
|
|
3353
|
+
case "chart":
|
|
3354
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
3355
|
+
GdsChart,
|
|
3356
|
+
{
|
|
3357
|
+
type: block.props.chartType ?? "bar",
|
|
3358
|
+
title: String(block.props.title ?? "Chart block"),
|
|
3359
|
+
summary: String(block.props.summary ?? "Block-composed chart summary"),
|
|
3360
|
+
data: block.props.data ?? [{ label: "A", value: 10 }]
|
|
3361
|
+
}
|
|
3362
|
+
);
|
|
3363
|
+
case "cta":
|
|
3364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
3365
|
+
ActionBar,
|
|
3366
|
+
{
|
|
3367
|
+
primary: { action: "save" },
|
|
3368
|
+
secondary: [{ action: "cancel" }],
|
|
3369
|
+
tertiary: [{ action: "preview" }]
|
|
3370
|
+
}
|
|
3371
|
+
);
|
|
3372
|
+
case "footer":
|
|
3373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.Text, { size: "sm", c: "dimmed", children: String(block.props.text ?? "Footer block") });
|
|
3374
|
+
default:
|
|
3375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.Alert, { color: "red", children: "Unsupported block type." });
|
|
3376
|
+
}
|
|
3377
|
+
}
|
|
3378
|
+
function renderGdsLayout(schema) {
|
|
3379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_core51.Stack, { gap: "lg", children: schema.blocks.map((block) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { children: renderBlock(block) }, block.id)) });
|
|
3380
|
+
}
|
|
3381
|
+
|
|
3045
3382
|
// src/ReportingSection.tsx
|
|
3046
|
-
var
|
|
3047
|
-
var
|
|
3383
|
+
var import_core52 = require("@mantine/core");
|
|
3384
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
3048
3385
|
function ReportingSection({
|
|
3049
3386
|
title,
|
|
3050
3387
|
description,
|
|
@@ -3060,26 +3397,26 @@ function ReportingSection({
|
|
|
3060
3397
|
}) {
|
|
3061
3398
|
let stateBlock = null;
|
|
3062
3399
|
if (state === "loading") {
|
|
3063
|
-
stateBlock = /* @__PURE__ */ (0,
|
|
3400
|
+
stateBlock = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StateBlock, { variant: "loading", title: "Loading report", description: stateMessage ?? "The reporting surface is synchronizing.", compact: true });
|
|
3064
3401
|
} else if (state === "empty") {
|
|
3065
|
-
stateBlock = /* @__PURE__ */ (0,
|
|
3402
|
+
stateBlock = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StateBlock, { variant: "empty", title: "No report data", description: stateMessage ?? "No records match this reporting scope yet.", compact: true });
|
|
3066
3403
|
} else if (state === "error") {
|
|
3067
|
-
stateBlock = /* @__PURE__ */ (0,
|
|
3404
|
+
stateBlock = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StateBlock, { variant: "error", title: "Unable to load report", description: stateMessage ?? "The report could not be prepared.", compact: true, action: retryAction });
|
|
3068
3405
|
} else if (state === "below-threshold") {
|
|
3069
|
-
stateBlock = /* @__PURE__ */ (0,
|
|
3406
|
+
stateBlock = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StateBlock, { variant: "not-enough-data", title: "Not enough data", description: stateMessage ?? "This report is hidden until the threshold is met.", compact: true });
|
|
3070
3407
|
} else if (state === "permission-limited") {
|
|
3071
|
-
stateBlock = /* @__PURE__ */ (0,
|
|
3408
|
+
stateBlock = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StateBlock, { variant: "permission", title: "Permission-limited report", description: stateMessage ?? "Some evidence is hidden by access rules.", compact: true, action: retryAction });
|
|
3072
3409
|
}
|
|
3073
|
-
return /* @__PURE__ */ (0,
|
|
3074
|
-
/* @__PURE__ */ (0,
|
|
3075
|
-
/* @__PURE__ */ (0,
|
|
3076
|
-
/* @__PURE__ */ (0,
|
|
3077
|
-
description ? /* @__PURE__ */ (0,
|
|
3410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_core52.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_core52.Stack, { gap: "lg", children: [
|
|
3411
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_core52.Group, { justify: "space-between", align: "flex-start", gap: "md", children: [
|
|
3412
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_core52.Stack, { gap: 4, children: [
|
|
3413
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_core52.Title, { order: 3, children: title }),
|
|
3414
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_core52.Text, { size: "sm", c: "dimmed", children: description }) : null
|
|
3078
3415
|
] }),
|
|
3079
3416
|
action
|
|
3080
3417
|
] }),
|
|
3081
3418
|
periodControl,
|
|
3082
|
-
(state === "partial" || state === "stale" || state === "filtered") && stateMessage ? /* @__PURE__ */ (0,
|
|
3419
|
+
(state === "partial" || state === "stale" || state === "filtered") && stateMessage ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StateBlock, { variant: "info", title: state === "partial" ? "Partial report" : state === "stale" ? "Stale report" : "Filtered report", description: stateMessage, compact: true }) : null,
|
|
3083
3420
|
stateBlock,
|
|
3084
3421
|
metrics,
|
|
3085
3422
|
chart,
|
|
@@ -3088,6 +3425,91 @@ function ReportingSection({
|
|
|
3088
3425
|
] }) });
|
|
3089
3426
|
}
|
|
3090
3427
|
|
|
3428
|
+
// src/Notifications.tsx
|
|
3429
|
+
var import_core53 = require("@mantine/core");
|
|
3430
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
3431
|
+
var notificationColorMap = {
|
|
3432
|
+
success: "teal",
|
|
3433
|
+
error: "red",
|
|
3434
|
+
warning: "yellow",
|
|
3435
|
+
info: "blue",
|
|
3436
|
+
neutral: "gray"
|
|
3437
|
+
};
|
|
3438
|
+
function severityToStateVariant(severity) {
|
|
3439
|
+
if (severity === "success") return "success";
|
|
3440
|
+
if (severity === "error") return "error";
|
|
3441
|
+
if (severity === "warning") return "not-enough-data";
|
|
3442
|
+
if (severity === "neutral") return "disabled";
|
|
3443
|
+
return "info";
|
|
3444
|
+
}
|
|
3445
|
+
function InlineAlert({
|
|
3446
|
+
title,
|
|
3447
|
+
message,
|
|
3448
|
+
severity = "info",
|
|
3449
|
+
action
|
|
3450
|
+
}) {
|
|
3451
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
3452
|
+
import_core53.Alert,
|
|
3453
|
+
{
|
|
3454
|
+
variant: "light",
|
|
3455
|
+
color: notificationColorMap[severity],
|
|
3456
|
+
title,
|
|
3457
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(GdsIcons.Info, { size: "1rem" }),
|
|
3458
|
+
role: severity === "error" ? "alert" : "status",
|
|
3459
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_core53.Stack, { gap: "xs", children: [
|
|
3460
|
+
message ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Text, { size: "sm", children: message }) : null,
|
|
3461
|
+
action
|
|
3462
|
+
] })
|
|
3463
|
+
}
|
|
3464
|
+
);
|
|
3465
|
+
}
|
|
3466
|
+
function BannerNotice({
|
|
3467
|
+
eyebrow,
|
|
3468
|
+
title,
|
|
3469
|
+
message,
|
|
3470
|
+
severity = "info",
|
|
3471
|
+
action
|
|
3472
|
+
}) {
|
|
3473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Paper, { withBorder: true, radius: "lg", p: "md", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_core53.Stack, { gap: "xs", children: [
|
|
3474
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_core53.Group, { justify: "space-between", align: "center", children: [
|
|
3475
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_core53.Group, { gap: "xs", children: [
|
|
3476
|
+
eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Badge, { variant: "light", children: eyebrow }) : null,
|
|
3477
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Badge, { variant: "light", color: notificationColorMap[severity], children: severityToStateVariant(severity).replace("-", " ") })
|
|
3478
|
+
] }),
|
|
3479
|
+
action
|
|
3480
|
+
] }),
|
|
3481
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Title, { order: 4, children: title }),
|
|
3482
|
+
message ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Text, { size: "sm", c: "dimmed", children: message }) : null
|
|
3483
|
+
] }) });
|
|
3484
|
+
}
|
|
3485
|
+
function NotificationCenterView({
|
|
3486
|
+
notifications,
|
|
3487
|
+
onDismiss,
|
|
3488
|
+
onClear,
|
|
3489
|
+
title = "Notifications",
|
|
3490
|
+
emptyMessage = "No active notifications."
|
|
3491
|
+
}) {
|
|
3492
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Paper, { withBorder: true, radius: "lg", p: "md", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_core53.Stack, { gap: "md", children: [
|
|
3493
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_core53.Group, { justify: "space-between", align: "center", children: [
|
|
3494
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Title, { order: 4, children: title }),
|
|
3495
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Button, { size: "xs", variant: "subtle", onClick: onClear, disabled: notifications.length === 0 || !onClear, children: "Clear all" })
|
|
3496
|
+
] }),
|
|
3497
|
+
notifications.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Text, { size: "sm", c: "dimmed", children: emptyMessage }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Stack, { gap: "sm", children: notifications.map((item) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
3498
|
+
InlineAlert,
|
|
3499
|
+
{
|
|
3500
|
+
severity: item.severity,
|
|
3501
|
+
title: item.title,
|
|
3502
|
+
message: item.message,
|
|
3503
|
+
action: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_core53.Group, { gap: "xs", children: [
|
|
3504
|
+
item.actions?.map((action) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Button, { size: "xs", variant: "default", onClick: action.onClick, children: action.label }, action.id)),
|
|
3505
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_core53.Button, { size: "xs", variant: "subtle", onClick: () => onDismiss?.(item.id), disabled: !onDismiss, children: "Dismiss" })
|
|
3506
|
+
] })
|
|
3507
|
+
},
|
|
3508
|
+
item.id
|
|
3509
|
+
)) })
|
|
3510
|
+
] }) });
|
|
3511
|
+
}
|
|
3512
|
+
|
|
3091
3513
|
// src/locales/ar.ts
|
|
3092
3514
|
var ar = {
|
|
3093
3515
|
"gds.action.settings": "\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",
|
|
@@ -4394,13 +4816,18 @@ function getGdsMessages(locale) {
|
|
|
4394
4816
|
0 && (module.exports = {
|
|
4395
4817
|
AccentPanel,
|
|
4396
4818
|
AccessSummary,
|
|
4819
|
+
ActiveFilterChips,
|
|
4397
4820
|
ArticleShell,
|
|
4821
|
+
AsyncSurface,
|
|
4398
4822
|
AuthShell,
|
|
4823
|
+
BannerNotice,
|
|
4399
4824
|
BrowseSurface,
|
|
4825
|
+
BulkActionsBar,
|
|
4400
4826
|
ChartTokenPanel,
|
|
4401
4827
|
ChoiceChip,
|
|
4402
4828
|
ConsumerDashboardGrid,
|
|
4403
4829
|
ConsumerSection,
|
|
4830
|
+
CountBadge,
|
|
4404
4831
|
CtaButtonGroup,
|
|
4405
4832
|
DataToolbar,
|
|
4406
4833
|
DetailProfileShell,
|
|
@@ -4413,13 +4840,17 @@ function getGdsMessages(locale) {
|
|
|
4413
4840
|
FilterDrawer,
|
|
4414
4841
|
FoodMenuSection,
|
|
4415
4842
|
FormField,
|
|
4843
|
+
GdsChart,
|
|
4416
4844
|
GdsIcons,
|
|
4417
4845
|
GdsVocabulary,
|
|
4846
|
+
InlineAlert,
|
|
4847
|
+
LabelTag,
|
|
4418
4848
|
ListingCard,
|
|
4419
4849
|
MapPanel,
|
|
4420
4850
|
MediaCard,
|
|
4421
4851
|
MediaField,
|
|
4422
4852
|
MetricCard,
|
|
4853
|
+
NotificationCenterView,
|
|
4423
4854
|
PROVIDER_IDENTITY_REGISTRY,
|
|
4424
4855
|
PageHeader,
|
|
4425
4856
|
PeriodSelector,
|
|
@@ -4440,9 +4871,11 @@ function getGdsMessages(locale) {
|
|
|
4440
4871
|
ReferenceLocaleNotice,
|
|
4441
4872
|
ReferenceSection,
|
|
4442
4873
|
ReportingSection,
|
|
4874
|
+
ResultSummary,
|
|
4443
4875
|
SectionPanel,
|
|
4444
4876
|
SimpleDataTable,
|
|
4445
4877
|
SocialAuthButtons,
|
|
4878
|
+
SortMenu,
|
|
4446
4879
|
StateBlock,
|
|
4447
4880
|
StatsSection,
|
|
4448
4881
|
StatusBadge,
|
|
@@ -4452,6 +4885,8 @@ function getGdsMessages(locale) {
|
|
|
4452
4885
|
en,
|
|
4453
4886
|
es,
|
|
4454
4887
|
fr,
|
|
4888
|
+
gdsCardSizePaddingMap,
|
|
4889
|
+
gdsCardTitleOrderMap,
|
|
4455
4890
|
gdsLocales,
|
|
4456
4891
|
getGdsMessages,
|
|
4457
4892
|
getProviderIdentityLabel,
|
|
@@ -4464,6 +4899,7 @@ function getGdsMessages(locale) {
|
|
|
4464
4899
|
isPresentationMode,
|
|
4465
4900
|
it,
|
|
4466
4901
|
mergeGdsVocabularyPacks,
|
|
4902
|
+
renderGdsLayout,
|
|
4467
4903
|
resolveAccentPanelStyles,
|
|
4468
4904
|
resolveSemanticActionConfig,
|
|
4469
4905
|
resolveSurfacePresentationStyles,
|