@economic/taco 2.26.2 → 2.26.4

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 (31) hide show
  1. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +4 -3
  2. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
  3. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js +2 -2
  4. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
  5. package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheet.js → useTableStyle.js} +24 -15
  6. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyle.js.map +1 -0
  7. package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheetColumnFreezing.js → useTableStyleColumnFreezing.js} +6 -4
  8. package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheetColumnFreezing.js.map → useTableStyleColumnFreezing.js.map} +1 -1
  9. package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheetCssGrid.js → useTableStyleGrid.js} +12 -5
  10. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -0
  11. package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +6 -2
  12. package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
  13. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +2 -2
  14. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  15. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +2 -22
  16. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -1
  17. package/dist/primitives/Table/Core/features/useTableStyle.d.ts +797 -0
  18. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.d.ts +4 -0
  19. package/dist/primitives/Table/Core/features/useTableStyleGrid.d.ts +7 -0
  20. package/dist/primitives/Table/Core/useTable.d.ts +2 -1
  21. package/dist/primitives/Table/useTableManager/util/presets.d.ts +1 -1
  22. package/dist/taco.cjs.development.js +47 -41
  23. package/dist/taco.cjs.development.js.map +1 -1
  24. package/dist/taco.cjs.production.min.js +1 -1
  25. package/dist/taco.cjs.production.min.js.map +1 -1
  26. package/package.json +2 -2
  27. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useStylesheet.js.map +0 -1
  28. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useStylesheetCssGrid.js.map +0 -1
  29. package/dist/primitives/Table/Core/features/useStylesheet.d.ts +0 -3
  30. package/dist/primitives/Table/Core/features/useStylesheetColumnFreezing.d.ts +0 -2
  31. package/dist/primitives/Table/Core/features/useStylesheetCssGrid.d.ts +0 -3
@@ -0,0 +1,4 @@
1
+ import { Table as ReactTable } from '@tanstack/react-table';
2
+ export declare function useTableStyleColumnFreezing<TType = unknown>(tableId: string, table: ReactTable<TType>): {
3
+ stylesheet: string;
4
+ };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { Table as ReactTable } from '@tanstack/react-table';
3
+ import { TableFontSize } from '../../types';
4
+ export declare function useTableStyleGrid<TType = unknown>(tableId: string, table: ReactTable<TType>, fontSize: TableFontSize): {
5
+ style: React.CSSProperties;
6
+ stylesheet: string;
7
+ };
@@ -21,7 +21,8 @@ export declare type useTableReturnValue<TType = unknown> = {
21
21
  style: React.CSSProperties;
22
22
  scrollToIndex: (index: number, options?: ReactVirtualScrollToOptions) => void;
23
23
  };
24
- stylesheet: JSX.Element;
24
+ style: React.CSSProperties;
25
+ stylesheet: string;
25
26
  state: ReactTableState;
26
27
  };
27
28
  export declare function useTable<TType = unknown, TMeta = {}>(props: TableProps<TType>, externalRef: React.Ref<TableRef>, renderers: useTableRenderers<TType>, meta?: Partial<ReactTableMeta<TType>> & TMeta): useTableReturnValue<TType>;
@@ -1,2 +1,2 @@
1
1
  import { TableFeatureProps, TableProps } from '../../types';
2
- export declare function useTableFeaturePreset<TType = unknown>(props: TableProps<TType>): TableFeatureProps;
2
+ export declare function getTableFeaturePreset<TType = unknown>(props: TableProps<TType>): TableFeatureProps;
@@ -9888,7 +9888,7 @@ const presets = {
9888
9888
  enableSaveSettings: true
9889
9889
  }
9890
9890
  };
