@doneisbetter/gds-core 2.6.4 → 2.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4YTMKBGW.mjs +905 -0
- package/dist/{chunk-BAS4ZGKL.mjs → chunk-IAP3JU55.mjs} +870 -807
- package/dist/client.d.mts +7 -3
- package/dist/client.d.ts +7 -3
- package/dist/client.js +1291 -926
- package/dist/client.mjs +10 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1291 -926
- package/dist/index.mjs +10 -2
- package/dist/{server-BqFksoV3.d.mts → server-CF4gCYQ-.d.mts} +45 -13
- package/dist/{server-BqFksoV3.d.ts → server-CF4gCYQ-.d.ts} +45 -13
- package/dist/server.d.mts +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +679 -611
- package/dist/server.mjs +7 -1
- package/package.json +2 -2
- package/dist/chunk-EN3TN22M.mjs +0 -585
|
@@ -351,66 +351,179 @@ function getSemanticActionLabel(action, translate, packs = []) {
|
|
|
351
351
|
return translate ? translate(config.id, config.defaultMessage) : config.defaultMessage;
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
-
// src/
|
|
355
|
-
import { Badge as Badge2 } from "@mantine/core";
|
|
356
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
354
|
+
// src/AccentPanel.tsx
|
|
355
|
+
import { Badge as Badge2, Box as Box2, Group, Paper, Stack as Stack2, Text as Text2, Title as Title2 } from "@mantine/core";
|
|
356
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
357
|
+
var toneStyles = {
|
|
358
|
+
gray: {
|
|
359
|
+
bg: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-gray-7) 88%, black))",
|
|
360
|
+
border: "light-dark(var(--mantine-color-gray-2), color-mix(in srgb, var(--mantine-color-gray-4) 70%, transparent))",
|
|
361
|
+
color: "light-dark(var(--mantine-color-gray-9), var(--mantine-color-gray-0))"
|
|
362
|
+
},
|
|
363
|
+
violet: {
|
|
364
|
+
bg: "light-dark(var(--mantine-color-violet-0), color-mix(in srgb, var(--mantine-color-violet-9) 70%, black))",
|
|
365
|
+
border: "light-dark(var(--mantine-color-violet-2), color-mix(in srgb, var(--mantine-color-violet-4) 75%, transparent))",
|
|
366
|
+
color: "light-dark(var(--mantine-color-violet-9), var(--mantine-color-violet-0))"
|
|
367
|
+
},
|
|
368
|
+
green: {
|
|
369
|
+
bg: "light-dark(var(--mantine-color-green-0), color-mix(in srgb, var(--mantine-color-green-9) 72%, black))",
|
|
370
|
+
border: "light-dark(var(--mantine-color-green-2), color-mix(in srgb, var(--mantine-color-green-4) 78%, transparent))",
|
|
371
|
+
color: "light-dark(var(--mantine-color-green-9), var(--mantine-color-green-0))"
|
|
372
|
+
},
|
|
373
|
+
red: {
|
|
374
|
+
bg: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 72%, black))",
|
|
375
|
+
border: "light-dark(var(--mantine-color-red-2), color-mix(in srgb, var(--mantine-color-red-4) 78%, transparent))",
|
|
376
|
+
color: "light-dark(var(--mantine-color-red-9), var(--mantine-color-red-0))"
|
|
377
|
+
},
|
|
378
|
+
amber: {
|
|
379
|
+
bg: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-8) 78%, black))",
|
|
380
|
+
border: "light-dark(var(--mantine-color-yellow-3), color-mix(in srgb, var(--mantine-color-yellow-5) 70%, transparent))",
|
|
381
|
+
color: "light-dark(var(--mantine-color-yellow-9), var(--mantine-color-yellow-0))"
|
|
382
|
+
},
|
|
383
|
+
blue: {
|
|
384
|
+
bg: "light-dark(var(--mantine-color-blue-0), color-mix(in srgb, var(--mantine-color-blue-9) 74%, black))",
|
|
385
|
+
border: "light-dark(var(--mantine-color-blue-2), color-mix(in srgb, var(--mantine-color-blue-4) 75%, transparent))",
|
|
386
|
+
color: "light-dark(var(--mantine-color-blue-9), var(--mantine-color-blue-0))"
|
|
383
387
|
}
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
...sharedProps,
|
|
394
|
-
children: label
|
|
395
|
-
}
|
|
396
|
-
);
|
|
388
|
+
};
|
|
389
|
+
function resolveAccentPanelStyles(tone = "violet", variant = "subtle") {
|
|
390
|
+
const token = toneStyles[tone];
|
|
391
|
+
if (variant === "soft-outline") {
|
|
392
|
+
return {
|
|
393
|
+
backgroundColor: "light-dark(var(--mantine-color-body), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
|
|
394
|
+
border: `1px solid ${token.border}`,
|
|
395
|
+
color: token.color
|
|
396
|
+
};
|
|
397
397
|
}
|
|
398
|
-
return
|
|
398
|
+
return {
|
|
399
|
+
backgroundColor: token.bg,
|
|
400
|
+
border: `1px solid ${token.border}`,
|
|
401
|
+
color: token.color
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
function AccentPanel({
|
|
405
|
+
tone = "violet",
|
|
406
|
+
variant = "subtle",
|
|
407
|
+
title,
|
|
408
|
+
badge,
|
|
409
|
+
children
|
|
410
|
+
}) {
|
|
411
|
+
const styles = resolveAccentPanelStyles(tone, variant);
|
|
412
|
+
return /* @__PURE__ */ jsx3(Paper, { withBorder: true, radius: "lg", p: "lg", style: styles, children: /* @__PURE__ */ jsxs2(Stack2, { gap: "sm", children: [
|
|
413
|
+
title || badge ? /* @__PURE__ */ jsxs2(Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
414
|
+
title ? /* @__PURE__ */ jsx3(Title2, { order: 4, c: "inherit", children: title }) : /* @__PURE__ */ jsx3(Box2, {}),
|
|
415
|
+
badge ? typeof badge === "string" ? /* @__PURE__ */ jsx3(Badge2, { color: tone === "amber" ? "yellow" : tone, variant: "filled", children: badge }) : badge : null
|
|
416
|
+
] }) : null,
|
|
417
|
+
typeof children === "string" ? /* @__PURE__ */ jsx3(Text2, { c: "inherit", children }) : /* @__PURE__ */ jsx3(Box2, { c: "inherit", children })
|
|
418
|
+
] }) });
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// src/ReferenceLocaleNotice.tsx
|
|
422
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
423
|
+
function ReferenceLocaleNotice({ localeLabel, detail }) {
|
|
424
|
+
return /* @__PURE__ */ jsx4(AccentPanel, { tone: "amber", variant: "soft-outline", title: "Localization status", badge: localeLabel, children: detail });
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
// src/ReferenceLinkGrid.tsx
|
|
428
|
+
import { Anchor, Badge as Badge3, Group as Group2, Paper as Paper2, SimpleGrid, Stack as Stack3, Text as Text3, Title as Title3 } from "@mantine/core";
|
|
429
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
430
|
+
function ReferenceLinkGrid({
|
|
431
|
+
items,
|
|
432
|
+
columns = 3
|
|
433
|
+
}) {
|
|
434
|
+
return /* @__PURE__ */ jsx5(SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), xl: columns }, spacing: "lg", children: items.map((item) => /* @__PURE__ */ jsx5(Paper2, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs3(Stack3, { gap: "md", children: [
|
|
435
|
+
/* @__PURE__ */ jsxs3(Group2, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
436
|
+
/* @__PURE__ */ jsxs3(Stack3, { gap: 6, maw: 540, children: [
|
|
437
|
+
/* @__PURE__ */ jsx5(Title3, { order: 4, children: /* @__PURE__ */ jsx5(Anchor, { href: item.href, underline: "never", children: item.title }) }),
|
|
438
|
+
/* @__PURE__ */ jsx5(Text3, { size: "sm", c: "dimmed", children: item.description })
|
|
439
|
+
] }),
|
|
440
|
+
item.badge ? typeof item.badge === "string" ? /* @__PURE__ */ jsx5(Badge3, { variant: "light", color: "violet", children: item.badge }) : item.badge : null
|
|
441
|
+
] }),
|
|
442
|
+
item.meta ? /* @__PURE__ */ jsx5(Text3, { size: "sm", c: "dimmed", children: item.meta }) : null,
|
|
443
|
+
/* @__PURE__ */ jsx5(Anchor, { href: item.href, fw: 600, children: "Open section" })
|
|
444
|
+
] }) }, item.id)) });
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
// src/SectionPanel.tsx
|
|
448
|
+
import { Divider, Group as Group3, Paper as Paper3, Stack as Stack4, Text as Text4, Title as Title4 } from "@mantine/core";
|
|
449
|
+
import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
450
|
+
var toneBackgrounds = {
|
|
451
|
+
default: "var(--mantine-color-body)",
|
|
452
|
+
supporting: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
|
|
453
|
+
warning: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-9) 18%, var(--mantine-color-body)))",
|
|
454
|
+
critical: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 18%, var(--mantine-color-body)))"
|
|
455
|
+
};
|
|
456
|
+
function SectionPanel({
|
|
457
|
+
title,
|
|
458
|
+
description,
|
|
459
|
+
action,
|
|
460
|
+
children,
|
|
461
|
+
tone = "default",
|
|
462
|
+
id,
|
|
463
|
+
divided = true
|
|
464
|
+
}) {
|
|
465
|
+
return /* @__PURE__ */ jsx6(Paper3, { id, withBorder: true, radius: "xl", p: "lg", style: { background: toneBackgrounds[tone] }, children: /* @__PURE__ */ jsxs4(Stack4, { gap: "md", children: [
|
|
466
|
+
title || description || action ? /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
467
|
+
/* @__PURE__ */ jsxs4(Group3, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
468
|
+
title || description ? /* @__PURE__ */ jsxs4(Stack4, { gap: 4, children: [
|
|
469
|
+
title ? /* @__PURE__ */ jsx6(Title4, { order: 3, children: title }) : null,
|
|
470
|
+
description ? /* @__PURE__ */ jsx6(Text4, { size: "sm", c: "dimmed", children: description }) : null
|
|
471
|
+
] }) : null,
|
|
472
|
+
action
|
|
473
|
+
] }),
|
|
474
|
+
divided ? /* @__PURE__ */ jsx6(Divider, {}) : null
|
|
475
|
+
] }) : null,
|
|
476
|
+
children
|
|
477
|
+
] }) });
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
// src/ReferenceSection.tsx
|
|
481
|
+
import { Anchor as Anchor2, Group as Group4, Stack as Stack5, Text as Text5 } from "@mantine/core";
|
|
482
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
483
|
+
function ReferenceSection({
|
|
484
|
+
title,
|
|
485
|
+
description,
|
|
486
|
+
eyebrow,
|
|
487
|
+
action,
|
|
488
|
+
href,
|
|
489
|
+
linkLabel = "Open section",
|
|
490
|
+
tone = "default",
|
|
491
|
+
children
|
|
492
|
+
}) {
|
|
493
|
+
return /* @__PURE__ */ jsx7(
|
|
494
|
+
SectionPanel,
|
|
495
|
+
{
|
|
496
|
+
tone,
|
|
497
|
+
title: /* @__PURE__ */ jsxs5(Stack5, { gap: 4, children: [
|
|
498
|
+
eyebrow ? /* @__PURE__ */ jsx7(Text5, { size: "xs", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
499
|
+
/* @__PURE__ */ jsxs5(Group4, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
500
|
+
/* @__PURE__ */ jsxs5(Stack5, { gap: 4, children: [
|
|
501
|
+
/* @__PURE__ */ jsx7(Text5, { component: "span", fw: 700, size: "xl", children: title }),
|
|
502
|
+
description ? /* @__PURE__ */ jsx7(Text5, { size: "sm", c: "dimmed", children: description }) : null
|
|
503
|
+
] }),
|
|
504
|
+
href ? /* @__PURE__ */ jsx7(Anchor2, { href, fw: 600, children: linkLabel }) : null
|
|
505
|
+
] })
|
|
506
|
+
] }),
|
|
507
|
+
action,
|
|
508
|
+
divided: false,
|
|
509
|
+
children
|
|
510
|
+
}
|
|
511
|
+
);
|
|
399
512
|
}
|
|
400
513
|
|
|
401
514
|
// src/ActionBar.tsx
|
|
402
|
-
import { ActionIcon, Button, Group, Stack as
|
|
403
|
-
import { jsx as
|
|
515
|
+
import { ActionIcon, Button, Group as Group5, Stack as Stack6 } from "@mantine/core";
|
|
516
|
+
import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
404
517
|
function renderSemanticAction(action, slot, vocabularyPacks) {
|
|
405
518
|
const { action: actionId, variant, ariaLabel, ...props } = action;
|
|
406
519
|
const fallbackVariant = slot === "primary" ? "filled" : slot === "secondary" ? "default" : "subtle";
|
|
407
520
|
const config = resolveSemanticActionConfig(actionId, vocabularyPacks);
|
|
408
521
|
const Icon = config.icon;
|
|
409
522
|
const label = getSemanticActionLabel(actionId, void 0, vocabularyPacks);
|
|
410
|
-
return /* @__PURE__ */
|
|
523
|
+
return /* @__PURE__ */ jsx8(
|
|
411
524
|
Button,
|
|
412
525
|
{
|
|
413
|
-
leftSection: /* @__PURE__ */
|
|
526
|
+
leftSection: /* @__PURE__ */ jsx8(Icon, { size: "1rem", stroke: 1.75 }),
|
|
414
527
|
"aria-label": ariaLabel ?? label,
|
|
415
528
|
variant: variant ?? fallbackVariant,
|
|
416
529
|
...props,
|
|
@@ -427,23 +540,23 @@ function ActionBar({
|
|
|
427
540
|
gap = "sm",
|
|
428
541
|
vocabularyPacks = []
|
|
429
542
|
}) {
|
|
430
|
-
return /* @__PURE__ */
|
|
431
|
-
/* @__PURE__ */
|
|
543
|
+
return /* @__PURE__ */ jsx8(Stack6, { gap, children: /* @__PURE__ */ jsxs6(Group5, { justify: "space-between", align: "center", gap, wrap: "wrap", children: [
|
|
544
|
+
/* @__PURE__ */ jsxs6(Group5, { gap, wrap: "wrap", children: [
|
|
432
545
|
secondary.map((action) => renderSemanticAction(action, "secondary", vocabularyPacks)),
|
|
433
546
|
tertiary.map((action) => renderSemanticAction(action, "tertiary", vocabularyPacks))
|
|
434
547
|
] }),
|
|
435
|
-
/* @__PURE__ */
|
|
548
|
+
/* @__PURE__ */ jsxs6(Group5, { gap, wrap: "wrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
436
549
|
iconOnly.map(({ action, ariaLabel, ...props }) => {
|
|
437
550
|
const config = resolveSemanticActionConfig(action, vocabularyPacks);
|
|
438
551
|
const Icon = config.icon;
|
|
439
|
-
return /* @__PURE__ */
|
|
552
|
+
return /* @__PURE__ */ jsx8(
|
|
440
553
|
ActionIcon,
|
|
441
554
|
{
|
|
442
555
|
variant: "subtle",
|
|
443
556
|
size: "lg",
|
|
444
557
|
"aria-label": ariaLabel ?? getSemanticActionLabel(action, void 0, vocabularyPacks),
|
|
445
558
|
...props,
|
|
446
|
-
children: /* @__PURE__ */
|
|
559
|
+
children: /* @__PURE__ */ jsx8(Icon, { size: "1rem", stroke: 1.75 })
|
|
447
560
|
},
|
|
448
561
|
`icon-${action}`
|
|
449
562
|
);
|
|
@@ -453,34 +566,236 @@ function ActionBar({
|
|
|
453
566
|
] }) });
|
|
454
567
|
}
|
|
455
568
|
|
|
569
|
+
// src/FormField.tsx
|
|
570
|
+
import { Box as Box3, Stack as Stack7, Text as Text6 } from "@mantine/core";
|
|
571
|
+
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
572
|
+
function FormField({ label, description, error, children }) {
|
|
573
|
+
return /* @__PURE__ */ jsx9(Box3, { component: "label", children: /* @__PURE__ */ jsxs7(Stack7, { gap: 4, children: [
|
|
574
|
+
typeof label === "string" ? /* @__PURE__ */ jsx9(Text6, { size: "xs", fw: 600, c: "dimmed", children: label }) : label,
|
|
575
|
+
description ? typeof description === "string" ? /* @__PURE__ */ jsx9(Text6, { size: "xs", c: "dimmed", children: description }) : description : null,
|
|
576
|
+
children,
|
|
577
|
+
error ? typeof error === "string" ? /* @__PURE__ */ jsx9(Text6, { size: "xs", c: "red.7", children: error }) : error : null
|
|
578
|
+
] }) });
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
// src/ListingCard.tsx
|
|
582
|
+
import { ActionIcon as ActionIcon2, AspectRatio, Badge as Badge4, Card, Group as Group6, Stack as Stack8, Text as Text7, ThemeIcon, Title as Title5 } from "@mantine/core";
|
|
583
|
+
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
584
|
+
var ratioMap = {
|
|
585
|
+
"1:1": 1,
|
|
586
|
+
"4:3": 4 / 3,
|
|
587
|
+
"16:9": 16 / 9
|
|
588
|
+
};
|
|
589
|
+
var toneColorMap = {
|
|
590
|
+
default: void 0,
|
|
591
|
+
positive: "teal",
|
|
592
|
+
warning: "orange",
|
|
593
|
+
muted: "gray"
|
|
594
|
+
};
|
|
595
|
+
function ListingImageFallback({ mediaRatio }) {
|
|
596
|
+
return /* @__PURE__ */ jsx10(AspectRatio, { ratio: ratioMap[mediaRatio], children: /* @__PURE__ */ jsx10(
|
|
597
|
+
ThemeIcon,
|
|
598
|
+
{
|
|
599
|
+
size: "100%",
|
|
600
|
+
radius: "md",
|
|
601
|
+
variant: "light",
|
|
602
|
+
color: "gray",
|
|
603
|
+
"aria-label": "No listing image available",
|
|
604
|
+
children: /* @__PURE__ */ jsx10(GdsIcons.Gallery, { size: "2rem" })
|
|
605
|
+
}
|
|
606
|
+
) });
|
|
607
|
+
}
|
|
608
|
+
function ListingAffordance({ affordance }) {
|
|
609
|
+
const config = GdsVocabulary[affordance.action];
|
|
610
|
+
const Icon = config.icon;
|
|
611
|
+
const label = affordance.ariaLabel ?? getSemanticActionLabel(affordance.action);
|
|
612
|
+
if (affordance.href) {
|
|
613
|
+
return /* @__PURE__ */ jsx10(
|
|
614
|
+
ActionIcon2,
|
|
615
|
+
{
|
|
616
|
+
component: "a",
|
|
617
|
+
href: affordance.href,
|
|
618
|
+
variant: "subtle",
|
|
619
|
+
size: "lg",
|
|
620
|
+
"aria-label": label,
|
|
621
|
+
disabled: affordance.disabled,
|
|
622
|
+
children: /* @__PURE__ */ jsx10(Icon, { size: "1rem", stroke: 1.75 })
|
|
623
|
+
}
|
|
624
|
+
);
|
|
625
|
+
}
|
|
626
|
+
return /* @__PURE__ */ jsx10(
|
|
627
|
+
ActionIcon2,
|
|
628
|
+
{
|
|
629
|
+
variant: "subtle",
|
|
630
|
+
size: "lg",
|
|
631
|
+
"aria-label": label,
|
|
632
|
+
onClick: affordance.onClick,
|
|
633
|
+
disabled: affordance.disabled,
|
|
634
|
+
children: /* @__PURE__ */ jsx10(Icon, { size: "1rem", stroke: 1.75 })
|
|
635
|
+
}
|
|
636
|
+
);
|
|
637
|
+
}
|
|
638
|
+
function ListingCard({
|
|
639
|
+
title,
|
|
640
|
+
href,
|
|
641
|
+
description,
|
|
642
|
+
image,
|
|
643
|
+
mediaRatio = "4:3",
|
|
644
|
+
metadata = [],
|
|
645
|
+
featured = false,
|
|
646
|
+
sponsoredDisclosure,
|
|
647
|
+
price,
|
|
648
|
+
primaryAction,
|
|
649
|
+
saveAction,
|
|
650
|
+
shareAction,
|
|
651
|
+
compact = false
|
|
652
|
+
}) {
|
|
653
|
+
const titleContent = href && typeof title === "string" ? /* @__PURE__ */ jsx10(Text7, { component: "a", href, inherit: true, td: "none", children: title }) : title;
|
|
654
|
+
return /* @__PURE__ */ jsx10(Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ jsxs8(Stack8, { gap: compact ? "sm" : "md", children: [
|
|
655
|
+
image ?? /* @__PURE__ */ jsx10(ListingImageFallback, { mediaRatio }),
|
|
656
|
+
featured || sponsoredDisclosure ? /* @__PURE__ */ jsxs8(Group6, { justify: "space-between", gap: "sm", wrap: "wrap", children: [
|
|
657
|
+
featured ? /* @__PURE__ */ jsx10(Badge4, { variant: "light", color: "violet", children: "Featured" }) : /* @__PURE__ */ jsx10("span", {}),
|
|
658
|
+
sponsoredDisclosure ? /* @__PURE__ */ jsx10(Text7, { size: "xs", c: "dimmed", children: sponsoredDisclosure }) : null
|
|
659
|
+
] }) : null,
|
|
660
|
+
/* @__PURE__ */ jsxs8(Stack8, { gap: 4, children: [
|
|
661
|
+
/* @__PURE__ */ jsx10(Title5, { order: compact ? 5 : 4, lineClamp: 2, children: titleContent }),
|
|
662
|
+
description ? /* @__PURE__ */ jsx10(Text7, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
663
|
+
] }),
|
|
664
|
+
metadata.length ? /* @__PURE__ */ jsx10(Stack8, { gap: "xs", children: metadata.map((item) => /* @__PURE__ */ jsxs8(Group6, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
665
|
+
/* @__PURE__ */ jsxs8(Group6, { gap: "xs", wrap: "nowrap", style: { minWidth: 0, flex: 1 }, children: [
|
|
666
|
+
item.icon,
|
|
667
|
+
/* @__PURE__ */ jsx10(Text7, { size: "sm", c: item.tone ? toneColorMap[item.tone] : "dimmed", lineClamp: 1, children: item.label })
|
|
668
|
+
] }),
|
|
669
|
+
item.value ? /* @__PURE__ */ jsx10(Text7, { size: "sm", fw: 500, ta: "right", children: item.value }) : null
|
|
670
|
+
] }, item.id)) }) : null,
|
|
671
|
+
/* @__PURE__ */ jsxs8(Group6, { justify: "space-between", align: "center", gap: "sm", wrap: "wrap", children: [
|
|
672
|
+
/* @__PURE__ */ jsx10(Stack8, { gap: 2, style: { minWidth: 0, flex: 1 }, children: price ? /* @__PURE__ */ jsx10(Text7, { fw: 700, size: compact ? "md" : "lg", children: price }) : null }),
|
|
673
|
+
/* @__PURE__ */ jsxs8(Group6, { gap: "xs", wrap: "nowrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
674
|
+
saveAction ? /* @__PURE__ */ jsx10(ListingAffordance, { affordance: saveAction }) : null,
|
|
675
|
+
shareAction ? /* @__PURE__ */ jsx10(ListingAffordance, { affordance: shareAction }) : null,
|
|
676
|
+
primaryAction
|
|
677
|
+
] })
|
|
678
|
+
] })
|
|
679
|
+
] }) });
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
// src/StateBlock.tsx
|
|
683
|
+
import { Loader, Stack as Stack9, Text as Text8, ThemeIcon as ThemeIcon2, Title as Title6 } from "@mantine/core";
|
|
684
|
+
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
685
|
+
var variantConfig = {
|
|
686
|
+
loading: { color: "violet", icon: /* @__PURE__ */ jsx11(Loader, { size: "sm" }) },
|
|
687
|
+
empty: { color: "gray", icon: /* @__PURE__ */ jsx11(GdsIcons.Inbox, { size: "1.1rem" }) },
|
|
688
|
+
error: { color: "red", icon: /* @__PURE__ */ jsx11(GdsIcons.Danger, { size: "1.1rem" }) },
|
|
689
|
+
permission: { color: "orange", icon: /* @__PURE__ */ jsx11(GdsIcons.Verify, { size: "1.1rem" }) },
|
|
690
|
+
disabled: { color: "gray", icon: /* @__PURE__ */ jsx11(GdsIcons.Toggle, { size: "1.1rem" }) },
|
|
691
|
+
success: { color: "teal", icon: /* @__PURE__ */ jsx11(GdsIcons.Success, { size: "1.1rem" }) },
|
|
692
|
+
info: { color: "blue", icon: /* @__PURE__ */ jsx11(GdsIcons.Info, { size: "1.1rem" }) },
|
|
693
|
+
"not-enough-data": { color: "yellow", icon: /* @__PURE__ */ jsx11(GdsIcons.Analytics, { size: "1.1rem" }) }
|
|
694
|
+
};
|
|
695
|
+
function StateBlock({
|
|
696
|
+
variant,
|
|
697
|
+
title,
|
|
698
|
+
description,
|
|
699
|
+
action,
|
|
700
|
+
icon,
|
|
701
|
+
compact = false
|
|
702
|
+
}) {
|
|
703
|
+
const config = variantConfig[variant];
|
|
704
|
+
return /* @__PURE__ */ jsxs9(
|
|
705
|
+
Stack9,
|
|
706
|
+
{
|
|
707
|
+
align: compact ? "flex-start" : "center",
|
|
708
|
+
justify: "center",
|
|
709
|
+
gap: "md",
|
|
710
|
+
py: compact ? "md" : "xl",
|
|
711
|
+
ta: compact ? "left" : "center",
|
|
712
|
+
children: [
|
|
713
|
+
/* @__PURE__ */ jsx11(ThemeIcon2, { variant: "light", color: config.color, size: compact ? "lg" : "xl", radius: "xl", children: icon ?? config.icon }),
|
|
714
|
+
/* @__PURE__ */ jsxs9(Stack9, { gap: 6, align: compact ? "flex-start" : "center", children: [
|
|
715
|
+
/* @__PURE__ */ jsx11(Title6, { order: compact ? 4 : 3, children: title }),
|
|
716
|
+
description ? /* @__PURE__ */ jsx11(Text8, { c: "dimmed", maw: compact ? void 0 : 480, children: description }) : null
|
|
717
|
+
] }),
|
|
718
|
+
action
|
|
719
|
+
]
|
|
720
|
+
}
|
|
721
|
+
);
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
// src/ChoiceChip.tsx
|
|
725
|
+
import { Badge as Badge5 } from "@mantine/core";
|
|
726
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
727
|
+
function ChoiceChip({
|
|
728
|
+
label,
|
|
729
|
+
active = false,
|
|
730
|
+
href,
|
|
731
|
+
onClick,
|
|
732
|
+
component,
|
|
733
|
+
...props
|
|
734
|
+
}) {
|
|
735
|
+
const sharedProps = {
|
|
736
|
+
variant: active ? "filled" : "light",
|
|
737
|
+
size: "sm",
|
|
738
|
+
radius: "xl",
|
|
739
|
+
...props
|
|
740
|
+
};
|
|
741
|
+
if (href) {
|
|
742
|
+
const LinkComponent = component || "a";
|
|
743
|
+
return /* @__PURE__ */ jsx12(
|
|
744
|
+
Badge5,
|
|
745
|
+
{
|
|
746
|
+
component: LinkComponent,
|
|
747
|
+
href,
|
|
748
|
+
"aria-current": active ? "page" : void 0,
|
|
749
|
+
...sharedProps,
|
|
750
|
+
children: label
|
|
751
|
+
}
|
|
752
|
+
);
|
|
753
|
+
}
|
|
754
|
+
if (onClick || component) {
|
|
755
|
+
const ButtonComponent = component || "button";
|
|
756
|
+
return /* @__PURE__ */ jsx12(
|
|
757
|
+
Badge5,
|
|
758
|
+
{
|
|
759
|
+
component: ButtonComponent,
|
|
760
|
+
type: component ? void 0 : "button",
|
|
761
|
+
onClick,
|
|
762
|
+
"aria-pressed": onClick ? active : void 0,
|
|
763
|
+
...sharedProps,
|
|
764
|
+
children: label
|
|
765
|
+
}
|
|
766
|
+
);
|
|
767
|
+
}
|
|
768
|
+
return /* @__PURE__ */ jsx12(Badge5, { ...sharedProps, children: label });
|
|
769
|
+
}
|
|
770
|
+
|
|
456
771
|
// src/MetricCard.tsx
|
|
457
|
-
import { Badge as
|
|
458
|
-
import { jsx as
|
|
772
|
+
import { Badge as Badge6, Card as Card2, Group as Group7, Stack as Stack10, Text as Text9, ThemeIcon as ThemeIcon3, Title as Title7 } from "@mantine/core";
|
|
773
|
+
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
459
774
|
var trendColors = {
|
|
460
775
|
positive: "teal",
|
|
461
776
|
negative: "red",
|
|
462
777
|
neutral: "gray"
|
|
463
778
|
};
|
|
464
779
|
function MetricCard({ label, value, description, trend, icon, footer }) {
|
|
465
|
-
return /* @__PURE__ */
|
|
466
|
-
/* @__PURE__ */
|
|
467
|
-
/* @__PURE__ */
|
|
468
|
-
/* @__PURE__ */
|
|
469
|
-
/* @__PURE__ */
|
|
780
|
+
return /* @__PURE__ */ jsx13(Card2, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ jsxs10(Stack10, { gap: "md", children: [
|
|
781
|
+
/* @__PURE__ */ jsxs10(Group7, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
|
|
782
|
+
/* @__PURE__ */ jsxs10(Stack10, { gap: 4, children: [
|
|
783
|
+
/* @__PURE__ */ jsx13(Text9, { size: "sm", c: "dimmed", fw: 600, children: label }),
|
|
784
|
+
/* @__PURE__ */ jsx13(Title7, { order: 3, children: value })
|
|
470
785
|
] }),
|
|
471
|
-
icon ? /* @__PURE__ */
|
|
786
|
+
icon ? /* @__PURE__ */ jsx13(ThemeIcon3, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null
|
|
472
787
|
] }),
|
|
473
|
-
description || trend ? /* @__PURE__ */
|
|
474
|
-
description ? /* @__PURE__ */
|
|
475
|
-
trend ? /* @__PURE__ */
|
|
788
|
+
description || trend ? /* @__PURE__ */ jsxs10(Group7, { justify: "space-between", align: "center", gap: "sm", children: [
|
|
789
|
+
description ? /* @__PURE__ */ jsx13(Text9, { size: "sm", c: "dimmed", flex: 1, children: description }) : /* @__PURE__ */ jsx13("span", {}),
|
|
790
|
+
trend ? /* @__PURE__ */ jsx13(Badge6, { color: trendColors[trend.tone ?? "neutral"], variant: "light", children: trend.label }) : null
|
|
476
791
|
] }) : null,
|
|
477
792
|
footer
|
|
478
793
|
] }) });
|
|
479
794
|
}
|
|
480
795
|
|
|
481
796
|
// src/ProgressCard.tsx
|
|
482
|
-
import { Card as
|
|
483
|
-
import { jsx as
|
|
797
|
+
import { Card as Card3, Group as Group8, Progress, Stack as Stack11, Text as Text10, Title as Title8 } from "@mantine/core";
|
|
798
|
+
import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
484
799
|
function ProgressCard({
|
|
485
800
|
label,
|
|
486
801
|
value,
|
|
@@ -489,63 +804,30 @@ function ProgressCard({
|
|
|
489
804
|
description,
|
|
490
805
|
action
|
|
491
806
|
}) {
|
|
492
|
-
return /* @__PURE__ */
|
|
493
|
-
/* @__PURE__ */
|
|
494
|
-
/* @__PURE__ */
|
|
495
|
-
/* @__PURE__ */
|
|
496
|
-
/* @__PURE__ */
|
|
807
|
+
return /* @__PURE__ */ jsx14(Card3, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ jsxs11(Stack11, { gap: "md", children: [
|
|
808
|
+
/* @__PURE__ */ jsxs11(Group8, { justify: "space-between", align: "flex-start", children: [
|
|
809
|
+
/* @__PURE__ */ jsxs11(Stack11, { gap: 4, children: [
|
|
810
|
+
/* @__PURE__ */ jsx14(Text10, { size: "sm", c: "dimmed", fw: 600, children: label }),
|
|
811
|
+
/* @__PURE__ */ jsx14(Title8, { order: 3, children: value })
|
|
497
812
|
] }),
|
|
498
813
|
action
|
|
499
814
|
] }),
|
|
500
|
-
description ? /* @__PURE__ */
|
|
501
|
-
/* @__PURE__ */
|
|
502
|
-
/* @__PURE__ */
|
|
503
|
-
/* @__PURE__ */
|
|
504
|
-
/* @__PURE__ */
|
|
815
|
+
description ? /* @__PURE__ */ jsx14(Text10, { size: "sm", c: "dimmed", children: description }) : null,
|
|
816
|
+
/* @__PURE__ */ jsxs11(Stack11, { gap: 6, children: [
|
|
817
|
+
/* @__PURE__ */ jsxs11(Group8, { justify: "space-between", gap: "sm", children: [
|
|
818
|
+
/* @__PURE__ */ jsx14(Text10, { size: "sm", fw: 500, children: progressLabel ?? "Progress" }),
|
|
819
|
+
/* @__PURE__ */ jsxs11(Text10, { size: "sm", c: "dimmed", children: [
|
|
505
820
|
Math.round(progress),
|
|
506
821
|
"%"
|
|
507
822
|
] })
|
|
508
823
|
] }),
|
|
509
|
-
/* @__PURE__ */
|
|
824
|
+
/* @__PURE__ */ jsx14(Progress, { value: progress, radius: "xl", size: "md" })
|
|
510
825
|
] })
|
|
511
826
|
] }) });
|
|
512
827
|
}
|
|
513
828
|
|
|
514
|
-
// src/SectionPanel.tsx
|
|
515
|
-
import { Divider, Group as Group4, Paper, Stack as Stack5, Text as Text4, Title as Title4 } from "@mantine/core";
|
|
516
|
-
import { Fragment, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
517
|
-
var toneBackgrounds = {
|
|
518
|
-
default: "var(--mantine-color-body)",
|
|
519
|
-
supporting: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
|
|
520
|
-
warning: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-9) 18%, var(--mantine-color-body)))",
|
|
521
|
-
critical: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 18%, var(--mantine-color-body)))"
|
|
522
|
-
};
|
|
523
|
-
function SectionPanel({
|
|
524
|
-
title,
|
|
525
|
-
description,
|
|
526
|
-
action,
|
|
527
|
-
children,
|
|
528
|
-
tone = "default",
|
|
529
|
-
id,
|
|
530
|
-
divided = true
|
|
531
|
-
}) {
|
|
532
|
-
return /* @__PURE__ */ jsx7(Paper, { id, withBorder: true, radius: "xl", p: "lg", style: { background: toneBackgrounds[tone] }, children: /* @__PURE__ */ jsxs5(Stack5, { gap: "md", children: [
|
|
533
|
-
title || description || action ? /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
534
|
-
/* @__PURE__ */ jsxs5(Group4, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
535
|
-
title || description ? /* @__PURE__ */ jsxs5(Stack5, { gap: 4, children: [
|
|
536
|
-
title ? /* @__PURE__ */ jsx7(Title4, { order: 3, children: title }) : null,
|
|
537
|
-
description ? /* @__PURE__ */ jsx7(Text4, { size: "sm", c: "dimmed", children: description }) : null
|
|
538
|
-
] }) : null,
|
|
539
|
-
action
|
|
540
|
-
] }),
|
|
541
|
-
divided ? /* @__PURE__ */ jsx7(Divider, {}) : null
|
|
542
|
-
] }) : null,
|
|
543
|
-
children
|
|
544
|
-
] }) });
|
|
545
|
-
}
|
|
546
|
-
|
|
547
829
|
// src/ConsumerSection.tsx
|
|
548
|
-
import { jsx as
|
|
830
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
549
831
|
function ConsumerSection({
|
|
550
832
|
title,
|
|
551
833
|
description,
|
|
@@ -553,22 +835,22 @@ function ConsumerSection({
|
|
|
553
835
|
children,
|
|
554
836
|
tone = "default"
|
|
555
837
|
}) {
|
|
556
|
-
return /* @__PURE__ */
|
|
838
|
+
return /* @__PURE__ */ jsx15(SectionPanel, { title, description, action, tone, children });
|
|
557
839
|
}
|
|
558
840
|
|
|
559
841
|
// src/ConsumerDashboardGrid.tsx
|
|
560
|
-
import { SimpleGrid } from "@mantine/core";
|
|
561
|
-
import { jsx as
|
|
842
|
+
import { SimpleGrid as SimpleGrid2 } from "@mantine/core";
|
|
843
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
562
844
|
function ConsumerDashboardGrid({
|
|
563
845
|
children,
|
|
564
846
|
columns = 3
|
|
565
847
|
}) {
|
|
566
|
-
return /* @__PURE__ */
|
|
848
|
+
return /* @__PURE__ */ jsx16(SimpleGrid2, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children });
|
|
567
849
|
}
|
|
568
850
|
|
|
569
851
|
// src/EditorialCard.tsx
|
|
570
|
-
import { Anchor, AspectRatio, Badge as
|
|
571
|
-
import { jsx as
|
|
852
|
+
import { Anchor as Anchor3, AspectRatio as AspectRatio2, Badge as Badge7, Box as Box4, Card as Card4, Group as Group9, Stack as Stack12, Text as Text11, Title as Title9 } from "@mantine/core";
|
|
853
|
+
import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
572
854
|
var tonePalette = {
|
|
573
855
|
default: {
|
|
574
856
|
accent: "violet",
|
|
@@ -588,8 +870,8 @@ var tonePalette = {
|
|
|
588
870
|
}
|
|
589
871
|
};
|
|
590
872
|
function EditorialMediaFallback({ compact }) {
|
|
591
|
-
return /* @__PURE__ */
|
|
592
|
-
|
|
873
|
+
return /* @__PURE__ */ jsx17(AspectRatio2, { ratio: compact ? 16 / 10 : 4 / 3, children: /* @__PURE__ */ jsx17(
|
|
874
|
+
Box4,
|
|
593
875
|
{
|
|
594
876
|
style: {
|
|
595
877
|
display: "grid",
|
|
@@ -599,7 +881,7 @@ function EditorialMediaFallback({ compact }) {
|
|
|
599
881
|
background: "var(--mantine-color-gray-0)",
|
|
600
882
|
borderRadius: "var(--mantine-radius-md)"
|
|
601
883
|
},
|
|
602
|
-
children: /* @__PURE__ */
|
|
884
|
+
children: /* @__PURE__ */ jsx17(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
|
|
603
885
|
}
|
|
604
886
|
) });
|
|
605
887
|
}
|
|
@@ -622,8 +904,8 @@ function EditorialCard({
|
|
|
622
904
|
const featured = variant === "featured";
|
|
623
905
|
const palette = tonePalette[tone];
|
|
624
906
|
const interactiveProps = href ? { component: "a", href } : onClick ? { component: "button", onClick, type: "button" } : {};
|
|
625
|
-
return /* @__PURE__ */
|
|
626
|
-
|
|
907
|
+
return /* @__PURE__ */ jsxs12(
|
|
908
|
+
Card4,
|
|
627
909
|
{
|
|
628
910
|
className: classNames?.root,
|
|
629
911
|
withBorder: true,
|
|
@@ -637,21 +919,21 @@ function EditorialCard({
|
|
|
637
919
|
cursor: href || onClick ? "pointer" : "default"
|
|
638
920
|
},
|
|
639
921
|
children: [
|
|
640
|
-
/* @__PURE__ */
|
|
641
|
-
/* @__PURE__ */
|
|
642
|
-
/* @__PURE__ */
|
|
643
|
-
/* @__PURE__ */
|
|
644
|
-
eyebrow ? /* @__PURE__ */
|
|
645
|
-
/* @__PURE__ */
|
|
922
|
+
/* @__PURE__ */ jsx17(Card4.Section, { className: classNames?.media, children: media ?? /* @__PURE__ */ jsx17(EditorialMediaFallback, { compact }) }),
|
|
923
|
+
/* @__PURE__ */ jsxs12(Stack12, { gap: "md", p: compact ? "md" : "lg", className: classNames?.body, children: [
|
|
924
|
+
/* @__PURE__ */ jsxs12(Group9, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
925
|
+
/* @__PURE__ */ jsxs12(Stack12, { gap: 4, flex: 1, children: [
|
|
926
|
+
eyebrow ? /* @__PURE__ */ jsx17(Text11, { size: "xs", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
927
|
+
/* @__PURE__ */ jsx17(Title9, { order: compact ? 4 : 3, className: classNames?.title, children: title })
|
|
646
928
|
] }),
|
|
647
|
-
badge ? typeof badge === "string" ? /* @__PURE__ */
|
|
929
|
+
badge ? typeof badge === "string" ? /* @__PURE__ */ jsx17(Badge7, { color: palette.accent, variant: "light", children: badge }) : badge : null
|
|
648
930
|
] }),
|
|
649
|
-
description ? /* @__PURE__ */
|
|
650
|
-
meta ? /* @__PURE__ */
|
|
651
|
-
href || onClick || ctaLabel ? /* @__PURE__ */
|
|
652
|
-
/* @__PURE__ */
|
|
653
|
-
/* @__PURE__ */
|
|
654
|
-
|
|
931
|
+
description ? /* @__PURE__ */ jsx17(Text11, { size: "sm", c: "dimmed", children: description }) : null,
|
|
932
|
+
meta ? /* @__PURE__ */ jsx17(Text11, { size: "sm", c: "dimmed", className: classNames?.meta, children: meta }) : null,
|
|
933
|
+
href || onClick || ctaLabel ? /* @__PURE__ */ jsxs12(Group9, { gap: 6, c: `${palette.accent}.7`, className: classNames?.action, children: [
|
|
934
|
+
/* @__PURE__ */ jsx17(Text11, { fw: 600, size: "sm", children: ctaLabel }),
|
|
935
|
+
/* @__PURE__ */ jsx17(
|
|
936
|
+
Anchor3,
|
|
655
937
|
{
|
|
656
938
|
component: "span",
|
|
657
939
|
underline: "never",
|
|
@@ -668,8 +950,8 @@ function EditorialCard({
|
|
|
668
950
|
}
|
|
669
951
|
|
|
670
952
|
// src/ProductCard.tsx
|
|
671
|
-
import { Badge as
|
|
672
|
-
import { jsx as
|
|
953
|
+
import { Badge as Badge8, Card as Card5, Group as Group10, Menu, Stack as Stack13, Text as Text12, ThemeIcon as ThemeIcon4, Title as Title10, ActionIcon as ActionIcon3 } from "@mantine/core";
|
|
954
|
+
import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
673
955
|
function ProductCard({
|
|
674
956
|
title,
|
|
675
957
|
description,
|
|
@@ -682,39 +964,39 @@ function ProductCard({
|
|
|
682
964
|
footer
|
|
683
965
|
}) {
|
|
684
966
|
const MoreIcon = GdsIcons.Menu;
|
|
685
|
-
return /* @__PURE__ */
|
|
967
|
+
return /* @__PURE__ */ jsx18(Card5, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ jsxs13(Stack13, { gap: "md", children: [
|
|
686
968
|
media,
|
|
687
|
-
/* @__PURE__ */
|
|
688
|
-
/* @__PURE__ */
|
|
689
|
-
icon ? /* @__PURE__ */
|
|
690
|
-
/* @__PURE__ */
|
|
691
|
-
/* @__PURE__ */
|
|
692
|
-
description ? /* @__PURE__ */
|
|
969
|
+
/* @__PURE__ */ jsxs13(Group10, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
|
|
970
|
+
/* @__PURE__ */ jsxs13(Group10, { align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
971
|
+
icon ? /* @__PURE__ */ jsx18(ThemeIcon4, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null,
|
|
972
|
+
/* @__PURE__ */ jsxs13(Stack13, { gap: 4, children: [
|
|
973
|
+
/* @__PURE__ */ jsx18(Title10, { order: 4, children: title }),
|
|
974
|
+
description ? /* @__PURE__ */ jsx18(Text12, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
|
|
693
975
|
] })
|
|
694
976
|
] }),
|
|
695
|
-
/* @__PURE__ */
|
|
696
|
-
typeof status === "string" ? /* @__PURE__ */
|
|
697
|
-
secondaryActions.length ? /* @__PURE__ */
|
|
698
|
-
/* @__PURE__ */
|
|
699
|
-
/* @__PURE__ */
|
|
700
|
-
(action) => action.href ? /* @__PURE__ */
|
|
977
|
+
/* @__PURE__ */ jsxs13(Group10, { gap: "xs", align: "center", wrap: "nowrap", children: [
|
|
978
|
+
typeof status === "string" ? /* @__PURE__ */ jsx18(Badge8, { variant: "light", children: status }) : status,
|
|
979
|
+
secondaryActions.length ? /* @__PURE__ */ jsxs13(Menu, { position: "bottom-end", withinPortal: true, children: [
|
|
980
|
+
/* @__PURE__ */ jsx18(Menu.Target, { children: /* @__PURE__ */ jsx18(ActionIcon3, { variant: "subtle", "aria-label": "More actions", children: /* @__PURE__ */ jsx18(MoreIcon, { size: "1rem" }) }) }),
|
|
981
|
+
/* @__PURE__ */ jsx18(Menu.Dropdown, { children: secondaryActions.map(
|
|
982
|
+
(action) => action.href ? /* @__PURE__ */ jsx18(Menu.Item, { component: "a", href: action.href, color: action.color, children: action.label }, action.label) : /* @__PURE__ */ jsx18(Menu.Item, { onClick: action.onClick, color: action.color, children: action.label }, action.label)
|
|
701
983
|
) })
|
|
702
984
|
] }) : null
|
|
703
985
|
] })
|
|
704
986
|
] }),
|
|
705
|
-
metadata.length ? /* @__PURE__ */
|
|
706
|
-
/* @__PURE__ */
|
|
707
|
-
/* @__PURE__ */
|
|
987
|
+
metadata.length ? /* @__PURE__ */ jsx18(Stack13, { gap: 6, children: metadata.map((item) => /* @__PURE__ */ jsxs13(Group10, { justify: "space-between", gap: "sm", children: [
|
|
988
|
+
/* @__PURE__ */ jsx18(Text12, { size: "sm", c: "dimmed", children: item.label }),
|
|
989
|
+
/* @__PURE__ */ jsx18(Text12, { size: "sm", fw: 500, ta: "right", children: item.value })
|
|
708
990
|
] }, item.label)) }) : null,
|
|
709
|
-
primaryAction ? /* @__PURE__ */
|
|
991
|
+
primaryAction ? /* @__PURE__ */ jsx18(Group10, { justify: "space-between", children: primaryAction }) : null,
|
|
710
992
|
footer
|
|
711
993
|
] }) });
|
|
712
994
|
}
|
|
713
995
|
|
|
714
996
|
// src/PublicProductCard.tsx
|
|
715
997
|
import { cloneElement, isValidElement } from "react";
|
|
716
|
-
import { AspectRatio as
|
|
717
|
-
import { jsx as
|
|
998
|
+
import { AspectRatio as AspectRatio3, Badge as Badge9, Card as Card6, Group as Group11, Skeleton, Stack as Stack14, Text as Text13, ThemeIcon as ThemeIcon5, Title as Title11 } from "@mantine/core";
|
|
999
|
+
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
718
1000
|
var stateConfig = {
|
|
719
1001
|
available: { label: "Available", color: "teal" },
|
|
720
1002
|
limited: { label: "Limited", color: "yellow" },
|
|
@@ -731,29 +1013,29 @@ function enhanceAction(action, disabled) {
|
|
|
731
1013
|
});
|
|
732
1014
|
}
|
|
733
1015
|
function ImageFallback({ compact }) {
|
|
734
|
-
return /* @__PURE__ */
|
|
735
|
-
|
|
1016
|
+
return /* @__PURE__ */ jsx19(AspectRatio3, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ jsx19(
|
|
1017
|
+
ThemeIcon5,
|
|
736
1018
|
{
|
|
737
1019
|
size: "100%",
|
|
738
1020
|
radius: "md",
|
|
739
1021
|
variant: "light",
|
|
740
1022
|
color: "gray",
|
|
741
1023
|
"aria-label": "No product image available",
|
|
742
|
-
children: /* @__PURE__ */
|
|
1024
|
+
children: /* @__PURE__ */ jsx19(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
|
|
743
1025
|
}
|
|
744
1026
|
) });
|
|
745
1027
|
}
|
|
746
1028
|
function LoadingCard({ compact }) {
|
|
747
|
-
return /* @__PURE__ */
|
|
748
|
-
/* @__PURE__ */
|
|
749
|
-
/* @__PURE__ */
|
|
750
|
-
/* @__PURE__ */
|
|
751
|
-
/* @__PURE__ */
|
|
752
|
-
/* @__PURE__ */
|
|
1029
|
+
return /* @__PURE__ */ jsx19(Card6, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ jsxs14(Stack14, { gap: "md", children: [
|
|
1030
|
+
/* @__PURE__ */ jsx19(AspectRatio3, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ jsx19(Skeleton, { radius: "md" }) }),
|
|
1031
|
+
/* @__PURE__ */ jsxs14(Stack14, { gap: "xs", children: [
|
|
1032
|
+
/* @__PURE__ */ jsx19(Skeleton, { height: 20, radius: "sm", width: "70%" }),
|
|
1033
|
+
/* @__PURE__ */ jsx19(Skeleton, { height: 14, radius: "sm", width: "100%" }),
|
|
1034
|
+
/* @__PURE__ */ jsx19(Skeleton, { height: 14, radius: "sm", width: "85%" })
|
|
753
1035
|
] }),
|
|
754
|
-
/* @__PURE__ */
|
|
755
|
-
/* @__PURE__ */
|
|
756
|
-
/* @__PURE__ */
|
|
1036
|
+
/* @__PURE__ */ jsxs14(Group11, { justify: "space-between", align: "center", children: [
|
|
1037
|
+
/* @__PURE__ */ jsx19(Skeleton, { height: 18, radius: "sm", width: 72 }),
|
|
1038
|
+
/* @__PURE__ */ jsx19(Skeleton, { height: 36, radius: "md", width: 120 })
|
|
757
1039
|
] })
|
|
758
1040
|
] }) });
|
|
759
1041
|
}
|
|
@@ -776,7 +1058,7 @@ function PublicProductCard({
|
|
|
776
1058
|
disabled = false
|
|
777
1059
|
}) {
|
|
778
1060
|
if (loading) {
|
|
779
|
-
return /* @__PURE__ */
|
|
1061
|
+
return /* @__PURE__ */ jsx19(LoadingCard, { compact });
|
|
780
1062
|
}
|
|
781
1063
|
const isActionDisabled = disabled || state === "sold-out";
|
|
782
1064
|
const resolvedPrimaryAction = enhanceAction(primaryAction, isActionDisabled);
|
|
@@ -789,45 +1071,45 @@ function PublicProductCard({
|
|
|
789
1071
|
const pickupHelper = helperKind === "pickup" ? helperText : pickupNote;
|
|
790
1072
|
const inventoryHelper = helperKind === "inventory" ? helperText : inventoryNote;
|
|
791
1073
|
const hasSupportingRegion = Boolean(price || supportingHelper || pickupHelper || inventoryHelper);
|
|
792
|
-
return /* @__PURE__ */
|
|
793
|
-
image ?? /* @__PURE__ */
|
|
794
|
-
/* @__PURE__ */
|
|
795
|
-
/* @__PURE__ */
|
|
796
|
-
/* @__PURE__ */
|
|
797
|
-
description ? /* @__PURE__ */
|
|
1074
|
+
return /* @__PURE__ */ jsx19(Card6, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ jsxs14(Stack14, { gap: compact ? "sm" : "md", children: [
|
|
1075
|
+
image ?? /* @__PURE__ */ jsx19(ImageFallback, { compact }),
|
|
1076
|
+
/* @__PURE__ */ jsxs14(Group11, { justify: "space-between", align: "flex-start", wrap: "nowrap", gap: "sm", children: [
|
|
1077
|
+
/* @__PURE__ */ jsxs14(Stack14, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
|
|
1078
|
+
/* @__PURE__ */ jsx19(Title11, { order: compact ? 5 : 4, lineClamp: 2, children: title }),
|
|
1079
|
+
description ? /* @__PURE__ */ jsx19(Text13, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
798
1080
|
] }),
|
|
799
|
-
/* @__PURE__ */
|
|
1081
|
+
/* @__PURE__ */ jsx19(Badge9, { variant: "light", color: stateBadge.color, children: stateBadge.label })
|
|
800
1082
|
] }),
|
|
801
|
-
hasSupportingRegion ? /* @__PURE__ */
|
|
802
|
-
/* @__PURE__ */
|
|
803
|
-
price ? /* @__PURE__ */
|
|
804
|
-
supportingHelper ? /* @__PURE__ */
|
|
1083
|
+
hasSupportingRegion ? /* @__PURE__ */ jsxs14(Group11, { justify: "space-between", align: "flex-end", gap: "sm", wrap: "nowrap", children: [
|
|
1084
|
+
/* @__PURE__ */ jsxs14(Stack14, { gap: 2, style: { minWidth: 0, flex: 1 }, children: [
|
|
1085
|
+
price ? /* @__PURE__ */ jsx19(Text13, { fw: 700, size: compact ? "md" : "lg", children: price }) : null,
|
|
1086
|
+
supportingHelper ? /* @__PURE__ */ jsx19(Text13, { size: "xs", c: "dimmed", children: supportingHelper }) : null
|
|
805
1087
|
] }),
|
|
806
1088
|
resolvedPrimaryAction
|
|
807
|
-
] }) : resolvedPrimaryAction ? /* @__PURE__ */
|
|
808
|
-
pickupHelper || inventoryHelper || metadata.length ? /* @__PURE__ */
|
|
809
|
-
pickupHelper ? /* @__PURE__ */
|
|
810
|
-
/* @__PURE__ */
|
|
811
|
-
/* @__PURE__ */
|
|
1089
|
+
] }) : resolvedPrimaryAction ? /* @__PURE__ */ jsx19(Group11, { justify: "flex-end", children: resolvedPrimaryAction }) : null,
|
|
1090
|
+
pickupHelper || inventoryHelper || metadata.length ? /* @__PURE__ */ jsxs14(Stack14, { gap: 6, children: [
|
|
1091
|
+
pickupHelper ? /* @__PURE__ */ jsxs14(Group11, { justify: "space-between", gap: "sm", children: [
|
|
1092
|
+
/* @__PURE__ */ jsx19(Text13, { size: "sm", c: "dimmed", children: "Pickup" }),
|
|
1093
|
+
/* @__PURE__ */ jsx19(Text13, { size: "sm", fw: 500, ta: "right", children: pickupHelper })
|
|
812
1094
|
] }) : null,
|
|
813
|
-
inventoryHelper ? /* @__PURE__ */
|
|
814
|
-
/* @__PURE__ */
|
|
815
|
-
/* @__PURE__ */
|
|
1095
|
+
inventoryHelper ? /* @__PURE__ */ jsxs14(Group11, { justify: "space-between", gap: "sm", children: [
|
|
1096
|
+
/* @__PURE__ */ jsx19(Text13, { size: "sm", c: "dimmed", children: "Availability" }),
|
|
1097
|
+
/* @__PURE__ */ jsx19(Text13, { size: "sm", fw: 500, ta: "right", children: inventoryHelper })
|
|
816
1098
|
] }) : null,
|
|
817
|
-
metadata.map((item) => /* @__PURE__ */
|
|
818
|
-
/* @__PURE__ */
|
|
819
|
-
/* @__PURE__ */
|
|
1099
|
+
metadata.map((item) => /* @__PURE__ */ jsxs14(Group11, { justify: "space-between", gap: "sm", children: [
|
|
1100
|
+
/* @__PURE__ */ jsx19(Text13, { size: "sm", c: "dimmed", children: item.label }),
|
|
1101
|
+
/* @__PURE__ */ jsx19(Text13, { size: "sm", fw: 500, ta: "right", children: item.value })
|
|
820
1102
|
] }, item.label))
|
|
821
1103
|
] }) : null,
|
|
822
|
-
resolvedSecondaryAction ? /* @__PURE__ */
|
|
1104
|
+
resolvedSecondaryAction ? /* @__PURE__ */ jsx19(Group11, { justify: "flex-end", children: resolvedSecondaryAction }) : null
|
|
823
1105
|
] }) });
|
|
824
1106
|
}
|
|
825
1107
|
|
|
826
1108
|
// src/PublicFoodCard.tsx
|
|
827
1109
|
import { cloneElement as cloneElement2, isValidElement as isValidElement2 } from "react";
|
|
828
|
-
import { AspectRatio as
|
|
829
|
-
import { jsx as
|
|
830
|
-
var
|
|
1110
|
+
import { AspectRatio as AspectRatio4, Badge as Badge10, Card as Card7, Group as Group12, Skeleton as Skeleton2, Stack as Stack15, Text as Text14, ThemeIcon as ThemeIcon6, Title as Title12 } from "@mantine/core";
|
|
1111
|
+
import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1112
|
+
var ratioMap2 = {
|
|
831
1113
|
square: 1,
|
|
832
1114
|
dish: 4 / 3,
|
|
833
1115
|
landscape: 16 / 9
|
|
@@ -855,19 +1137,19 @@ function enhanceAction2(action, disabled) {
|
|
|
855
1137
|
});
|
|
856
1138
|
}
|
|
857
1139
|
function FoodImageFallback({ mediaRatio }) {
|
|
858
|
-
return /* @__PURE__ */
|
|
1140
|
+
return /* @__PURE__ */ jsx20(AspectRatio4, { ratio: ratioMap2[mediaRatio], children: /* @__PURE__ */ jsx20(ThemeIcon6, { size: "100%", radius: "md", variant: "light", color: "gray", "aria-label": "No food image available", children: /* @__PURE__ */ jsx20(GdsIcons.Gallery, { size: "2rem" }) }) });
|
|
859
1141
|
}
|
|
860
1142
|
function LoadingFoodCard({ mediaRatio }) {
|
|
861
|
-
return /* @__PURE__ */
|
|
862
|
-
/* @__PURE__ */
|
|
863
|
-
/* @__PURE__ */
|
|
864
|
-
/* @__PURE__ */
|
|
865
|
-
/* @__PURE__ */
|
|
866
|
-
/* @__PURE__ */
|
|
1143
|
+
return /* @__PURE__ */ jsx20(Card7, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ jsxs15(Stack15, { gap: "md", children: [
|
|
1144
|
+
/* @__PURE__ */ jsx20(AspectRatio4, { ratio: ratioMap2[mediaRatio], children: /* @__PURE__ */ jsx20(Skeleton2, { radius: "md" }) }),
|
|
1145
|
+
/* @__PURE__ */ jsxs15(Stack15, { gap: "xs", children: [
|
|
1146
|
+
/* @__PURE__ */ jsx20(Skeleton2, { height: 20, radius: "sm", width: "72%" }),
|
|
1147
|
+
/* @__PURE__ */ jsx20(Skeleton2, { height: 14, radius: "sm", width: "96%" }),
|
|
1148
|
+
/* @__PURE__ */ jsx20(Skeleton2, { height: 14, radius: "sm", width: "78%" })
|
|
867
1149
|
] }),
|
|
868
|
-
/* @__PURE__ */
|
|
869
|
-
/* @__PURE__ */
|
|
870
|
-
/* @__PURE__ */
|
|
1150
|
+
/* @__PURE__ */ jsxs15(Group12, { justify: "space-between", align: "center", children: [
|
|
1151
|
+
/* @__PURE__ */ jsx20(Skeleton2, { height: 18, radius: "sm", width: 96 }),
|
|
1152
|
+
/* @__PURE__ */ jsx20(Skeleton2, { height: 36, radius: "md", width: 112 })
|
|
871
1153
|
] })
|
|
872
1154
|
] }) });
|
|
873
1155
|
}
|
|
@@ -891,54 +1173,54 @@ function PublicFoodCard({
|
|
|
891
1173
|
disabled = false
|
|
892
1174
|
}) {
|
|
893
1175
|
if (loading) {
|
|
894
|
-
return /* @__PURE__ */
|
|
1176
|
+
return /* @__PURE__ */ jsx20(LoadingFoodCard, { mediaRatio });
|
|
895
1177
|
}
|
|
896
1178
|
const stateBadge = stateConfig2[state];
|
|
897
1179
|
const isActionDisabled = disabled || state === "sold-out" || state === "coming-soon";
|
|
898
1180
|
const resolvedPrimaryAction = enhanceAction2(primaryAction, isActionDisabled);
|
|
899
1181
|
const resolvedSecondaryAction = enhanceAction2(secondaryAction, disabled);
|
|
900
|
-
return /* @__PURE__ */
|
|
901
|
-
image ?? /* @__PURE__ */
|
|
902
|
-
markers.length > 0 || quantityHint ? /* @__PURE__ */
|
|
903
|
-
/* @__PURE__ */
|
|
904
|
-
quantityHint ? /* @__PURE__ */
|
|
1182
|
+
return /* @__PURE__ */ jsx20(Card7, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ jsxs15(Stack15, { gap: "md", children: [
|
|
1183
|
+
image ?? /* @__PURE__ */ jsx20(FoodImageFallback, { mediaRatio }),
|
|
1184
|
+
markers.length > 0 || quantityHint ? /* @__PURE__ */ jsxs15(Group12, { justify: "space-between", align: "center", wrap: "wrap", gap: "xs", children: [
|
|
1185
|
+
/* @__PURE__ */ jsx20(Group12, { gap: "xs", wrap: "wrap", children: markers.map((marker) => /* @__PURE__ */ jsx20(Badge10, { variant: "light", color: markerToneMap[marker.tone ?? "default"], children: marker.label }, marker.id)) }),
|
|
1186
|
+
quantityHint ? /* @__PURE__ */ jsx20(Text14, { size: "xs", fw: 600, c: "dimmed", children: quantityHint }) : null
|
|
905
1187
|
] }) : null,
|
|
906
|
-
/* @__PURE__ */
|
|
907
|
-
/* @__PURE__ */
|
|
908
|
-
/* @__PURE__ */
|
|
909
|
-
description ? /* @__PURE__ */
|
|
1188
|
+
/* @__PURE__ */ jsxs15(Group12, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
1189
|
+
/* @__PURE__ */ jsxs15(Stack15, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
|
|
1190
|
+
/* @__PURE__ */ jsx20(Title12, { order: 4, lineClamp: 2, children: title }),
|
|
1191
|
+
description ? /* @__PURE__ */ jsx20(Text14, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
|
|
910
1192
|
] }),
|
|
911
|
-
/* @__PURE__ */
|
|
1193
|
+
/* @__PURE__ */ jsx20(Badge10, { variant: "light", color: stateBadge.color, children: stateBadge.label })
|
|
912
1194
|
] }),
|
|
913
|
-
/* @__PURE__ */
|
|
914
|
-
/* @__PURE__ */
|
|
915
|
-
price ? /* @__PURE__ */
|
|
916
|
-
priceNote ? /* @__PURE__ */
|
|
917
|
-
helperText ? /* @__PURE__ */
|
|
1195
|
+
/* @__PURE__ */ jsxs15(Group12, { justify: "space-between", align: "flex-end", gap: "sm", wrap: "nowrap", children: [
|
|
1196
|
+
/* @__PURE__ */ jsxs15(Stack15, { gap: 2, style: { minWidth: 0, flex: 1 }, children: [
|
|
1197
|
+
price ? /* @__PURE__ */ jsx20(Text14, { fw: 800, size: "lg", children: price }) : null,
|
|
1198
|
+
priceNote ? /* @__PURE__ */ jsx20(Text14, { size: "xs", c: "dimmed", children: priceNote }) : null,
|
|
1199
|
+
helperText ? /* @__PURE__ */ jsx20(Text14, { size: "sm", c: "dimmed", children: helperText }) : null
|
|
918
1200
|
] }),
|
|
919
1201
|
resolvedPrimaryAction
|
|
920
1202
|
] }),
|
|
921
|
-
pickupNote || freshnessNote || metadata.length > 0 ? /* @__PURE__ */
|
|
922
|
-
pickupNote ? /* @__PURE__ */
|
|
923
|
-
/* @__PURE__ */
|
|
924
|
-
/* @__PURE__ */
|
|
1203
|
+
pickupNote || freshnessNote || metadata.length > 0 ? /* @__PURE__ */ jsxs15(Stack15, { gap: 6, children: [
|
|
1204
|
+
pickupNote ? /* @__PURE__ */ jsxs15(Group12, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
1205
|
+
/* @__PURE__ */ jsx20(Text14, { size: "sm", c: "dimmed", children: "Pickup" }),
|
|
1206
|
+
/* @__PURE__ */ jsx20(Text14, { size: "sm", fw: 500, ta: "right", children: pickupNote })
|
|
925
1207
|
] }) : null,
|
|
926
|
-
freshnessNote ? /* @__PURE__ */
|
|
927
|
-
/* @__PURE__ */
|
|
928
|
-
/* @__PURE__ */
|
|
1208
|
+
freshnessNote ? /* @__PURE__ */ jsxs15(Group12, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
1209
|
+
/* @__PURE__ */ jsx20(Text14, { size: "sm", c: "dimmed", children: "Freshness" }),
|
|
1210
|
+
/* @__PURE__ */ jsx20(Text14, { size: "sm", fw: 500, ta: "right", children: freshnessNote })
|
|
929
1211
|
] }) : null,
|
|
930
|
-
metadata.map((item) => /* @__PURE__ */
|
|
1212
|
+
metadata.map((item) => /* @__PURE__ */ jsx20(Group12, { justify: "space-between", align: "flex-start", gap: "sm", children: /* @__PURE__ */ jsxs15(Group12, { gap: "xs", wrap: "nowrap", children: [
|
|
931
1213
|
item.icon,
|
|
932
|
-
/* @__PURE__ */
|
|
1214
|
+
/* @__PURE__ */ jsx20(Text14, { size: "sm", c: "dimmed", children: item.label })
|
|
933
1215
|
] }) }, item.id))
|
|
934
1216
|
] }) : null,
|
|
935
|
-
resolvedSecondaryAction ? /* @__PURE__ */
|
|
1217
|
+
resolvedSecondaryAction ? /* @__PURE__ */ jsx20(Group12, { justify: "flex-end", children: resolvedSecondaryAction }) : null
|
|
936
1218
|
] }) });
|
|
937
1219
|
}
|
|
938
1220
|
|
|
939
1221
|
// src/FoodMenuSection.tsx
|
|
940
|
-
import { Box as
|
|
941
|
-
import { Fragment as Fragment2, jsx as
|
|
1222
|
+
import { Box as Box5, Group as Group13, SimpleGrid as SimpleGrid3, Stack as Stack16, Text as Text15, Title as Title13 } from "@mantine/core";
|
|
1223
|
+
import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
942
1224
|
function FoodMenuSection({
|
|
943
1225
|
title,
|
|
944
1226
|
description,
|
|
@@ -953,7 +1235,7 @@ function FoodMenuSection({
|
|
|
953
1235
|
const normalizedCategories = (categories ?? []).filter(Boolean);
|
|
954
1236
|
const visibleCategories = showEmptyCategories ? normalizedCategories : normalizedCategories.filter((category) => category.items.length > 0);
|
|
955
1237
|
if (!visibleCategories.length) {
|
|
956
|
-
return emptyState ? /* @__PURE__ */
|
|
1238
|
+
return emptyState ? /* @__PURE__ */ jsx21(Fragment2, { children: emptyState }) : /* @__PURE__ */ jsx21(
|
|
957
1239
|
EmptyState,
|
|
958
1240
|
{
|
|
959
1241
|
title: "No active menu available",
|
|
@@ -961,23 +1243,23 @@ function FoodMenuSection({
|
|
|
961
1243
|
}
|
|
962
1244
|
);
|
|
963
1245
|
}
|
|
964
|
-
return /* @__PURE__ */
|
|
965
|
-
/* @__PURE__ */
|
|
966
|
-
/* @__PURE__ */
|
|
967
|
-
eyebrow ? /* @__PURE__ */
|
|
968
|
-
/* @__PURE__ */
|
|
969
|
-
description ? /* @__PURE__ */
|
|
970
|
-
sectionNote ? /* @__PURE__ */
|
|
1246
|
+
return /* @__PURE__ */ jsx21(Box5, { component: "section", "aria-label": typeof title === "string" ? title : "Food menu section", children: /* @__PURE__ */ jsxs16(Stack16, { gap: "xl", children: [
|
|
1247
|
+
/* @__PURE__ */ jsxs16(Group13, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
1248
|
+
/* @__PURE__ */ jsxs16(Stack16, { gap: 4, children: [
|
|
1249
|
+
eyebrow ? /* @__PURE__ */ jsx21(Text15, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
1250
|
+
/* @__PURE__ */ jsx21(Title13, { order: 2, children: title }),
|
|
1251
|
+
description ? /* @__PURE__ */ jsx21(Text15, { size: "sm", c: "dimmed", maw: 760, children: description }) : null,
|
|
1252
|
+
sectionNote ? /* @__PURE__ */ jsx21(Text15, { size: "sm", c: "dimmed", children: sectionNote }) : null
|
|
971
1253
|
] }),
|
|
972
1254
|
action
|
|
973
1255
|
] }),
|
|
974
|
-
/* @__PURE__ */
|
|
975
|
-
/* @__PURE__ */
|
|
976
|
-
/* @__PURE__ */
|
|
977
|
-
category.description ? /* @__PURE__ */
|
|
978
|
-
category.helperNote ? /* @__PURE__ */
|
|
1256
|
+
/* @__PURE__ */ jsx21(Stack16, { gap: "xl", children: visibleCategories.map((category) => /* @__PURE__ */ jsxs16(Stack16, { gap: "md", children: [
|
|
1257
|
+
/* @__PURE__ */ jsxs16(Stack16, { gap: 4, children: [
|
|
1258
|
+
/* @__PURE__ */ jsx21(Title13, { order: 3, children: category.title }),
|
|
1259
|
+
category.description ? /* @__PURE__ */ jsx21(Text15, { size: "sm", c: "dimmed", children: category.description }) : null,
|
|
1260
|
+
category.helperNote ? /* @__PURE__ */ jsx21(Text15, { size: "sm", c: "dimmed", children: category.helperNote }) : null
|
|
979
1261
|
] }),
|
|
980
|
-
category.items.length ? /* @__PURE__ */
|
|
1262
|
+
category.items.length ? /* @__PURE__ */ jsx21(SimpleGrid3, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: category.items.map((item) => /* @__PURE__ */ jsx21(PublicFoodCard, { ...item }, item.id)) }) : /* @__PURE__ */ jsx21(
|
|
981
1263
|
EmptyState,
|
|
982
1264
|
{
|
|
983
1265
|
title: "No items in this category",
|
|
@@ -988,110 +1270,9 @@ function FoodMenuSection({
|
|
|
988
1270
|
] }) });
|
|
989
1271
|
}
|
|
990
1272
|
|
|
991
|
-
// src/ListingCard.tsx
|
|
992
|
-
import { ActionIcon as ActionIcon3, AspectRatio as AspectRatio4, Badge as Badge8, Card as Card7, Group as Group10, Stack as Stack11, Text as Text10, ThemeIcon as ThemeIcon5, Title as Title10 } from "@mantine/core";
|
|
993
|
-
import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
994
|
-
var ratioMap2 = {
|
|
995
|
-
"1:1": 1,
|
|
996
|
-
"4:3": 4 / 3,
|
|
997
|
-
"16:9": 16 / 9
|
|
998
|
-
};
|
|
999
|
-
var toneColorMap = {
|
|
1000
|
-
default: void 0,
|
|
1001
|
-
positive: "teal",
|
|
1002
|
-
warning: "orange",
|
|
1003
|
-
muted: "gray"
|
|
1004
|
-
};
|
|
1005
|
-
function ListingImageFallback({ mediaRatio }) {
|
|
1006
|
-
return /* @__PURE__ */ jsx15(AspectRatio4, { ratio: ratioMap2[mediaRatio], children: /* @__PURE__ */ jsx15(
|
|
1007
|
-
ThemeIcon5,
|
|
1008
|
-
{
|
|
1009
|
-
size: "100%",
|
|
1010
|
-
radius: "md",
|
|
1011
|
-
variant: "light",
|
|
1012
|
-
color: "gray",
|
|
1013
|
-
"aria-label": "No listing image available",
|
|
1014
|
-
children: /* @__PURE__ */ jsx15(GdsIcons.Gallery, { size: "2rem" })
|
|
1015
|
-
}
|
|
1016
|
-
) });
|
|
1017
|
-
}
|
|
1018
|
-
function ListingAffordance({ affordance }) {
|
|
1019
|
-
const config = GdsVocabulary[affordance.action];
|
|
1020
|
-
const Icon = config.icon;
|
|
1021
|
-
const label = affordance.ariaLabel ?? getSemanticActionLabel(affordance.action);
|
|
1022
|
-
if (affordance.href) {
|
|
1023
|
-
return /* @__PURE__ */ jsx15(
|
|
1024
|
-
ActionIcon3,
|
|
1025
|
-
{
|
|
1026
|
-
component: "a",
|
|
1027
|
-
href: affordance.href,
|
|
1028
|
-
variant: "subtle",
|
|
1029
|
-
size: "lg",
|
|
1030
|
-
"aria-label": label,
|
|
1031
|
-
disabled: affordance.disabled,
|
|
1032
|
-
children: /* @__PURE__ */ jsx15(Icon, { size: "1rem", stroke: 1.75 })
|
|
1033
|
-
}
|
|
1034
|
-
);
|
|
1035
|
-
}
|
|
1036
|
-
return /* @__PURE__ */ jsx15(
|
|
1037
|
-
ActionIcon3,
|
|
1038
|
-
{
|
|
1039
|
-
variant: "subtle",
|
|
1040
|
-
size: "lg",
|
|
1041
|
-
"aria-label": label,
|
|
1042
|
-
onClick: affordance.onClick,
|
|
1043
|
-
disabled: affordance.disabled,
|
|
1044
|
-
children: /* @__PURE__ */ jsx15(Icon, { size: "1rem", stroke: 1.75 })
|
|
1045
|
-
}
|
|
1046
|
-
);
|
|
1047
|
-
}
|
|
1048
|
-
function ListingCard({
|
|
1049
|
-
title,
|
|
1050
|
-
href,
|
|
1051
|
-
description,
|
|
1052
|
-
image,
|
|
1053
|
-
mediaRatio = "4:3",
|
|
1054
|
-
metadata = [],
|
|
1055
|
-
featured = false,
|
|
1056
|
-
sponsoredDisclosure,
|
|
1057
|
-
price,
|
|
1058
|
-
primaryAction,
|
|
1059
|
-
saveAction,
|
|
1060
|
-
shareAction,
|
|
1061
|
-
compact = false
|
|
1062
|
-
}) {
|
|
1063
|
-
const titleContent = href && typeof title === "string" ? /* @__PURE__ */ jsx15(Text10, { component: "a", href, inherit: true, td: "none", children: title }) : title;
|
|
1064
|
-
return /* @__PURE__ */ jsx15(Card7, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ jsxs11(Stack11, { gap: compact ? "sm" : "md", children: [
|
|
1065
|
-
image ?? /* @__PURE__ */ jsx15(ListingImageFallback, { mediaRatio }),
|
|
1066
|
-
featured || sponsoredDisclosure ? /* @__PURE__ */ jsxs11(Group10, { justify: "space-between", gap: "sm", wrap: "wrap", children: [
|
|
1067
|
-
featured ? /* @__PURE__ */ jsx15(Badge8, { variant: "light", color: "violet", children: "Featured" }) : /* @__PURE__ */ jsx15("span", {}),
|
|
1068
|
-
sponsoredDisclosure ? /* @__PURE__ */ jsx15(Text10, { size: "xs", c: "dimmed", children: sponsoredDisclosure }) : null
|
|
1069
|
-
] }) : null,
|
|
1070
|
-
/* @__PURE__ */ jsxs11(Stack11, { gap: 4, children: [
|
|
1071
|
-
/* @__PURE__ */ jsx15(Title10, { order: compact ? 5 : 4, lineClamp: 2, children: titleContent }),
|
|
1072
|
-
description ? /* @__PURE__ */ jsx15(Text10, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
|
|
1073
|
-
] }),
|
|
1074
|
-
metadata.length ? /* @__PURE__ */ jsx15(Stack11, { gap: "xs", children: metadata.map((item) => /* @__PURE__ */ jsxs11(Group10, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "nowrap", children: [
|
|
1075
|
-
/* @__PURE__ */ jsxs11(Group10, { gap: "xs", wrap: "nowrap", style: { minWidth: 0, flex: 1 }, children: [
|
|
1076
|
-
item.icon,
|
|
1077
|
-
/* @__PURE__ */ jsx15(Text10, { size: "sm", c: item.tone ? toneColorMap[item.tone] : "dimmed", lineClamp: 1, children: item.label })
|
|
1078
|
-
] }),
|
|
1079
|
-
item.value ? /* @__PURE__ */ jsx15(Text10, { size: "sm", fw: 500, ta: "right", children: item.value }) : null
|
|
1080
|
-
] }, item.id)) }) : null,
|
|
1081
|
-
/* @__PURE__ */ jsxs11(Group10, { justify: "space-between", align: "center", gap: "sm", wrap: "wrap", children: [
|
|
1082
|
-
/* @__PURE__ */ jsx15(Stack11, { gap: 2, style: { minWidth: 0, flex: 1 }, children: price ? /* @__PURE__ */ jsx15(Text10, { fw: 700, size: compact ? "md" : "lg", children: price }) : null }),
|
|
1083
|
-
/* @__PURE__ */ jsxs11(Group10, { gap: "xs", wrap: "nowrap", justify: "flex-end", style: { marginInlineStart: "auto" }, children: [
|
|
1084
|
-
saveAction ? /* @__PURE__ */ jsx15(ListingAffordance, { affordance: saveAction }) : null,
|
|
1085
|
-
shareAction ? /* @__PURE__ */ jsx15(ListingAffordance, { affordance: shareAction }) : null,
|
|
1086
|
-
primaryAction
|
|
1087
|
-
] })
|
|
1088
|
-
] })
|
|
1089
|
-
] }) });
|
|
1090
|
-
}
|
|
1091
|
-
|
|
1092
1273
|
// src/DataToolbar.tsx
|
|
1093
|
-
import { Badge as
|
|
1094
|
-
import { jsx as
|
|
1274
|
+
import { Badge as Badge11, Group as Group14, Stack as Stack17 } from "@mantine/core";
|
|
1275
|
+
import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1095
1276
|
function DataToolbar({
|
|
1096
1277
|
searchSlot,
|
|
1097
1278
|
filterSlot,
|
|
@@ -1100,20 +1281,20 @@ function DataToolbar({
|
|
|
1100
1281
|
createAction,
|
|
1101
1282
|
activeFilters = []
|
|
1102
1283
|
}) {
|
|
1103
|
-
return /* @__PURE__ */
|
|
1104
|
-
/* @__PURE__ */
|
|
1105
|
-
/* @__PURE__ */
|
|
1284
|
+
return /* @__PURE__ */ jsxs17(Stack17, { gap: "sm", children: [
|
|
1285
|
+
/* @__PURE__ */ jsxs17(Group14, { justify: "space-between", align: "flex-start", gap: "sm", children: [
|
|
1286
|
+
/* @__PURE__ */ jsxs17(Group14, { flex: 1, align: "flex-start", gap: "sm", children: [
|
|
1106
1287
|
searchSlot,
|
|
1107
1288
|
filterSlot,
|
|
1108
1289
|
sortSlot
|
|
1109
1290
|
] }),
|
|
1110
|
-
/* @__PURE__ */
|
|
1291
|
+
/* @__PURE__ */ jsxs17(Group14, { gap: "sm", children: [
|
|
1111
1292
|
resetAction,
|
|
1112
1293
|
createAction
|
|
1113
1294
|
] })
|
|
1114
1295
|
] }),
|
|
1115
|
-
activeFilters.length ? /* @__PURE__ */
|
|
1116
|
-
|
|
1296
|
+
activeFilters.length ? /* @__PURE__ */ jsx22(Group14, { gap: "xs", children: activeFilters.map((filter) => /* @__PURE__ */ jsx22(
|
|
1297
|
+
Badge11,
|
|
1117
1298
|
{
|
|
1118
1299
|
variant: "light",
|
|
1119
1300
|
rightSection: filter.onRemove ? "\xD7" : void 0,
|
|
@@ -1126,51 +1307,9 @@ function DataToolbar({
|
|
|
1126
1307
|
] });
|
|
1127
1308
|
}
|
|
1128
1309
|
|
|
1129
|
-
// src/StateBlock.tsx
|
|
1130
|
-
import { Loader, Stack as Stack13, Text as Text11, ThemeIcon as ThemeIcon6, Title as Title11 } from "@mantine/core";
|
|
1131
|
-
import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1132
|
-
var variantConfig = {
|
|
1133
|
-
loading: { color: "violet", icon: /* @__PURE__ */ jsx17(Loader, { size: "sm" }) },
|
|
1134
|
-
empty: { color: "gray", icon: /* @__PURE__ */ jsx17(GdsIcons.Inbox, { size: "1.1rem" }) },
|
|
1135
|
-
error: { color: "red", icon: /* @__PURE__ */ jsx17(GdsIcons.Danger, { size: "1.1rem" }) },
|
|
1136
|
-
permission: { color: "orange", icon: /* @__PURE__ */ jsx17(GdsIcons.Verify, { size: "1.1rem" }) },
|
|
1137
|
-
disabled: { color: "gray", icon: /* @__PURE__ */ jsx17(GdsIcons.Toggle, { size: "1.1rem" }) },
|
|
1138
|
-
success: { color: "teal", icon: /* @__PURE__ */ jsx17(GdsIcons.Success, { size: "1.1rem" }) },
|
|
1139
|
-
info: { color: "blue", icon: /* @__PURE__ */ jsx17(GdsIcons.Info, { size: "1.1rem" }) },
|
|
1140
|
-
"not-enough-data": { color: "yellow", icon: /* @__PURE__ */ jsx17(GdsIcons.Analytics, { size: "1.1rem" }) }
|
|
1141
|
-
};
|
|
1142
|
-
function StateBlock({
|
|
1143
|
-
variant,
|
|
1144
|
-
title,
|
|
1145
|
-
description,
|
|
1146
|
-
action,
|
|
1147
|
-
icon,
|
|
1148
|
-
compact = false
|
|
1149
|
-
}) {
|
|
1150
|
-
const config = variantConfig[variant];
|
|
1151
|
-
return /* @__PURE__ */ jsxs13(
|
|
1152
|
-
Stack13,
|
|
1153
|
-
{
|
|
1154
|
-
align: compact ? "flex-start" : "center",
|
|
1155
|
-
justify: "center",
|
|
1156
|
-
gap: "md",
|
|
1157
|
-
py: compact ? "md" : "xl",
|
|
1158
|
-
ta: compact ? "left" : "center",
|
|
1159
|
-
children: [
|
|
1160
|
-
/* @__PURE__ */ jsx17(ThemeIcon6, { variant: "light", color: config.color, size: compact ? "lg" : "xl", radius: "xl", children: icon ?? config.icon }),
|
|
1161
|
-
/* @__PURE__ */ jsxs13(Stack13, { gap: 6, align: compact ? "flex-start" : "center", children: [
|
|
1162
|
-
/* @__PURE__ */ jsx17(Title11, { order: compact ? 4 : 3, children: title }),
|
|
1163
|
-
description ? /* @__PURE__ */ jsx17(Text11, { c: "dimmed", maw: compact ? void 0 : 480, children: description }) : null
|
|
1164
|
-
] }),
|
|
1165
|
-
action
|
|
1166
|
-
]
|
|
1167
|
-
}
|
|
1168
|
-
);
|
|
1169
|
-
}
|
|
1170
|
-
|
|
1171
1310
|
// src/BrowseSurface.tsx
|
|
1172
|
-
import { Badge as
|
|
1173
|
-
import { jsx as
|
|
1311
|
+
import { Badge as Badge12, Box as Box6, Button as Button2, Group as Group15, Paper as Paper4, SimpleGrid as SimpleGrid4, Stack as Stack18, Text as Text16, Title as Title14 } from "@mantine/core";
|
|
1312
|
+
import { jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1174
1313
|
function BrowseSurface({
|
|
1175
1314
|
eyebrow,
|
|
1176
1315
|
title,
|
|
@@ -1204,22 +1343,22 @@ function BrowseSurface({
|
|
|
1204
1343
|
}));
|
|
1205
1344
|
let body = content;
|
|
1206
1345
|
if (loading) {
|
|
1207
|
-
body = /* @__PURE__ */
|
|
1346
|
+
body = /* @__PURE__ */ jsx23(StateBlock, { variant: "loading", title: loadingTitle, description: loadingDescription, compact: true });
|
|
1208
1347
|
} else if (error) {
|
|
1209
|
-
body = /* @__PURE__ */
|
|
1348
|
+
body = /* @__PURE__ */ jsx23(StateBlock, { variant: "error", title: errorTitle, description: error, action: errorAction ?? emptyAction, compact: true });
|
|
1210
1349
|
} else if (empty) {
|
|
1211
|
-
body = /* @__PURE__ */
|
|
1350
|
+
body = /* @__PURE__ */ jsx23(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, action: emptyAction, compact: true });
|
|
1212
1351
|
}
|
|
1213
|
-
return /* @__PURE__ */
|
|
1214
|
-
/* @__PURE__ */
|
|
1215
|
-
/* @__PURE__ */
|
|
1216
|
-
/* @__PURE__ */
|
|
1217
|
-
eyebrow ? /* @__PURE__ */
|
|
1218
|
-
/* @__PURE__ */
|
|
1219
|
-
description ? /* @__PURE__ */
|
|
1352
|
+
return /* @__PURE__ */ jsxs18(Stack18, { gap: "lg", children: [
|
|
1353
|
+
/* @__PURE__ */ jsx23(Paper4, { withBorder: true, radius: "xl", p: "xl", children: /* @__PURE__ */ jsxs18(Stack18, { gap: "lg", children: [
|
|
1354
|
+
/* @__PURE__ */ jsxs18(Group15, { justify: "space-between", align: "flex-start", gap: "md", children: [
|
|
1355
|
+
/* @__PURE__ */ jsxs18(Stack18, { gap: "xs", maw: 760, children: [
|
|
1356
|
+
eyebrow ? /* @__PURE__ */ jsx23(Text16, { size: "xs", fw: 700, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.18em" }, children: eyebrow }) : null,
|
|
1357
|
+
/* @__PURE__ */ jsx23(Title14, { order: 1, children: title }),
|
|
1358
|
+
description ? /* @__PURE__ */ jsx23(Text16, { size: "lg", c: "dimmed", children: description }) : null
|
|
1220
1359
|
] }),
|
|
1221
|
-
/* @__PURE__ */
|
|
1222
|
-
typeof resultCount === "number" ? /* @__PURE__ */
|
|
1360
|
+
/* @__PURE__ */ jsxs18(Stack18, { align: "flex-end", gap: "xs", children: [
|
|
1361
|
+
typeof resultCount === "number" ? /* @__PURE__ */ jsxs18(Badge12, { size: "lg", radius: "xl", variant: "light", color: "violet", children: [
|
|
1223
1362
|
resultCount,
|
|
1224
1363
|
" ",
|
|
1225
1364
|
resultLabel
|
|
@@ -1227,9 +1366,9 @@ function BrowseSurface({
|
|
|
1227
1366
|
primaryControls
|
|
1228
1367
|
] })
|
|
1229
1368
|
] }),
|
|
1230
|
-
scopeOptions.length ? /* @__PURE__ */
|
|
1231
|
-
/* @__PURE__ */
|
|
1232
|
-
/* @__PURE__ */
|
|
1369
|
+
scopeOptions.length ? /* @__PURE__ */ jsxs18(Stack18, { gap: "xs", children: [
|
|
1370
|
+
/* @__PURE__ */ jsx23(Text16, { size: "sm", fw: 600, c: "dimmed", children: scopeLabel }),
|
|
1371
|
+
/* @__PURE__ */ jsx23(Group15, { gap: "xs", wrap: "wrap", children: scopeOptions.map((option) => /* @__PURE__ */ jsx23(
|
|
1233
1372
|
Button2,
|
|
1234
1373
|
{
|
|
1235
1374
|
variant: option.active ? "filled" : "default",
|
|
@@ -1242,30 +1381,30 @@ function BrowseSurface({
|
|
|
1242
1381
|
option.id
|
|
1243
1382
|
)) })
|
|
1244
1383
|
] }) : null,
|
|
1245
|
-
locationControls ? /* @__PURE__ */
|
|
1246
|
-
/* @__PURE__ */
|
|
1384
|
+
locationControls ? /* @__PURE__ */ jsxs18(Stack18, { gap: "xs", children: [
|
|
1385
|
+
/* @__PURE__ */ jsx23(Text16, { size: "sm", fw: 600, c: "dimmed", children: "Location" }),
|
|
1247
1386
|
locationControls
|
|
1248
1387
|
] }) : null,
|
|
1249
|
-
toolbar || sortControl ? /* @__PURE__ */
|
|
1250
|
-
toolbar ? /* @__PURE__ */
|
|
1388
|
+
toolbar || sortControl ? /* @__PURE__ */ jsxs18(SimpleGrid4, { cols: { base: 1, lg: sortControl ? 2 : 1 }, spacing: "md", children: [
|
|
1389
|
+
toolbar ? /* @__PURE__ */ jsx23(
|
|
1251
1390
|
DataToolbar,
|
|
1252
1391
|
{
|
|
1253
1392
|
...toolbar,
|
|
1254
1393
|
activeFilters: toolbarFilters.length ? toolbarFilters : toolbar.fallbackActiveFilters
|
|
1255
1394
|
}
|
|
1256
|
-
) : /* @__PURE__ */
|
|
1257
|
-
sortControl ? /* @__PURE__ */
|
|
1258
|
-
/* @__PURE__ */
|
|
1395
|
+
) : /* @__PURE__ */ jsx23(Box6, {}),
|
|
1396
|
+
sortControl ? /* @__PURE__ */ jsxs18(Stack18, { gap: "xs", align: "stretch", children: [
|
|
1397
|
+
/* @__PURE__ */ jsx23(Text16, { size: "sm", fw: 600, c: "dimmed", children: "Sort" }),
|
|
1259
1398
|
sortControl
|
|
1260
1399
|
] }) : null
|
|
1261
1400
|
] }) : null,
|
|
1262
|
-
mobileFilters ? /* @__PURE__ */
|
|
1263
|
-
/* @__PURE__ */
|
|
1401
|
+
mobileFilters ? /* @__PURE__ */ jsxs18(Stack18, { hiddenFrom: "lg", gap: "xs", children: [
|
|
1402
|
+
/* @__PURE__ */ jsx23(Text16, { size: "sm", fw: 600, c: "dimmed", children: "Filters" }),
|
|
1264
1403
|
mobileFilters
|
|
1265
1404
|
] }) : null,
|
|
1266
|
-
filterDrawer ? /* @__PURE__ */
|
|
1267
|
-
activeFilters.length ? /* @__PURE__ */
|
|
1268
|
-
|
|
1405
|
+
filterDrawer ? /* @__PURE__ */ jsx23(Box6, { hiddenFrom: "lg", children: filterDrawer }) : null,
|
|
1406
|
+
activeFilters.length ? /* @__PURE__ */ jsx23(Group15, { gap: "xs", wrap: "wrap", children: activeFilters.map((filter) => /* @__PURE__ */ jsx23(
|
|
1407
|
+
Badge12,
|
|
1269
1408
|
{
|
|
1270
1409
|
variant: "light",
|
|
1271
1410
|
color: "violet",
|
|
@@ -1281,76 +1420,9 @@ function BrowseSurface({
|
|
|
1281
1420
|
] });
|
|
1282
1421
|
}
|
|
1283
1422
|
|
|
1284
|
-
// src/AccentPanel.tsx
|
|
1285
|
-
import { Badge as Badge11, Box as Box5, Group as Group13, Paper as Paper3, Stack as Stack15, Text as Text13, Title as Title13 } from "@mantine/core";
|
|
1286
|
-
import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1287
|
-
var toneStyles = {
|
|
1288
|
-
gray: {
|
|
1289
|
-
bg: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-gray-7) 88%, black))",
|
|
1290
|
-
border: "light-dark(var(--mantine-color-gray-2), color-mix(in srgb, var(--mantine-color-gray-4) 70%, transparent))",
|
|
1291
|
-
color: "light-dark(var(--mantine-color-gray-9), var(--mantine-color-gray-0))"
|
|
1292
|
-
},
|
|
1293
|
-
violet: {
|
|
1294
|
-
bg: "light-dark(var(--mantine-color-violet-0), color-mix(in srgb, var(--mantine-color-violet-9) 70%, black))",
|
|
1295
|
-
border: "light-dark(var(--mantine-color-violet-2), color-mix(in srgb, var(--mantine-color-violet-4) 75%, transparent))",
|
|
1296
|
-
color: "light-dark(var(--mantine-color-violet-9), var(--mantine-color-violet-0))"
|
|
1297
|
-
},
|
|
1298
|
-
green: {
|
|
1299
|
-
bg: "light-dark(var(--mantine-color-green-0), color-mix(in srgb, var(--mantine-color-green-9) 72%, black))",
|
|
1300
|
-
border: "light-dark(var(--mantine-color-green-2), color-mix(in srgb, var(--mantine-color-green-4) 78%, transparent))",
|
|
1301
|
-
color: "light-dark(var(--mantine-color-green-9), var(--mantine-color-green-0))"
|
|
1302
|
-
},
|
|
1303
|
-
red: {
|
|
1304
|
-
bg: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 72%, black))",
|
|
1305
|
-
border: "light-dark(var(--mantine-color-red-2), color-mix(in srgb, var(--mantine-color-red-4) 78%, transparent))",
|
|
1306
|
-
color: "light-dark(var(--mantine-color-red-9), var(--mantine-color-red-0))"
|
|
1307
|
-
},
|
|
1308
|
-
amber: {
|
|
1309
|
-
bg: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-8) 78%, black))",
|
|
1310
|
-
border: "light-dark(var(--mantine-color-yellow-3), color-mix(in srgb, var(--mantine-color-yellow-5) 70%, transparent))",
|
|
1311
|
-
color: "light-dark(var(--mantine-color-yellow-9), var(--mantine-color-yellow-0))"
|
|
1312
|
-
},
|
|
1313
|
-
blue: {
|
|
1314
|
-
bg: "light-dark(var(--mantine-color-blue-0), color-mix(in srgb, var(--mantine-color-blue-9) 74%, black))",
|
|
1315
|
-
border: "light-dark(var(--mantine-color-blue-2), color-mix(in srgb, var(--mantine-color-blue-4) 75%, transparent))",
|
|
1316
|
-
color: "light-dark(var(--mantine-color-blue-9), var(--mantine-color-blue-0))"
|
|
1317
|
-
}
|
|
1318
|
-
};
|
|
1319
|
-
function resolveAccentPanelStyles(tone = "violet", variant = "subtle") {
|
|
1320
|
-
const token = toneStyles[tone];
|
|
1321
|
-
if (variant === "soft-outline") {
|
|
1322
|
-
return {
|
|
1323
|
-
backgroundColor: "light-dark(var(--mantine-color-body), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
|
|
1324
|
-
border: `1px solid ${token.border}`,
|
|
1325
|
-
color: token.color
|
|
1326
|
-
};
|
|
1327
|
-
}
|
|
1328
|
-
return {
|
|
1329
|
-
backgroundColor: token.bg,
|
|
1330
|
-
border: `1px solid ${token.border}`,
|
|
1331
|
-
color: token.color
|
|
1332
|
-
};
|
|
1333
|
-
}
|
|
1334
|
-
function AccentPanel({
|
|
1335
|
-
tone = "violet",
|
|
1336
|
-
variant = "subtle",
|
|
1337
|
-
title,
|
|
1338
|
-
badge,
|
|
1339
|
-
children
|
|
1340
|
-
}) {
|
|
1341
|
-
const styles = resolveAccentPanelStyles(tone, variant);
|
|
1342
|
-
return /* @__PURE__ */ jsx19(Paper3, { withBorder: true, radius: "lg", p: "lg", style: styles, children: /* @__PURE__ */ jsxs15(Stack15, { gap: "sm", children: [
|
|
1343
|
-
title || badge ? /* @__PURE__ */ jsxs15(Group13, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
|
|
1344
|
-
title ? /* @__PURE__ */ jsx19(Title13, { order: 4, c: "inherit", children: title }) : /* @__PURE__ */ jsx19(Box5, {}),
|
|
1345
|
-
badge ? typeof badge === "string" ? /* @__PURE__ */ jsx19(Badge11, { color: tone === "amber" ? "yellow" : tone, variant: "filled", children: badge }) : badge : null
|
|
1346
|
-
] }) : null,
|
|
1347
|
-
typeof children === "string" ? /* @__PURE__ */ jsx19(Text13, { c: "inherit", children }) : /* @__PURE__ */ jsx19(Box5, { c: "inherit", children })
|
|
1348
|
-
] }) });
|
|
1349
|
-
}
|
|
1350
|
-
|
|
1351
1423
|
// src/DetailProfileShell.tsx
|
|
1352
|
-
import { Divider as Divider2, Paper as
|
|
1353
|
-
import { Fragment as Fragment3, jsx as
|
|
1424
|
+
import { Divider as Divider2, Paper as Paper5, Stack as Stack19 } from "@mantine/core";
|
|
1425
|
+
import { Fragment as Fragment3, jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1354
1426
|
function DetailProfileShell({
|
|
1355
1427
|
mode = "page",
|
|
1356
1428
|
hero,
|
|
@@ -1361,31 +1433,31 @@ function DetailProfileShell({
|
|
|
1361
1433
|
showDividers = true
|
|
1362
1434
|
}) {
|
|
1363
1435
|
const content = sections.filter(Boolean);
|
|
1364
|
-
return /* @__PURE__ */
|
|
1436
|
+
return /* @__PURE__ */ jsx24(Paper5, { withBorder: mode === "drawer", radius: mode === "drawer" ? "xl" : "md", p: padding, children: /* @__PURE__ */ jsxs19(Stack19, { gap: "lg", children: [
|
|
1365
1437
|
hero,
|
|
1366
1438
|
actions,
|
|
1367
|
-
content.map((section, index) => /* @__PURE__ */
|
|
1368
|
-
index > 0 && showDividers ? /* @__PURE__ */
|
|
1439
|
+
content.map((section, index) => /* @__PURE__ */ jsxs19(Stack19, { gap: "lg", children: [
|
|
1440
|
+
index > 0 && showDividers ? /* @__PURE__ */ jsx24(Divider2, {}) : null,
|
|
1369
1441
|
section
|
|
1370
1442
|
] }, index)),
|
|
1371
|
-
related ? /* @__PURE__ */
|
|
1372
|
-
content.length && showDividers ? /* @__PURE__ */
|
|
1443
|
+
related ? /* @__PURE__ */ jsxs19(Fragment3, { children: [
|
|
1444
|
+
content.length && showDividers ? /* @__PURE__ */ jsx24(Divider2, {}) : null,
|
|
1373
1445
|
related
|
|
1374
1446
|
] }) : null
|
|
1375
1447
|
] }) });
|
|
1376
1448
|
}
|
|
1377
1449
|
|
|
1378
1450
|
// src/PublicNav.tsx
|
|
1379
|
-
import { Anchor as
|
|
1380
|
-
import { jsx as
|
|
1451
|
+
import { Anchor as Anchor4, Group as Group16 } from "@mantine/core";
|
|
1452
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1381
1453
|
function PublicNav({ items, activeId, renderLink }) {
|
|
1382
|
-
return /* @__PURE__ */
|
|
1454
|
+
return /* @__PURE__ */ jsx25(Group16, { component: "nav", "aria-label": "Primary", gap: "lg", wrap: "nowrap", children: items.map((item) => {
|
|
1383
1455
|
const active = item.id === activeId;
|
|
1384
1456
|
if (renderLink) {
|
|
1385
|
-
return /* @__PURE__ */
|
|
1457
|
+
return /* @__PURE__ */ jsx25("span", { children: renderLink(item, active) }, item.id);
|
|
1386
1458
|
}
|
|
1387
|
-
return /* @__PURE__ */
|
|
1388
|
-
|
|
1459
|
+
return /* @__PURE__ */ jsx25(
|
|
1460
|
+
Anchor4,
|
|
1389
1461
|
{
|
|
1390
1462
|
href: item.href,
|
|
1391
1463
|
"aria-current": active ? "page" : void 0,
|
|
@@ -1402,16 +1474,16 @@ function PublicNav({ items, activeId, renderLink }) {
|
|
|
1402
1474
|
}
|
|
1403
1475
|
|
|
1404
1476
|
// src/PublicShell.tsx
|
|
1405
|
-
import { AppShell, Box as
|
|
1406
|
-
import { jsx as
|
|
1477
|
+
import { AppShell, Box as Box7, Burger, Container, Group as Group17, Stack as Stack20, Text as Text17 } from "@mantine/core";
|
|
1478
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1407
1479
|
function InlineMobileNavigation({
|
|
1408
1480
|
mobileNavigation,
|
|
1409
1481
|
className,
|
|
1410
1482
|
mode
|
|
1411
1483
|
}) {
|
|
1412
|
-
return /* @__PURE__ */
|
|
1413
|
-
/* @__PURE__ */
|
|
1414
|
-
|
|
1484
|
+
return /* @__PURE__ */ jsxs20(Box7, { component: "details", hiddenFrom: "sm", className, children: [
|
|
1485
|
+
/* @__PURE__ */ jsxs20(
|
|
1486
|
+
Box7,
|
|
1415
1487
|
{
|
|
1416
1488
|
component: "summary",
|
|
1417
1489
|
"aria-label": mode === "drawer" ? "Open site navigation drawer" : "Open site navigation",
|
|
@@ -1423,13 +1495,13 @@ function InlineMobileNavigation({
|
|
|
1423
1495
|
gap: "0.5rem"
|
|
1424
1496
|
},
|
|
1425
1497
|
children: [
|
|
1426
|
-
/* @__PURE__ */
|
|
1427
|
-
/* @__PURE__ */
|
|
1498
|
+
/* @__PURE__ */ jsx26(Burger, { opened: false, "aria-hidden": true }),
|
|
1499
|
+
/* @__PURE__ */ jsx26(Text17, { size: "sm", fw: 600, children: "Menu" })
|
|
1428
1500
|
]
|
|
1429
1501
|
}
|
|
1430
1502
|
),
|
|
1431
|
-
/* @__PURE__ */
|
|
1432
|
-
|
|
1503
|
+
/* @__PURE__ */ jsx26(
|
|
1504
|
+
Box7,
|
|
1433
1505
|
{
|
|
1434
1506
|
mt: "sm",
|
|
1435
1507
|
p: "sm",
|
|
@@ -1438,7 +1510,7 @@ function InlineMobileNavigation({
|
|
|
1438
1510
|
border: "1px solid var(--mantine-color-default-border)",
|
|
1439
1511
|
background: mode === "drawer" ? "light-dark(var(--mantine-color-white), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))" : "var(--mantine-color-body)"
|
|
1440
1512
|
},
|
|
1441
|
-
children: /* @__PURE__ */
|
|
1513
|
+
children: /* @__PURE__ */ jsx26(Stack20, { gap: "sm", children: mobileNavigation })
|
|
1442
1514
|
}
|
|
1443
1515
|
)
|
|
1444
1516
|
] });
|
|
@@ -1459,13 +1531,13 @@ function PublicShell({
|
|
|
1459
1531
|
mobileNavigationMode = "sheet",
|
|
1460
1532
|
classNames
|
|
1461
1533
|
}) {
|
|
1462
|
-
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */
|
|
1534
|
+
const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */ jsx26(PublicNav, { items: navItems, activeId: activeNavId }) : null);
|
|
1463
1535
|
const containerSize = maxContentWidth ?? (compact ? "md" : "lg");
|
|
1464
1536
|
const headerHeight = headerVariant === "compact" ? 64 : headerVariant === "branded-quiet" ? 88 : 72;
|
|
1465
1537
|
const mainPadding = headerVariant === "compact" ? "lg" : "xl";
|
|
1466
1538
|
const usesInlineMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode !== "sheet";
|
|
1467
1539
|
const usesSheetMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode === "sheet";
|
|
1468
|
-
return /* @__PURE__ */
|
|
1540
|
+
return /* @__PURE__ */ jsxs20(
|
|
1469
1541
|
AppShell,
|
|
1470
1542
|
{
|
|
1471
1543
|
className: classNames?.root,
|
|
@@ -1473,16 +1545,16 @@ function PublicShell({
|
|
|
1473
1545
|
footer: usesSheetMobileNavigation ? { height: 68 } : void 0,
|
|
1474
1546
|
padding: 0,
|
|
1475
1547
|
children: [
|
|
1476
|
-
/* @__PURE__ */
|
|
1477
|
-
|
|
1548
|
+
/* @__PURE__ */ jsx26(AppShell.Header, { withBorder: headerBordered, className: classNames?.header, "data-header-variant": headerVariant, children: /* @__PURE__ */ jsx26(Container, { size: containerSize, h: "100%", py: headerVariant === "branded-quiet" ? "sm" : 0, children: /* @__PURE__ */ jsxs20(
|
|
1549
|
+
Group17,
|
|
1478
1550
|
{
|
|
1479
1551
|
h: "100%",
|
|
1480
1552
|
justify: "space-between",
|
|
1481
1553
|
wrap: "nowrap",
|
|
1482
1554
|
gap: headerVariant === "compact" ? "sm" : "lg",
|
|
1483
1555
|
children: [
|
|
1484
|
-
/* @__PURE__ */
|
|
1485
|
-
usesInlineMobileNavigation ? /* @__PURE__ */
|
|
1556
|
+
/* @__PURE__ */ jsxs20(Group17, { wrap: "nowrap", gap: headerVariant === "compact" ? "xs" : "sm", className: classNames?.brand, children: [
|
|
1557
|
+
usesInlineMobileNavigation ? /* @__PURE__ */ jsx26(
|
|
1486
1558
|
InlineMobileNavigation,
|
|
1487
1559
|
{
|
|
1488
1560
|
mobileNavigation,
|
|
@@ -1490,17 +1562,17 @@ function PublicShell({
|
|
|
1490
1562
|
mode: mobileNavigationMode
|
|
1491
1563
|
}
|
|
1492
1564
|
) : null,
|
|
1493
|
-
/* @__PURE__ */
|
|
1565
|
+
/* @__PURE__ */ jsx26(Box7, { children: brand })
|
|
1494
1566
|
] }),
|
|
1495
|
-
/* @__PURE__ */
|
|
1496
|
-
/* @__PURE__ */
|
|
1567
|
+
/* @__PURE__ */ jsx26(Group17, { visibleFrom: "sm", gap: headerVariant === "compact" ? "md" : "lg", className: classNames?.navigation, children: resolvedNavigation }),
|
|
1568
|
+
/* @__PURE__ */ jsx26(Group17, { gap: "sm", className: classNames?.actions, children: actions })
|
|
1497
1569
|
]
|
|
1498
1570
|
}
|
|
1499
1571
|
) }) }),
|
|
1500
|
-
usesSheetMobileNavigation ? /* @__PURE__ */
|
|
1501
|
-
/* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1503
|
-
footer ? /* @__PURE__ */
|
|
1572
|
+
usesSheetMobileNavigation ? /* @__PURE__ */ jsx26(AppShell.Footer, { withBorder: true, children: /* @__PURE__ */ jsx26(Container, { size: containerSize, h: "100%", children: /* @__PURE__ */ jsx26(Group17, { h: "100%", justify: "space-around", wrap: "nowrap", children: mobileNavigation }) }) }) : null,
|
|
1573
|
+
/* @__PURE__ */ jsxs20(AppShell.Main, { children: [
|
|
1574
|
+
/* @__PURE__ */ jsx26(Container, { size: containerSize, py: mainPadding, className: classNames?.content, children: /* @__PURE__ */ jsx26(Stack20, { gap: "xl", children }) }),
|
|
1575
|
+
footer ? /* @__PURE__ */ jsx26(Box7, { component: typeof footer === "string" ? "footer" : "div", py: "xl", children: /* @__PURE__ */ jsx26(Container, { size: containerSize, children: typeof footer === "string" ? /* @__PURE__ */ jsx26(Text17, { size: "sm", c: "dimmed", children: footer }) : footer }) }) : null
|
|
1504
1576
|
] })
|
|
1505
1577
|
]
|
|
1506
1578
|
}
|
|
@@ -1508,18 +1580,18 @@ function PublicShell({
|
|
|
1508
1580
|
}
|
|
1509
1581
|
|
|
1510
1582
|
// src/PublicSiteFooter.tsx
|
|
1511
|
-
import { Group as
|
|
1512
|
-
import { jsx as
|
|
1583
|
+
import { Group as Group18, Stack as Stack21, Text as Text18 } from "@mantine/core";
|
|
1584
|
+
import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1513
1585
|
function PublicSiteFooter({ children, meta }) {
|
|
1514
|
-
return /* @__PURE__ */
|
|
1515
|
-
children ? /* @__PURE__ */
|
|
1516
|
-
meta ? /* @__PURE__ */
|
|
1586
|
+
return /* @__PURE__ */ jsxs21(Stack21, { component: "footer", gap: "xs", children: [
|
|
1587
|
+
children ? /* @__PURE__ */ jsx27(Text18, { size: "sm", children }) : null,
|
|
1588
|
+
meta ? /* @__PURE__ */ jsx27(Group18, { gap: "sm", children: /* @__PURE__ */ jsx27(Text18, { size: "xs", c: "dimmed", children: meta }) }) : null
|
|
1517
1589
|
] });
|
|
1518
1590
|
}
|
|
1519
1591
|
|
|
1520
1592
|
// src/PublicBrandFooter.tsx
|
|
1521
|
-
import { Box as
|
|
1522
|
-
import { Fragment as Fragment4, jsx as
|
|
1593
|
+
import { Box as Box8, Divider as Divider3, Grid, Group as Group19, Paper as Paper6, Stack as Stack22, Text as Text19, Title as Title15 } from "@mantine/core";
|
|
1594
|
+
import { Fragment as Fragment4, jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1523
1595
|
function PublicBrandFooter({
|
|
1524
1596
|
media,
|
|
1525
1597
|
brandTitle,
|
|
@@ -1534,8 +1606,8 @@ function PublicBrandFooter({
|
|
|
1534
1606
|
const mediaSpan = layoutVariant === "immersive-media" ? 5 : 4;
|
|
1535
1607
|
const primarySpan = media ? layoutVariant === "balanced-quote" ? 4 : 4 : secondary ? 6 : 12;
|
|
1536
1608
|
const secondarySpan = media ? Math.max(3, 12 - mediaSpan - primarySpan) : Math.max(4, 12 - primarySpan);
|
|
1537
|
-
return /* @__PURE__ */
|
|
1538
|
-
|
|
1609
|
+
return /* @__PURE__ */ jsx28(
|
|
1610
|
+
Paper6,
|
|
1539
1611
|
{
|
|
1540
1612
|
component: "footer",
|
|
1541
1613
|
withBorder: true,
|
|
@@ -1543,19 +1615,19 @@ function PublicBrandFooter({
|
|
|
1543
1615
|
p: compact ? "lg" : "xl",
|
|
1544
1616
|
className: classNames?.root,
|
|
1545
1617
|
"data-layout-variant": layoutVariant,
|
|
1546
|
-
children: /* @__PURE__ */
|
|
1547
|
-
/* @__PURE__ */
|
|
1548
|
-
media ? /* @__PURE__ */
|
|
1549
|
-
/* @__PURE__ */
|
|
1550
|
-
brandTitle ? /* @__PURE__ */
|
|
1551
|
-
description ? /* @__PURE__ */
|
|
1552
|
-
actions ? /* @__PURE__ */
|
|
1618
|
+
children: /* @__PURE__ */ jsxs22(Stack22, { gap: "lg", children: [
|
|
1619
|
+
/* @__PURE__ */ jsxs22(Grid, { gutter: compact ? "lg" : "xl", align: "flex-start", children: [
|
|
1620
|
+
media ? /* @__PURE__ */ jsx28(Grid.Col, { span: { base: 12, md: mediaSpan }, children: /* @__PURE__ */ jsx28(Box8, { className: classNames?.media, children: media }) }) : null,
|
|
1621
|
+
/* @__PURE__ */ jsx28(Grid.Col, { span: { base: 12, md: primarySpan }, children: /* @__PURE__ */ jsxs22(Stack22, { gap: compact ? "xs" : "sm", className: classNames?.primary, children: [
|
|
1622
|
+
brandTitle ? /* @__PURE__ */ jsx28(Title15, { order: 4, children: brandTitle }) : null,
|
|
1623
|
+
description ? /* @__PURE__ */ jsx28(Text19, { c: "dimmed", children: description }) : null,
|
|
1624
|
+
actions ? /* @__PURE__ */ jsx28(Box8, { children: actions }) : null
|
|
1553
1625
|
] }) }),
|
|
1554
|
-
secondary ? /* @__PURE__ */
|
|
1626
|
+
secondary ? /* @__PURE__ */ jsx28(Grid.Col, { span: { base: 12, md: secondarySpan }, children: /* @__PURE__ */ jsx28(Stack22, { gap: compact ? "xs" : "sm", className: classNames?.secondary, children: secondary }) }) : null
|
|
1555
1627
|
] }),
|
|
1556
|
-
legal ? /* @__PURE__ */
|
|
1557
|
-
/* @__PURE__ */
|
|
1558
|
-
/* @__PURE__ */
|
|
1628
|
+
legal ? /* @__PURE__ */ jsxs22(Fragment4, { children: [
|
|
1629
|
+
/* @__PURE__ */ jsx28(Divider3, {}),
|
|
1630
|
+
/* @__PURE__ */ jsx28(Group19, { justify: "space-between", gap: "sm", wrap: "wrap", className: classNames?.legal, children: typeof legal === "string" ? /* @__PURE__ */ jsx28(Text19, { size: "sm", c: "dimmed", children: legal }) : legal })
|
|
1559
1631
|
] }) : null
|
|
1560
1632
|
] })
|
|
1561
1633
|
}
|
|
@@ -1563,8 +1635,8 @@ function PublicBrandFooter({
|
|
|
1563
1635
|
}
|
|
1564
1636
|
|
|
1565
1637
|
// src/AuthShell.tsx
|
|
1566
|
-
import { Box as
|
|
1567
|
-
import { jsx as
|
|
1638
|
+
import { Box as Box9, Card as Card8, Container as Container2, Divider as Divider4, Group as Group20, Stack as Stack23, Text as Text20, Title as Title16 } from "@mantine/core";
|
|
1639
|
+
import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1568
1640
|
function AuthShell({
|
|
1569
1641
|
title,
|
|
1570
1642
|
description,
|
|
@@ -1576,28 +1648,28 @@ function AuthShell({
|
|
|
1576
1648
|
dividerLabel = "Or continue with your account",
|
|
1577
1649
|
children
|
|
1578
1650
|
}) {
|
|
1579
|
-
return /* @__PURE__ */
|
|
1580
|
-
brand || headerActions ? /* @__PURE__ */
|
|
1581
|
-
brand ? /* @__PURE__ */
|
|
1582
|
-
headerActions ? /* @__PURE__ */
|
|
1651
|
+
return /* @__PURE__ */ jsx29(Box9, { py: { base: "xl", md: "4rem" }, children: /* @__PURE__ */ jsx29(Container2, { size: "xs", children: /* @__PURE__ */ jsxs23(Stack23, { gap: "xl", children: [
|
|
1652
|
+
brand || headerActions ? /* @__PURE__ */ jsxs23(Group20, { justify: brand && headerActions ? "space-between" : "center", align: "center", children: [
|
|
1653
|
+
brand ? /* @__PURE__ */ jsx29(Box9, { children: brand }) : /* @__PURE__ */ jsx29(Box9, {}),
|
|
1654
|
+
headerActions ? /* @__PURE__ */ jsx29(Group20, { gap: "sm", children: headerActions }) : null
|
|
1583
1655
|
] }) : null,
|
|
1584
|
-
/* @__PURE__ */
|
|
1585
|
-
/* @__PURE__ */
|
|
1586
|
-
/* @__PURE__ */
|
|
1587
|
-
description ? /* @__PURE__ */
|
|
1656
|
+
/* @__PURE__ */ jsx29(Card8, { withBorder: true, radius: "lg", padding: "xl", children: /* @__PURE__ */ jsxs23(Stack23, { gap: "lg", children: [
|
|
1657
|
+
/* @__PURE__ */ jsxs23(Stack23, { gap: "xs", ta: "center", children: [
|
|
1658
|
+
/* @__PURE__ */ jsx29(Title16, { order: 2, children: title }),
|
|
1659
|
+
description ? /* @__PURE__ */ jsx29(Text20, { c: "dimmed", size: "sm", children: description }) : null
|
|
1588
1660
|
] }),
|
|
1589
|
-
socialAuth ? /* @__PURE__ */
|
|
1590
|
-
socialAuth ? /* @__PURE__ */
|
|
1661
|
+
socialAuth ? /* @__PURE__ */ jsx29(Box9, { children: socialAuth }) : null,
|
|
1662
|
+
socialAuth ? /* @__PURE__ */ jsx29(Divider4, { label: dividerLabel, labelPosition: "center" }) : null,
|
|
1591
1663
|
children,
|
|
1592
|
-
helper ? /* @__PURE__ */
|
|
1664
|
+
helper ? /* @__PURE__ */ jsx29(Text20, { size: "sm", c: "dimmed", ta: "center", children: helper }) : null
|
|
1593
1665
|
] }) }),
|
|
1594
|
-
footer ? /* @__PURE__ */
|
|
1666
|
+
footer ? /* @__PURE__ */ jsx29(Text20, { size: "sm", c: "dimmed", ta: "center", children: footer }) : null
|
|
1595
1667
|
] }) }) });
|
|
1596
1668
|
}
|
|
1597
1669
|
|
|
1598
1670
|
// src/SocialAuthButtons.tsx
|
|
1599
|
-
import { Button as Button3, Divider as Divider5, Group as
|
|
1600
|
-
import { jsx as
|
|
1671
|
+
import { Button as Button3, Divider as Divider5, Group as Group21, SimpleGrid as SimpleGrid5, Stack as Stack24, Text as Text21, ThemeIcon as ThemeIcon7 } from "@mantine/core";
|
|
1672
|
+
import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1601
1673
|
var providerConfig = {
|
|
1602
1674
|
google: { label: "Google", mark: "G", color: "red" },
|
|
1603
1675
|
apple: { label: "Apple", mark: "A", color: "dark" },
|
|
@@ -1611,26 +1683,26 @@ var providerConfig = {
|
|
|
1611
1683
|
};
|
|
1612
1684
|
function ProviderMark({ id }) {
|
|
1613
1685
|
const config = providerConfig[id] ?? { label: id, mark: id.slice(0, 2).toUpperCase(), color: "gray" };
|
|
1614
|
-
return /* @__PURE__ */
|
|
1686
|
+
return /* @__PURE__ */ jsx30(ThemeIcon7, { variant: "light", color: config.color, radius: "xl", size: "md", "aria-hidden": "true", children: /* @__PURE__ */ jsx30(Text21, { size: "xs", fw: 700, children: config.mark }) });
|
|
1615
1687
|
}
|
|
1616
1688
|
function SocialAuthButton({ provider, compact = false }) {
|
|
1617
1689
|
const config = providerConfig[provider.id] ?? { label: provider.id, mark: provider.id.slice(0, 2).toUpperCase(), color: "gray" };
|
|
1618
1690
|
const label = provider.label ?? `Continue with ${config.label}`;
|
|
1619
1691
|
const buttonProps = provider.href ? { component: "a", href: provider.href } : { onClick: provider.onClick };
|
|
1620
|
-
return /* @__PURE__ */
|
|
1692
|
+
return /* @__PURE__ */ jsx30(
|
|
1621
1693
|
Button3,
|
|
1622
1694
|
{
|
|
1623
1695
|
variant: "default",
|
|
1624
1696
|
justify: "space-between",
|
|
1625
1697
|
fullWidth: true,
|
|
1626
1698
|
size: compact ? "sm" : "md",
|
|
1627
|
-
leftSection: /* @__PURE__ */
|
|
1699
|
+
leftSection: /* @__PURE__ */ jsx30(ProviderMark, { id: provider.id }),
|
|
1628
1700
|
disabled: provider.disabled,
|
|
1629
1701
|
loading: provider.loading,
|
|
1630
1702
|
...buttonProps,
|
|
1631
|
-
children: /* @__PURE__ */
|
|
1632
|
-
/* @__PURE__ */
|
|
1633
|
-
provider.description ? /* @__PURE__ */
|
|
1703
|
+
children: /* @__PURE__ */ jsxs24(Stack24, { gap: 0, align: "flex-start", children: [
|
|
1704
|
+
/* @__PURE__ */ jsx30(Text21, { inherit: true, children: label }),
|
|
1705
|
+
provider.description ? /* @__PURE__ */ jsx30(Text21, { size: "xs", c: "dimmed", lh: 1.2, children: provider.description }) : null
|
|
1634
1706
|
] })
|
|
1635
1707
|
}
|
|
1636
1708
|
);
|
|
@@ -1645,54 +1717,54 @@ function SocialAuthButtons({
|
|
|
1645
1717
|
if (!providers.length) {
|
|
1646
1718
|
return null;
|
|
1647
1719
|
}
|
|
1648
|
-
const content = providers.map((provider) => /* @__PURE__ */
|
|
1649
|
-
return /* @__PURE__ */
|
|
1650
|
-
/* @__PURE__ */
|
|
1651
|
-
/* @__PURE__ */
|
|
1652
|
-
/* @__PURE__ */
|
|
1653
|
-
/* @__PURE__ */
|
|
1720
|
+
const content = providers.map((provider) => /* @__PURE__ */ jsx30(SocialAuthButton, { provider, compact }, provider.id));
|
|
1721
|
+
return /* @__PURE__ */ jsxs24(Stack24, { gap: "md", children: [
|
|
1722
|
+
/* @__PURE__ */ jsxs24(Stack24, { gap: 4, ta: "center", children: [
|
|
1723
|
+
/* @__PURE__ */ jsxs24(Group21, { justify: "center", gap: "xs", children: [
|
|
1724
|
+
/* @__PURE__ */ jsx30(GdsIcons.Login, { size: "1rem" }),
|
|
1725
|
+
/* @__PURE__ */ jsx30(Text21, { fw: 600, children: title })
|
|
1654
1726
|
] }),
|
|
1655
|
-
description ? /* @__PURE__ */
|
|
1727
|
+
description ? /* @__PURE__ */ jsx30(Text21, { size: "sm", c: "dimmed", children: description }) : null
|
|
1656
1728
|
] }),
|
|
1657
|
-
/* @__PURE__ */
|
|
1658
|
-
layout === "grid" ? /* @__PURE__ */
|
|
1729
|
+
/* @__PURE__ */ jsx30(Divider5, {}),
|
|
1730
|
+
layout === "grid" ? /* @__PURE__ */ jsx30(SimpleGrid5, { cols: { base: 1, sm: 2 }, spacing: "sm", children: content }) : /* @__PURE__ */ jsx30(Stack24, { gap: "sm", children: content })
|
|
1659
1731
|
] });
|
|
1660
1732
|
}
|
|
1661
1733
|
|
|
1662
1734
|
// src/ArticleShell.tsx
|
|
1663
|
-
import { Container as Container3, Group as
|
|
1664
|
-
import { jsx as
|
|
1735
|
+
import { Container as Container3, Group as Group22, Stack as Stack25, Text as Text22, Title as Title17 } from "@mantine/core";
|
|
1736
|
+
import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1665
1737
|
function ArticleShell({ eyebrow, title, lead, meta, sideRail, children }) {
|
|
1666
|
-
return /* @__PURE__ */
|
|
1667
|
-
/* @__PURE__ */
|
|
1668
|
-
/* @__PURE__ */
|
|
1669
|
-
eyebrow ? /* @__PURE__ */
|
|
1670
|
-
/* @__PURE__ */
|
|
1671
|
-
lead ? /* @__PURE__ */
|
|
1672
|
-
meta ? /* @__PURE__ */
|
|
1738
|
+
return /* @__PURE__ */ jsx31(Container3, { size: "lg", py: "xl", children: /* @__PURE__ */ jsxs25(Group22, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
1739
|
+
/* @__PURE__ */ jsxs25(Stack25, { gap: "lg", maw: 760, flex: 1, children: [
|
|
1740
|
+
/* @__PURE__ */ jsxs25(Stack25, { gap: "sm", children: [
|
|
1741
|
+
eyebrow ? /* @__PURE__ */ jsx31(Text22, { size: "sm", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
1742
|
+
/* @__PURE__ */ jsx31(Title17, { order: 1, children: title }),
|
|
1743
|
+
lead ? /* @__PURE__ */ jsx31(Text22, { size: "lg", c: "dimmed", children: lead }) : null,
|
|
1744
|
+
meta ? /* @__PURE__ */ jsx31(Group22, { gap: "md", children: meta }) : null
|
|
1673
1745
|
] }),
|
|
1674
|
-
/* @__PURE__ */
|
|
1746
|
+
/* @__PURE__ */ jsx31(Stack25, { gap: "md", children })
|
|
1675
1747
|
] }),
|
|
1676
|
-
sideRail ? /* @__PURE__ */
|
|
1748
|
+
sideRail ? /* @__PURE__ */ jsx31(Stack25, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
1677
1749
|
] }) });
|
|
1678
1750
|
}
|
|
1679
1751
|
|
|
1680
1752
|
// src/CtaButtonGroup.tsx
|
|
1681
|
-
import { Group as
|
|
1682
|
-
import { jsx as
|
|
1753
|
+
import { Group as Group23, Stack as Stack26 } from "@mantine/core";
|
|
1754
|
+
import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1683
1755
|
function CtaButtonGroup({ primary, secondary, tertiary }) {
|
|
1684
|
-
return /* @__PURE__ */
|
|
1685
|
-
/* @__PURE__ */
|
|
1686
|
-
/* @__PURE__ */
|
|
1687
|
-
secondary ? /* @__PURE__ */
|
|
1756
|
+
return /* @__PURE__ */ jsxs26(Stack26, { gap: "sm", children: [
|
|
1757
|
+
/* @__PURE__ */ jsxs26(Group23, { gap: "sm", align: "stretch", children: [
|
|
1758
|
+
/* @__PURE__ */ jsx32("div", { children: primary }),
|
|
1759
|
+
secondary ? /* @__PURE__ */ jsx32("div", { children: secondary }) : null
|
|
1688
1760
|
] }),
|
|
1689
|
-
tertiary ? /* @__PURE__ */
|
|
1761
|
+
tertiary ? /* @__PURE__ */ jsx32("div", { children: tertiary }) : null
|
|
1690
1762
|
] });
|
|
1691
1763
|
}
|
|
1692
1764
|
|
|
1693
1765
|
// src/DocsPageShell.tsx
|
|
1694
|
-
import { Anchor as
|
|
1695
|
-
import { jsx as
|
|
1766
|
+
import { Anchor as Anchor5, Breadcrumbs, Container as Container4, Group as Group24, Stack as Stack27, Text as Text23, Title as Title18 } from "@mantine/core";
|
|
1767
|
+
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1696
1768
|
function DocsPageShell({
|
|
1697
1769
|
breadcrumbs = [],
|
|
1698
1770
|
title,
|
|
@@ -1703,27 +1775,27 @@ function DocsPageShell({
|
|
|
1703
1775
|
footerNext,
|
|
1704
1776
|
children
|
|
1705
1777
|
}) {
|
|
1706
|
-
return /* @__PURE__ */
|
|
1707
|
-
/* @__PURE__ */
|
|
1708
|
-
breadcrumbs.length ? /* @__PURE__ */
|
|
1709
|
-
(crumb) => crumb.href ? /* @__PURE__ */
|
|
1778
|
+
return /* @__PURE__ */ jsx33(Container4, { fluid: true, py: "xl", px: "xl", children: /* @__PURE__ */ jsxs27(Group24, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
|
|
1779
|
+
/* @__PURE__ */ jsxs27(Stack27, { component: "article", gap: "lg", flex: 1, miw: 0, children: [
|
|
1780
|
+
breadcrumbs.length ? /* @__PURE__ */ jsx33(Breadcrumbs, { children: breadcrumbs.map(
|
|
1781
|
+
(crumb) => crumb.href ? /* @__PURE__ */ jsx33(Anchor5, { href: crumb.href, children: crumb.label }, `${crumb.label}-${crumb.href}`) : /* @__PURE__ */ jsx33(Text23, { children: crumb.label }, crumb.label)
|
|
1710
1782
|
) }) : null,
|
|
1711
|
-
/* @__PURE__ */
|
|
1712
|
-
eyebrow ? /* @__PURE__ */
|
|
1713
|
-
/* @__PURE__ */
|
|
1714
|
-
lead ? /* @__PURE__ */
|
|
1715
|
-
meta ? /* @__PURE__ */
|
|
1783
|
+
/* @__PURE__ */ jsxs27(Stack27, { gap: "sm", children: [
|
|
1784
|
+
eyebrow ? /* @__PURE__ */ jsx33(Text23, { size: "sm", fw: 700, c: "dimmed", children: eyebrow }) : null,
|
|
1785
|
+
/* @__PURE__ */ jsx33(Title18, { order: 1, children: title }),
|
|
1786
|
+
lead ? /* @__PURE__ */ jsx33(Text23, { size: "lg", c: "dimmed", maw: 920, children: lead }) : null,
|
|
1787
|
+
meta ? /* @__PURE__ */ jsx33(Group24, { gap: "md", children: meta }) : null
|
|
1716
1788
|
] }),
|
|
1717
|
-
/* @__PURE__ */
|
|
1718
|
-
footerNext ? /* @__PURE__ */
|
|
1789
|
+
/* @__PURE__ */ jsx33(Stack27, { gap: "md", children }),
|
|
1790
|
+
footerNext ? /* @__PURE__ */ jsx33(Anchor5, { href: footerNext.href, fw: 600, children: footerNext.label }) : null
|
|
1719
1791
|
] }),
|
|
1720
|
-
sideRail ? /* @__PURE__ */
|
|
1792
|
+
sideRail ? /* @__PURE__ */ jsx33(Stack27, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
|
|
1721
1793
|
] }) });
|
|
1722
1794
|
}
|
|
1723
1795
|
|
|
1724
1796
|
// src/EditorialHero.tsx
|
|
1725
|
-
import { Anchor as
|
|
1726
|
-
import { jsx as
|
|
1797
|
+
import { Anchor as Anchor6, AspectRatio as AspectRatio5, Box as Box10, Grid as Grid2, Group as Group25, Paper as Paper7, Skeleton as Skeleton3, Stack as Stack28, Text as Text24, ThemeIcon as ThemeIcon8, Title as Title19 } from "@mantine/core";
|
|
1798
|
+
import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1727
1799
|
function resolveActionVariant(action, index, seenPrimary) {
|
|
1728
1800
|
const requested = action.variant ?? (index === 0 ? "primary" : "secondary");
|
|
1729
1801
|
if (requested === "primary" && !seenPrimary) {
|
|
@@ -1735,8 +1807,8 @@ function resolveActionVariant(action, index, seenPrimary) {
|
|
|
1735
1807
|
return { variant: "default", seenPrimary };
|
|
1736
1808
|
}
|
|
1737
1809
|
function HeroAction({ action, variant }) {
|
|
1738
|
-
const content = /* @__PURE__ */
|
|
1739
|
-
|
|
1810
|
+
const content = /* @__PURE__ */ jsx34(
|
|
1811
|
+
Anchor6,
|
|
1740
1812
|
{
|
|
1741
1813
|
href: action.href,
|
|
1742
1814
|
onClick: action.onClick,
|
|
@@ -1760,8 +1832,8 @@ function HeroAction({ action, variant }) {
|
|
|
1760
1832
|
}
|
|
1761
1833
|
);
|
|
1762
1834
|
if (!action.href) {
|
|
1763
|
-
return /* @__PURE__ */
|
|
1764
|
-
|
|
1835
|
+
return /* @__PURE__ */ jsx34(
|
|
1836
|
+
Box10,
|
|
1765
1837
|
{
|
|
1766
1838
|
component: "button",
|
|
1767
1839
|
type: "button",
|
|
@@ -1788,22 +1860,22 @@ function HeroAction({ action, variant }) {
|
|
|
1788
1860
|
return content;
|
|
1789
1861
|
}
|
|
1790
1862
|
function LoadingHero({ compact }) {
|
|
1791
|
-
return /* @__PURE__ */
|
|
1792
|
-
/* @__PURE__ */
|
|
1793
|
-
/* @__PURE__ */
|
|
1794
|
-
/* @__PURE__ */
|
|
1795
|
-
/* @__PURE__ */
|
|
1796
|
-
/* @__PURE__ */
|
|
1797
|
-
/* @__PURE__ */
|
|
1798
|
-
/* @__PURE__ */
|
|
1799
|
-
/* @__PURE__ */
|
|
1863
|
+
return /* @__PURE__ */ jsx34(Paper7, { withBorder: true, radius: "xl", p: compact ? "lg" : "xl", children: /* @__PURE__ */ jsxs28(Grid2, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
1864
|
+
/* @__PURE__ */ jsx34(Grid2.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ jsxs28(Stack28, { gap: "md", children: [
|
|
1865
|
+
/* @__PURE__ */ jsx34(Skeleton3, { height: 16, width: 96, radius: "xl" }),
|
|
1866
|
+
/* @__PURE__ */ jsx34(Skeleton3, { height: 48, width: "90%", radius: "md" }),
|
|
1867
|
+
/* @__PURE__ */ jsx34(Skeleton3, { height: 18, width: "100%", radius: "md" }),
|
|
1868
|
+
/* @__PURE__ */ jsx34(Skeleton3, { height: 18, width: "82%", radius: "md" }),
|
|
1869
|
+
/* @__PURE__ */ jsxs28(Group25, { children: [
|
|
1870
|
+
/* @__PURE__ */ jsx34(Skeleton3, { height: 40, width: 140, radius: "md" }),
|
|
1871
|
+
/* @__PURE__ */ jsx34(Skeleton3, { height: 40, width: 140, radius: "md" })
|
|
1800
1872
|
] })
|
|
1801
1873
|
] }) }),
|
|
1802
|
-
/* @__PURE__ */
|
|
1874
|
+
/* @__PURE__ */ jsx34(Grid2.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ jsx34(AspectRatio5, { ratio: 16 / 11, children: /* @__PURE__ */ jsx34(Skeleton3, { radius: "lg" }) }) })
|
|
1803
1875
|
] }) });
|
|
1804
1876
|
}
|
|
1805
1877
|
function MediaFallback() {
|
|
1806
|
-
return /* @__PURE__ */
|
|
1878
|
+
return /* @__PURE__ */ jsx34(AspectRatio5, { ratio: 16 / 11, children: /* @__PURE__ */ jsx34(
|
|
1807
1879
|
ThemeIcon8,
|
|
1808
1880
|
{
|
|
1809
1881
|
size: "100%",
|
|
@@ -1811,7 +1883,7 @@ function MediaFallback() {
|
|
|
1811
1883
|
color: "gray",
|
|
1812
1884
|
variant: "light",
|
|
1813
1885
|
"aria-label": "Hero media is unavailable",
|
|
1814
|
-
children: /* @__PURE__ */
|
|
1886
|
+
children: /* @__PURE__ */ jsx34(GdsIcons.Gallery, { size: "2.5rem" })
|
|
1815
1887
|
}
|
|
1816
1888
|
) });
|
|
1817
1889
|
}
|
|
@@ -1831,8 +1903,8 @@ function MediaFrame({
|
|
|
1831
1903
|
} else if (mediaFade === "soft-start") {
|
|
1832
1904
|
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%)";
|
|
1833
1905
|
}
|
|
1834
|
-
return /* @__PURE__ */
|
|
1835
|
-
|
|
1906
|
+
return /* @__PURE__ */ jsxs28(
|
|
1907
|
+
Box10,
|
|
1836
1908
|
{
|
|
1837
1909
|
component: "figure",
|
|
1838
1910
|
m: 0,
|
|
@@ -1845,9 +1917,9 @@ function MediaFrame({
|
|
|
1845
1917
|
},
|
|
1846
1918
|
"aria-label": mediaAlt,
|
|
1847
1919
|
children: [
|
|
1848
|
-
media ?? /* @__PURE__ */
|
|
1849
|
-
media && overlayBackground ? /* @__PURE__ */
|
|
1850
|
-
|
|
1920
|
+
media ?? /* @__PURE__ */ jsx34(MediaFallback, {}),
|
|
1921
|
+
media && overlayBackground ? /* @__PURE__ */ jsx34(
|
|
1922
|
+
Box10,
|
|
1851
1923
|
{
|
|
1852
1924
|
"aria-hidden": true,
|
|
1853
1925
|
style: {
|
|
@@ -1880,7 +1952,7 @@ function EditorialHero({
|
|
|
1880
1952
|
classNames
|
|
1881
1953
|
}) {
|
|
1882
1954
|
if (loading) {
|
|
1883
|
-
return /* @__PURE__ */
|
|
1955
|
+
return /* @__PURE__ */ jsx34(LoadingHero, { compact });
|
|
1884
1956
|
}
|
|
1885
1957
|
const stackAlign = align === "center" ? "center" : "flex-start";
|
|
1886
1958
|
const textAlign = align === "center" ? "center" : "left";
|
|
@@ -1888,15 +1960,15 @@ function EditorialHero({
|
|
|
1888
1960
|
const renderedActions = actions.slice(0, 3).map((action, index) => {
|
|
1889
1961
|
const resolved = resolveActionVariant(action, index, seenPrimary);
|
|
1890
1962
|
seenPrimary = resolved.seenPrimary;
|
|
1891
|
-
return /* @__PURE__ */
|
|
1963
|
+
return /* @__PURE__ */ jsx34(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
|
|
1892
1964
|
});
|
|
1893
|
-
const textSlot = /* @__PURE__ */
|
|
1894
|
-
/* @__PURE__ */
|
|
1895
|
-
eyebrow ? /* @__PURE__ */
|
|
1896
|
-
/* @__PURE__ */
|
|
1897
|
-
description ? /* @__PURE__ */
|
|
1965
|
+
const textSlot = /* @__PURE__ */ jsxs28(Stack28, { gap: compact ? "md" : "lg", justify: "center", h: "100%", className: classNames?.content, children: [
|
|
1966
|
+
/* @__PURE__ */ jsxs28(Stack28, { gap: "sm", align: stackAlign, children: [
|
|
1967
|
+
eyebrow ? /* @__PURE__ */ jsx34(Text24, { size: "sm", fw: 700, c: "dimmed", ta: textAlign, children: eyebrow }) : null,
|
|
1968
|
+
/* @__PURE__ */ jsx34(Title19, { order: 1, maw: 760, ta: textAlign, children: title }),
|
|
1969
|
+
description ? /* @__PURE__ */ jsx34(Text24, { size: compact ? "md" : "lg", c: "dimmed", maw: 720, ta: textAlign, children: description }) : null
|
|
1898
1970
|
] }),
|
|
1899
|
-
renderedActions.length ? /* @__PURE__ */
|
|
1971
|
+
renderedActions.length ? /* @__PURE__ */ jsx34(Box10, { className: classNames?.actions, children: /* @__PURE__ */ jsx34(
|
|
1900
1972
|
CtaButtonGroup,
|
|
1901
1973
|
{
|
|
1902
1974
|
primary: renderedActions[0],
|
|
@@ -1904,8 +1976,8 @@ function EditorialHero({
|
|
|
1904
1976
|
tertiary: renderedActions[2]
|
|
1905
1977
|
}
|
|
1906
1978
|
) }) : null,
|
|
1907
|
-
meta.length ? /* @__PURE__ */
|
|
1908
|
-
|
|
1979
|
+
meta.length ? /* @__PURE__ */ jsx34(Group25, { gap: "sm", wrap: "wrap", "aria-label": "Supporting details", className: classNames?.meta, children: meta.map((item) => /* @__PURE__ */ jsxs28(
|
|
1980
|
+
Group25,
|
|
1909
1981
|
{
|
|
1910
1982
|
gap: 6,
|
|
1911
1983
|
px: "sm",
|
|
@@ -1916,17 +1988,17 @@ function EditorialHero({
|
|
|
1916
1988
|
},
|
|
1917
1989
|
children: [
|
|
1918
1990
|
item.icon,
|
|
1919
|
-
/* @__PURE__ */
|
|
1991
|
+
/* @__PURE__ */ jsx34(Text24, { size: "sm", c: "dimmed", children: item.label })
|
|
1920
1992
|
]
|
|
1921
1993
|
},
|
|
1922
1994
|
item.id
|
|
1923
1995
|
)) }) : null
|
|
1924
1996
|
] });
|
|
1925
|
-
const mediaSlot = error ? /* @__PURE__ */
|
|
1926
|
-
const textCol = /* @__PURE__ */
|
|
1927
|
-
const mediaCol = /* @__PURE__ */
|
|
1928
|
-
return /* @__PURE__ */
|
|
1929
|
-
|
|
1997
|
+
const mediaSlot = error ? /* @__PURE__ */ jsx34(AccentPanel, { tone: "red", variant: "soft-outline", title: "Media unavailable", children: error }) : /* @__PURE__ */ jsx34(MediaFrame, { media, mediaAlt, mediaFade, className: classNames?.media });
|
|
1998
|
+
const textCol = /* @__PURE__ */ jsx34(Grid2.Col, { span: { base: 12, md: 6 }, order: { base: 1, md: mediaPosition === "left" ? 2 : 1 }, children: textSlot });
|
|
1999
|
+
const mediaCol = /* @__PURE__ */ jsx34(Grid2.Col, { span: { base: 12, md: 6 }, order: { base: 2, md: mediaPosition === "left" ? 1 : 2 }, children: mediaSlot });
|
|
2000
|
+
return /* @__PURE__ */ jsx34(
|
|
2001
|
+
Paper7,
|
|
1930
2002
|
{
|
|
1931
2003
|
component: "section",
|
|
1932
2004
|
withBorder: true,
|
|
@@ -1934,7 +2006,7 @@ function EditorialHero({
|
|
|
1934
2006
|
p: compact ? "lg" : "xl",
|
|
1935
2007
|
className: classNames?.root,
|
|
1936
2008
|
style: surfaceVariant === "flat-public" ? { boxShadow: "none" } : void 0,
|
|
1937
|
-
children: /* @__PURE__ */
|
|
2009
|
+
children: /* @__PURE__ */ jsxs28(Grid2, { gutter: compact ? "lg" : "xl", align: "center", children: [
|
|
1938
2010
|
textCol,
|
|
1939
2011
|
mediaCol
|
|
1940
2012
|
] })
|
|
@@ -1943,19 +2015,19 @@ function EditorialHero({
|
|
|
1943
2015
|
}
|
|
1944
2016
|
|
|
1945
2017
|
// src/FeatureBand.tsx
|
|
1946
|
-
import { Box as
|
|
1947
|
-
import { Fragment as Fragment5, jsx as
|
|
2018
|
+
import { Box as Box11, Group as Group26, Paper as Paper8, SimpleGrid as SimpleGrid6, Skeleton as Skeleton4, Stack as Stack29, Text as Text25, ThemeIcon as ThemeIcon9, Title as Title20 } from "@mantine/core";
|
|
2019
|
+
import { Fragment as Fragment5, jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
1948
2020
|
function FeatureBandSkeleton({
|
|
1949
2021
|
columns = 3,
|
|
1950
2022
|
bordered = true,
|
|
1951
2023
|
variant = "default"
|
|
1952
2024
|
}) {
|
|
1953
|
-
return /* @__PURE__ */
|
|
1954
|
-
/* @__PURE__ */
|
|
1955
|
-
/* @__PURE__ */
|
|
1956
|
-
/* @__PURE__ */
|
|
1957
|
-
/* @__PURE__ */
|
|
1958
|
-
/* @__PURE__ */
|
|
2025
|
+
return /* @__PURE__ */ jsx35(SimpleGrid6, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx35(Paper8, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ jsxs29(Stack29, { gap: "md", children: [
|
|
2026
|
+
/* @__PURE__ */ jsx35(Skeleton4, { height: variant === "process" ? 28 : 42, width: variant === "process" ? 72 : 42, radius: "xl" }),
|
|
2027
|
+
/* @__PURE__ */ jsxs29(Stack29, { gap: "xs", children: [
|
|
2028
|
+
/* @__PURE__ */ jsx35(Skeleton4, { height: 20, width: "75%", radius: "md" }),
|
|
2029
|
+
/* @__PURE__ */ jsx35(Skeleton4, { height: 14, width: "100%", radius: "md" }),
|
|
2030
|
+
/* @__PURE__ */ jsx35(Skeleton4, { height: 14, width: "82%", radius: "md" })
|
|
1959
2031
|
] })
|
|
1960
2032
|
] }) }, index)) });
|
|
1961
2033
|
}
|
|
@@ -1968,10 +2040,10 @@ function FeatureBand({
|
|
|
1968
2040
|
variant = "default"
|
|
1969
2041
|
}) {
|
|
1970
2042
|
if (loading) {
|
|
1971
|
-
return /* @__PURE__ */
|
|
2043
|
+
return /* @__PURE__ */ jsx35(FeatureBandSkeleton, { columns, bordered, variant });
|
|
1972
2044
|
}
|
|
1973
2045
|
if (!items.length) {
|
|
1974
|
-
return emptyState ? /* @__PURE__ */
|
|
2046
|
+
return emptyState ? /* @__PURE__ */ jsx35(Fragment5, { children: emptyState }) : /* @__PURE__ */ jsx35(
|
|
1975
2047
|
EmptyState,
|
|
1976
2048
|
{
|
|
1977
2049
|
title: "No supporting details available",
|
|
@@ -1979,9 +2051,9 @@ function FeatureBand({
|
|
|
1979
2051
|
}
|
|
1980
2052
|
);
|
|
1981
2053
|
}
|
|
1982
|
-
return /* @__PURE__ */
|
|
1983
|
-
variant === "process" ? /* @__PURE__ */
|
|
1984
|
-
|
|
2054
|
+
return /* @__PURE__ */ jsx35(Box11, { component: "section", "aria-label": "Supporting features", children: /* @__PURE__ */ jsx35(SimpleGrid6, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: items.map((item, index) => /* @__PURE__ */ jsx35(Paper8, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ jsxs29(Stack29, { gap: "md", children: [
|
|
2055
|
+
variant === "process" ? /* @__PURE__ */ jsx35(Group26, { children: /* @__PURE__ */ jsx35(
|
|
2056
|
+
Text25,
|
|
1985
2057
|
{
|
|
1986
2058
|
fw: 800,
|
|
1987
2059
|
size: "sm",
|
|
@@ -1993,18 +2065,18 @@ function FeatureBand({
|
|
|
1993
2065
|
},
|
|
1994
2066
|
children: item.stepLabel ?? `Step ${index + 1}`
|
|
1995
2067
|
}
|
|
1996
|
-
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */
|
|
1997
|
-
/* @__PURE__ */
|
|
1998
|
-
/* @__PURE__ */
|
|
1999
|
-
item.description ? /* @__PURE__ */
|
|
2000
|
-
item.meta ? /* @__PURE__ */
|
|
2068
|
+
) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ jsx35(Group26, { children: /* @__PURE__ */ jsx35(ThemeIcon9, { size: "xl", radius: "xl", variant: "light", color: "violet", children: item.icon }) }) : /* @__PURE__ */ jsx35(Group26, { children: /* @__PURE__ */ jsx35(ThemeIcon9, { size: "xl", radius: "xl", variant: "light", color: "gray", "aria-hidden": true, children: /* @__PURE__ */ jsx35(GdsIcons.Info, { size: "1.25rem" }) }) }),
|
|
2069
|
+
/* @__PURE__ */ jsxs29(Stack29, { gap: "xs", children: [
|
|
2070
|
+
/* @__PURE__ */ jsx35(Title20, { order: 4, children: item.title }),
|
|
2071
|
+
item.description ? /* @__PURE__ */ jsx35(Text25, { c: "dimmed", children: item.description }) : null,
|
|
2072
|
+
item.meta ? /* @__PURE__ */ jsx35(Text25, { size: "sm", c: "dimmed", children: item.meta }) : null
|
|
2001
2073
|
] })
|
|
2002
2074
|
] }) }, item.id)) }) });
|
|
2003
2075
|
}
|
|
2004
2076
|
|
|
2005
2077
|
// src/MapPanel.tsx
|
|
2006
|
-
import { AspectRatio as AspectRatio6, Box as
|
|
2007
|
-
import { jsx as
|
|
2078
|
+
import { AspectRatio as AspectRatio6, Box as Box12, Group as Group27, Paper as Paper9, Stack as Stack30, Text as Text26, Title as Title21 } from "@mantine/core";
|
|
2079
|
+
import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2008
2080
|
function MapPanel({
|
|
2009
2081
|
title,
|
|
2010
2082
|
description,
|
|
@@ -2020,7 +2092,7 @@ function MapPanel({
|
|
|
2020
2092
|
}) {
|
|
2021
2093
|
let body;
|
|
2022
2094
|
if (loading) {
|
|
2023
|
-
body = /* @__PURE__ */
|
|
2095
|
+
body = /* @__PURE__ */ jsx36(
|
|
2024
2096
|
StateBlock,
|
|
2025
2097
|
{
|
|
2026
2098
|
variant: "loading",
|
|
@@ -2030,9 +2102,9 @@ function MapPanel({
|
|
|
2030
2102
|
}
|
|
2031
2103
|
);
|
|
2032
2104
|
} else if (error) {
|
|
2033
|
-
body = /* @__PURE__ */
|
|
2105
|
+
body = /* @__PURE__ */ jsx36(StateBlock, { variant: "error", title: "Map unavailable", description: error, compact: true });
|
|
2034
2106
|
} else if (!iframeSrc && !renderMap) {
|
|
2035
|
-
body = /* @__PURE__ */
|
|
2107
|
+
body = /* @__PURE__ */ jsx36(
|
|
2036
2108
|
StateBlock,
|
|
2037
2109
|
{
|
|
2038
2110
|
variant: "empty",
|
|
@@ -2042,9 +2114,9 @@ function MapPanel({
|
|
|
2042
2114
|
}
|
|
2043
2115
|
);
|
|
2044
2116
|
} else if (renderMap) {
|
|
2045
|
-
body = /* @__PURE__ */
|
|
2117
|
+
body = /* @__PURE__ */ jsx36(Box12, { style: { minHeight }, children: renderMap() });
|
|
2046
2118
|
} else {
|
|
2047
|
-
body = /* @__PURE__ */
|
|
2119
|
+
body = /* @__PURE__ */ jsx36(AspectRatio6, { ratio: 16 / 9, children: /* @__PURE__ */ jsx36(
|
|
2048
2120
|
"iframe",
|
|
2049
2121
|
{
|
|
2050
2122
|
src: iframeSrc,
|
|
@@ -2056,21 +2128,21 @@ function MapPanel({
|
|
|
2056
2128
|
}
|
|
2057
2129
|
) });
|
|
2058
2130
|
}
|
|
2059
|
-
return /* @__PURE__ */
|
|
2060
|
-
/* @__PURE__ */
|
|
2061
|
-
/* @__PURE__ */
|
|
2062
|
-
/* @__PURE__ */
|
|
2063
|
-
description ? /* @__PURE__ */
|
|
2131
|
+
return /* @__PURE__ */ jsx36(Paper9, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs30(Stack30, { gap: "md", children: [
|
|
2132
|
+
/* @__PURE__ */ jsxs30(Group27, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2133
|
+
/* @__PURE__ */ jsxs30(Stack30, { gap: 4, children: [
|
|
2134
|
+
/* @__PURE__ */ jsx36(Title21, { order: 3, children: title }),
|
|
2135
|
+
description ? /* @__PURE__ */ jsx36(Text26, { size: "sm", c: "dimmed", children: description }) : null
|
|
2064
2136
|
] }),
|
|
2065
|
-
actions ? /* @__PURE__ */
|
|
2137
|
+
actions ? /* @__PURE__ */ jsx36(ActionBar, { ...actions }) : null
|
|
2066
2138
|
] }),
|
|
2067
2139
|
body
|
|
2068
2140
|
] }) });
|
|
2069
2141
|
}
|
|
2070
2142
|
|
|
2071
2143
|
// src/PublicFlowShell.tsx
|
|
2072
|
-
import { Badge as
|
|
2073
|
-
import { jsx as
|
|
2144
|
+
import { Badge as Badge13, Group as Group28, Paper as Paper10, Stack as Stack31, Text as Text27, Title as Title22 } from "@mantine/core";
|
|
2145
|
+
import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2074
2146
|
var stageTone = {
|
|
2075
2147
|
idle: { label: "Idle", color: "gray" },
|
|
2076
2148
|
loading: { label: "Loading", color: "blue" },
|
|
@@ -2122,7 +2194,7 @@ function PublicFlowShell({
|
|
|
2122
2194
|
const actionBar = toActionBar(stage.actions);
|
|
2123
2195
|
let body = stage.body;
|
|
2124
2196
|
if (stage.status === "loading") {
|
|
2125
|
-
body = /* @__PURE__ */
|
|
2197
|
+
body = /* @__PURE__ */ jsx37(
|
|
2126
2198
|
StateBlock,
|
|
2127
2199
|
{
|
|
2128
2200
|
variant: "loading",
|
|
@@ -2131,7 +2203,7 @@ function PublicFlowShell({
|
|
|
2131
2203
|
}
|
|
2132
2204
|
);
|
|
2133
2205
|
} else if (stage.status === "error") {
|
|
2134
|
-
body = errorState ?? /* @__PURE__ */
|
|
2206
|
+
body = errorState ?? /* @__PURE__ */ jsx37(
|
|
2135
2207
|
StateBlock,
|
|
2136
2208
|
{
|
|
2137
2209
|
variant: "error",
|
|
@@ -2140,7 +2212,7 @@ function PublicFlowShell({
|
|
|
2140
2212
|
}
|
|
2141
2213
|
);
|
|
2142
2214
|
} else if (!stage.body && !hardwareSurface) {
|
|
2143
|
-
body = emptyState ?? /* @__PURE__ */
|
|
2215
|
+
body = emptyState ?? /* @__PURE__ */ jsx37(
|
|
2144
2216
|
EmptyState,
|
|
2145
2217
|
{
|
|
2146
2218
|
title: "No stage content available",
|
|
@@ -2148,29 +2220,29 @@ function PublicFlowShell({
|
|
|
2148
2220
|
}
|
|
2149
2221
|
);
|
|
2150
2222
|
}
|
|
2151
|
-
return /* @__PURE__ */
|
|
2152
|
-
/* @__PURE__ */
|
|
2153
|
-
/* @__PURE__ */
|
|
2154
|
-
eyebrow ? /* @__PURE__ */
|
|
2155
|
-
/* @__PURE__ */
|
|
2156
|
-
/* @__PURE__ */
|
|
2157
|
-
/* @__PURE__ */
|
|
2223
|
+
return /* @__PURE__ */ jsx37(Paper10, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs31(Stack31, { gap: "lg", children: [
|
|
2224
|
+
/* @__PURE__ */ jsxs31(Group28, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2225
|
+
/* @__PURE__ */ jsxs31(Stack31, { gap: 4, children: [
|
|
2226
|
+
eyebrow ? /* @__PURE__ */ jsx37(Text27, { size: "xs", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
|
|
2227
|
+
/* @__PURE__ */ jsxs31(Group28, { gap: "sm", wrap: "wrap", children: [
|
|
2228
|
+
/* @__PURE__ */ jsx37(Title22, { order: 2, children: stage.title }),
|
|
2229
|
+
/* @__PURE__ */ jsx37(Badge13, { variant: "light", color: tone.color, children: tone.label })
|
|
2158
2230
|
] }),
|
|
2159
|
-
stage.description ? /* @__PURE__ */
|
|
2231
|
+
stage.description ? /* @__PURE__ */ jsx37(Text27, { size: "sm", c: "dimmed", children: stage.description }) : null
|
|
2160
2232
|
] }),
|
|
2161
2233
|
exitAction
|
|
2162
2234
|
] }),
|
|
2163
|
-
stage.notice ? /* @__PURE__ */
|
|
2235
|
+
stage.notice ? /* @__PURE__ */ jsx37(Text27, { size: "sm", c: "dimmed", children: stage.notice }) : null,
|
|
2164
2236
|
body,
|
|
2165
2237
|
hardwareSurface,
|
|
2166
2238
|
stage.aside,
|
|
2167
|
-
actionBar ? /* @__PURE__ */
|
|
2239
|
+
actionBar ? /* @__PURE__ */ jsx37(ActionBar, { ...actionBar }) : null
|
|
2168
2240
|
] }) });
|
|
2169
2241
|
}
|
|
2170
2242
|
|
|
2171
2243
|
// src/PlaybackSurface.tsx
|
|
2172
|
-
import { Badge as
|
|
2173
|
-
import { jsx as
|
|
2244
|
+
import { Badge as Badge14, Group as Group29, Paper as Paper11, Stack as Stack32, Text as Text28, Title as Title23 } from "@mantine/core";
|
|
2245
|
+
import { jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2174
2246
|
var stateTone = {
|
|
2175
2247
|
loading: { label: "Loading", color: "blue" },
|
|
2176
2248
|
ready: { label: "Ready", color: "teal" },
|
|
@@ -2193,7 +2265,7 @@ function PlaybackSurface({
|
|
|
2193
2265
|
const tone = stateTone[state];
|
|
2194
2266
|
let content;
|
|
2195
2267
|
if (state === "loading") {
|
|
2196
|
-
content = /* @__PURE__ */
|
|
2268
|
+
content = /* @__PURE__ */ jsx38(
|
|
2197
2269
|
StateBlock,
|
|
2198
2270
|
{
|
|
2199
2271
|
variant: "loading",
|
|
@@ -2202,7 +2274,7 @@ function PlaybackSurface({
|
|
|
2202
2274
|
}
|
|
2203
2275
|
);
|
|
2204
2276
|
} else if (state === "empty") {
|
|
2205
|
-
content = emptyState ?? /* @__PURE__ */
|
|
2277
|
+
content = emptyState ?? /* @__PURE__ */ jsx38(
|
|
2206
2278
|
EmptyState,
|
|
2207
2279
|
{
|
|
2208
2280
|
title: "No playback content available",
|
|
@@ -2210,7 +2282,7 @@ function PlaybackSurface({
|
|
|
2210
2282
|
}
|
|
2211
2283
|
);
|
|
2212
2284
|
} else if (state === "error") {
|
|
2213
|
-
content = errorState ?? /* @__PURE__ */
|
|
2285
|
+
content = errorState ?? /* @__PURE__ */ jsx38(
|
|
2214
2286
|
StateBlock,
|
|
2215
2287
|
{
|
|
2216
2288
|
variant: "error",
|
|
@@ -2219,23 +2291,23 @@ function PlaybackSurface({
|
|
|
2219
2291
|
}
|
|
2220
2292
|
);
|
|
2221
2293
|
} else {
|
|
2222
|
-
content = /* @__PURE__ */
|
|
2294
|
+
content = /* @__PURE__ */ jsxs32(Stack32, { gap: "md", children: [
|
|
2223
2295
|
media,
|
|
2224
2296
|
overlays
|
|
2225
2297
|
] });
|
|
2226
2298
|
}
|
|
2227
|
-
return /* @__PURE__ */
|
|
2228
|
-
title || statusMessage || controls ? /* @__PURE__ */
|
|
2229
|
-
/* @__PURE__ */
|
|
2230
|
-
title ? /* @__PURE__ */
|
|
2231
|
-
statusMessage ? /* @__PURE__ */
|
|
2299
|
+
return /* @__PURE__ */ jsx38(Paper11, { withBorder: true, radius: "xl", p: "lg", "data-playback-mode": mode, children: /* @__PURE__ */ jsxs32(Stack32, { gap: "md", children: [
|
|
2300
|
+
title || statusMessage || controls ? /* @__PURE__ */ jsxs32(Group29, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
|
|
2301
|
+
/* @__PURE__ */ jsxs32(Stack32, { gap: 4, children: [
|
|
2302
|
+
title ? /* @__PURE__ */ jsx38(Title23, { order: 3, children: title }) : null,
|
|
2303
|
+
statusMessage ? /* @__PURE__ */ jsx38(Text28, { size: "sm", c: "dimmed", children: statusMessage }) : null
|
|
2232
2304
|
] }),
|
|
2233
|
-
/* @__PURE__ */
|
|
2234
|
-
/* @__PURE__ */
|
|
2305
|
+
/* @__PURE__ */ jsxs32(Group29, { gap: "sm", align: "center", wrap: "wrap", children: [
|
|
2306
|
+
/* @__PURE__ */ jsx38(Badge14, { variant: "light", color: tone.color, children: tone.label }),
|
|
2235
2307
|
controls
|
|
2236
2308
|
] })
|
|
2237
2309
|
] }) : null,
|
|
2238
|
-
state === "degraded" ? /* @__PURE__ */
|
|
2310
|
+
state === "degraded" ? /* @__PURE__ */ jsx38(
|
|
2239
2311
|
StateBlock,
|
|
2240
2312
|
{
|
|
2241
2313
|
variant: "info",
|
|
@@ -2248,21 +2320,9 @@ function PlaybackSurface({
|
|
|
2248
2320
|
] }) });
|
|
2249
2321
|
}
|
|
2250
2322
|
|
|
2251
|
-
// src/FormField.tsx
|
|
2252
|
-
import { Box as Box12, Stack as Stack30, Text as Text26 } from "@mantine/core";
|
|
2253
|
-
import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2254
|
-
function FormField({ label, description, error, children }) {
|
|
2255
|
-
return /* @__PURE__ */ jsx35(Box12, { component: "label", children: /* @__PURE__ */ jsxs30(Stack30, { gap: 4, children: [
|
|
2256
|
-
typeof label === "string" ? /* @__PURE__ */ jsx35(Text26, { size: "xs", fw: 600, c: "dimmed", children: label }) : label,
|
|
2257
|
-
description ? typeof description === "string" ? /* @__PURE__ */ jsx35(Text26, { size: "xs", c: "dimmed", children: description }) : description : null,
|
|
2258
|
-
children,
|
|
2259
|
-
error ? typeof error === "string" ? /* @__PURE__ */ jsx35(Text26, { size: "xs", c: "red.7", children: error }) : error : null
|
|
2260
|
-
] }) });
|
|
2261
|
-
}
|
|
2262
|
-
|
|
2263
2323
|
// src/MediaField.tsx
|
|
2264
|
-
import { Badge as
|
|
2265
|
-
import { Fragment as Fragment6, jsx as
|
|
2324
|
+
import { Badge as Badge15, Button as Button4, Divider as Divider6, Group as Group30, Paper as Paper12, Stack as Stack33, Text as Text29 } from "@mantine/core";
|
|
2325
|
+
import { Fragment as Fragment6, jsx as jsx39, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
2266
2326
|
var stateLabels = {
|
|
2267
2327
|
empty: { label: "Empty", color: "gray" },
|
|
2268
2328
|
selected: { label: "Selected", color: "blue" },
|
|
@@ -2290,32 +2350,32 @@ function MediaField({
|
|
|
2290
2350
|
mode = "stacked"
|
|
2291
2351
|
}) {
|
|
2292
2352
|
const stateBadge = stateLabels[state];
|
|
2293
|
-
const resolvedRemoveAction = removeAction ?? (onRemove ? /* @__PURE__ */
|
|
2294
|
-
const resolvedResetAction = resetAction ?? (onReset ? /* @__PURE__ */
|
|
2295
|
-
return /* @__PURE__ */
|
|
2353
|
+
const resolvedRemoveAction = removeAction ?? (onRemove ? /* @__PURE__ */ jsx39(Button4, { type: "button", variant: "light", color: "red", onClick: onRemove, children: "Remove" }) : null);
|
|
2354
|
+
const resolvedResetAction = resetAction ?? (onReset ? /* @__PURE__ */ jsx39(Button4, { type: "button", variant: "default", onClick: onReset, children: "Reset" }) : null);
|
|
2355
|
+
return /* @__PURE__ */ jsx39(
|
|
2296
2356
|
FormField,
|
|
2297
2357
|
{
|
|
2298
2358
|
label,
|
|
2299
2359
|
description,
|
|
2300
2360
|
error,
|
|
2301
|
-
children: /* @__PURE__ */
|
|
2302
|
-
/* @__PURE__ */
|
|
2303
|
-
/* @__PURE__ */
|
|
2361
|
+
children: /* @__PURE__ */ jsx39(Paper12, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ jsxs33(Stack33, { gap: "md", children: [
|
|
2362
|
+
/* @__PURE__ */ jsx39(Group30, { justify: "flex-end", align: "center", gap: "sm", children: /* @__PURE__ */ jsxs33(Group30, { gap: "xs", justify: "flex-end", children: [
|
|
2363
|
+
/* @__PURE__ */ jsx39(Badge15, { variant: "light", color: stateBadge.color, children: stateBadge.label }),
|
|
2304
2364
|
statusAction
|
|
2305
2365
|
] }) }),
|
|
2306
2366
|
preview ? preview : null,
|
|
2307
|
-
uploadControl || urlInput ? /* @__PURE__ */
|
|
2308
|
-
/* @__PURE__ */
|
|
2309
|
-
/* @__PURE__ */
|
|
2367
|
+
uploadControl || urlInput ? /* @__PURE__ */ jsxs33(Fragment6, { children: [
|
|
2368
|
+
/* @__PURE__ */ jsx39(Divider6, {}),
|
|
2369
|
+
/* @__PURE__ */ jsxs33(Stack33, { gap: "sm", style: mode === "split" ? { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))" } : void 0, children: [
|
|
2310
2370
|
uploadControl,
|
|
2311
2371
|
urlInput
|
|
2312
2372
|
] })
|
|
2313
2373
|
] }) : null,
|
|
2314
|
-
value ? /* @__PURE__ */
|
|
2315
|
-
helpText ? /* @__PURE__ */
|
|
2316
|
-
policyText ? /* @__PURE__ */
|
|
2374
|
+
value ? /* @__PURE__ */ jsx39(Text29, { size: "sm", c: "dimmed", style: { wordBreak: "break-all" }, children: value }) : null,
|
|
2375
|
+
helpText ? /* @__PURE__ */ jsx39(Text29, { size: "sm", c: "dimmed", children: helpText }) : null,
|
|
2376
|
+
policyText ? /* @__PURE__ */ jsx39(Text29, { size: "sm", c: error ? "red.7" : "dimmed", children: policyText }) : null,
|
|
2317
2377
|
typeof error !== "string" && error ? error : null,
|
|
2318
|
-
resolvedRemoveAction || resolvedResetAction ? /* @__PURE__ */
|
|
2378
|
+
resolvedRemoveAction || resolvedResetAction ? /* @__PURE__ */ jsxs33(Group30, { gap: "sm", children: [
|
|
2319
2379
|
resolvedResetAction,
|
|
2320
2380
|
retryAction,
|
|
2321
2381
|
resolvedRemoveAction
|
|
@@ -2326,49 +2386,49 @@ function MediaField({
|
|
|
2326
2386
|
}
|
|
2327
2387
|
|
|
2328
2388
|
// src/MediaCard.tsx
|
|
2329
|
-
import { ActionIcon as ActionIcon4, Badge as
|
|
2330
|
-
import { jsx as
|
|
2389
|
+
import { ActionIcon as ActionIcon4, Badge as Badge16, Card as Card9, Group as Group31, Stack as Stack34, Text as Text30, Title as Title24 } from "@mantine/core";
|
|
2390
|
+
import { jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2331
2391
|
function MediaCard({ title, image, description, status, overlay, actions = [] }) {
|
|
2332
2392
|
const EyeIcon = GdsIcons.Eye;
|
|
2333
|
-
return /* @__PURE__ */
|
|
2334
|
-
/* @__PURE__ */
|
|
2393
|
+
return /* @__PURE__ */ jsxs34(Card9, { withBorder: true, radius: "lg", padding: "md", children: [
|
|
2394
|
+
/* @__PURE__ */ jsxs34(Card9.Section, { pos: "relative", children: [
|
|
2335
2395
|
image,
|
|
2336
|
-
overlay ? /* @__PURE__ */
|
|
2396
|
+
overlay ? /* @__PURE__ */ jsx40("div", { style: { position: "absolute", inset: 12, display: "flex", justifyContent: "flex-end", alignItems: "flex-start" }, children: overlay }) : null
|
|
2337
2397
|
] }),
|
|
2338
|
-
/* @__PURE__ */
|
|
2339
|
-
/* @__PURE__ */
|
|
2340
|
-
/* @__PURE__ */
|
|
2341
|
-
/* @__PURE__ */
|
|
2342
|
-
description ? /* @__PURE__ */
|
|
2398
|
+
/* @__PURE__ */ jsxs34(Stack34, { gap: "sm", mt: "md", children: [
|
|
2399
|
+
/* @__PURE__ */ jsxs34(Group31, { justify: "space-between", align: "flex-start", children: [
|
|
2400
|
+
/* @__PURE__ */ jsxs34(Stack34, { gap: 4, children: [
|
|
2401
|
+
/* @__PURE__ */ jsx40(Title24, { order: 4, children: title }),
|
|
2402
|
+
description ? /* @__PURE__ */ jsx40(Text30, { size: "sm", c: "dimmed", lineClamp: 2, children: description }) : null
|
|
2343
2403
|
] }),
|
|
2344
|
-
status ? /* @__PURE__ */
|
|
2404
|
+
status ? /* @__PURE__ */ jsx40(Badge16, { variant: "light", children: status }) : null
|
|
2345
2405
|
] }),
|
|
2346
|
-
actions.length ? /* @__PURE__ */
|
|
2406
|
+
actions.length ? /* @__PURE__ */ jsx40(Group31, { justify: "flex-end", gap: "xs", children: actions.map((action) => /* @__PURE__ */ jsx40(ActionIcon4, { variant: "light", "aria-label": action.label, onClick: action.onClick, children: /* @__PURE__ */ jsx40(EyeIcon, { size: "1rem" }) }, action.label)) }) : null
|
|
2347
2407
|
] })
|
|
2348
2408
|
] });
|
|
2349
2409
|
}
|
|
2350
2410
|
|
|
2351
2411
|
// src/AccessSummary.tsx
|
|
2352
|
-
import { Badge as
|
|
2353
|
-
import { jsx as
|
|
2412
|
+
import { Badge as Badge17, Card as Card10, Group as Group32, Stack as Stack35, Text as Text31, Title as Title25 } from "@mantine/core";
|
|
2413
|
+
import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
2354
2414
|
function AccessSummary({ title, roles, scope, blocked = false, description }) {
|
|
2355
|
-
return /* @__PURE__ */
|
|
2356
|
-
/* @__PURE__ */
|
|
2357
|
-
/* @__PURE__ */
|
|
2358
|
-
/* @__PURE__ */
|
|
2415
|
+
return /* @__PURE__ */ jsx41(Card10, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ jsxs35(Stack35, { gap: "sm", children: [
|
|
2416
|
+
/* @__PURE__ */ jsxs35(Group32, { justify: "space-between", align: "center", children: [
|
|
2417
|
+
/* @__PURE__ */ jsx41(Title25, { order: 4, children: title }),
|
|
2418
|
+
/* @__PURE__ */ jsx41(Badge17, { color: blocked ? "red" : "teal", variant: "light", children: blocked ? "Blocked" : "Allowed" })
|
|
2359
2419
|
] }),
|
|
2360
|
-
/* @__PURE__ */
|
|
2361
|
-
scope ? /* @__PURE__ */
|
|
2420
|
+
/* @__PURE__ */ jsx41(Group32, { gap: "xs", children: roles.map((role) => /* @__PURE__ */ jsx41(Badge17, { variant: "outline", children: role }, role)) }),
|
|
2421
|
+
scope ? /* @__PURE__ */ jsxs35(Text31, { size: "sm", c: "dimmed", children: [
|
|
2362
2422
|
"Scope: ",
|
|
2363
2423
|
scope
|
|
2364
2424
|
] }) : null,
|
|
2365
|
-
description ? /* @__PURE__ */
|
|
2425
|
+
description ? /* @__PURE__ */ jsx41(Text31, { size: "sm", children: description }) : null
|
|
2366
2426
|
] }) });
|
|
2367
2427
|
}
|
|
2368
2428
|
|
|
2369
2429
|
// src/PageHeader.tsx
|
|
2370
|
-
import { Box as Box13, Group as
|
|
2371
|
-
import { jsx as
|
|
2430
|
+
import { Box as Box13, Group as Group33, Stack as Stack36, Text as Text32, Title as Title26 } from "@mantine/core";
|
|
2431
|
+
import { jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
2372
2432
|
function PageHeader({
|
|
2373
2433
|
title,
|
|
2374
2434
|
description,
|
|
@@ -2379,19 +2439,19 @@ function PageHeader({
|
|
|
2379
2439
|
}) {
|
|
2380
2440
|
const resolvedDescription = description ?? subtitle;
|
|
2381
2441
|
const eyebrowProps = eyebrowVariant === "ornamental" ? { tt: "uppercase", style: { letterSpacing: "0.12em" } } : {};
|
|
2382
|
-
return /* @__PURE__ */
|
|
2383
|
-
/* @__PURE__ */
|
|
2384
|
-
eyebrow && /* @__PURE__ */
|
|
2385
|
-
/* @__PURE__ */
|
|
2386
|
-
resolvedDescription && /* @__PURE__ */
|
|
2442
|
+
return /* @__PURE__ */ jsxs36(Group33, { justify: "space-between", align: "flex-start", gap: "lg", wrap: "wrap", children: [
|
|
2443
|
+
/* @__PURE__ */ jsxs36(Stack36, { gap: "xs", children: [
|
|
2444
|
+
eyebrow && /* @__PURE__ */ jsx42(Text32, { size: "xs", fw: 700, c: "dimmed", ...eyebrowProps, children: eyebrow }),
|
|
2445
|
+
/* @__PURE__ */ jsx42(Title26, { order: 1, children: title }),
|
|
2446
|
+
resolvedDescription && /* @__PURE__ */ jsx42(Text32, { c: "dimmed", maw: 720, children: resolvedDescription })
|
|
2387
2447
|
] }),
|
|
2388
|
-
actions ? /* @__PURE__ */
|
|
2448
|
+
actions ? /* @__PURE__ */ jsx42(Box13, { children: actions }) : null
|
|
2389
2449
|
] });
|
|
2390
2450
|
}
|
|
2391
2451
|
|
|
2392
2452
|
// src/FilterDrawer.tsx
|
|
2393
|
-
import { Drawer, Group as
|
|
2394
|
-
import { jsx as
|
|
2453
|
+
import { Drawer, Group as Group34, Stack as Stack37, Text as Text33 } from "@mantine/core";
|
|
2454
|
+
import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
2395
2455
|
function FilterDrawer({
|
|
2396
2456
|
opened,
|
|
2397
2457
|
onClose,
|
|
@@ -2407,7 +2467,7 @@ function FilterDrawer({
|
|
|
2407
2467
|
}) {
|
|
2408
2468
|
const resolvedPrimaryAction = applyAction ?? primaryAction;
|
|
2409
2469
|
const resolvedSecondaryAction = resetAction ?? secondaryAction;
|
|
2410
|
-
return /* @__PURE__ */
|
|
2470
|
+
return /* @__PURE__ */ jsx43(
|
|
2411
2471
|
Drawer,
|
|
2412
2472
|
{
|
|
2413
2473
|
opened,
|
|
@@ -2416,11 +2476,11 @@ function FilterDrawer({
|
|
|
2416
2476
|
position: mode === "bottom-sheet" ? "bottom" : "right",
|
|
2417
2477
|
size: mode === "bottom-sheet" ? "auto" : "md",
|
|
2418
2478
|
radius: mode === "bottom-sheet" ? "xl" : void 0,
|
|
2419
|
-
children: /* @__PURE__ */
|
|
2420
|
-
description ? /* @__PURE__ */
|
|
2479
|
+
children: /* @__PURE__ */ jsxs37(Stack37, { gap: "md", children: [
|
|
2480
|
+
description ? /* @__PURE__ */ jsx43(Text33, { size: "sm", c: "dimmed", children: description }) : null,
|
|
2421
2481
|
children,
|
|
2422
|
-
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */
|
|
2423
|
-
/* @__PURE__ */
|
|
2482
|
+
resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ jsxs37(Group34, { justify: "space-between", mt: "md", children: [
|
|
2483
|
+
/* @__PURE__ */ jsxs37(Group34, { gap: "sm", children: [
|
|
2424
2484
|
closeAction,
|
|
2425
2485
|
resolvedSecondaryAction
|
|
2426
2486
|
] }),
|
|
@@ -2432,8 +2492,8 @@ function FilterDrawer({
|
|
|
2432
2492
|
}
|
|
2433
2493
|
|
|
2434
2494
|
// src/PlaceholderPanel.tsx
|
|
2435
|
-
import { Badge as
|
|
2436
|
-
import { Fragment as Fragment7, jsx as
|
|
2495
|
+
import { Badge as Badge18, Card as Card11, Stack as Stack38, Text as Text34, Title as Title27 } from "@mantine/core";
|
|
2496
|
+
import { Fragment as Fragment7, jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
2437
2497
|
function PlaceholderPanel({
|
|
2438
2498
|
title,
|
|
2439
2499
|
description,
|
|
@@ -2443,16 +2503,16 @@ function PlaceholderPanel({
|
|
|
2443
2503
|
mode
|
|
2444
2504
|
}) {
|
|
2445
2505
|
if (mode === "live" && children) {
|
|
2446
|
-
return /* @__PURE__ */
|
|
2506
|
+
return /* @__PURE__ */ jsx44(Fragment7, { children });
|
|
2447
2507
|
}
|
|
2448
|
-
return /* @__PURE__ */
|
|
2449
|
-
badge ? /* @__PURE__ */
|
|
2450
|
-
/* @__PURE__ */
|
|
2451
|
-
/* @__PURE__ */
|
|
2452
|
-
/* @__PURE__ */
|
|
2508
|
+
return /* @__PURE__ */ jsx44(Card11, { children: /* @__PURE__ */ jsxs38(Stack38, { gap: "md", children: [
|
|
2509
|
+
badge ? /* @__PURE__ */ jsx44(Badge18, { variant: "light", color: "blue", w: "fit-content", children: badge }) : null,
|
|
2510
|
+
/* @__PURE__ */ jsxs38(Stack38, { gap: "xs", children: [
|
|
2511
|
+
/* @__PURE__ */ jsx44(Title27, { order: 4, children: title }),
|
|
2512
|
+
/* @__PURE__ */ jsx44(Text34, { c: "dimmed", children: description })
|
|
2453
2513
|
] }),
|
|
2454
|
-
footer ? /* @__PURE__ */
|
|
2455
|
-
/* @__PURE__ */
|
|
2514
|
+
footer ? /* @__PURE__ */ jsx44(Text34, { size: "sm", children: footer }) : null,
|
|
2515
|
+
/* @__PURE__ */ jsx44(
|
|
2456
2516
|
StateBlock,
|
|
2457
2517
|
{
|
|
2458
2518
|
variant: "not-enough-data",
|
|
@@ -2466,7 +2526,7 @@ function PlaceholderPanel({
|
|
|
2466
2526
|
|
|
2467
2527
|
// src/SimpleDataTable.tsx
|
|
2468
2528
|
import { ScrollArea, Table } from "@mantine/core";
|
|
2469
|
-
import { jsx as
|
|
2529
|
+
import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
2470
2530
|
function SimpleDataTable({
|
|
2471
2531
|
columns,
|
|
2472
2532
|
rows,
|
|
@@ -2477,23 +2537,23 @@ function SimpleDataTable({
|
|
|
2477
2537
|
getRowKey
|
|
2478
2538
|
}) {
|
|
2479
2539
|
if (error) {
|
|
2480
|
-
return /* @__PURE__ */
|
|
2540
|
+
return /* @__PURE__ */ jsx45(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
|
|
2481
2541
|
}
|
|
2482
2542
|
if (loading) {
|
|
2483
|
-
return /* @__PURE__ */
|
|
2543
|
+
return /* @__PURE__ */ jsx45(StateBlock, { variant: "loading", title: "Loading data", description: "Please wait while the shared dataset is prepared.", compact: true });
|
|
2484
2544
|
}
|
|
2485
2545
|
if (!rows.length) {
|
|
2486
|
-
return /* @__PURE__ */
|
|
2546
|
+
return /* @__PURE__ */ jsx45(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
|
|
2487
2547
|
}
|
|
2488
|
-
return /* @__PURE__ */
|
|
2489
|
-
/* @__PURE__ */
|
|
2490
|
-
/* @__PURE__ */
|
|
2548
|
+
return /* @__PURE__ */ jsx45(ScrollArea, { children: /* @__PURE__ */ jsxs39(Table, { striped: true, highlightOnHover: true, withTableBorder: true, withColumnBorders: true, children: [
|
|
2549
|
+
/* @__PURE__ */ jsx45(Table.Thead, { children: /* @__PURE__ */ jsx45(Table.Tr, { children: columns.map((column) => /* @__PURE__ */ jsx45(Table.Th, { children: column.header }, String(column.key))) }) }),
|
|
2550
|
+
/* @__PURE__ */ jsx45(Table.Tbody, { children: rows.map((row, index) => /* @__PURE__ */ jsx45(Table.Tr, { children: columns.map((column) => /* @__PURE__ */ jsx45(Table.Td, { children: column.render ? column.render(row) : String(row[column.key] ?? "") }, String(column.key))) }, getRowKey ? getRowKey(row, index) : index)) })
|
|
2491
2551
|
] }) });
|
|
2492
2552
|
}
|
|
2493
2553
|
|
|
2494
2554
|
// src/StatsSection.tsx
|
|
2495
|
-
import { Stack as
|
|
2496
|
-
import { jsx as
|
|
2555
|
+
import { Stack as Stack39, Title as Title28 } from "@mantine/core";
|
|
2556
|
+
import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
2497
2557
|
function StatsSection({
|
|
2498
2558
|
title,
|
|
2499
2559
|
loading = false,
|
|
@@ -2505,11 +2565,11 @@ function StatsSection({
|
|
|
2505
2565
|
}) {
|
|
2506
2566
|
let content = children;
|
|
2507
2567
|
if (error) {
|
|
2508
|
-
content = /* @__PURE__ */
|
|
2568
|
+
content = /* @__PURE__ */ jsx46(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
|
|
2509
2569
|
} else if (loading) {
|
|
2510
|
-
content = /* @__PURE__ */
|
|
2570
|
+
content = /* @__PURE__ */ jsx46(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
|
|
2511
2571
|
} else if (belowThreshold) {
|
|
2512
|
-
content = /* @__PURE__ */
|
|
2572
|
+
content = /* @__PURE__ */ jsx46(
|
|
2513
2573
|
StateBlock,
|
|
2514
2574
|
{
|
|
2515
2575
|
variant: "not-enough-data",
|
|
@@ -2519,10 +2579,10 @@ function StatsSection({
|
|
|
2519
2579
|
}
|
|
2520
2580
|
);
|
|
2521
2581
|
} else if (placeholder) {
|
|
2522
|
-
content = /* @__PURE__ */
|
|
2582
|
+
content = /* @__PURE__ */ jsx46(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
|
|
2523
2583
|
}
|
|
2524
|
-
return /* @__PURE__ */
|
|
2525
|
-
/* @__PURE__ */
|
|
2584
|
+
return /* @__PURE__ */ jsxs40(Stack39, { gap: "md", children: [
|
|
2585
|
+
/* @__PURE__ */ jsx46(Title28, { order: 3, children: title }),
|
|
2526
2586
|
content
|
|
2527
2587
|
] });
|
|
2528
2588
|
}
|
|
@@ -3840,11 +3900,19 @@ export {
|
|
|
3840
3900
|
resolveSemanticActionConfig,
|
|
3841
3901
|
getSemanticActionConfig,
|
|
3842
3902
|
getSemanticActionLabel,
|
|
3843
|
-
|
|
3903
|
+
resolveAccentPanelStyles,
|
|
3904
|
+
AccentPanel,
|
|
3905
|
+
ReferenceLocaleNotice,
|
|
3906
|
+
ReferenceLinkGrid,
|
|
3907
|
+
SectionPanel,
|
|
3908
|
+
ReferenceSection,
|
|
3844
3909
|
ActionBar,
|
|
3910
|
+
FormField,
|
|
3911
|
+
ListingCard,
|
|
3912
|
+
StateBlock,
|
|
3913
|
+
ChoiceChip,
|
|
3845
3914
|
MetricCard,
|
|
3846
3915
|
ProgressCard,
|
|
3847
|
-
SectionPanel,
|
|
3848
3916
|
ConsumerSection,
|
|
3849
3917
|
ConsumerDashboardGrid,
|
|
3850
3918
|
EditorialCard,
|
|
@@ -3852,12 +3920,8 @@ export {
|
|
|
3852
3920
|
PublicProductCard,
|
|
3853
3921
|
PublicFoodCard,
|
|
3854
3922
|
FoodMenuSection,
|
|
3855
|
-
ListingCard,
|
|
3856
3923
|
DataToolbar,
|
|
3857
|
-
StateBlock,
|
|
3858
3924
|
BrowseSurface,
|
|
3859
|
-
resolveAccentPanelStyles,
|
|
3860
|
-
AccentPanel,
|
|
3861
3925
|
DetailProfileShell,
|
|
3862
3926
|
PublicNav,
|
|
3863
3927
|
PublicShell,
|
|
@@ -3873,7 +3937,6 @@ export {
|
|
|
3873
3937
|
MapPanel,
|
|
3874
3938
|
PublicFlowShell,
|
|
3875
3939
|
PlaybackSurface,
|
|
3876
|
-
FormField,
|
|
3877
3940
|
MediaField,
|
|
3878
3941
|
MediaCard,
|
|
3879
3942
|
AccessSummary,
|