@economic/taco 2.7.5 → 2.8.1

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 (62) hide show
  1. package/dist/components/Icon/components/CircleInformation.d.ts +3 -0
  2. package/dist/components/Icon/components/CircleQuestionmark.d.ts +3 -0
  3. package/dist/components/Icon/components/CircleWarning.d.ts +3 -0
  4. package/dist/components/Icon/components/index.d.ts +1 -1
  5. package/dist/components/Input/Input.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/Navigation2/components/Link.d.ts +1 -1
  9. package/dist/components/Select2/Select2.d.ts +1 -0
  10. package/dist/components/Select2/components/Option.d.ts +1 -1
  11. package/dist/components/Select2/components/Search.d.ts +1 -1
  12. package/dist/components/Select2/components/Trigger.d.ts +1 -0
  13. package/dist/components/Table3/components/columns/footer/Summary.d.ts +1 -0
  14. package/dist/components/Tag/Tag.d.ts +1 -1
  15. package/dist/esm/index.css +14 -1
  16. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +0 -9
  17. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
  18. package/dist/esm/packages/taco/src/components/Icon/components/CircleInformation.js +19 -0
  19. package/dist/esm/packages/taco/src/components/Icon/components/CircleInformation.js.map +1 -0
  20. package/dist/esm/packages/taco/src/components/Icon/components/CircleQuestionmark.js +19 -0
  21. package/dist/esm/packages/taco/src/components/Icon/components/CircleQuestionmark.js.map +1 -0
  22. package/dist/esm/packages/taco/src/components/Icon/components/CircleWarning.js +19 -0
  23. package/dist/esm/packages/taco/src/components/Icon/components/CircleWarning.js.map +1 -0
  24. package/dist/esm/packages/taco/src/components/Icon/components/index.js +6 -0
  25. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  26. package/dist/esm/packages/taco/src/components/Provider/Localization.js +1 -1
  27. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/Select2/Select2.js +3 -1
  29. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +28 -7
  31. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js +2 -2
  33. package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Table3/Table3.js +11 -2
  35. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingControl.js +13 -3
  37. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingControl.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js +12 -2
  39. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js.map +1 -1
  40. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js +4 -1
  41. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js.map +1 -1
  42. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js +0 -9
  43. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js.map +1 -1
  44. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +2 -1
  45. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -1
  46. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js +15 -8
  47. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js.map +1 -1
  48. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
  49. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  50. package/dist/esm/packages/taco/src/index.js +1 -1
  51. package/dist/esm/packages/taco/src/primitives/Button.js +5 -0
  52. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  53. package/dist/esm/packages/taco/src/utils/keyboard.js +24 -19
  54. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  55. package/dist/index.css +14 -1
  56. package/dist/taco.cjs.development.js +168 -65
  57. package/dist/taco.cjs.development.js.map +1 -1
  58. package/dist/taco.cjs.production.min.js +1 -1
  59. package/dist/taco.cjs.production.min.js.map +1 -1
  60. package/dist/utils/keyboard.d.ts +2 -1
  61. package/package.json +2 -2
  62. package/types.json +17769 -11837
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isEventTriggeredOnInteractiveElement(eventTarget: EventTarget | null) {\n const element = eventTarget as HTMLElement;\n\n return (\n ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'].includes(element.tagName) &&\n !element.hidden &&\n !(element as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLButtonElement).disabled &&\n !(element as HTMLInputElement | HTMLTextAreaElement).readOnly\n );\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target as HTMLElement)) {\n return;\n }\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return;\n }\n\n const condition = event.key.toLowerCase() === keyOptions.key.toLowerCase();\n\n if (condition) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["isEventTriggeredOnInteractiveElement","eventTarget","element","includes","tagName","hidden","disabled","readOnly","createShortcutKeyDownHandler","key","handler","event","keyOptions","meta","shift","target","currentTarget","isMacOs","metaKey","ctrlKey","shiftKey","condition","toLowerCase","_event$stopImmediateP","stopPropagation","stopImmediatePropagation","call","_window","window","navigator","userAgent"],"mappings":"SAIgBA,oCAAoCA,CAACC,WAA+B;EAChF,MAAMC,OAAO,GAAGD,WAA0B;EAE1C,OACI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAACE,QAAQ,CAACD,OAAO,CAACE,OAAO,CAAC,IACxE,CAACF,OAAO,CAACG,MAAM,IACf,CAAEH,OAA0F,CAACI,QAAQ,IACrG,CAAEJ,OAAkD,CAACK,QAAQ;AAErE;SAEgBC,4BAA4BA,CACxCC,GAAmC,EACnCC,OAAgE;EAEhE,OAAO,UAAUC,KAA6C;IAC1D,MAAMC,UAAU,GAA0B,OAAOH,GAAG,KAAK,QAAQ,GAAG;MAAEA,GAAG;MAAEI,IAAI,EAAE,KAAK;MAAEC,KAAK,EAAE;KAAO,GAAGL,GAAG;IAE5G,IAAIE,KAAK,CAACI,MAAM,KAAKJ,KAAK,CAACK,aAAa,IAAIhB,oCAAoC,CAACW,KAAK,CAACI,MAAqB,CAAC,EAAE;MAC3G;;IAGJ,IACKH,UAAU,CAACC,IAAI,KAAKI,OAAO,EAAE,GAAG,CAACN,KAAK,CAACO,OAAO,GAAG,CAACP,KAAK,CAACQ,OAAO,CAAC,IAChE,CAACP,UAAU,CAACC,IAAI,KAAKI,OAAO,EAAE,GAAGN,KAAK,CAACO,OAAO,GAAGP,KAAK,CAACQ,OAAO,CAAE,EACnE;MACE;;IAGJ,IAAKP,UAAU,CAACE,KAAK,IAAI,CAACH,KAAK,CAACS,QAAQ,IAAMR,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIH,KAAK,CAACS,QAAS,EAAE;MACzF;;IAGJ,MAAMC,SAAS,GAAGV,KAAK,CAACF,GAAG,CAACa,WAAW,EAAE,KAAKV,UAAU,CAACH,GAAG,CAACa,WAAW,EAAE;IAE1E,IAAID,SAAS,EAAE;MAAA,IAAAE,qBAAA;;MAEXZ,KAAK,CAACa,eAAe,EAAE;;MAEtB,CAAAD,qBAAA,GAAAZ,KAAuB,CAACc,wBAAwB,cAAAF,qBAAA,uBAAhDA,qBAAA,CAAAG,IAAA,CAAAf,MAAoD;MACrDD,OAAO,CAACC,KAAK,CAAC;;GAErB;AACL;MAEaM,OAAO,GAAGA;EAAA,IAAAU,OAAA;EAAA,QAAAA,OAAA,GAAMC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,CAACC,SAAS,CAAC3B,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
1
+ {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isEventTriggeredOnInteractiveElement(eventTarget: EventTarget | null) {\n const element = eventTarget as HTMLElement;\n\n return (\n ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'].includes(element.tagName) &&\n !element.hidden &&\n !(element as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLButtonElement).disabled &&\n !(element as HTMLInputElement | HTMLTextAreaElement).readOnly\n );\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target as HTMLElement)) {\n return;\n }\n\n const condition = shouldTriggerShortcut(event, key);\n\n if (condition) {\n if (stopPropagation) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n }\n\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["isEventTriggeredOnInteractiveElement","eventTarget","element","includes","tagName","hidden","disabled","readOnly","shouldTriggerShortcut","event","key","keyOptions","meta","shift","isMacOs","metaKey","ctrlKey","shiftKey","toLowerCase","createShortcutKeyDownHandler","handler","stopPropagation","target","currentTarget","condition","_event$stopImmediateP","stopImmediatePropagation","call","_window","window","navigator","userAgent"],"mappings":"SAIgBA,oCAAoCA,CAACC,WAA+B;EAChF,MAAMC,OAAO,GAAGD,WAA0B;EAE1C,OACI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAACE,QAAQ,CAACD,OAAO,CAACE,OAAO,CAAC,IACxE,CAACF,OAAO,CAACG,MAAM,IACf,CAAEH,OAA0F,CAACI,QAAQ,IACrG,CAAEJ,OAAkD,CAACK,QAAQ;AAErE;SAEgBC,qBAAqBA,CACjCC,KAA6C,EAC7CC,GAAmC;EAEnC,MAAMC,UAAU,GAA0B,OAAOD,GAAG,KAAK,QAAQ,GAAG;IAAEA,GAAG;IAAEE,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAE;GAAO,GAAGH,GAAG;EAE5G,IACKC,UAAU,CAACC,IAAI,KAAKE,OAAO,EAAE,GAAG,CAACL,KAAK,CAACM,OAAO,GAAG,CAACN,KAAK,CAACO,OAAO,CAAC,IAChE,CAACL,UAAU,CAACC,IAAI,KAAKE,OAAO,EAAE,GAAGL,KAAK,CAACM,OAAO,GAAGN,KAAK,CAACO,OAAO,CAAE,EACnE;IACE,OAAO,KAAK;;EAGhB,IAAKL,UAAU,CAACE,KAAK,IAAI,CAACJ,KAAK,CAACQ,QAAQ,IAAMN,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIJ,KAAK,CAACQ,QAAS,EAAE;IACzF,OAAO,KAAK;;EAGhB,OAAOR,KAAK,CAACC,GAAG,CAACQ,WAAW,EAAE,KAAKP,UAAU,CAACD,GAAG,CAACQ,WAAW,EAAE;AACnE;SAEgBC,4BAA4BA,CACxCT,GAAmC,EACnCU,OAAgE,EAChEC,eAAe,GAAG,IAAI;EAEtB,OAAO,UAAUZ,KAA6C;IAC1D,IAAIA,KAAK,CAACa,MAAM,KAAKb,KAAK,CAACc,aAAa,IAAIvB,oCAAoC,CAACS,KAAK,CAACa,MAAqB,CAAC,EAAE;MAC3G;;IAGJ,MAAME,SAAS,GAAGhB,qBAAqB,CAACC,KAAK,EAAEC,GAAG,CAAC;IAEnD,IAAIc,SAAS,EAAE;MACX,IAAIH,eAAe,EAAE;QAAA,IAAAI,qBAAA;;QAEjBhB,KAAK,CAACY,eAAe,EAAE;;QAEtB,CAAAI,qBAAA,GAAAhB,KAAuB,CAACiB,wBAAwB,cAAAD,qBAAA,uBAAhDA,qBAAA,CAAAE,IAAA,CAAAlB,MAAoD;;MAGzDW,OAAO,CAACX,KAAK,CAAC;;GAErB;AACL;MAEaK,OAAO,GAAGA;EAAA,IAAAc,OAAA;EAAA,QAAAA,OAAA,GAAMC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,CAACC,SAAS,CAAC5B,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
package/dist/index.css CHANGED
@@ -640,7 +640,8 @@
640
640
 
641
641
  /* cells */
642
642
  [role='cell'],
643
- [role='columnheader'] {
643
+ [role='columnheader'],
644
+ [data-taco='table2-footer-summary'] {
644
645
  @apply border-grey-300;
645
646
  }
646
647
 
@@ -649,6 +650,12 @@
649
650
  @apply flex px-4;
650
651
  }
651
652
 
653
+ /* In cases where row height might differ from default one (example: textarea without truncate or changing of font size or row height),
654
+ we need to prevent editing controls to take all available space */
655
+ [role='cell']:not([data-highlighted='true']) {
656
+ @apply items-start;
657
+ }
658
+
652
659
  [role='cell'][data-align='left'],
653
660
  [role='columnheader'][data-align='left'] {
654
661
  @apply justify-start text-left;
@@ -668,6 +675,12 @@
668
675
  @apply border-b;
669
676
  }
670
677
 
678
+ /* Removes a pixel space between the row and spacer div, so that the spacer div's top border appears like
679
+ bottom border of the cells */
680
+ [role='row']:last-child [role='cell'] {
681
+ @apply -mb-px;
682
+ }
683
+
671
684
  /* row/cell backgrounds */
672
685
 
673
686
  [role='columnheader'] {
@@ -761,6 +761,21 @@ function IconCircleClose(props, svgRef) {
761
761
  }
762
762
  var CircleClose = /*#__PURE__*/React.forwardRef(IconCircleClose);
763
763
 
764
+ function IconCircleInformation(props, svgRef) {
765
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
766
+ fill: "none",
767
+ xmlns: "http://www.w3.org/2000/svg",
768
+ viewBox: "0 0 24 24",
769
+ ref: svgRef
770
+ }, props), /*#__PURE__*/React.createElement("path", {
771
+ fillRule: "evenodd",
772
+ clipRule: "evenodd",
773
+ d: "M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm-.267 5.753a1 1 0 10-.001-2.001 1 1 0 00.001 2.001zM14 16.754a.75.75 0 000-1.502h-1.267V11.5a.752.752 0 00-.75-.751H10a.75.75 0 000 1.502h1.233v3H10a.75.75 0 000 1.503h4z",
774
+ fill: "currentColor"
775
+ }));
776
+ }
777
+ var CircleInformation = /*#__PURE__*/React.forwardRef(IconCircleInformation);
778
+
764
779
  function IconCircleMinus(props, svgRef) {
765
780
  return /*#__PURE__*/React.createElement("svg", Object.assign({
766
781
  xmlns: "http://www.w3.org/2000/svg",
@@ -787,6 +802,21 @@ function IconCirclePlus(props, svgRef) {
787
802
  }
788
803
  var CirclePlus = /*#__PURE__*/React.forwardRef(IconCirclePlus);
789
804
 
805
+ function IconCircleQuestionmark(props, svgRef) {
806
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
807
+ fill: "none",
808
+ xmlns: "http://www.w3.org/2000/svg",
809
+ viewBox: "0 0 24 24",
810
+ ref: svgRef
811
+ }, props), /*#__PURE__*/React.createElement("path", {
812
+ fillRule: "evenodd",
813
+ clipRule: "evenodd",
814
+ d: "M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm.58 10.15a.71.71 0 00.226-.543v-1.272a.306.306 0 01.045-.143.522.522 0 01.136-.133 3.91 3.91 0 01.285-.18l.028-.016c.112-.066.242-.143.387-.237.706-.454 1.156-1.012 1.156-1.838 0-.673-.37-1.19-.887-1.53-.513-.336-1.183-.508-1.845-.508-.552 0-1.234.096-1.79.317a2.441 2.441 0 00-.574.315c-.09.069-.174.146-.245.232a1.15 1.15 0 00-.154.238 1.474 1.474 0 00-.148.625c0 .075.01.118.02.167.036.159.12.3.254.401a.77.77 0 00.47.147.768.768 0 00.745-.517l.004-.013c.053-.17.226-.306.517-.4.282-.09.611-.116.852-.116.267 0 .575.078.809.213.241.139.345.298.345.44 0 .188-.051.32-.152.444-.11.136-.285.27-.55.444h-.002l-.136.091h-.001c-.232.153-.49.322-.695.513-.252.234-.467.537-.467.938v1.38c0 .226.087.421.248.556.155.13.357.185.56.185.21 0 .41-.064.558-.2zm-.559 3.1c.504 0 .924-.4.924-.904 0-.512-.423-.9-.924-.9a.908.908 0 00-.92.9c0 .504.42.904.92.904z",
815
+ fill: "currentColor"
816
+ }));
817
+ }
818
+ var CircleQuestionmark = /*#__PURE__*/React.forwardRef(IconCircleQuestionmark);
819
+
790
820
  function IconCircleTick(props, svgRef) {
791
821
  return /*#__PURE__*/React.createElement("svg", Object.assign({
792
822
  xmlns: "http://www.w3.org/2000/svg",
@@ -800,6 +830,21 @@ function IconCircleTick(props, svgRef) {
800
830
  }
801
831
  var CircleTick = /*#__PURE__*/React.forwardRef(IconCircleTick);
802
832
 
833
+ function IconCircleWarning(props, svgRef) {
834
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
835
+ fill: "none",
836
+ xmlns: "http://www.w3.org/2000/svg",
837
+ viewBox: "0 0 24 24",
838
+ ref: svgRef
839
+ }, props), /*#__PURE__*/React.createElement("path", {
840
+ fillRule: "evenodd",
841
+ clipRule: "evenodd",
842
+ d: "M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm0 3.75a.97.97 0 00-.974.989L11.2 12.5c.01.417.352.749.771.749a.768.768 0 00.77-.74l.23-4.26a.97.97 0 00-.97-1zm0 9.5a1 1 0 100-2 1 1 0 000 2z",
843
+ fill: "currentColor"
844
+ }));
845
+ }
846
+ var CircleWarning = /*#__PURE__*/React.forwardRef(IconCircleWarning);
847
+
803
848
  function IconClampOpen(props, svgRef) {
804
849
  return /*#__PURE__*/React.createElement("svg", Object.assign({
805
850
  xmlns: "http://www.w3.org/2000/svg",
@@ -3249,9 +3294,12 @@ const icons = {
3249
3294
  'chevron-up-solid': ChevronUpSolid,
3250
3295
  'chevron-up': ChevronUp,
3251
3296
  'circle-close': CircleClose,
3297
+ 'circle-information': CircleInformation,
3252
3298
  'circle-minus': CircleMinus,
3253
3299
  'circle-plus': CirclePlus,
3300
+ 'circle-questionmark': CircleQuestionmark,
3254
3301
  'circle-tick': CircleTick,
3302
+ 'circle-warning': CircleWarning,
3255
3303
  'clamp-open': ClampOpen,
3256
3304
  clamp: Clamp,
3257
3305
  close: Close,
@@ -3837,29 +3885,34 @@ function isEventTriggeredOnInteractiveElement(eventTarget) {
3837
3885
  const element = eventTarget;
3838
3886
  return ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'].includes(element.tagName) && !element.hidden && !element.disabled && !element.readOnly;
3839
3887
  }
3840
- function createShortcutKeyDownHandler(key, handler) {
3888
+ function shouldTriggerShortcut(event, key) {
3889
+ const keyOptions = typeof key === 'string' ? {
3890
+ key,
3891
+ meta: false,
3892
+ shift: false
3893
+ } : key;
3894
+ if (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
3895
+ return false;
3896
+ }
3897
+ if (keyOptions.shift && !event.shiftKey || keyOptions.shift === false && event.shiftKey) {
3898
+ return false;
3899
+ }
3900
+ return event.key.toLowerCase() === keyOptions.key.toLowerCase();
3901
+ }
3902
+ function createShortcutKeyDownHandler(key, handler, stopPropagation = true) {
3841
3903
  return function (event) {
3842
- const keyOptions = typeof key === 'string' ? {
3843
- key,
3844
- meta: false,
3845
- shift: false
3846
- } : key;
3847
3904
  if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target)) {
3848
3905
  return;
3849
3906
  }
3850
- if (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
3851
- return;
3852
- }
3853
- if (keyOptions.shift && !event.shiftKey || keyOptions.shift === false && event.shiftKey) {
3854
- return;
3855
- }
3856
- const condition = event.key.toLowerCase() === keyOptions.key.toLowerCase();
3907
+ const condition = shouldTriggerShortcut(event, key);
3857
3908
  if (condition) {
3858
- var _event$stopImmediateP;
3859
- // stops react handlers bubbling up to global
3860
- event.stopPropagation();
3861
- // stops global handlers bubbling up to other global
3862
- (_event$stopImmediateP = event.stopImmediatePropagation) === null || _event$stopImmediateP === void 0 ? void 0 : _event$stopImmediateP.call(event);
3909
+ if (stopPropagation) {
3910
+ var _event$stopImmediateP;
3911
+ // stops react handlers bubbling up to global
3912
+ event.stopPropagation();
3913
+ // stops global handlers bubbling up to other global
3914
+ (_event$stopImmediateP = event.stopImmediatePropagation) === null || _event$stopImmediateP === void 0 ? void 0 : _event$stopImmediateP.call(event);
3915
+ }
3863
3916
  handler(event);
3864
3917
  }
3865
3918
  };
@@ -3873,7 +3926,7 @@ const useGlobalKeyDown = (shortcut, handler) => {
3873
3926
  React__default.useEffect(() => {
3874
3927
  let handleKeyDown;
3875
3928
  if (shortcut) {
3876
- handleKeyDown = createShortcutKeyDownHandler(shortcut, handler);
3929
+ handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
3877
3930
  document.addEventListener('keydown', handleKeyDown);
3878
3931
  }
3879
3932
  return () => {
@@ -3881,7 +3934,7 @@ const useGlobalKeyDown = (shortcut, handler) => {
3881
3934
  document.removeEventListener('keydown', handleKeyDown);
3882
3935
  }
3883
3936
  };
3884
- }, [shortcut]);
3937
+ }, [shortcut, handler]);
3885
3938
  };
3886
3939
 
3887
3940
  const Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
@@ -3895,6 +3948,11 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
3895
3948
  const internalRef = useMergedRef(ref);
3896
3949
  useGlobalKeyDown(shortcut, () => {
3897
3950
  var _internalRef$current;
3951
+ const dialog = document.querySelector('[role="dialog"]');
3952
+ // Don't trigger the click on the button if it is outside of the dialog
3953
+ if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
3954
+ return;
3955
+ }
3898
3956
  (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
3899
3957
  });
3900
3958
  const Tag = props.href ? 'a' : 'button';
@@ -4367,7 +4425,7 @@ const defaultLocalisationTexts = {
4367
4425
  }
4368
4426
  },
4369
4427
  search: {
4370
- excludeUnmatchedResults: 'Hide unmatched records',
4428
+ excludeUnmatchedResults: 'Show only search results',
4371
4429
  placeholder: 'Search...'
4372
4430
  },
4373
4431
  shortcuts: {
@@ -6151,8 +6209,6 @@ const Content$4 = /*#__PURE__*/React.forwardRef(function DialogContent(props, re
6151
6209
  } else if (dialog.onClose) {
6152
6210
  dialog.onClose();
6153
6211
  }
6154
- // Stops event from propogating outside the dialog.
6155
- event.stopPropagation();
6156
6212
  };
6157
6213
  // the chosen behaviour in taco is that outside clicks do not close the dialog
6158
6214
  const handleInteractOutside = event => event.preventDefault();
@@ -6166,19 +6222,12 @@ const Content$4 = /*#__PURE__*/React.forwardRef(function DialogContent(props, re
6166
6222
  } else {
6167
6223
  output = props.children;
6168
6224
  }
6169
- const onKeyDown = event => {
6170
- if (event.key !== 'Escape') {
6171
- // Stops event from propogating outside the dialog.
6172
- event.stopPropagation();
6173
- }
6174
- };
6175
6225
  return /*#__PURE__*/React.createElement(DialogPrimitive.Portal, null, /*#__PURE__*/React.createElement(DialogPrimitive.Overlay, {
6176
6226
  asChild: true
6177
6227
  }, /*#__PURE__*/React.createElement(Backdrop, null, /*#__PURE__*/React.createElement(DialogPrimitive.Content, Object.assign({}, props, {
6178
6228
  className: className,
6179
6229
  onEscapeKeyDown: handleEscapeKeyDown,
6180
6230
  onInteractOutside: handleInteractOutside,
6181
- onKeyDown: onKeyDown,
6182
6231
  ref: internalRef,
6183
6232
  style: {
6184
6233
  ...props.style,
@@ -9925,6 +9974,7 @@ const Single = /*#__PURE__*/React__default.forwardRef(function Select2TriggerSin
9925
9974
  children,
9926
9975
  emptyValue,
9927
9976
  value,
9977
+ placeholder,
9928
9978
  ...buttonProps
9929
9979
  } = props;
9930
9980
  const {
@@ -9935,7 +9985,14 @@ const Single = /*#__PURE__*/React__default.forwardRef(function Select2TriggerSin
9935
9985
  const contentClassName = cn('truncate items-center gap-1');
9936
9986
  const currentValue = children.find(matchesValue(value));
9937
9987
  let output;
9938
- if (currentValue) {
9988
+ if (placeholder && currentValue === undefined) {
9989
+ output = /*#__PURE__*/React__default.createElement("div", {
9990
+ className: cn({
9991
+ 'text-grey-700': disabled,
9992
+ 'text-grey-500': !disabled
9993
+ })
9994
+ }, placeholder);
9995
+ } else if (currentValue) {
9939
9996
  if (tags && emptyValue !== undefined && emptyValue !== value) {
9940
9997
  output = /*#__PURE__*/React__default.createElement(Tag$1, {
9941
9998
  className: "truncate",
@@ -9962,6 +10019,7 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
9962
10019
  children,
9963
10020
  emptyValue: _,
9964
10021
  values = [],
10022
+ placeholder,
9965
10023
  ...buttonProps
9966
10024
  } = props;
9967
10025
  const {
@@ -9983,7 +10041,12 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
9983
10041
  className: "my-1 flex max-h-[5.5rem] flex-col"
9984
10042
  }, /*#__PURE__*/React__default.createElement("div", {
9985
10043
  className: "flex flex-wrap gap-1"
9986
- }, valuesAsChildren.map(child => /*#__PURE__*/React__default.createElement(Tag$1, {
10044
+ }, valuesAsChildren.length === 0 ? /*#__PURE__*/React__default.createElement("div", {
10045
+ className: cn({
10046
+ 'text-grey-700': disabled,
10047
+ 'text-grey-500': !disabled
10048
+ })
10049
+ }, placeholder) : valuesAsChildren.map(child => /*#__PURE__*/React__default.createElement(Tag$1, {
9987
10050
  key: String(child.props.value),
9988
10051
  className: "truncate",
9989
10052
  color: tags ? child.props.color : undefined,
@@ -10001,7 +10064,8 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
10001
10064
  } else {
10002
10065
  content = /*#__PURE__*/React__default.createElement(MultipleValue, {
10003
10066
  key: String(open),
10004
- valuesAsChildren: valuesAsChildren
10067
+ valuesAsChildren: valuesAsChildren,
10068
+ placeholder: placeholder
10005
10069
  });
10006
10070
  }
10007
10071
  return /*#__PURE__*/React__default.createElement("div", {
@@ -10017,7 +10081,8 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
10017
10081
  }), content));
10018
10082
  });
10019
10083
  const MultipleValue = ({
10020
- valuesAsChildren
10084
+ valuesAsChildren,
10085
+ placeholder
10021
10086
  }) => {
10022
10087
  const {
10023
10088
  disabled,
@@ -10040,9 +10105,14 @@ const MultipleValue = ({
10040
10105
  }, /*#__PURE__*/React__default.createElement("div", {
10041
10106
  className: "flex gap-1 truncate",
10042
10107
  ref: el => setContentRef(el)
10043
- }, valuesAsChildren.map((child, index) => {
10108
+ }, valuesAsChildren.length === 0 ? /*#__PURE__*/React__default.createElement("div", {
10109
+ className: cn({
10110
+ 'text-grey-700': disabled,
10111
+ 'text-grey-500': !disabled
10112
+ })
10113
+ }, placeholder) : valuesAsChildren.map((child, index) => {
10044
10114
  const tag = /*#__PURE__*/React__default.createElement(Tag$1, {
10045
- key: child.props.value,
10115
+ key: String(child.props.value),
10046
10116
  className: cn('cursor-pointer', {
10047
10117
  truncate: index === boundaryIndex,
10048
10118
  hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false
@@ -10055,7 +10125,7 @@ const MultipleValue = ({
10055
10125
  }, child.props.children);
10056
10126
  if (index === boundaryIndex) {
10057
10127
  return /*#__PURE__*/React__default.createElement(Tooltip, {
10058
- key: child.props.value,
10128
+ key: String(child.props.value),
10059
10129
  title: String(child.props.children)
10060
10130
  }, tag);
10061
10131
  }
@@ -10382,6 +10452,7 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
10382
10452
  defaultValue: defaultProp,
10383
10453
  disabled = false,
10384
10454
  emptyValue = undefined,
10455
+ placeholder,
10385
10456
  highlighted = false,
10386
10457
  invalid = false,
10387
10458
  multiple = false,
@@ -10527,7 +10598,8 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
10527
10598
  emptyValue: emptyValue,
10528
10599
  onBlur: handleBlur,
10529
10600
  onKeyDown: handleKeyDown,
10530
- ref: internalRef
10601
+ ref: internalRef,
10602
+ placeholder: placeholder
10531
10603
  }), flattenedChildren)), /*#__PURE__*/React__default.createElement(PopoverPrimitive.Portal, null, /*#__PURE__*/React__default.createElement(PopoverPrimitive.Content, {
10532
10604
  asChild: true,
10533
10605
  align: "start",
@@ -11209,9 +11281,9 @@ const useTableKeyboardNavigation = (props, rows, rowProps, ref) => {
11209
11281
  }
11210
11282
  });
11211
11283
  const onKeyDown = event => {
11212
- var _document$activeEleme;
11284
+ var _document$activeEleme, _document$activeEleme2;
11213
11285
  const isModifierKeyPressed = event.metaKey || event.ctrlKey || event.altKey || event.shiftKey;
11214
- if (useGlobalKeyboardNavigation && document.activeElement !== ref.current && ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.getAttribute('type')) !== 'search' && document.activeElement !== document.body) {
11286
+ if (useGlobalKeyboardNavigation && document.activeElement !== ref.current && ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.getAttribute('type')) !== 'search' && document.activeElement !== document.body && ((_document$activeEleme2 = document.activeElement) === null || _document$activeEleme2 === void 0 ? void 0 : _document$activeEleme2.getAttribute('role')) !== 'dialog') {
11215
11287
  return;
11216
11288
  }
11217
11289
  // abort key handling if other elements inside table are focused and we don't use global keyboard navigation
@@ -16139,7 +16211,10 @@ const MemoedHeader = /*#__PURE__*/React__default.memo(function MemoedHeader(prop
16139
16211
  }) : null, hasMenu ? /*#__PURE__*/React__default.createElement(Menu$3, {
16140
16212
  canFreeze: canFreeze,
16141
16213
  canHide: canHide,
16142
- className: "ml-auto hidden group-hover/column:flex aria-expanded:!flex",
16214
+ className: cn('hidden group-hover/column:flex aria-expanded:!flex', {
16215
+ 'ml-auto': align !== 'right',
16216
+ 'ml-2': align === 'right'
16217
+ }),
16143
16218
  index: index,
16144
16219
  menu: meta.menu,
16145
16220
  onGoto: handleGoto,
@@ -17178,14 +17253,20 @@ function useEditing(isEnabled, onSave) {
17178
17253
  if (event.defaultPrevented) {
17179
17254
  return;
17180
17255
  }
17181
- if (event.ctrlKey || event.metaKey) {
17182
- if (event.key === 'e') {
17183
- setIsEditing(editing => !editing);
17184
- } else if (event.key === 's') {
17185
- // Prevent default browser save
17186
- event.preventDefault();
17187
- saveChangesIfNeeded();
17188
- }
17256
+ if (shouldTriggerShortcut(event, {
17257
+ key: 'e',
17258
+ meta: true,
17259
+ shift: false
17260
+ })) {
17261
+ setIsEditing(editing => !editing);
17262
+ } else if (shouldTriggerShortcut(event, {
17263
+ key: 's',
17264
+ meta: true,
17265
+ shift: false
17266
+ })) {
17267
+ // Prevent default browser save
17268
+ event.preventDefault();
17269
+ saveChangesIfNeeded();
17189
17270
  }
17190
17271
  }, [isEditing]);
17191
17272
  const handleBlur = React__default.useCallback(event => {
@@ -17739,16 +17820,26 @@ const EditingControl = /*#__PURE__*/React__default.forwardRef(function Control(p
17739
17820
  const columnMeta = column.columnDef.meta;
17740
17821
  const controlRenderer = columnMeta === null || columnMeta === void 0 ? void 0 : columnMeta.control;
17741
17822
  const isCellInDetailMode = tableMeta.editing.detailModeEditing && (ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.contains(document.activeElement));
17742
- // Revert to initial value if escape was pressed
17743
17823
  const handleKeyDown = event => {
17824
+ // For some reason keydown event handler is not propogated to the table when input or other control element is
17825
+ // in focus so we need to check for shortcut that toggles the editing.
17826
+ if (shouldTriggerShortcut(event, {
17827
+ key: 'e',
17828
+ meta: true,
17829
+ shift: false
17830
+ })) {
17831
+ tableMeta.editing.toggleEditing(false);
17832
+ return;
17833
+ }
17744
17834
  const target = event.target;
17745
17835
  if (target.readOnly) {
17746
17836
  return;
17747
17837
  }
17748
- // prevent row arrow shortcuts triggering when in detail mode
17838
+ // Prevent row arrow shortcuts triggering when in detail mode
17749
17839
  if (tableMeta.editing.detailModeEditing && (event.key === 'ArrowUp' || event.key === 'ArrowDown')) {
17750
17840
  event.stopPropagation();
17751
17841
  }
17842
+ // Revert to initial value if escape was pressed
17752
17843
  if (event.key === 'Escape') {
17753
17844
  event.preventDefault();
17754
17845
  if (tableMeta.editing.detailModeEditing) {
@@ -17794,7 +17885,6 @@ const EditingControl = /*#__PURE__*/React__default.forwardRef(function Control(p
17794
17885
  // Switching to editing mode, when key pressed any alphabetical character or number
17795
17886
  if (/^[a-z0-9]$/i.test(event.key)) {
17796
17887
  tableMeta.editing.setDetailModeEditing(true);
17797
- return;
17798
17888
  }
17799
17889
  };
17800
17890
  const handleDatepickerChange = event => {
@@ -19748,6 +19838,7 @@ function Filters(props) {
19748
19838
  table
19749
19839
  } = props;
19750
19840
  const {
19841
+ locale,
19751
19842
  texts
19752
19843
  } = useLocalization();
19753
19844
  const ref = React__default.useRef(null);
@@ -19828,7 +19919,7 @@ function Filters(props) {
19828
19919
  className: "mb-0 inline-flex"
19829
19920
  }, texts.table3.filters.button), /*#__PURE__*/React__default.createElement("p", {
19830
19921
  className: "text-grey-700 mb-0 mr-auto mt-px inline-flex"
19831
- }, texts.table3.filters.total.replace('[CURRENT]', String(table.getFilteredRowModel().rows.length)).replace('[TOTAL]', String(total))))), /*#__PURE__*/React__default.createElement("div", {
19922
+ }, texts.table3.filters.total.replace('[CURRENT]', new Intl.NumberFormat(locale).format(table.getFilteredRowModel().rows.length)).replace('[TOTAL]', new Intl.NumberFormat(locale).format(total))))), /*#__PURE__*/React__default.createElement("div", {
19832
19923
  className: "flex flex-col gap-2"
19833
19924
  }, filters.map((filter, index) => /*#__PURE__*/React__default.createElement(Filter$1, {
19834
19925
  key: `filter_${index}`,
@@ -19969,14 +20060,6 @@ function EditButton(props) {
19969
20060
  '!wcag-blue-100': tableMeta.editing.isEditing
19970
20061
  });
19971
20062
  const handleClick = () => tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing);
19972
- useGlobalKeyDown({
19973
- key: 'e',
19974
- meta: true,
19975
- shift: false
19976
- }, event => {
19977
- event.preventDefault();
19978
- tableMeta.editing.toggleEditing(!tableMeta.editing.isEditing);
19979
- });
19980
20063
  return /*#__PURE__*/React__default.createElement(Button$1, {
19981
20064
  "aria-pressed": tableMeta.editing.isEditing,
19982
20065
  className: className,
@@ -20510,10 +20593,13 @@ function useTableRefInstanceSetup(table, ref) {
20510
20593
  }
20511
20594
 
20512
20595
  function Summary$1(props) {
20596
+ var _table$getState$colum;
20513
20597
  const {
20598
+ currentLength,
20514
20599
  length,
20515
20600
  table
20516
20601
  } = props;
20602
+ const tableMeta = table.options.meta;
20517
20603
  const {
20518
20604
  locale,
20519
20605
  texts
@@ -20524,13 +20610,20 @@ function Summary$1(props) {
20524
20610
  const rowsSelectedLength = table.getIsAllRowsSelected() ? length : table.getSelectedRowModel().rows.length;
20525
20611
  if (rowsSelectedLength > 0) {
20526
20612
  label = texts.table3.footer.summary.selected;
20527
- count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(rowsSelectedLength)), "\u00A0", texts.table3.footer.summary.count, "\u00A0", /*#__PURE__*/React__default.createElement("strong", null, length));
20613
+ count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(rowsSelectedLength)), "\u00A0", texts.table3.footer.summary.count, "\u00A0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
20614
+ } else if ((_table$getState$colum = table.getState().columnFilters) !== null && _table$getState$colum !== void 0 && _table$getState$colum.length ||
20615
+ // filtered data
20616
+ !!table.getState().globalFilter && tableMeta.search.excludeUnmatchedResults // search with hide enabled
20617
+ ) {
20618
+ label = texts.table3.footer.summary.records;
20619
+ count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, currentLength), "\u00A0", texts.table3.footer.summary.count, "\u00A0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
20528
20620
  } else {
20529
20621
  label = texts.table3.footer.summary.records;
20530
20622
  count = /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length));
20531
20623
  }
20532
20624
  return /*#__PURE__*/React__default.createElement("div", {
20533
- className: "sticky bottom-0 left-0 z-40 -mt-10 flex h-10 w-fit items-center whitespace-nowrap bg-white px-4 !pr-3 shadow-[6px_0px_6px_theme(colors.white)]"
20625
+ className: "sticky bottom-0 left-0 z-40 -mt-10 flex h-10 w-fit items-center whitespace-nowrap bg-white px-4 !pr-3 shadow-[6px_0px_6px_theme(colors.white)]",
20626
+ "data-taco": "table2-footer-summary"
20534
20627
  }, label, "\u00A0", count);
20535
20628
  }
20536
20629
 
@@ -20750,6 +20843,14 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
20750
20843
  const bodyRef = React__default.useRef(null);
20751
20844
  React__default.useEffect(() => {
20752
20845
  const handleKeyDown = event => {
20846
+ const target = event.target;
20847
+ const dialog = target.closest('[role="dialog"]');
20848
+ const eventOriginatedFromCombobox = !!target.closest('[role="combobox"]');
20849
+ // Don't trigger global shortcuts on the table if event originated from a combobox or if table is
20850
+ // outside the dialog
20851
+ if (eventOriginatedFromCombobox || dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
20852
+ return;
20853
+ }
20753
20854
  tableMeta.hoverState.handleKeyDown(event);
20754
20855
  tableMeta.currentRow.handleKeyDown(event, table.getRowModel().rows.length, scrollToIndex);
20755
20856
  tableMeta.rowClick.handleKeyDown(event, table);
@@ -20764,7 +20865,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
20764
20865
  // See https://github.com/e-conomic/taco/blob/dev/packages/taco/src/components/Table3/strategies/virtualised.tsx#L143
20765
20866
  // scrollToIndex function changes when row count changes, so it is important to update handlers with new
20766
20867
  // scrollToIndex function.
20767
- [scrollToIndex]);
20868
+ [scrollToIndex, internalRef.current]);
20768
20869
  const handleBlur = event => {
20769
20870
  tableMeta.editing.handleBlur(event);
20770
20871
  };
@@ -20838,7 +20939,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
20838
20939
  role: "rowgroup",
20839
20940
  ref: bodyRef
20840
20941
  }, renderBody())), /*#__PURE__*/React__default.createElement("div", {
20841
- className: "border-grey-300 col-span-full -mt-px border-t"
20942
+ className: "border-grey-300 col-span-full translate-y-px border-t"
20842
20943
  }), tableMeta.enableFooter ? /*#__PURE__*/React__default.createElement("div", {
20843
20944
  className: "group/footer contents",
20844
20945
  "data-taco": "table2-footer",
@@ -20850,6 +20951,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
20850
20951
  }, footerGroup.headers.map(footer => /*#__PURE__*/React__default.createElement(React__default.Fragment, {
20851
20952
  key: footer.id
20852
20953
  }, reactTable$1.flexRender(footer.column.columnDef.footer, footer.getContext()))))), length ? /*#__PURE__*/React__default.createElement(Summary$1, {
20954
+ currentLength: table.getRowModel().rows.length,
20853
20955
  length: length,
20854
20956
  table: table
20855
20957
  }) : null) : null) : /*#__PURE__*/React__default.createElement("div", {
@@ -21907,6 +22009,7 @@ exports.parseFromCustomString = parseFromCustomString;
21907
22009
  exports.parseFromISOString = parseFromISOString;
21908
22010
  exports.removeChildTableRow = removeChildTableRow;
21909
22011
  exports.setByRowIndexPath = setByRowIndexPath;
22012
+ exports.shouldTriggerShortcut = shouldTriggerShortcut;
21910
22013
  exports.useBoundaryOverflowDetection = useBoundaryOverflowDetection;
21911
22014
  exports.useBoundingClientRectListener = useBoundingClientRectListener;
21912
22015
  exports.useDropTarget = useDropTarget;