@multiplatform.one/table 7.10.0 → 7.11.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 (84) hide show
  1. package/README.md +60 -0
  2. package/dist/cjs/components/DataTable/DataTableCardControls.cjs +90 -54
  3. package/dist/cjs/components/DataTable/DataTableCardControls.native.js +93 -56
  4. package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
  5. package/dist/cjs/components/DataTable/DataTableRoot.cjs +51 -8
  6. package/dist/cjs/components/DataTable/DataTableRoot.native.js +53 -9
  7. package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
  8. package/dist/cjs/components/DataTableFilterButton/index.cjs +14 -0
  9. package/dist/cjs/components/DataTableFilterButton/index.native.js +15 -0
  10. package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
  11. package/dist/cjs/components/DataTableToolbar/index.cjs +178 -101
  12. package/dist/cjs/components/DataTableToolbar/index.native.js +187 -109
  13. package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
  14. package/dist/cjs/hooks/useDataTable.cjs +32 -1
  15. package/dist/cjs/hooks/useDataTable.native.js +37 -1
  16. package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
  17. package/dist/esm/components/DataTable/DataTableCardControls.mjs +89 -54
  18. package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
  19. package/dist/esm/components/DataTable/DataTableCardControls.native.js +92 -56
  20. package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
  21. package/dist/esm/components/DataTable/DataTableRoot.mjs +53 -10
  22. package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
  23. package/dist/esm/components/DataTable/DataTableRoot.native.js +55 -11
  24. package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
  25. package/dist/esm/components/DataTableFilterButton/index.mjs +14 -1
  26. package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
  27. package/dist/esm/components/DataTableFilterButton/index.native.js +15 -1
  28. package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
  29. package/dist/esm/components/DataTableToolbar/index.mjs +180 -104
  30. package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
  31. package/dist/esm/components/DataTableToolbar/index.native.js +189 -112
  32. package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
  33. package/dist/esm/hooks/useDataTable.mjs +32 -1
  34. package/dist/esm/hooks/useDataTable.mjs.map +1 -1
  35. package/dist/esm/hooks/useDataTable.native.js +37 -1
  36. package/dist/esm/hooks/useDataTable.native.js.map +1 -1
  37. package/dist/jsx/components/DataTable/DataTableCardControls.mjs +89 -54
  38. package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
  39. package/dist/jsx/components/DataTable/DataTableCardControls.native.js +93 -56
  40. package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
  41. package/dist/jsx/components/DataTable/DataTableRoot.mjs +53 -10
  42. package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
  43. package/dist/jsx/components/DataTable/DataTableRoot.native.js +53 -9
  44. package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
  45. package/dist/jsx/components/DataTableFilterButton/index.mjs +14 -1
  46. package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
  47. package/dist/jsx/components/DataTableFilterButton/index.native.js +15 -0
  48. package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
  49. package/dist/jsx/components/DataTableToolbar/index.mjs +180 -104
  50. package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
  51. package/dist/jsx/components/DataTableToolbar/index.native.js +187 -109
  52. package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
  53. package/dist/jsx/hooks/useDataTable.mjs +32 -1
  54. package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
  55. package/dist/jsx/hooks/useDataTable.native.js +37 -1
  56. package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
  57. package/package.json +14 -14
  58. package/src/components/DataTable/DataTable.stories.tsx +59 -0
  59. package/src/components/DataTable/DataTableCardControls.stories.tsx +61 -2
  60. package/src/components/DataTable/DataTableCardControls.tsx +92 -66
  61. package/src/components/DataTable/DataTableRoot.tsx +82 -14
  62. package/src/components/DataTable/cardLayout.spec.tsx +4 -3
  63. package/src/components/DataTable/cardToolbar.spec.tsx +238 -0
  64. package/src/components/DataTable/chromeInterplay.spec.tsx +7 -5
  65. package/src/components/DataTable/columnWidthLayout.spec.tsx +189 -0
  66. package/src/components/DataTable/dataTableCardControls.spec.tsx +3 -2
  67. package/src/components/DataTable/footerLayout.spec.tsx +250 -0
  68. package/src/components/DataTable/pinningGeometry.spec.tsx +66 -1
  69. package/src/components/DataTableExport/DataTableExport.spec.tsx +42 -18
  70. package/src/components/DataTableFilterButton/index.tsx +9 -0
  71. package/src/components/DataTableToolbar/index.tsx +184 -105
  72. package/src/hooks/useDataTable.spec.ts +114 -0
  73. package/src/hooks/useDataTable.ts +23 -1
  74. package/src/types.ts +14 -12
  75. package/types/components/DataTable/DataTableCardControls.d.ts +3 -0
  76. package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
  77. package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
  78. package/types/components/DataTableFilterButton/index.d.ts +2 -1
  79. package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
  80. package/types/components/DataTableToolbar/index.d.ts +1 -0
  81. package/types/components/DataTableToolbar/index.d.ts.map +1 -1
  82. package/types/hooks/useDataTable.d.ts.map +1 -1
  83. package/types/types.d.ts +14 -12
  84. package/types/types.d.ts.map +1 -1
