@aivenio/aquarium 1.13.0 → 1.15.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.
Files changed (41) hide show
  1. package/dist/_variables.scss +1 -1
  2. package/dist/_variables_timescale.scss +1 -1
  3. package/dist/atoms.cjs +190 -106
  4. package/dist/atoms.mjs +189 -106
  5. package/dist/src/atoms/DataList/DataList.d.ts +3 -1
  6. package/dist/src/atoms/DataList/DataList.js +5 -5
  7. package/dist/src/atoms/Navigation/Navigation.d.ts +20 -0
  8. package/dist/src/atoms/Navigation/Navigation.js +49 -0
  9. package/dist/src/atoms/PageHeader/PageHeader.d.ts +13 -0
  10. package/dist/src/atoms/PageHeader/PageHeader.js +43 -0
  11. package/dist/src/atoms/Table/Table.d.ts +4 -3
  12. package/dist/src/atoms/Table/Table.js +17 -7
  13. package/dist/src/atoms/index.d.ts +1 -0
  14. package/dist/src/atoms/index.js +2 -1
  15. package/dist/src/molecules/Button/Button.d.ts +1 -1
  16. package/dist/src/molecules/Button/Button.js +4 -4
  17. package/dist/src/molecules/DataList/DataList.d.ts +3 -3
  18. package/dist/src/molecules/DataList/DataList.js +19 -6
  19. package/dist/src/molecules/DataTable/DataTable.d.ts +3 -3
  20. package/dist/src/molecules/DataTable/DataTable.js +18 -6
  21. package/dist/src/molecules/DropdownMenu/DropdownMenu.d.ts +11 -5
  22. package/dist/src/molecules/DropdownMenu/DropdownMenu.js +2 -1
  23. package/dist/src/molecules/Modal/Modal.d.ts +5 -0
  24. package/dist/src/molecules/Modal/Modal.js +4 -3
  25. package/dist/src/molecules/Navigation/Navigation.d.ts +19 -0
  26. package/dist/src/molecules/Navigation/Navigation.js +27 -0
  27. package/dist/src/molecules/PageHeader/PageHeader.d.ts +2 -0
  28. package/dist/src/molecules/PageHeader/PageHeader.js +10 -9
  29. package/dist/src/molecules/Stepper/Stepper.js +2 -1
  30. package/dist/src/molecules/index.d.ts +1 -0
  31. package/dist/src/molecules/index.js +2 -1
  32. package/dist/src/utils/table/types.d.ts +19 -1
  33. package/dist/src/utils/table/types.js +2 -1
  34. package/dist/styles.css +29 -16
  35. package/dist/styles_timescaledb.css +29 -16
  36. package/dist/system.cjs +1661 -1453
  37. package/dist/system.mjs +1219 -1012
  38. package/dist/tokens.json +4 -4
  39. package/dist/tsconfig.module.tsbuildinfo +1 -1
  40. package/dist/types/tailwindGenerated.d.ts +1 -1
  41. package/package.json +2 -2
