@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,24 +1,55 @@
1
1
  import React from "react";
2
2
  export type ChipColor = "default" | "primary" | "secondary" | "error" | "success" | "warning" | "info";
3
3
  export interface ChipProps extends React.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {
4
+ /**
5
+ * Class name(s) for the chip's root, a `<span>` (an `<a>` with `asLink`). `style`, `id`, `data-*`, `aria-hidden`,
6
+ * `ref` and event handlers go to the root too. In a clickable chip (`onClick`), `role`, `tabIndex`, `onFocus`,
7
+ * `onBlur` and the other `aria-*` attributes go to its button, `.smwb-chip__content` (the icon and the label), which
8
+ * is also the element to focus. Otherwise they stay on the root, which holds the delete button too.
9
+ */
4
10
  className?: string;
5
11
  variant?: "filled" | "outlined";
6
12
  size?: "small" | "medium";
7
13
  color?: ChipColor;
14
+ /**
15
+ * Shows a delete button in the chip and runs when it is pressed: a click, or
16
+ * Enter / Space while the button has focus. In a clickable chip it sits
17
+ * beside the chip's button, not inside it, and pressing it does not run the
18
+ * chip's `onClick`.
19
+ */
8
20
  onDelete?: (event: React.SyntheticEvent) => void;
9
21
  icon?: React.ReactNode;
10
22
  deleteIcon?: React.ReactNode;
11
23
  label: string;
24
+ /**
25
+ * Makes the chip clickable: its icon and label become a button, named by
26
+ * them, with a focus ring around the whole chip. The delete button is not
27
+ * part of that button but its sibling, so it keeps its own name.
28
+ *
29
+ * Runs on a click on the chip and on Enter / Space while the chip's button
30
+ * has focus, but not on a click or key on the delete button.
31
+ */
12
32
  onClick?: () => void;
13
33
  onDeleteMouseDown?: React.MouseEventHandler;
34
+ /**
35
+ * Disables the chip: it is dimmed, takes no pointer input and says `aria-disabled`, and its delete button is
36
+ * disabled too. With `onClick` the chip is still a button, out of the tab order.
37
+ */
14
38
  disabled?: boolean;
15
39
  asLink?: boolean;
16
40
  href?: string;
17
41
  /** Open the link in a new tab (asLink only). */
18
42
  target?: string;
19
43
  selected?: boolean;
44
+ /**
45
+ * Id of the label's element, for another element to take the chip's text as
46
+ * its name (`aria-labelledby`) without the delete button's name.
47
+ */
48
+ labelId?: string;
20
49
  /** Accessible label for the delete control. */
21
50
  deleteAriaLabel?: string;
51
+ /** Test id of the root; `chip`, or `chip-link` for a link, unless given. */
52
+ "data-testid"?: string;
22
53
  }
23
54
  export declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLSpanElement | HTMLAnchorElement>>;
24
55
  export default Chip;
@@ -1,100 +1,127 @@
1
- import { jsx as t, jsxs as E, Fragment as F } from "react/jsx-runtime";
1
+ import { jsxs as l, jsx as a, Fragment as L } from "react/jsx-runtime";
2
2
  import '../../../assets/styles/less/components/chip/chip.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
- import v from "react";
5
- import I from "clsx";
4
+ import u from "react";
5
+ import Z from "clsx";
6
6
  import { Ripple as K } from "../../base/ripple/ripple.js";
