@smwb/ui-react 2.7.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/README.md +27 -0
  2. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  3. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  4. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  5. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  6. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  7. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
  8. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  9. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  10. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  11. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  12. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  13. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  14. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  15. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -1
  16. package/dist/components/base/icon/icon.d.ts +6 -2
  17. package/dist/components/base/icon/icon.js +49 -37
  18. package/dist/components/base/icon/icon.js.map +1 -1
  19. package/dist/components/base/ripple/ripple.d.ts +3 -0
  20. package/dist/components/base/ripple/ripple.js +38 -23
  21. package/dist/components/base/ripple/ripple.js.map +1 -1
  22. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  23. package/dist/components/dataDisplay/avatar/avatar.js +50 -37
  24. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  25. package/dist/components/dataDisplay/badge/badge.js +37 -28
  26. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  27. package/dist/components/dataDisplay/card/card.d.ts +30 -2
  28. package/dist/components/dataDisplay/card/card.js +50 -23
  29. package/dist/components/dataDisplay/card/card.js.map +1 -1
  30. package/dist/components/dataDisplay/carousel/carousel.js +70 -70
  31. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  32. package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
  33. package/dist/components/dataDisplay/chart/chart.js +66 -53
  34. package/dist/components/dataDisplay/chart/chart.js.map +1 -1
  35. package/dist/components/dataDisplay/chat/chatIconButton.d.ts +1 -1
  36. package/dist/components/dataDisplay/chat/chatIconButton.js +30 -26
  37. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  38. package/dist/components/dataDisplay/chat/chatLayout.d.ts +3 -1
  39. package/dist/components/dataDisplay/chat/chatLayout.js +56 -55
  40. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  41. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +3 -1
  42. package/dist/components/dataDisplay/chip/chip.d.ts +31 -0
  43. package/dist/components/dataDisplay/chip/chip.js +110 -83
  44. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  45. package/dist/components/dataDisplay/chipGroup/chipGroup.js +34 -30
  46. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  47. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
  48. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  49. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  50. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  51. package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
  52. package/dist/components/dataDisplay/kanban/kanban.js +46 -35
  53. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
  54. package/dist/components/dataDisplay/lazyImage/lazyImage.js +31 -30
  55. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  56. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  57. package/dist/components/dataDisplay/list/list.js +15 -14
  58. package/dist/components/dataDisplay/list/list.js.map +1 -1
  59. package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
  60. package/dist/components/dataDisplay/meter/meter.js +24 -23
  61. package/dist/components/dataDisplay/meter/meter.js.map +1 -1
  62. package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
  63. package/dist/components/dataDisplay/personChip/personChip.js +39 -27
  64. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
  65. package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
  66. package/dist/components/dataDisplay/stat/stat.js +25 -13
  67. package/dist/components/dataDisplay/stat/stat.js.map +1 -1
  68. package/dist/components/dataDisplay/table/table.d.ts +16 -1
  69. package/dist/components/dataDisplay/table/table.js +40 -36
  70. package/dist/components/dataDisplay/table/table.js.map +1 -1
  71. package/dist/components/dataDisplay/table/tableBody.js +10 -4
  72. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  73. package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
  74. package/dist/components/dataDisplay/table/tableCell.js +20 -13
  75. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  76. package/dist/components/dataDisplay/table/tableColumns.d.ts +83 -0
  77. package/dist/components/dataDisplay/table/tableColumns.js +112 -0
  78. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  79. package/dist/components/dataDisplay/table/tableHead.js +9 -3
  80. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  81. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +24 -3
  82. package/dist/components/dataDisplay/table/tableHeadCell.js +60 -65
  83. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  84. package/dist/components/dataDisplay/table/tableRow.d.ts +3 -1
  85. package/dist/components/dataDisplay/table/tableRow.js +28 -16
  86. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  87. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  88. package/dist/components/dataDisplay/thumbCard/thumbCard.js +79 -59
  89. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  90. package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
  91. package/dist/components/dataDisplay/treeView/treeView.js +24 -23
  92. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  93. package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
  94. package/dist/components/feedBack/emptyState/emptyState.js +22 -12
  95. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
  96. package/dist/components/feedBack/message/message.d.ts +2 -0
  97. package/dist/components/feedBack/message/message.js +30 -19
  98. package/dist/components/feedBack/message/message.js.map +1 -1
  99. package/dist/components/feedBack/modal/modal.js +40 -40
  100. package/dist/components/feedBack/modal/modal.js.map +1 -1
  101. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  102. package/dist/components/feedBack/skeleton/skeleton.js +37 -34
  103. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  104. package/dist/components/feedBack/snackbar/snackbar.js +104 -103
  105. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  106. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  107. package/dist/components/feedBack/tooltip/tooltip.js +67 -47
  108. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  109. package/dist/components/inputs/button/button.d.ts +2 -0
  110. package/dist/components/inputs/button/button.js +62 -58
  111. package/dist/components/inputs/button/button.js.map +1 -1
  112. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  113. package/dist/components/inputs/buttonGroups/buttonGroup.js +40 -36
  114. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  115. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  116. package/dist/components/inputs/checkbox/checkbox.js +84 -59
  117. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  118. package/dist/components/inputs/datePicker/datePicker.js +170 -164
  119. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  120. package/dist/components/inputs/datePicker/datePickerDay.d.ts +1 -1
  121. package/dist/components/inputs/datePicker/datePickerDay.js +52 -44
  122. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  123. package/dist/components/inputs/datePicker/datePickerIconButton.d.ts +1 -1
  124. package/dist/components/inputs/datePicker/datePickerIconButton.js +32 -28
  125. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  126. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
  127. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  128. package/dist/components/inputs/floatingButton/floatingButton.js +32 -30
  129. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  130. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  131. package/dist/components/inputs/radioButton/radioButton.js +77 -58
  132. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  133. package/dist/components/inputs/rating/rating.d.ts +8 -0
  134. package/dist/components/inputs/rating/rating.js +85 -70
  135. package/dist/components/inputs/rating/rating.js.map +1 -1
  136. package/dist/components/inputs/selectField/dropdownMenu.d.ts +20 -1
  137. package/dist/components/inputs/selectField/dropdownMenu.js +266 -113
  138. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  139. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  140. package/dist/components/inputs/selectField/optionNavigation.js +38 -0
  141. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  142. package/dist/components/inputs/selectField/selectField.d.ts +31 -1
  143. package/dist/components/inputs/selectField/selectField.js +358 -218
  144. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  145. package/dist/components/inputs/slider/slider.d.ts +22 -1
  146. package/dist/components/inputs/slider/slider.js +330 -261
  147. package/dist/components/inputs/slider/slider.js.map +1 -1
  148. package/dist/components/inputs/textField/textField.d.ts +7 -0
  149. package/dist/components/inputs/textField/textField.js +118 -100
  150. package/dist/components/inputs/textField/textField.js.map +1 -1
  151. package/dist/components/inputs/textField/textFieldWrapper.d.ts +15 -1
  152. package/dist/components/inputs/textField/textFieldWrapper.js +45 -34
  153. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  154. package/dist/components/inputs/timePicker/timePicker.js +91 -85
  155. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  156. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  157. package/dist/components/inputs/toggle/toggle.js +80 -61
  158. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  159. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  160. package/dist/components/inputs/valueSlider/valueSlider.js +23 -22
  161. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  162. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  163. package/dist/components/layout/appLayout/appLayout.js +25 -24
  164. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  165. package/dist/components/layout/divider/divider.d.ts +2 -0
  166. package/dist/components/layout/divider/divider.js +23 -22
  167. package/dist/components/layout/divider/divider.js.map +1 -1
  168. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  169. package/dist/components/layout/floatingWindow/floatingWindow.js +145 -139
  170. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  171. package/dist/components/layout/grid/grid.d.ts +12 -1
  172. package/dist/components/layout/grid/grid.js +51 -36
  173. package/dist/components/layout/grid/grid.js.map +1 -1
  174. package/dist/components/layout/page/page.d.ts +2 -0
  175. package/dist/components/layout/page/page.js +16 -8
  176. package/dist/components/layout/page/page.js.map +1 -1
  177. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  178. package/dist/components/layout/pageHeader/pageHeader.js +22 -13
  179. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  180. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
  181. package/dist/components/layout/sectionHeader/sectionHeader.js +37 -27
  182. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  183. package/dist/components/layout/sheet/sheet.d.ts +2 -0
  184. package/dist/components/layout/sheet/sheet.js +80 -79
  185. package/dist/components/layout/sheet/sheet.js.map +1 -1
  186. package/dist/components/layout/stack/stack.d.ts +2 -0
  187. package/dist/components/layout/stack/stack.js +29 -17
  188. package/dist/components/layout/stack/stack.js.map +1 -1
  189. package/dist/components/navigation/appBar/appBar.d.ts +2 -0
  190. package/dist/components/navigation/appBar/appBar.js +24 -23
  191. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  192. package/dist/components/navigation/bottomBar/bottomBar.js +81 -77
  193. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  194. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  195. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +29 -27
  196. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  197. package/dist/components/navigation/menu/menu.d.ts +12 -0
  198. package/dist/components/navigation/menu/menu.js.map +1 -1
  199. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  200. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  201. package/dist/components/navigation/menu/menuFloating.js +42 -30
  202. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  203. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  204. package/dist/components/navigation/menu/menuItem.js +60 -48
  205. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  206. package/dist/components/navigation/menu/menuList.d.ts +5 -1
  207. package/dist/components/navigation/menu/menuList.js +30 -19
  208. package/dist/components/navigation/menu/menuList.js.map +1 -1
  209. package/dist/components/navigation/menu/menuSubmenu.js +53 -40
  210. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  211. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  212. package/dist/components/navigation/pagination/pagination.js +51 -49
  213. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  214. package/dist/components/navigation/sidebar/sidebar.js +39 -38
  215. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  216. package/dist/components/navigation/stepper/stepper.d.ts +2 -0
  217. package/dist/components/navigation/stepper/stepper.js +37 -28
  218. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  219. package/dist/components/navigation/tabs/tab/tab.js +42 -40
  220. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  221. package/dist/components/navigation/tabs/tabs.d.ts +6 -0
  222. package/dist/components/navigation/tabs/tabs.js +83 -86
  223. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  224. package/dist/connects/rt/table/headerCellRenderer.d.ts +4 -1
  225. package/dist/connects/rt/table/headerCellRenderer.js +45 -15
  226. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -1
  227. package/dist/connects/rt/table/table.d.ts +15 -1
  228. package/dist/connects/rt/table/table.js +125 -131
  229. package/dist/connects/rt/table/table.js.map +1 -1
  230. package/dist/headless/components/base/icon/icon.js +49 -37
  231. package/dist/headless/components/base/icon/icon.js.map +1 -1
  232. package/dist/headless/components/base/ripple/ripple.js +42 -27
  233. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  234. package/dist/headless/components/dataDisplay/avatar/avatar.js +51 -38
  235. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  236. package/dist/headless/components/dataDisplay/badge/badge.js +37 -28
  237. package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
  238. package/dist/headless/components/dataDisplay/card/card.js +50 -23
  239. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  240. package/dist/headless/components/dataDisplay/carousel/carousel.js +55 -55
  241. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  242. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +30 -26
  243. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  244. package/dist/headless/components/dataDisplay/chat/chatLayout.js +56 -55
  245. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  246. package/dist/headless/components/dataDisplay/chip/chip.js +108 -81
  247. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  248. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +35 -31
  249. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  250. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  251. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  252. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  253. package/dist/headless/components/dataDisplay/kanban/kanban.js +45 -34
  254. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
  255. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +30 -29
  256. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  257. package/dist/headless/components/dataDisplay/list/list.js +15 -14
  258. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  259. package/dist/headless/components/dataDisplay/meter/meter.js +19 -18
  260. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
  261. package/dist/headless/components/dataDisplay/personChip/personChip.js +39 -27
  262. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
  263. package/dist/headless/components/dataDisplay/stat/stat.js +27 -15
  264. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
  265. package/dist/headless/components/dataDisplay/table/table.js +40 -36
  266. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  267. package/dist/headless/components/dataDisplay/table/tableBody.js +10 -4
  268. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  269. package/dist/headless/components/dataDisplay/table/tableCell.js +20 -13
  270. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  271. package/dist/headless/components/dataDisplay/table/tableColumns.js +112 -0
  272. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  273. package/dist/headless/components/dataDisplay/table/tableHead.js +9 -3
  274. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  275. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +60 -65
  276. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  277. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -16
  278. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  279. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +78 -58
  280. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  281. package/dist/headless/components/dataDisplay/treeView/treeView.js +24 -23
  282. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  283. package/dist/headless/components/feedBack/emptyState/emptyState.js +21 -11
  284. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
  285. package/dist/headless/components/feedBack/message/message.js +31 -20
  286. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  287. package/dist/headless/components/feedBack/modal/modal.js +44 -44
  288. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  289. package/dist/headless/components/feedBack/skeleton/skeleton.js +38 -35
  290. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  291. package/dist/headless/components/feedBack/snackbar/snackbar.js +108 -107
  292. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  293. package/dist/headless/components/feedBack/tooltip/tooltip.js +67 -47
  294. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  295. package/dist/headless/components/inputs/button/button.js +62 -58
  296. package/dist/headless/components/inputs/button/button.js.map +1 -1
  297. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +40 -36
  298. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  299. package/dist/headless/components/inputs/checkbox/checkbox.js +85 -60
  300. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  301. package/dist/headless/components/inputs/datePicker/datePicker.js +170 -164
  302. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  303. package/dist/headless/components/inputs/datePicker/datePickerDay.js +52 -44
  304. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  305. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +32 -28
  306. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  307. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
  308. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  309. package/dist/headless/components/inputs/floatingButton/floatingButton.js +32 -30
  310. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  311. package/dist/headless/components/inputs/radioButton/radioButton.js +77 -58
  312. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  313. package/dist/headless/components/inputs/rating/rating.js +85 -70
  314. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  315. package/dist/headless/components/inputs/selectField/dropdownMenu.js +266 -113
  316. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  317. package/dist/headless/components/inputs/selectField/optionNavigation.js +38 -0
  318. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  319. package/dist/headless/components/inputs/selectField/selectField.js +358 -218
  320. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  321. package/dist/headless/components/inputs/slider/slider.js +330 -261
  322. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  323. package/dist/headless/components/inputs/textField/textField.js +118 -100
  324. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  325. package/dist/headless/components/inputs/textField/textFieldWrapper.js +45 -34
  326. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  327. package/dist/headless/components/inputs/timePicker/timePicker.js +91 -85
  328. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  329. package/dist/headless/components/inputs/toggle/toggle.js +79 -60
  330. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  331. package/dist/headless/components/inputs/valueSlider/valueSlider.js +25 -24
  332. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  333. package/dist/headless/components/layout/appLayout/appLayout.js +27 -26
  334. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  335. package/dist/headless/components/layout/divider/divider.js +18 -17
  336. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  337. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +145 -139
  338. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  339. package/dist/headless/components/layout/grid/grid.js +48 -33
  340. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  341. package/dist/headless/components/layout/page/page.js +15 -7
  342. package/dist/headless/components/layout/page/page.js.map +1 -1
  343. package/dist/headless/components/layout/pageHeader/pageHeader.js +20 -11
  344. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  345. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +36 -26
  346. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  347. package/dist/headless/components/layout/sheet/sheet.js +80 -79
  348. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  349. package/dist/headless/components/layout/stack/stack.js +29 -17
  350. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  351. package/dist/headless/components/navigation/appBar/appBar.js +15 -14
  352. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  353. package/dist/headless/components/navigation/bottomBar/bottomBar.js +81 -77
  354. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  355. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +32 -30
  356. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  357. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  358. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  359. package/dist/headless/components/navigation/menu/menuFloating.js +42 -30
  360. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  361. package/dist/headless/components/navigation/menu/menuItem.js +60 -48
  362. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  363. package/dist/headless/components/navigation/menu/menuList.js +30 -19
  364. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  365. package/dist/headless/components/navigation/menu/menuSubmenu.js +53 -40
  366. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  367. package/dist/headless/components/navigation/pagination/pagination.js +51 -49
  368. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  369. package/dist/headless/components/navigation/sidebar/sidebar.js +29 -28
  370. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  371. package/dist/headless/components/navigation/stepper/stepper.js +42 -33
  372. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  373. package/dist/headless/components/navigation/tabs/tab/tab.js +41 -39
  374. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  375. package/dist/headless/components/navigation/tabs/tabs.js +95 -98
  376. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  377. package/dist/headless/hooks/useDismissOnEscape.js +16 -0
  378. package/dist/headless/hooks/useDismissOnEscape.js.map +1 -0
  379. package/dist/headless/hooks/useFocusTrap.js +1 -0
  380. package/dist/headless/hooks/useFocusTrap.js.map +1 -1
  381. package/dist/headless/hooks/useHelperText.js +13 -0
  382. package/dist/headless/hooks/useHelperText.js.map +1 -0
  383. package/dist/headless/utils/controlProps.js +14 -0
  384. package/dist/headless/utils/controlProps.js.map +1 -0
  385. package/dist/headless/utils/overlayLayer.js +14 -7
  386. package/dist/headless/utils/overlayLayer.js.map +1 -1
  387. package/dist/headless/utils/ownClick.js +40 -0
  388. package/dist/headless/utils/ownClick.js.map +1 -0
  389. package/dist/headless/utils/readOnlyToggle.js +14 -0
  390. package/dist/headless/utils/readOnlyToggle.js.map +1 -0
  391. package/dist/hooks/useDismissOnEscape.d.ts +11 -0
  392. package/dist/hooks/useDismissOnEscape.js +16 -0
  393. package/dist/hooks/useDismissOnEscape.js.map +1 -0
  394. package/dist/hooks/useFocusTrap.d.ts +2 -0
  395. package/dist/hooks/useFocusTrap.js +1 -0
  396. package/dist/hooks/useFocusTrap.js.map +1 -1
  397. package/dist/hooks/useHelperText.d.ts +21 -0
  398. package/dist/hooks/useHelperText.js +13 -0
  399. package/dist/hooks/useHelperText.js.map +1 -0
  400. package/dist/index.cjs +2 -2
  401. package/dist/index.cjs.map +1 -1
  402. package/dist/utils/controlProps.d.ts +16 -0
  403. package/dist/utils/controlProps.js +14 -0
  404. package/dist/utils/controlProps.js.map +1 -0
  405. package/dist/utils/overlayLayer.d.ts +15 -3
  406. package/dist/utils/overlayLayer.js +14 -7
  407. package/dist/utils/overlayLayer.js.map +1 -1
  408. package/dist/utils/ownClick.d.ts +16 -0
  409. package/dist/utils/ownClick.js +40 -0
  410. package/dist/utils/ownClick.js.map +1 -0
  411. package/dist/utils/readOnlyToggle.d.ts +15 -0
  412. package/dist/utils/readOnlyToggle.js +14 -0
  413. package/dist/utils/readOnlyToggle.js.map +1 -0
  414. package/package.json +2 -2
