@uniformdev/design-system 19.54.0 → 19.54.2-alpha.12

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/esm/index.js CHANGED
@@ -274,6 +274,50 @@ var cq = (size) => `@container (min-width: ${size})`;
274
274
  // src/utils/replaceUnderscoreInString.ts
275
275
  var replaceUnderscoreInString = (title) => (title == null ? void 0 : title.includes("_")) ? title.replaceAll("_", " ") : title;
276
276
 
277
+ // src/utils/url.ts
278
+ var isSecureURL = (value = "") => {
279
+ try {
280
+ const url = new URL(value);
281
+ return url.protocol === "https:";
282
+ } catch (e) {
283
+ return false;
284
+ }
285
+ };
286
+ var isValidUrl = (urlString, options = {}) => {
287
+ try {
288
+ const isRelativeToLocation = /^([/.])/.test(urlString);
289
+ const url = new URL(
290
+ urlString,
291
+ options.allowRelative && isRelativeToLocation ? "https://defaultbaseurl.com" : void 0
292
+ );
293
+ if (options.isSecure) {
294
+ return url.protocol === "https:";
295
+ }
296
+ return true;
297
+ } catch (e) {
298
+ return false;
299
+ }
300
+ };
301
+ var addPathSegmentToPathname = (path, pathSegment) => {
302
+ return `/${path.substring(1).split("/").filter((s) => s).concat(pathSegment).join("/")}`;
303
+ };
304
+ var getPathSegment = (path) => {
305
+ return path.split("/").pop() || path;
306
+ };
307
+ var getParentPath = (path, noRootSlash) => {
308
+ var _a;
309
+ if (path === "/") {
310
+ return "";
311
+ }
312
+ const pathSegments = path == null ? void 0 : path.split("/");
313
+ if ((pathSegments == null ? void 0 : pathSegments.length) === 2) {
314
+ return noRootSlash ? "" : "/";
315
+ } else {
316
+ pathSegments == null ? void 0 : pathSegments.pop();
317
+ return (_a = pathSegments == null ? void 0 : pathSegments.join("/")) != null ? _a : "n/a";
318
+ }
319
+ };
320
+
277
321
  // src/utils/useOutsideClick.tsx
278
322
  import { useEffect } from "react";
