@octaviaflow/core 3.0.18-beta.4 → 3.0.18-beta.6

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.
@@ -56,11 +56,23 @@ export interface DataTableBulkAction<T = any> {
56
56
  onClick: (selectedRows: T[], selectedIndexes: number[]) => void;
57
57
  }
58
58
  export interface DataTablePagination {
59
+ /**
60
+ * Controlled OR initial page size. When `onPageSizeChange` is also passed
61
+ * this acts as a controlled value (consumer owns the state). Otherwise
62
+ * we use it as the initial value and own the state internally — picks
63
+ * from the Rows select then sync into our internal state.
64
+ */
59
65
  pageSize?: number;
60
66
  pageSizes?: number[];
61
67
  /** Controlled page (1-indexed). If omitted, internal state. */
62
68
  page?: number;
63
69
  onPageChange?: (page: number) => void;
70
+ /**
71
+ * Fires when the user picks a new value from the Rows-per-page select.
72
+ * Pair with a controlled `pageSize` for fully-controlled pagination.
73
+ * When omitted, the table owns the page-size state internally.
74
+ */
75
+ onPageSizeChange?: (pageSize: number) => void;
64
76
  /** When false, server-side pagination (don't slice client data). */
65
77
  clientSide?: boolean;
66
78
  /** Total rows when server-side. */
@@ -98,8 +110,14 @@ export interface DataTableProps<T extends Record<string, any> = Record<string, a
98
110
  expandable?: boolean;
99
111
  renderExpanded?: (row: T, index: number) => ReactNode;
100
112
  pagination?: DataTablePagination | true;
113
+ /**
114
+ * Row density. Default `"comfortable"`. The user-facing density toggle
115
+ * has been removed from the toolbar; future revisions will source this
116
+ * from a per-account preference (server-side) so the choice persists
117
+ * across pages and machines. Pass explicitly only when a specific
118
+ * surface needs a denser look (rare).
119
+ */
101
120
  density?: DataTableDensity;
102
- showDensityToggle?: boolean;
103
121
  showColumnSettings?: boolean;
104
122
  loading?: boolean;
105
123
  error?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DataTable/DataTable.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AASf,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;qDACiD;IACjD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;qDAIiD;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyHD,eAAO,MAAM,MAAM,2GAiTjB,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AASf,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;qDACiD;IACjD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;qDAIiD;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyHD,eAAO,MAAM,MAAM,2GAiVjB,CAAC"}
package/dist/index.cjs CHANGED
@@ -4906,7 +4906,7 @@ var Select = (0, import_react33.forwardRef)(function Select2({
4906
4906
  const dropdownRef = (0, import_react33.useRef)(null);
4907
4907
  const searchRef = (0, import_react33.useRef)(null);
4908
4908
  const [searchQuery, setSearchQuery] = (0, import_react33.useState)("");
4909
- const [dropdownPos, setDropdownPos] = (0, import_react33.useState)({ top: 0, left: 0, width: 0 });
4909
+ const [dropdownPos, setDropdownPos] = (0, import_react33.useState)({ left: 0, width: 0, maxHeight: 240, direction: "down" });
4910
4910
  const setTriggerRef = (node) => {
4911
4911
  triggerRef.current = node;
4912
4912
  if (typeof forwardedRef === "function") forwardedRef(node);
@@ -4967,10 +4967,19 @@ var Select = (0, import_react33.forwardRef)(function Select2({
4967
4967
  const updatePosition = (0, import_react33.useCallback)(() => {
4968
4968
  if (!triggerRef.current) return;
4969
4969
  const rect = triggerRef.current.getBoundingClientRect();
4970
+ const viewportH = window.innerHeight;
4971
+ const margin = 8;
4972
+ const gap = 4;
4973
+ const spaceBelow = viewportH - rect.bottom - gap - margin;
4974
+ const spaceAbove = rect.top - gap - margin;
4975
+ const PREFERRED_MIN = 200;
4976
+ const openUp = spaceBelow < PREFERRED_MIN && spaceAbove > spaceBelow;
4970
4977
  setDropdownPos({
4971
- top: rect.bottom + 4,
4978
+ ...openUp ? { bottom: viewportH - rect.top + gap } : { top: rect.bottom + gap },
4972
4979
  left: rect.left,
4973
- width: rect.width
4980
+ width: rect.width,
4981
+ maxHeight: Math.max(120, openUp ? spaceAbove : spaceBelow),
4982
+ direction: openUp ? "up" : "down"
4974
4983
  });
4975
4984
  }, []);
4976
4985
  (0, import_react33.useEffect)(() => {
@@ -5062,7 +5071,8 @@ var Select = (0, import_react33.forwardRef)(function Select2({
5062
5071
  className: "ods-select__dropdown",
5063
5072
  style: {
5064
5073
  position: "fixed",
5065
- top: dropdownPos.top,
5074
+ ...dropdownPos.top !== void 0 && { top: dropdownPos.top },
5075
+ ...dropdownPos.bottom !== void 0 && { bottom: dropdownPos.bottom },
5066
5076
  left: dropdownPos.left,
5067
5077
  // `minWidth` (not `width`) keeps the popover at
5068
5078
  // least as wide as the trigger — preserves visual
@@ -5072,7 +5082,12 @@ var Select = (0, import_react33.forwardRef)(function Select2({
5072
5082
  // Avoids the previous `max-content` recipe which
5073
5083
  // made the popover grow uncomfortably wide on
5074
5084
  // searchable / long-option menus.
5075
- minWidth: Math.max(dropdownPos.width, dropdownMinWidth ?? 0)
5085
+ minWidth: Math.max(dropdownPos.width, dropdownMinWidth ?? 0),
5086
+ // Bound the popover to the available viewport edge so
5087
+ // it never spills off-screen on tall pages. Pairs with
5088
+ // `overflow-y: auto` from the .ods-select__dropdown
5089
+ // SCSS so long option lists scroll internally.
5090
+ maxHeight: dropdownPos.maxHeight
5076
5091
  },
5077
5092
  initial: { opacity: 0, scale: 0.95 },
5078
5093
  animate: { opacity: 1, scale: 1 },
@@ -10518,44 +10533,6 @@ function FilterPopover({
10518
10533
  ] }) })
10519
10534
  ] });
10520
10535
  }
10521
- function DensityPopover({
10522
- density,
10523
- setDensity,
10524
- open,
10525
- setOpen
10526
- }) {
10527
- const triggerRef = (0, import_react52.useRef)(null);
10528
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ods-datatable__filter", children: [
10529
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10530
- "button",
10531
- {
10532
- ref: triggerRef,
10533
- type: "button",
10534
- className: "ods-datatable__icon-btn",
10535
- onClick: () => setOpen(!open),
10536
- "aria-label": "Row density",
10537
- "aria-haspopup": "listbox",
10538
- "aria-expanded": open,
10539
- children: DensityIcon
10540
- }
10541
- ),
10542
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PortalMenu, { open, onClose: () => setOpen(false), triggerRef, align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("ul", { role: "listbox", style: { listStyle: "none", margin: 0, padding: 0 }, children: ["compact", "default", "comfortable"].map((d) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10543
- "button",
10544
- {
10545
- type: "button",
10546
- className: cn(
10547
- "ods-datatable__menu-item",
10548
- density === d && "ods-datatable__menu-item--active"
10549
- ),
10550
- onClick: () => {
10551
- setDensity(d);
10552
- setOpen(false);
10553
- },
10554
- children: d.charAt(0).toUpperCase() + d.slice(1)
10555
- }
10556
- ) }, d)) }) })
10557
- ] });
10558
- }
10559
10536
  function ColumnsPopover({
10560
10537
  columns,
10561
10538
  hidden,
@@ -10616,7 +10593,6 @@ var SortDesc = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.Care
10616
10593
  var SortIdle = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.CaretSortIcon, { width: 10, height: 10, "aria-hidden": "true", style: { opacity: 0.5 } });
10617
10594
  var FilterIcon = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.FilterIcon, { width: 12, height: 12, "aria-hidden": "true" });
10618
10595
  var ColumnsIcon = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.ColumnIcon, { width: 12, height: 12, "aria-hidden": "true" });