@@ -1,11 +1,19 @@
1
1
  import React, { TdHTMLAttributes } from "react";
2
- import { ColumnDef, RowData, Row, ColumnResizeMode, ColumnSizingState, ColumnOrderState } from "@tanstack/react-table";
2
+ import { ColumnDef, RowData, Row, ColumnResizeMode, ColumnSizingState, ColumnOrderState, HeaderContext, Renderable } from "@tanstack/react-table";
3
3
  declare module "@tanstack/table-core" {
4
4
  interface ColumnMeta<TData extends RowData, TValue> {
5
5
  cellProps?: TdHTMLAttributes<HTMLTableCellElement>;
6
6
  draggableColumn?: boolean;
7
7
  /** The column's name on each cell when rows stack as cards (`stackBelow`); a string `header` is used by default. */
8
8
  label?: string;
9
+ /**
10
+ * The column's controls in its head cell, such as a filter field or a menu
11
+ * button. They go to the cell's `actions`, after the sort control and
12
+ * outside it, so they stay out of its accessible name, while `header` is
13
+ * drawn inside it. Whatever `flexRender` takes: a node, or a component that
14
+ * gets the header context (`{ column, header, table }`), as `header` does.
15
+ */
16
+ headerActions?: Renderable<HeaderContext<TData, TValue>>;
9
17
  }
10
18
  }
