@economic/taco 2.11.1 → 2.12.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 (53) 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/Menu.d.ts +1 -2
  5. package/dist/components/Menu/components/Content.d.ts +1 -1
  6. package/dist/components/Menu/components/Item.d.ts +1 -1
  7. package/dist/components/Menu/components/Link.d.ts +1 -1
  8. package/dist/components/Menu/components/Separator.d.ts +2 -4
  9. package/dist/components/Menu/components/SubMenu.d.ts +1 -1
  10. package/dist/components/ModeSwitch/ModeSwitch.d.ts +17 -0
  11. package/dist/components/Navigation2/components/Link.d.ts +1 -1
  12. package/dist/components/Provider/Localization.d.ts +0 -1
  13. package/dist/components/Select2/components/Option.d.ts +1 -1
  14. package/dist/components/Select2/components/Search.d.ts +1 -1
  15. package/dist/components/Table3/hooks/features/useCurrentRow.d.ts +1 -0
  16. package/dist/components/Table3/hooks/useCssGrid.d.ts +1 -1
  17. package/dist/components/Table3/types.d.ts +0 -1
  18. package/dist/components/Tag/Tag.d.ts +1 -1
  19. package/dist/esm/packages/taco/src/components/Icon/components/EditSimple.js +19 -0
  20. package/dist/esm/packages/taco/src/components/Icon/components/EditSimple.js.map +1 -0
  21. package/dist/esm/packages/taco/src/components/Icon/components/index.js +2 -0
  22. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  23. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
  24. package/dist/esm/packages/taco/src/components/Menu/components/Separator.js +6 -7
  25. package/dist/esm/packages/taco/src/components/Menu/components/Separator.js.map +1 -1
  26. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js +30 -0
  27. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js.map +1 -0
  28. package/dist/esm/packages/taco/src/components/Provider/Localization.js +1 -2
  29. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Table3/Table3.js +10 -5
  31. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +1 -1
  33. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js +9 -16
  35. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +1 -0
  37. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js +18 -3
  39. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js.map +1 -1
  40. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js +3 -2
  41. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js.map +1 -1
  42. package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
  43. package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js +12 -10
  44. package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js.map +1 -1
  45. package/dist/esm/packages/taco/src/index.js +1 -0
  46. package/dist/esm/packages/taco/src/index.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/taco.cjs.development.js +97 -42
  49. package/dist/taco.cjs.development.js.map +1 -1
  50. package/dist/taco.cjs.production.min.js +1 -1
  51. package/dist/taco.cjs.production.min.js.map +1 -1
  52. package/package.json +14 -14
  53. package/types.json +13363 -11176
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport cn from 'classnames';\n\nexport type TooltipProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> & {\n /** The element which activates the tooltip when hovered. Should be a single React/HTML element */\n children: React.ReactElement | any;\n /** Text displayed in the tooltip */\n title: string | JSX.Element;\n /**\n * Placement of the tooltip relative to the reference element. Placement will be reversed if a collision occurs\n * @defaultValue bottom\n */\n placement?: 'top' | 'right' | 'bottom' | 'left';\n};\n\nexport const Tooltip = React.forwardRef(function Tooltip(props: TooltipProps, ref: React.Ref<HTMLElement>) {\n const { children, placement, title, ...otherProps } = props;\n\n const className = cn(\n 'xs:max-w-[theme(spacing.56)] max-w-[theme(spacing.32)] animate-[fade-in_150ms] rounded-sm bg-blue-900 px-2 py-1 text-xs font-bold text-white',\n otherProps.className\n );\n const style = { transformOrigin: 'var(--radix-tooltip-content-transform-origin)' };\n\n return (\n <TooltipPrimitive.Root delayDuration={250}>\n <TooltipPrimitive.Trigger asChild ref={ref as any}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n {...otherProps}\n className={className}\n data-taco=\"tooltip\"\n side={placement}\n sideOffset={3}\n style={style}>\n <TooltipPrimitive.Arrow className=\"-mt-px fill-blue-900/90 stroke-blue-900/90\" />\n {title}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n});\n"],"names":["Tooltip","React","props","ref","children","placement","title","otherProps","className","cn","style","transformOrigin","TooltipPrimitive","delayDuration","asChild","side","sideOffset"],"mappings":";;;;MAgBaA,OAAO,gBAAGC,UAAgB,CAAC,SAASD,OAAOA,CAACE,KAAmB,EAAEC,GAA2B;EACrG,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,KAAK;IAAE,GAAGC;GAAY,GAAGL,KAAK;EAE3D,MAAMM,SAAS,GAAGC,EAAE,CAChB,8IAA8I,EAC9IF,UAAU,CAACC,SAAS,CACvB;EACD,MAAME,KAAK,GAAG;IAAEC,eAAe,EAAE;GAAiD;EAElF,oBACIV,cAACW,IAAqB;IAACC,aAAa,EAAE;kBAClCZ,cAACW,OAAwB;IAACE,OAAO;IAACX,GAAG,EAAEA;KAClCC,QAAQ,CACc,eAC3BH,cAACW,MAAuB,qBACpBX,cAACW,OAAwB,oBACjBL,UAAU;IACdC,SAAS,EAAEA,SAAS;iBACV,SAAS;IACnBO,IAAI,EAAEV,SAAS;IACfW,UAAU,EAAE,CAAC;IACbN,KAAK,EAAEA;mBACPT,cAACW,KAAsB;IAACJ,SAAS,EAAC;IAA+C,EAChFF,KAAK,CACiB,CACL,CACN;AAEhC,CAAC;;;;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport cn from 'classnames';\n\nexport type TooltipProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> & {\n /** The element which activates the tooltip when hovered. Should be a single React/HTML element */\n children: React.ReactElement | any;\n /** Text displayed in the tooltip */\n title: string | JSX.Element;\n /**\n * Placement of the tooltip relative to the reference element. Placement will be reversed if a collision occurs\n * @defaultValue bottom\n */\n placement?: 'top' | 'right' | 'bottom' | 'left';\n};\n\nexport const Tooltip = React.forwardRef(function Tooltip(props: TooltipProps, ref: React.Ref<HTMLElement>) {\n const { title, children, placement, ...otherProps } = props;\n const className = cn(otherProps.className);\n\n return (\n <TooltipPrimitive.Root delayDuration={250}>\n <TooltipPrimitive.Trigger asChild ref={ref as any}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content {...otherProps} asChild className={className} side={placement} sideOffset={3}>\n <div\n className=\"xs:max-w-[theme(spacing.56)] max-w-[theme(spacing.32)] animate-[fade-in_150ms] rounded-sm bg-blue-900 px-2 py-1 text-xs font-bold text-white\"\n data-taco=\"tooltip\"\n style={{\n transformOrigin: 'var(--radix-tooltip-content-transform-origin)',\n }}>\n <TooltipPrimitive.Arrow className=\"-mt-px fill-blue-900/90 stroke-blue-900/90\" />\n {title}\n </div>\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n});\n"],"names":["Tooltip","React","props","ref","title","children","placement","otherProps","className","cn","TooltipPrimitive","delayDuration","asChild","side","sideOffset","style","transformOrigin"],"mappings":";;;;MAgBaA,OAAO,gBAAGC,UAAgB,CAAC,SAASD,OAAOA,CAACE,KAAmB,EAAEC,GAA2B;EACrG,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAE,GAAGC;GAAY,GAAGL,KAAK;EAC3D,MAAMM,SAAS,GAAGC,EAAE,CAACF,UAAU,CAACC,SAAS,CAAC;EAE1C,oBACIP,cAACS,IAAqB;IAACC,aAAa,EAAE;kBAClCV,cAACS,OAAwB;IAACE,OAAO;IAACT,GAAG,EAAEA;KAClCE,QAAQ,CACc,eAC3BJ,cAACS,MAAuB,qBACpBT,cAACS,OAAwB,oBAAKH,UAAU;IAAEK,OAAO;IAACJ,SAAS,EAAEA,SAAS;IAAEK,IAAI,EAAEP,SAAS;IAAEQ,UAAU,EAAE;mBACjGb;IACIO,SAAS,EAAC,8IAA8I;iBAC9I,SAAS;IACnBO,KAAK,EAAE;MACHC,eAAe,EAAE;;kBAErBf,cAACS,KAAsB;IAACF,SAAS,EAAC;IAA+C,EAChFJ,KAAK,CACJ,CACiB,CACL,CACN;AAEhC,CAAC;;;;"}
@@ -38,6 +38,7 @@ export { Listbox, MultiListbox } from './components/Listbox/Listbox.js';
38
38
  export { Shortcut } from './components/Shortcut/Shortcut.js';