10619
- var DensityIcon = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.MenuIcon, { width: 12, height: 12, "aria-hidden": "true" });
10620
10596
  var MoreHIcon = () => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.OverflowMenuHorizontalIcon, { width: 12, height: 12, "aria-hidden": "true" });
10621
10597
  var XIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.CloseIcon, { width: 12, height: 12, "aria-hidden": "true" });
10622
10598
  var RefreshIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_icons12.RenewIcon, { width: 12, height: 12, ...props });
@@ -10706,8 +10682,7 @@ function DataTable(props) {
10706
10682
  expandable = false,
10707
10683
  renderExpanded,
10708
10684
  pagination,
10709
- density: densityProp = "default",
10710
- showDensityToggle = true,
10685
+ density: densityProp = "comfortable",
10711
10686
  showColumnSettings = true,
10712
10687
  loading = false,
10713
10688
  error,
@@ -10771,9 +10746,7 @@ function DataTable(props) {
10771
10746
  );
10772
10747
  }, [filters, filterValues]);
10773
10748
  const [columnWidths, setColumnWidths] = (0, import_react52.useState)({});
10774
- const [density, setDensity] = (0, import_react52.useState)(densityProp);
10775
- const [densityOpen, setDensityOpen] = (0, import_react52.useState)(false);
10776
- (0, import_react52.useEffect)(() => setDensity(densityProp), [densityProp]);
10749
+ const density = densityProp;
10777
10750
  const [hiddenCols, setHiddenCols] = (0, import_react52.useState)(
10778
10751
  () => new Set(columns.filter((c) => c.visible === false).map((c) => c.key))
10779
10752
  );