11
19
  import { TableProps as SMWBTableProps } from "../../../components/dataDisplay/table";
@@ -34,6 +42,12 @@ export type TableProps<TData extends RowData, TValue = unknown> = SMWBTableProps
34
42
  headerCellInnerRenderer?: React.ReactElement;
35
43
  onBodyRowClick?: (row: Row<TData>, event: React.MouseEvent<HTMLTableRowElement>) => void;
36
44
  data: TData[];
45
+ /**
46
+ * TanStack column definitions. A column's `meta` may add `headerActions`
47
+ * (controls drawn beside the sort control in its head cell), `label` (its
48
+ * name on stacked rows), `cellProps` (attributes of its body cells) and
49
+ * `draggableColumn`.
50
+ */
37
51
  columns: ColumnDef<TData, TValue>[];
38
52
  columnResizeMode?: ColumnResizeMode;
39
53
  };
@@ -1,194 +1,188 @@
1
- import { jsxs as x, jsx as o, Fragment as le } from "react/jsx-runtime";
1
+ import { jsxs as v, jsx as o, Fragment as se } from "react/jsx-runtime";
2
2
  import '../../../assets/styles/less/connects/rt/table.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
- import D, { useState as p, useRef as ae, useEffect as re } from "react";
5
- import { getCoreRowModel as se, getPaginationRowModel as me, getSortedRowModel as ce, getExpandedRowModel as ge, useReactTable as fe, flexRender as F } from "@tanstack/react-table";
6
- import { getColumnName as g, getDefaultColumnSizingState as de, columnSizingStateReducer as ue } from "./utils.js";
7
- import { ProgressIndicator as pe } from "../../../components/feedBack/progressIndicator/progressIndicator.js";
8
- import Se from "../../../components/feedBack/message/message.js";
9
- import { DraggableColumnHeaderWrapper as ze } from "./draggableHeader.js";
4
+ import M, { useState as z, useEffect as re } from "react";
5
+ import { getCoreRowModel as me, getPaginationRowModel as ce, getSortedRowModel as ge, getExpandedRowModel as fe, useReactTable as de, flexRender as T } from "@tanstack/react-table";
6
+ import { getColumnName as g, getDefaultColumnSizingState as ue, columnSizingStateReducer as pe } from "./utils.js";
7
+ import { ProgressIndicator as Se } from "../../../components/feedBack/progressIndicator/progressIndicator.js";
8
+ import ze from "../../../components/feedBack/message/message.js";
9
+ import { DraggableColumnHeaderWrapper as he } from "./draggableHeader.js";
10
10
  import be from "../../../components/dataDisplay/table/table.js";
11
- import he from "../../../components/dataDisplay/table/tableHead.js";
11
+ import Ce from "../../../components/dataDisplay/table/tableHead.js";
12
12
  import d from "../../../components/dataDisplay/table/tableRow.js";
13
- import Ce from "../../../components/dataDisplay/table/tableHeadCell.js";
13
+ import xe from "../../../components/dataDisplay/table/tableHeadCell.js";
14
14
  import Re from "../../../components/dataDisplay/table/tableBody.js";