39
39
  export { RadioGroup, findByValue, getRadioGroupItemValueAsString, useRadioGroup } from './components/RadioGroup/RadioGroup.js';
40
40
  export { Menu } from './components/Menu/Menu.js';
41
+ export { ModeSwitch } from './components/ModeSwitch/ModeSwitch.js';
41
42
  export { Treeview } from './components/Treeview/Treeview.js';
42
43
  export { useDropTarget } from './utils/hooks/useDropTarget.js';
43
44
  export { Navigation } from './components/Navigation/Navigation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -24,6 +24,7 @@ export * from './components/IconButton/IconButton';
24
24
  export * from './components/Input/Input';
25
25
  export * from './components/Listbox/Listbox';
26
26
  export * from './components/Menu/Menu';
27
+ export * from './components/ModeSwitch/ModeSwitch';
27
28
  export * from './components/Navigation/Navigation';
28
29
  export * from './components/OverflowGroup/OverflowGroup';
29
30
  export * from './components/Pagination/Pagination';
@@ -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,
@@ -3983,29 +3999,31 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
3983
3999
 
3984
4000
  const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
3985
4001
  const {
4002
+ title,
3986
4003
  children,
3987
4004
  placement,
3988
- title,
3989
4005
  ...otherProps
3990
4006
  } = props;