@@ -12,34 +12,112 @@ import { dataTableChrome } from "./dataTableChrome.native.js";
12
12
  function getColumnLabel(column) {
13
13
  return typeof column.columnDef.header === "string" ? column.columnDef.header : column.id;
14
14
  }
15
- function DataTableCardControls(param) {
15
+ function DataTableCardSortControl(param) {
16
16
  var {
17
17
  table,
18
- enableSorting = false,
19
- enableFiltering = false,
20
- availableColumns = [],
21
18
  compact = false,
22
- disabled = false
19
+ disabled = false,
20
+ contained = false
23
21
  } = param;
24
22
  var _table_getState_sorting;
25
23
  var {
26
24
  t
27
25
  } = useTranslation();
28
26
  var {
29
- knobProps,
30
- disabledState
27
+ knobProps
31
28
  } = useResolvedKnobs({
32
29
  component: "DataTable",
33
30
  compact
34
31
  });
35
32
  var chrome = dataTableChrome(String(knobProps.sizeToken));
36
33
  var [sortMenuOpen, setSortMenuOpen] = useState(false);
37
- var sortableColumns = enableSorting ? table.getVisibleLeafColumns().filter(function (col) {
34
+ var sortableColumns = table.getVisibleLeafColumns().filter(function (col) {
38
35
  return col.getCanSort();
39
- }) : [];
36
+ });
40
37
  var activeSort = (_table_getState_sorting = table.getState().sorting) === null || _table_getState_sorting === void 0 ? void 0 : _table_getState_sorting[0];
41
38
  var activeSortColumn = activeSort ? table.getColumn(activeSort.id) : void 0;
42
39
  var sortLabel = activeSortColumn ? `${getColumnLabel(activeSortColumn)} ${activeSort.desc ? "\u2193" : "\u2191"}` : t("Sort");
40
+ if (!sortableColumns.length) return null;
41
+ var menu = /* @__PURE__ */_jsxs(DropdownMenu, {
42
+ open: disabled ? false : sortMenuOpen,
43
+ onOpenChange: function onOpenChange(open) {
44
+ if (disabled) return;
45
+ setSortMenuOpen(open);
46
+ },
47
+ children: [/* @__PURE__ */_jsx(DropdownMenu.Trigger, {
48
+ asChild: true,
49
+ children: /* @__PURE__ */_jsx(Button, {
50
+ size: knobProps.sizeToken,
51
+ icon: /* @__PURE__ */_jsx(CaretUpDownIcon, {
52
+ size: chrome.iconPx
53
+ }),
54
+ "aria-label": t("Sort rows"),
55
+ ...(contained ? {
56
+ minWidth: 0,
57
+ maxWidth: "100%",
58
+ "aria-description": activeSortColumn ? sortLabel : void 0
59
+ } : {}),
60
+ disabled,
61
+ children: sortLabel
62
+ })
63
+ }), /* @__PURE__ */_jsxs(DropdownMenu.Content, {
64
+ children: [/* @__PURE__ */_jsx(DropdownMenu.Label, {
65
+ children: t("Sort by")
66
+ }), sortableColumns.map(function (column) {
67
+ var sorted = column.getIsSorted();
68
+ return /* @__PURE__ */_jsx(DropdownMenu.Item, {
69
+ closeOnSelect: false,
70
+ icon: sorted === "asc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
71
+ size: chrome.iconPx
72
+ }) : sorted === "desc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
73
+ size: chrome.iconPx,
74
+ style: {
75
+ transform: "rotate(180deg)"
76
+ }
77
+ }) : /* @__PURE__ */_jsx(CaretUpDownIcon, {
78
+ size: chrome.iconPx
79
+ }),
80
+ "aria-label": withInterp(t("Sort by {{column}}", {
81
+ column: getColumnLabel(column)
82
+ }), {
83
+ column: getColumnLabel(column)
84
+ }),
85
+ onSelect: function onSelect() {
86
+ if (sorted === false) column.toggleSorting(false);else if (sorted === "asc") column.toggleSorting(true);else column.clearSorting();
87
+ },
88
+ children: getColumnLabel(column)
89
+ }, column.id);
90
+ })]
91
+ })]
92
+ });
93
+ return contained ? /* @__PURE__ */_jsx(View, {
94
+ "data-table-card-sort": "",
95
+ flexBasis: "auto",
96
+ flexGrow: 0,
97
+ flexShrink: 1,
98
+ minWidth: 0,
99
+ maxWidth: "50%",
100
+ children: menu
101
+ }) : menu;
102
+ }
103
+ function DataTableCardControls(param) {
104
+ var {
105
+ table,
106
+ enableSorting = false,
107
+ enableFiltering = false,
108
+ availableColumns = [],
109
+ compact = false,
110
+ disabled = false
111
+ } = param;
112
+ var {
113
+ t
114
+ } = useTranslation();
115
+ var {
116
+ disabledState
117
+ } = useResolvedKnobs({
118
+ component: "DataTable",
119
+ compact
120
+ });
43
121
  if (!enableSorting && !enableFiltering) return null;
44
122
  return /* @__PURE__ */_jsxs(XStack, {
45
123
  alignItems: "center",
@@ -48,52 +126,10 @@ function DataTableCardControls(param) {
48
126
  paddingVertical: "$2",
49
127
  role: "toolbar",
50
128
  "aria-label": t("Card list controls"),
51
- children: [enableSorting && sortableColumns.length > 0 && /* @__PURE__ */_jsxs(DropdownMenu, {
52
- open: disabled ? false : sortMenuOpen,
53
- onOpenChange: function onOpenChange(open) {
54
- if (disabled) return;
55
- setSortMenuOpen(open);
56
- },
57
- children: [/* @__PURE__ */_jsx(DropdownMenu.Trigger, {
58
- asChild: true,
59
- children: /* @__PURE__ */_jsx(Button, {
60
- size: knobProps.sizeToken,
61
- icon: /* @__PURE__ */_jsx(CaretUpDownIcon, {
62
- size: chrome.iconPx
63
- }),
64
- "aria-label": t("Sort rows"),
65
- disabled,
66
- children: sortLabel
67
- })
68
- }), /* @__PURE__ */_jsxs(DropdownMenu.Content, {
69
- children: [/* @__PURE__ */_jsx(DropdownMenu.Label, {
70
- children: t("Sort by")
71
- }), sortableColumns.map(function (column) {
72
- var sorted = column.getIsSorted();
73
- return /* @__PURE__ */_jsx(DropdownMenu.Item, {
74
- closeOnSelect: false,
75
- icon: sorted === "asc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
76
- size: chrome.iconPx
77
- }) : sorted === "desc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
78
- size: chrome.iconPx,
79
- style: {
80
- transform: "rotate(180deg)"
81
- }
82
- }) : /* @__PURE__ */_jsx(CaretUpDownIcon, {
83
- size: chrome.iconPx
84
- }),
85
- "aria-label": withInterp(t("Sort by {{column}}", {
86
- column: getColumnLabel(column)
87
- }), {
88
- column: getColumnLabel(column)
89
- }),
90
- onSelect: function onSelect() {
91
- if (sorted === false) column.toggleSorting(false);else if (sorted === "asc") column.toggleSorting(true);else column.clearSorting();
92
- },
93
- children: getColumnLabel(column)
94
- }, column.id);
95
- })]
96
- })]
129
+ children: [enableSorting && /* @__PURE__ */_jsx(DataTableCardSortControl, {
130
+ table,
131
+ compact,
132
+ disabled
97
133
  }), enableFiltering && availableColumns.length > 0 &&
98
134
  // DataTableFilters (chrome) has no disabled API — the wrapper is the
99
135
  // LC-40 carrier and interaction gate for the disabled table.
@@ -110,5 +146,5 @@ function DataTableCardControls(param) {
110
146
  })]
111
147
  });