15
- import S from "../../../components/dataDisplay/table/tableCell.js";
15
+ import h from "../../../components/dataDisplay/table/tableCell.js";
16
16
  const He = ({
17
- data: z,
17
+ data: b,
18
18
  columns: i,
19
- withPagination: _,
20
- isInfinite: T,
21
- limit: M = 5,
22
- limitOptions: $ = [5, 10, 15],
23
- dense: L,
24
- sortable: v,
25
- expandable: q,
26
- draggableColumns: G,
27
- columnResizeMode: J = "onChange",
28
- enableColumnResizing: K,
29
- onColumnSizingChange: I,
30
- onColumnOrderChange: Q,
31
- getRowCanExpand: U,
32
- renderSubComponent: w,
33
- cellAlign: E,
34
- isLoading: N = !1,
35
- onNextPage: b,
36
- onPrevPage: h,
37
- error: O,
38
- onHeadCellClick: C,
39
- headerCellInnerRenderer: W,
19
+ withPagination: I,
20
+ isInfinite: w,
21
+ limit: N = 5,
22
+ limitOptions: J = [5, 10, 15],
23
+ dense: K,
24
+ sortable: E,
25
+ expandable: L,
26
+ draggableColumns: Q,
27
+ columnResizeMode: U = "onChange",
28
+ enableColumnResizing: V,
29
+ onColumnSizingChange: O,
30
+ onColumnOrderChange: X,
31
+ getRowCanExpand: Y,
32
+ renderSubComponent: W,
33
+ cellAlign: y,
34
+ isLoading: j = !1,
35
+ onNextPage: C,
36
+ onPrevPage: x,
37
+ error: P,
38
+ onHeadCellClick: R,
39
+ headerCellInnerRenderer: F,
40
40
  onBodyRowClick: u,
41
- ...V
41
+ ...D
42
42
  }) => {
43
- const [X, Y] = p([]), [Z, y] = D.useState(
44
- i.map((n) => g(n))
45
- ), [f, A] = p(null), [s, j] = p(de(i)), [P, B] = p({
43
+ var q;
44
+ const [Z, B] = z([]), [k, H] = M.useState(
45
+ i.map((t) => g(t))
46
+ ), [f, ee] = z(null), [r, $] = z(ue(i)), [A, te] = z({
46
47
  startOffset: null,
47
48
  startSize: null,
48
49
  deltaOffset: null,
49
50
  deltaPercentage: null,
50
51
  isResizingColumn: !1,
51
52
  columnSizingStart: []
52
- }), R = ae(!1);
53
+ });
53
54
  re(() => {
54
55
  if (f) {
55
- const n = (f == null ? void 0 : f.offsetWidth) || 0, e = i.filter((t) => t.size), r = n - i.reduce((t, ie) => t + (ie.size || 0), 0), l = i.length - e.length, a = l ? r / l : 10;
56
- j(
57
- i.map((t) => ({
58
- size: t.size ? t.size : a,
56
+ const t = (f == null ? void 0 : f.offsetWidth) || 0, e = i.filter((n) => n.size), s = t - i.reduce((n, S) => n + (S.size || 0), 0), l = i.length - e.length, a = l ? s / l : 10;
57
+ $(
58
+ i.map((n) => ({
59
+ size: n.size ? n.size : a,
59
60
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
60
- name: g(t)
61
- })).reduce(ue, {})
62
- ), y(i.map((t) => g(t)));
61
+ name: g(n)
62
+ })).reduce(pe, {})
63
+ ), H(i.map((n) => g(n)));
63
64
  }
64
65
  }, [f, i]);
65
66
  const m = {
66
- data: z,
67
+ data: b,
67
68
  columns: i,
68
- state: { sorting: X, columnSizing: s, columnSizingInfo: P, columnOrder: Z },
69
- initialState: { pagination: { pageIndex: 0, pageSize: M } },
70
- manualPagination: T,
71
- columnResizeMode: J,
72
- onColumnOrderChange: y,
73
- getCoreRowModel: se(),
74
- onColumnSizingChange: (n) => {
75
- const e = typeof n == "function" ? n(s) : n, r = {};
76
- Object.keys(e).forEach((t) => {
77
- e[t] !== s[t] && (r[t] = e[t]);
69
+ state: { sorting: Z, columnSizing: r, columnSizingInfo: A, columnOrder: k },
70
+ initialState: { pagination: { pageIndex: 0, pageSize: N } },
71
+ manualPagination: w,
72
+ columnResizeMode: U,
73
+ onColumnOrderChange: H,
74
+ getCoreRowModel: me(),
75
+ onColumnSizingChange: (t) => {
76
+ const e = typeof t == "function" ? t(r) : t, s = {};
77
+ Object.keys(e).forEach((n) => {
78
+ e[n] !== r[n] && (s[n] = e[n]);
78
79
  });
79
- const l = Object.keys(r)[0], a = i.findIndex((t) => g(t) === l);
80
+ const l = Object.keys(s)[0], a = i.findIndex((n) => g(n) === l);
80
81
  if (a >= 0 && a < i.length - 1) {
81
- const t = g(i[a + 1]);
82
- e[t] = s[t] - (e[l] - s[l]);
82
+ const n = g(i[a + 1]);
83
+ e[n] = r[n] - (e[l] - r[l]);
83
84
  } else if (a === i.length - 1) {
84
- const t = g(i[a - 1]);
85
- e[t] = s[t] - (e[l] - s[l]);
85
+ const n = g(i[a - 1]);
86
+ e[n] = r[n] - (e[l] - r[l]);
86
87
  }
87
- j(e), I && setTimeout(() => I(s, e));
88
+ $(e), O && setTimeout(() => O(r, e));
88
89
  },
89
- onColumnSizingInfoChange: (n) => {
90
- B(typeof n == "function" ? n(P) : n);
90
+ onColumnSizingInfoChange: (t) => {
91
+ te(typeof t == "function" ? t(A) : t);
91
92
  }
92
93
  };
93
- m.enableColumnResizing = !!K, _ && (m.getPaginationRowModel = me()), v && (m.getSortedRowModel = ce(), m.onSortingChange = Y), q && (m.getRowCanExpand = U, m.getExpandedRowModel = ge());
94
- const c = fe({
94
+ m.enableColumnResizing = !!V, I && (m.getPaginationRowModel = ce()), E && (m.getSortedRowModel = ge(), m.onSortingChange = B), L && (m.getRowCanExpand = Y, m.getExpandedRowModel = fe());
95
+ const c = de({
95
96
  ...m
96
- }), k = () => {
97
- c.nextPage(), b == null || b();
98
- }, ee = () => {
99
- c.previousPage(), h == null || h();
100
- }, te = (n) => (e) => {
101
- u == null || u(n, e);
97
+ }), ne = () => {
98
+ c.nextPage(), C == null || C();
99
+ }, oe = () => {
100
+ c.previousPage(), x == null || x();
101
+ }, ie = (t) => (e) => {
102
+ u == null || u(t, e);
102
103
  }, {
103
- pagination: { pageIndex: ne, pageSize: oe }
104
+ pagination: { pageIndex: le, pageSize: ae }
104
105
  } = c.getState();
105
- let H;
106
- return _ && (H = {
107
- limit: oe,
108
- page: ne + 1,
109
- limitOptions: $,
110
- onNext: k,
111
- onPrev: ee,
106
+ let p;
107
+ return I && (p = {
108
+ limit: ae,
109
+ page: le + 1,
110
+ limitOptions: J,
111
+ onNext: ne,
112
+ onPrev: oe,
112
113
  onLimitChange: c.setPageSize,
113
- ...T ? { hasNextPage: z.length >= M } : { totalCount: z.length }
114
- }), /* @__PURE__ */ x(
114
+ ...w ? { hasNextPage: b.length >= N } : { totalCount: b.length }
115
+ }), /* @__PURE__ */ v(
115
116
  be,
116
117
  {
117
- paginationSettings: H,
118
- dense: L,
119
- isLoading: N,
120
- hovered: !!u,
121
- ...V,
122
- ref: A,
118
+ dense: K,
119
+ isLoading: j,
120
+ ...D,
121
+ paginationSettings: p != null ? p : D.paginationSettings,
122
+ hovered: (q = D.hovered) != null ? q : !!u,
123
+ ref: ee,
123
124
  children: [
124
- /* @__PURE__ */ o(he, { children: c.getHeaderGroups().map((n) => /* @__PURE__ */ o(d, { children: n.headers.map((e) => {
125
- var a;
126
- const r = !!v && e.column.getCanSort(), l = e.getResizeHandler();
125
+ /* @__PURE__ */ o(Ce, { children: c.getHeaderGroups().map((t) => /* @__PURE__ */ o(d, { children: t.headers.map((e) => {
126
+ var S, G;
127
+ const s = !!E && e.column.getCanSort(), l = e.getResizeHandler(), a = e.isPlaceholder || (S = e.column.columnDef.meta) == null ? void 0 : S.headerActions, n = e.column.getCanResize() ? /* @__PURE__ */ o(
128
+ "div",
129
+ {
130
+ onMouseDown: (_) => {
131
+ _.preventDefault(), _.stopPropagation(), l(_);
132
+ },
133
+ onTouchStart: l,
134
+ className: `smwb-rt-table--resizer ${e.column.getIsResizing() ? "smwb-rt-table--isResizing" : ""}`
135
+ }
136
+ ) : null;
127
137
  return /* @__PURE__ */ o(
128
- Ce,
138
+ xe,
129
139
  {
130
- cellAlign: E,
131
- sortable: r,
140
+ cellAlign: y,
141
+ sortable: s,
132
142
  sortDirection: e.column.getIsSorted(),
133
- onSort: () => {
134
- R.current || e.column.toggleSorting();
135
- },
143
+ onSort: () => e.column.toggleSorting(),
136
144
  onClick: () => {
137
- C == null || C(e.column.columnDef);
145
+ R == null || R(e.column.columnDef);
138
146
  },
139
147
  style: {
140
- cursor: r ? "pointer" : "default",
148
+ cursor: s ? "pointer" : "default",
141
149
  width: e.getSize()
142
150
  },
151
+ actions: a || n ? /* @__PURE__ */ v(se, { children: [
152
+ a ? T(a, e.getContext()) : null,
153
+ n
154
+ ] }) : void 0,
143
155
  children: /* @__PURE__ */ o(
144
- ze,
156
+ he,
145
157
  {
146
- draggableColumn: G && ((a = e.column.columnDef.meta) == null ? void 0 : a.draggableColumn),
158
+ draggableColumn: Q && ((G = e.column.columnDef.meta) == null ? void 0 : G.draggableColumn),
147
159
  table: c,
148
- onColumnOrderChange: Q,
160
+ onColumnOrderChange: X,
149
161
  header: e,
150
- children: /* @__PURE__ */ x(le, { children: [
151
- /* @__PURE__ */ o("div", { children: e.isPlaceholder ? null : W ? D.cloneElement(W, { header: e }) : F(e.column.columnDef.header, e.getContext()) }),
152
- e.column.getCanResize() && /* @__PURE__ */ o(
153
- "div",
154
- {
155
- onMouseDown: (t) => {
156
- t.preventDefault(), t.stopPropagation(), R.current = !0, document.addEventListener(
157
- "mouseup",
158
- () => setTimeout(() => {
159
- R.current = !1;
160
- }),
161
- { once: !0 }
162
- ), l(t);
163
- },
164
- onTouchStart: e.getResizeHandler(),
165
- className: `smwb-rt-table--resizer ${e.column.getIsResizing() ? "smwb-rt-table--isResizing" : ""}`
166
- }
167
- )
168
- ] })
162
+ children: /* @__PURE__ */ o("div", { children: e.isPlaceholder ? null : F ? M.cloneElement(F, { header: e }) : T(e.column.columnDef.header, e.getContext()) })
169
163
  },
170
164
  e.id
171
165
  )
172
166
  },
173
167
  e.id
174
168
  );
175
- }) }, n.id)) }),
176
- /* @__PURE__ */ o(Re, { children: N ? /* @__PURE__ */ o(d, { className: "smwb-table__loader__row", children: /* @__PURE__ */ o(S, { className: "smwb-table__loader", children: /* @__PURE__ */ o(pe, { variant: "circular", type: "indeterminate" }) }) }) : O ? /* @__PURE__ */ o(d, { className: "smwb-table__loader__row", children: /* @__PURE__ */ o(S, { className: "smwb-table__loader", children: /* @__PURE__ */ o(Se, { variant: "filled", type: "error", children: O }) }) }) : c.getRowModel().rows.map((n) => /* @__PURE__ */ x(D.Fragment, { children: [
177
- /* @__PURE__ */ o(d, { onClick: te(n), children: n.getVisibleCells().map((e) => {
178
- var r, l, a;
169
+ }) }, t.id)) }),
170
+ /* @__PURE__ */ o(Re, { children: j ? /* @__PURE__ */ o(d, { className: "smwb-table__loader__row", children: /* @__PURE__ */ o(h, { className: "smwb-table__loader", children: /* @__PURE__ */ o(Se, { variant: "circular", type: "indeterminate" }) }) }) : P ? /* @__PURE__ */ o(d, { className: "smwb-table__loader__row", children: /* @__PURE__ */ o(h, { className: "smwb-table__loader", children: /* @__PURE__ */ o(ze, { variant: "filled", type: "error", children: P }) }) }) : c.getRowModel().rows.map((t) => /* @__PURE__ */ v(M.Fragment, { children: [
171
+ /* @__PURE__ */ o(d, { onClick: ie(t), children: t.getVisibleCells().map((e) => {
172
+ var s, l, a;
179
173
  return /* @__PURE__ */ o(
180
- S,
174
+ h,
181
175
  {
182
- cellAlign: E,
183
- label: (l = (r = e.column.columnDef.meta) == null ? void 0 : r.label) != null ? l : typeof e.column.columnDef.header == "string" ? e.column.columnDef.header : void 0,
176
+ cellAlign: y,
177
+ label: ((l = (s = e.column.columnDef.meta) == null ? void 0 : s.label) != null ? l : typeof e.column.columnDef.header == "string" ? e.column.columnDef.header : void 0) || !1,
184
178
  ...(a = e.column.columnDef.meta) == null ? void 0 : a.cellProps,
185
- children: F(e.column.columnDef.cell, e.getContext())
179
+ children: T(e.column.columnDef.cell, e.getContext())
186
180
  },
187
181
  e.id
188
182
  );
189
- }) }, n.id),
190
- n.getIsExpanded() && w && /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o(S, { colSpan: n.getVisibleCells().length, children: w({ row: n }) }) }, `${n.id}_expand`)
191
- ] }, n.id)) })
183
+ }) }, t.id),
184
+ t.getIsExpanded() && W && /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o(h, { colSpan: t.getVisibleCells().length, children: W({ row: t }) }) }, `${t.id}_expand`)
185
+ ] }, t.id)) })
192
186
  ]
193
187
  }
194
188
  );
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../src/connects/rt/table/table.tsx"],"sourcesContent":["import React, { TdHTMLAttributes, useState, useEffect, useRef } from \"react\";\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n ColumnDef,\n getPaginationRowModel,\n getExpandedRowModel,\n TableOptions,\n SortingState,\n getSortedRowModel,\n RowData,\n Row,\n ColumnResizeMode,\n ColumnSizingState,\n ColumnSizingInfoState,\n ColumnOrderState,\n} from \"@tanstack/react-table\";\n\nimport { getColumnName, getDefaultColumnSizingState, columnSizingStateReducer } from \"./utils\";\n\ndeclare module \"@tanstack/table-core\" {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ColumnMeta<TData extends RowData, TValue> {\n cellProps?: TdHTMLAttributes<HTMLTableCellElement>;\n draggableColumn?: boolean;\n /** The column's name on each cell when rows stack as cards (`stackBelow`); a string `header` is used by default. */\n label?: string;\n }\n}\n\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeadCell,\n TableRow,\n TableProps as SMWBTableProps,\n} from \"../../../components/dataDisplay/table\";\nimport { TablePaginationProps } from \"../../../components/dataDisplay/table\";\nimport ProgressIndicator from \"../../../components/feedBack/progressIndicator/progressIndicator\";\nimport Message from \"../../../components/feedBack/message/message\";\nimport { DraggableColumnHeaderWrapper } from \"./draggableHeader\";\n\nexport type TableProps<TData extends RowData, TValue = unknown> = SMWBTableProps & {\n withPagination?: boolean;\n isInfinite?: boolean;\n dense?: boolean;\n limit?: number;\n limitOptions?: number[];\n sortable?: boolean;\n expandable?: boolean;\n draggableColumns?: boolean;\n enableColumnResizing?: boolean;\n onColumnSizingChange?: (oldValue: ColumnSizingState, newValue: ColumnSizingState) => void;\n onColumnOrderChange?: (oldValue: ColumnOrderState, newValue: ColumnOrderState) => void;\n getRowCanExpand?: (row: Row<TData>) => boolean;\n renderSubComponent?: (props: { row: Row<TData> }) => React.ReactElement;\n cellAlign?: \"left\" | \"right\" | \"center\";\n isLoading?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n error?: string;\n onHeadCellClick?: (colDef?: ColumnDef<TData, TValue>) => void;\n headerCellInnerRenderer?: React.ReactElement;\n onBodyRowClick?: (row: Row<TData>, event: React.MouseEvent<HTMLTableRowElement>) => void;\n data: TData[];\n columns: ColumnDef<TData, TValue>[];\n columnResizeMode?: ColumnResizeMode;\n};\n\nexport const TableWrapper = <TData extends RowData, TValue = unknown>({\n data,\n columns,\n withPagination,\n isInfinite,\n limit = 5,\n limitOptions = [5, 10, 15],\n dense,\n sortable,\n expandable,\n draggableColumns,\n columnResizeMode = \"onChange\",\n enableColumnResizing,\n onColumnSizingChange,\n onColumnOrderChange,\n getRowCanExpand,\n renderSubComponent,\n cellAlign,\n isLoading = false,\n onNextPage,\n onPrevPage,\n error,\n onHeadCellClick,\n headerCellInnerRenderer,\n onBodyRowClick,\n ...props\n}: TableProps<TData, TValue>) => {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnOrder, setColumnOrder] = React.useState<ColumnOrderState>(\n columns.map((column) => getColumnName(column))\n );\n const [tableRef, setTableRef] = useState<HTMLDivElement | null>(null);\n const [columnSizing, setColumnSizing] = useState<ColumnSizingState>(getDefaultColumnSizingState(columns));\n const [columnSizingInfo, setColumnSizingInfo] = useState<ColumnSizingInfoState>({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n });\n // TableHeadCell renders its children inside its sort control, so the column\n // resizer sits there too, and the click that ends a press on it would sort.\n // That click lands on the resizer or, once the column stops at its minimum\n // width and the pointer moves on over the header, on the sort control itself\n // (the nearest common ancestor of press and release). The flag is up from the\n // press until the release has been handled; sorting skips clicks meanwhile.\n const resizePressed = useRef(false);\n useEffect(() => {\n if (tableRef) {\n const totalSize: number = tableRef?.offsetWidth || 0;\n const columnWithSize = columns.filter((el) => el.size);\n const totalSizeWithoutConst = totalSize - columns.reduce((sum, el) => sum + (el.size || 0), 0);\n const columnCountWithoutConstSize = columns.length - columnWithSize.length;\n const avgSize = columnCountWithoutConstSize ? totalSizeWithoutConst / columnCountWithoutConstSize : 10;\n setColumnSizing(\n columns\n .map((el) => ({\n size: el.size ? el.size : avgSize,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: getColumnName(el),\n }))\n .reduce(columnSizingStateReducer, {})\n );\n setColumnOrder(columns.map((column) => getColumnName(column)));\n }\n }, [tableRef, columns]);\n\n const options: TableOptions<TData> = {\n data,\n columns,\n state: { sorting, columnSizing, columnSizingInfo, columnOrder },\n initialState: { pagination: { pageIndex: 0, pageSize: limit } },\n manualPagination: isInfinite,\n columnResizeMode,\n onColumnOrderChange: setColumnOrder,\n getCoreRowModel: getCoreRowModel(),\n onColumnSizingChange: (updater) => {\n const newValue = typeof updater === \"function\" ? updater(columnSizing) : updater;\n const diff: ColumnSizingState = {};\n Object.keys(newValue).forEach((newValueColumn) => {\n if (newValue[newValueColumn] !== columnSizing[newValueColumn]) {\n diff[newValueColumn] = newValue[newValueColumn];\n }\n });\n // Алгоритм не учитывает, что колонки могут меняться местами и что может измениться сразу несколько колонок\n // двигаем соседнюю колонку на столько же, на сколько изменили ширину текущей\n const diffColumnName = Object.keys(diff)[0];\n const columnIndex = columns.findIndex((el) => getColumnName(el) === diffColumnName);\n if (columnIndex >= 0 && columnIndex < columns.length - 1) {\n const rightColumnName = getColumnName(columns[columnIndex + 1]);\n newValue[rightColumnName] =\n columnSizing[rightColumnName] - (newValue[diffColumnName] - columnSizing[diffColumnName]);\n } else if (columnIndex === columns.length - 1) {\n const leftColumnName = getColumnName(columns[columnIndex - 1]);\n newValue[leftColumnName] =\n columnSizing[leftColumnName] - (newValue[diffColumnName] - columnSizing[diffColumnName]);\n }\n setColumnSizing(newValue);\n if (onColumnSizingChange) {\n setTimeout(() => onColumnSizingChange(columnSizing, newValue));\n }\n },\n onColumnSizingInfoChange: (updater) => {\n setColumnSizingInfo(typeof updater === \"function\" ? updater(columnSizingInfo) : updater);\n },\n };\n\n options.enableColumnResizing = !!enableColumnResizing;\n\n if (withPagination) {\n options.getPaginationRowModel = getPaginationRowModel();\n }\n if (sortable) {\n options.getSortedRowModel = getSortedRowModel();\n options.onSortingChange = setSorting;\n }\n if (expandable) {\n options.getRowCanExpand = getRowCanExpand;\n options.getExpandedRowModel = getExpandedRowModel();\n }\n\n const table = useReactTable({\n ...options,\n });\n\n const handleNextPage = () => {\n table.nextPage();\n onNextPage?.();\n };\n\n const handlePrevPage = () => {\n table.previousPage();\n onPrevPage?.();\n };\n\n const handleBodyRowClick = (row: Row<TData>) => (event: React.MouseEvent<HTMLTableRowElement>) => {\n onBodyRowClick?.(row, event);\n };\n\n const {\n pagination: { pageIndex: page, pageSize },\n } = table.getState();\n\n let paginationSettings: TablePaginationProps | undefined = undefined;\n if (withPagination) {\n paginationSettings = {\n limit: pageSize,\n page: page + 1,\n limitOptions,\n onNext: handleNextPage,\n onPrev: handlePrevPage,\n onLimitChange: table.setPageSize,\n ...(isInfinite ? { hasNextPage: data.length >= limit } : { totalCount: data.length }),\n };\n }\n\n return (\n <Table\n paginationSettings={paginationSettings}\n dense={dense}\n isLoading={isLoading}\n hovered={!!onBodyRowClick}\n {...props}\n ref={setTableRef}\n >\n <TableHead>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const canSort = !!sortable && header.column.getCanSort();\n const resizeHandler = header.getResizeHandler();\n return (\n <TableHeadCell\n key={header.id}\n cellAlign={cellAlign}\n sortable={canSort}\n sortDirection={header.column.getIsSorted()}\n onSort={() => {\n if (!resizePressed.current) header.column.toggleSorting();\n }}\n onClick={() => {\n onHeadCellClick?.(header.column.columnDef);\n }}\n style={{\n cursor: canSort ? \"pointer\" : \"default\",\n width: header.getSize(),\n }}\n >\n <DraggableColumnHeaderWrapper<TData>\n key={header.id}\n draggableColumn={draggableColumns && header.column.columnDef.meta?.draggableColumn}\n table={table}\n onColumnOrderChange={onColumnOrderChange}\n // https://github.com/TanStack/table/issues/4241\n header={header}\n >\n <>\n <div>\n {header.isPlaceholder\n ? null\n : headerCellInnerRenderer\n ? React.cloneElement(headerCellInnerRenderer, { header })\n : flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n {header.column.getCanResize() && (\n <div\n {...{\n onMouseDown: (e) => {\n e.preventDefault();\n e.stopPropagation();\n resizePressed.current = true;\n // Cleared a task later: the click, if any, follows the mouseup in the same task.\n document.addEventListener(\n \"mouseup\",\n () =>\n setTimeout(() => {\n resizePressed.current = false;\n }),\n { once: true }\n );\n resizeHandler(e);\n },\n onTouchStart: header.getResizeHandler(),\n className: `smwb-rt-table--resizer ${\n header.column.getIsResizing() ? \"smwb-rt-table--isResizing\" : \"\"\n }`,\n }}\n />\n )}\n </>\n </DraggableColumnHeaderWrapper>\n </TableHeadCell>\n );\n })}\n </TableRow>\n ))}\n </TableHead>\n <TableBody>\n {isLoading ? (\n <TableRow className=\"smwb-table__loader__row\">\n <TableCell className=\"smwb-table__loader\">\n <ProgressIndicator variant=\"circular\" type=\"indeterminate\" />\n </TableCell>\n </TableRow>\n ) : error ? (\n <TableRow className=\"smwb-table__loader__row\">\n <TableCell className=\"smwb-table__loader\">\n <Message variant=\"filled\" type=\"error\">\n {error}\n </Message>\n </TableCell>\n </TableRow>\n ) : (\n table.getRowModel().rows.map((row) => (\n <React.Fragment key={row.id}>\n <TableRow key={row.id} onClick={handleBodyRowClick(row)}>\n {row.getVisibleCells().map((cell) => {\n return (\n <TableCell\n key={cell.id}\n cellAlign={cellAlign}\n label={\n cell.column.columnDef.meta?.label ??\n (typeof cell.column.columnDef.header === \"string\" ? cell.column.columnDef.header : undefined)\n }\n {...cell.column.columnDef.meta?.cellProps}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n );\n })}\n </TableRow>\n {row.getIsExpanded() && renderSubComponent && (\n <TableRow key={`${row.id}_expand`}>\n <TableCell colSpan={row.getVisibleCells().length}>{renderSubComponent({ row })}</TableCell>\n </TableRow>\n )}\n </React.Fragment>\n ))\n )}\n </TableBody>\n </Table>\n );\n};\n\nexport default TableWrapper;\n"],"names":["TableWrapper","data","columns","withPagination","isInfinite","limit","limitOptions","dense","sortable","expandable","draggableColumns","columnResizeMode","enableColumnResizing","onColumnSizingChange","onColumnOrderChange","getRowCanExpand","renderSubComponent","cellAlign","isLoading","onNextPage","onPrevPage","error","onHeadCellClick","headerCellInnerRenderer","onBodyRowClick","props","sorting","setSorting","useState","columnOrder","setColumnOrder","React","column","getColumnName","tableRef","setTableRef","columnSizing","setColumnSizing","getDefaultColumnSizingState","columnSizingInfo","setColumnSizingInfo","resizePressed","useRef","useEffect","totalSize","columnWithSize","el","totalSizeWithoutConst","sum","columnCountWithoutConstSize","avgSize","columnSizingStateReducer","options","getCoreRowModel","updater","newValue","diff","newValueColumn","diffColumnName","columnIndex","rightColumnName","leftColumnName","getPaginationRowModel","getSortedRowModel","getExpandedRowModel","table","useReactTable","handleNextPage","handlePrevPage","handleBodyRowClick","row","event","page","pageSize","paginationSettings","jsxs","Table","jsx","TableHead","headerGroup","TableRow","header","canSort","resizeHandler","TableHeadCell","DraggableColumnHeaderWrapper","_a","Fragment","flexRender","e","TableBody","TableCell","ProgressIndicator","Message","cell","_b","_c"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../src/connects/rt/table/table.tsx"],"sourcesContent":["import React, { TdHTMLAttributes, useState, useEffect } from \"react\";\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n ColumnDef,\n getPaginationRowModel,\n getExpandedRowModel,\n TableOptions,\n SortingState,\n getSortedRowModel,\n RowData,\n Row,\n ColumnResizeMode,\n ColumnSizingState,\n ColumnSizingInfoState,\n ColumnOrderState,\n HeaderContext,\n Renderable,\n} from \"@tanstack/react-table\";\n\nimport { getColumnName, getDefaultColumnSizingState, columnSizingStateReducer } from \"./utils\";\n\ndeclare module \"@tanstack/table-core\" {\n interface ColumnMeta<TData extends RowData, TValue> {\n cellProps?: TdHTMLAttributes<HTMLTableCellElement>;\n draggableColumn?: boolean;\n /** The column's name on each cell when rows stack as cards (`stackBelow`); a string `header` is used by default. */\n label?: string;\n /**\n * The column's controls in its head cell, such as a filter field or a menu\n * button. They go to the cell's `actions`, after the sort control and\n * outside it, so they stay out of its accessible name, while `header` is\n * drawn inside it. Whatever `flexRender` takes: a node, or a component that\n * gets the header context (`{ column, header, table }`), as `header` does.\n */\n headerActions?: Renderable<HeaderContext<TData, TValue>>;\n }\n}\n\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeadCell,\n TableRow,\n TableProps as SMWBTableProps,\n} from \"../../../components/dataDisplay/table\";\nimport { TablePaginationProps } from \"../../../components/dataDisplay/table\";\nimport ProgressIndicator from \"../../../components/feedBack/progressIndicator/progressIndicator\";\nimport Message from \"../../../components/feedBack/message/message\";\nimport { DraggableColumnHeaderWrapper } from \"./draggableHeader\";\n\nexport type TableProps<TData extends RowData, TValue = unknown> = SMWBTableProps & {\n withPagination?: boolean;\n isInfinite?: boolean;\n dense?: boolean;\n limit?: number;\n limitOptions?: number[];\n sortable?: boolean;\n expandable?: boolean;\n draggableColumns?: boolean;\n enableColumnResizing?: boolean;\n onColumnSizingChange?: (oldValue: ColumnSizingState, newValue: ColumnSizingState) => void;\n onColumnOrderChange?: (oldValue: ColumnOrderState, newValue: ColumnOrderState) => void;\n getRowCanExpand?: (row: Row<TData>) => boolean;\n renderSubComponent?: (props: { row: Row<TData> }) => React.ReactElement;\n cellAlign?: \"left\" | \"right\" | \"center\";\n isLoading?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n error?: string;\n onHeadCellClick?: (colDef?: ColumnDef<TData, TValue>) => void;\n headerCellInnerRenderer?: React.ReactElement;\n onBodyRowClick?: (row: Row<TData>, event: React.MouseEvent<HTMLTableRowElement>) => void;\n data: TData[];\n /**\n * TanStack column definitions. A column's `meta` may add `headerActions`\n * (controls drawn beside the sort control in its head cell), `label` (its\n * name on stacked rows), `cellProps` (attributes of its body cells) and\n * `draggableColumn`.\n */\n columns: ColumnDef<TData, TValue>[];\n columnResizeMode?: ColumnResizeMode;\n};\n\nexport const TableWrapper = <TData extends RowData, TValue = unknown>({\n data,\n columns,\n withPagination,\n isInfinite,\n limit = 5,\n limitOptions = [5, 10, 15],\n dense,\n sortable,\n expandable,\n draggableColumns,\n columnResizeMode = \"onChange\",\n enableColumnResizing,\n onColumnSizingChange,\n onColumnOrderChange,\n getRowCanExpand,\n renderSubComponent,\n cellAlign,\n isLoading = false,\n onNextPage,\n onPrevPage,\n error,\n onHeadCellClick,\n headerCellInnerRenderer,\n onBodyRowClick,\n ...props\n}: TableProps<TData, TValue>) => {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnOrder, setColumnOrder] = React.useState<ColumnOrderState>(\n columns.map((column) => getColumnName(column))\n );\n const [tableRef, setTableRef] = useState<HTMLDivElement | null>(null);\n const [columnSizing, setColumnSizing] = useState<ColumnSizingState>(getDefaultColumnSizingState(columns));\n const [columnSizingInfo, setColumnSizingInfo] = useState<ColumnSizingInfoState>({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n });\n useEffect(() => {\n if (tableRef) {\n const totalSize: number = tableRef?.offsetWidth || 0;\n const columnWithSize = columns.filter((el) => el.size);\n const totalSizeWithoutConst = totalSize - columns.reduce((sum, el) => sum + (el.size || 0), 0);\n const columnCountWithoutConstSize = columns.length - columnWithSize.length;\n const avgSize = columnCountWithoutConstSize ? totalSizeWithoutConst / columnCountWithoutConstSize : 10;\n setColumnSizing(\n columns\n .map((el) => ({\n size: el.size ? el.size : avgSize,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: getColumnName(el),\n }))\n .reduce(columnSizingStateReducer, {})\n );\n setColumnOrder(columns.map((column) => getColumnName(column)));\n }\n }, [tableRef, columns]);\n\n const options: TableOptions<TData> = {\n data,\n columns,\n state: { sorting, columnSizing, columnSizingInfo, columnOrder },\n initialState: { pagination: { pageIndex: 0, pageSize: limit } },\n manualPagination: isInfinite,\n columnResizeMode,\n onColumnOrderChange: setColumnOrder,\n getCoreRowModel: getCoreRowModel(),\n onColumnSizingChange: (updater) => {\n const newValue = typeof updater === \"function\" ? updater(columnSizing) : updater;\n const diff: ColumnSizingState = {};\n Object.keys(newValue).forEach((newValueColumn) => {\n if (newValue[newValueColumn] !== columnSizing[newValueColumn]) {\n diff[newValueColumn] = newValue[newValueColumn];\n }\n });\n // Алгоритм не учитывает, что колонки могут меняться местами и что может измениться сразу несколько колонок\n // двигаем соседнюю колонку на столько же, на сколько изменили ширину текущей\n const diffColumnName = Object.keys(diff)[0];\n const columnIndex = columns.findIndex((el) => getColumnName(el) === diffColumnName);\n if (columnIndex >= 0 && columnIndex < columns.length - 1) {\n const rightColumnName = getColumnName(columns[columnIndex + 1]);\n newValue[rightColumnName] =\n columnSizing[rightColumnName] - (newValue[diffColumnName] - columnSizing[diffColumnName]);\n } else if (columnIndex === columns.length - 1) {\n const leftColumnName = getColumnName(columns[columnIndex - 1]);\n newValue[leftColumnName] =\n columnSizing[leftColumnName] - (newValue[diffColumnName] - columnSizing[diffColumnName]);\n }\n setColumnSizing(newValue);\n if (onColumnSizingChange) {\n setTimeout(() => onColumnSizingChange(columnSizing, newValue));\n }\n },\n onColumnSizingInfoChange: (updater) => {\n setColumnSizingInfo(typeof updater === \"function\" ? updater(columnSizingInfo) : updater);\n },\n };\n\n options.enableColumnResizing = !!enableColumnResizing;\n\n if (withPagination) {\n options.getPaginationRowModel = getPaginationRowModel();\n }\n if (sortable) {\n options.getSortedRowModel = getSortedRowModel();\n options.onSortingChange = setSorting;\n }\n if (expandable) {\n options.getRowCanExpand = getRowCanExpand;\n options.getExpandedRowModel = getExpandedRowModel();\n }\n\n const table = useReactTable({\n ...options,\n });\n\n const handleNextPage = () => {\n table.nextPage();\n onNextPage?.();\n };\n\n const handlePrevPage = () => {\n table.previousPage();\n onPrevPage?.();\n };\n\n const handleBodyRowClick = (row: Row<TData>) => (event: React.MouseEvent<HTMLTableRowElement>) => {\n onBodyRowClick?.(row, event);\n };\n\n const {\n pagination: { pageIndex: page, pageSize },\n } = table.getState();\n\n let paginationSettings: TablePaginationProps | undefined = undefined;\n if (withPagination) {\n paginationSettings = {\n limit: pageSize,\n page: page + 1,\n limitOptions,\n onNext: handleNextPage,\n onPrev: handlePrevPage,\n onLimitChange: table.setPageSize,\n ...(isInfinite ? { hasNextPage: data.length >= limit } : { totalCount: data.length }),\n };\n }\n\n return (\n <Table\n dense={dense}\n isLoading={isLoading}\n {...props}\n // While the table paginates, its pagination wins over the caller's\n // paginationSettings; otherwise the caller's stays. `hovered` is a\n // default: the caller's wins, and an explicit undefined keeps it.\n paginationSettings={paginationSettings ?? props.paginationSettings}\n hovered={props.hovered ?? !!onBodyRowClick}\n ref={setTableRef}\n >\n <TableHead>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const canSort = !!sortable && header.column.getCanSort();\n const resizeHandler = header.getResizeHandler();\n const headerActions = header.isPlaceholder ? undefined : header.column.columnDef.meta?.headerActions;\n // The resizer is one of the cell's actions, outside the sort\n // control. The click that ends a press on it goes to the nearest\n // element holding both the press and the release: the resizer, the\n // head cell or an element above it, never the sort control.\n const resizer = header.column.getCanResize() ? (\n <div\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n resizeHandler(e);\n }}\n onTouchStart={resizeHandler}\n className={`smwb-rt-table--resizer ${\n header.column.getIsResizing() ? \"smwb-rt-table--isResizing\" : \"\"\n }`}\n />\n ) : null;\n return (\n <TableHeadCell\n key={header.id}\n cellAlign={cellAlign}\n sortable={canSort}\n sortDirection={header.column.getIsSorted()}\n onSort={() => header.column.toggleSorting()}\n onClick={() => {\n onHeadCellClick?.(header.column.columnDef);\n }}\n style={{\n cursor: canSort ? \"pointer\" : \"default\",\n width: header.getSize(),\n }}\n actions={\n headerActions || resizer ? (\n <>\n {headerActions ? flexRender(headerActions, header.getContext()) : null}\n {resizer}\n </>\n ) : undefined\n }\n >\n <DraggableColumnHeaderWrapper<TData>\n key={header.id}\n draggableColumn={draggableColumns && header.column.columnDef.meta?.draggableColumn}\n table={table}\n onColumnOrderChange={onColumnOrderChange}\n // https://github.com/TanStack/table/issues/4241\n header={header}\n >\n <div>\n {header.isPlaceholder\n ? null\n : headerCellInnerRenderer\n ? React.cloneElement(headerCellInnerRenderer, { header })\n : flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n </DraggableColumnHeaderWrapper>\n </TableHeadCell>\n );\n })}\n </TableRow>\n ))}\n </TableHead>\n <TableBody>\n {isLoading ? (\n <TableRow className=\"smwb-table__loader__row\">\n <TableCell className=\"smwb-table__loader\">\n <ProgressIndicator variant=\"circular\" type=\"indeterminate\" />\n </TableCell>\n </TableRow>\n ) : error ? (\n <TableRow className=\"smwb-table__loader__row\">\n <TableCell className=\"smwb-table__loader\">\n <Message variant=\"filled\" type=\"error\">\n {error}\n </Message>\n </TableCell>\n </TableRow>\n ) : (\n table.getRowModel().rows.map((row) => (\n <React.Fragment key={row.id}>\n <TableRow key={row.id} onClick={handleBodyRowClick(row)}>\n {row.getVisibleCells().map((cell) => {\n return (\n <TableCell\n key={cell.id}\n cellAlign={cellAlign}\n // Without meta.label or a string header, or with an empty\n // one, the cell stays unlabelled, as in Solid: it takes no\n // label from the head cell's content, which may be a control.\n label={\n (cell.column.columnDef.meta?.label ??\n (typeof cell.column.columnDef.header === \"string\"\n ? cell.column.columnDef.header\n : undefined)) ||\n false\n }\n {...cell.column.columnDef.meta?.cellProps}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n );\n })}\n </TableRow>\n {row.getIsExpanded() && renderSubComponent && (\n <TableRow key={`${row.id}_expand`}>\n <TableCell colSpan={row.getVisibleCells().length}>{renderSubComponent({ row })}</TableCell>\n </TableRow>\n )}\n </React.Fragment>\n ))\n )}\n </TableBody>\n </Table>\n );\n};\n\nexport default TableWrapper;\n"],"names":["TableWrapper","data","columns","withPagination","isInfinite","limit","limitOptions","dense","sortable","expandable","draggableColumns","columnResizeMode","enableColumnResizing","onColumnSizingChange","onColumnOrderChange","getRowCanExpand","renderSubComponent","cellAlign","isLoading","onNextPage","onPrevPage","error","onHeadCellClick","headerCellInnerRenderer","onBodyRowClick","props","sorting","setSorting","useState","columnOrder","setColumnOrder","React","column","getColumnName","tableRef","setTableRef","columnSizing","setColumnSizing","getDefaultColumnSizingState","columnSizingInfo","setColumnSizingInfo","useEffect","totalSize","columnWithSize","el","totalSizeWithoutConst","sum","columnCountWithoutConstSize","avgSize","columnSizingStateReducer","options","getCoreRowModel","updater","newValue","diff","newValueColumn","diffColumnName","columnIndex","rightColumnName","leftColumnName","getPaginationRowModel","getSortedRowModel","getExpandedRowModel","table","useReactTable","handleNextPage","handlePrevPage","handleBodyRowClick","row","event","page","pageSize","paginationSettings","jsxs","Table","_a","jsx","TableHead","headerGroup","TableRow","header","canSort","resizeHandler","headerActions","resizer","e","TableHeadCell","Fragment","flexRender","DraggableColumnHeaderWrapper","_b","TableBody","TableCell","ProgressIndicator","Message","cell","_c"],"mappings":"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"}
@@ -1,60 +1,72 @@
1
- import { jsx as l } from "react/jsx-runtime";
2
- import { forwardRef as L, useSyncExternalStore as C } from "react";
3
- import N from "clsx";
4
- import { getIcon as O } from "../../../icons/registry.js";
5
- import { getIconConfig as R } from "../../../icons/config.js";
6
- import { subscribeIcons as j } from "../../../icons/store.js";
7
- import { useIconSource as B } from "./iconProvider.js";
8
- const E = ["primary", "secondary", "error", "success", "warning", "info", "disabled"], y = /* @__PURE__ */ new Set();
9
- function T(r) {
10
- !R().warnOnMissing || y.has(r) || (y.add(r), console.warn(
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { forwardRef as N, useSyncExternalStore as O } from "react";
3
+ import R from "clsx";
4
+ import { getIcon as j } from "../../../icons/registry.js";
5
+ import { getIconConfig as B } from "../../../icons/config.js";
6
+ import { subscribeIcons as E } from "../../../icons/store.js";
7
+ import { useIconSource as T } from "./iconProvider.js";
8
+ const z = ["primary", "secondary", "error", "success", "warning", "info", "disabled"], S = /* @__PURE__ */ new Set();
9
+ function A(r) {
10
+ !B().warnOnMissing || S.has(r) || (S.add(r), console.warn(
11
11
  `[smwb] Icon "${r}" is not registered. Register it (import { ${r} } from "@smwb/ui-react/icons") or use source="auto" to fall back to Material Symbols.`
12
12
  ));
13
13
  }
14
- const V = L(function({ className: S, weight: a = 400, fill: v = 0, size: n = 20, grade: I = 100, name: o, color: e = "inherit", title: i, source: _, ...u }, x) {
15
- var w, b;
16
- const d = B(_), g = typeof o == "string" ? o : null, m = () => {
17
- var h;
18
- return g === null ? null : (h = O(g)) != null ? h : null;
19
- }, M = C(j, m, m), s = typeof o == "object" ? o : M, f = typeof o == "string" ? o : o.name, t = d === "google" ? "google" : s ? "smwb" : d === "smwb" ? "missing" : "google";
20
- t === "missing" && T(f);
21
- const p = i === void 0, $ = e && E.includes(e) ? `smwb-icon_color-${e}` : null, c = typeof n == "number" ? `${n}px` : n, k = Math.round(Math.min(3, Math.max(1, a / 200)) * 100) / 100;
22
- return /* @__PURE__ */ l(
14
+ const q = N(function({
15
+ className: I,
16
+ weight: d = 400,
17
+ fill: _ = 0,
18
+ size: n = 20,
19
+ grade: v = 100,
20
+ name: o,
21
+ color: i = "inherit",
22
+ title: a,
23
+ source: x,
24
+ "data-testid": M = "icon",
25
+ ...e
26
+ }, $) {
27
+ var w, h, y;
28
+ const u = T(x), g = typeof o == "string" ? o : null, m = () => {
29
+ var p;
30
+ return g === null ? null : (p = j(g)) != null ? p : null;
31
+ }, k = O(E, m, m), t = typeof o == "object" ? o : k, f = typeof o == "string" ? o : o.name, s = u === "google" ? "google" : t ? "smwb" : u === "smwb" ? "missing" : "google";
32
+ s === "missing" && A(f);
33
+ const b = !(a || e["aria-label"] || e["aria-labelledby"]), L = i && z.includes(i) ? `smwb-icon_color-${i}` : null, l = typeof n == "number" ? `${n}px` : n, C = Math.round(Math.min(3, Math.max(1, d / 200)) * 100) / 100;
34
+ return /* @__PURE__ */ c(
23
35
  "span",
24
36
  {
25
- ...u,
26
- ref: x,
27
- "data-testid": "icon",
28
- "data-icon-source": t,
29
- role: p ? void 0 : "img",
30
- "aria-hidden": p ? !0 : void 0,
31
- "aria-label": i,
32
- title: i,
37
+ ...e,
38
+ ref: $,
39
+ "data-testid": M,
40
+ "data-icon-source": s,
41
+ role: (w = e.role) != null ? w : b ? void 0 : "img",
42
+ "aria-hidden": b ? !0 : e["aria-hidden"],
43
+ "aria-label": a || e["aria-label"],
44
+ title: a,
33
45
  style: {
34
- ...u.style,
35
- ...t === "google" ? { fontVariationSettings: `'FILL' ${v}, 'wght' ${a}, 'GRAD' ${I}, 'opsz' 48` } : null
46
+ ...e.style,
47
+ ...s === "google" ? { fontVariationSettings: `'FILL' ${_}, 'wght' ${d}, 'GRAD' ${v}, 'opsz' 48` } : null
36
48
  },
37
- className: N("smwb-icon__wrapper", $, S),
38
- children: t === "google" ? /* @__PURE__ */ l("span", { className: "material-symbols-outlined", style: { fontSize: c }, children: f }) : /* @__PURE__ */ l(
49
+ className: R("smwb-icon__wrapper", L, I),
50
+ children: s === "google" ? /* @__PURE__ */ c("span", { className: "material-symbols-outlined", style: { fontSize: l }, children: f }) : /* @__PURE__ */ c(
39
51
  "svg",
40
52
  {
41
53
  className: "smwb-icon__svg",
42
- viewBox: (w = s == null ? void 0 : s.viewBox) != null ? w : "0 0 24 24",
43
- style: { width: c, height: c },
54
+ viewBox: (h = t == null ? void 0 : t.viewBox) != null ? h : "0 0 24 24",
55
+ style: { width: l, height: l },
44
56
  fill: "none",
45
57
  stroke: "currentColor",
46
- strokeWidth: k,
58
+ strokeWidth: C,
47
59
  strokeLinecap: "round",
48
60
  strokeLinejoin: "round",
49
61
  "aria-hidden": "true",
50
- dangerouslySetInnerHTML: { __html: (b = s == null ? void 0 : s.body) != null ? b : "" }
62
+ dangerouslySetInnerHTML: { __html: (y = t == null ? void 0 : t.body) != null ? y : "" }
51
63
  }
52
64
  )
53
65
  }
54
66
  );
55
67
  });
56
68
  export {
57
- V as Icon,
58
- V as default
69
+ q as Icon,
70
+ q as default
59
71
  };
60
72
  //# sourceMappingURL=icon.js.map