@mond-design-system/react 3.0.3 → 4.1.0
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/index.cjs +906 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +535 -21
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +449 -41
- package/dist/index.d.ts +449 -41
- package/dist/index.js +900 -75
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -79,7 +79,7 @@ function Heading({
|
|
|
79
79
|
var Spinner_module_default = { "spinner": "mds-Spinner__spinner"};
|
|
80
80
|
function Spinner({
|
|
81
81
|
size = 20,
|
|
82
|
-
label
|
|
82
|
+
label,
|
|
83
83
|
className,
|
|
84
84
|
style,
|
|
85
85
|
...rest
|
|
@@ -128,11 +128,13 @@ function Icon({ name, size, label, className, ...rest }) {
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Button/Button.module.css?mds-scoped
|
|
131
|
-
var Button_module_default = { "button": "mds-Button__button", "size-sm": "mds-Button__size-sm", "size-md": "mds-Button__size-md", "size-lg": "mds-Button__size-lg", "slot": "mds-Button__slot", "variant-primary": "mds-Button__variant-primary", "variant-secondary": "mds-Button__variant-secondary", "variant-ghost": "mds-Button__variant-ghost", "variant-highlight": "mds-Button__variant-highlight", "variant-danger": "mds-Button__variant-danger", "variant-warning": "mds-Button__variant-warning", "fullWidth": "mds-Button__fullWidth", "icon-only": "mds-Button__icon-only" };
|
|
131
|
+
var Button_module_default = { "button": "mds-Button__button", "size-sm": "mds-Button__size-sm", "size-md": "mds-Button__size-md", "size-lg": "mds-Button__size-lg", "slot": "mds-Button__slot", "variant-primary": "mds-Button__variant-primary", "variant-secondary": "mds-Button__variant-secondary", "variant-ghost": "mds-Button__variant-ghost", "variant-highlight": "mds-Button__variant-highlight", "variant-danger": "mds-Button__variant-danger", "variant-warning": "mds-Button__variant-warning", "fullWidth": "mds-Button__fullWidth", "icon-only": "mds-Button__icon-only", "on-media": "mds-Button__on-media", "shape-rect": "mds-Button__shape-rect", "shape-pill": "mds-Button__shape-pill" };
|
|
132
132
|
var ICON_PX = { sm: 16, md: 20, lg: 24 };
|
|
133
133
|
function Button({
|
|
134
134
|
variant = "primary",
|
|
135
135
|
size = "md",
|
|
136
|
+
shape,
|
|
137
|
+
onMedia = false,
|
|
136
138
|
iconLeft,
|
|
137
139
|
iconRight,
|
|
138
140
|
loading = false,
|
|
@@ -158,6 +160,8 @@ function Button({
|
|
|
158
160
|
Button_module_default[`size-${size}`],
|
|
159
161
|
fullWidth && Button_module_default.fullWidth,
|
|
160
162
|
iconOnly && Button_module_default["icon-only"],
|
|
163
|
+
shape !== void 0 && Button_module_default[`shape-${shape}`],
|
|
164
|
+
onMedia && Button_module_default["on-media"],
|
|
161
165
|
className
|
|
162
166
|
),
|
|
163
167
|
"aria-busy": loading || void 0,
|
|
@@ -248,6 +252,7 @@ function AvatarGroup({
|
|
|
248
252
|
children,
|
|
249
253
|
max = 4,
|
|
250
254
|
size = "md",
|
|
255
|
+
overflowLabel,
|
|
251
256
|
className,
|
|
252
257
|
...rest
|
|
253
258
|
}) {
|
|
@@ -260,7 +265,7 @@ function AvatarGroup({
|
|
|
260
265
|
"span",
|
|
261
266
|
{
|
|
262
267
|
className: cx(AvatarGroup_module_default.item, AvatarGroup_module_default.overflow, AvatarGroup_module_default[`size-${size}`]),
|
|
263
|
-
"aria-label":
|
|
268
|
+
"aria-label": overflowLabel(hidden),
|
|
264
269
|
children: [
|
|
265
270
|
"+",
|
|
266
271
|
hidden
|
|
@@ -286,6 +291,7 @@ function Chip({
|
|
|
286
291
|
onClick,
|
|
287
292
|
disabled = false,
|
|
288
293
|
className,
|
|
294
|
+
ref,
|
|
289
295
|
...rest
|
|
290
296
|
}) {
|
|
291
297
|
const interactive = typeof onClick === "function";
|
|
@@ -311,10 +317,11 @@ function Chip({
|
|
|
311
317
|
onClick,
|
|
312
318
|
disabled,
|
|
313
319
|
"aria-pressed": selected === void 0 ? void 0 : selected,
|
|
320
|
+
ref,
|
|
314
321
|
...shared,
|
|
315
322
|
children: content
|
|
316
323
|
}
|
|
317
|
-
) : /* @__PURE__ */ jsx("span", { ...shared, children: content });
|
|
324
|
+
) : /* @__PURE__ */ jsx("span", { ref, ...shared, children: content });
|
|
318
325
|
}
|
|
319
326
|
|
|
320
327
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipGroup.module.css?mds-scoped
|
|
@@ -375,6 +382,102 @@ function CountButton({
|
|
|
375
382
|
}
|
|
376
383
|
);
|
|
377
384
|
}
|
|
385
|
+
function CloseGlyph({ className }) {
|
|
386
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) });
|
|
387
|
+
}
|
|
388
|
+
function ChevronLeftGlyph({ className }) {
|
|
389
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsx(
|
|
390
|
+
"path",
|
|
391
|
+
{
|
|
392
|
+
d: "M10 3l-5 5 5 5",
|
|
393
|
+
fill: "none",
|
|
394
|
+
stroke: "currentColor",
|
|
395
|
+
strokeWidth: "1.75",
|
|
396
|
+
strokeLinecap: "round",
|
|
397
|
+
strokeLinejoin: "round"
|
|
398
|
+
}
|
|
399
|
+
) });
|
|
400
|
+
}
|
|
401
|
+
function ChevronRightGlyph({ className }) {
|
|
402
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsx(
|
|
403
|
+
"path",
|
|
404
|
+
{
|
|
405
|
+
d: "M6 3l5 5-5 5",
|
|
406
|
+
fill: "none",
|
|
407
|
+
stroke: "currentColor",
|
|
408
|
+
strokeWidth: "1.75",
|
|
409
|
+
strokeLinecap: "round",
|
|
410
|
+
strokeLinejoin: "round"
|
|
411
|
+
}
|
|
412
|
+
) });
|
|
413
|
+
}
|
|
414
|
+
function Magnifier({ className, children }) {
|
|
415
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsxs("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", children: [
|
|
416
|
+
/* @__PURE__ */ jsx("circle", { cx: "7", cy: "7", r: "4.25" }),
|
|
417
|
+
/* @__PURE__ */ jsx("path", { d: "M10.2 10.2L14 14" }),
|
|
418
|
+
children
|
|
419
|
+
] }) });
|
|
420
|
+
}
|
|
421
|
+
function ZoomInGlyph({ className }) {
|
|
422
|
+
return /* @__PURE__ */ jsx(Magnifier, { className, children: /* @__PURE__ */ jsx("path", { d: "M4.75 7h4.5M7 4.75v4.5" }) });
|
|
423
|
+
}
|
|
424
|
+
function ZoomOutGlyph({ className }) {
|
|
425
|
+
return /* @__PURE__ */ jsx(Magnifier, { className, children: /* @__PURE__ */ jsx("path", { d: "M4.75 7h4.5" }) });
|
|
426
|
+
}
|
|
427
|
+
function PlayGlyph({ className }) {
|
|
428
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsx("path", { d: "M5 3.2l7.5 4.8L5 12.8z", fill: "currentColor" }) });
|
|
429
|
+
}
|
|
430
|
+
function PauseGlyph({ className }) {
|
|
431
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsx("path", { d: "M4.5 3h2.25v10H4.5zM9.25 3h2.25v10H9.25z", fill: "currentColor" }) });
|
|
432
|
+
}
|
|
433
|
+
function Speaker() {
|
|
434
|
+
return /* @__PURE__ */ jsx("path", { d: "M2.5 6.25h2.25L8 3.4v9.2L4.75 9.75H2.5z", fill: "currentColor", stroke: "none" });
|
|
435
|
+
}
|
|
436
|
+
function VolumeGlyph({ className }) {
|
|
437
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsxs("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", children: [
|
|
438
|
+
/* @__PURE__ */ jsx(Speaker, {}),
|
|
439
|
+
/* @__PURE__ */ jsx("path", { d: "M10.5 5.75a3.25 3.25 0 010 4.5" }),
|
|
440
|
+
/* @__PURE__ */ jsx("path", { d: "M12.5 3.9a5.75 5.75 0 010 8.2" })
|
|
441
|
+
] }) });
|
|
442
|
+
}
|
|
443
|
+
function VolumeOffGlyph({ className }) {
|
|
444
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsxs("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", children: [
|
|
445
|
+
/* @__PURE__ */ jsx(Speaker, {}),
|
|
446
|
+
/* @__PURE__ */ jsx("path", { d: "M10.75 6.25l3.5 3.5M14.25 6.25l-3.5 3.5" })
|
|
447
|
+
] }) });
|
|
448
|
+
}
|
|
449
|
+
function CaptionsGlyph({ className }) {
|
|
450
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsxs("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", children: [
|
|
451
|
+
/* @__PURE__ */ jsx("rect", { x: "1.75", y: "3.25", width: "12.5", height: "9.5", rx: "2" }),
|
|
452
|
+
/* @__PURE__ */ jsx("path", { d: "M6.25 6.75a2 2 0 100 2.5M11.25 6.75a2 2 0 100 2.5" })
|
|
453
|
+
] }) });
|
|
454
|
+
}
|
|
455
|
+
function FullscreenGlyph({ className }) {
|
|
456
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsx(
|
|
457
|
+
"path",
|
|
458
|
+
{
|
|
459
|
+
d: "M6 2.5H2.5V6M10 2.5h3.5V6M6 13.5H2.5V10M10 13.5h3.5V10",
|
|
460
|
+
fill: "none",
|
|
461
|
+
stroke: "currentColor",
|
|
462
|
+
strokeWidth: "1.5",
|
|
463
|
+
strokeLinecap: "round",
|
|
464
|
+
strokeLinejoin: "round"
|
|
465
|
+
}
|
|
466
|
+
) });
|
|
467
|
+
}
|
|
468
|
+
function FullscreenExitGlyph({ className }) {
|
|
469
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className, children: /* @__PURE__ */ jsx(
|
|
470
|
+
"path",
|
|
471
|
+
{
|
|
472
|
+
d: "M2.5 6H6V2.5M13.5 6H10V2.5M2.5 10H6v3.5M13.5 10H10v3.5",
|
|
473
|
+
fill: "none",
|
|
474
|
+
stroke: "currentColor",
|
|
475
|
+
strokeWidth: "1.5",
|
|
476
|
+
strokeLinecap: "round",
|
|
477
|
+
strokeLinejoin: "round"
|
|
478
|
+
}
|
|
479
|
+
) });
|
|
480
|
+
}
|
|
378
481
|
|
|
379
482
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Field/Field.module.css?mds-scoped
|
|
380
483
|
var Field_module_default = { "field": "mds-Field__field", "label": "mds-Field__label", "required": "mds-Field__required", "message": "mds-Field__message", "error": "mds-Field__error" };
|
|
@@ -501,8 +604,8 @@ function usePresence(open, durationMs) {
|
|
|
501
604
|
return { mounted: open || mounted, visible };
|
|
502
605
|
}
|
|
503
606
|
|
|
504
|
-
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/
|
|
505
|
-
var Overlay_module_default = { "scrim": "mds-Overlay__scrim", "variant-modal": "mds-Overlay__variant-modal", "variant-sheet": "mds-Overlay__variant-sheet" };
|
|
607
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/internal/Overlay.module.css?mds-scoped
|
|
608
|
+
var Overlay_module_default = { "scrim": "mds-Overlay__scrim", "variant-modal": "mds-Overlay__variant-modal", "variant-sheet": "mds-Overlay__variant-sheet", "variant-lightbox": "mds-Overlay__variant-lightbox" };
|
|
506
609
|
var OVERLAY_EXIT_MS = 200;
|
|
507
610
|
var SHEET_EXIT_MS = 320;
|
|
508
611
|
function Overlay({ open, onClose, label, variant, role = "dialog", closeOnScrimClick, panelClassName, children }) {
|
|
@@ -556,7 +659,7 @@ function Sheet({ open, onClose, label, closeOnScrimClick = true, children }) {
|
|
|
556
659
|
function SheetHeader({ children, onClose, closeLabel }) {
|
|
557
660
|
return /* @__PURE__ */ jsxs("div", { className: Sheet_module_default.header, children: [
|
|
558
661
|
/* @__PURE__ */ jsx("span", { className: Sheet_module_default.headerTitle, children }),
|
|
559
|
-
onClose !== void 0 && /* @__PURE__ */ jsx("button", { type: "button", "aria-label": closeLabel, className: Sheet_module_default.close, onClick: onClose, children: /* @__PURE__ */ jsx(
|
|
662
|
+
onClose !== void 0 && /* @__PURE__ */ jsx("button", { type: "button", "aria-label": closeLabel, className: Sheet_module_default.close, onClick: onClose, children: /* @__PURE__ */ jsx(CloseGlyph, { className: Sheet_module_default.closeGlyph }) })
|
|
560
663
|
] });
|
|
561
664
|
}
|
|
562
665
|
function SheetBody({ children }) {
|
|
@@ -568,16 +671,6 @@ function SheetFooter({ children }) {
|
|
|
568
671
|
|
|
569
672
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/DateTimePicker/DateTimePicker.module.css?mds-scoped
|
|
570
673
|
var DateTimePicker_module_default = { "trigger": "mds-DateTimePicker__trigger", "hasValue": "mds-DateTimePicker__hasValue", "triggerLabel": "mds-DateTimePicker__triggerLabel", "glyph": "mds-DateTimePicker__glyph", "timeRow": "mds-DateTimePicker__timeRow", "grow": "mds-DateTimePicker__grow", "meridiem": "mds-DateTimePicker__meridiem", "colon": "mds-DateTimePicker__colon", "calendarHeader": "mds-DateTimePicker__calendarHeader", "monthLabel": "mds-DateTimePicker__monthLabel", "weekdays": "mds-DateTimePicker__weekdays", "weekday": "mds-DateTimePicker__weekday", "grid": "mds-DateTimePicker__grid", "day": "mds-DateTimePicker__day", "today": "mds-DateTimePicker__today", "selected": "mds-DateTimePicker__selected", "outside": "mds-DateTimePicker__outside" };
|
|
571
|
-
var DEFAULT_LABELS = {
|
|
572
|
-
dialog: "Pick date and time",
|
|
573
|
-
previousMonth: "Previous month",
|
|
574
|
-
nextMonth: "Next month",
|
|
575
|
-
today: "Today",
|
|
576
|
-
done: "Done",
|
|
577
|
-
hour: "Hour",
|
|
578
|
-
minute: "Minutes",
|
|
579
|
-
dayPeriod: "AM/PM"
|
|
580
|
-
};
|
|
581
674
|
function localeData(locale) {
|
|
582
675
|
const resolved = new Intl.DateTimeFormat(locale).resolvedOptions().locale;
|
|
583
676
|
const intlLocale = new Intl.Locale(resolved);
|
|
@@ -633,8 +726,6 @@ function minuteOptions(step) {
|
|
|
633
726
|
function pad2(n) {
|
|
634
727
|
return String(n).padStart(2, "0");
|
|
635
728
|
}
|
|
636
|
-
var chevronLeft = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_module_default.glyph, children: /* @__PURE__ */ jsx("path", { d: "M10 3l-5 5 5 5", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
637
|
-
var chevronRight = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_module_default.glyph, children: /* @__PURE__ */ jsx("path", { d: "M6 3l5 5-5 5", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
638
729
|
var calendarGlyph = /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_module_default.glyph, children: [
|
|
639
730
|
/* @__PURE__ */ jsx("rect", { x: "2.5", y: "3.5", width: "11", height: "10", rx: "1.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
640
731
|
/* @__PURE__ */ jsx("path", { d: "M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
@@ -646,16 +737,15 @@ var clockGlyph = /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 16 16", "aria-hidde
|
|
|
646
737
|
function DateTimePicker({
|
|
647
738
|
value,
|
|
648
739
|
onChange,
|
|
649
|
-
placeholder
|
|
740
|
+
placeholder,
|
|
650
741
|
min,
|
|
651
742
|
minuteStep = 5,
|
|
652
743
|
disabled = false,
|
|
653
744
|
id,
|
|
654
745
|
"aria-label": ariaLabel,
|
|
655
746
|
locale,
|
|
656
|
-
labels
|
|
747
|
+
labels: text
|
|
657
748
|
}) {
|
|
658
|
-
const text = { ...DEFAULT_LABELS, ...labels };
|
|
659
749
|
const field = useFieldContext();
|
|
660
750
|
const intl = useMemo(() => localeData(locale), [locale]);
|
|
661
751
|
const [open, setOpen] = useState(false);
|
|
@@ -818,6 +908,7 @@ function DateTimePicker({
|
|
|
818
908
|
`c-${i}`
|
|
819
909
|
);
|
|
820
910
|
});
|
|
911
|
+
const shown = value ? intl.full.format(new Date(value)) : placeholder;
|
|
821
912
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
822
913
|
/* @__PURE__ */ jsxs(
|
|
823
914
|
"button",
|
|
@@ -828,12 +919,12 @@ function DateTimePicker({
|
|
|
828
919
|
"aria-describedby": field?.describedBy,
|
|
829
920
|
"aria-haspopup": "dialog",
|
|
830
921
|
"aria-expanded": open,
|
|
831
|
-
"aria-label": ariaLabel
|
|
922
|
+
"aria-label": ariaLabel === void 0 ? void 0 : [ariaLabel, shown].filter(Boolean).join(": "),
|
|
832
923
|
onClick: openPicker,
|
|
833
924
|
className: cx(DateTimePicker_module_default.trigger, value && DateTimePicker_module_default.hasValue),
|
|
834
925
|
children: [
|
|
835
926
|
calendarGlyph,
|
|
836
|
-
/* @__PURE__ */ jsx("span", { className: DateTimePicker_module_default.triggerLabel, children:
|
|
927
|
+
/* @__PURE__ */ jsx("span", { className: DateTimePicker_module_default.triggerLabel, children: shown })
|
|
837
928
|
]
|
|
838
929
|
}
|
|
839
930
|
),
|
|
@@ -867,11 +958,11 @@ function DateTimePicker({
|
|
|
867
958
|
size: "sm",
|
|
868
959
|
disabled: prevDisabled,
|
|
869
960
|
onClick: () => shiftMonth(-1),
|
|
870
|
-
children:
|
|
961
|
+
children: /* @__PURE__ */ jsx(ChevronLeftGlyph, { className: DateTimePicker_module_default.glyph })
|
|
871
962
|
}
|
|
872
963
|
),
|
|
873
964
|
/* @__PURE__ */ jsx("span", { className: DateTimePicker_module_default.monthLabel, children: intl.monthTitle.format(first) }),
|
|
874
|
-
/* @__PURE__ */ jsx(Button, { iconOnly: true, "aria-label": text.nextMonth, variant: "ghost", size: "sm", onClick: () => shiftMonth(1), children:
|
|
965
|
+
/* @__PURE__ */ jsx(Button, { iconOnly: true, "aria-label": text.nextMonth, variant: "ghost", size: "sm", onClick: () => shiftMonth(1), children: /* @__PURE__ */ jsx(ChevronRightGlyph, { className: DateTimePicker_module_default.glyph }) })
|
|
875
966
|
] }),
|
|
876
967
|
/* @__PURE__ */ jsx("div", { className: DateTimePicker_module_default.weekdays, children: intl.weekdays.map((w, i) => /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: DateTimePicker_module_default.weekday, children: w }, `wd-${i}`)) }),
|
|
877
968
|
/* @__PURE__ */ jsx("div", { className: DateTimePicker_module_default.grid, children: dayCells })
|
|
@@ -886,19 +977,25 @@ function DateTimePicker({
|
|
|
886
977
|
}
|
|
887
978
|
|
|
888
979
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tag/Tag.module.css?mds-scoped
|
|
889
|
-
var Tag_module_default = { "tag": "mds-Tag__tag", "tone-accent": "mds-Tag__tone-accent", "remove": "mds-Tag__remove", "removeGlyph": "mds-Tag__removeGlyph" };
|
|
890
|
-
function Tag({
|
|
891
|
-
|
|
980
|
+
var Tag_module_default = { "tag": "mds-Tag__tag", "tone-accent": "mds-Tag__tone-accent", "remove": "mds-Tag__remove mds-hit-area__hitArea", "removeGlyph": "mds-Tag__removeGlyph" };
|
|
981
|
+
function Tag({
|
|
982
|
+
children,
|
|
983
|
+
tone = "neutral",
|
|
984
|
+
onRemove,
|
|
985
|
+
removeLabel,
|
|
986
|
+
className,
|
|
987
|
+
...rest
|
|
988
|
+
}) {
|
|
892
989
|
return /* @__PURE__ */ jsxs("span", { className: cx(Tag_module_default.tag, Tag_module_default[`tone-${tone}`], className), ...rest, children: [
|
|
893
990
|
children,
|
|
894
|
-
onRemove && /* @__PURE__ */ jsx(
|
|
991
|
+
onRemove !== void 0 && /* @__PURE__ */ jsx(
|
|
895
992
|
"button",
|
|
896
993
|
{
|
|
897
994
|
type: "button",
|
|
898
995
|
className: Tag_module_default.remove,
|
|
899
|
-
"aria-label":
|
|
996
|
+
"aria-label": removeLabel,
|
|
900
997
|
onClick: onRemove,
|
|
901
|
-
children: /* @__PURE__ */ jsx(
|
|
998
|
+
children: /* @__PURE__ */ jsx(CloseGlyph, { className: Tag_module_default.removeGlyph })
|
|
902
999
|
}
|
|
903
1000
|
)
|
|
904
1001
|
] });
|
|
@@ -918,6 +1015,14 @@ function Divider({ orientation = "horizontal", className, ...rest }) {
|
|
|
918
1015
|
);
|
|
919
1016
|
}
|
|
920
1017
|
|
|
1018
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/VisuallyHidden/VisuallyHidden.module.css?mds-scoped
|
|
1019
|
+
var VisuallyHidden_module_default = { "hidden": "mds-VisuallyHidden__hidden" };
|
|
1020
|
+
|
|
1021
|
+
// src/components/VisuallyHidden/VisuallyHidden.tsx
|
|
1022
|
+
function VisuallyHidden({ as = "span", className, ...rest }) {
|
|
1023
|
+
return createElement(as, { className: cx(VisuallyHidden_module_default.hidden, className), ...rest });
|
|
1024
|
+
}
|
|
1025
|
+
|
|
921
1026
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Skeleton/Skeleton.module.css?mds-scoped
|
|
922
1027
|
var Skeleton_module_default = { "skeleton": "mds-Skeleton__skeleton", "pulse": "mds-Skeleton__pulse", "variant-text": "mds-Skeleton__variant-text", "variant-rect": "mds-Skeleton__variant-rect", "variant-circle": "mds-Skeleton__variant-circle" };
|
|
923
1028
|
function Skeleton({
|
|
@@ -948,6 +1053,7 @@ var ProgressBar_module_default = { "track": "mds-ProgressBar__track", "fill": "m
|
|
|
948
1053
|
function ProgressBar({
|
|
949
1054
|
value = 0,
|
|
950
1055
|
label,
|
|
1056
|
+
valueText,
|
|
951
1057
|
indeterminate = false,
|
|
952
1058
|
className,
|
|
953
1059
|
style,
|
|
@@ -962,6 +1068,7 @@ function ProgressBar({
|
|
|
962
1068
|
"aria-valuemin": 0,
|
|
963
1069
|
"aria-valuemax": 100,
|
|
964
1070
|
"aria-valuenow": indeterminate ? void 0 : clamped,
|
|
1071
|
+
"aria-valuetext": valueText,
|
|
965
1072
|
className: cx(ProgressBar_module_default.track, indeterminate && ProgressBar_module_default.indeterminate, className),
|
|
966
1073
|
style: { ...{ "--progress": `${clamped}%` }, ...style },
|
|
967
1074
|
...rest,
|
|
@@ -1007,7 +1114,12 @@ function Input({
|
|
|
1007
1114
|
|
|
1008
1115
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/PasswordInput/PasswordInput.module.css?mds-scoped
|
|
1009
1116
|
var PasswordInput_module_default = { "wrap": "mds-PasswordInput__wrap", "input": "mds-PasswordInput__input", "toggle": "mds-PasswordInput__toggle" };
|
|
1010
|
-
function PasswordInput({
|
|
1117
|
+
function PasswordInput({
|
|
1118
|
+
showLabel,
|
|
1119
|
+
hideLabel,
|
|
1120
|
+
className,
|
|
1121
|
+
...rest
|
|
1122
|
+
}) {
|
|
1011
1123
|
const [visible, setVisible] = useState(false);
|
|
1012
1124
|
return /* @__PURE__ */ jsxs("span", { className: PasswordInput_module_default.wrap, children: [
|
|
1013
1125
|
/* @__PURE__ */ jsx(Input, { ...rest, type: visible ? "text" : "password", className: cx(PasswordInput_module_default.input, className) }),
|
|
@@ -1016,7 +1128,7 @@ function PasswordInput({ className, ...rest }) {
|
|
|
1016
1128
|
{
|
|
1017
1129
|
type: "button",
|
|
1018
1130
|
className: PasswordInput_module_default.toggle,
|
|
1019
|
-
"aria-label": visible ?
|
|
1131
|
+
"aria-label": visible ? hideLabel : showLabel,
|
|
1020
1132
|
"aria-pressed": visible,
|
|
1021
1133
|
onClick: () => setVisible((v) => !v),
|
|
1022
1134
|
children: visible ? (
|
|
@@ -1069,7 +1181,7 @@ function Textarea({ rows = 3, showCount = false, className, ...rest }) {
|
|
|
1069
1181
|
}
|
|
1070
1182
|
|
|
1071
1183
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Checkbox/Checkbox.module.css?mds-scoped
|
|
1072
|
-
var Checkbox_module_default = { "root": "mds-Checkbox__root", "box": "mds-Checkbox__box", "label": "mds-Checkbox__label" };
|
|
1184
|
+
var Checkbox_module_default = { "root": "mds-Checkbox__root", "box": "mds-Checkbox__box mds-hit-area__hitArea", "label": "mds-Checkbox__label" };
|
|
1073
1185
|
function Checkbox({ label, className, ...rest }) {
|
|
1074
1186
|
return /* @__PURE__ */ jsxs("label", { className: cx(Checkbox_module_default.root, className), children: [
|
|
1075
1187
|
/* @__PURE__ */ jsx("input", { type: "checkbox", className: Checkbox_module_default.box, ...rest }),
|
|
@@ -1078,7 +1190,7 @@ function Checkbox({ label, className, ...rest }) {
|
|
|
1078
1190
|
}
|
|
1079
1191
|
|
|
1080
1192
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Radio/Radio.module.css?mds-scoped
|
|
1081
|
-
var Radio_module_default = { "root": "mds-Radio__root", "dot": "mds-Radio__dot", "label": "mds-Radio__label" };
|
|
1193
|
+
var Radio_module_default = { "root": "mds-Radio__root", "dot": "mds-Radio__dot mds-hit-area__hitArea", "label": "mds-Radio__label" };
|
|
1082
1194
|
function Radio({ label, className, ...rest }) {
|
|
1083
1195
|
return /* @__PURE__ */ jsxs("label", { className: cx(Radio_module_default.root, className), children: [
|
|
1084
1196
|
/* @__PURE__ */ jsx("input", { type: "radio", className: Radio_module_default.dot, ...rest }),
|
|
@@ -1087,7 +1199,7 @@ function Radio({ label, className, ...rest }) {
|
|
|
1087
1199
|
}
|
|
1088
1200
|
|
|
1089
1201
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Switch/Switch.module.css?mds-scoped
|
|
1090
|
-
var Switch_module_default = { "root": "mds-Switch__root", "track": "mds-Switch__track", "trackWrap": "mds-Switch__trackWrap", "spinner": "mds-Switch__spinner", "label": "mds-Switch__label" };
|
|
1202
|
+
var Switch_module_default = { "root": "mds-Switch__root", "track": "mds-Switch__track mds-hit-area__hitArea", "trackWrap": "mds-Switch__trackWrap", "spinner": "mds-Switch__spinner", "label": "mds-Switch__label" };
|
|
1091
1203
|
function Switch({
|
|
1092
1204
|
label,
|
|
1093
1205
|
loading = false,
|
|
@@ -1115,7 +1227,7 @@ function Switch({
|
|
|
1115
1227
|
}
|
|
1116
1228
|
|
|
1117
1229
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SegmentedControl/SegmentedControl.module.css?mds-scoped
|
|
1118
|
-
var SegmentedControl_module_default = { "group": "mds-SegmentedControl__group", "
|
|
1230
|
+
var SegmentedControl_module_default = { "group": "mds-SegmentedControl__group", "size-md": "mds-SegmentedControl__size-md", "face": "mds-SegmentedControl__face", "size-sm": "mds-SegmentedControl__size-sm", "bare": "mds-SegmentedControl__bare", "segment": "mds-SegmentedControl__segment", "fullWidth": "mds-SegmentedControl__fullWidth", "input": "mds-SegmentedControl__input" };
|
|
1119
1231
|
function SegmentedControl({
|
|
1120
1232
|
label,
|
|
1121
1233
|
options,
|
|
@@ -1123,29 +1235,52 @@ function SegmentedControl({
|
|
|
1123
1235
|
onChange,
|
|
1124
1236
|
disabled = false,
|
|
1125
1237
|
fullWidth = false,
|
|
1238
|
+
size = "md",
|
|
1239
|
+
bare = false,
|
|
1126
1240
|
className
|
|
1127
1241
|
}) {
|
|
1128
1242
|
const name = useId();
|
|
1129
|
-
return /* @__PURE__ */ jsx(
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
className
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1243
|
+
return /* @__PURE__ */ jsx(
|
|
1244
|
+
"div",
|
|
1245
|
+
{
|
|
1246
|
+
role: "radiogroup",
|
|
1247
|
+
"aria-label": label,
|
|
1248
|
+
className: cx(
|
|
1249
|
+
SegmentedControl_module_default.group,
|
|
1250
|
+
SegmentedControl_module_default[`size-${size}`],
|
|
1251
|
+
fullWidth && SegmentedControl_module_default.fullWidth,
|
|
1252
|
+
bare && SegmentedControl_module_default.bare,
|
|
1253
|
+
className
|
|
1254
|
+
),
|
|
1255
|
+
children: options.map((option) => /* @__PURE__ */ jsxs("label", { className: SegmentedControl_module_default.segment, children: [
|
|
1256
|
+
/* @__PURE__ */ jsx(
|
|
1257
|
+
"input",
|
|
1258
|
+
{
|
|
1259
|
+
type: "radio",
|
|
1260
|
+
name,
|
|
1261
|
+
value: option.value,
|
|
1262
|
+
checked: option.value === value,
|
|
1263
|
+
onChange: () => onChange(option.value),
|
|
1264
|
+
disabled,
|
|
1265
|
+
className: SegmentedControl_module_default.input
|
|
1266
|
+
}
|
|
1267
|
+
),
|
|
1268
|
+
/* @__PURE__ */ jsx("span", { className: SegmentedControl_module_default.face, children: option.label })
|
|
1269
|
+
] }, option.value))
|
|
1270
|
+
}
|
|
1271
|
+
);
|
|
1144
1272
|
}
|
|
1145
1273
|
|
|
1146
1274
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SearchField/SearchField.module.css?mds-scoped
|
|
1147
|
-
var SearchField_module_default = { "wrap": "mds-SearchField__wrap", "glass": "mds-SearchField__glass", "input": "mds-SearchField__input", "clear": "mds-SearchField__clear", "clearGlyph": "mds-SearchField__clearGlyph" };
|
|
1148
|
-
function SearchField({
|
|
1275
|
+
var SearchField_module_default = { "wrap": "mds-SearchField__wrap", "glass": "mds-SearchField__glass", "input": "mds-SearchField__input", "clear": "mds-SearchField__clear mds-hit-area__hitArea", "clearGlyph": "mds-SearchField__clearGlyph" };
|
|
1276
|
+
function SearchField({
|
|
1277
|
+
label,
|
|
1278
|
+
clearLabel,
|
|
1279
|
+
value,
|
|
1280
|
+
onChange,
|
|
1281
|
+
className,
|
|
1282
|
+
...rest
|
|
1283
|
+
}) {
|
|
1149
1284
|
return /* @__PURE__ */ jsxs("span", { className: cx(SearchField_module_default.wrap, className), children: [
|
|
1150
1285
|
/* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: SearchField_module_default.glass, children: /* @__PURE__ */ jsx(
|
|
1151
1286
|
"path",
|
|
@@ -1172,10 +1307,10 @@ function SearchField({ label, value, onChange, className, ...rest }) {
|
|
|
1172
1307
|
"button",
|
|
1173
1308
|
{
|
|
1174
1309
|
type: "button",
|
|
1175
|
-
"aria-label":
|
|
1310
|
+
"aria-label": clearLabel,
|
|
1176
1311
|
className: SearchField_module_default.clear,
|
|
1177
1312
|
onClick: () => onChange(""),
|
|
1178
|
-
children: /* @__PURE__ */ jsx(
|
|
1313
|
+
children: /* @__PURE__ */ jsx(CloseGlyph, { className: SearchField_module_default.clearGlyph })
|
|
1179
1314
|
}
|
|
1180
1315
|
)
|
|
1181
1316
|
] });
|
|
@@ -1208,12 +1343,15 @@ function ListItem({
|
|
|
1208
1343
|
onClick,
|
|
1209
1344
|
pressed,
|
|
1210
1345
|
href,
|
|
1346
|
+
as,
|
|
1211
1347
|
surface,
|
|
1212
1348
|
className,
|
|
1349
|
+
ref,
|
|
1213
1350
|
...rest
|
|
1214
1351
|
}) {
|
|
1215
1352
|
const inGroup = useContext(ListGroupContext);
|
|
1216
1353
|
const Root = inGroup ? "li" : "div";
|
|
1354
|
+
const LinkElement = as ?? "a";
|
|
1217
1355
|
const resolved = surface ?? (inGroup ? void 0 : "card");
|
|
1218
1356
|
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1219
1357
|
leading != null && /* @__PURE__ */ jsx("span", { className: List_module_default.leading, children: leading }),
|
|
@@ -1227,8 +1365,9 @@ function ListItem({
|
|
|
1227
1365
|
Root,
|
|
1228
1366
|
{
|
|
1229
1367
|
className: cx(List_module_default.item, resolved && List_module_default[`surface-${resolved}`], className),
|
|
1368
|
+
ref,
|
|
1230
1369
|
...rest,
|
|
1231
|
-
children: href !== void 0 ? /* @__PURE__ */ jsx(
|
|
1370
|
+
children: href !== void 0 ? /* @__PURE__ */ jsx(LinkElement, { className: cx(List_module_default.row, List_module_default.interactive), href, children: content }) : onClick !== void 0 ? /* @__PURE__ */ jsx(
|
|
1232
1371
|
"button",
|
|
1233
1372
|
{
|
|
1234
1373
|
type: "button",
|
|
@@ -1344,7 +1483,7 @@ function TabPanel({ value, className, children, ...rest }) {
|
|
|
1344
1483
|
}
|
|
1345
1484
|
|
|
1346
1485
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Toast/Toast.module.css?mds-scoped
|
|
1347
|
-
var Toast_module_default = { "viewport": "mds-Toast__viewport", "toast": "mds-Toast__toast", "tone-success": "mds-Toast__tone-success", "tone-danger": "mds-Toast__tone-danger", "body": "mds-Toast__body", "title": "mds-Toast__title", "description": "mds-Toast__description", "close": "mds-Toast__close", "closeGlyph": "mds-Toast__closeGlyph" };
|
|
1486
|
+
var Toast_module_default = { "viewport": "mds-Toast__viewport", "toast": "mds-Toast__toast", "tone-success": "mds-Toast__tone-success", "tone-danger": "mds-Toast__tone-danger", "body": "mds-Toast__body", "title": "mds-Toast__title", "description": "mds-Toast__description", "close": "mds-Toast__close mds-hit-area__hitArea", "closeGlyph": "mds-Toast__closeGlyph", "action": "mds-Toast__action mds-hit-area__hitArea" };
|
|
1348
1487
|
var ToastContext = createContext(null);
|
|
1349
1488
|
function useToast() {
|
|
1350
1489
|
const context = useContext(ToastContext);
|
|
@@ -1353,18 +1492,25 @@ function useToast() {
|
|
|
1353
1492
|
}
|
|
1354
1493
|
function ToastProvider({
|
|
1355
1494
|
children,
|
|
1356
|
-
regionLabel
|
|
1357
|
-
dismissLabel
|
|
1495
|
+
regionLabel,
|
|
1496
|
+
dismissLabel
|
|
1358
1497
|
}) {
|
|
1359
1498
|
const [toasts, setToasts] = useState([]);
|
|
1360
1499
|
const nextId = useRef(1);
|
|
1500
|
+
const leaving = useRef(/* @__PURE__ */ new Map());
|
|
1361
1501
|
const dismiss = useCallback((id) => {
|
|
1362
1502
|
setToasts((current) => current.filter((entry) => entry.id !== id));
|
|
1503
|
+
const said = leaving.current.get(id);
|
|
1504
|
+
if (said !== void 0) {
|
|
1505
|
+
leaving.current.delete(id);
|
|
1506
|
+
said();
|
|
1507
|
+
}
|
|
1363
1508
|
}, []);
|
|
1364
1509
|
const toast = useCallback(
|
|
1365
|
-
({ title, description, tone = "neutral", duration = 5e3 }) => {
|
|
1510
|
+
({ title, description, tone = "neutral", duration = 5e3, action, onDismiss }) => {
|
|
1366
1511
|
const id = nextId.current++;
|
|
1367
|
-
|
|
1512
|
+
if (onDismiss !== void 0) leaving.current.set(id, onDismiss);
|
|
1513
|
+
setToasts((current) => [...current, { id, title, description, tone, action }]);
|
|
1368
1514
|
if (duration > 0) setTimeout(() => dismiss(id), duration);
|
|
1369
1515
|
return id;
|
|
1370
1516
|
},
|
|
@@ -1378,6 +1524,18 @@ function ToastProvider({
|
|
|
1378
1524
|
/* @__PURE__ */ jsx("span", { className: Toast_module_default.title, children: entry.title }),
|
|
1379
1525
|
entry.description !== void 0 && /* @__PURE__ */ jsx("span", { className: Toast_module_default.description, children: entry.description })
|
|
1380
1526
|
] }),
|
|
1527
|
+
entry.action !== void 0 && /* @__PURE__ */ jsx(
|
|
1528
|
+
"button",
|
|
1529
|
+
{
|
|
1530
|
+
type: "button",
|
|
1531
|
+
className: Toast_module_default.action,
|
|
1532
|
+
onClick: () => {
|
|
1533
|
+
entry.action?.onClick();
|
|
1534
|
+
dismiss(entry.id);
|
|
1535
|
+
},
|
|
1536
|
+
children: entry.action.label
|
|
1537
|
+
}
|
|
1538
|
+
),
|
|
1381
1539
|
/* @__PURE__ */ jsx(
|
|
1382
1540
|
"button",
|
|
1383
1541
|
{
|
|
@@ -1385,7 +1543,7 @@ function ToastProvider({
|
|
|
1385
1543
|
"aria-label": `${dismissLabel}: ${entry.title}`,
|
|
1386
1544
|
className: Toast_module_default.close,
|
|
1387
1545
|
onClick: () => dismiss(entry.id),
|
|
1388
|
-
children: /* @__PURE__ */ jsx(
|
|
1546
|
+
children: /* @__PURE__ */ jsx(CloseGlyph, { className: Toast_module_default.closeGlyph })
|
|
1389
1547
|
}
|
|
1390
1548
|
)
|
|
1391
1549
|
] }, entry.id)) })
|
|
@@ -1453,15 +1611,26 @@ function Container({
|
|
|
1453
1611
|
|
|
1454
1612
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Card/Card.module.css?mds-scoped
|
|
1455
1613
|
var Card_module_default = { "card": "mds-Card__card", "variant-raised": "mds-Card__variant-raised", "variant-sunken": "mds-Card__variant-sunken", "emphasis": "mds-Card__emphasis", "interactive": "mds-Card__interactive", "header": "mds-Card__header", "body": "mds-Card__body", "footer": "mds-Card__footer" };
|
|
1456
|
-
function Card({ children, variant = "card", emphasis = false, onClick, href, className, ...rest }) {
|
|
1614
|
+
function Card({ children, variant = "card", emphasis = false, onClick, href, as, className, ref, ...rest }) {
|
|
1457
1615
|
const cardClass = cx(Card_module_default.card, Card_module_default[`variant-${variant}`], emphasis && Card_module_default.emphasis, className);
|
|
1458
1616
|
if (href !== void 0) {
|
|
1459
|
-
|
|
1617
|
+
const Element = as ?? "a";
|
|
1618
|
+
return /* @__PURE__ */ jsx(Element, { className: cx(cardClass, Card_module_default.interactive), href, ref, ...rest, children });
|
|
1460
1619
|
}
|
|
1461
1620
|
if (onClick !== void 0) {
|
|
1462
|
-
return /* @__PURE__ */ jsx(
|
|
1621
|
+
return /* @__PURE__ */ jsx(
|
|
1622
|
+
"button",
|
|
1623
|
+
{
|
|
1624
|
+
type: "button",
|
|
1625
|
+
className: cx(cardClass, Card_module_default.interactive),
|
|
1626
|
+
onClick,
|
|
1627
|
+
ref,
|
|
1628
|
+
...rest,
|
|
1629
|
+
children
|
|
1630
|
+
}
|
|
1631
|
+
);
|
|
1463
1632
|
}
|
|
1464
|
-
return /* @__PURE__ */ jsx("div", { className: cardClass, ...rest, children });
|
|
1633
|
+
return /* @__PURE__ */ jsx("div", { className: cardClass, ref, ...rest, children });
|
|
1465
1634
|
}
|
|
1466
1635
|
function CardHeader({ className, ...rest }) {
|
|
1467
1636
|
return /* @__PURE__ */ jsx("div", { className: cx(Card_module_default.header, className), ...rest });
|
|
@@ -1515,7 +1684,7 @@ function ConfirmDialog({
|
|
|
1515
1684
|
title,
|
|
1516
1685
|
description,
|
|
1517
1686
|
confirmLabel,
|
|
1518
|
-
cancelLabel
|
|
1687
|
+
cancelLabel,
|
|
1519
1688
|
tone = "default",
|
|
1520
1689
|
errorMessage
|
|
1521
1690
|
}) {
|
|
@@ -1584,9 +1753,9 @@ function ScreenContent({ children, flush = false, className, ref, ...rest }) {
|
|
|
1584
1753
|
|
|
1585
1754
|
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AppBar/AppBar.module.css?mds-scoped
|
|
1586
1755
|
var AppBar_module_default = { "bar": "mds-AppBar__bar", "title": "mds-AppBar__title", "text": "mds-AppBar__text", "subtitle": "mds-AppBar__subtitle", "slot": "mds-AppBar__slot", "trailing": "mds-AppBar__trailing" };
|
|
1587
|
-
function AppBar({ title, subtitle, leading, trailing }) {
|
|
1756
|
+
function AppBar({ title, subtitle, leading, trailing, className, ref, ...rest }) {
|
|
1588
1757
|
const heading = title ? /* @__PURE__ */ jsx("h1", { className: AppBar_module_default.title, children: title }) : null;
|
|
1589
|
-
return /* @__PURE__ */ jsxs("header", { className: AppBar_module_default.bar, children: [
|
|
1758
|
+
return /* @__PURE__ */ jsxs("header", { ref, className: cx(AppBar_module_default.bar, className), ...rest, children: [
|
|
1590
1759
|
leading ? /* @__PURE__ */ jsx("div", { className: AppBar_module_default.slot, children: leading }) : null,
|
|
1591
1760
|
subtitle != null ? /* @__PURE__ */ jsxs("div", { className: AppBar_module_default.text, children: [
|
|
1592
1761
|
heading,
|
|
@@ -1601,23 +1770,679 @@ var TabBar_module_default = { "bar": "mds-TabBar__bar", "item": "mds-TabBar__ite
|
|
|
1601
1770
|
function TabBar({ label, children }) {
|
|
1602
1771
|
return /* @__PURE__ */ jsx("nav", { "aria-label": label, className: TabBar_module_default.bar, children });
|
|
1603
1772
|
}
|
|
1604
|
-
function TabBarItem({
|
|
1773
|
+
function TabBarItem({
|
|
1774
|
+
label,
|
|
1775
|
+
icon,
|
|
1776
|
+
href,
|
|
1777
|
+
onClick,
|
|
1778
|
+
active = false,
|
|
1779
|
+
badge = false,
|
|
1780
|
+
as,
|
|
1781
|
+
hideLabel = false
|
|
1782
|
+
}) {
|
|
1605
1783
|
const className = cx(TabBar_module_default.item, active && TabBar_module_default.active);
|
|
1606
1784
|
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1607
1785
|
/* @__PURE__ */ jsxs("span", { className: TabBar_module_default.icon, "aria-hidden": "true", children: [
|
|
1608
1786
|
icon,
|
|
1609
1787
|
badge ? /* @__PURE__ */ jsx("span", { className: TabBar_module_default.badge, "data-testid": "mds-tabbar-badge" }) : null
|
|
1610
1788
|
] }),
|
|
1611
|
-
/* @__PURE__ */ jsx("span", { className: TabBar_module_default.label, children: label })
|
|
1789
|
+
hideLabel ? /* @__PURE__ */ jsx(VisuallyHidden, { children: label }) : /* @__PURE__ */ jsx("span", { className: TabBar_module_default.label, children: label })
|
|
1612
1790
|
] });
|
|
1613
1791
|
if (href !== void 0) {
|
|
1614
|
-
|
|
1792
|
+
const Element = as ?? "a";
|
|
1793
|
+
return /* @__PURE__ */ jsx(Element, { href, className, "aria-current": active ? "page" : void 0, onClick, children: content });
|
|
1615
1794
|
}
|
|
1616
1795
|
return /* @__PURE__ */ jsx("button", { type: "button", className, "aria-current": active ? "page" : void 0, onClick, children: content });
|
|
1617
1796
|
}
|
|
1618
1797
|
function TabBarAction({ label, icon, onClick }) {
|
|
1619
1798
|
return /* @__PURE__ */ jsx("button", { type: "button", "aria-label": label, className: TabBar_module_default.action, onClick, children: /* @__PURE__ */ jsx("span", { className: TabBar_module_default.icon, "aria-hidden": "true", children: icon }) });
|
|
1620
1799
|
}
|
|
1800
|
+
|
|
1801
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/MediaPlaceholder/MediaPlaceholder.module.css?mds-scoped
|
|
1802
|
+
var MediaPlaceholder_module_default = { "media": "mds-MediaPlaceholder__media", "fill": "mds-MediaPlaceholder__fill", "image": "mds-MediaPlaceholder__image", "caption": "mds-MediaPlaceholder__caption", "cover": "mds-MediaPlaceholder__cover", "blurred": "mds-MediaPlaceholder__blurred" };
|
|
1803
|
+
function MediaPlaceholder({
|
|
1804
|
+
aspect,
|
|
1805
|
+
src,
|
|
1806
|
+
alt = "",
|
|
1807
|
+
glyph,
|
|
1808
|
+
caption,
|
|
1809
|
+
blurred = false,
|
|
1810
|
+
cover,
|
|
1811
|
+
className,
|
|
1812
|
+
style,
|
|
1813
|
+
...rest
|
|
1814
|
+
}) {
|
|
1815
|
+
const [failed, setFailed] = useState();
|
|
1816
|
+
const picture = src !== void 0 && failed !== src;
|
|
1817
|
+
const vars = aspect === void 0 ? {} : { "--media-aspect": aspect };
|
|
1818
|
+
return /* @__PURE__ */ jsxs(
|
|
1819
|
+
"div",
|
|
1820
|
+
{
|
|
1821
|
+
className: cx(MediaPlaceholder_module_default.media, blurred && MediaPlaceholder_module_default.blurred, className),
|
|
1822
|
+
style: { ...vars, ...style },
|
|
1823
|
+
...rest,
|
|
1824
|
+
children: [
|
|
1825
|
+
picture ? /* @__PURE__ */ jsx(
|
|
1826
|
+
"img",
|
|
1827
|
+
{
|
|
1828
|
+
className: MediaPlaceholder_module_default.image,
|
|
1829
|
+
src,
|
|
1830
|
+
alt,
|
|
1831
|
+
loading: "lazy",
|
|
1832
|
+
decoding: "async",
|
|
1833
|
+
onError: () => setFailed(src)
|
|
1834
|
+
}
|
|
1835
|
+
) : /* @__PURE__ */ jsxs("div", { className: MediaPlaceholder_module_default.fill, "aria-hidden": "true", children: [
|
|
1836
|
+
glyph,
|
|
1837
|
+
caption !== void 0 && /* @__PURE__ */ jsx(Text, { variant: "meta", children: caption })
|
|
1838
|
+
] }),
|
|
1839
|
+
picture && caption !== void 0 && /* @__PURE__ */ jsx(Text, { variant: "meta", tone: "on-media", className: MediaPlaceholder_module_default.caption, children: caption }),
|
|
1840
|
+
cover !== void 0 && /* @__PURE__ */ jsx("div", { className: MediaPlaceholder_module_default.cover, children: cover })
|
|
1841
|
+
]
|
|
1842
|
+
}
|
|
1843
|
+
);
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ImageCarousel/ImageCarousel.module.css?mds-scoped
|
|
1847
|
+
var ImageCarousel_module_default = { "carousel": "mds-ImageCarousel__carousel", "viewport": "mds-ImageCarousel__viewport", "slide": "mds-ImageCarousel__slide", "step": "mds-ImageCarousel__step", "zoom": "mds-ImageCarousel__zoom", "prev": "mds-ImageCarousel__prev", "next": "mds-ImageCarousel__next", "counter": "mds-ImageCarousel__counter", "thumbs": "mds-ImageCarousel__thumbs", "thumb": "mds-ImageCarousel__thumb", "more": "mds-ImageCarousel__more", "dots": "mds-ImageCarousel__dots", "dot": "mds-ImageCarousel__dot" };
|
|
1848
|
+
var SWIPE_THRESHOLD = 40;
|
|
1849
|
+
function ImageCarousel({
|
|
1850
|
+
slides,
|
|
1851
|
+
labels,
|
|
1852
|
+
index,
|
|
1853
|
+
defaultIndex = 0,
|
|
1854
|
+
onIndexChange,
|
|
1855
|
+
pager = "thumbnails",
|
|
1856
|
+
maxThumbnails = 4,
|
|
1857
|
+
onZoom,
|
|
1858
|
+
zoomIcon,
|
|
1859
|
+
zoomLabel,
|
|
1860
|
+
className,
|
|
1861
|
+
...rest
|
|
1862
|
+
}) {
|
|
1863
|
+
const [ownIndex, setOwnIndex] = useState(defaultIndex);
|
|
1864
|
+
const swipeStart = useRef(null);
|
|
1865
|
+
const held = index !== void 0;
|
|
1866
|
+
const last = slides.length - 1;
|
|
1867
|
+
const current = Math.min(Math.max(held ? index : ownIndex, 0), last);
|
|
1868
|
+
const many = slides.length > 1;
|
|
1869
|
+
const slide = slides[current];
|
|
1870
|
+
if (slide === void 0) return null;
|
|
1871
|
+
const goTo = (next) => {
|
|
1872
|
+
const clamped = Math.min(Math.max(next, 0), last);
|
|
1873
|
+
if (clamped === current) return;
|
|
1874
|
+
if (!held) setOwnIndex(clamped);
|
|
1875
|
+
onIndexChange?.(clamped);
|
|
1876
|
+
};
|
|
1877
|
+
const onKeyDown = (event) => {
|
|
1878
|
+
if (!many) return;
|
|
1879
|
+
const step = {
|
|
1880
|
+
ArrowLeft: current - 1,
|
|
1881
|
+
ArrowRight: current + 1,
|
|
1882
|
+
Home: 0,
|
|
1883
|
+
End: last
|
|
1884
|
+
};
|
|
1885
|
+
const next = step[event.key];
|
|
1886
|
+
if (next === void 0) return;
|
|
1887
|
+
event.preventDefault();
|
|
1888
|
+
goTo(next);
|
|
1889
|
+
};
|
|
1890
|
+
const onPointerUp = (event) => {
|
|
1891
|
+
const start = swipeStart.current;
|
|
1892
|
+
swipeStart.current = null;
|
|
1893
|
+
if (start === null) return;
|
|
1894
|
+
const travelled = event.clientX - start;
|
|
1895
|
+
if (Math.abs(travelled) < SWIPE_THRESHOLD) {
|
|
1896
|
+
const onControl = event.target.closest("button") !== null;
|
|
1897
|
+
if (onZoom !== void 0 && !onControl && slide.covered !== true) onZoom(current);
|
|
1898
|
+
return;
|
|
1899
|
+
}
|
|
1900
|
+
if (many) goTo(travelled < 0 ? current + 1 : current - 1);
|
|
1901
|
+
};
|
|
1902
|
+
const shown = pager === "thumbnails" ? slides.slice(0, maxThumbnails) : [];
|
|
1903
|
+
const hidden = slides.length - shown.length;
|
|
1904
|
+
const counted = labels.counter(current + 1, slides.length);
|
|
1905
|
+
return /* @__PURE__ */ jsxs(
|
|
1906
|
+
"section",
|
|
1907
|
+
{
|
|
1908
|
+
className: cx(ImageCarousel_module_default.carousel, className),
|
|
1909
|
+
"aria-roledescription": labels.carouselRole,
|
|
1910
|
+
"aria-label": labels.region,
|
|
1911
|
+
tabIndex: 0,
|
|
1912
|
+
onKeyDown,
|
|
1913
|
+
...rest,
|
|
1914
|
+
children: [
|
|
1915
|
+
/* @__PURE__ */ jsxs(
|
|
1916
|
+
"div",
|
|
1917
|
+
{
|
|
1918
|
+
className: ImageCarousel_module_default.viewport,
|
|
1919
|
+
onPointerDown: (event) => {
|
|
1920
|
+
swipeStart.current = event.clientX;
|
|
1921
|
+
},
|
|
1922
|
+
onPointerUp,
|
|
1923
|
+
onPointerCancel: () => {
|
|
1924
|
+
swipeStart.current = null;
|
|
1925
|
+
},
|
|
1926
|
+
children: [
|
|
1927
|
+
/* @__PURE__ */ jsx("div", { className: ImageCarousel_module_default.slide, role: "group", "aria-roledescription": labels.slideRole, "aria-label": counted, children: /* @__PURE__ */ jsx(
|
|
1928
|
+
MediaPlaceholder,
|
|
1929
|
+
{
|
|
1930
|
+
aspect: slide.aspect ?? "4 / 3",
|
|
1931
|
+
...slide.src === void 0 ? {} : { src: slide.src },
|
|
1932
|
+
...slide.alt === void 0 ? {} : { alt: slide.alt },
|
|
1933
|
+
...slide.caption === void 0 ? {} : { caption: slide.caption },
|
|
1934
|
+
blurred: slide.covered === true,
|
|
1935
|
+
...slide.cover === void 0 ? {} : { cover: slide.cover }
|
|
1936
|
+
}
|
|
1937
|
+
) }),
|
|
1938
|
+
onZoom !== void 0 && slide.covered !== true && /* @__PURE__ */ jsx(
|
|
1939
|
+
Button,
|
|
1940
|
+
{
|
|
1941
|
+
className: ImageCarousel_module_default.zoom,
|
|
1942
|
+
variant: "secondary",
|
|
1943
|
+
size: "sm",
|
|
1944
|
+
iconOnly: true,
|
|
1945
|
+
"aria-label": zoomLabel,
|
|
1946
|
+
onClick: () => onZoom(current),
|
|
1947
|
+
children: zoomIcon
|
|
1948
|
+
}
|
|
1949
|
+
),
|
|
1950
|
+
many && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1951
|
+
/* @__PURE__ */ jsx(
|
|
1952
|
+
Button,
|
|
1953
|
+
{
|
|
1954
|
+
className: cx(ImageCarousel_module_default.step, ImageCarousel_module_default.prev),
|
|
1955
|
+
variant: "secondary",
|
|
1956
|
+
size: "sm",
|
|
1957
|
+
iconOnly: true,
|
|
1958
|
+
"aria-label": labels.previous,
|
|
1959
|
+
disabled: current === 0,
|
|
1960
|
+
onClick: () => goTo(current - 1),
|
|
1961
|
+
children: /* @__PURE__ */ jsx(ChevronLeftGlyph, {})
|
|
1962
|
+
}
|
|
1963
|
+
),
|
|
1964
|
+
/* @__PURE__ */ jsx(
|
|
1965
|
+
Button,
|
|
1966
|
+
{
|
|
1967
|
+
className: cx(ImageCarousel_module_default.step, ImageCarousel_module_default.next),
|
|
1968
|
+
variant: "secondary",
|
|
1969
|
+
size: "sm",
|
|
1970
|
+
iconOnly: true,
|
|
1971
|
+
"aria-label": labels.next,
|
|
1972
|
+
disabled: current === last,
|
|
1973
|
+
onClick: () => goTo(current + 1),
|
|
1974
|
+
children: /* @__PURE__ */ jsx(ChevronRightGlyph, {})
|
|
1975
|
+
}
|
|
1976
|
+
),
|
|
1977
|
+
/* @__PURE__ */ jsx(Text, { variant: "meta", className: ImageCarousel_module_default.counter, "aria-live": "polite", children: counted })
|
|
1978
|
+
] })
|
|
1979
|
+
]
|
|
1980
|
+
}
|
|
1981
|
+
),
|
|
1982
|
+
many && pager === "thumbnails" && /* @__PURE__ */ jsxs("div", { className: ImageCarousel_module_default.thumbs, children: [
|
|
1983
|
+
shown.map((frame, position) => /* @__PURE__ */ jsx(
|
|
1984
|
+
"button",
|
|
1985
|
+
{
|
|
1986
|
+
type: "button",
|
|
1987
|
+
className: ImageCarousel_module_default.thumb,
|
|
1988
|
+
"aria-label": labels.slide(position + 1),
|
|
1989
|
+
"aria-current": position === current ? "true" : void 0,
|
|
1990
|
+
onClick: () => goTo(position),
|
|
1991
|
+
children: /* @__PURE__ */ jsx(
|
|
1992
|
+
MediaPlaceholder,
|
|
1993
|
+
{
|
|
1994
|
+
aspect: "1 / 1",
|
|
1995
|
+
...frame.src === void 0 ? {} : { src: frame.src },
|
|
1996
|
+
blurred: frame.covered === true
|
|
1997
|
+
}
|
|
1998
|
+
)
|
|
1999
|
+
},
|
|
2000
|
+
frame.id
|
|
2001
|
+
)),
|
|
2002
|
+
hidden > 0 && /* @__PURE__ */ jsx(
|
|
2003
|
+
"button",
|
|
2004
|
+
{
|
|
2005
|
+
type: "button",
|
|
2006
|
+
className: cx(ImageCarousel_module_default.thumb, ImageCarousel_module_default.more),
|
|
2007
|
+
"aria-label": labels.more(hidden),
|
|
2008
|
+
onClick: () => goTo(shown.length),
|
|
2009
|
+
children: /* @__PURE__ */ jsxs(Text, { variant: "meta", children: [
|
|
2010
|
+
"+",
|
|
2011
|
+
hidden
|
|
2012
|
+
] })
|
|
2013
|
+
}
|
|
2014
|
+
)
|
|
2015
|
+
] }),
|
|
2016
|
+
many && pager === "dots" && /* @__PURE__ */ jsx("div", { className: ImageCarousel_module_default.dots, children: slides.map((frame, position) => /* @__PURE__ */ jsx(
|
|
2017
|
+
"button",
|
|
2018
|
+
{
|
|
2019
|
+
type: "button",
|
|
2020
|
+
className: ImageCarousel_module_default.dot,
|
|
2021
|
+
"aria-label": labels.slide(position + 1),
|
|
2022
|
+
"aria-current": position === current ? "true" : void 0,
|
|
2023
|
+
onClick: () => goTo(position)
|
|
2024
|
+
},
|
|
2025
|
+
frame.id
|
|
2026
|
+
)) })
|
|
2027
|
+
]
|
|
2028
|
+
}
|
|
2029
|
+
);
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/UploadProgress/UploadProgress.module.css?mds-scoped
|
|
2033
|
+
var UploadProgress_module_default = { "upload": "mds-UploadProgress__upload", "head": "mds-UploadProgress__head", "preview": "mds-UploadProgress__preview", "mark": "mds-UploadProgress__mark", "name": "mds-UploadProgress__name", "foot": "mds-UploadProgress__foot", "status-done": "mds-UploadProgress__status-done", "status-error": "mds-UploadProgress__status-error" };
|
|
2034
|
+
function UploadProgress({
|
|
2035
|
+
name,
|
|
2036
|
+
labels,
|
|
2037
|
+
preview,
|
|
2038
|
+
mark,
|
|
2039
|
+
value,
|
|
2040
|
+
status = "uploading",
|
|
2041
|
+
detail,
|
|
2042
|
+
error,
|
|
2043
|
+
onCancel,
|
|
2044
|
+
onRetry,
|
|
2045
|
+
onRemove,
|
|
2046
|
+
className,
|
|
2047
|
+
...rest
|
|
2048
|
+
}) {
|
|
2049
|
+
const running = status === "uploading" || status === "processing";
|
|
2050
|
+
return /* @__PURE__ */ jsxs("div", { className: cx(UploadProgress_module_default.upload, UploadProgress_module_default[`status-${status}`], className), ...rest, children: [
|
|
2051
|
+
/* @__PURE__ */ jsxs("div", { className: UploadProgress_module_default.head, children: [
|
|
2052
|
+
preview !== void 0 && /* @__PURE__ */ jsx("div", { className: UploadProgress_module_default.preview, children: preview }),
|
|
2053
|
+
mark !== void 0 && /* @__PURE__ */ jsx("span", { className: UploadProgress_module_default.mark, children: mark }),
|
|
2054
|
+
/* @__PURE__ */ jsx(Text, { variant: "label", truncate: true, className: UploadProgress_module_default.name, children: name }),
|
|
2055
|
+
running && onCancel !== void 0 && /* @__PURE__ */ jsx(Button, { iconOnly: true, size: "sm", variant: "ghost", "aria-label": labels.cancel, onClick: onCancel, children: /* @__PURE__ */ jsx(CloseGlyph, {}) }),
|
|
2056
|
+
!running && onRemove !== void 0 && /* @__PURE__ */ jsx(Button, { iconOnly: true, size: "sm", variant: "ghost", "aria-label": labels.remove, onClick: onRemove, children: /* @__PURE__ */ jsx(CloseGlyph, {}) }),
|
|
2057
|
+
status === "error" && onRetry !== void 0 && /* @__PURE__ */ jsx(Button, { size: "sm", variant: "secondary", onClick: onRetry, children: labels.retry })
|
|
2058
|
+
] }),
|
|
2059
|
+
running && /* @__PURE__ */ jsx(
|
|
2060
|
+
ProgressBar,
|
|
2061
|
+
{
|
|
2062
|
+
label: `${labels[status]} ${name}`,
|
|
2063
|
+
value: value ?? 0,
|
|
2064
|
+
indeterminate: status === "processing",
|
|
2065
|
+
...detail === void 0 ? {} : { valueText: detail }
|
|
2066
|
+
}
|
|
2067
|
+
),
|
|
2068
|
+
/* @__PURE__ */ jsx("div", { className: UploadProgress_module_default.foot, children: status === "error" ? /* @__PURE__ */ jsx(Text, { variant: "meta", tone: "danger", role: "alert", children: error ?? labels.error }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2069
|
+
status !== "uploading" && /* @__PURE__ */ jsx(Text, { variant: "meta", children: labels[status] }),
|
|
2070
|
+
detail !== void 0 && /* @__PURE__ */ jsx(Text, { variant: "meta", children: detail })
|
|
2071
|
+
] }) })
|
|
2072
|
+
] });
|
|
2073
|
+
}
|
|
2074
|
+
|
|
2075
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Lightbox/Lightbox.module.css?mds-scoped
|
|
2076
|
+
var Lightbox_module_default = { "panel": "mds-Lightbox__panel", "bar": "mds-Lightbox__bar", "surface": "mds-Lightbox__surface", "image": "mds-Lightbox__image", "caption": "mds-Lightbox__caption" };
|
|
2077
|
+
var MIN_SCALE = 1;
|
|
2078
|
+
var MAX_SCALE = 4;
|
|
2079
|
+
var STEP = 1;
|
|
2080
|
+
var DOUBLE = 2.5;
|
|
2081
|
+
var WHEEL = 0.01;
|
|
2082
|
+
var ORIGIN = { x: 0, y: 0 };
|
|
2083
|
+
var clamp = (value, low, high) => Math.min(Math.max(value, low), high);
|
|
2084
|
+
var round = (value) => Math.round(value * 1e3) / 1e3;
|
|
2085
|
+
var distance = (a, b) => Math.hypot(a.x - b.x, a.y - b.y);
|
|
2086
|
+
function Lightbox({ open, onClose, src, alt = "", caption, labels }) {
|
|
2087
|
+
const [surface, setSurface] = useState(null);
|
|
2088
|
+
const [scale, setScale] = useState(MIN_SCALE);
|
|
2089
|
+
const [offset, setOffset] = useState(ORIGIN);
|
|
2090
|
+
const points = useRef(/* @__PURE__ */ new Map());
|
|
2091
|
+
const from = useRef({ spread: 0, scale: MIN_SCALE, x: 0, y: 0, offset: ORIGIN });
|
|
2092
|
+
const [shown, setShown] = useState({ src, open });
|
|
2093
|
+
if (shown.src !== src || shown.open !== open) {
|
|
2094
|
+
setShown({ src, open });
|
|
2095
|
+
setScale(MIN_SCALE);
|
|
2096
|
+
setOffset(ORIGIN);
|
|
2097
|
+
}
|
|
2098
|
+
useEffect(() => {
|
|
2099
|
+
points.current.clear();
|
|
2100
|
+
}, [src, open]);
|
|
2101
|
+
const hold = useCallback(
|
|
2102
|
+
(next, at2) => {
|
|
2103
|
+
const box = surface?.getBoundingClientRect();
|
|
2104
|
+
if (!box) return ORIGIN;
|
|
2105
|
+
const room = { x: box.width * (at2 - 1) / 2, y: box.height * (at2 - 1) / 2 };
|
|
2106
|
+
return { x: clamp(next.x, -room.x, room.x), y: clamp(next.y, -room.y, room.y) };
|
|
2107
|
+
},
|
|
2108
|
+
[surface]
|
|
2109
|
+
);
|
|
2110
|
+
const zoom = useCallback(
|
|
2111
|
+
(to) => {
|
|
2112
|
+
const next = clamp(round(to), MIN_SCALE, MAX_SCALE);
|
|
2113
|
+
setScale(next);
|
|
2114
|
+
setOffset((current) => hold(current, next));
|
|
2115
|
+
},
|
|
2116
|
+
[hold]
|
|
2117
|
+
);
|
|
2118
|
+
const at = useRef(scale);
|
|
2119
|
+
useEffect(() => {
|
|
2120
|
+
at.current = scale;
|
|
2121
|
+
}, [scale]);
|
|
2122
|
+
useEffect(() => {
|
|
2123
|
+
if (!surface) return;
|
|
2124
|
+
const onWheel = (event) => {
|
|
2125
|
+
if (!event.ctrlKey) return;
|
|
2126
|
+
event.preventDefault();
|
|
2127
|
+
zoom(at.current * Math.exp(-event.deltaY * WHEEL));
|
|
2128
|
+
};
|
|
2129
|
+
surface.addEventListener("wheel", onWheel, { passive: false });
|
|
2130
|
+
return () => surface.removeEventListener("wheel", onWheel);
|
|
2131
|
+
}, [surface, zoom]);
|
|
2132
|
+
function onPointerDown(event) {
|
|
2133
|
+
points.current.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
2134
|
+
const [first, second] = [...points.current.values()];
|
|
2135
|
+
if (first && second) {
|
|
2136
|
+
from.current = { ...from.current, spread: distance(first, second), scale };
|
|
2137
|
+
return;
|
|
2138
|
+
}
|
|
2139
|
+
if (first) from.current = { ...from.current, x: first.x, y: first.y, offset };
|
|
2140
|
+
}
|
|
2141
|
+
function onPointerMove(event) {
|
|
2142
|
+
if (!points.current.has(event.pointerId)) return;
|
|
2143
|
+
points.current.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
2144
|
+
const [first, second] = [...points.current.values()];
|
|
2145
|
+
if (!first) return;
|
|
2146
|
+
if (second) {
|
|
2147
|
+
const spread = distance(first, second);
|
|
2148
|
+
if (from.current.spread === 0) return;
|
|
2149
|
+
zoom(from.current.scale * (spread / from.current.spread));
|
|
2150
|
+
return;
|
|
2151
|
+
}
|
|
2152
|
+
if (scale <= MIN_SCALE) return;
|
|
2153
|
+
setOffset(
|
|
2154
|
+
hold(
|
|
2155
|
+
{
|
|
2156
|
+
x: from.current.offset.x + (first.x - from.current.x),
|
|
2157
|
+
y: from.current.offset.y + (first.y - from.current.y)
|
|
2158
|
+
},
|
|
2159
|
+
scale
|
|
2160
|
+
)
|
|
2161
|
+
);
|
|
2162
|
+
}
|
|
2163
|
+
function onPointerUp(event) {
|
|
2164
|
+
points.current.delete(event.pointerId);
|
|
2165
|
+
const [rest] = [...points.current.values()];
|
|
2166
|
+
if (rest) from.current = { ...from.current, x: rest.x, y: rest.y, offset };
|
|
2167
|
+
}
|
|
2168
|
+
const vars = {
|
|
2169
|
+
"--zoom": String(round(scale)),
|
|
2170
|
+
"--pan-x": `${round(offset.x)}px`,
|
|
2171
|
+
"--pan-y": `${round(offset.y)}px`
|
|
2172
|
+
};
|
|
2173
|
+
return /* @__PURE__ */ jsxs(
|
|
2174
|
+
Overlay,
|
|
2175
|
+
{
|
|
2176
|
+
open,
|
|
2177
|
+
onClose,
|
|
2178
|
+
label: labels.dialog,
|
|
2179
|
+
variant: "lightbox",
|
|
2180
|
+
closeOnScrimClick: false,
|
|
2181
|
+
panelClassName: Lightbox_module_default.panel,
|
|
2182
|
+
children: [
|
|
2183
|
+
/* @__PURE__ */ jsxs("div", { className: Lightbox_module_default.bar, children: [
|
|
2184
|
+
/* @__PURE__ */ jsx(
|
|
2185
|
+
Button,
|
|
2186
|
+
{
|
|
2187
|
+
iconOnly: true,
|
|
2188
|
+
"aria-label": labels.zoomOut,
|
|
2189
|
+
variant: "ghost",
|
|
2190
|
+
onMedia: true,
|
|
2191
|
+
disabled: scale <= MIN_SCALE,
|
|
2192
|
+
onClick: () => zoom(scale - STEP),
|
|
2193
|
+
children: /* @__PURE__ */ jsx(ZoomOutGlyph, {})
|
|
2194
|
+
}
|
|
2195
|
+
),
|
|
2196
|
+
/* @__PURE__ */ jsx(
|
|
2197
|
+
Button,
|
|
2198
|
+
{
|
|
2199
|
+
iconOnly: true,
|
|
2200
|
+
"aria-label": labels.zoomIn,
|
|
2201
|
+
variant: "ghost",
|
|
2202
|
+
onMedia: true,
|
|
2203
|
+
disabled: scale >= MAX_SCALE,
|
|
2204
|
+
onClick: () => zoom(scale + STEP),
|
|
2205
|
+
children: /* @__PURE__ */ jsx(ZoomInGlyph, {})
|
|
2206
|
+
}
|
|
2207
|
+
),
|
|
2208
|
+
/* @__PURE__ */ jsx(Button, { iconOnly: true, "aria-label": labels.close, variant: "ghost", onMedia: true, onClick: onClose, children: /* @__PURE__ */ jsx(CloseGlyph, {}) })
|
|
2209
|
+
] }),
|
|
2210
|
+
/* @__PURE__ */ jsx(
|
|
2211
|
+
"div",
|
|
2212
|
+
{
|
|
2213
|
+
ref: setSurface,
|
|
2214
|
+
className: Lightbox_module_default.surface,
|
|
2215
|
+
onPointerDown,
|
|
2216
|
+
onPointerMove,
|
|
2217
|
+
onPointerUp,
|
|
2218
|
+
onPointerCancel: onPointerUp,
|
|
2219
|
+
onDoubleClick: () => zoom(scale > MIN_SCALE ? MIN_SCALE : DOUBLE),
|
|
2220
|
+
children: /* @__PURE__ */ jsx("img", { className: Lightbox_module_default.image, src, alt, draggable: false, style: vars })
|
|
2221
|
+
}
|
|
2222
|
+
),
|
|
2223
|
+
caption !== void 0 && /* @__PURE__ */ jsx(Text, { variant: "meta", tone: "on-media", className: Lightbox_module_default.caption, children: caption })
|
|
2224
|
+
]
|
|
2225
|
+
}
|
|
2226
|
+
);
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2229
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/VideoPlayer/VideoPlayer.module.css?mds-scoped
|
|
2230
|
+
var VideoPlayer_module_default = { "player": "mds-VideoPlayer__player", "frame": "mds-VideoPlayer__frame", "media": "mds-VideoPlayer__media", "covered": "mds-VideoPlayer__covered", "start": "mds-VideoPlayer__start", "startGlyph": "mds-VideoPlayer__startGlyph", "cover": "mds-VideoPlayer__cover", "controls": "mds-VideoPlayer__controls", "scrub": "mds-VideoPlayer__scrub", "time": "mds-VideoPlayer__time", "chapters": "mds-VideoPlayer__chapters", "chapter": "mds-VideoPlayer__chapter", "chapterAt": "mds-VideoPlayer__chapterAt" };
|
|
2231
|
+
var FIRST_FRAME_S = 1e-3;
|
|
2232
|
+
var SECONDS_IN_MINUTE = 60;
|
|
2233
|
+
var SECONDS_IN_HOUR = 3600;
|
|
2234
|
+
function clock(seconds) {
|
|
2235
|
+
if (!Number.isFinite(seconds) || seconds < 0) return "0:00";
|
|
2236
|
+
const whole = Math.floor(seconds);
|
|
2237
|
+
const s = whole % SECONDS_IN_MINUTE;
|
|
2238
|
+
const m = Math.floor(whole / SECONDS_IN_MINUTE) % SECONDS_IN_MINUTE;
|
|
2239
|
+
const h = Math.floor(whole / SECONDS_IN_HOUR);
|
|
2240
|
+
const ss = String(s).padStart(2, "0");
|
|
2241
|
+
return h > 0 ? `${h}:${String(m).padStart(2, "0")}:${ss}` : `${m}:${ss}`;
|
|
2242
|
+
}
|
|
2243
|
+
function VideoPlayer({
|
|
2244
|
+
src,
|
|
2245
|
+
poster,
|
|
2246
|
+
labels,
|
|
2247
|
+
chapters,
|
|
2248
|
+
chaptersLabel,
|
|
2249
|
+
onChapterSelect,
|
|
2250
|
+
captions,
|
|
2251
|
+
captionsLabel,
|
|
2252
|
+
autoPlay = false,
|
|
2253
|
+
covered = false,
|
|
2254
|
+
cover,
|
|
2255
|
+
className,
|
|
2256
|
+
ref,
|
|
2257
|
+
...rest
|
|
2258
|
+
}) {
|
|
2259
|
+
const media = useRef(null);
|
|
2260
|
+
const root = useRef(null);
|
|
2261
|
+
const [playing, setPlaying] = useState(false);
|
|
2262
|
+
const [muted, setMuted] = useState(false);
|
|
2263
|
+
const [at, setAt] = useState(0);
|
|
2264
|
+
const [length, setLength] = useState(0);
|
|
2265
|
+
const [isFullscreen, setFullscreen] = useState(false);
|
|
2266
|
+
function toggle() {
|
|
2267
|
+
const el = media.current;
|
|
2268
|
+
if (!el) return;
|
|
2269
|
+
if (playing) el.pause();
|
|
2270
|
+
else void el.play();
|
|
2271
|
+
}
|
|
2272
|
+
function toggleSound() {
|
|
2273
|
+
const el = media.current;
|
|
2274
|
+
if (!el) return;
|
|
2275
|
+
const next = !muted;
|
|
2276
|
+
el.muted = next;
|
|
2277
|
+
setMuted(next);
|
|
2278
|
+
}
|
|
2279
|
+
function onMetadata(event) {
|
|
2280
|
+
const el = event.currentTarget;
|
|
2281
|
+
setLength(el.duration);
|
|
2282
|
+
if (poster === void 0 && el.currentTime === 0) el.currentTime = FIRST_FRAME_S;
|
|
2283
|
+
}
|
|
2284
|
+
function goTo(seconds) {
|
|
2285
|
+
const el = media.current;
|
|
2286
|
+
if (el) el.currentTime = seconds;
|
|
2287
|
+
setAt(seconds);
|
|
2288
|
+
}
|
|
2289
|
+
function toggleCaptions() {
|
|
2290
|
+
const track = media.current?.textTracks?.[0];
|
|
2291
|
+
if (track) track.mode = track.mode === "showing" ? "disabled" : "showing";
|
|
2292
|
+
}
|
|
2293
|
+
function selectChapter(chapter) {
|
|
2294
|
+
goTo(chapter.at);
|
|
2295
|
+
onChapterSelect?.(chapter.at);
|
|
2296
|
+
}
|
|
2297
|
+
useEffect(() => {
|
|
2298
|
+
const read = () => setFullscreen(document.fullscreenElement === root.current);
|
|
2299
|
+
document.addEventListener("fullscreenchange", read);
|
|
2300
|
+
return () => document.removeEventListener("fullscreenchange", read);
|
|
2301
|
+
}, []);
|
|
2302
|
+
function toggleFullscreen() {
|
|
2303
|
+
if (isFullscreen) {
|
|
2304
|
+
void document.exitFullscreen?.();
|
|
2305
|
+
return;
|
|
2306
|
+
}
|
|
2307
|
+
const box = root.current;
|
|
2308
|
+
if (box?.requestFullscreen) {
|
|
2309
|
+
void box.requestFullscreen();
|
|
2310
|
+
return;
|
|
2311
|
+
}
|
|
2312
|
+
media.current?.webkitEnterFullscreen?.();
|
|
2313
|
+
}
|
|
2314
|
+
return /* @__PURE__ */ jsxs(
|
|
2315
|
+
"section",
|
|
2316
|
+
{
|
|
2317
|
+
className: cx(VideoPlayer_module_default.player, covered && VideoPlayer_module_default.covered, className),
|
|
2318
|
+
"aria-label": labels.region,
|
|
2319
|
+
ref: (node) => {
|
|
2320
|
+
root.current = node;
|
|
2321
|
+
if (typeof ref === "function") ref(node);
|
|
2322
|
+
else if (ref) ref.current = node;
|
|
2323
|
+
},
|
|
2324
|
+
...rest,
|
|
2325
|
+
children: [
|
|
2326
|
+
/* @__PURE__ */ jsxs("div", { className: VideoPlayer_module_default.frame, children: [
|
|
2327
|
+
/* @__PURE__ */ jsx(
|
|
2328
|
+
"video",
|
|
2329
|
+
{
|
|
2330
|
+
ref: media,
|
|
2331
|
+
className: VideoPlayer_module_default.media,
|
|
2332
|
+
src,
|
|
2333
|
+
poster,
|
|
2334
|
+
autoPlay: autoPlay && !covered,
|
|
2335
|
+
playsInline: true,
|
|
2336
|
+
preload: "metadata",
|
|
2337
|
+
onPlay: () => setPlaying(true),
|
|
2338
|
+
onPause: () => setPlaying(false),
|
|
2339
|
+
onTimeUpdate: (event) => setAt(event.currentTarget.currentTime),
|
|
2340
|
+
onLoadedMetadata: onMetadata,
|
|
2341
|
+
children: captions !== void 0 && /* @__PURE__ */ jsx(
|
|
2342
|
+
"track",
|
|
2343
|
+
{
|
|
2344
|
+
kind: "captions",
|
|
2345
|
+
src: captions.src,
|
|
2346
|
+
srcLang: captions.lang,
|
|
2347
|
+
label: captions.label,
|
|
2348
|
+
default: captions.defaultOn
|
|
2349
|
+
}
|
|
2350
|
+
)
|
|
2351
|
+
}
|
|
2352
|
+
),
|
|
2353
|
+
!playing && !covered && /* The picture is the target here; the control row below says the same
|
|
2354
|
+
thing in words, so this one is not said twice. */
|
|
2355
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: VideoPlayer_module_default.start, onClick: toggle, "aria-hidden": "true", tabIndex: -1, children: /* @__PURE__ */ jsx("span", { className: VideoPlayer_module_default.startGlyph, children: /* @__PURE__ */ jsx(PlayGlyph, {}) }) }),
|
|
2356
|
+
cover !== void 0 && /* @__PURE__ */ jsx("div", { className: VideoPlayer_module_default.cover, children: cover })
|
|
2357
|
+
] }),
|
|
2358
|
+
/* @__PURE__ */ jsxs("div", { className: VideoPlayer_module_default.controls, children: [
|
|
2359
|
+
/* @__PURE__ */ jsx(
|
|
2360
|
+
Button,
|
|
2361
|
+
{
|
|
2362
|
+
iconOnly: true,
|
|
2363
|
+
"aria-label": playing ? labels.pause : labels.play,
|
|
2364
|
+
variant: "ghost",
|
|
2365
|
+
size: "sm",
|
|
2366
|
+
onClick: toggle,
|
|
2367
|
+
children: playing ? /* @__PURE__ */ jsx(PauseGlyph, {}) : /* @__PURE__ */ jsx(PlayGlyph, {})
|
|
2368
|
+
}
|
|
2369
|
+
),
|
|
2370
|
+
/* @__PURE__ */ jsx(
|
|
2371
|
+
"input",
|
|
2372
|
+
{
|
|
2373
|
+
type: "range",
|
|
2374
|
+
className: VideoPlayer_module_default.scrub,
|
|
2375
|
+
"aria-label": labels.seek,
|
|
2376
|
+
min: 0,
|
|
2377
|
+
max: length || 0,
|
|
2378
|
+
step: 1,
|
|
2379
|
+
value: Math.min(at, length || 0),
|
|
2380
|
+
onChange: (event) => goTo(Number(event.target.value))
|
|
2381
|
+
}
|
|
2382
|
+
),
|
|
2383
|
+
/* @__PURE__ */ jsx(Text, { variant: "meta", className: VideoPlayer_module_default.time, children: `${clock(at)} / ${clock(length)}` }),
|
|
2384
|
+
/* @__PURE__ */ jsx(
|
|
2385
|
+
Button,
|
|
2386
|
+
{
|
|
2387
|
+
iconOnly: true,
|
|
2388
|
+
"aria-label": muted ? labels.unmute : labels.mute,
|
|
2389
|
+
variant: "ghost",
|
|
2390
|
+
size: "sm",
|
|
2391
|
+
onClick: toggleSound,
|
|
2392
|
+
children: muted ? /* @__PURE__ */ jsx(VolumeOffGlyph, {}) : /* @__PURE__ */ jsx(VolumeGlyph, {})
|
|
2393
|
+
}
|
|
2394
|
+
),
|
|
2395
|
+
captions !== void 0 && /* @__PURE__ */ jsx(
|
|
2396
|
+
Button,
|
|
2397
|
+
{
|
|
2398
|
+
iconOnly: true,
|
|
2399
|
+
"aria-label": captionsLabel,
|
|
2400
|
+
variant: "ghost",
|
|
2401
|
+
size: "sm",
|
|
2402
|
+
"aria-pressed": captions.defaultOn ?? false,
|
|
2403
|
+
onClick: toggleCaptions,
|
|
2404
|
+
children: /* @__PURE__ */ jsx(CaptionsGlyph, {})
|
|
2405
|
+
}
|
|
2406
|
+
),
|
|
2407
|
+
/* @__PURE__ */ jsx(
|
|
2408
|
+
Button,
|
|
2409
|
+
{
|
|
2410
|
+
iconOnly: true,
|
|
2411
|
+
"aria-label": isFullscreen ? labels.exitFullscreen : labels.fullscreen,
|
|
2412
|
+
variant: "ghost",
|
|
2413
|
+
size: "sm",
|
|
2414
|
+
onClick: toggleFullscreen,
|
|
2415
|
+
children: isFullscreen ? /* @__PURE__ */ jsx(FullscreenExitGlyph, {}) : /* @__PURE__ */ jsx(FullscreenGlyph, {})
|
|
2416
|
+
}
|
|
2417
|
+
)
|
|
2418
|
+
] }),
|
|
2419
|
+
chapters !== void 0 && chapters.length > 0 && /* @__PURE__ */ jsx("ul", { className: VideoPlayer_module_default.chapters, "aria-label": chaptersLabel, children: chapters.map((chapter) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", className: VideoPlayer_module_default.chapter, onClick: () => selectChapter(chapter), children: [
|
|
2420
|
+
/* @__PURE__ */ jsx(Text, { variant: "meta", className: VideoPlayer_module_default.chapterAt, children: clock(chapter.at) }),
|
|
2421
|
+
/* @__PURE__ */ jsx(Text, { variant: "body", children: chapter.label })
|
|
2422
|
+
] }) }, chapter.at)) })
|
|
2423
|
+
]
|
|
2424
|
+
}
|
|
2425
|
+
);
|
|
2426
|
+
}
|
|
2427
|
+
|
|
2428
|
+
// mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Breadcrumb/Breadcrumb.module.css?mds-scoped
|
|
2429
|
+
var Breadcrumb_module_default = { "crumbs": "mds-Breadcrumb__crumbs", "list": "mds-Breadcrumb__list", "item": "mds-Breadcrumb__item", "separator": "mds-Breadcrumb__separator", "link": "mds-Breadcrumb__link" };
|
|
2430
|
+
function Breadcrumb({
|
|
2431
|
+
items,
|
|
2432
|
+
label,
|
|
2433
|
+
linkAs = "a",
|
|
2434
|
+
className,
|
|
2435
|
+
...rest
|
|
2436
|
+
}) {
|
|
2437
|
+
if (items.length === 0) return null;
|
|
2438
|
+
return /* @__PURE__ */ jsx("nav", { "aria-label": label, className: cx(Breadcrumb_module_default.crumbs, className), ...rest, children: /* @__PURE__ */ jsx("ol", { className: Breadcrumb_module_default.list, children: items.map((item, index) => {
|
|
2439
|
+
const last = index === items.length - 1;
|
|
2440
|
+
return /* @__PURE__ */ jsxs("li", { className: Breadcrumb_module_default.item, children: [
|
|
2441
|
+
index > 0 && /* @__PURE__ */ jsx(ChevronRightGlyph, { className: Breadcrumb_module_default.separator }),
|
|
2442
|
+
last || item.href === void 0 ? /* @__PURE__ */ jsx(Text, { variant: "meta", tone: last ? "primary" : "muted", "aria-current": last ? "page" : void 0, children: item.label }) : /* @__PURE__ */ jsx(Link, { variant: "plain", size: "xs", as: linkAs, href: item.href, className: Breadcrumb_module_default.link, children: item.label })
|
|
2443
|
+
] }, `${item.label}-${index}`);
|
|
2444
|
+
}) }) });
|
|
2445
|
+
}
|
|
1621
2446
|
function useRovingGroup(ref, { selector, orientation = "horizontal" }) {
|
|
1622
2447
|
return useCallback(
|
|
1623
2448
|
(event) => {
|
|
@@ -1643,6 +2468,6 @@ function useRovingGroup(ref, { selector, orientation = "horizontal" }) {
|
|
|
1643
2468
|
);
|
|
1644
2469
|
}
|
|
1645
2470
|
|
|
1646
|
-
export { AppBar, Avatar, AvatarGroup, Badge, Button, Card, CardBody, CardFooter, CardHeader, Checkbox, Chip, ChipBar, ChipGroup, ConfirmDialog, Container, CountButton, DateTimePicker, Divider, EmptyState, Field, Heading, Icon, IconProvider, Inline, Input, Link, ListGroup, ListItem, Modal, ModalBody, ModalFooter, ModalHeader, OverlayHistoryContext, PasswordInput, ProgressBar, Radio, Screen, ScreenContent, SearchField, SegmentedControl, Select, Sheet, SheetBody, SheetFooter, SheetHeader, Skeleton, Spinner, Stack, Switch, Tab, TabBar, TabBarAction, TabBarItem, TabList, TabPanel, Tabs, Tag, Text, Textarea, ToastProvider, cx, useFieldContext, useOverlay, usePresence, useRovingGroup, useToast };
|
|
2471
|
+
export { AppBar, Avatar, AvatarGroup, Badge, Breadcrumb, Button, Card, CardBody, CardFooter, CardHeader, Checkbox, Chip, ChipBar, ChipGroup, ConfirmDialog, Container, CountButton, DateTimePicker, Divider, EmptyState, Field, Heading, Icon, IconProvider, ImageCarousel, Inline, Input, Lightbox, Link, ListGroup, ListItem, MediaPlaceholder, Modal, ModalBody, ModalFooter, ModalHeader, OverlayHistoryContext, PasswordInput, ProgressBar, Radio, Screen, ScreenContent, SearchField, SegmentedControl, Select, Sheet, SheetBody, SheetFooter, SheetHeader, Skeleton, Spinner, Stack, Switch, Tab, TabBar, TabBarAction, TabBarItem, TabList, TabPanel, Tabs, Tag, Text, Textarea, ToastProvider, UploadProgress, VideoPlayer, VisuallyHidden, cx, useFieldContext, useOverlay, usePresence, useRovingGroup, useToast };
|
|
1647
2472
|
//# sourceMappingURL=index.js.map
|
|
1648
2473
|
//# sourceMappingURL=index.js.map
|