@economic/taco 2.45.0-alpha.5 → 2.45.0-alpha.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. package/dist/components/Alert/Alert.d.ts +1 -1
  2. package/dist/components/Banner/util.d.ts +0 -1
  3. package/dist/components/Calendar/Calendar.d.ts +1 -0
  4. package/dist/components/Icon/components/Autopay.d.ts +3 -0
  5. package/dist/components/Icon/components/AutopayPaused.d.ts +3 -0
  6. package/dist/components/Icon/components/Experiment.d.ts +3 -0
  7. package/dist/components/Icon/components/Person.d.ts +3 -0
  8. package/dist/components/Icon/components/PersonSolid.d.ts +3 -0
  9. package/dist/components/Icon/components/Wallet.d.ts +3 -0
  10. package/dist/components/Icon/components/index.d.ts +1 -1
  11. package/dist/components/Input/Input.d.ts +1 -1
  12. package/dist/components/Menu/components/Item.d.ts +1 -1
  13. package/dist/components/Menu/components/Link.d.ts +1 -1
  14. package/dist/components/Navigation2/components/Link.d.ts +1 -1
  15. package/dist/components/Pagination/PageNumbers.d.ts +0 -1
  16. package/dist/components/Report/Report.d.ts +1 -1
  17. package/dist/components/Select2/components/Option.d.ts +4 -4
  18. package/dist/components/Select2/components/Search.d.ts +1 -1
  19. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.d.ts +0 -1
  20. package/dist/components/Table3/components/Row/Editing/CreateNewRow.d.ts +1 -2
  21. package/dist/components/Table3/components/Row/Editing/TemporaryRow.d.ts +1 -0
  22. package/dist/components/Table3/features/useEditingState.d.ts +1 -1
  23. package/dist/components/Table3/features/useTableEditing.d.ts +2 -2
  24. package/dist/components/Table3/util/editing.d.ts +3 -0
  25. package/dist/components/Tag/Tag.d.ts +1 -1
  26. package/dist/esm/index.css +23 -6
  27. package/dist/esm/packages/taco/src/charts/utils/color.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/Alert/Alert.js +2 -0
  29. package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Badge/Badge.js +9 -6
  31. package/dist/esm/packages/taco/src/components/Badge/Badge.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Banner/util.js +5 -0
  33. package/dist/esm/packages/taco/src/components/Banner/util.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Button/Button.js +2 -1
  35. package/dist/esm/packages/taco/src/components/Button/Button.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js +11 -10
  37. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +8 -5
  39. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
  40. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +13 -6
  41. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  42. package/dist/esm/packages/taco/src/components/Icon/components/Autopay.js +19 -0
  43. package/dist/esm/packages/taco/src/components/Icon/components/Autopay.js.map +1 -0
  44. package/dist/esm/packages/taco/src/components/Icon/components/AutopayPaused.js +19 -0
  45. package/dist/esm/packages/taco/src/components/Icon/components/AutopayPaused.js.map +1 -0
  46. package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js +20 -0
  47. package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js.map +1 -0
  48. package/dist/esm/packages/taco/src/components/Icon/components/Person.js +19 -0
  49. package/dist/esm/packages/taco/src/components/Icon/components/Person.js.map +1 -0
  50. package/dist/esm/packages/taco/src/components/Icon/components/PersonSolid.js +19 -0
  51. package/dist/esm/packages/taco/src/components/Icon/components/PersonSolid.js.map +1 -0
  52. package/dist/esm/packages/taco/src/components/Icon/components/Wallet.js +19 -0
  53. package/dist/esm/packages/taco/src/components/Icon/components/Wallet.js.map +1 -0
  54. package/dist/esm/packages/taco/src/components/Icon/components/index.js +12 -0
  55. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  56. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +1 -1
  57. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  58. package/dist/esm/packages/taco/src/components/Select2/components/Option.js +7 -5
  59. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  60. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +56 -19
  61. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  62. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +1 -1
  63. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  64. package/dist/esm/packages/taco/src/components/Table3/Table3.js +15 -7
  65. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  66. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +10 -4
  67. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  68. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +3 -1
  69. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
  70. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +2 -4
  71. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
  72. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js +3 -3
  73. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
  74. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +16 -8
  75. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
  76. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +41 -25
  77. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
  78. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +5 -8
  79. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
  80. package/dist/esm/packages/taco/src/components/Table3/useTable3.js +3 -4
  81. package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
  82. package/dist/esm/packages/taco/src/components/Table3/util/editing.js +9 -1
  83. package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
  84. package/dist/esm/packages/taco/src/components/Tag/Tag.js +6 -4
  85. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
  86. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
  87. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  88. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +1 -1
  89. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -1
  90. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js +1 -1
  91. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
  92. package/dist/esm/packages/taco/src/primitives/Button.js +1 -6
  93. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  94. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +2 -1
  95. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
  96. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js +9 -2
  97. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
  98. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js +4 -0
  99. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
  100. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +7 -2
  101. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
  102. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js +6 -0
  103. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js.map +1 -0
  104. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +5 -3
  105. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
  106. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +0 -2
  107. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
  108. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +2 -1
  109. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
  110. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +3 -1
  111. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
  112. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
  113. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js +2 -1
  114. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -1
  115. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +1 -0
  116. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  117. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +2 -1
  118. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
  119. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +1 -1
  120. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  121. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +6 -2
  122. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
  123. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +7 -1
  124. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -1
  125. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +7 -1
  126. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -1
  127. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +8 -3
  128. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
  129. package/dist/esm/packages/taco/src/types.js.map +1 -1
  130. package/dist/esm/packages/taco/src/utils/dom.js +12 -1
  131. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
  132. package/dist/esm/packages/taco/src/utils/keyboard.js +5 -2
  133. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  134. package/dist/esm/packages/taco/src/utils/tailwind.js +2 -0
  135. package/dist/esm/packages/taco/src/utils/tailwind.js.map +1 -1
  136. package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
  137. package/dist/index.css +23 -6
  138. package/dist/primitives/Table/Core/Table.d.ts +1 -0
  139. package/dist/primitives/Table/Core/components/Body/util.d.ts +4 -4
  140. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.d.ts +3 -0
  141. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.d.ts +0 -1
  142. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +0 -3
  143. package/dist/primitives/Table/types.d.ts +2 -1
  144. package/dist/primitives/Table/useTableManager/features/useTableRowExpansion.d.ts +2 -1
  145. package/dist/primitives/Table/useTableManager/types.d.ts +0 -1
  146. package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +1 -1
  147. package/dist/taco.cjs.development.js +412 -157
  148. package/dist/taco.cjs.development.js.map +1 -1
  149. package/dist/taco.cjs.production.min.js +1 -1
  150. package/dist/taco.cjs.production.min.js.map +1 -1
  151. package/dist/types.d.ts +1 -1
  152. package/dist/utils/keyboard.d.ts +1 -1
  153. package/package.json +4 -5