7
- import { Icon as q } from "../../base/icon/icon.js";
8
- const U = v.forwardRef(function({
9
- label: N,
10
- className: x,
11
- deleteIcon: l,
12
- icon: m,
13
- onDelete: r,
14
- onMouseDown: n,
15
- onDeleteMouseDown: c,
16
- asLink: y,
17
- href: o,
18
- target: $ = "_blank",
19
- selected: g,
20
- variant: j = "filled",
21
- size: z = "medium",
22
- color: p = "default",
23
- disabled: i = !1,
24
- onClick: a,
25
- deleteAriaLabel: B = "Remove",
26
- ...d
27
- }, f) {
28
- const b = v.useRef(null), h = (e) => {
29
- n == null || n(e);
30
- }, u = (e) => {
31
- var R;
32
- i || (R = b.current) == null || R.onRipple(e);
33
- }, k = (e) => {
34
- c == null || c(e), e.stopPropagation();
35
- }, w = I(
7
+ import { Icon as M } from "../../base/icon/icon.js";
8
+ import { isOwnClick as k } from "../../../utils/ownClick.js";
9
+ import { splitControlProps as C } from "../../../utils/controlProps.js";
10
+ const li = u.forwardRef(function({
11
+ label: O,
12
+ labelId: q,
13
+ className: v,
14
+ deleteIcon: d,
15
+ icon: o,
16
+ onDelete: _,
17
+ onMouseDown: m,
18
+ // The chip sets these on its root too; its own handlers call the caller's first.
19
+ onKeyDown: r,
20
+ onPointerDown: e,
21
+ onDeleteMouseDown: n,
22
+ asLink: G,
23
+ href: R,
24
+ target: H = "_blank",
25
+ selected: J,
26
+ variant: Q = "filled",
27
+ size: S = "medium",
28
+ color: x = "default",
29
+ disabled: c = !1,
30
+ onClick: s,
31
+ deleteAriaLabel: U = "Remove",
32
+ "data-testid": t,
33
+ ...f
34
+ }, N) {
35
+ var B, E;
36
+ const w = u.useRef(null), b = u.useRef(null), g = (i) => {
37
+ m == null || m(i);
38
+ }, $ = (i) => {
39
+ var F;
40
+ e == null || e(i), c || (F = w.current) == null || F.onRipple(i);
41
+ }, V = (i) => {
42
+ n == null || n(i), i.stopPropagation();
43
+ }, j = Z(
36
44
  "smwb-chip",
37
- `smwb-${j}`,
38
- `smwb-chip_size-${z}`,
39
- p !== "default" && `smwb-chip_color-${p}`,
40
- x,
41
- { "smwb-disabled": i, "smwb-selected": g }
42
- ), _ = /* @__PURE__ */ E(F, { children: [
43
- m && /* @__PURE__ */ t("span", { className: "smwb-chip__icon", children: m }),
44
- /* @__PURE__ */ t("span", { className: "smwb-chip__label", children: N }),
45
- !!r && /* @__PURE__ */ t(
46
- "button",
47
- {
48
- type: "button",
49
- className: "smwb-chip__delete-icon",
50
- "aria-label": B,
51
- disabled: i,
52
- onClick: r,
53
- onMouseDown: k,
54
- children: l || /* @__PURE__ */ t(q, { name: "cancel", size: 18, fill: 1 })
55
- }
56
- ),
57
- /* @__PURE__ */ t(K, { actionRef: b })
45
+ `smwb-${Q}`,
46
+ `smwb-chip_size-${S}`,
47
+ x !== "default" && `smwb-chip_color-${x}`,
48
+ v,
49
+ { "smwb-disabled": c, "smwb-selected": J }
50
+ ), W = !!_ && /* @__PURE__ */ a(
51
+ "button",
52
+ {
53
+ type: "button",
54
+ className: "smwb-chip__delete-icon",
55
+ "aria-label": U,
56
+ disabled: c,
57
+ onClick: _,
58
+ onMouseDown: V,
59
+ children: d || /* @__PURE__ */ a(M, { name: "cancel", size: 18, fill: 1 })
60
+ }
61
+ ), z = /* @__PURE__ */ l(L, { children: [
62
+ o && /* @__PURE__ */ a("span", { className: "smwb-chip__icon", children: o }),
63
+ /* @__PURE__ */ a("span", { id: q, className: "smwb-chip__label", children: O })
64
+ ] }), y = /* @__PURE__ */ l(L, { children: [
65
+ W,
66
+ /* @__PURE__ */ a(K, { actionRef: w })
58
67
  ] });
59
- if (y && o)
60
- return /* @__PURE__ */ t(
68
+ if (G && R)
69
+ return /* @__PURE__ */ l(
61
70
  "a",
62
71
  {
63
- ref: f,
64
- "data-testid": "chip-link",
65
- className: w,
66
- href: o,
67
- onMouseDown: h,
68
- onPointerDown: u,
69
- target: $,
70
- rel: "noreferrer",
71
- ...d,
72
- children: _
72
+ ref: N,
73
+ "data-testid": t != null ? t : "chip-link",
74
+ className: j,
75
+ href: R,
76
+ onMouseDown: g,
77
+ onPointerDown: $,
78
+ target: H,
79
+ ...f,
80
+ rel: (B = f.rel) != null ? B : "noreferrer",
81
+ onKeyDown: r,
82
+ children: [
83
+ z,
84
+ y
85
+ ]
73
86
  }
74
87
  );
75
- const s = !!a && !i;
76
- return /* @__PURE__ */ t(
88
+ const p = !!s && !c, [h, A] = C(f, !!s), X = (i) => {
89
+ r == null || r(i), !(!p || i.target !== b.current) && (i.key === "Enter" || i.key === " ") && (i.preventDefault(), s == null || s());
90
+ }, Y = (i) => {
91
+ k(i, b.current) && (s == null || s(i));
92
+ };
93
+ return /* @__PURE__ */ l(
77
94
  "span",
78
95
  {
79
- ref: f,
80
- "data-testid": "chip",
81
- className: w,
82
- role: s ? "button" : void 0,
83
- tabIndex: s ? 0 : void 0,
84
- "aria-disabled": i || void 0,
85
- onClick: s ? a : void 0,
86
- onKeyDown: s ? (e) => {
87
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), a == null || a());
88
- } : void 0,
89
- onMouseDown: h,
90
- onPointerDown: u,
91
- ...d,
92
- children: _
96
+ ref: N,
97
+ "data-testid": t != null ? t : "chip",
98
+ className: j,
99
+ ...A,
100
+ "aria-disabled": s ? void 0 : c || A["aria-disabled"],
101
+ onClick: p ? Y : void 0,
102
+ onKeyDown: X,
103
+ onMouseDown: g,
104
+ onPointerDown: $,
105
+ children: [
106
+ /* @__PURE__ */ a(
107
+ "span",
108
+ {
109
+ ...h,
110
+ ref: b,
111
+ className: "smwb-chip__content",
112
+ role: s ? "button" : void 0,
113
+ tabIndex: (E = h.tabIndex) != null ? E : p ? 0 : void 0,
114
+ "aria-disabled": s ? c || h["aria-disabled"] : void 0,
115
+ children: z
116
+ }
117
+ ),
118
+ y
119
+ ]
93
120
  }
94
121
  );
95
122
  });
96
123
  export {
97
- U as Chip,
98
- U as default
124
+ li as Chip,
125
+ li as default
99
126
  };
100
127
  //# sourceMappingURL=chip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chip.js","sources":["../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Ripple, RippleActionsRef } from \"../../base/ripple/ripple\";\nimport Icon from \"../../base/icon/icon\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n className?: string;\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n onDelete?: (event: React.SyntheticEvent) => void;\n icon?: React.ReactNode;\n deleteIcon?: React.ReactNode;\n label: string;\n onClick?: () => void;\n onDeleteMouseDown?: React.MouseEventHandler;\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n}\n\nexport const Chip = React.forwardRef<HTMLSpanElement | HTMLAnchorElement, ChipProps>(function Chip(\n {\n label,\n className,\n deleteIcon,\n icon,\n onDelete,\n onMouseDown: onMouseDownProp,\n onDeleteMouseDown: onDeleteMouseDownProp,\n asLink,\n href,\n target = \"_blank\",\n selected,\n variant = \"filled\",\n size = \"medium\",\n color = \"default\",\n disabled = false,\n onClick,\n deleteAriaLabel = \"Remove\",\n ...rest\n },\n ref\n) {\n const rippleRef = React.useRef<RippleActionsRef>(null);\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n onMouseDownProp?.(event);\n };\n\n // Ripple on pointerdown so it fires for touch and pen, not just mouse.\n const onPointerDown = (event: React.PointerEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n if (!disabled) {\n rippleRef.current?.onRipple(event);\n }\n };\n\n const onDeleteMouseDown = (event: React.MouseEvent) => {\n onDeleteMouseDownProp?.(event);\n event.stopPropagation();\n };\n\n const classes = cn(\n \"smwb-chip\",\n `smwb-${variant}`,\n `smwb-chip_size-${size}`,\n color !== \"default\" && `smwb-chip_color-${color}`,\n className,\n { \"smwb-disabled\": disabled, \"smwb-selected\": selected }\n );\n\n const deleteBtn = !!onDelete && (\n <button\n type=\"button\"\n className=\"smwb-chip__delete-icon\"\n aria-label={deleteAriaLabel}\n disabled={disabled}\n onClick={onDelete}\n onMouseDown={onDeleteMouseDown}\n >\n {deleteIcon ? deleteIcon : <Icon name=\"cancel\" size={18} fill={1} />}\n </button>\n );\n\n const inner = (\n <>\n {icon && <span className=\"smwb-chip__icon\">{icon}</span>}\n <span className=\"smwb-chip__label\">{label}</span>\n {deleteBtn}\n <Ripple actionRef={rippleRef} />\n </>\n );\n\n if (asLink && href) {\n return (\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n data-testid=\"chip-link\"\n className={classes}\n href={href}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n target={target}\n rel=\"noreferrer\"\n {...rest}\n >\n {inner}\n </a>\n );\n }\n\n const clickable = !!onClick && !disabled;\n\n return (\n <span\n ref={ref}\n data-testid=\"chip\"\n className={classes}\n role={clickable ? \"button\" : undefined}\n tabIndex={clickable ? 0 : undefined}\n aria-disabled={disabled || undefined}\n onClick={clickable ? onClick : undefined}\n onKeyDown={\n clickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.();\n }\n }\n : undefined\n }\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n {...rest}\n >\n {inner}\n </span>\n );\n});\n\nexport default Chip;\n"],"names":["Chip","React","label","className","deleteIcon","icon","onDelete","onMouseDownProp","onDeleteMouseDownProp","asLink","href","target","selected","variant","size","color","disabled","onClick","deleteAriaLabel","rest","ref","rippleRef","onMouseDown","event","onPointerDown","_a","onDeleteMouseDown","classes","cn","inner","jsxs","Fragment","jsx","Icon","Ripple","clickable"],"mappings":";;;;;;;AA8BO,MAAMA,IAAOC,EAAM,WAA2D,SACnF;AAAA,EACE,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAaC;AAAA,EACb,mBAAmBC;AAAA,EACnB,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAYpB,EAAM,OAAyB,IAAI,GAE/CqB,IAAc,CAACC,MAAiE;AACpF,IAAAhB,KAAA,QAAAA,EAAkBgB;AAAA,EACpB,GAGMC,IAAgB,CAACD,MAAmE;;AACxF,IAAKP,MACHS,IAAAJ,EAAU,YAAV,QAAAI,EAAmB,SAASF;AAAA,EAEhC,GAEMG,IAAoB,CAACH,MAA4B;AACrD,IAAAf,KAAA,QAAAA,EAAwBe,IACxBA,EAAM,gBAAA;AAAA,EACR,GAEMI,IAAUC;AAAA,IACd;AAAA,IACA,QAAQf,CAAO;AAAA,IACf,kBAAkBC,CAAI;AAAA,IACtBC,MAAU,aAAa,mBAAmBA,CAAK;AAAA,IAC/CZ;AAAA,IACA,EAAE,iBAAiBa,GAAU,iBAAiBJ,EAAA;AAAA,EAAS,GAgBnDiB,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAA1B,KAAQ,gBAAA2B,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAA3B,GAAK;AAAA,IACjD,gBAAA2B,EAAC,QAAA,EAAK,WAAU,oBAAoB,UAAA9B,GAAM;AAAA,IAhB5B,CAAC,CAACI,KAClB,gBAAA0B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,cAAYd;AAAA,QACZ,UAAAF;AAAA,QACA,SAASV;AAAA,QACT,aAAaoB;AAAA,QAEZ,UAAAtB,KAA0B,gBAAA4B,EAACC,GAAA,EAAK,MAAK,UAAS,MAAM,IAAI,MAAM,EAAA,CAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IASlE,gBAAAD,EAACE,GAAA,EAAO,WAAWb,EAAA,CAAW;AAAA,EAAA,GAChC;AAGF,MAAIZ,KAAUC;AACZ,WACE,gBAAAsB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAZ;AAAA,QACA,eAAY;AAAA,QACZ,WAAWO;AAAA,QACX,MAAAjB;AAAA,QACA,aAAAY;AAAA,QACA,eAAAE;AAAA,QACA,QAAAb;AAAA,QACA,KAAI;AAAA,QACH,GAAGQ;AAAA,QAEH,UAAAU;AAAA,MAAA;AAAA,IAAA;AAKP,QAAMM,IAAY,CAAC,CAAClB,KAAW,CAACD;AAEhC,SACE,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAZ;AAAA,MACA,eAAY;AAAA,MACZ,WAAWO;AAAA,MACX,MAAMQ,IAAY,WAAW;AAAA,MAC7B,UAAUA,IAAY,IAAI;AAAA,MAC1B,iBAAenB,KAAY;AAAA,MAC3B,SAASmB,IAAYlB,IAAU;AAAA,MAC/B,WACEkB,IACI,CAAC,MAAM;AACL,SAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,SACjC,EAAE,eAAA,GACFlB,KAAA,QAAAA;AAAA,MAEJ,IACA;AAAA,MAEN,aAAAK;AAAA,MACA,eAAAE;AAAA,MACC,GAAGL;AAAA,MAEH,UAAAU;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
1
+ {"version":3,"file":"chip.js","sources":["../../../../src/components/dataDisplay/chip/chip.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Ripple, RippleActionsRef } from \"../../base/ripple/ripple\";\nimport Icon from \"../../base/icon/icon\";\nimport { isOwnClick } from \"../../../utils/ownClick\";\nimport { splitControlProps } from \"../../../utils/controlProps\";\n\nexport type ChipColor = \"default\" | \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLSpanElement | HTMLAnchorElement> {\n /**\n * Class name(s) for the chip's root, a `<span>` (an `<a>` with `asLink`). `style`, `id`, `data-*`, `aria-hidden`,\n * `ref` and event handlers go to the root too. In a clickable chip (`onClick`), `role`, `tabIndex`, `onFocus`,\n * `onBlur` and the other `aria-*` attributes go to its button, `.smwb-chip__content` (the icon and the label), which\n * is also the element to focus. Otherwise they stay on the root, which holds the delete button too.\n */\n className?: string;\n variant?: \"filled\" | \"outlined\";\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n /**\n * Shows a delete button in the chip and runs when it is pressed: a click, or\n * Enter / Space while the button has focus. In a clickable chip it sits\n * beside the chip's button, not inside it, and pressing it does not run the\n * chip's `onClick`.\n */\n onDelete?: (event: React.SyntheticEvent) => void;\n icon?: React.ReactNode;\n deleteIcon?: React.ReactNode;\n label: string;\n /**\n * Makes the chip clickable: its icon and label become a button, named by\n * them, with a focus ring around the whole chip. The delete button is not\n * part of that button but its sibling, so it keeps its own name.\n *\n * Runs on a click on the chip and on Enter / Space while the chip's button\n * has focus, but not on a click or key on the delete button.\n */\n onClick?: () => void;\n onDeleteMouseDown?: React.MouseEventHandler;\n /**\n * Disables the chip: it is dimmed, takes no pointer input and says `aria-disabled`, and its delete button is\n * disabled too. With `onClick` the chip is still a button, out of the tab order.\n */\n disabled?: boolean;\n asLink?: boolean;\n href?: string;\n /** Open the link in a new tab (asLink only). */\n target?: string;\n selected?: boolean;\n /**\n * Id of the label's element, for another element to take the chip's text as\n * its name (`aria-labelledby`) without the delete button's name.\n */\n labelId?: string;\n /** Accessible label for the delete control. */\n deleteAriaLabel?: string;\n /** Test id of the root; `chip`, or `chip-link` for a link, unless given. */\n \"data-testid\"?: string;\n}\n\nexport const Chip = React.forwardRef<HTMLSpanElement | HTMLAnchorElement, ChipProps>(function Chip(\n {\n label,\n labelId,\n className,\n deleteIcon,\n icon,\n onDelete,\n onMouseDown: onMouseDownProp,\n // The chip sets these on its root too; its own handlers call the caller's first.\n onKeyDown: onKeyDownProp,\n onPointerDown: onPointerDownProp,\n onDeleteMouseDown: onDeleteMouseDownProp,\n asLink,\n href,\n target = \"_blank\",\n selected,\n variant = \"filled\",\n size = \"medium\",\n color = \"default\",\n disabled = false,\n onClick,\n deleteAriaLabel = \"Remove\",\n \"data-testid\": dataTestId,\n ...rest\n },\n ref\n) {\n const rippleRef = React.useRef<RippleActionsRef>(null);\n const contentRef = React.useRef<HTMLSpanElement | null>(null);\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n onMouseDownProp?.(event);\n };\n\n // Ripple on pointerdown so it fires for touch and pen, not just mouse.\n const onPointerDown = (event: React.PointerEvent<HTMLSpanElement | HTMLAnchorElement>) => {\n onPointerDownProp?.(event);\n if (!disabled) {\n rippleRef.current?.onRipple(event);\n }\n };\n\n const onDeleteMouseDown = (event: React.MouseEvent) => {\n onDeleteMouseDownProp?.(event);\n event.stopPropagation();\n };\n\n const classes = cn(\n \"smwb-chip\",\n `smwb-${variant}`,\n `smwb-chip_size-${size}`,\n color !== \"default\" && `smwb-chip_color-${color}`,\n className,\n { \"smwb-disabled\": disabled, \"smwb-selected\": selected }\n );\n\n const deleteBtn = !!onDelete && (\n <button\n type=\"button\"\n className=\"smwb-chip__delete-icon\"\n aria-label={deleteAriaLabel}\n disabled={disabled}\n onClick={onDelete}\n onMouseDown={onDeleteMouseDown}\n >\n {deleteIcon ? deleteIcon : <Icon name=\"cancel\" size={18} fill={1} />}\n </button>\n );\n\n // The chip's own content: its button when it is clickable.\n const iconAndLabel = (\n <>\n {icon && <span className=\"smwb-chip__icon\">{icon}</span>}\n <span id={labelId} className=\"smwb-chip__label\">\n {label}\n </span>\n </>\n );\n // After the content: in a clickable chip, beside its button, not in it.\n const trailing = (\n <>\n {deleteBtn}\n <Ripple actionRef={rippleRef} />\n </>\n );\n\n if (asLink && href) {\n return (\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n data-testid={dataTestId ?? \"chip-link\"}\n className={classes}\n href={href}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n target={target}\n {...rest}\n // A default: the caller's rel wins, and an explicit undefined keeps it.\n rel={rest.rel ?? \"noreferrer\"}\n onKeyDown={onKeyDownProp}\n >\n {iconAndLabel}\n {trailing}\n </a>\n );\n }\n\n const clickable = !!onClick && !disabled;\n // With onClick the chip's content is its button, and what the chip is to the\n // keyboard and to assistive tech goes there. Without it the chip is not a\n // control: the caller's role and ARIA attributes stay on the root, around\n // the delete button too.\n const [control, box] = splitControlProps(rest, !!onClick);\n\n // Keys pressed on the delete button bubble up here too; only the keys of the\n // chip's button activate it.\n const onKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n onKeyDownProp?.(event);\n if (!clickable || event.target !== contentRef.current) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n onClick?.();\n }\n };\n\n // A click on the chip's button, or on its padding, activates the chip: not\n // one on the delete button, nor one in a portal rendered inside, which React\n // delivers here too. The click goes along to onClick, as it always has,\n // though its type takes none.\n const onChipClick = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (isOwnClick(event, contentRef.current)) {\n (onClick as React.MouseEventHandler<HTMLSpanElement> | undefined)?.(event);\n }\n };\n\n return (\n <span\n ref={ref}\n data-testid={dataTestId ?? \"chip\"}\n className={classes}\n {...box}\n // A disabled chip says so where the caller's ARIA attributes are: on its\n // button with onClick, on the root without.\n aria-disabled={onClick ? undefined : disabled || box[\"aria-disabled\"]}\n onClick={clickable ? onChipClick : undefined}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n >\n <span\n {...control}\n ref={contentRef}\n className=\"smwb-chip__content\"\n // With onClick the content is the chip's button, and a disabled chip\n // says so: these win over the caller's, and where the chip sets none,\n // the caller's stay. Its tabIndex is a default: the caller's wins, e.g.\n // for roving focus.\n role={onClick ? \"button\" : undefined}\n tabIndex={control.tabIndex ?? (clickable ? 0 : undefined)}\n aria-disabled={onClick ? disabled || control[\"aria-disabled\"] : undefined}\n >\n {iconAndLabel}\n </span>\n {/* Beside the button, not in it: the delete button keeps its name and input. */}\n {trailing}\n </span>\n );\n});\n\nexport default Chip;\n"],"names":["Chip","React","label","labelId","className","deleteIcon","icon","onDelete","onMouseDownProp","onKeyDownProp","onPointerDownProp","onDeleteMouseDownProp","asLink","href","target","selected","variant","size","color","disabled","onClick","deleteAriaLabel","dataTestId","rest","ref","rippleRef","contentRef","onMouseDown","event","onPointerDown","_a","onDeleteMouseDown","classes","cn","deleteBtn","jsx","Icon","iconAndLabel","jsxs","Fragment","trailing","Ripple","clickable","control","box","splitControlProps","onKeyDown","onChipClick","isOwnClick","_b"],"mappings":";;;;;;;;;AA+DO,MAAMA,KAAOC,EAAM,WAA2D,SACnF;AAAA,EACE,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAaC;AAAA;AAAA,EAEb,WAAWC;AAAA,EACX,eAAeC;AAAA,EACf,mBAAmBC;AAAA,EACnB,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,eAAeC;AAAA,EACf,GAAGC;AACL,GACAC,GACA;;AACA,QAAMC,IAAYxB,EAAM,OAAyB,IAAI,GAC/CyB,IAAazB,EAAM,OAA+B,IAAI,GAEtD0B,IAAc,CAACC,MAAiE;AACpF,IAAApB,KAAA,QAAAA,EAAkBoB;AAAA,EACpB,GAGMC,IAAgB,CAACD,MAAmE;;AACxF,IAAAlB,KAAA,QAAAA,EAAoBkB,IACfT,MACHW,IAAAL,EAAU,YAAV,QAAAK,EAAmB,SAASF;AAAA,EAEhC,GAEMG,IAAoB,CAACH,MAA4B;AACrD,IAAAjB,KAAA,QAAAA,EAAwBiB,IACxBA,EAAM,gBAAA;AAAA,EACR,GAEMI,IAAUC;AAAA,IACd;AAAA,IACA,QAAQjB,CAAO;AAAA,IACf,kBAAkBC,CAAI;AAAA,IACtBC,MAAU,aAAa,mBAAmBA,CAAK;AAAA,IAC/Cd;AAAA,IACA,EAAE,iBAAiBe,GAAU,iBAAiBJ,EAAA;AAAA,EAAS,GAGnDmB,IAAY,CAAC,CAAC3B,KAClB,gBAAA4B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,cAAYd;AAAA,MACZ,UAAAF;AAAA,MACA,SAASZ;AAAA,MACT,aAAawB;AAAA,MAEZ,UAAA1B,KAA0B,gBAAA8B,EAACC,GAAA,EAAK,MAAK,UAAS,MAAM,IAAI,MAAM,EAAA,CAAG;AAAA,IAAA;AAAA,EAAA,GAKhEC,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAjC,KAAQ,gBAAA6B,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAA7B,GAAK;AAAA,sBAChD,QAAA,EAAK,IAAIH,GAAS,WAAU,oBAC1B,UAAAD,EAAA,CACH;AAAA,EAAA,GACF,GAGIsC,IACJ,gBAAAF,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAL;AAAA,IACD,gBAAAC,EAACM,GAAA,EAAO,WAAWhB,EAAA,CAAW;AAAA,EAAA,GAChC;AAGF,MAAIb,KAAUC;AACZ,WACE,gBAAAyB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAd;AAAA,QACA,eAAaF,KAAA,OAAAA,IAAc;AAAA,QAC3B,WAAWU;AAAA,QACX,MAAAnB;AAAA,QACA,aAAAc;AAAA,QACA,eAAAE;AAAA,QACA,QAAAf;AAAA,QACC,GAAGS;AAAA,QAEJ,MAAKO,IAAAP,EAAK,QAAL,OAAAO,IAAY;AAAA,QACjB,WAAWrB;AAAA,QAEV,UAAA;AAAA,UAAA4B;AAAA,UACAG;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAKP,QAAME,IAAY,CAAC,CAACtB,KAAW,CAACD,GAK1B,CAACwB,GAASC,CAAG,IAAIC,EAAkBtB,GAAM,CAAC,CAACH,CAAO,GAIlD0B,IAAY,CAAClB,MAAgD;AAEjE,IADAnB,KAAA,QAAAA,EAAgBmB,IACZ,GAACc,KAAad,EAAM,WAAWF,EAAW,aAC1CE,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SACzCA,EAAM,eAAA,GACNR,KAAA,QAAAA;AAAA,EAEJ,GAMM2B,IAAc,CAACnB,MAA6C;AAChE,IAAIoB,EAAWpB,GAAOF,EAAW,OAAO,MACrCN,KAAA,QAAAA,EAAmEQ;AAAA,EAExE;AAEA,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAd;AAAA,MACA,eAAaF,KAAA,OAAAA,IAAc;AAAA,MAC3B,WAAWU;AAAA,MACV,GAAGY;AAAA,MAGJ,iBAAexB,IAAU,SAAYD,KAAYyB,EAAI,eAAe;AAAA,MACpE,SAASF,IAAYK,IAAc;AAAA,MACnC,WAAAD;AAAA,MACA,aAAAnB;AAAA,MACA,eAAAE;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAGQ;AAAA,YACJ,KAAKjB;AAAA,YACL,WAAU;AAAA,YAKV,MAAMN,IAAU,WAAW;AAAA,YAC3B,WAAU6B,IAAAN,EAAQ,aAAR,OAAAM,IAAqBP,IAAY,IAAI;AAAA,YAC/C,iBAAetB,IAAUD,KAAYwB,EAAQ,eAAe,IAAI;AAAA,YAE/D,UAAAN;AAAA,UAAA;AAAA,QAAA;AAAA,QAGFG;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
@@ -1,43 +1,47 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import '../../../assets/styles/less/components/chipGroup/chipGroup.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
- import A from "clsx";
5
- import { Chip as j } from "../chip/chip.js";
6
- function V({
7
- options: u,
4
+ import j from "clsx";
5
+ import { Chip as k } from "../chip/chip.js";
6
+ function q({
7
+ options: m,
8
8
  value: e,
9
- multiple: d,
9
+ multiple: f,
10
10
  onChange: l,
11
- size: m = "medium",
12
- color: f = "primary",
13
- disabled: a,
14
- className: b,
15
- ...p
11
+ size: a = "medium",
12
+ color: b = "primary",
13
+ disabled: p,
14
+ className: v,
15
+ ...i
16
16
  }) {
17
- const c = () => e == null ? [] : Array.isArray(e) ? e : [e], i = (r) => c().includes(r), v = (r) => {
18
- if (d) {
19
- const s = c(), x = s.includes(r) ? s.filter((y) => y !== r) : [...s, r];
20
- l == null || l(x);
17
+ var d;
18
+ const s = () => e == null ? [] : Array.isArray(e) ? e : [e], u = (r) => s().includes(r), x = (r) => {
19
+ if (f) {
20
+ const c = s(), y = c.includes(r) ? c.filter((A) => A !== r) : [...c, r];
21
+ l == null || l(y);
21
22
  } else
22
23
  l == null || l(r);
23
24
  };
24
- return /* @__PURE__ */ t("div", { ...p, role: "group", className: A("smwb-chip-group", b), children: u.map((r) => /* @__PURE__ */ t(
25
- j,
26
- {
27
- label: r.label,
28
- icon: r.icon,
29
- size: m,
30
- color: f,
31
- selected: i(r.value),
32
- variant: i(r.value) ? "filled" : "outlined",
33
- disabled: !!(a || r.disabled),
34
- onClick: () => v(r.value)
35
- },
36
- r.value
37
- )) });
25
+ return (
26
+ // role="group" is a default: the caller's own wins, and an explicit undefined keeps it.
27
+ /* @__PURE__ */ t("div", { ...i, role: (d = i.role) != null ? d : "group", className: j("smwb-chip-group", v), children: m.map((r) => /* @__PURE__ */ t(
28
+ k,
29
+ {
30
+ label: r.label,
31
+ icon: r.icon,
32
+ size: a,
33
+ color: b,
34
+ selected: u(r.value),
35
+ variant: u(r.value) ? "filled" : "outlined",
36
+ disabled: !!(p || r.disabled),
37
+ onClick: () => x(r.value)
38
+ },
39
+ r.value
40
+ )) })
41
+ );
38
42
  }
39
43
  export {
40
- V as ChipGroup,
41
- V as default
44
+ q as ChipGroup,
45
+ q as default
42
46
  };
43
47
  //# sourceMappingURL=chipGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chipGroup.js","sources":["../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) apps re-hand-roll for\n * filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup({\n options,\n value,\n multiple,\n onChange,\n size = \"medium\",\n color = \"primary\",\n disabled,\n className,\n ...rest\n}: ChipGroupProps): React.ReactElement {\n const selectedValues = (): string[] => {\n if (value == null) return [];\n return Array.isArray(value) ? value : [value];\n };\n const isSelected = (option: string): boolean => selectedValues().includes(option);\n\n const toggle = (option: string): void => {\n if (multiple) {\n const current = selectedValues();\n const next = current.includes(option) ? current.filter((v) => v !== option) : [...current, option];\n onChange?.(next);\n } else {\n onChange?.(option);\n }\n };\n\n return (\n <div {...rest} role=\"group\" className={cn(\"smwb-chip-group\", className)}>\n {options.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n icon={option.icon}\n size={size}\n color={color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n />\n ))}\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"names":["ChipGroup","options","value","multiple","onChange","size","color","disabled","className","rest","selectedValues","isSelected","option","toggle","current","next","v","jsx","cn","Chip"],"mappings":";;;;;AA+BO,SAASA,EAAU;AAAA,EACxB,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;AACrC,QAAMC,IAAiB,MACjBR,KAAS,OAAa,CAAA,IACnB,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAExCS,IAAa,CAACC,MAA4BF,EAAA,EAAiB,SAASE,CAAM,GAE1EC,IAAS,CAACD,MAAyB;AACvC,QAAIT,GAAU;AACZ,YAAMW,IAAUJ,EAAA,GACVK,IAAOD,EAAQ,SAASF,CAAM,IAAIE,EAAQ,OAAO,CAACE,MAAMA,MAAMJ,CAAM,IAAI,CAAC,GAAGE,GAASF,CAAM;AACjG,MAAAR,KAAA,QAAAA,EAAWW;AAAA,IACb;AACE,MAAAX,KAAA,QAAAA,EAAWQ;AAAA,EAEf;AAEA,SACE,gBAAAK,EAAC,OAAA,EAAK,GAAGR,GAAM,MAAK,SAAQ,WAAWS,EAAG,mBAAmBV,CAAS,GACnE,UAAAP,EAAQ,IAAI,CAACW,MACZ,gBAAAK;AAAA,IAACE;AAAA,IAAA;AAAA,MAEC,OAAOP,EAAO;AAAA,MACd,MAAMA,EAAO;AAAA,MACb,MAAAP;AAAA,MACA,OAAAC;AAAA,MACA,UAAUK,EAAWC,EAAO,KAAK;AAAA,MACjC,SAASD,EAAWC,EAAO,KAAK,IAAI,WAAW;AAAA,MAC/C,UAAU,CAAC,EAAEL,KAAYK,EAAO;AAAA,MAChC,SAAS,MAAMC,EAAOD,EAAO,KAAK;AAAA,IAAA;AAAA,IAR7BA,EAAO;AAAA,EAAA,CAUf,GACH;AAEJ;"}
1
+ {"version":3,"file":"chipGroup.js","sources":["../../../../src/components/dataDisplay/chipGroup/chipGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { Chip, type ChipColor } from \"../chip\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ChipGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n options: ChipGroupOption[];\n /** Selected value (single) or values (when `multiple`). */\n value?: string | string[];\n /** Allow more than one selected chip (value becomes a string[]). */\n multiple?: boolean;\n onChange?: (value: string | string[]) => void;\n size?: \"small\" | \"medium\";\n color?: ChipColor;\n disabled?: boolean;\n}\n\n/**\n * A multi/single-select toggle group built on `Chip` — the \"chip as a toggle\"\n * loop (selected → filled, else outlined; `role=group`) apps re-hand-roll for\n * filters / segmented controls. Pass an `options` array and a controlled\n * `value`; `onChange` returns the next value (string, or string[] when multiple).\n */\nexport function ChipGroup({\n options,\n value,\n multiple,\n onChange,\n size = \"medium\",\n color = \"primary\",\n disabled,\n className,\n ...rest\n}: ChipGroupProps): React.ReactElement {\n const selectedValues = (): string[] => {\n if (value == null) return [];\n return Array.isArray(value) ? value : [value];\n };\n const isSelected = (option: string): boolean => selectedValues().includes(option);\n\n const toggle = (option: string): void => {\n if (multiple) {\n const current = selectedValues();\n const next = current.includes(option) ? current.filter((v) => v !== option) : [...current, option];\n onChange?.(next);\n } else {\n onChange?.(option);\n }\n };\n\n return (\n // role=\"group\" is a default: the caller's own wins, and an explicit undefined keeps it.\n <div {...rest} role={rest.role ?? \"group\"} className={cn(\"smwb-chip-group\", className)}>\n {options.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n icon={option.icon}\n size={size}\n color={color}\n selected={isSelected(option.value)}\n variant={isSelected(option.value) ? \"filled\" : \"outlined\"}\n disabled={!!(disabled || option.disabled)}\n onClick={() => toggle(option.value)}\n />\n ))}\n </div>\n );\n}\n\nexport default ChipGroup;\n"],"names":["ChipGroup","options","value","multiple","onChange","size","color","disabled","className","rest","selectedValues","isSelected","option","toggle","current","next","v","_a","cn","jsx","Chip"],"mappings":";;;;;AA+BO,SAASA,EAAU;AAAA,EACxB,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;;AACrC,QAAMC,IAAiB,MACjBR,KAAS,OAAa,CAAA,IACnB,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAExCS,IAAa,CAACC,MAA4BF,EAAA,EAAiB,SAASE,CAAM,GAE1EC,IAAS,CAACD,MAAyB;AACvC,QAAIT,GAAU;AACZ,YAAMW,IAAUJ,EAAA,GACVK,IAAOD,EAAQ,SAASF,CAAM,IAAIE,EAAQ,OAAO,CAACE,MAAMA,MAAMJ,CAAM,IAAI,CAAC,GAAGE,GAASF,CAAM;AACjG,MAAAR,KAAA,QAAAA,EAAWW;AAAA,IACb;AACE,MAAAX,KAAA,QAAAA,EAAWQ;AAAA,EAEf;AAEA;AAAA;AAAA,sBAEG,OAAA,EAAK,GAAGH,GAAM,OAAMQ,IAAAR,EAAK,SAAL,OAAAQ,IAAa,SAAS,WAAWC,EAAG,mBAAmBV,CAAS,GAClF,UAAAP,EAAQ,IAAI,CAACW,MACZ,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,OAAOR,EAAO;AAAA,QACd,MAAMA,EAAO;AAAA,QACb,MAAAP;AAAA,QACA,OAAAC;AAAA,QACA,UAAUK,EAAWC,EAAO,KAAK;AAAA,QACjC,SAASD,EAAWC,EAAO,KAAK,IAAI,WAAW;AAAA,QAC/C,UAAU,CAAC,EAAEL,KAAYK,EAAO;AAAA,QAChC,SAAS,MAAMC,EAAOD,EAAO,KAAK;AAAA,MAAA;AAAA,MAR7BA,EAAO;AAAA,IAAA,CAUf,EAAA,CACH;AAAA;AAEJ;"}
@@ -6,15 +6,23 @@ export interface DescriptionListEntry {
6
6
  key?: React.Key;
7
7
  }
8
8
  /**
9
- * `auto`: the term beside its description while the list's container is at
10
- * least 420px wide, above it when narrower (a container query). `row` and
11
- * `stacked` fix one layout.
9
+ * `auto`: the term beside its description while the list is at least 420px
10
+ * wide, above it when narrower (a container query on the list itself). `row`
11
+ * and `stacked` fix one layout.
12
12
  */
13
13
  export type DescriptionListLayout = "auto" | "row" | "stacked";
14
14
  export interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
15
15
  className?: string;
16
16
  /** The pairs as data; `DescriptionItem` children work too, and come after them. */
17
17
  items?: DescriptionListEntry[];
18
+ /**
19
+ * "auto" (default): each term beside its value while the list is at least
20
+ * 420px wide, above it when narrower — the list's own width decides. So its
21
+ * content does not widen it: where the parent takes its width from its
22
+ * content (a flex item that does not grow, a popover, a table cell) the list
23
+ * has no width; give it one there, or use "row" / "stacked", which fix one
24
+ * layout and take their width from their content.
25
+ */
18
26
  layout?: DescriptionListLayout;
19
27
  /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */
20
28
  termWidth?: number | string;
@@ -1 +1 @@
1
- {"version":3,"file":"descriptionList.js","sources":["../../../../src/components/dataDisplay/descriptionList/descriptionList.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\n\nexport interface DescriptionListEntry {\n term: ReactNode;\n description: ReactNode;\n /** React key; the index is used without it. */\n key?: React.Key;\n}\n\n/**\n * `auto`: the term beside its description while the list's container is at\n * least 420px wide, above it when narrower (a container query). `row` and\n * `stacked` fix one layout.\n */\nexport type DescriptionListLayout = \"auto\" | \"row\" | \"stacked\";\n\nexport interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {\n className?: string;\n /** The pairs as data; `DescriptionItem` children work too, and come after them. */\n items?: DescriptionListEntry[];\n layout?: DescriptionListLayout;\n /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */\n termWidth?: number | string;\n /** Tighter spacing, for side panels. */\n dense?: boolean;\n}\n\nexport interface DescriptionItemProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** The field's name. */\n term: ReactNode;\n}\n\n/** One pair: the term and, as children, its description. */\nexport const DescriptionItem = React.forwardRef<HTMLDivElement, PropsWithChildren<DescriptionItemProps>>(\n function DescriptionItem({ className, term, children, ...rest }, ref) {\n return (\n <div {...rest} ref={ref} className={cn(\"smwb-description-list__item\", className)}>\n <dt className=\"smwb-description-list__term\">{term}</dt>\n <dd className=\"smwb-description-list__details\">{children}</dd>\n </div>\n );\n }\n);\n\n/** Field–value pairs (a `<dl>`): side by side, stacking on a narrow container. */\nexport const DescriptionList = React.forwardRef<HTMLDListElement, PropsWithChildren<DescriptionListProps>>(\n function DescriptionList({ className, style, items, layout = \"auto\", termWidth, dense, children, ...rest }, ref) {\n const width = typeof termWidth === \"number\" ? `${termWidth}px` : termWidth;\n return (\n <dl\n {...rest}\n ref={ref}\n className={cn(\n \"smwb-description-list\",\n `smwb-description-list_${layout}`,\n { \"smwb-description-list_dense\": dense },\n className\n )}\n style={width === undefined ? style : ({ ...style, \"--smwb-description-term\": width } as CSSProperties)}\n >\n {items?.map((item, index) => (\n <DescriptionItem key={item.key ?? index} term={item.term}>\n {item.description}\n </DescriptionItem>\n ))}\n {children}\n </dl>\n );\n }\n);\n\nexport default DescriptionList;\n"],"names":["DescriptionItem","React","className","term","children","rest","ref","jsxs","cn","jsx","DescriptionList","style","items","layout","termWidth","dense","width","item","index","_a"],"mappings":";;;;;AAqCO,MAAMA,IAAkBC,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,MAAAC,GAAM,UAAAC,GAAU,GAAGC,EAAA,GAAQC,GAAK;AACpE,WACE,gBAAAC,EAAC,SAAK,GAAGF,GAAM,KAAAC,GAAU,WAAWE,EAAG,+BAA+BN,CAAS,GAC7E,UAAA;AAAA,MAAA,gBAAAO,EAAC,MAAA,EAAG,WAAU,+BAA+B,UAAAN,GAAK;AAAA,MAClD,gBAAAM,EAAC,MAAA,EAAG,WAAU,kCAAkC,UAAAL,EAAA,CAAS;AAAA,IAAA,GAC3D;AAAA,EAEJ;AACF,GAGaM,IAAkBT,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,OAAAS,GAAO,OAAAC,GAAO,QAAAC,IAAS,QAAQ,WAAAC,GAAW,OAAAC,GAAO,UAAAX,GAAU,GAAGC,EAAA,GAAQC,GAAK;AAC/G,UAAMU,IAAQ,OAAOF,KAAc,WAAW,GAAGA,CAAS,OAAOA;AACjE,WACE,gBAAAP;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGF;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWE;AAAA,UACT;AAAA,UACA,yBAAyBK,CAAM;AAAA,UAC/B,EAAE,+BAA+BE,EAAA;AAAA,UACjCb;AAAA,QAAA;AAAA,QAEF,OAAOc,MAAU,SAAYL,IAAS,EAAE,GAAGA,GAAO,2BAA2BK,EAAA;AAAA,QAE5E,UAAA;AAAA,UAAAJ,KAAA,gBAAAA,EAAO,IAAI,CAACK,GAAMC,MAAA;;qCAChBlB,GAAA,EAAwC,MAAMiB,EAAK,MACjD,UAAAA,EAAK,YAAA,IADcE,IAAAF,EAAK,QAAL,OAAAE,IAAYD,CAElC;AAAA;AAAA,UAEDd;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;"}
1
+ {"version":3,"file":"descriptionList.js","sources":["../../../../src/components/dataDisplay/descriptionList/descriptionList.tsx"],"sourcesContent":["import React, { CSSProperties, HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\nimport cn from \"clsx\";\n\nexport interface DescriptionListEntry {\n term: ReactNode;\n description: ReactNode;\n /** React key; the index is used without it. */\n key?: React.Key;\n}\n\n/**\n * `auto`: the term beside its description while the list is at least 420px\n * wide, above it when narrower (a container query on the list itself). `row`\n * and `stacked` fix one layout.\n */\nexport type DescriptionListLayout = \"auto\" | \"row\" | \"stacked\";\n\nexport interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {\n className?: string;\n /** The pairs as data; `DescriptionItem` children work too, and come after them. */\n items?: DescriptionListEntry[];\n /**\n * \"auto\" (default): each term beside its value while the list is at least\n * 420px wide, above it when narrower — the list's own width decides. So its\n * content does not widen it: where the parent takes its width from its\n * content (a flex item that does not grow, a popover, a table cell) the list\n * has no width; give it one there, or use \"row\" / \"stacked\", which fix one\n * layout and take their width from their content.\n */\n layout?: DescriptionListLayout;\n /** Width of the term column in the row layout: px or any CSS track size. 30% of the list, at least 6rem, by default. */\n termWidth?: number | string;\n /** Tighter spacing, for side panels. */\n dense?: boolean;\n}\n\nexport interface DescriptionItemProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** The field's name. */\n term: ReactNode;\n}\n\n/** One pair: the term and, as children, its description. */\nexport const DescriptionItem = React.forwardRef<HTMLDivElement, PropsWithChildren<DescriptionItemProps>>(\n function DescriptionItem({ className, term, children, ...rest }, ref) {\n return (\n <div {...rest} ref={ref} className={cn(\"smwb-description-list__item\", className)}>\n <dt className=\"smwb-description-list__term\">{term}</dt>\n <dd className=\"smwb-description-list__details\">{children}</dd>\n </div>\n );\n }\n);\n\n/** Field–value pairs (a `<dl>`): side by side, stacking on a narrow container. */\nexport const DescriptionList = React.forwardRef<HTMLDListElement, PropsWithChildren<DescriptionListProps>>(\n function DescriptionList({ className, style, items, layout = \"auto\", termWidth, dense, children, ...rest }, ref) {\n const width = typeof termWidth === \"number\" ? `${termWidth}px` : termWidth;\n return (\n <dl\n {...rest}\n ref={ref}\n className={cn(\n \"smwb-description-list\",\n `smwb-description-list_${layout}`,\n { \"smwb-description-list_dense\": dense },\n className\n )}\n style={width === undefined ? style : ({ ...style, \"--smwb-description-term\": width } as CSSProperties)}\n >\n {items?.map((item, index) => (\n <DescriptionItem key={item.key ?? index} term={item.term}>\n {item.description}\n </DescriptionItem>\n ))}\n {children}\n </dl>\n );\n }\n);\n\nexport default DescriptionList;\n"],"names":["DescriptionItem","React","className","term","children","rest","ref","jsxs","cn","jsx","DescriptionList","style","items","layout","termWidth","dense","width","item","index","_a"],"mappings":";;;;;AA6CO,MAAMA,IAAkBC,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,MAAAC,GAAM,UAAAC,GAAU,GAAGC,EAAA,GAAQC,GAAK;AACpE,WACE,gBAAAC,EAAC,SAAK,GAAGF,GAAM,KAAAC,GAAU,WAAWE,EAAG,+BAA+BN,CAAS,GAC7E,UAAA;AAAA,MAAA,gBAAAO,EAAC,MAAA,EAAG,WAAU,+BAA+B,UAAAN,GAAK;AAAA,MAClD,gBAAAM,EAAC,MAAA,EAAG,WAAU,kCAAkC,UAAAL,EAAA,CAAS;AAAA,IAAA,GAC3D;AAAA,EAEJ;AACF,GAGaM,IAAkBT,EAAM;AAAA,EACnC,SAAyB,EAAE,WAAAC,GAAW,OAAAS,GAAO,OAAAC,GAAO,QAAAC,IAAS,QAAQ,WAAAC,GAAW,OAAAC,GAAO,UAAAX,GAAU,GAAGC,EAAA,GAAQC,GAAK;AAC/G,UAAMU,IAAQ,OAAOF,KAAc,WAAW,GAAGA,CAAS,OAAOA;AACjE,WACE,gBAAAP;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGF;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWE;AAAA,UACT;AAAA,UACA,yBAAyBK,CAAM;AAAA,UAC/B,EAAE,+BAA+BE,EAAA;AAAA,UACjCb;AAAA,QAAA;AAAA,QAEF,OAAOc,MAAU,SAAYL,IAAS,EAAE,GAAGA,GAAO,2BAA2BK,EAAA;AAAA,QAE5E,UAAA;AAAA,UAAAJ,KAAA,gBAAAA,EAAO,IAAI,CAACK,GAAMC,MAAA;;qCAChBlB,GAAA,EAAwC,MAAMiB,EAAK,MACjD,UAAAA,EAAK,YAAA,IADcE,IAAAF,EAAK,QAAL,OAAAE,IAAYD,CAElC;AAAA;AAAA,UAEDd;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;"}