279
323
  var useOutsideClick = (containerRef, handler) => {
@@ -11525,6 +11569,7 @@ var Menu = ({
11525
11569
  BaseMenu,
11526
11570
  {
11527
11571
  ...menuState,
11572
+ "data-auto-resize-opt-in": true,
11528
11573
  focusable: false,
11529
11574
  "aria-label": menuLabel,
11530
11575
  ...!isRendered ? { unstable_popoverStyles: { position: "absolute", opacity: "0" } } : void 0,
@@ -11586,14 +11631,48 @@ function renderWithIcon(children, icon) {
11586
11631
 
11587
11632
  // src/components/ButtonWithMenu/ButtonWithMenu.styles.ts
11588
11633
  import { css as css26 } from "@emotion/react";
11634
+ var buttonSizeBase = css26`
11635
+ --icon-padding: var(--spacing-xs);
11636
+ --svg-size: 1rem;
11637
+ --line-offset: -5px;
11638
+ font-size: var(--fs-sm);
11639
+
11640
+ > button {
11641
+ padding: var(--spacing-sm) var(--spacing-base);
11642
+ }
11643
+ `;
11644
+ var buttonSizeSmall = css26`
11645
+ --icon-padding: var(--spacing-xs);
11646
+ --svg-size: 0.85rem;
11647
+ --line-offset: -1px;
11648
+ font-size: var(--fs-sm);
11649
+
11650
+ > button {
11651
+ padding: var(--spacing-xs) var(--spacing-base);
11652
+ }
11653
+ `;
11654
+ var buttonSizeLarge = css26`
11655
+ --icon-padding: var(--spacing-sm);
11656
+ --svg-size: 1.5rem;
11657
+ --line-offset: -5px;
11658
+ font-size: var(--fs-sm);
11659
+ line-height: 1.25;
11660
+
11661
+ > button {
11662
+ padding: var(--spacing-sm) var(--spacing-base);
11663
+ }
11664
+ `;
11589
11665
  var ButtonWithMenuContainer = css26`
11590
11666
  align-items: center;
11591
11667
  border: 1px solid transparent;
11592
11668
  border-radius: var(--rounded-sm);
11593
11669
  color: var(--white);
11594
11670
  display: inline-flex;
11595
- font-size: var(--fs-sm);
11596
11671
  position: relative;
11672
+ min-height: 24px;
11673
+ transition: color var(--duration-fast) var(--timing-ease-out),
11674
+ border-color var(--duration-fast) var(--timing-ease-out),
11675
+ background-color var(--duration-fast) var(--timing-ease-out);
11597
11676
 
11598
11677
  &:active {
11599
11678
  opacity: var(--opacity-75);
@@ -11606,15 +11685,19 @@ var ButtonWithMenuContainer = css26`
11606
11685
  &:focus {
11607
11686
  border-color: var(--gray-700);
11608
11687
  }
11688
+
11689
+ svg {
11690
+ width: var(--svg-size);
11691
+ height: var(--svg-size);
11692
+ }
11609
11693
  `;
11610
11694
  var ButtonWithMenuBtn = css26`
11695
+ align-items: center;
11611
11696
  border: 1px solid transparent;
11612
11697
  background: transparent;
11613
- border-radius: var(--rounded-base);
11614
- padding: var(--spacing-sm) var(--spacing-base);
11615
- font-weight: var(--fw-medium);
11616
- letter-spacing: 0.025rem;
11617
- line-height: 1.25;
11698
+ line-height: 1;
11699
+ display: inline-flex;
11700
+ gap: var(--spacing-xs);
11618
11701
 
11619
11702
  &:focus {
11620
11703
  outline: none;
@@ -11631,8 +11714,17 @@ var ButtonWithMenuBtn = css26`
11631
11714
  }
11632
11715
  `;
11633
11716
  var ButtonWithMenuIcon = css26`
11634
- padding: var(--spacing-sm);
11635
- border-left: 1px solid currentColor;
11717
+ padding: var(--icon-padding);
11718
+ position: relative;
11719
+
11720
+ &:before {
11721
+ background: currentColor;
11722
+ content: '';
11723
+ display: block;
11724
+ inset: var(--line-offset) auto var(--line-offset) -1px;
11725
+ width: 1px;
11726
+ position: absolute;
11727
+ }
11636
11728
  `;
11637
11729
  var buttonPrimary2 = css26`
11638
11730
  background: var(--brand-secondary-1);
@@ -11672,6 +11764,24 @@ var buttonGhostDisabled = css26`
11672
11764
  border-color: var(--gray-400);
11673
11765
  color: var(--gray-400);
11674
11766
  `;
11767
+ var buttonSecondaryOutline = css26`
11768
+ background: var(--white);
11769
+ color: var(--primary-action-default);
11770
+ border-color: var(--primary-action-default);
11771
+
11772
+ &:hover {
11773
+ color: var(--primary-action-hover);
11774
+ border-color: var(--primary-action-hover);
11775
+ }
11776
+ `;
11777
+ var buttonSecondaryOutlineDisabled = css26`
11778
+ background: var(--white);
11779
+ color: var(--gray-400);
11780
+ border-color: var(--gray-400);
11781
+ `;
11782
+ var buttonWithMenuIconOffset = css26`
11783
+ margin-left: -10px;
11784
+ `;
11675
11785
 
11676
11786
  // src/components/ButtonWithMenu/ButtonWithMenu.tsx
11677
11787
  import { jsx as jsx27, jsxs as jsxs17 } from "@emotion/react/jsx-runtime";
@@ -11679,30 +11789,43 @@ var ButtonWithMenu = ({
11679
11789
  onButtonClick,
11680
11790
  buttonType = "secondary",
11681
11791
  buttonText,
11792
+ icon,
11682
11793
  disabled,
11683
11794
  children,
11684
11795
  placement,
11796
+ size = "lg",
11685
11797
  ...buttonProps
11686
11798
  }) => {
11687
11799
  const buttonTheme = {
11688
11800
  primary: buttonPrimary2,
11689
11801
  secondary: buttonSecondary2,
11690
11802
  ghost: buttonGhost2,
11691
- unimportant: buttonUnimportant2
11803
+ unimportant: buttonUnimportant2,
11804
+ secondaryOutline: buttonSecondaryOutline
11692
11805
  };
11693
11806
  const buttonDisabledTheme = {
11694
11807
  primary: buttonPrimaryDisabled,
11695
11808
  secondary: buttonSecondaryDisabled,
11696
11809
  ghost: buttonGhostDisabled,
11697
- unimportant: buttonUnimportantDisabled
11810
+ unimportant: buttonUnimportantDisabled,
11811
+ secondaryOutline: buttonSecondaryOutlineDisabled
11812
+ };
11813
+ const sizes2 = {
11814
+ base: buttonSizeBase,
11815
+ sm: buttonSizeSmall,
11816
+ lg: buttonSizeLarge
11698
11817
  };
11699
11818
  return /* @__PURE__ */ jsxs17(
11700
11819
  "div",
11701
11820
  {
11702
- css: [ButtonWithMenuContainer, disabled ? buttonDisabledTheme[buttonType] : buttonTheme[buttonType]],
11821
+ css: [
11822
+ sizes2[size],
11823
+ ButtonWithMenuContainer,
11824
+ disabled ? buttonDisabledTheme[buttonType] : buttonTheme[buttonType]
11825
+ ],
11703
11826
  "data-testid": "multioptions-button",
11704
11827
  children: [
11705
- /* @__PURE__ */ jsx27(
11828
+ /* @__PURE__ */ jsxs17(
11706
11829
  "button",
11707
11830
  {
11708
11831
  type: "button",
@@ -11711,7 +11834,10 @@ var ButtonWithMenu = ({
11711
11834
  onClick: onButtonClick,
11712
11835
  "data-testid": "multioptions-button-main",
11713
11836
  ...buttonProps,
11714
- children: buttonText
11837
+ children: [
11838
+ icon ? /* @__PURE__ */ jsx27(Icon, { icon, iconColor: "currentColor", css: buttonWithMenuIconOffset }) : null,
11839
+ buttonText
11840
+ ]
11715
11841
  }
11716
11842
  ),
11717
11843
  /* @__PURE__ */ jsx27(
@@ -11719,7 +11845,7 @@ var ButtonWithMenu = ({
11719
11845
  {
11720
11846
  menuLabel: "buttonMenu",
11721
11847
  placement,
11722
- menuTrigger: /* @__PURE__ */ jsx27("div", { css: ButtonWithMenuIcon, "data-testid": "multioptions-button-call-menu", children: /* @__PURE__ */ jsx27(Icon, { icon: CgChevronDown, size: 24, iconColor: "currentColor" }) }),
11848
+ menuTrigger: /* @__PURE__ */ jsx27("div", { css: ButtonWithMenuIcon, "data-testid": "multioptions-button-call-menu", children: /* @__PURE__ */ jsx27(Icon, { icon: CgChevronDown, iconColor: "currentColor" }) }),
11723
11849
  children
11724
11850
  }
11725
11851
  )
@@ -13405,23 +13531,6 @@ IconButton.displayName = "IconButton";
13405
13531
  // src/components/Image/Image.tsx
13406
13532
  import { useCallback as useCallback2, useEffect as useEffect7, useState as useState8 } from "react";
13407
13533
 
13408
- // src/utils/url.ts
13409
- var isValidUrl = (urlString, options = {}) => {
13410
- try {
13411
- const isRelativeToLocation = /^([/.])/.test(urlString);
13412
- const url = new URL(
13413
- urlString,
13414
- options.allowRelative && isRelativeToLocation ? "https://defaultbaseurl.com" : void 0
13415
- );
13416
- if (options.isSecure) {
13417
- return url.protocol === "https:";
13418
- }
13419
- return true;
13420
- } catch (e) {
13421
- return false;
13422
- }
13423
- };
13424
-
13425
13534
  // src/components/Input/styles/CaptionText.styles.ts
13426
13535
  import { css as css45 } from "@emotion/react";
13427
13536
  var CaptionText = (dynamicSize) => css45`
@@ -15706,10 +15815,16 @@ var cardBaseTitleStyles = css72`
15706
15815
  font-size: var(--fs-sm);
15707
15816
  color: var(--gray-500);
15708
15817
  cursor: pointer;
15818
+ white-space: nowrap;
15819
+ overflow: hidden;
15820
+ text-overflow: ellipsis;
15709
15821
  `;
15710
15822
  var cardBaseSubtitleStyles = css72`
15711
15823
  font-size: var(--fs-xs);
15712
15824
  color: var(--gray-500);
15825
+ white-space: nowrap;
15826
+ overflow: hidden;
15827
+ text-overflow: ellipsis;
15713
15828
  `;
15714
15829
  var cardBaseMenuButtonStyles = css72`
15715
15830
  padding: var(--spacing-2xs);
@@ -15737,8 +15852,8 @@ var MediaCard = ({
15737
15852
  return /* @__PURE__ */ jsxs58(Card, { tag: "button", css: cardBaseStyles, ...cardProps, onClick, children: [
15738
15853
  /* @__PURE__ */ jsx87("div", { css: cardBaseCoverIconWrapperStyles, children: cover }),
15739
15854
  /* @__PURE__ */ jsx87("div", { css: cardBaseContentStyles, children: /* @__PURE__ */ jsxs58(HorizontalRhythm, { gap: "sm", justify: "space-between", align: "center", css: { width: "100%" }, children: [
15740
- /* @__PURE__ */ jsxs58(VerticalRhythm, { gap: "0", align: "flex-start", css: { flex: 1 }, children: [
15741
- /* @__PURE__ */ jsxs58(HorizontalRhythm, { gap: "xs", align: "center", children: [
15855
+ /* @__PURE__ */ jsxs58(VerticalRhythm, { gap: "0", align: "flex-start", css: { flex: 1, minWidth: 0 }, children: [
15856
+ /* @__PURE__ */ jsxs58(HorizontalRhythm, { gap: "xs", align: "center", css: { maxWidth: "100%" }, children: [
15742
15857
  /* @__PURE__ */ jsx87("div", { css: cardBaseTitleStyles, "data-testid": "card-title", children: title }),
15743
15858
  !infoPopover ? null : /* @__PURE__ */ jsx87("div", { css: { display: "flex", cursor: "default" }, onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx87(
15744
15859
  Popover2,
@@ -15753,9 +15868,9 @@ var MediaCard = ({
15753
15868
  }
15754
15869
  ) })
15755
15870
  ] }),
15756
- !subtitle ? null : /* @__PURE__ */ jsx87("div", { css: cardBaseSubtitleStyles, children: subtitle })
15871
+ subtitle ? /* @__PURE__ */ jsx87("div", { css: cardBaseSubtitleStyles, children: subtitle }) : null
15757
15872
  ] }),
15758
- /* @__PURE__ */ jsx87("div", { css: { cursor: "default" }, onClick: (e) => e.stopPropagation(), children: sideSection }),
15873
+ sideSection ? /* @__PURE__ */ jsx87("div", { css: { cursor: "default" }, onClick: (e) => e.stopPropagation(), children: sideSection }) : null,
15759
15874
  /* @__PURE__ */ jsx87(VerticalRhythm, { align: "center", justify: "center", onClick: (e) => e.stopPropagation(), children: !menuItems || Array.isArray(menuItems) && !menuItems.length ? null : /* @__PURE__ */ jsx87(
15760
15875
  Menu,
15761
15876
  {
@@ -18443,29 +18558,85 @@ var ParameterToggleInner = forwardRef17(
18443
18558
  }
18444
18559
  );
18445
18560
 
18561
+ // src/components/ProgressBar/ProgressBar.styles.ts
18562
+ import { css as css84 } from "@emotion/react";
18563
+ var container = css84`
18564
+ background: var(--gray-50);
18565
+ margin-block: var(--spacing-sm);
18566
+ position: relative;
18567
+ overflow: hidden;
18568
+ height: 1rem;
18569
+ border-radius: var(--rounded-sm);
18570
+ border: solid 1px var(--gray-300);
18571
+ `;
18572
+ var themeMap = {
18573
+ primary: css84`
18574
+ background-color: var(--accent-light);
18575
+ `,
18576
+ secondary: css84`
18577
+ background-color: var(--brand-secondary-5);
18578
+ `
18579
+ };
18580
+ var bar = css84`
18581
+ position: absolute;
18582
+ inset: 0;
18583
+ transition: transform var(--duration-fast) var(--timing-ease-out);
18584
+ transform-origin: 0 center;
18585
+ `;
18586
+
18587
+ // src/components/ProgressBar/ProgressBar.tsx
18588
+ import { jsx as jsx108 } from "@emotion/react/jsx-runtime";
18589
+ function ProgressBar({ className, current, max, theme = "primary" }) {
18590
+ const valueNow = Math.min(current, max);
18591
+ const valuePercentage = max > 0 ? Math.ceil(100 / max * valueNow) : 0;
18592
+ return /* @__PURE__ */ jsx108(
18593
+ "div",
18594
+ {
18595
+ className,
18596
+ css: container,
18597
+ role: "progressbar",
18598
+ "aria-busy": valuePercentage !== 100,
18599
+ "aria-invalid": false,
18600
+ "aria-valuemin": 0,
18601
+ "aria-valuemax": max,
18602
+ "aria-valuenow": valueNow,
18603
+ children: /* @__PURE__ */ jsx108(
18604
+ "div",
18605
+ {
18606
+ css: [bar, themeMap[theme]],
18607
+ style: {
18608
+ transform: `scaleX(${valuePercentage / 100})`
18609
+ },
18610
+ "aria-label": `${current} / ${max}`
18611
+ }
18612
+ )
18613
+ }
18614
+ );
18615
+ }
18616
+
18446
18617
  // src/components/ProgressList/ProgressList.tsx
18447
- import { css as css85 } from "@emotion/react";
18618
+ import { css as css86 } from "@emotion/react";
18448
18619
  import { CgCheckO as CgCheckO2 } from "@react-icons/all-files/cg/CgCheckO";
18449
18620
  import { CgRadioCheck } from "@react-icons/all-files/cg/CgRadioCheck";
18450
18621
  import { CgRecord } from "@react-icons/all-files/cg/CgRecord";
18451
18622
  import { useMemo as useMemo4 } from "react";
18452
18623
 
18453
18624
  // src/components/ProgressList/styles/ProgressList.styles.ts
18454
- import { css as css84 } from "@emotion/react";
18455
- var progressListStyles = css84`
18625
+ import { css as css85 } from "@emotion/react";
18626
+ var progressListStyles = css85`
18456
18627
  display: flex;
18457
18628
  flex-direction: column;
18458
18629
  gap: var(--spacing-sm);
18459
18630
  list-style-type: none;
18460
18631
  `;
18461
- var progressListItemStyles = css84`
18632
+ var progressListItemStyles = css85`
18462
18633
  display: flex;
18463
18634
  gap: var(--spacing-base);
18464
18635
  align-items: center;
18465
18636
  `;
18466
18637
 
18467
18638
  // src/components/ProgressList/ProgressList.tsx
18468
- import { jsx as jsx108, jsxs as jsxs74 } from "@emotion/react/jsx-runtime";
18639
+ import { jsx as jsx109, jsxs as jsxs74 } from "@emotion/react/jsx-runtime";
18469
18640
  var ProgressList = ({ inProgressId, items, autoEllipsis, ...htmlProps }) => {
18470
18641
  const itemsWithStatus = useMemo4(() => {
18471
18642
  const indexOfInProgressItem = items.findIndex(({ id }) => id === inProgressId);
@@ -18479,8 +18650,8 @@ var ProgressList = ({ inProgressId, items, autoEllipsis, ...htmlProps }) => {
18479
18650
  return { ...item, status };
18480
18651
  });
18481
18652
  }, [items, inProgressId]);
18482
- return /* @__PURE__ */ jsx108("ol", { css: progressListStyles, ...htmlProps, children: itemsWithStatus.map(({ id, label, status, error, errorLevel }) => {
18483
- return /* @__PURE__ */ jsx108(
18653
+ return /* @__PURE__ */ jsx109("ol", { css: progressListStyles, ...htmlProps, children: itemsWithStatus.map(({ id, label, status, error, errorLevel }) => {
18654
+ return /* @__PURE__ */ jsx109(
18484
18655
  ProgressListItem,
18485
18656
  {
18486
18657
  status,
@@ -18513,12 +18684,12 @@ var ProgressListItem = ({
18513
18684
  }, [status, error]);
18514
18685
  const statusStyles = useMemo4(() => {
18515
18686
  if (error) {
18516
- return errorLevel === "caution" ? css85`
18687
+ return errorLevel === "caution" ? css86`
18517
18688
  color: rgb(161, 98, 7);
18518
18689
  & svg {
18519
18690
  color: rgb(250, 204, 21);
18520
18691
  }
18521
- ` : css85`
18692
+ ` : css86`
18522
18693
  color: rgb(185, 28, 28);
18523
18694
  & svg {
18524
18695
  color: var(--brand-primary-2);
@@ -18526,35 +18697,35 @@ var ProgressListItem = ({
18526
18697
  `;
18527
18698
  }
18528
18699
  const colorPerStatus = {
18529
- completed: css85`
18700
+ completed: css86`
18530
18701
  opacity: 0.75;
18531
18702
  `,
18532
- inProgress: css85`
18703
+ inProgress: css86`
18533
18704
  -webkit-text-stroke-width: thin;
18534
18705
  `,
18535
- queued: css85`
18706
+ queued: css86`
18536
18707
  opacity: 0.5;
18537
18708
  `
18538
18709
  };
18539
18710
  return colorPerStatus[status];
18540
18711
  }, [status, error, errorLevel]);
18541
18712
  return /* @__PURE__ */ jsxs74("li", { css: [progressListItemStyles, statusStyles], children: [
18542
- /* @__PURE__ */ jsx108(Tooltip, { title: error != null ? error : "", children: /* @__PURE__ */ jsx108("div", { children: /* @__PURE__ */ jsx108(Icon, { icon, size: 20, iconColor: "currentColor" }) }) }),
18713
+ /* @__PURE__ */ jsx109(Tooltip, { title: error != null ? error : "", children: /* @__PURE__ */ jsx109("div", { children: /* @__PURE__ */ jsx109(Icon, { icon, size: 20, iconColor: "currentColor" }) }) }),
18543
18714
  /* @__PURE__ */ jsxs74("div", { children: [
18544
18715
  children,
18545
- /* @__PURE__ */ jsx108("span", { css: { visibility: autoEllipsis && status === "inProgress" && !error ? "visible" : "hidden" }, children: "..." })
18716
+ /* @__PURE__ */ jsx109("span", { css: { visibility: autoEllipsis && status === "inProgress" && !error ? "visible" : "hidden" }, children: "..." })
18546
18717
  ] })
18547
18718
  ] });
18548
18719
  };
18549
18720
 
18550
18721
  // src/components/SegmentedControl/SegmentedControl.tsx
18551
- import { css as css87 } from "@emotion/react";
18722
+ import { css as css88 } from "@emotion/react";
18552
18723
  import { CgCheck as CgCheck4 } from "@react-icons/all-files/cg/CgCheck";
18553
18724
  import { useCallback as useCallback6, useMemo as useMemo5 } from "react";
18554
18725
 
18555
18726
  // src/components/SegmentedControl/SegmentedControl.styles.ts
18556
- import { css as css86 } from "@emotion/react";
18557
- var segmentedControlStyles = css86`
18727
+ import { css as css87 } from "@emotion/react";
18728
+ var segmentedControlStyles = css87`
18558
18729
  --segmented-control-rounded-value: var(--rounded-base);
18559
18730
  --segmented-control-border-width: 1px;
18560
18731
  --segmented-control-selected-color: var(--brand-secondary-3);
@@ -18573,14 +18744,14 @@ var segmentedControlStyles = css86`
18573
18744
  border-radius: calc(var(--segmented-control-rounded-value) + var(--segmented-control-border-width));
18574
18745
  font-size: var(--fs-xs);
18575
18746
  `;
18576
- var segmentedControlVerticalStyles = css86`
18747
+ var segmentedControlVerticalStyles = css87`
18577
18748
  flex-direction: column;
18578
18749
  --segmented-control-first-border-radius: var(--segmented-control-rounded-value)
18579
18750
  var(--segmented-control-rounded-value) 0 0;
18580
18751
  --segmented-control-last-border-radius: 0 0 var(--segmented-control-rounded-value)
18581
18752
  var(--segmented-control-rounded-value);
18582
18753
  `;
18583
- var segmentedControlItemStyles = css86`
18754
+ var segmentedControlItemStyles = css87`
18584
18755
  &:first-of-type label {
18585
18756
  border-radius: var(--segmented-control-first-border-radius);
18586
18757
  }
@@ -18588,10 +18759,10 @@ var segmentedControlItemStyles = css86`
18588
18759
  border-radius: var(--segmented-control-last-border-radius);
18589
18760
  }
18590
18761
  `;
18591
- var segmentedControlInputStyles = css86`
18762
+ var segmentedControlInputStyles = css87`
18592
18763
  ${accessibleHidden}
18593
18764
  `;
18594
- var segmentedControlLabelStyles = (checked, disabled) => css86`
18765
+ var segmentedControlLabelStyles = (checked, disabled) => css87`
18595
18766
  position: relative;
18596
18767
  display: flex;
18597
18768
  align-items: center;
@@ -18658,23 +18829,23 @@ var segmentedControlLabelStyles = (checked, disabled) => css86`
18658
18829
  `}
18659
18830
  }
18660
18831
  `;
18661
- var segmentedControlLabelIconOnlyStyles = css86`
18832
+ var segmentedControlLabelIconOnlyStyles = css87`
18662
18833
  padding-inline: 0.5em;
18663
18834
  `;
18664
- var segmentedControlLabelCheckStyles = css86`
18835
+ var segmentedControlLabelCheckStyles = css87`
18665
18836
  opacity: 0.5;
18666
18837
  `;
18667
- var segmentedControlLabelContentStyles = css86`
18838
+ var segmentedControlLabelContentStyles = css87`
18668
18839
  display: flex;
18669
18840
  align-items: center;
18670
18841
  justify-content: center;
18671
18842
  gap: var(--spacing-sm);
18672
18843
  height: 100%;
18673
18844
  `;
18674
- var segmentedControlLabelTextStyles = css86``;
18845
+ var segmentedControlLabelTextStyles = css87``;
18675
18846
 
18676
18847
  // src/components/SegmentedControl/SegmentedControl.tsx
18677
- import { jsx as jsx109, jsxs as jsxs75 } from "@emotion/react/jsx-runtime";
18848
+ import { jsx as jsx110, jsxs as jsxs75 } from "@emotion/react/jsx-runtime";
18678
18849
  var SegmentedControl = ({
18679
18850
  name,
18680
18851
  options,
@@ -18696,16 +18867,16 @@ var SegmentedControl = ({
18696
18867
  );
18697
18868
  const sizeStyles = useMemo5(() => {
18698
18869
  const map = {
18699
- sm: css87({ height: "calc(24px - 2px)", fontSize: "var(--fs-xs)" }),
18700
- md: css87({ height: "calc(32px - 2px)", fontSize: "var(--fs-sm)" }),
18701
- lg: css87({ height: "calc(40px - 2px)", fontSize: "var(--fs-base)" })
18870
+ sm: css88({ height: "calc(24px - 2px)", fontSize: "var(--fs-xs)" }),
18871
+ md: css88({ height: "calc(32px - 2px)", fontSize: "var(--fs-sm)" }),
18872
+ lg: css88({ height: "calc(40px - 2px)", fontSize: "var(--fs-base)" })
18702
18873
  };
18703
18874
  return map[size];
18704
18875
  }, [size]);
18705
18876
  const isIconOnly = useMemo5(() => {
18706
18877
  return options.every((option) => option.icon && !option.label);
18707
18878
  }, [options]);
18708
- return /* @__PURE__ */ jsx109(
18879
+ return /* @__PURE__ */ jsx110(
18709
18880
  "div",
18710
18881
  {
18711
18882
  css: [segmentedControlStyles, orientation === "vertical" ? segmentedControlVerticalStyles : void 0],
@@ -18713,11 +18884,11 @@ var SegmentedControl = ({
18713
18884
  children: options.map((option, index) => {
18714
18885
  const text = option.label ? option.label : option.icon ? null : String(option.value);
18715
18886
  const isDisabled = disabled || option.disabled;
18716
- return /* @__PURE__ */ jsx109(
18887
+ return /* @__PURE__ */ jsx110(
18717
18888
  Tooltip,
18718
18889
  {
18719
18890
  title: isDisabled || !option.tooltip ? "" : option.tooltip,
18720
- children: /* @__PURE__ */ jsx109("div", { css: segmentedControlItemStyles, "data-testid": "container-segmented-control", children: /* @__PURE__ */ jsxs75(
18891
+ children: /* @__PURE__ */ jsx110("div", { css: segmentedControlItemStyles, "data-testid": "container-segmented-control", children: /* @__PURE__ */ jsxs75(
18721
18892
  "label",
18722
18893
  {
18723
18894
  css: [
@@ -18726,7 +18897,7 @@ var SegmentedControl = ({
18726
18897
  isIconOnly ? segmentedControlLabelIconOnlyStyles : void 0
18727
18898
  ],
18728
18899
  children: [
18729
- /* @__PURE__ */ jsx109(
18900
+ /* @__PURE__ */ jsx110(
18730
18901
  "input",
18731
18902
  {
18732
18903
  css: segmentedControlInputStyles,
@@ -18738,10 +18909,10 @@ var SegmentedControl = ({
18738
18909
  disabled: isDisabled
18739
18910
  }
18740
18911
  ),
18741
- option.value !== value || noCheckmark ? null : /* @__PURE__ */ jsx109(CgCheck4, { css: segmentedControlLabelCheckStyles, "aria-label": "Selected", size: "1.5em" }),
18912
+ option.value !== value || noCheckmark ? null : /* @__PURE__ */ jsx110(CgCheck4, { css: segmentedControlLabelCheckStyles, "aria-label": "Selected", size: "1.5em" }),
18742
18913
  /* @__PURE__ */ jsxs75("span", { css: segmentedControlLabelContentStyles, children: [
18743
- !option.icon ? null : /* @__PURE__ */ jsx109(Icon, { icon: option.icon, size: "1.5em", iconColor: "currentColor" }),
18744
- !text ? null : /* @__PURE__ */ jsx109("span", { css: segmentedControlLabelTextStyles, children: text })
18914
+ !option.icon ? null : /* @__PURE__ */ jsx110(Icon, { icon: option.icon, size: "1.5em", iconColor: "currentColor" }),
18915
+ !text ? null : /* @__PURE__ */ jsx110("span", { css: segmentedControlLabelTextStyles, children: text })
18745
18916
  ] })
18746
18917
  ]
18747
18918
  }
@@ -18755,18 +18926,18 @@ var SegmentedControl = ({
18755
18926
  };
18756
18927
 
18757
18928
  // src/components/Skeleton/Skeleton.styles.ts
18758
- import { css as css88, keyframes as keyframes4 } from "@emotion/react";
18929
+ import { css as css89, keyframes as keyframes4 } from "@emotion/react";
18759
18930
  var lightFadingOut = keyframes4`
18760
18931
  from { opacity: 0.1; }
18761
18932
  to { opacity: 0.025; }
18762
18933
  `;
18763
- var skeletonStyles = css88`
18934
+ var skeletonStyles = css89`
18764
18935
  animation: ${lightFadingOut} 1s ease-out infinite alternate;
18765
18936
  background-color: var(--gray-900);
18766
18937
  `;
18767
18938
 
18768
18939
  // src/components/Skeleton/Skeleton.tsx
18769
- import { jsx as jsx110 } from "@emotion/react/jsx-runtime";
18940
+ import { jsx as jsx111 } from "@emotion/react/jsx-runtime";
18770
18941
  var Skeleton = ({
18771
18942
  width = "100%",
18772
18943
  height = "1.25rem",
@@ -18774,7 +18945,7 @@ var Skeleton = ({
18774
18945
  circle = false,
18775
18946
  children,
18776
18947
  ...otherProps
18777
- }) => /* @__PURE__ */ jsx110(
18948
+ }) => /* @__PURE__ */ jsx111(
18778
18949
  "div",
18779
18950
  {
18780
18951
  css: [
@@ -18797,8 +18968,8 @@ var Skeleton = ({
18797
18968
  import * as React23 from "react";
18798
18969
 
18799
18970
  // src/components/Switch/Switch.styles.ts
18800
- import { css as css89 } from "@emotion/react";
18801
- var SwitchInputContainer = css89`
18971
+ import { css as css90 } from "@emotion/react";
18972
+ var SwitchInputContainer = css90`
18802
18973
  cursor: pointer;
18803
18974
  display: inline-block;
18804
18975
  position: relative;
@@ -18807,7 +18978,7 @@ var SwitchInputContainer = css89`
18807
18978
  vertical-align: middle;
18808
18979
  user-select: none;
18809
18980
  `;
18810
- var SwitchInput = css89`
18981
+ var SwitchInput = css90`
18811
18982
  appearance: none;
18812
18983
  border-radius: var(--rounded-full);
18813
18984
  background-color: var(--white);
@@ -18845,7 +19016,7 @@ var SwitchInput = css89`
18845
19016
  cursor: not-allowed;
18846
19017
  }
18847
19018
  `;
18848
- var SwitchInputDisabled = css89`
19019
+ var SwitchInputDisabled = css90`
18849
19020
  opacity: var(--opacity-50);
18850
19021
  cursor: not-allowed;
18851
19022
 
@@ -18853,7 +19024,7 @@ var SwitchInputDisabled = css89`
18853
19024
  cursor: not-allowed;
18854
19025
  }
18855
19026
  `;
18856
- var SwitchInputLabel = css89`
19027
+ var SwitchInputLabel = css90`
18857
19028
  align-items: center;
18858
19029
  color: var(--brand-secondary-1);
18859
19030
  display: inline-flex;
@@ -18875,14 +19046,14 @@ var SwitchInputLabel = css89`
18875
19046
  top: 0;
18876
19047
  }
18877
19048
  `;
18878
- var SwitchText = css89`
19049
+ var SwitchText = css90`
18879
19050
  color: var(--gray-500);
18880
19051
  font-size: var(--fs-sm);
18881
19052
  padding-inline: var(--spacing-2xl) 0;
18882
19053
  `;
18883
19054
 
18884
19055
  // src/components/Switch/Switch.tsx
18885
- import { Fragment as Fragment20, jsx as jsx111, jsxs as jsxs76 } from "@emotion/react/jsx-runtime";
19056
+ import { Fragment as Fragment20, jsx as jsx112, jsxs as jsxs76 } from "@emotion/react/jsx-runtime";
18886
19057
  var Switch = React23.forwardRef(
18887
19058
  ({ label, infoText, toggleText, children, ...inputProps }, ref) => {
18888
19059
  let additionalText = infoText;
@@ -18891,10 +19062,10 @@ var Switch = React23.forwardRef(
18891
19062
  }
18892
19063
  return /* @__PURE__ */ jsxs76(Fragment20, { children: [
18893
19064
  /* @__PURE__ */ jsxs76("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
18894
- /* @__PURE__ */ jsx111("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
18895
- /* @__PURE__ */ jsx111("span", { css: SwitchInputLabel, children: label })
19065
+ /* @__PURE__ */ jsx112("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
19066
+ /* @__PURE__ */ jsx112("span", { css: SwitchInputLabel, children: label })
18896
19067
  ] }),
18897
- additionalText ? /* @__PURE__ */ jsx111("p", { css: SwitchText, children: additionalText }) : null,
19068
+ additionalText ? /* @__PURE__ */ jsx112("p", { css: SwitchText, children: additionalText }) : null,
18898
19069
  children
18899
19070
  ] });
18900
19071
  }
@@ -18904,8 +19075,8 @@ var Switch = React23.forwardRef(
18904
19075
  import * as React24 from "react";
18905
19076
 
18906
19077
  // src/components/Table/Table.styles.ts
18907
- import { css as css90 } from "@emotion/react";
18908
- var table = ({ cellPadding = "var(--spacing-base) var(--spacing-md)" }) => css90`
19078
+ import { css as css91 } from "@emotion/react";
19079
+ var table = ({ cellPadding = "var(--spacing-base) var(--spacing-md)" }) => css91`
18909
19080
  border-bottom: 1px solid var(--gray-400);
18910
19081
  border-collapse: collapse;
18911
19082
  min-width: 100%;
@@ -18916,55 +19087,55 @@ var table = ({ cellPadding = "var(--spacing-base) var(--spacing-md)" }) => css90
18916
19087
  padding: ${cellPadding};
18917
19088
  }
18918
19089
  `;
18919
- var tableHead = css90`
19090
+ var tableHead = css91`
18920
19091
  background: var(--gray-100);
18921
19092
  color: var(--brand-secondary-1);
18922
19093
  text-align: left;
18923
19094
  `;
18924
- var tableRow = css90`
19095
+ var tableRow = css91`
18925
19096
  border-bottom: 1px solid var(--gray-200);
18926
19097
  `;
18927
- var tableCellHead = css90`
19098
+ var tableCellHead = css91`
18928
19099
  font-size: var(--fs-sm);
18929
19100
  text-transform: uppercase;
18930
19101
  font-weight: var(--fw-bold);
18931
19102
  `;
18932
19103
 
18933
19104
  // src/components/Table/Table.tsx
18934
- import { jsx as jsx112 } from "@emotion/react/jsx-runtime";
19105
+ import { jsx as jsx113 } from "@emotion/react/jsx-runtime";
18935
19106
  var Table = React24.forwardRef(
18936
19107
  ({ children, cellPadding, ...otherProps }, ref) => {
18937
- return /* @__PURE__ */ jsx112("table", { ref, css: table({ cellPadding }), ...otherProps, children });
19108
+ return /* @__PURE__ */ jsx113("table", { ref, css: table({ cellPadding }), ...otherProps, children });
18938
19109
  }
18939
19110
  );
18940
19111
  var TableHead = React24.forwardRef(
18941
19112
  ({ children, ...otherProps }, ref) => {
18942
- return /* @__PURE__ */ jsx112("thead", { ref, css: tableHead, ...otherProps, children });
19113
+ return /* @__PURE__ */ jsx113("thead", { ref, css: tableHead, ...otherProps, children });
18943
19114
  }
18944
19115
  );
18945
19116
  var TableBody = React24.forwardRef(
18946
19117
  ({ children, ...otherProps }, ref) => {
18947
- return /* @__PURE__ */ jsx112("tbody", { ref, ...otherProps, children });
19118
+ return /* @__PURE__ */ jsx113("tbody", { ref, ...otherProps, children });
18948
19119
  }
18949
19120
  );
18950
19121
  var TableFoot = React24.forwardRef(
18951
19122
  ({ children, ...otherProps }, ref) => {
18952
- return /* @__PURE__ */ jsx112("tfoot", { ref, ...otherProps, children });
19123
+ return /* @__PURE__ */ jsx113("tfoot", { ref, ...otherProps, children });
18953
19124
  }
18954
19125
  );
18955
19126
  var TableRow = React24.forwardRef(
18956
19127
  ({ children, ...otherProps }, ref) => {
18957
- return /* @__PURE__ */ jsx112("tr", { ref, css: tableRow, ...otherProps, children });
19128
+ return /* @__PURE__ */ jsx113("tr", { ref, css: tableRow, ...otherProps, children });
18958
19129
  }
18959
19130
  );
18960
19131
  var TableCellHead = React24.forwardRef(
18961
19132
  ({ children, ...otherProps }, ref) => {
18962
- return /* @__PURE__ */ jsx112("th", { ref, css: tableCellHead, ...otherProps, children });
19133
+ return /* @__PURE__ */ jsx113("th", { ref, css: tableCellHead, ...otherProps, children });
18963
19134
  }
18964
19135
  );
18965
19136
  var TableCellData = React24.forwardRef(
18966
19137
  ({ children, ...otherProps }, ref) => {
18967
- return /* @__PURE__ */ jsx112("td", { ref, ...otherProps, children });
19138
+ return /* @__PURE__ */ jsx113("td", { ref, ...otherProps, children });
18968
19139
  }
18969
19140
  );
18970
19141
 
@@ -18978,8 +19149,8 @@ import {
18978
19149
  } from "reakit/Tab";
18979
19150
 
18980
19151
  // src/components/Tabs/Tabs.styles.ts
18981
- import { css as css91 } from "@emotion/react";
18982
- var tabButtonStyles = css91`
19152
+ import { css as css92 } from "@emotion/react";
19153
+ var tabButtonStyles = css92`
18983
19154
  align-items: center;
18984
19155
  border: 0;
18985
19156
  height: 2.5rem;
@@ -18996,14 +19167,14 @@ var tabButtonStyles = css91`
18996
19167
  box-shadow: inset 0 -2px 0 var(--brand-secondary-3);
18997
19168
  }
18998
19169
  `;
18999
- var tabButtonGroupStyles = css91`
19170
+ var tabButtonGroupStyles = css92`
19000
19171
  display: flex;
19001
19172
  gap: var(--spacing-base);
19002
19173
  border-bottom: 1px solid var(--gray-300);
19003
19174
  `;
19004
19175
 
19005
19176
  // src/components/Tabs/Tabs.tsx
19006
- import { jsx as jsx113 } from "@emotion/react/jsx-runtime";
19177
+ import { jsx as jsx114 } from "@emotion/react/jsx-runtime";
19007
19178
  var CurrentTabContext = createContext6(null);
19008
19179
  var useCurrentTab = () => {
19009
19180
  const context = useContext7(CurrentTabContext);
@@ -19032,24 +19203,24 @@ var Tabs = ({ children, onSelectedIdChange, useHashForState, selectedId, ...prop
19032
19203
  tab.setSelectedId(selected);
19033
19204
  }
19034
19205
  }, [selected]);
19035
- return /* @__PURE__ */ jsx113(CurrentTabContext.Provider, { value: tab, children });
19206
+ return /* @__PURE__ */ jsx114(CurrentTabContext.Provider, { value: tab, children });
19036
19207
  };
19037
19208
  var TabButtonGroup = ({ children, ...props }) => {
19038
19209
  const currentTab = useCurrentTab();
19039
- return /* @__PURE__ */ jsx113(ReakitTabList, { ...props, ...currentTab, css: tabButtonGroupStyles, children });
19210
+ return /* @__PURE__ */ jsx114(ReakitTabList, { ...props, ...currentTab, css: tabButtonGroupStyles, children });
19040
19211
  };
19041
19212
  var TabButton = ({ children, id, ...props }) => {
19042
19213
  const currentTab = useCurrentTab();
19043
- return /* @__PURE__ */ jsx113(ReakitTab, { type: "button", id, ...currentTab, ...props, css: tabButtonStyles, children });
19214
+ return /* @__PURE__ */ jsx114(ReakitTab, { type: "button", id, ...currentTab, ...props, css: tabButtonStyles, children });
19044
19215
  };
19045
19216
  var TabContent = ({ children, ...props }) => {
19046
19217
  const currentTab = useCurrentTab();
19047
- return /* @__PURE__ */ jsx113(ReakitTabPanel, { ...props, ...currentTab, children });
19218
+ return /* @__PURE__ */ jsx114(ReakitTabPanel, { ...props, ...currentTab, children });
19048
19219
  };
19049
19220
 
19050
19221
  // src/components/Validation/StatusBullet.styles.ts
19051
- import { css as css92 } from "@emotion/react";
19052
- var StatusBulletContainer = css92`
19222
+ import { css as css93 } from "@emotion/react";
19223
+ var StatusBulletContainer = css93`
19053
19224
  align-items: center;
19054
19225
  align-self: center;
19055
19226
  color: var(--gray-500);
@@ -19066,33 +19237,33 @@ var StatusBulletContainer = css92`
19066
19237
  display: block;
19067
19238
  }
19068
19239
  `;
19069
- var StatusBulletBase = css92`
19240
+ var StatusBulletBase = css93`
19070
19241
  font-size: var(--fs-sm);
19071
19242
  &:before {
19072
19243
  width: var(--fs-xs);
19073
19244
  height: var(--fs-xs);
19074
19245
  }
19075
19246
  `;
19076
- var StatusBulletSmall = css92`
19247
+ var StatusBulletSmall = css93`
19077
19248
  font-size: var(--fs-xs);
19078
19249
  &:before {
19079
19250
  width: var(--fs-xxs);
19080
19251
  height: var(--fs-xxs);
19081
19252
  }
19082
19253
  `;
19083
- var StatusDraft = css92`
19254
+ var StatusDraft = css93`
19084
19255
  &:before {
19085
19256
  background: var(--white);
19086
19257
  box-shadow: inset 0 0 0 0.125rem var(--primary-action-default);
19087
19258
  }
19088
19259
  `;
19089
- var StatusModified = css92`
19260
+ var StatusModified = css93`
19090
19261
  &:before {
19091
19262
  background: linear-gradient(to right, var(--white) 50%, var(--primary-action-default) 50% 100%);
19092
19263
  box-shadow: inset 0 0 0 0.125rem var(--primary-action-default);
19093
19264
  }
19094
19265
  `;
19095
- var StatusError = css92`
19266
+ var StatusError = css93`
19096
19267
  color: var(--error);
19097
19268
  &:before {
19098
19269
  /* TODO: replace this with an svg icon */
@@ -19105,19 +19276,19 @@ var StatusError = css92`
19105
19276
  );
19106
19277
  }
19107
19278
  `;
19108
- var StatusPublished = css92`
19279
+ var StatusPublished = css93`
19109
19280
  &:before {
19110
19281
  background: var(--primary-action-default);
19111
19282
  }
19112
19283
  `;
19113
- var StatusOrphan = css92`
19284
+ var StatusOrphan = css93`
19114
19285
  &:before {
19115
19286
  background: var(--brand-secondary-5);
19116
19287
  }
19117
19288
  `;
19118
19289
 
19119
19290
  // src/components/Validation/StatusBullet.tsx
19120
- import { jsx as jsx114 } from "@emotion/react/jsx-runtime";
19291
+ import { jsx as jsx115 } from "@emotion/react/jsx-runtime";
19121
19292
  var StatusBullet = ({
19122
19293
  status,
19123
19294
  hideText = false,
@@ -19135,7 +19306,7 @@ var StatusBullet = ({
19135
19306
  Previous: StatusDraft
19136
19307
  };
19137
19308
  const statusSize = size === "base" ? StatusBulletBase : StatusBulletSmall;
19138
- return /* @__PURE__ */ jsx114(
19309
+ return /* @__PURE__ */ jsx115(
19139
19310
  "span",
19140
19311
  {
19141
19312
  role: "status",
@@ -19250,6 +19421,7 @@ export {
19250
19421
  ParameterToggle,
19251
19422
  ParameterToggleInner,
19252
19423
  Popover2 as Popover,
19424
+ ProgressBar,
19253
19425
  ProgressList,
19254
19426
  ProgressListItem,
19255
19427
  ResolveIcon,
@@ -19288,6 +19460,7 @@ export {
19288
19460
  VerticalRhythm,
19289
19461
  WarningMessage,
19290
19462
  accessibleHidden,
19463
+ addPathSegmentToPathname,
19291
19464
  borderTopIcon,
19292
19465
  breakpoints,
19293
19466
  button,
@@ -19316,6 +19489,8 @@ export {
19316
19489
  fadeOutBottom,
19317
19490
  fullWidthScreenIcon,
19318
19491
  getDrawerAttributes,
19492
+ getParentPath,
19493
+ getPathSegment,
19319
19494
  growSubtle,
19320
19495
  imageTextIcon,
19321
19496
  infoFilledIcon,
@@ -19323,6 +19498,8 @@ export {
19323
19498
  inputError,
19324
19499
  inputSelect,
19325
19500
  isMacLike,
19501
+ isSecureURL,
19502
+ isValidUrl,
19326
19503
  jsonIcon,
19327
19504
  labelText,
19328
19505
  loader_default as loaderAnimationData,