@@ -59,6 +59,8 @@ const getColorByState = state => {
59
59
  return 'yellow';
60
60
  case 'error':
61
61
  return 'red';
62
+ case 'experiment':
63
+ return 'purple';
62
64
  case 'success':
63
65
  return 'green';
64
66
  default:
@@ -391,6 +393,36 @@ function IconAttach(props, svgRef) {
391
393
  }
392
394
  var Attach = /*#__PURE__*/React.forwardRef(IconAttach);
393
395
 
396
+ function IconAutopayPaused(props, svgRef) {
397
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
398
+ fill: "none",
399
+ xmlns: "http://www.w3.org/2000/svg",
400
+ viewBox: "0 0 24 24",
401
+ ref: svgRef
402
+ }, props), /*#__PURE__*/React.createElement("path", {
403
+ fillRule: "evenodd",
404
+ clipRule: "evenodd",
405
+ d: "M9.356 2.503a.743.743 0 10.449 1.417 9.323 9.323 0 011.909-.391 8.998 8.998 0 011.883.013.743.743 0 10.168-1.476 10.484 10.484 0 00-2.195-.016 10.81 10.81 0 00-2.214.453zM7.46 5.037a.743.743 0 10-.817-1.241c-.628.413-1.215.893-1.747 1.433-.52.528-.978 1.103-1.366 1.712a.743.743 0 101.253.798 8.928 8.928 0 011.17-1.467A9.28 9.28 0 017.46 5.037zm9.14-2.22a.743.743 0 00-.59 1.363 7.904 7.904 0 011.611.935c.484.363.914.776 1.287 1.229a.743.743 0 001.147-.945 9.004 9.004 0 00-1.54-1.472 9.387 9.387 0 00-1.915-1.11zM3.767 10.008a.743.743 0 10-1.432-.396A9.316 9.316 0 002 11.795a.743.743 0 101.485.048 7.83 7.83 0 01.282-1.835zm17.716-2.152a.743.743 0 10-1.389.529c.21.549.353 1.126.425 1.723a.743.743 0 101.476-.18 8.81 8.81 0 00-.512-2.072zm-9.28-.732c-.26 0-.527.127-.527.505v.406c-1.567.145-2.577 1.085-2.577 2.426 0 1.125.639 1.862 1.907 2.182l1.296.285c.836.18 1.167.435 1.167.87 0 .558-.441.923-1.26.923-.586 0-1.154-.244-1.67-.714-.332-.278-.54-.36-.796-.36-.412 0-.743.256-.743.709 0 .348.186.684.51.98.482.447 1.26.72 2.143.796v.354c0 .371.272.505.533.505.262 0 .529-.134.529-.505v-.366c1.625-.191 2.64-1.143 2.64-2.519 0-1.133-.652-1.845-1.978-2.156l-1.3-.27c-.738-.145-1.075-.424-1.075-.859 0-.488.436-.876 1.12-.876.581 0 .999.185 1.492.655.29.25.528.36.842.36.366 0 .667-.267.667-.65 0-.325-.174-.667-.499-.975-.43-.418-1.12-.685-1.892-.783v-.418c0-.372-.267-.505-.528-.505zm8.802 8.025a.743.743 0 00-.946.457 7.718 7.718 0 01-2.763 3.704 8.23 8.23 0 01-4.48 1.548 8.628 8.628 0 01-4.69-1.152c-.906-.524-1.649-1.03-2.262-1.749l.79.276a.743.743 0 10.49-1.404l-2.732-.952a.743.743 0 00-.946.458l-.997 2.86a.743.743 0 101.403.49l.45-1.294c.84 1.193 1.88 1.918 3.06 2.601a10.114 10.114 0 005.5 1.35 9.715 9.715 0 005.287-1.83 9.204 9.204 0 003.293-4.417.743.743 0 00-.457-.946z",
406
+ fill: "currentColor"
407
+ }));
408
+ }
409
+ var AutopayPaused = /*#__PURE__*/React.forwardRef(IconAutopayPaused);
410
+
411
+ function IconAutopay(props, svgRef) {
412
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
413
+ fill: "none",
414
+ xmlns: "http://www.w3.org/2000/svg",
415
+ viewBox: "0 0 24 24",
416
+ ref: svgRef
417
+ }, props), /*#__PURE__*/React.createElement("path", {
418
+ fillRule: "evenodd",
419
+ clipRule: "evenodd",
420
+ d: "M1.367 6.142a.734.734 0 011.003.269l.83 1.438a9.885 9.885 0 017.774-5.769 9.993 9.993 0 015.73.975 10.135 10.135 0 014.249 4.002.734.734 0 01-1.272.734 8.667 8.667 0 00-3.633-3.422 8.525 8.525 0 00-4.888-.832 8.417 8.417 0 00-6.355 4.376l.749-.433a.734.734 0 01.734 1.271l-2.56 1.479a.734.734 0 01-1.004-.269L1.098 7.145a.734.734 0 01.27-1.003zm2.895 10.273a.734.734 0 011.003.269 7.627 7.627 0 003.384 3.09 8.195 8.195 0 004.668.668 8.64 8.64 0 004.376-2.005c.792-.684 1.427-1.318 1.895-2.138l-.731.422a.734.734 0 01-.734-1.27l2.495-1.442a.734.734 0 011.003.27l1.501 2.6a.734.734 0 01-1.271.734l-.683-1.183c-.6 1.326-1.485 2.229-2.516 3.118a10.107 10.107 0 01-5.122 2.346 9.664 9.664 0 01-5.504-.79 9.095 9.095 0 01-4.032-3.686.734.734 0 01.268-1.003zm7.382-8.75c0-.372.264-.498.522-.498s.521.132.521.499v.413c.763.097 1.446.361 1.87.774.321.304.493.642.493.963 0 .379-.298.643-.66.643-.309 0-.544-.11-.83-.356-.488-.464-.901-.648-1.475-.648-.676 0-1.107.384-1.107.866 0 .43.333.706 1.062.849l1.285.267c1.31.307 1.955 1.01 1.955 2.13 0 1.36-1.004 2.3-2.61 2.489v.361c0 .367-.264.5-.522.5s-.527-.133-.527-.5v-.35c-.872-.074-1.64-.344-2.116-.785-.322-.293-.505-.625-.505-.97 0-.447.327-.7.734-.7.252 0 .459.081.786.357.51.464 1.072.705 1.651.705.809 0 1.245-.361 1.245-.912 0-.43-.327-.682-1.153-.86l-1.281-.282c-1.253-.316-1.885-1.044-1.885-2.155 0-1.325.998-2.254 2.547-2.398v-.401z",
421
+ fill: "currentColor"
422
+ }));
423
+ }
424
+ var Autopay = /*#__PURE__*/React.forwardRef(IconAutopay);
425
+
394
426
  function IconAutotextInsert(props, svgRef) {
395
427
  return /*#__PURE__*/React.createElement("svg", Object.assign({
396
428
  xmlns: "http://www.w3.org/2000/svg",
@@ -1585,6 +1617,22 @@ function IconExpenses(props, svgRef) {
1585
1617
  }
1586
1618
  var Expenses = /*#__PURE__*/React.forwardRef(IconExpenses);
1587
1619
 
1620
+ function IconExperiment(props, svgRef) {
1621
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
1622
+ fill: "none",
1623
+ xmlns: "http://www.w3.org/2000/svg",
1624
+ viewBox: "0 0 20 20",
1625
+ ref: svgRef
1626
+ }, props), /*#__PURE__*/React.createElement("path", {
1627
+ fillRule: "evenodd",
1628
+ clipRule: "evenodd",
1629
+ d: "M8.962 9.26V5.313h2.843V9.28c0 .376.796 1.24 1.049 1.511L14.5 12.5c-.507.218-3.166-1.19-4.341-.211C7.159 14.789 6 13 6.5 12c.316-.632 2.462-1.803 2.462-2.74zm.24-4.469a.762.762 0 00-.752.772v3.696a.61.61 0 01-.177.43l-2.592 2.6c-.911.913-.281 2.502.992 2.502h7.154c1.25 0 1.89-1.538 1.027-2.466l-2.446-2.63a.61.61 0 01-.162-.415V5.563a.762.762 0 00-.752-.772H9.202z",
1630
+ fill: "currentColor",
1631
+ stroke: "currentColor"
1632
+ }));
1633
+ }
1634
+ var Experiment = /*#__PURE__*/React.forwardRef(IconExperiment);
1635
+
1588
1636
  function IconExportToExcel(props, svgRef) {
1589
1637
  return /*#__PURE__*/React.createElement("svg", Object.assign({
1590
1638
  xmlns: "http://www.w3.org/2000/svg",
@@ -2626,6 +2674,21 @@ function IconPersonPlus(props, svgRef) {
2626
2674
  }
2627
2675
  var PersonPlus = /*#__PURE__*/React.forwardRef(IconPersonPlus);
2628
2676
 
2677
+ function IconPersonSolid(props, svgRef) {
2678
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
2679
+ fill: "none",
2680
+ xmlns: "http://www.w3.org/2000/svg",
2681
+ viewBox: "0 0 24 24",
2682
+ ref: svgRef
2683
+ }, props), /*#__PURE__*/React.createElement("path", {
2684
+ fillRule: "evenodd",
2685
+ clipRule: "evenodd",
2686
+ d: "M12 11.5c4.553 0 7.21 2.43 7.969 7.29.24 1.537-.928 2.962-2.608 3.182-.144.018-.29.028-.435.028H7.074C5.376 22 4 20.74 4 19.187c0-.133.01-.266.03-.398C4.79 13.93 7.448 11.5 12 11.5zM12 2c2.112 0 3.825 1.903 3.825 4.25S14.112 10.5 12 10.5c-2.113 0-3.825-1.903-3.825-4.25S9.887 2 12 2z",
2687
+ fill: "currentColor"
2688
+ }));
2689
+ }
2690
+ var PersonSolid = /*#__PURE__*/React.forwardRef(IconPersonSolid);
2691
+
2629
2692
  function IconPersonTick(props, svgRef) {
2630
2693
  return /*#__PURE__*/React.createElement("svg", Object.assign({
2631
2694
  xmlns: "http://www.w3.org/2000/svg",
@@ -2639,6 +2702,21 @@ function IconPersonTick(props, svgRef) {
2639
2702
  }
2640
2703
  var PersonTick = /*#__PURE__*/React.forwardRef(IconPersonTick);
2641
2704
 
2705
+ function IconPerson(props, svgRef) {
2706
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
2707
+ fill: "none",
2708
+ xmlns: "http://www.w3.org/2000/svg",
2709
+ viewBox: "0 0 24 24",
2710
+ ref: svgRef
2711
+ }, props), /*#__PURE__*/React.createElement("path", {
2712
+ fillRule: "evenodd",
2713
+ clipRule: "evenodd",
2714
+ d: "M12 11.5c4.553 0 7.21 2.43 7.969 7.29.24 1.537-.928 2.962-2.608 3.182-.144.018-.29.028-.435.028H7.074C5.376 22 4 20.74 4 19.187c0-.133.01-.266.03-.398C4.79 13.93 7.448 11.5 12 11.5zm0 1.5c-3.684 0-5.696 1.84-6.346 6.002-.01.061-.015.123-.015.186 0 .68.565 1.238 1.288 1.305l.147.007h9.852c.068 0 .136-.004.203-.013.784-.103 1.329-.768 1.217-1.485C17.696 14.84 15.684 13 12 13zm0-11c2.112 0 3.825 1.903 3.825 4.25S14.112 10.5 12 10.5c-2.113 0-3.825-1.903-3.825-4.25S9.887 2 12 2zm0 1.5c-1.13 0-2.186 1.174-2.186 2.75S10.87 9 12 9s2.186-1.174 2.186-2.75S13.129 3.5 12 3.5z",
2715
+ fill: "currentColor"
2716
+ }));
2717
+ }
2718
+ var Person = /*#__PURE__*/React.forwardRef(IconPerson);
2719
+
2642
2720
  function IconPhoneSolid(props, svgRef) {
2643
2721
  return /*#__PURE__*/React.createElement("svg", Object.assign({
2644
2722
  fill: "none",
@@ -3408,6 +3486,21 @@ function IconUnreconciled(props, svgRef) {
3408
3486
  }
3409
3487
  var Unreconciled = /*#__PURE__*/React.forwardRef(IconUnreconciled);
3410
3488
 
3489
+ function IconWallet(props, svgRef) {
3490
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
3491
+ fill: "none",
3492
+ xmlns: "http://www.w3.org/2000/svg",
3493
+ viewBox: "0 0 24 24",
3494
+ ref: svgRef
3495
+ }, props), /*#__PURE__*/React.createElement("path", {
3496
+ fillRule: "evenodd",
3497
+ clipRule: "evenodd",
3498
+ d: "M4.75 4.5h14.5a.25.25 0 01.25.25V7H16a5 5 0 000 10h3.5v2.25a.25.25 0 01-.25.25H4.75a.25.25 0 01-.25-.25V4.75a.25.25 0 01.25-.25zM22 7h-1V4.75A1.75 1.75 0 0019.25 3H4.75A1.75 1.75 0 003 4.75v14.5c0 .966.784 1.75 1.75 1.75h14.5A1.75 1.75 0 0021 19.25V17h1a1 1 0 001-1V8a1 1 0 00-1-1zm-.5 1.5H16a3.5 3.5 0 100 7h5.5v-7zm-5.5 5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z",
3499
+ fill: "currentColor"
3500
+ }));
3501
+ }
3502
+ var Wallet = /*#__PURE__*/React.forwardRef(IconWallet);
3503
+
3411
3504
  function IconWarning(props, svgRef) {
3412
3505
  return /*#__PURE__*/React.createElement("svg", Object.assign({
3413
3506
  fill: "none",
@@ -3505,6 +3598,8 @@ const icons = {
3505
3598
  'attach-cancel': AttachCancel,
3506
3599
  'attach-warning': AttachWarning,
3507
3600
  attach: Attach,
3601
+ 'autopay-paused': AutopayPaused,
3602
+ autopay: Autopay,
3508
3603
  'autotext-insert': AutotextInsert,
3509
3604
  autotext: Autotext,
3510
3605
  'basic-tabs': BasicTabs,
@@ -3595,6 +3690,7 @@ const icons = {
3595
3690
  envelope: Envelope,
3596
3691
  'expand-view': ExpandView,
3597
3692
  expenses: Expenses,
3693
+ experiment: Experiment,
3598
3694
  'export-to-excel': ExportToExcel,
3599
3695
  'export-to-pdf': ExportToPdf,
3600
3696
  export: Export,
@@ -3671,7 +3767,9 @@ const icons = {
3671
3767
  'person-change': PersonChange,
3672
3768
  'person-minus': PersonMinus,
3673
3769
  'person-plus': PersonPlus,
3770
+ 'person-solid': PersonSolid,
3674
3771
  'person-tick': PersonTick,
3772
+ person: Person,
3675
3773
  'phone-solid': PhoneSolid,
3676
3774
  phone: Phone,
3677
3775
  play: Play,
@@ -3730,6 +3828,7 @@ const icons = {
3730
3828
  undo: Undo,
3731
3829
  undock: Undock,
3732
3830
  unreconciled: Unreconciled,
3831
+ wallet: Wallet,
3733
3832
  warning: Warning,
3734
3833
  webshop: Webshop,
3735
3834
  website: Website,
@@ -3799,6 +3898,8 @@ const getIconName = state => {
3799
3898
  return 'warning';
3800
3899
  case 'error':
3801
3900
  return 'close';
3901
+ case 'experiment':
3902
+ return 'experiment';
3802
3903
  case 'success':
3803
3904
  return 'tick';
3804
3905
  default:
@@ -4083,10 +4184,10 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(props, ref) {
4083
4184
  ...otherProps
4084
4185
  } = props;
4085
4186
  const isTransparent = color === 'transparent';
4086
- const className = cn('rounded-full border overflow-hidden whitespace-nowrap inline-flex items-center justify-center', {
4187
+ const className = cn('rounded-full border box-border overflow-hidden whitespace-nowrap inline-flex items-center justify-center', {
4087
4188
  [`border ${getOutlineColorShadeClasses(color)}`]: outline,
4088
- [`border-transparent font-normal ${getSubtleColorShadeClasses(color)}`]: subtle,
4089
- [`border-transparent ${getColorShadeClasses(color)}`]: !outline && !subtle,
4189
+ [`border-none font-normal ${getSubtleColorShadeClasses(color)}`]: subtle,
4190
+ [`border-none ${getColorShadeClasses(color)}`]: !outline && !subtle,
4090
4191
  'h-4 min-w-0 py-0 px-1 text-xs': small,
4091
4192
  'h-2 w-2 min-w-0': compact,
4092
4193
  'font-bold': outline || !subtle,
@@ -4098,12 +4199,15 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(props, ref) {
4098
4199
  if (compact) {
4099
4200
  return /*#__PURE__*/React.createElement(VisuallyHidden, null, children);
4100
4201
  }
4202
+ const contentToRender = typeof children === 'string' ? /*#__PURE__*/React.createElement("span", {
4203
+ className: "items-center truncate"
4204
+ }, children) : children;
4101
4205
  if (status) {
4102
4206
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
4103
- className: cn('mr-1 h-2 w-2 rounded-full', getColorShadeClasses(color))
4104
- }), children);
4207
+ className: cn('mr-1 h-2 w-2 shrink-0 rounded-full', getColorShadeClasses(color))
4208
+ }), contentToRender);
4105
4209
  }
4106
- return children;
4210
+ return contentToRender;
4107
4211
  };
4108
4212
  return /*#__PURE__*/React.createElement("span", Object.assign({}, otherProps, {
4109
4213
  "aria-atomic": "true",
@@ -4131,6 +4235,11 @@ const getBannerIcon = type => {
4131
4235
  icon: "close",
4132
4236
  color: "red"
4133
4237
  });
4238
+ case 'experiment':
4239
+ return /*#__PURE__*/React__default.createElement(BadgeIcon, {
4240
+ icon: "experiment",
4241
+ color: "purple"
4242
+ });
4134
4243
  case 'warning':
4135
4244
  return /*#__PURE__*/React__default.createElement(BadgeIcon, {
4136
4245
  icon: "warning",
@@ -4223,6 +4332,9 @@ function isElementTriggeredFromContainer(element, container) {
4223
4332
  return true;
4224
4333
  }
4225
4334
  const elementInDocument = document.querySelector(escapedSelector);
4335
+ if (elementInDocument === container) {
4336
+ return true;
4337
+ }
4226
4338
  // if the element does exist, see if it is itself connected to somethng that was triggered from the container
4227
4339
  if (elementInDocument) {
4228
4340
  return isElementTriggeredFromContainer(elementInDocument, container);
@@ -4245,7 +4357,15 @@ function isElementInteractive(element) {
4245
4357
  if (!element) {
4246
4358
  return false;
4247
4359
  }
4248
- return ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'LABEL', 'OPTION'].includes(element.tagName) && !element.hidden && !element.disabled && !element.readOnly;
4360
+ const interactiveElements = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'LABEL', 'OPTION'];
4361
+ const isInteractive = interactiveElements.includes(element.tagName) && !element.hidden && !element.disabled && !element.readOnly;
4362
+ // sometimes buttons contain content like an icon, and we can't rely on pointer events being disabled
4363
+ // so search for a focusable parent
4364
+ if (!isInteractive) {
4365
+ const focusableParent = element.closest(FOCUSABLE_ELEMENTS.join(','));
4366
+ return focusableParent ? interactiveElements.includes(focusableParent.tagName) : false;
4367
+ }
4368
+ return isInteractive;
4249
4369
  }
4250
4370
  function isElementInsideTable3OrReport(element) {
4251
4371
  return !!(element !== null && element !== void 0 && element.closest('[data-taco^=table]'));
@@ -4276,9 +4396,12 @@ function shouldTriggerShortcut(event, key) {
4276
4396
  }
4277
4397
  return event.key.toLowerCase() === keyOptions.key.toLowerCase();
4278
4398
  }
4279
- function createShortcutKeyDownHandler(key, handler, stopPropagation = true) {
4399
+ function createShortcutKeyDownHandler(key, handler, stopPropagation = true, element) {
4280
4400
  return function (event) {
4281
- if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event)) {
4401
+ const dialog = document.querySelector('[role="dialog"]');
4402
+ const isOutsideDialog = element && dialog && !dialog.contains(element);
4403
+ if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event) || isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog
4404
+ ) {
4282
4405
  return;
4283
4406
  }
4284
4407
  const condition = shouldTriggerShortcut(event, key);
@@ -4299,11 +4422,11 @@ const isMacOs = () => {
4299
4422
  return (_window = window) === null || _window === void 0 ? void 0 : _window.navigator.userAgent.includes('Mac');
4300
4423
  };
4301
4424
 
4302
- const useGlobalKeyDown = (shortcut, handler) => {
4425
+ const useGlobalKeyDown = (shortcut, handler, element) => {
4303
4426
  React__default.useEffect(() => {
4304
4427
  let handleKeyDown;
4305
4428
  if (shortcut) {
4306
- handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
4429
+ handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false, element);
4307
4430
  document.addEventListener('keydown', handleKeyDown);
4308
4431
  }
4309
4432
  return () => {
@@ -4326,13 +4449,8 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4326
4449
  useGlobalKeyDown(shortcut, event => {
4327
4450
  var _internalRef$current;
4328
4451
  event === null || event === void 0 ? void 0 : event.preventDefault();
4329
- const dialog = document.querySelector('[role="dialog"]');
4330
- // Don't trigger the click on the button if it is outside of the dialog
4331
- if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
4332
- return;
4333
- }
4334
4452
  (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
4335
- });
4453
+ }, internalRef.current);
4336
4454
  const Tag = props.href ? 'a' : 'button';
4337
4455
  return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
4338
4456
  href: disabled ? undefined : props.href,
@@ -4859,7 +4977,8 @@ const Base$1 = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {
4859
4977
  }, props.className);
4860
4978
  return createButtonWithTooltip({
4861
4979
  ...otherProps,
4862
- 'data-taco': 'button'
4980
+ 'data-taco': 'button',
4981
+ 'data-appearance': appearance
4863
4982
  }, className, ref);
4864
4983
  });
4865
4984
  const Button$1 = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
@@ -4982,22 +5101,23 @@ const TodayButton = ({
4982
5101
  }, texts.calendar.actions.today);
4983
5102
  };
4984
5103
  const Calendar$1 = props => {
5104
+ var _ref;
4985
5105
  const {
4986
5106
  onChange: handleChange,
4987
5107
  value,
4988
5108
  disabledDays,
5109
+ visibleMonth,
4989
5110
  ...otherProps
4990
5111
  } = props;
4991
- const [visibleMonth, setVisibleMonth] = React.useState(value !== null && value !== void 0 ? value : new Date());
5112
+ const [internalVisibleMonth, setInternalVisibleMonth] = React.useState((_ref = visibleMonth !== null && visibleMonth !== void 0 ? visibleMonth : value) !== null && _ref !== void 0 ? _ref : new Date());
4992
5113
  const {
4993
5114
  texts
4994
5115
  } = useLocalization();
4995
5116
  React.useEffect(() => {
4996
- if (visibleMonth !== value) {
4997
- setVisibleMonth(value !== null && value !== void 0 ? value : new Date());
5117
+ if (visibleMonth && visibleMonth !== internalVisibleMonth) {
5118
+ setInternalVisibleMonth(visibleMonth);
4998
5119
  }
4999
- // visibleMonth in deps array breaking month switching logic. It should not be in deps array.
5000
- }, [value]);
5120
+ }, [visibleMonth]);
5001
5121
  const handleDayClick = (date, modifiers, event) => {
5002
5122
  if (modifiers.outside || modifiers.disabled) {
5003
5123
  return;
@@ -5011,13 +5131,13 @@ const Calendar$1 = props => {
5011
5131
  className: className,
5012
5132
  captionLayout: "dropdown-buttons",
5013
5133
  weekStartsOn: 1,
5014
- month: visibleMonth,
5134
+ month: internalVisibleMonth,
5015
5135
  numberOfMonths: 1,
5016
5136
  components: {
5017
- Caption: props => /*#__PURE__*/React.createElement(Navbar, Object.assign({}, props, {
5018
- onMonthChange: setVisibleMonth,
5019
- value: visibleMonth
5020
- })),
5137
+ Caption: props => (/*#__PURE__*/React.createElement(Navbar, Object.assign({}, props, {
5138
+ onMonthChange: setInternalVisibleMonth,
5139
+ value: internalVisibleMonth
5140
+ }))),
5021
5141
  Footer: () => (/*#__PURE__*/React.createElement("tfoot", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
5022
5142
  colSpan: 7,
5023
5143
  className: "text-center"
@@ -5943,7 +6063,6 @@ const useCombobox = ({
5943
6063
  }, [open]);
5944
6064
  // event handlers
5945
6065
  const handleInputBlur = event => {
5946
- event.persist();
5947
6066
  if (listRef.current && event.relatedTarget === listRef.current) {
5948
6067
  event.preventDefault();
5949
6068
  return;
@@ -5956,7 +6075,14 @@ const useCombobox = ({
5956
6075
  if (parents !== null && parents.length > 0) {
5957
6076
  event.detail.parents = parents;
5958
6077
  }
5959
- onChange(event);
6078
+ const isComboboxChangeEvent = event => {
6079
+ return !event.isTrusted; // this makes sure we only take our own custom event, and not the browser default blur on tab.
6080
+ };
6081
+ // Only trigger onChange if this is our custom event (not a browser blur event)
6082
+ // or if the input was cleared.
6083
+ if (isComboboxChangeEvent(event) || event.target.value === '' && !inline) {
6084
+ onChange(event);
6085
+ }
5960
6086
  }
5961
6087
  if (props.onBlur) {
5962
6088
  props.onBlur(event);
@@ -5970,12 +6096,10 @@ const useCombobox = ({
5970
6096
  setOpen(true);
5971
6097
  }
5972
6098
  if (onClick) {
5973
- event.persist();
5974
6099
  onClick(event);
5975
6100
  }
5976
6101
  };
5977
6102
  const handleInputKeyDown = event => {
5978
- event.persist();
5979
6103
  if (!event.ctrlKey && !event.metaKey) {
5980
6104
  switch (event.key) {
5981
6105
  case 'Backspace':
@@ -6044,7 +6168,6 @@ const useCombobox = ({
6044
6168
  }
6045
6169
  }
6046
6170
  if (!event.isDefaultPrevented() && onKeyDown) {
6047
- event.persist();
6048
6171
  onKeyDown(event);
6049
6172
  }
6050
6173
  };
@@ -6272,14 +6395,18 @@ const useDatepicker = ({
6272
6395
  } = useLocalization();
6273
6396
  const [internalValue, setInternalValue] = React.useState((_format = format(value, formatting.date)) !== null && _format !== void 0 ? _format : '');
6274
6397
  const originalValueAsDate = parse(value);
6275
- // update internal value if it changed 'externally'
6398
+ // Track the current view date (month/year) in the calendar
6399
+ const [calendarViewDate, setCalendarViewDate] = React.useState(originalValueAsDate || new Date());
6276
6400
  React.useEffect(() => {
6277
- const formattedValue = format(value, formatting.date);
6278
- if (formattedValue !== internalValue) {
6279
- setInternalValue(formattedValue !== null && formattedValue !== void 0 ? formattedValue : '');
6401
+ // Only update the internal value when the input is not focused
6402
+ // This prevents the input value from being reset while user is typing
6403
+ if (inputRef.current !== document.activeElement) {
6404
+ const formattedValue = format(value, formatting.date);
6405
+ if (formattedValue !== internalValue) {
6406
+ setInternalValue(formattedValue !== null && formattedValue !== void 0 ? formattedValue : '');
6407
+ }
6280
6408
  }
6281
6409
  }, [value]);
6282
- // event handlers
6283
6410
  const handleInputBlur = event => {
6284
6411
  event.persist();
6285
6412
  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());
@@ -6300,6 +6427,8 @@ const useDatepicker = ({
6300
6427
  setInternalValue(event.target.value);
6301
6428
  };
6302
6429
  const handleChange = date => {
6430
+ // Update both the input value and calendar view date when selecting a date
6431
+ setCalendarViewDate(date);
6303
6432
  setInputValueByRef(inputRef.current, format(date, formatting.date), 'focusout');
6304
6433
  };
6305
6434
  const handleKeyDown = event => {
@@ -6325,7 +6454,8 @@ const useDatepicker = ({
6325
6454
  const calendarProps = {
6326
6455
  ...calendar,
6327
6456
  onChange: handleChange,
6328
- value: originalValueAsDate
6457
+ value: originalValueAsDate,
6458
+ visibleMonth: calendarViewDate
6329
6459
  };
6330
6460
  return {
6331
6461
  input: inputProps,
@@ -8214,7 +8344,7 @@ const Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref)
8214
8344
  var _childrenRefs$current, _childrenRefs$current2;
8215
8345
  return (_childrenRefs$current = childrenRefs.current[index]) === null || _childrenRefs$current === void 0 ? void 0 : (_childrenRefs$current2 = _childrenRefs$current.current) === null || _childrenRefs$current2 === void 0 ? void 0 : _childrenRefs$current2.click();
8216
8346
  }, 1);
8217
- }));
8347
+ }, true, childrenRefs.current[index].current));
8218
8348
  }
8219
8349
  });
8220
8350
  shortcuts.forEach(handler => document.addEventListener('keydown', handler));
@@ -8283,7 +8413,7 @@ const Shortcut = ({
8283
8413
  className: className
8284
8414
  }), texts.map(key => (/*#__PURE__*/React__default.createElement("kbd", {
8285
8415
  key: key,
8286
- className: "font-display text-grey-700 [[data-taco=tooltip]_&]:bg-grey-300/[0.25] rounded-sm bg-black/[0.09] px-1 text-center font-bold [[data-taco=tooltip]_&]:text-white"
8416
+ className: "font-display text-grey-700 [[data-taco=tooltip]_&]:bg-grey-300/[0.25] rounded-sm bg-black/[0.09] px-1 text-center font-bold [[data-appearance=danger]_&]:text-white [[data-appearance=primary]_&]:text-white [[data-taco=tooltip]_&]:text-white"
8287
8417
  }, key))));
8288
8418
  };
8289
8419
 
@@ -9865,9 +9995,13 @@ const dataTypes = {
9865
9995
  if (value === undefined) {
9866
9996
  return '';
9867
9997
  }
9868
- return new Intl.NumberFormat(options === null || options === void 0 ? void 0 : (_options$localization2 = options.localization) === null || _options$localization2 === void 0 ? void 0 : _options$localization2.locale, {
9998
+ const formatter = new Intl.NumberFormat(options === null || options === void 0 ? void 0 : (_options$localization2 = options.localization) === null || _options$localization2 === void 0 ? void 0 : _options$localization2.locale, {
9869
9999
  minimumFractionDigits: 2
9870
- }).format(Number(value));
10000
+ });
10001
+ const decimalSeperator = formatter.format(1.1).substring(1, 2);
10002
+ const localisedValue = formatter.format(Number(value));
10003
+ const localisedValueWithoutThousandsSeperator = decimalSeperator === '.' ? localisedValue.replace(',', '') : localisedValue.replace('.', '');
10004
+ return [localisedValue, localisedValueWithoutThousandsSeperator];
9871
10005
  }
9872
10006
  }
9873
10007
  };
@@ -10015,7 +10149,13 @@ function isMatched(searchQuery, cellValue, dataType, localization) {
10015
10149
  const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, {
10016
10150
  localization
10017
10151
  });
10018
- if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {
10152
+ if (Array.isArray(cellDisplayValue)) {
10153
+ for (const displayValue of cellDisplayValue) {
10154
+ if (isWeakContains(displayValue, searchQuery)) {
10155
+ return true;
10156
+ }
10157
+ }
10158
+ } else if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {
10019
10159
  return true;
10020
10160
  }
10021
10161
  }
@@ -10313,10 +10453,15 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
10313
10453
  column.cell = info => renderer(info.getValue(), info.row.original);
10314
10454
  } else if (dataTypeProperties.getDisplayValue) {
10315
10455
  const dataTypeRenderer = value => {
10316
- var _dataTypeProperties$g, _dataTypeProperties$g2;
10317
- return (_dataTypeProperties$g = (_dataTypeProperties$g2 = dataTypeProperties.getDisplayValue) === null || _dataTypeProperties$g2 === void 0 ? void 0 : _dataTypeProperties$g2.call(dataTypeProperties, value, {
10456
+ var _dataTypeProperties$g;
10457
+ const displayValue = (_dataTypeProperties$g = dataTypeProperties.getDisplayValue) === null || _dataTypeProperties$g === void 0 ? void 0 : _dataTypeProperties$g.call(dataTypeProperties, value, {
10318
10458
  localization
10319
- })) !== null && _dataTypeProperties$g !== void 0 ? _dataTypeProperties$g : value;
10459
+ });
10460
+ if (Array.isArray(displayValue)) {
10461
+ var _displayValue$;
10462
+ return (_displayValue$ = displayValue[0]) !== null && _displayValue$ !== void 0 ? _displayValue$ : value;
10463
+ }
10464
+ return displayValue !== null && displayValue !== void 0 ? displayValue : value;
10320
10465
  };
10321
10466
  column.cell = info => dataTypeRenderer(info.getValue());
10322
10467
  column.meta.renderer = dataTypeRenderer;
@@ -10526,6 +10671,7 @@ const DEFAULT_PRESET = {
10526
10671
  enableColumnHiding: false,
10527
10672
  enableColumnResizing: false,
10528
10673
  enableRowExpansion: false,
10674
+ enableRowExpansionAll: true,
10529
10675
  enableRowSelection: false,
10530
10676
  // custom -- common between all table types
10531
10677
  enableColumnOrdering: false,
@@ -10552,6 +10698,7 @@ const presets = {
10552
10698
  enableColumnHiding: true,
10553
10699
  enableColumnResizing: true,
10554
10700
  enableRowExpansion: true,
10701
+ enableRowExpansionAll: true,
10555
10702
  enableRowSelection: true,
10556
10703
  // custom -- common between all table types
10557
10704
  enableColumnOrdering: true,
@@ -10577,6 +10724,7 @@ const presets = {
10577
10724
  enableColumnHiding: false,
10578
10725
  enableColumnResizing: false,
10579
10726
  enableRowExpansion: true,
10727
+ enableRowExpansionAll: true,
10580
10728
  enableRowSelection: true,
10581
10729
  // custom -- common between all table types
10582
10730
  enableColumnOrdering: false,
@@ -10602,6 +10750,7 @@ const presets = {
10602
10750
  enableColumnHiding: false,
10603
10751
  enableColumnResizing: false,
10604
10752
  enableRowExpansion: true,
10753
+ enableRowExpansionAll: true,
10605
10754
  enableRowSelection: false,
10606
10755
  // custom -- common between all table types
10607
10756
  enableColumnOrdering: false,
@@ -10619,7 +10768,7 @@ const presets = {
10619
10768
  }
10620
10769
  };
10621
10770
  function getTableFeaturePreset(props) {
10622
- var _props$enableRowActio, _props$enableRowClick, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowExpan, _props$enableRowSelec, _props$enableFilterin, _props$enableSearch, _props$enableSorting, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnRe, _props$enableColumnOr, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowActiv, _props$rowActions, _props$enableRowHeigh, _props$enableSaveSett;
10771
+ var _props$enableRowActio, _props$enableRowClick, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowExpan, _props$enableRowExpan2, _props$enableRowSelec, _props$enableFilterin, _props$enableSearch, _props$enableSorting, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnRe, _props$enableColumnOr, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowActiv, _props$rowActions, _props$enableRowHeigh, _props$enableSaveSett;
10623
10772
  const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;
10624
10773
  const enableRowActions = (_props$enableRowActio = props.enableRowActions) !== null && _props$enableRowActio !== void 0 ? _props$enableRowActio : presetOptions.enableRowActions;
10625
10774
  const enableRowClick = (_props$enableRowClick = props.enableRowClick) !== null && _props$enableRowClick !== void 0 ? _props$enableRowClick : presetOptions.enableRowClick;
@@ -10627,6 +10776,7 @@ function getTableFeaturePreset(props) {
10627
10776
  const enableRowDrop = (_props$enableRowDrop = props.enableRowDrop) !== null && _props$enableRowDrop !== void 0 ? _props$enableRowDrop : presetOptions.enableRowDrop;
10628
10777
  const enableRowGoto = (_props$enableRowGoto = props.enableRowGoto) !== null && _props$enableRowGoto !== void 0 ? _props$enableRowGoto : presetOptions.enableRowGoto;
10629
10778
  const enableRowExpansion = (_props$enableRowExpan = props.enableRowExpansion) !== null && _props$enableRowExpan !== void 0 ? _props$enableRowExpan : presetOptions.enableRowExpansion;
10779
+ const enableRowExpansionAll = (_props$enableRowExpan2 = props.enableRowExpansionAll) !== null && _props$enableRowExpan2 !== void 0 ? _props$enableRowExpan2 : presetOptions.enableRowExpansionAll;
10630
10780
  const enableRowSelection = (_props$enableRowSelec = props.enableRowSelection) !== null && _props$enableRowSelec !== void 0 ? _props$enableRowSelec : presetOptions.enableRowSelection;
10631
10781
  return {
10632
10782
  // react-table built-in
@@ -10651,6 +10801,7 @@ function getTableFeaturePreset(props) {
10651
10801
  enableRowDrag: enableRowDrag && !!props.onRowDrag,
10652
10802
  enableRowDrop: enableRowDrop && !!props.onRowDrop,
10653
10803
  enableRowGoto: enableRowGoto && !!props.onRowGoto,
10804
+ enableRowExpansionAll: enableRowExpansion && enableRowExpansionAll && !!props.rowExpansionRenderer,
10654
10805
  enableRowHeight: (_props$enableRowHeigh = props.enableRowHeight) !== null && _props$enableRowHeigh !== void 0 ? _props$enableRowHeigh : presetOptions.enableRowHeight,
10655
10806
  enableSaveSettings: (_props$enableSaveSett = props.enableSaveSettings) !== null && _props$enableSaveSett !== void 0 ? _props$enableSaveSett : presetOptions.enableSaveSettings
10656
10807
  };
@@ -10895,9 +11046,10 @@ function useTableRowClick(isEnabled = false, onRowClick) {
10895
11046
  };
10896
11047
  }
10897
11048
 
10898
- function useTableRowExpansion(isEnabled = false, rowExpansionRenderer) {
11049
+ function useTableRowExpansion(isEnabled = false, canExpandAll = true, rowExpansionRenderer) {
10899
11050
  return {
10900
11051
  isEnabled,
11052
+ canExpandAll,
10901
11053
  rowExpansionRenderer: isEnabled ? rowExpansionRenderer : undefined
10902
11054
  };
10903
11055
  }
@@ -11361,6 +11513,7 @@ function useTableServerLoading(loadPage, loadAll, pageSize = DEFAULT_PAGE_SIZE)
11361
11513
  const _temp = function () {
11362
11514
  if (typeof loadPage === 'function') {
11363
11515
  return Promise.resolve(loadPage(...args)).then(function () {
11516
+ setLoadedStatus(exports.TableServerLoadAllState.Incomplete);
11364
11517
  setReady(true);
11365
11518
  });
11366
11519
  }
@@ -11481,7 +11634,7 @@ function useLazyEffect(effect, deps) {
11481
11634
  const readyRef = React__default.useRef(false);
11482
11635
  React__default.useEffect(() => {
11483
11636
  if (readyRef.current) {
11484
- effect();
11637
+ return effect();
11485
11638
  } else {
11486
11639
  readyRef.current = true;
11487
11640
  }
@@ -11523,7 +11676,8 @@ function useTableFontSizeListener(table) {
11523
11676
  table.setColumnSizing(sizes => {
11524
11677
  return Object.fromEntries(Object.entries(sizes).map(([columnName, prevColumnSize]) => {
11525
11678
  var _column$columnDef$min;
11526
- const column = table.getColumn(columnName);
11679
+ // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505
11680
+ const column = table.getAllColumns().find(x => x.id === columnName);
11527
11681
  if (isInternalColumn(columnName)) {
11528
11682
  var _column$getSize;
11529
11683
  return [columnName, (_column$getSize = column === null || column === void 0 ? void 0 : column.getSize()) !== null && _column$getSize !== void 0 ? _column$getSize : prevColumnSize];
@@ -11738,7 +11892,7 @@ function useTableManager(props, meta, internalColumns) {
11738
11892
  const rowClick = useTableRowClick(options.enableRowClick, props.onRowClick);
11739
11893
  const rowDrag = useTableRowDrag(options.enableRowDrag && !(meta !== null && meta !== void 0 && (_meta$editing = meta.editing) !== null && _meta$editing !== void 0 && _meta$editing.isEditing), props.onRowDrag);
11740
11894
  const rowDrop = useTableRowDrop(options.enableRowDrop, props.onRowDrop);
11741
- const rowExpansion = useTableRowExpansion(options.enableRowExpansion, props.rowExpansionRenderer);
11895
+ const rowExpansion = useTableRowExpansion(options.enableRowExpansion, options.enableRowExpansionAll, props.rowExpansionRenderer);
11742
11896
  const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);
11743
11897
  const rowGroups = useTableRowGroups(props.rowActionsForGroup);
11744
11898
  const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);
@@ -12480,6 +12634,10 @@ function Header$3(context) {
12480
12634
  const {
12481
12635
  table
12482
12636
  } = context;
12637
+ const tableMeta = table.options.meta;
12638
+ if (!tableMeta.rowExpansion.canExpandAll) {
12639
+ return null;
12640
+ }
12483
12641
  const isSomeRowsExpanded = table.getIsSomeRowsExpanded();
12484
12642
  const handleClick = event => {
12485
12643
  event.stopPropagation();
@@ -13786,8 +13944,13 @@ function Summary(props) {
13786
13944
  }
13787
13945
 
13788
13946
  function Foot(props) {
13789
- const nonGroupedHeaders = props.table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());
13790
- return /*#__PURE__*/React__default.createElement("tfoot", null, /*#__PURE__*/React__default.createElement("tr", null, nonGroupedHeaders.map((header, index) => (/*#__PURE__*/React__default.createElement(Footer$3, {
13947
+ const {
13948
+ children,
13949
+ table,
13950
+ ...attributes
13951
+ } = props;
13952
+ const nonGroupedHeaders = table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());
13953
+ return /*#__PURE__*/React__default.createElement("tfoot", Object.assign({}, attributes), children, /*#__PURE__*/React__default.createElement("tr", null, nonGroupedHeaders.map((header, index) => (/*#__PURE__*/React__default.createElement(Footer$3, {
13791
13954
  key: header.id,
13792
13955
  header: header,
13793
13956
  index: index
@@ -13835,22 +13998,29 @@ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(prop
13835
13998
  });
13836
13999
 
13837
14000
  function EmptyStateBody(props) {
14001
+ var _ref$current, _ref$current$parentNo;
13838
14002
  const {
13839
14003
  emptyState: Placeholder,
13840
14004
  isReady,
13841
14005
  reason,
13842
14006
  ...attributes
13843
14007
  } = props;
14008
+ const ref = React__default.useRef(null);
13844
14009
  if (!isReady) {
13845
14010
  return /*#__PURE__*/React__default.createElement("tbody", Object.assign({}, attributes, {
13846
14011
  className: "!auto-rows-fr"
13847
14012
  }));
13848
14013
  }
13849
14014
  return /*#__PURE__*/React__default.createElement("tbody", Object.assign({}, attributes, {
13850
- className: "!auto-rows-fr"
14015
+ ref: ref,
14016
+ className: "!auto-rows-fr",
14017
+ "data-taco": "empty-state"
13851
14018
  }), /*#__PURE__*/React__default.createElement("tr", {
13852
- className: "!auto-rows-fr"
14019
+ className: "!auto-rows-fr "
13853
14020
  }, /*#__PURE__*/React__default.createElement("td", {
14021
+ style: {
14022
+ maxWidth: ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : (_ref$current$parentNo = _ref$current.parentNode) === null || _ref$current$parentNo === void 0 ? void 0 : _ref$current$parentNo.clientWidth
14023
+ },
13854
14024
  className: "col-span-full !border-0 !p-0 hover:!bg-white"
13855
14025
  }, Placeholder ? /*#__PURE__*/React__default.createElement(Placeholder, {
13856
14026
  reason: reason
@@ -14817,14 +14987,16 @@ const Tag$1 = /*#__PURE__*/React__default.forwardRef((props, ref) => {
14817
14987
  ref: ref,
14818
14988
  "data-taco": "tag"
14819
14989
  }), /*#__PURE__*/React__default.createElement("span", {
14820
- className: "truncate px-2",
14990
+ className: "flex items-center truncate px-2",
14821
14991
  ref: textRef
14822
14992
  }, icon ? typeof icon === 'string' ? (/*#__PURE__*/React__default.createElement(Icon, {
14823
14993
  name: icon,
14824
- className: "-ml-1 -mt-0.5 mr-1 !h-5 !w-5"
14994
+ className: "-ml-1 mr-1 !h-5 !w-5"
14825
14995
  })) : (/*#__PURE__*/React__default.cloneElement(icon, {
14826
- className: 'mr-1 -ml-1 -mt-0.5 !h-5 !w-5'
14827
- })) : null, children), onDelete ? (/*#__PURE__*/React__default.createElement(Icon, {
14996
+ className: 'mr-1 -ml-1 !h-5 !w-5'
14997
+ })) : null, /*#__PURE__*/React__default.createElement("span", {
14998
+ className: "truncate"
14999
+ }, children)), onDelete ? (/*#__PURE__*/React__default.createElement(Icon, {
14828
15000
  name: "close",
14829
15001
  onClick: onDelete,
14830
15002
  className: "-ml-1.5 !h-6 !w-5 flex-shrink-0 cursor-pointer rounded-r p-0.5 hover:bg-black/5"
@@ -15101,12 +15273,13 @@ const Option$1 = /*#__PURE__*/React__default.forwardRef(function Select2Option(p
15101
15273
  }), hasValue ? (/*#__PURE__*/React__default.createElement(Icon, {
15102
15274
  name: "tick",
15103
15275
  className: "pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible"
15104
- })) : null, isTag ? (/*#__PURE__*/React__default.createElement(Tag$1, {
15276
+ })) : null, typeof children !== 'string' ? (/*#__PURE__*/React__default.createElement("span", null, children)) : isTag ? (/*#__PURE__*/React__default.createElement(Tag$1, {
15105
15277
  className: "pointer-events-none my-1",
15106
15278
  color: color,
15107
15279
  icon: prefix
15108
15280
  }, children)) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix ? typeof prefix === 'string' ? /*#__PURE__*/React__default.createElement(Icon, {
15109
- name: prefix
15281
+ name: prefix,
15282
+ className: "!h-5 !w-5"
15110
15283
  }) : prefix : null, /*#__PURE__*/React__default.createElement("span", {
15111
15284
  className: "flex w-full justify-between"
15112
15285
  }, /*#__PURE__*/React__default.createElement("span", {
@@ -15115,9 +15288,10 @@ const Option$1 = /*#__PURE__*/React__default.forwardRef(function Select2Option(p
15115
15288
  className: "text-grey-700 -mt-1.5 mb-1.5 text-xs"
15116
15289
  }, description) : null), /*#__PURE__*/React__default.createElement("span", {
15117
15290
  className: "flex flex-col self-center"
15118
- }, postfix ? typeof postfix === 'string' ? /*#__PURE__*/React__default.createElement(Icon, {
15119
- name: postfix
15120
- }) : postfix : null)))), popover ? (/*#__PURE__*/React__default.createElement(IconButton, {
15291
+ }, postfix ? typeof postfix === 'string' ? (/*#__PURE__*/React__default.createElement(Icon, {
15292
+ name: postfix,
15293
+ className: "!h-5 !w-5"
15294
+ })) : postfix : null)))), popover ? (/*#__PURE__*/React__default.createElement(IconButton, {
15121
15295
  icon: "ellipsis-vertical",
15122
15296
  appearance: "discrete",
15123
15297
  className: cn('group-aria-current:visible invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black/[.08] focus:!shadow-none group-hover:visible', {
@@ -15283,7 +15457,7 @@ const Single = /*#__PURE__*/React__default.forwardRef(function Select2TriggerSin
15283
15457
  readOnly,
15284
15458
  tags
15285
15459
  } = useSelect2Context();
15286
- const contentClassName = cn('truncate items-center gap-1');
15460
+ const contentClassName = cn('truncate flex items-center gap-1');
15287
15461
  const currentValue = children.find(matchesValue(value));
15288
15462
  let output;
15289
15463
  if (placeholder && currentValue === undefined) {
@@ -15293,13 +15467,13 @@ const Single = /*#__PURE__*/React__default.forwardRef(function Select2TriggerSin
15293
15467
  }, placeholder);
15294
15468
  } else if (currentValue) {
15295
15469
  if (tags && emptyValue !== value) {
15296
- output = /*#__PURE__*/React__default.createElement(Tag$1, {
15470
+ if (typeof currentValue.props.children === 'string') output = /*#__PURE__*/React__default.createElement(Tag$1, {
15297
15471
  className: "truncate",
15298
15472
  color: currentValue.props.color,
15299
15473
  disabled: disabled,
15300
15474
  icon: currentValue.props.prefix,
15301
15475
  readOnly: readOnly
15302
- }, currentValue.props.children);
15476
+ }, currentValue.props.children);else output = currentValue.props.children;
15303
15477
  } else {
15304
15478
  output = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, currentValue.props.prefix ? typeof currentValue.props.prefix === 'string' ? (/*#__PURE__*/React__default.createElement(Icon, {
15305
15479
  name: currentValue.props.prefix,
@@ -15350,7 +15524,7 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
15350
15524
  }, valuesAsChildren.length === 0 ? (/*#__PURE__*/React__default.createElement(Placeholder, {
15351
15525
  disabled: disabled,
15352
15526
  readOnly: readOnly
15353
- }, placeholder)) : valuesAsChildren.map(child => (/*#__PURE__*/React__default.createElement(Tag$1, {
15527
+ }, placeholder)) : valuesAsChildren.map(child => typeof child.props.children === 'string' ? (/*#__PURE__*/React__default.createElement(Tag$1, {
15354
15528
  key: String(child.props.value),
15355
15529
  className: "truncate",
15356
15530
  color: tags ? child.props.color : undefined,
@@ -15364,7 +15538,23 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
15364
15538
  }
15365
15539
  },
15366
15540
  readOnly: readOnly
15367
- }, child.props.children)))));
15541
+ }, child.props.children)) : (/*#__PURE__*/React__default.cloneElement(child.props.children, {
15542
+ key: String(child.props.value),
15543
+ className: '!pr-0 !pl-1.5',
15544
+ children: (/*#__PURE__*/React__default.createElement("span", {
15545
+ className: "flex items-center"
15546
+ }, child.props.children.props.children, /*#__PURE__*/React__default.createElement(Icon, {
15547
+ name: "close",
15548
+ onClick: event => {
15549
+ event === null || event === void 0 ? void 0 : event.stopPropagation();
15550
+ event === null || event === void 0 ? void 0 : event.preventDefault();
15551
+ if (!disabled && !readOnly) {
15552
+ setValue(child.props.value);
15553
+ }
15554
+ },
15555
+ className: "ml-0.5 !h-5 !w-5 shrink-0 cursor-pointer rounded-r p-0.5 hover:bg-black/5"
15556
+ })))
15557
+ })))));
15368
15558
  } else {
15369
15559
  content = /*#__PURE__*/React__default.createElement(MultipleValue, {
15370
15560
  onClick: forwardClick,
@@ -15395,6 +15585,18 @@ const MultipleValue = ({
15395
15585
  } = useSelect2Context();
15396
15586
  const [contentRef, setContentRef] = React__default.useState(null);
15397
15587
  const boundaryIndex = contentRef ? getIndexOfFirstChildOverflowingParent(contentRef, 30) : undefined;
15588
+ // Retrieves the relevant text content from any JSX.Element passed as a select option, handling nested elements, arrays, and direct text
15589
+ const getTooltipTitle = child => {
15590
+ const children = child.props.children;
15591
+ if (typeof children === 'string') return children;
15592
+ if (typeof children.props.children === 'string') {
15593
+ return children.props.children;
15594
+ }
15595
+ if (Array.isArray(children.props.children)) {
15596
+ return children.props.children.filter(item => typeof item === 'string');
15597
+ }
15598
+ return '';
15599
+ };
15398
15600
  return /*#__PURE__*/React__default.createElement("div", {
15399
15601
  className: "relative flex w-full items-center gap-1 overflow-hidden",
15400
15602
  onClick: onClick
@@ -15405,26 +15607,35 @@ const MultipleValue = ({
15405
15607
  disabled: disabled,
15406
15608
  readOnly: readOnly
15407
15609
  }, placeholder)) : valuesAsChildren.map((child, index) => {
15408
- const tag = /*#__PURE__*/React__default.createElement(Tag$1, {
15409
- key: String(child.props.value),
15610
+ const classNames = {
15611
+ truncate: index === boundaryIndex,
15612
+ hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false
15613
+ };
15614
+ let output;
15615
+ if (typeof child.props.children === 'string') {
15616
+ output = /*#__PURE__*/React__default.createElement(Tag$1, {
15617
+ key: String(child.props.value),
15618
+ className: cn('cursor-pointer', classNames),
15619
+ color: tags ? child.props.color : undefined,
15620
+ disabled: disabled,
15621
+ icon: child.props.prefix,
15622
+ readOnly: readOnly
15623
+ }, child.props.children);
15624
+ } else output = /*#__PURE__*/React__default.cloneElement(child.props.children, {
15410
15625
  className: cn('cursor-pointer', {
15411
- truncate: index === boundaryIndex,
15412
- hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false
15413
- }),
15414
- color: tags ? child.props.color : undefined,
15415
- disabled: disabled,
15416
- icon: child.props.prefix,
15417
- readOnly: readOnly
15418
- }, child.props.children);
15626
+ 'shrink-0': index !== boundaryIndex
15627
+ }, classNames),
15628
+ key: String(child.props.value)
15629
+ });
15419
15630
  if (index === boundaryIndex) {
15420
15631
  return /*#__PURE__*/React__default.createElement(Tooltip, {
15421
15632
  key: String(child.props.value),
15422
- title: String(child.props.children)
15423
- }, tag);
15633
+ title: String(getTooltipTitle(child))
15634
+ }, output);
15424
15635
  }
15425
- return tag;
15636
+ return output;
15426
15637
  })), boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (/*#__PURE__*/React__default.createElement(Tooltip, {
15427
- title: valuesAsChildren.slice(boundaryIndex + 1).map(child => child ? String(child.props.children) : '').join(', ')
15638
+ title: valuesAsChildren.slice(boundaryIndex + 1).map(child => child ? String(getTooltipTitle(child)) : '').join(', ')
15428
15639
  }, /*#__PURE__*/React__default.createElement(Badge, {
15429
15640
  className: "flex-shrink-0"
15430
15641
  }, "+", valuesAsChildren.length - (boundaryIndex + 1)))) : null);
@@ -15489,7 +15700,7 @@ const BubbleSelect = props => {
15489
15700
  if (prevValue !== value && setValue) {
15490
15701
  if (Array.isArray(value)) {
15491
15702
  value.forEach(v => {
15492
- const option = select.querySelector(`option[value='${v}']`);
15703
+ const option = select.querySelector(`option[value='${CSS.escape(v)}']`);
15493
15704
  if (option) {
15494
15705
  option.selected = true;
15495
15706
  }
@@ -16299,10 +16510,11 @@ function guessComparatorsBasedOnControl(column) {
16299
16510
  return getDataTypeProperties(columnMeta.dataType).filterComparators;
16300
16511
  }
16301
16512
 
16513
+ const FilterContext = /*#__PURE__*/React__default.createContext([]);
16514
+
16302
16515
  const FilterColumn = /*#__PURE__*/React__default.forwardRef((props, ref) => {
16303
16516
  const {
16304
16517
  allColumns,
16305
- filters,
16306
16518
  onChange: handleChange,
16307
16519
  value = null,
16308
16520
  ...attributes
@@ -16310,6 +16522,7 @@ const FilterColumn = /*#__PURE__*/React__default.forwardRef((props, ref) => {
16310
16522
  const {
16311
16523
  texts
16312
16524
  } = useLocalization();
16525
+ const filters = React__default.useContext(FilterContext);
16313
16526
  const selectedColumn = allColumns.find(column => column.id === value);
16314
16527
  const warning = selectedColumn && !selectedColumn.getIsVisible();
16315
16528
  return /*#__PURE__*/React__default.createElement("div", {
@@ -16475,6 +16688,7 @@ function Control(props) {
16475
16688
  } = props;
16476
16689
  const controlRenderer = column === null || column === void 0 ? void 0 : (_column$columnDef$met2 = column.columnDef.meta) === null || _column$columnDef$met2 === void 0 ? void 0 : _column$columnDef$met2.control;
16477
16690
  const dataType = column === null || column === void 0 ? void 0 : (_column$columnDef$met3 = column.columnDef.meta) === null || _column$columnDef$met3 === void 0 ? void 0 : _column$columnDef$met3.dataType;
16691
+ const filters = React__default.useContext(FilterContext);
16478
16692
  const ref = React__default.useRef(null);
16479
16693
  React.useEffect(() => {
16480
16694
  // Set value to false only after first render of the control (when it's undefined) after setting the FilterColumn value, because we don't want to change then the value every time filter is opened
@@ -16488,7 +16702,7 @@ function Control(props) {
16488
16702
  setValue: value => onChange(value),
16489
16703
  value,
16490
16704
  ref
16491
- }), {
16705
+ }, undefined, filters), {
16492
16706
  ['data-query-selector']: querySelector,
16493
16707
  className: 'focus:yt-focus'
16494
16708
  });
@@ -16530,7 +16744,6 @@ function Filter$1(props) {
16530
16744
  const {
16531
16745
  allColumns,
16532
16746
  filter,
16533
- filters,
16534
16747
  onChange: handleChange,
16535
16748
  onRemove,
16536
16749
  position
@@ -16605,7 +16818,6 @@ function Filter$1(props) {
16605
16818
  className: "flex min-h-[theme(spacing.8)] w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
16606
16819
  }, position > 0 ? texts.table.filters.conditions.and : texts.table.filters.conditions.where), /*#__PURE__*/React__default.createElement(FilterColumn, {
16607
16820
  allColumns: allColumns,
16608
- filters: filters,
16609
16821
  onChange: handleChangeColumn,
16610
16822
  value: id,
16611
16823
  ref: ref
@@ -16709,7 +16921,9 @@ function ManageFiltersPopover(props) {
16709
16921
  };
16710
16922
  return /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps, {
16711
16923
  onChange: handleClose
16712
- }), /*#__PURE__*/React__default.createElement(Popover.Content, null, /*#__PURE__*/React__default.createElement("div", {
16924
+ }), /*#__PURE__*/React__default.createElement(Popover.Content, null, /*#__PURE__*/React__default.createElement(FilterContext.Provider, {
16925
+ value: filters
16926
+ }, /*#__PURE__*/React__default.createElement("div", {
16713
16927
  className: "flex w-[40rem] flex-col gap-4"
16714
16928
  }, /*#__PURE__*/React__default.createElement("div", {
16715
16929
  className: "flex h-8"
@@ -16725,7 +16939,6 @@ function ManageFiltersPopover(props) {
16725
16939
  key: `filter_${index}`,
16726
16940
  allColumns: allColumns,
16727
16941
  filter: filter,
16728
- filters: filters,
16729
16942
  position: index,
16730
16943
  onChange: handleChangeFilter,
16731
16944
  onRemove: filters.length > 0 && filters.some(f => f.id) || filters.length > 1 ? handleRemoveFilter : undefined
@@ -16741,7 +16954,7 @@ function ManageFiltersPopover(props) {
16741
16954
  }, texts.table.filters.buttons.clear), /*#__PURE__*/React__default.createElement(Button$1, {
16742
16955
  appearance: "primary",
16743
16956
  onClick: handleApply
16744
- }, texts.table.filters.buttons.apply)))));
16957
+ }, texts.table.filters.buttons.apply))))));
16745
16958
  }
16746
16959
 
16747
16960
  function Filters(props) {
@@ -16861,6 +17074,7 @@ function TableGrid(props) {
16861
17074
  var _table$state$grouping;
16862
17075
  const {
16863
17076
  enableHorizontalArrowKeyNavigation,
17077
+ footerRows,
16864
17078
  table,
16865
17079
  ...attributes
16866
17080
  } = props;
@@ -16907,7 +17121,7 @@ function TableGrid(props) {
16907
17121
  } : table.renderer.style
16908
17122
  }, table.renderer.rows, props.children), table.meta.footer.isEnabled ? /*#__PURE__*/React__default.createElement(Foot, {
16909
17123
  table: table.instance
16910
- }) : null)))));
17124
+ }, footerRows) : null)))));
16911
17125
  }
16912
17126
 
16913
17127
  function Column$1(_) {
@@ -18500,20 +18714,25 @@ const shortcut = {
18500
18714
  meta: true,
18501
18715
  shift: false
18502
18716
  };
18717
+ function isTableScrolled(ref) {
18718
+ if (ref.current) {
18719
+ var _ref$current, _ref$current$querySel, _ref$current2, _ref$current2$querySe;
18720
+ const height = parseFloat(((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : (_ref$current$querySel = _ref$current.querySelector('tbody')) === null || _ref$current$querySel === void 0 ? void 0 : _ref$current$querySel.style.height) || '0') + parseFloat(((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : (_ref$current2$querySe = _ref$current2.querySelector('tbody')) === null || _ref$current2$querySe === void 0 ? void 0 : _ref$current2$querySe.style.paddingBottom) || '0');
18721
+ return height > ref.current.scrollHeight;
18722
+ }
18723
+ return false;
18724
+ }
18503
18725
 
18504
18726
  function useTableEditingListener(table, tableRef, scrollToIndex) {
18505
18727
  const tableMeta = table.options.meta;
18506
18728
  const localization = useLocalization();
18507
- // save when the row changes
18508
- // store the last row active index, otherwise everytime tableMeta.editing.saveChanges changes the hook runs again
18509
- const lastRowActiveIndexRef = React__default.useRef(tableMeta.rowActive.rowActiveIndex);
18510
18729
  useLazyEffect(() => {
18511
- if (tableMeta.rowActive.rowActiveIndex !== lastRowActiveIndexRef.current) {
18512
- lastRowActiveIndexRef.current = tableMeta.rowActive.rowActiveIndex;
18513
- if (tableMeta.editing.isEditing && lastRowActiveIndexRef.current !== undefined) {
18514
- tableMeta.editing.saveChanges(table);
18730
+ return () => {
18731
+ if (tableMeta.editing.isEditing && tableMeta.rowActive.rowActiveIndex !== undefined) {
18732
+ var _table$getRowModel$ro;
18733
+ tableMeta.editing.saveChanges(table, (_table$getRowModel$ro = table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]) === null || _table$getRowModel$ro === void 0 ? void 0 : _table$getRowModel$ro.id);
18515
18734
  }
18516
- }
18735
+ };
18517
18736
  }, [tableMeta.rowActive.rowActiveIndex]);
18518
18737
  // show a warning if the user navigates away without triggering save, such as using the browser back/forward button
18519
18738
  const hasChanges = tableMeta.editing.hasChanges();
@@ -18728,6 +18947,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
18728
18947
  const _temp9 = _forOf(Object.keys(changes), function (rowId) {
18729
18948
  const status = getRowStatus(rowId);
18730
18949
  return _catch(function () {
18950
+ var _changes$rowId;
18731
18951
  function _temp8(_result) {
18732
18952
  return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
18733
18953
  // cleanup changes, we don't need them after saving
@@ -18739,14 +18959,15 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
18739
18959
  }, DELAY_BEFORE_REMOVING_SAVE_STATUS);
18740
18960
  });
18741
18961
  }
18962
+ const rowChanges = (_changes$rowId = changes[rowId]) !== null && _changes$rowId !== void 0 ? _changes$rowId : {};
18742
18963
  // don't try to save if - already saving, or there are known errors
18743
- if (status === 'saving' || status === 'errored') {
18964
+ if (!Object.keys(rowChanges).length || status === 'saving' || status === 'errored') {
18744
18965
  return;
18745
18966
  }
18746
18967
  setRowStatus(rowId, 'saving');
18747
18968
  const changeSet = {
18748
18969
  ...state.changes.originals[rowId],
18749
- ...changes[rowId]
18970
+ ...rowChanges
18750
18971
  };
18751
18972
  // if we had to create a temporary id, delete it first - it's our data, not theirs
18752
18973
  if (isTemporaryRow(changeSet[rowIdentityAccessor])) {
@@ -18809,7 +19030,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
18809
19030
  return Promise.reject(e);
18810
19031
  }
18811
19032
  };
18812
- const onCellChanged = function (cell, rowIndex, shouldRunUpdaters = true) {
19033
+ const onCellChanged = function (cell, rowIndex, nextValue, shouldRunUpdaters = true) {
18813
19034
  try {
18814
19035
  function _temp6() {
18815
19036
  var _state$changes$errors11;
@@ -18851,7 +19072,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
18851
19072
  }
18852
19073
  // create a projection of the next state, so we can act against it
18853
19074
  const nextChanges = {
18854
- ...state.changes.rows[cell.row.id],
19075
+ ...changes,
18855
19076
  ...updatesForOtherCells
18856
19077
  };
18857
19078
  const nextMoveReasons = {
@@ -18860,10 +19081,11 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
18860
19081
  const nextCellErrors = {
18861
19082
  ...((_state$changes$errors11 = state.changes.errors[cell.row.id]) === null || _state$changes$errors11 === void 0 ? void 0 : _state$changes$errors11.cells)
18862
19083
  };
18863
- // run validation
19084
+ // run validation - if there are changes, and if there is an original stored
18864
19085
  let validationErrors = {};
18865
19086
  const _temp3 = function () {
18866
- if (validator) {
19087
+ if (validator && Object.keys(nextChanges).length && state.changes.originals[cell.row.id]) {
19088
+ // merge with the original so we get a full row
18867
19089
  const nextRowValue = {
18868
19090
  ...state.changes.originals[cell.row.id],
18869
19091
  ...changes,
@@ -18876,8 +19098,13 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
18876
19098
  }();
18877
19099
  return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
18878
19100
  }
18879
- const changes = state.changes.rows[cell.row.id];
18880
- if (!changes) {
19101
+ const changes = nextValue !== undefined ? {
19102
+ ...state.changes.rows[cell.row.id],
19103
+ [cell.column.id]: nextValue
19104
+ } : {
19105
+ ...state.changes.rows[cell.row.id]
19106
+ };
19107
+ if (!Object.keys(changes).length) {
18881
19108
  return Promise.resolve();
18882
19109
  }
18883
19110
  let updatesForOtherCells = {};
@@ -19089,30 +19316,44 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
19089
19316
  function useTableEditing(isEnabled = false, handleSave, handleChange, handleCreate, rowIdentityAccessor, validator) {
19090
19317
  const createRow = function (table, scrollToIndex, row) {
19091
19318
  try {
19092
- if (!handleCreate) {
19093
- return Promise.resolve();
19094
- }
19095
- const tableMeta = table.options.meta;
19096
- return Promise.resolve(tableMeta.editing.saveChanges(table)).then(function (saved) {
19097
- if (!saved) {
19098
- return;
19099
- }
19319
+ let _exit = false;
19320
+ function _temp2(_result) {
19321
+ if (_exit) return _result;
19100
19322
  const changeset = row !== null && row !== void 0 ? row : handleCreate();
19101
19323
  try {
19102
19324
  if (changeset) {
19103
- const rowId = pendingChangesFns.insertTemporaryRow(changeset);
19104
- table.getRow(rowId).pin('bottom');
19325
+ const newRowId = pendingChangesFns.insertTemporaryRow(changeset);
19326
+ // reset before changing row otherwise the cell changes and validation might run
19327
+ setLastFocusedCellIndex(undefined);
19105
19328
  // set the active row to the new row before toggling editing on
19106
19329
  const temporaryRows = tableMeta.editing.temporaryRows;
19107
19330
  const nextRowIndex = temporaryRows.length ? tableMeta.length + 1 : tableMeta.length;
19108
19331
  tableMeta.rowActive.setRowActiveIndex(nextRowIndex);
19109
- toggleEditing(true, table, scrollToIndex);
19110
- setLastFocusedCellIndex(undefined);
19332
+ // wait until set states have run
19333
+ requestAnimationFrame(() => {
19334
+ toggleEditing(true, table, scrollToIndex, false);
19335
+ table.getRow(newRowId).pin('bottom');
19336
+ });
19111
19337
  }
19112
19338
  } catch (error) {
19113
19339
  console.error(error);
19114
19340
  }
19115
- });
19341
+ }
19342
+ if (!handleCreate) {
19343
+ return Promise.resolve();
19344
+ }
19345
+ const tableMeta = table.options.meta;
19346
+ const _temp = function () {
19347
+ if (tableMeta.rowActive.rowActiveIndex !== undefined) {
19348
+ var _table$getRowModel$ro2;
19349
+ return Promise.resolve(tableMeta.editing.saveChanges(table, (_table$getRowModel$ro2 = table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]) === null || _table$getRowModel$ro2 === void 0 ? void 0 : _table$getRowModel$ro2.id)).then(function (saved) {
19350
+ if (!saved) {
19351
+ _exit = true;
19352
+ }
19353
+ });
19354
+ }
19355
+ }();
19356
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
19116
19357
  } catch (e) {
19117
19358
  return Promise.reject(e);
19118
19359
  }
@@ -19126,24 +19367,26 @@ function useTableEditing(isEnabled = false, handleSave, handleChange, handleCrea
19126
19367
  // store the last focused cell, so that up/down arrow key navigation remains in the same column
19127
19368
  const [lastFocusedCellIndex, setLastFocusedCellIndex] = React__default.useState(undefined);
19128
19369
  const pendingChangesFns = usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator);
19129
- function toggleEditing(enabled, table, scrollToIndex) {
19130
- var _tableMeta$rowActive$, _table$getRowModel$ro;
19131
- if (!enabled) {
19132
- // save
19133
- pendingChangesFns.saveChanges(table);
19370
+ function toggleEditing(enabled, table, scrollToIndex, doSave = true) {
19371
+ const tableMeta = table.options.meta;
19372
+ if (enabled) {
19373
+ var _tableMeta$rowActive$, _table$getRowModel$ro;
19374
+ const index = (_tableMeta$rowActive$ = tableMeta.rowActive.rowActiveIndex) !== null && _tableMeta$rowActive$ !== void 0 ? _tableMeta$rowActive$ : 0;
19375
+ if (tableMeta.rowActive.rowActiveIndex === undefined) {
19376
+ tableMeta.rowActive.setRowActiveIndex(index);
19377
+ }
19378
+ if (!isTemporaryRow((_table$getRowModel$ro = table.getRowModel().rows[index]) === null || _table$getRowModel$ro === void 0 ? void 0 : _table$getRowModel$ro.id)) {
19379
+ scrollToIndex(index);
19380
+ }
19381
+ } else if (!enabled) {
19134
19382
  // reset detailed mode
19135
19383
  toggleDetailedMode(false);
19136
19384
  // reset the last index back to the first focusable element, when editing gets turned off
19137
19385
  setLastFocusedCellIndex(undefined);
19138
19386
  }
19139
- const tableMeta = table.options.meta;
19140
- const index = (_tableMeta$rowActive$ = tableMeta.rowActive.rowActiveIndex) !== null && _tableMeta$rowActive$ !== void 0 ? _tableMeta$rowActive$ : 0;
19141
- if (tableMeta.rowActive.rowActiveIndex === undefined) {
19142
- tableMeta.rowActive.setRowActiveIndex(index);
19143
- }
19144
19387
  setEditing(enabled);
19145
- if (!isTemporaryRow((_table$getRowModel$ro = table.getRowModel().rows[index]) === null || _table$getRowModel$ro === void 0 ? void 0 : _table$getRowModel$ro.id)) {
19146
- scrollToIndex(index);
19388
+ if (doSave) {
19389
+ pendingChangesFns.saveChanges(table);
19147
19390
  }
19148
19391
  }
19149
19392
  return {
@@ -19415,20 +19658,26 @@ function EditingControlCell(props) {
19415
19658
  if (nextValue !== value) {
19416
19659
  tableMeta.editing.setCellValue(cell, nextValue);
19417
19660
  if (hasNonTextControl) {
19418
- tableMeta.editing.onCellChanged(cell, rowIndex);
19661
+ requestAnimationFrame(() => tableMeta.editing.onCellChanged(cell, rowIndex, nextValue));
19419
19662
  }
19420
19663
  }
19421
19664
  };
19422
- const handleBlur = () => {
19665
+ function blur() {
19423
19666
  tableMeta.editing.toggleDetailedMode(false);
19424
- tableMeta.editing.onCellChanged(cell, rowIndex, !hasNonTextControl);
19667
+ tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl);
19668
+ }
19669
+ const handleBlur = event => {
19670
+ if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {
19671
+ return;
19672
+ }
19673
+ blur();
19425
19674
  };
19426
19675
  // ensure that blur runs when the cell gets unmounted (when vertically arrow key navigating)
19427
19676
  React__default.useEffect(() => {
19428
19677
  const ref = cellRef.current;
19429
19678
  return () => {
19430
19679
  if (document.activeElement === ref || isElementInsideOrTriggeredFromContainer(document.activeElement, ref)) {
19431
- handleBlur();
19680
+ blur();
19432
19681
  }
19433
19682
  };
19434
19683
  }, []);
@@ -19852,14 +20101,13 @@ function useTable3(props, ref) {
19852
20101
  hasChanges: editing.hasChanges(rowId),
19853
20102
  hasErrors: editing.hasRowErrors(rowId),
19854
20103
  onDiscard: () => {
20104
+ editing.discardChanges(rowId, table);
19855
20105
  if (editing.temporaryRows.length) {
19856
- tableMeta.rowActive.setRowActiveIndex(undefined);
19857
- setTimeout(() => {
20106
+ requestAnimationFrame(() => {
19858
20107
  var _editing$createRowBut;
19859
20108
  return (_editing$createRowBut = editing.createRowButtonRef.current) === null || _editing$createRowBut === void 0 ? void 0 : _editing$createRowBut.focus();
19860
- }, 50);
20109
+ });
19861
20110
  }
19862
- editing.discardChanges(rowId, table);
19863
20111
  },
19864
20112
  onEditingSave: function () {
19865
20113
  try {
@@ -19925,7 +20173,9 @@ function Alert$1(props) {
19925
20173
  // generate links to each invalid row, to go into the error message
19926
20174
  const links = [];
19927
20175
  const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);
19928
- const rowIdentityColumn = tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor)) ? table.getColumn(String(tableMeta.rowIdentityAccessor)) : undefined;
20176
+ const rowIdentityColumn = tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor)) ?
20177
+ // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505
20178
+ table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor)) : undefined;
19929
20179
  pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {
19930
20180
  // if appropriate, concatenate the item with the text "and"
19931
20181
  if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {
@@ -20047,10 +20297,10 @@ function CreateNewRow(props) {
20047
20297
  var _temporaryRows$0$tabl, _temporaryRows$, _table$getState$colum;
20048
20298
  const {
20049
20299
  buttonRef,
20300
+ isScrolled,
20050
20301
  scrollToIndex,
20051
20302
  table,
20052
- tableMeta,
20053
- tableRef
20303
+ tableMeta
20054
20304
  } = props;
20055
20305
  const {
20056
20306
  texts
@@ -20083,11 +20333,9 @@ function CreateNewRow(props) {
20083
20333
  keys: shortcut
20084
20334
  });
20085
20335
  }
20086
- const isScrolled = tableRef.current ? tableRef.current.scrollHeight > tableRef.current.clientHeight : false;
20087
20336
  const className = cn('group/row border-grey-300 !sticky z-[21]', {
20088
20337
  'bottom-10': tableMeta.footer.isEnabled,
20089
20338
  'bottom-0': !tableMeta.footer.isEnabled,
20090
- 'border-t-2': isScrolled,
20091
20339
  'border-b': !isScrolled
20092
20340
  });
20093
20341
  return /*#__PURE__*/React__default.createElement("tr", {
@@ -20112,6 +20360,7 @@ function CreateNewRow(props) {
20112
20360
  function TemporaryRow(props) {
20113
20361
  const {
20114
20362
  createRowButtonRef,
20363
+ isScrolled,
20115
20364
  table,
20116
20365
  tableMeta,
20117
20366
  tableRef
@@ -20174,10 +20423,9 @@ function TemporaryRow(props) {
20174
20423
  }
20175
20424
  }
20176
20425
  };
20177
- const isScrolled = tableRef.current ? tableRef.current.scrollHeight > tableRef.current.clientHeight : false;
20178
20426
  const className = cn('group/row border-grey-300 !sticky z-[22]', {
20179
- 'bottom-[calc(5rem_+_3px)] data-[row-editing-move]:bottom-[calc(5rem_+_2px)]': tableMeta.footer.isEnabled,
20180
- 'bottom-[calc(2.5rem_+_3px)] data-[row-editing-move]:bottom-[calc(2.5rem_+_2px)]': !tableMeta.footer.isEnabled,
20427
+ 'bottom-[calc(5rem_+_2px)] data-[row-editing-move]:bottom-[calc(5rem_+_2px)]': tableMeta.footer.isEnabled,
20428
+ 'bottom-[calc(2.5rem_+_2px)] data-[row-editing-move]:bottom-[calc(2.5rem_+_2px)]': !tableMeta.footer.isEnabled,
20181
20429
  'border-t-2 shadow-[0px_-5px_20px_0px_rgba(0,0,0,0.1)] [&>td]:!border-b-0': isScrolled
20182
20430
  });
20183
20431
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, table.getBottomRows().map(row => (/*#__PURE__*/React__default.createElement(Row, {
@@ -20213,6 +20461,17 @@ const BaseTable3 = /*#__PURE__*/fixedForwardRef(function BaseTable3(props, ref)
20213
20461
  };
20214
20462
  const hasAlertErrors = table3.meta.editing.getErrorsShownInAlert().length;
20215
20463
  const hasCreateWorkflow = table3.meta.editing.isEnabled && props.onEditingCreate;
20464
+ const isScrolled = isTableScrolled(table3.ref);
20465
+ let createWorkflow;
20466
+ if (hasCreateWorkflow) {
20467
+ createWorkflow = /*#__PURE__*/React__default.createElement(CreateNewRow, {
20468
+ buttonRef: table3.meta.editing.createRowButtonRef,
20469
+ isScrolled: isScrolled,
20470
+ scrollToIndex: table3.renderer.scrollToIndex,
20471
+ table: table3.instance,
20472
+ tableMeta: table3.meta
20473
+ });
20474
+ }
20216
20475
  return /*#__PURE__*/React__default.createElement(Table, null, /*#__PURE__*/React__default.createElement(Table.Toolbar, {
20217
20476
  table: table3
20218
20477
  }, table3.meta.editing.isEnabled ? (/*#__PURE__*/React__default.createElement(Editing, {
@@ -20225,19 +20484,15 @@ const BaseTable3 = /*#__PURE__*/fixedForwardRef(function BaseTable3(props, ref)
20225
20484
  tableRef: table3.ref
20226
20485
  })) : null, /*#__PURE__*/React__default.createElement(Table.Grid, Object.assign({}, gridAttributes, {
20227
20486
  "data-taco": "table3",
20487
+ footerRows: hasCreateWorkflow && isScrolled ? createWorkflow : undefined,
20228
20488
  table: table3
20229
20489
  }), hasCreateWorkflow ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TemporaryRow, {
20230
20490
  createRowButtonRef: table3.meta.editing.createRowButtonRef,
20491
+ isScrolled: isScrolled,
20231
20492
  table: table3.instance,
20232
20493
  tableMeta: table3.meta,
20233
20494
  tableRef: table3.ref
20234
- }), /*#__PURE__*/React__default.createElement(CreateNewRow, {
20235
- buttonRef: table3.meta.editing.createRowButtonRef,
20236
- scrollToIndex: table3.renderer.scrollToIndex,
20237
- table: table3.instance,
20238
- tableMeta: table3.meta,
20239
- tableRef: table3.ref
20240
- }))) : null));
20495
+ }), !isScrolled ? createWorkflow : null)) : null));
20241
20496
  });
20242
20497
  const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
20243
20498
  const stringifiedChildren = String(props.children);