112
148
  }
113
- export { DataTableCardControls };
149
+ export { DataTableCardControls, DataTableCardSortControl };
114
150
  //# sourceMappingURL=DataTableCardControls.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","CaretDownIcon","CaretUpDownIcon","DropdownMenu","Button","useResolvedKnobs","useState","View","XStack","useTranslation","withInterp","DataTableFilters","dataTableChrome","getColumnLabel","column","columnDef","header","id","DataTableCardControls","param","table","enableSorting","enableFiltering","availableColumns","compact","disabled","_table_getState_sorting","t","knobProps","disabledState","component","chrome","String","sizeToken","sortMenuOpen","setSortMenuOpen","sortableColumns","getVisibleLeafColumns","filter","col","getCanSort","activeSort","getState","sorting","activeSortColumn","getColumn","sortLabel","desc","alignItems","flexWrap","gap","paddingVertical","role","children","length","open","onOpenChange","Trigger","asChild","size","icon","iconPx","Content","Label","map","sorted","getIsSorted","Item","closeOnSelect","style","transform","onSelect","toggleSorting","clearSorting","chromeKnobProps","pointerEvents"],"sources":["../../../../src/components/DataTable/DataTableCardControls.tsx"],"sourcesContent":[null],"mappings":"AAYA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAe,IAAAC,KAAA,2BAAuB;AAC/C,SAASC,aAAA,EAAAC,eAAoB;AAC7B,SAASC,YAAA,QAAc;AACvB,SAASC,MAAA,kCAAwB;AACjC,SAASC,gBAAgB;AACzB,SAASC,QAAM,eAAc;AAC7B,SAASC,IAAA,EAAAC,MAAA,iBAAsB;AAE/B,SAASC,cAAA,QAAkB;AAC3B,SAASC,UAAA,0CAAwB;AACjC,SAASC,gBAAA,QAAuB;AAqEZ,SAAAC,eAOV,QAPU;AAjDpB,SAASC,eAAeC,MAAA,EAAqB;EAC3C,OAAO,OAAOA,MAAA,CAAOC,SAAA,CAAUC,MAAA,KAAW,WAAWF,MAAA,CAAOC,SAAA,CAAUC,MAAA,GAASF,MAAA,CAAOG,EAAA;AACxF;AAEO,SAASC,sBAAsBC,KAAA;EACpC;IAAAC,KAAA;IAAAC,aAAA;IAAAC,eAAA;IAAAC,gBAAA;IAAAC,OAAA;IAAAC,QAAA;EAAA,IAAAN,KAAA;EACA,IAAAO,uBAAgB;EAChB;IAAAC;EAAA,IAAAlB,cAAkB;EAClB;IAAAmB,SAAA;IAAAC;EAAoB,IAAAxB,gBAAA;IACpByB,SAAU;IACVN;EACF,CAA+B;EAC7B,IAAAO,MAAU,GAAAnB,eAAI,CAAeoB,MAAA,CAAAJ,SAAA,CAAAK,SAAA;EAC7B,KAAAC,YAAQ,EAAWC,eAAc,IAAI7B,QAAA;EACrC,IAAA8B,eAAe,GAAAf,aAAgB,GAAOD,KAAA,CAAAiB,qBAAoB,GAAAC,MAAA,WAAAC,GAAA;IAC1D,OAAOA,GAAA,CAAAC,UAAc;EAErB,OAAM;EAIN,IAAAC,UAAM,IAAAf,uBAA8B,GAAAN,KAAW,CAAAsB,QAAA,GAAAC,OAAA,cAAAjB,uBAAA,uBAAAA,uBAAA;EAC/C,IAAAkB,gBAAM,GAAAH,UAAmB,GAAArB,KAAa,CAAAyB,SAAM,CAAAJ,UAAU,CAAAxB,EAAW,IAAE,KAAI;EACvE,IAAA6B,SAAM,GAAAF,gBAAY,MACd/B,cAAG,CAAA+B,gBAAe,KAAiBH,UAAI,CAAAM,IAAW,WAAO,WAAW,EAAQ,GAAApB,CAAA,CAC5E,MAAE;EAEN,IAAI,CAACN,aAAA,IAAiB,CAACC,eAAA,EAAiB,OAAO;EAE/C,OACE,eAAAtB,KAAA,CAAAQ,MAAA;IAACwC,UAAA;IAAAC,QAAA;IAAAC,GACC;IAAWC,eACF;IAAAC,IACT,WAAI;IAAA,YACJ,EAAAzB,CAAA,qBAAgB;IAAA0B,QACX,GACLhC,aAAA,IAAce,eAAA,CAAAkB,MAAoB,uBAAAtD,KAAA,CAAAG,YAAA;MAEjCoD,IAAA,EAAA9B,QAAA,WAAAS,YAAA;MAAAsB,YAAA,WAAiBA,YAAgBA,CAAAD,IAAA,EAAS;QACxC,IAAA9B,QAAA;QAAAU,eAAA,CAAAoB,IAAA;MAAA;MAC0BF,QACzB,GACE,eAAIvD,IAAU,CAAAK,YAAA,CAAAsD,OAAA;QACdC,OAAA;QACFL,QAAA,iBAAAvD,IAAA,CAAAM,MAAA;UAEAuD,IAAA,EAAA/B,SAAA,CAAAK,SAAA;UAAA2B,IAAA,iBAAC9D,IAAA,CAAAI,eAAA,EAAqB;YACnByD,IAAA,EAAA5B,MAAA,CAAA8B;UAAA;UAAA,YACO,EAAAlC,CAAA,YAAU;UAAAF,QAChB;UAA4C4B,QAC5C,EAAAP;QAAyB;MACzB,IAEC,eAAA9C,KAAA,CAAAG,YAAA,CAAA2D,OAAA;QAAAT,QAEL,GACA,eAAAvD,IAAA,CAACK,YAAA,CAAa4D,KAAA;UACZV,QAAA,EAAA1B,CAAA,UAAC;QAAiC,EACjC,EACCS,eAAM,CAAA4B,GAAS,WAAOlD,MAAA;UACtB,IAAAmD,MACE,GAAAnD,MAAA,CAAAoD,WAAA;UAAA,OAAC,eAAapE,IAAA,CAAAK,YAAA,CAAAgE,IAAA;YAAAC,aAAb;YAAAR,IAEC,EAAAK,MAAA,UAAe,kBAAAnE,IAAA,CAAAG,aAAA;cAAA0D,IACf,EAAA5B,MACE,CAAA8B;YAKwC,KAG1CI,MAAA,WAAY,kBAAAnE,IAAA,CAAAG,aAAA;cAAA0D,IACV,EAAE5B,MAAA,CAAA8B,MAAA;cAAwDQ,KAC1D;gBAAAC,SACE;cAA6B;YAC/B,KACF,eAAAxE,IAAA,CAAAI,eAAA;cAAAyD,IACA,EAAA5B,MAAU,CAAA8B;YAER;YAAgD,cAAAnD,UACvC,CAAAiB,CAAW,qBAAc;cAAkBb,MAAA,EAC/CD,cAAO,CAAAC,MAAa;YAAA,IAC3B;cAAAA,MAEC,EAAAD,cAAA,CAAAC,MAAe;YAAM;YAAAyD,QAxBjB,EAAO,SAAAA,SAAA;cAyBd,IAAAN,MAAA,YAAAnD,MAAA,CAAA0D,aAAA,aAEH,IAAAP,MAAA,YAAAnD,MAAA,CAAA0D,aAAA,YACH1D,MAAA,CAAA2D,YAAA;YAAA;YAAApB,QAAA,EAAAxC,cAAA,CAAAC,MAAA;UACF,GAAAA,MAAA,CAAAG,EAAA;QAED;MAGC;IAAC,IAAAK,eACM,IAAAC,gBACI,CAAA+B,MAAc;IAAA;IAClB;IAEyD;IAAAxD,IAAA,CAAAS,IAAA;MAChE,IAAAkB,QAAA;QAAA,GAAAI,aAAA,CAAA6C,eAAA;QAAAC,aAAA;MAEJ;MAEJtB,QAAA,iBAAAvD,IAAA,CAAAa,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","CaretDownIcon","CaretUpDownIcon","DropdownMenu","Button","useResolvedKnobs","useState","View","XStack","useTranslation","withInterp","DataTableFilters","dataTableChrome","getColumnLabel","column","columnDef","header","id","DataTableCardSortControl","param","table","compact","disabled","contained","_table_getState_sorting","t","knobProps","component","chrome","String","sizeToken","sortMenuOpen","setSortMenuOpen","sortableColumns","getVisibleLeafColumns","filter","col","getCanSort","activeSort","getState","sorting","activeSortColumn","getColumn","sortLabel","desc","length","menu","open","onOpenChange","children","Trigger","asChild","size","icon","iconPx","minWidth","maxWidth","Content","Label","map","sorted","getIsSorted","Item","closeOnSelect","style","transform","onSelect","toggleSorting","clearSorting","flexBasis","flexGrow","flexShrink","DataTableCardControls","enableSorting","enableFiltering","availableColumns","disabledState","alignItems","flexWrap","gap","paddingVertical","role","chromeKnobProps"],"sources":["../../../../src/components/DataTable/DataTableCardControls.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ import { useDragScroll } from "../../hooks/useDragScroll.mjs";
