@uniformdev/design-system 18.19.0 → 18.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -41,6 +41,7 @@ __export(src_exports, {
41
41
  Card: () => Card,
42
42
  CardContainer: () => CardContainer2,
43
43
  CheckboxWithInfo: () => CheckboxWithInfo,
44
+ ConnectToDataElementButton: () => ConnectToDataElementButton,
44
45
  Counter: () => Counter,
45
46
  CreateTeamIntegrationTile: () => CreateTeamIntegrationTile,
46
47
  DashedBox: () => DashedBox,
@@ -84,6 +85,30 @@ __export(src_exports, {
84
85
  MenuItemSeparator: () => MenuItemSeparator,
85
86
  PageHeaderSection: () => PageHeaderSection,
86
87
  Paragraph: () => Paragraph,
88
+ ParameterDataResource: () => ParameterDataResource,
89
+ ParameterDrawerHeader: () => ParameterDrawerHeader,
90
+ ParameterGroup: () => ParameterGroup,
91
+ ParameterImage: () => ParameterImage,
92
+ ParameterImageInner: () => ParameterImageInner,
93
+ ParameterInput: () => ParameterInput,
94
+ ParameterInputInner: () => ParameterInputInner,
95
+ ParameterLabel: () => ParameterLabel,
96
+ ParameterLink: () => ParameterLink,
97
+ ParameterLinkInner: () => ParameterLinkInner,
98
+ ParameterMenuButton: () => ParameterMenuButton,
99
+ ParameterNameAndPublicIdInput: () => ParameterNameAndPublicIdInput,
100
+ ParameterOverrideMarker: () => ParameterOverrideMarker,
101
+ ParameterRichText: () => ParameterRichText,
102
+ ParameterRichTextInner: () => ParameterRichTextInner,
103
+ ParameterSelect: () => ParameterSelect,
104
+ ParameterSelectInner: () => ParameterSelectInner,
105
+ ParameterShell: () => ParameterShell,
106
+ ParameterShellContext: () => ParameterShellContext,
107
+ ParameterShellPlaceholder: () => ParameterShellPlaceholder,
108
+ ParameterTextarea: () => ParameterTextarea,
109
+ ParameterTextareaInner: () => ParameterTextareaInner,
110
+ ParameterToggle: () => ParameterToggle,
111
+ ParameterToggleInner: () => ParameterToggleInner,
87
112
  ResolveIcon: () => ResolveIcon,
88
113
  ScrollableList: () => ScrollableList,
89
114
  ScrollableListInputItem: () => ScrollableListInputItem,
@@ -121,6 +146,7 @@ __export(src_exports, {
121
146
  buttonSecondaryInvert: () => buttonSecondaryInvert,
122
147
  buttonTertiary: () => buttonTertiary,
123
148
  buttonUnimportant: () => buttonUnimportant,
149
+ extractParameterProps: () => extractParameterProps,
124
150
  fadeIn: () => fadeIn,
125
151
  fadeInBottom: () => fadeInBottom,
126
152
  fadeInLtr: () => fadeInLtr,
@@ -145,6 +171,7 @@ __export(src_exports, {
145
171
  useIconContext: () => useIconContext,
146
172
  useMenuContext: () => useMenuContext,
147
173
  useOutsideClick: () => useOutsideClick,
174
+ useParameterShell: () => useParameterShell,
148
175
  useShortcut: () => useShortcut
149
176
  });
150
177
  module.exports = __toCommonJS(src_exports);
@@ -11258,19 +11285,1032 @@ var IntegrationModalHeader = ({ icon, name, menu: menu2, children }) => {
11258
11285
  ] });
11259
11286
  };
11260
11287
 
11288
+ // src/components/Tooltip/Tooltip.tsx
11289
+ var import_react64 = __toESM(require("react"));
11290
+ var import_Tooltip = require("reakit/Tooltip");
11291
+
11292
+ // src/components/Tooltip/Tooltip.styles.ts
11293
+ var import_react63 = require("@emotion/react");
11294
+ var TooltipContainer = import_react63.css`
11295
+ border: 2px solid var(--gray-300);
11296
+ border-radius: var(--rounded-base);
11297
+ padding: var(--spacing-xs) var(--spacing-sm);
11298
+ color: var(--gray-500);
11299
+ font-size: var(--fs-xs);
11300
+ background: var(--white);
11301
+ `;
11302
+ var TooltipArrowStyles = import_react63.css`
11303
+ svg {
11304
+ fill: var(--gray-300);
11305
+ }
11306
+ `;
11307
+
11308
+ // src/components/Tooltip/Tooltip.tsx
11309
+ var import_jsx_runtime63 = require("@emotion/react/jsx-runtime");
11310
+ function Tooltip({ children, title, placement = "bottom", visible, ...props }) {
11311
+ const tooltip = (0, import_Tooltip.useTooltipState)({ placement });
11312
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
11313
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_Tooltip.TooltipReference, { ...tooltip, ...children.props, children: (referenceProps) => import_react64.default.cloneElement(children, referenceProps) }),
11314
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_Tooltip.Tooltip, { ...tooltip, ...props, css: TooltipContainer, visible: visible != null ? visible : tooltip.visible, children: [
11315
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_Tooltip.TooltipArrow, { ...tooltip, css: TooltipArrowStyles }),
11316
+ title
11317
+ ] })
11318
+ ] });
11319
+ }
11320
+
11321
+ // src/components/ParameterInputs/styles/ParameterBindingButton.styles.ts
11322
+ var import_react65 = require("@emotion/react");
11323
+ var inputIconBtn = import_react65.css`
11324
+ align-items: center;
11325
+ border: none;
11326
+ border-radius: var(--rounded-base);
11327
+ background: none;
11328
+ display: flex;
11329
+ padding: var(--spacing-2xs);
11330
+ transition: background var(--duration-fast) var(--timing-ease-out),
11331
+ color var(--duration-fast) var(--timing-ease-out);
11332
+
11333
+ &:hover,
11334
+ &[aria-pressed='true']:not(:disabled) {
11335
+ background: var(--brand-secondary-3);
11336
+ color: var(--white);
11337
+ }
11338
+ `;
11339
+
11340
+ // src/components/ParameterInputs/ConnectToDataElementButton.tsx
11341
+ var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
11342
+ var ConnectToDataElementButton = ({
11343
+ icon,
11344
+ iconColor,
11345
+ children,
11346
+ isBound,
11347
+ isLocked,
11348
+ ...props
11349
+ }) => {
11350
+ const title = isLocked ? "Read-only pattern parameter" : isBound ? "Connected to external content. Click to edit" : "Click to connect to external content";
11351
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Tooltip, { title, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("button", { css: inputIconBtn, type: "button", "aria-pressed": isBound, ...props, disabled: isLocked, children: [
11352
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
11353
+ Icon,
11354
+ {
11355
+ icon: isLocked ? "lock" : icon ? icon : "arrows-expand-down-right",
11356
+ iconColor: iconColor ? iconColor : "currentColor",
11357
+ size: "1rem"
11358
+ }
11359
+ ),
11360
+ children
11361
+ ] }) });
11362
+ };
11363
+
11364
+ // src/components/ParameterInputs/hooks/ParameterShellContext.tsx
11365
+ var import_react66 = require("react");
11366
+ var ParameterShellContext = (0, import_react66.createContext)({
11367
+ id: "",
11368
+ label: "",
11369
+ hiddenLabel: void 0,
11370
+ errorMessage: void 0,
11371
+ onManuallySetErrorMessage: () => {
11372
+ }
11373
+ });
11374
+ var useParameterShell = () => {
11375
+ const { id, label, hiddenLabel, errorMessage, onManuallySetErrorMessage } = (0, import_react66.useContext)(ParameterShellContext);
11376
+ return {
11377
+ id,
11378
+ label,
11379
+ hiddenLabel,
11380
+ errorMessage,
11381
+ onManuallySetErrorMessage
11382
+ };
11383
+ };
11384
+
11385
+ // src/components/ParameterInputs/styles/ParameterInput.styles.ts
11386
+ var import_react67 = require("@emotion/react");
11387
+ var inputContainer2 = import_react67.css`
11388
+ position: relative;
11389
+
11390
+ &:hover,
11391
+ &:focus,
11392
+ &:focus-within {
11393
+ .parameter-menu {
11394
+ opacity: var(--opacity-100);
11395
+ translate: 0 0;
11396
+ }
11397
+ }
11398
+ `;
11399
+ var labelText2 = import_react67.css`
11400
+ align-items: center;
11401
+ display: flex;
11402
+ gap: var(--spacing-xs);
11403
+ font-weight: var(--fw-regular);
11404
+ margin: 0 0 var(--spacing-xs);
11405
+ `;
11406
+ var input2 = import_react67.css`
11407
+ display: block;
11408
+ appearance: none;
11409
+ box-sizing: border-box;
11410
+ background: var(--white);
11411
+ border: 1px solid var(--white);
11412
+ border-radius: var(--rounded-sm);
11413
+ color: var(--gray-700);
11414
+ font-size: var(--fs-sm);
11415
+ line-height: 1.2;
11416
+ min-height: 2rem;
11417
+ padding: var(--spacing-sm);
11418
+ width: 100%;
11419
+ position: relative;
11420
+ white-space: wrap;
11421
+ transition-property: background, border-color, color, box-shadow, border-radius;
11422
+ transition-duration: var(--duration-fast);
11423
+ transition-timing-function: var(--timing-ease-out);
11424
+
11425
+ &::placeholder {
11426
+ color: var(--gray-400);
11427
+ }
11428
+
11429
+ &:focus,
11430
+ &:focus-within {
11431
+ border-radius: var(--rounded-md);
11432
+ box-shadow: none;
11433
+ border: 1px solid var(--gray-300);
11434
+ outline: none;
11435
+ }
11436
+
11437
+ &:disabled,
11438
+ &:disabled::placeholder,
11439
+ &:disabled:hover {
11440
+ border-radius: var(--rounded-md);
11441
+ cursor: not-allowed;
11442
+ color: var(--gray-400);
11443
+ }
11444
+
11445
+ &[readonly] {
11446
+ cursor: not-allowed;
11447
+ color: var(--gray-400);
11448
+ }
11449
+ `;
11450
+ var selectInput = import_react67.css`
11451
+ 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");
11452
+ background-position: right var(--spacing-sm) center;
11453
+ background-repeat: no-repeat;
11454
+ background-size: 1rem;
11455
+ padding-right: var(--spacing-xl);
11456
+ `;
11457
+ var inputWrapper = import_react67.css`
11458
+ display: flex; // used to correct overflow with chrome textarea
11459
+ position: relative;
11460
+ `;
11461
+ var inputIcon2 = import_react67.css`
11462
+ align-items: center;
11463
+ background: var(--white);
11464
+ border-radius: var(--rounded-md) 0 0 var(--rounded-md);
11465
+ border-right: 1px solid var(--gray-100);
11466
+ color: var(--gray-300);
11467
+ display: flex;
11468
+ justify-content: center;
11469
+ transition: background var(--duration-fast) var(--timing-ease-out);
11470
+ position: absolute;
11471
+ top: 0;
11472
+ left: 0;
11473
+ bottom: 0;
11474
+ width: var(--spacing-lg);
11475
+ z-index: var(--z-10);
11476
+ `;
11477
+ var inputToggleLabel2 = import_react67.css`
11478
+ align-items: center;
11479
+ background: var(--white);
11480
+ cursor: pointer;
11481
+ display: inline-flex;
11482
+ gap: var(--spacing-sm);
11483
+ font-weight: var(--fw-regular);
11484
+ font-size: var(--fs-sm);
11485
+ min-height: var(--spacing-md);
11486
+ position: relative;
11487
+ `;
11488
+ var toggleInput2 = import_react67.css`
11489
+ appearance: none;
11490
+ border: 1px solid var(--gray-300);
11491
+ background: var(--white);
11492
+ width: var(--spacing-md);
11493
+ height: var(--spacing-md);
11494
+ transition: background var(--duration-fast) var(--timing-ease-out),
11495
+ border-color var(--duration-fast) var(--timing-ease-out),
11496
+ color var(--duration-fast) var(--timing-ease-out);
11497
+ font-size: var(--fs-sm);
11498
+ line-height: 1;
11499
+
11500
+ position: absolute;
11501
+ left: 0;
11502
+
11503
+ &:where([type='radio']) {
11504
+ border-radius: var(--rounded-full);
11505
+ }
11506
+
11507
+ &:where([type='checkbox']) {
11508
+ border-radius: var(--rounded-md);
11509
+ }
11510
+
11511
+ &:checked,
11512
+ &:checked:hover,
11513
+ &:checked:focus {
11514
+ background: var(--brand-secondary-3)
11515
+ 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='M10.5858 13.4142L7.75735 10.5858L6.34314 12L10.5858 16.2427L17.6568 9.1716L16.2426 7.75739L10.5858 13.4142Z' fill='%23fff' /%3E%3C/svg%3E")
11516
+ no-repeat center center;
11517
+ border-color: var(--brand-secondary-3);
11518
+ color: var(--white);
11519
+ }
11520
+
11521
+ &:disabled {
11522
+ cursor: not-allowed;
11523
+ color: var(--gray-400);
11524
+ border-color: var(--gray-300);
11525
+ }
11526
+ `;
11527
+ var inlineLabel2 = import_react67.css`
11528
+ padding-left: var(--spacing-lg);
11529
+ font-size: var(--fs-sm);
11530
+ font-weight: var(--fw-regular);
11531
+ translate: 0 1px; // brings the span into central alignment
11532
+ pointer-events: none; // prevents e2e failing on click event, this does not happen to the end user
11533
+
11534
+ > a {
11535
+ color: var(--brand-secondary-3);
11536
+ text-decoration: underline;
11537
+
11538
+ &:hover {
11539
+ text-decoration: none;
11540
+ }
11541
+ }
11542
+ `;
11543
+ var inputMenu = import_react67.css`
11544
+ background: none;
11545
+ border: none;
11546
+ padding: 0;
11547
+ position: absolute;
11548
+ top: calc(var(--spacing-md) * -1.2);
11549
+ right: 0;
11550
+ opacity: var(--opacity-50);
11551
+ transition: opacity var(--duration-fast) var(--timing-ease-out);
11552
+
11553
+ // css trick to style the input like a hover or active state when the menu button is active or hovered
11554
+ &:hover,
11555
+ &[aria-expanded='true'] {
11556
+ ~ input,
11557
+ ~ select,
11558
+ ~ textarea {
11559
+ 'order-radius: var(--rounded-md);
11560
+ }
11561
+
11562
+ }
11563
+ `;
11564
+ var textarea2 = import_react67.css`
11565
+ resize: vertical;
11566
+ min-height: 2rem;
11567
+ `;
11568
+ var imageWrapper = import_react67.css`
11569
+ background: var(--white);
11570
+ `;
11571
+ var img = import_react67.css`
11572
+ animation: ${fadeIn} var(--duration-fast) var(--timing-ease-out) forwards;
11573
+ aspect-ratio: 1 / 1;
11574
+ max-width: 100%;
11575
+ height: auto;
11576
+ opacity: var(--opacity-0);
11577
+ margin-top: var(--spacing-sm);
11578
+ `;
11579
+ var dataConnectButton = import_react67.css`
11580
+ align-items: center;
11581
+ appearance: none;
11582
+ box-sizing: border-box;
11583
+ background-color: var(--white);
11584
+ border: 1px solid var(--brand-secondary-3);
11585
+ border-radius: var(--rounded-md);
11586
+ color: var(--brand-secondary-3);
11587
+ display: flex;
11588
+ padding: var(--spacing-sm);
11589
+ position: relative;
11590
+ transition: background var(--duration-fast) var(--timing-ease-out),
11591
+ outline-color var(--duration-fast) var(--timing-ease-out),
11592
+ color var(--duration-fast) var(--timing-ease-out);
11593
+ width: 100%;
11594
+ font-weight: var(--fw-medium);
11595
+ font-size: var(--fs-sm);
11596
+ line-height: 1;
11597
+ min-height: 34px;
11598
+ justify-content: center;
11599
+
11600
+ &:focus,
11601
+ &:focus-within {
11602
+ outline: 1px solid var(--gray-300);
11603
+ border-radius: var(--rounded-md);
11604
+ }
11605
+
11606
+ &:disabled:hover,
11607
+ &:disabled {
11608
+ border-radius: var(--rounded-md);
11609
+ cursor: not-allowed;
11610
+ color: var(--gray-400);
11611
+ pointer-events: none;
11612
+ }
11613
+ `;
11614
+ var linkParameterBtn = import_react67.css`
11615
+ border-radius: var(--rounded-base);
11616
+ background: var(--white);
11617
+ border: none;
11618
+ color: var(--brand-secondary-3);
11619
+ font-weight: var(--fw-regular);
11620
+ font-size: var(--fs-sm);
11621
+ line-height: 1;
11622
+ position: absolute;
11623
+ inset: 0 var(--spacing-base) 0 auto;
11624
+ padding: 0 var(--spacing-base);
11625
+ `;
11626
+ var linkParameterInput = import_react67.css`
11627
+ padding-right: calc(var(--spacing-2xl) + var(--spacing-base));
11628
+ `;
11629
+ var linkParameterIcon = import_react67.css`
11630
+ align-items: center;
11631
+ color: var(--brand-secondary-3);
11632
+ display: flex;
11633
+ justify-content: center;
11634
+ padding: var(--spacing-2xs);
11635
+ transition: color var(--duration-fast) var(--timing-ease-out);
11636
+ margin-left: auto;
11637
+
11638
+ &:hover {
11639
+ color: var(--brand-secondary-1);
11640
+ }
11641
+ `;
11642
+
11643
+ // src/components/ParameterInputs/ParameterDataResource.tsx
11644
+ var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
11645
+ function ParameterDataResource({
11646
+ label,
11647
+ labelLeadingIcon,
11648
+ id,
11649
+ onConnectDatasource,
11650
+ caption,
11651
+ disabled,
11652
+ children
11653
+ }) {
11654
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { "data-testid": "parameter-data-connect-button", children: [
11655
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { css: labelText2, children: [
11656
+ labelLeadingIcon ? labelLeadingIcon : null,
11657
+ label
11658
+ ] }),
11659
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
11660
+ "button",
11661
+ {
11662
+ type: "button",
11663
+ css: dataConnectButton,
11664
+ "aria-controls": id,
11665
+ disabled,
11666
+ onClick: onConnectDatasource,
11667
+ children: [
11668
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "advance-input-icon", css: [inputIcon2], children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Icon, { icon: "stack", iconColor: "currentColor", size: "1rem" }) }),
11669
+ children
11670
+ ]
11671
+ }
11672
+ ),
11673
+ caption ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Caption, { children: caption }) : null
11674
+ ] });
11675
+ }
11676
+
11677
+ // src/components/ParameterInputs/styles/ParameterDrawerHeader.styles.ts
11678
+ var import_react68 = require("@emotion/react");
11679
+ var ParameterDrawerHeaderContainer = import_react68.css`
11680
+ align-items: center;
11681
+ display: flex;
11682
+ gap: var(--spacing-base);
11683
+ justify-content: space-between;
11684
+ margin-bottom: var(--spacing-sm);
11685
+ `;
11686
+ var ParameterDrawerHeaderTitleGroup = import_react68.css`
11687
+ align-items: center;
11688
+ display: flex;
11689
+ gap: var(--spacing-sm);
11690
+ `;
11691
+ var ParameterDrawerHeaderTitle = import_react68.css`
11692
+ text-overflow: ellipsis;
11693
+ white-space: nowrap;
11694
+ overflow: hidden;
11695
+ max-width: 16ch;
11696
+ `;
11697
+
11698
+ // src/components/ParameterInputs/ParameterDrawerHeader.tsx
11699
+ var import_jsx_runtime66 = require("@emotion/react/jsx-runtime");
11700
+ var ParameterDrawerHeader = ({ title, iconBeforeTitle, children }) => {
11701
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { css: ParameterDrawerHeaderContainer, children: [
11702
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("header", { css: ParameterDrawerHeaderTitleGroup, children: [
11703
+ iconBeforeTitle,
11704
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Heading, { level: 3, withMarginBottom: false, css: ParameterDrawerHeaderTitle, title, children: title })
11705
+ ] }),
11706
+ children
11707
+ ] });
11708
+ };
11709
+
11710
+ // src/components/ParameterInputs/ParameterGroup.tsx
11711
+ var import_react70 = require("react");
11712
+
11713
+ // src/components/ParameterInputs/styles/ParameterGroup.styles.ts
11714
+ var import_react69 = require("@emotion/react");
11715
+ var fieldsetStyles = import_react69.css`
11716
+ &:disabled,
11717
+ [readonly] {
11718
+ pointer-events: none;
11719
+
11720
+ label,
11721
+ legend {
11722
+ opacity: var(--opacity-60);
11723
+ }
11724
+ }
11725
+ `;
11726
+ var fieldsetLegend2 = import_react69.css`
11727
+ display: block;
11728
+ font-weight: var(--fw-medium);
11729
+ margin-bottom: var(--spacing-sm);
11730
+ `;
11731
+
11732
+ // src/components/ParameterInputs/ParameterGroup.tsx
11733
+ var import_jsx_runtime67 = require("@emotion/react/jsx-runtime");
11734
+ var ParameterGroup = (0, import_react70.forwardRef)(
11735
+ ({ legend, isDisabled, children, ...props }, ref) => {
11736
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("fieldset", { css: fieldsetStyles, disabled: isDisabled, ref, ...props, children: [
11737
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("legend", { css: fieldsetLegend2, children: legend }),
11738
+ children
11739
+ ] });
11740
+ }
11741
+ );
11742
+
11743
+ // src/components/ParameterInputs/ParameterImage.tsx
11744
+ var import_react74 = require("react");
11745
+
11746
+ // src/components/ParameterInputs/ParameterShell.tsx
11747
+ var import_react73 = require("react");
11748
+
11749
+ // src/components/ParameterInputs/ParameterLabel.tsx
11750
+ var import_jsx_runtime68 = require("@emotion/react/jsx-runtime");
11751
+ var ParameterLabel = ({ id, asSpan, children, ...props }) => {
11752
+ return !asSpan ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("label", { ...props, htmlFor: id, css: labelText2, children }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { "aria-labelledby": id, css: labelText2, children });
11753
+ };
11754
+
11755
+ // src/components/ParameterInputs/ParameterMenuButton.tsx
11756
+ var import_react71 = require("react");
11757
+ var import_jsx_runtime69 = require("@emotion/react/jsx-runtime");
11758
+ var ParameterMenuButton = (0, import_react71.forwardRef)(
11759
+ ({ label, children }, ref) => {
11760
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
11761
+ Menu,
11762
+ {
11763
+ menuLabel: `${label} menu`,
11764
+ menuTrigger: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
11765
+ "button",
11766
+ {
11767
+ className: "parameter-menu",
11768
+ css: inputMenu,
11769
+ type: "button",
11770
+ "aria-label": `${label} options`,
11771
+ ref,
11772
+ children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { icon: "more-alt", iconColor: "currentColor" })
11773
+ }
11774
+ ),
11775
+ children
11776
+ }
11777
+ );
11778
+ }
11779
+ );
11780
+
11781
+ // src/components/ParameterInputs/styles/ParameterShell.styles.ts
11782
+ var import_react72 = require("@emotion/react");
11783
+ var emptyParameterShell = import_react72.css`
11784
+ border-radius: var(--rounded-sm);
11785
+ background: var(--white);
11786
+ flex-grow: 1;
11787
+ padding: var(--spacing-xs);
11788
+ position: relative;
11789
+ `;
11790
+ var emptyParameterShellText = import_react72.css`
11791
+ background: var(--brand-secondary-6);
11792
+ border-radius: var(--rounded-sm);
11793
+ padding: var(--spacing-sm);
11794
+ text-align: center;
11795
+ font-size: var(--fs-sm);
11796
+ margin: 0;
11797
+ `;
11798
+ var overrideMarker = import_react72.css`
11799
+ border-radius: var(--rounded-sm);
11800
+ border: 10px solid var(--gray-300);
11801
+ border-left-color: transparent;
11802
+ border-bottom-color: transparent;
11803
+ position: absolute;
11804
+ top: 0;
11805
+ right: 0;
11806
+ `;
11807
+
11808
+ // src/components/ParameterInputs/ParameterShell.tsx
11809
+ var import_jsx_runtime70 = require("@emotion/react/jsx-runtime");
11810
+ var extractParameterProps = (props) => {
11811
+ const {
11812
+ id,
11813
+ label,
11814
+ caption,
11815
+ captionTestId,
11816
+ errorMessage,
11817
+ errorTestId,
11818
+ hiddenLabel,
11819
+ labelLeadingIcon,
11820
+ menuItems,
11821
+ onManuallySetErrorMessage,
11822
+ title,
11823
+ hasOverridingParams,
11824
+ ...innerProps
11825
+ } = props;
11826
+ return {
11827
+ shellProps: {
11828
+ id,
11829
+ label,
11830
+ caption,
11831
+ captionTestId,
11832
+ errorMessage,
11833
+ errorTestId,
11834
+ hiddenLabel,
11835
+ labelLeadingIcon,
11836
+ menuItems,
11837
+ onManuallySetErrorMessage,
11838
+ title,
11839
+ hasOverridingParams
11840
+ },
11841
+ innerProps
11842
+ };
11843
+ };
11844
+ var ParameterShell = ({
11845
+ label,
11846
+ labelLeadingIcon,
11847
+ hiddenLabel,
11848
+ id,
11849
+ errorMessage,
11850
+ caption,
11851
+ errorTestId,
11852
+ captionTestId,
11853
+ menuItems,
11854
+ hasOverridingParams,
11855
+ title,
11856
+ children,
11857
+ ...props
11858
+ }) => {
11859
+ const [manualErrorMessage, setManualErrorMessage] = (0, import_react73.useState)(void 0);
11860
+ const setErrorMessage = (message) => setManualErrorMessage(message);
11861
+ const errorMessaging = errorMessage || manualErrorMessage;
11862
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { css: inputContainer2, ...props, children: [
11863
+ hiddenLabel || title ? null : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ParameterLabel, { id, css: labelText2, children: [
11864
+ labelLeadingIcon ? labelLeadingIcon : null,
11865
+ label
11866
+ ] }),
11867
+ !title ? null : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ParameterLabel, { id, asSpan: true, children: [
11868
+ labelLeadingIcon ? labelLeadingIcon : null,
11869
+ title
11870
+ ] }),
11871
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { css: inputWrapper, children: [
11872
+ menuItems ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ParameterMenuButton, { label: `${label} menu`, children: menuItems }) : null,
11873
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
11874
+ ParameterShellContext.Provider,
11875
+ {
11876
+ value: {
11877
+ id,
11878
+ label,
11879
+ hiddenLabel,
11880
+ errorMessage: errorMessaging,
11881
+ onManuallySetErrorMessage: (message) => setErrorMessage(message)
11882
+ },
11883
+ children: children ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { css: emptyParameterShell, children: [
11884
+ children,
11885
+ hasOverridingParams ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ParameterOverrideMarker, {}) : null
11886
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ParameterShellPlaceholder, { hasOverridingParams: true })
11887
+ }
11888
+ )
11889
+ ] }),
11890
+ caption ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Caption, { testId: captionTestId, children: caption }) : null,
11891
+ errorMessaging ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ErrorMessage, { message: errorMessaging, testId: errorTestId }) : null
11892
+ ] });
11893
+ };
11894
+ var ParameterShellPlaceholder = ({ hasOverridingParams }) => {
11895
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { role: "note", css: emptyParameterShell, children: [
11896
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { css: emptyParameterShellText, children: "Use component swap to replace with a parameter slot component" }),
11897
+ hasOverridingParams ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ParameterOverrideMarker, {}) : null
11898
+ ] });
11899
+ };
11900
+ var ParameterOverrideMarker = () => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Tooltip, { title: "The default value has been overridden", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { role: "presentation", css: overrideMarker }) });
11901
+
11902
+ // src/components/ParameterInputs/ParameterImage.tsx
11903
+ var import_jsx_runtime71 = require("@emotion/react/jsx-runtime");
11904
+ var ParameterImage = (0, import_react74.forwardRef)((props, ref) => {
11905
+ const { shellProps, innerProps } = extractParameterProps(props);
11906
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ParameterShell, { "data-test-id": "parameter-image", ...shellProps, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ParameterImageInner, { ref, ...innerProps }) });
11907
+ });
11908
+ var BrokenImage = ({ ...props }) => {
11909
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
11910
+ "svg",
11911
+ {
11912
+ width: "214",
11913
+ height: "214",
11914
+ viewBox: "0 0 214 214",
11915
+ fill: "none",
11916
+ xmlns: "http://www.w3.org/2000/svg",
11917
+ xmlnsXlink: "http://www.w3.org/1999/xlink",
11918
+ ...props,
11919
+ children: [
11920
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("rect", { width: "214", height: "214", fill: "#F9FAFB" }),
11921
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("rect", { width: "214", height: "214", fill: "url(#pattern0)" }),
11922
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("defs", { children: [
11923
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("pattern", { id: "pattern0", patternContentUnits: "objectBoundingBox", width: "1", height: "1", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("use", { xlinkHref: "#image0_761_4353", transform: "scale(0.0025)" }) }),
11924
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
11925
+ "image",
11926
+ {
11927
+ id: "image0_761_4353",
11928
+ width: "400",
11929
+ height: "400",
11930
+ xlinkHref: "data:image/png;base64,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UfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBsBDMtNUfKBgDEBDMtYXFKDgBuB/we75KcVO2CRagAAAABJRU5ErkJggg=="
11931
+ }
11932
+ )
11933
+ ] })
11934
+ ]
11935
+ }
11936
+ );
11937
+ };
11938
+ var ParameterImageInner = (0, import_react74.forwardRef)(
11939
+ ({ ...props }, ref) => {
11940
+ const { id, label, hiddenLabel, errorMessage, onManuallySetErrorMessage } = useParameterShell();
11941
+ const [imageSrc, setImageSrc] = (0, import_react74.useState)();
11942
+ const [loading, setLoading] = (0, import_react74.useState)(false);
11943
+ const deferredValue = (0, import_react74.useDeferredValue)(imageSrc);
11944
+ const errorText = "The text you provided is not a valid URL";
11945
+ const updateImageSrc = (0, import_react74.useCallback)(
11946
+ (e) => {
11947
+ let message = void 0;
11948
+ try {
11949
+ if (e.currentTarget.value !== "") {
11950
+ new URL(e.currentTarget.value);
11951
+ setImageSrc(e.currentTarget.value);
11952
+ }
11953
+ message = void 0;
11954
+ } catch (e2) {
11955
+ message = errorText;
11956
+ }
11957
+ if (onManuallySetErrorMessage) {
11958
+ onManuallySetErrorMessage(message);
11959
+ }
11960
+ },
11961
+ [onManuallySetErrorMessage]
11962
+ );
11963
+ const handleLoadEvent = () => {
11964
+ if (deferredValue) {
11965
+ setLoading(true);
11966
+ }
11967
+ const timer = setTimeout(() => {
11968
+ setLoading(false);
11969
+ }, 200);
11970
+ return () => clearTimeout(timer);
11971
+ };
11972
+ const handleErrorEvent = () => {
11973
+ if (onManuallySetErrorMessage) {
11974
+ onManuallySetErrorMessage(errorText);
11975
+ }
11976
+ };
11977
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
11978
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
11979
+ "input",
11980
+ {
11981
+ css: input2,
11982
+ type: "text",
11983
+ id,
11984
+ ref,
11985
+ "aria-label": hiddenLabel ? label : void 0,
11986
+ autoComplete: "off",
11987
+ onChange: (e) => updateImageSrc(e),
11988
+ ...props
11989
+ }
11990
+ ),
11991
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { css: imageWrapper, children: [
11992
+ deferredValue && !errorMessage ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
11993
+ "img",
11994
+ {
11995
+ src: deferredValue,
11996
+ css: img,
11997
+ onLoad: handleLoadEvent,
11998
+ onError: handleErrorEvent,
11999
+ width: 214,
12000
+ height: 214,
12001
+ loading: "lazy"
12002
+ }
12003
+ ) : null,
12004
+ deferredValue && errorMessage ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(BrokenImage, { css: img }) : null
12005
+ ] }),
12006
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(LoadingIcon, {}) : null
12007
+ ] });
12008
+ }
12009
+ );
12010
+
12011
+ // src/components/ParameterInputs/ParameterInput.tsx
12012
+ var import_react75 = require("react");
12013
+ var import_jsx_runtime72 = require("@emotion/react/jsx-runtime");
12014
+ var ParameterInput = (0, import_react75.forwardRef)((props, ref) => {
12015
+ const { shellProps, innerProps } = extractParameterProps(props);
12016
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ParameterShell, { "data-test-id": "parameter-input", ...shellProps, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ParameterInputInner, { ref, ...innerProps }) });
12017
+ });
12018
+ var ParameterInputInner = (0, import_react75.forwardRef)(
12019
+ ({ ...props }, ref) => {
12020
+ const { id, label, hiddenLabel } = useParameterShell();
12021
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
12022
+ "input",
12023
+ {
12024
+ css: input2,
12025
+ id,
12026
+ type: props.type || "text",
12027
+ "aria-label": hiddenLabel ? label : void 0,
12028
+ autoComplete: "off",
12029
+ ref,
12030
+ ...props
12031
+ }
12032
+ );
12033
+ }
12034
+ );
12035
+
12036
+ // src/components/ParameterInputs/ParameterLink.tsx
12037
+ var import_react76 = require("react");
12038
+ var import_jsx_runtime73 = require("@emotion/react/jsx-runtime");
12039
+ var ParameterLink = (0, import_react76.forwardRef)(
12040
+ ({ buttonText = "Select project map node", disabled, onConnectLink, externalLink, ...props }, ref) => {
12041
+ const { shellProps, innerProps } = extractParameterProps(props);
12042
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
12043
+ ParameterShell,
12044
+ {
12045
+ "data-test-id": "parameter-link",
12046
+ ...shellProps,
12047
+ label: innerProps.value ? shellProps.label : "",
12048
+ title: !innerProps.value ? shellProps.label : void 0,
12049
+ children: !innerProps.value ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("button", { type: "button", css: dataConnectButton, disabled, onClick: onConnectLink, children: buttonText }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
12050
+ ParameterLinkInner,
12051
+ {
12052
+ onConnectLink,
12053
+ externalLink,
12054
+ ref,
12055
+ ...innerProps
12056
+ }
12057
+ )
12058
+ }
12059
+ );
12060
+ }
12061
+ );
12062
+ var ParameterLinkInner = (0, import_react76.forwardRef)(
12063
+ ({ externalLink, onConnectLink, disabled, ...props }, ref) => {
12064
+ const { id, label, hiddenLabel } = useParameterShell();
12065
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { css: inputWrapper, children: [
12066
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
12067
+ "input",
12068
+ {
12069
+ type: "text",
12070
+ css: [input2, linkParameterInput],
12071
+ readOnly: Boolean(props.value),
12072
+ id,
12073
+ ref,
12074
+ "aria-label": hiddenLabel ? label : void 0,
12075
+ ...props
12076
+ }
12077
+ ),
12078
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
12079
+ "button",
12080
+ {
12081
+ type: "button",
12082
+ css: linkParameterBtn,
12083
+ disabled,
12084
+ onClick: onConnectLink,
12085
+ title: "edit current selection",
12086
+ children: "edit"
12087
+ }
12088
+ ),
12089
+ externalLink ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
12090
+ "a",
12091
+ {
12092
+ href: externalLink,
12093
+ css: linkParameterIcon,
12094
+ title: "Open link in new tab",
12095
+ target: "_blank",
12096
+ rel: "noopener noreferrer",
12097
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Icon, { icon: "arrows-expand-up-right", iconColor: "currentColor", size: "1rem" })
12098
+ }
12099
+ ) : null
12100
+ ] });
12101
+ }
12102
+ );
12103
+
12104
+ // src/components/ParameterInputs/ParameterNameAndPublicIdInput.tsx
12105
+ var import_jsx_runtime74 = require("@emotion/react/jsx-runtime");
12106
+ var ParameterNameAndPublicIdInput = ({
12107
+ id,
12108
+ onBlur,
12109
+ autoFocus,
12110
+ onNameChange,
12111
+ onPublicIdChange,
12112
+ nameIdError,
12113
+ publicIdError,
12114
+ readOnly = false,
12115
+ hasInitialPublicIdField,
12116
+ label = "Name",
12117
+ warnOverLength,
12118
+ nameIdField = "name",
12119
+ nameCaption,
12120
+ namePlaceholderText,
12121
+ publicIdFieldName = "public_id",
12122
+ publicIdCaption = "This cannot change once created.",
12123
+ publicIdPlaceholderText,
12124
+ values
12125
+ }) => {
12126
+ const isReadonly = !!hasInitialPublicIdField || readOnly;
12127
+ const handleCopyPidFieldValue = () => {
12128
+ navigator.clipboard.writeText(values[publicIdFieldName]);
12129
+ };
12130
+ autoFocus == null ? void 0 : autoFocus();
12131
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
12132
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
12133
+ ParameterInput,
12134
+ {
12135
+ id: nameIdField,
12136
+ name: nameIdField,
12137
+ label,
12138
+ "data-test-id": "name-field",
12139
+ autoComplete: "off",
12140
+ "data-af": "true",
12141
+ onBlur,
12142
+ onChange: onNameChange,
12143
+ caption: nameCaption,
12144
+ placeholder: namePlaceholderText,
12145
+ readOnly,
12146
+ errorMessage: nameIdError,
12147
+ disabled: readOnly,
12148
+ value: values[nameIdField]
12149
+ }
12150
+ ),
12151
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
12152
+ ParameterInput,
12153
+ {
12154
+ id: publicIdFieldName,
12155
+ name: publicIdFieldName,
12156
+ label: "Public ID",
12157
+ disabled: Boolean(id) || isReadonly,
12158
+ "data-test-id": "public-id-field",
12159
+ autoComplete: "off",
12160
+ onBlur,
12161
+ onChange: onPublicIdChange,
12162
+ caption: publicIdCaption,
12163
+ placeholder: publicIdPlaceholderText,
12164
+ errorMessage: publicIdError,
12165
+ menuItems: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
12166
+ MenuItem,
12167
+ {
12168
+ disabled: !values[publicIdFieldName],
12169
+ icon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Icon, { icon: "path-trim", iconColor: "currentColor" }),
12170
+ onClick: handleCopyPidFieldValue,
12171
+ children: "Copy"
12172
+ }
12173
+ ),
12174
+ value: values[publicIdFieldName]
12175
+ }
12176
+ ),
12177
+ (warnOverLength == null ? void 0 : warnOverLength.length) && values[publicIdFieldName].length > warnOverLength.length ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Callout, { type: "caution", children: warnOverLength.message }) : null
12178
+ ] });
12179
+ };
12180
+
12181
+ // src/components/ParameterInputs/ParameterRichText.tsx
12182
+ var import_react77 = require("react");
12183
+ var import_jsx_runtime75 = require("@emotion/react/jsx-runtime");
12184
+ var ParameterRichText = (0, import_react77.forwardRef)(
12185
+ ({
12186
+ label,
12187
+ labelLeadingIcon,
12188
+ hiddenLabel,
12189
+ id,
12190
+ errorMessage,
12191
+ caption,
12192
+ errorTestId,
12193
+ captionTestId,
12194
+ menuItems,
12195
+ ...props
12196
+ }, ref) => {
12197
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
12198
+ ParameterShell,
12199
+ {
12200
+ "data-test-id": "parameter-input",
12201
+ label,
12202
+ labelLeadingIcon,
12203
+ id,
12204
+ errorMessage,
12205
+ caption,
12206
+ errorTestId,
12207
+ captionTestId,
12208
+ menuItems,
12209
+ children: [
12210
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(ParameterRichTextInner, { ref, ...props }),
12211
+ menuItems ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(ParameterMenuButton, { label: `${label} menu`, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_jsx_runtime75.Fragment, { children: menuItems }) }) : null
12212
+ ]
12213
+ }
12214
+ );
12215
+ }
12216
+ );
12217
+ var ParameterRichTextInner = (0, import_react77.forwardRef)(({ ...props }, ref) => {
12218
+ const { id, label, hiddenLabel } = useParameterShell();
12219
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
12220
+ "textarea",
12221
+ {
12222
+ css: [input2, textarea2],
12223
+ id,
12224
+ ref,
12225
+ "aria-label": hiddenLabel ? label : void 0,
12226
+ ...props
12227
+ }
12228
+ );
12229
+ });
12230
+
12231
+ // src/components/ParameterInputs/ParameterSelect.tsx
12232
+ var import_react78 = require("react");
12233
+ var import_jsx_runtime76 = require("@emotion/react/jsx-runtime");
12234
+ var ParameterSelect = (0, import_react78.forwardRef)(
12235
+ ({ defaultOption, options, ...props }, ref) => {
12236
+ const { shellProps, innerProps } = extractParameterProps(props);
12237
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ParameterShell, { ...shellProps, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ParameterSelectInner, { options, defaultOption, ...innerProps, ref }) });
12238
+ }
12239
+ );
12240
+ var ParameterSelectInner = (0, import_react78.forwardRef)(
12241
+ ({ defaultOption, options, ...props }, ref) => {
12242
+ const { id, label, hiddenLabel } = useParameterShell();
12243
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
12244
+ "select",
12245
+ {
12246
+ css: [input2, selectInput],
12247
+ id,
12248
+ "aria-label": hiddenLabel ? label : void 0,
12249
+ ref,
12250
+ ...props,
12251
+ children: [
12252
+ defaultOption ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("option", { value: "", children: defaultOption }) : null,
12253
+ options.map((option) => {
12254
+ var _a;
12255
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("option", { value: (_a = option.value) != null ? _a : option.label, children: option.label }, option.label);
12256
+ })
12257
+ ]
12258
+ }
12259
+ );
12260
+ }
12261
+ );
12262
+
12263
+ // src/components/ParameterInputs/ParameterTextarea.tsx
12264
+ var import_react79 = require("react");
12265
+ var import_jsx_runtime77 = require("@emotion/react/jsx-runtime");
12266
+ var ParameterTextarea = (0, import_react79.forwardRef)((props, ref) => {
12267
+ const { shellProps, innerProps } = extractParameterProps(props);
12268
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(ParameterShell, { "data-test-id": "parameter-textarea", ...shellProps, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(ParameterTextareaInner, { ref, ...innerProps }) });
12269
+ });
12270
+ var ParameterTextareaInner = (0, import_react79.forwardRef)(({ ...props }, ref) => {
12271
+ const { id, label, hiddenLabel } = useParameterShell();
12272
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
12273
+ "textarea",
12274
+ {
12275
+ css: [input2, textarea2],
12276
+ id,
12277
+ ref,
12278
+ "aria-label": hiddenLabel ? label : void 0,
12279
+ ...props
12280
+ }
12281
+ );
12282
+ });
12283
+
12284
+ // src/components/ParameterInputs/ParameterToggle.tsx
12285
+ var import_react80 = require("react");
12286
+ var import_jsx_runtime78 = require("@emotion/react/jsx-runtime");
12287
+ var ParameterToggle = (0, import_react80.forwardRef)((props, ref) => {
12288
+ const { shellProps, innerProps } = extractParameterProps(props);
12289
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(ParameterShell, { ...shellProps, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(ParameterToggleInner, { ref, ...innerProps }) });
12290
+ });
12291
+ var ParameterToggleInner = (0, import_react80.forwardRef)(
12292
+ ({ ...props }, ref) => {
12293
+ const { id, label } = useParameterShell();
12294
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("label", { css: inputToggleLabel2, children: [
12295
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("input", { css: toggleInput2, type: props.type, id, ref, ...props }),
12296
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { css: inlineLabel2, children: label })
12297
+ ] });
12298
+ }
12299
+ );
12300
+
11261
12301
  // src/components/Skeleton/Skeleton.styles.ts
