@economic/taco 2.49.1 → 2.49.3

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 (24) hide show
  1. package/dist/components/Hanger/Hanger.d.ts +1 -0
  2. package/dist/esm/index.css +18 -2
  3. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js +13 -0
  4. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
  5. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +7 -0
  6. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  7. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +2 -2
  8. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
  9. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js +4 -2
  10. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js.map +1 -1
  11. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +11 -1
  12. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  13. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +1 -1
  14. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
  15. package/dist/esm/packages/taco/src/components/Tag/Tag.js +1 -1
  16. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
  17. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js +1 -1
  18. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
  19. package/dist/index.css +18 -2
  20. package/dist/taco.cjs.development.js +39 -8
  21. package/dist/taco.cjs.development.js.map +1 -1
  22. package/dist/taco.cjs.production.min.js +1 -1
  23. package/dist/taco.cjs.production.min.js.map +1 -1
  24. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useTableStyleGrid.js","sources":["../../../../../../../../../src/primitives/Table/Core/features/useTableStyleGrid.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableFontSize } from '../../types';\nimport { getCellMinWidth, isInternalColumn } from '../../useTableManager/util/columns';\n\nexport function useTableStyleGrid<TType = unknown>(tableId: string, table: ReactTable<TType>, fontSize: TableFontSize) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const columnSizing = table.getState().columnSizing;\n const globalMinSize = getCellMinWidth(fontSize);\n\n // header body ?footer\n const gridTemplateRows = table.getRowModel().rows.length ? 'min-content 1fr min-content' : 'min-content 1fr';\n\n return React.useMemo(() => {\n let printGridTemplateColumns = 0;\n const printHiddenColumns: string[] = [];\n\n const gridTemplateColumns = allVisibleColumns.reduce((accum, column, index) => {\n if (table.options.enableGrouping && column.getIsGrouped()) {\n return accum;\n }\n\n const minSize = column.columnDef.minSize ?? globalMinSize;\n const width = columnSizing[column.id] as number | 'grow';\n\n let size;\n\n if (isInternalColumn(column.id)) {\n if (column.id === '__actions') {\n const minWidth = tableMeta.rowActions.rowActionsLength * 32 + 8; /* button margins l+r */\n size = `minmax(${minWidth}px, auto)`;\n } else {\n // getSize method is used instead of columnSizing state because internal columns have defined widths\n size = `${column.getSize()}px`;\n }\n } else if (width !== undefined) {\n const isLastColumn = index === allVisibleColumns.length - 1;\n\n if (width === 'grow' || (Number.isNaN(width) && !isLastColumn)) {\n size = `minmax(max-content, 1fr)`;\n } else {\n const minWidth = width < minSize ? minSize : width;\n\n if (isLastColumn) {\n size = `minmax(${minWidth}px, auto)`;\n } else {\n size = `${minWidth}px`;\n }\n }\n } else {\n size = `minmax(max-content, auto)`;\n }\n\n // printing\n if (column.columnDef.meta?.enablePrinting === false) {\n printHiddenColumns.push(column.id);\n } else {\n printGridTemplateColumns++;\n }\n\n return `${accum} ${size}`.trim();\n }, '');\n\n // normal grid\n const style: React.CSSProperties = {\n gridTemplateColumns,\n gridTemplateRows,\n };\n\n // printing grid\n // we have to be specific so that nested tables don't inherit the same css\n const hiddenColumns = printHiddenColumns\n .map(\n id =>\n `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`\n )\n .join(',');\n const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }\n table[data-taco^='table']#${tableId} [data-cell-id^='__']${\n hiddenColumns ? `, ${hiddenColumns}` : ''\n } { display: none; }}`;\n\n return { style, stylesheet };\n }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);\n}\n"],"names":["useTableStyleGrid","tableId","table","fontSize","tableMeta","options","meta","allVisibleColumns","getVisibleLeafColumns","columnSizing","getState","globalMinSize","getCellMinWidth","gridTemplateRows","getRowModel","rows","length","React","useMemo","printGridTemplateColumns","printHiddenColumns","gridTemplateColumns","reduce","accum","column","index","enableGrouping","getIsGrouped","minSize","_column$columnDef$min","columnDef","width","id","size","isInternalColumn","minWidth","rowActions","rowActionsLength","getSize","undefined","isLastColumn","Number","isNaN","_column$columnDef$met","enablePrinting","push","trim","style","hiddenColumns","map","join","stylesheet"],"mappings":"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"}
