@economic/taco 2.11.2 → 2.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/dist/components/Icon/components/EditSimple.d.ts +3 -0
  2. package/dist/components/Icon/components/index.d.ts +1 -1
  3. package/dist/components/Input/Input.d.ts +1 -1
  4. package/dist/components/Menu/components/Item.d.ts +1 -1
  5. package/dist/components/Menu/components/Link.d.ts +1 -1
  6. package/dist/components/ModeSwitch/ModeSwitch.d.ts +17 -0
  7. package/dist/components/Navigation2/components/Link.d.ts +1 -1
  8. package/dist/components/Provider/Localization.d.ts +0 -1
  9. package/dist/components/Select2/components/Option.d.ts +1 -1
  10. package/dist/components/Select2/components/Search.d.ts +1 -1
  11. package/dist/components/Table3/hooks/features/useCurrentRow.d.ts +1 -0
  12. package/dist/components/Table3/hooks/useCssGrid.d.ts +1 -1
  13. package/dist/components/Table3/types.d.ts +0 -1
  14. package/dist/components/Tag/Tag.d.ts +1 -1
  15. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +4 -1
  16. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -1
  17. package/dist/esm/packages/taco/src/components/Icon/components/EditSimple.js +19 -0
  18. package/dist/esm/packages/taco/src/components/Icon/components/EditSimple.js.map +1 -0
  19. package/dist/esm/packages/taco/src/components/Icon/components/index.js +2 -0
  20. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  21. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js +30 -0
  22. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js.map +1 -0
  23. package/dist/esm/packages/taco/src/components/Provider/Localization.js +1 -2
  24. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  25. package/dist/esm/packages/taco/src/components/Table3/Table3.js +10 -5
  26. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  27. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +1 -1
  28. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -1
  29. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js +9 -16
  30. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js.map +1 -1
  31. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +1 -0
  32. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
  33. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js +18 -3
  34. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js.map +1 -1
  35. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js +3 -2
  36. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js.map +1 -1
  37. package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
  38. package/dist/esm/packages/taco/src/index.js +1 -0
  39. package/dist/esm/packages/taco/src/index.js.map +1 -1
  40. package/dist/index.d.ts +1 -0
  41. package/dist/taco.cjs.development.js +84 -27
  42. package/dist/taco.cjs.development.js.map +1 -1
  43. package/dist/taco.cjs.production.min.js +1 -1
  44. package/dist/taco.cjs.production.min.js.map +1 -1
  45. package/package.json +2 -2
  46. package/types.json +13366 -11141
@@ -1287,6 +1287,21 @@ function IconESignature(props, svgRef) {
1287
1287
  }
1288
1288
  var ESignature = /*#__PURE__*/React.forwardRef(IconESignature);
1289
1289
 