12
12
  import { useDataTableKeyboard } from "../../hooks/useDataTableKeyboard.mjs";
13
13
  import { DataTableColumnPinning } from "../DataTableColumnPinning/index.mjs";
14
14
  import { DataTablePagination } from "../DataTablePagination/index.mjs";
15
- import { DataTableToolbar } from "../DataTableToolbar/index.mjs";
15
+ import { DataTableCardToolbar, DataTableToolbar } from "../DataTableToolbar/index.mjs";
16
16
  import { DataTableBulkActions } from "../DataTableBulkActions/index.mjs";
17
17
  import { DataTableCell } from "../DataTableCell/index.mjs";
18
18
  import { ColumnHeaderFilter } from "../ColumnHeaderFilter/index.mjs";
@@ -20,7 +20,7 @@ import { DataTableFilterChips } from "../DataTableFilterChips/index.mjs";
20
20
  import { Table } from "@multiplatform.one/table-primitives";
21
21
  import { DataTableContext } from "./DataTableContext.mjs";
22
22
  import { DataTableStateContext } from "./DataTableStateContext.mjs";
23
- import { DataTableCardControls } from "./DataTableCardControls.mjs";
23
+ import { DataTableCardControls, DataTableCardSortControl } from "./DataTableCardControls.mjs";
24
24
  import { DataTableMobileCards } from "./DataTableMobileCards.mjs";
