@dbcdk/react-components 0.0.98 → 0.0.102

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.js CHANGED
@@ -1,5 +1,5 @@
1
- import * as React20 from 'react';
2
- import React20__default, { forwardRef, createContext, useId, useState, useRef, useEffect, useCallback, useImperativeHandle, useLayoutEffect, useMemo, useContext, Children, isValidElement, Fragment as Fragment$1 } from 'react';
1
+ import * as React19 from 'react';
2
+ import React19__default, { forwardRef, createContext, useId, useState, useRef, useEffect, useCallback, useImperativeHandle, useLayoutEffect, useMemo, useContext, Children, isValidElement, Fragment as Fragment$1 } from 'react';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { LoaderCircle, Search, X, ChevronLeft, ChevronRight, Clock, Calendar, ChevronUp, ChevronDown, Check, Building2, CircleAlert, Info, CircleX, CircleCheck, Menu as Menu$1, ChevronsLeft, ArrowLeft, ArrowRight, ChevronsRight, Square, TextWrap, Palette, Copy, Monitor, Sun, Moon, ArrowUp, ArrowDown, Settings2 } from 'lucide-react';
5
5
  import { createPortal } from 'react-dom';
@@ -405,7 +405,6 @@ var Button_default = {
405
405
  rounded: "Button_rounded",
406
406
  link: "Button_link",
407
407
  icon: "Button_icon",
408
- xs: "Button_xs",
409
408
  sm: "Button_sm",
410
409
  lg: "Button_lg",
411
410
  fullWidth: "Button_fullWidth",
@@ -416,7 +415,8 @@ var Button_default = {
416
415
  active: "Button_active",
417
416
  success: "Button_success",
418
417
  danger: "Button_danger",
419
- inline: "Button_inline"
418
+ inline: "Button_inline",
419
+ xs: "Button_xs"
420
420
  };
421
421
  function cx(...parts) {
422
422
  return parts.filter(Boolean).join(" ");
@@ -430,7 +430,7 @@ function mergeRefs(...refs) {
430
430
  }
431
431
  };
432
432
  }
