@mond-design-system/react 4.9.0 → 4.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -503,7 +503,15 @@ function Field({ label, children, hint, error, required = false, className }) {
503
503
  children
504
504
  }
505
505
  ),
506
- message && /* @__PURE__ */ jsxRuntime.jsx("span", { id: messageId, className: cx(Field_module_default.message, error !== void 0 && Field_module_default.error), children: message })
506
+ message && /* @__PURE__ */ jsxRuntime.jsx(
507
+ "span",
508
+ {
509
+ id: messageId,
510
+ role: error !== void 0 ? "alert" : void 0,
511
+ className: cx(Field_module_default.message, error !== void 0 && Field_module_default.error),
512
+ children: message
513
+ }
514
+ )
507
515
  ] });
508
516
  }
509
517
 
@@ -1353,6 +1361,85 @@ function SearchField({
1353
1361
  ] });
1354
1362
  }
1355
1363
 
1364
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Scroller/Scroller.module.css?mds-scoped
1365
+ var Scroller_module_default = { "scroller": "mds-Scroller__scroller", "header": "mds-Scroller__header", "trailing": "mds-Scroller__trailing", "track": "mds-Scroller__track", "arrows": "mds-Scroller__arrows" };
1366
+ var STEP = 0.8;
1367
+ function Scroller({
1368
+ title,
1369
+ labels,
1370
+ level = 2,
1371
+ action,
1372
+ children,
1373
+ className,
1374
+ ...rest
1375
+ }) {
1376
+ const track = react.useRef(null);
1377
+ const titleId = react.useId();
1378
+ const [atStart, setAtStart] = react.useState(true);
1379
+ const [atEnd, setAtEnd] = react.useState(true);
1380
+ const measure = react.useCallback(() => {
1381
+ const row = track.current;
1382
+ if (row === null) return;
1383
+ setAtStart(row.scrollLeft <= 0);
1384
+ setAtEnd(row.scrollLeft + row.clientWidth >= row.scrollWidth - 1);
1385
+ }, []);
1386
+ react.useEffect(measure);
1387
+ react.useEffect(() => {
1388
+ window.addEventListener("resize", measure);
1389
+ return () => window.removeEventListener("resize", measure);
1390
+ }, [measure]);
1391
+ const step = (direction) => {
1392
+ const row = track.current;
1393
+ if (row === null) return;
1394
+ row.scrollBy({ left: direction * Math.round(row.clientWidth * STEP) });
1395
+ };
1396
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: cx(Scroller_module_default.scroller, className), ...rest, children: [
1397
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Scroller_module_default.header, children: [
1398
+ /* @__PURE__ */ jsxRuntime.jsx(Heading, { level, variant: "label", id: titleId, children: title }),
1399
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Scroller_module_default.trailing, children: [
1400
+ action,
1401
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Scroller_module_default.arrows, children: [
1402
+ /* @__PURE__ */ jsxRuntime.jsx(
1403
+ Button,
1404
+ {
1405
+ variant: "ghost",
1406
+ size: "sm",
1407
+ iconOnly: true,
1408
+ "aria-label": labels.previous,
1409
+ disabled: atStart,
1410
+ onClick: () => step(-1),
1411
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftGlyph, {})
1412
+ }
1413
+ ),
1414
+ /* @__PURE__ */ jsxRuntime.jsx(
1415
+ Button,
1416
+ {
1417
+ variant: "ghost",
1418
+ size: "sm",
1419
+ iconOnly: true,
1420
+ "aria-label": labels.next,
1421
+ disabled: atEnd,
1422
+ onClick: () => step(1),
1423
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightGlyph, {})
1424
+ }
1425
+ )
1426
+ ] })
1427
+ ] })
1428
+ ] }),
1429
+ /* @__PURE__ */ jsxRuntime.jsx(
1430
+ "div",
1431
+ {
1432
+ className: Scroller_module_default.track,
1433
+ ref: track,
1434
+ role: "group",
1435
+ "aria-labelledby": titleId,
1436
+ onScroll: measure,
1437
+ children
1438
+ }
1439
+ )
1440
+ ] });
1441
+ }
1442
+
1356
1443
  // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/List/List.module.css?mds-scoped
1357
1444
  var List_module_default = { "group": "mds-List__group", "labelledGroup": "mds-List__labelledGroup", "label": "mds-List__label", "item": "mds-List__item", "surface-card": "mds-List__surface-card", "surface-sunken": "mds-List__surface-sunken", "surface-accent": "mds-List__surface-accent", "surface-plain": "mds-List__surface-plain", "row": "mds-List__row", "interactive": "mds-List__interactive", "withActions": "mds-List__withActions", "actions": "mds-List__actions", "leading": "mds-List__leading", "trailing": "mds-List__trailing", "text": "mds-List__text", "title": "mds-List__title", "description": "mds-List__description" };
1358
1445
  var ListGroupContext = react.createContext(false);
@@ -1411,7 +1498,7 @@ function ListItem({
1411
1498
  ref,
1412
1499
  ...rest,
1413
1500
  children: [
1414
- href !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(LinkElement, { className: cx(List_module_default.row, List_module_default.interactive), href, children: content }) : onClick !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
1501
+ href !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(LinkElement, { className: cx(List_module_default.row, List_module_default.interactive), href, onClick, children: content }) : onClick !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
1415
1502
  "button",
1416
1503
  {
1417
1504
  type: "button",
@@ -2349,7 +2436,7 @@ function FileDrop({
2349
2436
  var Lightbox_module_default = { "panel": "mds-Lightbox__panel", "bar": "mds-Lightbox__bar", "surface": "mds-Lightbox__surface", "image": "mds-Lightbox__image", "caption": "mds-Lightbox__caption" };
2350
2437
  var MIN_SCALE = 1;
2351
2438
  var MAX_SCALE = 4;
2352
- var STEP = 1;
2439
+ var STEP2 = 1;
2353
2440
  var DOUBLE = 2.5;
2354
2441
  var WHEEL = 0.01;
2355
2442
  var ORIGIN = { x: 0, y: 0 };
@@ -2462,7 +2549,7 @@ function Lightbox({ open, onClose, src, alt = "", caption, labels }) {
2462
2549
  variant: "ghost",
2463
2550
  onMedia: true,
2464
2551
  disabled: scale <= MIN_SCALE,
2465
- onClick: () => zoom(scale - STEP),
2552
+ onClick: () => zoom(scale - STEP2),
2466
2553
  children: /* @__PURE__ */ jsxRuntime.jsx(ZoomOutGlyph, {})
2467
2554
  }
2468
2555
  ),
@@ -2474,7 +2561,7 @@ function Lightbox({ open, onClose, src, alt = "", caption, labels }) {
2474
2561
  variant: "ghost",
2475
2562
  onMedia: true,
2476
2563
  disabled: scale >= MAX_SCALE,
2477
- onClick: () => zoom(scale + STEP),
2564
+ onClick: () => zoom(scale + STEP2),
2478
2565
  children: /* @__PURE__ */ jsxRuntime.jsx(ZoomInGlyph, {})
2479
2566
  }
2480
2567
  ),
@@ -2781,6 +2868,7 @@ exports.ProgressBar = ProgressBar;
2781
2868
  exports.Radio = Radio;
2782
2869
  exports.Screen = Screen;
2783
2870
  exports.ScreenContent = ScreenContent;
2871
+ exports.Scroller = Scroller;
2784
2872
  exports.SearchField = SearchField;
2785
2873
  exports.SegmentedControl = SegmentedControl;
2786
2874
  exports.Select = Select;