@@ -10784,11 +10757,21 @@ function DataTable(props) {
10784
10757
  const [internalPage, setInternalPage] = (0, import_react52.useState)(1);
10785
10758
  const [internalPageSize, setInternalPageSize] = (0, import_react52.useState)(pgCfg?.pageSize ?? 10);
10786
10759
  const page = pgCfg?.page ?? internalPage;
10787
- const pageSize = pgCfg?.pageSize ?? internalPageSize;
10760
+ (0, import_react52.useEffect)(() => {
10761
+ if (pgCfg?.pageSize !== void 0 && pgCfg.pageSize !== internalPageSize) {
10762
+ setInternalPageSize(pgCfg.pageSize);
10763
+ }
10764
+ }, [pgCfg?.pageSize]);
10765
+ const pageSize = internalPageSize;
10788
10766
  const setPage = (p) => {
10789
10767
  pgCfg?.onPageChange?.(p);
10790
10768
  if (pgCfg?.page === void 0) setInternalPage(p);
10791
10769
  };
10770
+ const setPageSize = (n) => {
10771
+ setInternalPageSize(n);
10772
+ pgCfg?.onPageSizeChange?.(n);
10773
+ setPage(1);
10774
+ };
10792
10775
  const idOf = (0, import_react52.useCallback)(
10793
10776
  (row, idx) => getRowId ? getRowId(row, idx) : String(idx),
10794
10777
  [getRowId]
@@ -10950,27 +10933,16 @@ function DataTable(props) {
10950
10933
  f.key
10951
10934
  ))
10952
10935
  ] }),
10953
- (showDensityToggle || showColumnSettings) && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ods-datatable__toolbar-section ods-datatable__toolbar-section--view", children: [
10954
- showDensityToggle && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10955
- DensityPopover,
10956
- {
10957
- density,
10958
- setDensity,
10959
- open: densityOpen,
10960
- setOpen: setDensityOpen
10961
- }
10962
- ),
10963
- showColumnSettings && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10964
- ColumnsPopover,
10965
- {
10966
- columns,
10967
- hidden: hiddenCols,
10968
- setHidden: setHiddenCols,
10969
- open: colSettingsOpen,
10970
- setOpen: setColSettingsOpen
10971
- }
10972
- )
10973
- ] }),
10936
+ showColumnSettings && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "ods-datatable__toolbar-section ods-datatable__toolbar-section--view", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10937
+ ColumnsPopover,
10938
+ {
10939
+ columns,
10940
+ hidden: hiddenCols,
10941
+ setHidden: setHiddenCols,
10942
+ open: colSettingsOpen,
10943
+ setOpen: setColSettingsOpen
10944
+ }
10945
+ ) }),
10974
10946
  (showRefresh || showExport) && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ods-datatable__toolbar-section ods-datatable__toolbar-section--data", children: [
10975
10947
  showRefresh && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10976
10948
  "button",
@@ -11246,10 +11218,7 @@ function DataTable(props) {
11246
11218
  "aria-label": "Rows per page",
11247
11219
  value: String(pageSize),
11248
11220
  options: pageSizes.map((n) => ({ value: String(n), label: String(n) })),
11249
- onChange: (v) => {
11250
- setInternalPageSize(Number(v));
11251
- setPage(1);
11252
- }
11221
+ onChange: (v) => setPageSize(Number(v))
11253
11222
  }
11254
11223
  )
11255
11224
  ] }),