11262
- var import_react63 = require("@emotion/react");
11263
- var lightFadingOut = import_react63.keyframes`
12302
+ var import_react81 = require("@emotion/react");
12303
+ var lightFadingOut = import_react81.keyframes`
11264
12304
  from { opacity: 0.1; }
11265
12305
  to { opacity: 0.025; }
11266
12306
  `;
11267
- var skeletonStyles = import_react63.css`
12307
+ var skeletonStyles = import_react81.css`
11268
12308
  animation: ${lightFadingOut} 1s ease-out infinite alternate;
11269
12309
  background-color: var(--gray-900);
11270
12310
  `;
11271
12311
 
11272
12312
  // src/components/Skeleton/Skeleton.tsx
11273
- var import_jsx_runtime63 = require("@emotion/react/jsx-runtime");
12313
+ var import_jsx_runtime79 = require("@emotion/react/jsx-runtime");
11274
12314
  var Skeleton = ({
11275
12315
  width = "100%",
11276
12316
  height = "1.25rem",
@@ -11278,7 +12318,7 @@ var Skeleton = ({
11278
12318
  circle = false,
11279
12319
  children,
11280
12320
  ...otherProps
11281
- }) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
12321
+ }) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
11282
12322
  "div",
11283
12323
  {
11284
12324
  css: [
@@ -11298,11 +12338,11 @@ var Skeleton = ({
11298
12338
  );
11299
12339
 
11300
12340
  // src/components/Switch/Switch.tsx
11301
- var React13 = __toESM(require("react"));
12341
+ var React14 = __toESM(require("react"));
11302
12342
 
11303
12343
  // src/components/Switch/Switch.styles.ts
11304
- var import_react64 = require("@emotion/react");
11305
- var SwitchInputContainer = import_react64.css`
12344
+ var import_react82 = require("@emotion/react");
12345
+ var SwitchInputContainer = import_react82.css`
11306
12346
  cursor: pointer;
11307
12347
  display: inline-block;
11308
12348
  position: relative;
@@ -11311,7 +12351,7 @@ var SwitchInputContainer = import_react64.css`
11311
12351
  vertical-align: middle;
11312
12352
  user-select: none;
11313
12353
  `;
11314
- var SwitchInput = import_react64.css`
12354
+ var SwitchInput = import_react82.css`
11315
12355
  appearance: none;
11316
12356
  border-radius: var(--rounded-full);
11317
12357
  background-color: var(--white);
@@ -11349,7 +12389,7 @@ var SwitchInput = import_react64.css`
11349
12389
  cursor: not-allowed;
11350
12390
  }
11351
12391
  `;
11352
- var SwitchInputDisabled = import_react64.css`
12392
+ var SwitchInputDisabled = import_react82.css`
11353
12393
  opacity: var(--opacity-50);
11354
12394
  cursor: not-allowed;
11355
12395
 
@@ -11357,7 +12397,7 @@ var SwitchInputDisabled = import_react64.css`
11357
12397
  cursor: not-allowed;
11358
12398
  }
11359
12399
  `;
11360
- var SwitchInputLabel = import_react64.css`
12400
+ var SwitchInputLabel = import_react82.css`
11361
12401
  align-items: center;
11362
12402
  color: var(--brand-secondary-1);
11363
12403
  display: inline-flex;
@@ -11379,103 +12419,103 @@ var SwitchInputLabel = import_react64.css`
11379
12419
  top: 0;
11380
12420
  }
11381
12421
  `;
11382
- var SwitchText = import_react64.css`
12422
+ var SwitchText = import_react82.css`
11383
12423
  color: var(--gray-500);
11384
12424
  font-size: var(--fs-sm);
11385
12425
  padding-inline: var(--spacing-2xl) 0;
11386
12426
  `;
11387
12427
 
11388
12428
  // src/components/Switch/Switch.tsx
11389
- var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
11390
- var Switch = React13.forwardRef(
12429
+ var import_jsx_runtime80 = require("@emotion/react/jsx-runtime");
12430
+ var Switch = React14.forwardRef(
11391
12431
  ({ label, infoText, toggleText, children, ...inputProps }, ref) => {
11392
12432
  let additionalText = infoText;
11393
12433
  if (infoText && toggleText) {
11394
12434
  additionalText = inputProps.checked ? toggleText : infoText;
11395
12435
  }
11396
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
11397
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
11398
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
11399
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { css: SwitchInputLabel, children: label })
12436
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, { children: [
12437
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
12438
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
12439
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { css: SwitchInputLabel, children: label })
11400
12440
  ] }),
11401
- additionalText ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { css: SwitchText, children: additionalText }) : null,
12441
+ additionalText ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { css: SwitchText, children: additionalText }) : null,
11402
12442
  children
11403
12443
  ] });
11404
12444
  }
11405
12445
  );
11406
12446
 
11407
12447
  // src/components/Table/Table.tsx
11408
- var React14 = __toESM(require("react"));
12448
+ var React15 = __toESM(require("react"));
11409
12449
 
11410
12450
  // src/components/Table/Table.styles.ts
11411
- var import_react65 = require("@emotion/react");
11412
- var table = import_react65.css`
12451
+ var import_react83 = require("@emotion/react");
12452
+ var table = import_react83.css`
11413
12453
  border-bottom: 1px solid var(--gray-400);
11414
12454
  border-collapse: collapse;
11415
12455
  min-width: 100%;
11416
12456
  table-layout: auto;
11417
12457
  `;
11418
- var tableHead = import_react65.css`
12458
+ var tableHead = import_react83.css`
11419
12459
  background: var(--gray-100);
11420
12460
  color: var(--brand-secondary-1);
11421
12461
  text-align: left;
11422
12462
  `;
11423
- var tableRow = import_react65.css`
12463
+ var tableRow = import_react83.css`
11424
12464
  border-bottom: 1px solid var(--gray-200);
11425
12465
  `;
11426
- var tableCellHead = import_react65.css`
12466
+ var tableCellHead = import_react83.css`
11427
12467
  font-size: var(--fs-sm);
11428
12468
  padding: var(--spacing-base) var(--spacing-md);
11429
12469
  text-transform: uppercase;
11430
12470
  font-weight: var(--fw-bold);
11431
12471
  `;
11432
- var tableCellData = import_react65.css`
12472
+ var tableCellData = import_react83.css`
11433
12473
  padding: var(--spacing-base) var(--spacing-md);
11434
12474
  `;
11435
12475
 
11436
12476
  // src/components/Table/Table.tsx
11437
- var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
11438
- var Table = React14.forwardRef(({ children, ...otherProps }, ref) => {
11439
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("table", { ref, css: table, ...otherProps, children });
12477
+ var import_jsx_runtime81 = require("@emotion/react/jsx-runtime");
12478
+ var Table = React15.forwardRef(({ children, ...otherProps }, ref) => {
12479
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("table", { ref, css: table, ...otherProps, children });
11440
12480
  });
11441
- var TableHead = React14.forwardRef(
12481
+ var TableHead = React15.forwardRef(
11442
12482
  ({ children, ...otherProps }, ref) => {
11443
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("thead", { ref, css: tableHead, ...otherProps, children });
12483
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("thead", { ref, css: tableHead, ...otherProps, children });
11444
12484
  }
11445
12485
  );
11446
- var TableBody = React14.forwardRef(
12486
+ var TableBody = React15.forwardRef(
11447
12487
  ({ children, ...otherProps }, ref) => {
11448
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("tbody", { ref, ...otherProps, children });
12488
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("tbody", { ref, ...otherProps, children });
11449
12489
  }
11450
12490
  );
11451
- var TableFoot = React14.forwardRef(
12491
+ var TableFoot = React15.forwardRef(
11452
12492
  ({ children, ...otherProps }, ref) => {
11453
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("tfoot", { ref, ...otherProps, children });
12493
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("tfoot", { ref, ...otherProps, children });
11454
12494
  }
11455
12495
  );
11456
- var TableRow = React14.forwardRef(
12496
+ var TableRow = React15.forwardRef(
11457
12497
  ({ children, ...otherProps }, ref) => {
11458
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("tr", { ref, css: tableRow, ...otherProps, children });
12498
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("tr", { ref, css: tableRow, ...otherProps, children });
11459
12499
  }
11460
12500
  );
11461
- var TableCellHead = React14.forwardRef(
12501
+ var TableCellHead = React15.forwardRef(
11462
12502
  ({ children, ...otherProps }, ref) => {
11463
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("th", { ref, css: tableCellHead, ...otherProps, children });
12503
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("th", { ref, css: tableCellHead, ...otherProps, children });
11464
12504
  }
11465
12505
  );
11466
- var TableCellData = React14.forwardRef(
12506
+ var TableCellData = React15.forwardRef(
11467
12507
  ({ children, ...otherProps }, ref) => {
11468
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("td", { ref, css: tableCellData, ...otherProps, children });
12508
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("td", { ref, css: tableCellData, ...otherProps, children });
11469
12509
  }
11470
12510
  );
11471
12511
 
11472
12512
  // src/components/Tabs/Tabs.tsx
11473
- var import_react67 = require("react");
12513
+ var import_react85 = require("react");
11474
12514
  var import_Tab = require("reakit/Tab");
11475
12515
 
11476
12516
  // src/components/Tabs/Tabs.styles.ts
11477
- var import_react66 = require("@emotion/react");
11478
- var tabButtonStyles = import_react66.css`
12517
+ var import_react84 = require("@emotion/react");
12518
+ var tabButtonStyles = import_react84.css`
11479
12519
  align-items: center;
11480
12520
  border: 0;
11481
12521
  height: 2.5rem;
@@ -11492,30 +12532,30 @@ var tabButtonStyles = import_react66.css`
11492
12532
  -webkit-text-stroke-width: thin;
11493
12533
  }
11494
12534
  `;
11495
- var tabButtonGroupStyles = import_react66.css`
12535
+ var tabButtonGroupStyles = import_react84.css`
11496
12536
  display: flex;
11497
12537
  gap: var(--spacing-base);
11498
12538
  border-bottom: 1px solid var(--gray-300);
11499
12539
  `;
11500
12540
 
11501
12541
  // src/components/Tabs/Tabs.tsx
11502
- var import_jsx_runtime66 = require("@emotion/react/jsx-runtime");
11503
- var CurrentTabContext = (0, import_react67.createContext)(null);
12542
+ var import_jsx_runtime82 = require("@emotion/react/jsx-runtime");
12543
+ var CurrentTabContext = (0, import_react85.createContext)(null);
11504
12544
  var useCurrentTab = () => {
11505
- const context = (0, import_react67.useContext)(CurrentTabContext);
12545
+ const context = (0, import_react85.useContext)(CurrentTabContext);
11506
12546
  if (!context) {
11507
12547
  throw new Error("This component can only be used inside <Tabs>");
11508
12548
  }
11509
12549
  return context;
11510
12550
  };
11511
12551
  var Tabs = ({ children, onSelectedIdChange, useHashForState, selectedId, ...props }) => {
11512
- const selected = (0, import_react67.useMemo)(() => {
12552
+ const selected = (0, import_react85.useMemo)(() => {
11513
12553
  if (selectedId)
11514
12554
  return selectedId;
11515
12555
  return useHashForState && typeof window !== "undefined" && window.location.hash ? window.location.hash.substring(1) : void 0;
11516
12556
  }, [selectedId, useHashForState]);
11517
12557
  const tab = (0, import_Tab.useTabState)({ ...props, selectedId: selected });
11518
- (0, import_react67.useEffect)(() => {
12558
+ (0, import_react85.useEffect)(() => {
11519
12559
  var _a;
11520
12560
  const selectedValueWithoutNull = (_a = tab.selectedId) != null ? _a : void 0;
11521
12561
  onSelectedIdChange == null ? void 0 : onSelectedIdChange(selectedValueWithoutNull);
@@ -11523,62 +12563,29 @@ var Tabs = ({ children, onSelectedIdChange, useHashForState, selectedId, ...prop
11523
12563
  window.location.hash = selectedValueWithoutNull != null ? selectedValueWithoutNull : "";
11524
12564
  }
11525
12565
  }, [tab.selectedId, onSelectedIdChange, useHashForState]);
11526
- (0, import_react67.useEffect)(() => {
12566
+ (0, import_react85.useEffect)(() => {
11527
12567
  if (selected && selected !== tab.selectedId) {
11528
12568
  tab.setSelectedId(selected);
11529
12569
  }
11530
12570
  }, [selected]);
11531
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(CurrentTabContext.Provider, { value: tab, children });
12571
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(CurrentTabContext.Provider, { value: tab, children });
11532
12572
  };
11533
12573
  var TabButtonGroup = ({ children, ...props }) => {
11534
12574
  const currentTab = useCurrentTab();
11535
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_Tab.TabList, { ...props, ...currentTab, css: tabButtonGroupStyles, children });
12575
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_Tab.TabList, { ...props, ...currentTab, css: tabButtonGroupStyles, children });
11536
12576
  };
11537
12577
  var TabButton = ({ children, id, ...props }) => {
11538
12578
  const currentTab = useCurrentTab();
11539
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_Tab.Tab, { type: "button", id, ...currentTab, ...props, css: tabButtonStyles, children });
12579
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_Tab.Tab, { type: "button", id, ...currentTab, ...props, css: tabButtonStyles, children });
11540
12580
  };
11541
12581
  var TabContent = ({ children, ...props }) => {
11542
12582
  const currentTab = useCurrentTab();
11543
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_Tab.TabPanel, { ...props, ...currentTab, children });
12583
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_Tab.TabPanel, { ...props, ...currentTab, children });
11544
12584
  };
11545
12585
 
11546
- // src/components/Tooltip/Tooltip.tsx
11547
- var import_react69 = __toESM(require("react"));
11548
- var import_Tooltip = require("reakit/Tooltip");
11549
-
11550
- // src/components/Tooltip/Tooltip.styles.ts
11551
- var import_react68 = require("@emotion/react");
11552
- var TooltipContainer = import_react68.css`
11553
- border: 2px solid var(--gray-300);
11554
- border-radius: var(--rounded-base);
11555
- padding: var(--spacing-xs) var(--spacing-sm);
11556
- color: var(--gray-500);
11557
- font-size: var(--fs-xs);
11558
- background: var(--white);
11559
- `;
11560
- var TooltipArrowStyles = import_react68.css`
11561
- svg {
11562
- fill: var(--gray-300);
11563
- }
11564
- `;
11565
-
11566
- // src/components/Tooltip/Tooltip.tsx
11567
- var import_jsx_runtime67 = require("@emotion/react/jsx-runtime");
11568
- function Tooltip({ children, title, placement = "bottom", visible, ...props }) {
11569
- const tooltip = (0, import_Tooltip.useTooltipState)({ placement });
11570
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
11571
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Tooltip.TooltipReference, { ...tooltip, ...children.props, children: (referenceProps) => import_react69.default.cloneElement(children, referenceProps) }),
11572
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_Tooltip.Tooltip, { ...tooltip, ...props, css: TooltipContainer, visible: visible != null ? visible : tooltip.visible, children: [
11573
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Tooltip.TooltipArrow, { ...tooltip, css: TooltipArrowStyles }),
11574
- title
11575
- ] })
11576
- ] });
11577
- }
11578
-
11579
12586
  // src/components/Validation/StatusBullet.styles.ts
11580
- var import_react70 = require("@emotion/react");
11581
- var StatusBulletContainer = import_react70.css`
12587
+ var import_react86 = require("@emotion/react");
12588
+ var StatusBulletContainer = import_react86.css`
11582
12589
  align-items: center;
11583
12590
  align-self: center;
11584
12591
  color: var(--gray-500);
@@ -11598,19 +12605,19 @@ var StatusBulletContainer = import_react70.css`
11598
12605
  height: var(--fs-xs);
11599
12606
  }
11600
12607
  `;
11601
- var StatusDraft = import_react70.css`
12608
+ var StatusDraft = import_react86.css`
11602
12609
  &:before {
11603
12610
  background: var(--white);
11604
12611
  box-shadow: inset 0 0 0 0.125rem var(--brand-primary-1);
11605
12612
  }
11606
12613
  `;
11607
- var StatusModified = import_react70.css`
12614
+ var StatusModified = import_react86.css`
11608
12615
  &:before {
11609
12616
  background: linear-gradient(to right, var(--white) 50%, var(--brand-primary-1) 50% 100%);
11610
12617
  box-shadow: inset 0 0 0 0.125rem var(--brand-primary-1);
11611
12618
  }
11612
12619
  `;
11613
- var StatusError = import_react70.css`
12620
+ var StatusError = import_react86.css`
11614
12621
  color: var(--error);
11615
12622
  &:before {
11616
12623
  background: var(--error);
@@ -11626,19 +12633,19 @@ var StatusError = import_react70.css`
11626
12633
  rotate: -45deg;
11627
12634
  }
11628
12635
  `;
11629
- var StatusPublished = import_react70.css`
12636
+ var StatusPublished = import_react86.css`
11630
12637
  &:before {
11631
12638
  background: var(--brand-secondary-3);
11632
12639
  }
11633
12640
  `;
11634
- var StatusOrphan = import_react70.css`
12641
+ var StatusOrphan = import_react86.css`
11635
12642
  &:before {
11636
12643
  background: var(--brand-secondary-5);
11637
12644
  }
11638
12645
  `;
11639
12646
 
11640
12647
  // src/components/Validation/StatusBullet.tsx
11641
- var import_jsx_runtime68 = require("@emotion/react/jsx-runtime");
12648
+ var import_jsx_runtime83 = require("@emotion/react/jsx-runtime");
11642
12649
  var StatusBullet = ({ status, hideText = false, message, ...props }) => {
11643
12650
  const currentStateStyles = {
11644
12651
  Error: StatusError,
@@ -11648,7 +12655,7 @@ var StatusBullet = ({ status, hideText = false, message, ...props }) => {
11648
12655
  Published: StatusPublished,
11649
12656
  Draft: StatusDraft
11650
12657
  };
11651
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
12658
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
11652
12659
  "span",
11653
12660
  {
11654
12661
  css: [StatusBulletContainer, currentStateStyles[status]],
@@ -11671,6 +12678,7 @@ var StatusBullet = ({ status, hideText = false, message, ...props }) => {
11671
12678
  Card,
11672
12679
  CardContainer,
11673
12680
  CheckboxWithInfo,
12681
+ ConnectToDataElementButton,
11674
12682
  Counter,
11675
12683
  CreateTeamIntegrationTile,
11676
12684
  DashedBox,
@@ -11714,6 +12722,30 @@ var StatusBullet = ({ status, hideText = false, message, ...props }) => {
11714
12722
  MenuItemSeparator,
11715
12723
  PageHeaderSection,
11716
12724
  Paragraph,
12725
+ ParameterDataResource,
12726
+ ParameterDrawerHeader,
12727
+ ParameterGroup,
12728
+ ParameterImage,
12729
+ ParameterImageInner,
12730
+ ParameterInput,
12731
+ ParameterInputInner,
12732
+ ParameterLabel,
12733
+ ParameterLink,
12734
+ ParameterLinkInner,
12735
+ ParameterMenuButton,
12736
+ ParameterNameAndPublicIdInput,
12737
+ ParameterOverrideMarker,
12738
+ ParameterRichText,
12739
+ ParameterRichTextInner,
12740
+ ParameterSelect,
12741
+ ParameterSelectInner,
12742
+ ParameterShell,
12743
+ ParameterShellContext,
12744
+ ParameterShellPlaceholder,
12745
+ ParameterTextarea,
12746
+ ParameterTextareaInner,
12747
+ ParameterToggle,
12748
+ ParameterToggleInner,
11717
12749
  ResolveIcon,
11718
12750
  ScrollableList,
11719
12751
  ScrollableListInputItem,
@@ -11751,6 +12783,7 @@ var StatusBullet = ({ status, hideText = false, message, ...props }) => {
11751
12783
  buttonSecondaryInvert,
11752
12784
  buttonTertiary,
11753
12785
  buttonUnimportant,
12786
+ extractParameterProps,
11754
12787
  fadeIn,
11755
12788
  fadeInBottom,
11756
12789
  fadeInLtr,
@@ -11775,5 +12808,6 @@ var StatusBullet = ({ status, hideText = false, message, ...props }) => {
11775
12808
  useIconContext,
11776
12809
  useMenuContext,
11777
12810
  useOutsideClick,
12811
+ useParameterShell,
11778
12812
  useShortcut
11779
12813
  });