@coveord/plasma-mantine 53.1.4 → 54.0.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 (394) hide show
  1. package/.eslintrc.js +1 -5
  2. package/.turbo/turbo-build.log +3 -3
  3. package/.turbo/turbo-test.log +42 -37
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/cjs/components/button/Button.d.ts +1 -2
  6. package/dist/cjs/components/button/Button.d.ts.map +1 -1
  7. package/dist/cjs/components/button/Button.js.map +1 -1
  8. package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
  9. package/dist/cjs/components/code-editor/CodeEditor.js +2 -4
  10. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  11. package/dist/cjs/components/collection/Collection.d.ts.map +1 -1
  12. package/dist/cjs/components/collection/CollectionContext.d.ts +1 -1
  13. package/dist/cjs/components/collection/CollectionContext.d.ts.map +1 -1
  14. package/dist/cjs/components/collection/enhanceWithCollectionProps.d.ts +1 -6
  15. package/dist/cjs/components/collection/enhanceWithCollectionProps.d.ts.map +1 -1
  16. package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
  17. package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
  18. package/dist/cjs/components/header/Header.context.d.ts +1 -1
  19. package/dist/cjs/components/header/Header.context.d.ts.map +1 -1
  20. package/dist/cjs/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +10 -15
  21. package/dist/cjs/components/inline-confirm/InlineConfirm.d.ts +10 -2
  22. package/dist/cjs/components/inline-confirm/InlineConfirm.d.ts.map +1 -1
  23. package/dist/cjs/components/inline-confirm/InlineConfirm.js +2 -1
  24. package/dist/cjs/components/inline-confirm/InlineConfirm.js.map +1 -1
  25. package/dist/cjs/components/inline-confirm/InlineConfirmContext.d.ts +1 -1
  26. package/dist/cjs/components/inline-confirm/InlineConfirmContext.d.ts.map +1 -1
  27. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.d.ts +2 -5
  28. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.d.ts.map +1 -1
  29. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js +5 -5
  30. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  31. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts +2 -2
  32. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
  33. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.js +3 -3
  34. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.js.map +1 -1
  35. package/dist/cjs/components/menu/Menu.d.ts +1 -1
  36. package/dist/cjs/components/table/Table.d.ts +68 -55
  37. package/dist/cjs/components/table/Table.d.ts.map +1 -1
  38. package/dist/cjs/components/table/Table.js +129 -174
  39. package/dist/cjs/components/table/Table.js.map +1 -1
  40. package/dist/cjs/components/table/Table.module.css +8 -1
  41. package/dist/cjs/components/table/Table.types.d.ts +52 -147
  42. package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
  43. package/dist/cjs/components/table/TableContext.d.ts +15 -10
  44. package/dist/cjs/components/table/TableContext.d.ts.map +1 -1
  45. package/dist/cjs/components/table/TableContext.js +5 -20
  46. package/dist/cjs/components/table/TableContext.js.map +1 -1
  47. package/dist/cjs/components/table/index.d.ts +3 -3
  48. package/dist/cjs/components/table/index.d.ts.map +1 -1
  49. package/dist/cjs/components/table/index.js +5 -1
  50. package/dist/cjs/components/table/index.js.map +1 -1
  51. package/dist/cjs/components/table/layouts/TableLayoutControl.js +6 -6
  52. package/dist/cjs/components/table/layouts/TableLayoutControl.js.map +1 -1
  53. package/dist/cjs/components/table/layouts/TableLayouts.d.ts +1 -22
  54. package/dist/cjs/components/table/layouts/TableLayouts.d.ts.map +1 -1
  55. package/dist/cjs/components/table/layouts/TableLayouts.js.map +1 -1
  56. package/dist/cjs/components/table/layouts/row-layout/RowLayout.d.ts +1 -2
  57. package/dist/cjs/components/table/layouts/row-layout/RowLayout.d.ts.map +1 -1
  58. package/dist/cjs/components/table/layouts/row-layout/RowLayout.js.map +1 -1
  59. package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.d.ts +2 -3
  60. package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.d.ts.map +1 -1
  61. package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.js +17 -18
  62. package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.js.map +1 -1
  63. package/dist/cjs/components/table/layouts/row-layout/RowLayoutContext.d.ts +1 -1
  64. package/dist/cjs/components/table/layouts/row-layout/RowLayoutContext.d.ts.map +1 -1
  65. package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.d.ts +2 -3
  66. package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.d.ts.map +1 -1
  67. package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.js +9 -8
  68. package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.js.map +1 -1
  69. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.d.ts +1 -5
  70. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.d.ts.map +1 -1
  71. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.js +3 -9
  72. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.js.map +1 -1
  73. package/dist/cjs/components/table/table-actions/TableActionContext.d.ts +9 -0
  74. package/dist/cjs/components/table/table-actions/TableActionContext.d.ts.map +1 -0
  75. package/dist/cjs/components/table/table-actions/TableActionContext.js +24 -0
  76. package/dist/cjs/components/table/table-actions/TableActionContext.js.map +1 -0
  77. package/dist/cjs/components/table/table-actions/TableActionItem.d.ts +44 -0
  78. package/dist/cjs/components/table/table-actions/TableActionItem.d.ts.map +1 -0
  79. package/dist/cjs/components/table/table-actions/TableActionItem.js +59 -0
  80. package/dist/cjs/components/table/table-actions/TableActionItem.js.map +1 -0
  81. package/dist/cjs/components/table/table-actions/TableActionsList.d.ts +37 -0
  82. package/dist/cjs/components/table/table-actions/TableActionsList.d.ts.map +1 -0
  83. package/dist/cjs/components/table/table-actions/TableActionsList.js +217 -0
  84. package/dist/cjs/components/table/table-actions/TableActionsList.js.map +1 -0
  85. package/dist/cjs/components/table/table-actions/TableHeaderActions.d.ts +11 -0
  86. package/dist/cjs/components/table/table-actions/TableHeaderActions.d.ts.map +1 -0
  87. package/dist/cjs/components/table/table-actions/TableHeaderActions.js +59 -0
  88. package/dist/cjs/components/table/table-actions/TableHeaderActions.js.map +1 -0
  89. package/dist/cjs/components/table/table-actions/index.d.ts +3 -0
  90. package/dist/cjs/components/table/table-actions/index.d.ts.map +1 -0
  91. package/dist/cjs/components/table/table-actions/index.js +9 -0
  92. package/dist/cjs/components/table/table-actions/index.js.map +1 -0
  93. package/dist/cjs/components/table/table-column/TableActionsColumn.d.ts +6 -0
  94. package/dist/cjs/components/table/table-column/TableActionsColumn.d.ts.map +1 -0
  95. package/dist/cjs/components/table/table-column/TableActionsColumn.js +53 -0
  96. package/dist/cjs/components/table/table-column/TableActionsColumn.js.map +1 -0
  97. package/dist/cjs/components/table/table-column/TableCollapsibleColumn.d.ts.map +1 -1
  98. package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js +6 -2
  99. package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
  100. package/dist/cjs/components/table/table-column/TableSelectableColumn.d.ts.map +1 -1
  101. package/dist/cjs/components/table/table-column/TableSelectableColumn.js +4 -0
  102. package/dist/cjs/components/table/table-column/TableSelectableColumn.js.map +1 -1
  103. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts +7 -12
  104. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
  105. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js +24 -20
  106. package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -1
  107. package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.d.ts +1 -2
  108. package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.d.ts.map +1 -1
  109. package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.js +7 -7
  110. package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
  111. package/dist/cjs/components/table/table-filter/TableFilter.d.ts +1 -2
  112. package/dist/cjs/components/table/table-filter/TableFilter.d.ts.map +1 -1
  113. package/dist/cjs/components/table/table-filter/TableFilter.js +11 -16
  114. package/dist/cjs/components/table/table-filter/TableFilter.js.map +1 -1
  115. package/dist/cjs/components/table/table-header/TableHeader.d.ts +7 -2
  116. package/dist/cjs/components/table/table-header/TableHeader.d.ts.map +1 -1
  117. package/dist/cjs/components/table/table-header/TableHeader.js +15 -12
  118. package/dist/cjs/components/table/table-header/TableHeader.js.map +1 -1
  119. package/dist/cjs/components/table/table-header/Th.d.ts +1 -2
  120. package/dist/cjs/components/table/table-header/Th.d.ts.map +1 -1
  121. package/dist/cjs/components/table/table-header/Th.js +7 -3
  122. package/dist/cjs/components/table/table-header/Th.js.map +1 -1
  123. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.d.ts +1 -3
  124. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.d.ts.map +1 -1
  125. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.js +6 -9
  126. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
  127. package/dist/cjs/components/table/table-no-data/TableNoData.d.ts +6 -0
  128. package/dist/cjs/components/table/table-no-data/TableNoData.d.ts.map +1 -0
  129. package/dist/cjs/components/table/{table-consumer/TableConsumer.js → table-no-data/TableNoData.js} +4 -4
  130. package/dist/cjs/components/table/table-no-data/TableNoData.js.map +1 -0
  131. package/dist/cjs/components/table/table-pagination/TablePagination.d.ts.map +1 -1
  132. package/dist/cjs/components/table/table-pagination/TablePagination.js +9 -11
  133. package/dist/cjs/components/table/table-pagination/TablePagination.js.map +1 -1
  134. package/dist/cjs/components/table/table-pagination/TablePagination.types.d.ts +0 -4
  135. package/dist/cjs/components/table/table-pagination/TablePagination.types.d.ts.map +1 -1
  136. package/dist/cjs/components/table/table-per-page/TablePerPage.d.ts.map +1 -1
  137. package/dist/cjs/components/table/table-per-page/TablePerPage.js +16 -16
  138. package/dist/cjs/components/table/table-per-page/TablePerPage.js.map +1 -1
  139. package/dist/cjs/components/table/table-predicate/TablePredicate.d.ts +1 -2
  140. package/dist/cjs/components/table/table-predicate/TablePredicate.d.ts.map +1 -1
  141. package/dist/cjs/components/table/table-predicate/TablePredicate.js +12 -14
  142. package/dist/cjs/components/table/table-predicate/TablePredicate.js.map +1 -1
  143. package/dist/cjs/components/table/use-table.d.ts +182 -0
  144. package/dist/cjs/components/table/use-table.d.ts.map +1 -0
  145. package/dist/cjs/components/table/use-table.js +145 -0
  146. package/dist/cjs/components/table/use-table.js.map +1 -0
  147. package/dist/cjs/hooks/useControlledList.d.ts.map +1 -1
  148. package/dist/cjs/index.d.ts +11 -1
  149. package/dist/cjs/index.d.ts.map +1 -1
  150. package/dist/cjs/index.js.map +1 -1
  151. package/dist/cjs/theme/Theme.d.ts.map +1 -1
  152. package/dist/cjs/theme/Theme.js +0 -7
  153. package/dist/cjs/theme/Theme.js.map +1 -1
  154. package/dist/cjs/utils/createFactoryComponent.d.ts.map +1 -1
  155. package/dist/cjs/utils/overrideComponent.d.ts.map +1 -1
  156. package/dist/esm/components/button/Button.d.ts +1 -2
  157. package/dist/esm/components/button/Button.d.ts.map +1 -1
  158. package/dist/esm/components/button/Button.js.map +1 -1
  159. package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
  160. package/dist/esm/components/code-editor/CodeEditor.js +2 -4
  161. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  162. package/dist/esm/components/collection/Collection.d.ts.map +1 -1
  163. package/dist/esm/components/collection/CollectionContext.d.ts +1 -1
  164. package/dist/esm/components/collection/CollectionContext.d.ts.map +1 -1
  165. package/dist/esm/components/collection/enhanceWithCollectionProps.d.ts +1 -6
  166. package/dist/esm/components/collection/enhanceWithCollectionProps.d.ts.map +1 -1
  167. package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
  168. package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
  169. package/dist/esm/components/header/Header.context.d.ts +1 -1
  170. package/dist/esm/components/header/Header.context.d.ts.map +1 -1
  171. package/dist/esm/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +10 -15
  172. package/dist/esm/components/inline-confirm/InlineConfirm.d.ts +10 -2
  173. package/dist/esm/components/inline-confirm/InlineConfirm.d.ts.map +1 -1
  174. package/dist/esm/components/inline-confirm/InlineConfirm.js +1 -1
  175. package/dist/esm/components/inline-confirm/InlineConfirm.js.map +1 -1
  176. package/dist/esm/components/inline-confirm/InlineConfirmContext.d.ts +1 -1
  177. package/dist/esm/components/inline-confirm/InlineConfirmContext.d.ts.map +1 -1
  178. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.d.ts +2 -5
  179. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.d.ts.map +1 -1
  180. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js +4 -4
  181. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  182. package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts +2 -2
  183. package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
  184. package/dist/esm/components/inline-confirm/InlineConfirmTarget.js +2 -2
  185. package/dist/esm/components/inline-confirm/InlineConfirmTarget.js.map +1 -1
  186. package/dist/esm/components/menu/Menu.d.ts +1 -1
  187. package/dist/esm/components/table/Table.d.ts +68 -55
  188. package/dist/esm/components/table/Table.d.ts.map +1 -1
  189. package/dist/esm/components/table/Table.js +122 -157
  190. package/dist/esm/components/table/Table.js.map +1 -1
  191. package/dist/esm/components/table/Table.module.css +8 -1
  192. package/dist/esm/components/table/Table.types.d.ts +52 -147
  193. package/dist/esm/components/table/Table.types.d.ts.map +1 -1
  194. package/dist/esm/components/table/Table.types.js.map +1 -1
  195. package/dist/esm/components/table/TableContext.d.ts +15 -10
  196. package/dist/esm/components/table/TableContext.d.ts.map +1 -1
  197. package/dist/esm/components/table/TableContext.js +1 -10
  198. package/dist/esm/components/table/TableContext.js.map +1 -1
  199. package/dist/esm/components/table/index.d.ts +3 -3
  200. package/dist/esm/components/table/index.d.ts.map +1 -1
  201. package/dist/esm/components/table/index.js +2 -1
  202. package/dist/esm/components/table/index.js.map +1 -1
  203. package/dist/esm/components/table/layouts/TableLayoutControl.js +4 -4
  204. package/dist/esm/components/table/layouts/TableLayoutControl.js.map +1 -1
  205. package/dist/esm/components/table/layouts/TableLayouts.d.ts +1 -22
  206. package/dist/esm/components/table/layouts/TableLayouts.d.ts.map +1 -1
  207. package/dist/esm/components/table/layouts/TableLayouts.js.map +1 -1
  208. package/dist/esm/components/table/layouts/row-layout/RowLayout.d.ts +1 -2
  209. package/dist/esm/components/table/layouts/row-layout/RowLayout.d.ts.map +1 -1
  210. package/dist/esm/components/table/layouts/row-layout/RowLayout.js.map +1 -1
  211. package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.d.ts +2 -3
  212. package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.d.ts.map +1 -1
  213. package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.js +13 -11
  214. package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.js.map +1 -1
  215. package/dist/esm/components/table/layouts/row-layout/RowLayoutContext.d.ts +1 -1
  216. package/dist/esm/components/table/layouts/row-layout/RowLayoutContext.d.ts.map +1 -1
  217. package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.d.ts +2 -3
  218. package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.d.ts.map +1 -1
  219. package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.js +5 -5
  220. package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.js.map +1 -1
  221. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.d.ts +1 -5
  222. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.d.ts.map +1 -1
  223. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.js +2 -8
  224. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.js.map +1 -1
  225. package/dist/esm/components/table/table-actions/TableActionContext.d.ts +9 -0
  226. package/dist/esm/components/table/table-actions/TableActionContext.d.ts.map +1 -0
  227. package/dist/esm/components/table/table-actions/TableActionContext.js +4 -0
  228. package/dist/esm/components/table/table-actions/TableActionContext.js.map +1 -0
  229. package/dist/esm/components/table/table-actions/TableActionItem.d.ts +44 -0
  230. package/dist/esm/components/table/table-actions/TableActionItem.d.ts.map +1 -0
  231. package/dist/esm/components/table/table-actions/TableActionItem.js +40 -0
  232. package/dist/esm/components/table/table-actions/TableActionItem.js.map +1 -0
  233. package/dist/esm/components/table/table-actions/TableActionsList.d.ts +37 -0
  234. package/dist/esm/components/table/table-actions/TableActionsList.d.ts.map +1 -0
  235. package/dist/esm/components/table/table-actions/TableActionsList.js +187 -0
  236. package/dist/esm/components/table/table-actions/TableActionsList.js.map +1 -0
  237. package/dist/esm/components/table/table-actions/TableHeaderActions.d.ts +11 -0
  238. package/dist/esm/components/table/table-actions/TableHeaderActions.d.ts.map +1 -0
  239. package/dist/esm/components/table/table-actions/TableHeaderActions.js +43 -0
  240. package/dist/esm/components/table/table-actions/TableHeaderActions.js.map +1 -0
  241. package/dist/esm/components/table/table-actions/index.d.ts +3 -0
  242. package/dist/esm/components/table/table-actions/index.d.ts.map +1 -0
  243. package/dist/esm/components/table/table-actions/index.js +4 -0
  244. package/dist/esm/components/table/table-actions/index.js.map +1 -0
  245. package/dist/esm/components/table/table-column/TableActionsColumn.d.ts +6 -0
  246. package/dist/esm/components/table/table-column/TableActionsColumn.d.ts.map +1 -0
  247. package/dist/esm/components/table/table-column/TableActionsColumn.js +40 -0
  248. package/dist/esm/components/table/table-column/TableActionsColumn.js.map +1 -0
  249. package/dist/esm/components/table/table-column/TableCollapsibleColumn.d.ts.map +1 -1
  250. package/dist/esm/components/table/table-column/TableCollapsibleColumn.js +7 -3
  251. package/dist/esm/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
  252. package/dist/esm/components/table/table-column/TableSelectableColumn.d.ts.map +1 -1
  253. package/dist/esm/components/table/table-column/TableSelectableColumn.js +4 -0
  254. package/dist/esm/components/table/table-column/TableSelectableColumn.js.map +1 -1
  255. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts +7 -12
  256. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
  257. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js +22 -20
  258. package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -1
  259. package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.d.ts +1 -2
  260. package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.d.ts.map +1 -1
  261. package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.js +8 -8
  262. package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
  263. package/dist/esm/components/table/table-filter/TableFilter.d.ts +1 -2
  264. package/dist/esm/components/table/table-filter/TableFilter.d.ts.map +1 -1
  265. package/dist/esm/components/table/table-filter/TableFilter.js +14 -18
  266. package/dist/esm/components/table/table-filter/TableFilter.js.map +1 -1
  267. package/dist/esm/components/table/table-header/TableHeader.d.ts +7 -2
  268. package/dist/esm/components/table/table-header/TableHeader.d.ts.map +1 -1
  269. package/dist/esm/components/table/table-header/TableHeader.js +15 -13
  270. package/dist/esm/components/table/table-header/TableHeader.js.map +1 -1
  271. package/dist/esm/components/table/table-header/Th.d.ts +1 -2
  272. package/dist/esm/components/table/table-header/Th.d.ts.map +1 -1
  273. package/dist/esm/components/table/table-header/Th.js +8 -4
  274. package/dist/esm/components/table/table-header/Th.js.map +1 -1
  275. package/dist/esm/components/table/table-last-updated/TableLastUpdated.d.ts +1 -3
  276. package/dist/esm/components/table/table-last-updated/TableLastUpdated.d.ts.map +1 -1
  277. package/dist/esm/components/table/table-last-updated/TableLastUpdated.js +6 -8
  278. package/dist/esm/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
  279. package/dist/esm/components/table/table-no-data/TableNoData.d.ts +6 -0
  280. package/dist/esm/components/table/table-no-data/TableNoData.d.ts.map +1 -0
  281. package/dist/esm/components/table/table-no-data/TableNoData.js +6 -0
  282. package/dist/esm/components/table/table-no-data/TableNoData.js.map +1 -0
  283. package/dist/esm/components/table/table-pagination/TablePagination.d.ts.map +1 -1
  284. package/dist/esm/components/table/table-pagination/TablePagination.js +10 -13
  285. package/dist/esm/components/table/table-pagination/TablePagination.js.map +1 -1
  286. package/dist/esm/components/table/table-pagination/TablePagination.types.d.ts +0 -4
  287. package/dist/esm/components/table/table-pagination/TablePagination.types.d.ts.map +1 -1
  288. package/dist/esm/components/table/table-pagination/TablePagination.types.js.map +1 -1
  289. package/dist/esm/components/table/table-per-page/TablePerPage.d.ts.map +1 -1
  290. package/dist/esm/components/table/table-per-page/TablePerPage.js +13 -12
  291. package/dist/esm/components/table/table-per-page/TablePerPage.js.map +1 -1
  292. package/dist/esm/components/table/table-predicate/TablePredicate.d.ts +1 -2
  293. package/dist/esm/components/table/table-predicate/TablePredicate.d.ts.map +1 -1
  294. package/dist/esm/components/table/table-predicate/TablePredicate.js +14 -18
  295. package/dist/esm/components/table/table-predicate/TablePredicate.js.map +1 -1
  296. package/dist/esm/components/table/use-table.d.ts +182 -0
  297. package/dist/esm/components/table/use-table.d.ts.map +1 -0
  298. package/dist/esm/components/table/use-table.js +122 -0
  299. package/dist/esm/components/table/use-table.js.map +1 -0
  300. package/dist/esm/hooks/useControlledList.d.ts.map +1 -1
  301. package/dist/esm/index.d.ts +11 -1
  302. package/dist/esm/index.d.ts.map +1 -1
  303. package/dist/esm/index.js.map +1 -1
  304. package/dist/esm/theme/Theme.d.ts.map +1 -1
  305. package/dist/esm/theme/Theme.js +1 -8
  306. package/dist/esm/theme/Theme.js.map +1 -1
  307. package/dist/esm/utils/createFactoryComponent.d.ts.map +1 -1
  308. package/dist/esm/utils/overrideComponent.d.ts.map +1 -1
  309. package/package.json +61 -46
  310. package/src/__tests__/Utils.tsx +3 -1
  311. package/src/components/button/Button.tsx +3 -1
  312. package/src/components/button/__tests__/ButtonWithDisabledTooltip.spec.tsx +1 -1
  313. package/src/components/code-editor/CodeEditor.tsx +1 -7
  314. package/src/components/date-range-picker/__tests__/DateRangePickerPopoverCalendar.spec.tsx +4 -4
  315. package/src/components/header/__tests__/Header.spec.tsx +21 -22
  316. package/src/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +10 -15
  317. package/src/components/inline-confirm/InlineConfirm.tsx +12 -4
  318. package/src/components/inline-confirm/InlineConfirmPrompt.tsx +6 -9
  319. package/src/components/inline-confirm/InlineConfirmTarget.tsx +9 -4
  320. package/src/components/inline-confirm/__tests__/InlineConfirm.spec.tsx +39 -14
  321. package/src/components/table/Table.module.css +8 -1
  322. package/src/components/table/Table.tsx +148 -170
  323. package/src/components/table/Table.types.ts +57 -160
  324. package/src/components/table/TableContext.tsx +17 -16
  325. package/src/components/table/__tests__/Table.spec.tsx +176 -200
  326. package/src/components/table/__tests__/TableActions.spec.tsx +142 -31
  327. package/src/components/table/__tests__/TableCollapsibleColumn.spec.tsx +88 -0
  328. package/src/components/table/__tests__/TableColumnsSelector.spec.tsx +164 -123
  329. package/src/components/table/__tests__/TableDateRangePicker.spec.tsx +13 -17
  330. package/src/components/table/__tests__/TableFilter.spec.tsx +52 -96
  331. package/src/components/table/__tests__/TableLastUpdated.spec.tsx +18 -37
  332. package/src/components/table/__tests__/TablePagination.spec.tsx +84 -100
  333. package/src/components/table/__tests__/TablePerPage.spec.tsx +81 -104
  334. package/src/components/table/__tests__/TablePredicate.spec.tsx +26 -80
  335. package/src/components/table/__tests__/Th.spec.tsx +24 -19
  336. package/src/components/table/index.ts +3 -9
  337. package/src/components/table/layouts/TableLayoutControl.tsx +4 -4
  338. package/src/components/table/layouts/TableLayouts.tsx +0 -22
  339. package/src/components/table/layouts/__tests__/RowLayout.spec.tsx +210 -182
  340. package/src/components/table/layouts/row-layout/RowLayout.tsx +2 -2
  341. package/src/components/table/layouts/row-layout/RowLayoutBody.tsx +17 -17
  342. package/src/components/table/layouts/row-layout/RowLayoutHeader.tsx +18 -9
  343. package/src/components/table/layouts/row-layout/RowLayoutIcon.tsx +3 -8
  344. package/src/components/table/table-actions/TableActionContext.ts +9 -0
  345. package/src/components/table/table-actions/TableActionItem.tsx +80 -0
  346. package/src/components/table/table-actions/TableActionsList.tsx +209 -0
  347. package/src/components/table/table-actions/TableHeaderActions.tsx +56 -0
  348. package/src/components/table/table-actions/index.ts +2 -0
  349. package/src/components/table/table-column/TableActionsColumn.tsx +39 -0
  350. package/src/components/table/table-column/TableCollapsibleColumn.tsx +7 -3
  351. package/src/components/table/table-column/TableSelectableColumn.tsx +4 -0
  352. package/src/components/table/table-columns-selector/TableColumnsSelector.tsx +33 -28
  353. package/src/components/table/table-date-range-picker/TableDateRangePicker.tsx +9 -11
  354. package/src/components/table/table-filter/TableFilter.tsx +12 -18
  355. package/src/components/table/table-header/TableHeader.tsx +32 -15
  356. package/src/components/table/table-header/Th.tsx +8 -7
  357. package/src/components/table/table-last-updated/TableLastUpdated.tsx +7 -10
  358. package/src/components/table/table-no-data/TableNoData.tsx +7 -0
  359. package/src/components/table/table-pagination/TablePagination.tsx +8 -11
  360. package/src/components/table/table-pagination/TablePagination.types.ts +0 -4
  361. package/src/components/table/table-per-page/TablePerPage.tsx +8 -10
  362. package/src/components/table/table-predicate/TablePredicate.tsx +21 -17
  363. package/src/components/table/use-table.ts +323 -0
  364. package/src/index.ts +11 -1
  365. package/src/theme/Theme.tsx +0 -6
  366. package/dist/cjs/components/table/table-actions/TableActions.d.ts +0 -38
  367. package/dist/cjs/components/table/table-actions/TableActions.d.ts.map +0 -1
  368. package/dist/cjs/components/table/table-actions/TableActions.js +0 -47
  369. package/dist/cjs/components/table/table-actions/TableActions.js.map +0 -1
  370. package/dist/cjs/components/table/table-consumer/TableConsumer.d.ts +0 -5
  371. package/dist/cjs/components/table/table-consumer/TableConsumer.d.ts.map +0 -1
  372. package/dist/cjs/components/table/table-consumer/TableConsumer.js.map +0 -1
  373. package/dist/cjs/hooks/useRowSelection.d.ts +0 -10
  374. package/dist/cjs/hooks/useRowSelection.d.ts.map +0 -1
  375. package/dist/cjs/hooks/useRowSelection.js +0 -80
  376. package/dist/cjs/hooks/useRowSelection.js.map +0 -1
  377. package/dist/cjs/styles/Title.module.css +0 -5
  378. package/dist/esm/components/table/table-actions/TableActions.d.ts +0 -38
  379. package/dist/esm/components/table/table-actions/TableActions.d.ts.map +0 -1
  380. package/dist/esm/components/table/table-actions/TableActions.js +0 -29
  381. package/dist/esm/components/table/table-actions/TableActions.js.map +0 -1
  382. package/dist/esm/components/table/table-consumer/TableConsumer.d.ts +0 -5
  383. package/dist/esm/components/table/table-consumer/TableConsumer.d.ts.map +0 -1
  384. package/dist/esm/components/table/table-consumer/TableConsumer.js +0 -6
  385. package/dist/esm/components/table/table-consumer/TableConsumer.js.map +0 -1
  386. package/dist/esm/hooks/useRowSelection.d.ts +0 -10
  387. package/dist/esm/hooks/useRowSelection.d.ts.map +0 -1
  388. package/dist/esm/hooks/useRowSelection.js +0 -59
  389. package/dist/esm/hooks/useRowSelection.js.map +0 -1
  390. package/dist/esm/styles/Title.module.css +0 -5
  391. package/src/components/table/table-actions/TableActions.tsx +0 -67
  392. package/src/components/table/table-consumer/TableConsumer.tsx +0 -3
  393. package/src/hooks/useRowSelection.ts +0 -76
  394. package/src/styles/Title.module.css +0 -5