1
+ {"version":3,"file":"useTableStyleGrid.js","sources":["../../../../../../../../../src/primitives/Table/Core/features/useTableStyleGrid.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableFontSize } from '../../types';\nimport { getCellMinWidth, isInternalColumn } from '../../useTableManager/util/columns';\n\nexport function useTableStyleGrid<TType = unknown>(tableId: string, table: ReactTable<TType>, fontSize: TableFontSize) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const columnSizing = table.getState().columnSizing;\n const globalMinSize = getCellMinWidth(fontSize);\n\n // header body ?footer\n const gridTemplateRows = table.getRowModel().rows.length ? 'min-content 1fr min-content' : 'min-content 1fr';\n\n return React.useMemo(() => {\n let printGridTemplateColumns = 0;\n const printHiddenColumns: string[] = [];\n\n const gridTemplateColumns = allVisibleColumns.reduce((accum, column, index) => {\n if (table.options.enableGrouping && column.getIsGrouped()) {\n return accum;\n }\n\n const minSize = column.columnDef.minSize ?? globalMinSize;\n const width = columnSizing[column.id] as number | 'grow';\n\n let size;\n\n if (isInternalColumn(column.id)) {\n if (column.id === '__actions') {\n const minWidth = tableMeta.rowActions.rowActionsLength * 32 + 8; /* button margins l+r */\n size = `minmax(${minWidth}px, auto)`;\n } else {\n // getSize method is used instead of columnSizing state because internal columns have defined widths\n size = `${column.getSize()}px`;\n }\n } else if (width !== undefined) {\n const isLastColumn = index === allVisibleColumns.length - 1;\n\n if (width === 'grow' || (Number.isNaN(width) && !isLastColumn)) {\n size = `minmax(max-content, 1fr)`;\n } else {\n const minWidth = width < minSize ? minSize : width;\n\n if (isLastColumn) {\n size = `minmax(${minWidth}px, auto)`;\n } else {\n size = `${minWidth}px`;\n }\n }\n } else {\n size = `minmax(max-content, auto)`;\n }\n\n // printing\n if (column.columnDef.meta?.enablePrinting === false) {\n printHiddenColumns.push(column.id);\n } else {\n printGridTemplateColumns++;\n }\n\n return `${accum} ${size}`.trim();\n }, '');\n\n // normal grid\n const style: React.CSSProperties = {\n gridTemplateColumns,\n gridTemplateRows,\n };\n\n // printing grid\n // we have to be specific so that nested tables don't inherit the same css\n const hiddenColumns = printHiddenColumns\n .map(\n id =>\n `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`\n )\n .join(',');\n const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }\n table[data-taco^='table']#${tableId} [data-cell-id^='__']${\n hiddenColumns ? `, ${hiddenColumns}` : ''\n } { display: none; } table[data-taco^='table']#${tableId} tr { page-break-inside: avoid; break-inside: avoid;}}`;\n\n return { style, stylesheet };\n }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);\n}\n"],"names":["useTableStyleGrid","tableId","table","fontSize","tableMeta","options","meta","allVisibleColumns","getVisibleLeafColumns","columnSizing","getState","globalMinSize","getCellMinWidth","gridTemplateRows","getRowModel","rows","length","React","useMemo","printGridTemplateColumns","printHiddenColumns","gridTemplateColumns","reduce","accum","column","index","enableGrouping","getIsGrouped","minSize","_column$columnDef$min","columnDef","width","id","size","isInternalColumn","minWidth","rowActions","rowActionsLength","getSize","undefined","isLastColumn","Number","isNaN","_column$columnDef$met","enablePrinting","push","trim","style","hiddenColumns","map","join","stylesheet"],"mappings":"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"}
package/dist/index.css CHANGED
@@ -166,6 +166,11 @@
166
166
  @apply invisible;
