@uniformdev/design-system 18.35.1-alpha.18 → 18.35.1-alpha.22

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
@@ -220,6 +220,16 @@ var mq = (size) => `@media (min-width: ${breakpoints[size]}px)`;
220
220
  var supports = (cssProp) => `@supports (${cssProp})`;
221
221
  var cq = (size) => `@container (min-width: ${size})`;
222
222
 
223
+ // src/utils/formatDate.ts
224
+ var formatDate = (date) => {
225
+ const normalizeDate = new Date(date).toLocaleDateString(navigator.language, {
226
+ year: "numeric",
227
+ month: "short",
228
+ day: "numeric"
229
+ });
230
+ return normalizeDate;
231
+ };
232
+
223
233
  // src/utils/replaceUnderscoreInString.ts
224
234
  var replaceUnderscoreInString = (title) => (title == null ? void 0 : title.includes("_")) ? title.replaceAll("_", " ") : title;
225
235
 
@@ -10688,9 +10698,15 @@ var Menu = ({
10688
10698
  menuTrigger,
10689
10699
  placement = "auto",
10690
10700
  menuItemsContainerCssClasses,
10691
- children
10701
+ children,
10702
+ forceVisible
10692
10703
  }) => {
10693
- const menuState = useMenuState({ placement });
10704
+ const menuState = useMenuState({ placement, visible: forceVisible });
10705
+ React6.useEffect(() => {
10706
+ if (forceVisible !== void 0) {
10707
+ menuState.setVisible(forceVisible);
10708
+ }
10709
+ });
10694
10710
  return /* @__PURE__ */ jsxs11(MenuContext.Provider, { value: menuState, children: [
10695
10711
  /* @__PURE__ */ jsx21(MenuButton, { ...menuState, ref: menuTrigger.ref, ...menuTrigger.props, children: (triggerProps) => React6.cloneElement(menuTrigger, triggerProps) }),
10696
10712
  /* @__PURE__ */ jsx21(Portal, { children: /* @__PURE__ */ jsx21(
@@ -11252,8 +11268,8 @@ var Callout = ({ type = "info", compact = false, title, children, className }) =
11252
11268
  children: /* @__PURE__ */ jsxs15("div", { css: calloutInner, children: [
11253
11269
  compact ? null : /* @__PURE__ */ jsx27("div", { css: calloutIconWrap, children: /* @__PURE__ */ jsx27(Icon2, { css: [calloutIcon, calloutTypeData.iconColor] }) }),
11254
11270
  /* @__PURE__ */ jsxs15("div", { css: [calloutBody, compact ? calloutBodyCompact : void 0], children: [
11255
- title ? /* @__PURE__ */ jsx27("div", { css: [calloutTitle], children: title }) : null,
11256
- children ? /* @__PURE__ */ jsx27("div", { css: [calloutTypeData.descriptionColor], children }) : null
11271
+ title ? /* @__PURE__ */ jsx27("div", { css: [calloutTitle], "data-test-id": "callout-title", children: title }) : null,
11272
+ children ? /* @__PURE__ */ jsx27("div", { css: [calloutTypeData.descriptionColor], "data-test-id": "callout-description", children }) : null
11257
11273
  ] })
11258
11274
  ] })
11259
11275
  }
@@ -11382,40 +11398,9 @@ var CardContainer2 = ({
11382
11398
  // src/components/Card/LoadingCardSkeleton.tsx
11383
11399
  import { CgMoreAlt as CgMoreAlt2 } from "react-icons/cg";
11384
11400
 
11385
- // src/components/Card/LoadingCardSkeleton.styles.ts
11386
- import { css as css27 } from "@emotion/react";
11387
- var LoadingCardSkeleton = css27`
11388
- animation: ${skeletonLoading} 1s linear infinite alternate;
11389
- color: var(--gray-400);
11390
- border-radius: var(--rounded-base);
11391
- padding: var(--spacing-md);
11392
- min-height: 160px;
11393
- position: relative;
11394
- `;
11395
- var LoadingText = css27`
11396
- animation: ${fadeIn} 1s linear infinite alternate;
11397
- border-radius: var(--rounded-base);
11398
- background: var(--gray-300);
11399
- display: block;
11400
- `;
11401
- var LoadingTitle = css27`
11402
- width: clamp(200px, 100vw, 60%);
11403
- height: var(--spacing-md);
11404
- `;
11405
- var LoadingTimeStamp = css27`
11406
- width: clamp(200px, 100vw, 30%);
11407
- height: var(--spacing-sm);
11408
- `;
11409
- var LoadingMenuIcon = css27`
11410
- animation: ${fadeIn} 1s linear infinite alternate;
11411
- position: absolute;
11412
- top: var(--spacing-md);
11413
- right: var(--spacing-md);
11414
- `;
11415
-
11416
11401
  // src/components/Layout/styles/Container.styles.ts
11417
- import { css as css28 } from "@emotion/react";
11418
- var Container = ({ backgroundColor, border, rounded, padding, margin }) => css28`
11402
+ import { css as css27 } from "@emotion/react";
11403
+ var Container = ({ backgroundColor, border, rounded, padding, margin }) => css27`
11419
11404
  background: var(--${backgroundColor});
11420
11405
  ${border ? "border: 1px solid var(--gray-300)" : void 0};
11421
11406
  ${rounded ? `border-radius: var(--${rounded})` : void 0};
@@ -11453,11 +11438,11 @@ var Container2 = ({
11453
11438
  };
11454
11439
 
11455
11440
  // src/components/Layout/styles/TwoColumnLayout.styles.ts
11456
- import { css as css29 } from "@emotion/react";
11457
- var TwoColumnLayoutContainer = (bgColor) => css29`
11441
+ import { css as css28 } from "@emotion/react";
11442
+ var TwoColumnLayoutContainer = (bgColor) => css28`
11458
11443
  background: ${bgColor};
11459
11444
  `;
11460
- var TwoColumnLayoutInner = (invertLayout) => css29`
11445
+ var TwoColumnLayoutInner = (invertLayout) => css28`
11461
11446
  display: grid;
11462
11447
  max-width: var(--site-width);
11463
11448
  margin-inline: auto;
@@ -11473,10 +11458,11 @@ var TwoColumnLayoutInner = (invertLayout) => css29`
11473
11458
  }`}
11474
11459
  }
11475
11460
  `;
11476
- var TwoColumnLayoutMain = css29``;
11477
- var TwoColumnLayoutSupporting = css29`
11461
+ var TwoColumnLayoutMain = css28``;
11462
+ var TwoColumnLayoutSupporting = css28`
11478
11463
  display: flex;
11479
11464
  flex-direction: column;
11465
+ gap: var(--spacing-md);
11480
11466
  `;
11481
11467
 
11482
11468
  // src/components/Layout/TwoColumnLayout.tsx
@@ -11494,8 +11480,8 @@ var TwoColumnLayout = ({
11494
11480
  };
11495
11481
 
11496
11482
  // src/components/Layout/styles/VerticalRhythm.styles.ts
11497
- import { css as css30 } from "@emotion/react";
11498
- var VerticalRhythmContainer = (size) => css30`
11483
+ import { css as css29 } from "@emotion/react";
11484
+ var VerticalRhythmContainer = (size) => css29`
11499
11485
  display: flex;
11500
11486
  flex-direction: column;
11501
11487
  gap: var(--spacing-${size});
@@ -11508,6 +11494,37 @@ var VerticalRhythm = ({ tag = "div", gap = "base", children, ...props }) => {
11508
11494
  return /* @__PURE__ */ jsx32(Tag, { css: VerticalRhythmContainer(gap), ...props, children });
11509
11495
  };
11510
11496
 
11497
+ // src/components/Card/LoadingCardSkeleton.styles.ts
11498
+ import { css as css30 } from "@emotion/react";
11499
+ var LoadingCardSkeleton = css30`
11500
+ animation: ${skeletonLoading} 1s linear infinite alternate;
11501
+ color: var(--gray-400);
11502
+ border-radius: var(--rounded-base);
11503
+ padding: var(--spacing-md);
11504
+ min-height: 160px;
11505
+ position: relative;
11506
+ `;
11507
+ var LoadingText = css30`
11508
+ animation: ${fadeIn} 1s linear infinite alternate;
11509
+ border-radius: var(--rounded-base);
11510
+ background: var(--gray-300);
11511
+ display: block;
11512
+ `;
11513
+ var LoadingTitle = css30`
11514
+ width: clamp(200px, 100vw, 60%);
11515
+ height: var(--spacing-md);
11516
+ `;
11517
+ var LoadingTimeStamp = css30`
11518
+ width: clamp(200px, 100vw, 30%);
11519
+ height: var(--spacing-sm);
11520
+ `;
11521
+ var LoadingMenuIcon = css30`
11522
+ animation: ${fadeIn} 1s linear infinite alternate;
11523
+ position: absolute;
11524
+ top: var(--spacing-md);
11525
+ right: var(--spacing-md);
11526
+ `;
11527
+
11511
11528
  // src/components/Card/LoadingCardSkeleton.tsx
11512
11529
  import { jsx as jsx33, jsxs as jsxs18 } from "@emotion/react/jsx-runtime";
11513
11530
  var LoadingCardSkeleton2 = () => {
@@ -11520,10 +11537,11 @@ var LoadingCardSkeleton2 = () => {
11520
11537
 
11521
11538
  // src/components/Counter/Counter.styles.ts
11522
11539
  import { css as css31 } from "@emotion/react";
11523
- var counterContainer = css31`
11540
+ var counterContainer = (bgColor) => css31`
11524
11541
  align-items: center;
11525
11542
  border-radius: var(--rounded-full);
11526
11543
  border: 1px solid var(--gray-300);
11544
+ background: ${bgColor};
11527
11545
  color: var(--brand-secondary-1);
11528
11546
  display: inline-flex;
11529
11547
  font-size: var(--fs-xxs);
@@ -11553,7 +11571,7 @@ var counterIcon = css31`
11553
11571
 
11554
11572
  // src/components/Counter/Counter.tsx
11555
11573
  import { jsx as jsx34, jsxs as jsxs19 } from "@emotion/react/jsx-runtime";
11556
- var Counter = ({ count }) => {
11574
+ var Counter = ({ count, bgColor = "transparent" }) => {
11557
11575
  if (typeof count === "undefined") {
11558
11576
  return null;
11559
11577
  }
@@ -11562,7 +11580,7 @@ var Counter = ({ count }) => {
11562
11580
  /* @__PURE__ */ jsx34(Icon, { icon: "math-plus", iconColor: "currentColor", size: "0.5rem", css: counterIcon })
11563
11581
  ] }) : count;
11564
11582
  const formatCount = count === 0 ? /* @__PURE__ */ jsx34("span", { css: counterZeroValue, title: `${count}` }) : isTripleDigits;
11565
- return /* @__PURE__ */ jsx34("div", { css: counterContainer, children: formatCount });
11583
+ return /* @__PURE__ */ jsx34("div", { css: counterContainer(bgColor), children: formatCount });
11566
11584
  };
11567
11585
 
11568
11586
  // src/components/DashedBox/DashedBox.styles.ts
@@ -11688,7 +11706,7 @@ var Details = ({ summary: summary2, children, isOpenByDefault = false, ...props
11688
11706
  };
11689
11707
 
11690
11708
  // src/components/Drawer/Drawer.tsx
11691
- import React11, { useEffect as useEffect5, useMemo, useRef as useRef2 } from "react";
11709
+ import React11, { useEffect as useEffect6, useMemo, useRef as useRef2 } from "react";
11692
11710
  import { CgChevronRight } from "react-icons/cg";
11693
11711
 
11694
11712
  // src/components/Drawer/Drawer.styles.ts
@@ -11919,7 +11937,8 @@ var DrawerInner = ({
11919
11937
  children,
11920
11938
  header,
11921
11939
  instanceKey,
11922
- onRequestClose
11940
+ onRequestClose,
11941
+ testId = "side-dialog"
11923
11942
  }) => {
11924
11943
  const { registerDrawer, unregisterDrawer } = useDrawer();
11925
11944
  const closeButtonRef = useRef2(null);
@@ -11934,7 +11953,7 @@ var DrawerInner = ({
11934
11953
  tabIndex: -1,
11935
11954
  "aria-labelledby": headerId,
11936
11955
  css: drawerStyles(bgColor),
11937
- "data-test-id": "side-dialog",
11956
+ "data-test-id": testId,
11938
11957
  children: [
11939
11958
  /* @__PURE__ */ jsx39(
11940
11959
  Button,
@@ -11953,8 +11972,8 @@ var DrawerInner = ({
11953
11972
  ]
11954
11973
  }
11955
11974
  );
11956
- }, [children, header, id, stackId, bgColor, onRequestClose, ref]);
11957
- useEffect5(() => {
11975
+ }, [children, header, id, stackId, bgColor, onRequestClose, ref, testId]);
11976
+ useEffect6(() => {
11958
11977
  registerDrawer({
11959
11978
  drawer: {
11960
11979
  id,
@@ -11971,7 +11990,7 @@ var DrawerInner = ({
11971
11990
  }
11972
11991
  });
11973
11992
  }, [component, instanceKey, registerDrawer]);
11974
- useEffect5(() => {
11993
+ useEffect6(() => {
11975
11994
  return () => unregisterDrawer({ id, stackId, instanceKey });
11976
11995
  }, [id, stackId, instanceKey, unregisterDrawer]);
11977
11996
  return null;
@@ -12598,7 +12617,7 @@ var InputKeywordSearch = ({
12598
12617
  placeholder,
12599
12618
  showLabel: false,
12600
12619
  value,
12601
- icon: value ? /* @__PURE__ */ jsx50("button", { css: inputSearchCloseBtn, onClick: onClear, children: /* @__PURE__ */ jsx50(Icon, { icon: "close", iconColor: "red", size: "1rem" }) }) : /* @__PURE__ */ jsx50(Icon, { icon: "search", iconColor: "gray", size: "1rem" }),
12620
+ icon: value ? /* @__PURE__ */ jsx50("button", { css: inputSearchCloseBtn, onClick: onClear, type: "button", children: /* @__PURE__ */ jsx50(Icon, { icon: "close", iconColor: "red", size: "1rem" }) }) : /* @__PURE__ */ jsx50(Icon, { icon: "search", iconColor: "gray", size: "1rem" }),
12602
12621
  onChange: handleSearchTextChanged,
12603
12622
  onKeyPress: preventSubmitOnField,
12604
12623
  disabled,
@@ -12672,30 +12691,44 @@ var InputSelect = ({
12672
12691
  };
12673
12692
 
12674
12693
  // src/components/Input/InputToggle.tsx
12694
+ import * as React14 from "react";
12675
12695
  import { jsx as jsx52, jsxs as jsxs31 } from "@emotion/react/jsx-runtime";
12676
- var InputToggle = ({
12677
- label,
12678
- type,
12679
- disabled,
12680
- checked,
12681
- name,
12682
- caption,
12683
- errorMessage,
12684
- warningMessage,
12685
- testId,
12686
- fontWeight = "medium",
12687
- ...props
12688
- }) => {
12689
- return /* @__PURE__ */ jsxs31(Label, { css: [inputToggleLabel, disabled ? inputDisabled : void 0], "data-test-id": testId, children: [
12690
- /* @__PURE__ */ jsx52("input", { type, css: toggleInput, checked, name, disabled, ...props }),
12691
- /* @__PURE__ */ jsx52("span", { css: inlineLabel(fontWeight), dangerouslySetInnerHTML: { __html: label } }),
12692
- caption || errorMessage ? /* @__PURE__ */ jsxs31("span", { css: inputToggleMessageContainer, children: [
12693
- caption ? /* @__PURE__ */ jsx52(Caption, { children: caption }) : null,
12694
- errorMessage ? /* @__PURE__ */ jsx52(ErrorMessage, { message: errorMessage }) : null,
12695
- warningMessage && !errorMessage ? /* @__PURE__ */ jsx52(WarningMessage, { message: warningMessage }) : null
12696
- ] }) : null
12697
- ] });
12698
- };
12696
+ var InputToggle = React14.forwardRef(
12697
+ ({
12698
+ label,
12699
+ type,
12700
+ disabled,
12701
+ checked,
12702
+ name,
12703
+ caption,
12704
+ errorMessage,
12705
+ warningMessage,
12706
+ testId,
12707
+ fontWeight = "medium",
12708
+ ...props
12709
+ }, ref) => {
12710
+ return /* @__PURE__ */ jsxs31(Label, { css: [inputToggleLabel, disabled ? inputDisabled : void 0], "data-test-id": testId, children: [
12711
+ /* @__PURE__ */ jsx52(
12712
+ "input",
12713
+ {
12714
+ ref,
12715
+ type,
12716
+ css: toggleInput,
12717
+ checked,
12718
+ name,
12719
+ disabled,
12720
+ ...props
12721
+ }
12722
+ ),
12723
+ /* @__PURE__ */ jsx52("span", { css: inlineLabel(fontWeight), dangerouslySetInnerHTML: { __html: label } }),
12724
+ caption || errorMessage ? /* @__PURE__ */ jsxs31("span", { css: inputToggleMessageContainer, children: [
12725
+ caption ? /* @__PURE__ */ jsx52(Caption, { children: caption }) : null,
12726
+ errorMessage ? /* @__PURE__ */ jsx52(ErrorMessage, { message: errorMessage }) : null,
12727
+ warningMessage && !errorMessage ? /* @__PURE__ */ jsx52(WarningMessage, { message: warningMessage }) : null
12728
+ ] }) : null
12729
+ ] });
12730
+ }
12731
+ );
12699
12732
 
12700
12733
  // src/components/Input/Legend.tsx
12701
12734
  import { jsx as jsx53 } from "@emotion/react/jsx-runtime";
@@ -13093,7 +13126,7 @@ var LoadingIndicator = ({ ...props }) => {
13093
13126
  };
13094
13127
 
13095
13128
  // src/components/LoadingOverlay/LoadingOverlay.tsx
13096
- import { useCallback as useCallback2, useEffect as useEffect6, useRef as useRef4 } from "react";
13129
+ import { useCallback as useCallback2, useEffect as useEffect7, useRef as useRef4 } from "react";
13097
13130
 
13098
13131
  // src/components/LoadingOverlay/LoadingOverlay.styles.ts
13099
13132
  import { css as css50 } from "@emotion/react";
@@ -13146,7 +13179,7 @@ var LoadingOverlay = ({
13146
13179
  (_c = lottieRef.current) == null ? void 0 : _c.stop();
13147
13180
  }
13148
13181
  }, [isPaused]);
13149
- useEffect6(() => {
13182
+ useEffect7(() => {
13150
13183
  var _a, _b, _c, _d, _e, _f;
13151
13184
  if (!isPaused && ((_b = (_a = lottieRef.current) == null ? void 0 : _a.animationItem) == null ? void 0 : _b.isPaused)) {
13152
13185
  (_c = lottieRef.current) == null ? void 0 : _c.play();
@@ -13475,7 +13508,7 @@ var EditTeamIntegrationTile = ({
13475
13508
 
13476
13509
  // src/components/Tiles/IntegrationComingSoon.tsx
13477
13510
  import { css as css53 } from "@emotion/react";
13478
- import { useEffect as useEffect7, useState as useState6 } from "react";
13511
+ import { useEffect as useEffect8, useState as useState6 } from "react";
13479
13512
  import { CgHeart } from "react-icons/cg";
13480
13513
  import { jsx as jsx67, jsxs as jsxs43 } from "@emotion/react/jsx-runtime";
13481
13514
  var IntegrationComingSoon = ({
@@ -13491,7 +13524,7 @@ var IntegrationComingSoon = ({
13491
13524
  setUpVote((prev) => !prev);
13492
13525
  onUpVoteClick();
13493
13526
  };
13494
- useEffect7(() => {
13527
+ useEffect8(() => {
13495
13528
  if (upVote) {
13496
13529
  const timer = setTimeout(() => setUpVote(false), timing);
13497
13530
  return () => {
@@ -13793,8 +13826,205 @@ var IntegrationModalHeader = ({ icon, name, menu: menu2, children }) => {
13793
13826
  ] });
13794
13827
  };
13795
13828
 
13829
+ // src/components/ObjectList/ObjectCompositionListItem.tsx
13830
+ import { forwardRef as forwardRef8 } from "react";
13831
+
13832
+ // src/components/Validation/StatusBullet.styles.ts
13833
+ import { css as css58 } from "@emotion/react";
13834
+ var StatusBulletContainer = css58`
13835
+ align-items: center;
13836
+ align-self: center;
13837
+ color: var(--gray-500);
13838
+ display: inline-flex;
13839
+ font-weight: var(--fw-regular);
13840
+ gap: var(--spacing-xs);
13841
+ line-height: 1;
13842
+ position: relative;
13843
+ text-transform: lowercase;
13844
+
13845
+ &:before {
13846
+ border-radius: var(--rounded-full);
13847
+ content: '';
13848
+ display: block;
13849
+ }
13850
+ `;
13851
+ var StatusBulletBase = css58`
13852
+ font-size: var(--fs-sm);
13853
+ &:before {
13854
+ width: var(--fs-xs);
13855
+ height: var(--fs-xs);
13856
+ }
13857
+ `;
13858
+ var StatusBulletSmall = css58`
13859
+ font-size: var(--fs-xs);
13860
+ &:before {
13861
+ width: var(--fs-xxs);
13862
+ height: var(--fs-xxs);
13863
+ }
13864
+ `;
13865
+ var StatusDraft = css58`
13866
+ &:before {
13867
+ background: var(--white);
13868
+ box-shadow: inset 0 0 0 0.125rem var(--brand-primary-1);
13869
+ }
13870
+ `;
13871
+ var StatusModified = css58`
13872
+ &:before {
13873
+ background: linear-gradient(to right, var(--white) 50%, var(--brand-primary-1) 50% 100%);
13874
+ box-shadow: inset 0 0 0 0.125rem var(--brand-primary-1);
13875
+ }
13876
+ `;
13877
+ var StatusError = css58`
13878
+ color: var(--error);
13879
+ &:before {
13880
+ background: linear-gradient(120deg, var(--error) 40%, var(--white) 50%, var(--error) 60%);
13881
+ }
13882
+ `;
13883
+ var StatusPublished = css58`
13884
+ &:before {
13885
+ background: var(--brand-secondary-3);
13886
+ }
13887
+ `;
13888
+ var StatusOrphan = css58`
13889
+ &:before {
13890
+ background: var(--brand-secondary-5);
13891
+ }
13892
+ `;
13893
+
13894
+ // src/components/Validation/StatusBullet.tsx
13895
+ import { jsx as jsx73 } from "@emotion/react/jsx-runtime";
13896
+ var StatusBullet = ({
13897
+ status,
13898
+ hideText = false,
13899
+ size = "base",
13900
+ message,
13901
+ ...props
13902
+ }) => {
13903
+ const currentStateStyles = {
13904
+ Error: StatusError,
13905
+ Modified: StatusModified,
13906
+ Unsaved: StatusDraft,
13907
+ Orphan: StatusOrphan,
13908
+ Published: StatusPublished,
13909
+ Draft: StatusDraft
13910
+ };
13911
+ const statusSize = size === "base" ? StatusBulletBase : StatusBulletSmall;
13912
+ return /* @__PURE__ */ jsx73(
13913
+ "span",
13914
+ {
13915
+ role: "status",
13916
+ css: [StatusBulletContainer, currentStateStyles[status], statusSize],
13917
+ title: message != null ? message : status,
13918
+ ...props,
13919
+ children: hideText ? null : message ? message : status
13920
+ }
13921
+ );
13922
+ };
13923
+
13924
+ // src/components/ObjectList/styles/ObjectListItem.styles.ts
13925
+ import { css as css59 } from "@emotion/react";
13926
+ var ObjectListItemContainer = css59`
13927
+ border-top: 1px solid var(--gray-300);
13928
+ border-bottom: 1px solid var(--gray-300);
13929
+ display: block;
13930
+ padding: var(--spacing-base) var(--spacing-sm);
13931
+ font-size: var(--fs-sm);
13932
+ margin-bottom: -1px;
13933
+ transition: background-color var(--duration-fast) var(--timing-ease-out);
13934
+ text-decoration: none;
13935
+
13936
+ &:hover {
13937
+ background: var(--gray-50);
13938
+
13939
+ & [role='heading'] {
13940
+ text-decoration: underline;
13941
+ }
13942
+ }
13943
+ `;
13944
+ var ObjectListItemLoading = css59`
13945
+ animation: ${skeletonLoading} 1s linear infinite alternate;
13946
+ border-color: var(--white);
13947
+ display: flex;
13948
+ flex-direction: column;
13949
+ padding: var(--spacing-base) var(--spacing-sm);
13950
+ gap: var(--spacing-sm);
13951
+ `;
13952
+ var ObjectListItemLoadingText = (textLength) => css59`
13953
+ animation: ${fadeIn} 1s linear infinite alternate;
13954
+ border-radius: var(--rounded-base);
13955
+ background: var(--gray-300);
13956
+ display: block;
13957
+ width: ${textLength};
13958
+ height: var(--fs-sm);
13959
+ `;
13960
+ var ObjectListItemInlineGroup = css59`
13961
+ align-items: center;
13962
+ display: flex;
13963
+ gap: var(--spacing-sm);
13964
+ `;
13965
+ var ObjectListItemInlineHeadingGroup = css59`
13966
+ justify-content: space-between;
13967
+ `;
13968
+ var ObjectListItemTitle = css59`
13969
+ color: var(--brand-secondary-1);
13970
+ font-size: var(--fs-sm);
13971
+ `;
13972
+ var ObjectListItemSmallText = css59`
13973
+ color: var(--brand-secondary-1);
13974
+ font-size: var(--fs-xs);
13975
+ min-width: max-content;
13976
+ `;
13977
+ var ObjectListKeyText = css59`
13978
+ color: var(--gray-400);
13979
+ font-size: var(--fs-xs);
13980
+ text-transform: capitalize;
13981
+ `;
13982
+ var ObjectListValueText = css59`
13983
+ color: var(--gray-500);
13984
+ font-size: var(--fs-xs);
13985
+ text-transform: none;
13986
+ `;
13987
+
13988
+ // src/components/ObjectList/ObjectCompositionListItem.tsx
13989
+ import { jsx as jsx74, jsxs as jsxs48 } from "@emotion/react/jsx-runtime";
13990
+ var ObjectCompositionListItem = forwardRef8(
13991
+ ({
13992
+ title,
13993
+ date,
13994
+ componentName,
13995
+ icon,
13996
+ publishStatus,
13997
+ href,
13998
+ as,
13999
+ linkManagerComponent: LinkManager,
14000
+ ...props
14001
+ }, ref) => {
14002
+ return /* @__PURE__ */ jsx74(LinkManager, { ...props, as, href, ref, passHref: true, legacyBehavior: true, role: "listitem", children: /* @__PURE__ */ jsxs48("a", { css: ObjectListItemContainer, children: [
14003
+ /* @__PURE__ */ jsxs48("div", { css: [ObjectListItemInlineGroup, ObjectListItemInlineHeadingGroup], children: [
14004
+ /* @__PURE__ */ jsx74("span", { role: "heading", css: ObjectListItemTitle, children: title }),
14005
+ /* @__PURE__ */ jsx74("time", { role: "time", dateTime: `${date}`, css: ObjectListItemSmallText, children: formatDate(date) })
14006
+ ] }),
14007
+ /* @__PURE__ */ jsxs48("div", { css: ObjectListItemInlineGroup, children: [
14008
+ !icon && !componentName ? null : /* @__PURE__ */ jsxs48("div", { css: [ObjectListItemInlineGroup, ObjectListItemSmallText], children: [
14009
+ !icon ? null : /* @__PURE__ */ jsx74(Icon, { icon, size: "1rem" }),
14010
+ !componentName ? null : /* @__PURE__ */ jsx74("span", { children: componentName })
14011
+ ] }),
14012
+ !publishStatus ? null : /* @__PURE__ */ jsx74(StatusBullet, { status: publishStatus, size: "sm" })
14013
+ ] })
14014
+ ] }) });
14015
+ }
14016
+ );
14017
+
14018
+ // src/components/ObjectList/ObjectListContainer.tsx
14019
+ import * as React18 from "react";
14020
+
14021
+ // src/components/SegmentedControl/SegmentedControl.tsx
14022
+ import { css as css62 } from "@emotion/react";
14023
+ import { useCallback as useCallback3, useMemo as useMemo2 } from "react";
14024
+ import { CgCheck as CgCheck3 } from "react-icons/cg";
14025
+
13796
14026
  // src/components/Tooltip/Tooltip.tsx
13797
- import React15 from "react";
14027
+ import React16 from "react";
13798
14028
  import {
13799
14029
  Tooltip as ReakitTooltip,
13800
14030
  TooltipArrow,
@@ -13803,8 +14033,8 @@ import {
13803
14033
  } from "reakit/Tooltip";
13804
14034
 
13805
14035
  // src/components/Tooltip/Tooltip.styles.ts
13806
- import { css as css58 } from "@emotion/react";
13807
- var TooltipContainer = css58`
14036
+ import { css as css60 } from "@emotion/react";
14037
+ var TooltipContainer = css60`
13808
14038
  border: 2px solid var(--gray-300);
13809
14039
  border-radius: var(--rounded-base);
13810
14040
  padding: var(--spacing-xs) var(--spacing-sm);
@@ -13812,37 +14042,322 @@ var TooltipContainer = css58`
13812
14042
  font-size: var(--fs-xs);
13813
14043
  background: var(--white);
13814
14044
  `;
13815
- var TooltipArrowStyles = css58`
14045
+ var TooltipArrowStyles = css60`
13816
14046
  svg {
13817
14047
  fill: var(--gray-300);
13818
14048
  }
13819
14049
  `;
13820
14050
 
13821
14051
  // src/components/Tooltip/Tooltip.tsx
13822
- import { Fragment as Fragment9, jsx as jsx73, jsxs as jsxs48 } from "@emotion/react/jsx-runtime";
14052
+ import { Fragment as Fragment9, jsx as jsx75, jsxs as jsxs49 } from "@emotion/react/jsx-runtime";
13823
14053
  function Tooltip({ children, title, placement = "bottom", visible, ...props }) {
13824
14054
  const tooltip = useTooltipState({ placement });
13825
- return !title ? children : /* @__PURE__ */ jsxs48(Fragment9, { children: [
13826
- /* @__PURE__ */ jsx73(TooltipReference, { ...tooltip, ...children.props, children: (referenceProps) => React15.cloneElement(children, referenceProps) }),
13827
- /* @__PURE__ */ jsxs48(ReakitTooltip, { ...tooltip, ...props, css: TooltipContainer, visible: visible != null ? visible : tooltip.visible, children: [
13828
- /* @__PURE__ */ jsx73(TooltipArrow, { ...tooltip, css: TooltipArrowStyles }),
14055
+ return !title ? children : /* @__PURE__ */ jsxs49(Fragment9, { children: [
14056
+ /* @__PURE__ */ jsx75(TooltipReference, { ...tooltip, ...children.props, children: (referenceProps) => React16.cloneElement(children, referenceProps) }),
14057
+ /* @__PURE__ */ jsxs49(ReakitTooltip, { ...tooltip, ...props, css: TooltipContainer, visible: visible != null ? visible : tooltip.visible, children: [
14058
+ /* @__PURE__ */ jsx75(TooltipArrow, { ...tooltip, css: TooltipArrowStyles }),
13829
14059
  title
13830
14060
  ] })
13831
14061
  ] });
13832
14062
  }
13833
14063
 
13834
- // src/components/ParameterInputs/styles/ParameterBindingButton.styles.ts
13835
- import { css as css59 } from "@emotion/react";
13836
- var inputIconBtn = css59`
13837
- align-items: center;
13838
- border: none;
13839
- border-radius: var(--rounded-base);
13840
- background: none;
13841
- display: flex;
13842
- padding: var(--spacing-2xs);
13843
- transition: background var(--duration-fast) var(--timing-ease-out),
13844
- color var(--duration-fast) var(--timing-ease-out);
13845
-
14064
+ // src/components/SegmentedControl/SegmentedControl.styles.ts
14065
+ import { css as css61 } from "@emotion/react";
14066
+ var segmentedControlStyles = css61`
14067
+ --segmented-control-rounded-value: var(--rounded-base);
14068
+ --segmented-control-border-width: 1px;
14069
+ --segmented-control-selected-color: var(--brand-secondary-3);
14070
+ --segmented-control-first-border-radius: var(--segmented-control-rounded-value) 0 0
14071
+ var(--segmented-control-rounded-value);
14072
+ --segmented-control-last-border-radius: 0 var(--segmented-control-rounded-value)
14073
+ var(--segmented-control-rounded-value) 0;
14074
+
14075
+ position: relative;
14076
+ display: flex;
14077
+ justify-content: flex-start;
14078
+ width: fit-content;
14079
+ background-color: var(--gray-300);
14080
+ padding: var(--segmented-control-border-width);
14081
+ gap: var(--segmented-control-border-width);
14082
+ border-radius: calc(var(--segmented-control-rounded-value) + var(--segmented-control-border-width));
14083
+ font-size: var(--fs-xs);
14084
+ `;
14085
+ var segmentedControlVerticalStyles = css61`
14086
+ flex-direction: column;
14087
+ --segmented-control-first-border-radius: var(--segmented-control-rounded-value)
14088
+ var(--segmented-control-rounded-value) 0 0;
14089
+ --segmented-control-last-border-radius: 0 0 var(--segmented-control-rounded-value)
14090
+ var(--segmented-control-rounded-value);
14091
+ `;
14092
+ var segmentedControlItemStyles = css61`
14093
+ &:first-of-type label {
14094
+ border-radius: var(--segmented-control-first-border-radius);
14095
+ }
14096
+ &:last-of-type label {
14097
+ border-radius: var(--segmented-control-last-border-radius);
14098
+ }
14099
+ `;
14100
+ var segmentedControlInputStyles = css61`
14101
+ clip: rect(0, 0, 0, 0);
14102
+ position: absolute;
14103
+ width: 1px;
14104
+ height: 1px;
14105
+ overflow: hidden;
14106
+ `;
14107
+ var segmentedControlLabelStyles = css61`
14108
+ position: relative;
14109
+ display: flex;
14110
+ align-items: center;
14111
+ justify-content: center;
14112
+ height: 2rem;
14113
+ padding-inline: var(--spacing-base);
14114
+ background-color: white;
14115
+ transition-property: background-color, color, box-shadow;
14116
+ transition-duration: var(--duration-xfast);
14117
+ transition-timing-function: ease-in-out;
14118
+ z-index: 1;
14119
+ cursor: pointer;
14120
+
14121
+ &:has(:checked:not(:disabled)) {
14122
+ background-color: var(--segmented-control-selected-color);
14123
+ outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
14124
+ box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
14125
+ color: white;
14126
+ -webkit-text-stroke-width: thin;
14127
+ z-index: 0;
14128
+ }
14129
+
14130
+ &:hover:not(:has(:disabled, :checked)) {
14131
+ background-color: var(--gray-100);
14132
+ }
14133
+
14134
+ &:has(:disabled) {
14135
+ color: var(--gray-400);
14136
+ cursor: default;
14137
+ }
14138
+
14139
+ &:has(:checked:disabled) {
14140
+ color: var(--gray-50);
14141
+ background-color: var(--gray-400);
14142
+ }
14143
+ `;
14144
+ var segmentedControlLabelIconOnlyStyles = css61`
14145
+ padding-inline: 0.5em;
14146
+ `;
14147
+ var segmentedControlLabelCheckStyles = css61`
14148
+ opacity: 0.5;
14149
+ `;
14150
+ var segmentedControlLabelContentStyles = css61`
14151
+ display: flex;
14152
+ align-items: center;
14153
+ justify-content: center;
14154
+ gap: var(--spacing-sm);
14155
+ height: 100%;
14156
+ `;
14157
+ var segmentedControlLabelTextStyles = css61``;
14158
+
14159
+ // src/components/SegmentedControl/SegmentedControl.tsx
14160
+ import { jsx as jsx76, jsxs as jsxs50 } from "@emotion/react/jsx-runtime";
14161
+ var SegmentedControl = ({
14162
+ name,
14163
+ options,
14164
+ value,
14165
+ onChange,
14166
+ noCheckmark = false,
14167
+ disabled = false,
14168
+ orientation = "horizontal",
14169
+ size = "md",
14170
+ ...props
14171
+ }) => {
14172
+ const onOptionChange = useCallback3(
14173
+ (event) => {
14174
+ if (event.target.checked) {
14175
+ onChange == null ? void 0 : onChange(options[parseInt(event.target.value)].value);
14176
+ }
14177
+ },
14178
+ [options, onChange]
14179
+ );
14180
+ const sizeStyles = useMemo2(() => {
14181
+ const map = {
14182
+ sm: css62({ height: "calc(24px - 2px)", fontSize: "var(--fs-xs)" }),
14183
+ md: css62({ height: "calc(32px - 2px)", fontSize: "var(--fs-sm)" }),
14184
+ lg: css62({ height: "calc(40px - 2px)", fontSize: "var(--fs-base)" })
14185
+ };
14186
+ return map[size];
14187
+ }, [size]);
14188
+ const isIconOnly = useMemo2(() => {
14189
+ return options.every((option) => option.icon && !option.label);
14190
+ }, [options]);
14191
+ return /* @__PURE__ */ jsx76(
14192
+ "div",
14193
+ {
14194
+ css: [segmentedControlStyles, orientation === "vertical" ? segmentedControlVerticalStyles : void 0],
14195
+ ...props,
14196
+ children: options.map((option, index) => {
14197
+ const text = option.label ? option.label : option.icon ? null : String(option.value);
14198
+ const isDisabled = disabled || option.disabled;
14199
+ return /* @__PURE__ */ jsx76(
14200
+ Tooltip,
14201
+ {
14202
+ title: isDisabled || !option.tooltip ? "" : option.tooltip,
14203
+ children: /* @__PURE__ */ jsx76("div", { css: segmentedControlItemStyles, children: /* @__PURE__ */ jsxs50(
14204
+ "label",
14205
+ {
14206
+ css: [
14207
+ segmentedControlLabelStyles,
14208
+ sizeStyles,
14209
+ isIconOnly ? segmentedControlLabelIconOnlyStyles : void 0
14210
+ ],
14211
+ children: [
14212
+ /* @__PURE__ */ jsx76(
14213
+ "input",
14214
+ {
14215
+ css: segmentedControlInputStyles,
14216
+ type: "radio",
14217
+ name,
14218
+ value: index,
14219
+ checked: option.value === value,
14220
+ onChange: onOptionChange,
14221
+ disabled: isDisabled
14222
+ }
14223
+ ),
14224
+ option.value !== value || noCheckmark ? null : /* @__PURE__ */ jsx76(CgCheck3, { css: segmentedControlLabelCheckStyles, "aria-label": "Selected", size: "1.5em" }),
14225
+ /* @__PURE__ */ jsxs50("span", { css: segmentedControlLabelContentStyles, children: [
14226
+ !option.icon ? null : /* @__PURE__ */ jsx76(option.icon, { size: "1.5em" }),
14227
+ !text ? null : /* @__PURE__ */ jsx76("span", { css: segmentedControlLabelTextStyles, children: text })
14228
+ ] })
14229
+ ]
14230
+ }
14231
+ ) })
14232
+ },
14233
+ JSON.stringify(option.value)
14234
+ );
14235
+ })
14236
+ }
14237
+ );
14238
+ };
14239
+
14240
+ // src/components/ObjectList/ObjectListItemLoadingSkeleton.tsx
14241
+ import { jsx as jsx77, jsxs as jsxs51 } from "@emotion/react/jsx-runtime";
14242
+ var ObjectListItemLoadingSkeleton = () => {
14243
+ return /* @__PURE__ */ jsxs51("div", { css: [ObjectListItemContainer, ObjectListItemLoading], children: [
14244
+ /* @__PURE__ */ jsxs51("div", { css: [ObjectListItemInlineGroup, ObjectListItemInlineHeadingGroup], children: [
14245
+ /* @__PURE__ */ jsx77("span", { css: ObjectListItemLoadingText("30ch") }),
14246
+ /* @__PURE__ */ jsx77("span", { css: ObjectListItemLoadingText("5ch") })
14247
+ ] }),
14248
+ /* @__PURE__ */ jsxs51("div", { css: ObjectListItemInlineGroup, children: [
14249
+ /* @__PURE__ */ jsx77("span", { css: ObjectListItemLoadingText("10ch") }),
14250
+ /* @__PURE__ */ jsx77("span", { css: ObjectListItemLoadingText("10ch") })
14251
+ ] })
14252
+ ] });
14253
+ };
14254
+
14255
+ // src/components/ObjectList/styles/ObjectListContainer.styles.ts
14256
+ import { css as css63 } from "@emotion/react";
14257
+ var InlineGroup = css63`
14258
+ align-items: center;
14259
+ display: flex;
14260
+ gap: var(--spacing-base);
14261
+ `;
14262
+ var FilterGroup = css63`
14263
+ ${InlineGroup}
14264
+ justify-content: space-between
14265
+ `;
14266
+ var GroupLabel = css63`
14267
+ font-size: var(--fs-sm);
14268
+ `;
14269
+
14270
+ // src/components/ObjectList/ObjectListContainer.tsx
14271
+ import { jsx as jsx78, jsxs as jsxs52 } from "@emotion/react/jsx-runtime";
14272
+ var ObjectListContainer = ({
14273
+ title = "Recent Compositions",
14274
+ list,
14275
+ filterOptions,
14276
+ filterValue,
14277
+ isLoading,
14278
+ onSetFilterOption,
14279
+ resolveDefaultComponent = (value) => /* @__PURE__ */ jsx78(ObjectCompositionListItem, { ...value }),
14280
+ children,
14281
+ ...props
14282
+ }) => {
14283
+ const [loadingList, setLoadingList] = React18.useState(5);
14284
+ React18.useEffect(() => {
14285
+ if (list.length) {
14286
+ setLoadingList(list.length);
14287
+ }
14288
+ }, [list]);
14289
+ return /* @__PURE__ */ jsxs52(VerticalRhythm, { ...props, children: [
14290
+ /* @__PURE__ */ jsxs52("div", { css: FilterGroup, children: [
14291
+ /* @__PURE__ */ jsx78(Heading, { level: 4, withMarginBottom: false, children: title }),
14292
+ /* @__PURE__ */ jsxs52("div", { css: InlineGroup, children: [
14293
+ /* @__PURE__ */ jsx78("span", { css: GroupLabel, children: "Show" }),
14294
+ /* @__PURE__ */ jsx78(
14295
+ SegmentedControl,
14296
+ {
14297
+ name: "recent-filter-options",
14298
+ options: filterOptions,
14299
+ value: filterValue,
14300
+ onChange: (e) => onSetFilterOption(e),
14301
+ noCheckmark: true,
14302
+ disabled: list.length === 0
14303
+ }
14304
+ )
14305
+ ] })
14306
+ ] }),
14307
+ isLoading ? /* @__PURE__ */ jsx78("div", { children: Array.from(Array(loadingList).keys()).map((item) => /* @__PURE__ */ jsx78(ObjectListItemLoadingSkeleton, {}, item)) }) : null,
14308
+ list.length && !isLoading ? /* @__PURE__ */ jsx78("div", { role: "list", children: list == null ? void 0 : list.map((item) => resolveDefaultComponent(item)) }) : null,
14309
+ children
14310
+ ] });
14311
+ };
14312
+
14313
+ // src/components/ObjectList/ObjectPersonalizationListItem.tsx
14314
+ import { forwardRef as forwardRef9 } from "react";
14315
+ import { jsx as jsx79, jsxs as jsxs53 } from "@emotion/react/jsx-runtime";
14316
+ var ObjectPersonalizationListItem = forwardRef9(({ title, date, id, data, linkManagerComponent: LinkManager, as, ...props }, ref) => {
14317
+ return /* @__PURE__ */ jsxs53(
14318
+ LinkManager,
14319
+ {
14320
+ ...props,
14321
+ as,
14322
+ href: props.href,
14323
+ ref,
14324
+ passHref: true,
14325
+ legacyBehavior: true,
14326
+ css: ObjectListItemContainer,
14327
+ role: "listitem",
14328
+ children: [
14329
+ /* @__PURE__ */ jsxs53("div", { css: [ObjectListItemInlineGroup, ObjectListItemInlineHeadingGroup], children: [
14330
+ /* @__PURE__ */ jsx79("span", { role: "heading", css: ObjectListItemTitle, children: title }),
14331
+ /* @__PURE__ */ jsx79("time", { role: "time", dateTime: `${date}`, css: ObjectListItemSmallText, children: formatDate(date) })
14332
+ ] }),
14333
+ /* @__PURE__ */ jsxs53("div", { css: ObjectListItemInlineGroup, children: [
14334
+ /* @__PURE__ */ jsxs53("span", { css: ObjectListKeyText, children: [
14335
+ "ID: ",
14336
+ /* @__PURE__ */ jsx79("span", { css: ObjectListValueText, children: id })
14337
+ ] }),
14338
+ Object.entries(data).map(([key, value], i) => /* @__PURE__ */ jsxs53("span", { css: ObjectListKeyText, children: [
14339
+ key,
14340
+ ": ",
14341
+ /* @__PURE__ */ jsx79("span", { css: ObjectListValueText, children: value })
14342
+ ] }, i))
14343
+ ] })
14344
+ ]
14345
+ }
14346
+ );
14347
+ });
14348
+
14349
+ // src/components/ParameterInputs/styles/ParameterBindingButton.styles.ts
14350
+ import { css as css64 } from "@emotion/react";
14351
+ var inputIconBtn = css64`
14352
+ align-items: center;
14353
+ border: none;
14354
+ border-radius: var(--rounded-base);
14355
+ background: none;
14356
+ display: flex;
14357
+ padding: var(--spacing-2xs);
14358
+ transition: background var(--duration-fast) var(--timing-ease-out),
14359
+ color var(--duration-fast) var(--timing-ease-out);
14360
+
13846
14361
  &:hover,
13847
14362
  &[aria-pressed='true']:not(:disabled) {
13848
14363
  background: var(--brand-secondary-3);
@@ -13856,7 +14371,7 @@ var inputIconBtn = css59`
13856
14371
  `;
13857
14372
 
13858
14373
  // src/components/ParameterInputs/ConnectToDataElementButton.tsx
13859
- import { jsx as jsx74, jsxs as jsxs49 } from "@emotion/react/jsx-runtime";
14374
+ import { jsx as jsx80, jsxs as jsxs54 } from "@emotion/react/jsx-runtime";
13860
14375
  var ConnectToDataElementButton = ({
13861
14376
  icon,
13862
14377
  iconColor,
@@ -13866,7 +14381,7 @@ var ConnectToDataElementButton = ({
13866
14381
  ...props
13867
14382
  }) => {
13868
14383
  const title = isLocked ? "Read-only pattern parameter" : isBound ? "Connected to external content. Click to edit" : "Click to connect to external content";
13869
- return /* @__PURE__ */ jsx74(Tooltip, { title, children: /* @__PURE__ */ jsxs49(
14384
+ return /* @__PURE__ */ jsx80(Tooltip, { title, children: /* @__PURE__ */ jsxs54(
13870
14385
  "button",
13871
14386
  {
13872
14387
  css: inputIconBtn,
@@ -13875,7 +14390,7 @@ var ConnectToDataElementButton = ({
13875
14390
  "aria-disabled": isLocked,
13876
14391
  ...props,
13877
14392
  children: [
13878
- /* @__PURE__ */ jsx74(
14393
+ /* @__PURE__ */ jsx80(
13879
14394
  Icon,
13880
14395
  {
13881
14396
  icon: isLocked ? "lock" : icon ? icon : "arrows-expand-down-right",
@@ -13911,8 +14426,8 @@ var useParameterShell = () => {
13911
14426
  };
13912
14427
 
13913
14428
  // src/components/ParameterInputs/styles/ParameterInput.styles.ts
13914
- import { css as css60 } from "@emotion/react";
13915
- var inputContainer2 = css60`
14429
+ import { css as css65 } from "@emotion/react";
14430
+ var inputContainer2 = css65`
13916
14431
  position: relative;
13917
14432
 
13918
14433
  &:hover,
@@ -13924,14 +14439,14 @@ var inputContainer2 = css60`
13924
14439
  }
13925
14440
  }
13926
14441
  `;
13927
- var labelText2 = css60`
14442
+ var labelText2 = css65`
13928
14443
  align-items: center;
13929
14444
  display: flex;
13930
14445
  gap: var(--spacing-xs);
13931
14446
  font-weight: var(--fw-regular);
13932
14447
  margin: 0 0 var(--spacing-xs);
13933
14448
  `;
13934
- var input2 = css60`
14449
+ var input2 = css65`
13935
14450
  display: block;
13936
14451
  appearance: none;
13937
14452
  box-sizing: border-box;
@@ -13945,7 +14460,7 @@ var input2 = css60`
13945
14460
  padding: var(--spacing-sm);
13946
14461
  width: 100%;
13947
14462
  position: relative;
13948
- white-space: wrap;
14463
+ white-space: normal;
13949
14464
  transition-property: background, border-color, color, box-shadow, border-radius;
13950
14465
  transition-duration: var(--duration-fast);
13951
14466
  transition-timing-function: var(--timing-ease-out);
@@ -13975,18 +14490,18 @@ var input2 = css60`
13975
14490
  color: var(--gray-400);
13976
14491
  }
13977
14492
  `;
13978
- var selectInput = css60`
14493
+ var selectInput = css65`
13979
14494
  background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%0A%3E%3Cpath d='M6.34317 7.75732L4.92896 9.17154L12 16.2426L19.0711 9.17157L17.6569 7.75735L12 13.4142L6.34317 7.75732Z' fill='currentColor' /%3E%3C/svg%3E");
13980
14495
  background-position: right var(--spacing-sm) center;
13981
14496
  background-repeat: no-repeat;
13982
14497
  background-size: 1rem;
13983
14498
  padding-right: var(--spacing-xl);
13984
14499
  `;
13985
- var inputWrapper = css60`
14500
+ var inputWrapper = css65`
13986
14501
  display: flex; // used to correct overflow with chrome textarea
13987
14502
  position: relative;
13988
14503
  `;
13989
- var inputIcon2 = css60`
14504
+ var inputIcon2 = css65`
13990
14505
  align-items: center;
13991
14506
  background: var(--white);
13992
14507
  border-radius: var(--rounded-md) 0 0 var(--rounded-md);
@@ -14002,7 +14517,7 @@ var inputIcon2 = css60`
14002
14517
  width: var(--spacing-lg);
14003
14518
  z-index: var(--z-10);
14004
14519
  `;
14005
- var inputToggleLabel2 = css60`
14520
+ var inputToggleLabel2 = css65`
14006
14521
  align-items: center;
14007
14522
  background: var(--white);
14008
14523
  cursor: pointer;
@@ -14013,7 +14528,7 @@ var inputToggleLabel2 = css60`
14013
14528
  min-height: var(--spacing-md);
14014
14529
  position: relative;
14015
14530
  `;
14016
- var toggleInput2 = css60`
14531
+ var toggleInput2 = css65`
14017
14532
  appearance: none;
14018
14533
  border: 1px solid var(--gray-300);
14019
14534
  background: var(--white);
@@ -14052,7 +14567,7 @@ var toggleInput2 = css60`
14052
14567
  border-color: var(--gray-300);
14053
14568
  }
14054
14569
  `;
14055
- var inlineLabel2 = css60`
14570
+ var inlineLabel2 = css65`
14056
14571
  padding-left: var(--spacing-lg);
14057
14572
  font-size: var(--fs-sm);
14058
14573
  font-weight: var(--fw-regular);
@@ -14068,7 +14583,7 @@ var inlineLabel2 = css60`
14068
14583
  }
14069
14584
  }
14070
14585
  `;
14071
- var inputMenu = css60`
14586
+ var inputMenu = css65`
14072
14587
  background: none;
14073
14588
  border: none;
14074
14589
  padding: var(--spacing-2xs);
@@ -14084,14 +14599,14 @@ var inputMenu = css60`
14084
14599
  background-color: var(--gray-200);
14085
14600
  }
14086
14601
  `;
14087
- var textarea2 = css60`
14602
+ var textarea2 = css65`
14088
14603
  resize: vertical;
14089
14604
  min-height: 2rem;
14090
14605
  `;
14091
- var imageWrapper = css60`
14606
+ var imageWrapper = css65`
14092
14607
  background: var(--white);
14093
14608
  `;
14094
- var img = css60`
14609
+ var img = css65`
14095
14610
  animation: ${fadeIn} var(--duration-fast) var(--timing-ease-out) forwards;
14096
14611
  object-fit: contain;
14097
14612
  max-width: 100%;
@@ -14099,7 +14614,7 @@ var img = css60`
14099
14614
  opacity: var(--opacity-0);
14100
14615
  margin: var(--spacing-sm) auto 0;
14101
14616
  `;
14102
- var dataConnectButton = css60`
14617
+ var dataConnectButton = css65`
14103
14618
  align-items: center;
14104
14619
  appearance: none;
14105
14620
  box-sizing: border-box;
@@ -14134,7 +14649,7 @@ var dataConnectButton = css60`
14134
14649
  pointer-events: none;
14135
14650
  }
14136
14651
  `;
14137
- var linkParameterBtn = css60`
14652
+ var linkParameterBtn = css65`
14138
14653
  border-radius: var(--rounded-base);
14139
14654
  background: var(--white);
14140
14655
  border: none;
@@ -14142,14 +14657,22 @@ var linkParameterBtn = css60`
14142
14657
  font-weight: var(--fw-regular);
14143
14658
  font-size: var(--fs-sm);
14144
14659
  line-height: 1;
14660
+ `;
14661
+ var linkParameterControls = css65`
14145
14662
  position: absolute;
14146
- inset: 0 var(--spacing-base) 0 auto;
14663
+ inset: 0 0 0 auto;
14147
14664
  padding: 0 var(--spacing-base);
14665
+ display: flex;
14666
+ flex-direction: row;
14667
+ justify-content: center;
14668
+ gap: var(--spacing-base);
14148
14669
  `;
14149
- var linkParameterInput = css60`
14150
- padding-right: calc(var(--spacing-2xl) + var(--spacing-base));
14670
+ var linkParameterInput = (withExternalLinkIcon) => css65`
14671
+ padding-right: calc(
14672
+ ${withExternalLinkIcon ? "var(--spacing-2xl)" : "var(--spacing-xl)"} + var(--spacing-base)
14673
+ );
14151
14674
  `;
14152
- var linkParameterIcon = css60`
14675
+ var linkParameterIcon = css65`
14153
14676
  align-items: center;
14154
14677
  color: var(--brand-secondary-3);
14155
14678
  display: flex;
@@ -14164,7 +14687,7 @@ var linkParameterIcon = css60`
14164
14687
  `;
14165
14688
 
14166
14689
  // src/components/ParameterInputs/ParameterDataResource.tsx
14167
- import { jsx as jsx75, jsxs as jsxs50 } from "@emotion/react/jsx-runtime";
14690
+ import { jsx as jsx81, jsxs as jsxs55 } from "@emotion/react/jsx-runtime";
14168
14691
  function ParameterDataResource({
14169
14692
  label,
14170
14693
  labelLeadingIcon,
@@ -14174,12 +14697,12 @@ function ParameterDataResource({
14174
14697
  disabled,
14175
14698
  children
14176
14699
  }) {
14177
- return /* @__PURE__ */ jsxs50("div", { "data-testid": "parameter-data-connect-button", children: [
14178
- /* @__PURE__ */ jsxs50("span", { css: labelText2, children: [
14700
+ return /* @__PURE__ */ jsxs55("div", { "data-testid": "parameter-data-connect-button", children: [
14701
+ /* @__PURE__ */ jsxs55("span", { css: labelText2, children: [
14179
14702
  labelLeadingIcon ? labelLeadingIcon : null,
14180
14703
  label
14181
14704
  ] }),
14182
- /* @__PURE__ */ jsxs50(
14705
+ /* @__PURE__ */ jsxs55(
14183
14706
  "button",
14184
14707
  {
14185
14708
  type: "button",
@@ -14188,30 +14711,30 @@ function ParameterDataResource({
14188
14711
  disabled,
14189
14712
  onClick: onConnectDatasource,
14190
14713
  children: [
14191
- /* @__PURE__ */ jsx75("span", { className: "advance-input-icon", css: [inputIcon2], children: /* @__PURE__ */ jsx75(Icon, { icon: "stack", iconColor: "currentColor", size: "1rem" }) }),
14714
+ /* @__PURE__ */ jsx81("span", { className: "advance-input-icon", css: [inputIcon2], children: /* @__PURE__ */ jsx81(Icon, { icon: "stack", iconColor: "currentColor", size: "1rem" }) }),
14192
14715
  children
14193
14716
  ]
14194
14717
  }
14195
14718
  ),
14196
- caption ? /* @__PURE__ */ jsx75(Caption, { children: caption }) : null
14719
+ caption ? /* @__PURE__ */ jsx81(Caption, { children: caption }) : null
14197
14720
  ] });
14198
14721
  }
14199
14722
 
14200
14723
  // src/components/ParameterInputs/styles/ParameterDrawerHeader.styles.ts
14201
- import { css as css61 } from "@emotion/react";
14202
- var ParameterDrawerHeaderContainer = css61`
14724
+ import { css as css66 } from "@emotion/react";
14725
+ var ParameterDrawerHeaderContainer = css66`
14203
14726
  align-items: center;
14204
14727
  display: flex;
14205
14728
  gap: var(--spacing-base);
14206
14729
  justify-content: space-between;
14207
14730
  margin-bottom: var(--spacing-sm);
14208
14731
  `;
14209
- var ParameterDrawerHeaderTitleGroup = css61`
14732
+ var ParameterDrawerHeaderTitleGroup = css66`
14210
14733
  align-items: center;
14211
14734
  display: flex;
14212
14735
  gap: var(--spacing-sm);
14213
14736
  `;
14214
- var ParameterDrawerHeaderTitle = css61`
14737
+ var ParameterDrawerHeaderTitle = css66`
14215
14738
  text-overflow: ellipsis;
14216
14739
  white-space: nowrap;
14217
14740
  overflow: hidden;
@@ -14219,23 +14742,23 @@ var ParameterDrawerHeaderTitle = css61`
14219
14742
  `;
14220
14743
 
14221
14744
  // src/components/ParameterInputs/ParameterDrawerHeader.tsx
14222
- import { jsx as jsx76, jsxs as jsxs51 } from "@emotion/react/jsx-runtime";
14745
+ import { jsx as jsx82, jsxs as jsxs56 } from "@emotion/react/jsx-runtime";
14223
14746
  var ParameterDrawerHeader = ({ title, iconBeforeTitle, children }) => {
14224
- return /* @__PURE__ */ jsxs51("div", { css: ParameterDrawerHeaderContainer, children: [
14225
- /* @__PURE__ */ jsxs51("header", { css: ParameterDrawerHeaderTitleGroup, children: [
14747
+ return /* @__PURE__ */ jsxs56("div", { css: ParameterDrawerHeaderContainer, children: [
14748
+ /* @__PURE__ */ jsxs56("header", { css: ParameterDrawerHeaderTitleGroup, children: [
14226
14749
  iconBeforeTitle,
14227
- /* @__PURE__ */ jsx76(Heading, { level: 3, withMarginBottom: false, css: ParameterDrawerHeaderTitle, title, children: title })
14750
+ /* @__PURE__ */ jsx82(Heading, { level: 3, withMarginBottom: false, css: ParameterDrawerHeaderTitle, title, children: title })
14228
14751
  ] }),
14229
14752
  children
14230
14753
  ] });
14231
14754
  };
14232
14755
 
14233
14756
  // src/components/ParameterInputs/ParameterGroup.tsx
14234
- import { forwardRef as forwardRef7 } from "react";
14757
+ import { forwardRef as forwardRef10 } from "react";
14235
14758
 
14236
14759
  // src/components/ParameterInputs/styles/ParameterGroup.styles.ts
14237
- import { css as css62 } from "@emotion/react";
14238
- var fieldsetStyles = css62`
14760
+ import { css as css67 } from "@emotion/react";
14761
+ var fieldsetStyles = css67`
14239
14762
  &:disabled,
14240
14763
  [readonly] {
14241
14764
  pointer-events: none;
@@ -14246,7 +14769,7 @@ var fieldsetStyles = css62`
14246
14769
  }
14247
14770
  }
14248
14771
  `;
14249
- var fieldsetLegend2 = css62`
14772
+ var fieldsetLegend2 = css67`
14250
14773
  display: block;
14251
14774
  font-weight: var(--fw-medium);
14252
14775
  margin-bottom: var(--spacing-sm);
@@ -14254,38 +14777,38 @@ var fieldsetLegend2 = css62`
14254
14777
  `;
14255
14778
 
14256
14779
  // src/components/ParameterInputs/ParameterGroup.tsx
14257
- import { jsx as jsx77, jsxs as jsxs52 } from "@emotion/react/jsx-runtime";
14258
- var ParameterGroup = forwardRef7(
14780
+ import { jsx as jsx83, jsxs as jsxs57 } from "@emotion/react/jsx-runtime";
14781
+ var ParameterGroup = forwardRef10(
14259
14782
  ({ legend, isDisabled, children, ...props }, ref) => {
14260
- return /* @__PURE__ */ jsxs52("fieldset", { css: fieldsetStyles, disabled: isDisabled, ref, ...props, children: [
14261
- /* @__PURE__ */ jsx77("legend", { css: fieldsetLegend2, children: legend }),
14783
+ return /* @__PURE__ */ jsxs57("fieldset", { css: fieldsetStyles, disabled: isDisabled, ref, ...props, children: [
14784
+ /* @__PURE__ */ jsx83("legend", { css: fieldsetLegend2, children: legend }),
14262
14785
  children
14263
14786
  ] });
14264
14787
  }
14265
14788
  );
14266
14789
 
14267
14790
  // src/components/ParameterInputs/ParameterImage.tsx
14268
- import { forwardRef as forwardRef9, useCallback as useCallback3, useDeferredValue, useEffect as useEffect8, useState as useState8 } from "react";
14791
+ import { forwardRef as forwardRef12, useCallback as useCallback4, useDeferredValue, useEffect as useEffect10, useState as useState9 } from "react";
14269
14792
 
14270
14793
  // src/components/ParameterInputs/ParameterShell.tsx
14271
- import { useState as useState7 } from "react";
14794
+ import { useState as useState8 } from "react";
14272
14795
 
14273
14796
  // src/components/ParameterInputs/ParameterLabel.tsx
14274
- import { jsx as jsx78 } from "@emotion/react/jsx-runtime";
14797
+ import { jsx as jsx84 } from "@emotion/react/jsx-runtime";
14275
14798
  var ParameterLabel = ({ id, asSpan, children, ...props }) => {
14276
- return !asSpan ? /* @__PURE__ */ jsx78("label", { ...props, htmlFor: id, css: labelText2, children }) : /* @__PURE__ */ jsx78("span", { "aria-labelledby": id, css: labelText2, children });
14799
+ return !asSpan ? /* @__PURE__ */ jsx84("label", { ...props, htmlFor: id, css: labelText2, children }) : /* @__PURE__ */ jsx84("span", { "aria-labelledby": id, css: labelText2, children });
14277
14800
  };
14278
14801
 
14279
14802
  // src/components/ParameterInputs/ParameterMenuButton.tsx
14280
- import { forwardRef as forwardRef8 } from "react";
14281
- import { jsx as jsx79 } from "@emotion/react/jsx-runtime";
14282
- var ParameterMenuButton = forwardRef8(
14803
+ import { forwardRef as forwardRef11 } from "react";
14804
+ import { jsx as jsx85 } from "@emotion/react/jsx-runtime";
14805
+ var ParameterMenuButton = forwardRef11(
14283
14806
  ({ label, children }, ref) => {
14284
- return /* @__PURE__ */ jsx79(
14807
+ return /* @__PURE__ */ jsx85(
14285
14808
  Menu,
14286
14809
  {
14287
14810
  menuLabel: `${label} menu`,
14288
- menuTrigger: /* @__PURE__ */ jsx79(
14811
+ menuTrigger: /* @__PURE__ */ jsx85(
14289
14812
  "button",
14290
14813
  {
14291
14814
  className: "parameter-menu",
@@ -14293,7 +14816,7 @@ var ParameterMenuButton = forwardRef8(
14293
14816
  type: "button",
14294
14817
  "aria-label": `${label} options`,
14295
14818
  ref,
14296
- children: /* @__PURE__ */ jsx79(Icon, { icon: "more-alt", iconColor: "currentColor", size: "0.9rem" })
14819
+ children: /* @__PURE__ */ jsx85(Icon, { icon: "more-alt", iconColor: "currentColor", size: "0.9rem" })
14297
14820
  }
14298
14821
  ),
14299
14822
  children
@@ -14303,15 +14826,15 @@ var ParameterMenuButton = forwardRef8(
14303
14826
  );
14304
14827
 
14305
14828
  // src/components/ParameterInputs/styles/ParameterShell.styles.ts
14306
- import { css as css63 } from "@emotion/react";
14307
- var emptyParameterShell = css63`
14829
+ import { css as css68 } from "@emotion/react";
14830
+ var emptyParameterShell = css68`
14308
14831
  border-radius: var(--rounded-sm);
14309
14832
  background: var(--white);
14310
14833
  flex-grow: 1;
14311
14834
  padding: var(--spacing-xs);
14312
14835
  position: relative;
14313
14836
  `;
14314
- var emptyParameterShellText = css63`
14837
+ var emptyParameterShellText = css68`
14315
14838
  background: var(--brand-secondary-6);
14316
14839
  border-radius: var(--rounded-sm);
14317
14840
  padding: var(--spacing-sm);
@@ -14319,7 +14842,7 @@ var emptyParameterShellText = css63`
14319
14842
  font-size: var(--fs-sm);
14320
14843
  margin: 0;
14321
14844
  `;
14322
- var overrideMarker = css63`
14845
+ var overrideMarker = css68`
14323
14846
  border-radius: var(--rounded-sm);
14324
14847
  border: 10px solid var(--gray-300);
14325
14848
  border-left-color: transparent;
@@ -14330,7 +14853,7 @@ var overrideMarker = css63`
14330
14853
  `;
14331
14854
 
14332
14855
  // src/components/ParameterInputs/ParameterShell.tsx
14333
- import { jsx as jsx80, jsxs as jsxs53 } from "@emotion/react/jsx-runtime";
14856
+ import { jsx as jsx86, jsxs as jsxs58 } from "@emotion/react/jsx-runtime";
14334
14857
  var extractParameterProps = (props) => {
14335
14858
  const {
14336
14859
  id,
@@ -14389,21 +14912,21 @@ var ParameterShell = ({
14389
14912
  children,
14390
14913
  ...props
14391
14914
  }) => {
14392
- const [manualErrorMessage, setManualErrorMessage] = useState7(void 0);
14915
+ const [manualErrorMessage, setManualErrorMessage] = useState8(void 0);
14393
14916
  const setErrorMessage = (message) => setManualErrorMessage(message);
14394
14917
  const errorMessaging = errorMessage || manualErrorMessage;
14395
- return /* @__PURE__ */ jsxs53("div", { css: inputContainer2, ...props, children: [
14396
- hiddenLabel || title ? null : /* @__PURE__ */ jsxs53(ParameterLabel, { id, css: labelText2, children: [
14918
+ return /* @__PURE__ */ jsxs58("div", { css: inputContainer2, ...props, children: [
14919
+ hiddenLabel || title ? null : /* @__PURE__ */ jsxs58(ParameterLabel, { id, css: labelText2, children: [
14397
14920
  labelLeadingIcon ? labelLeadingIcon : null,
14398
14921
  label
14399
14922
  ] }),
14400
- !title ? null : /* @__PURE__ */ jsxs53(ParameterLabel, { id, asSpan: true, children: [
14923
+ !title ? null : /* @__PURE__ */ jsxs58(ParameterLabel, { id, asSpan: true, children: [
14401
14924
  labelLeadingIcon ? labelLeadingIcon : null,
14402
14925
  title
14403
14926
  ] }),
14404
- /* @__PURE__ */ jsxs53("div", { css: inputWrapper, children: [
14405
- menuItems ? /* @__PURE__ */ jsx80(ParameterMenuButton, { label: `${label} menu`, children: menuItems }) : null,
14406
- /* @__PURE__ */ jsx80(
14927
+ /* @__PURE__ */ jsxs58("div", { css: inputWrapper, children: [
14928
+ menuItems ? /* @__PURE__ */ jsx86(ParameterMenuButton, { label: `${label} menu`, children: menuItems }) : null,
14929
+ /* @__PURE__ */ jsx86(
14407
14930
  ParameterShellContext.Provider,
14408
14931
  {
14409
14932
  value: {
@@ -14413,32 +14936,32 @@ var ParameterShell = ({
14413
14936
  errorMessage: errorMessaging,
14414
14937
  onManuallySetErrorMessage: (message) => setErrorMessage(message)
14415
14938
  },
14416
- children: /* @__PURE__ */ jsxs53(ParameterShellPlaceholder, { children: [
14939
+ children: /* @__PURE__ */ jsxs58(ParameterShellPlaceholder, { children: [
14417
14940
  children,
14418
- hasOverriddenValue && onResetOverriddenValue ? /* @__PURE__ */ jsx80(ParameterOverrideMarker, { onClick: onResetOverriddenValue }) : null
14941
+ hasOverriddenValue && onResetOverriddenValue ? /* @__PURE__ */ jsx86(ParameterOverrideMarker, { onClick: onResetOverriddenValue }) : null
14419
14942
  ] })
14420
14943
  }
14421
14944
  )
14422
14945
  ] }),
14423
- caption ? /* @__PURE__ */ jsx80(Caption, { testId: captionTestId, children: caption }) : null,
14424
- errorMessaging ? /* @__PURE__ */ jsx80(ErrorMessage, { message: errorMessaging, testId: errorTestId }) : null,
14425
- warningMessage ? /* @__PURE__ */ jsx80(WarningMessage, { message: warningMessage }) : null,
14426
- infoMessage ? /* @__PURE__ */ jsx80(InfoMessage, { message: infoMessage }) : null
14946
+ caption ? /* @__PURE__ */ jsx86(Caption, { testId: captionTestId, children: caption }) : null,
14947
+ errorMessaging ? /* @__PURE__ */ jsx86(ErrorMessage, { message: errorMessaging, testId: errorTestId }) : null,
14948
+ warningMessage ? /* @__PURE__ */ jsx86(WarningMessage, { message: warningMessage }) : null,
14949
+ infoMessage ? /* @__PURE__ */ jsx86(InfoMessage, { message: infoMessage }) : null
14427
14950
  ] });
14428
14951
  };
14429
14952
  var ParameterShellPlaceholder = ({ children }) => {
14430
- return /* @__PURE__ */ jsx80("div", { css: emptyParameterShell, children });
14953
+ return /* @__PURE__ */ jsx86("div", { css: emptyParameterShell, children });
14431
14954
  };
14432
- var ParameterOverrideMarker = (props) => /* @__PURE__ */ jsx80(Tooltip, { title: "The default value has been overridden", children: /* @__PURE__ */ jsx80("button", { type: "button", css: overrideMarker, ...props, children: /* @__PURE__ */ jsx80("span", { hidden: true, children: "reset overridden value to default" }) }) });
14955
+ var ParameterOverrideMarker = (props) => /* @__PURE__ */ jsx86(Tooltip, { title: "The default value has been overridden", children: /* @__PURE__ */ jsx86("button", { type: "button", css: overrideMarker, ...props, children: /* @__PURE__ */ jsx86("span", { hidden: true, children: "reset overridden value to default" }) }) });
14433
14956
 
14434
14957
  // src/components/ParameterInputs/ParameterImage.tsx
14435
- import { Fragment as Fragment10, jsx as jsx81, jsxs as jsxs54 } from "@emotion/react/jsx-runtime";
14436
- var ParameterImage = forwardRef9((props, ref) => {
14958
+ import { Fragment as Fragment10, jsx as jsx87, jsxs as jsxs59 } from "@emotion/react/jsx-runtime";
14959
+ var ParameterImage = forwardRef12((props, ref) => {
14437
14960
  const { shellProps, innerProps } = extractParameterProps(props);
14438
- return /* @__PURE__ */ jsx81(ParameterShell, { "data-test-id": "parameter-image", ...shellProps, children: /* @__PURE__ */ jsx81(ParameterImageInner, { ref, ...innerProps }) });
14961
+ return /* @__PURE__ */ jsx87(ParameterShell, { "data-test-id": "parameter-image", ...shellProps, children: /* @__PURE__ */ jsx87(ParameterImageInner, { ref, ...innerProps }) });
14439
14962
  });
14440
14963
  var BrokenImage = ({ ...props }) => {
14441
- return /* @__PURE__ */ jsxs54(
14964
+ return /* @__PURE__ */ jsxs59(
14442
14965
  "svg",
14443
14966
  {
14444
14967
  width: "214",
@@ -14449,11 +14972,11 @@ var BrokenImage = ({ ...props }) => {
14449
14972
  xmlnsXlink: "http://www.w3.org/1999/xlink",
14450
14973
  ...props,
14451
14974
  children: [
14452
- /* @__PURE__ */ jsx81("rect", { width: "214", height: "214", fill: "#F9FAFB" }),
14453
- /* @__PURE__ */ jsx81("rect", { width: "214", height: "214", fill: "url(#pattern0)" }),
14454
- /* @__PURE__ */ jsxs54("defs", { children: [
14455
- /* @__PURE__ */ jsx81("pattern", { id: "pattern0", patternContentUnits: "objectBoundingBox", width: "1", height: "1", children: /* @__PURE__ */ jsx81("use", { xlinkHref: "#image0_761_4353", transform: "scale(0.0025)" }) }),
14456
- /* @__PURE__ */ jsx81(
14975
+ /* @__PURE__ */ jsx87("rect", { width: "214", height: "214", fill: "#F9FAFB" }),
14976
+ /* @__PURE__ */ jsx87("rect", { width: "214", height: "214", fill: "url(#pattern0)" }),
14977
+ /* @__PURE__ */ jsxs59("defs", { children: [
14978
+ /* @__PURE__ */ jsx87("pattern", { id: "pattern0", patternContentUnits: "objectBoundingBox", width: "1", height: "1", children: /* @__PURE__ */ jsx87("use", { xlinkHref: "#image0_761_4353", transform: "scale(0.0025)" }) }),
14979
+ /* @__PURE__ */ jsx87(
14457
14980
  "image",
14458
14981
  {
14459
14982
  id: "image0_761_4353",
@@ -14467,14 +14990,14 @@ var BrokenImage = ({ ...props }) => {
14467
14990
  }
14468
14991
  );
14469
14992
  };
14470
- var ParameterImageInner = forwardRef9(
14993
+ var ParameterImageInner = forwardRef12(
14471
14994
  ({ ...props }, ref) => {
14472
14995
  const { value } = props;
14473
14996
  const { id, label, hiddenLabel, errorMessage, onManuallySetErrorMessage } = useParameterShell();
14474
- const [loading, setLoading] = useState8(false);
14997
+ const [loading, setLoading] = useState9(false);
14475
14998
  const deferredValue = useDeferredValue(value);
14476
14999
  const errorText = "The text you provided is not a valid URL";
14477
- const updateImageSrc = useCallback3(() => {
15000
+ const updateImageSrc = useCallback4(() => {
14478
15001
  let message = void 0;
14479
15002
  try {
14480
15003
  if (value !== "") {
@@ -14502,11 +15025,11 @@ var ParameterImageInner = forwardRef9(
14502
15025
  onManuallySetErrorMessage(errorText);
14503
15026
  }
14504
15027
  };
14505
- useEffect8(() => {
15028
+ useEffect10(() => {
14506
15029
  updateImageSrc();
14507
15030
  }, [value]);
14508
- return /* @__PURE__ */ jsxs54(Fragment10, { children: [
14509
- /* @__PURE__ */ jsx81(
15031
+ return /* @__PURE__ */ jsxs59(Fragment10, { children: [
15032
+ /* @__PURE__ */ jsx87(
14510
15033
  "input",
14511
15034
  {
14512
15035
  css: input2,
@@ -14518,8 +15041,8 @@ var ParameterImageInner = forwardRef9(
14518
15041
  ...props
14519
15042
  }
14520
15043
  ),
14521
- /* @__PURE__ */ jsxs54("div", { css: imageWrapper, children: [
14522
- deferredValue && !errorMessage ? /* @__PURE__ */ jsx81(
15044
+ /* @__PURE__ */ jsxs59("div", { css: imageWrapper, children: [
15045
+ deferredValue && !errorMessage ? /* @__PURE__ */ jsx87(
14523
15046
  "img",
14524
15047
  {
14525
15048
  src: deferredValue,
@@ -14529,24 +15052,24 @@ var ParameterImageInner = forwardRef9(
14529
15052
  loading: "lazy"
14530
15053
  }
14531
15054
  ) : null,
14532
- deferredValue && errorMessage ? /* @__PURE__ */ jsx81(BrokenImage, { css: img }) : null
15055
+ deferredValue && errorMessage ? /* @__PURE__ */ jsx87(BrokenImage, { css: img }) : null
14533
15056
  ] }),
14534
- loading ? /* @__PURE__ */ jsx81(LoadingIcon, {}) : null
15057
+ loading ? /* @__PURE__ */ jsx87(LoadingIcon, {}) : null
14535
15058
  ] });
14536
15059
  }
14537
15060
  );
14538
15061
 
14539
15062
  // src/components/ParameterInputs/ParameterInput.tsx
14540
- import { forwardRef as forwardRef10 } from "react";
14541
- import { jsx as jsx82 } from "@emotion/react/jsx-runtime";
14542
- var ParameterInput = forwardRef10((props, ref) => {
15063
+ import { forwardRef as forwardRef13 } from "react";
15064
+ import { jsx as jsx88 } from "@emotion/react/jsx-runtime";
15065
+ var ParameterInput = forwardRef13((props, ref) => {
14543
15066
  const { shellProps, innerProps } = extractParameterProps(props);
14544
- return /* @__PURE__ */ jsx82(ParameterShell, { "data-test-id": "parameter-input", ...shellProps, children: /* @__PURE__ */ jsx82(ParameterInputInner, { ref, ...innerProps }) });
15067
+ return /* @__PURE__ */ jsx88(ParameterShell, { "data-test-id": "parameter-input", ...shellProps, children: /* @__PURE__ */ jsx88(ParameterInputInner, { ref, ...innerProps }) });
14545
15068
  });
14546
- var ParameterInputInner = forwardRef10(
15069
+ var ParameterInputInner = forwardRef13(
14547
15070
  ({ ...props }, ref) => {
14548
15071
  const { id, label, hiddenLabel } = useParameterShell();
14549
- return /* @__PURE__ */ jsx82(
15072
+ return /* @__PURE__ */ jsx88(
14550
15073
  "input",
14551
15074
  {
14552
15075
  css: input2,
@@ -14562,19 +15085,19 @@ var ParameterInputInner = forwardRef10(
14562
15085
  );
14563
15086
 
14564
15087
  // src/components/ParameterInputs/ParameterLink.tsx
14565
- import { forwardRef as forwardRef11 } from "react";
14566
- import { jsx as jsx83, jsxs as jsxs55 } from "@emotion/react/jsx-runtime";
14567
- var ParameterLink = forwardRef11(
14568
- ({ buttonText = "Select project map node", disabled, onConnectLink, externalLink, ...props }, ref) => {
15088
+ import { forwardRef as forwardRef14 } from "react";
15089
+ import { jsx as jsx89, jsxs as jsxs60 } from "@emotion/react/jsx-runtime";
15090
+ var ParameterLink = forwardRef14(
15091
+ ({ buttonText = "Select link", disabled, onConnectLink, externalLink, ...props }, ref) => {
14569
15092
  const { shellProps, innerProps } = extractParameterProps(props);
14570
- return /* @__PURE__ */ jsx83(
15093
+ return /* @__PURE__ */ jsx89(
14571
15094
  ParameterShell,
14572
15095
  {
14573
15096
  "data-test-id": "link-parameter-editor",
14574
15097
  ...shellProps,
14575
15098
  label: innerProps.value ? shellProps.label : "",
14576
15099
  title: !innerProps.value ? shellProps.label : void 0,
14577
- children: !innerProps.value ? /* @__PURE__ */ jsx83("button", { type: "button", css: dataConnectButton, disabled, onClick: onConnectLink, children: buttonText }) : /* @__PURE__ */ jsx83(
15100
+ children: !innerProps.value ? /* @__PURE__ */ jsx89("button", { type: "button", css: dataConnectButton, disabled, onClick: onConnectLink, children: buttonText }) : /* @__PURE__ */ jsx89(
14578
15101
  ParameterLinkInner,
14579
15102
  {
14580
15103
  onConnectLink,
@@ -14587,15 +15110,15 @@ var ParameterLink = forwardRef11(
14587
15110
  );
14588
15111
  }
14589
15112
  );
14590
- var ParameterLinkInner = forwardRef11(
15113
+ var ParameterLinkInner = forwardRef14(
14591
15114
  ({ externalLink, onConnectLink, disabled, ...props }, ref) => {
14592
15115
  const { id, label, hiddenLabel } = useParameterShell();
14593
- return /* @__PURE__ */ jsxs55("div", { css: inputWrapper, children: [
14594
- /* @__PURE__ */ jsx83(
15116
+ return /* @__PURE__ */ jsxs60("div", { css: inputWrapper, children: [
15117
+ /* @__PURE__ */ jsx89(
14595
15118
  "input",
14596
15119
  {
14597
15120
  type: "text",
14598
- css: [input2, linkParameterInput],
15121
+ css: [input2, linkParameterInput(!!externalLink)],
14599
15122
  readOnly: Boolean(props.value),
14600
15123
  id,
14601
15124
  ref,
@@ -14603,34 +15126,36 @@ var ParameterLinkInner = forwardRef11(
14603
15126
  ...props
14604
15127
  }
14605
15128
  ),
14606
- /* @__PURE__ */ jsx83(
14607
- "button",
14608
- {
14609
- type: "button",
14610
- css: linkParameterBtn,
14611
- disabled,
14612
- onClick: onConnectLink,
14613
- title: "edit current selection",
14614
- children: "edit"
14615
- }
14616
- ),
14617
- externalLink ? /* @__PURE__ */ jsx83(
14618
- "a",
14619
- {
14620
- href: externalLink,
14621
- css: linkParameterIcon,
14622
- title: "Open link in new tab",
14623
- target: "_blank",
14624
- rel: "noopener noreferrer",
14625
- children: /* @__PURE__ */ jsx83(Icon, { icon: "arrows-expand-up-right", iconColor: "currentColor", size: "1rem" })
14626
- }
14627
- ) : null
15129
+ /* @__PURE__ */ jsxs60("div", { css: linkParameterControls, children: [
15130
+ /* @__PURE__ */ jsx89(
15131
+ "button",
15132
+ {
15133
+ type: "button",
15134
+ css: linkParameterBtn,
15135
+ disabled,
15136
+ onClick: onConnectLink,
15137
+ title: "edit current selection",
15138
+ children: "edit"
15139
+ }
15140
+ ),
15141
+ externalLink ? /* @__PURE__ */ jsx89(
15142
+ "a",
15143
+ {
15144
+ href: externalLink,
15145
+ css: linkParameterIcon,
15146
+ title: "Open link in new tab",
15147
+ target: "_blank",
15148
+ rel: "noopener noreferrer",
15149
+ children: /* @__PURE__ */ jsx89(Icon, { icon: "arrows-expand-up-right", iconColor: "currentColor", size: "1rem" })
15150
+ }
15151
+ ) : null
15152
+ ] })
14628
15153
  ] });
14629
15154
  }
14630
15155
  );
14631
15156
 
14632
15157
  // src/components/ParameterInputs/ParameterNameAndPublicIdInput.tsx
14633
- import { Fragment as Fragment11, jsx as jsx84, jsxs as jsxs56 } from "@emotion/react/jsx-runtime";
15158
+ import { Fragment as Fragment11, jsx as jsx90, jsxs as jsxs61 } from "@emotion/react/jsx-runtime";
14634
15159
  var ParameterNameAndPublicIdInput = ({
14635
15160
  id,
14636
15161
  onBlur,
@@ -14656,8 +15181,8 @@ var ParameterNameAndPublicIdInput = ({
14656
15181
  navigator.clipboard.writeText(values[publicIdFieldName]);
14657
15182
  };
14658
15183
  autoFocus == null ? void 0 : autoFocus();
14659
- return /* @__PURE__ */ jsxs56(Fragment11, { children: [
14660
- /* @__PURE__ */ jsx84(
15184
+ return /* @__PURE__ */ jsxs61(Fragment11, { children: [
15185
+ /* @__PURE__ */ jsx90(
14661
15186
  ParameterInput,
14662
15187
  {
14663
15188
  id: nameIdField,
@@ -14676,7 +15201,7 @@ var ParameterNameAndPublicIdInput = ({
14676
15201
  value: values[nameIdField]
14677
15202
  }
14678
15203
  ),
14679
- /* @__PURE__ */ jsx84(
15204
+ /* @__PURE__ */ jsx90(
14680
15205
  ParameterInput,
14681
15206
  {
14682
15207
  id: publicIdFieldName,
@@ -14690,11 +15215,11 @@ var ParameterNameAndPublicIdInput = ({
14690
15215
  caption: publicIdCaption,
14691
15216
  placeholder: publicIdPlaceholderText,
14692
15217
  errorMessage: publicIdError,
14693
- menuItems: /* @__PURE__ */ jsx84(
15218
+ menuItems: /* @__PURE__ */ jsx90(
14694
15219
  MenuItem,
14695
15220
  {
14696
15221
  disabled: !values[publicIdFieldName],
14697
- icon: /* @__PURE__ */ jsx84(Icon, { icon: "path-trim", iconColor: "currentColor" }),
15222
+ icon: /* @__PURE__ */ jsx90(Icon, { icon: "path-trim", iconColor: "currentColor" }),
14698
15223
  onClick: handleCopyPidFieldValue,
14699
15224
  children: "Copy"
14700
15225
  }
@@ -14702,14 +15227,14 @@ var ParameterNameAndPublicIdInput = ({
14702
15227
  value: values[publicIdFieldName]
14703
15228
  }
14704
15229
  ),
14705
- (warnOverLength == null ? void 0 : warnOverLength.length) && values[publicIdFieldName].length > warnOverLength.length ? /* @__PURE__ */ jsx84(Callout, { type: "caution", children: warnOverLength.message }) : null
15230
+ (warnOverLength == null ? void 0 : warnOverLength.length) && values[publicIdFieldName].length > warnOverLength.length ? /* @__PURE__ */ jsx90(Callout, { type: "caution", children: warnOverLength.message }) : null
14706
15231
  ] });
14707
15232
  };
14708
15233
 
14709
15234
  // src/components/ParameterInputs/ParameterRichText.tsx
14710
- import { forwardRef as forwardRef12 } from "react";
14711
- import { Fragment as Fragment12, jsx as jsx85, jsxs as jsxs57 } from "@emotion/react/jsx-runtime";
14712
- var ParameterRichText = forwardRef12(
15235
+ import { forwardRef as forwardRef15 } from "react";
15236
+ import { Fragment as Fragment12, jsx as jsx91, jsxs as jsxs62 } from "@emotion/react/jsx-runtime";
15237
+ var ParameterRichText = forwardRef15(
14713
15238
  ({
14714
15239
  label,
14715
15240
  labelLeadingIcon,
@@ -14722,7 +15247,7 @@ var ParameterRichText = forwardRef12(
14722
15247
  menuItems,
14723
15248
  ...props
14724
15249
  }, ref) => {
14725
- return /* @__PURE__ */ jsxs57(
15250
+ return /* @__PURE__ */ jsxs62(
14726
15251
  ParameterShell,
14727
15252
  {
14728
15253
  "data-test-id": "parameter-input",
@@ -14735,16 +15260,16 @@ var ParameterRichText = forwardRef12(
14735
15260
  captionTestId,
14736
15261
  menuItems,
14737
15262
  children: [
14738
- /* @__PURE__ */ jsx85(ParameterRichTextInner, { ref, ...props }),
14739
- menuItems ? /* @__PURE__ */ jsx85(ParameterMenuButton, { label: `${label} menu`, children: /* @__PURE__ */ jsx85(Fragment12, { children: menuItems }) }) : null
15263
+ /* @__PURE__ */ jsx91(ParameterRichTextInner, { ref, ...props }),
15264
+ menuItems ? /* @__PURE__ */ jsx91(ParameterMenuButton, { label: `${label} menu`, children: /* @__PURE__ */ jsx91(Fragment12, { children: menuItems }) }) : null
14740
15265
  ]
14741
15266
  }
14742
15267
  );
14743
15268
  }
14744
15269
  );
14745
- var ParameterRichTextInner = forwardRef12(({ ...props }, ref) => {
15270
+ var ParameterRichTextInner = forwardRef15(({ ...props }, ref) => {
14746
15271
  const { id, label, hiddenLabel } = useParameterShell();
14747
- return /* @__PURE__ */ jsx85(
15272
+ return /* @__PURE__ */ jsx91(
14748
15273
  "textarea",
14749
15274
  {
14750
15275
  css: [input2, textarea2],
@@ -14757,18 +15282,18 @@ var ParameterRichTextInner = forwardRef12(({ ...props }, ref) => {
14757
15282
  });
14758
15283
 
14759
15284
  // src/components/ParameterInputs/ParameterSelect.tsx
14760
- import { forwardRef as forwardRef13 } from "react";
14761
- import { jsx as jsx86, jsxs as jsxs58 } from "@emotion/react/jsx-runtime";
14762
- var ParameterSelect = forwardRef13(
15285
+ import { forwardRef as forwardRef16 } from "react";
15286
+ import { jsx as jsx92, jsxs as jsxs63 } from "@emotion/react/jsx-runtime";
15287
+ var ParameterSelect = forwardRef16(
14763
15288
  ({ defaultOption, options, ...props }, ref) => {
14764
15289
  const { shellProps, innerProps } = extractParameterProps(props);
14765
- return /* @__PURE__ */ jsx86(ParameterShell, { ...shellProps, children: /* @__PURE__ */ jsx86(ParameterSelectInner, { options, defaultOption, ...innerProps, ref }) });
15290
+ return /* @__PURE__ */ jsx92(ParameterShell, { ...shellProps, children: /* @__PURE__ */ jsx92(ParameterSelectInner, { options, defaultOption, ...innerProps, ref }) });
14766
15291
  }
14767
15292
  );
14768
- var ParameterSelectInner = forwardRef13(
15293
+ var ParameterSelectInner = forwardRef16(
14769
15294
  ({ defaultOption, options, ...props }, ref) => {
14770
15295
  const { id, label, hiddenLabel } = useParameterShell();
14771
- return /* @__PURE__ */ jsxs58(
15296
+ return /* @__PURE__ */ jsxs63(
14772
15297
  "select",
14773
15298
  {
14774
15299
  css: [input2, selectInput],
@@ -14777,10 +15302,10 @@ var ParameterSelectInner = forwardRef13(
14777
15302
  ref,
14778
15303
  ...props,
14779
15304
  children: [
14780
- defaultOption ? /* @__PURE__ */ jsx86("option", { value: "", children: defaultOption }) : null,
15305
+ defaultOption ? /* @__PURE__ */ jsx92("option", { value: "", children: defaultOption }) : null,
14781
15306
  options.map((option) => {
14782
15307
  var _a;
14783
- return /* @__PURE__ */ jsx86("option", { value: (_a = option.value) != null ? _a : option.label, children: option.label }, option.label);
15308
+ return /* @__PURE__ */ jsx92("option", { value: (_a = option.value) != null ? _a : option.label, children: option.label }, option.label);
14784
15309
  })
14785
15310
  ]
14786
15311
  }
@@ -14789,15 +15314,15 @@ var ParameterSelectInner = forwardRef13(
14789
15314
  );
14790
15315
 
14791
15316
  // src/components/ParameterInputs/ParameterTextarea.tsx
14792
- import { forwardRef as forwardRef14 } from "react";
14793
- import { jsx as jsx87 } from "@emotion/react/jsx-runtime";
14794
- var ParameterTextarea = forwardRef14((props, ref) => {
15317
+ import { forwardRef as forwardRef17 } from "react";
15318
+ import { jsx as jsx93 } from "@emotion/react/jsx-runtime";
15319
+ var ParameterTextarea = forwardRef17((props, ref) => {
14795
15320
  const { shellProps, innerProps } = extractParameterProps(props);
14796
- return /* @__PURE__ */ jsx87(ParameterShell, { "data-test-id": "parameter-textarea", ...shellProps, children: /* @__PURE__ */ jsx87(ParameterTextareaInner, { ref, ...innerProps }) });
15321
+ return /* @__PURE__ */ jsx93(ParameterShell, { "data-test-id": "parameter-textarea", ...shellProps, children: /* @__PURE__ */ jsx93(ParameterTextareaInner, { ref, ...innerProps }) });
14797
15322
  });
14798
- var ParameterTextareaInner = forwardRef14(({ ...props }, ref) => {
15323
+ var ParameterTextareaInner = forwardRef17(({ ...props }, ref) => {
14799
15324
  const { id, label, hiddenLabel } = useParameterShell();
14800
- return /* @__PURE__ */ jsx87(
15325
+ return /* @__PURE__ */ jsx93(
14801
15326
  "textarea",
14802
15327
  {
14803
15328
  css: [input2, textarea2],
@@ -14810,18 +15335,18 @@ var ParameterTextareaInner = forwardRef14(({ ...props }, ref) => {
14810
15335
  });
14811
15336
 
14812
15337
  // src/components/ParameterInputs/ParameterToggle.tsx
14813
- import { forwardRef as forwardRef15 } from "react";
14814
- import { jsx as jsx88, jsxs as jsxs59 } from "@emotion/react/jsx-runtime";
14815
- var ParameterToggle = forwardRef15((props, ref) => {
15338
+ import { forwardRef as forwardRef18 } from "react";
15339
+ import { jsx as jsx94, jsxs as jsxs64 } from "@emotion/react/jsx-runtime";
15340
+ var ParameterToggle = forwardRef18((props, ref) => {
14816
15341
  const { shellProps, innerProps } = extractParameterProps(props);
14817
- return /* @__PURE__ */ jsx88(ParameterShell, { ...shellProps, children: /* @__PURE__ */ jsx88(ParameterToggleInner, { ref, ...innerProps }) });
15342
+ return /* @__PURE__ */ jsx94(ParameterShell, { ...shellProps, children: /* @__PURE__ */ jsx94(ParameterToggleInner, { ref, ...innerProps }) });
14818
15343
  });
14819
- var ParameterToggleInner = forwardRef15(
15344
+ var ParameterToggleInner = forwardRef18(
14820
15345
  ({ ...props }, ref) => {
14821
15346
  const { id, label } = useParameterShell();
14822
- return /* @__PURE__ */ jsxs59("label", { css: inputToggleLabel2, children: [
14823
- /* @__PURE__ */ jsx88("input", { css: toggleInput2, type: props.type, id, ref, ...props }),
14824
- /* @__PURE__ */ jsx88("span", { css: inlineLabel2, children: label })
15347
+ return /* @__PURE__ */ jsxs64("label", { css: inputToggleLabel2, children: [
15348
+ /* @__PURE__ */ jsx94("input", { css: toggleInput2, type: props.type, id, ref, ...props }),
15349
+ /* @__PURE__ */ jsx94("span", { css: inlineLabel2, children: label })
14825
15350
  ] });
14826
15351
  }
14827
15352
  );
@@ -14835,13 +15360,13 @@ import {
14835
15360
  import { Portal as Portal2 } from "reakit/Portal";
14836
15361
 
14837
15362
  // src/components/Popover/Popover.styles.ts
14838
- import { css as css64 } from "@emotion/react";
14839
- var PopoverBtn = css64`
15363
+ import { css as css69 } from "@emotion/react";
15364
+ var PopoverBtn = css69`
14840
15365
  border: none;
14841
15366
  background: none;
14842
15367
  padding: 0;
14843
15368
  `;
14844
- var Popover = css64`
15369
+ var Popover = css69`
14845
15370
  border-left: var(--spacing-xs) solid var(--brand-secondary-3);
14846
15371
  border-radius: var(--rounded-base);
14847
15372
  box-shadow: var(--shadow-base);
@@ -14854,7 +15379,7 @@ var Popover = css64`
14854
15379
  `;
14855
15380
 
14856
15381
  // src/components/Popover/Popover.tsx
14857
- import { Fragment as Fragment13, jsx as jsx89, jsxs as jsxs60 } from "@emotion/react/jsx-runtime";
15382
+ import { Fragment as Fragment13, jsx as jsx95, jsxs as jsxs65 } from "@emotion/react/jsx-runtime";
14858
15383
  var Popover2 = ({
14859
15384
  iconColor = "green",
14860
15385
  buttonText,
@@ -14863,38 +15388,38 @@ var Popover2 = ({
14863
15388
  children
14864
15389
  }) => {
14865
15390
  const popover = usePopoverState({ placement });
14866
- return /* @__PURE__ */ jsxs60(Fragment13, { children: [
14867
- /* @__PURE__ */ jsxs60(PopoverDisclosure, { ...popover, css: PopoverBtn, title: buttonText, children: [
14868
- /* @__PURE__ */ jsx89(Icon, { icon: "info", iconColor, size: "1rem" }),
14869
- /* @__PURE__ */ jsx89("span", { hidden: true, children: buttonText })
15391
+ return /* @__PURE__ */ jsxs65(Fragment13, { children: [
15392
+ /* @__PURE__ */ jsxs65(PopoverDisclosure, { ...popover, css: PopoverBtn, title: buttonText, children: [
15393
+ /* @__PURE__ */ jsx95(Icon, { icon: "info", iconColor, size: "1rem" }),
15394
+ /* @__PURE__ */ jsx95("span", { hidden: true, children: buttonText })
14870
15395
  ] }),
14871
- /* @__PURE__ */ jsx89(Portal2, { children: /* @__PURE__ */ jsx89(ReakitPopover, { css: Popover, ...popover, "aria-label": ariaLabel, children }) })
15396
+ /* @__PURE__ */ jsx95(Portal2, { children: /* @__PURE__ */ jsx95(ReakitPopover, { css: Popover, ...popover, "aria-label": ariaLabel, children }) })
14872
15397
  ] });
14873
15398
  };
14874
15399
 
14875
15400
  // src/components/ProgressList/ProgressList.tsx
14876
- import { css as css66 } from "@emotion/react";
14877
- import { useMemo as useMemo2 } from "react";
15401
+ import { css as css71 } from "@emotion/react";
15402
+ import { useMemo as useMemo3 } from "react";
14878
15403
  import { CgCheckO, CgRadioCheck, CgRecord } from "react-icons/cg";
14879
15404
 
14880
15405
  // src/components/ProgressList/styles/ProgressList.styles.ts
14881
- import { css as css65 } from "@emotion/react";
14882
- var progressListStyles = css65`
15406
+ import { css as css70 } from "@emotion/react";
15407
+ var progressListStyles = css70`
14883
15408
  display: flex;
14884
15409
  flex-direction: column;
14885
15410
  gap: var(--spacing-sm);
14886
15411
  list-style-type: none;
14887
15412
  `;
14888
- var progressListItemStyles = css65`
15413
+ var progressListItemStyles = css70`
14889
15414
  display: flex;
14890
15415
  gap: var(--spacing-base);
14891
15416
  align-items: center;
14892
15417
  `;
14893
15418
 
14894
15419
  // src/components/ProgressList/ProgressList.tsx
14895
- import { jsx as jsx90, jsxs as jsxs61 } from "@emotion/react/jsx-runtime";
15420
+ import { jsx as jsx96, jsxs as jsxs66 } from "@emotion/react/jsx-runtime";
14896
15421
  var ProgressList = ({ inProgressId, items, autoEllipsis, ...htmlProps }) => {
14897
- const itemsWithStatus = useMemo2(() => {
15422
+ const itemsWithStatus = useMemo3(() => {
14898
15423
  const indexOfInProgressItem = items.findIndex(({ id }) => id === inProgressId);
14899
15424
  return items.map((item, index) => {
14900
15425
  let status = "queued";
@@ -14906,8 +15431,8 @@ var ProgressList = ({ inProgressId, items, autoEllipsis, ...htmlProps }) => {
14906
15431
  return { ...item, status };
14907
15432
  });
14908
15433
  }, [items, inProgressId]);
14909
- return /* @__PURE__ */ jsx90("ol", { css: progressListStyles, ...htmlProps, children: itemsWithStatus.map(({ id, label, status, error, errorLevel }) => {
14910
- return /* @__PURE__ */ jsx90(
15434
+ return /* @__PURE__ */ jsx96("ol", { css: progressListStyles, ...htmlProps, children: itemsWithStatus.map(({ id, label, status, error, errorLevel }) => {
15435
+ return /* @__PURE__ */ jsx96(
14911
15436
  ProgressListItem,
14912
15437
  {
14913
15438
  status,
@@ -14927,7 +15452,7 @@ var ProgressListItem = ({
14927
15452
  errorLevel = "danger",
14928
15453
  autoEllipsis = false
14929
15454
  }) => {
14930
- const Icon2 = useMemo2(() => {
15455
+ const Icon2 = useMemo3(() => {
14931
15456
  if (error) {
14932
15457
  return warningIcon;
14933
15458
  }
@@ -14938,14 +15463,14 @@ var ProgressListItem = ({
14938
15463
  };
14939
15464
  return iconPerStatus[status];
14940
15465
  }, [status, error]);
14941
- const statusStyles = useMemo2(() => {
15466
+ const statusStyles = useMemo3(() => {
14942
15467
  if (error) {
14943
- return errorLevel === "caution" ? css66`
15468
+ return errorLevel === "caution" ? css71`
14944
15469
  color: rgb(161, 98, 7);
14945
15470
  & svg {
14946
15471
  color: rgb(250, 204, 21);
14947
15472
  }
14948
- ` : css66`
15473
+ ` : css71`
14949
15474
  color: rgb(185, 28, 28);
14950
15475
  & svg {
14951
15476
  color: var(--brand-primary-2);
@@ -14953,221 +15478,40 @@ var ProgressListItem = ({
14953
15478
  `;
14954
15479
  }
14955
15480
  const colorPerStatus = {
14956
- completed: css66`
15481
+ completed: css71`
14957
15482
  opacity: 0.75;
14958
15483
  `,
14959
- inProgress: css66`
15484
+ inProgress: css71`
14960
15485
  -webkit-text-stroke-width: thin;
14961
15486
  `,
14962
- queued: css66`
15487
+ queued: css71`
14963
15488
  opacity: 0.5;
14964
15489
  `
14965
15490
  };
14966
15491
  return colorPerStatus[status];
14967
15492
  }, [status, error, errorLevel]);
14968
- return /* @__PURE__ */ jsxs61("li", { css: [progressListItemStyles, statusStyles], children: [
14969
- /* @__PURE__ */ jsx90(Tooltip, { title: error != null ? error : "", children: /* @__PURE__ */ jsx90("div", { children: /* @__PURE__ */ jsx90(Icon2, { size: 20 }) }) }),
14970
- /* @__PURE__ */ jsxs61("div", { children: [
15493
+ return /* @__PURE__ */ jsxs66("li", { css: [progressListItemStyles, statusStyles], children: [
15494
+ /* @__PURE__ */ jsx96(Tooltip, { title: error != null ? error : "", children: /* @__PURE__ */ jsx96("div", { children: /* @__PURE__ */ jsx96(Icon2, { size: 20 }) }) }),
15495
+ /* @__PURE__ */ jsxs66("div", { children: [
14971
15496
  children,
14972
- /* @__PURE__ */ jsx90("span", { css: { visibility: autoEllipsis && status === "inProgress" && !error ? "visible" : "hidden" }, children: "..." })
15497
+ /* @__PURE__ */ jsx96("span", { css: { visibility: autoEllipsis && status === "inProgress" && !error ? "visible" : "hidden" }, children: "..." })
14973
15498
  ] })
14974
15499
  ] });
14975
15500
  };
14976
15501
 
14977
- // src/components/SegmentedControl/SegmentedControl.tsx
14978
- import { css as css68 } from "@emotion/react";
14979
- import { useCallback as useCallback4, useMemo as useMemo3 } from "react";
14980
- import { CgCheck as CgCheck3 } from "react-icons/cg";
14981
-
14982
- // src/components/SegmentedControl/SegmentedControl.styles.ts
14983
- import { css as css67 } from "@emotion/react";
14984
- var segmentedControlStyles = css67`
14985
- --segmented-control-rounded-value: var(--rounded-base);
14986
- --segmented-control-border-width: 1px;
14987
- --segmented-control-selected-color: var(--brand-secondary-3);
14988
- --segmented-control-first-border-radius: var(--segmented-control-rounded-value) 0 0
14989
- var(--segmented-control-rounded-value);
14990
- --segmented-control-last-border-radius: 0 var(--segmented-control-rounded-value)
14991
- var(--segmented-control-rounded-value) 0;
14992
-
14993
- position: relative;
14994
- display: flex;
14995
- justify-content: flex-start;
14996
- width: fit-content;
14997
- background-color: var(--gray-300);
14998
- padding: var(--segmented-control-border-width);
14999
- gap: var(--segmented-control-border-width);
15000
- border-radius: calc(var(--segmented-control-rounded-value) + var(--segmented-control-border-width));
15001
- font-size: var(--fs-xs);
15002
- `;
15003
- var segmentedControlVerticalStyles = css67`
15004
- flex-direction: column;
15005
- --segmented-control-first-border-radius: var(--segmented-control-rounded-value)
15006
- var(--segmented-control-rounded-value) 0 0;
15007
- --segmented-control-last-border-radius: 0 0 var(--segmented-control-rounded-value)
15008
- var(--segmented-control-rounded-value);
15009
- `;
15010
- var segmentedControlItemStyles = css67`
15011
- &:first-of-type label {
15012
- border-radius: var(--segmented-control-first-border-radius);
15013
- }
15014
- &:last-of-type label {
15015
- border-radius: var(--segmented-control-last-border-radius);
15016
- }
15017
- `;
15018
- var segmentedControlInputStyles = css67`
15019
- clip: rect(0, 0, 0, 0);
15020
- position: absolute;
15021
- width: 1px;
15022
- height: 1px;
15023
- overflow: hidden;
15024
- `;
15025
- var segmentedControlLabelStyles = css67`
15026
- position: relative;
15027
- display: flex;
15028
- align-items: center;
15029
- justify-content: center;
15030
- height: 2rem;
15031
- padding-inline: var(--spacing-base);
15032
- background-color: white;
15033
- transition-property: background-color, color, box-shadow;
15034
- transition-duration: var(--duration-xfast);
15035
- transition-timing-function: ease-in-out;
15036
- z-index: 1;
15037
- cursor: pointer;
15038
-
15039
- &:has(:checked:not(:disabled)) {
15040
- background-color: var(--segmented-control-selected-color);
15041
- outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
15042
- box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
15043
- color: white;
15044
- -webkit-text-stroke-width: thin;
15045
- z-index: 0;
15046
- }
15047
-
15048
- &:hover:not(:has(:disabled, :checked)) {
15049
- background-color: var(--gray-100);
15050
- }
15051
-
15052
- &:has(:disabled) {
15053
- color: var(--gray-400);
15054
- cursor: default;
15055
- }
15056
-
15057
- &:has(:checked:disabled) {
15058
- color: var(--gray-50);
15059
- background-color: var(--gray-400);
15060
- }
15061
- `;
15062
- var segmentedControlLabelIconOnlyStyles = css67`
15063
- padding-inline: 0.5em;
15064
- `;
15065
- var segmentedControlLabelCheckStyles = css67`
15066
- opacity: 0.5;
15067
- `;
15068
- var segmentedControlLabelContentStyles = css67`
15069
- display: flex;
15070
- align-items: center;
15071
- justify-content: center;
15072
- gap: var(--spacing-sm);
15073
- height: 100%;
15074
- `;
15075
- var segmentedControlLabelTextStyles = css67``;
15076
-
15077
- // src/components/SegmentedControl/SegmentedControl.tsx
15078
- import { jsx as jsx91, jsxs as jsxs62 } from "@emotion/react/jsx-runtime";
15079
- var SegmentedControl = ({
15080
- name,
15081
- options,
15082
- value,
15083
- onChange,
15084
- noCheckmark = false,
15085
- disabled = false,
15086
- orientation = "horizontal",
15087
- size = "md",
15088
- ...props
15089
- }) => {
15090
- const onOptionChange = useCallback4(
15091
- (event) => {
15092
- if (event.target.checked) {
15093
- onChange == null ? void 0 : onChange(options[parseInt(event.target.value)].value);
15094
- }
15095
- },
15096
- [options, onChange]
15097
- );
15098
- const sizeStyles = useMemo3(() => {
15099
- const map = {
15100
- sm: css68({ height: "calc(24px - 2px)", fontSize: "var(--fs-xs)" }),
15101
- md: css68({ height: "calc(32px - 2px)", fontSize: "var(--fs-sm)" }),
15102
- lg: css68({ height: "calc(40px - 2px)", fontSize: "var(--fs-base)" })
15103
- };
15104
- return map[size];
15105
- }, [size]);
15106
- const isIconOnly = useMemo3(() => {
15107
- return options.every((option) => option.icon && !option.label);
15108
- }, [options]);
15109
- return /* @__PURE__ */ jsx91(
15110
- "div",
15111
- {
15112
- css: [segmentedControlStyles, orientation === "vertical" ? segmentedControlVerticalStyles : void 0],
15113
- ...props,
15114
- children: options.map((option, index) => {
15115
- const text = option.label ? option.label : option.icon ? null : String(option.value);
15116
- const isDisabled = disabled || option.disabled;
15117
- return /* @__PURE__ */ jsx91(
15118
- Tooltip,
15119
- {
15120
- title: isDisabled || !option.tooltip ? "" : option.tooltip,
15121
- children: /* @__PURE__ */ jsx91("div", { css: segmentedControlItemStyles, children: /* @__PURE__ */ jsxs62(
15122
- "label",
15123
- {
15124
- css: [
15125
- segmentedControlLabelStyles,
15126
- sizeStyles,
15127
- isIconOnly ? segmentedControlLabelIconOnlyStyles : void 0
15128
- ],
15129
- children: [
15130
- /* @__PURE__ */ jsx91(
15131
- "input",
15132
- {
15133
- css: segmentedControlInputStyles,
15134
- type: "radio",
15135
- name,
15136
- value: index,
15137
- checked: option.value === value,
15138
- onChange: onOptionChange,
15139
- disabled: isDisabled
15140
- }
15141
- ),
15142
- option.value !== value || noCheckmark ? null : /* @__PURE__ */ jsx91(CgCheck3, { css: segmentedControlLabelCheckStyles, "aria-label": "Selected", size: "1.5em" }),
15143
- /* @__PURE__ */ jsxs62("span", { css: segmentedControlLabelContentStyles, children: [
15144
- !option.icon ? null : /* @__PURE__ */ jsx91(option.icon, { size: "1.5em" }),
15145
- !text ? null : /* @__PURE__ */ jsx91("span", { css: segmentedControlLabelTextStyles, children: text })
15146
- ] })
15147
- ]
15148
- }
15149
- ) })
15150
- },
15151
- JSON.stringify(option.value)
15152
- );
15153
- })
15154
- }
15155
- );
15156
- };
15157
-
15158
15502
  // src/components/Skeleton/Skeleton.styles.ts
15159
- import { css as css69, keyframes as keyframes4 } from "@emotion/react";
15503
+ import { css as css72, keyframes as keyframes4 } from "@emotion/react";
15160
15504
  var lightFadingOut = keyframes4`
15161
15505
  from { opacity: 0.1; }
15162
15506
  to { opacity: 0.025; }
15163
15507
  `;
15164
- var skeletonStyles = css69`
15508
+ var skeletonStyles = css72`
15165
15509
  animation: ${lightFadingOut} 1s ease-out infinite alternate;
15166
15510
  background-color: var(--gray-900);
15167
15511
  `;
15168
15512
 
15169
15513
  // src/components/Skeleton/Skeleton.tsx
15170
- import { jsx as jsx92 } from "@emotion/react/jsx-runtime";
15514
+ import { jsx as jsx97 } from "@emotion/react/jsx-runtime";
15171
15515
  var Skeleton = ({
15172
15516
  width = "100%",
15173
15517
  height = "1.25rem",
@@ -15175,7 +15519,7 @@ var Skeleton = ({
15175
15519
  circle = false,
15176
15520
  children,
15177
15521
  ...otherProps
15178
- }) => /* @__PURE__ */ jsx92(
15522
+ }) => /* @__PURE__ */ jsx97(
15179
15523
  "div",
15180
15524
  {
15181
15525
  css: [
@@ -15195,11 +15539,11 @@ var Skeleton = ({
15195
15539
  );
15196
15540
 
15197
15541
  // src/components/Switch/Switch.tsx
15198
- import * as React18 from "react";
15542
+ import * as React20 from "react";
15199
15543
 
15200
15544
  // src/components/Switch/Switch.styles.ts
15201
- import { css as css70 } from "@emotion/react";
15202
- var SwitchInputContainer = css70`
15545
+ import { css as css73 } from "@emotion/react";
15546
+ var SwitchInputContainer = css73`
15203
15547
  cursor: pointer;
15204
15548
  display: inline-block;
15205
15549
  position: relative;
@@ -15208,7 +15552,7 @@ var SwitchInputContainer = css70`
15208
15552
  vertical-align: middle;
15209
15553
  user-select: none;
15210
15554
  `;
15211
- var SwitchInput = css70`
15555
+ var SwitchInput = css73`
15212
15556
  appearance: none;
15213
15557
  border-radius: var(--rounded-full);
15214
15558
  background-color: var(--white);
@@ -15246,7 +15590,7 @@ var SwitchInput = css70`
15246
15590
  cursor: not-allowed;
15247
15591
  }
15248
15592
  `;
15249
- var SwitchInputDisabled = css70`
15593
+ var SwitchInputDisabled = css73`
15250
15594
  opacity: var(--opacity-50);
15251
15595
  cursor: not-allowed;
15252
15596
 
@@ -15254,7 +15598,7 @@ var SwitchInputDisabled = css70`
15254
15598
  cursor: not-allowed;
15255
15599
  }
15256
15600
  `;
15257
- var SwitchInputLabel = css70`
15601
+ var SwitchInputLabel = css73`
15258
15602
  align-items: center;
15259
15603
  color: var(--brand-secondary-1);
15260
15604
  display: inline-flex;
@@ -15276,98 +15620,98 @@ var SwitchInputLabel = css70`
15276
15620
  top: 0;
15277
15621
  }
15278
15622
  `;
15279
- var SwitchText = css70`
15623
+ var SwitchText = css73`
15280
15624
  color: var(--gray-500);
15281
15625
  font-size: var(--fs-sm);
15282
15626
  padding-inline: var(--spacing-2xl) 0;
15283
15627
  `;
15284
15628
 
15285
15629
  // src/components/Switch/Switch.tsx
15286
- import { Fragment as Fragment14, jsx as jsx93, jsxs as jsxs63 } from "@emotion/react/jsx-runtime";
15287
- var Switch = React18.forwardRef(
15630
+ import { Fragment as Fragment14, jsx as jsx98, jsxs as jsxs67 } from "@emotion/react/jsx-runtime";
15631
+ var Switch = React20.forwardRef(
15288
15632
  ({ label, infoText, toggleText, children, ...inputProps }, ref) => {
15289
15633
  let additionalText = infoText;
15290
15634
  if (infoText && toggleText) {
15291
15635
  additionalText = inputProps.checked ? toggleText : infoText;
15292
15636
  }
15293
- return /* @__PURE__ */ jsxs63(Fragment14, { children: [
15294
- /* @__PURE__ */ jsxs63("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
15295
- /* @__PURE__ */ jsx93("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
15296
- /* @__PURE__ */ jsx93("span", { css: SwitchInputLabel, children: label })
15637
+ return /* @__PURE__ */ jsxs67(Fragment14, { children: [
15638
+ /* @__PURE__ */ jsxs67("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
15639
+ /* @__PURE__ */ jsx98("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
15640
+ /* @__PURE__ */ jsx98("span", { css: SwitchInputLabel, children: label })
15297
15641
  ] }),
15298
- additionalText ? /* @__PURE__ */ jsx93("p", { css: SwitchText, children: additionalText }) : null,
15642
+ additionalText ? /* @__PURE__ */ jsx98("p", { css: SwitchText, children: additionalText }) : null,
15299
15643
  children
15300
15644
  ] });
15301
15645
  }
15302
15646
  );
15303
15647
 
15304
15648
  // src/components/Table/Table.tsx
15305
- import * as React19 from "react";
15649
+ import * as React21 from "react";
15306
15650
 
15307
15651
  // src/components/Table/Table.styles.ts
15308
- import { css as css71 } from "@emotion/react";
15309
- var table = css71`
15652
+ import { css as css74 } from "@emotion/react";
15653
+ var table = css74`
15310
15654
  border-bottom: 1px solid var(--gray-400);
15311
15655
  border-collapse: collapse;
15312
15656
  min-width: 100%;
15313
15657
  table-layout: auto;
15314
15658
  `;
15315
- var tableHead = css71`
15659
+ var tableHead = css74`
15316
15660
  background: var(--gray-100);
15317
15661
  color: var(--brand-secondary-1);
15318
15662
  text-align: left;
15319
15663
  `;
15320
- var tableRow = css71`
15664
+ var tableRow = css74`
15321
15665
  border-bottom: 1px solid var(--gray-200);
15322
15666
  `;
15323
- var tableCellHead = css71`
15667
+ var tableCellHead = css74`
15324
15668
  font-size: var(--fs-sm);
15325
15669
  padding: var(--spacing-base) var(--spacing-md);
15326
15670
  text-transform: uppercase;
15327
15671
  font-weight: var(--fw-bold);
15328
15672
  `;
15329
- var tableCellData = css71`
15673
+ var tableCellData = css74`
15330
15674
  padding: var(--spacing-base) var(--spacing-md);
15331
15675
  `;
15332
15676
 
15333
15677
  // src/components/Table/Table.tsx
15334
- import { jsx as jsx94 } from "@emotion/react/jsx-runtime";
15335
- var Table = React19.forwardRef(({ children, ...otherProps }, ref) => {
15336
- return /* @__PURE__ */ jsx94("table", { ref, css: table, ...otherProps, children });
15678
+ import { jsx as jsx99 } from "@emotion/react/jsx-runtime";
15679
+ var Table = React21.forwardRef(({ children, ...otherProps }, ref) => {
15680
+ return /* @__PURE__ */ jsx99("table", { ref, css: table, ...otherProps, children });
15337
15681
  });
15338
- var TableHead = React19.forwardRef(
15682
+ var TableHead = React21.forwardRef(
15339
15683
  ({ children, ...otherProps }, ref) => {
15340
- return /* @__PURE__ */ jsx94("thead", { ref, css: tableHead, ...otherProps, children });
15684
+ return /* @__PURE__ */ jsx99("thead", { ref, css: tableHead, ...otherProps, children });
15341
15685
  }
15342
15686
  );
15343
- var TableBody = React19.forwardRef(
15687
+ var TableBody = React21.forwardRef(
15344
15688
  ({ children, ...otherProps }, ref) => {
15345
- return /* @__PURE__ */ jsx94("tbody", { ref, ...otherProps, children });
15689
+ return /* @__PURE__ */ jsx99("tbody", { ref, ...otherProps, children });
15346
15690
  }
15347
15691
  );
15348
- var TableFoot = React19.forwardRef(
15692
+ var TableFoot = React21.forwardRef(
15349
15693
  ({ children, ...otherProps }, ref) => {
15350
- return /* @__PURE__ */ jsx94("tfoot", { ref, ...otherProps, children });
15694
+ return /* @__PURE__ */ jsx99("tfoot", { ref, ...otherProps, children });
15351
15695
  }
15352
15696
  );
15353
- var TableRow = React19.forwardRef(
15697
+ var TableRow = React21.forwardRef(
15354
15698
  ({ children, ...otherProps }, ref) => {
15355
- return /* @__PURE__ */ jsx94("tr", { ref, css: tableRow, ...otherProps, children });
15699
+ return /* @__PURE__ */ jsx99("tr", { ref, css: tableRow, ...otherProps, children });
15356
15700
  }
15357
15701
  );
15358
- var TableCellHead = React19.forwardRef(
15702
+ var TableCellHead = React21.forwardRef(
15359
15703
  ({ children, ...otherProps }, ref) => {
15360
- return /* @__PURE__ */ jsx94("th", { ref, css: tableCellHead, ...otherProps, children });
15704
+ return /* @__PURE__ */ jsx99("th", { ref, css: tableCellHead, ...otherProps, children });
15361
15705
  }
15362
15706
  );
15363
- var TableCellData = React19.forwardRef(
15707
+ var TableCellData = React21.forwardRef(
15364
15708
  ({ children, ...otherProps }, ref) => {
15365
- return /* @__PURE__ */ jsx94("td", { ref, css: tableCellData, ...otherProps, children });
15709
+ return /* @__PURE__ */ jsx99("td", { ref, css: tableCellData, ...otherProps, children });
15366
15710
  }
15367
15711
  );
15368
15712
 
15369
15713
  // src/components/Tabs/Tabs.tsx
15370
- import { createContext as createContext6, useContext as useContext7, useEffect as useEffect9, useMemo as useMemo4 } from "react";
15714
+ import { createContext as createContext6, useContext as useContext7, useEffect as useEffect11, useMemo as useMemo4 } from "react";
15371
15715
  import {
15372
15716
  Tab as ReakitTab,
15373
15717
  TabList as ReakitTabList,
@@ -15376,8 +15720,8 @@ import {
15376
15720
  } from "reakit/Tab";
15377
15721
 
15378
15722
  // src/components/Tabs/Tabs.styles.ts
15379
- import { css as css72 } from "@emotion/react";
15380
- var tabButtonStyles = css72`
15723
+ import { css as css75 } from "@emotion/react";
15724
+ var tabButtonStyles = css75`
15381
15725
  align-items: center;
15382
15726
  border: 0;
15383
15727
  height: 2.5rem;
@@ -15394,14 +15738,14 @@ var tabButtonStyles = css72`
15394
15738
  -webkit-text-stroke-width: thin;
15395
15739
  }
15396
15740
  `;
15397
- var tabButtonGroupStyles = css72`
15741
+ var tabButtonGroupStyles = css75`
15398
15742
  display: flex;
15399
15743
  gap: var(--spacing-base);
15400
15744
  border-bottom: 1px solid var(--gray-300);
15401
15745
  `;
15402
15746
 
15403
15747
  // src/components/Tabs/Tabs.tsx
15404
- import { jsx as jsx95 } from "@emotion/react/jsx-runtime";
15748
+ import { jsx as jsx100 } from "@emotion/react/jsx-runtime";
15405
15749
  var CurrentTabContext = createContext6(null);
15406
15750
  var useCurrentTab = () => {
15407
15751
  const context = useContext7(CurrentTabContext);
@@ -15417,7 +15761,7 @@ var Tabs = ({ children, onSelectedIdChange, useHashForState, selectedId, ...prop
15417
15761
  return useHashForState && typeof window !== "undefined" && window.location.hash ? window.location.hash.substring(1) : void 0;
15418
15762
  }, [selectedId, useHashForState]);
15419
15763
  const tab = useTabState({ ...props, selectedId: selected });
15420
- useEffect9(() => {
15764
+ useEffect11(() => {
15421
15765
  var _a;
15422
15766
  const selectedValueWithoutNull = (_a = tab.selectedId) != null ? _a : void 0;
15423
15767
  onSelectedIdChange == null ? void 0 : onSelectedIdChange(selectedValueWithoutNull);
@@ -15425,116 +15769,24 @@ var Tabs = ({ children, onSelectedIdChange, useHashForState, selectedId, ...prop
15425
15769
  window.location.hash = selectedValueWithoutNull != null ? selectedValueWithoutNull : "";
15426
15770
  }
15427
15771
  }, [tab.selectedId, onSelectedIdChange, useHashForState]);
15428
- useEffect9(() => {
15772
+ useEffect11(() => {
15429
15773
  if (selected && selected !== tab.selectedId) {
15430
15774
  tab.setSelectedId(selected);
15431
15775
  }
15432
15776
  }, [selected]);
15433
- return /* @__PURE__ */ jsx95(CurrentTabContext.Provider, { value: tab, children });
15777
+ return /* @__PURE__ */ jsx100(CurrentTabContext.Provider, { value: tab, children });
15434
15778
  };
15435
15779
  var TabButtonGroup = ({ children, ...props }) => {
15436
15780
  const currentTab = useCurrentTab();
15437
- return /* @__PURE__ */ jsx95(ReakitTabList, { ...props, ...currentTab, css: tabButtonGroupStyles, children });
15781
+ return /* @__PURE__ */ jsx100(ReakitTabList, { ...props, ...currentTab, css: tabButtonGroupStyles, children });
15438
15782
  };
15439
15783
  var TabButton = ({ children, id, ...props }) => {
15440
15784
  const currentTab = useCurrentTab();
15441
- return /* @__PURE__ */ jsx95(ReakitTab, { type: "button", id, ...currentTab, ...props, css: tabButtonStyles, children });
15785
+ return /* @__PURE__ */ jsx100(ReakitTab, { type: "button", id, ...currentTab, ...props, css: tabButtonStyles, children });
15442
15786
  };
15443
15787
  var TabContent = ({ children, ...props }) => {
15444
15788
  const currentTab = useCurrentTab();
15445
- return /* @__PURE__ */ jsx95(ReakitTabPanel, { ...props, ...currentTab, children });
15446
- };
15447
-
15448
- // src/components/Validation/StatusBullet.styles.ts
15449
- import { css as css73 } from "@emotion/react";
15450
- var StatusBulletContainer = css73`
15451
- align-items: center;
15452
- align-self: center;
15453
- color: var(--gray-500);
15454
- display: inline-flex;
15455
- font-weight: var(--fw-regular);
15456
- gap: var(--spacing-xs);
15457
- line-height: 1;
15458
- position: relative;
15459
- text-transform: lowercase;
15460
-
15461
- &:before {
15462
- border-radius: var(--rounded-full);
15463
- content: '';
15464
- display: block;
15465
- }
15466
- `;
15467
- var StatusBulletBase = css73`
15468
- font-size: var(--fs-sm);
15469
- &:before {
15470
- width: var(--fs-xs);
15471
- height: var(--fs-xs);
15472
- }
15473
- `;
15474
- var StatusBulletSmall = css73`
15475
- font-size: var(--fs-xs);
15476
- &:before {
15477
- width: var(--fs-xxs);
15478
- height: var(--fs-xxs);
15479
- }
15480
- `;
15481
- var StatusDraft = css73`
15482
- &:before {
15483
- background: var(--white);
15484
- box-shadow: inset 0 0 0 0.125rem var(--brand-primary-1);
15485
- }
15486
- `;
15487
- var StatusModified = css73`
15488
- &:before {
15489
- background: linear-gradient(to right, var(--white) 50%, var(--brand-primary-1) 50% 100%);
15490
- box-shadow: inset 0 0 0 0.125rem var(--brand-primary-1);
15491
- }
15492
- `;
15493
- var StatusError = css73`
15494
- color: var(--error);
15495
- &:before {
15496
- background: linear-gradient(120deg, var(--error) 40%, var(--white) 50%, var(--error) 60%);
15497
- }
15498
- `;
15499
- var StatusPublished = css73`
15500
- &:before {
15501
- background: var(--brand-secondary-3);
15502
- }
15503
- `;
15504
- var StatusOrphan = css73`
15505
- &:before {
15506
- background: var(--brand-secondary-5);
15507
- }
15508
- `;
15509
-
15510
- // src/components/Validation/StatusBullet.tsx
15511
- import { jsx as jsx96 } from "@emotion/react/jsx-runtime";
15512
- var StatusBullet = ({
15513
- status,
15514
- hideText = false,
15515
- size = "base",
15516
- message,
15517
- ...props
15518
- }) => {
15519
- const currentStateStyles = {
15520
- Error: StatusError,
15521
- Modified: StatusModified,
15522
- Unsaved: StatusDraft,
15523
- Orphan: StatusOrphan,
15524
- Published: StatusPublished,
15525
- Draft: StatusDraft
15526
- };
15527
- const statusSize = size === "base" ? StatusBulletBase : StatusBulletSmall;
15528
- return /* @__PURE__ */ jsx96(
15529
- "span",
15530
- {
15531
- role: "status",
15532
- css: [StatusBulletContainer, currentStateStyles[status], statusSize],
15533
- title: message != null ? message : status,
15534
- ...props,
15535
- children: hideText ? null : message ? message : status
15536
- }
15537
- );
15789
+ return /* @__PURE__ */ jsx100(ReakitTabPanel, { ...props, ...currentTab, children });
15538
15790
  };
15539
15791
  export {
15540
15792
  AddButton,
@@ -15596,6 +15848,10 @@ export {
15596
15848
  MenuGroup,
15597
15849
  MenuItem,
15598
15850
  MenuItemSeparator,
15851
+ ObjectCompositionListItem,
15852
+ ObjectListContainer,
15853
+ ObjectListItemLoadingSkeleton,
15854
+ ObjectPersonalizationListItem,
15599
15855
  PageHeaderSection,
15600
15856
  Paragraph,
15601
15857
  ParameterDataResource,