package/dist/system.cjs CHANGED
@@ -221,7 +221,7 @@ var require_tokens = __commonJS({
221
221
  style: {
222
222
  fontFamily: "Inter",
223
223
  fontSize: "16px",
224
- fontWeight: 600,
224
+ fontWeight: 500,
225
225
  fontStyle: "normal",
226
226
  lineHeight: 1.5,
227
227
  textTransform: "none"
@@ -247,7 +247,7 @@ var require_tokens = __commonJS({
247
247
  style: {
248
248
  fontFamily: "Inter",
249
249
  fontSize: "14px",
250
- fontWeight: 600,
250
+ fontWeight: 500,
251
251
  fontStyle: "normal",
252
252
  lineHeight: 1.42,
253
253
  textTransform: "none"
@@ -781,7 +781,7 @@ var require_tokens = __commonJS({
781
781
  style: {
782
782
  fontFamily: "Inter",
783
783
  fontSize: "16px",
784
- fontWeight: 600,
784
+ fontWeight: 500,
785
785
  fontStyle: "normal",
786
786
  lineHeight: 1.5,
787
787
  textTransform: "none"
@@ -807,7 +807,7 @@ var require_tokens = __commonJS({
807
807
  style: {
808
808
  fontFamily: "Inter",
809
809
  fontSize: "14px",
810
- fontWeight: 600,
810
+ fontWeight: 500,
811
811
  fontStyle: "normal",
812
812
  lineHeight: 1.42,
813
813
  textTransform: "none"
@@ -1458,6 +1458,22 @@ var require_questionMark = __commonJS({
1458
1458
  }
1459
1459
  });
1460
1460
 
1461
+ // src/icons/more.js
1462
+ var require_more = __commonJS({
1463
+ "src/icons/more.js"(exports) {
1464
+ "use strict";
1465
+ var data = {
1466
+ "body": '<path fill="currentColor" d="M3.5 13a2.5 2.5 0 100-5 2.5 2.5 0 000 5Zm14 0a2.5 2.5 0 100-5 2.5 2.5 0 000 5Zm-7 0a2.5 2.5 0 100-5 2.5 2.5 0 000 5Z"/>',
1467
+ "left": 0,
1468
+ "top": 0,
1469
+ "width": 20,
1470
+ "height": 20
1471
+ };
1472
+ exports.__esModule = true;
1473
+ exports.default = data;
1474
+ }
1475
+ });
1476
+
1461
1477
  // src/icons/smallCross.js
1462
1478
  var require_smallCross = __commonJS({
1463
1479
  "src/icons/smallCross.js"(exports) {
@@ -1570,7 +1586,7 @@ __export(system_exports, {
1570
1586
  Divider: () => Divider2,
1571
1587
  Dropdown: () => Dropdown,
1572
1588
  DropdownButton: () => DropdownButton,
1573
- DropdownMenu: () => DropdownMenu3,
1589
+ DropdownMenu: () => DropdownMenu2,
1574
1590
  Element: () => Element,
1575
1591
  EmptyState: () => EmptyState,
1576
1592
  EmptyStateLayout: () => EmptyStateLayout,
@@ -1592,7 +1608,7 @@ __export(system_exports, {
1592
1608
  LabelControl: () => LabelControl,
1593
1609
  LineClamp: () => LineClamp2,
1594
1610
  Link: () => Link2,
1595
- List: () => List,
1611
+ List: () => List2,
1596
1612
  ListItem: () => ListItem,
1597
1613
  Modal: () => Modal2,
1598
1614
  ModalTab: () => ModalTab,
@@ -1604,9 +1620,10 @@ __export(system_exports, {
1604
1620
  MultiSelectBase: () => MultiSelectBase,
1605
1621
  NativeSelect: () => NativeSelect,
1606
1622
  NativeSelectBase: () => NativeSelectBase,
1623
+ Navigation: () => Navigation2,
1607
1624
  OneLineBanner: () => OneLineBanner,
1608
1625
  Option: () => Option,
1609
- PageHeader: () => PageHeader,
1626
+ PageHeader: () => PageHeader2,
1610
1627
  Pagination: () => Pagination,
1611
1628
  Popover: () => Popover2,
1612
1629
  PopoverDialog: () => PopoverDialog2,
@@ -1621,7 +1638,7 @@ __export(system_exports, {
1621
1638
  SecondaryButton: () => SecondaryButton,
1622
1639
  SecondaryDropdownButton: () => SecondaryDropdownButton,
1623
1640
  SecondaryGhostButton: () => SecondaryGhostButton,
1624
- Section: () => Section3,
1641
+ Section: () => Section4,
1625
1642
  SegmentedControl: () => SegmentedControl,
1626
1643
  SegmentedControlGroup: () => SegmentedControlGroup,
1627
1644
  Select: () => Select2,
@@ -1712,7 +1729,7 @@ __export(molecules_exports, {
1712
1729
  Divider: () => Divider2,
1713
1730
  Dropdown: () => Dropdown,
1714
1731
  DropdownButton: () => DropdownButton,
1715
- DropdownMenu: () => DropdownMenu3,
1732
+ DropdownMenu: () => DropdownMenu2,
1716
1733
  Element: () => Element,
1717
1734
  EmptyState: () => EmptyState,
1718
1735
  EmptyStateLayout: () => EmptyStateLayout,
@@ -1730,7 +1747,7 @@ __export(molecules_exports, {
1730
1747
  InputBase: () => InputBase,
1731
1748
  LineClamp: () => LineClamp2,
1732
1749
  Link: () => Link2,
1733
- List: () => List,
1750
+ List: () => List2,
1734
1751
  ListItem: () => ListItem,
1735
1752
  Modal: () => Modal2,
1736
1753
  ModalTab: () => ModalTab,
@@ -1742,9 +1759,10 @@ __export(molecules_exports, {
1742
1759
  MultiSelectBase: () => MultiSelectBase,
1743
1760
  NativeSelect: () => NativeSelect,
1744
1761
  NativeSelectBase: () => NativeSelectBase,
1762
+ Navigation: () => Navigation2,
1745
1763
  OneLineBanner: () => OneLineBanner,
1746
1764
  Option: () => Option,
1747
- PageHeader: () => PageHeader,
1765
+ PageHeader: () => PageHeader2,
1748
1766
  Pagination: () => Pagination,
1749
1767
  Popover: () => Popover2,
1750
1768
  PopoverDialog: () => PopoverDialog2,
@@ -1758,7 +1776,7 @@ __export(molecules_exports, {
1758
1776
  SecondaryButton: () => SecondaryButton,
1759
1777
  SecondaryDropdownButton: () => SecondaryDropdownButton,
1760
1778
  SecondaryGhostButton: () => SecondaryGhostButton,
1761
- Section: () => Section3,
1779
+ Section: () => Section4,
1762
1780
  SegmentedControl: () => SegmentedControl,
1763
1781
  SegmentedControlGroup: () => SegmentedControlGroup,
1764
1782
  Select: () => Select2,
@@ -3215,17 +3233,20 @@ var asButton = (Component, isDropdownButton) => {
3215
3233
  className: classNames(
3216
3234
  UNSAFE_className,
3217
3235
  !isIconOnlyButton && COLOR_CLASSNAMES[kind],
3218
- tw("inline-block border-0 rounded-sm transition whitespace-nowrap focus:outline-none relative", {
3219
- "text-grey-70 p-2 active:text-grey-70 active:bg-transparent hover:text-grey-90 hover:bg-grey-0 focus-visible:text-grey-90 focus-visible:bg-grey-0 disabled:text-grey-20 disabled:bg-transparent": isIconOnlyButton,
3220
- "typography-default-strong": !dense && !isIconOnlyButton && kind !== "text",
3221
- "typography-small-strong": dense && !isIconOnlyButton,
3222
- "py-3 px-4": !dense && isButton,
3223
- "py-2 px-3": dense && isButton,
3224
- "py-3": !dense && isGhost,
3225
- "py-2": dense && isGhost,
3226
- "block w-full": fullWidth && !isIconOnlyButton,
3227
- "cursor-not-allowed": !!disabled || !!loading2
3228
- })
3236
+ tw(
3237
+ "inline-block border-0 rounded-sm transition whitespace-nowrap focus:outline-none relative text-center",
3238
+ {
3239
+ "text-grey-70 p-2 active:text-grey-70 active:bg-transparent hover:text-grey-90 hover:bg-grey-0 focus-visible:text-grey-90 focus-visible:bg-grey-0 disabled:text-grey-20 disabled:bg-transparent": isIconOnlyButton,
3240
+ "typography-default-strong": !dense && !isIconOnlyButton && kind !== "text",
3241
+ "typography-small-strong": dense && !isIconOnlyButton && kind !== "text",
3242
+ "py-3 px-4": !dense && isButton,
3243
+ "py-2 px-3": dense && isButton,
3244
+ "py-3": !dense && isGhost,
3245
+ "py-2": dense && isGhost,
3246
+ "block w-full": fullWidth && !isIconOnlyButton,
3247
+ "cursor-not-allowed": !!disabled || !!loading2
3248
+ }
3249
+ )
3229
3250
  ),
3230
3251
  "aria-label": isIconOnlyButton ? ariaLabel != null ? ariaLabel : tooltip : ariaLabel,
3231
3252
  disabled: disabled || loading2
@@ -5351,1319 +5372,1391 @@ var Container2 = ({ maxWidth = "xl", children }) => /* @__PURE__ */ import_react
5351
5372
  }, children);
5352
5373
 
5353
5374
  // src/molecules/DataList/DataList.tsx
5354
- var import_react53 = __toESM(require("react"));
5375
+ var import_react57 = __toESM(require("react"));
5376
+ var import_compact = __toESM(require("lodash/compact"));
5377
+ var import_isFunction = __toESM(require("lodash/isFunction"));
5355
5378
 
5356
- // src/molecules/Template/Template.tsx
5379
+ // src/molecules/DropdownMenu/DropdownMenu.tsx
5380
+ var import_react51 = __toESM(require("react"));
5381
+ var import_i18n = require("@react-aria/i18n");
5382
+ var import_interactions2 = require("@react-aria/interactions");
5383
+ var import_menu = require("@react-aria/menu");
5384
+ var import_separator = require("@react-aria/separator");
5385
+ var import_utils3 = require("@react-aria/utils");
5386
+ var import_collections = require("@react-stately/collections");
5387
+ var import_menu2 = require("@react-stately/menu");
5388
+ var import_tree = require("@react-stately/tree");
5389
+
5390
+ // src/molecules/Input/Input.tsx
5391
+ var import_react49 = __toESM(require("react"));
5392
+ var import_omit6 = __toESM(require("lodash/omit"));
5393
+ var import_toString = __toESM(require("lodash/toString"));
5394
+ var import_uniqueId3 = __toESM(require("lodash/uniqueId"));
5395
+
5396
+ // src/utils/form/InputAdornment/InputAdornment.tsx
5357
5397
  var import_react48 = __toESM(require("react"));
5358
- var Template = ({
5359
- children,
5360
- columns,
5361
- alignSelf,
5362
- alignContent,
5363
- alignItems,
5364
- justifySelf,
5365
- gap,
5366
- columnGap,
5367
- rowGap,
5368
- fullHeight
5369
- }) => {
5370
- const gridTemplateColumns = typeof columns === "number" ? "1fr ".repeat(columns) : columns.map((column) => typeof column === "number" ? `${column}px` : column === "auto" ? column : `${column}fr`).join(" ");
5371
- const styles = useStyle({
5372
- height: fullHeight ? "100%" : void 0,
5373
- display: "grid",
5374
- gridTemplateColumns,
5375
- alignSelf,
5376
- alignContent,
5377
- alignItems,
5378
- justifySelf,
5379
- gap,
5380
- rowGap,
5381
- columnGap
5382
- });
5383
- return /* @__PURE__ */ import_react48.default.createElement("div", {
5384
- style: __spreadValues({}, styles)
5385
- }, children);
5398
+ var import_cross4 = __toESM(require_cross());
5399
+ var import_error2 = __toESM(require_error());
5400
+ var import_search2 = __toESM(require_search());
5401
+ var import_tick3 = __toESM(require_tick());
5402
+ var InputAdornment = ({ placement = "right", className, dense, children }) => {
5403
+ return /* @__PURE__ */ import_react48.default.createElement("span", {
5404
+ className: classNames(className, "absolute inset-y-0 grow-0 text-grey-40 flex items-center mx-3", {
5405
+ "right-0": placement === "right",
5406
+ "left-0": placement === "left",
5407
+ "typography-small": dense,
5408
+ "typography-default-strong": !dense
5409
+ })
5410
+ }, /* @__PURE__ */ import_react48.default.createElement(Flexbox, {
5411
+ gap: "3",
5412
+ wrap: "wrap"
5413
+ }, children));
5386
5414
  };
5415
+ var SearchIcon = ({ onClick }) => /* @__PURE__ */ import_react48.default.createElement(Icon, {
5416
+ icon: import_search2.default,
5417
+ color: "grey-30",
5418
+ "data-testid": "icon-search",
5419
+ onClick
5420
+ });
5421
+ var ResetIcon = ({ onClick }) => /* @__PURE__ */ import_react48.default.createElement(Icon, {
5422
+ className: "hover:cursor-pointer",
5423
+ icon: import_cross4.default,
5424
+ color: "grey-30",
5425
+ "data-testid": "icon-reset",
5426
+ onClick
5427
+ });
5387
5428
 
5388
- // src/atoms/DataList/DataList.tsx
5389
- var import_react51 = __toESM(require("react"));
5429
+ // src/molecules/Input/Input.tsx
5430
+ var createInput = (displayName, opts = {}) => {
5431
+ const InputComponent = (0, import_react49.forwardRef)(
5432
+ (_a, ref) => {
5433
+ var _b = _a, {
5434
+ type = "text",
5435
+ maxLength,
5436
+ valid = true,
5437
+ required = false,
5438
+ endAdornment,
5439
+ disabled = false,
5440
+ readOnly = false
5441
+ } = _b, props = __objRest(_b, [
5442
+ "type",
5443
+ "maxLength",
5444
+ "valid",
5445
+ "required",
5446
+ "endAdornment",
5447
+ "disabled",
5448
+ "readOnly"
5449
+ ]);
5450
+ var _a2;
5451
+ const inputRef = import_react49.default.useRef(null);
5452
+ (0, import_react49.useImperativeHandle)(ref, () => inputRef.current);
5453
+ const handleReset = () => {
5454
+ var _a3;
5455
+ const el = inputRef.current;
5456
+ if (el) {
5457
+ const lastValue = el.value;
5458
+ el.value = "";
5459
+ (_a3 = el._valueTracker) == null ? void 0 : _a3.setValue(lastValue);
5460
+ el.dispatchEvent(new Event("change", { bubbles: true }));
5461
+ el.focus();
5462
+ }
5463
+ };
5464
+ return /* @__PURE__ */ import_react49.default.createElement("span", {
5465
+ className: tw("relative block")
5466
+ }, opts.adornment && /* @__PURE__ */ import_react49.default.createElement(InputAdornment, {
5467
+ placement: "left"
5468
+ }, opts.adornment), /* @__PURE__ */ import_react49.default.createElement("input", __spreadProps(__spreadValues({
5469
+ ref: inputRef,
5470
+ type
5471
+ }, props), {
5472
+ disabled,
5473
+ maxLength,
5474
+ required,
5475
+ readOnly,
5476
+ className: classNames(
5477
+ {
5478
+ "pl-7": opts.adornment
5479
+ },
5480
+ getCommonInputStyles({ readOnly, valid }),
5481
+ props.className
5482
+ )
5483
+ })), opts.canReset && (props.value || ((_a2 = inputRef.current) == null ? void 0 : _a2.value)) && /* @__PURE__ */ import_react49.default.createElement(InputAdornment, null, /* @__PURE__ */ import_react49.default.createElement(ResetIcon, {
5484
+ onClick: handleReset
5485
+ })), !opts.canReset && endAdornment && /* @__PURE__ */ import_react49.default.createElement(InputAdornment, null, endAdornment));
5486
+ }
5487
+ );
5488
+ InputComponent.displayName = displayName;
5489
+ InputComponent.Skeleton = () => /* @__PURE__ */ import_react49.default.createElement(Skeleton, {
5490
+ height: 38
5491
+ });
5492
+ return InputComponent;
5493
+ };
5494
+ var InputBase = createInput("InputBase");
5495
+ var SearchInput = createInput("SearchInput", { adornment: /* @__PURE__ */ import_react49.default.createElement(SearchIcon, null), canReset: true });
5496
+ var Input2 = import_react49.default.forwardRef((_a, ref) => {
5497
+ var _b = _a, { readOnly = false } = _b, props = __objRest(_b, ["readOnly"]);
5498
+ var _a2, _b2, _c;
5499
+ const [value, setValue] = (0, import_react49.useState)((_b2 = (_a2 = props.value) != null ? _a2 : props.defaultValue) != null ? _b2 : "");
5500
+ const id = (0, import_react49.useRef)((_c = props.id) != null ? _c : `input-${(0, import_uniqueId3.default)()}`);
5501
+ const errorMessageId = (0, import_uniqueId3.default)();
5502
+ const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
5503
+ const _d = getLabelControlProps(props), { "data-testid": dataTestId } = _d, labelControlProps = __objRest(_d, ["data-testid"]);
5504
+ const baseProps = (0, import_omit6.default)(props, Object.keys(labelControlProps));
5505
+ return /* @__PURE__ */ import_react49.default.createElement(LabelControl, __spreadValues({
5506
+ id: `${id.current}-label`,
5507
+ htmlFor: id.current,
5508
+ messageId: errorMessageId,
5509
+ length: value !== void 0 ? (0, import_toString.default)(value).length : void 0
5510
+ }, labelControlProps), /* @__PURE__ */ import_react49.default.createElement(InputBase, __spreadProps(__spreadValues(__spreadValues({
5511
+ ref
5512
+ }, baseProps), errorProps), {
5513
+ id: id.current,
5514
+ "data-testid": dataTestId,
5515
+ onChange: (e) => {
5516
+ var _a3;
5517
+ setValue(e.currentTarget.value);
5518
+ (_a3 = props.onChange) == null ? void 0 : _a3.call(props, e);
5519
+ },
5520
+ disabled: props.disabled,
5521
+ maxLength: props.maxLength,
5522
+ required: props.required,
5523
+ valid: props.valid,
5524
+ readOnly
5525
+ })));
5526
+ });
5527
+ Input2.displayName = "Input";
5528
+ Input2.Skeleton = () => /* @__PURE__ */ import_react49.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react49.default.createElement(InputBase.Skeleton, null));
5529
+ Input2.Skeleton.displayName = "Input.Skeleton";
5390
5530
 
5391
- // src/atoms/Table/Table.tsx
5531
+ // src/atoms/DropdownMenu/DropdownMenu.tsx
5392
5532
  var import_react50 = __toESM(require("react"));
5393
-
5394
- // src/atoms/RadioButton/RadioButton.tsx
5395
- var import_react49 = __toESM(require("react"));
5396
- var RadioButton = import_react49.default.forwardRef(
5533
+ var import_tick4 = __toESM(require_tick());
5534
+ var DropdownMenu = import_react50.default.forwardRef(
5397
5535
  (_a, ref) => {
5398
- var _b = _a, { id, children, name, disabled = false, readOnly = false } = _b, props = __objRest(_b, ["id", "children", "name", "disabled", "readOnly"]);
5399
- return /* @__PURE__ */ import_react49.default.createElement("input", __spreadProps(__spreadValues({
5400
- id,
5536
+ var _b = _a, { maxHeight = "450px", minWidth = "125px", maxWidth, className, children } = _b, props = __objRest(_b, ["maxHeight", "minWidth", "maxWidth", "className", "children"]);
5537
+ return /* @__PURE__ */ import_react50.default.createElement("div", __spreadValues({
5401
5538
  ref,
5402
- type: "radio",
5403
- name
5404
- }, props), {
5405
- className: classNames(
5406
- tw(
5407
- "inline-flex justify-center items-center self-center appearance-none",
5408
- "w-5 h-5 p-[3px] rounded-full cursor-pointer border border-grey-20",
5409
- "outline-none focus:border-info-70 checked:bg-navyBlue-100 checked:shadow-whiteInset",
5410
- {
5411
- "hover:border-grey-50 checked:border-navyBlue-100": !disabled,
5412
- "cursor-not-allowed border-grey-5 bg-grey-0 checked:bg-opacity-40": disabled
5413
- }
5414
- )
5415
- ),
5416
- readOnly,
5417
- disabled
5539
+ style: { maxHeight, minWidth, maxWidth },
5540
+ className: classNames(className, "bg-white w-full flex flex-col overflow-x-hidden typography-small text-grey-70")
5541
+ }, props), children);
5542
+ }
5543
+ );
5544
+ var ContentContainer = ({ children }) => /* @__PURE__ */ import_react50.default.createElement("div", {
5545
+ className: tw("p-3 overflow-y-auto overflow-x-hidden")
5546
+ }, children);
5547
+ DropdownMenu.ContentContainer = ContentContainer;
5548
+ var List = import_react50.default.forwardRef(
5549
+ (_a, ref) => {
5550
+ var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
5551
+ return /* @__PURE__ */ import_react50.default.createElement("ul", __spreadValues({
5552
+ ref,
5553
+ className: classNames(className, "outline-none ring-0")
5554
+ }, props), children);
5555
+ }
5556
+ );
5557
+ DropdownMenu.List = List;
5558
+ var Group2 = import_react50.default.forwardRef(
5559
+ (_a, ref) => {
5560
+ var _b = _a, { className, title, titleProps, children } = _b, props = __objRest(_b, ["className", "title", "titleProps", "children"]);
5561
+ return /* @__PURE__ */ import_react50.default.createElement("li", __spreadValues({
5562
+ ref
5563
+ }, props), title && /* @__PURE__ */ import_react50.default.createElement("div", __spreadValues({
5564
+ className: classNames(className, "p-3 text-grey-40 uppercase cursor-default typography-caption", {
5565
+ "text-grey-20": props.disabled
5566
+ })
5567
+ }, titleProps), title), children);
5568
+ }
5569
+ );
5570
+ DropdownMenu.Group = Group2;
5571
+ var Item2 = import_react50.default.forwardRef(
5572
+ (_a, ref) => {
5573
+ var _b = _a, { kind, highlighted, selected, className, icon, children } = _b, props = __objRest(_b, ["kind", "highlighted", "selected", "className", "icon", "children"]);
5574
+ return /* @__PURE__ */ import_react50.default.createElement("li", __spreadValues({
5575
+ ref,
5576
+ className: classNames(className, "flex items-center gap-x-3 p-3 outline-none", {
5577
+ "cursor-pointer hover:bg-grey-0": !props.disabled,
5578
+ "bg-grey-0": highlighted,
5579
+ "text-primary-80": kind === "action",
5580
+ "text-grey-20 cursor-not-allowed": props.disabled
5581
+ })
5582
+ }, props), icon && /* @__PURE__ */ import_react50.default.createElement(InlineIcon, {
5583
+ icon
5584
+ }), /* @__PURE__ */ import_react50.default.createElement("span", {
5585
+ className: tw("grow")
5586
+ }, children), selected && /* @__PURE__ */ import_react50.default.createElement(InlineIcon, {
5587
+ icon: import_tick4.default
5418
5588
  }));
5419
5589
  }
5420
5590
  );
5421
-
5422
- // src/atoms/Table/Table.tsx
5423
- var import_chevronDown3 = __toESM(require_chevronDown());
5424
- var import_chevronUp2 = __toESM(require_chevronUp());
5425
- var HeadContext = import_react50.default.createContext(null);
5426
- var tableClassNames = tw("w-full relative typography-default border-spacing-0");
5427
- var Table = (_a) => {
5428
- var _b = _a, { children, ariaLabel, className } = _b, rest = __objRest(_b, ["children", "ariaLabel", "className"]);
5429
- return /* @__PURE__ */ import_react50.default.createElement("table", __spreadProps(__spreadValues({}, rest), {
5430
- className: classNames(tableClassNames, className),
5431
- "aria-label": ariaLabel
5432
- }), children);
5591
+ DropdownMenu.Item = Item2;
5592
+ var Description = ({ disabled, children }) => /* @__PURE__ */ import_react50.default.createElement(Typography2.Caption, {
5593
+ color: disabled ? "grey-20" : "grey-40"
5594
+ }, children);
5595
+ DropdownMenu.Description = Description;
5596
+ var Separator = (_a) => {
5597
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5598
+ return /* @__PURE__ */ import_react50.default.createElement("li", __spreadProps(__spreadValues({}, props), {
5599
+ className: classNames(className, tw("m-3 block bg-grey-5 h-[1px]"))
5600
+ }));
5433
5601
  };
5434
- var TableHead = (_a) => {
5435
- var _b = _a, { children, sticky } = _b, rest = __objRest(_b, ["children", "sticky"]);
5436
- return /* @__PURE__ */ import_react50.default.createElement("thead", __spreadValues({}, rest), /* @__PURE__ */ import_react50.default.createElement("tr", null, /* @__PURE__ */ import_react50.default.createElement(HeadContext.Provider, {
5437
- value: { children, sticky }
5438
- }, children)));
5439
- };
5440
- var TableBody = (_a) => {
5441
- var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
5442
- return /* @__PURE__ */ import_react50.default.createElement("tbody", __spreadValues({}, rest), children);
5443
- };
5444
- var rowClassNames = tw("children:border-grey-10 children:last:border-b-0 hover:bg-grey-0");
5445
- var TableRow = (_a) => {
5446
- var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
5447
- return /* @__PURE__ */ import_react50.default.createElement("tr", __spreadProps(__spreadValues({}, rest), {
5448
- className: classNames(rowClassNames, className)
5449
- }), children);
5450
- };
5451
- var cellClassNames = tw("px-4 border-b typography-small leading-[18px]");
5452
- var getBodyCellClassNames = (table = true) => tw("text-grey-70 py-3", {
5453
- "h-[50px]": table,
5454
- "min-h-[50px]": !table
5455
- });
5456
- var getAlignClassNames = (align) => tw({ "text-right": align === "right", "text-center": align === "center" });
5457
- var getHeadCellClassNames = (sticky = true) => {
5458
- const common = tw("py-[14px] text-left bg-white border-grey-40 text-grey-50 font-normal");
5459
- return sticky ? classNames(common, tw("sticky top-0 z-10")) : common;
5460
- };
5461
- var TableCell = (_a) => {
5462
- var _b = _a, { children, className, align = "left" } = _b, rest = __objRest(_b, ["children", "className", "align"]);
5463
- const headContext = import_react50.default.useContext(HeadContext);
5464
- return headContext ? /* @__PURE__ */ import_react50.default.createElement("th", __spreadProps(__spreadValues({}, rest), {
5465
- className: classNames(
5466
- cellClassNames,
5467
- getHeadCellClassNames(headContext.sticky),
5468
- getAlignClassNames(align),
5469
- className
5470
- )
5471
- }), children) : /* @__PURE__ */ import_react50.default.createElement("td", __spreadProps(__spreadValues({}, rest), {
5472
- className: classNames(cellClassNames, getBodyCellClassNames(), getAlignClassNames(align), className)
5473
- }), children);
5474
- };
5475
- var TableSelectCell = (_a) => {
5476
- var _b = _a, { ariaLabel } = _b, props = __objRest(_b, ["ariaLabel"]);
5477
- return /* @__PURE__ */ import_react50.default.createElement(Table.Cell, {
5478
- className: tw("leading-[0px]")
5479
- }, props.type === "radio" ? /* @__PURE__ */ import_react50.default.createElement(RadioButton, __spreadValues({
5480
- "aria-label": ariaLabel
5481
- }, props)) : /* @__PURE__ */ import_react50.default.createElement(Checkbox, __spreadValues({
5482
- "aria-label": ariaLabel
5483
- }, props)));
5602
+ DropdownMenu.Separator = Separator;
5603
+ var EmptyStateContainer2 = (_a) => {
5604
+ var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
5605
+ return /* @__PURE__ */ import_react50.default.createElement("div", __spreadValues({
5606
+ className: classNames(tw("border border-dashed border-grey-10 p-3"), className)
5607
+ }, props), children);
5484
5608
  };
5485
- var getSortCellButtonClassNames = (align) => tw("group flex items-center gap-x-4 text-grey-50", { "flex-row-reverse": align === "right" });
5486
- var getSortCellIconClassNames = (active) => {
5487
- return tw("text-[9px]", active ? "text-grey-70" : "text-grey-30");
5609
+ DropdownMenu.EmptyStateContainer = EmptyStateContainer2;
5610
+
5611
+ // src/molecules/DropdownMenu/utils.ts
5612
+ var import_list = require("@react-stately/list");
5613
+ var filterCollection = (collection, inputValue, filter) => {
5614
+ return new import_list.ListCollection(filterNodes(collection, inputValue, filter));
5488
5615
  };
5489
- var TableSortCell = (_a) => {
5490
- var _b = _a, { children, direction = "none", onClick } = _b, rest = __objRest(_b, ["children", "direction", "onClick"]);
5491
- return /* @__PURE__ */ import_react50.default.createElement(Table.Cell, __spreadProps(__spreadValues({}, rest), {
5492
- "aria-sort": direction
5493
- }), /* @__PURE__ */ import_react50.default.createElement("span", {
5494
- className: getSortCellButtonClassNames(rest.align),
5495
- role: "button",
5496
- tabIndex: -1,
5497
- onClick
5498
- }, children, /* @__PURE__ */ import_react50.default.createElement("div", {
5499
- "data-sort-icons": true,
5500
- className: tw("flex flex-col", {
5501
- "invisible group-hover:visible": direction === "none"
5502
- })
5503
- }, /* @__PURE__ */ import_react50.default.createElement(InlineIcon, {
5504
- icon: import_chevronUp2.default,
5505
- className: getSortCellIconClassNames(direction === "descending")
5506
- }), /* @__PURE__ */ import_react50.default.createElement(InlineIcon, {
5507
- icon: import_chevronDown3.default,
5508
- className: getSortCellIconClassNames(direction === "ascending")
5509
- }))));
5616
+ var filterNodes = (nodes, inputValue, filter) => {
5617
+ const filteredNode = [];
5618
+ for (const node of nodes) {
5619
+ if (node.type === "section" && node.hasChildNodes) {
5620
+ const filtered = filterNodes(node.childNodes, inputValue, filter);
5621
+ if ([...filtered].length > 0) {
5622
+ filteredNode.push(__spreadProps(__spreadValues({}, node), { childNodes: filtered }));
5623
+ }
5624
+ } else if (node.type !== "section" && filter(node.textValue, inputValue)) {
5625
+ filteredNode.push(__spreadValues({}, node));
5626
+ }
5627
+ }
5628
+ return filteredNode;
5510
5629
  };
5511
- var Item2 = ({ image, imageAlt, imageSize = 35, title, caption }) => /* @__PURE__ */ import_react50.default.createElement("div", {
5512
- className: tw("flex gap-4 items-center")
5513
- }, image && /* @__PURE__ */ import_react50.default.createElement("img", {
5514
- src: image,
5515
- alt: imageAlt,
5516
- style: { width: imageSize, height: imageSize }
5517
- }), /* @__PURE__ */ import_react50.default.createElement("div", null, title, caption && /* @__PURE__ */ import_react50.default.createElement(Typography2.Caption, null, caption)));
5518
- Table.Head = import_react50.default.memo(TableHead);
5519
- Table.Body = import_react50.default.memo(TableBody);
5520
- Table.Row = import_react50.default.memo(TableRow);
5521
- Table.Cell = import_react50.default.memo(TableCell);
5522
- Table.SortCell = import_react50.default.memo(TableSortCell);
5523
- Table.SelectCell = import_react50.default.memo(TableSelectCell);
5524
5630
 
5525
- // src/atoms/DataList/DataList.tsx
5526
- var import_chevronDown4 = __toESM(require_chevronDown());
5527
- var import_chevronUp3 = __toESM(require_chevronUp());
5528
- var getAlignClassNames2 = (align) => tw("flex items-center", {
5529
- "justify-end": align === "right",
5530
- "justify-center": align === "center",
5531
- "justify-start": align === "left" || align === void 0
5532
- });
5533
- var DataList = (_a) => {
5534
- var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
5535
- return /* @__PURE__ */ import_react51.default.createElement("div", __spreadValues({}, rest));
5536
- };
5537
- var HeadCell = (_a) => {
5631
+ // src/molecules/DropdownMenu/DropdownMenu.tsx
5632
+ var DropdownMenu2 = (_a) => {
5538
5633
  var _b = _a, {
5539
- className,
5540
- sticky,
5541
- align
5542
- } = _b, rest = __objRest(_b, [
5543
- "className",
5544
- "sticky",
5545
- "align"
5634
+ onAction,
5635
+ selectionMode,
5636
+ selection,
5637
+ onSelectionChange,
5638
+ placement = "bottom-left",
5639
+ minWidth,
5640
+ maxWidth,
5641
+ searchable = false,
5642
+ emptyState,
5643
+ header,
5644
+ footer,
5645
+ children
5646
+ } = _b, props = __objRest(_b, [
5647
+ "onAction",
5648
+ "selectionMode",
5649
+ "selection",
5650
+ "onSelectionChange",
5651
+ "placement",
5652
+ "minWidth",
5653
+ "maxWidth",
5654
+ "searchable",
5655
+ "emptyState",
5656
+ "header",
5657
+ "footer",
5658
+ "children"
5546
5659
  ]);
5547
- return /* @__PURE__ */ import_react51.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5548
- role: "cell",
5549
- className: classNames(cellClassNames, getHeadCellClassNames(sticky), getAlignClassNames2(align), className)
5550
- }));
5551
- };
5552
- var Cell = (_a) => {
5553
- var _b = _a, { className, align } = _b, rest = __objRest(_b, ["className", "align"]);
5554
- return /* @__PURE__ */ import_react51.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5555
- role: "cell",
5556
- className: classNames(
5557
- cellClassNames,
5558
- getBodyCellClassNames(false),
5559
- getAlignClassNames2(align),
5560
- tw("border-grey-10 group-hover:bg-grey-0 group-last:border-b-0"),
5561
- className
5562
- )
5563
- }));
5660
+ const triggerRef = import_react51.default.useRef(null);
5661
+ const [trigger, items] = extractTriggerAndItems(children);
5662
+ const state = (0, import_menu2.useMenuTriggerState)(props);
5663
+ const { menuTriggerProps, menuProps } = (0, import_menu.useMenuTrigger)({}, state, triggerRef);
5664
+ return /* @__PURE__ */ import_react51.default.createElement("div", null, /* @__PURE__ */ import_react51.default.createElement(import_interactions2.PressResponder, __spreadValues({
5665
+ ref: triggerRef,
5666
+ onPress: () => state.toggle()
5667
+ }, menuTriggerProps), /* @__PURE__ */ import_react51.default.createElement(TriggerWrapper, null, trigger.props.children)), state.isOpen && /* @__PURE__ */ import_react51.default.createElement(PopoverOverlay, {
5668
+ triggerRef,
5669
+ state,
5670
+ placement,
5671
+ focusable: false
5672
+ }, /* @__PURE__ */ import_react51.default.createElement(MenuWrapper, __spreadValues({
5673
+ onAction,
5674
+ selectionMode,
5675
+ selection,
5676
+ onSelectionChange,
5677
+ searchable,
5678
+ emptyState,
5679
+ minWidth,
5680
+ maxWidth,
5681
+ header,
5682
+ footer
5683
+ }, menuProps), items.props.children)));
5564
5684
  };
5565
- var Row = (_a) => {
5566
- var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
5567
- return /* @__PURE__ */ import_react51.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5568
- className: classNames(tw("contents group"), className),
5569
- role: "row"
5570
- }));
5685
+ DropdownMenu2.displayName = "DropdownMenu";
5686
+ var MenuTrigger = () => null;
5687
+ var MenuItems = () => null;
5688
+ DropdownMenu2.Trigger = MenuTrigger;
5689
+ DropdownMenu2.Trigger.displayName = "DropdownMenu.Trigger";
5690
+ DropdownMenu2.Items = MenuItems;
5691
+ DropdownMenu2.Items.displayName = "DropdownMenu.Items";
5692
+ DropdownMenu2.Item = import_collections.Item;
5693
+ DropdownMenu2.Item.displayName = "DropdownMenu.Item";
5694
+ DropdownMenu2.Section = import_collections.Section;
5695
+ DropdownMenu2.Section.displayName = "DropdownMenu.Section";
5696
+ var TriggerWrapper = (_a) => {
5697
+ var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
5698
+ const ref = import_react51.default.useRef(null);
5699
+ const { pressProps } = (0, import_interactions2.usePress)(__spreadProps(__spreadValues({}, props), { ref }));
5700
+ const trigger = import_react51.default.Children.only(children);
5701
+ if (!trigger || !import_react51.default.isValidElement(trigger)) {
5702
+ throw new Error("<DropdownMenu.Trigger> must have valid child");
5703
+ }
5704
+ return import_react51.default.cloneElement(trigger, __spreadValues({ ref }, (0, import_utils3.mergeProps)(pressProps, props)));
5571
5705
  };
5572
- var SortCell = (_a) => {
5573
- var _b = _a, { children, direction = "none", onClick, sticky } = _b, rest = __objRest(_b, ["children", "direction", "onClick", "sticky"]);
5574
- return /* @__PURE__ */ import_react51.default.createElement(HeadCell, __spreadProps(__spreadValues({}, rest), {
5575
- "aria-sort": direction,
5576
- role: "cell",
5577
- sticky
5578
- }), /* @__PURE__ */ import_react51.default.createElement("span", {
5579
- className: getSortCellButtonClassNames(rest.align),
5580
- role: "button",
5581
- tabIndex: -1,
5582
- onClick
5583
- }, children, /* @__PURE__ */ import_react51.default.createElement("div", {
5584
- "data-sort-icons": true,
5585
- className: tw("flex flex-col", {
5586
- "invisible group-hover:visible": direction === "none"
5587
- })
5588
- }, /* @__PURE__ */ import_react51.default.createElement(InlineIcon, {
5589
- icon: import_chevronUp3.default,
5590
- className: getSortCellIconClassNames(direction === "descending")
5591
- }), /* @__PURE__ */ import_react51.default.createElement(InlineIcon, {
5592
- icon: import_chevronDown4.default,
5593
- className: getSortCellIconClassNames(direction === "ascending")
5594
- }))));
5706
+ var isSectionNode = (item) => item.type === "section";
5707
+ var isItemNode = (item) => item.type === "item";
5708
+ var MenuWrapper = (_a) => {
5709
+ var _b = _a, {
5710
+ selection: selectedKeys,
5711
+ minWidth,
5712
+ maxWidth,
5713
+ searchable,
5714
+ emptyState,
5715
+ header,
5716
+ footer
5717
+ } = _b, props = __objRest(_b, [
5718
+ "selection",
5719
+ "minWidth",
5720
+ "maxWidth",
5721
+ "searchable",
5722
+ "emptyState",
5723
+ "header",
5724
+ "footer"
5725
+ ]);
5726
+ const ref = import_react51.default.useRef(null);
5727
+ const disabledKeys = getDisabledItemKeys(props.children);
5728
+ const state = (0, import_tree.useTreeState)(__spreadValues({
5729
+ disabledKeys,
5730
+ selectedKeys
5731
+ }, props));
5732
+ const { menuProps } = (0, import_menu.useMenu)(props, state, ref);
5733
+ const { contains } = (0, import_i18n.useFilter)({ sensitivity: "base" });
5734
+ const [search, setSearch] = import_react51.default.useState("");
5735
+ const filteredCollection = import_react51.default.useMemo(
5736
+ () => searchable ? filterCollection(state.collection, search, contains) : state.collection,
5737
+ [state.collection, search, contains]
5738
+ );
5739
+ return /* @__PURE__ */ import_react51.default.createElement(DropdownMenu, {
5740
+ minWidth: minWidth !== void 0 ? `${minWidth}px` : void 0,
5741
+ maxWidth: maxWidth !== void 0 ? `${maxWidth}px` : void 0
5742
+ }, header, /* @__PURE__ */ import_react51.default.createElement(DropdownMenu.ContentContainer, null, searchable && /* @__PURE__ */ import_react51.default.createElement(SearchInput, {
5743
+ "aria-label": "search",
5744
+ value: search,
5745
+ onChange: (e) => setSearch(e.target.value),
5746
+ className: tw("mb-5")
5747
+ }), filteredCollection.size === 0 && emptyState && /* @__PURE__ */ import_react51.default.createElement(DropdownMenu.EmptyStateContainer, null, emptyState), /* @__PURE__ */ import_react51.default.createElement(DropdownMenu.List, __spreadValues({
5748
+ ref
5749
+ }, menuProps), Array.from(filteredCollection).map((item) => {
5750
+ if (isSectionNode(item)) {
5751
+ return /* @__PURE__ */ import_react51.default.createElement(SectionWrapper, {
5752
+ key: item.key,
5753
+ section: item,
5754
+ state
5755
+ });
5756
+ } else if (isItemNode(item)) {
5757
+ return /* @__PURE__ */ import_react51.default.createElement(ItemWrapper, {
5758
+ key: item.key,
5759
+ item,
5760
+ state
5761
+ });
5762
+ }
5763
+ }))), footer);
5595
5764
  };
5596
- DataList.HeadCell = HeadCell;
5597
- DataList.SortCell = SortCell;
5598
- DataList.Cell = Cell;
5599
- DataList.Row = Row;
5600
-
5601
- // src/utils/object.ts
5602
- var renameProperty = (oldProp, newProp, _a) => {
5603
- var _b = _a, { [oldProp]: oldValue } = _b, rest = __objRest(_b, [__restKey(oldProp)]);
5604
- return __spreadValues({
5605
- [newProp]: oldValue
5606
- }, rest);
5765
+ var ItemWrapper = ({ item, state }) => {
5766
+ const ref = import_react51.default.useRef(null);
5767
+ const { menuItemProps, descriptionProps, isSelected, isFocused, isDisabled } = (0, import_menu.useMenuItem)(
5768
+ { key: item.key, closeOnSelect: item.props.closeOnSelect },
5769
+ state,
5770
+ ref
5771
+ );
5772
+ const { icon, description, kind = "default" } = item.props;
5773
+ return /* @__PURE__ */ import_react51.default.createElement(DropdownMenu.Item, __spreadProps(__spreadValues({
5774
+ ref
5775
+ }, menuItemProps), {
5776
+ kind,
5777
+ selected: isSelected,
5778
+ highlighted: isFocused,
5779
+ disabled: isDisabled,
5780
+ icon
5781
+ }), item.rendered, description && /* @__PURE__ */ import_react51.default.createElement(DropdownMenu.Description, __spreadValues({
5782
+ disabled: isDisabled
5783
+ }, descriptionProps), description));
5607
5784
  };
5608
-
5609
- // src/utils/table/types.ts
5610
- var toSortDirection = (direction) => direction === "ascending" ? "asc" : direction === "descending" ? "desc" : false;
5611
- var cellProps = (column) => ({
5612
- key: column.key || column.headerName,
5613
- align: column.type === "number" || column.type === "action" ? "right" : "left"
5614
- });
5615
- var columnIsFieldColumn = (column) => Boolean(column && column.field);
5616
-
5617
- // src/utils/table/useTableSort.tsx
5618
- var import_react52 = __toESM(require("react"));
5619
- var useTableSort = () => {
5620
- const [sort, setSort] = import_react52.default.useState();
5621
- const handleSortClick = (column) => {
5622
- if (sort && sort.column.headerName === column.headerName) {
5623
- if (sort.direction === "ascending") {
5624
- setSort({ column, direction: "descending" });
5625
- } else {
5626
- setSort(void 0);
5627
- }
5628
- } else {
5629
- setSort({ column, direction: "ascending" });
5630
- }
5631
- };
5632
- return [sort, handleSortClick];
5785
+ var SectionWrapper = ({ section, state }) => {
5786
+ const { itemProps, headingProps, groupProps } = (0, import_menu.useMenuSection)({
5787
+ "heading": section.rendered,
5788
+ "aria-label": section["aria-label"]
5789
+ });
5790
+ const { separatorProps } = (0, import_separator.useSeparator)({
5791
+ elementType: "li"
5792
+ });
5793
+ return /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, section.key !== state.collection.getFirstKey() && /* @__PURE__ */ import_react51.default.createElement(DropdownMenu.Separator, __spreadValues({}, separatorProps)), /* @__PURE__ */ import_react51.default.createElement(DropdownMenu.Group, __spreadValues({
5794
+ title: section.rendered,
5795
+ titleProps: headingProps
5796
+ }, itemProps), /* @__PURE__ */ import_react51.default.createElement("ul", __spreadValues({}, groupProps), Array.from(section.childNodes).map((node) => /* @__PURE__ */ import_react51.default.createElement(ItemWrapper, {
5797
+ key: node.key,
5798
+ item: node,
5799
+ state
5800
+ })))));
5633
5801
  };
5634
-
5635
- // src/utils/table/utils.ts
5636
- var import_orderBy2 = __toESM(require("lodash/orderBy"));
5637
- var sortRowsBy = (rows, sort) => {
5638
- if (!sort) {
5639
- return rows;
5640
- }
5641
- const sortFunction = sort.column.sort;
5642
- if (sortFunction) {
5643
- return [...rows].sort((a, b) => sortFunction(a, b, sort.direction));
5644
- } else if (columnIsFieldColumn(sort.column)) {
5645
- return (0, import_orderBy2.default)(rows, [sort.column.field], [toSortDirection(sort.direction)]);
5802
+ var extractTriggerAndItems = (children) => {
5803
+ const [trigger, items] = import_react51.default.Children.toArray(children);
5804
+ if (!isComponentType(trigger, MenuTrigger) || !isComponentType(items, MenuItems)) {
5805
+ throw new Error("<DropdownMenu> must have <DropdownMenu.Trigger> and <DropdownMenu.Items> defined");
5646
5806
  }
5647
- return rows;
5807
+ return [trigger, items];
5808
+ };
5809
+ var getDisabledItemKeys = (children) => {
5810
+ const keys = import_react51.default.Children.map(children, (child) => {
5811
+ var _a, _b;
5812
+ if (!child || typeof child === "function") {
5813
+ return null;
5814
+ }
5815
+ if (isComponentType(child, import_collections.Item) && child.props.disabled) {
5816
+ return (_b = (_a = child.key) == null ? void 0 : _a.toString()) != null ? _b : null;
5817
+ }
5818
+ if (isComponentType(child, import_collections.Section)) {
5819
+ return getDisabledItemKeys(child.props.children);
5820
+ }
5821
+ return null;
5822
+ });
5823
+ return keys.flat().filter((key) => key !== null);
5648
5824
  };
5649
5825
 
5650
- // src/molecules/DataList/DataList.tsx
5651
- var DataList2 = ({
5826
+ // src/molecules/Template/Template.tsx
5827
+ var import_react52 = __toESM(require("react"));
5828
+ var Template = ({
5829
+ children,
5652
5830
  columns,
5653
- rows,
5654
- sticky
5831
+ alignSelf,
5832
+ alignContent,
5833
+ alignItems,
5834
+ justifySelf,
5835
+ gap,
5836
+ columnGap,
5837
+ rowGap,
5838
+ fullHeight
5655
5839
  }) => {
5656
- const [sort, updateSort] = useTableSort();
5657
- const sortedRows = sortRowsBy(rows, sort);
5658
- const templateColumns = columns.map((column) => {
5659
- var _a;
5660
- return (_a = column.width) != null ? _a : "auto";
5840
+ const gridTemplateColumns = typeof columns === "number" ? "1fr ".repeat(columns) : columns.map((column) => typeof column === "number" ? `${column}px` : column === "auto" ? column : `${column}fr`).join(" ");
5841
+ const styles = useStyle({
5842
+ height: fullHeight ? "100%" : void 0,
5843
+ display: "grid",
5844
+ gridTemplateColumns,
5845
+ alignSelf,
5846
+ alignContent,
5847
+ alignItems,
5848
+ justifySelf,
5849
+ gap,
5850
+ rowGap,
5851
+ columnGap
5661
5852
  });
5662
- return /* @__PURE__ */ import_react53.default.createElement(Template, {
5663
- columns: templateColumns
5664
- }, columns.map(
5665
- (column) => columnIsFieldColumn(column) && column.sortable || column.sort ? /* @__PURE__ */ import_react53.default.createElement(DataList.SortCell, __spreadValues({
5666
- direction: sort && sort.column.headerName === column.headerName ? sort.direction : "none",
5667
- onClick: () => updateSort(column),
5668
- sticky
5669
- }, cellProps(column)), column.headerName) : /* @__PURE__ */ import_react53.default.createElement(DataList.HeadCell, __spreadProps(__spreadValues({}, cellProps(column)), {
5670
- sticky
5671
- }), column.headerName)
5672
- ), /* @__PURE__ */ import_react53.default.createElement(List, {
5673
- items: sortedRows,
5674
- renderItem: (row, index) => /* @__PURE__ */ import_react53.default.createElement(DataList.Row, {
5675
- key: row.id
5676
- }, /* @__PURE__ */ import_react53.default.createElement(List, {
5677
- items: columns,
5678
- renderItem: (column) => column.type === "status" ? /* @__PURE__ */ import_react53.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react53.default.createElement(StatusChip, __spreadValues({
5679
- dense: true
5680
- }, column.status(row, index, sortedRows)))) : column.type === "action" ? /* @__PURE__ */ import_react53.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react53.default.createElement(SecondaryButton, __spreadValues({
5681
- dense: true
5682
- }, renameProperty("text", "children", column.action(row, index, sortedRows))))) : column.type === "custom" ? /* @__PURE__ */ import_react53.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows)) : column.type === "item" ? /* @__PURE__ */ import_react53.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react53.default.createElement(Item2, __spreadValues({}, column.item(row, index, sortedRows)))) : /* @__PURE__ */ import_react53.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.formatter ? column.formatter(row[column.field], row, index, sortedRows) : row[column.field])
5683
- }))
5684
- }));
5853
+ return /* @__PURE__ */ import_react52.default.createElement("div", {
5854
+ style: __spreadValues({}, styles)
5855
+ }, children);
5685
5856
  };
5686
5857
 
5687
- // src/molecules/DataTable/DataTable.tsx
5688
- var import_react56 = __toESM(require("react"));
5689
-
5690
- // src/molecules/Table/Table.tsx
5858
+ // src/atoms/DataList/DataList.tsx
5691
5859
  var import_react55 = __toESM(require("react"));
5692
5860
 
5693
- // src/utils/table/useScrollTarget.ts
5861
+ // src/atoms/Table/Table.tsx
5694
5862
  var import_react54 = __toESM(require("react"));
5695
- var useScrollTarget = (callback) => {
5696
- const targetRef = import_react54.default.useRef(null);
5697
- import_react54.default.useLayoutEffect(() => {
5698
- const observer = new IntersectionObserver((entries) => entries[0].isIntersecting && callback && callback(), {
5699
- root: null,
5700
- rootMargin: `0px 0px 200px 0px`
5701
- });
5702
- if (targetRef.current) {
5703
- observer.observe(targetRef.current);
5704
- }
5705
- return () => observer.disconnect();
5706
- }, []);
5707
- return targetRef;
5708
- };
5709
-
5710
- // src/molecules/Table/Table.tsx
5711
- var Table2 = (_a) => {
5712
- var _b = _a, { children, onPrev, onNext } = _b, rest = __objRest(_b, ["children", "onPrev", "onNext"]);
5713
- const bottomRef = useScrollTarget(onNext);
5714
- const topRef = useScrollTarget(onPrev);
5715
- return /* @__PURE__ */ import_react55.default.createElement("div", {
5716
- className: "relative w-full"
5717
- }, /* @__PURE__ */ import_react55.default.createElement("div", {
5718
- ref: topRef,
5719
- className: tw("absolute top-0 h-1 w-full left-0 bg-transparent")
5720
- }), /* @__PURE__ */ import_react55.default.createElement(Table, __spreadValues({}, rest), children), /* @__PURE__ */ import_react55.default.createElement("div", {
5721
- ref: bottomRef,
5722
- className: tw("absolute bottom-0 h-1 w-full left-0 bg-transparent")
5723
- }));
5724
- };
5725
- Table2.Head = Table.Head;
5726
- Table2.Body = Table.Body;
5727
- Table2.Row = Table.Row;
5728
- Table2.Cell = Table.Cell;
5729
- Table2.SortCell = Table.SortCell;
5730
- Table2.SelectCell = Table.SelectCell;
5731
-
5732
- // src/molecules/DataTable/DataTable.tsx
5733
- var DataTable = (_a) => {
5734
- var _b = _a, {
5735
- columns,
5736
- rows,
5737
- noWrap = false,
5738
- layout = "auto",
5739
- sticky
5740
- } = _b, rest = __objRest(_b, [
5741
- "columns",
5742
- "rows",
5743
- "noWrap",
5744
- "layout",
5745
- "sticky"
5746
- ]);
5747
- const [sort, updateSort] = useTableSort();
5748
- const sortedRows = sortRowsBy(rows, sort);
5749
- return /* @__PURE__ */ import_react56.default.createElement(Table2, __spreadProps(__spreadValues({}, rest), {
5750
- className: tw({
5751
- "whitespace-nowrap": noWrap,
5752
- "table-auto": layout === "auto",
5753
- "table-fixed": layout === "fixed"
5754
- })
5755
- }), /* @__PURE__ */ import_react56.default.createElement(Table2.Head, {
5756
- sticky
5757
- }, columns.map(
5758
- (column) => columnIsFieldColumn(column) && column.sortable || column.sort ? /* @__PURE__ */ import_react56.default.createElement(Table2.SortCell, __spreadValues({
5759
- direction: sort && sort.column.headerName === column.headerName ? sort.direction : "none",
5760
- onClick: () => updateSort(column),
5761
- style: { width: column.width },
5762
- "aria-label": column.headerInvisible ? column.headerName : void 0
5763
- }, cellProps(column)), !column.headerInvisible && column.headerName) : /* @__PURE__ */ import_react56.default.createElement(Table2.Cell, __spreadProps(__spreadValues({}, cellProps(column)), {
5764
- style: { width: column.width },
5765
- "aria-label": column.headerInvisible ? column.headerName : void 0
5766
- }), !column.headerInvisible && column.headerName)
5767
- )), /* @__PURE__ */ import_react56.default.createElement(Table2.Body, null, /* @__PURE__ */ import_react56.default.createElement(List, {
5768
- items: sortedRows,
5769
- renderItem: (row, index) => /* @__PURE__ */ import_react56.default.createElement(Table2.Row, {
5770
- key: row.id
5771
- }, /* @__PURE__ */ import_react56.default.createElement(List, {
5772
- items: columns,
5773
- renderItem: (column) => column.type === "status" ? /* @__PURE__ */ import_react56.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react56.default.createElement(StatusChip, __spreadValues({
5774
- dense: true
5775
- }, column.status(row, index, sortedRows)))) : column.type === "action" ? /* @__PURE__ */ import_react56.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react56.default.createElement(SecondaryButton, __spreadValues({
5776
- dense: true
5777
- }, renameProperty("text", "children", column.action(row, index, sortedRows))))) : column.type === "custom" ? /* @__PURE__ */ import_react56.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows)) : column.type === "item" ? /* @__PURE__ */ import_react56.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react56.default.createElement(Item2, __spreadValues({}, column.item(row, index, sortedRows)))) : /* @__PURE__ */ import_react56.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), column.formatter ? column.formatter(row[column.field], row, index, sortedRows) : row[column.field])
5778
- }))
5779
- })));
5780
- };
5781
-
5782
- // src/molecules/Dialog/Dialog.tsx
5783
- var import_react58 = __toESM(require("react"));
5784
- var import_dialog = require("@react-aria/dialog");
5785
- var import_overlays6 = require("@react-aria/overlays");
5786
- var import_utils5 = require("@react-aria/utils");
5787
- var import_overlays7 = require("@react-stately/overlays");
5788
- var import_omit6 = __toESM(require("lodash/omit"));
5789
-
5790
- // src/atoms/Dialog/Dialog.tsx
5791
- var import_confirm2 = __toESM(require_confirm());
5792
- var import_error2 = __toESM(require_error());
5793
- var import_warningSign2 = __toESM(require_warningSign());
5794
- var DIALOG_ICONS_AND_COLORS = {
5795
- confirmation: {
5796
- icon: import_confirm2.default,
5797
- color: "info-70"
5798
- },
5799
- warning: {
5800
- icon: import_warningSign2.default,
5801
- color: "secondary-70"
5802
- },
5803
- danger: {
5804
- icon: import_error2.default,
5805
- color: "error-70"
5806
- }
5807
- };
5808
5863
 
5809
- // src/atoms/Modal/Modal.tsx
5810
- var import_react57 = __toESM(require("react"));
5811
- var Modal = (_a) => {
5812
- var _b = _a, { children, className, open } = _b, rest = __objRest(_b, ["children", "className", "open"]);
5813
- return open ? /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5814
- className: classNames(
5815
- tw("inset-0 overflow-y-auto z-modal flex justify-center items-center fixed py-7"),
5816
- className
5817
- )
5818
- }), children) : null;
5819
- };
5820
- Modal.BackDrop = (_a) => {
5821
- var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
5822
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5823
- className: classNames(tw("-z-10 fixed min-w-full min-h-full bg-navyBlue-100 opacity-70"), className)
5824
- }));
5825
- };
5826
- Modal.Dialog = import_react57.default.forwardRef(
5864
+ // src/atoms/RadioButton/RadioButton.tsx
5865
+ var import_react53 = __toESM(require("react"));
5866
+ var RadioButton = import_react53.default.forwardRef(
5827
5867
  (_a, ref) => {
5828
- var _b = _a, { children, className, size = "sm" } = _b, rest = __objRest(_b, ["children", "className", "size"]);
5829
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({
5868
+ var _b = _a, { id, children, name, disabled = false, readOnly = false } = _b, props = __objRest(_b, ["id", "children", "name", "disabled", "readOnly"]);
5869
+ return /* @__PURE__ */ import_react53.default.createElement("input", __spreadProps(__spreadValues({
5870
+ id,
5830
5871
  ref,
5831
- "aria-modal": "true"
5832
- }, rest), {
5872
+ type: "radio",
5873
+ name
5874
+ }, props), {
5833
5875
  className: classNames(
5834
- tw("relative bg-white rounded mx-7 w-full max-h-full flex flex-col"),
5835
- {
5836
- "max-w-[600px]": size === "sm",
5837
- "max-w-[940px]": size === "md",
5838
- "min-h-full": size === "full"
5839
- },
5840
- className
5841
- )
5842
- }), children);
5876
+ tw(
5877
+ "inline-flex justify-center items-center self-center appearance-none",
5878
+ "w-5 h-5 p-[3px] rounded-full cursor-pointer border border-grey-20",
5879
+ "outline-none focus:border-info-70 checked:bg-navyBlue-100 checked:shadow-whiteInset",
5880
+ {
5881
+ "hover:border-grey-50 checked:border-navyBlue-100": !disabled,
5882
+ "cursor-not-allowed border-grey-5 bg-grey-0 checked:bg-opacity-40": disabled
5883
+ }
5884
+ )
5885
+ ),
5886
+ readOnly,
5887
+ disabled
5888
+ }));
5843
5889
  }
5844
5890
  );
5845
- Modal.Header = (_a) => {
5846
- var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
5847
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5848
- className: classNames(tw("px-7 py-6 gap-3 flex items-center"), className)
5891
+
5892
+ // src/atoms/Table/Table.tsx
5893
+ var import_chevronDown3 = __toESM(require_chevronDown());
5894
+ var import_chevronUp2 = __toESM(require_chevronUp());
5895
+ var HeadContext = import_react54.default.createContext(null);
5896
+ var tableClassNames = tw("w-full relative typography-default border-spacing-0");
5897
+ var Table = (_a) => {
5898
+ var _b = _a, { children, ariaLabel, className } = _b, rest = __objRest(_b, ["children", "ariaLabel", "className"]);
5899
+ return /* @__PURE__ */ import_react54.default.createElement("table", __spreadProps(__spreadValues({}, rest), {
5900
+ className: classNames(tableClassNames, className),
5901
+ "aria-label": ariaLabel
5849
5902
  }), children);
5850
5903
  };
5851
- Modal.HeaderImage = (_a) => {
5852
- var _b = _a, { backgroundImage, className } = _b, rest = __objRest(_b, ["backgroundImage", "className"]);
5853
- const common = tw("h-[120px] min-h-[120px] w-full ");
5854
- return backgroundImage ? /* @__PURE__ */ import_react57.default.createElement("img", __spreadProps(__spreadValues({
5855
- "aria-hidden": true,
5856
- src: backgroundImage != null ? backgroundImage : void 0
5857
- }, rest), {
5858
- className: classNames(common, tw("object-cover"), className)
5859
- })) : /* @__PURE__ */ import_react57.default.createElement("div", {
5860
- className: classNames(common, tw("bg-grey-5"), className)
5861
- });
5904
+ var TableHead = (_a) => {
5905
+ var _b = _a, { children, sticky } = _b, rest = __objRest(_b, ["children", "sticky"]);
5906
+ return /* @__PURE__ */ import_react54.default.createElement("thead", __spreadValues({}, rest), /* @__PURE__ */ import_react54.default.createElement("tr", null, /* @__PURE__ */ import_react54.default.createElement(HeadContext.Provider, {
5907
+ value: { children, sticky }
5908
+ }, children)));
5862
5909
  };
5863
- Modal.CloseButtonContainer = (_a) => {
5864
- var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
5865
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5866
- className: classNames(tw("absolute top-[20px] right-[28px]"), className)
5867
- }));
5910
+ var TableBody = (_a) => {
5911
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
5912
+ return /* @__PURE__ */ import_react54.default.createElement("tbody", __spreadValues({}, rest), children);
5868
5913
  };
5869
- Modal.Title = (_a) => {
5914
+ var rowClassNames = tw("children:border-grey-10 group children:last:border-b-0 hover:bg-grey-0");
5915
+ var TableRow = (_a) => {
5870
5916
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
5871
- return /* @__PURE__ */ import_react57.default.createElement(Typography, __spreadValues({
5872
- htmlTag: "h2",
5873
- variant: "subheading",
5874
- color: "grey-90",
5875
- className: classNames(tw("leading-none"), className)
5876
- }, rest), children);
5917
+ return /* @__PURE__ */ import_react54.default.createElement("tr", __spreadProps(__spreadValues({}, rest), {
5918
+ className: classNames(rowClassNames, className)
5919
+ }), children);
5877
5920
  };
5878
- Modal.Subtitle = (_a) => {
5879
- var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
5880
- return /* @__PURE__ */ import_react57.default.createElement(Typography, __spreadValues({
5881
- variant: "small",
5882
- color: "grey-60"
5883
- }, rest), children);
5921
+ var cellClassNames = tw("px-4 border-b typography-small leading-[18px]");
5922
+ var getBodyCellClassNames = (table = true, stickyColumn) => tw("text-grey-70 py-3", {
5923
+ "h-[50px]": table,
5924
+ "min-h-[50px]": !table,
5925
+ "sticky z-10 bg-white group-hover:bg-grey-0": Boolean(stickyColumn),
5926
+ "left-0": stickyColumn === "left",
5927
+ "right-0": stickyColumn === "right"
5928
+ });
5929
+ var getAlignClassNames = (align) => tw({ "text-right": align === "right", "text-center": align === "center" });
5930
+ var getHeadCellClassNames = (sticky = true, stickyColumn) => {
5931
+ const common = tw("py-[14px] text-left bg-white border-grey-40 text-grey-50 font-normal");
5932
+ return sticky ? classNames(
5933
+ common,
5934
+ tw("sticky top-0", {
5935
+ "z-10": !stickyColumn,
5936
+ "z-20": Boolean(stickyColumn),
5937
+ "left-0": stickyColumn === "left",
5938
+ "right-0": stickyColumn === "right"
5939
+ })
5940
+ ) : common;
5884
5941
  };
5885
- Modal.TitleContainer = (_a) => {
5886
- var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
5887
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5888
- className: classNames(tw("flex flex-col grow gap-2"), className)
5942
+ var TableCell = (_a) => {
5943
+ var _b = _a, { children, className, stickyColumn, align = "left" } = _b, rest = __objRest(_b, ["children", "className", "stickyColumn", "align"]);
5944
+ const headContext = import_react54.default.useContext(HeadContext);
5945
+ return headContext ? /* @__PURE__ */ import_react54.default.createElement("th", __spreadProps(__spreadValues({}, rest), {
5946
+ className: classNames(
5947
+ cellClassNames,
5948
+ getHeadCellClassNames(headContext.sticky, stickyColumn),
5949
+ getAlignClassNames(align),
5950
+ className
5951
+ )
5952
+ }), children) : /* @__PURE__ */ import_react54.default.createElement("td", __spreadProps(__spreadValues({}, rest), {
5953
+ className: classNames(
5954
+ cellClassNames,
5955
+ getBodyCellClassNames(true, stickyColumn),
5956
+ getAlignClassNames(align),
5957
+ className
5958
+ )
5889
5959
  }), children);
5890
5960
  };
5891
- Modal.Body = (_a) => {
5892
- var _b = _a, { children, className, noFooter = false, maxHeight, style } = _b, rest = __objRest(_b, ["children", "className", "noFooter", "maxHeight", "style"]);
5893
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5894
- className: classNames(tw("px-7 grow overflow-y-auto", { "pb-6": noFooter }), className),
5895
- style: __spreadValues({ maxHeight }, style)
5896
- }), children);
5961
+ var TableSelectCell = (_a) => {
5962
+ var _b = _a, { ariaLabel } = _b, props = __objRest(_b, ["ariaLabel"]);
5963
+ return /* @__PURE__ */ import_react54.default.createElement(Table.Cell, {
5964
+ className: tw("leading-[0px]")
5965
+ }, props.type === "radio" ? /* @__PURE__ */ import_react54.default.createElement(RadioButton, __spreadValues({
5966
+ "aria-label": ariaLabel
5967
+ }, props)) : /* @__PURE__ */ import_react54.default.createElement(Checkbox, __spreadValues({
5968
+ "aria-label": ariaLabel
5969
+ }, props)));
5897
5970
  };
5898
- Modal.Footer = (_a) => {
5899
- var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
5900
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5901
- className: classNames(tw("px-7 py-6"), className)
5902
- }), children);
5971
+ var getSortCellButtonClassNames = (align) => tw("group flex items-center gap-x-4 text-grey-50", { "flex-row-reverse": align === "right" });
5972
+ var getSortCellIconClassNames = (active) => {
5973
+ return tw("text-[9px]", active ? "text-grey-70" : "text-grey-30");
5903
5974
  };
5904
- Modal.Actions = (_a) => {
5905
- var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
5906
- return /* @__PURE__ */ import_react57.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
5907
- className: classNames(tw("flex gap-4 justify-end"), className)
5908
- }), children);
5975
+ var TableSortCell = (_a) => {
5976
+ var _b = _a, { children, direction = "none", onClick } = _b, rest = __objRest(_b, ["children", "direction", "onClick"]);
5977
+ return /* @__PURE__ */ import_react54.default.createElement(Table.Cell, __spreadProps(__spreadValues({}, rest), {
5978
+ "aria-sort": direction
5979
+ }), /* @__PURE__ */ import_react54.default.createElement("span", {
5980
+ className: getSortCellButtonClassNames(rest.align),
5981
+ role: "button",
5982
+ tabIndex: -1,
5983
+ onClick
5984
+ }, children, /* @__PURE__ */ import_react54.default.createElement("div", {
5985
+ "data-sort-icons": true,
5986
+ className: tw("flex flex-col", {
5987
+ "invisible group-hover:visible": direction === "none"
5988
+ })
5989
+ }, /* @__PURE__ */ import_react54.default.createElement(InlineIcon, {
5990
+ icon: import_chevronUp2.default,
5991
+ className: getSortCellIconClassNames(direction === "descending")
5992
+ }), /* @__PURE__ */ import_react54.default.createElement(InlineIcon, {
5993
+ icon: import_chevronDown3.default,
5994
+ className: getSortCellIconClassNames(direction === "ascending")
5995
+ }))));
5909
5996
  };
5997
+ var Item4 = ({ image, imageAlt, imageSize = 35, title, caption }) => /* @__PURE__ */ import_react54.default.createElement("div", {
5998
+ className: tw("flex gap-4 items-center")
5999
+ }, image && /* @__PURE__ */ import_react54.default.createElement("img", {
6000
+ src: image,
6001
+ alt: imageAlt,
6002
+ style: { width: imageSize, height: imageSize }
6003
+ }), /* @__PURE__ */ import_react54.default.createElement("div", null, title, caption && /* @__PURE__ */ import_react54.default.createElement(Typography2.Caption, null, caption)));
6004
+ Table.Head = import_react54.default.memo(TableHead);
6005
+ Table.Body = import_react54.default.memo(TableBody);
6006
+ Table.Row = import_react54.default.memo(TableRow);
6007
+ Table.Cell = import_react54.default.memo(TableCell);
6008
+ Table.SortCell = import_react54.default.memo(TableSortCell);
6009
+ Table.SelectCell = import_react54.default.memo(TableSelectCell);
5910
6010
 
5911
- // src/molecules/Dialog/Dialog.tsx
5912
- var Dialog = (props) => {
5913
- const ref = import_react58.default.useRef(null);
5914
- const state = (0, import_overlays7.useOverlayTriggerState)({ isOpen: props.open });
5915
- const { modalProps, underlayProps } = (0, import_overlays6.useModalOverlay)({}, state, ref);
5916
- if (!state.isOpen) {
5917
- return null;
5918
- }
5919
- return /* @__PURE__ */ import_react58.default.createElement(import_overlays6.Overlay, null, /* @__PURE__ */ import_react58.default.createElement(Modal, {
5920
- open: true
5921
- }, /* @__PURE__ */ import_react58.default.createElement(Modal.BackDrop, __spreadValues({}, underlayProps)), /* @__PURE__ */ import_react58.default.createElement(Modal.Dialog, __spreadValues({
5922
- ref,
5923
- size: "sm"
5924
- }, modalProps), /* @__PURE__ */ import_react58.default.createElement(DialogWrapper, __spreadValues({}, props)))));
6011
+ // src/atoms/DataList/DataList.tsx
6012
+ var import_chevronDown4 = __toESM(require_chevronDown());
6013
+ var import_chevronUp3 = __toESM(require_chevronUp());
6014
+ var getAlignClassNames2 = (align) => tw("flex items-center", {
6015
+ "justify-end": align === "right",
6016
+ "justify-center": align === "center",
6017
+ "justify-start": align === "left" || align === void 0
6018
+ });
6019
+ var DataList = (_a) => {
6020
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
6021
+ return /* @__PURE__ */ import_react55.default.createElement("div", __spreadValues({}, rest));
5925
6022
  };
5926
- var DialogWrapper = ({
5927
- title,
5928
- type = "confirmation",
5929
- children,
5930
- primaryAction,
5931
- secondaryAction
5932
- }) => {
5933
- const ref = import_react58.default.useRef(null);
5934
- const labelledBy = (0, import_utils5.useId)();
5935
- const describedBy = (0, import_utils5.useId)();
5936
- const { dialogProps } = (0, import_dialog.useDialog)(
5937
- { "role": "alertdialog", "aria-labelledby": labelledBy, "aria-describedby": describedBy },
5938
- ref
5939
- );
5940
- return /* @__PURE__ */ import_react58.default.createElement("div", __spreadProps(__spreadValues({
5941
- ref
5942
- }, dialogProps), {
5943
- className: tw("outline-none")
5944
- }), /* @__PURE__ */ import_react58.default.createElement(Modal.Header, null, /* @__PURE__ */ import_react58.default.createElement(Icon, {
5945
- icon: DIALOG_ICONS_AND_COLORS[type].icon,
5946
- color: DIALOG_ICONS_AND_COLORS[type].color,
5947
- fontSize: 20
5948
- }), /* @__PURE__ */ import_react58.default.createElement(Modal.Title, {
5949
- id: labelledBy,
5950
- variant: "large-strong",
5951
- color: DIALOG_ICONS_AND_COLORS[type].color
5952
- }, title)), /* @__PURE__ */ import_react58.default.createElement(Modal.Body, {
5953
- id: describedBy
5954
- }, children), /* @__PURE__ */ import_react58.default.createElement(Modal.Footer, null, /* @__PURE__ */ import_react58.default.createElement(Modal.Actions, null, secondaryAction && /* @__PURE__ */ import_react58.default.createElement(GhostButton, __spreadValues({
5955
- key: secondaryAction.text
5956
- }, (0, import_omit6.default)(secondaryAction, "text")), secondaryAction.text), /* @__PURE__ */ import_react58.default.createElement(SecondaryButton, __spreadValues({
5957
- key: primaryAction.text
5958
- }, (0, import_omit6.default)(primaryAction, "text")), primaryAction.text))));
6023
+ var HeadCell = (_a) => {
6024
+ var _b = _a, {
6025
+ className,
6026
+ sticky,
6027
+ align,
6028
+ stickyColumn
6029
+ } = _b, rest = __objRest(_b, [
6030
+ "className",
6031
+ "sticky",
6032
+ "align",
6033
+ "stickyColumn"
6034
+ ]);
6035
+ return /* @__PURE__ */ import_react55.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6036
+ role: "cell",
6037
+ className: classNames(
6038
+ cellClassNames,
6039
+ getHeadCellClassNames(sticky, stickyColumn),
6040
+ getAlignClassNames2(align),
6041
+ className
6042
+ )
6043
+ }));
5959
6044
  };
5960
-
5961
- // src/molecules/Divider/Divider.tsx
5962
- var import_react59 = __toESM(require("react"));
5963
- var sizeClasses = {
5964
- horizontal: {
5965
- 1: "h-1px",
5966
- 2: "h-1",
5967
- 4: "h-2",
5968
- 8: "h-3",
5969
- 16: "h-5",
5970
- 24: "h-6"
5971
- },
5972
- vertical: {
5973
- 1: "w-1px",
5974
- 2: "w-1",
5975
- 4: "w-2",
5976
- 8: "w-3",
5977
- 16: "w-5",
5978
- 24: "w-6"
5979
- }
6045
+ var Cell = (_a) => {
6046
+ var _b = _a, {
6047
+ className,
6048
+ align,
6049
+ stickyColumn
6050
+ } = _b, rest = __objRest(_b, [
6051
+ "className",
6052
+ "align",
6053
+ "stickyColumn"
6054
+ ]);
6055
+ return /* @__PURE__ */ import_react55.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6056
+ role: "cell",
6057
+ className: classNames(
6058
+ cellClassNames,
6059
+ getBodyCellClassNames(false, stickyColumn),
6060
+ getAlignClassNames2(align),
6061
+ tw("border-grey-10 group-hover:bg-grey-0 group-last:border-b-0"),
6062
+ className
6063
+ )
6064
+ }));
5980
6065
  };
5981
- var Divider2 = (_a) => {
5982
- var _b = _a, { direction = "horizontal", size = 1 } = _b, props = __objRest(_b, ["direction", "size"]);
5983
- const sizeClass = sizeClasses[direction][size];
5984
- return /* @__PURE__ */ import_react59.default.createElement("div", __spreadProps(__spreadValues({}, props), {
5985
- className: tw(`bg-grey-5 ${sizeClass}`, {
5986
- "block w-full": direction === "horizontal",
5987
- "inline-block h-full": direction === "vertical"
5988
- })
6066
+ var Row = (_a) => {
6067
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
6068
+ return /* @__PURE__ */ import_react55.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6069
+ className: classNames(tw("contents group"), className),
6070
+ role: "row"
5989
6071
  }));
5990
6072
  };
5991
-
5992
- // src/molecules/Dropdown/Dropdown.tsx
5993
- var import_react63 = __toESM(require("react"));
5994
-
5995
- // src/molecules/Popover/Popover.tsx
5996
- var import_react62 = __toESM(require("react"));
5997
- var import_interactions2 = require("@react-aria/interactions");
5998
- var import_overlays8 = require("@react-aria/overlays");
5999
- var import_utils6 = require("@react-aria/utils");
6000
- var import_overlays9 = require("@react-stately/overlays");
6001
-
6002
- // src/molecules/Popover/Dialog.tsx
6003
- var import_react60 = __toESM(require("react"));
6004
- var import_dialog2 = require("@react-aria/dialog");
6005
- var Dialog2 = ({ children }) => {
6006
- const ref = import_react60.default.useRef(null);
6007
- const { dialogProps } = (0, import_dialog2.useDialog)({}, ref);
6008
- return /* @__PURE__ */ import_react60.default.createElement("div", __spreadProps(__spreadValues({
6009
- ref
6010
- }, dialogProps), {
6011
- className: tw("outline-none")
6012
- }), children);
6073
+ var SortCell = (_a) => {
6074
+ var _b = _a, { children, direction = "none", onClick, sticky } = _b, rest = __objRest(_b, ["children", "direction", "onClick", "sticky"]);
6075
+ return /* @__PURE__ */ import_react55.default.createElement(HeadCell, __spreadProps(__spreadValues({}, rest), {
6076
+ "aria-sort": direction,
6077
+ role: "cell",
6078
+ sticky
6079
+ }), /* @__PURE__ */ import_react55.default.createElement("span", {
6080
+ className: getSortCellButtonClassNames(rest.align),
6081
+ role: "button",
6082
+ tabIndex: -1,
6083
+ onClick
6084
+ }, children, /* @__PURE__ */ import_react55.default.createElement("div", {
6085
+ "data-sort-icons": true,
6086
+ className: tw("flex flex-col", {
6087
+ "invisible group-hover:visible": direction === "none"
6088
+ })
6089
+ }, /* @__PURE__ */ import_react55.default.createElement(InlineIcon, {
6090
+ icon: import_chevronUp3.default,
6091
+ className: getSortCellIconClassNames(direction === "descending")
6092
+ }), /* @__PURE__ */ import_react55.default.createElement(InlineIcon, {
6093
+ icon: import_chevronDown4.default,
6094
+ className: getSortCellIconClassNames(direction === "ascending")
6095
+ }))));
6013
6096
  };
6097
+ DataList.HeadCell = HeadCell;
6098
+ DataList.SortCell = SortCell;
6099
+ DataList.Cell = Cell;
6100
+ DataList.Row = Row;
6014
6101
 
6015
- // src/molecules/Popover/PopoverContext.tsx
6016
- var import_react61 = require("react");
6017
- var PopoverContext = (0, import_react61.createContext)(null);
6018
- var usePopoverContext = () => {
6019
- const ctx = (0, import_react61.useContext)(PopoverContext);
6020
- if (ctx === null) {
6021
- throw new Error("PopoverContext was used outside of provider.");
6022
- }
6023
- return ctx;
6102
+ // src/utils/object.ts
6103
+ var renameProperty = (oldProp, newProp, _a) => {
6104
+ var _b = _a, { [oldProp]: oldValue } = _b, rest = __objRest(_b, [__restKey(oldProp)]);
6105
+ return __spreadValues({
6106
+ [newProp]: oldValue
6107
+ }, rest);
6024
6108
  };
6025
6109
 
6026
- // src/molecules/Popover/Popover.tsx
6027
- var Popover2 = (props) => {
6028
- const {
6029
- id,
6030
- type,
6031
- placement = "bottom-left",
6032
- containFocus = true,
6033
- isKeyboardDismissDisabled = false,
6034
- targetRef,
6035
- offset,
6036
- crossOffset,
6037
- shouldFlip
6038
- } = props;
6039
- const triggerRef = (0, import_react62.useRef)(null);
6040
- const state = (0, import_overlays9.useOverlayTriggerState)(props);
6041
- const { triggerProps, overlayProps } = (0, import_overlays8.useOverlayTrigger)({ type: type != null ? type : "dialog" }, state, triggerRef);
6042
- return /* @__PURE__ */ import_react62.default.createElement(PopoverContext.Provider, {
6043
- value: {
6044
- state
6045
- }
6046
- }, import_react62.default.Children.map(props.children, (child) => {
6047
- if (isComponentType(child, Popover2.Trigger)) {
6048
- return /* @__PURE__ */ import_react62.default.createElement(import_interactions2.PressResponder, __spreadValues({
6049
- ref: triggerRef
6050
- }, triggerProps), /* @__PURE__ */ import_react62.default.createElement(PopoverTriggerWrapper, {
6051
- "data-testid": props["data-testid"],
6052
- "aria-controls": id
6053
- }, child.props.children));
6054
- }
6055
- if (isComponentType(child, Popover2.Panel)) {
6056
- return state.isOpen && /* @__PURE__ */ import_react62.default.createElement(PopoverOverlay, __spreadValues({
6057
- triggerRef: targetRef != null ? targetRef : triggerRef,
6058
- state,
6059
- placement,
6060
- isNonModal: !containFocus,
6061
- autoFocus: !containFocus,
6062
- isKeyboardDismissDisabled,
6063
- className: child.props.className,
6064
- offset,
6065
- crossOffset,
6066
- shouldFlip
6067
- }, overlayProps), containFocus ? /* @__PURE__ */ import_react62.default.createElement(Dialog2, null, child.props.children) : child.props.children);
6110
+ // src/utils/table/types.ts
6111
+ var toSortDirection = (direction) => direction === "ascending" ? "asc" : direction === "descending" ? "desc" : false;
6112
+ var cellProps = (column) => ({
6113
+ key: column.key || column.headerName,
6114
+ align: column.type === "number" || column.type === "action" ? "right" : "left",
6115
+ stickyColumn: column.sticky
6116
+ });
6117
+ var columnIsFieldColumn = (column) => Boolean(column && column.field);
6118
+
6119
+ // src/utils/table/useTableSort.tsx
6120
+ var import_react56 = __toESM(require("react"));
6121
+ var useTableSort = () => {
6122
+ const [sort, setSort] = import_react56.default.useState();
6123
+ const handleSortClick = (column) => {
6124
+ if (sort && sort.column.headerName === column.headerName) {
6125
+ if (sort.direction === "ascending") {
6126
+ setSort({ column, direction: "descending" });
6127
+ } else {
6128
+ setSort(void 0);
6129
+ }
6130
+ } else {
6131
+ setSort({ column, direction: "ascending" });
6068
6132
  }
6069
- throw new Error("Invalid children element type");
6070
- }));
6071
- };
6072
- var Trigger = () => null;
6073
- Trigger.displayName = "Popover.Trigger";
6074
- Popover2.Trigger = Trigger;
6075
- var Panel = () => null;
6076
- Panel.displayName = "Popover.Panel";
6077
- Popover2.Panel = Panel;
6078
- var asPopoverButton = (Component, displayName) => {
6079
- const PopoverButton2 = (props) => {
6080
- const { onClick } = props;
6081
- const { state } = usePopoverContext();
6082
- const handleClick = (e) => {
6083
- state.close();
6084
- onClick == null ? void 0 : onClick(e);
6085
- };
6086
- return /* @__PURE__ */ import_react62.default.createElement(Component, __spreadProps(__spreadValues({}, props), {
6087
- onClick: handleClick
6088
- }));
6089
6133
  };
6090
- PopoverButton2.displayName = displayName;
6091
- return PopoverButton2;
6092
- };
6093
- var PopoverButton = asPopoverButton(Button, "PopoverButton");
6094
- Popover2.Button = PopoverButton;
6095
- var PopoverTriggerWrapper = (_a) => {
6096
- var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
6097
- var _a2;
6098
- const ref = (0, import_react62.useRef)(null);
6099
- const trigger = import_react62.default.Children.only(children);
6100
- const { pressProps } = (0, import_interactions2.usePress)(__spreadProps(__spreadValues({}, rest), { ref }));
6101
- return import_react62.default.cloneElement(trigger, __spreadProps(__spreadValues({
6102
- "ref": ref
6103
- }, (0, import_utils6.mergeProps)(pressProps, trigger.props)), {
6104
- "aria-controls": (_a2 = rest["aria-controls"]) != null ? _a2 : pressProps["aria-controls"]
6105
- }));
6134
+ return [sort, handleSortClick];
6106
6135
  };
6107
6136
 
6108
- // src/molecules/Dropdown/Dropdown.tsx
6109
- var Dropdown = ({ children, content, placement = "bottom-left" }) => {
6110
- return /* @__PURE__ */ import_react63.default.createElement(Popover2, {
6111
- type: "menu",
6112
- placement
6113
- }, /* @__PURE__ */ import_react63.default.createElement(Popover2.Trigger, null, children), /* @__PURE__ */ import_react63.default.createElement(Popover2.Panel, null, content));
6137
+ // src/utils/table/utils.ts
6138
+ var import_orderBy2 = __toESM(require("lodash/orderBy"));
6139
+ var sortRowsBy = (rows, sort) => {
6140
+ if (!sort) {
6141
+ return rows;
6142
+ }
6143
+ const sortFunction = sort.column.sort;
6144
+ if (sortFunction) {
6145
+ return [...rows].sort((a, b) => sortFunction(a, b, sort.direction));
6146
+ } else if (columnIsFieldColumn(sort.column)) {
6147
+ return (0, import_orderBy2.default)(rows, [sort.column.field], [toSortDirection(sort.direction)]);
6148
+ }
6149
+ return rows;
6114
6150
  };
6115
- var DropdownMenu = ({
6116
- title,
6117
- children,
6118
- contentId,
6119
- triggerId,
6120
- setClose = () => void 0
6151
+
6152
+ // src/molecules/DataList/DataList.tsx
6153
+ var import_more = __toESM(require_more());
6154
+ var DataList2 = ({
6155
+ columns,
6156
+ rows,
6157
+ sticky,
6158
+ menu,
6159
+ onAction
6121
6160
  }) => {
6122
- const menuRef = import_react63.default.useRef(null);
6123
- import_react63.default.useEffect(() => {
6124
- const id = setTimeout(() => {
6125
- var _a, _b, _c;
6126
- return (_c = (_b = (_a = menuRef.current) == null ? void 0 : _a.children) == null ? void 0 : _b[0]) == null ? void 0 : _c.focus();
6127
- });
6128
- return () => clearTimeout(id);
6129
- }, [menuRef.current]);
6130
- return /* @__PURE__ */ import_react63.default.createElement("div", {
6131
- style: { minWidth: "250px" },
6132
- className: tw("py-3 bg-white")
6133
- }, !!title && /* @__PURE__ */ import_react63.default.createElement("div", {
6134
- className: tw("px-4 py-4 text-left text-grey-100 typography-default-strong")
6135
- }, title), /* @__PURE__ */ import_react63.default.createElement("ol", {
6136
- role: "menu",
6137
- ref: menuRef,
6138
- id: contentId,
6139
- "aria-labelledby": triggerId
6140
- }, import_react63.default.Children.map(children, (child) => {
6141
- return import_react63.default.cloneElement(child, { setClose });
6142
- })));
6143
- };
6144
- var DropdownItem = (_a) => {
6145
- var _b = _a, {
6146
- children,
6147
- disabled = false,
6148
- tooltip,
6149
- tooltipPlacement,
6150
- color = "default",
6151
- onSelect,
6152
- setClose = () => void 0
6153
- } = _b, props = __objRest(_b, [
6154
- "children",
6155
- "disabled",
6156
- "tooltip",
6157
- "tooltipPlacement",
6158
- "color",
6159
- "onSelect",
6160
- "setClose"
6161
+ const [sort, updateSort] = useTableSort();
6162
+ const sortedRows = sortRowsBy(rows, sort);
6163
+ const templateColumns = (0, import_compact.default)([
6164
+ ...columns.map((column) => {
6165
+ var _a;
6166
+ return (_a = column.width) != null ? _a : "auto";
6167
+ }),
6168
+ menu ? "auto" : void 0
6161
6169
  ]);
6162
- const { state } = usePopoverContext();
6163
- const handleSelect = () => {
6164
- onSelect == null ? void 0 : onSelect();
6165
- state.close();
6166
- setClose();
6167
- };
6168
- const handleKeyDown = (event) => {
6169
- const target = event.target;
6170
- const parent = target.parentElement;
6171
- const first = parent.firstChild;
6172
- const last = parent.lastChild;
6173
- const next = target.nextElementSibling;
6174
- const prev = target.previousElementSibling;
6175
- if (event.key === "ArrowUp") {
6176
- prev ? prev.focus() : last.focus();
6177
- } else if (event.key === "ArrowDown") {
6178
- next ? next.focus() : first.focus();
6179
- } else if (event.key === "Tab") {
6180
- event.preventDefault();
6181
- event.stopPropagation();
6182
- } else if (event.key === "Home" || event.key === "PageUp") {
6183
- first.focus();
6184
- } else if (event.key === "End" || event.key === "PageDown") {
6185
- last.focus();
6186
- } else if (event.key === "Enter") {
6187
- !disabled && handleSelect();
6188
- }
6189
- };
6190
- const handleClick = (e) => {
6191
- e.stopPropagation();
6192
- if (!disabled) {
6193
- handleSelect();
6194
- }
6195
- };
6196
- const itemContent = /* @__PURE__ */ import_react63.default.createElement("div", {
6197
- className: tw("py-3 px-4")
6198
- }, children);
6199
- return /* @__PURE__ */ import_react63.default.createElement("li", __spreadProps(__spreadValues({
6200
- role: "menuitem",
6201
- tabIndex: -1,
6202
- onClick: handleClick,
6203
- onKeyDown: handleKeyDown
6204
- }, props), {
6205
- className: tw("typography-small flex items-center focus:ring-0", {
6206
- "text-grey-70 cursor-pointer hover:bg-grey-0": !disabled,
6207
- "text-grey-10 cursor-not-allowed": disabled,
6208
- "text-primary-70 hover:text-primary-80": color === "danger" && !disabled
6209
- })
6210
- }), tooltip ? /* @__PURE__ */ import_react63.default.createElement(Tooltip, {
6211
- content: tooltip,
6212
- placement: tooltipPlacement,
6213
- inline: false
6214
- }, /* @__PURE__ */ import_react63.default.createElement("div", {
6215
- tabIndex: 0,
6216
- className: tw("grow")
6217
- }, itemContent)) : itemContent);
6170
+ return /* @__PURE__ */ import_react57.default.createElement(Template, {
6171
+ columns: templateColumns
6172
+ }, columns.map(
6173
+ (column) => columnIsFieldColumn(column) && column.sortable || column.sort ? /* @__PURE__ */ import_react57.default.createElement(DataList.SortCell, __spreadValues({
6174
+ direction: sort && sort.column.headerName === column.headerName ? sort.direction : "none",
6175
+ onClick: () => updateSort(column),
6176
+ sticky
6177
+ }, cellProps(column)), column.headerName) : /* @__PURE__ */ import_react57.default.createElement(DataList.HeadCell, __spreadProps(__spreadValues({}, cellProps(column)), {
6178
+ sticky
6179
+ }), column.headerName)
6180
+ ), menu && /* @__PURE__ */ import_react57.default.createElement(DataList.HeadCell, {
6181
+ align: "right",
6182
+ "aria-label": "Context menu"
6183
+ }), /* @__PURE__ */ import_react57.default.createElement(List2, {
6184
+ items: sortedRows,
6185
+ renderItem: (row, index) => /* @__PURE__ */ import_react57.default.createElement(DataList.Row, {
6186
+ key: row.id
6187
+ }, /* @__PURE__ */ import_react57.default.createElement(List2, {
6188
+ items: columns,
6189
+ renderItem: (column) => column.type === "status" ? /* @__PURE__ */ import_react57.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react57.default.createElement(StatusChip, __spreadValues({
6190
+ dense: true
6191
+ }, column.status(row, index, sortedRows)))) : column.type === "action" ? /* @__PURE__ */ import_react57.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react57.default.createElement(SecondaryButton, __spreadValues({
6192
+ dense: true
6193
+ }, renameProperty("text", "children", column.action(row, index, sortedRows))))) : column.type === "custom" ? /* @__PURE__ */ import_react57.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows)) : column.type === "item" ? /* @__PURE__ */ import_react57.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react57.default.createElement(Item4, __spreadValues({}, column.item(row, index, sortedRows)))) : /* @__PURE__ */ import_react57.default.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.formatter ? column.formatter(row[column.field], row, index, sortedRows) : row[column.field])
6194
+ }), menu && /* @__PURE__ */ import_react57.default.createElement(DataList.Cell, {
6195
+ align: "right"
6196
+ }, /* @__PURE__ */ import_react57.default.createElement(DropdownMenu2, {
6197
+ onAction: (action) => onAction == null ? void 0 : onAction(action, row, index)
6198
+ }, /* @__PURE__ */ import_react57.default.createElement(DropdownMenu2.Trigger, null, /* @__PURE__ */ import_react57.default.createElement(IconButton, {
6199
+ "aria-label": "menu",
6200
+ icon: import_more.default
6201
+ })), (0, import_isFunction.default)(menu) ? menu(row, index) : menu)))
6202
+ }));
6218
6203
  };
6219
- Dropdown.Menu = DropdownMenu;
6220
- Dropdown.Item = DropdownItem;
6221
6204
 
6222
- // src/molecules/DropdownMenu/DropdownMenu.tsx
6223
- var import_react67 = __toESM(require("react"));
6224
- var import_i18n = require("@react-aria/i18n");
6225
- var import_interactions3 = require("@react-aria/interactions");
6226
- var import_menu = require("@react-aria/menu");
6227
- var import_separator = require("@react-aria/separator");
6228
- var import_utils8 = require("@react-aria/utils");
6229
- var import_collections = require("@react-stately/collections");
6230
- var import_menu2 = require("@react-stately/menu");
6231
- var import_tree = require("@react-stately/tree");
6232
-
6233
- // src/molecules/Input/Input.tsx
6234
- var import_react65 = __toESM(require("react"));
6235
- var import_omit7 = __toESM(require("lodash/omit"));
6236
- var import_toString = __toESM(require("lodash/toString"));
6237
- var import_uniqueId3 = __toESM(require("lodash/uniqueId"));
6205
+ // src/molecules/DataTable/DataTable.tsx
6206
+ var import_react60 = __toESM(require("react"));
6207
+ var import_compact2 = __toESM(require("lodash/compact"));
6208
+ var import_isFunction2 = __toESM(require("lodash/isFunction"));
6238
6209
 
6239
- // src/utils/form/InputAdornment/InputAdornment.tsx
6240
- var import_react64 = __toESM(require("react"));
6241
- var import_cross4 = __toESM(require_cross());
6242
- var import_error3 = __toESM(require_error());
6243
- var import_search2 = __toESM(require_search());
6244
- var import_tick3 = __toESM(require_tick());
6245
- var InputAdornment = ({ placement = "right", className, dense, children }) => {
6246
- return /* @__PURE__ */ import_react64.default.createElement("span", {
6247
- className: classNames(className, "absolute inset-y-0 grow-0 text-grey-40 flex items-center mx-3", {
6248
- "right-0": placement === "right",
6249
- "left-0": placement === "left",
6250
- "typography-small": dense,
6251
- "typography-default-strong": !dense
6252
- })
6253
- }, /* @__PURE__ */ import_react64.default.createElement(Flexbox, {
6254
- gap: "3",
6255
- wrap: "wrap"
6256
- }, children));
6257
- };
6258
- var SearchIcon = ({ onClick }) => /* @__PURE__ */ import_react64.default.createElement(Icon, {
6259
- icon: import_search2.default,
6260
- color: "grey-30",
6261
- "data-testid": "icon-search",
6262
- onClick
6263
- });
6264
- var ResetIcon = ({ onClick }) => /* @__PURE__ */ import_react64.default.createElement(Icon, {
6265
- className: "hover:cursor-pointer",
6266
- icon: import_cross4.default,
6267
- color: "grey-30",
6268
- "data-testid": "icon-reset",
6269
- onClick
6270
- });
6210
+ // src/molecules/Table/Table.tsx
6211
+ var import_react59 = __toESM(require("react"));
6271
6212
 
6272
- // src/molecules/Input/Input.tsx
6273
- var createInput = (displayName, opts = {}) => {
6274
- const InputComponent = (0, import_react65.forwardRef)(
6275
- (_a, ref) => {
6276
- var _b = _a, {
6277
- type = "text",
6278
- maxLength,
6279
- valid = true,
6280
- required = false,
6281
- endAdornment,
6282
- disabled = false,
6283
- readOnly = false
6284
- } = _b, props = __objRest(_b, [
6285
- "type",
6286
- "maxLength",
6287
- "valid",
6288
- "required",
6289
- "endAdornment",
6290
- "disabled",
6291
- "readOnly"
6292
- ]);
6293
- var _a2;
6294
- const inputRef = import_react65.default.useRef(null);
6295
- (0, import_react65.useImperativeHandle)(ref, () => inputRef.current);
6296
- const handleReset = () => {
6297
- var _a3;
6298
- const el = inputRef.current;
6299
- if (el) {
6300
- const lastValue = el.value;
6301
- el.value = "";
6302
- (_a3 = el._valueTracker) == null ? void 0 : _a3.setValue(lastValue);
6303
- el.dispatchEvent(new Event("change", { bubbles: true }));
6304
- el.focus();
6305
- }
6306
- };
6307
- return /* @__PURE__ */ import_react65.default.createElement("span", {
6308
- className: tw("relative block")
6309
- }, opts.adornment && /* @__PURE__ */ import_react65.default.createElement(InputAdornment, {
6310
- placement: "left"
6311
- }, opts.adornment), /* @__PURE__ */ import_react65.default.createElement("input", __spreadProps(__spreadValues({
6312
- ref: inputRef,
6313
- type
6314
- }, props), {
6315
- disabled,
6316
- maxLength,
6317
- required,
6318
- readOnly,
6319
- className: classNames(
6320
- {
6321
- "pl-7": opts.adornment
6322
- },
6323
- getCommonInputStyles({ readOnly, valid }),
6324
- props.className
6325
- )
6326
- })), opts.canReset && (props.value || ((_a2 = inputRef.current) == null ? void 0 : _a2.value)) && /* @__PURE__ */ import_react65.default.createElement(InputAdornment, null, /* @__PURE__ */ import_react65.default.createElement(ResetIcon, {
6327
- onClick: handleReset
6328
- })), !opts.canReset && endAdornment && /* @__PURE__ */ import_react65.default.createElement(InputAdornment, null, endAdornment));
6213
+ // src/utils/table/useScrollTarget.ts
6214
+ var import_react58 = __toESM(require("react"));
6215
+ var useScrollTarget = (callback) => {
6216
+ const targetRef = import_react58.default.useRef(null);
6217
+ import_react58.default.useLayoutEffect(() => {
6218
+ const observer = new IntersectionObserver((entries) => entries[0].isIntersecting && callback && callback(), {
6219
+ root: null,
6220
+ rootMargin: `0px 0px 200px 0px`
6221
+ });
6222
+ if (targetRef.current) {
6223
+ observer.observe(targetRef.current);
6329
6224
  }
6330
- );
6331
- InputComponent.displayName = displayName;
6332
- InputComponent.Skeleton = () => /* @__PURE__ */ import_react65.default.createElement(Skeleton, {
6333
- height: 38
6334
- });
6335
- return InputComponent;
6225
+ return () => observer.disconnect();
6226
+ }, []);
6227
+ return targetRef;
6336
6228
  };
6337
- var InputBase = createInput("InputBase");
6338
- var SearchInput = createInput("SearchInput", { adornment: /* @__PURE__ */ import_react65.default.createElement(SearchIcon, null), canReset: true });
6339
- var Input2 = import_react65.default.forwardRef((_a, ref) => {
6340
- var _b = _a, { readOnly = false } = _b, props = __objRest(_b, ["readOnly"]);
6341
- var _a2, _b2, _c;
6342
- const [value, setValue] = (0, import_react65.useState)((_b2 = (_a2 = props.value) != null ? _a2 : props.defaultValue) != null ? _b2 : "");
6343
- const id = (0, import_react65.useRef)((_c = props.id) != null ? _c : `input-${(0, import_uniqueId3.default)()}`);
6344
- const errorMessageId = (0, import_uniqueId3.default)();
6345
- const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
6346
- const _d = getLabelControlProps(props), { "data-testid": dataTestId } = _d, labelControlProps = __objRest(_d, ["data-testid"]);
6347
- const baseProps = (0, import_omit7.default)(props, Object.keys(labelControlProps));
6348
- return /* @__PURE__ */ import_react65.default.createElement(LabelControl, __spreadValues({
6349
- id: `${id.current}-label`,
6350
- htmlFor: id.current,
6351
- messageId: errorMessageId,
6352
- length: value !== void 0 ? (0, import_toString.default)(value).length : void 0
6353
- }, labelControlProps), /* @__PURE__ */ import_react65.default.createElement(InputBase, __spreadProps(__spreadValues(__spreadValues({
6354
- ref
6355
- }, baseProps), errorProps), {
6356
- id: id.current,
6357
- "data-testid": dataTestId,
6358
- onChange: (e) => {
6359
- var _a3;
6360
- setValue(e.currentTarget.value);
6361
- (_a3 = props.onChange) == null ? void 0 : _a3.call(props, e);
6362
- },
6363
- disabled: props.disabled,
6364
- maxLength: props.maxLength,
6365
- required: props.required,
6366
- valid: props.valid,
6367
- readOnly
6229
+
6230
+ // src/molecules/Table/Table.tsx
6231
+ var Table2 = (_a) => {
6232
+ var _b = _a, { children, onPrev, onNext } = _b, rest = __objRest(_b, ["children", "onPrev", "onNext"]);
6233
+ const bottomRef = useScrollTarget(onNext);
6234
+ const topRef = useScrollTarget(onPrev);
6235
+ return /* @__PURE__ */ import_react59.default.createElement("div", {
6236
+ className: "relative w-full"
6237
+ }, /* @__PURE__ */ import_react59.default.createElement("div", {
6238
+ ref: topRef,
6239
+ className: tw("absolute top-0 h-1 w-full left-0 bg-transparent")
6240
+ }), /* @__PURE__ */ import_react59.default.createElement(Table, __spreadValues({}, rest), children), /* @__PURE__ */ import_react59.default.createElement("div", {
6241
+ ref: bottomRef,
6242
+ className: tw("absolute bottom-0 h-1 w-full left-0 bg-transparent")
6243
+ }));
6244
+ };
6245
+ Table2.Head = Table.Head;
6246
+ Table2.Body = Table.Body;
6247
+ Table2.Row = Table.Row;
6248
+ Table2.Cell = Table.Cell;
6249
+ Table2.SortCell = Table.SortCell;
6250
+ Table2.SelectCell = Table.SelectCell;
6251
+
6252
+ // src/molecules/DataTable/DataTable.tsx
6253
+ var import_more2 = __toESM(require_more());
6254
+ var DataTable = (_a) => {
6255
+ var _b = _a, {
6256
+ columns,
6257
+ rows,
6258
+ noWrap = false,
6259
+ layout = "auto",
6260
+ sticky,
6261
+ menu,
6262
+ onAction
6263
+ } = _b, rest = __objRest(_b, [
6264
+ "columns",
6265
+ "rows",
6266
+ "noWrap",
6267
+ "layout",
6268
+ "sticky",
6269
+ "menu",
6270
+ "onAction"
6271
+ ]);
6272
+ const [sort, updateSort] = useTableSort();
6273
+ const sortedRows = sortRowsBy(rows, sort);
6274
+ return /* @__PURE__ */ import_react60.default.createElement(Table2, __spreadProps(__spreadValues({}, rest), {
6275
+ className: tw({
6276
+ "whitespace-nowrap": noWrap,
6277
+ "table-auto": layout === "auto",
6278
+ "table-fixed": layout === "fixed"
6279
+ })
6280
+ }), /* @__PURE__ */ import_react60.default.createElement(Table2.Head, {
6281
+ sticky
6282
+ }, (0, import_compact2.default)([
6283
+ ...columns.map(
6284
+ (column) => columnIsFieldColumn(column) && column.sortable || column.sort ? /* @__PURE__ */ import_react60.default.createElement(Table2.SortCell, __spreadValues({
6285
+ direction: sort && sort.column.headerName === column.headerName ? sort.direction : "none",
6286
+ onClick: () => updateSort(column),
6287
+ style: { width: column.width },
6288
+ "aria-label": column.headerInvisible ? column.headerName : void 0
6289
+ }, cellProps(column)), !column.headerInvisible && column.headerName) : /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, __spreadProps(__spreadValues({}, cellProps(column)), {
6290
+ style: { width: column.width },
6291
+ "aria-label": column.headerInvisible ? column.headerName : void 0
6292
+ }), !column.headerInvisible && column.headerName)
6293
+ ),
6294
+ menu ? /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, {
6295
+ key: "__contextMenu",
6296
+ align: "right",
6297
+ "aria-label": "Context menu"
6298
+ }) : null
6299
+ ])), /* @__PURE__ */ import_react60.default.createElement(Table2.Body, null, /* @__PURE__ */ import_react60.default.createElement(List2, {
6300
+ items: sortedRows,
6301
+ renderItem: (row, index) => /* @__PURE__ */ import_react60.default.createElement(Table2.Row, {
6302
+ key: row.id
6303
+ }, /* @__PURE__ */ import_react60.default.createElement(List2, {
6304
+ items: columns,
6305
+ renderItem: (column) => column.type === "status" ? /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react60.default.createElement(StatusChip, __spreadValues({
6306
+ dense: true
6307
+ }, column.status(row, index, sortedRows)))) : column.type === "action" ? /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react60.default.createElement(SecondaryButton, __spreadValues({
6308
+ dense: true
6309
+ }, renameProperty("text", "children", column.action(row, index, sortedRows))))) : column.type === "custom" ? /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows)) : column.type === "item" ? /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ import_react60.default.createElement(Item4, __spreadValues({}, column.item(row, index, sortedRows)))) : /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, __spreadValues({}, cellProps(column)), column.formatter ? column.formatter(row[column.field], row, index, sortedRows) : row[column.field])
6310
+ }), menu && /* @__PURE__ */ import_react60.default.createElement(Table2.Cell, {
6311
+ align: "right"
6312
+ }, /* @__PURE__ */ import_react60.default.createElement(DropdownMenu2, {
6313
+ onAction: (action) => onAction == null ? void 0 : onAction(action, row, index)
6314
+ }, /* @__PURE__ */ import_react60.default.createElement(DropdownMenu2.Trigger, null, /* @__PURE__ */ import_react60.default.createElement(IconButton, {
6315
+ "aria-label": "menu",
6316
+ icon: import_more2.default
6317
+ })), (0, import_isFunction2.default)(menu) ? menu(row, index) : menu)))
6368
6318
  })));
6369
- });
6370
- Input2.displayName = "Input";
6371
- Input2.Skeleton = () => /* @__PURE__ */ import_react65.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react65.default.createElement(InputBase.Skeleton, null));
6372
- Input2.Skeleton.displayName = "Input.Skeleton";
6319
+ };
6373
6320
 
6374
- // src/atoms/DropdownMenu/DropdownMenu.tsx
6375
- var import_react66 = __toESM(require("react"));
6376
- var import_tick4 = __toESM(require_tick());
6377
- var DropdownMenu2 = import_react66.default.forwardRef(
6378
- (_a, ref) => {
6379
- var _b = _a, { maxHeight = "450px", minWidth = "125px", maxWidth, className, children } = _b, props = __objRest(_b, ["maxHeight", "minWidth", "maxWidth", "className", "children"]);
6380
- return /* @__PURE__ */ import_react66.default.createElement("div", __spreadValues({
6381
- ref,
6382
- style: { maxHeight, minWidth, maxWidth },
6383
- className: classNames(className, "bg-white w-full flex flex-col overflow-x-hidden typography-small text-grey-70")
6384
- }, props), children);
6321
+ // src/molecules/Dialog/Dialog.tsx
6322
+ var import_react62 = __toESM(require("react"));
6323
+ var import_dialog = require("@react-aria/dialog");
6324
+ var import_overlays6 = require("@react-aria/overlays");
6325
+ var import_utils8 = require("@react-aria/utils");
6326
+ var import_overlays7 = require("@react-stately/overlays");
6327
+ var import_omit7 = __toESM(require("lodash/omit"));
6328
+
6329
+ // src/atoms/Dialog/Dialog.tsx
6330
+ var import_confirm2 = __toESM(require_confirm());
6331
+ var import_error3 = __toESM(require_error());
6332
+ var import_warningSign2 = __toESM(require_warningSign());
6333
+ var DIALOG_ICONS_AND_COLORS = {
6334
+ confirmation: {
6335
+ icon: import_confirm2.default,
6336
+ color: "info-70"
6337
+ },
6338
+ warning: {
6339
+ icon: import_warningSign2.default,
6340
+ color: "secondary-70"
6341
+ },
6342
+ danger: {
6343
+ icon: import_error3.default,
6344
+ color: "error-70"
6385
6345
  }
6386
- );
6387
- var ContentContainer = ({ children }) => /* @__PURE__ */ import_react66.default.createElement("div", {
6388
- className: tw("p-3 overflow-y-auto overflow-x-hidden")
6389
- }, children);
6390
- DropdownMenu2.ContentContainer = ContentContainer;
6391
- var List2 = import_react66.default.forwardRef(
6346
+ };
6347
+
6348
+ // src/atoms/Modal/Modal.tsx
6349
+ var import_react61 = __toESM(require("react"));
6350
+ var Modal = (_a) => {
6351
+ var _b = _a, { children, className, open } = _b, rest = __objRest(_b, ["children", "className", "open"]);
6352
+ return open ? /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6353
+ className: classNames(
6354
+ tw("inset-0 overflow-y-auto z-modal flex justify-center items-center fixed py-7"),
6355
+ className
6356
+ )
6357
+ }), children) : null;
6358
+ };
6359
+ Modal.BackDrop = (_a) => {
6360
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
6361
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6362
+ className: classNames(tw("-z-10 fixed min-w-full min-h-full bg-navyBlue-100 opacity-70"), className)
6363
+ }));
6364
+ };
6365
+ Modal.Dialog = import_react61.default.forwardRef(
6392
6366
  (_a, ref) => {
6393
- var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
6394
- return /* @__PURE__ */ import_react66.default.createElement("ul", __spreadValues({
6367
+ var _b = _a, { children, className, size = "sm" } = _b, rest = __objRest(_b, ["children", "className", "size"]);
6368
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({
6395
6369
  ref,
6396
- className: classNames(className, "outline-none ring-0")
6397
- }, props), children);
6370
+ "aria-modal": "true"
6371
+ }, rest), {
6372
+ className: classNames(
6373
+ tw("relative bg-white rounded mx-7 w-full max-h-full flex flex-col"),
6374
+ {
6375
+ "max-w-[600px]": size === "sm",
6376
+ "max-w-[940px]": size === "md",
6377
+ "min-h-full": size === "full"
6378
+ },
6379
+ className
6380
+ )
6381
+ }), children);
6398
6382
  }
6399
6383
  );
6400
- DropdownMenu2.List = List2;
6401
- var Group2 = import_react66.default.forwardRef(
6402
- (_a, ref) => {
6403
- var _b = _a, { className, title, titleProps, children } = _b, props = __objRest(_b, ["className", "title", "titleProps", "children"]);
6404
- return /* @__PURE__ */ import_react66.default.createElement("li", __spreadValues({
6405
- ref
6406
- }, props), title && /* @__PURE__ */ import_react66.default.createElement("div", __spreadValues({
6407
- className: classNames(className, "p-3 text-grey-40 uppercase cursor-default typography-caption", {
6408
- "text-grey-20": props.disabled
6409
- })
6410
- }, titleProps), title), children);
6384
+ Modal.Header = (_a) => {
6385
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
6386
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6387
+ className: classNames(tw("px-7 py-6 gap-3 flex items-center"), className)
6388
+ }), children);
6389
+ };
6390
+ Modal.HeaderImage = (_a) => {
6391
+ var _b = _a, { backgroundImage, className } = _b, rest = __objRest(_b, ["backgroundImage", "className"]);
6392
+ const common = tw("h-[120px] min-h-[120px] w-full ");
6393
+ return backgroundImage ? /* @__PURE__ */ import_react61.default.createElement("img", __spreadProps(__spreadValues({
6394
+ "aria-hidden": true,
6395
+ src: backgroundImage != null ? backgroundImage : void 0
6396
+ }, rest), {
6397
+ className: classNames(common, tw("object-cover"), className)
6398
+ })) : /* @__PURE__ */ import_react61.default.createElement("div", {
6399
+ className: classNames(common, tw("bg-grey-5"), className)
6400
+ });
6401
+ };
6402
+ Modal.CloseButtonContainer = (_a) => {
6403
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
6404
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6405
+ className: classNames(tw("absolute top-[20px] right-[28px]"), className)
6406
+ }));
6407
+ };
6408
+ Modal.Title = (_a) => {
6409
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
6410
+ return /* @__PURE__ */ import_react61.default.createElement(Typography, __spreadValues({
6411
+ htmlTag: "h2",
6412
+ variant: "subheading",
6413
+ color: "grey-90",
6414
+ className: classNames(tw("leading-none"), className)
6415
+ }, rest), children);
6416
+ };
6417
+ Modal.Subtitle = (_a) => {
6418
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
6419
+ return /* @__PURE__ */ import_react61.default.createElement(Typography, __spreadValues({
6420
+ variant: "small",
6421
+ color: "grey-60"
6422
+ }, rest), children);
6423
+ };
6424
+ Modal.TitleContainer = (_a) => {
6425
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
6426
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6427
+ className: classNames(tw("flex flex-col grow gap-2"), className)
6428
+ }), children);
6429
+ };
6430
+ Modal.Body = (_a) => {
6431
+ var _b = _a, { children, className, noFooter = false, maxHeight, style } = _b, rest = __objRest(_b, ["children", "className", "noFooter", "maxHeight", "style"]);
6432
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6433
+ className: classNames(tw("px-7 grow overflow-y-auto", { "pb-6": noFooter }), className),
6434
+ style: __spreadValues({ maxHeight }, style)
6435
+ }), children);
6436
+ };
6437
+ Modal.Footer = (_a) => {
6438
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
6439
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6440
+ className: classNames(tw("px-7 py-6"), className)
6441
+ }), children);
6442
+ };
6443
+ Modal.Actions = (_a) => {
6444
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
6445
+ return /* @__PURE__ */ import_react61.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
6446
+ className: classNames(tw("flex gap-4 justify-end"), className)
6447
+ }), children);
6448
+ };
6449
+
6450
+ // src/molecules/Dialog/Dialog.tsx
6451
+ var Dialog = (props) => {
6452
+ const ref = import_react62.default.useRef(null);
6453
+ const state = (0, import_overlays7.useOverlayTriggerState)({ isOpen: props.open });
6454
+ const { modalProps, underlayProps } = (0, import_overlays6.useModalOverlay)({}, state, ref);
6455
+ if (!state.isOpen) {
6456
+ return null;
6411
6457
  }
6412
- );
6413
- DropdownMenu2.Group = Group2;
6414
- var Item3 = import_react66.default.forwardRef(
6415
- (_a, ref) => {
6416
- var _b = _a, { kind, highlighted, selected, className, icon, children } = _b, props = __objRest(_b, ["kind", "highlighted", "selected", "className", "icon", "children"]);
6417
- return /* @__PURE__ */ import_react66.default.createElement("li", __spreadValues({
6418
- ref,
6419
- className: classNames(className, "flex items-center gap-x-3 p-3 outline-none", {
6420
- "cursor-pointer hover:bg-grey-0": !props.disabled,
6421
- "bg-grey-0": highlighted,
6422
- "text-primary-80": kind === "action",
6423
- "text-grey-20 cursor-not-allowed": props.disabled
6424
- })
6425
- }, props), icon && /* @__PURE__ */ import_react66.default.createElement(InlineIcon, {
6426
- icon
6427
- }), /* @__PURE__ */ import_react66.default.createElement("span", {
6428
- className: tw("grow")
6429
- }, children), selected && /* @__PURE__ */ import_react66.default.createElement(InlineIcon, {
6430
- icon: import_tick4.default
6431
- }));
6458
+ return /* @__PURE__ */ import_react62.default.createElement(import_overlays6.Overlay, null, /* @__PURE__ */ import_react62.default.createElement(Modal, {
6459
+ open: true
6460
+ }, /* @__PURE__ */ import_react62.default.createElement(Modal.BackDrop, __spreadValues({}, underlayProps)), /* @__PURE__ */ import_react62.default.createElement(Modal.Dialog, __spreadValues({
6461
+ ref,
6462
+ size: "sm"
6463
+ }, modalProps), /* @__PURE__ */ import_react62.default.createElement(DialogWrapper, __spreadValues({}, props)))));
6464
+ };
6465
+ var DialogWrapper = ({
6466
+ title,
6467
+ type = "confirmation",
6468
+ children,
6469
+ primaryAction,
6470
+ secondaryAction
6471
+ }) => {
6472
+ const ref = import_react62.default.useRef(null);
6473
+ const labelledBy = (0, import_utils8.useId)();
6474
+ const describedBy = (0, import_utils8.useId)();
6475
+ const { dialogProps } = (0, import_dialog.useDialog)(
6476
+ { "role": "alertdialog", "aria-labelledby": labelledBy, "aria-describedby": describedBy },
6477
+ ref
6478
+ );
6479
+ return /* @__PURE__ */ import_react62.default.createElement("div", __spreadProps(__spreadValues({
6480
+ ref
6481
+ }, dialogProps), {
6482
+ className: tw("outline-none")
6483
+ }), /* @__PURE__ */ import_react62.default.createElement(Modal.Header, null, /* @__PURE__ */ import_react62.default.createElement(Icon, {
6484
+ icon: DIALOG_ICONS_AND_COLORS[type].icon,
6485
+ color: DIALOG_ICONS_AND_COLORS[type].color,
6486
+ fontSize: 20
6487
+ }), /* @__PURE__ */ import_react62.default.createElement(Modal.Title, {
6488
+ id: labelledBy,
6489
+ variant: "large-strong",
6490
+ color: DIALOG_ICONS_AND_COLORS[type].color
6491
+ }, title)), /* @__PURE__ */ import_react62.default.createElement(Modal.Body, {
6492
+ id: describedBy
6493
+ }, children), /* @__PURE__ */ import_react62.default.createElement(Modal.Footer, null, /* @__PURE__ */ import_react62.default.createElement(Modal.Actions, null, secondaryAction && /* @__PURE__ */ import_react62.default.createElement(GhostButton, __spreadValues({
6494
+ key: secondaryAction.text
6495
+ }, (0, import_omit7.default)(secondaryAction, "text")), secondaryAction.text), /* @__PURE__ */ import_react62.default.createElement(SecondaryButton, __spreadValues({
6496
+ key: primaryAction.text
6497
+ }, (0, import_omit7.default)(primaryAction, "text")), primaryAction.text))));
6498
+ };
6499
+
6500
+ // src/molecules/Divider/Divider.tsx
6501
+ var import_react63 = __toESM(require("react"));
6502
+ var sizeClasses = {
6503
+ horizontal: {
6504
+ 1: "h-1px",
6505
+ 2: "h-1",
6506
+ 4: "h-2",
6507
+ 8: "h-3",
6508
+ 16: "h-5",
6509
+ 24: "h-6"
6510
+ },
6511
+ vertical: {
6512
+ 1: "w-1px",
6513
+ 2: "w-1",
6514
+ 4: "w-2",
6515
+ 8: "w-3",
6516
+ 16: "w-5",
6517
+ 24: "w-6"
6432
6518
  }
6433
- );
6434
- DropdownMenu2.Item = Item3;
6435
- var Description = ({ disabled, children }) => /* @__PURE__ */ import_react66.default.createElement(Typography2.Caption, {
6436
- color: disabled ? "grey-20" : "grey-40"
6437
- }, children);
6438
- DropdownMenu2.Description = Description;
6439
- var Separator = (_a) => {
6440
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
6441
- return /* @__PURE__ */ import_react66.default.createElement("li", __spreadProps(__spreadValues({}, props), {
6442
- className: classNames(className, tw("m-3 block bg-grey-5 h-[1px]"))
6443
- }));
6444
6519
  };
6445
- DropdownMenu2.Separator = Separator;
6446
- var EmptyStateContainer2 = (_a) => {
6447
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
6448
- return /* @__PURE__ */ import_react66.default.createElement("div", __spreadValues({
6449
- className: classNames(tw("border border-dashed border-grey-10 p-3"), className)
6450
- }, props), children);
6520
+ var Divider2 = (_a) => {
6521
+ var _b = _a, { direction = "horizontal", size = 1 } = _b, props = __objRest(_b, ["direction", "size"]);
6522
+ const sizeClass = sizeClasses[direction][size];
6523
+ return /* @__PURE__ */ import_react63.default.createElement("div", __spreadProps(__spreadValues({}, props), {
6524
+ className: tw(`bg-grey-5 ${sizeClass}`, {
6525
+ "block w-full": direction === "horizontal",
6526
+ "inline-block h-full": direction === "vertical"
6527
+ })
6528
+ }));
6451
6529
  };
6452
- DropdownMenu2.EmptyStateContainer = EmptyStateContainer2;
6453
6530
 
6454
- // src/molecules/DropdownMenu/utils.ts
6455
- var import_list = require("@react-stately/list");
6456
- var filterCollection = (collection, inputValue, filter) => {
6457
- return new import_list.ListCollection(filterNodes(collection, inputValue, filter));
6531
+ // src/molecules/Dropdown/Dropdown.tsx
6532
+ var import_react67 = __toESM(require("react"));
6533
+
6534
+ // src/molecules/Popover/Popover.tsx
6535
+ var import_react66 = __toESM(require("react"));
6536
+ var import_interactions3 = require("@react-aria/interactions");
6537
+ var import_overlays8 = require("@react-aria/overlays");
6538
+ var import_utils9 = require("@react-aria/utils");
6539
+ var import_overlays9 = require("@react-stately/overlays");
6540
+
6541
+ // src/molecules/Popover/Dialog.tsx
6542
+ var import_react64 = __toESM(require("react"));
6543
+ var import_dialog2 = require("@react-aria/dialog");
6544
+ var Dialog2 = ({ children }) => {
6545
+ const ref = import_react64.default.useRef(null);
6546
+ const { dialogProps } = (0, import_dialog2.useDialog)({}, ref);
6547
+ return /* @__PURE__ */ import_react64.default.createElement("div", __spreadProps(__spreadValues({
6548
+ ref
6549
+ }, dialogProps), {
6550
+ className: tw("outline-none")
6551
+ }), children);
6458
6552
  };
6459
- var filterNodes = (nodes, inputValue, filter) => {
6460
- const filteredNode = [];
6461
- for (const node of nodes) {
6462
- if (node.type === "section" && node.hasChildNodes) {
6463
- const filtered = filterNodes(node.childNodes, inputValue, filter);
6464
- if ([...filtered].length > 0) {
6465
- filteredNode.push(__spreadProps(__spreadValues({}, node), { childNodes: filtered }));
6466
- }
6467
- } else if (node.type !== "section" && filter(node.textValue, inputValue)) {
6468
- filteredNode.push(__spreadValues({}, node));
6469
- }
6553
+
6554
+ // src/molecules/Popover/PopoverContext.tsx
6555
+ var import_react65 = require("react");
6556
+ var PopoverContext = (0, import_react65.createContext)(null);
6557
+ var usePopoverContext = () => {
6558
+ const ctx = (0, import_react65.useContext)(PopoverContext);
6559
+ if (ctx === null) {
6560
+ throw new Error("PopoverContext was used outside of provider.");
6470
6561
  }
6471
- return filteredNode;
6562
+ return ctx;
6472
6563
  };
6473
6564
 
6474
- // src/molecules/DropdownMenu/DropdownMenu.tsx
6475
- var DropdownMenu3 = (_a) => {
6476
- var _b = _a, {
6477
- onAction,
6478
- selectionMode,
6479
- selection,
6480
- onSelectionChange,
6565
+ // src/molecules/Popover/Popover.tsx
6566
+ var Popover2 = (props) => {
6567
+ const {
6568
+ id,
6569
+ type,
6481
6570
  placement = "bottom-left",
6482
- minWidth,
6483
- maxWidth,
6484
- searchable = false,
6485
- emptyState,
6486
- header,
6487
- footer,
6488
- children
6489
- } = _b, props = __objRest(_b, [
6490
- "onAction",
6491
- "selectionMode",
6492
- "selection",
6493
- "onSelectionChange",
6494
- "placement",
6495
- "minWidth",
6496
- "maxWidth",
6497
- "searchable",
6498
- "emptyState",
6499
- "header",
6500
- "footer",
6501
- "children"
6502
- ]);
6503
- const triggerRef = import_react67.default.useRef(null);
6504
- const [trigger, items] = extractTriggerAndItems(children);
6505
- const state = (0, import_menu2.useMenuTriggerState)(props);
6506
- const { menuTriggerProps, menuProps } = (0, import_menu.useMenuTrigger)({}, state, triggerRef);
6507
- return /* @__PURE__ */ import_react67.default.createElement("div", null, /* @__PURE__ */ import_react67.default.createElement(import_interactions3.PressResponder, __spreadValues({
6508
- ref: triggerRef,
6509
- onPress: () => state.toggle()
6510
- }, menuTriggerProps), /* @__PURE__ */ import_react67.default.createElement(TriggerWrapper, null, trigger.props.children)), state.isOpen && /* @__PURE__ */ import_react67.default.createElement(PopoverOverlay, {
6511
- triggerRef,
6512
- state,
6513
- placement,
6514
- focusable: false
6515
- }, /* @__PURE__ */ import_react67.default.createElement(MenuWrapper, __spreadValues({
6516
- onAction,
6517
- selectionMode,
6518
- selection,
6519
- onSelectionChange,
6520
- searchable,
6521
- emptyState,
6522
- minWidth,
6523
- maxWidth,
6524
- header,
6525
- footer
6526
- }, menuProps), items.props.children)));
6527
- };
6528
- var MenuTrigger = () => null;
6529
- var MenuItems = () => null;
6530
- DropdownMenu3.Trigger = MenuTrigger;
6531
- DropdownMenu3.Trigger.displayName = "DropdownMenu.Trigger";
6532
- DropdownMenu3.Items = MenuItems;
6533
- DropdownMenu3.Items.displayName = "DropdownMenu.Items";
6534
- DropdownMenu3.Item = import_collections.Item;
6535
- DropdownMenu3.Item.displayName = "DropdownMenu.Item";
6536
- DropdownMenu3.Section = import_collections.Section;
6537
- DropdownMenu3.Section.displayName = "DropdownMenu.Section";
6538
- var TriggerWrapper = (_a) => {
6539
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
6540
- const ref = import_react67.default.useRef(null);
6541
- const { pressProps } = (0, import_interactions3.usePress)(__spreadProps(__spreadValues({}, props), { ref }));
6542
- const trigger = import_react67.default.Children.only(children);
6543
- if (!trigger || !import_react67.default.isValidElement(trigger)) {
6544
- throw new Error("<DropdownMenu.Trigger> must have valid child");
6545
- }
6546
- return import_react67.default.cloneElement(trigger, __spreadValues({ ref }, (0, import_utils8.mergeProps)(pressProps, props)));
6547
- };
6548
- var isSectionNode = (item) => item.type === "section";
6549
- var isItemNode = (item) => item.type === "item";
6550
- var MenuWrapper = (_a) => {
6551
- var _b = _a, {
6552
- selection: selectedKeys,
6553
- minWidth,
6554
- maxWidth,
6555
- searchable,
6556
- emptyState,
6557
- header,
6558
- footer
6559
- } = _b, props = __objRest(_b, [
6560
- "selection",
6561
- "minWidth",
6562
- "maxWidth",
6563
- "searchable",
6564
- "emptyState",
6565
- "header",
6566
- "footer"
6567
- ]);
6568
- const ref = import_react67.default.useRef(null);
6569
- const disabledKeys = getDisabledItemKeys(props.children);
6570
- const state = (0, import_tree.useTreeState)(__spreadValues({
6571
- disabledKeys,
6572
- selectedKeys
6573
- }, props));
6574
- const { menuProps } = (0, import_menu.useMenu)(props, state, ref);
6575
- const { contains } = (0, import_i18n.useFilter)({ sensitivity: "base" });
6576
- const [search, setSearch] = import_react67.default.useState("");
6577
- const filteredCollection = import_react67.default.useMemo(
6578
- () => searchable ? filterCollection(state.collection, search, contains) : state.collection,
6579
- [state.collection, search, contains]
6580
- );
6581
- return /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2, {
6582
- minWidth: minWidth !== void 0 ? `${minWidth}px` : void 0,
6583
- maxWidth: maxWidth !== void 0 ? `${maxWidth}px` : void 0
6584
- }, header, /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2.ContentContainer, null, searchable && /* @__PURE__ */ import_react67.default.createElement(SearchInput, {
6585
- "aria-label": "search",
6586
- value: search,
6587
- onChange: (e) => setSearch(e.target.value),
6588
- className: tw("mb-5")
6589
- }), filteredCollection.size === 0 && emptyState && /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2.EmptyStateContainer, null, emptyState), /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2.List, __spreadValues({
6590
- ref
6591
- }, menuProps), Array.from(filteredCollection).map((item) => {
6592
- if (isSectionNode(item)) {
6593
- return /* @__PURE__ */ import_react67.default.createElement(SectionWrapper, {
6594
- key: item.key,
6595
- section: item,
6596
- state
6597
- });
6598
- } else if (isItemNode(item)) {
6599
- return /* @__PURE__ */ import_react67.default.createElement(ItemWrapper, {
6600
- key: item.key,
6601
- item,
6602
- state
6603
- });
6571
+ containFocus = true,
6572
+ isKeyboardDismissDisabled = false,
6573
+ targetRef,
6574
+ offset,
6575
+ crossOffset,
6576
+ shouldFlip
6577
+ } = props;
6578
+ const triggerRef = (0, import_react66.useRef)(null);
6579
+ const state = (0, import_overlays9.useOverlayTriggerState)(props);
6580
+ const { triggerProps, overlayProps } = (0, import_overlays8.useOverlayTrigger)({ type: type != null ? type : "dialog" }, state, triggerRef);
6581
+ return /* @__PURE__ */ import_react66.default.createElement(PopoverContext.Provider, {
6582
+ value: {
6583
+ state
6604
6584
  }
6605
- }))), footer);
6585
+ }, import_react66.default.Children.map(props.children, (child) => {
6586
+ if (isComponentType(child, Popover2.Trigger)) {
6587
+ return /* @__PURE__ */ import_react66.default.createElement(import_interactions3.PressResponder, __spreadValues({
6588
+ ref: triggerRef
6589
+ }, triggerProps), /* @__PURE__ */ import_react66.default.createElement(PopoverTriggerWrapper, {
6590
+ "data-testid": props["data-testid"],
6591
+ "aria-controls": id
6592
+ }, child.props.children));
6593
+ }
6594
+ if (isComponentType(child, Popover2.Panel)) {
6595
+ return state.isOpen && /* @__PURE__ */ import_react66.default.createElement(PopoverOverlay, __spreadValues({
6596
+ triggerRef: targetRef != null ? targetRef : triggerRef,
6597
+ state,
6598
+ placement,
6599
+ isNonModal: !containFocus,
6600
+ autoFocus: !containFocus,
6601
+ isKeyboardDismissDisabled,
6602
+ className: child.props.className,
6603
+ offset,
6604
+ crossOffset,
6605
+ shouldFlip
6606
+ }, overlayProps), containFocus ? /* @__PURE__ */ import_react66.default.createElement(Dialog2, null, child.props.children) : child.props.children);
6607
+ }
6608
+ throw new Error("Invalid children element type");
6609
+ }));
6606
6610
  };
6607
- var ItemWrapper = ({ item, state }) => {
6608
- const ref = import_react67.default.useRef(null);
6609
- const { menuItemProps, descriptionProps, isSelected, isFocused, isDisabled } = (0, import_menu.useMenuItem)(
6610
- { key: item.key, closeOnSelect: item.props.closeOnSelect },
6611
- state,
6612
- ref
6613
- );
6614
- const { icon, description, kind = "default" } = item.props;
6615
- return /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2.Item, __spreadProps(__spreadValues({
6616
- ref
6617
- }, menuItemProps), {
6618
- kind,
6619
- selected: isSelected,
6620
- highlighted: isFocused,
6621
- disabled: isDisabled,
6622
- icon
6623
- }), item.rendered, description && /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2.Description, __spreadValues({
6624
- disabled: isDisabled
6625
- }, descriptionProps), description));
6611
+ var Trigger = () => null;
6612
+ Trigger.displayName = "Popover.Trigger";
6613
+ Popover2.Trigger = Trigger;
6614
+ var Panel = () => null;
6615
+ Panel.displayName = "Popover.Panel";
6616
+ Popover2.Panel = Panel;
6617
+ var asPopoverButton = (Component, displayName) => {
6618
+ const PopoverButton2 = (props) => {
6619
+ const { onClick } = props;
6620
+ const { state } = usePopoverContext();
6621
+ const handleClick = (e) => {
6622
+ state.close();
6623
+ onClick == null ? void 0 : onClick(e);
6624
+ };
6625
+ return /* @__PURE__ */ import_react66.default.createElement(Component, __spreadProps(__spreadValues({}, props), {
6626
+ onClick: handleClick
6627
+ }));
6628
+ };
6629
+ PopoverButton2.displayName = displayName;
6630
+ return PopoverButton2;
6626
6631
  };
6627
- var SectionWrapper = ({ section, state }) => {
6628
- const { itemProps, headingProps, groupProps } = (0, import_menu.useMenuSection)({
6629
- "heading": section.rendered,
6630
- "aria-label": section["aria-label"]
6631
- });
6632
- const { separatorProps } = (0, import_separator.useSeparator)({
6633
- elementType: "li"
6634
- });
6635
- return /* @__PURE__ */ import_react67.default.createElement(import_react67.default.Fragment, null, section.key !== state.collection.getFirstKey() && /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2.Separator, __spreadValues({}, separatorProps)), /* @__PURE__ */ import_react67.default.createElement(DropdownMenu2.Group, __spreadValues({
6636
- title: section.rendered,
6637
- titleProps: headingProps
6638
- }, itemProps), /* @__PURE__ */ import_react67.default.createElement("ul", __spreadValues({}, groupProps), Array.from(section.childNodes).map((node) => /* @__PURE__ */ import_react67.default.createElement(ItemWrapper, {
6639
- key: node.key,
6640
- item: node,
6641
- state
6642
- })))));
6632
+ var PopoverButton = asPopoverButton(Button, "PopoverButton");
6633
+ Popover2.Button = PopoverButton;
6634
+ var PopoverTriggerWrapper = (_a) => {
6635
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
6636
+ var _a2;
6637
+ const ref = (0, import_react66.useRef)(null);
6638
+ const trigger = import_react66.default.Children.only(children);
6639
+ const { pressProps } = (0, import_interactions3.usePress)(__spreadProps(__spreadValues({}, rest), { ref }));
6640
+ return import_react66.default.cloneElement(trigger, __spreadProps(__spreadValues({
6641
+ "ref": ref
6642
+ }, (0, import_utils9.mergeProps)(pressProps, trigger.props)), {
6643
+ "aria-controls": (_a2 = rest["aria-controls"]) != null ? _a2 : pressProps["aria-controls"]
6644
+ }));
6643
6645
  };
6644
- var extractTriggerAndItems = (children) => {
6645
- const [trigger, items] = import_react67.default.Children.toArray(children);
6646
- if (!isComponentType(trigger, MenuTrigger) || !isComponentType(items, MenuItems)) {
6647
- throw new Error("<DropdownMenu> must have <DropdownMenu.Trigger> and <DropdownMenu.Items> defined");
6648
- }
6649
- return [trigger, items];
6646
+
6647
+ // src/molecules/Dropdown/Dropdown.tsx
6648
+ var Dropdown = ({ children, content, placement = "bottom-left" }) => {
6649
+ return /* @__PURE__ */ import_react67.default.createElement(Popover2, {
6650
+ type: "menu",
6651
+ placement
6652
+ }, /* @__PURE__ */ import_react67.default.createElement(Popover2.Trigger, null, children), /* @__PURE__ */ import_react67.default.createElement(Popover2.Panel, null, content));
6650
6653
  };
6651
- var getDisabledItemKeys = (children) => {
6652
- const keys = import_react67.default.Children.map(children, (child) => {
6653
- var _a, _b;
6654
- if (!child || typeof child === "function") {
6655
- return null;
6656
- }
6657
- if (isComponentType(child, import_collections.Item) && child.props.disabled) {
6658
- return (_b = (_a = child.key) == null ? void 0 : _a.toString()) != null ? _b : null;
6654
+ var DropdownMenu3 = ({
6655
+ title,
6656
+ children,
6657
+ contentId,
6658
+ triggerId,
6659
+ setClose = () => void 0
6660
+ }) => {
6661
+ const menuRef = import_react67.default.useRef(null);
6662
+ import_react67.default.useEffect(() => {
6663
+ const id = setTimeout(() => {
6664
+ var _a, _b, _c;
6665
+ return (_c = (_b = (_a = menuRef.current) == null ? void 0 : _a.children) == null ? void 0 : _b[0]) == null ? void 0 : _c.focus();
6666
+ });
6667
+ return () => clearTimeout(id);
6668
+ }, [menuRef.current]);
6669
+ return /* @__PURE__ */ import_react67.default.createElement("div", {
6670
+ style: { minWidth: "250px" },
6671
+ className: tw("py-3 bg-white")
6672
+ }, !!title && /* @__PURE__ */ import_react67.default.createElement("div", {
6673
+ className: tw("px-4 py-4 text-left text-grey-100 typography-default-strong")
6674
+ }, title), /* @__PURE__ */ import_react67.default.createElement("ol", {
6675
+ role: "menu",
6676
+ ref: menuRef,
6677
+ id: contentId,
6678
+ "aria-labelledby": triggerId
6679
+ }, import_react67.default.Children.map(children, (child) => {
6680
+ return import_react67.default.cloneElement(child, { setClose });
6681
+ })));
6682
+ };
6683
+ var DropdownItem = (_a) => {
6684
+ var _b = _a, {
6685
+ children,
6686
+ disabled = false,
6687
+ tooltip,
6688
+ tooltipPlacement,
6689
+ color = "default",
6690
+ onSelect,
6691
+ setClose = () => void 0
6692
+ } = _b, props = __objRest(_b, [
6693
+ "children",
6694
+ "disabled",
6695
+ "tooltip",
6696
+ "tooltipPlacement",
6697
+ "color",
6698
+ "onSelect",
6699
+ "setClose"
6700
+ ]);
6701
+ const { state } = usePopoverContext();
6702
+ const handleSelect = () => {
6703
+ onSelect == null ? void 0 : onSelect();
6704
+ state.close();
6705
+ setClose();
6706
+ };
6707
+ const handleKeyDown = (event) => {
6708
+ const target = event.target;
6709
+ const parent = target.parentElement;
6710
+ const first = parent.firstChild;
6711
+ const last = parent.lastChild;
6712
+ const next = target.nextElementSibling;
6713
+ const prev = target.previousElementSibling;
6714
+ if (event.key === "ArrowUp") {
6715
+ prev ? prev.focus() : last.focus();
6716
+ } else if (event.key === "ArrowDown") {
6717
+ next ? next.focus() : first.focus();
6718
+ } else if (event.key === "Tab") {
6719
+ event.preventDefault();
6720
+ event.stopPropagation();
6721
+ } else if (event.key === "Home" || event.key === "PageUp") {
6722
+ first.focus();
6723
+ } else if (event.key === "End" || event.key === "PageDown") {
6724
+ last.focus();
6725
+ } else if (event.key === "Enter") {
6726
+ !disabled && handleSelect();
6659
6727
  }
6660
- if (isComponentType(child, import_collections.Section)) {
6661
- return getDisabledItemKeys(child.props.children);
6728
+ };
6729
+ const handleClick = (e) => {
6730
+ e.stopPropagation();
6731
+ if (!disabled) {
6732
+ handleSelect();
6662
6733
  }
6663
- return null;
6664
- });
6665
- return keys.flat().filter((key) => key !== null);
6734
+ };
6735
+ const itemContent = /* @__PURE__ */ import_react67.default.createElement("div", {
6736
+ className: tw("py-3 px-4")
6737
+ }, children);
6738
+ return /* @__PURE__ */ import_react67.default.createElement("li", __spreadProps(__spreadValues({
6739
+ role: "menuitem",
6740
+ tabIndex: -1,
6741
+ onClick: handleClick,
6742
+ onKeyDown: handleKeyDown
6743
+ }, props), {
6744
+ className: tw("typography-small flex items-center focus:ring-0", {
6745
+ "text-grey-70 cursor-pointer hover:bg-grey-0": !disabled,
6746
+ "text-grey-10 cursor-not-allowed": disabled,
6747
+ "text-primary-70 hover:text-primary-80": color === "danger" && !disabled
6748
+ })
6749
+ }), tooltip ? /* @__PURE__ */ import_react67.default.createElement(Tooltip, {
6750
+ content: tooltip,
6751
+ placement: tooltipPlacement,
6752
+ inline: false
6753
+ }, /* @__PURE__ */ import_react67.default.createElement("div", {
6754
+ tabIndex: 0,
6755
+ className: tw("grow")
6756
+ }, itemContent)) : itemContent);
6666
6757
  };
6758
+ Dropdown.Menu = DropdownMenu3;
6759
+ Dropdown.Item = DropdownItem;
6667
6760
 
6668
6761
  // src/molecules/EmptyState/EmptyState.tsx
6669
6762
  var import_react69 = __toESM(require("react"));
@@ -6879,7 +6972,7 @@ var Link2 = (props) => /* @__PURE__ */ import_react73.default.createElement(Link
6879
6972
 
6880
6973
  // src/molecules/List/List.tsx
6881
6974
  var import_react74 = __toESM(require("react"));
6882
- var List = ({ items, renderItem, container = import_react74.default.Fragment }) => {
6975
+ var List2 = ({ items, renderItem, container = import_react74.default.Fragment }) => {
6883
6976
  const Component = container;
6884
6977
  return /* @__PURE__ */ import_react74.default.createElement(Component, null, items.map(renderItem));
6885
6978
  };
@@ -7204,12 +7297,13 @@ var Tabs = createTabsComponent(Tab, TabItem, "Tabs", (children, selected) => /*
7204
7297
 
7205
7298
  // src/molecules/Modal/Modal.tsx
7206
7299
  var import_cross5 = __toESM(require_cross());
7207
- var Modal2 = (props) => {
7300
+ var Modal2 = (_a) => {
7301
+ var _b = _a, { closeOnEsc = true } = _b, props = __objRest(_b, ["closeOnEsc"]);
7208
7302
  const { open, onClose, size, portalContainer } = props;
7209
7303
  const ref = import_react77.default.useRef(null);
7210
7304
  const state = (0, import_overlays11.useOverlayTriggerState)({ isOpen: open, onOpenChange: (isOpen) => !isOpen && onClose() });
7211
7305
  const { modalProps, underlayProps } = (0, import_overlays10.useModalOverlay)(
7212
- { isDismissable: true, isKeyboardDismissDisabled: false },
7306
+ { isDismissable: true, isKeyboardDismissDisabled: !closeOnEsc },
7213
7307
  state,
7214
7308
  ref
7215
7309
  );
@@ -7868,12 +7962,140 @@ var NativeSelectSkeleton = () => /* @__PURE__ */ import_react81.default.createEl
7868
7962
  NativeSelect.Skeleton = NativeSelectSkeleton;
7869
7963
  NativeSelect.Skeleton.displayName = "NativeSelect.Skeleton";
7870
7964
 
7871
- // src/molecules/PageHeader/PageHeader.tsx
7965
+ // src/molecules/Navigation/Navigation.tsx
7966
+ var import_react83 = __toESM(require("react"));
7967
+
7968
+ // src/atoms/Navigation/Navigation.tsx
7872
7969
  var import_react82 = __toESM(require("react"));
7970
+ var Navigation = (_a) => {
7971
+ var _b = _a, { className, children } = _b, rest = __objRest(_b, ["className", "children"]);
7972
+ return /* @__PURE__ */ import_react82.default.createElement("nav", {
7973
+ className: classNames(tw("bg-grey-0 h-full"))
7974
+ }, /* @__PURE__ */ import_react82.default.createElement("ul", __spreadProps(__spreadValues({}, rest), {
7975
+ className: classNames(tw("flex flex-col h-full"), className),
7976
+ role: "menu"
7977
+ }), children));
7978
+ };
7979
+ var Header = (_a) => {
7980
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
7981
+ return /* @__PURE__ */ import_react82.default.createElement("li", __spreadProps(__spreadValues({}, rest), {
7982
+ role: "presentation",
7983
+ className: classNames(tw("px-6 py-5"), className)
7984
+ }));
7985
+ };
7986
+ var Footer = (_a) => {
7987
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
7988
+ return /* @__PURE__ */ import_react82.default.createElement("li", __spreadProps(__spreadValues({}, rest), {
7989
+ role: "presentation",
7990
+ className: classNames(tw("px-6 py-5 mt-auto"), className)
7991
+ }));
7992
+ };
7993
+ var Section2 = (_a) => {
7994
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
7995
+ return /* @__PURE__ */ import_react82.default.createElement("li", {
7996
+ role: "presentation"
7997
+ }, /* @__PURE__ */ import_react82.default.createElement("ul", __spreadProps(__spreadValues({}, rest), {
7998
+ role: "group",
7999
+ className: classNames(tw(" py-5 flex flex-col"), className)
8000
+ })));
8001
+ };
8002
+ var Divider3 = (_a) => {
8003
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
8004
+ return /* @__PURE__ */ import_react82.default.createElement("li", __spreadProps(__spreadValues({
8005
+ role: "separator"
8006
+ }, rest), {
8007
+ className: classNames(tw("border-t-2 border-grey-5"), className)
8008
+ }));
8009
+ };
8010
+ var Item5 = (_a) => {
8011
+ var _b = _a, { className, active } = _b, rest = __objRest(_b, ["className", "active"]);
8012
+ return /* @__PURE__ */ import_react82.default.createElement("li", {
8013
+ role: "presentation"
8014
+ }, /* @__PURE__ */ import_react82.default.createElement("a", __spreadProps(__spreadValues({}, rest), {
8015
+ role: "menuitem",
8016
+ className: classNames(
8017
+ tw("py-3 px-6 hover:bg-grey-5 cursor-pointer flex gap-4 items-center typography-small focusable", {
8018
+ "text-grey-60": !active,
8019
+ "text-primary-80": !!active
8020
+ }),
8021
+ className
8022
+ )
8023
+ })));
8024
+ };
8025
+ Navigation.Header = Header;
8026
+ Navigation.Footer = Footer;
8027
+ Navigation.Section = Section2;
8028
+ Navigation.Item = Item5;
8029
+ Navigation.Divider = Divider3;
8030
+
8031
+ // src/molecules/Navigation/Navigation.tsx
8032
+ var Navigation2 = (props) => /* @__PURE__ */ import_react83.default.createElement(Navigation, __spreadValues({}, props));
8033
+ var Item6 = (_a) => {
8034
+ var _b = _a, { children, icon } = _b, rest = __objRest(_b, ["children", "icon"]);
8035
+ return /* @__PURE__ */ import_react83.default.createElement(Navigation.Item, __spreadValues({}, rest), icon && /* @__PURE__ */ import_react83.default.createElement(InlineIcon, {
8036
+ icon
8037
+ }), children);
8038
+ };
8039
+ Navigation2.Item = Item6;
8040
+ Navigation2.Divider = Navigation.Divider;
8041
+ Navigation2.Footer = Navigation.Footer;
8042
+ Navigation2.Header = Navigation.Header;
8043
+ Navigation2.Section = Navigation.Section;
8044
+
8045
+ // src/molecules/PageHeader/PageHeader.tsx
8046
+ var import_react85 = __toESM(require("react"));
7873
8047
  var import_castArray3 = __toESM(require("lodash/castArray"));
7874
8048
  var import_omit13 = __toESM(require("lodash/omit"));
7875
- var PageHeader = ({
8049
+
8050
+ // src/atoms/PageHeader/PageHeader.tsx
8051
+ var import_react84 = __toESM(require("react"));
8052
+ var PageHeader = (_a) => {
8053
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8054
+ return /* @__PURE__ */ import_react84.default.createElement("div", __spreadValues({
8055
+ className: classNames(tw("flex flex-row gap-4 pb-6"), className)
8056
+ }, rest), children);
8057
+ };
8058
+ PageHeader.Container = (_a) => {
8059
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8060
+ return /* @__PURE__ */ import_react84.default.createElement("div", __spreadValues({
8061
+ className: classNames(tw("flex flex-col grow gap-0"), className)
8062
+ }, rest), children);
8063
+ };
8064
+ PageHeader.TitleContainer = (_a) => {
8065
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8066
+ return /* @__PURE__ */ import_react84.default.createElement("div", __spreadValues({
8067
+ className: classNames(tw("flex flex-col justify-center gap-2"), className)
8068
+ }, rest), children);
8069
+ };
8070
+ PageHeader.Title = (_a) => {
8071
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
8072
+ return /* @__PURE__ */ import_react84.default.createElement(Typography2.Heading, __spreadProps(__spreadValues({}, rest), {
8073
+ color: "grey-100"
8074
+ }), children);
8075
+ };
8076
+ PageHeader.Subtitle = (_a) => {
8077
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
8078
+ return /* @__PURE__ */ import_react84.default.createElement(Typography2.Small, __spreadProps(__spreadValues({}, rest), {
8079
+ color: "grey-70"
8080
+ }), children);
8081
+ };
8082
+ PageHeader.Chips = (_a) => {
8083
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8084
+ return /* @__PURE__ */ import_react84.default.createElement("div", __spreadValues({
8085
+ className: classNames(tw("flex gap-3"), className)
8086
+ }, rest), children);
8087
+ };
8088
+ PageHeader.Actions = (_a) => {
8089
+ var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8090
+ return /* @__PURE__ */ import_react84.default.createElement("div", __spreadValues({
8091
+ className: classNames(tw("flex flex-row gap-4 self-start"), className)
8092
+ }, rest), children);
8093
+ };
8094
+
8095
+ // src/molecules/PageHeader/PageHeader.tsx
8096
+ var PageHeader2 = ({
7876
8097
  title,
8098
+ subtitle,
7877
8099
  image,
7878
8100
  imageAlt,
7879
8101
  primaryAction,
@@ -7881,48 +8103,32 @@ var PageHeader = ({
7881
8103
  chips = [],
7882
8104
  breadcrumbs
7883
8105
  }) => {
7884
- return /* @__PURE__ */ import_react82.default.createElement(Flexbox, {
7885
- direction: "row",
7886
- gap: "4",
7887
- paddingBottom: "6"
7888
- }, /* @__PURE__ */ import_react82.default.createElement(Flexbox, {
7889
- className: tw("grow"),
7890
- direction: "column",
7891
- gap: "0"
7892
- }, breadcrumbs && /* @__PURE__ */ import_react82.default.createElement(Breadcrumbs, null, breadcrumbs), /* @__PURE__ */ import_react82.default.createElement(Flexbox, {
8106
+ return /* @__PURE__ */ import_react85.default.createElement(PageHeader, null, /* @__PURE__ */ import_react85.default.createElement(PageHeader.Container, null, breadcrumbs && /* @__PURE__ */ import_react85.default.createElement(Breadcrumbs, null, breadcrumbs), /* @__PURE__ */ import_react85.default.createElement(Flexbox, {
7893
8107
  gap: "5"
7894
- }, image && /* @__PURE__ */ import_react82.default.createElement("img", {
8108
+ }, image && /* @__PURE__ */ import_react85.default.createElement("img", {
7895
8109
  src: image,
7896
8110
  alt: imageAlt,
7897
8111
  className: tw("w-[56px] h-[56px]")
7898
- }), /* @__PURE__ */ import_react82.default.createElement(Flexbox, {
7899
- direction: "column",
7900
- justifyContent: "center"
7901
- }, /* @__PURE__ */ import_react82.default.createElement(Typography2.Heading, null, title), chips.length > 0 && /* @__PURE__ */ import_react82.default.createElement(Flexbox, {
7902
- gap: "3"
7903
- }, chips.map((chip) => /* @__PURE__ */ import_react82.default.createElement(Chip2, {
8112
+ }), /* @__PURE__ */ import_react85.default.createElement(PageHeader.TitleContainer, null, /* @__PURE__ */ import_react85.default.createElement(PageHeader.Title, null, title), chips.length > 0 && /* @__PURE__ */ import_react85.default.createElement(PageHeader.Chips, null, chips.map((chip) => /* @__PURE__ */ import_react85.default.createElement(Chip2, {
7904
8113
  key: chip,
7905
8114
  dense: true,
7906
8115
  text: chip
7907
- })))))), (secondaryActions || primaryAction) && /* @__PURE__ */ import_react82.default.createElement(Flexbox, {
7908
- gap: "4",
7909
- className: tw("self-start")
7910
- }, secondaryActions && (0, import_castArray3.default)(secondaryActions).filter(Boolean).map((_a) => {
8116
+ }))), subtitle && /* @__PURE__ */ import_react85.default.createElement(PageHeader.Subtitle, null, subtitle)))), (secondaryActions || primaryAction) && /* @__PURE__ */ import_react85.default.createElement(PageHeader.Actions, null, secondaryActions && (0, import_castArray3.default)(secondaryActions).filter(Boolean).map((_a) => {
7911
8117
  var _b = _a, { text } = _b, action = __objRest(_b, ["text"]);
7912
- return /* @__PURE__ */ import_react82.default.createElement(SecondaryButton, __spreadValues({
8118
+ return /* @__PURE__ */ import_react85.default.createElement(SecondaryButton, __spreadValues({
7913
8119
  key: text
7914
8120
  }, action), text);
7915
- }), primaryAction && /* @__PURE__ */ import_react82.default.createElement(PrimaryButton, __spreadValues({
8121
+ }), primaryAction && /* @__PURE__ */ import_react85.default.createElement(PrimaryButton, __spreadValues({
7916
8122
  key: primaryAction.text
7917
8123
  }, (0, import_omit13.default)(primaryAction, "text")), primaryAction.text)));
7918
8124
  };
7919
8125
 
7920
8126
  // src/molecules/Pagination/Pagination.tsx
7921
- var import_react84 = __toESM(require("react"));
8127
+ var import_react87 = __toESM(require("react"));
7922
8128
  var import_clamp = __toESM(require("lodash/clamp"));
7923
8129
 
7924
8130
  // src/molecules/Select/Select.tsx
7925
- var import_react83 = __toESM(require("react"));
8131
+ var import_react86 = __toESM(require("react"));
7926
8132
  var import_downshift3 = require("downshift");
7927
8133
  var import_defaults = __toESM(require("lodash/defaults"));
7928
8134
  var import_isArray = __toESM(require("lodash/isArray"));
@@ -7938,10 +8144,10 @@ var hasOptionGroups = (val) => {
7938
8144
  };
7939
8145
  var defaultRenderOption = (item, props, { selectedItem }, { getOptionKey, getValue, optionToString = getOptionLabelBuiltin }) => {
7940
8146
  var _a, _b;
7941
- return /* @__PURE__ */ import_react83.default.createElement(Select.Item, __spreadValues({
8147
+ return /* @__PURE__ */ import_react86.default.createElement(Select.Item, __spreadValues({
7942
8148
  key: (_b = (_a = getOptionKey == null ? void 0 : getOptionKey(item)) != null ? _a : getValue == null ? void 0 : getValue(item)) != null ? _b : optionToString(item),
7943
8149
  selected: item === selectedItem
7944
- }, props), hasIconProperty(item) && /* @__PURE__ */ import_react83.default.createElement(InlineIcon, {
8150
+ }, props), hasIconProperty(item) && /* @__PURE__ */ import_react86.default.createElement(InlineIcon, {
7945
8151
  icon: item.icon
7946
8152
  }), optionToString(item));
7947
8153
  };
@@ -8012,9 +8218,9 @@ var _SelectBase = (props) => {
8012
8218
  "children",
8013
8219
  "labelWrapper"
8014
8220
  ]);
8015
- const [hasFocus, setFocus] = (0, import_react83.useState)(false);
8016
- const targetRef = (0, import_react83.useRef)(null);
8017
- const menuRef = (0, import_react83.useRef)(null);
8221
+ const [hasFocus, setFocus] = (0, import_react86.useState)(false);
8222
+ const targetRef = (0, import_react86.useRef)(null);
8223
+ const menuRef = (0, import_react86.useRef)(null);
8018
8224
  const items = hasOptionGroups(options) ? options.flatMap((g) => g.options) : options;
8019
8225
  const findItemByValue = (val) => {
8020
8226
  if (val === null) {
@@ -8060,13 +8266,13 @@ var _SelectBase = (props) => {
8060
8266
  },
8061
8267
  withDefaults
8062
8268
  );
8063
- const renderGroup = (group) => /* @__PURE__ */ import_react83.default.createElement(import_react83.default.Fragment, {
8269
+ const renderGroup = (group) => /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, {
8064
8270
  key: group.label
8065
- }, /* @__PURE__ */ import_react83.default.createElement(Select.Group, null, group.label), group.options.map((opt) => renderItem(opt, items.indexOf(opt))));
8066
- const input = /* @__PURE__ */ import_react83.default.createElement(Select.InputContainer, __spreadProps(__spreadValues({}, getToggleButtonProps({ disabled: disabled || readOnly, ref: targetRef })), {
8271
+ }, /* @__PURE__ */ import_react86.default.createElement(Select.Group, null, group.label), group.options.map((opt) => renderItem(opt, items.indexOf(opt))));
8272
+ const input = /* @__PURE__ */ import_react86.default.createElement(Select.InputContainer, __spreadProps(__spreadValues({}, getToggleButtonProps({ disabled: disabled || readOnly, ref: targetRef })), {
8067
8273
  variant: disabled ? "disabled" : !valid ? "error" : readOnly ? "readOnly" : hasFocus ? "focused" : "default",
8068
8274
  tabIndex: 0
8069
- }), /* @__PURE__ */ import_react83.default.createElement(Select.Input, __spreadProps(__spreadValues({
8275
+ }), /* @__PURE__ */ import_react86.default.createElement(Select.Input, __spreadProps(__spreadValues({
8070
8276
  id,
8071
8277
  name
8072
8278
  }, rest), {
@@ -8078,26 +8284,26 @@ var _SelectBase = (props) => {
8078
8284
  tabIndex: -1,
8079
8285
  onFocus: () => setFocus(true),
8080
8286
  onBlur: () => setFocus(false)
8081
- })), !readOnly && /* @__PURE__ */ import_react83.default.createElement(Select.Toggle, {
8287
+ })), !readOnly && /* @__PURE__ */ import_react86.default.createElement(Select.Toggle, {
8082
8288
  disabled,
8083
8289
  isOpen,
8084
8290
  tabIndex: -1
8085
8291
  }));
8086
8292
  const menuProps = getMenuProps({ ref: menuRef }, { suppressRefError: !isOpen });
8087
- return /* @__PURE__ */ import_react83.default.createElement("div", {
8293
+ return /* @__PURE__ */ import_react86.default.createElement("div", {
8088
8294
  className: tw("relative")
8089
- }, labelWrapper ? import_react83.default.cloneElement(labelWrapper, { children: input }) : input, isOpen && /* @__PURE__ */ import_react83.default.createElement(PopoverOverlay, {
8295
+ }, labelWrapper ? import_react86.default.cloneElement(labelWrapper, { children: input }) : input, isOpen && /* @__PURE__ */ import_react86.default.createElement(PopoverOverlay, {
8090
8296
  state,
8091
8297
  triggerRef: targetRef,
8092
8298
  placement: "bottom-left",
8093
8299
  shouldFlip: true,
8094
8300
  style: { width: (_b = targetRef.current) == null ? void 0 : _b.offsetWidth }
8095
- }, /* @__PURE__ */ import_react83.default.createElement(Select.Menu, __spreadValues({
8301
+ }, /* @__PURE__ */ import_react86.default.createElement(Select.Menu, __spreadValues({
8096
8302
  ref: menuRef,
8097
8303
  maxHeight
8098
- }, menuProps), options.length === 0 && /* @__PURE__ */ import_react83.default.createElement(Select.EmptyStateContainer, null, emptyState), options.length > 0 && !hasOptionGroups(options) && options.map(renderItem), options.length > 0 && hasOptionGroups(options) && options.map(renderGroup), actions.length > 0 && /* @__PURE__ */ import_react83.default.createElement(import_react83.default.Fragment, null, /* @__PURE__ */ import_react83.default.createElement(Select.Divider, {
8304
+ }, menuProps), options.length === 0 && /* @__PURE__ */ import_react86.default.createElement(Select.EmptyStateContainer, null, emptyState), options.length > 0 && !hasOptionGroups(options) && options.map(renderItem), options.length > 0 && hasOptionGroups(options) && options.map(renderGroup), actions.length > 0 && /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement(Select.Divider, {
8099
8305
  onMouseOver: () => setHighlightedIndex(-1)
8100
- }), actions.map((act, index) => /* @__PURE__ */ import_react83.default.createElement(Select.ActionItem, __spreadProps(__spreadValues({
8306
+ }), actions.map((act, index) => /* @__PURE__ */ import_react86.default.createElement(Select.ActionItem, __spreadProps(__spreadValues({
8101
8307
  key: `${index}`
8102
8308
  }, act), {
8103
8309
  onMouseOver: () => setHighlightedIndex(-1),
@@ -8107,10 +8313,10 @@ var _SelectBase = (props) => {
8107
8313
  }
8108
8314
  }), act.label))))));
8109
8315
  };
8110
- var SelectBase = (props) => /* @__PURE__ */ import_react83.default.createElement(_SelectBase, __spreadProps(__spreadValues({}, props), {
8316
+ var SelectBase = (props) => /* @__PURE__ */ import_react86.default.createElement(_SelectBase, __spreadProps(__spreadValues({}, props), {
8111
8317
  labelWrapper: void 0
8112
8318
  }));
8113
- var SelectBaseSkeleton = () => /* @__PURE__ */ import_react83.default.createElement(Skeleton, {
8319
+ var SelectBaseSkeleton = () => /* @__PURE__ */ import_react86.default.createElement(Skeleton, {
8114
8320
  height: 38
8115
8321
  });
8116
8322
  SelectBase.Skeleton = SelectBaseSkeleton;
@@ -8121,26 +8327,26 @@ var Select2 = (_a) => {
8121
8327
  "options"
8122
8328
  ]);
8123
8329
  var _a2;
8124
- const id = (0, import_react83.useRef)((_a2 = props.id) != null ? _a2 : `select-${(0, import_uniqueId7.default)()}`);
8330
+ const id = (0, import_react86.useRef)((_a2 = props.id) != null ? _a2 : `select-${(0, import_uniqueId7.default)()}`);
8125
8331
  const errorMessageId = (0, import_uniqueId7.default)();
8126
8332
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
8127
8333
  const labelProps = getLabelControlProps(props);
8128
8334
  const baseProps = (0, import_omit14.default)(props, Object.keys(labelProps));
8129
8335
  const legacyError = labelProps.error !== void 0 && labelProps.valid === false;
8130
8336
  const variant = !labelProps.valid || legacyError ? "error" : labelProps.disabled ? "disabled" : "default";
8131
- const label = /* @__PURE__ */ import_react83.default.createElement(Label, __spreadValues({
8337
+ const label = /* @__PURE__ */ import_react86.default.createElement(Label, __spreadValues({
8132
8338
  id: `${id.current}-label`,
8133
8339
  htmlFor: `${id.current}-input`,
8134
8340
  variant,
8135
8341
  messageId: errorMessageId
8136
8342
  }, labelProps));
8137
- return /* @__PURE__ */ import_react83.default.createElement(FormControl, null, /* @__PURE__ */ import_react83.default.createElement(_SelectBase, __spreadProps(__spreadValues(__spreadValues({}, baseProps), errorProps), {
8343
+ return /* @__PURE__ */ import_react86.default.createElement(FormControl, null, /* @__PURE__ */ import_react86.default.createElement(_SelectBase, __spreadProps(__spreadValues(__spreadValues({}, baseProps), errorProps), {
8138
8344
  id: `${id.current}-input`,
8139
8345
  options,
8140
8346
  disabled: props.disabled,
8141
8347
  valid: props.valid,
8142
8348
  labelWrapper: label
8143
- })), /* @__PURE__ */ import_react83.default.createElement(HelperText, {
8349
+ })), /* @__PURE__ */ import_react86.default.createElement(HelperText, {
8144
8350
  messageId: errorMessageId,
8145
8351
  error: !labelProps.valid,
8146
8352
  helperText: labelProps.helperText,
@@ -8149,7 +8355,7 @@ var Select2 = (_a) => {
8149
8355
  reserveSpaceForError: labelProps.reserveSpaceForError
8150
8356
  }));
8151
8357
  };
8152
- var SelectSkeleton = () => /* @__PURE__ */ import_react83.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react83.default.createElement(SelectBase.Skeleton, null));
8358
+ var SelectSkeleton = () => /* @__PURE__ */ import_react86.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react86.default.createElement(SelectBase.Skeleton, null));
8153
8359
  Select2.Skeleton = SelectSkeleton;
8154
8360
  Select2.Skeleton.displayName = "Select.Skeleton";
8155
8361
 
@@ -8168,23 +8374,23 @@ var Pagination = ({
8168
8374
  pageSizes,
8169
8375
  onPageSizeChange
8170
8376
  }) => {
8171
- const [value, setValue] = import_react84.default.useState(currentPage);
8172
- import_react84.default.useEffect(() => {
8377
+ const [value, setValue] = import_react87.default.useState(currentPage);
8378
+ import_react87.default.useEffect(() => {
8173
8379
  setValue(currentPage);
8174
8380
  }, [currentPage]);
8175
- return /* @__PURE__ */ import_react84.default.createElement(Box, {
8381
+ return /* @__PURE__ */ import_react87.default.createElement(Box, {
8176
8382
  className: tw("grid grid-cols-[200px_1fr_200px]"),
8177
8383
  backgroundColor: "grey-0",
8178
8384
  padding: "4"
8179
- }, pageSizes && onPageSizeChange && typeof pageSize === "number" ? /* @__PURE__ */ import_react84.default.createElement(Box, {
8385
+ }, pageSizes && onPageSizeChange && typeof pageSize === "number" ? /* @__PURE__ */ import_react87.default.createElement(Box, {
8180
8386
  display: "flex",
8181
8387
  alignItems: "center",
8182
8388
  gap: "4"
8183
- }, /* @__PURE__ */ import_react84.default.createElement(Typography2.Small, {
8389
+ }, /* @__PURE__ */ import_react87.default.createElement(Typography2.Small, {
8184
8390
  color: "grey-50"
8185
- }, "Items per page "), /* @__PURE__ */ import_react84.default.createElement("div", {
8391
+ }, "Items per page "), /* @__PURE__ */ import_react87.default.createElement("div", {
8186
8392
  className: tw("max-w-[70px]")
8187
- }, /* @__PURE__ */ import_react84.default.createElement(SelectBase, {
8393
+ }, /* @__PURE__ */ import_react87.default.createElement(SelectBase, {
8188
8394
  options: pageSizes.map((size) => size.toString()),
8189
8395
  value: pageSize.toString(),
8190
8396
  onChange: (size) => {
@@ -8195,26 +8401,26 @@ var Pagination = ({
8195
8401
  }
8196
8402
  }
8197
8403
  }
8198
- }))) : /* @__PURE__ */ import_react84.default.createElement("div", null), /* @__PURE__ */ import_react84.default.createElement(Box, {
8404
+ }))) : /* @__PURE__ */ import_react87.default.createElement("div", null), /* @__PURE__ */ import_react87.default.createElement(Box, {
8199
8405
  display: "flex",
8200
8406
  justifyContent: "center",
8201
8407
  alignItems: "center",
8202
8408
  className: tw("grow")
8203
- }, /* @__PURE__ */ import_react84.default.createElement(IconButton, {
8409
+ }, /* @__PURE__ */ import_react87.default.createElement(IconButton, {
8204
8410
  "aria-label": "First",
8205
8411
  onClick: () => onPageChange(1),
8206
8412
  icon: import_chevronBackward.default,
8207
8413
  disabled: !hasPreviousPage
8208
- }), /* @__PURE__ */ import_react84.default.createElement(IconButton, {
8414
+ }), /* @__PURE__ */ import_react87.default.createElement(IconButton, {
8209
8415
  "aria-label": "Previous",
8210
8416
  onClick: () => onPageChange(currentPage - 1),
8211
8417
  icon: import_chevronLeft3.default,
8212
8418
  disabled: !hasPreviousPage
8213
- }), /* @__PURE__ */ import_react84.default.createElement(Box, {
8419
+ }), /* @__PURE__ */ import_react87.default.createElement(Box, {
8214
8420
  paddingX: "4"
8215
- }, /* @__PURE__ */ import_react84.default.createElement(Typography2.Small, {
8421
+ }, /* @__PURE__ */ import_react87.default.createElement(Typography2.Small, {
8216
8422
  color: "grey-60"
8217
- }, "Page")), /* @__PURE__ */ import_react84.default.createElement(InputBase, {
8423
+ }, "Page")), /* @__PURE__ */ import_react87.default.createElement(InputBase, {
8218
8424
  className: classNames(tw("text-center max-w-[40px]"), "no-arrows"),
8219
8425
  type: "number",
8220
8426
  min: 1,
@@ -8231,67 +8437,67 @@ var Pagination = ({
8231
8437
  const newPage = !isNaN(numberValue) ? (0, import_clamp.default)(numberValue, 1, totalPages) : 1;
8232
8438
  onPageChange(newPage);
8233
8439
  }
8234
- }), /* @__PURE__ */ import_react84.default.createElement(Box, {
8440
+ }), /* @__PURE__ */ import_react87.default.createElement(Box, {
8235
8441
  paddingX: "4"
8236
- }, /* @__PURE__ */ import_react84.default.createElement(Typography2.Small, {
8442
+ }, /* @__PURE__ */ import_react87.default.createElement(Typography2.Small, {
8237
8443
  color: "grey-60"
8238
- }, "of ", totalPages)), /* @__PURE__ */ import_react84.default.createElement(IconButton, {
8444
+ }, "of ", totalPages)), /* @__PURE__ */ import_react87.default.createElement(IconButton, {
8239
8445
  "aria-label": "Next",
8240
8446
  onClick: () => onPageChange(currentPage + 1),
8241
8447
  icon: import_chevronRight3.default,
8242
8448
  disabled: !hasNextPage
8243
- }), /* @__PURE__ */ import_react84.default.createElement(IconButton, {
8449
+ }), /* @__PURE__ */ import_react87.default.createElement(IconButton, {
8244
8450
  "aria-label": "Last",
8245
8451
  onClick: () => onPageChange(totalPages),
8246
8452
  icon: import_chevronForward.default,
8247
8453
  disabled: !hasNextPage
8248
- })), /* @__PURE__ */ import_react84.default.createElement("div", null));
8454
+ })), /* @__PURE__ */ import_react87.default.createElement("div", null));
8249
8455
  };
8250
8456
 
8251
8457
  // src/molecules/PopoverDialog/PopoverDialog.tsx
8252
- var import_react86 = __toESM(require("react"));
8458
+ var import_react89 = __toESM(require("react"));
8253
8459
  var import_omit15 = __toESM(require("lodash/omit"));
8254
8460
 
8255
8461
  // src/atoms/PopoverDialog/PopoverDialog.tsx
8256
- var import_react85 = __toESM(require("react"));
8257
- var Header = (_a) => {
8462
+ var import_react88 = __toESM(require("react"));
8463
+ var Header2 = (_a) => {
8258
8464
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8259
- return /* @__PURE__ */ import_react85.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8465
+ return /* @__PURE__ */ import_react88.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8260
8466
  className: classNames(tw("p-5 gap-3 flex items-center"), className)
8261
8467
  }), children);
8262
8468
  };
8263
8469
  var Title = (_a) => {
8264
8470
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8265
- return /* @__PURE__ */ import_react85.default.createElement(Typography, __spreadProps(__spreadValues({}, rest), {
8471
+ return /* @__PURE__ */ import_react88.default.createElement(Typography, __spreadProps(__spreadValues({}, rest), {
8266
8472
  htmlTag: "h1",
8267
8473
  variant: "small-strong"
8268
8474
  }), children);
8269
8475
  };
8270
8476
  var Body = (_a) => {
8271
8477
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8272
- return /* @__PURE__ */ import_react85.default.createElement(Typography, __spreadProps(__spreadValues({}, rest), {
8478
+ return /* @__PURE__ */ import_react88.default.createElement(Typography, __spreadProps(__spreadValues({}, rest), {
8273
8479
  htmlTag: "div",
8274
8480
  variant: "caption",
8275
8481
  className: classNames(tw("px-5 overflow-y-auto"), className)
8276
8482
  }), children);
8277
8483
  };
8278
- var Footer = (_a) => {
8484
+ var Footer2 = (_a) => {
8279
8485
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8280
- return /* @__PURE__ */ import_react85.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8486
+ return /* @__PURE__ */ import_react88.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8281
8487
  className: classNames(tw("p-5"), className)
8282
8488
  }), children);
8283
8489
  };
8284
8490
  var Actions2 = (_a) => {
8285
8491
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8286
- return /* @__PURE__ */ import_react85.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8492
+ return /* @__PURE__ */ import_react88.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8287
8493
  className: classNames(tw("flex gap-4"), className)
8288
8494
  }), children);
8289
8495
  };
8290
8496
  var PopoverDialog = {
8291
- Header,
8497
+ Header: Header2,
8292
8498
  Title,
8293
8499
  Body,
8294
- Footer,
8500
+ Footer: Footer2,
8295
8501
  Actions: Actions2
8296
8502
  };
8297
8503
 
@@ -8299,13 +8505,13 @@ var PopoverDialog = {
8299
8505
  var PopoverDialog2 = ({ placement, open, title, secondaryAction, primaryAction, children }) => {
8300
8506
  const wrapPromptWithBody = (child) => {
8301
8507
  if (isComponentType(child, PopoverDialog2.Prompt)) {
8302
- return /* @__PURE__ */ import_react86.default.createElement(Popover2.Panel, {
8508
+ return /* @__PURE__ */ import_react89.default.createElement(Popover2.Panel, {
8303
8509
  className: tw("max-w-[300px]")
8304
- }, /* @__PURE__ */ import_react86.default.createElement(PopoverDialog.Header, null, /* @__PURE__ */ import_react86.default.createElement(PopoverDialog.Title, null, title)), child, /* @__PURE__ */ import_react86.default.createElement(PopoverDialog.Footer, null, /* @__PURE__ */ import_react86.default.createElement(PopoverDialog.Actions, null, secondaryAction && /* @__PURE__ */ import_react86.default.createElement(Popover2.Button, __spreadValues({
8510
+ }, /* @__PURE__ */ import_react89.default.createElement(PopoverDialog.Header, null, /* @__PURE__ */ import_react89.default.createElement(PopoverDialog.Title, null, title)), child, /* @__PURE__ */ import_react89.default.createElement(PopoverDialog.Footer, null, /* @__PURE__ */ import_react89.default.createElement(PopoverDialog.Actions, null, secondaryAction && /* @__PURE__ */ import_react89.default.createElement(Popover2.Button, __spreadValues({
8305
8511
  kind: "secondary-ghost",
8306
8512
  key: secondaryAction.text,
8307
8513
  dense: true
8308
- }, (0, import_omit15.default)(secondaryAction, "text")), secondaryAction.text), /* @__PURE__ */ import_react86.default.createElement(Popover2.Button, __spreadValues({
8514
+ }, (0, import_omit15.default)(secondaryAction, "text")), secondaryAction.text), /* @__PURE__ */ import_react89.default.createElement(Popover2.Button, __spreadValues({
8309
8515
  kind: "ghost",
8310
8516
  key: primaryAction.text,
8311
8517
  dense: true
@@ -8313,15 +8519,15 @@ var PopoverDialog2 = ({ placement, open, title, secondaryAction, primaryAction,
8313
8519
  }
8314
8520
  return child;
8315
8521
  };
8316
- return /* @__PURE__ */ import_react86.default.createElement(Popover2, {
8522
+ return /* @__PURE__ */ import_react89.default.createElement(Popover2, {
8317
8523
  type: "dialog",
8318
8524
  isOpen: open,
8319
8525
  placement,
8320
8526
  containFocus: true
8321
- }, import_react86.default.Children.map(children, wrapPromptWithBody));
8527
+ }, import_react89.default.Children.map(children, wrapPromptWithBody));
8322
8528
  };
8323
8529
  PopoverDialog2.Trigger = Popover2.Trigger;
8324
- var Prompt = ({ children }) => /* @__PURE__ */ import_react86.default.createElement(PopoverDialog.Body, null, children);
8530
+ var Prompt = ({ children }) => /* @__PURE__ */ import_react89.default.createElement(PopoverDialog.Body, null, children);
8325
8531
  Prompt.displayName = "PopoverDialog.Prompt";
8326
8532
  PopoverDialog2.Prompt = Prompt;
8327
8533
 
@@ -8330,14 +8536,14 @@ var import_react_dom = require("react-dom");
8330
8536
  var Portal = ({ children, to }) => (0, import_react_dom.createPortal)(children, to);
8331
8537
 
8332
8538
  // src/molecules/ProgressBar/ProgressBar.tsx
8333
- var import_react88 = __toESM(require("react"));
8539
+ var import_react91 = __toESM(require("react"));
8334
8540
 
8335
8541
  // src/atoms/ProgressBar/ProgressBar.tsx
8336
- var import_react87 = __toESM(require("react"));
8542
+ var import_react90 = __toESM(require("react"));
8337
8543
  var import_clamp2 = __toESM(require("lodash/clamp"));
8338
8544
  var ProgressBar = (_a) => {
8339
8545
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8340
- return /* @__PURE__ */ import_react87.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8546
+ return /* @__PURE__ */ import_react90.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8341
8547
  className: classNames(
8342
8548
  tw("relative flex items-center w-full bg-grey-0 h-2 rounded-full overflow-hidden"),
8343
8549
  className
@@ -8353,7 +8559,7 @@ var STATUS_COLORS = {
8353
8559
  ProgressBar.Indicator = (_a) => {
8354
8560
  var _b = _a, { min, max, value, "aria-label": ariaLabel, status, className } = _b, rest = __objRest(_b, ["min", "max", "value", "aria-label", "status", "className"]);
8355
8561
  const completedPercentage = (0, import_clamp2.default)((value - min) / (max - min) * 100, 0, 100);
8356
- return /* @__PURE__ */ import_react87.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8562
+ return /* @__PURE__ */ import_react90.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8357
8563
  className: classNames(
8358
8564
  tw("h-2 rounded-full transition-all ease-in-out delay-150"),
8359
8565
  STATUS_COLORS[status],
@@ -8369,11 +8575,11 @@ ProgressBar.Indicator = (_a) => {
8369
8575
  };
8370
8576
  ProgressBar.Labels = (_a) => {
8371
8577
  var _b = _a, { children, startLabel, endLabel, className } = _b, rest = __objRest(_b, ["children", "startLabel", "endLabel", "className"]);
8372
- return /* @__PURE__ */ import_react87.default.createElement("div", {
8578
+ return /* @__PURE__ */ import_react90.default.createElement("div", {
8373
8579
  className: classNames(tw("flex flex-row"), className)
8374
- }, /* @__PURE__ */ import_react87.default.createElement("span", __spreadProps(__spreadValues({}, rest), {
8580
+ }, /* @__PURE__ */ import_react90.default.createElement("span", __spreadProps(__spreadValues({}, rest), {
8375
8581
  className: tw("grow text-grey-70 typography-caption")
8376
- }), startLabel), /* @__PURE__ */ import_react87.default.createElement("span", __spreadProps(__spreadValues({}, rest), {
8582
+ }), startLabel), /* @__PURE__ */ import_react90.default.createElement("span", __spreadProps(__spreadValues({}, rest), {
8377
8583
  className: tw("grow text-grey-70 typography-caption text-right")
8378
8584
  }), endLabel));
8379
8585
  };
@@ -8391,7 +8597,7 @@ var ProgressBar2 = (props) => {
8391
8597
  if (min > max) {
8392
8598
  throw new Error("`min` value provided to `ProgressBar` is greater than `max` value.");
8393
8599
  }
8394
- const progress = /* @__PURE__ */ import_react88.default.createElement(ProgressBar, null, /* @__PURE__ */ import_react88.default.createElement(ProgressBar.Indicator, {
8600
+ const progress = /* @__PURE__ */ import_react91.default.createElement(ProgressBar, null, /* @__PURE__ */ import_react91.default.createElement(ProgressBar.Indicator, {
8395
8601
  status: value === max ? completedStatus : progresStatus,
8396
8602
  min,
8397
8603
  max,
@@ -8401,13 +8607,13 @@ var ProgressBar2 = (props) => {
8401
8607
  if (props.dense) {
8402
8608
  return progress;
8403
8609
  }
8404
- return /* @__PURE__ */ import_react88.default.createElement("div", null, progress, /* @__PURE__ */ import_react88.default.createElement(ProgressBar.Labels, {
8610
+ return /* @__PURE__ */ import_react91.default.createElement("div", null, progress, /* @__PURE__ */ import_react91.default.createElement(ProgressBar.Labels, {
8405
8611
  className: tw("py-2"),
8406
8612
  startLabel: props.startLabel,
8407
8613
  endLabel: props.endLabel
8408
8614
  }));
8409
8615
  };
8410
- var ProgressBarSkeleton = () => /* @__PURE__ */ import_react88.default.createElement(Skeleton, {
8616
+ var ProgressBarSkeleton = () => /* @__PURE__ */ import_react91.default.createElement(Skeleton, {
8411
8617
  height: 4,
8412
8618
  display: "block"
8413
8619
  });
@@ -8415,13 +8621,13 @@ ProgressBar2.Skeleton = ProgressBarSkeleton;
8415
8621
  ProgressBar2.Skeleton.displayName = "ProgressBar.Skeleton";
8416
8622
 
8417
8623
  // src/molecules/RadioButton/RadioButton.tsx
8418
- var import_react89 = __toESM(require("react"));
8419
- var RadioButton2 = import_react89.default.forwardRef(
8624
+ var import_react92 = __toESM(require("react"));
8625
+ var RadioButton2 = import_react92.default.forwardRef(
8420
8626
  (_a, ref) => {
8421
8627
  var _b = _a, { name, id, readOnly = false, disabled = false, caption, children, "aria-label": ariaLabel } = _b, props = __objRest(_b, ["name", "id", "readOnly", "disabled", "caption", "children", "aria-label"]);
8422
8628
  var _a2;
8423
8629
  const isChecked = (_a2 = props.checked) != null ? _a2 : props.defaultChecked;
8424
- return !readOnly || isChecked ? /* @__PURE__ */ import_react89.default.createElement(ControlLabel, {
8630
+ return !readOnly || isChecked ? /* @__PURE__ */ import_react92.default.createElement(ControlLabel, {
8425
8631
  htmlFor: id,
8426
8632
  label: children,
8427
8633
  "aria-label": ariaLabel,
@@ -8429,7 +8635,7 @@ var RadioButton2 = import_react89.default.forwardRef(
8429
8635
  readOnly,
8430
8636
  disabled,
8431
8637
  style: { gap: "0 8px" }
8432
- }, !readOnly && /* @__PURE__ */ import_react89.default.createElement(RadioButton, __spreadProps(__spreadValues({
8638
+ }, !readOnly && /* @__PURE__ */ import_react92.default.createElement(RadioButton, __spreadProps(__spreadValues({
8433
8639
  id,
8434
8640
  ref,
8435
8641
  name
@@ -8440,12 +8646,12 @@ var RadioButton2 = import_react89.default.forwardRef(
8440
8646
  }
8441
8647
  );
8442
8648
  RadioButton2.displayName = "RadioButton";
8443
- var RadioButtonSkeleton = () => /* @__PURE__ */ import_react89.default.createElement("div", {
8649
+ var RadioButtonSkeleton = () => /* @__PURE__ */ import_react92.default.createElement("div", {
8444
8650
  className: tw("flex gap-3")
8445
- }, /* @__PURE__ */ import_react89.default.createElement(Skeleton, {
8651
+ }, /* @__PURE__ */ import_react92.default.createElement(Skeleton, {
8446
8652
  height: 20,
8447
8653
  width: 20
8448
- }), /* @__PURE__ */ import_react89.default.createElement(Skeleton, {
8654
+ }), /* @__PURE__ */ import_react92.default.createElement(Skeleton, {
8449
8655
  height: 20,
8450
8656
  width: 150
8451
8657
  }));
@@ -8453,10 +8659,10 @@ RadioButton2.Skeleton = RadioButtonSkeleton;
8453
8659
  RadioButton2.Skeleton.displayName = "RadioButton.Skeleton";
8454
8660
 
8455
8661
  // src/molecules/RadioButtonGroup/RadioButtonGroup.tsx
8456
- var import_react90 = __toESM(require("react"));
8662
+ var import_react93 = __toESM(require("react"));
8457
8663
  var import_uniqueId8 = __toESM(require("lodash/uniqueId"));
8458
8664
  var isRadioButton = (c) => {
8459
- return import_react90.default.isValidElement(c) && c.type === RadioButton2;
8665
+ return import_react93.default.isValidElement(c) && c.type === RadioButton2;
8460
8666
  };
8461
8667
  var RadioButtonGroup = (_a) => {
8462
8668
  var _b = _a, {
@@ -8479,7 +8685,7 @@ var RadioButtonGroup = (_a) => {
8479
8685
  "children"
8480
8686
  ]);
8481
8687
  var _a2;
8482
- const [value, setValue] = import_react90.default.useState((_a2 = _value != null ? _value : defaultValue) != null ? _a2 : "");
8688
+ const [value, setValue] = import_react93.default.useState((_a2 = _value != null ? _value : defaultValue) != null ? _a2 : "");
8483
8689
  const errorMessageId = (0, import_uniqueId8.default)();
8484
8690
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
8485
8691
  const labelControlProps = getLabelControlProps(props);
@@ -8490,14 +8696,14 @@ var RadioButtonGroup = (_a) => {
8490
8696
  setValue(e.target.value);
8491
8697
  onChange == null ? void 0 : onChange(e.target.value);
8492
8698
  };
8493
- const content = import_react90.default.Children.map(children, (c) => {
8699
+ const content = import_react93.default.Children.map(children, (c) => {
8494
8700
  var _a3, _b2, _c;
8495
8701
  if (!isRadioButton(c)) {
8496
8702
  return null;
8497
8703
  }
8498
8704
  const defaultChecked = defaultValue === void 0 ? void 0 : c.props.value === defaultValue;
8499
8705
  const checked = value === void 0 ? void 0 : c.props.value === value;
8500
- return import_react90.default.cloneElement(c, {
8706
+ return import_react93.default.cloneElement(c, {
8501
8707
  name,
8502
8708
  defaultChecked: (_a3 = c.props.defaultChecked) != null ? _a3 : defaultChecked,
8503
8709
  checked: (_b2 = c.props.checked) != null ? _b2 : checked,
@@ -8506,11 +8712,11 @@ var RadioButtonGroup = (_a) => {
8506
8712
  readOnly
8507
8713
  });
8508
8714
  });
8509
- return /* @__PURE__ */ import_react90.default.createElement(LabelControl, __spreadValues(__spreadValues({
8715
+ return /* @__PURE__ */ import_react93.default.createElement(LabelControl, __spreadValues(__spreadValues({
8510
8716
  fieldset: true
8511
- }, labelControlProps), errorProps), cols && /* @__PURE__ */ import_react90.default.createElement(InputGroup, {
8717
+ }, labelControlProps), errorProps), cols && /* @__PURE__ */ import_react93.default.createElement(InputGroup, {
8512
8718
  cols
8513
- }, content), !cols && /* @__PURE__ */ import_react90.default.createElement(Flexbox, {
8719
+ }, content), !cols && /* @__PURE__ */ import_react93.default.createElement(Flexbox, {
8514
8720
  direction,
8515
8721
  alignItems: "flex-start",
8516
8722
  colGap: "8",
@@ -8519,12 +8725,12 @@ var RadioButtonGroup = (_a) => {
8519
8725
  }, content));
8520
8726
  };
8521
8727
  var RadioButtonGroupSkeleton = ({ direction = "row", options = 2 }) => {
8522
- return /* @__PURE__ */ import_react90.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react90.default.createElement("div", {
8728
+ return /* @__PURE__ */ import_react93.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react93.default.createElement("div", {
8523
8729
  className: tw("flex flex-wrap", {
8524
8730
  "flex-row gap-8": direction === "row",
8525
8731
  "flex-col gap-2": direction === "column"
8526
8732
  })
8527
- }, Array.from({ length: options }).map((_, key) => /* @__PURE__ */ import_react90.default.createElement(RadioButton2.Skeleton, {
8733
+ }, Array.from({ length: options }).map((_, key) => /* @__PURE__ */ import_react93.default.createElement(RadioButton2.Skeleton, {
8528
8734
  key
8529
8735
  }))));
8530
8736
  };
@@ -8532,68 +8738,68 @@ RadioButtonGroup.Skeleton = RadioButtonGroupSkeleton;
8532
8738
  RadioButtonGroup.Skeleton.displayName = "RadioButtonGroup.Skeleton";
8533
8739
 
8534
8740
  // src/molecules/Section/Section.tsx
8535
- var import_react92 = __toESM(require("react"));
8741
+ var import_react95 = __toESM(require("react"));
8536
8742
  var import_castArray4 = __toESM(require("lodash/castArray"));
8537
8743
 
8538
8744
  // src/atoms/Section/Section.tsx
8539
- var import_react91 = __toESM(require("react"));
8540
- var Section2 = (_a) => {
8745
+ var import_react94 = __toESM(require("react"));
8746
+ var Section3 = (_a) => {
8541
8747
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
8542
- return /* @__PURE__ */ import_react91.default.createElement(Box, __spreadValues({
8748
+ return /* @__PURE__ */ import_react94.default.createElement(Box, __spreadValues({
8543
8749
  borderColor: "grey-5",
8544
8750
  borderWidth: "1px"
8545
8751
  }, rest), children);
8546
8752
  };
8547
- Section2.Header = (_a) => {
8753
+ Section3.Header = (_a) => {
8548
8754
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8549
- return /* @__PURE__ */ import_react91.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8755
+ return /* @__PURE__ */ import_react94.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8550
8756
  className: classNames(tw("px-6 py-5 flex gap-5 justify-between items-center"), className)
8551
8757
  }), children);
8552
8758
  };
8553
- Section2.TitleContainer = (_a) => {
8759
+ Section3.TitleContainer = (_a) => {
8554
8760
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8555
- return /* @__PURE__ */ import_react91.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8761
+ return /* @__PURE__ */ import_react94.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8556
8762
  className: classNames(tw("flex flex-col grow gap-2"), className)
8557
8763
  }), children);
8558
8764
  };
8559
- Section2.Title = (_a) => {
8765
+ Section3.Title = (_a) => {
8560
8766
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
8561
- return /* @__PURE__ */ import_react91.default.createElement(Typography2.Subheading, __spreadProps(__spreadValues({}, rest), {
8767
+ return /* @__PURE__ */ import_react94.default.createElement(Typography2.Subheading, __spreadProps(__spreadValues({}, rest), {
8562
8768
  color: "black"
8563
8769
  }), children);
8564
8770
  };
8565
- Section2.Subtitle = (_a) => {
8771
+ Section3.Subtitle = (_a) => {
8566
8772
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
8567
- return /* @__PURE__ */ import_react91.default.createElement(Typography2.SmallText, __spreadProps(__spreadValues({}, rest), {
8773
+ return /* @__PURE__ */ import_react94.default.createElement(Typography2.SmallText, __spreadProps(__spreadValues({}, rest), {
8568
8774
  color: "grey-70"
8569
8775
  }), children);
8570
8776
  };
8571
- Section2.Actions = (_a) => {
8777
+ Section3.Actions = (_a) => {
8572
8778
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8573
- return /* @__PURE__ */ import_react91.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8779
+ return /* @__PURE__ */ import_react94.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8574
8780
  className: classNames(tw("flex gap-4 justify-end"), className)
8575
8781
  }), children);
8576
8782
  };
8577
- Section2.Body = (_a) => {
8783
+ Section3.Body = (_a) => {
8578
8784
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
8579
- return /* @__PURE__ */ import_react91.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8785
+ return /* @__PURE__ */ import_react94.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8580
8786
  className: classNames(tw("p-6"), className)
8581
- }), /* @__PURE__ */ import_react91.default.createElement(Typography, {
8787
+ }), /* @__PURE__ */ import_react94.default.createElement(Typography, {
8582
8788
  htmlTag: "div",
8583
8789
  color: "grey-70"
8584
8790
  }, children));
8585
8791
  };
8586
8792
 
8587
8793
  // src/molecules/Section/Section.tsx
8588
- var Section3 = ({ title, subtitle, actions, children }) => /* @__PURE__ */ import_react92.default.createElement(Section2, null, title && /* @__PURE__ */ import_react92.default.createElement(import_react92.default.Fragment, null, /* @__PURE__ */ import_react92.default.createElement(Section2.Header, null, /* @__PURE__ */ import_react92.default.createElement(Section2.TitleContainer, null, /* @__PURE__ */ import_react92.default.createElement(Section2.Title, null, title), subtitle && /* @__PURE__ */ import_react92.default.createElement(Section2.Subtitle, null, subtitle)), /* @__PURE__ */ import_react92.default.createElement(Section2.Actions, null, actions && (0, import_castArray4.default)(actions).filter(Boolean).map((_a) => {
8794
+ var Section4 = ({ title, subtitle, actions, children }) => /* @__PURE__ */ import_react95.default.createElement(Section3, null, title && /* @__PURE__ */ import_react95.default.createElement(import_react95.default.Fragment, null, /* @__PURE__ */ import_react95.default.createElement(Section3.Header, null, /* @__PURE__ */ import_react95.default.createElement(Section3.TitleContainer, null, /* @__PURE__ */ import_react95.default.createElement(Section3.Title, null, title), subtitle && /* @__PURE__ */ import_react95.default.createElement(Section3.Subtitle, null, subtitle)), /* @__PURE__ */ import_react95.default.createElement(Section3.Actions, null, actions && (0, import_castArray4.default)(actions).filter(Boolean).map((_a) => {
8589
8795
  var _b = _a, { text } = _b, action = __objRest(_b, ["text"]);
8590
- return /* @__PURE__ */ import_react92.default.createElement(SecondaryButton, __spreadValues({
8796
+ return /* @__PURE__ */ import_react95.default.createElement(SecondaryButton, __spreadValues({
8591
8797
  key: text
8592
8798
  }, action), text);
8593
- }))), /* @__PURE__ */ import_react92.default.createElement(Divider2, null)), /* @__PURE__ */ import_react92.default.createElement(Section2.Body, null, children));
8799
+ }))), /* @__PURE__ */ import_react95.default.createElement(Divider2, null)), /* @__PURE__ */ import_react95.default.createElement(Section3.Body, null, children));
8594
8800
 
8595
8801
  // src/molecules/SegmentedControl/SegmentedControl.tsx
8596
- var import_react93 = __toESM(require("react"));
8802
+ var import_react96 = __toESM(require("react"));
8597
8803
  var SegmentedControl = (_a) => {
8598
8804
  var _b = _a, {
8599
8805
  children,
@@ -8610,7 +8816,7 @@ var SegmentedControl = (_a) => {
8610
8816
  "selected",
8611
8817
  "className"
8612
8818
  ]);
8613
- return /* @__PURE__ */ import_react93.default.createElement("button", __spreadProps(__spreadValues({
8819
+ return /* @__PURE__ */ import_react96.default.createElement("button", __spreadProps(__spreadValues({
8614
8820
  type: "button"
8615
8821
  }, rest), {
8616
8822
  className: classNames(
@@ -8641,11 +8847,11 @@ var SegmentedControlGroup = (_a) => {
8641
8847
  "border border-grey-20 text-grey-50": variant === "outlined",
8642
8848
  "bg-grey-0": variant === "raised"
8643
8849
  });
8644
- return /* @__PURE__ */ import_react93.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8850
+ return /* @__PURE__ */ import_react96.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8645
8851
  className: classNames(classes2, className)
8646
- }), import_react93.default.Children.map(
8852
+ }), import_react96.default.Children.map(
8647
8853
  children,
8648
- (child) => import_react93.default.cloneElement(child, {
8854
+ (child) => import_react96.default.cloneElement(child, {
8649
8855
  dense,
8650
8856
  variant,
8651
8857
  onClick: () => onChange(child.props.value),
@@ -8683,10 +8889,10 @@ var getCommonClassNames = (dense, selected) => tw(
8683
8889
  );
8684
8890
 
8685
8891
  // src/molecules/Spacing/Spacing.tsx
8686
- var import_react94 = __toESM(require("react"));
8892
+ var import_react97 = __toESM(require("react"));
8687
8893
  var Spacing = (_a) => {
8688
8894
  var _b = _a, { gap, row } = _b, rest = __objRest(_b, ["gap", "row"]);
8689
- return /* @__PURE__ */ import_react94.default.createElement(Box, __spreadProps(__spreadValues({}, rest), {
8895
+ return /* @__PURE__ */ import_react97.default.createElement(Box, __spreadProps(__spreadValues({}, rest), {
8690
8896
  display: "flex",
8691
8897
  flexDirection: row ? "row" : "column",
8692
8898
  gap
@@ -8694,14 +8900,14 @@ var Spacing = (_a) => {
8694
8900
  };
8695
8901
 
8696
8902
  // src/molecules/Stepper/Stepper.tsx
8697
- var import_react96 = __toESM(require("react"));
8903
+ var import_react99 = __toESM(require("react"));
8698
8904
 
8699
8905
  // src/atoms/Stepper/Stepper.tsx
8700
- var import_react95 = __toESM(require("react"));
8906
+ var import_react98 = __toESM(require("react"));
8701
8907
  var import_tick5 = __toESM(require_tick());
8702
8908
  var Stepper = (_a) => {
8703
8909
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
8704
- return /* @__PURE__ */ import_react95.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8910
+ return /* @__PURE__ */ import_react98.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8705
8911
  className: classNames(className)
8706
8912
  }));
8707
8913
  };
@@ -8715,7 +8921,7 @@ var ConnectorContainer = (_a) => {
8715
8921
  "completed",
8716
8922
  "dense"
8717
8923
  ]);
8718
- return /* @__PURE__ */ import_react95.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8924
+ return /* @__PURE__ */ import_react98.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8719
8925
  className: classNames(
8720
8926
  tw("absolute w-full -left-1/2", {
8721
8927
  "top-[3px] px-[14px]": Boolean(dense),
@@ -8727,7 +8933,7 @@ var ConnectorContainer = (_a) => {
8727
8933
  };
8728
8934
  var Connector = (_a) => {
8729
8935
  var _b = _a, { children, className, completed, dense } = _b, rest = __objRest(_b, ["children", "className", "completed", "dense"]);
8730
- return /* @__PURE__ */ import_react95.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8936
+ return /* @__PURE__ */ import_react98.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8731
8937
  className: classNames(
8732
8938
  tw("w-full", {
8733
8939
  "bg-grey-20": !completed,
@@ -8741,7 +8947,7 @@ var Connector = (_a) => {
8741
8947
  };
8742
8948
  var Step = (_a) => {
8743
8949
  var _b = _a, { className, state } = _b, rest = __objRest(_b, ["className", "state"]);
8744
- return /* @__PURE__ */ import_react95.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8950
+ return /* @__PURE__ */ import_react98.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8745
8951
  className: classNames(
8746
8952
  tw("flex flex-col items-center text-grey-90 relative text-center", {
8747
8953
  "text-grey-20": state === "inactive"
@@ -8762,13 +8968,13 @@ var getDenseClassNames = (state) => tw("h-[8px] w-[8px]", {
8762
8968
  });
8763
8969
  var Indicator = (_a) => {
8764
8970
  var _b = _a, { children, className, state, dense } = _b, rest = __objRest(_b, ["children", "className", "state", "dense"]);
8765
- return /* @__PURE__ */ import_react95.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8971
+ return /* @__PURE__ */ import_react98.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
8766
8972
  className: classNames(
8767
8973
  tw("rounded-full flex justify-center items-center mx-2 mb-3"),
8768
8974
  dense ? getDenseClassNames(state) : getClassNames(state),
8769
8975
  className
8770
8976
  )
8771
- }), state === "completed" ? /* @__PURE__ */ import_react95.default.createElement(InlineIcon, {
8977
+ }), state === "completed" ? /* @__PURE__ */ import_react98.default.createElement(InlineIcon, {
8772
8978
  icon: import_tick5.default
8773
8979
  }) : dense ? null : children);
8774
8980
  };
@@ -8779,46 +8985,47 @@ Stepper.ConnectorContainer = ConnectorContainer;
8779
8985
 
8780
8986
  // src/molecules/Stepper/Stepper.tsx
8781
8987
  var Stepper2 = ({ children, activeIndex, dense }) => {
8782
- const steps = import_react96.default.Children.count(children);
8783
- return /* @__PURE__ */ import_react96.default.createElement(Stepper, {
8988
+ const steps = import_react99.default.Children.count(children);
8989
+ return /* @__PURE__ */ import_react99.default.createElement(Stepper, {
8784
8990
  role: "list"
8785
- }, /* @__PURE__ */ import_react96.default.createElement(Template, {
8991
+ }, /* @__PURE__ */ import_react99.default.createElement(Template, {
8786
8992
  columns: steps
8787
- }, import_react96.default.Children.map(children, (child, index) => {
8993
+ }, import_react99.default.Children.map(children, (child, index) => {
8788
8994
  if (!isComponentType(child, Step2)) {
8789
8995
  return new Error("<Stepper> can only have <Stepper.Step> components as children");
8790
8996
  } else {
8791
8997
  const state = index > activeIndex ? "inactive" : index === activeIndex ? "active" : "completed";
8792
- return /* @__PURE__ */ import_react96.default.createElement(Stepper.Step, {
8998
+ return /* @__PURE__ */ import_react99.default.createElement(Stepper.Step, {
8793
8999
  state,
8794
9000
  "aria-current": state === "active" ? "step" : false,
8795
9001
  role: "listitem"
8796
- }, index > 0 && index <= steps && /* @__PURE__ */ import_react96.default.createElement(Stepper.ConnectorContainer, {
9002
+ }, index > 0 && index <= steps && /* @__PURE__ */ import_react99.default.createElement(Stepper.ConnectorContainer, {
8797
9003
  dense
8798
- }, /* @__PURE__ */ import_react96.default.createElement(Stepper.ConnectorContainer.Connector, {
9004
+ }, /* @__PURE__ */ import_react99.default.createElement(Stepper.ConnectorContainer.Connector, {
8799
9005
  completed: state === "completed" || state === "active"
8800
- })), /* @__PURE__ */ import_react96.default.createElement(Stepper.Step.Indicator, {
9006
+ })), /* @__PURE__ */ import_react99.default.createElement(Stepper.Step.Indicator, {
8801
9007
  state,
8802
9008
  dense
8803
9009
  }, index + 1), child.props.children);
8804
9010
  }
8805
9011
  })));
8806
9012
  };
9013
+ Stepper2.displayName = "Stepper";
8807
9014
  var Step2 = () => null;
8808
9015
  Step2.displayName = "Stepper.Step";
8809
9016
  Stepper2.Step = Step2;
8810
9017
 
8811
9018
  // src/molecules/Switch/Switch.tsx
8812
- var import_react98 = __toESM(require("react"));
9019
+ var import_react101 = __toESM(require("react"));
8813
9020
 
8814
9021
  // src/atoms/Switch/Switch.tsx
8815
- var import_react97 = __toESM(require("react"));
8816
- var Switch = import_react97.default.forwardRef(
9022
+ var import_react100 = __toESM(require("react"));
9023
+ var Switch = import_react100.default.forwardRef(
8817
9024
  (_a, ref) => {
8818
9025
  var _b = _a, { id, children, name, disabled = false, readOnly = false } = _b, props = __objRest(_b, ["id", "children", "name", "disabled", "readOnly"]);
8819
- return /* @__PURE__ */ import_react97.default.createElement("span", {
9026
+ return /* @__PURE__ */ import_react100.default.createElement("span", {
8820
9027
  className: tw("relative inline-flex justify-center items-center self-center group")
8821
- }, /* @__PURE__ */ import_react97.default.createElement("input", __spreadProps(__spreadValues({
9028
+ }, /* @__PURE__ */ import_react100.default.createElement("input", __spreadProps(__spreadValues({
8822
9029
  id,
8823
9030
  ref,
8824
9031
  type: "checkbox",
@@ -8837,7 +9044,7 @@ var Switch = import_react97.default.forwardRef(
8837
9044
  ),
8838
9045
  readOnly,
8839
9046
  disabled
8840
- })), /* @__PURE__ */ import_react97.default.createElement("span", {
9047
+ })), /* @__PURE__ */ import_react100.default.createElement("span", {
8841
9048
  className: tw(
8842
9049
  "pointer-events-none rounded-full absolute inline-block transition duration-300 h-4 w-4 transform peer-checked/switch:translate-x-5",
8843
9050
  "bg-white peer-disabled/switch:bg-grey-0 left-2 peer-checked/switch:left-1",
@@ -8850,12 +9057,12 @@ var Switch = import_react97.default.forwardRef(
8850
9057
  );
8851
9058
 
8852
9059
  // src/molecules/Switch/Switch.tsx
8853
- var Switch2 = import_react98.default.forwardRef(
9060
+ var Switch2 = import_react101.default.forwardRef(
8854
9061
  (_a, ref) => {
8855
9062
  var _b = _a, { id, name, caption, readOnly = false, disabled = false, children, "aria-label": ariaLabel } = _b, props = __objRest(_b, ["id", "name", "caption", "readOnly", "disabled", "children", "aria-label"]);
8856
9063
  var _a2;
8857
9064
  const isChecked = (_a2 = props.checked) != null ? _a2 : props.defaultChecked;
8858
- return !readOnly || isChecked ? /* @__PURE__ */ import_react98.default.createElement(ControlLabel, {
9065
+ return !readOnly || isChecked ? /* @__PURE__ */ import_react101.default.createElement(ControlLabel, {
8859
9066
  htmlFor: id,
8860
9067
  label: children,
8861
9068
  "aria-label": ariaLabel,
@@ -8863,7 +9070,7 @@ var Switch2 = import_react98.default.forwardRef(
8863
9070
  readOnly,
8864
9071
  disabled,
8865
9072
  style: { gap: "0 8px" }
8866
- }, !readOnly && /* @__PURE__ */ import_react98.default.createElement(Switch, __spreadProps(__spreadValues({
9073
+ }, !readOnly && /* @__PURE__ */ import_react101.default.createElement(Switch, __spreadProps(__spreadValues({
8867
9074
  id,
8868
9075
  ref,
8869
9076
  name
@@ -8874,12 +9081,12 @@ var Switch2 = import_react98.default.forwardRef(
8874
9081
  }
8875
9082
  );
8876
9083
  Switch2.displayName = "Switch";
8877
- var SwitchSkeleton = () => /* @__PURE__ */ import_react98.default.createElement("div", {
9084
+ var SwitchSkeleton = () => /* @__PURE__ */ import_react101.default.createElement("div", {
8878
9085
  className: tw("flex gap-3")
8879
- }, /* @__PURE__ */ import_react98.default.createElement(Skeleton, {
9086
+ }, /* @__PURE__ */ import_react101.default.createElement(Skeleton, {
8880
9087
  height: 20,
8881
9088
  width: 35
8882
- }), /* @__PURE__ */ import_react98.default.createElement(Skeleton, {
9089
+ }), /* @__PURE__ */ import_react101.default.createElement(Skeleton, {
8883
9090
  height: 20,
8884
9091
  width: 150
8885
9092
  }));
@@ -8887,7 +9094,7 @@ Switch2.Skeleton = SwitchSkeleton;
8887
9094
  Switch2.Skeleton.displayName = "Switch.Skeleton ";
8888
9095
 
8889
9096
  // src/molecules/SwitchGroup/SwitchGroup.tsx
8890
- var import_react99 = __toESM(require("react"));
9097
+ var import_react102 = __toESM(require("react"));
8891
9098
  var import_uniqueId9 = __toESM(require("lodash/uniqueId"));
8892
9099
  var SwitchGroup = (_a) => {
8893
9100
  var _b = _a, {
@@ -8906,7 +9113,7 @@ var SwitchGroup = (_a) => {
8906
9113
  "children"
8907
9114
  ]);
8908
9115
  var _a2;
8909
- const [selectedItems, setSelectedItems] = (0, import_react99.useState)((_a2 = value != null ? value : defaultValue) != null ? _a2 : []);
9116
+ const [selectedItems, setSelectedItems] = (0, import_react102.useState)((_a2 = value != null ? value : defaultValue) != null ? _a2 : []);
8910
9117
  if (value !== void 0 && value !== selectedItems) {
8911
9118
  setSelectedItems(value);
8912
9119
  }
@@ -8919,11 +9126,11 @@ var SwitchGroup = (_a) => {
8919
9126
  setSelectedItems(updated);
8920
9127
  onChange == null ? void 0 : onChange(updated);
8921
9128
  };
8922
- return /* @__PURE__ */ import_react99.default.createElement(LabelControl, __spreadValues(__spreadValues({
9129
+ return /* @__PURE__ */ import_react102.default.createElement(LabelControl, __spreadValues(__spreadValues({
8923
9130
  fieldset: true
8924
- }, labelControlProps), errorProps), /* @__PURE__ */ import_react99.default.createElement(InputGroup, {
9131
+ }, labelControlProps), errorProps), /* @__PURE__ */ import_react102.default.createElement(InputGroup, {
8925
9132
  cols
8926
- }, import_react99.default.Children.map(children, (c) => {
9133
+ }, import_react102.default.Children.map(children, (c) => {
8927
9134
  var _a3, _b2, _c, _d;
8928
9135
  if (!isComponentType(c, Switch2)) {
8929
9136
  return null;
@@ -8931,7 +9138,7 @@ var SwitchGroup = (_a) => {
8931
9138
  const str = (_a3 = c.props.value) == null ? void 0 : _a3.toString();
8932
9139
  const defaultChecked = defaultValue === void 0 ? void 0 : str !== void 0 && defaultValue.includes(str);
8933
9140
  const checked = value === void 0 ? void 0 : str !== void 0 && value.includes(str);
8934
- return import_react99.default.cloneElement(c, {
9141
+ return import_react102.default.cloneElement(c, {
8935
9142
  defaultChecked: (_b2 = c.props.defaultChecked) != null ? _b2 : defaultChecked,
8936
9143
  checked: (_c = c.props.checked) != null ? _c : checked,
8937
9144
  onChange: (_d = c.props.onChange) != null ? _d : handleChange,
@@ -8941,9 +9148,9 @@ var SwitchGroup = (_a) => {
8941
9148
  })));
8942
9149
  };
8943
9150
  var SwitchGroupSkeleton = ({ options = 2 }) => {
8944
- return /* @__PURE__ */ import_react99.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react99.default.createElement("div", {
9151
+ return /* @__PURE__ */ import_react102.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react102.default.createElement("div", {
8945
9152
  className: tw("flex flex-wrap flex-col gap-2")
8946
- }, Array.from({ length: options }).map((_, key) => /* @__PURE__ */ import_react99.default.createElement(Switch2.Skeleton, {
9153
+ }, Array.from({ length: options }).map((_, key) => /* @__PURE__ */ import_react102.default.createElement(Switch2.Skeleton, {
8947
9154
  key
8948
9155
  }))));
8949
9156
  };
@@ -8951,10 +9158,10 @@ SwitchGroup.Skeleton = SwitchGroupSkeleton;
8951
9158
  SwitchGroup.Skeleton.displayName = "SwitchGroup.Skeleton";
8952
9159
 
8953
9160
  // src/molecules/TagLabel/TagLabel.tsx
8954
- var import_react100 = __toESM(require("react"));
9161
+ var import_react103 = __toESM(require("react"));
8955
9162
  var TagLabel = (_a) => {
8956
9163
  var _b = _a, { title, dense = false } = _b, rest = __objRest(_b, ["title", "dense"]);
8957
- return /* @__PURE__ */ import_react100.default.createElement("span", __spreadProps(__spreadValues({}, rest), {
9164
+ return /* @__PURE__ */ import_react103.default.createElement("span", __spreadProps(__spreadValues({}, rest), {
8958
9165
  className: tw("rounded-full text-white bg-primary-70", {
8959
9166
  "py-2 px-4 typography-caption": !dense,
8960
9167
  "py-2 px-3 typography-caption-small": dense
@@ -8963,14 +9170,14 @@ var TagLabel = (_a) => {
8963
9170
  };
8964
9171
 
8965
9172
  // src/molecules/Textarea/Textarea.tsx
8966
- var import_react101 = __toESM(require("react"));
9173
+ var import_react104 = __toESM(require("react"));
8967
9174
  var import_omit16 = __toESM(require("lodash/omit"));
8968
9175
  var import_toString2 = __toESM(require("lodash/toString"));
8969
9176
  var import_uniqueId10 = __toESM(require("lodash/uniqueId"));
8970
- var TextareaBase = import_react101.default.forwardRef(
9177
+ var TextareaBase = import_react104.default.forwardRef(
8971
9178
  (_a, ref) => {
8972
9179
  var _b = _a, { readOnly = false, valid = true } = _b, props = __objRest(_b, ["readOnly", "valid"]);
8973
- return /* @__PURE__ */ import_react101.default.createElement("textarea", __spreadProps(__spreadValues({
9180
+ return /* @__PURE__ */ import_react104.default.createElement("textarea", __spreadProps(__spreadValues({
8974
9181
  ref
8975
9182
  }, props), {
8976
9183
  readOnly,
@@ -8978,23 +9185,23 @@ var TextareaBase = import_react101.default.forwardRef(
8978
9185
  }));
8979
9186
  }
8980
9187
  );
8981
- TextareaBase.Skeleton = () => /* @__PURE__ */ import_react101.default.createElement(Skeleton, {
9188
+ TextareaBase.Skeleton = () => /* @__PURE__ */ import_react104.default.createElement(Skeleton, {
8982
9189
  height: 58
8983
9190
  });
8984
- var Textarea = import_react101.default.forwardRef((props, ref) => {
9191
+ var Textarea = import_react104.default.forwardRef((props, ref) => {
8985
9192
  var _a, _b, _c;
8986
- const [value, setValue] = (0, import_react101.useState)((_b = (_a = props.value) != null ? _a : props.defaultValue) != null ? _b : "");
8987
- const id = (0, import_react101.useRef)((_c = props.id) != null ? _c : `textarea-${(0, import_uniqueId10.default)()}`);
9193
+ const [value, setValue] = (0, import_react104.useState)((_b = (_a = props.value) != null ? _a : props.defaultValue) != null ? _b : "");
9194
+ const id = (0, import_react104.useRef)((_c = props.id) != null ? _c : `textarea-${(0, import_uniqueId10.default)()}`);
8988
9195
  const errorMessageId = (0, import_uniqueId10.default)();
8989
9196
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
8990
9197
  const _d = getLabelControlProps(props), { "data-testid": dataTestId } = _d, labelControlProps = __objRest(_d, ["data-testid"]);
8991
9198
  const baseProps = (0, import_omit16.default)(props, Object.keys(labelControlProps));
8992
- return /* @__PURE__ */ import_react101.default.createElement(LabelControl, __spreadValues({
9199
+ return /* @__PURE__ */ import_react104.default.createElement(LabelControl, __spreadValues({
8993
9200
  id: `${id.current}-label`,
8994
9201
  htmlFor: id.current,
8995
9202
  messageId: errorMessageId,
8996
9203
  length: value !== void 0 ? (0, import_toString2.default)(value).length : void 0
8997
- }, labelControlProps), /* @__PURE__ */ import_react101.default.createElement(TextareaBase, __spreadProps(__spreadValues(__spreadValues({
9204
+ }, labelControlProps), /* @__PURE__ */ import_react104.default.createElement(TextareaBase, __spreadProps(__spreadValues(__spreadValues({
8998
9205
  ref
8999
9206
  }, baseProps), errorProps), {
9000
9207
  id: id.current,
@@ -9011,48 +9218,48 @@ var Textarea = import_react101.default.forwardRef((props, ref) => {
9011
9218
  })));
9012
9219
  });
9013
9220
  Textarea.displayName = "Textarea";
9014
- var TextAreaSkeleton = () => /* @__PURE__ */ import_react101.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react101.default.createElement(TextareaBase.Skeleton, null));
9221
+ var TextAreaSkeleton = () => /* @__PURE__ */ import_react104.default.createElement(LabelControl.Skeleton, null, /* @__PURE__ */ import_react104.default.createElement(TextareaBase.Skeleton, null));
9015
9222
  Textarea.Skeleton = TextAreaSkeleton;
9016
9223
  Textarea.Skeleton.displayName = "Textarea.Skeleton";
9017
9224
 
9018
9225
  // src/molecules/Timeline/Timeline.tsx
9019
- var import_react103 = __toESM(require("react"));
9226
+ var import_react106 = __toESM(require("react"));
9020
9227
 
9021
9228
  // src/atoms/Timeline/Timeline.tsx
9022
- var import_react102 = __toESM(require("react"));
9229
+ var import_react105 = __toESM(require("react"));
9023
9230
  var Timeline = (_a) => {
9024
9231
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
9025
- return /* @__PURE__ */ import_react102.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9232
+ return /* @__PURE__ */ import_react105.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9026
9233
  className: classNames(tw("grid grid-cols-[16px_1fr] gap-x-4"), className)
9027
9234
  }));
9028
9235
  };
9029
9236
  var Content2 = (_a) => {
9030
9237
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
9031
- return /* @__PURE__ */ import_react102.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9238
+ return /* @__PURE__ */ import_react105.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9032
9239
  className: classNames(tw("pb-6"), className)
9033
9240
  }));
9034
9241
  };
9035
9242
  var Separator2 = (_a) => {
9036
9243
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
9037
- return /* @__PURE__ */ import_react102.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9244
+ return /* @__PURE__ */ import_react105.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9038
9245
  className: classNames(tw("flex items-center justify-center h-5 w-5"), className)
9039
9246
  }));
9040
9247
  };
9041
9248
  var LineContainer = (_a) => {
9042
9249
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
9043
- return /* @__PURE__ */ import_react102.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9250
+ return /* @__PURE__ */ import_react105.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9044
9251
  className: classNames(tw("flex justify-center py-1"), className)
9045
9252
  }));
9046
9253
  };
9047
9254
  var Line = (_a) => {
9048
9255
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
9049
- return /* @__PURE__ */ import_react102.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9256
+ return /* @__PURE__ */ import_react105.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9050
9257
  className: classNames(tw("w-1 bg-grey-5 h-full justify-self-center"), className)
9051
9258
  }));
9052
9259
  };
9053
9260
  var Dot = (_a) => {
9054
9261
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
9055
- return /* @__PURE__ */ import_react102.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9262
+ return /* @__PURE__ */ import_react105.default.createElement("div", __spreadProps(__spreadValues({}, rest), {
9056
9263
  className: classNames(tw("bg-grey-30 h-[6px] w-[6px] rounded"), className)
9057
9264
  }));
9058
9265
  };
@@ -9067,52 +9274,52 @@ var import_error4 = __toESM(require_error());
9067
9274
  var import_time = __toESM(require_time());
9068
9275
  var import_warningSign4 = __toESM(require_warningSign());
9069
9276
  var TimelineItem = () => null;
9070
- var Timeline2 = ({ children }) => /* @__PURE__ */ import_react103.default.createElement("div", null, import_react103.default.Children.map(children, (item) => {
9277
+ var Timeline2 = ({ children }) => /* @__PURE__ */ import_react106.default.createElement("div", null, import_react106.default.Children.map(children, (item) => {
9071
9278
  if (!isComponentType(item, TimelineItem)) {
9072
9279
  throw new Error("<Timeline> can only have <Timeline.Item> components as children");
9073
9280
  } else {
9074
9281
  const { props, key } = item;
9075
- return /* @__PURE__ */ import_react103.default.createElement(Timeline, {
9282
+ return /* @__PURE__ */ import_react106.default.createElement(Timeline, {
9076
9283
  key: key != null ? key : props.title
9077
- }, /* @__PURE__ */ import_react103.default.createElement(Timeline.Separator, null, props.variant === "error" ? /* @__PURE__ */ import_react103.default.createElement(Icon, {
9284
+ }, /* @__PURE__ */ import_react106.default.createElement(Timeline.Separator, null, props.variant === "error" ? /* @__PURE__ */ import_react106.default.createElement(Icon, {
9078
9285
  icon: import_error4.default,
9079
9286
  color: "error-30"
9080
- }) : props.variant === "warning" ? /* @__PURE__ */ import_react103.default.createElement(Icon, {
9287
+ }) : props.variant === "warning" ? /* @__PURE__ */ import_react106.default.createElement(Icon, {
9081
9288
  icon: import_warningSign4.default,
9082
9289
  color: "warning-30"
9083
- }) : props.variant === "info" ? /* @__PURE__ */ import_react103.default.createElement(Icon, {
9290
+ }) : props.variant === "info" ? /* @__PURE__ */ import_react106.default.createElement(Icon, {
9084
9291
  icon: import_time.default,
9085
9292
  color: "info-30"
9086
- }) : /* @__PURE__ */ import_react103.default.createElement(Timeline.Separator.Dot, null)), /* @__PURE__ */ import_react103.default.createElement(Typography2.Caption, {
9293
+ }) : /* @__PURE__ */ import_react106.default.createElement(Timeline.Separator.Dot, null)), /* @__PURE__ */ import_react106.default.createElement(Typography2.Caption, {
9087
9294
  color: "grey-50"
9088
- }, props.title), /* @__PURE__ */ import_react103.default.createElement(Timeline.LineContainer, null, /* @__PURE__ */ import_react103.default.createElement(Timeline.LineContainer.Line, null)), /* @__PURE__ */ import_react103.default.createElement(Timeline.Content, null, /* @__PURE__ */ import_react103.default.createElement(Typography2.Small, null, props.children)));
9295
+ }, props.title), /* @__PURE__ */ import_react106.default.createElement(Timeline.LineContainer, null, /* @__PURE__ */ import_react106.default.createElement(Timeline.LineContainer.Line, null)), /* @__PURE__ */ import_react106.default.createElement(Timeline.Content, null, /* @__PURE__ */ import_react106.default.createElement(Typography2.Small, null, props.children)));
9089
9296
  }
9090
9297
  }));
9091
- var TimelineItemSkeleton = () => /* @__PURE__ */ import_react103.default.createElement(Timeline, null, /* @__PURE__ */ import_react103.default.createElement(Timeline.Separator, null, /* @__PURE__ */ import_react103.default.createElement(Skeleton, {
9298
+ var TimelineItemSkeleton = () => /* @__PURE__ */ import_react106.default.createElement(Timeline, null, /* @__PURE__ */ import_react106.default.createElement(Timeline.Separator, null, /* @__PURE__ */ import_react106.default.createElement(Skeleton, {
9092
9299
  width: 6,
9093
9300
  height: 6,
9094
9301
  rounded: true
9095
- })), /* @__PURE__ */ import_react103.default.createElement(Skeleton, {
9302
+ })), /* @__PURE__ */ import_react106.default.createElement(Skeleton, {
9096
9303
  height: 12,
9097
9304
  width: 120
9098
- }), /* @__PURE__ */ import_react103.default.createElement(Timeline.LineContainer, null, /* @__PURE__ */ import_react103.default.createElement(Skeleton, {
9305
+ }), /* @__PURE__ */ import_react106.default.createElement(Timeline.LineContainer, null, /* @__PURE__ */ import_react106.default.createElement(Skeleton, {
9099
9306
  width: 2,
9100
9307
  height: "100%"
9101
- })), /* @__PURE__ */ import_react103.default.createElement(Timeline.Content, null, /* @__PURE__ */ import_react103.default.createElement(Box, {
9308
+ })), /* @__PURE__ */ import_react106.default.createElement(Timeline.Content, null, /* @__PURE__ */ import_react106.default.createElement(Box, {
9102
9309
  display: "flex",
9103
9310
  flexDirection: "column",
9104
9311
  gap: "3"
9105
- }, /* @__PURE__ */ import_react103.default.createElement(Skeleton, {
9312
+ }, /* @__PURE__ */ import_react106.default.createElement(Skeleton, {
9106
9313
  height: 32,
9107
9314
  width: "100%"
9108
- }), /* @__PURE__ */ import_react103.default.createElement(Skeleton, {
9315
+ }), /* @__PURE__ */ import_react106.default.createElement(Skeleton, {
9109
9316
  height: 32,
9110
9317
  width: "73%"
9111
- }), /* @__PURE__ */ import_react103.default.createElement(Skeleton, {
9318
+ }), /* @__PURE__ */ import_react106.default.createElement(Skeleton, {
9112
9319
  height: 32,
9113
9320
  width: "80%"
9114
9321
  }))));
9115
- var TimelineSkeleton = ({ items = 3 }) => /* @__PURE__ */ import_react103.default.createElement("div", null, Array.from({ length: items }).map((_, key) => /* @__PURE__ */ import_react103.default.createElement(TimelineItemSkeleton, {
9322
+ var TimelineSkeleton = ({ items = 3 }) => /* @__PURE__ */ import_react106.default.createElement("div", null, Array.from({ length: items }).map((_, key) => /* @__PURE__ */ import_react106.default.createElement(TimelineItemSkeleton, {
9116
9323
  key
9117
9324
  })));
9118
9325
  Timeline2.Item = TimelineItem;
@@ -9120,9 +9327,9 @@ Timeline2.Skeleton = TimelineSkeleton;
9120
9327
  Timeline2.Skeleton.displayName = "Timeline.Skeleton";
9121
9328
 
9122
9329
  // src/utils/table/useTableSelect.ts
9123
- var import_react104 = __toESM(require("react"));
9330
+ var import_react107 = __toESM(require("react"));
9124
9331
  var useTableSelect = (data, { key }) => {
9125
- const [selected, setSelected] = import_react104.default.useState([]);
9332
+ const [selected, setSelected] = import_react107.default.useState([]);
9126
9333
  const allSelected = selected.length === data.length;
9127
9334
  const isSelected = (dot) => selected.includes(dot[key]);
9128
9335
  const selectAll = () => setSelected(data.map((dot) => dot[key]));
@@ -9147,7 +9354,7 @@ var useTableSelect = (data, { key }) => {
9147
9354
  };
9148
9355
 
9149
9356
  // src/molecules/Pagination/usePagination.tsx
9150
- var import_react105 = require("react");
9357
+ var import_react108 = require("react");
9151
9358
  var import_clamp3 = __toESM(require("lodash/clamp"));
9152
9359
  var initialState = {
9153
9360
  currentPage: 1,
@@ -9155,8 +9362,8 @@ var initialState = {
9155
9362
  };
9156
9363
  var getPageIndex = (currentPage, pageSize) => currentPage === 0 ? 0 : (currentPage - 1) * pageSize;
9157
9364
  var usePagination = (items, options) => {
9158
- const [currentPage, setCurrentPage] = (0, import_react105.useState)((options == null ? void 0 : options.initialPage) || initialState.currentPage);
9159
- const [pageSize, setPageSize] = (0, import_react105.useState)((options == null ? void 0 : options.initialPageSize) || initialState.pageSize);
9365
+ const [currentPage, setCurrentPage] = (0, import_react108.useState)((options == null ? void 0 : options.initialPage) || initialState.currentPage);
9366
+ const [pageSize, setPageSize] = (0, import_react108.useState)((options == null ? void 0 : options.initialPageSize) || initialState.pageSize);
9160
9367
  const totalPages = items.length > 0 ? Math.ceil(items.length / pageSize) : 1;
9161
9368
  const hasPreviousPage = currentPage > 1;
9162
9369
  const hasNextPage = currentPage < totalPages;
@@ -9166,7 +9373,7 @@ var usePagination = (items, options) => {
9166
9373
  setPageSize(pageSize2);
9167
9374
  setCurrentPage((0, import_clamp3.default)((options == null ? void 0 : options.initialPage) || initialState.currentPage, 1, newTotalPages));
9168
9375
  };
9169
- (0, import_react105.useEffect)(() => {
9376
+ (0, import_react108.useEffect)(() => {
9170
9377
  setCurrentPage((0, import_clamp3.default)((options == null ? void 0 : options.initialPage) || initialState.currentPage, 1, totalPages));
9171
9378
  }, [items.length]);
9172
9379
  return [
@@ -9366,6 +9573,7 @@ var system_default = __spreadProps(__spreadValues({}, molecules_exports), {
9366
9573
  MultiSelectBase,
9367
9574
  NativeSelect,
9368
9575
  NativeSelectBase,
9576
+ Navigation,
9369
9577
  OneLineBanner,
9370
9578
  Option,
9371
9579
  PageHeader,