167
167
  }
168
168
 
169
+ /* When the dialog is open, all elements are aria-hidden except for the dialog content */
170
+ [aria-hidden='true'] {
171
+ @apply print:hidden;
172
+ }
173
+
169
174
  .wcag-transparent {
170
175
  @apply bg-black/[0.08] text-black;
171
176
  }
@@ -411,6 +416,12 @@
411
416
  bottom: 3px;
412
417
  }
413
418
 
419
+ /* When dealing with nested dialogs, the dialog behind remains rendered because it only receives the [aria-hidden] attribute but not display: none.
420
+ As a result, tabs in the hidden dialog remain visible, as they still have the visible class assigned. To properly hide them, we need to override their visibility. */
421
+ [data-taco='backdrop'][aria-hidden='true'] [role='tablist'] [role='tab'].visible {
422
+ visibility: hidden;
423
+ }
424
+
414
425
  /* label inside label is invalid html, but the client is littered with it */
415
426
  [data-taco='label'] [data-taco='label'] {
416
427
  min-height: 0;
@@ -574,7 +585,7 @@ table[data-taco^='table'] {
574
585
 
575
586
  table[data-taco^='table'] thead {
576
587
  /* z-indexes & layout */
577
- @apply sticky top-0 isolate z-20;
588
+ @apply sticky top-0 isolate z-20 print:static;
578
589
  /* grid */
579
590
  @apply col-span-full grid auto-rows-min grid-cols-[subgrid];
580
591
  }
@@ -613,7 +624,7 @@ table[data-taco^='table'] thead tr:not(:last-child) th:before {
613
624
 
614
625
  table[data-taco^='table'] tfoot {
615
626
  /* z-indexes & layout */
616
- @apply sticky bottom-0 isolate z-20;
627
+ @apply sticky bottom-0 isolate z-20 print:static;
617
628
  /* grid */
618
629
  @apply col-span-full grid grid-cols-[subgrid];
619
630
  }
@@ -1403,3 +1414,8 @@ table[data-taco^='table'][data-table-row-height='tall'] tr[data-row-create] td,
1403
1414
  table[data-taco^='table'][data-table-row-height='extra-tall'] tr[data-row-create] td {
1404
1415
  @apply !min-h-[41px] !pt-[10px];
1405
1416
  }
1417
+
1418
+ /* Hiding CreateNewRow using CSS to ensure higher specificity for hiding the row */
1419
+ table[data-taco^='table'] tr[data-row-create] {
1420
+ @apply print:hidden;
1421
+ }
@@ -6392,6 +6392,7 @@ const useDatepicker = ({
6392
6392
  } = useLocalization();
6393
6393
  const [internalValue, setInternalValue] = React.useState((_format = format(value, formatting.date)) !== null && _format !== void 0 ? _format : '');
6394
6394
  const originalValueAsDate = parse(value);
6395
+ const [invalid, setInvalid] = React.useState(false);
6395
6396
  // update internal value if it changed 'externally'
6396
6397
  React.useEffect(() => {
6397
6398
  const formattedValue = format(value, formatting.date);
@@ -6405,6 +6406,10 @@ const useDatepicker = ({
6405
6406
  const valueAsDate = parseFromCustomString(event.target.value, 'dd.mm.yy', originalValueAsDate === null || originalValueAsDate === void 0 ? void 0 : originalValueAsDate.getMonth(), originalValueAsDate === null || originalValueAsDate === void 0 ? void 0 : originalValueAsDate.getFullYear());
6406
6407
  const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';
6407
6408
  event.target.value = formattedValue;
6409
+ if (valueAsDate && calendar !== null && calendar !== void 0 && calendar.disabledDays) {
6410
+ // setting invalid state if user manually write a disabled date.
6411
+ setInvalid(reactDayPicker.isMatch(valueAsDate, calendar === null || calendar === void 0 ? void 0 : calendar.disabledDays));
6412
+ }
6408
6413
  if (onChange) {
6409
6414
  event.detail = valueAsDate;
6410
6415
  onChange(event);
@@ -6435,6 +6440,7 @@ const useDatepicker = ({
6435
6440
  const inputProps = {
6436
6441
  ...props,
6437
6442
  autoComplete: 'off',
6443
+ invalid,
6438
6444
  onBlur: handleInputBlur,
6439
6445
  onChange: handleInputChange,
6440
6446
  onKeyDown: handleKeyDown,
@@ -6604,11 +6610,24 @@ const Datepicker = /*#__PURE__*/React.forwardRef(function Datepicker(props, ref)
6604
6610
  e.preventDefault();
6605
6611
  (_input$ref$current = input.ref.current) === null || _input$ref$current === void 0 ? void 0 : _input$ref$current.focus();
6606
6612
  }, [input.ref]);
6613
+ // Allow preventing default keyDown behaviour if consumer (in our internal case it's Table3) wants to handle it.
6614
+ // We need to have this option for the situations, when Datepicker is used as inline edititng control in Table3,
6615
+ // without it, datepicker cannot be set into detailed editing mode by pressing "Enter",
6616
+ // because input.onKeydown is triggering 'focusout', which resets the detailed edititng mode.
6617
+ const handleInputKeyDown = event => {
6618
+ var _props$onKeyDown;
6619
+ (_props$onKeyDown = props.onKeyDown) === null || _props$onKeyDown === void 0 ? void 0 : _props$onKeyDown.call(props, event);
6620
+ if (!event.defaultPrevented) {
6621
+ var _input$onKeyDown;
6622
+ (_input$onKeyDown = input.onKeyDown) === null || _input$onKeyDown === void 0 ? void 0 : _input$onKeyDown.call(input, event);
6623
+ }
6624
+ };
6607
6625
  return /*#__PURE__*/React.createElement("span", {
6608
6626
  className: className,
6609
6627
  "data-taco": "datepicker",
6610
6628
  style: style
6611
6629
  }, /*#__PURE__*/React.createElement(Input, Object.assign({}, input, {
6630
+ onKeyDown: handleInputKeyDown,
6612
6631
  button: input.readOnly ? undefined : (/*#__PURE__*/React.createElement(IconButton, {
6613
6632
  "aria-label": texts.datepicker.expand,
6614
6633
  disabled: input.disabled || input.readOnly,
@@ -6787,8 +6806,8 @@ const Content$4 = /*#__PURE__*/React.forwardRef(function DialogContent(props, re
6787
6806
  const {
6788
6807
  texts
6789
6808
  } = useLocalization();
6790
- const className = cn('relative bg-white animate-[fade-in_150ms] rounded', getDialogPositionClassnames(), getDialogSizeClassnames(dialog.size), 'print:w-full print:h-full print:m-0 print:overflow-visible');
6791
- const containerClassName = cn('bg-white p-6 rounded relative z-10 shadow print:p-0 print:overflow-visible print:h-full', {
6809
+ const className = cn('relative bg-white animate-[fade-in_150ms] rounded', getDialogPositionClassnames(), getDialogSizeClassnames(dialog.size), 'print:w-full print:h-max print:m-0 print:overflow-visible');
6810
+ const containerClassName = cn('bg-white p-6 rounded relative z-10 shadow print:p-0', 'print:overflow-visible print:h-max print:!transform-none print:!static print:!inset-0 print:!m-0', {
6792
6811
  'rounded-b-none': !!dialog.elements.extra
6793
6812
  }, props.className);
6794
6813
  const handleEscapeKeyDown = event => {
@@ -7547,7 +7566,8 @@ const Title$3 = /*#__PURE__*/React.forwardRef(function DialogTitle(props, ref) {
7547
7566
  });
7548
7567
  const Content$6 = /*#__PURE__*/React.forwardRef(function HangerContent(props, ref) {
7549
7568
  const {
7550
- placement: side
7569
+ placement: side,
7570
+ hideWhenDetached = false
7551
7571
  } = props;
7552
7572
  const context = React.useContext(HangerContext);
7553
7573
  const {
@@ -7563,7 +7583,8 @@ const Content$6 = /*#__PURE__*/React.forwardRef(function HangerContent(props, re
7563
7583
  onInteractOutside: handleInteractOutside,
7564
7584
  side: side,
7565
7585
  sideOffset: 1,
7566
- ref: ref
7586
+ ref: ref,
7587
+ hideWhenDetached: hideWhenDetached
7567
7588
  }, props.children, /*#__PURE__*/React.createElement(UnstyledArrow, {
7568
7589
  className: "text-blue-500"
7569
7590
  }), /*#__PURE__*/React.createElement(PopoverPrimitive.Close, {
@@ -12036,7 +12057,7 @@ function useTableStyleGrid(tableId, table, fontSize) {
12036
12057
  // we have to be specific so that nested tables don't inherit the same css
12037
12058
  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(',');
12038
12059
  const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }
12039
- table[data-taco^='table']#${tableId} [data-cell-id^='__']${hiddenColumns ? `, ${hiddenColumns}` : ''} { display: none; }}`;
12060
+ table[data-taco^='table']#${tableId} [data-cell-id^='__']${hiddenColumns ? `, ${hiddenColumns}` : ''} { display: none; } table[data-taco^='table']#${tableId} tr { page-break-inside: avoid; break-inside: avoid;}}`;
12040
12061
  return {
12041
12062
  style,
12042
12063
  stylesheet
@@ -15104,7 +15125,7 @@ const Tag$1 = /*#__PURE__*/React__default.forwardRef((props, ref) => {
15104
15125
  name: icon,
15105
15126
  className: "-ml-1 mr-1 !h-5 !w-5"
15106
15127
  })) : (/*#__PURE__*/React__default.cloneElement(icon, {
15107
- className: 'mr-1 -ml-1 !h-5 !w-5'
15128
+ className: cn(icon.props.className, 'mr-1 -ml-1')
15108
15129
  })) : null, /*#__PURE__*/React__default.createElement("span", {
15109
15130
  className: "truncate"
15110
15131
  }, children)), onDelete ? (/*#__PURE__*/React__default.createElement(Icon, {
@@ -19935,11 +19956,21 @@ const MemoedEditingCell = /*#__PURE__*/React__default.memo(function MemoedEditin
19935
19956
  props.onChange(newDate);
19936
19957
  }
19937
19958
  };
19959
+ const handleDatepickerInputKeyDown = event => {
19960
+ // When in detailed mode, we want to handle the change, when 'Enter' is pressed.
19961
+ // To make it possible, we just need to prevent handleInputKeyDown from being executed, and give the full control to Datepicker,
19962
+ // by doing this, Datepicker will exit "detailed mode" by itself when a valid date change event is triggered.
19963
+ // In any other cases we'll just execute the "handleInputKeyDown" handler.
19964
+ if (isDetailedMode && event.key === 'Enter' && event.target.value !== '') {
19965
+ return;
19966
+ }
19967
+ handleInputKeyDown(event);
19968
+ };
19938
19969
  return /*#__PURE__*/React__default.createElement(Datepicker, Object.assign({}, commonProps, {
19939
19970
  invalid: invalid,
19940
19971
  onChange: handleChange,
19941
19972
  onFocus: handleFocus,
19942
- onKeyDown: handleInputKeyDown,
19973
+ onKeyDown: handleDatepickerInputKeyDown,
19943
19974
  ref: controlRef,
19944
19975
  value: valueAsDate
19945
19976
  }));
@@ -20445,7 +20476,7 @@ function CreateNewRow(props) {
20445
20476
  keys: shortcut
20446
20477
  });
20447
20478
  }
20448
- const className = cn('group/row border-grey-300 !sticky z-[21] print:hidden', {
20479
+ const className = cn('group/row border-grey-300 !sticky z-[21]', {
20449
20480
  'bottom-10': tableMeta.footer.isEnabled,
20450
20481
  'bottom-0': !tableMeta.footer.isEnabled,
20451
20482
  'border-b': !isScrolled