9891
- function useTableFeaturePreset(props) {
9891
+ function getTableFeaturePreset(props) {
9892
9892
  var _props$enableRowActio, _props$enableRowClick, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowExpan, _props$enableRowSelec, _props$enableRowSelec2, _props$enableFilterin, _props$enableSearch, _props$enableSorting, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnRe, _props$enableColumnOr, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowActiv, _props$rowActions, _props$enableRowHeigh, _props$enableSaveSett;
9893
9893
  const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;
9894
9894
  const enableRowActions = (_props$enableRowActio = props.enableRowActions) !== null && _props$enableRowActio !== void 0 ? _props$enableRowActio : presetOptions.enableRowActions;
@@ -9899,24 +9899,6 @@ function useTableFeaturePreset(props) {
9899
9899
  const enableRowExpansion = (_props$enableRowExpan = props.enableRowExpansion) !== null && _props$enableRowExpan !== void 0 ? _props$enableRowExpan : presetOptions.enableRowExpansion;
9900
9900
  const enableRowSelection = (_props$enableRowSelec = props.enableRowSelection) !== null && _props$enableRowSelec !== void 0 ? _props$enableRowSelec : presetOptions.enableRowSelection;
9901
9901
  const enableRowSelectionSingle = (_props$enableRowSelec2 = props.enableRowSelectionSingle) !== null && _props$enableRowSelec2 !== void 0 ? _props$enableRowSelec2 : presetOptions.enableRowSelectionSingle;
9902
- // guard options that might be unintentionally broken
9903
- React__default.useEffect(() => {
9904
- if (enableRowClick && !props.onRowClick) {
9905
- console.warn(`Table (id: ${props.id}) - Row click is enabled but no \`onRowClick\` handler has been provided. Provide one to enable row click or set \`enableRowClick\` to \`false\`.`);
9906
- }
9907
- if (enableRowGoto && !props.onRowGoto) {
9908
- console.warn(`Table (id: ${props.id}) - Row click is enabled but no \`onRowGoto\` handler has been provided. Provide one to enable row goto or set \`enableRowGoto\` to \`false\`.`);
9909
- }
9910
- if (enableRowExpansion && !props.rowExpansionRenderer) {
9911
- console.warn(`Table (id: ${props.id}) - Row expansion is enabled but no \`rowExpansionRenderer\` has been provided. Provide one to enable row expansion or set \`enableRowExpansion\` to \`false\`.`);
9912
- }
9913
- if (enableRowSelection && !props.onRowSelect) {
9914
- console.warn(`Table (id: ${props.id}) - Row selection is enabled but no \`onRowSelect\` handler has been provided. Provide one to enable row selection or set \`enableRowSelection\` to \`false\`.`);
9915
- }
9916
- if (enableRowSelectionSingle && !props.onRowSelect) {
9917
- console.warn(`Table (id: ${props.id}) - Row selection (single) is enabled but no \`onRowSelect\` handler has been provided. Provide one to enable row selection or set \`enableRowSelectionSingle\` to \`false\`.`);
9918
- }
9919
- }, []);
9920
9902
  return {
9921
9903
  // react-table built-in
9922
9904
  enableFiltering: (_props$enableFilterin = props.enableFiltering) !== null && _props$enableFilterin !== void 0 ? _props$enableFilterin : presetOptions.enableFiltering,
@@ -10827,7 +10809,7 @@ function useTableManager(props, meta, internalColumns) {
10827
10809
  // CSS.escape would be best here, but it doesn't seem to work very well
10828
10810
  const safeId = props.id.replace('.', '_');
10829
10811
  // configure table options, merging props with presets
10830
- const options = useTableFeaturePreset(props);
10812
+ const options = getTableFeaturePreset(props);
10831
10813
  // load any persisted table settings and merge them with any defaults
10832
10814
  const [settings, setSettings] = useTableSettings(options.enableSaveSettings, safeId, props.defaultSettings, props.onChangeSettings);
10833
10815
  // configure common custom features
@@ -10914,7 +10896,7 @@ function useTableManager(props, meta, internalColumns) {
10914
10896
  };
10915
10897
  }
10916
10898
 
10917
- function useStylesheetCssGrid(tableId, table, fontSize) {
10899
+ function useTableStyleGrid(tableId, table, fontSize) {
10918
10900
  const tableMeta = table.options.meta;
10919
10901
  const allVisibleColumns = table.getVisibleLeafColumns();
10920
10902
  const columnSizing = table.getState().columnSizing;
@@ -10962,12 +10944,19 @@ function useStylesheetCssGrid(tableId, table, fontSize) {
10962
10944
  }, '');
10963
10945
  // we have to be specific so that nested tables don't inherit the same css
10964
10946
  const hiddenColumns = printHiddenColumns.map(id => `table[data-taco^='table']#${tableId} > thead > tr > th[data-cell-id='${id}']\n,table[data-taco^='table']#${tableId} > tbody > tr > td[data-cell-id='${id}']\n`).join(',');
10965
- return `table[data-taco^='table']#${tableId} { grid-template-columns: ${gridTemplateColumns}; grid-template-rows: ${gridTemplateRows}; }
10966
- @media print { table[data-taco^='table']#${tableId} { grid-template-columns: ${printGridTemplateColumns}; } ${hiddenColumns ? `${hiddenColumns} { display: none; }` : ''} }`;
10947
+ const style = {
10948
+ gridTemplateColumns,
10949
+ gridTemplateRows
10950
+ };
10951
+ const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: ${printGridTemplateColumns}; } ${hiddenColumns ? `${hiddenColumns} { display: none; }` : ''}}`;
10952
+ return {
10953
+ style,
10954
+ stylesheet
10955
+ };
10967
10956
  }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);
10968
10957
  }
10969
10958
 
10970
- function useStylesheetColumnFreezing(tableId, table) {
10959
+ function useTableStyleColumnFreezing(tableId, table) {
10971
10960
  const {
10972
10961
  columnPinning
10973
10962
  } = table.getState();
@@ -11004,20 +10993,32 @@ function useStylesheetColumnFreezing(tableId, table) {
11004
10993
  }
11005
10994
  return styles.join('\n');
11006
10995
  }, [columnPinning]);
11007
- return stylesheet;
10996
+ return {
10997
+ stylesheet
10998
+ };
11008
10999
  }
11009
11000
 
11010
- function useStylesheet(tableId, table) {
11001
+ function useTableStyle(tableId, table) {
11011
11002
  const tableMeta = table.options.meta;
11012
- const cssGridStylesheet = useStylesheetCssGrid(tableId, table, tableMeta.fontSize.size);
11013
- const columnFreezingStylesheet = useStylesheetColumnFreezing(tableId, table);
11014
- const genericStylesheet = `table[data-taco^='table']#${tableId} {
11015
- --table-header-group-depth: ${table.getHeaderGroups().length};
11016
- --table-cell-padding-x: ${getCellWidthPadding(tableMeta.fontSize.size)};
11017
- --table-cell-padding-y: ${getCellHeightPadding(tableMeta.rowHeight.height, tableMeta.fontSize.size)};
11018
- }`;
11019
- const css = [genericStylesheet, cssGridStylesheet, columnFreezingStylesheet].filter(s => !!s).join('\n');
11020
- return /*#__PURE__*/React__default.createElement("style", null, css);
11003
+ const {
11004
+ style: cssGridStyle,
11005
+ stylesheet: cssGridStylesheet
11006
+ } = useTableStyleGrid(tableId, table, tableMeta.fontSize.size);
11007
+ const {
11008
+ stylesheet: columnFreezingStylesheet
11009
+ } = useTableStyleColumnFreezing(tableId, table);
11010
+ const style = {
11011
+ // css vars required by children of table
11012
+ '--table-header-group-depth': table.getHeaderGroups().length,
11013
+ '--table-cell-padding-x': getCellWidthPadding(tableMeta.fontSize.size),
11014
+ '--table-cell-padding-y': getCellHeightPadding(tableMeta.rowHeight.height, tableMeta.fontSize.size),
11015
+ ...cssGridStyle
11016
+ };
11017
+ const stylesheet = [cssGridStylesheet, columnFreezingStylesheet].filter(s => !!s).join('\n');
11018
+ return {
11019
+ style,
11020
+ stylesheet
11021
+ };
11021
11022
  }
11022
11023
  // we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)
11023
11024
  function getCellHeightPadding(height, fontSize) {
@@ -11776,7 +11777,10 @@ function useTable(props, externalRef, renderers, meta) {
11776
11777
  // configure the virtualised renderer
11777
11778
  const renderer = useTableRenderer(renderers, manager.instance, ref, props.defaultRowActiveIndex);
11778
11779
  // configure dynamic styling
11779
- const stylesheet = useStylesheet(manager.id, manager.instance);
11780
+ const {
11781
+ style,
11782
+ stylesheet
11783
+ } = useTableStyle(manager.id, manager.instance);
11780
11784
  // configure global keyboard shortcuts
11781
11785
  useTableGlobalShortcuts(manager.instance, ref, renderer.scrollToIndex);
11782
11786
  // augment the ref with some helper functions
@@ -11793,6 +11797,7 @@ function useTable(props, externalRef, renderers, meta) {
11793
11797
  toolbarRight: props.toolbarRight
11794
11798
  },
11795
11799
  renderer,
11800
+ style,
11796
11801
  stylesheet,
11797
11802
  ref
11798
11803
  };
@@ -12379,11 +12384,11 @@ function HeaderMenu(props) {
12379
12384
  // can't use display: none because the button needs to be focusable
12380
12385
  const className = cn(
12381
12386
  // positioning
12382
- 'justify-end -mr-1 overflow-hidden',
12387
+ 'justify-end overflow-hidden',
12383
12388
  // sizing
12384
12389
  '!h-6 !w-0 !min-h-[theme(spacing.6)] !min-w-0',
12385
12390
  // visible - hover
12386
- 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)]',
12391
+ 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)] group-hover/header:-mr-1',
12387
12392
  // visible - expanded
12388
12393
  'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',
12389
12394
  // visible - focus
@@ -15718,7 +15723,7 @@ function Table(props) {
15718
15723
  Table.Toolbar = TableToolbar;
15719
15724
  Table.Grid = TableGrid;
15720
15725
  function TableGrid(props) {
15721
- var _table$state$grouping, _table$renderer$rows;
15726
+ var _table$state$grouping;
15722
15727
  const {
15723
15728
  enableHorizontalArrowKeyNavigation,
15724
15729
  table,
@@ -15727,7 +15732,7 @@ function TableGrid(props) {
15727
15732
  const handleFocus = table.meta.rowActive.rowActiveIndex === undefined ? event => {
15728
15733
  table.meta.rowActive.handleFocus(event, table.meta.length, table.renderer.scrollToIndex);
15729
15734
  } : undefined;
15730
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, table.stylesheet, /*#__PURE__*/React__default.createElement(focus.FocusScope, null, /*#__PURE__*/React__default.createElement("table", Object.assign({}, attributes, {
15735
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("style", null, table.stylesheet), /*#__PURE__*/React__default.createElement(focus.FocusScope, null, /*#__PURE__*/React__default.createElement("table", Object.assign({}, attributes, {
15731
15736
  id: table.id,
15732
15737
  "data-table-font-size": table.meta.fontSize.size,
15733
15738
  "data-table-horizontally-scrolled": table.meta.columnFreezing.isHorizontallyScrolled ? true : undefined,
@@ -15738,6 +15743,7 @@ function TableGrid(props) {
15738
15743
  onFocus: handleFocus,
15739
15744
  onScroll: table.meta.columnFreezing.handleScroll,
15740
15745
  ref: table.ref,
15746
+ style: table.style,
15741
15747
  tabIndex: -1
15742
15748
  }), /*#__PURE__*/React__default.createElement("thead", null, table.instance.getHeaderGroups().map(headerGroup => ( /*#__PURE__*/React__default.createElement("tr", {
15743
15749
  key: headerGroup.id
@@ -15745,7 +15751,7 @@ function TableGrid(props) {
15745
15751
  key: props.id,
15746
15752
  header: props,
15747
15753
  scrollToIndex: table.renderer.scrollToIndex
15748
- }))))))), (_table$renderer$rows = table.renderer.rows) !== null && _table$renderer$rows !== void 0 && _table$renderer$rows.length ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Body, {
15754
+ }))))))), table.instance.getRowModel().rows.length ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Body, {
15749
15755
  enableHorizontalArrowKeyNavigation: enableHorizontalArrowKeyNavigation,
15750
15756
  table: table.instance,
15751
15757
  style: table.renderer.style