@aivenio/aquarium 3.0.0 → 3.2.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/system.cjs CHANGED
@@ -1390,6 +1390,22 @@ var require_database02 = __commonJS({
1390
1390
  }
1391
1391
  });
1392
1392
 
1393
+ // src/icons/databaseArrow.js
1394
+ var require_databaseArrow = __commonJS({
1395
+ "src/icons/databaseArrow.js"(exports2) {
1396
+ "use strict";
1397
+ var data = {
1398
+ "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M14 3.333c0 1.105-2.686 2-6 2s-6-.895-6-2m12 0c0-1.104-2.686-2-6-2s-6 .896-6 2m12 0v3.212M2 3.333v9.334c0 1.106 2.667 2 6 2m6-8.187c0 1.107-2.667 2-6 2s-6-.893-6-2m6 5.147c-3.333 0-6-.894-6-2m12.91 2.737-2.183-2.182m0 0-2.181 2.182m2.181-2.182v4.364"/>',
1399
+ "left": 0,
1400
+ "top": 0,
1401
+ "width": 16,
1402
+ "height": 16
1403
+ };
1404
+ exports2.__esModule = true;
1405
+ exports2.default = data;
1406
+ }
1407
+ });
1408
+
1393
1409
  // src/icons/database.js
1394
1410
  var require_database = __commonJS({
1395
1411
  "src/icons/database.js"(exports2) {
@@ -4634,7 +4650,7 @@ var InputContainer = import_react3.default.forwardRef(
4634
4650
  "border-danger-default": variant === "error",
4635
4651
  "hover:border-intense": variant !== "error" && variant !== "disabled" && variant !== "focused",
4636
4652
  "border-info-default": variant === "focused",
4637
- "bg-body": variant !== "disabled",
4653
+ "bg-transparent": variant !== "disabled",
4638
4654
  "cursor-not-allowed border-default bg-default": variant === "disabled"
4639
4655
  }
4640
4656
  ),
@@ -4650,12 +4666,11 @@ var Input = import_react3.default.forwardRef(({ className, required, ...props },
4650
4666
  "aria-required": required,
4651
4667
  className: classNames(
4652
4668
  className,
4653
- "grow rounded border-0 focus:outline-none px-[1px] my-1 min-w-0 typography-small disabled:cursor-not-allowed disabled:bg-default placeholder:text-inactive",
4669
+ "grow rounded border-0 focus:outline-none px-[1px] my-1 min-w-0 typography-small bg-transparent disabled:cursor-not-allowed disabled:bg-default placeholder:text-inactive",
4654
4670
  {
4655
4671
  "text-default": !props.disabled,
4656
4672
  "text-inactive": props.disabled,
4657
- "bg-body": !props.readOnly,
4658
- "cursor-default bg-transparent": props.readOnly
4673
+ "cursor-default": props.readOnly
4659
4674
  }
4660
4675
  ),
4661
4676
  ...props
@@ -4667,7 +4682,7 @@ var Menu = import_react3.default.forwardRef(
4667
4682
  {
4668
4683
  ref,
4669
4684
  style: { maxHeight },
4670
- className: classNames(className, tw("text-default bg-body overflow-y-auto")),
4685
+ className: classNames(className, tw("text-default bg-popover-content overflow-y-auto")),
4671
4686
  ...props
4672
4687
  },
4673
4688
  children
@@ -4696,7 +4711,7 @@ var Item = import_react3.default.forwardRef(
4696
4711
  "li",
4697
4712
  {
4698
4713
  ref,
4699
- className: classNames(className, "flex items-center gap-x-3 p-3 typography-small", {
4714
+ className: classNames("Aquarium-Select.Item", className, "flex items-center gap-x-3 p-3 typography-small", {
4700
4715
  "cursor-pointer hover:bg-muted": !props["aria-disabled"],
4701
4716
  "cursor-not-allowed opacity-40 grayscale": props["aria-disabled"],
4702
4717
  "bg-muted": highlighted
@@ -4848,6 +4863,7 @@ var import_currencyDollar = __toESM(require_currencyDollar());
4848
4863
  var import_dashboard = __toESM(require_dashboard());
4849
4864
  var import_dataLineage = __toESM(require_dataLineage());
4850
4865
  var import_database02 = __toESM(require_database02());
4866
+ var import_databaseArrow = __toESM(require_databaseArrow());
4851
4867
  var import_database = __toESM(require_database());
4852
4868
  var import_dataflow01 = __toESM(require_dataflow01());
4853
4869
  var import_dataflow02 = __toESM(require_dataflow02());
@@ -7247,7 +7263,7 @@ var Arrow = (props) => {
7247
7263
  var getCommonInputStyles = ({ readOnly, valid }) => tw(
7248
7264
  "block w-full rounded-sm disabled:cursor-not-allowed disabled:border-default disabled:bg-default typography-small text-default disabled:text-inactive placeholder:text-inactive focus:outline-none",
7249
7265
  {
7250
- "px-3 py-3 bg-body": !readOnly,
7266
+ "px-3 py-3 bg-transparent": !readOnly,
7251
7267
  "border-none resize-none cursor-default bg-transparent": readOnly,
7252
7268
  "border border-danger-default": !valid && !readOnly,
7253
7269
  "border border-default hover:border-intense focus:border-info-default": valid && !readOnly
@@ -9481,8 +9497,22 @@ var import_react55 = __toESM(require("react"));
9481
9497
 
9482
9498
  // src/utils/form/FormControl/FormControl.tsx
9483
9499
  var import_react52 = __toESM(require("react"));
9484
- var FormControl = ({ className, inline, children }) => {
9485
- return /* @__PURE__ */ import_react52.default.createElement(Box.Flex, { flexDirection: "column", display: inline ? "inline-flex" : "flex", className }, children);
9500
+ var FormControl = ({
9501
+ className,
9502
+ inline,
9503
+ children,
9504
+ "data-testid": dataTestId
9505
+ }) => {
9506
+ return /* @__PURE__ */ import_react52.default.createElement(
9507
+ Box.Flex,
9508
+ {
9509
+ "data-testid": dataTestId,
9510
+ flexDirection: "column",
9511
+ display: inline ? "inline-flex" : "flex",
9512
+ className
9513
+ },
9514
+ children
9515
+ );
9486
9516
  };
9487
9517
 
9488
9518
  // src/utils/form/HelperText/HelperText.tsx
@@ -9584,11 +9614,13 @@ var LabelControl = ({
9584
9614
  valid,
9585
9615
  disabled,
9586
9616
  className,
9617
+ htmlFor,
9618
+ "data-testid": dataTestId,
9587
9619
  ...rest
9588
9620
  }) => {
9589
9621
  const legacyError = error2 !== void 0 && valid === false;
9590
9622
  const variant = !valid || legacyError ? "error" : disabled ? "disabled" : "default";
9591
- return /* @__PURE__ */ import_react55.default.createElement(FormControl, { className }, !fieldset && /* @__PURE__ */ import_react55.default.createElement(Label2, { ...rest, variant }, children), fieldset && /* @__PURE__ */ import_react55.default.createElement("fieldset", { id: rest.id }, /* @__PURE__ */ import_react55.default.createElement("legend", { className: tw("w-full mb-2") }, /* @__PURE__ */ import_react55.default.createElement(LabelText, { ...rest, variant })), children), /* @__PURE__ */ import_react55.default.createElement(
9623
+ return /* @__PURE__ */ import_react55.default.createElement(FormControl, { "data-testid": dataTestId, className }, !fieldset && !!htmlFor && /* @__PURE__ */ import_react55.default.createElement(import_react55.default.Fragment, null, /* @__PURE__ */ import_react55.default.createElement(Label2, { ...rest, htmlFor, variant }), children), !fieldset && !htmlFor && /* @__PURE__ */ import_react55.default.createElement(Label2, { ...rest, variant }, children), fieldset && /* @__PURE__ */ import_react55.default.createElement("fieldset", { id: rest.id }, /* @__PURE__ */ import_react55.default.createElement("legend", { className: tw("w-full mb-2") }, /* @__PURE__ */ import_react55.default.createElement(LabelText, { ...rest, variant })), children), /* @__PURE__ */ import_react55.default.createElement(
9592
9624
  HelperText,
9593
9625
  {
9594
9626
  messageId,
@@ -10308,7 +10340,6 @@ var _SelectBase = (props) => {
10308
10340
  emptyState,
10309
10341
  actions,
10310
10342
  children,
10311
- labelWrapper,
10312
10343
  ...rest
10313
10344
  } = withDefaults;
10314
10345
  const [hasFocus, setFocus] = (0, import_react64.useState)(false);
@@ -10393,7 +10424,7 @@ var _SelectBase = (props) => {
10393
10424
  !readOnly && /* @__PURE__ */ import_react64.default.createElement(Select.Toggle, { disabled, isOpen, tabIndex: -1 })
10394
10425
  );
10395
10426
  const menuProps = getMenuProps({ ref: menuRef }, { suppressRefError: !isOpen });
10396
- return /* @__PURE__ */ import_react64.default.createElement("div", { className: classNames("Aquarium-SelectBase", tw("relative")) }, labelWrapper ? import_react64.default.cloneElement(labelWrapper, { children: input }) : input, isOpen && /* @__PURE__ */ import_react64.default.createElement(
10427
+ return /* @__PURE__ */ import_react64.default.createElement("div", { className: classNames("Aquarium-SelectBase", tw("relative")) }, input, isOpen && /* @__PURE__ */ import_react64.default.createElement(
10397
10428
  PopoverOverlay,
10398
10429
  {
10399
10430
  state,
@@ -10417,7 +10448,7 @@ var _SelectBase = (props) => {
10417
10448
  ))))
10418
10449
  ));
10419
10450
  };
10420
- var SelectBase = (props) => /* @__PURE__ */ import_react64.default.createElement(_SelectBase, { ...props, labelWrapper: void 0 });
10451
+ var SelectBase = (props) => /* @__PURE__ */ import_react64.default.createElement(_SelectBase, { ...props });
10421
10452
  var SelectBaseSkeleton = () => /* @__PURE__ */ import_react64.default.createElement(Skeleton, { height: 38 });
10422
10453
  SelectBase.Skeleton = SelectBaseSkeleton;
10423
10454
  var Select2 = ({
@@ -10430,31 +10461,27 @@ var Select2 = ({
10430
10461
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
10431
10462
  const labelProps = getLabelControlProps(props);
10432
10463
  const baseProps = (0, import_lodash_es20.omit)(props, (0, import_lodash_es20.without)(Object.keys(labelProps), "required"));
10433
- const legacyError = labelProps.error !== void 0 && labelProps.valid === false;
10434
- const variant = !labelProps.valid || legacyError ? "error" : labelProps.disabled ? "disabled" : "default";
10435
- const label = /* @__PURE__ */ import_react64.default.createElement(Label2, { id: `${id}-label`, htmlFor: `${id}-input`, variant, messageId: errorMessageId, ...labelProps });
10436
- return /* @__PURE__ */ import_react64.default.createElement(FormControl, { className: "Aquarium-Select" }, /* @__PURE__ */ import_react64.default.createElement(
10437
- _SelectBase,
10438
- {
10439
- ...baseProps,
10440
- ...errorProps,
10441
- id: `${id}-input`,
10442
- options,
10443
- disabled: props.disabled,
10444
- valid: props.valid,
10445
- labelWrapper: label
10446
- }
10447
- ), /* @__PURE__ */ import_react64.default.createElement(
10448
- HelperText,
10464
+ return /* @__PURE__ */ import_react64.default.createElement(
10465
+ LabelControl,
10449
10466
  {
10467
+ id: `${id}-label`,
10468
+ htmlFor: `${id}-input`,
10450
10469
  messageId: errorMessageId,
10451
- error: !labelProps.valid,
10452
- helperText: labelProps.helperText,
10453
- length: labelProps.length,
10454
- maxLength: labelProps.maxLength,
10455
- reserveSpaceForError: labelProps.reserveSpaceForError
10456
- }
10457
- ));
10470
+ ...labelProps,
10471
+ className: "Aquarium-Select"
10472
+ },
10473
+ /* @__PURE__ */ import_react64.default.createElement(
10474
+ _SelectBase,
10475
+ {
10476
+ ...baseProps,
10477
+ ...errorProps,
10478
+ id: `${id}-input`,
10479
+ options,
10480
+ disabled: props.disabled,
10481
+ valid: props.valid
10482
+ }
10483
+ )
10484
+ );
10458
10485
  };
10459
10486
  var SelectSkeleton = () => /* @__PURE__ */ import_react64.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react64.default.createElement(SelectBase.Skeleton, null));
10460
10487
  Select2.Skeleton = SelectSkeleton;
@@ -11702,6 +11729,7 @@ var DataListGroup = ({
11702
11729
  } = props;
11703
11730
  const groupKeys = groups ? Object.keys(groups) : void 0;
11704
11731
  const hasCustomRowForGroup = (0, import_lodash_es29.isFunction)(getGroupRow);
11732
+ const isMultiSelectionMode = selectable === "multiple" || selectable === "multiple-not-all";
11705
11733
  if (!areRowsGrouped(groups)) {
11706
11734
  if (groups.length === 0 && groupKey && groupKey !== "undefined") {
11707
11735
  const emptyGroupContent = renderEmptyGroup(groupKey);
@@ -11767,7 +11795,7 @@ var DataListGroup = ({
11767
11795
  checked: isSelected,
11768
11796
  disabled: isDisabled || isSelectionDisabled
11769
11797
  }
11770
- ), selectable === "multiple" && /* @__PURE__ */ import_react77.default.createElement(
11798
+ ), isMultiSelectionMode && /* @__PURE__ */ import_react77.default.createElement(
11771
11799
  Checkbox,
11772
11800
  {
11773
11801
  "aria-label": getRowSelectionLabel(row2, index2, isSelected, rows),
@@ -11813,7 +11841,7 @@ var DataListGroup = ({
11813
11841
  const isChecked = nestedSelectedIds.length > 0;
11814
11842
  const isActiveRow = !!openPanelId || selectable && isChecked;
11815
11843
  const isLastRow = isLastGroup && index === groupKeys.length - 1 && !openPanelId;
11816
- return /* @__PURE__ */ import_react77.default.createElement(Accordion, { key, openPanelId }, hasCustomRowForGroup && /* @__PURE__ */ import_react77.default.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, selectable === "multiple" && /* @__PURE__ */ import_react77.default.createElement(
11844
+ return /* @__PURE__ */ import_react77.default.createElement(Accordion, { key, openPanelId }, hasCustomRowForGroup && /* @__PURE__ */ import_react77.default.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, isMultiSelectionMode && /* @__PURE__ */ import_react77.default.createElement(
11817
11845
  Checkbox,
11818
11846
  {
11819
11847
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
@@ -11848,7 +11876,7 @@ var DataListGroup = ({
11848
11876
  onMenuOpenChange,
11849
11877
  menuAriaLabel
11850
11878
  }
11851
- )), !hasCustomRowForGroup && /* @__PURE__ */ import_react77.default.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, selectable === "multiple" && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, /* @__PURE__ */ import_react77.default.createElement(
11879
+ )), !hasCustomRowForGroup && /* @__PURE__ */ import_react77.default.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, isMultiSelectionMode && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, /* @__PURE__ */ import_react77.default.createElement(
11852
11880
  Checkbox,
11853
11881
  {
11854
11882
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
@@ -12008,6 +12036,7 @@ var DataList2 = ({
12008
12036
  setSelected(selected?.filter((_id) => !ids.includes(_id)));
12009
12037
  }
12010
12038
  };
12039
+ const isMultiSelectionMode = selectable === "multiple" || selectable === "multiple-not-all";
12011
12040
  const allRows = flattenRows(rows);
12012
12041
  const totalSelected = selected?.length ?? 0;
12013
12042
  const allEnabledRowIds = (0, import_lodash_es31.compact)(
@@ -12127,7 +12156,7 @@ var DataList2 = ({
12127
12156
  checked: isSelected,
12128
12157
  disabled: isDisabled || isSelectionDisabled
12129
12158
  }
12130
- ), selectable === "multiple" && /* @__PURE__ */ import_react80.default.createElement(
12159
+ ), isMultiSelectionMode && /* @__PURE__ */ import_react80.default.createElement(
12131
12160
  Checkbox,
12132
12161
  {
12133
12162
  "aria-label": getRowSelectionLabel(row2, index2, isSelected, sortedRows),
@@ -12423,7 +12452,7 @@ var fieldBorder = (0, import_tailwind_variants2.tv)({
12423
12452
  }
12424
12453
  });
12425
12454
  var fieldGroup = (0, import_tailwind_variants2.tv)({
12426
- base: "group flex items-center bg-body border rounded-sm typography-small text-default px-3 py-3 overflow-hidden",
12455
+ base: "group flex items-center bg-transparent border rounded-sm typography-small text-default px-3 py-3 overflow-hidden",
12427
12456
  variants: fieldBorder.variants
12428
12457
  });
12429
12458
 
@@ -12500,7 +12529,7 @@ var ButtonBase = ({
12500
12529
  ...props,
12501
12530
  className: classNames(
12502
12531
  className,
12503
- tw("group-hover:opacity-100 py-1 ", {
12532
+ tw("group-hover:opacity-100 p-0", {
12504
12533
  "opacity-0 group-focus-within:opacity-100": !hideWhenParentIsNotHoveredOrFocused
12505
12534
  })
12506
12535
  )
@@ -12646,7 +12675,7 @@ var createDatePickerBase = (variant) => ({
12646
12675
  isInvalid: valid === false,
12647
12676
  granularity: granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0)
12648
12677
  },
12649
- /* @__PURE__ */ import_react91.default.createElement(FieldGroup, { className: tw("min-w-[210px] w-auto") }, /* @__PURE__ */ import_react91.default.createElement(DateInput, { className: tw("flex-1") }), clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react91.default.createElement(DatePickerClearButton, null), /* @__PURE__ */ import_react91.default.createElement(CalendarButton, null)),
12678
+ /* @__PURE__ */ import_react91.default.createElement(FieldGroup, { className: tw("min-w-[210px] w-auto") }, /* @__PURE__ */ import_react91.default.createElement(DateInput, { className: tw("flex-1") }), /* @__PURE__ */ import_react91.default.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react91.default.createElement(DatePickerClearButton, null), /* @__PURE__ */ import_react91.default.createElement(CalendarButton, null))),
12650
12679
  /* @__PURE__ */ import_react91.default.createElement(Popover2, { offset: 0 }, /* @__PURE__ */ import_react91.default.createElement(Dialog, null, /* @__PURE__ */ import_react91.default.createElement(Spacing, { gap: "3" }, /* @__PURE__ */ import_react91.default.createElement(Calendar, null), variant === "datetime" && /* @__PURE__ */ import_react91.default.createElement(PickerTimeField, { granularity }), errorMessage && /* @__PURE__ */ import_react91.default.createElement(import_react_aria_components8.Text, { slot: "errorMessage", className: tw("typography-caption text-danger-default max-w-[300px]") }, errorMessage))))
12651
12680
  );
12652
12681
  };
@@ -12777,7 +12806,7 @@ var createDateRangePickerBase = (variant) => ({
12777
12806
  granularity: granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0),
12778
12807
  className: tw("group flex flex-col gap-1")
12779
12808
  },
12780
- /* @__PURE__ */ import_react93.default.createElement(FieldGroup, { className: tw("min-w-[200px] w-auto gap-2") }, /* @__PURE__ */ import_react93.default.createElement(DateInput, { slot: "start", className: tw("px-2 py-1") }), /* @__PURE__ */ import_react93.default.createElement("span", { "aria-hidden": true, className: tw("text-muted") }, "-"), /* @__PURE__ */ import_react93.default.createElement(DateInput, { slot: "end", className: tw("flex-1 px-2 py-1") }), clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react93.default.createElement(DateRangePickerClearButton, null), /* @__PURE__ */ import_react93.default.createElement(CalendarButton, null)),
12809
+ /* @__PURE__ */ import_react93.default.createElement(FieldGroup, { className: tw("min-w-[200px] w-auto gap-2") }, /* @__PURE__ */ import_react93.default.createElement(DateInput, { slot: "start", className: tw("px-2 py-1") }), /* @__PURE__ */ import_react93.default.createElement("span", { "aria-hidden": true, className: tw("text-muted") }, "-"), /* @__PURE__ */ import_react93.default.createElement(DateInput, { slot: "end", className: tw("flex-1 px-2 py-1") }), /* @__PURE__ */ import_react93.default.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ import_react93.default.createElement(DateRangePickerClearButton, null), /* @__PURE__ */ import_react93.default.createElement(CalendarButton, null))),
12781
12810
  /* @__PURE__ */ import_react93.default.createElement(Popover2, { offset: 0 }, /* @__PURE__ */ import_react93.default.createElement(Dialog, null, /* @__PURE__ */ import_react93.default.createElement(Spacing, { gap: "3" }, /* @__PURE__ */ import_react93.default.createElement(RangeCalendar, null), variant === "datetime" && /* @__PURE__ */ import_react93.default.createElement(Box.Flex, { gap: "6" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ import_react93.default.createElement(PickerTimeField2, { granularity, part: "start" })), /* @__PURE__ */ import_react93.default.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ import_react93.default.createElement(PickerTimeField2, { granularity, part: "end" }))), errorMessage && /* @__PURE__ */ import_react93.default.createElement(import_react_aria_components10.Text, { slot: "errorMessage", className: tw("typography-caption text-danger-default max-w-[300px]") }, errorMessage))))
12782
12811
  );
12783
12812
  };
@@ -14463,8 +14492,8 @@ var NativeSelectBase = import_react115.default.forwardRef(
14463
14492
  tw(
14464
14493
  "block w-full rounded-sm appearance-none disabled:cursor-not-allowed typography-small text-default placeholder:text-inactive focus:outline-none",
14465
14494
  {
14466
- "px-3 py-3 bg-body disabled:border-default disabled:bg-default disabled:text-inactive": !readOnly,
14467
- "px-0 py-3 border-none": readOnly,
14495
+ "px-3 py-3 bg-transparent disabled:border-default disabled:bg-default disabled:text-inactive": !readOnly,
14496
+ "px-0 py-3 border-none bg-transparent": readOnly,
14468
14497
  "border border-danger-default": !valid && !readOnly,
14469
14498
  "border border-default hover:border-intense focus:border-info-default": valid && !readOnly
14470
14499
  }
package/dist/system.mjs CHANGED
@@ -1388,6 +1388,22 @@ var require_database02 = __commonJS({
1388
1388
  }
1389
1389
  });
1390
1390
 
1391
+ // src/icons/databaseArrow.js
1392
+ var require_databaseArrow = __commonJS({
1393
+ "src/icons/databaseArrow.js"(exports) {
1394
+ "use strict";
1395
+ var data = {
1396
+ "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M14 3.333c0 1.105-2.686 2-6 2s-6-.895-6-2m12 0c0-1.104-2.686-2-6-2s-6 .896-6 2m12 0v3.212M2 3.333v9.334c0 1.106 2.667 2 6 2m6-8.187c0 1.107-2.667 2-6 2s-6-.893-6-2m6 5.147c-3.333 0-6-.894-6-2m12.91 2.737-2.183-2.182m0 0-2.181 2.182m2.181-2.182v4.364"/>',
1397
+ "left": 0,
1398
+ "top": 0,
1399
+ "width": 16,
1400
+ "height": 16
1401
+ };
1402
+ exports.__esModule = true;
1403
+ exports.default = data;
1404
+ }
1405
+ });
1406
+
1391
1407
  // src/icons/database.js
1392
1408
  var require_database = __commonJS({
1393
1409
  "src/icons/database.js"(exports) {
@@ -4471,7 +4487,7 @@ var InputContainer = React2.forwardRef(
4471
4487
  "border-danger-default": variant === "error",
4472
4488
  "hover:border-intense": variant !== "error" && variant !== "disabled" && variant !== "focused",
4473
4489
  "border-info-default": variant === "focused",
4474
- "bg-body": variant !== "disabled",
4490
+ "bg-transparent": variant !== "disabled",
4475
4491
  "cursor-not-allowed border-default bg-default": variant === "disabled"
4476
4492
  }
4477
4493
  ),
@@ -4487,12 +4503,11 @@ var Input = React2.forwardRef(({ className, required, ...props }, ref) => /* @__
4487
4503
  "aria-required": required,
4488
4504
  className: classNames(
4489
4505
  className,
4490
- "grow rounded border-0 focus:outline-none px-[1px] my-1 min-w-0 typography-small disabled:cursor-not-allowed disabled:bg-default placeholder:text-inactive",
4506
+ "grow rounded border-0 focus:outline-none px-[1px] my-1 min-w-0 typography-small bg-transparent disabled:cursor-not-allowed disabled:bg-default placeholder:text-inactive",
4491
4507
  {
4492
4508
  "text-default": !props.disabled,
4493
4509
  "text-inactive": props.disabled,
4494
- "bg-body": !props.readOnly,
4495
- "cursor-default bg-transparent": props.readOnly
4510
+ "cursor-default": props.readOnly
4496
4511
  }
4497
4512
  ),
4498
4513
  ...props
@@ -4504,7 +4519,7 @@ var Menu = React2.forwardRef(
4504
4519
  {
4505
4520
  ref,
4506
4521
  style: { maxHeight },
4507
- className: classNames(className, tw("text-default bg-body overflow-y-auto")),
4522
+ className: classNames(className, tw("text-default bg-popover-content overflow-y-auto")),
4508
4523
  ...props
4509
4524
  },
4510
4525
  children
@@ -4533,7 +4548,7 @@ var Item = React2.forwardRef(
4533
4548
  "li",
4534
4549
  {
4535
4550
  ref,
4536
- className: classNames(className, "flex items-center gap-x-3 p-3 typography-small", {
4551
+ className: classNames("Aquarium-Select.Item", className, "flex items-center gap-x-3 p-3 typography-small", {
4537
4552
  "cursor-pointer hover:bg-muted": !props["aria-disabled"],
4538
4553
  "cursor-not-allowed opacity-40 grayscale": props["aria-disabled"],
4539
4554
  "bg-muted": highlighted
@@ -4685,6 +4700,7 @@ var import_currencyDollar = __toESM(require_currencyDollar());
4685
4700
  var import_dashboard = __toESM(require_dashboard());
4686
4701
  var import_dataLineage = __toESM(require_dataLineage());
4687
4702
  var import_database02 = __toESM(require_database02());
4703
+ var import_databaseArrow = __toESM(require_databaseArrow());
4688
4704
  var import_database = __toESM(require_database());
4689
4705
  var import_dataflow01 = __toESM(require_dataflow01());
4690
4706
  var import_dataflow02 = __toESM(require_dataflow02());
@@ -7084,7 +7100,7 @@ var Arrow = (props) => {
7084
7100
  var getCommonInputStyles = ({ readOnly, valid }) => tw(
7085
7101
  "block w-full rounded-sm disabled:cursor-not-allowed disabled:border-default disabled:bg-default typography-small text-default disabled:text-inactive placeholder:text-inactive focus:outline-none",
7086
7102
  {
7087
- "px-3 py-3 bg-body": !readOnly,
7103
+ "px-3 py-3 bg-transparent": !readOnly,
7088
7104
  "border-none resize-none cursor-default bg-transparent": readOnly,
7089
7105
  "border border-danger-default": !valid && !readOnly,
7090
7106
  "border border-default hover:border-intense focus:border-info-default": valid && !readOnly
@@ -9318,8 +9334,22 @@ import React49 from "react";
9318
9334
 
9319
9335
  // src/utils/form/FormControl/FormControl.tsx
9320
9336
  import React46 from "react";
9321
- var FormControl = ({ className, inline, children }) => {
9322
- return /* @__PURE__ */ React46.createElement(Box.Flex, { flexDirection: "column", display: inline ? "inline-flex" : "flex", className }, children);
9337
+ var FormControl = ({
9338
+ className,
9339
+ inline,
9340
+ children,
9341
+ "data-testid": dataTestId
9342
+ }) => {
9343
+ return /* @__PURE__ */ React46.createElement(
9344
+ Box.Flex,
9345
+ {
9346
+ "data-testid": dataTestId,
9347
+ flexDirection: "column",
9348
+ display: inline ? "inline-flex" : "flex",
9349
+ className
9350
+ },
9351
+ children
9352
+ );
9323
9353
  };
9324
9354
 
9325
9355
  // src/utils/form/HelperText/HelperText.tsx
@@ -9421,11 +9451,13 @@ var LabelControl = ({
9421
9451
  valid,
9422
9452
  disabled,
9423
9453
  className,
9454
+ htmlFor,
9455
+ "data-testid": dataTestId,
9424
9456
  ...rest
9425
9457
  }) => {
9426
9458
  const legacyError = error2 !== void 0 && valid === false;
9427
9459
  const variant = !valid || legacyError ? "error" : disabled ? "disabled" : "default";
9428
- return /* @__PURE__ */ React49.createElement(FormControl, { className }, !fieldset && /* @__PURE__ */ React49.createElement(Label2, { ...rest, variant }, children), fieldset && /* @__PURE__ */ React49.createElement("fieldset", { id: rest.id }, /* @__PURE__ */ React49.createElement("legend", { className: tw("w-full mb-2") }, /* @__PURE__ */ React49.createElement(LabelText, { ...rest, variant })), children), /* @__PURE__ */ React49.createElement(
9460
+ return /* @__PURE__ */ React49.createElement(FormControl, { "data-testid": dataTestId, className }, !fieldset && !!htmlFor && /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(Label2, { ...rest, htmlFor, variant }), children), !fieldset && !htmlFor && /* @__PURE__ */ React49.createElement(Label2, { ...rest, variant }, children), fieldset && /* @__PURE__ */ React49.createElement("fieldset", { id: rest.id }, /* @__PURE__ */ React49.createElement("legend", { className: tw("w-full mb-2") }, /* @__PURE__ */ React49.createElement(LabelText, { ...rest, variant })), children), /* @__PURE__ */ React49.createElement(
9429
9461
  HelperText,
9430
9462
  {
9431
9463
  messageId,
@@ -10145,7 +10177,6 @@ var _SelectBase = (props) => {
10145
10177
  emptyState,
10146
10178
  actions,
10147
10179
  children,
10148
- labelWrapper,
10149
10180
  ...rest
10150
10181
  } = withDefaults;
10151
10182
  const [hasFocus, setFocus] = useState8(false);
@@ -10230,7 +10261,7 @@ var _SelectBase = (props) => {
10230
10261
  !readOnly && /* @__PURE__ */ React58.createElement(Select.Toggle, { disabled, isOpen, tabIndex: -1 })
10231
10262
  );
10232
10263
  const menuProps = getMenuProps({ ref: menuRef }, { suppressRefError: !isOpen });
10233
- return /* @__PURE__ */ React58.createElement("div", { className: classNames("Aquarium-SelectBase", tw("relative")) }, labelWrapper ? React58.cloneElement(labelWrapper, { children: input }) : input, isOpen && /* @__PURE__ */ React58.createElement(
10264
+ return /* @__PURE__ */ React58.createElement("div", { className: classNames("Aquarium-SelectBase", tw("relative")) }, input, isOpen && /* @__PURE__ */ React58.createElement(
10234
10265
  PopoverOverlay,
10235
10266
  {
10236
10267
  state,
@@ -10254,7 +10285,7 @@ var _SelectBase = (props) => {
10254
10285
  ))))
10255
10286
  ));
10256
10287
  };
10257
- var SelectBase = (props) => /* @__PURE__ */ React58.createElement(_SelectBase, { ...props, labelWrapper: void 0 });
10288
+ var SelectBase = (props) => /* @__PURE__ */ React58.createElement(_SelectBase, { ...props });
10258
10289
  var SelectBaseSkeleton = () => /* @__PURE__ */ React58.createElement(Skeleton, { height: 38 });
10259
10290
  SelectBase.Skeleton = SelectBaseSkeleton;
10260
10291
  var Select2 = ({
@@ -10267,31 +10298,27 @@ var Select2 = ({
10267
10298
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
10268
10299
  const labelProps = getLabelControlProps(props);
10269
10300
  const baseProps = omit6(props, without(Object.keys(labelProps), "required"));
10270
- const legacyError = labelProps.error !== void 0 && labelProps.valid === false;
10271
- const variant = !labelProps.valid || legacyError ? "error" : labelProps.disabled ? "disabled" : "default";
10272
- const label = /* @__PURE__ */ React58.createElement(Label2, { id: `${id}-label`, htmlFor: `${id}-input`, variant, messageId: errorMessageId, ...labelProps });
10273
- return /* @__PURE__ */ React58.createElement(FormControl, { className: "Aquarium-Select" }, /* @__PURE__ */ React58.createElement(
10274
- _SelectBase,
10275
- {
10276
- ...baseProps,
10277
- ...errorProps,
10278
- id: `${id}-input`,
10279
- options,
10280
- disabled: props.disabled,
10281
- valid: props.valid,
10282
- labelWrapper: label
10283
- }
10284
- ), /* @__PURE__ */ React58.createElement(
10285
- HelperText,
10301
+ return /* @__PURE__ */ React58.createElement(
10302
+ LabelControl,
10286
10303
  {
10304
+ id: `${id}-label`,
10305
+ htmlFor: `${id}-input`,
10287
10306
  messageId: errorMessageId,
10288
- error: !labelProps.valid,
10289
- helperText: labelProps.helperText,
10290
- length: labelProps.length,
10291
- maxLength: labelProps.maxLength,
10292
- reserveSpaceForError: labelProps.reserveSpaceForError
10293
- }
10294
- ));
10307
+ ...labelProps,
10308
+ className: "Aquarium-Select"
10309
+ },
10310
+ /* @__PURE__ */ React58.createElement(
10311
+ _SelectBase,
10312
+ {
10313
+ ...baseProps,
10314
+ ...errorProps,
10315
+ id: `${id}-input`,
10316
+ options,
10317
+ disabled: props.disabled,
10318
+ valid: props.valid
10319
+ }
10320
+ )
10321
+ );
10295
10322
  };
10296
10323
  var SelectSkeleton = () => /* @__PURE__ */ React58.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ React58.createElement(SelectBase.Skeleton, null));
10297
10324
  Select2.Skeleton = SelectSkeleton;
@@ -11539,6 +11566,7 @@ var DataListGroup = ({
11539
11566
  } = props;
11540
11567
  const groupKeys = groups ? Object.keys(groups) : void 0;
11541
11568
  const hasCustomRowForGroup = isFunction2(getGroupRow);
11569
+ const isMultiSelectionMode = selectable === "multiple" || selectable === "multiple-not-all";
11542
11570
  if (!areRowsGrouped(groups)) {
11543
11571
  if (groups.length === 0 && groupKey && groupKey !== "undefined") {
11544
11572
  const emptyGroupContent = renderEmptyGroup(groupKey);
@@ -11604,7 +11632,7 @@ var DataListGroup = ({
11604
11632
  checked: isSelected,
11605
11633
  disabled: isDisabled || isSelectionDisabled
11606
11634
  }
11607
- ), selectable === "multiple" && /* @__PURE__ */ React69.createElement(
11635
+ ), isMultiSelectionMode && /* @__PURE__ */ React69.createElement(
11608
11636
  Checkbox,
11609
11637
  {
11610
11638
  "aria-label": getRowSelectionLabel(row2, index2, isSelected, rows),
@@ -11650,7 +11678,7 @@ var DataListGroup = ({
11650
11678
  const isChecked = nestedSelectedIds.length > 0;
11651
11679
  const isActiveRow = !!openPanelId || selectable && isChecked;
11652
11680
  const isLastRow = isLastGroup && index === groupKeys.length - 1 && !openPanelId;
11653
- return /* @__PURE__ */ React69.createElement(Accordion, { key, openPanelId }, hasCustomRowForGroup && /* @__PURE__ */ React69.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, selectable && /* @__PURE__ */ React69.createElement(DataList.Cell, null, selectable === "multiple" && /* @__PURE__ */ React69.createElement(
11681
+ return /* @__PURE__ */ React69.createElement(Accordion, { key, openPanelId }, hasCustomRowForGroup && /* @__PURE__ */ React69.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, selectable && /* @__PURE__ */ React69.createElement(DataList.Cell, null, isMultiSelectionMode && /* @__PURE__ */ React69.createElement(
11654
11682
  Checkbox,
11655
11683
  {
11656
11684
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
@@ -11685,7 +11713,7 @@ var DataListGroup = ({
11685
11713
  onMenuOpenChange,
11686
11714
  menuAriaLabel
11687
11715
  }
11688
- )), !hasCustomRowForGroup && /* @__PURE__ */ React69.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, selectable === "multiple" && /* @__PURE__ */ React69.createElement(DataList.Cell, null, /* @__PURE__ */ React69.createElement(
11716
+ )), !hasCustomRowForGroup && /* @__PURE__ */ React69.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, isMultiSelectionMode && /* @__PURE__ */ React69.createElement(DataList.Cell, null, /* @__PURE__ */ React69.createElement(
11689
11717
  Checkbox,
11690
11718
  {
11691
11719
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
@@ -11845,6 +11873,7 @@ var DataList2 = ({
11845
11873
  setSelected(selected?.filter((_id) => !ids.includes(_id)));
11846
11874
  }
11847
11875
  };
11876
+ const isMultiSelectionMode = selectable === "multiple" || selectable === "multiple-not-all";
11848
11877
  const allRows = flattenRows(rows);
11849
11878
  const totalSelected = selected?.length ?? 0;
11850
11879
  const allEnabledRowIds = compact(
@@ -11964,7 +11993,7 @@ var DataList2 = ({
11964
11993
  checked: isSelected,
11965
11994
  disabled: isDisabled || isSelectionDisabled
11966
11995
  }
11967
- ), selectable === "multiple" && /* @__PURE__ */ React72.createElement(
11996
+ ), isMultiSelectionMode && /* @__PURE__ */ React72.createElement(
11968
11997
  Checkbox,
11969
11998
  {
11970
11999
  "aria-label": getRowSelectionLabel(row2, index2, isSelected, sortedRows),
@@ -12264,7 +12293,7 @@ var fieldBorder = tv2({
12264
12293
  }
12265
12294
  });
12266
12295
  var fieldGroup = tv2({
12267
- base: "group flex items-center bg-body border rounded-sm typography-small text-default px-3 py-3 overflow-hidden",
12296
+ base: "group flex items-center bg-transparent border rounded-sm typography-small text-default px-3 py-3 overflow-hidden",
12268
12297
  variants: fieldBorder.variants
12269
12298
  });
12270
12299
 
@@ -12343,7 +12372,7 @@ var ButtonBase = ({
12343
12372
  ...props,
12344
12373
  className: classNames(
12345
12374
  className,
12346
- tw("group-hover:opacity-100 py-1 ", {
12375
+ tw("group-hover:opacity-100 p-0", {
12347
12376
  "opacity-0 group-focus-within:opacity-100": !hideWhenParentIsNotHoveredOrFocused
12348
12377
  })
12349
12378
  )
@@ -12502,7 +12531,7 @@ var createDatePickerBase = (variant) => ({
12502
12531
  isInvalid: valid === false,
12503
12532
  granularity: granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0)
12504
12533
  },
12505
- /* @__PURE__ */ React83.createElement(FieldGroup, { className: tw("min-w-[210px] w-auto") }, /* @__PURE__ */ React83.createElement(DateInput, { className: tw("flex-1") }), clearSelectionEnabled && !disabled && /* @__PURE__ */ React83.createElement(DatePickerClearButton, null), /* @__PURE__ */ React83.createElement(CalendarButton, null)),
12534
+ /* @__PURE__ */ React83.createElement(FieldGroup, { className: tw("min-w-[210px] w-auto") }, /* @__PURE__ */ React83.createElement(DateInput, { className: tw("flex-1") }), /* @__PURE__ */ React83.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ React83.createElement(DatePickerClearButton, null), /* @__PURE__ */ React83.createElement(CalendarButton, null))),
12506
12535
  /* @__PURE__ */ React83.createElement(Popover2, { offset: 0 }, /* @__PURE__ */ React83.createElement(Dialog, null, /* @__PURE__ */ React83.createElement(Spacing, { gap: "3" }, /* @__PURE__ */ React83.createElement(Calendar, null), variant === "datetime" && /* @__PURE__ */ React83.createElement(PickerTimeField, { granularity }), errorMessage && /* @__PURE__ */ React83.createElement(Text, { slot: "errorMessage", className: tw("typography-caption text-danger-default max-w-[300px]") }, errorMessage))))
12507
12536
  );
12508
12537
  };
@@ -12642,7 +12671,7 @@ var createDateRangePickerBase = (variant) => ({
12642
12671
  granularity: granularity ?? (variant === "datetime" && !hasSomeValue ? "minute" : void 0),
12643
12672
  className: tw("group flex flex-col gap-1")
12644
12673
  },
12645
- /* @__PURE__ */ React85.createElement(FieldGroup, { className: tw("min-w-[200px] w-auto gap-2") }, /* @__PURE__ */ React85.createElement(DateInput, { slot: "start", className: tw("px-2 py-1") }), /* @__PURE__ */ React85.createElement("span", { "aria-hidden": true, className: tw("text-muted") }, "-"), /* @__PURE__ */ React85.createElement(DateInput, { slot: "end", className: tw("flex-1 px-2 py-1") }), clearSelectionEnabled && !disabled && /* @__PURE__ */ React85.createElement(DateRangePickerClearButton, null), /* @__PURE__ */ React85.createElement(CalendarButton, null)),
12674
+ /* @__PURE__ */ React85.createElement(FieldGroup, { className: tw("min-w-[200px] w-auto gap-2") }, /* @__PURE__ */ React85.createElement(DateInput, { slot: "start", className: tw("px-2 py-1") }), /* @__PURE__ */ React85.createElement("span", { "aria-hidden": true, className: tw("text-muted") }, "-"), /* @__PURE__ */ React85.createElement(DateInput, { slot: "end", className: tw("flex-1 px-2 py-1") }), /* @__PURE__ */ React85.createElement(Box.Flex, { alignItems: "center", gap: "2" }, clearSelectionEnabled && !disabled && /* @__PURE__ */ React85.createElement(DateRangePickerClearButton, null), /* @__PURE__ */ React85.createElement(CalendarButton, null))),
12646
12675
  /* @__PURE__ */ React85.createElement(Popover2, { offset: 0 }, /* @__PURE__ */ React85.createElement(Dialog, null, /* @__PURE__ */ React85.createElement(Spacing, { gap: "3" }, /* @__PURE__ */ React85.createElement(RangeCalendar, null), variant === "datetime" && /* @__PURE__ */ React85.createElement(Box.Flex, { gap: "6" }, /* @__PURE__ */ React85.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ React85.createElement(PickerTimeField2, { granularity, part: "start" })), /* @__PURE__ */ React85.createElement("div", { className: tw("flex-1") }, /* @__PURE__ */ React85.createElement(PickerTimeField2, { granularity, part: "end" }))), errorMessage && /* @__PURE__ */ React85.createElement(Text2, { slot: "errorMessage", className: tw("typography-caption text-danger-default max-w-[300px]") }, errorMessage))))
12647
12676
  );
12648
12677
  };
@@ -14328,8 +14357,8 @@ var NativeSelectBase = React106.forwardRef(
14328
14357
  tw(
14329
14358
  "block w-full rounded-sm appearance-none disabled:cursor-not-allowed typography-small text-default placeholder:text-inactive focus:outline-none",
14330
14359
  {
14331
- "px-3 py-3 bg-body disabled:border-default disabled:bg-default disabled:text-inactive": !readOnly,
14332
- "px-0 py-3 border-none": readOnly,
14360
+ "px-3 py-3 bg-transparent disabled:border-default disabled:bg-default disabled:text-inactive": !readOnly,
14361
+ "px-0 py-3 border-none bg-transparent": readOnly,
14333
14362
  "border border-danger-default": !valid && !readOnly,
14334
14363
  "border border-default hover:border-intense focus:border-info-default": valid && !readOnly
14335
14364
  }