3991
- const className = cn('xs:max-w-[theme(spacing.56)] max-w-[theme(spacing.32)] animate-[fade-in_150ms] rounded-sm bg-blue-900 px-2 py-1 text-xs font-bold text-white', otherProps.className);
3992
- const style = {
3993
- transformOrigin: 'var(--radix-tooltip-content-transform-origin)'
3994
- };
4007
+ const className = cn(otherProps.className);
3995
4008
  return /*#__PURE__*/React.createElement(TooltipPrimitive.Root, {
3996
4009
  delayDuration: 250
3997
4010
  }, /*#__PURE__*/React.createElement(TooltipPrimitive.Trigger, {
3998
4011
  asChild: true,
3999
4012
  ref: ref
4000
4013
  }, children), /*#__PURE__*/React.createElement(TooltipPrimitive.Portal, null, /*#__PURE__*/React.createElement(TooltipPrimitive.Content, Object.assign({}, otherProps, {
4014
+ asChild: true,
4001
4015
  className: className,
4002
- "data-taco": "tooltip",
4003
4016
  side: placement,
4004
- sideOffset: 3,
4005
- style: style
4006
- }), /*#__PURE__*/React.createElement(TooltipPrimitive.Arrow, {
4017
+ sideOffset: 3
4018
+ }), /*#__PURE__*/React.createElement("div", {
4019
+ className: "xs:max-w-[theme(spacing.56)] max-w-[theme(spacing.32)] animate-[fade-in_150ms] rounded-sm bg-blue-900 px-2 py-1 text-xs font-bold text-white",
4020
+ "data-taco": "tooltip",
4021
+ style: {
4022
+ transformOrigin: 'var(--radix-tooltip-content-transform-origin)'
4023
+ }
4024
+ }, /*#__PURE__*/React.createElement(TooltipPrimitive.Arrow, {
4007
4025
  className: "-mt-px fill-blue-900/90 stroke-blue-900/90"
4008
- }), title)));
4026
+ }), title))));
4009
4027
  });
4010
4028
 
4011
4029
  const getButtonClasses = () => {
@@ -4356,8 +4374,7 @@ const defaultLocalisationTexts = {
4356
4374
  },
4357
4375
  buttons: {
4358
4376
  edit: {
4359
- text: 'Edit',
4360
- tooltip: 'Edit'
4377
+ tooltip: 'Edit table'
4361
4378
  }
4362
4379
  },
4363
4380
  rowIndicator: {
@@ -7862,12 +7879,11 @@ const RadioGroup$1 = /*#__PURE__*/React.forwardRef(function MenuRadioItem(props,
7862
7879
  });
7863
7880
  RadioGroup$1.Item = RadioItem;
7864
7881
 
7865
- const Separator = /*#__PURE__*/React.forwardRef((props, ref) => {
7866
- return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Separator, Object.assign({}, props, {
7867
- className: "bg-grey-300 my-1 h-px",
7868
- ref: ref
7869
- }));
7870
- });
7882
+ const Separator = () => {
7883
+ return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Separator, {
7884
+ className: "bg-grey-300 my-1 h-px"
7885
+ });
7886
+ };
7871
7887
 
