@aivenio/aquarium 1.13.0-rc1 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/system.cjs CHANGED
@@ -1661,6 +1661,7 @@ __export(system_exports, {
1661
1661
  calcTopPosition: () => calcTopPosition,
1662
1662
  calcTopRightPosition: () => calcTopRightPosition,
1663
1663
  cellProps: () => cellProps,
1664
+ columnIsFieldColumn: () => columnIsFieldColumn,
1664
1665
  createComponent: () => createComponent,
1665
1666
  createMountPointElement: () => createMountPointElement,
1666
1667
  createSimpleComponent: () => createSimpleComponent,
@@ -1787,6 +1788,7 @@ __export(molecules_exports, {
1787
1788
  asPopoverButton: () => asPopoverButton,
1788
1789
  asTabItem: () => asTabItem,
1789
1790
  cellProps: () => cellProps,
1791
+ columnIsFieldColumn: () => columnIsFieldColumn,
1790
1792
  createTabsComponent: () => createTabsComponent,
1791
1793
  toSortDirection: () => toSortDirection,
1792
1794
  usePagination: () => usePagination,
@@ -5100,6 +5102,7 @@ var Wrapper = import_react45.default.forwardRef(
5100
5102
  style = {},
5101
5103
  placement = "bottom-left",
5102
5104
  role,
5105
+ focusable = true,
5103
5106
  isNonModal = false,
5104
5107
  autoFocus,
5105
5108
  containFocus,
@@ -5112,6 +5115,7 @@ var Wrapper = import_react45.default.forwardRef(
5112
5115
  "style",
5113
5116
  "placement",
5114
5117
  "role",
5118
+ "focusable",
5115
5119
  "isNonModal",
5116
5120
  "autoFocus",
5117
5121
  "containFocus",
@@ -5135,7 +5139,7 @@ var Wrapper = import_react45.default.forwardRef(
5135
5139
  );
5136
5140
  return /* @__PURE__ */ import_react45.default.createElement("div", null, !isNonModal && /* @__PURE__ */ import_react45.default.createElement(Popover.Underlay, __spreadValues({}, underlayProps)), /* @__PURE__ */ import_react45.default.createElement(Popover.Panel, __spreadProps(__spreadValues({
5137
5141
  ref: popoverRef,
5138
- tabIndex: 0,
5142
+ tabIndex: focusable ? 0 : -1,
5139
5143
  role: role != null ? role : "presentation"
5140
5144
  }, popoverProps), {
5141
5145
  id: id != null ? id : popoverProps.id,
@@ -5348,7 +5352,6 @@ var Container2 = ({ maxWidth = "xl", children }) => /* @__PURE__ */ import_react
5348
5352
 
5349
5353
  // src/molecules/DataList/DataList.tsx
5350
5354
  var import_react53 = __toESM(require("react"));
5351
- var import_orderBy2 = __toESM(require("lodash/orderBy"));
5352
5355
 
5353
5356
  // src/molecules/Template/Template.tsx
5354
5357
  var import_react48 = __toESM(require("react"));
@@ -5609,29 +5612,49 @@ var cellProps = (column) => ({
5609
5612
  key: column.key || column.headerName,
5610
5613
  align: column.type === "number" || column.type === "action" ? "right" : "left"
5611
5614
  });
5615
+ var columnIsFieldColumn = (column) => Boolean(column && column.field);
5612
5616
 
5613
5617
  // src/utils/table/useTableSort.tsx
5614
5618
  var import_react52 = __toESM(require("react"));
5615
5619
  var useTableSort = () => {
5616
5620
  const [sort, setSort] = import_react52.default.useState();
5617
- const handleSortClick = (field) => {
5618
- if ((sort == null ? void 0 : sort.key) === field) {
5621
+ const handleSortClick = (column) => {
5622
+ if (sort && sort.column.headerName === column.headerName) {
5619
5623
  if (sort.direction === "ascending") {
5620
- setSort({ key: field, direction: "descending" });
5624
+ setSort({ column, direction: "descending" });
5621
5625
  } else {
5622
5626
  setSort(void 0);
5623
5627
  }
5624
5628
  } else {
5625
- setSort({ key: field, direction: "ascending" });
5629
+ setSort({ column, direction: "ascending" });
5626
5630
  }
5627
5631
  };
5628
5632
  return [sort, handleSortClick];
5629
5633
  };
5630
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)]);
5646
+ }
5647
+ return rows;
5648
+ };
5649
+
5631
5650
  // src/molecules/DataList/DataList.tsx
5632
- var DataList2 = ({ columns, rows, sticky }) => {
5651
+ var DataList2 = ({
5652
+ columns,
5653
+ rows,
5654
+ sticky
5655
+ }) => {
5633
5656
  const [sort, updateSort] = useTableSort();
5634
- const sortedRows = (0, import_orderBy2.default)(rows, [sort == null ? void 0 : sort.key], [toSortDirection(sort == null ? void 0 : sort.direction)]);
5657
+ const sortedRows = sortRowsBy(rows, sort);
5635
5658
  const templateColumns = columns.map((column) => {
5636
5659
  var _a;
5637
5660
  return (_a = column.width) != null ? _a : "auto";
@@ -5639,9 +5662,9 @@ var DataList2 = ({ columns, rows, sticky }) => {
5639
5662
  return /* @__PURE__ */ import_react53.default.createElement(Template, {
5640
5663
  columns: templateColumns
5641
5664
  }, columns.map(
5642
- (column) => (column.type === "text" || column.type === "number") && column.sortable ? /* @__PURE__ */ import_react53.default.createElement(DataList.SortCell, __spreadValues({
5643
- direction: sort && sort.key === column.field ? sort.direction : "none",
5644
- onClick: () => updateSort(column.field),
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),
5645
5668
  sticky
5646
5669
  }, cellProps(column)), column.headerName) : /* @__PURE__ */ import_react53.default.createElement(DataList.HeadCell, __spreadProps(__spreadValues({}, cellProps(column)), {
5647
5670
  sticky
@@ -5656,14 +5679,13 @@ var DataList2 = ({ columns, rows, sticky }) => {
5656
5679
  dense: true
5657
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({
5658
5681
  dense: true
5659
- }, 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, null, /* @__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])
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])
5660
5683
  }))
5661
5684
  }));
5662
5685
  };
5663
5686
 
5664
5687
  // src/molecules/DataTable/DataTable.tsx
5665
5688
  var import_react56 = __toESM(require("react"));
5666
- var import_orderBy3 = __toESM(require("lodash/orderBy"));
5667
5689
 
5668
5690
  // src/molecules/Table/Table.tsx
5669
5691
  var import_react55 = __toESM(require("react"));
@@ -5723,7 +5745,7 @@ var DataTable = (_a) => {
5723
5745
  "sticky"
5724
5746
  ]);
5725
5747
  const [sort, updateSort] = useTableSort();
5726
- const sortedRows = (0, import_orderBy3.default)(rows, [sort == null ? void 0 : sort.key], [toSortDirection(sort == null ? void 0 : sort.direction)]);
5748
+ const sortedRows = sortRowsBy(rows, sort);
5727
5749
  return /* @__PURE__ */ import_react56.default.createElement(Table2, __spreadProps(__spreadValues({}, rest), {
5728
5750
  className: tw({
5729
5751
  "whitespace-nowrap": noWrap,
@@ -5733,9 +5755,9 @@ var DataTable = (_a) => {
5733
5755
  }), /* @__PURE__ */ import_react56.default.createElement(Table2.Head, {
5734
5756
  sticky
5735
5757
  }, columns.map(
5736
- (column) => (column.type === "text" || column.type === "number") && column.sortable ? /* @__PURE__ */ import_react56.default.createElement(Table2.SortCell, __spreadValues({
5737
- direction: sort && sort.key === column.field ? sort.direction : "none",
5738
- onClick: () => updateSort(column.field),
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),
5739
5761
  style: { width: column.width },
5740
5762
  "aria-label": column.headerInvisible ? column.headerName : void 0
5741
5763
  }, cellProps(column)), !column.headerInvisible && column.headerName) : /* @__PURE__ */ import_react56.default.createElement(Table2.Cell, __spreadProps(__spreadValues({}, cellProps(column)), {
@@ -5761,7 +5783,7 @@ var DataTable = (_a) => {
5761
5783
  var import_react58 = __toESM(require("react"));
5762
5784
  var import_dialog = require("@react-aria/dialog");
5763
5785
  var import_overlays6 = require("@react-aria/overlays");
5764
- var import_utils3 = require("@react-aria/utils");
5786
+ var import_utils5 = require("@react-aria/utils");
5765
5787
  var import_overlays7 = require("@react-stately/overlays");
5766
5788
  var import_omit6 = __toESM(require("lodash/omit"));
5767
5789
 
@@ -5909,15 +5931,17 @@ var DialogWrapper = ({
5909
5931
  secondaryAction
5910
5932
  }) => {
5911
5933
  const ref = import_react58.default.useRef(null);
5912
- const labelledBy = (0, import_utils3.useId)();
5913
- const describedBy = (0, import_utils3.useId)();
5934
+ const labelledBy = (0, import_utils5.useId)();
5935
+ const describedBy = (0, import_utils5.useId)();
5914
5936
  const { dialogProps } = (0, import_dialog.useDialog)(
5915
5937
  { "role": "alertdialog", "aria-labelledby": labelledBy, "aria-describedby": describedBy },
5916
5938
  ref
5917
5939
  );
5918
- return /* @__PURE__ */ import_react58.default.createElement("div", __spreadValues({
5940
+ return /* @__PURE__ */ import_react58.default.createElement("div", __spreadProps(__spreadValues({
5919
5941
  ref
5920
- }, dialogProps), /* @__PURE__ */ import_react58.default.createElement(Modal.Header, null, /* @__PURE__ */ import_react58.default.createElement(Icon, {
5942
+ }, dialogProps), {
5943
+ className: tw("outline-none")
5944
+ }), /* @__PURE__ */ import_react58.default.createElement(Modal.Header, null, /* @__PURE__ */ import_react58.default.createElement(Icon, {
5921
5945
  icon: DIALOG_ICONS_AND_COLORS[type].icon,
5922
5946
  color: DIALOG_ICONS_AND_COLORS[type].color,
5923
5947
  fontSize: 20
@@ -5972,7 +5996,7 @@ var import_react63 = __toESM(require("react"));
5972
5996
  var import_react62 = __toESM(require("react"));
5973
5997
  var import_interactions2 = require("@react-aria/interactions");
5974
5998
  var import_overlays8 = require("@react-aria/overlays");
5975
- var import_utils4 = require("@react-aria/utils");
5999
+ var import_utils6 = require("@react-aria/utils");
5976
6000
  var import_overlays9 = require("@react-stately/overlays");
5977
6001
 
5978
6002
  // src/molecules/Popover/Dialog.tsx
@@ -6076,7 +6100,7 @@ var PopoverTriggerWrapper = (_a) => {
6076
6100
  const { pressProps } = (0, import_interactions2.usePress)(__spreadProps(__spreadValues({}, rest), { ref }));
6077
6101
  return import_react62.default.cloneElement(trigger, __spreadProps(__spreadValues({
6078
6102
  "ref": ref
6079
- }, (0, import_utils4.mergeProps)(pressProps, trigger.props)), {
6103
+ }, (0, import_utils6.mergeProps)(pressProps, trigger.props)), {
6080
6104
  "aria-controls": (_a2 = rest["aria-controls"]) != null ? _a2 : pressProps["aria-controls"]
6081
6105
  }));
6082
6106
  };
@@ -6201,7 +6225,7 @@ var import_i18n = require("@react-aria/i18n");
6201
6225
  var import_interactions3 = require("@react-aria/interactions");
6202
6226
  var import_menu = require("@react-aria/menu");
6203
6227
  var import_separator = require("@react-aria/separator");
6204
- var import_utils6 = require("@react-aria/utils");
6228
+ var import_utils8 = require("@react-aria/utils");
6205
6229
  var import_collections = require("@react-stately/collections");
6206
6230
  var import_menu2 = require("@react-stately/menu");
6207
6231
  var import_tree = require("@react-stately/tree");
@@ -6486,7 +6510,8 @@ var DropdownMenu3 = (_a) => {
6486
6510
  }, menuTriggerProps), /* @__PURE__ */ import_react67.default.createElement(TriggerWrapper, null, trigger.props.children)), state.isOpen && /* @__PURE__ */ import_react67.default.createElement(PopoverOverlay, {
6487
6511
  triggerRef,
6488
6512
  state,
6489
- placement
6513
+ placement,
6514
+ focusable: false
6490
6515
  }, /* @__PURE__ */ import_react67.default.createElement(MenuWrapper, __spreadValues({
6491
6516
  onAction,
6492
6517
  selectionMode,
@@ -6518,7 +6543,7 @@ var TriggerWrapper = (_a) => {
6518
6543
  if (!trigger || !import_react67.default.isValidElement(trigger)) {
6519
6544
  throw new Error("<DropdownMenu.Trigger> must have valid child");
6520
6545
  }
6521
- return import_react67.default.cloneElement(trigger, __spreadValues({ ref }, (0, import_utils6.mergeProps)(pressProps, props)));
6546
+ return import_react67.default.cloneElement(trigger, __spreadValues({ ref }, (0, import_utils8.mergeProps)(pressProps, props)));
6522
6547
  };
6523
6548
  var isSectionNode = (item) => item.type === "section";
6524
6549
  var isItemNode = (item) => item.type === "item";
@@ -6882,7 +6907,7 @@ var ListItem = ({ name, icon, active = false }) => {
6882
6907
  var import_react77 = __toESM(require("react"));
6883
6908
  var import_dialog3 = require("@react-aria/dialog");
6884
6909
  var import_overlays10 = require("@react-aria/overlays");
6885
- var import_utils9 = require("@react-aria/utils");
6910
+ var import_utils11 = require("@react-aria/utils");
6886
6911
  var import_overlays11 = require("@react-stately/overlays");
6887
6912
  var import_castArray = __toESM(require("lodash/castArray"));
6888
6913
  var import_omit9 = __toESM(require("lodash/omit"));
@@ -7203,8 +7228,8 @@ var Modal2 = (props) => {
7203
7228
  var ModalWrapper = import_react77.default.forwardRef(
7204
7229
  (_a, ref) => {
7205
7230
  var _b = _a, { title, subtitle, headerImage, primaryAction, secondaryActions, children, onClose } = _b, props = __objRest(_b, ["title", "subtitle", "headerImage", "primaryAction", "secondaryActions", "children", "onClose"]);
7206
- const labelledBy = (0, import_utils9.useId)();
7207
- const describedBy = (0, import_utils9.useId)();
7231
+ const labelledBy = (0, import_utils11.useId)();
7232
+ const describedBy = (0, import_utils11.useId)();
7208
7233
  const { dialogProps } = (0, import_dialog3.useDialog)(
7209
7234
  { "role": "dialog", "aria-labelledby": labelledBy, "aria-describedby": describedBy },
7210
7235
  ref
@@ -9398,6 +9423,7 @@ var system_default = __spreadProps(__spreadValues({}, molecules_exports), {
9398
9423
  calcTopPosition,
9399
9424
  calcTopRightPosition,
9400
9425
  cellProps,
9426
+ columnIsFieldColumn,
9401
9427
  createComponent,
9402
9428
  createMountPointElement,
9403
9429
  createSimpleComponent,
package/dist/system.mjs CHANGED
@@ -1646,6 +1646,7 @@ __export(molecules_exports, {
1646
1646
  asPopoverButton: () => asPopoverButton,
1647
1647
  asTabItem: () => asTabItem,
1648
1648
  cellProps: () => cellProps,
1649
+ columnIsFieldColumn: () => columnIsFieldColumn,
1649
1650
  createTabsComponent: () => createTabsComponent,
1650
1651
  toSortDirection: () => toSortDirection,
1651
1652
  usePagination: () => usePagination,
@@ -4962,6 +4963,7 @@ var Wrapper = React40.forwardRef(
4962
4963
  style = {},
4963
4964
  placement = "bottom-left",
4964
4965
  role,
4966
+ focusable = true,
4965
4967
  isNonModal = false,
4966
4968
  autoFocus,
4967
4969
  containFocus,
@@ -4974,6 +4976,7 @@ var Wrapper = React40.forwardRef(
4974
4976
  "style",
4975
4977
  "placement",
4976
4978
  "role",
4979
+ "focusable",
4977
4980
  "isNonModal",
4978
4981
  "autoFocus",
4979
4982
  "containFocus",
@@ -4997,7 +5000,7 @@ var Wrapper = React40.forwardRef(
4997
5000
  );
4998
5001
  return /* @__PURE__ */ React40.createElement("div", null, !isNonModal && /* @__PURE__ */ React40.createElement(Popover.Underlay, __spreadValues({}, underlayProps)), /* @__PURE__ */ React40.createElement(Popover.Panel, __spreadProps(__spreadValues({
4999
5002
  ref: popoverRef,
5000
- tabIndex: 0,
5003
+ tabIndex: focusable ? 0 : -1,
5001
5004
  role: role != null ? role : "presentation"
5002
5005
  }, popoverProps), {
5003
5006
  id: id != null ? id : popoverProps.id,
@@ -5210,7 +5213,6 @@ var Container2 = ({ maxWidth = "xl", children }) => /* @__PURE__ */ React42.crea
5210
5213
 
5211
5214
  // src/molecules/DataList/DataList.tsx
5212
5215
  import React48 from "react";
5213
- import orderBy2 from "lodash/orderBy";
5214
5216
 
5215
5217
  // src/molecules/Template/Template.tsx
5216
5218
  import React43 from "react";
@@ -5471,29 +5473,49 @@ var cellProps = (column) => ({
5471
5473
  key: column.key || column.headerName,
5472
5474
  align: column.type === "number" || column.type === "action" ? "right" : "left"
5473
5475
  });
5476
+ var columnIsFieldColumn = (column) => Boolean(column && column.field);
5474
5477
 
5475
5478
  // src/utils/table/useTableSort.tsx
5476
5479
  import React47 from "react";
5477
5480
  var useTableSort = () => {
5478
5481
  const [sort, setSort] = React47.useState();
5479
- const handleSortClick = (field) => {
5480
- if ((sort == null ? void 0 : sort.key) === field) {
5482
+ const handleSortClick = (column) => {
5483
+ if (sort && sort.column.headerName === column.headerName) {
5481
5484
  if (sort.direction === "ascending") {
5482
- setSort({ key: field, direction: "descending" });
5485
+ setSort({ column, direction: "descending" });
5483
5486
  } else {
5484
5487
  setSort(void 0);
5485
5488
  }
5486
5489
  } else {
5487
- setSort({ key: field, direction: "ascending" });
5490
+ setSort({ column, direction: "ascending" });
5488
5491
  }
5489
5492
  };
5490
5493
  return [sort, handleSortClick];
5491
5494
  };
5492
5495
 
5496
+ // src/utils/table/utils.ts
5497
+ import orderBy2 from "lodash/orderBy";
5498
+ var sortRowsBy = (rows, sort) => {
5499
+ if (!sort) {
5500
+ return rows;
5501
+ }
5502
+ const sortFunction = sort.column.sort;
5503
+ if (sortFunction) {
5504
+ return [...rows].sort((a, b) => sortFunction(a, b, sort.direction));
5505
+ } else if (columnIsFieldColumn(sort.column)) {
5506
+ return orderBy2(rows, [sort.column.field], [toSortDirection(sort.direction)]);
5507
+ }
5508
+ return rows;
5509
+ };
5510
+
5493
5511
  // src/molecules/DataList/DataList.tsx
5494
- var DataList2 = ({ columns, rows, sticky }) => {
5512
+ var DataList2 = ({
5513
+ columns,
5514
+ rows,
5515
+ sticky
5516
+ }) => {
5495
5517
  const [sort, updateSort] = useTableSort();
5496
- const sortedRows = orderBy2(rows, [sort == null ? void 0 : sort.key], [toSortDirection(sort == null ? void 0 : sort.direction)]);
5518
+ const sortedRows = sortRowsBy(rows, sort);
5497
5519
  const templateColumns = columns.map((column) => {
5498
5520
  var _a;
5499
5521
  return (_a = column.width) != null ? _a : "auto";
@@ -5501,9 +5523,9 @@ var DataList2 = ({ columns, rows, sticky }) => {
5501
5523
  return /* @__PURE__ */ React48.createElement(Template, {
5502
5524
  columns: templateColumns
5503
5525
  }, columns.map(
5504
- (column) => (column.type === "text" || column.type === "number") && column.sortable ? /* @__PURE__ */ React48.createElement(DataList.SortCell, __spreadValues({
5505
- direction: sort && sort.key === column.field ? sort.direction : "none",
5506
- onClick: () => updateSort(column.field),
5526
+ (column) => columnIsFieldColumn(column) && column.sortable || column.sort ? /* @__PURE__ */ React48.createElement(DataList.SortCell, __spreadValues({
5527
+ direction: sort && sort.column.headerName === column.headerName ? sort.direction : "none",
5528
+ onClick: () => updateSort(column),
5507
5529
  sticky
5508
5530
  }, cellProps(column)), column.headerName) : /* @__PURE__ */ React48.createElement(DataList.HeadCell, __spreadProps(__spreadValues({}, cellProps(column)), {
5509
5531
  sticky
@@ -5518,14 +5540,13 @@ var DataList2 = ({ columns, rows, sticky }) => {
5518
5540
  dense: true
5519
5541
  }, column.status(row, index, sortedRows)))) : column.type === "action" ? /* @__PURE__ */ React48.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ React48.createElement(SecondaryButton, __spreadValues({
5520
5542
  dense: true
5521
- }, renameProperty("text", "children", column.action(row, index, sortedRows))))) : column.type === "custom" ? /* @__PURE__ */ React48.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows)) : column.type === "item" ? /* @__PURE__ */ React48.createElement(DataList.Cell, null, /* @__PURE__ */ React48.createElement(Item2, __spreadValues({}, column.item(row, index, sortedRows)))) : /* @__PURE__ */ React48.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.formatter ? column.formatter(row[column.field], row, index, sortedRows) : row[column.field])
5543
+ }, renameProperty("text", "children", column.action(row, index, sortedRows))))) : column.type === "custom" ? /* @__PURE__ */ React48.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows)) : column.type === "item" ? /* @__PURE__ */ React48.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), /* @__PURE__ */ React48.createElement(Item2, __spreadValues({}, column.item(row, index, sortedRows)))) : /* @__PURE__ */ React48.createElement(DataList.Cell, __spreadValues({}, cellProps(column)), column.formatter ? column.formatter(row[column.field], row, index, sortedRows) : row[column.field])
5522
5544
  }))
5523
5545
  }));
5524
5546
  };
5525
5547
 
5526
5548
  // src/molecules/DataTable/DataTable.tsx
5527
5549
  import React51 from "react";
5528
- import orderBy3 from "lodash/orderBy";
5529
5550
 
5530
5551
  // src/molecules/Table/Table.tsx
5531
5552
  import React50 from "react";
@@ -5585,7 +5606,7 @@ var DataTable = (_a) => {
5585
5606
  "sticky"
5586
5607
  ]);
5587
5608
  const [sort, updateSort] = useTableSort();
5588
- const sortedRows = orderBy3(rows, [sort == null ? void 0 : sort.key], [toSortDirection(sort == null ? void 0 : sort.direction)]);
5609
+ const sortedRows = sortRowsBy(rows, sort);
5589
5610
  return /* @__PURE__ */ React51.createElement(Table2, __spreadProps(__spreadValues({}, rest), {
5590
5611
  className: tw({
5591
5612
  "whitespace-nowrap": noWrap,
@@ -5595,9 +5616,9 @@ var DataTable = (_a) => {
5595
5616
  }), /* @__PURE__ */ React51.createElement(Table2.Head, {
5596
5617
  sticky
5597
5618
  }, columns.map(
5598
- (column) => (column.type === "text" || column.type === "number") && column.sortable ? /* @__PURE__ */ React51.createElement(Table2.SortCell, __spreadValues({
5599
- direction: sort && sort.key === column.field ? sort.direction : "none",
5600
- onClick: () => updateSort(column.field),
5619
+ (column) => columnIsFieldColumn(column) && column.sortable || column.sort ? /* @__PURE__ */ React51.createElement(Table2.SortCell, __spreadValues({
5620
+ direction: sort && sort.column.headerName === column.headerName ? sort.direction : "none",
5621
+ onClick: () => updateSort(column),
5601
5622
  style: { width: column.width },
5602
5623
  "aria-label": column.headerInvisible ? column.headerName : void 0
5603
5624
  }, cellProps(column)), !column.headerInvisible && column.headerName) : /* @__PURE__ */ React51.createElement(Table2.Cell, __spreadProps(__spreadValues({}, cellProps(column)), {
@@ -5777,9 +5798,11 @@ var DialogWrapper = ({
5777
5798
  { "role": "alertdialog", "aria-labelledby": labelledBy, "aria-describedby": describedBy },
5778
5799
  ref
5779
5800
  );
5780
- return /* @__PURE__ */ React53.createElement("div", __spreadValues({
5801
+ return /* @__PURE__ */ React53.createElement("div", __spreadProps(__spreadValues({
5781
5802
  ref
5782
- }, dialogProps), /* @__PURE__ */ React53.createElement(Modal.Header, null, /* @__PURE__ */ React53.createElement(Icon, {
5803
+ }, dialogProps), {
5804
+ className: tw("outline-none")
5805
+ }), /* @__PURE__ */ React53.createElement(Modal.Header, null, /* @__PURE__ */ React53.createElement(Icon, {
5783
5806
  icon: DIALOG_ICONS_AND_COLORS[type].icon,
5784
5807
  color: DIALOG_ICONS_AND_COLORS[type].color,
5785
5808
  fontSize: 20
@@ -6348,7 +6371,8 @@ var DropdownMenu3 = (_a) => {
6348
6371
  }, menuTriggerProps), /* @__PURE__ */ React61.createElement(TriggerWrapper, null, trigger.props.children)), state.isOpen && /* @__PURE__ */ React61.createElement(PopoverOverlay, {
6349
6372
  triggerRef,
6350
6373
  state,
6351
- placement
6374
+ placement,
6375
+ focusable: false
6352
6376
  }, /* @__PURE__ */ React61.createElement(MenuWrapper, __spreadValues({
6353
6377
  onAction,
6354
6378
  selectionMode,
@@ -9260,6 +9284,7 @@ export {
9260
9284
  calcTopPosition,
9261
9285
  calcTopRightPosition,
9262
9286
  cellProps,
9287
+ columnIsFieldColumn,
9263
9288
  createComponent,
9264
9289
  createMountPointElement,
9265
9290
  createSimpleComponent,