1290
+ function IconEditSimple(props, svgRef) {
1291
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
1292
+ fill: "none",
1293
+ xmlns: "http://www.w3.org/2000/svg",
1294
+ viewBox: "0 0 24 24",
1295
+ ref: svgRef
1296
+ }, props), /*#__PURE__*/React.createElement("path", {
1297
+ fillRule: "evenodd",
1298
+ clipRule: "evenodd",
1299
+ d: "M16.013 4.513a1.75 1.75 0 012.35-.114l.124.114 1.586 1.585a1.75 1.75 0 01.114 2.35l-.114.125L8.061 20.586H4v-4.06L16.013 4.512zm-1.514 3.633l-8.999 9v1.94h1.938l9-9.001-1.939-1.939zm2.928-2.573a.25.25 0 00-.3-.04l-.054.04-1.513 1.512 1.939 1.939 1.514-1.511a.25.25 0 00.065-.24l-.025-.06-.04-.054-1.586-1.586z",
1300
+ fill: "currentColor"
1301
+ }));
1302
+ }
1303
+ var EditSimple = /*#__PURE__*/React.forwardRef(IconEditSimple);
1304
+
1290
1305
  function IconEdit(props, svgRef) {
1291
1306
  return /*#__PURE__*/React.createElement("svg", Object.assign({
1292
1307
  xmlns: "http://www.w3.org/2000/svg",
@@ -3349,6 +3364,7 @@ const icons = {
3349
3364
  drag: Drag,
3350
3365
  'e-copedia': ECopedia,
3351
3366
  'e-signature': ESignature,
3367
+ 'edit-simple': EditSimple,
3352
3368
  edit: Edit,
3353
3369
  'ellipsis-horizontal': EllipsisHorizontal,
3354
3370
  'ellipsis-vertical': EllipsisVertical,
@@ -4358,8 +4374,7 @@ const defaultLocalisationTexts = {
4358
4374
  },
4359
4375
  buttons: {
4360
4376
  edit: {
4361
- text: 'Edit',
4362
- tooltip: 'Edit'
4377
+ tooltip: 'Edit table'
4363
4378
  }
4364
4379
  },
4365
4380
  rowIndicator: {
@@ -6725,7 +6740,10 @@ const DrawerContent = /*#__PURE__*/React__default.forwardRef(function Content(pr
6725
6740
  }, dragHandleProps, {
6726
6741
  "data-testid": "resize-handler",
6727
6742
  ref: dragHandlerRef
6728
- })), showCloseButton ? /*#__PURE__*/React__default.createElement(Close$3, null, /*#__PURE__*/React__default.createElement(IconButton, {
6743
+ }), dragging ? /*#__PURE__*/React__default.createElement("div", {
6744
+ "data-testid": "resize-hit-area",
6745
+ className: "fixed bottom-0 left-0 right-0 top-0"
6746
+ }) : null), showCloseButton ? /*#__PURE__*/React__default.createElement(Close$3, null, /*#__PURE__*/React__default.createElement(IconButton, {
6729
6747
  appearance: "discrete",
6730
6748
  "aria-label": texts.drawer.close,
6731
6749
  className: "absolute right-0 top-0 mr-2 mt-4",
@@ -7943,6 +7961,29 @@ Menu$1.Header = Header;
7943
7961
  Menu$1.RadioGroup = RadioGroup$1;
7944
7962
  Menu$1.SubMenu = SubMenu;
7945
7963
 
7964
+ const ModeSwitch = /*#__PURE__*/React.forwardRef(function ModeSwitch(props, ref) {
7965
+ const {
7966
+ onChange,
7967
+ ...otherProps
7968
+ } = props;
7969
+ const className = cn('group w-14 h-8 flex flex-shrink-0 rounded-full inline-flex focus-visible:yt-focus p-1', {
7970
+ 'bg-grey-500 hover:bg-grey-700 aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700': !props.disabled,
7971
+ 'bg-grey-500 aria-checked:bg-blue-500 cursor-not-allowed opacity-50': props.disabled
7972
+ }, props.className);
7973
+ return /*#__PURE__*/React.createElement(PrimitiveSwitch.Root, Object.assign({}, otherProps, {
7974
+ className: className,
7975
+ "data-taco": "mode",
7976
+ onCheckedChange: onChange,
7977
+ ref: ref
7978
+ }), /*#__PURE__*/React.createElement(PrimitiveSwitch.Thumb, {
7979
+ className: "'will-change-transform flex h-6 w-6 items-center justify-center rounded-full bg-white transition-transform group-disabled:opacity-50 group-aria-checked:translate-x-[100%]"
7980
+ }, /*#__PURE__*/React.createElement(Icon, {
7981
+ name: "edit-simple",
7982
+ className: "!h-5 !w-5"
7983
+ })));
7984
+ });
7985
+ ModeSwitch.displayName = 'ModeSwitch';
7986
+
7946
7987
  const TreeviewItem = /*#__PURE__*/React__default.forwardRef(function TreeviewItem(props, ref) {
7947
7988
  return /*#__PURE__*/React__default.createElement("a", Object.assign({}, props, {
7948
7989
  ref: ref
@@ -16009,7 +16050,7 @@ function Menu$3(props) {
16009
16050
  // we do this in the next tick, otherwise the menu closes and react throws a "state update on unmounted component" error
16010
16051
  const handleClick = event => setTimeout(() => handleHide(event), 1);
16011
16052
  menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
16012
- icon: "unreconciled",
16053
+ icon: "eye-off",
16013
16054
  onClick: handleClick
16014
16055
  }, texts.table3.columns.menu.hideColumn));
16015
16056
  }
@@ -16656,7 +16697,7 @@ const getInputAppearanceClassnames = () => {
16656
16697
  return cn('[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none');
16657
16698
  };
16658
16699
 
16659
- const useCssGrid = (table, isPrintTable = false) => {
16700
+ const useCssGrid = (table, isPrintTable = false, actionsForRowLength = 0) => {
16660
16701
  const allVisibleColumns = table.getVisibleLeafColumns();
16661
16702
  const columnSizing = table.getState().columnSizing;
16662
16703
  const rowsLength = table.getRowModel().rows.length;
@@ -16675,7 +16716,8 @@ const useCssGrid = (table, isPrintTable = false) => {
16675
16716
  size = `minmax(${PRINT_MIN_COLUMN_SIZE}px, ${maxWidth})`;
16676
16717
  } else if (isColumnInternal) {
16677
16718
  if (column.id === COLUMN_ID) {
16678
- size = 'minmax(max-content, auto)';
16719
+ const minWidth = actionsForRowLength * 32 + 8 /* button margins l+r */ + 8; /* cell padding l+r */
16720
+ size = `minmax(${minWidth}px, auto)`;
16679
16721
  } else {
16680
16722
  // getSize method is used instead of columnSizing state because columnSizing state doesn't have
16681
16723
  // sizes of internal columns.
@@ -16768,16 +16810,31 @@ function useCurrentRow(defaultCurrentRowIndex) {
16768
16810
  // do it in the next tick, otherwise it prevents internal focus from working
16769
16811
  // meaning you have to tab twice to get to the first focusable element
16770
16812
  setTimeout(() => {
16771
- setCurrentRowIndex(0);
16772
- scrollToIndex(0);
16813
+ setCurrentRowIndex(index => {
16814
+ if (index === undefined) {
16815
+ scrollToIndex(0);
16816
+ return 0;
16817
+ }
16818
+ return index;
16819
+ });
16773
16820
  }, 1);
16774
16821
  }
16775
16822
  }, [currentRowIndex, length]);
16823
+ const onMouseCapture = React__default.useCallback((event, length) => {
16824
+ if (event.isDefaultPrevented()) {
16825
+ return;
16826
+ }
16827
+ if (currentRowIndex === undefined && length > 0) {
16828
+ event.preventDefault();
16829
+ event.stopPropagation();
16830
+ }
16831
+ }, [currentRowIndex, length]);
16776
16832
  return {
16777
16833
  currentRowIndex,
16778
16834
  setCurrentRowIndex,
16779
16835
  handleFocus: onFocus,
16780
- handleKeyDown: onKeyDown
16836
+ handleKeyDown: onKeyDown,
16837
+ handleMouseCapture: onMouseCapture
16781
16838
  };
16782
16839
  }
16783
16840
  const getNextIndex$2 = (direction, currentIndex, length) => {
@@ -20145,15 +20202,8 @@ function EditButton(props) {
20145
20202
  texts
20146
20203
  } = useLocalization();
20147
20204
  const tableMeta = props.table.options.meta;
20148
- const className = cn({
20149
- '!wcag-blue-100': tableMeta.editing.isEditing
20150
- });
20151
- const handleClick = () => tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing);
20152
- return /*#__PURE__*/React__default.createElement(Button$1, {
20153
- "aria-pressed": tableMeta.editing.isEditing,
20154
- className: className,
20155
- onClick: handleClick,
20156
- tooltip: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, texts.table3.editing.buttons.edit.tooltip, /*#__PURE__*/React__default.createElement(Shortcut, {
20205
+ return /*#__PURE__*/React__default.createElement(Tooltip, {
20206
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, texts.table3.editing.buttons.edit.tooltip, /*#__PURE__*/React__default.createElement(Shortcut, {
20157
20207
  className: "ml-2",
20158
20208
  keys: {
20159
20209
  key: 'e',
@@ -20161,10 +20211,11 @@ function EditButton(props) {
20161
20211
  shift: false
20162
20212
  }
20163
20213
  }))
20164
- }, /*#__PURE__*/React__default.createElement(Icon, {
20165
- "aria-hidden": true,
20166
- name: "edit"
20167
- }), texts.table3.editing.buttons.edit.text);
20214
+ }, /*#__PURE__*/React__default.createElement(ModeSwitch, {
20215
+ "aria-pressed": tableMeta.editing.isEditing,
20216
+ checked: tableMeta.editing.isEditing,
20217
+ onChange: tableMeta.editing.toggleEditing
20218
+ }));
20168
20219
  }
20169
20220
 
20170
20221
  const PRINT_STYLES = `
@@ -21185,12 +21236,16 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
21185
21236
  // scrollToIndex function changes when row count changes, so it is important to update handlers with new
21186
21237
  // scrollToIndex function.
21187
21238
  [scrollToIndex, tableMeta.editing.isEditing, internalRef.current]);
21188
- const handleBlur = event => {
21239
+ const handleBlur = tableMeta.editing.isEnabled ? event => {
21189
21240
  tableMeta.editing.handleBlur(event);
21190
- };
21191
- const handleFocus = event => {
21241
+ } : undefined;
21242
+ const handleFocus = tableMeta.currentRow.currentRowIndex === undefined ? event => {
21192
21243
  tableMeta.currentRow.handleFocus(event, table.getRowModel().rows.length, scrollToIndex);
21193
- };
21244
+ } : undefined;
21245
+ // mouse capture fires before focus, so we can prevent propagation and stop double setting of the active row
21246
+ const handleMouseCapture = tableMeta.currentRow.currentRowIndex === undefined ? event => {
21247
+ tableMeta.currentRow.handleMouseCapture(event, table.getRowModel().rows.length);
21248
+ } : undefined;
21194
21249
  const handleScroll = function (event) {
21195
21250
  try {
21196
21251
  tableMeta.columnFreezing.handleScroll(event);
@@ -21208,7 +21263,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
21208
21263
  // if the table is a print table or not.
21209
21264
  const {
21210
21265
  style: cssGridStyle
21211
- } = useCssGrid(table, tableMeta.isPrinting);
21266
+ } = useCssGrid(table, tableMeta.isPrinting, tableMeta.rowActions.actionsForRowLength);
21212
21267
  const {
21213
21268
  style: cssVars
21214
21269
  } = useCssVars(tableMeta.rowHeight.height, tableMeta.fontSize.size);
@@ -21263,6 +21318,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
21263
21318
  })))))), table.getRowModel().rows.length ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(focus.FocusScope, {
21264
21319
  autoFocus: tableMeta.editing.isEditing
21265
21320
  }, /*#__PURE__*/React__default.createElement("div", {
21321
+ onMouseDownCapture: handleMouseCapture,
21266
21322
  className: "group/body contents",
21267
21323
  "data-taco": "table2-body",
21268
21324
  role: "rowgroup",
@@ -22268,6 +22324,7 @@ exports.Listbox = Listbox;
22268
22324
  exports.LocalizationContext = LocalizationContext;
22269
22325
  exports.LocalizationProvider = LocalizationProvider;
22270
22326
  exports.Menu = Menu$1;
22327
+ exports.ModeSwitch = ModeSwitch;
22271
22328
  exports.MultiListbox = MultiListbox;
22272
22329
  exports.Navigation = Navigation;
22273
22330
  exports.Navigation2 = Navigation2;