25
25
  import { DataTableDocumentList } from "./DataTableDocumentList.mjs";
26
26
  import { DataTableVirtualized } from "./DataTableVirtualized.mjs";
@@ -249,6 +249,7 @@ function DataTableRoot({
249
249
  flexBasis: "auto"
250
250
  };
251
251
  }
252
+ if (columnLayout === "equal" && !enableColumnResizing) return {};
252
253
  if (hasExplicitSize || enableColumnResizing || columnLayout === "scroll") {
253
254
  return {
254
255
  width: col.getSize()
@@ -332,14 +333,15 @@ function DataTableRoot({
332
333
  flexGrow: 0,
333
334
  flexShrink: 0,
334
335
  flexBasis: "auto",
335
- minWidth: 80
336
+ minWidth: 0
336
337
  };
337
338
  }
338
339
  if (enableColumnResizing) {
339
340
  return {
340
341
  flexGrow: 0,
341
342
  flexShrink: 0,
342
- flexBasis: "auto"
343
+ flexBasis: "auto",
344
+ minWidth: 0
343
345
  };
344
346
  }
345
347
  return {
@@ -807,6 +809,9 @@ function DataTableRoot({
807
809
  selectAllScope,
808
810
  filterUi
809
811
  }), [table, state, actions, computed, selectAllScope, filterUi]);
812
+ const hasCardSort = showCards && enableSorting && table.getVisibleLeafColumns().some(column => column.getCanSort());
813
+ const defaultCardToolbar = showCards && !renderToolbar;
814
+ const ToolbarComponent = defaultCardToolbar ? DataTableCardToolbar : DataTableToolbar;
810
815
  const renderToolbarComponent = () => {
811
816
  const activeFilterCount = table.getState().columnFilters?.length || 0;
812
817
  if (renderToolbar) {
@@ -823,10 +828,16 @@ function DataTableRoot({
823
828
  isFetching: Boolean(state.isFetching)
824
829
  });
825
830
  }
826
- return /* @__PURE__ */jsx(DataTableToolbar, {
831
+ return /* @__PURE__ */jsx(ToolbarComponent, {
827
832
  globalFilter: state.globalFilter || "",
828
833
  onGlobalFilterChange: actions.setGlobalFilter,
829
834
  onClearFilters: actions.clearFilters,
835
+ customActions: defaultCardToolbar && hasCardSort ? /* @__PURE__ */jsx(DataTableCardSortControl, {
836
+ table,
837
+ compact: isCompact,
838
+ disabled,
839
+ contained: true
840
+ }) : void 0,
830
841
  activeFilterCount,
831
842
  onSaveView: actions.saveView,
832
843
  onLoadView: actions.loadView,
@@ -857,7 +868,7 @@ function DataTableRoot({
857
868
  });
858
869
  };
859
870
  const renderInner = (tableData, effectiveHandleAddRow, effectiveHandleDeleteRow, _effectiveHandleCellChange) => {
860
- const hasToolbar = enableGlobalSearch || enableFiltering || enableViews;
871
+ const hasToolbar = enableGlobalSearch || enableFiltering || enableViews || defaultCardToolbar && hasCardSort;
861
872
  const scrollContainerRef = useRef(null);
862
873
  const tableBodyRef = useRef(null);
863
874
  const [bodyClipped, setBodyClipped] = useState(false);
@@ -964,7 +975,7 @@ function DataTableRoot({
964
975
  getRowPressProps
965
976
  } : {})
966
977
  }) : showCards ? /* @__PURE__ */jsxs(Fragment, {
967
- children: [/* @__PURE__ */jsx(DataTableCardControls, {
978
+ children: [!defaultCardToolbar && /* @__PURE__ */jsx(DataTableCardControls, {
968
979
  table,
969
980
  enableSorting,
970
981
  enableFiltering,
@@ -1459,13 +1470,41 @@ function DataTableRoot({
1459
1470
  }
1460
1471
  })]
1461
1472
  }), hasFooter && /* @__PURE__ */jsx(Table.Foot, {
1462
- children: footerGroups.map(footerGroup => /* @__PURE__ */jsx(Table.Row, {
1463
- children: footerGroup.headers.map(header => {
1473
+ children: footerGroups.map(footerGroup => /* @__PURE__ */jsxs(Table.Row, {
1474
+ children: [enableRowSelection && /* @__PURE__ */jsx(Table.Cell, {
1475
+ cellWidth: selectionColWidth,
1476
+ cellHeight,
1477
+ cellLocation: "first"
1478
+ }), showRowNumbers && /* @__PURE__ */jsx(Table.Cell, {
1479
+ cellWidth: chrome.rowNumberCol,
1480
+ cellHeight,
1481
+ cellLocation: enableRowSelection ? "middle" : "first"
1482
+ }), enableRowExpansion && /* @__PURE__ */jsx(Table.Cell, {
1483
+ cellWidth: chrome.expandCol,
1484
+ cellHeight,
1485
+ cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first"
1486
+ }), footerGroup.headers.map(header => {
1487
+ const stickyStyle = getStickyStyle(header.column.id);
1464
1488
  const columnAlign = resolveColumnAlign({
1465
1489
  ...header.column.columnDef,
1466
1490
  id: header.column.id
1467
1491
  });
1468
1492
  return /* @__PURE__ */jsx(Table.Cell, {
1493
+ ...cellFlexProps,
1494
+ ...getColSizeProps(header.column),
1495
+ ...(isWeb && stickyStyle ? {
1496
+ style: {
1497
+ position: "sticky",
1498
+ ...("insetInlineStart" in stickyStyle && {
1499
+ insetInlineStart: stickyStyle.insetInlineStart
1500
+ }),
1501
+ ...("insetInlineEnd" in stickyStyle && {
1502
+ insetInlineEnd: stickyStyle.insetInlineEnd
1503
+ }),
1504
+ zIndex: 2,
1505
+ backgroundColor: "var(--color2)"
1506
+ }
1507
+ } : {}),
1469
1508
  justifyContent: alignToFlex(columnAlign),
1470
1509
  "data-align": columnAlign,
1471
1510
  children: header.isPlaceholder ? null : /* @__PURE__ */jsx(View, {
@@ -1481,7 +1520,11 @@ function DataTableRoot({
1481
1520
  children: flexRender(header.column.columnDef.footer, header.getContext())
1482
1521
  })
1483
1522
  }, header.id);
1484
- })
1523
+ }), showDeleteRow && !readOnly && /* @__PURE__ */jsx(Table.Cell, {
1524
+ cellWidth: chrome.deleteCol,
1525
+ cellHeight,
1526
+ cellLocation: "last"
1527
+ })]
1485
1528
  }, footerGroup.id))
1486
1529
  })]
1487
1530
  })