7872
7888
  const Header = /*#__PURE__*/React.forwardRef(function MenuHeader(props, ref) {
7873
7889
  const menu = useCurrentMenu();
@@ -7942,6 +7958,29 @@ Menu$1.Header = Header;
7942
7958
  Menu$1.RadioGroup = RadioGroup$1;
7943
7959
  Menu$1.SubMenu = SubMenu;
7944
7960
 
7961
+ const ModeSwitch = /*#__PURE__*/React.forwardRef(function ModeSwitch(props, ref) {
7962
+ const {
7963
+ onChange,
7964
+ ...otherProps
7965
+ } = props;
7966
+ const className = cn('group w-14 h-8 flex flex-shrink-0 rounded-full inline-flex focus-visible:yt-focus p-1', {
7967
+ 'bg-grey-500 hover:bg-grey-700 aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700': !props.disabled,
7968
+ 'bg-grey-500 aria-checked:bg-blue-500 cursor-not-allowed opacity-50': props.disabled
7969
+ }, props.className);
7970
+ return /*#__PURE__*/React.createElement(PrimitiveSwitch.Root, Object.assign({}, otherProps, {
7971
+ className: className,
7972
+ "data-taco": "mode",
7973
+ onCheckedChange: onChange,
7974
+ ref: ref
7975
+ }), /*#__PURE__*/React.createElement(PrimitiveSwitch.Thumb, {
7976
+ 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%]"
7977
+ }, /*#__PURE__*/React.createElement(Icon, {
7978
+ name: "edit-simple",
7979
+ className: "!h-5 !w-5"
7980
+ })));
7981
+ });
7982
+ ModeSwitch.displayName = 'ModeSwitch';
7983
+
7945
7984
  const TreeviewItem = /*#__PURE__*/React__default.forwardRef(function TreeviewItem(props, ref) {
7946
7985
  return /*#__PURE__*/React__default.createElement("a", Object.assign({}, props, {
7947
7986
  ref: ref
@@ -16008,7 +16047,7 @@ function Menu$3(props) {
16008
16047
  // we do this in the next tick, otherwise the menu closes and react throws a "state update on unmounted component" error
16009
16048
  const handleClick = event => setTimeout(() => handleHide(event), 1);
16010
16049
  menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
16011
- icon: "unreconciled",
16050
+ icon: "eye-off",
16012
16051
  onClick: handleClick
16013
16052
  }, texts.table3.columns.menu.hideColumn));
16014
16053
  }
@@ -16655,7 +16694,7 @@ const getInputAppearanceClassnames = () => {
16655
16694
  return cn('[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none');
16656
16695
  };
16657
16696
 
16658
- const useCssGrid = (table, isPrintTable = false) => {
16697
+ const useCssGrid = (table, isPrintTable = false, actionsForRowLength = 0) => {
16659
16698
  const allVisibleColumns = table.getVisibleLeafColumns();
16660
16699
  const columnSizing = table.getState().columnSizing;
16661
16700
  const rowsLength = table.getRowModel().rows.length;
@@ -16674,7 +16713,8 @@ const useCssGrid = (table, isPrintTable = false) => {
16674
16713
  size = `minmax(${PRINT_MIN_COLUMN_SIZE}px, ${maxWidth})`;
16675
16714
  } else if (isColumnInternal) {
16676
16715
  if (column.id === COLUMN_ID) {
16677
- size = 'minmax(max-content, auto)';
16716
+ const minWidth = actionsForRowLength * 32 + 8 /* button margins l+r */ + 8; /* cell padding l+r */
16717
+ size = `minmax(${minWidth}px, auto)`;
16678
16718
  } else {
16679
16719
  // getSize method is used instead of columnSizing state because columnSizing state doesn't have
16680
16720
  // sizes of internal columns.
@@ -16767,16 +16807,31 @@ function useCurrentRow(defaultCurrentRowIndex) {
16767
16807
  // do it in the next tick, otherwise it prevents internal focus from working
16768
16808
  // meaning you have to tab twice to get to the first focusable element
16769
16809
  setTimeout(() => {
16770
- setCurrentRowIndex(0);
16771
- scrollToIndex(0);
16810
+ setCurrentRowIndex(index => {
16811
+ if (index === undefined) {
16812
+ scrollToIndex(0);
16813
+ return 0;
16814
+ }
16815
+ return index;
16816
+ });
16772
16817
  }, 1);
16773
16818
  }
16774
16819
  }, [currentRowIndex, length]);
16820
+ const onMouseCapture = React__default.useCallback((event, length) => {
16821
+ if (event.isDefaultPrevented()) {
16822
+ return;
16823
+ }
16824
+ if (currentRowIndex === undefined && length > 0) {
16825
+ event.preventDefault();
16826
+ event.stopPropagation();
16827
+ }
16828
+ }, [currentRowIndex, length]);
16775
16829
  return {
16776
16830
  currentRowIndex,
16777
16831
  setCurrentRowIndex,
16778
16832
  handleFocus: onFocus,
16779
- handleKeyDown: onKeyDown
16833
+ handleKeyDown: onKeyDown,
16834
+ handleMouseCapture: onMouseCapture
16780
16835
  };
16781
16836
  }
16782
16837
  const getNextIndex$2 = (direction, currentIndex, length) => {
@@ -20144,15 +20199,8 @@ function EditButton(props) {
20144
20199
  texts
20145
20200
  } = useLocalization();
20146
20201
  const tableMeta = props.table.options.meta;
20147
- const className = cn({
20148
- '!wcag-blue-100': tableMeta.editing.isEditing
20149
- });
20150
- const handleClick = () => tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing);
20151
- return /*#__PURE__*/React__default.createElement(Button$1, {
20152
- "aria-pressed": tableMeta.editing.isEditing,
20153
- className: className,
20154
- onClick: handleClick,
20155
- tooltip: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, texts.table3.editing.buttons.edit.tooltip, /*#__PURE__*/React__default.createElement(Shortcut, {
20202
+ return /*#__PURE__*/React__default.createElement(Tooltip, {
20203
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, texts.table3.editing.buttons.edit.tooltip, /*#__PURE__*/React__default.createElement(Shortcut, {
20156
20204
  className: "ml-2",
20157
20205
  keys: {
20158
20206
  key: 'e',
@@ -20160,10 +20208,11 @@ function EditButton(props) {
20160
20208
  shift: false
20161
20209
  }
20162
20210
  }))
20163
- }, /*#__PURE__*/React__default.createElement(Icon, {
20164
- "aria-hidden": true,
20165
- name: "edit"
20166
- }), texts.table3.editing.buttons.edit.text);
20211
+ }, /*#__PURE__*/React__default.createElement(ModeSwitch, {
20212
+ "aria-pressed": tableMeta.editing.isEditing,
20213
+ checked: tableMeta.editing.isEditing,
20214
+ onChange: tableMeta.editing.toggleEditing
20215
+ }));
20167
20216
  }
20168
20217
 
20169
20218
  const PRINT_STYLES = `
@@ -21184,12 +21233,16 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
21184
21233
  // scrollToIndex function changes when row count changes, so it is important to update handlers with new
21185
21234
  // scrollToIndex function.
21186
21235
  [scrollToIndex, tableMeta.editing.isEditing, internalRef.current]);
21187
- const handleBlur = event => {
21236
+ const handleBlur = tableMeta.editing.isEnabled ? event => {
21188
21237
  tableMeta.editing.handleBlur(event);
21189
- };
21190
- const handleFocus = event => {
21238
+ } : undefined;
21239
+ const handleFocus = tableMeta.currentRow.currentRowIndex === undefined ? event => {
21191
21240
  tableMeta.currentRow.handleFocus(event, table.getRowModel().rows.length, scrollToIndex);
21192
- };
21241
+ } : undefined;
21242
+ // mouse capture fires before focus, so we can prevent propagation and stop double setting of the active row
21243
+ const handleMouseCapture = tableMeta.currentRow.currentRowIndex === undefined ? event => {
21244
+ tableMeta.currentRow.handleMouseCapture(event, table.getRowModel().rows.length);
21245
+ } : undefined;
21193
21246
  const handleScroll = function (event) {
21194
21247
  try {
21195
21248
  tableMeta.columnFreezing.handleScroll(event);
@@ -21207,7 +21260,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
21207
21260
  // if the table is a print table or not.
21208
21261
  const {
21209
21262
  style: cssGridStyle
21210
- } = useCssGrid(table, tableMeta.isPrinting);
21263
+ } = useCssGrid(table, tableMeta.isPrinting, tableMeta.rowActions.actionsForRowLength);
21211
21264
  const {
21212
21265
  style: cssVars
21213
21266
  } = useCssVars(tableMeta.rowHeight.height, tableMeta.fontSize.size);
@@ -21241,6 +21294,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
21241
21294
  "data-taco": "table2",
21242
21295
  onBlur: handleBlur,
21243
21296
  onFocus: handleFocus,
21297
+ onMouseDownCapture: handleMouseCapture,
21244
21298
  onScroll: handleScroll,
21245
21299
  ref: internalRef,
21246
21300
  role: "table",
@@ -22267,6 +22321,7 @@ exports.Listbox = Listbox;
22267
22321
  exports.LocalizationContext = LocalizationContext;
22268
22322
  exports.LocalizationProvider = LocalizationProvider;
22269
22323
  exports.Menu = Menu$1;
22324
+ exports.ModeSwitch = ModeSwitch;
22270
22325
  exports.MultiListbox = MultiListbox;
22271
22326
  exports.Navigation = Navigation;
22272
22327
  exports.Navigation2 = Navigation2;