@@ -1,52 +1,51 @@
1
1
  import {Anchor} from '@mantine/core';
2
- import {render, screen} from '@test-utils';
2
+ import {render, screen, within} from '@test-utils';
3
3
 
4
4
  import {Header} from '../Header';
5
5
 
6
6
  describe('Header', () => {
7
7
  it('renders a heading of level 1 with the specified children within', () => {
8
- render(<Header>child</Header>);
8
+ render(
9
+ <Header>
10
+ <div data-testid="child" />
11
+ </Header>,
12
+ );
9
13
 
10
14
  const header = screen.getByRole('heading');
11
- expect(header).toMatchInlineSnapshot(`
12
- <h1
13
- class="_root_4eabcc _title_69e643 mantine-PlasmaHeader-title m-8a5d1357 mantine-Title-root"
14
- data-order="1"
15
- data-variant="primary"
16
- style="--title-fw: var(--mantine-h1-font-weight); --title-lh: var(--mantine-h1-line-height); --title-fz: var(--mantine-h1-font-size);"
17
- >
18
- child
19
- </h1>
20
- `);
15
+ expect(within(header).getByTestId('child')).toBeVisible();
21
16
  });
22
17
 
23
18
  it('renders the specified breadcrumbs above the title', async () => {
24
- const {container, rerender} = render(
19
+ const {rerender} = render(
25
20
  <Header>
26
- Title
27
- <Header.Breadcrumbs>
21
+ <Header.Breadcrumbs data-testid="breadcrumbs-after">
28
22
  <Anchor>One</Anchor>
29
23
  <Anchor>Two</Anchor>
30
24
  <Anchor>Three</Anchor>
31
25
  </Header.Breadcrumbs>
26
+ <div data-testid="title">Title</div>
32
27
  </Header>,
33
28
  );
34
- const titleFirst = container;
29
+
30
+ // title follows breadcrumbs even if declared after
31
+ expect(screen.getByTestId('breadcrumbs-after').compareDocumentPosition(screen.getByTestId('title'))).toBe(
32
+ Node.DOCUMENT_POSITION_FOLLOWING,
33
+ );
35
34
 
36
35
  rerender(
37
36
  <Header>
38
- <Header.Breadcrumbs>
37
+ <div data-testid="title">Title</div>
38
+ <Header.Breadcrumbs data-testid="breadcrumbs-after">
39
39
  <Anchor>One</Anchor>
40
40
  <Anchor>Two</Anchor>
41
41
  <Anchor>Three</Anchor>
42
42
  </Header.Breadcrumbs>
43
- Title
44
43
  </Header>,
45
44
  );
46
- const breadcrumbsFirst = container;
47
-
48
- expect(titleFirst).toMatchSnapshot();
49
- expect(breadcrumbsFirst).toEqual(titleFirst);
45
+ // title still follows breadcrumbs
46
+ expect(screen.getByTestId('breadcrumbs-after').compareDocumentPosition(screen.getByTestId('title'))).toBe(
47
+ Node.DOCUMENT_POSITION_FOLLOWING,
48
+ );
50
49
  });
51
50
 
52
51
  it('renders a doc link icon if a doc anchor is provided', async () => {
@@ -2,30 +2,25 @@
2
2
 
3
3
  exports[`Header > renders the specified breadcrumbs above the title 1`] = `
4
4
  <div>
5
- <style
6
- data-mantine-styles="true"
7
- >
8
- :root{--mantine-webkit-font-smoothing: unset;--mantine-moz-font-smoothing: unset;--mantine-color-black: #282829;--mantine-line-height: 1.5;--mantine-font-family: canada-type-gibson, sans-serif;--mantine-font-family-headings: canada-type-gibson, sans-serif;--mantine-heading-font-weight: 500;--mantine-radius-default: calc(0.5rem * var(--mantine-scale));--mantine-primary-color-filled: var(--mantine-color-action-filled);--mantine-primary-color-filled-hover: var(--mantine-color-action-filled-hover);--mantine-primary-color-light: var(--mantine-color-action-light);--mantine-primary-color-light-hover: var(--mantine-color-action-light-hover);--mantine-primary-color-light-color: var(--mantine-color-action-light-color);--mantine-spacing-xs: 8px;--mantine-spacing-sm: 16px;--mantine-spacing-md: 24px;--mantine-spacing-lg: 32px;--mantine-spacing-xl: 40px;--mantine-line-height-md: 1.5;--mantine-shadow-xs: 0px 1px 0px rgba(4, 8, 31, 0.08);--mantine-shadow-sm: 0px 2px 4px rgba(4, 8, 31, 0.12);--mantine-shadow-md: 0px 4px 8px rgba(4, 8, 31, 0.08);--mantine-shadow-lg: 0px 8px 16px rgba(7, 12, 41, 0.06);--mantine-shadow-xl: 0px 16px 24px rgba(4, 8, 31, 0.06);--mantine-primary-color-0: var(--mantine-color-action-0);--mantine-primary-color-1: var(--mantine-color-action-1);--mantine-primary-color-2: var(--mantine-color-action-2);--mantine-primary-color-3: var(--mantine-color-action-3);--mantine-primary-color-4: var(--mantine-color-action-4);--mantine-primary-color-5: var(--mantine-color-action-5);--mantine-primary-color-6: var(--mantine-color-action-6);--mantine-primary-color-7: var(--mantine-color-action-7);--mantine-primary-color-8: var(--mantine-color-action-8);--mantine-primary-color-9: var(--mantine-color-action-9);--mantine-color-gray-0: #fcfcfc;--mantine-color-gray-1: #f9f9f9;--mantine-color-gray-2: #f3f3f3;--mantine-color-gray-3: #e5e8e8;--mantine-color-gray-4: #d6dcdd;--mantine-color-gray-5: #b7bcc0;--mantine-color-gray-6: #6c727b;--mantine-color-gray-7: #565b66;--mantine-color-gray-8: #353a3f;--mantine-color-gray-9: #282829;--mantine-color-red-0: #fff8f8;--mantine-color-red-1: #ffd7d3;--mantine-color-red-2: #f3b4ae;--mantine-color-red-3: #ee8279;--mantine-color-red-4: #f05245;--mantine-color-red-5: #e03729;--mantine-color-red-6: #cd2113;--mantine-color-red-7: #a11409;--mantine-color-red-8: #80130a;--mantine-color-red-9: #600a03;--mantine-color-indigo-0: #f2f3ff;--mantine-color-indigo-1: #ced4f4;--mantine-color-indigo-2: #9dabf2;--mantine-color-indigo-3: #687cdf;--mantine-color-indigo-4: #4a61d4;--mantine-color-indigo-5: #2e45ba;--mantine-color-indigo-6: #24389e;--mantine-color-indigo-7: #192b8a;--mantine-color-indigo-8: #101f6b;--mantine-color-indigo-9: #071140;--mantine-color-blue-0: #e7f7ff;--mantine-color-blue-1: #c3ecff;--mantine-color-blue-2: #86d8ff;--mantine-color-blue-3: #46c4ff;--mantine-color-blue-4: #00adff;--mantine-color-blue-5: #029de7;--mantine-color-blue-6: #0387c6;--mantine-color-blue-7: #0173a9;--mantine-color-blue-8: #004c71;--mantine-color-blue-9: #003148;--mantine-color-teal-0: #edfffc;--mantine-color-teal-1: #c2fef5;--mantine-color-teal-2: #50fae3;--mantine-color-teal-3: #1cebcf;--mantine-color-teal-4: #16dcc1;--mantine-color-teal-5: #12c7ae;--mantine-color-teal-6: #0ba893;--mantine-color-teal-7: #078675;--mantine-color-teal-8: #055f53;--mantine-color-teal-9: #033932;--mantine-color-green-0: #dcf3ef;--mantine-color-green-1: #b2e3db;--mantine-color-green-2: #79d1c3;--mantine-color-green-3: #34ad95;--mantine-color-green-4: #1a8973;--mantine-color-green-5: #00634f;--mantine-color-green-6: #045242;--mantine-color-green-7: #043f33;--mantine-color-green-8: #023128;--mantine-color-green-9: #01211b;--mantine-color-lime-0: #f2fff9;--mantine-color-lime-1: #f2fff9;--mantine-color-lime-2: #f2fff9;--mantine-color-lime-3: #f2fff9;--mantine-color-lime-4: #12a344;--mantine-color-lime-5: #12a344;--mantine-color-lime-6: #12a344;--mantine-color-lime-7: #004a20;--mantine-color-lime-8: #004a20;--mantine-color-lime-9: #004a20;--mantine-color-yellow-0: #fffdea;--mantine-color-yellow-1: #fff7ba;--mantine-color-yellow-2: #ffef70;--mantine-color-yellow-3: #ffe300;--mantine-color-yellow-4: #f5d029;--mantine-color-yellow-5: #eac10b;--mantine-color-yellow-6: #e2b104;--mantine-color-yellow-7: #bd9403;--mantine-color-yellow-8: #8f7000;--mantine-color-yellow-9: #493b08;--mantine-color-action-0: #edf6ff;--mantine-color-action-1: #edf6ff;--mantine-color-action-2: #c7e4ff;--mantine-color-action-3: #8bc7ff;--mantine-color-action-4: #399ffe;--mantine-color-action-5: #1372ec;--mantine-color-action-6: #1372ec;--mantine-color-action-7: #1a50ad;--mantine-color-action-8: #1a50ad;--mantine-color-action-9: #062d70;--mantine-color-navy-0: #f5f6ff;--mantine-color-navy-1: #d6d7fd;--mantine-color-navy-2: #aeb0f1;--mantine-color-navy-3: #8787db;--mantine-color-navy-4: #6b6bbd;--mantine-color-navy-5: #525296;--mantine-color-navy-6: #3f3f71;--mantine-color-navy-7: #333357;--mantine-color-navy-8: #262646;--mantine-color-navy-9: #181d3a;--mantine-color-info-0: #f5f6ff;--mantine-color-info-1: #d6d7fd;--mantine-color-info-2: #aeb0f1;--mantine-color-info-3: #8787db;--mantine-color-info-4: #6b6bbd;--mantine-color-info-5: #525296;--mantine-color-info-6: #3f3f71;--mantine-color-info-7: #333357;--mantine-color-info-8: #262646;--mantine-color-info-9: #181d3a;--mantine-color-critical-0: #fff8f8;--mantine-color-critical-1: #ffd7d3;--mantine-color-critical-2: #f3b4ae;--mantine-color-critical-3: #ee8279;--mantine-color-critical-4: #f05245;--mantine-color-critical-5: #e03729;--mantine-color-critical-6: #cd2113;--mantine-color-critical-7: #a11409;--mantine-color-critical-8: #80130a;--mantine-color-critical-9: #600a03;--mantine-color-new-0: #edfffc;--mantine-color-new-1: #c2fef5;--mantine-color-new-2: #50fae3;--mantine-color-new-3: #1cebcf;--mantine-color-new-4: #16dcc1;--mantine-color-new-5: #12c7ae;--mantine-color-new-6: #0ba893;--mantine-color-new-7: #078675;--mantine-color-new-8: #055f53;--mantine-color-new-9: #033932;--mantine-color-warning-0: #fffdea;--mantine-color-warning-1: #fff7ba;--mantine-color-warning-2: #ffef70;--mantine-color-warning-3: #ffe300;--mantine-color-warning-4: #f5d029;--mantine-color-warning-5: #eac10b;--mantine-color-warning-6: #e2b104;--mantine-color-warning-7: #bd9403;--mantine-color-warning-8: #8f7000;--mantine-color-warning-9: #493b08;--mantine-color-success-0: #f2fff9;--mantine-color-success-1: #f2fff9;--mantine-color-success-2: #f2fff9;--mantine-color-success-3: #f2fff9;--mantine-color-success-4: #12a344;--mantine-color-success-5: #12a344;--mantine-color-success-6: #12a344;--mantine-color-success-7: #004a20;--mantine-color-success-8: #004a20;--mantine-color-success-9: #004a20;--mantine-color-purple-0: #f2ebf3;--mantine-color-purple-1: #dabfe9;--mantine-color-purple-2: #bb80dc;--mantine-color-purple-3: #9a52c1;--mantine-color-purple-4: #752e9c;--mantine-color-purple-5: #5d237d;--mantine-color-purple-6: #451c5c;--mantine-color-purple-7: #390c53;--mantine-color-purple-8: #2b073f;--mantine-color-purple-9: #180323;--mantine-h1-font-size: 48px;--mantine-h1-line-height: 1.5;--mantine-h1-font-weight: 300;--mantine-h2-font-size: 32px;--mantine-h2-line-height: 1.5;--mantine-h2-font-weight: 500;--mantine-h3-font-size: 24px;--mantine-h3-line-height: 1.5;--mantine-h3-font-weight: 500;--mantine-h4-font-size: 18px;--mantine-h4-line-height: 1.5;--mantine-h4-font-weight: 300;--mantine-h5-font-size: 14px;--mantine-h5-font-weight: 500;--mantine-h6-font-size: 12px;--mantine-h6-font-weight: 500;}:root[data-mantine-color-scheme="dark"]{--mantine-color-anchor: var(--mantine-color-action-4);--mantine-color-gray-light: rgba(108, 114, 123, 0.15);--mantine-color-gray-light-hover: rgba(108, 114, 123, 0.2);--mantine-color-gray-outline-hover: rgba(214, 220, 221, 0.05);--mantine-color-red-light: rgba(205, 33, 19, 0.15);--mantine-color-red-light-hover: rgba(205, 33, 19, 0.2);--mantine-color-red-outline-hover: rgba(240, 82, 69, 0.05);--mantine-color-indigo-light: rgba(36, 56, 158, 0.15);--mantine-color-indigo-light-hover: rgba(36, 56, 158, 0.2);--mantine-color-indigo-outline-hover: rgba(74, 97, 212, 0.05);--mantine-color-blue-light: rgba(3, 135, 198, 0.15);--mantine-color-blue-light-hover: rgba(3, 135, 198, 0.2);--mantine-color-blue-outline-hover: rgba(0, 173, 255, 0.05);--mantine-color-teal-light: rgba(11, 168, 147, 0.15);--mantine-color-teal-light-hover: rgba(11, 168, 147, 0.2);--mantine-color-teal-outline-hover: rgba(22, 220, 193, 0.05);--mantine-color-green-light: rgba(4, 82, 66, 0.15);--mantine-color-green-light-hover: rgba(4, 82, 66, 0.2);--mantine-color-green-outline-hover: rgba(26, 137, 115, 0.05);--mantine-color-lime-light: rgba(18, 163, 68, 0.15);--mantine-color-lime-light-hover: rgba(18, 163, 68, 0.2);--mantine-color-lime-outline-hover: rgba(18, 163, 68, 0.05);--mantine-color-yellow-light: rgba(226, 177, 4, 0.15);--mantine-color-yellow-light-hover: rgba(226, 177, 4, 0.2);--mantine-color-yellow-outline-hover: rgba(245, 208, 41, 0.05);--mantine-color-action-text: var(--mantine-color-action-4);--mantine-color-action-filled: var(--mantine-color-action-8);--mantine-color-action-filled-hover: var(--mantine-color-action-9);--mantine-color-action-light: rgba(19, 114, 236, 0.15);--mantine-color-action-light-hover: rgba(19, 114, 236, 0.2);--mantine-color-action-light-color: var(--mantine-color-action-3);--mantine-color-action-outline: var(--mantine-color-action-4);--mantine-color-action-outline-hover: rgba(57, 159, 254, 0.05);--mantine-color-navy-text: var(--mantine-color-navy-4);--mantine-color-navy-filled: var(--mantine-color-navy-8);--mantine-color-navy-filled-hover: var(--mantine-color-navy-9);--mantine-color-navy-light: rgba(63, 63, 113, 0.15);--mantine-color-navy-light-hover: rgba(63, 63, 113, 0.2);--mantine-color-navy-light-color: var(--mantine-color-navy-3);--mantine-color-navy-outline: var(--mantine-color-navy-4);--mantine-color-navy-outline-hover: rgba(107, 107, 189, 0.05);--mantine-color-info-text: var(--mantine-color-info-4);--mantine-color-info-filled: var(--mantine-color-info-8);--mantine-color-info-filled-hover: var(--mantine-color-info-9);--mantine-color-info-light: rgba(63, 63, 113, 0.15);--mantine-color-info-light-hover: rgba(63, 63, 113, 0.2);--mantine-color-info-light-color: var(--mantine-color-info-3);--mantine-color-info-outline: var(--mantine-color-info-4);--mantine-color-info-outline-hover: rgba(107, 107, 189, 0.05);--mantine-color-critical-text: var(--mantine-color-critical-4);--mantine-color-critical-filled: var(--mantine-color-critical-8);--mantine-color-critical-filled-hover: var(--mantine-color-critical-9);--mantine-color-critical-light: rgba(205, 33, 19, 0.15);--mantine-color-critical-light-hover: rgba(205, 33, 19, 0.2);--mantine-color-critical-light-color: var(--mantine-color-critical-3);--mantine-color-critical-outline: var(--mantine-color-critical-4);--mantine-color-critical-outline-hover: rgba(240, 82, 69, 0.05);--mantine-color-new-text: var(--mantine-color-new-4);--mantine-color-new-filled: var(--mantine-color-new-8);--mantine-color-new-filled-hover: var(--mantine-color-new-9);--mantine-color-new-light: rgba(11, 168, 147, 0.15);--mantine-color-new-light-hover: rgba(11, 168, 147, 0.2);--mantine-color-new-light-color: var(--mantine-color-new-3);--mantine-color-new-outline: var(--mantine-color-new-4);--mantine-color-new-outline-hover: rgba(22, 220, 193, 0.05);--mantine-color-warning-text: var(--mantine-color-warning-4);--mantine-color-warning-filled: var(--mantine-color-warning-8);--mantine-color-warning-filled-hover: var(--mantine-color-warning-9);--mantine-color-warning-light: rgba(226, 177, 4, 0.15);--mantine-color-warning-light-hover: rgba(226, 177, 4, 0.2);--mantine-color-warning-light-color: var(--mantine-color-warning-3);--mantine-color-warning-outline: var(--mantine-color-warning-4);--mantine-color-warning-outline-hover: rgba(245, 208, 41, 0.05);--mantine-color-success-text: var(--mantine-color-success-4);--mantine-color-success-filled: var(--mantine-color-success-8);--mantine-color-success-filled-hover: var(--mantine-color-success-9);--mantine-color-success-light: rgba(18, 163, 68, 0.15);--mantine-color-success-light-hover: rgba(18, 163, 68, 0.2);--mantine-color-success-light-color: var(--mantine-color-success-3);--mantine-color-success-outline: var(--mantine-color-success-4);--mantine-color-success-outline-hover: rgba(18, 163, 68, 0.05);--mantine-color-purple-text: var(--mantine-color-purple-4);--mantine-color-purple-filled: var(--mantine-color-purple-8);--mantine-color-purple-filled-hover: var(--mantine-color-purple-9);--mantine-color-purple-light: rgba(69, 28, 92, 0.15);--mantine-color-purple-light-hover: rgba(69, 28, 92, 0.2);--mantine-color-purple-light-color: var(--mantine-color-purple-3);--mantine-color-purple-outline: var(--mantine-color-purple-4);--mantine-color-purple-outline-hover: rgba(117, 46, 156, 0.05);}:root[data-mantine-color-scheme="light"]{--mantine-color-text: #282829;--mantine-color-anchor: var(--mantine-color-action-6);--mantine-color-dark-light: #C9C9C9;--mantine-color-dark-light-hover: #b8b8b8;--mantine-color-gray-light: #f9f9f9;--mantine-color-gray-light-hover: #f3f3f3;--mantine-color-gray-outline-hover: rgba(108, 114, 123, 0.05);--mantine-color-red-light: #fff8f8;--mantine-color-red-light-hover: #ffd7d3;--mantine-color-red-outline-hover: rgba(205, 33, 19, 0.05);--mantine-color-pink-light: #fff0f6;--mantine-color-pink-light-hover: #ffdeeb;--mantine-color-grape-light: #f8f0fc;--mantine-color-grape-light-hover: #f3d9fa;--mantine-color-violet-light: #f3f0ff;--mantine-color-violet-light-hover: #e5dbff;--mantine-color-indigo-light: #f2f3ff;--mantine-color-indigo-light-hover: #ced4f4;--mantine-color-indigo-outline-hover: rgba(36, 56, 158, 0.05);--mantine-color-blue-light: #e7f7ff;--mantine-color-blue-light-hover: #c3ecff;--mantine-color-blue-outline-hover: rgba(3, 135, 198, 0.05);--mantine-color-cyan-light: #e3fafc;--mantine-color-cyan-light-hover: #c5f6fa;--mantine-color-teal-light: #edfffc;--mantine-color-teal-light-hover: #c2fef5;--mantine-color-teal-outline-hover: rgba(11, 168, 147, 0.05);--mantine-color-green-light: #dcf3ef;--mantine-color-green-light-hover: #b2e3db;--mantine-color-green-outline-hover: rgba(4, 82, 66, 0.05);--mantine-color-lime-light: #f2fff9;--mantine-color-lime-light-hover: #f2fff9;--mantine-color-lime-outline-hover: rgba(18, 163, 68, 0.05);--mantine-color-yellow-light: #fffdea;--mantine-color-yellow-light-hover: #fff7ba;--mantine-color-yellow-outline-hover: rgba(226, 177, 4, 0.05);--mantine-color-orange-light: #fff4e6;--mantine-color-orange-light-hover: #ffe8cc;--mantine-color-action-text: var(--mantine-color-action-filled);--mantine-color-action-filled: var(--mantine-color-action-6);--mantine-color-action-filled-hover: var(--mantine-color-action-7);--mantine-color-action-light: #edf6ff;--mantine-color-action-light-hover: #edf6ff;--mantine-color-action-light-color: var(--mantine-color-action-6);--mantine-color-action-outline: var(--mantine-color-action-6);--mantine-color-action-outline-hover: rgba(19, 114, 236, 0.05);--mantine-color-navy-text: var(--mantine-color-navy-filled);--mantine-color-navy-filled: var(--mantine-color-navy-6);--mantine-color-navy-filled-hover: var(--mantine-color-navy-7);--mantine-color-navy-light: #f5f6ff;--mantine-color-navy-light-hover: #d6d7fd;--mantine-color-navy-light-color: var(--mantine-color-navy-6);--mantine-color-navy-outline: var(--mantine-color-navy-6);--mantine-color-navy-outline-hover: rgba(63, 63, 113, 0.05);--mantine-color-info-text: var(--mantine-color-info-filled);--mantine-color-info-filled: var(--mantine-color-info-6);--mantine-color-info-filled-hover: var(--mantine-color-info-7);--mantine-color-info-light: #f5f6ff;--mantine-color-info-light-hover: #d6d7fd;--mantine-color-info-light-color: var(--mantine-color-info-6);--mantine-color-info-outline: var(--mantine-color-info-6);--mantine-color-info-outline-hover: rgba(63, 63, 113, 0.05);--mantine-color-critical-text: var(--mantine-color-critical-filled);--mantine-color-critical-filled: var(--mantine-color-critical-6);--mantine-color-critical-filled-hover: var(--mantine-color-critical-7);--mantine-color-critical-light: #fff8f8;--mantine-color-critical-light-hover: #ffd7d3;--mantine-color-critical-light-color: var(--mantine-color-critical-6);--mantine-color-critical-outline: var(--mantine-color-critical-6);--mantine-color-critical-outline-hover: rgba(205, 33, 19, 0.05);--mantine-color-new-text: var(--mantine-color-new-filled);--mantine-color-new-filled: var(--mantine-color-new-6);--mantine-color-new-filled-hover: var(--mantine-color-new-7);--mantine-color-new-light: #edfffc;--mantine-color-new-light-hover: #c2fef5;--mantine-color-new-light-color: var(--mantine-color-new-6);--mantine-color-new-outline: var(--mantine-color-new-6);--mantine-color-new-outline-hover: rgba(11, 168, 147, 0.05);--mantine-color-warning-text: var(--mantine-color-warning-filled);--mantine-color-warning-filled: var(--mantine-color-warning-6);--mantine-color-warning-filled-hover: var(--mantine-color-warning-7);--mantine-color-warning-light: #fffdea;--mantine-color-warning-light-hover: #fff7ba;--mantine-color-warning-light-color: var(--mantine-color-warning-6);--mantine-color-warning-outline: var(--mantine-color-warning-6);--mantine-color-warning-outline-hover: rgba(226, 177, 4, 0.05);--mantine-color-success-text: var(--mantine-color-success-filled);--mantine-color-success-filled: var(--mantine-color-success-6);--mantine-color-success-filled-hover: var(--mantine-color-success-7);--mantine-color-success-light: #f2fff9;--mantine-color-success-light-hover: #f2fff9;--mantine-color-success-light-color: var(--mantine-color-success-6);--mantine-color-success-outline: var(--mantine-color-success-6);--mantine-color-success-outline-hover: rgba(18, 163, 68, 0.05);--mantine-color-purple-text: var(--mantine-color-purple-filled);--mantine-color-purple-filled: var(--mantine-color-purple-6);--mantine-color-purple-filled-hover: var(--mantine-color-purple-7);--mantine-color-purple-light: #f2ebf3;--mantine-color-purple-light-hover: #dabfe9;--mantine-color-purple-light-color: var(--mantine-color-purple-6);--mantine-color-purple-outline: var(--mantine-color-purple-6);--mantine-color-purple-outline-hover: rgba(69, 28, 92, 0.05);}
9
- </style>
10
5
  <style
11
6
  data-mantine-styles="classes"
12
7
  >
13
8
  @media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}
14
9
  </style>
15
10
  <div
16
- class="_root_69e643 mantine-PlasmaHeader-root m-4081bf90 mantine-Group-root"
11
+ class="_root_69e643 mantine-PlasmaHeader-root m_4081bf90 mantine-Group-root"
17
12
  data-variant="primary"
18
13
  style="--group-gap: var(--mantine-spacing-md); --group-align: center; --group-justify: space-between; --group-wrap: nowrap;"
19
14
  >
20
15
  <div
21
- class="m-6d731127 mantine-Stack-root"
16
+ class="m_6d731127 mantine-Stack-root"
22
17
  style="--stack-gap: 0rem; --stack-align: stretch; --stack-justify: flex-start;"
23
18
  >
24
19
  <div
25
- class="m-8b3717df mantine-Breadcrumbs-root"
20
+ class="m_8b3717df mantine-Breadcrumbs-root"
26
21
  >
27
22
  <a
28
- class="mantine-focus-auto _root_a623ec m-849cf0da _breadcrumbsRoot_69e643 mantine-PlasmaHeader-breadcrumbsRoot m-f678d540 mantine-Breadcrumbs-breadcrumb m-b6d8b162 mantine-Text-root mantine-Anchor-root"
23
+ class="mantine-focus-auto _root_a623ec m_849cf0da _breadcrumbsRoot_69e643 mantine-PlasmaHeader-breadcrumbsRoot m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root"
29
24
  color="action.6"
30
25
  data-underline="hover"
31
26
  style="--text-color: var(--mantine-color-action-6); --text-fz: var(--mantine-font-size-sm);"
@@ -33,12 +28,12 @@ exports[`Header > renders the specified breadcrumbs above the title 1`] = `
33
28
  One
34
29
  </a>
35
30
  <div
36
- class="_breadcrumbsSeparator_69e643 mantine-PlasmaHeader-breadcrumbsSeparator m-3b8f2208 mantine-Breadcrumbs-separator"
31
+ class="_breadcrumbsSeparator_69e643 mantine-PlasmaHeader-breadcrumbsSeparator m_3b8f2208 mantine-Breadcrumbs-separator"
37
32
  >
38
33
  /
39
34
  </div>
40
35
  <a
41
- class="mantine-focus-auto _root_a623ec m-849cf0da _breadcrumbsRoot_69e643 mantine-PlasmaHeader-breadcrumbsRoot m-f678d540 mantine-Breadcrumbs-breadcrumb m-b6d8b162 mantine-Text-root mantine-Anchor-root"
36
+ class="mantine-focus-auto _root_a623ec m_849cf0da _breadcrumbsRoot_69e643 mantine-PlasmaHeader-breadcrumbsRoot m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root"
42
37
  color="action.6"
43
38
  data-underline="hover"
44
39
  style="--text-color: var(--mantine-color-action-6); --text-fz: var(--mantine-font-size-sm);"
@@ -46,12 +41,12 @@ exports[`Header > renders the specified breadcrumbs above the title 1`] = `
46
41
  Two
47
42
  </a>
48
43
  <div
49
- class="_breadcrumbsSeparator_69e643 mantine-PlasmaHeader-breadcrumbsSeparator m-3b8f2208 mantine-Breadcrumbs-separator"
44
+ class="_breadcrumbsSeparator_69e643 mantine-PlasmaHeader-breadcrumbsSeparator m_3b8f2208 mantine-Breadcrumbs-separator"
50
45
  >
51
46
  /
52
47
  </div>
53
48
  <a
54
- class="mantine-focus-auto _root_a623ec m-849cf0da _breadcrumbsRoot_69e643 mantine-PlasmaHeader-breadcrumbsRoot m-f678d540 mantine-Breadcrumbs-breadcrumb m-b6d8b162 mantine-Text-root mantine-Anchor-root"
49
+ class="mantine-focus-auto _root_a623ec m_849cf0da _breadcrumbsRoot_69e643 mantine-PlasmaHeader-breadcrumbsRoot m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root"
55
50
  color="action.6"
56
51
  data-underline="hover"
57
52
  style="--text-color: var(--mantine-color-action-6); --text-fz: var(--mantine-font-size-sm);"
@@ -60,7 +55,7 @@ exports[`Header > renders the specified breadcrumbs above the title 1`] = `
60
55
  </a>
61
56
  </div>
62
57
  <h1
63
- class="_root_4eabcc _title_69e643 mantine-PlasmaHeader-title m-8a5d1357 mantine-Title-root"
58
+ class="_root_4eabcc _title_69e643 mantine-PlasmaHeader-title m_8a5d1357 mantine-Title-root"
64
59
  data-order="1"
65
60
  data-variant="primary"
66
61
  style="--title-fw: var(--mantine-h1-font-weight); --title-lh: var(--mantine-h1-line-height); --title-fz: var(--mantine-h1-font-size);"
@@ -68,7 +63,7 @@ exports[`Header > renders the specified breadcrumbs above the title 1`] = `
68
63
  Title
69
64
  </h1>
70
65
  <p
71
- class="mantine-focus-auto _description_69e643 mantine-PlasmaHeader-description m-b6d8b162 mantine-Text-root"
66
+ class="mantine-focus-auto _description_69e643 mantine-PlasmaHeader-description m_b6d8b162 mantine-Text-root"
72
67
  data-size="md"
73
68
  style="--text-fz: var(--mantine-font-size-md); --text-lh: var(--mantine-line-height-md);"
74
69
  />
@@ -1,11 +1,20 @@
1
- import {Factory, StylesApiProps, useProps} from '@mantine/core';
2
- import {MantineComponent} from '@mantine/core/lib/core/factory/factory';
1
+ import {Factory, MantineComponent, StylesApiProps, useProps} from '@mantine/core';
3
2
  import {Children, ReactElement, ReactNode, useState} from 'react';
4
3
  import {InlineConfirmProvider} from './InlineConfirmContext';
5
4
  import {InlineConfirmPrompt} from './InlineConfirmPrompt';
6
5
 
7
6
  import {InlineConfirmTarget} from './InlineConfirmTarget';
8
7
 
8
+ /**
9
+ * Direct children of InlineConfirm that wraps an InlineConfirm.Prompt need this prop
10
+ */
11
+ export interface InlineConfirmComponentsProps {
12
+ /**
13
+ * Unique id to map the prompt to the target
14
+ */
15
+ inlineConfirmId: string;
16
+ }
17
+
9
18
  export interface InlineConfirmProps extends StylesApiProps<InlineConfirmFactory> {
10
19
  /**
11
20
  * The content of the component. Should contain at least one `InlineConfirm.Target` and one `InlineConfirm.Prompt` with matching ids
@@ -30,10 +39,9 @@ export const InlineConfirm = ((_props) => {
30
39
 
31
40
  const convertedChildren = Children.toArray(children) as ReactElement[];
32
41
  const prompt = convertedChildren.find(
33
- (child) => child.type === InlineConfirmPrompt && child.props.id === confirmingId,
42
+ (child) => child.type !== InlineConfirmTarget && child.props?.inlineConfirmId === confirmingId,
34
43
  );
35
44
  const clearConfirm = () => setConfirmingId(null);
36
-
37
45
  return (
38
46
  <InlineConfirmProvider value={{confirmingId, setConfirmingId, clearConfirm}}>
39
47
  {prompt ?? children}
@@ -1,14 +1,11 @@
1
1
  import {Factory, factory, Group, GroupProps, isElement, useProps} from '@mantine/core';
2
2
  import {cloneElement, ReactElement, ReactNode, useEffect} from 'react';
3
+ import {Button} from '../button/Button';
4
+ import {InlineConfirmComponentsProps} from './InlineConfirm';
3
5
 
4
6
  import {useInlineConfirm} from './InlineConfirmContext';
5
- import {Button} from '../button/Button';
6
7
 
7
- interface InlineConfirmPromptProps extends Omit<GroupProps, 'children'> {
8
- /**
9
- * Unique id to map the prompt to the target
10
- */
11
- id: string;
8
+ interface InlineConfirmPromptProps extends Omit<GroupProps, 'children'>, InlineConfirmComponentsProps {
12
9
  /**
13
10
  * Label element
14
11
  *
@@ -52,7 +49,7 @@ const defaultProps: Partial<InlineConfirmPromptProps> = {
52
49
  };
53
50
 
54
51
  export const InlineConfirmPrompt = factory<InlineConfirmPromptFactory>((props, ref) => {
55
- const {id, label, confirm, cancel, onConfirm, onCancel, ...others} = useProps(
52
+ const {inlineConfirmId, label, confirm, cancel, onConfirm, onCancel, ...others} = useProps(
56
53
  'InlineConfirmPrompt',
57
54
  defaultProps,
58
55
  props,
@@ -80,12 +77,12 @@ export const InlineConfirmPrompt = factory<InlineConfirmPromptFactory>((props, r
80
77
  });
81
78
 
82
79
  useEffect(() => {
83
- if (confirmingId !== id) {
80
+ if (confirmingId !== inlineConfirmId) {
84
81
  clearConfirm();
85
82
  }
86
83
  }, []);
87
84
 
88
- if (confirmingId === id) {
85
+ if (confirmingId === inlineConfirmId) {
89
86
  return (
90
87
  <Group ref={ref} {...others}>
91
88
  {label}
@@ -1,22 +1,27 @@
1
1
  import {createPolymorphicComponent} from '@mantine/core';
2
2
  import {forwardRef, MouseEventHandler} from 'react';
3
3
  import {Button, ButtonProps} from '../button';
4
+ import {InlineConfirmComponentsProps} from './InlineConfirm';
4
5
  import {useInlineConfirm} from './InlineConfirmContext';
5
6
 
6
- export interface InlineConfirmTargetProps extends ButtonProps {
7
- id: string;
7
+ export interface InlineConfirmTargetProps extends ButtonProps, InlineConfirmComponentsProps {
8
8
  onClick?: MouseEventHandler<HTMLButtonElement>;
9
9
  }
10
10
 
11
11
  export const InlineConfirmTarget = createPolymorphicComponent<typeof Button, InlineConfirmTargetProps>(
12
12
  forwardRef(
13
13
  (
14
- {onClick, id, component: Component = Button, ...others}: InlineConfirmTargetProps & {component?: any},
14
+ {
15
+ onClick,
16
+ inlineConfirmId,
17
+ component: Component = Button,
18
+ ...others
19
+ }: InlineConfirmTargetProps & {component?: any},
15
20
  ref,
16
21
  ) => {
17
22
  const {setConfirmingId} = useInlineConfirm();
18
23
  const handleOnClick: MouseEventHandler<HTMLButtonElement> = (e) => {
19
- setConfirmingId(id);
24
+ setConfirmingId(inlineConfirmId);
20
25
  onClick?.(e);
21
26
  };
22
27
 
@@ -1,7 +1,7 @@
1
1
  import {Button, Menu} from '@mantine/core';
2
2
  import {render, screen, userEvent} from '@test-utils';
3
3
 
4
- import {InlineConfirm} from '../InlineConfirm';
4
+ import {InlineConfirm, InlineConfirmComponentsProps} from '../InlineConfirm';
5
5
 
6
6
  describe('InlineConfirm', () => {
7
7
  it('renders its children', () => {
@@ -15,7 +15,7 @@ describe('InlineConfirm', () => {
15
15
  const onClickSpy = vi.fn();
16
16
  render(
17
17
  <InlineConfirm>
18
- <InlineConfirm.Target id="delete" onClick={onClickSpy}>
18
+ <InlineConfirm.Target inlineConfirmId="delete" onClick={onClickSpy}>
19
19
  Delete
20
20
  </InlineConfirm.Target>
21
21
  </InlineConfirm>,
@@ -36,7 +36,7 @@ describe('InlineConfirm', () => {
36
36
  <button>open menu</button>
37
37
  </Menu.Target>
38
38
  <Menu.Dropdown>
39
- <InlineConfirm.Target component={Menu.Item} id="delete" onClick={onClickSpy}>
39
+ <InlineConfirm.Target component={Menu.Item} inlineConfirmId="delete" onClick={onClickSpy}>
40
40
  Delete
41
41
  </InlineConfirm.Target>
42
42
  </Menu.Dropdown>
@@ -45,7 +45,7 @@ describe('InlineConfirm', () => {
45
45
  );
46
46
 
47
47
  await user.click(screen.getByRole('button', {name: /open menu/i}));
48
- await user.click(screen.getByRole('menuitem', {name: /delete/i}));
48
+ await user.click(await screen.findByRole('menuitem', {name: /delete/i}));
49
49
 
50
50
  expect(onClickSpy).toHaveBeenCalledTimes(1);
51
51
  });
@@ -54,8 +54,28 @@ describe('InlineConfirm', () => {
54
54
  const user = userEvent.setup({delay: null});
55
55
  render(
56
56
  <InlineConfirm>
57
- <InlineConfirm.Target id="my-button-id">Remove</InlineConfirm.Target>
58
- <InlineConfirm.Prompt id="my-button-id" />
57
+ <InlineConfirm.Target inlineConfirmId="my-button-id">Remove</InlineConfirm.Target>
58
+ <InlineConfirm.Prompt inlineConfirmId="my-button-id" />
59
+ </InlineConfirm>,
60
+ );
61
+ expect(screen.queryByText('Are you sure?')).not.toBeInTheDocument();
62
+ expect(screen.getByRole('button', {name: 'Remove'})).toBeVisible();
63
+
64
+ await user.click(screen.getByRole('button', {name: 'Remove'}));
65
+
66
+ expect(screen.getByText('Are you sure?')).toBeVisible();
67
+ expect(screen.queryByRole('button', {name: 'Remove'})).not.toBeInTheDocument();
68
+ });
69
+
70
+ it('replace the children with a prompt when clicking on a button which requires confirmation even if the prompt is nested', async () => {
71
+ const user = userEvent.setup();
72
+ const Fixture = ({inlineConfirmId}: InlineConfirmComponentsProps) => (
73
+ <InlineConfirm.Prompt inlineConfirmId={inlineConfirmId} />
74
+ );
75
+ render(
76
+ <InlineConfirm>
77
+ <InlineConfirm.Target inlineConfirmId="my-button-id">Remove</InlineConfirm.Target>
78
+ <Fixture inlineConfirmId="my-button-id" />
59
79
  </InlineConfirm>,
60
80
  );
61
81
  expect(screen.queryByText('Are you sure?')).not.toBeInTheDocument();
@@ -72,9 +92,9 @@ describe('InlineConfirm', () => {
72
92
  const confirmSpy = vi.fn();
73
93
  render(
74
94
  <InlineConfirm>
75
- <InlineConfirm.Target id="my-button-id">Remove</InlineConfirm.Target>
95
+ <InlineConfirm.Target inlineConfirmId="my-button-id">Remove</InlineConfirm.Target>
76
96
  <InlineConfirm.Prompt
77
- id="my-button-id"
97
+ inlineConfirmId="my-button-id"
78
98
  label="Remove?"
79
99
  confirm={<Button onClick={confirmSpy}>I confirm</Button>}
80
100
  cancel={<Button>I changed my mind</Button>}
@@ -101,17 +121,17 @@ describe('InlineConfirm', () => {
101
121
  const user = userEvent.setup({delay: null});
102
122
  render(
103
123
  <InlineConfirm>
104
- <InlineConfirm.Target id="remove">Remove</InlineConfirm.Target>
124
+ <InlineConfirm.Target inlineConfirmId="remove">Remove</InlineConfirm.Target>
105
125
  <InlineConfirm.Prompt
106
- id="remove"
126
+ inlineConfirmId="remove"
107
127
  label="Delete X?"
108
128
  confirm={<Button>I confirm</Button>}
109
129
  cancel={<Button>Cancel</Button>}
110
130
  />
111
131
 
112
- <InlineConfirm.Target id="print">Print</InlineConfirm.Target>
132
+ <InlineConfirm.Target inlineConfirmId="print">Print</InlineConfirm.Target>
113
133
  <InlineConfirm.Prompt
114
- id="print"
134
+ inlineConfirmId="print"
115
135
  label="Print?"
116
136
  confirm={<Button>Yes</Button>}
117
137
  cancel={<Button>No, save the trees</Button>}
@@ -135,7 +155,12 @@ describe('InlineConfirm', () => {
135
155
  const onClickSpy = vi.fn();
136
156
  render(
137
157
  <InlineConfirm>
138
- <InlineConfirm.Target id="delete" onClick={onClickSpy} disabled disabledTooltip="You shall not pass">
158
+ <InlineConfirm.Target
159
+ inlineConfirmId="delete"
160
+ onClick={onClickSpy}
161
+ disabled
162
+ disabledTooltip="You shall not pass"
163
+ >
139
164
  Delete
140
165
  </InlineConfirm.Target>
141
166
  </InlineConfirm>,
@@ -147,6 +172,6 @@ describe('InlineConfirm', () => {
147
172
 
148
173
  await user.hover(deleteButton.parentElement);
149
174
 
150
- expect(screen.getByRole('tooltip', {name: /You shall not pass/i})).toBeInTheDocument();
175
+ expect(await screen.findByRole('tooltip', {name: /You shall not pass/i})).toBeInTheDocument();
151
176
  });
152
177
  });
@@ -19,8 +19,14 @@
19
19
  }
20
20
 
21
21
  /* Table.Actions */
22
+ .actionsDropdown {
23
+ text-align: left;
24
+ }
22
25
  .actionsGroup {
23
- display: inline-flex;
26
+ &:has(.actionsGroupItems:empty) {
27
+ /* Hide empty groups */
28
+ display: none;
29
+ }
24
30
  }
25
31
 
26
32
  /* Table.Filter */
@@ -37,6 +43,7 @@
37
43
  background-color: var(--mantine-color-gray-1);
38
44
  padding: var(--mantine-spacing-sm) var(--mantine-spacing-xl);
39
45
  position: relative;
46
+ min-height: 69px;
40
47
  }
41
48
 
42
49
  .headerGridInner {