433
- var Button = React20.forwardRef(function Button2({
433
+ var Button = React19.forwardRef(function Button2({
434
434
  variant = "outlined",
435
435
  shape = "default",
436
436
  size = "md",
@@ -459,8 +459,8 @@ var Button = React20.forwardRef(function Button2({
459
459
  userClassName
460
460
  );
461
461
  const tooltipEnabled = Boolean(tooltip);
462
- const childRef = isLink && React20.isValidElement(children) ? (_a = children.ref) != null ? _a : null : null;
463
- const mergedRef = React20.useMemo(() => mergeRefs(childRef, ref), [childRef, ref]);
462
+ const childRef = isLink && React19.isValidElement(children) ? (_a = children.ref) != null ? _a : null : null;
463
+ const mergedRef = React19.useMemo(() => mergeRefs(childRef, ref), [childRef, ref]);
464
464
  const { triggerProps, id: tooltipId } = useTooltipTrigger({
465
465
  content: tooltipEnabled ? tooltip : null,
466
466
  placement: tooltipPlacement,
@@ -477,7 +477,7 @@ var Button = React20.forwardRef(function Button2({
477
477
  loading && /* @__PURE__ */ jsx("span", { style: { display: "flex", opacity: 0.5 }, className: "spin", children: /* @__PURE__ */ jsx(LoaderCircle, {}) })
478
478
  ] });
479
479
  let buttonEl;
480
- if (isLink && React20.isValidElement(children)) {
480
+ if (isLink && React19.isValidElement(children)) {
481
481
  const childClassName = typeof children.props.className === "string" ? children.props.className : "";
482
482
  const { disabled, onClick, ...linkButtonProps } = buttonProps;
483
483
  const handleClick = (e) => {
@@ -487,7 +487,7 @@ var Button = React20.forwardRef(function Button2({
487
487
  }
488
488
  onClick == null ? void 0 : onClick(e);
489
489
  };
490
- buttonEl = React20.cloneElement(children, {
490
+ buttonEl = React19.cloneElement(children, {
491
491
  ...linkButtonProps,
492
492
  ref: mergedRef,
493
493
  className: cx(childClassName, computedClassName, Button_default.buttonLink),
@@ -783,7 +783,8 @@ function Headline({
783
783
  icon,
784
784
  tone,
785
785
  variant,
786
- allowWrap = true
786
+ allowWrap = true,
787
+ id
787
788
  }) {
788
789
  const Tag = `h${size}`;
789
790
  const containerClassName = [Headline_default.headlineContainer, tone ? Headline_default[`tone-${tone}`] : ""].filter(Boolean).join(" ");
@@ -799,6 +800,7 @@ function Headline({
799
800
  /* @__PURE__ */ jsxs(
800
801
  Tag,
801
802
  {
803
+ id,
802
804
  style: {
803
805
  "--font-weight": weight,
804
806
  "--marker-color": severity ? SeverityBgColor[severity] : void 0
@@ -1054,7 +1056,7 @@ var Popover = forwardRef(function Popover2({
1054
1056
  (_b = (_a = triggerElRef.current) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);
1055
1057
  }, [isOpen, returnFocus]);
1056
1058
  const icon = isOpen ? /* @__PURE__ */ jsx(ChevronUp, { className: "dbc-muted-text", size: 20 }) : /* @__PURE__ */ jsx(ChevronDown, { className: "dbc-muted-text", size: 20 });
1057
- const setOverlayRef = React20.useCallback(
1059
+ const setOverlayRef = React19.useCallback(
1058
1060
  (node) => {
1059
1061
  assignRef(overlayRef, node);
1060
1062
  },
@@ -1238,12 +1240,12 @@ function Avatar({
1238
1240
  "--text": SeverityTextColor[color],
1239
1241
  "--size": fullWidth ? "100%" : sizes[size]
1240
1242
  };
1241
- const pathId = React20.useId();
1243
+ const pathId = React19.useId();
1242
1244
  const renderImage = () => {
1243
1245
  if (image) {
1244
- if (React20.isValidElement(image)) {
1246
+ if (React19.isValidElement(image)) {
1245
1247
  const mergedClass = [image.props.className, Avatar_default.image].filter(Boolean).join(" ");
1246
- return React20.cloneElement(image, { className: mergedClass });
1248
+ return React19.cloneElement(image, { className: mergedClass });
1247
1249
  }
1248
1250
  return /* @__PURE__ */ jsx("span", { className: Avatar_default.imageSlot, children: image });
1249
1251
  }
@@ -1566,9 +1568,9 @@ var INTERACTIVE_SELECTOR = 'a:not([disabled]), button:not([disabled]), [tabindex
1566
1568
  function getMenuItems(el) {
1567
1569
  return Array.from(el.querySelectorAll(INTERACTIVE_SELECTOR));
1568
1570
  }
1569
- var MenuBase = React20.forwardRef(
1571
+ var MenuBase = React19.forwardRef(
1570
1572
  ({ children, className, itemRole = "menuitem", gap, onKeyDown, ...props }, ref) => {
1571
- const internalRef = React20.useRef(null);
1573
+ const internalRef = React19.useRef(null);
1572
1574
  const handleKeyDown = (e) => {
1573
1575
  const ul = internalRef.current;
1574
1576
  if (!ul) return;
@@ -1611,16 +1613,16 @@ var MenuBase = React20.forwardRef(
1611
1613
  }
1612
1614
  );
1613
1615
  MenuBase.displayName = "Menu";
1614
- var isInteractiveEl = (el) => React20.isValidElement(el) && (typeof el.type === "string" ? el.type === "a" || el.type === "button" : true);
1616
+ var isInteractiveEl = (el) => React19.isValidElement(el) && (typeof el.type === "string" ? el.type === "a" || el.type === "button" : true);
1615
1617
  function applyMenuItemPropsToElement(child, opts) {
1616
1618
  var _a, _b, _c, _d;
1617
1619
  const { active, selected, disabled, role, tabIndex = 0, className } = opts;
1618
1620
  const childClass = [Menu_default.item, active ? Menu_default.active : "", selected ? Menu_default.selected : ""].filter(Boolean).join(" ");
1619
- const nextImmediate = React20.cloneElement(child, {
1621
+ const nextImmediate = React19.cloneElement(child, {
1620
1622
  className: [child.props.className, Menu_default.interactiveChild, className].filter(Boolean).join(" ")
1621
1623
  });
1622
1624
  if (typeof child.type === "string" && (child.type === "a" || child.type === "button")) {
1623
- return React20.cloneElement(child, {
1625
+ return React19.cloneElement(child, {
1624
1626
  role: (_a = child.props.role) != null ? _a : role,
1625
1627
  tabIndex: (_b = child.props.tabIndex) != null ? _b : tabIndex,
1626
1628
  "aria-selected": selected || void 0,
@@ -1629,7 +1631,7 @@ function applyMenuItemPropsToElement(child, opts) {
1629
1631
  ...child.type === "button" ? { disabled } : {}
1630
1632
  });
1631
1633
  }
1632
- return React20.cloneElement(nextImmediate, {
1634
+ return React19.cloneElement(nextImmediate, {
1633
1635
  role: (_c = nextImmediate.props.role) != null ? _c : role,
1634
1636
  tabIndex: (_d = nextImmediate.props.tabIndex) != null ? _d : tabIndex,
1635
1637
  "aria-selected": selected || void 0,
@@ -1638,7 +1640,7 @@ function applyMenuItemPropsToElement(child, opts) {
1638
1640
  disabled
1639
1641
  });
1640
1642
  }
1641
- var MenuItem = React20.forwardRef(
1643
+ var MenuItem = React19.forwardRef(
1642
1644
  ({ children, active, selected, disabled, className, itemRole, variant, ...liProps }, ref) => {
1643
1645
  const resolvedRole = itemRole != null ? itemRole : "menuitem";
1644
1646
  const isBordered = variant === "bordered";
@@ -1676,7 +1678,7 @@ var MenuItem = React20.forwardRef(
1676
1678
  }
1677
1679
  );
1678
1680
  MenuItem.displayName = "Menu.Item";
1679
- var MenuCheckItem = React20.forwardRef(
1681
+ var MenuCheckItem = React19.forwardRef(
1680
1682
  ({
1681
1683
  label,
1682
1684
  checked,
@@ -1742,7 +1744,7 @@ var MenuCheckItem = React20.forwardRef(
1742
1744
  }
1743
1745
  );
1744
1746
  MenuCheckItem.displayName = "Menu.CheckItem";
1745
- var MenuRadioItem = React20.forwardRef(
1747
+ var MenuRadioItem = React19.forwardRef(
1746
1748
  ({ name, value, checked, disabled, label, onValueChange, className, ...liProps }, ref) => {
1747
1749
  return /* @__PURE__ */ jsx(
1748
1750
  "li",
@@ -1782,7 +1784,7 @@ var MenuRadioItem = React20.forwardRef(
1782
1784
  }
1783
1785
  );
1784
1786
  MenuRadioItem.displayName = "Menu.RadioItem";
1785
- var MenuSeparator = React20.forwardRef(
1787
+ var MenuSeparator = React19.forwardRef(
1786
1788
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1787
1789
  "li",
1788
1790
  {
@@ -1794,7 +1796,7 @@ var MenuSeparator = React20.forwardRef(
1794
1796
  )
1795
1797
  );
1796
1798
  MenuSeparator.displayName = "Menu.Separator";
1797
- var MenuHeader = React20.forwardRef(
1799
+ var MenuHeader = React19.forwardRef(
1798
1800
  ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
1799
1801
  "li",
1800
1802
  {
@@ -2510,7 +2512,7 @@ function Tabs({
2510
2512
  "div",
2511
2513
  {
2512
2514
  className: [Tabs_default.headerContainer, disableTopPadding ? Tabs_default.disableTopPadding : ""].filter(Boolean).join(" "),
2513
- children: /* @__PURE__ */ jsx(Headline, { disableMargin: true, size: 2, subheader, addition, children: header })
2515
+ children: /* @__PURE__ */ jsx(Headline, { disableMargin: true, size: 1, subheader, addition, children: header })
2514
2516
  }
2515
2517
  ) : null,
2516
2518
  /* @__PURE__ */ jsxs("div", { className: `${Tabs_default.tabs} ${Tabs_default[variant]} ${panelStyle ? Tabs_default.panelStyle : ""}`, children: [
@@ -2762,12 +2764,12 @@ function Hyperlink(props) {
2762
2764
  inline ? "" : Hyperlink_default.block
2763
2765
  );
2764
2766
  if (asChild) {
2765
- const child = React20.Children.only(children);
2766
- if (!React20.isValidElement(child)) {
2767
+ const child = React19.Children.only(children);
2768
+ if (!React19.isValidElement(child)) {
2767
2769
  throw new Error("Hyperlink with asChild expects a single valid React element as its child.");
2768
2770
  }
2769
2771
  const childProps = (_a = child.props) != null ? _a : {};
2770
- return React20.cloneElement(child, {
2772
+ return React19.cloneElement(child, {
2771
2773
  ...childProps,
2772
2774
  ...rest,
2773
2775
  className: cx2(childProps.className, linkClassName),
@@ -2802,15 +2804,15 @@ function Hyperlink(props) {
2802
2804
  );
2803
2805
  }
2804
2806
 
2805
- // src/components/page-layout/components/layout-footer/LayoutFooter.module.css
2806
- var LayoutFooter_default = {
2807
- footer: "LayoutFooter_footer",
2808
- inner: "LayoutFooter_inner",
2809
- brand: "LayoutFooter_brand",
2810
- logoRow: "LayoutFooter_logoRow",
2811
- meta: "LayoutFooter_meta",
2812
- part: "LayoutFooter_part",
2813
- links: "LayoutFooter_links"};
2807
+ // src/components/page-layout/components/footer/Footer.module.css
2808
+ var Footer_default = {
2809
+ footer: "Footer_footer",
2810
+ inner: "Footer_inner",
2811
+ brand: "Footer_brand",
2812
+ logoRow: "Footer_logoRow",
2813
+ meta: "Footer_meta",
2814
+ part: "Footer_part",
2815
+ links: "Footer_links"};
2814
2816
  var DEFAULT_META_PARTS = [
2815
2817
  "Tempovej 7-11",
2816
2818
  "DK-2750 Ballerup",
@@ -2822,23 +2824,23 @@ var DEFAULT_LINKS = [
2822
2824
  label: "Kundeservice",
2823
2825
  href: "https://kundeservice.dbc.dk",
2824
2826
  external: true
2825
- },
2826
- {
2827
- label: "Cookies",
2828
- href: "/cookies"
2829
2827
  }
2830
2828
  ];
2831
- function LayoutFooter({
2829
+ function Footer({
2832
2830
  links = DEFAULT_LINKS,
2833
2831
  metaParts = DEFAULT_META_PARTS,
2832
+ version,
2834
2833
  extraLinks
2835
2834
  }) {
2836
- return /* @__PURE__ */ jsx("footer", { className: LayoutFooter_default.footer, children: /* @__PURE__ */ jsxs("div", { className: LayoutFooter_default.inner, children: [
2837
- /* @__PURE__ */ jsxs("div", { className: LayoutFooter_default.brand, children: [
2838
- /* @__PURE__ */ jsx("div", { className: LayoutFooter_default.logoRow, children: /* @__PURE__ */ jsx(Logo, {}) }),
2839
- /* @__PURE__ */ jsx("address", { className: LayoutFooter_default.meta, children: metaParts.map((part) => /* @__PURE__ */ jsx("span", { className: LayoutFooter_default.part, children: part }, part)) })
2835
+ const displayMetaParts = version && metaParts.length > 0 ? metaParts.map(
2836
+ (part, index) => index === metaParts.length - 1 ? `${part} \xB7 ${version}` : part
2837
+ ) : metaParts;
2838
+ return /* @__PURE__ */ jsx("footer", { className: Footer_default.footer, children: /* @__PURE__ */ jsxs("div", { className: Footer_default.inner, children: [
2839
+ /* @__PURE__ */ jsxs("div", { className: Footer_default.brand, children: [
2840
+ /* @__PURE__ */ jsx("div", { className: Footer_default.logoRow, children: /* @__PURE__ */ jsx(Logo, {}) }),
2841
+ /* @__PURE__ */ jsx("address", { className: Footer_default.meta, children: displayMetaParts.map((part) => /* @__PURE__ */ jsx("span", { className: Footer_default.part, children: part }, part)) })
2840
2842
  ] }),
2841
- /* @__PURE__ */ jsxs("nav", { className: LayoutFooter_default.links, "aria-label": "Footer navigation", children: [
2843
+ /* @__PURE__ */ jsxs("nav", { className: Footer_default.links, "aria-label": "Footer navigation", children: [
2842
2844
  extraLinks && extraLinks.length > 0 && (extraLinks == null ? void 0 : extraLinks.map((link, index) => /* @__PURE__ */ jsx("span", { children: link }, index))),
2843
2845
  links.map((link) => /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(
2844
2846
  Hyperlink,
@@ -3156,14 +3158,14 @@ var SearchBox = forwardRef(function SearchBoxInner({
3156
3158
  return () => window.removeEventListener("keydown", handleKeyDown);
3157
3159
  }
3158
3160
  }, [enableHotkey]);
3159
- const handleChange = React20__default.useCallback(
3161
+ const handleChange = React19__default.useCallback(
3160
3162
  (e) => {
3161
3163
  setDraft(e.target.value);
3162
3164
  onChange == null ? void 0 : onChange(e);
3163
3165
  },
3164
3166
  [onChange]
3165
3167
  );
3166
- const handleSelect = React20__default.useCallback(
3168
+ const handleSelect = React19__default.useCallback(
3167
3169
  (item) => {
3168
3170
  onSelect == null ? void 0 : onSelect(item);
3169
3171
  reset();
@@ -3177,7 +3179,7 @@ var SearchBox = forwardRef(function SearchBoxInner({
3177
3179
  setActiveIndex(null);
3178
3180
  (_a = popoverRef.current) == null ? void 0 : _a.close();
3179
3181
  }
3180
- const handleClear = React20__default.useCallback(() => {
3182
+ const handleClear = React19__default.useCallback(() => {
3181
3183
  var _a;
3182
3184
  reset();
3183
3185
  onSearch == null ? void 0 : onSearch("");
@@ -3428,6 +3430,10 @@ function Panel({
3428
3430
  var Card_default = {
3429
3431
  outerContainer: "Card_outerContainer",
3430
3432
  container: "Card_container",
3433
+ elevationNone: "Card_elevationNone",
3434
+ elevationXs: "Card_elevationXs",
3435
+ elevationSm: "Card_elevationSm",
3436
+ elevationMd: "Card_elevationMd",
3431
3437
  variantDefault: "Card_variantDefault",
3432
3438
  variantSubtle: "Card_variantSubtle",
3433
3439
  sm: "Card_sm",
@@ -3555,6 +3561,7 @@ function CardImpl({
3555
3561
  loading = false,
3556
3562
  variant = "default",
3557
3563
  size = "md",
3564
+ elevation = "sm",
3558
3565
  headerMarker = true,
3559
3566
  headerIcon,
3560
3567
  headerAddition,
@@ -3571,6 +3578,7 @@ function CardImpl({
3571
3578
  width,
3572
3579
  headlineSize = 4
3573
3580
  }) {
3581
+ var _a;
3574
3582
  const outerStyle = width ? {
3575
3583
  ["--width"]: `${width}%`,
3576
3584
  ["--gap-share"]: getGapShare(width)
@@ -3578,6 +3586,7 @@ function CardImpl({
3578
3586
  const mediaStyle = mediaWidth ? { ["--card-media-width"]: `${mediaWidth}px` } : void 0;
3579
3587
  const innerPlacementClass = getInnerPlacementClass(imgPlacement, Card_default);
3580
3588
  const variantClass = getVariantClass(variant, Card_default);
3589
+ const elevationClass = (_a = Card_default[`elevation${elevation.charAt(0).toUpperCase()}${elevation.slice(1)}`]) != null ? _a : Card_default.elevationSm;
3581
3590
  const hasHeader = !!title || !!headerMeta;
3582
3591
  const showSection = !loading && (showSectionDivider || !!sectionTitle);
3583
3592
  const showBody = !loading && !!children;
@@ -3615,7 +3624,7 @@ function CardImpl({
3615
3624
  ] })
3616
3625
  ] });
3617
3626
  const cardContent = link ? /* @__PURE__ */ jsx(Hyperlink, { children: link }) : inner;
3618
- return /* @__PURE__ */ jsx("div", { className: `${Card_default.outerContainer} ${Card_default[size]}`, style: outerStyle, children: /* @__PURE__ */ jsx("div", { className: `${Card_default.container} ${variantClass}`, children: cardContent }) });
3627
+ return /* @__PURE__ */ jsx("div", { className: `${Card_default.outerContainer} ${Card_default[size]}`, style: outerStyle, children: /* @__PURE__ */ jsx("div", { className: `${Card_default.container} ${variantClass} ${elevationClass}`, children: cardContent }) });
3619
3628
  }
3620
3629
  var Card = Object.assign(CardImpl, {
3621
3630
  Meta: CardMeta,
@@ -3661,7 +3670,8 @@ var Page_default = {
3661
3670
  disableTopPadding: "Page_disableTopPadding",
3662
3671
  headerMain: "Page_headerMain",
3663
3672
  content: "Page_content",
3664
- disableContentBox: "Page_disableContentBox"
3673
+ contentLoading: "Page_contentLoading",
3674
+ contentBox: "Page_contentBox"
3665
3675
  };
3666
3676
 
3667
3677
  // src/components/breadcrumbs/Breadcrumbs.module.css
@@ -3688,12 +3698,14 @@ function Page({
3688
3698
  headerAddition,
3689
3699
  breadcrumbs,
3690
3700
  disableContentBox,
3701
+ contentBox = false,
3691
3702
  disableTopPadding = true,
3692
3703
  maxWidth,
3693
3704
  containScrolling = false,
3694
3705
  children,
3695
3706
  loading = false
3696
3707
  }) {
3708
+ const showContentBox = contentBox && !disableContentBox;
3697
3709
  const maxWidthClass = maxWidth ? Page_default[`maxWidth${maxWidth.charAt(0).toUpperCase()}${maxWidth.slice(1)}`] : "";
3698
3710
  const hasHeadline = Boolean(header || subheader || headerAddition);
3699
3711
  return /* @__PURE__ */ jsxs(
@@ -3707,7 +3719,7 @@ function Page({
3707
3719
  Headline,
3708
3720
  {
3709
3721
  disableMargin: true,
3710
- size: 2,
3722
+ size: 1,
3711
3723
  severity,
3712
3724
  icon: headerIcon,
3713
3725
  subheader,
@@ -3716,7 +3728,13 @@ function Page({
3716
3728
  }
3717
3729
  ) : null
3718
3730
  ] }) }),
3719
- /* @__PURE__ */ jsx("div", { className: `${Page_default.content} ${disableContentBox ? Page_default.disableContentBox : ""}`, children: loading ? /* @__PURE__ */ jsx(SkeletonLoader, { type: "squares", rows: 1, columns: 1 }) : children })
3731
+ /* @__PURE__ */ jsx(
3732
+ "div",
3733
+ {
3734
+ className: `${Page_default.content} ${loading ? Page_default.contentLoading : ""} ${showContentBox ? Page_default.contentBox : ""}`,
3735
+ children: loading ? /* @__PURE__ */ jsx(SkeletonLoader, { type: "squares", rows: 1, columns: 1 }) : children
3736
+ }
3737
+ )
3720
3738
  ]
3721
3739
  }
3722
3740
  );
@@ -4285,7 +4303,7 @@ function TableRow({
4285
4303
  columns.map((column) => {
4286
4304
  var _a2, _b, _c, _d;
4287
4305
  const allowWrap = shouldAllowWrap(column.allowWrap, isSelected, viewMode);
4288
- const allowOverflow = column.allowOverflow;
4306
+ column.allowOverflow;
4289
4307
  const cellValue = getCellDisplayValue(row, column);
4290
4308
  return /* @__PURE__ */ jsx(
4291
4309
  "td",
@@ -4305,7 +4323,7 @@ function TableRow({
4305
4323
  className: Table_default.cellContent,
4306
4324
  "data-align": (_c = column.align) != null ? _c : "left",
4307
4325
  "data-vertical-align": (_d = column.verticalAlign) != null ? _d : "top",
4308
- children: allowWrap || allowOverflow ? cellValue : /* @__PURE__ */ jsx("div", { className: Table_default.cellValueEllipsis, children: cellValue })
4326
+ children: /* @__PURE__ */ jsx("div", { className: Table_default.cellValueEllipsis, children: cellValue })
4309
4327
  }
4310
4328
  )
4311
4329
  },
@@ -5150,7 +5168,7 @@ function SidebarItemContent({
5150
5168
  const shouldTruncate = truncateLabel && !wrapItemText && !activeQuery;
5151
5169
  const highlightTerms = activeQuery.trim().split(/\s+/).filter(Boolean);
5152
5170
  const renderedLabel = typeof label === "string" && highlightTerms.length > 0 ? getHighlightedSegments(label, highlightTerms).map(
5153
- (segment, index) => segment.matched ? /* @__PURE__ */ jsx("mark", { className: "dbc-highlight", children: segment.text }, `${segment.text}-${index}`) : /* @__PURE__ */ jsx(React20__default.Fragment, { children: segment.text }, `${segment.text}-${index}`)
5171
+ (segment, index) => segment.matched ? /* @__PURE__ */ jsx("mark", { className: "dbc-highlight", children: segment.text }, `${segment.text}-${index}`) : /* @__PURE__ */ jsx(React19__default.Fragment, { children: segment.text }, `${segment.text}-${index}`)
5154
5172
  ) : label;
5155
5173
  return /* @__PURE__ */ jsxs(
5156
5174
  "span",
@@ -5366,7 +5384,7 @@ var SidenavFiltering = ({
5366
5384
  wrapItemText,
5367
5385
  setWrapItemText
5368
5386
  } = useSidebar();
5369
- const searchBoxRef = React20__default.useRef(null);
5387
+ const searchBoxRef = React19__default.useRef(null);
5370
5388
  const handleSearch = (value) => {
5371
5389
  setActiveQuery == null ? void 0 : setActiveQuery(value);
5372
5390
  };
@@ -6293,12 +6311,12 @@ function Typeahead({
6293
6311
  const [query, setQuery] = useState("");
6294
6312
  const [activeIndex, setActiveIndex] = useState(-1);
6295
6313
  const [hideSelectedHighlight, setHideSelectedHighlight] = useState(false);
6296
- const clearJustClearedAfterEventCycle = React20.useCallback(() => {
6314
+ const clearJustClearedAfterEventCycle = React19.useCallback(() => {
6297
6315
  requestAnimationFrame(() => {
6298
6316
  justClearedRef.current = false;
6299
6317
  });
6300
6318
  }, []);
6301
- const getSelectedValueChipLabel = React20.useCallback(
6319
+ const getSelectedValueChipLabel = React19.useCallback(
6302
6320
  (option) => {
6303
6321
  switch (multiSelectedValueChipContent) {
6304
6322
  case "value":
@@ -6325,7 +6343,7 @@ function Typeahead({
6325
6343
  );
6326
6344
  }
6327
6345
  }
6328
- const commitSelection = React20.useCallback(
6346
+ const commitSelection = React19.useCallback(
6329
6347
  (option) => {
6330
6348
  var _a2, _b2;
6331
6349
  locallyClearedRef.current = false;
@@ -6450,7 +6468,7 @@ function Typeahead({
6450
6468
  setInputValue((_a2 = selectedOption == null ? void 0 : selectedOption.label) != null ? _a2 : "");
6451
6469
  }
6452
6470
  }, [selectedOption, mode]);
6453
- const getSelectedIndex = React20.useCallback(
6471
+ const getSelectedIndex = React19.useCallback(
6454
6472
  (items) => {
6455
6473
  if (items.length === 0) return -1;
6456
6474
  if (locallyClearedRef.current) return 0;
@@ -6478,7 +6496,7 @@ function Typeahead({
6478
6496
  const activeEl = (_a2 = document.getElementById(listboxId)) == null ? void 0 : _a2.querySelector(`#${CSS.escape(`${listboxId}-option-${activeIndex}`)}`);
6479
6497
  (_b2 = activeEl == null ? void 0 : activeEl.scrollIntoView) == null ? void 0 : _b2.call(activeEl, { block: "nearest" });
6480
6498
  }, [open, activeIndex, filteredOptions, listboxId]);
6481
- const getFocusableElements = React20.useCallback(() => {
6499
+ const getFocusableElements = React19.useCallback(() => {
6482
6500
  const selector = [
6483
6501
  "a[href]",
6484
6502
  "button:not([disabled])",
@@ -6502,12 +6520,12 @@ function Typeahead({
6502
6520
  }
6503
6521
  return focusables;
6504
6522
  }, []);
6505
- const isFocusWithinTypeahead = React20.useCallback((target) => {
6523
+ const isFocusWithinTypeahead = React19.useCallback((target) => {
6506
6524
  var _a2, _b2;
6507
6525
  if (!(target instanceof Node)) return false;
6508
6526
  return Boolean(((_a2 = rootRef.current) == null ? void 0 : _a2.contains(target)) || ((_b2 = popoverContentRef.current) == null ? void 0 : _b2.contains(target)));
6509
6527
  }, []);
6510
- const handleTabKeyDown = React20.useCallback(
6528
+ const handleTabKeyDown = React19.useCallback(
6511
6529
  (event) => {
6512
6530
  var _a2, _b2, _c;
6513
6531
  if (event.key !== "Tab" || !open) return;
@@ -6581,23 +6599,23 @@ function Typeahead({
6581
6599
  setOpen(false);
6582
6600
  setActiveIndex(-1);
6583
6601
  };
6584
- const openWithAllOptions = React20.useCallback(() => {
6602
+ const openWithAllOptions = React19.useCallback(() => {
6585
6603
  if (justClearedRef.current) return;
6586
6604
  setQuery("");
6587
6605
  setOpen(true);
6588
6606
  setActiveIndex(getSelectedIndex(options));
6589
6607
  }, [getSelectedIndex, options]);
6590
- const openWithCurrentFilter = React20.useCallback(() => {
6608
+ const openWithCurrentFilter = React19.useCallback(() => {
6591
6609
  if (justClearedRef.current) return;
6592
6610
  setOpen(true);
6593
6611
  setActiveIndex(getSelectedIndex(filteredOptions));
6594
6612
  }, [getSelectedIndex, filteredOptions]);
6595
- const prepareSingleSearchInput = React20.useCallback(() => {
6613
+ const prepareSingleSearchInput = React19.useCallback(() => {
6596
6614
  if (mode !== "single" || !selectedOption || justClearedRef.current) return;
6597
6615
  setInputValue("");
6598
6616
  setQuery("");
6599
6617
  }, [mode, selectedOption]);
6600
- const handleOpen = React20.useCallback(() => {
6618
+ const handleOpen = React19.useCallback(() => {
6601
6619
  if (justClearedRef.current) return;
6602
6620
  if (mode === "single" && selectedOption && !locallyClearedRef.current) {
6603
6621
  prepareSingleSearchInput();
@@ -6606,7 +6624,7 @@ function Typeahead({
6606
6624
  }
6607
6625
  openWithCurrentFilter();
6608
6626
  }, [mode, selectedOption, prepareSingleSearchInput, openWithAllOptions, openWithCurrentFilter]);
6609
- const handleTriggerMouseDown = React20.useCallback(
6627
+ const handleTriggerMouseDown = React19.useCallback(
6610
6628
  (e) => {
6611
6629
  var _a2;
6612
6630
  inputPropsOnMouseDown == null ? void 0 : inputPropsOnMouseDown(e);
@@ -6647,7 +6665,7 @@ function Typeahead({
6647
6665
  filteredOptions
6648
6666
  ]
6649
6667
  );
6650
- const handleChevronMouseDown = React20.useCallback(
6668
+ const handleChevronMouseDown = React19.useCallback(
6651
6669
  (e) => {
6652
6670
  var _a2, _b2;
6653
6671
  e.preventDefault();
@@ -7538,6 +7556,14 @@ var SegmentedProgressBar_default = {
7538
7556
  progressCenterLabel: "SegmentedProgressBar_progressCenterLabel",
7539
7557
  emptySegments: "SegmentedProgressBar_emptySegments"
7540
7558
  };
7559
+ var sizeTokenMap = {
7560
+ "2xs": "var(--component-size-2xs)",
7561
+ xxs: "var(--component-size-xxs)",
7562
+ xs: "var(--component-size-xs)",
7563
+ sm: "var(--component-size-sm)",
7564
+ md: "var(--component-size-md)",
7565
+ lg: "var(--component-size-lg)"
7566
+ };
7541
7567
  function SegmentWithTooltip({
7542
7568
  seg,
7543
7569
  index,
@@ -7577,9 +7603,9 @@ var SegmentedProgressBar = ({
7577
7603
  segments,
7578
7604
  total,
7579
7605
  showRemainder = true,
7580
- remainderSeverity = "neutral",
7606
+ remainderSeverity = "missing",
7581
7607
  centerLabel,
7582
- height,
7608
+ size = "sm",
7583
7609
  rounded = true,
7584
7610
  trackColor,
7585
7611
  tooltipPlacement = "top",
@@ -7617,7 +7643,8 @@ var SegmentedProgressBar = ({
7617
7643
  className: SegmentedProgressBar_default.progressBar,
7618
7644
  "data-rounded": rounded ? "true" : "false",
7619
7645
  style: {
7620
- height: height ? `${height}px` : "24px",
7646
+ ["--progress-height"]: sizeTokenMap[size],
7647
+ height: sizeTokenMap[size],
7621
7648
  background: trackColor != null ? trackColor : "var(--color-bg-surface-subtle)"
7622
7649
  },
7623
7650
  children: [
@@ -8498,7 +8525,7 @@ function Modal({
8498
8525
  tabIndex: -1,
8499
8526
  children: [
8500
8527
  /* @__PURE__ */ jsxs("div", { className: Modal_default.header, children: [
8501
- header && /* @__PURE__ */ jsx(Headline, { severity, size: 3, disableMargin: true, subheader, children: header }),
8528
+ header && /* @__PURE__ */ jsx(Headline, { severity, size: 2, disableMargin: true, subheader, children: header }),
8502
8529
  /* @__PURE__ */ jsx(
8503
8530
  Button,
8504
8531
  {
@@ -8810,7 +8837,7 @@ function AttributeChip({
8810
8837
  /* @__PURE__ */ jsx("span", { className: AttributeChip_default.value, children: loading ? "\u2014" : value == null ? void 0 : value.toString() })
8811
8838
  ] });
8812
8839
  }
8813
- var SplitPaneContext = React20__default.createContext(null);
8840
+ var SplitPaneContext = React19__default.createContext(null);
8814
8841
  function clamp3(n, min, max) {
8815
8842
  return Math.max(min, Math.min(max, n));
8816
8843
  }
@@ -8837,7 +8864,7 @@ function removeStoredSize(key) {
8837
8864
  }
8838
8865
  }
8839
8866
  function useSplitPaneContext() {
8840
- const ctx = React20__default.useContext(SplitPaneContext);
8867
+ const ctx = React19__default.useContext(SplitPaneContext);
8841
8868
  if (!ctx) throw new Error("SplitPane components must be used within <SplitPane />");
8842
8869
  return ctx;
8843
8870
  }
@@ -10312,7 +10339,7 @@ function ChipMultiToggle({
10312
10339
  type = "rounded",
10313
10340
  dataCy
10314
10341
  }) {
10315
- const selectedSet = React20__default.useMemo(() => new Set(selectedValues), [selectedValues]);
10342
+ const selectedSet = React19__default.useMemo(() => new Set(selectedValues), [selectedValues]);
10316
10343
  const isNoneSelected = allTogglesNone && selectedSet.has(noneValue);
10317
10344
  const isAllSelected = showAllOption && !isNoneSelected && selectedSet.size === 0;
10318
10345
  const toggleValue = (value) => {
@@ -10661,7 +10688,7 @@ function SidePanel({
10661
10688
  /* @__PURE__ */ jsx(
10662
10689
  Headline,
10663
10690
  {
10664
- size: 3,
10691
+ size: 2,
10665
10692
  disableMargin: true,
10666
10693
  severity,
10667
10694
  marker: showHeaderMarker,
@@ -11021,6 +11048,7 @@ function IntervalSelect({
11021
11048
  // src/components/accordion/Accordion.module.css
11022
11049
  var Accordion_default = {
11023
11050
  container: "Accordion_container",
11051
+ outlined: "Accordion_outlined",
11024
11052
  sm: "Accordion_sm",
11025
11053
  md: "Accordion_md",
11026
11054
  lg: "Accordion_lg"
@@ -11037,7 +11065,8 @@ var AccordionRow_default = {
11037
11065
  panel: "AccordionRow_panel",
11038
11066
  animate: "AccordionRow_animate",
11039
11067
  noAnimate: "AccordionRow_noAnimate",
11040
- content: "AccordionRow_content"
11068
+ content: "AccordionRow_content",
11069
+ item: "AccordionRow_item"
11041
11070
  };
11042
11071
  function useCollapsibleHeight(isOpen, shouldAnimate) {
11043
11072
  const innerRef = useRef(null);
@@ -11080,7 +11109,9 @@ function AccordionRow({
11080
11109
  item,
11081
11110
  isOpen,
11082
11111
  onToggle,
11083
- shouldAnimate = true
11112
+ shouldAnimate = true,
11113
+ headlineSize = 4,
11114
+ variant = "default"
11084
11115
  }) {
11085
11116
  const isDisabled = !!item.disabled;
11086
11117
  const buttonId = `${uid}-acc-btn-${index}`;
@@ -11108,8 +11139,8 @@ function AccordionRow({
11108
11139
  Headline,
11109
11140
  {
11110
11141
  disableMargin: true,
11111
- size: 4,
11112
- weight: 500,
11142
+ size: headlineSize,
11143
+ weight: variant === "outlined" ? 400 : 500,
11113
11144
  severity: item.severity,
11114
11145
  subheader: item.subheader,
11115
11146
  allowWrap: isOpen,
@@ -11148,6 +11179,7 @@ function Accordion({
11148
11179
  items,
11149
11180
  mode = "single",
11150
11181
  size = "md",
11182
+ variant = "default",
11151
11183
  defaultOpenIndex = null,
11152
11184
  defaultOpenIndexes = [],
11153
11185
  openIndex,
@@ -11157,9 +11189,9 @@ function Accordion({
11157
11189
  }) {
11158
11190
  const uid = useId();
11159
11191
  const isControlled = mode === "single" ? openIndex !== void 0 : openIndexes !== void 0;
11160
- const hasMountedRef = useRef(false);
11192
+ const [hasMounted, setHasMounted] = useState(false);
11161
11193
  useEffect(() => {
11162
- hasMountedRef.current = true;
11194
+ setHasMounted(true);
11163
11195
  }, []);
11164
11196
  const [internalSingle, setInternalSingle] = useState(
11165
11197
  mode === "single" ? defaultOpenIndex : null
@@ -11205,18 +11237,26 @@ function Accordion({
11205
11237
  if (isOpen) commit(currentOpenIndexes.filter((i) => i !== index));
11206
11238
  else commit([...currentOpenIndexes, index]);
11207
11239
  }
11208
- return /* @__PURE__ */ jsx("div", { className: `${Accordion_default.container} ${Accordion_default[size]}`, children: items.map((item, i) => /* @__PURE__ */ jsx(
11209
- AccordionRow,
11240
+ return /* @__PURE__ */ jsx(
11241
+ "div",
11210
11242
  {
11211
- uid,
11212
- index: i,
11213
- item,
11214
- isOpen: openSet.has(i),
11215
- onToggle: toggle,
11216
- shouldAnimate: hasMountedRef.current
11217
- },
11218
- i
11219
- )) });
11243
+ className: [Accordion_default.container, Accordion_default[size], variant !== "default" ? Accordion_default[variant] : ""].filter(Boolean).join(" "),
11244
+ children: items.map((item, i) => /* @__PURE__ */ jsx(
11245
+ AccordionRow,
11246
+ {
11247
+ uid,
11248
+ index: i,
11249
+ item,
11250
+ isOpen: openSet.has(i),
11251
+ onToggle: toggle,
11252
+ shouldAnimate: hasMounted,
11253
+ headlineSize: size === "sm" ? 4 : 3,
11254
+ variant
11255
+ },
11256
+ i
11257
+ ))
11258
+ }
11259
+ );
11220
11260
  }
11221
11261
  var EmptyIllustration = () => /* @__PURE__ */ jsxs(
11222
11262
  "svg",
@@ -12717,4 +12757,46 @@ function Alert({
12717
12757
  );
12718
12758
  }
12719
12759
 
12720
- export { Accordion, Alert, AppHeader, AttributeChip, Avatar, Breadcrumbs, Button, ButtonSelect, Card, CardContainer, ChartSemanticColorVar, Checkbox, CheckboxGroup, Chip, ChipMultiToggle, Circle, CodeBlock, CollapsibleHeadline, CopyButton, DateTimePicker, Divider, FadeOverlay, FilterField, Grid, GridItem, Headline, Hyperlink, Icon, Input, InputContainer, IntervalSelect, JsonViewer, LayoutFooter, Menu, MetaBar, Modal, ModalProvider, MultiSelect, NUMBER_OPERATORS, NavBar, Page, PageLayout, Pagination, Panel, Popover, RadioButton, RadioButtonGroup, SearchBox, SegmentedProgressBar, Select, SeverityIcon, SidePanel, Sidebar, SkeletonLoader, SkeletonLoaderItem, SplitButton, SplitPane, SplitPaneGutter, SplitPanePrimary, SplitPaneSecondary, Stack, StatePage, StickyFooterLayout, Table, Tabs, Textarea, ThemeButton, ThemeMenuSection, Toast, ToastProvider, Tooltip, TooltipContext, TooltipProvider, Typeahead, UserDisplay, formatDate, nestedFiltering, useDeviceSize, useModal, useOptionalToast, usePagination, useSidePanel, useSorting, useTableData, useTableSelection, useTheme, useTimeDuration, useToast, useTooltipTrigger, useViewportFill };
12760
+ // src/components/inline-status/InlineStatus.module.css
12761
+ var InlineStatus_default = {
12762
+ container: "InlineStatus_container",
12763
+ fullWidth: "InlineStatus_fullWidth",
12764
+ leading: "InlineStatus_leading",
12765
+ body: "InlineStatus_body",
12766
+ sm: "InlineStatus_sm",
12767
+ md: "InlineStatus_md",
12768
+ neutral: "InlineStatus_neutral",
12769
+ success: "InlineStatus_success",
12770
+ warning: "InlineStatus_warning",
12771
+ error: "InlineStatus_error",
12772
+ info: "InlineStatus_info",
12773
+ brand: "InlineStatus_brand"
12774
+ };
12775
+ function InlineStatus({
12776
+ children,
12777
+ severity = "neutral",
12778
+ customIcon,
12779
+ disableIcon = false,
12780
+ fullWidth = false,
12781
+ size = "sm"
12782
+ }) {
12783
+ const hasLeading = Boolean(customIcon) || !disableIcon;
12784
+ return /* @__PURE__ */ jsxs(
12785
+ "div",
12786
+ {
12787
+ className: [
12788
+ InlineStatus_default.container,
12789
+ InlineStatus_default[severity],
12790
+ InlineStatus_default[size],
12791
+ fullWidth ? InlineStatus_default.fullWidth : "",
12792
+ hasLeading ? InlineStatus_default.hasLeading : ""
12793
+ ].filter(Boolean).join(" "),
12794
+ children: [
12795
+ hasLeading ? /* @__PURE__ */ jsx("span", { className: InlineStatus_default.leading, children: customIcon != null ? customIcon : /* @__PURE__ */ jsx(Icon, { severity }) }) : null,
12796
+ /* @__PURE__ */ jsx("span", { className: InlineStatus_default.body, children })
12797
+ ]
12798
+ }
12799
+ );
12800
+ }
12801
+
12802
+ export { Accordion, Alert, AppHeader, AttributeChip, Avatar, Breadcrumbs, Button, ButtonSelect, Card, CardContainer, ChartSemanticColorVar, Checkbox, CheckboxGroup, Chip, ChipMultiToggle, Circle, CodeBlock, CollapsibleHeadline, CopyButton, DateTimePicker, Divider, FadeOverlay, FilterField, Footer, Grid, GridItem, Headline, Hyperlink, Icon, InlineStatus, Input, InputContainer, IntervalSelect, JsonViewer, Menu, MetaBar, Modal, ModalProvider, MultiSelect, NUMBER_OPERATORS, NavBar, Page, PageLayout, Pagination, Panel, Popover, RadioButton, RadioButtonGroup, SearchBox, SegmentedProgressBar, Select, SeverityIcon, SidePanel, Sidebar, SkeletonLoader, SkeletonLoaderItem, SplitButton, SplitPane, SplitPaneGutter, SplitPanePrimary, SplitPaneSecondary, Stack, StatePage, StickyFooterLayout, Table, Tabs, Textarea, ThemeButton, ThemeMenuSection, Toast, ToastProvider, Tooltip, TooltipContext, TooltipProvider, Typeahead, UserDisplay, formatDate, nestedFiltering, useDeviceSize, useModal, useOptionalToast, usePagination, useSidePanel, useSorting, useTableData, useTableSelection, useTheme, useTimeDuration, useToast, useTooltipTrigger, useViewportFill };