@economic/taco 2.26.3 → 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 (26) hide show
  1. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +2 -1
  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/primitives/Table/Core/features/useTableStyle.d.ts +797 -0
  14. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.d.ts +4 -0
  15. package/dist/primitives/Table/Core/features/useTableStyleGrid.d.ts +7 -0
  16. package/dist/primitives/Table/Core/useTable.d.ts +2 -1
  17. package/dist/taco.cjs.development.js +43 -19
  18. package/dist/taco.cjs.development.js.map +1 -1
  19. package/dist/taco.cjs.production.min.js +1 -1
  20. package/dist/taco.cjs.production.min.js.map +1 -1
  21. package/package.json +2 -2
  22. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useStylesheet.js.map +0 -1
  23. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useStylesheetCssGrid.js.map +0 -1
  24. package/dist/primitives/Table/Core/features/useStylesheet.d.ts +0 -3
  25. package/dist/primitives/Table/Core/features/useStylesheetColumnFreezing.d.ts +0 -2
  26. 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>;
@@ -10896,7 +10896,7 @@ function useTableManager(props, meta, internalColumns) {
10896
10896
  };
10897
10897
  }
10898
10898
 
10899
- function useStylesheetCssGrid(tableId, table, fontSize) {
10899
+ function useTableStyleGrid(tableId, table, fontSize) {
10900
10900
  const tableMeta = table.options.meta;
10901
10901
  const allVisibleColumns = table.getVisibleLeafColumns();
10902
10902
  const columnSizing = table.getState().columnSizing;
@@ -10944,12 +10944,19 @@ function useStylesheetCssGrid(tableId, table, fontSize) {
10944
10944
  }, '');
10945
10945
  // we have to be specific so that nested tables don't inherit the same css
10946
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(',');
10947
- return `table[data-taco^='table']#${tableId} { grid-template-columns: ${gridTemplateColumns}; grid-template-rows: ${gridTemplateRows}; }
10948
- @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
+ };
10949
10956
  }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);
10950
10957
  }
10951
10958
 
10952
- function useStylesheetColumnFreezing(tableId, table) {
10959
+ function useTableStyleColumnFreezing(tableId, table) {
10953
10960
  const {
10954
10961
  columnPinning
10955
10962
  } = table.getState();
@@ -10986,20 +10993,32 @@ function useStylesheetColumnFreezing(tableId, table) {
10986
10993
  }
10987
10994
  return styles.join('\n');
10988
10995
  }, [columnPinning]);
10989
- return stylesheet;
10996
+ return {
10997
+ stylesheet
10998
+ };
10990
10999
  }
10991
11000
 
10992
- function useStylesheet(tableId, table) {
11001
+ function useTableStyle(tableId, table) {
10993
11002
  const tableMeta = table.options.meta;
10994
- const cssGridStylesheet = useStylesheetCssGrid(tableId, table, tableMeta.fontSize.size);
10995
- const columnFreezingStylesheet = useStylesheetColumnFreezing(tableId, table);
10996
- const genericStylesheet = `table[data-taco^='table']#${tableId} {
10997
- --table-header-group-depth: ${table.getHeaderGroups().length};
10998
- --table-cell-padding-x: ${getCellWidthPadding(tableMeta.fontSize.size)};
10999
- --table-cell-padding-y: ${getCellHeightPadding(tableMeta.rowHeight.height, tableMeta.fontSize.size)};
11000
- }`;
11001
- const css = [genericStylesheet, cssGridStylesheet, columnFreezingStylesheet].filter(s => !!s).join('\n');
11002
- 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
+ };
11003
11022
  }
11004
11023
  // we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)
11005
11024
  function getCellHeightPadding(height, fontSize) {
@@ -11758,7 +11777,10 @@ function useTable(props, externalRef, renderers, meta) {
11758
11777
  // configure the virtualised renderer
11759
11778
  const renderer = useTableRenderer(renderers, manager.instance, ref, props.defaultRowActiveIndex);
11760
11779
  // configure dynamic styling
11761
- const stylesheet = useStylesheet(manager.id, manager.instance);
11780
+ const {
11781
+ style,
11782
+ stylesheet
11783
+ } = useTableStyle(manager.id, manager.instance);
11762
11784
  // configure global keyboard shortcuts
11763
11785
  useTableGlobalShortcuts(manager.instance, ref, renderer.scrollToIndex);
11764
11786
  // augment the ref with some helper functions
@@ -11775,6 +11797,7 @@ function useTable(props, externalRef, renderers, meta) {
11775
11797
  toolbarRight: props.toolbarRight
11776
11798
  },
11777
11799
  renderer,
11800
+ style,
11778
11801
  stylesheet,
11779
11802
  ref
11780
11803
  };
@@ -12361,11 +12384,11 @@ function HeaderMenu(props) {
12361
12384
  // can't use display: none because the button needs to be focusable
12362
12385
  const className = cn(
12363
12386
  // positioning
12364
- 'justify-end -mr-1 overflow-hidden',
12387
+ 'justify-end overflow-hidden',
12365
12388
  // sizing
12366
12389
  '!h-6 !w-0 !min-h-[theme(spacing.6)] !min-w-0',
12367
12390
  // visible - hover
12368
- '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',
12369
12392
  // visible - expanded
12370
12393
  'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',
12371
12394
  // visible - focus
@@ -15709,7 +15732,7 @@ function TableGrid(props) {
15709
15732
  const handleFocus = table.meta.rowActive.rowActiveIndex === undefined ? event => {
15710
15733
  table.meta.rowActive.handleFocus(event, table.meta.length, table.renderer.scrollToIndex);
15711
15734
  } : undefined;
15712
- 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, {
15713
15736
  id: table.id,
15714
15737
  "data-table-font-size": table.meta.fontSize.size,
15715
15738
  "data-table-horizontally-scrolled": table.meta.columnFreezing.isHorizontallyScrolled ? true : undefined,
@@ -15720,6 +15743,7 @@ function TableGrid(props) {
15720
15743
  onFocus: handleFocus,
15721
15744
  onScroll: table.meta.columnFreezing.handleScroll,
15722
15745
  ref: table.ref,
15746
+ style: table.style,
15723
15747
  tabIndex: -1
15724
15748
  }), /*#__PURE__*/React__default.createElement("thead", null, table.instance.getHeaderGroups().map(headerGroup => ( /*#__PURE__*/React__default.createElement("tr", {
15725
15749
  key: headerGroup.id