@smwb/ui-react 2.7.0 → 2.9.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 (602) hide show
  1. package/AI_LESS_OVERRIDES.md +84 -21
  2. package/AI_THEMING.md +72 -28
  3. package/README.md +681 -0
  4. package/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
  5. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  6. package/dist/assets/styles/less/components/button/button.entry.css +1 -1
  7. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  8. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  9. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  10. package/dist/assets/styles/less/components/commandPalette/commandPalette.entry.css +1 -0
  11. package/dist/assets/styles/less/components/composer/composer.entry.css +1 -0
  12. package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
  13. package/dist/assets/styles/less/components/diffStat/diffStat.entry.css +1 -0
  14. package/dist/assets/styles/less/components/kbd/kbd.entry.css +1 -0
  15. package/dist/assets/styles/less/components/list/list.entry.css +1 -1
  16. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  17. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
  18. package/dist/assets/styles/less/components/qrCode/qrCode.entry.css +1 -0
  19. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  20. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  21. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  22. package/dist/assets/styles/less/components/sidebar/sidebar.entry.css +1 -1
  23. package/dist/assets/styles/less/components/statusDot/statusDot.entry.css +1 -0
  24. package/dist/assets/styles/less/components/swimlanes/swimlanes.entry.css +1 -0
  25. package/dist/assets/styles/less/components/tabGroups/tabGroups.entry.css +1 -0
  26. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  27. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  28. package/dist/assets/styles/less/components/tabs/tabPanel/tabPanel.entry.css +1 -0
  29. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  30. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  31. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  32. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  33. package/dist/assets/styles/less/components/treeView/treeView.entry.css +1 -1
  34. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  35. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -1
  36. package/dist/assets/styles/less/tokens.entry.css +1 -1
  37. package/dist/components/base/icon/icon.d.ts +6 -2
  38. package/dist/components/base/icon/icon.js +49 -37
  39. package/dist/components/base/icon/icon.js.map +1 -1
  40. package/dist/components/base/ripple/ripple.d.ts +3 -0
  41. package/dist/components/base/ripple/ripple.js +38 -23
  42. package/dist/components/base/ripple/ripple.js.map +1 -1
  43. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  44. package/dist/components/dataDisplay/avatar/avatar.js +50 -37
  45. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  46. package/dist/components/dataDisplay/badge/badge.js +37 -28
  47. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  48. package/dist/components/dataDisplay/card/card.d.ts +30 -2
  49. package/dist/components/dataDisplay/card/card.js +50 -23
  50. package/dist/components/dataDisplay/card/card.js.map +1 -1
  51. package/dist/components/dataDisplay/carousel/carousel.js +70 -70
  52. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  53. package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
  54. package/dist/components/dataDisplay/chart/chart.js +66 -53
  55. package/dist/components/dataDisplay/chart/chart.js.map +1 -1
  56. package/dist/components/dataDisplay/chat/chat.d.ts +43 -1
  57. package/dist/components/dataDisplay/chat/chat.js +179 -150
  58. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  59. package/dist/components/dataDisplay/chat/chatComposer.d.ts +17 -0
  60. package/dist/components/dataDisplay/chat/chatComposer.js +31 -29
  61. package/dist/components/dataDisplay/chat/chatComposer.js.map +1 -1
  62. package/dist/components/dataDisplay/chat/chatIconButton.d.ts +1 -1
  63. package/dist/components/dataDisplay/chat/chatIconButton.js +30 -26
  64. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  65. package/dist/components/dataDisplay/chat/chatLayout.d.ts +3 -1
  66. package/dist/components/dataDisplay/chat/chatLayout.js +56 -55
  67. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  68. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +3 -1
  69. package/dist/components/dataDisplay/chat/index.d.ts +1 -1
  70. package/dist/components/dataDisplay/chat/utils.d.ts +14 -0
  71. package/dist/components/dataDisplay/chat/utils.js.map +1 -1
  72. package/dist/components/dataDisplay/chip/chip.d.ts +31 -0
  73. package/dist/components/dataDisplay/chip/chip.js +110 -83
  74. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  75. package/dist/components/dataDisplay/chipGroup/chipGroup.js +34 -30
  76. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  77. package/dist/components/dataDisplay/dagView/dagLayout.d.ts +74 -0
  78. package/dist/components/dataDisplay/dagView/dagLayout.js +289 -0
  79. package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  80. package/dist/components/dataDisplay/dagView/dagView.d.ts +157 -0
  81. package/dist/components/dataDisplay/dagView/dagView.js +543 -0
  82. package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
  83. package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
  84. package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
  85. package/dist/components/dataDisplay/dagView/panZoom.js +171 -0
  86. package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
  87. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
  88. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  89. package/dist/components/dataDisplay/diffStat/diffStat.d.ts +54 -0
  90. package/dist/components/dataDisplay/diffStat/diffStat.js +63 -0
  91. package/dist/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  92. package/dist/components/dataDisplay/diffStat/index.d.ts +2 -0
  93. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  94. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  95. package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
  96. package/dist/components/dataDisplay/kanban/kanban.js +46 -35
  97. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
  98. package/dist/components/dataDisplay/kbd/index.d.ts +4 -0
  99. package/dist/components/dataDisplay/kbd/kbd.d.ts +40 -0
  100. package/dist/components/dataDisplay/kbd/kbd.js +27 -0
  101. package/dist/components/dataDisplay/kbd/kbd.js.map +1 -0
  102. package/dist/components/dataDisplay/kbd/kbdKeys.d.ts +18 -0
  103. package/dist/components/dataDisplay/kbd/kbdKeys.js +72 -0
  104. package/dist/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  105. package/dist/components/dataDisplay/lazyImage/lazyImage.js +31 -30
  106. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  107. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  108. package/dist/components/dataDisplay/list/list.js +15 -14
  109. package/dist/components/dataDisplay/list/list.js.map +1 -1
  110. package/dist/components/dataDisplay/list/listItem.d.ts +34 -0
  111. package/dist/components/dataDisplay/list/listItem.js +47 -24
  112. package/dist/components/dataDisplay/list/listItem.js.map +1 -1
  113. package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
  114. package/dist/components/dataDisplay/meter/meter.js +24 -23
  115. package/dist/components/dataDisplay/meter/meter.js.map +1 -1
  116. package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
  117. package/dist/components/dataDisplay/personChip/personChip.js +39 -27
  118. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
  119. package/dist/components/dataDisplay/qrCode/index.d.ts +2 -0
  120. package/dist/components/dataDisplay/qrCode/qrCode.d.ts +28 -0
  121. package/dist/components/dataDisplay/qrCode/qrCode.js +78 -0
  122. package/dist/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  123. package/dist/components/dataDisplay/qrCode/qrCodePath.d.ts +7 -0
  124. package/dist/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  125. package/dist/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  126. package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
  127. package/dist/components/dataDisplay/stat/stat.js +25 -13
  128. package/dist/components/dataDisplay/stat/stat.js.map +1 -1
  129. package/dist/components/dataDisplay/statusDot/index.d.ts +2 -0
  130. package/dist/components/dataDisplay/statusDot/statusDot.d.ts +35 -0
  131. package/dist/components/dataDisplay/statusDot/statusDot.js +30 -0
  132. package/dist/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  133. package/dist/components/dataDisplay/swimlanes/index.d.ts +2 -0
  134. package/dist/components/dataDisplay/swimlanes/swimlanes.d.ts +53 -0
  135. package/dist/components/dataDisplay/swimlanes/swimlanes.js +357 -0
  136. package/dist/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  137. package/dist/components/dataDisplay/table/table.d.ts +16 -1
  138. package/dist/components/dataDisplay/table/table.js +40 -36
  139. package/dist/components/dataDisplay/table/table.js.map +1 -1
  140. package/dist/components/dataDisplay/table/tableBody.js +10 -4
  141. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  142. package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
  143. package/dist/components/dataDisplay/table/tableCell.js +20 -13
  144. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  145. package/dist/components/dataDisplay/table/tableColumns.d.ts +83 -0
  146. package/dist/components/dataDisplay/table/tableColumns.js +112 -0
  147. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  148. package/dist/components/dataDisplay/table/tableHead.js +9 -3
  149. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  150. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +24 -3
  151. package/dist/components/dataDisplay/table/tableHeadCell.js +60 -65
  152. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  153. package/dist/components/dataDisplay/table/tableRow.d.ts +3 -1
  154. package/dist/components/dataDisplay/table/tableRow.js +28 -16
  155. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  156. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  157. package/dist/components/dataDisplay/thumbCard/thumbCard.js +79 -59
  158. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  159. package/dist/components/dataDisplay/treeView/treeView.d.ts +19 -1
  160. package/dist/components/dataDisplay/treeView/treeView.js +113 -91
  161. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  162. package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
  163. package/dist/components/feedBack/emptyState/emptyState.js +22 -12
  164. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
  165. package/dist/components/feedBack/message/message.d.ts +2 -0
  166. package/dist/components/feedBack/message/message.js +30 -19
  167. package/dist/components/feedBack/message/message.js.map +1 -1
  168. package/dist/components/feedBack/modal/modal.js +84 -63
  169. package/dist/components/feedBack/modal/modal.js.map +1 -1
  170. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  171. package/dist/components/feedBack/skeleton/skeleton.js +37 -34
  172. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  173. package/dist/components/feedBack/snackbar/snackbar.js +104 -103
  174. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  175. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  176. package/dist/components/feedBack/tooltip/tooltip.js +67 -47
  177. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  178. package/dist/components/inputs/button/button.d.ts +15 -1
  179. package/dist/components/inputs/button/button.js +73 -63
  180. package/dist/components/inputs/button/button.js.map +1 -1
  181. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  182. package/dist/components/inputs/buttonGroups/buttonGroup.js +40 -36
  183. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  184. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  185. package/dist/components/inputs/checkbox/checkbox.js +84 -59
  186. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  187. package/dist/components/inputs/composer/composer.d.ts +149 -0
  188. package/dist/components/inputs/composer/composer.js +219 -0
  189. package/dist/components/inputs/composer/composer.js.map +1 -0
  190. package/dist/components/inputs/composer/composerFiles.d.ts +26 -0
  191. package/dist/components/inputs/composer/composerFiles.js +19 -0
  192. package/dist/components/inputs/composer/composerFiles.js.map +1 -0
  193. package/dist/components/inputs/composer/composerKeys.d.ts +29 -0
  194. package/dist/components/inputs/composer/composerKeys.js +7 -0
  195. package/dist/components/inputs/composer/composerKeys.js.map +1 -0
  196. package/dist/components/inputs/composer/index.d.ts +3 -0
  197. package/dist/components/inputs/datePicker/datePicker.js +170 -164
  198. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  199. package/dist/components/inputs/datePicker/datePickerDay.d.ts +1 -1
  200. package/dist/components/inputs/datePicker/datePickerDay.js +52 -44
  201. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  202. package/dist/components/inputs/datePicker/datePickerIconButton.d.ts +1 -1
  203. package/dist/components/inputs/datePicker/datePickerIconButton.js +32 -28
  204. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  205. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
  206. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  207. package/dist/components/inputs/floatingButton/floatingButton.js +32 -30
  208. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  209. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  210. package/dist/components/inputs/radioButton/radioButton.js +77 -58
  211. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  212. package/dist/components/inputs/rating/rating.d.ts +8 -0
  213. package/dist/components/inputs/rating/rating.js +85 -70
  214. package/dist/components/inputs/rating/rating.js.map +1 -1
  215. package/dist/components/inputs/selectField/dropdownMenu.d.ts +20 -1
  216. package/dist/components/inputs/selectField/dropdownMenu.js +266 -113
  217. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  218. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  219. package/dist/components/inputs/selectField/optionNavigation.js +38 -0
  220. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  221. package/dist/components/inputs/selectField/selectField.d.ts +31 -1
  222. package/dist/components/inputs/selectField/selectField.js +358 -218
  223. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  224. package/dist/components/inputs/slider/slider.d.ts +22 -1
  225. package/dist/components/inputs/slider/slider.js +330 -261
  226. package/dist/components/inputs/slider/slider.js.map +1 -1
  227. package/dist/components/inputs/textField/textField.d.ts +7 -0
  228. package/dist/components/inputs/textField/textField.js +118 -100
  229. package/dist/components/inputs/textField/textField.js.map +1 -1
  230. package/dist/components/inputs/textField/textFieldWrapper.d.ts +15 -1
  231. package/dist/components/inputs/textField/textFieldWrapper.js +45 -34
  232. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  233. package/dist/components/inputs/timePicker/timePicker.js +91 -85
  234. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  235. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  236. package/dist/components/inputs/toggle/toggle.js +80 -61
  237. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  238. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  239. package/dist/components/inputs/valueSlider/valueSlider.js +23 -22
  240. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  241. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  242. package/dist/components/layout/appLayout/appLayout.js +25 -24
  243. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  244. package/dist/components/layout/divider/divider.d.ts +2 -0
  245. package/dist/components/layout/divider/divider.js +23 -22
  246. package/dist/components/layout/divider/divider.js.map +1 -1
  247. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  248. package/dist/components/layout/floatingWindow/floatingWindow.js +145 -139
  249. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  250. package/dist/components/layout/grid/grid.d.ts +12 -1
  251. package/dist/components/layout/grid/grid.js +51 -36
  252. package/dist/components/layout/grid/grid.js.map +1 -1
  253. package/dist/components/layout/page/page.d.ts +2 -0
  254. package/dist/components/layout/page/page.js +16 -8
  255. package/dist/components/layout/page/page.js.map +1 -1
  256. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  257. package/dist/components/layout/pageHeader/pageHeader.js +22 -13
  258. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  259. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
  260. package/dist/components/layout/sectionHeader/sectionHeader.js +37 -27
  261. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  262. package/dist/components/layout/sheet/sheet.d.ts +14 -0
  263. package/dist/components/layout/sheet/sheet.js +148 -132
  264. package/dist/components/layout/sheet/sheet.js.map +1 -1
  265. package/dist/components/layout/stack/stack.d.ts +2 -0
  266. package/dist/components/layout/stack/stack.js +29 -17
  267. package/dist/components/layout/stack/stack.js.map +1 -1
  268. package/dist/components/layout/tabGroups/index.d.ts +4 -0
  269. package/dist/components/layout/tabGroups/tabGroups.d.ts +94 -0
  270. package/dist/components/layout/tabGroups/tabGroups.js +783 -0
  271. package/dist/components/layout/tabGroups/tabGroups.js.map +1 -0
  272. package/dist/components/layout/tabGroups/tabGroupsFocus.d.ts +55 -0
  273. package/dist/components/layout/tabGroups/tabGroupsFocus.js +199 -0
  274. package/dist/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  275. package/dist/components/layout/tabGroups/tabGroupsLayout.d.ts +250 -0
  276. package/dist/components/layout/tabGroups/tabGroupsLayout.js +497 -0
  277. package/dist/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  278. package/dist/components/navigation/appBar/appBar.d.ts +24 -0
  279. package/dist/components/navigation/appBar/appBar.js +39 -33
  280. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  281. package/dist/components/navigation/bottomBar/bottomBar.js +81 -77
  282. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  283. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  284. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +29 -27
  285. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  286. package/dist/components/navigation/commandPalette/commandPalette.d.ts +111 -0
  287. package/dist/components/navigation/commandPalette/commandPalette.js +337 -0
  288. package/dist/components/navigation/commandPalette/commandPalette.js.map +1 -0
  289. package/dist/components/navigation/commandPalette/commandPaletteFilter.d.ts +11 -0
  290. package/dist/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  291. package/dist/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  292. package/dist/components/navigation/commandPalette/commandPaletteNavigation.d.ts +13 -0
  293. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  294. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  295. package/dist/components/navigation/commandPalette/commandPaletteTypes.d.ts +39 -0
  296. package/dist/components/navigation/commandPalette/index.d.ts +4 -0
  297. package/dist/components/navigation/menu/menu.d.ts +12 -0
  298. package/dist/components/navigation/menu/menu.js.map +1 -1
  299. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  300. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  301. package/dist/components/navigation/menu/menuFloating.js +42 -30
  302. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  303. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  304. package/dist/components/navigation/menu/menuItem.js +60 -48
  305. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  306. package/dist/components/navigation/menu/menuList.d.ts +5 -1
  307. package/dist/components/navigation/menu/menuList.js +30 -19
  308. package/dist/components/navigation/menu/menuList.js.map +1 -1
  309. package/dist/components/navigation/menu/menuSubmenu.js +53 -40
  310. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  311. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  312. package/dist/components/navigation/pagination/pagination.js +51 -49
  313. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  314. package/dist/components/navigation/sidebar/sidebar.d.ts +10 -0
  315. package/dist/components/navigation/sidebar/sidebar.js +65 -62
  316. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  317. package/dist/components/navigation/stepper/stepper.d.ts +2 -0
  318. package/dist/components/navigation/stepper/stepper.js +37 -28
  319. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  320. package/dist/components/navigation/tabs/index.d.ts +3 -1
  321. package/dist/components/navigation/tabs/tab/tab.d.ts +88 -1
  322. package/dist/components/navigation/tabs/tab/tab.js +116 -35
  323. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  324. package/dist/components/navigation/tabs/tabPanel/tabPanel.d.ts +19 -0
  325. package/dist/components/navigation/tabs/tabPanel/tabPanel.js +27 -0
  326. package/dist/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  327. package/dist/components/navigation/tabs/tabs.d.ts +80 -4
  328. package/dist/components/navigation/tabs/tabs.js +369 -148
  329. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  330. package/dist/components/navigation/tabs/tabs.utils.d.ts +20 -0
  331. package/dist/components/navigation/tabs/tabs.utils.js +11 -0
  332. package/dist/components/navigation/tabs/tabs.utils.js.map +1 -0
  333. package/dist/components/navigation/tabs/tabsContext.d.ts +11 -0
  334. package/dist/components/navigation/tabs/tabsContext.js +6 -0
  335. package/dist/components/navigation/tabs/tabsContext.js.map +1 -0
  336. package/dist/connects/rt/table/headerCellRenderer.d.ts +4 -1
  337. package/dist/connects/rt/table/headerCellRenderer.js +45 -15
  338. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -1
  339. package/dist/connects/rt/table/table.d.ts +15 -1
  340. package/dist/connects/rt/table/table.js +125 -131
  341. package/dist/connects/rt/table/table.js.map +1 -1
  342. package/dist/headless/components/base/icon/icon.js +49 -37
  343. package/dist/headless/components/base/icon/icon.js.map +1 -1
  344. package/dist/headless/components/base/ripple/ripple.js +42 -27
  345. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  346. package/dist/headless/components/dataDisplay/avatar/avatar.js +51 -38
  347. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  348. package/dist/headless/components/dataDisplay/badge/badge.js +37 -28
  349. package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
  350. package/dist/headless/components/dataDisplay/card/card.js +50 -23
  351. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  352. package/dist/headless/components/dataDisplay/carousel/carousel.js +55 -55
  353. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  354. package/dist/headless/components/dataDisplay/chat/chat.js +179 -150
  355. package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
  356. package/dist/headless/components/dataDisplay/chat/chatComposer.js +31 -29
  357. package/dist/headless/components/dataDisplay/chat/chatComposer.js.map +1 -1
  358. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +30 -26
  359. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  360. package/dist/headless/components/dataDisplay/chat/chatLayout.js +56 -55
  361. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  362. package/dist/headless/components/dataDisplay/chat/utils.js.map +1 -1
  363. package/dist/headless/components/dataDisplay/chip/chip.js +108 -81
  364. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  365. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +35 -31
  366. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  367. package/dist/headless/components/dataDisplay/dagView/dagLayout.js +289 -0
  368. package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  369. package/dist/headless/components/dataDisplay/dagView/dagView.js +541 -0
  370. package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
  371. package/dist/headless/components/dataDisplay/dagView/panZoom.js +171 -0
  372. package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
  373. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  374. package/dist/headless/components/dataDisplay/diffStat/diffStat.js +61 -0
  375. package/dist/headless/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  376. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  377. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  378. package/dist/headless/components/dataDisplay/kanban/kanban.js +45 -34
  379. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
  380. package/dist/headless/components/dataDisplay/kbd/kbd.js +25 -0
  381. package/dist/headless/components/dataDisplay/kbd/kbd.js.map +1 -0
  382. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js +72 -0
  383. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  384. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +30 -29
  385. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  386. package/dist/headless/components/dataDisplay/list/list.js +15 -14
  387. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  388. package/dist/headless/components/dataDisplay/list/listItem.js +47 -24
  389. package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
  390. package/dist/headless/components/dataDisplay/meter/meter.js +19 -18
  391. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
  392. package/dist/headless/components/dataDisplay/personChip/personChip.js +39 -27
  393. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
  394. package/dist/headless/components/dataDisplay/qrCode/qrCode.js +76 -0
  395. package/dist/headless/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  396. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  397. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  398. package/dist/headless/components/dataDisplay/stat/stat.js +27 -15
  399. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
  400. package/dist/headless/components/dataDisplay/statusDot/statusDot.js +28 -0
  401. package/dist/headless/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  402. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js +355 -0
  403. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  404. package/dist/headless/components/dataDisplay/table/table.js +40 -36
  405. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  406. package/dist/headless/components/dataDisplay/table/tableBody.js +10 -4
  407. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  408. package/dist/headless/components/dataDisplay/table/tableCell.js +20 -13
  409. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  410. package/dist/headless/components/dataDisplay/table/tableColumns.js +112 -0
  411. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  412. package/dist/headless/components/dataDisplay/table/tableHead.js +9 -3
  413. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  414. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +60 -65
  415. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  416. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -16
  417. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  418. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +78 -58
  419. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  420. package/dist/headless/components/dataDisplay/treeView/treeView.js +113 -91
  421. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  422. package/dist/headless/components/feedBack/emptyState/emptyState.js +21 -11
  423. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
  424. package/dist/headless/components/feedBack/message/message.js +31 -20
  425. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  426. package/dist/headless/components/feedBack/modal/modal.js +84 -63
  427. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  428. package/dist/headless/components/feedBack/skeleton/skeleton.js +38 -35
  429. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  430. package/dist/headless/components/feedBack/snackbar/snackbar.js +108 -107
  431. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  432. package/dist/headless/components/feedBack/tooltip/tooltip.js +67 -47
  433. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  434. package/dist/headless/components/inputs/button/button.js +73 -63
  435. package/dist/headless/components/inputs/button/button.js.map +1 -1
  436. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +40 -36
  437. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  438. package/dist/headless/components/inputs/checkbox/checkbox.js +85 -60
  439. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  440. package/dist/headless/components/inputs/composer/composer.js +217 -0
  441. package/dist/headless/components/inputs/composer/composer.js.map +1 -0
  442. package/dist/headless/components/inputs/composer/composerFiles.js +19 -0
  443. package/dist/headless/components/inputs/composer/composerFiles.js.map +1 -0
  444. package/dist/headless/components/inputs/composer/composerKeys.js +7 -0
  445. package/dist/headless/components/inputs/composer/composerKeys.js.map +1 -0
  446. package/dist/headless/components/inputs/datePicker/datePicker.js +170 -164
  447. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  448. package/dist/headless/components/inputs/datePicker/datePickerDay.js +52 -44
  449. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  450. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +32 -28
  451. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  452. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +160 -154
  453. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  454. package/dist/headless/components/inputs/floatingButton/floatingButton.js +32 -30
  455. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  456. package/dist/headless/components/inputs/radioButton/radioButton.js +77 -58
  457. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  458. package/dist/headless/components/inputs/rating/rating.js +85 -70
  459. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  460. package/dist/headless/components/inputs/selectField/dropdownMenu.js +266 -113
  461. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  462. package/dist/headless/components/inputs/selectField/optionNavigation.js +38 -0
  463. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  464. package/dist/headless/components/inputs/selectField/selectField.js +358 -218
  465. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  466. package/dist/headless/components/inputs/slider/slider.js +330 -261
  467. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  468. package/dist/headless/components/inputs/textField/textField.js +118 -100
  469. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  470. package/dist/headless/components/inputs/textField/textFieldWrapper.js +45 -34
  471. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  472. package/dist/headless/components/inputs/timePicker/timePicker.js +91 -85
  473. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  474. package/dist/headless/components/inputs/toggle/toggle.js +79 -60
  475. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  476. package/dist/headless/components/inputs/valueSlider/valueSlider.js +25 -24
  477. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  478. package/dist/headless/components/layout/appLayout/appLayout.js +27 -26
  479. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  480. package/dist/headless/components/layout/divider/divider.js +18 -17
  481. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  482. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +145 -139
  483. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  484. package/dist/headless/components/layout/grid/grid.js +48 -33
  485. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  486. package/dist/headless/components/layout/page/page.js +15 -7
  487. package/dist/headless/components/layout/page/page.js.map +1 -1
  488. package/dist/headless/components/layout/pageHeader/pageHeader.js +20 -11
  489. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  490. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +36 -26
  491. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  492. package/dist/headless/components/layout/sheet/sheet.js +156 -140
  493. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  494. package/dist/headless/components/layout/stack/stack.js +29 -17
  495. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  496. package/dist/headless/components/layout/tabGroups/tabGroups.js +781 -0
  497. package/dist/headless/components/layout/tabGroups/tabGroups.js.map +1 -0
  498. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js +199 -0
  499. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  500. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js +497 -0
  501. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  502. package/dist/headless/components/navigation/appBar/appBar.js +35 -29
  503. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  504. package/dist/headless/components/navigation/bottomBar/bottomBar.js +81 -77
  505. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  506. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +32 -30
  507. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  508. package/dist/headless/components/navigation/commandPalette/commandPalette.js +335 -0
  509. package/dist/headless/components/navigation/commandPalette/commandPalette.js.map +1 -0
  510. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  511. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  512. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  513. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  514. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  515. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  516. package/dist/headless/components/navigation/menu/menuFloating.js +42 -30
  517. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  518. package/dist/headless/components/navigation/menu/menuItem.js +60 -48
  519. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  520. package/dist/headless/components/navigation/menu/menuList.js +30 -19
  521. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  522. package/dist/headless/components/navigation/menu/menuSubmenu.js +53 -40
  523. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  524. package/dist/headless/components/navigation/pagination/pagination.js +51 -49
  525. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  526. package/dist/headless/components/navigation/sidebar/sidebar.js +55 -52
  527. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  528. package/dist/headless/components/navigation/stepper/stepper.js +42 -33
  529. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  530. package/dist/headless/components/navigation/tabs/tab/tab.js +117 -36
  531. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  532. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js +25 -0
  533. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  534. package/dist/headless/components/navigation/tabs/tabs.js +362 -141
  535. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  536. package/dist/headless/components/navigation/tabs/tabs.utils.js +11 -0
  537. package/dist/headless/components/navigation/tabs/tabs.utils.js.map +1 -0
  538. package/dist/headless/components/navigation/tabs/tabsContext.js +6 -0
  539. package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -0
  540. package/dist/headless/hooks/useDismissOnEscape.js +16 -0
  541. package/dist/headless/hooks/useDismissOnEscape.js.map +1 -0
  542. package/dist/headless/hooks/useFocusTrap.js +24 -20
  543. package/dist/headless/hooks/useFocusTrap.js.map +1 -1
  544. package/dist/headless/hooks/useHelperText.js +13 -0
  545. package/dist/headless/hooks/useHelperText.js.map +1 -0
  546. package/dist/headless/hooks/useKeyboardShortcut.js +19 -0
  547. package/dist/headless/hooks/useKeyboardShortcut.js.map +1 -0
  548. package/dist/headless/index.js +360 -316
  549. package/dist/headless/index.js.map +1 -1
  550. package/dist/headless/utils/controlProps.js +14 -0
  551. package/dist/headless/utils/controlProps.js.map +1 -0
  552. package/dist/headless/utils/keyboardShortcut.js +49 -0
  553. package/dist/headless/utils/keyboardShortcut.js.map +1 -0
  554. package/dist/headless/utils/linkAttrs.js +13 -0
  555. package/dist/headless/utils/linkAttrs.js.map +1 -0
  556. package/dist/headless/utils/overlayLayer.js +14 -7
  557. package/dist/headless/utils/overlayLayer.js.map +1 -1
  558. package/dist/headless/utils/ownClick.js +40 -0
  559. package/dist/headless/utils/ownClick.js.map +1 -0
  560. package/dist/headless/utils/readOnlyToggle.js +14 -0
  561. package/dist/headless/utils/readOnlyToggle.js.map +1 -0
  562. package/dist/headless/utils/restoreFocus.js +10 -0
  563. package/dist/headless/utils/restoreFocus.js.map +1 -0
  564. package/dist/hooks/useDismissOnEscape.d.ts +11 -0
  565. package/dist/hooks/useDismissOnEscape.js +16 -0
  566. package/dist/hooks/useDismissOnEscape.js.map +1 -0
  567. package/dist/hooks/useFocusTrap.d.ts +8 -1
  568. package/dist/hooks/useFocusTrap.js +24 -20
  569. package/dist/hooks/useFocusTrap.js.map +1 -1
  570. package/dist/hooks/useHelperText.d.ts +21 -0
  571. package/dist/hooks/useHelperText.js +13 -0
  572. package/dist/hooks/useHelperText.js.map +1 -0
  573. package/dist/hooks/useKeyboardShortcut.d.ts +30 -0
  574. package/dist/hooks/useKeyboardShortcut.js +19 -0
  575. package/dist/hooks/useKeyboardShortcut.js.map +1 -0
  576. package/dist/index.cjs +3 -2
  577. package/dist/index.cjs.map +1 -1
  578. package/dist/index.d.ts +24 -3
  579. package/dist/index.js +360 -316
  580. package/dist/index.js.map +1 -1
  581. package/dist/utils/controlProps.d.ts +16 -0
  582. package/dist/utils/controlProps.js +14 -0
  583. package/dist/utils/controlProps.js.map +1 -0
  584. package/dist/utils/keyboardShortcut.d.ts +12 -0
  585. package/dist/utils/keyboardShortcut.js +49 -0
  586. package/dist/utils/keyboardShortcut.js.map +1 -0
  587. package/dist/utils/linkAttrs.d.ts +13 -0
  588. package/dist/utils/linkAttrs.js +13 -0
  589. package/dist/utils/linkAttrs.js.map +1 -0
  590. package/dist/utils/overlayLayer.d.ts +15 -3
  591. package/dist/utils/overlayLayer.js +14 -7
  592. package/dist/utils/overlayLayer.js.map +1 -1
  593. package/dist/utils/ownClick.d.ts +16 -0
  594. package/dist/utils/ownClick.js +40 -0
  595. package/dist/utils/ownClick.js.map +1 -0
  596. package/dist/utils/readOnlyToggle.d.ts +15 -0
  597. package/dist/utils/readOnlyToggle.js +14 -0
  598. package/dist/utils/readOnlyToggle.js.map +1 -0
  599. package/dist/utils/restoreFocus.d.ts +8 -0
  600. package/dist/utils/restoreFocus.js +10 -0
  601. package/dist/utils/restoreFocus.js.map +1 -0
  602. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"sectionHeader.js","sources":["../../../../../src/components/layout/sectionHeader/sectionHeader.tsx"],"sourcesContent":["import React, { HTMLAttributes, PropsWithChildren, ReactNode, useState } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\nimport { Tooltip } from \"../../feedBack/tooltip\";\n\nexport interface SectionHeaderProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n className?: string;\n /** The section's name. */\n title: ReactNode;\n /** Heading level of the title: 2 by default. */\n level?: 2 | 3 | 4 | 5 | 6;\n /** How many items the section holds, beside the title. Nothing is shown for null. */\n count?: number | string | null;\n /**\n * How to read the section, behind a \"?\" icon: shown on hover and on keyboard\n * focus, and the icon's accessible name. Text only — the tooltip renders in\n * the browser.\n */\n help?: string;\n /** The \"?\" icon's accessible name, e.g. \"Explanation: …\"; the help text by default. */\n helpLabel?: string;\n /** Id of the heading, for anchors and aria-labelledby. */\n titleId?: string;\n /** A line under the title. */\n subtitle?: ReactNode;\n}\n\n/** The \"?\" icon with its tooltip, open on hover and on keyboard focus. */\nfunction HelpHint({ text, label }: { text: string; label?: string }) {\n const [open, setOpen] = useState(false);\n return (\n <Tooltip\n className=\"smwb-section-header__tooltip\"\n message={text}\n trigger=\"manual\"\n open={open}\n placement=\"top\"\n offset={{ offsetY: 6 }}\n >\n <span\n className=\"smwb-section-header__help\"\n role=\"img\"\n aria-label={label ?? text}\n tabIndex={0}\n onPointerEnter={() => setOpen(true)}\n onPointerLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") setOpen(false);\n }}\n >\n <Icon name=\"help\" size={16} />\n </span>\n </Tooltip>\n );\n}\n\n/**\n * A section's heading row: the title with a count and a help hint, a subtitle\n * under them, and the section's actions (the children) at the end. On a narrow\n * screen the actions wrap under the title.\n */\nexport const SectionHeader = React.forwardRef<HTMLElement, PropsWithChildren<SectionHeaderProps>>(\n function SectionHeader(\n { className, title, level = 2, count, help, helpLabel, titleId, subtitle, children, ...rest },\n ref\n ) {\n const Heading = `h${level}` as \"h2\";\n return (\n <header\n data-testid=\"section-header\"\n {...rest}\n ref={ref}\n className={cn(\"smwb-section-header\", `smwb-section-header_level-${level}`, className)}\n >\n <div className=\"smwb-section-header__titles\">\n <div className=\"smwb-section-header__title-line\">\n <Heading id={titleId} className=\"smwb-section-header__title\">\n {title}\n </Heading>\n {count !== undefined && count !== null ? <span className=\"smwb-section-header__count\">{count}</span> : null}\n {help ? <HelpHint text={help} label={helpLabel} /> : null}\n </div>\n {subtitle ? <div className=\"smwb-section-header__subtitle\">{subtitle}</div> : null}\n </div>\n {children ? <div className=\"smwb-section-header__actions\">{children}</div> : null}\n </header>\n );\n }\n);\n\nexport default SectionHeader;\n"],"names":["HelpHint","text","label","open","setOpen","useState","jsx","Tooltip","event","Icon","SectionHeader","React","className","title","level","count","help","helpLabel","titleId","subtitle","children","rest","ref","Heading","jsxs","cn"],"mappings":";;;;;AA4BA,SAASA,EAAS,EAAE,MAAAC,GAAM,OAAAC,KAA2C;AACnE,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAS,EAAK;AACtC,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,SAASN;AAAA,MACT,SAAQ;AAAA,MACR,MAAAE;AAAA,MACA,WAAU;AAAA,MACV,QAAQ,EAAE,SAAS,EAAA;AAAA,MAEnB,UAAA,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,cAAYJ,KAAA,OAAAA,IAASD;AAAA,UACrB,UAAU;AAAA,UACV,gBAAgB,MAAMG,EAAQ,EAAI;AAAA,UAClC,gBAAgB,MAAMA,EAAQ,EAAK;AAAA,UACnC,SAAS,MAAMA,EAAQ,EAAI;AAAA,UAC3B,QAAQ,MAAMA,EAAQ,EAAK;AAAA,UAC3B,WAAW,CAACI,MAAU;AACpB,YAAIA,EAAM,QAAQ,YAAUJ,EAAQ,EAAK;AAAA,UAC3C;AAAA,UAEA,UAAA,gBAAAE,EAACG,GAAA,EAAK,MAAK,QAAO,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC9B;AAAA,EAAA;AAGN;AAOO,MAAMC,IAAgBC,EAAM;AAAA,EACjC,SACE,EAAE,WAAAC,GAAW,OAAAC,GAAO,OAAAC,IAAQ,GAAG,OAAAC,GAAO,MAAAC,GAAM,WAAAC,GAAW,SAAAC,GAAS,UAAAC,GAAU,UAAAC,GAAU,GAAGC,EAAA,GACvFC,GACA;AACA,UAAMC,IAAU,IAAIT,CAAK;AACzB,WACE,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACX,GAAGH;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWG,EAAG,uBAAuB,6BAA6BX,CAAK,IAAIF,CAAS;AAAA,QAEpF,UAAA;AAAA,UAAA,gBAAAY,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA;AAAA,YAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,cAAA,gBAAAlB,EAACiB,GAAA,EAAQ,IAAIL,GAAS,WAAU,8BAC7B,UAAAL,GACH;AAAA,cACwBE,KAAU,yBAAQ,QAAA,EAAK,WAAU,8BAA8B,UAAAA,EAAA,CAAM,IAAU;AAAA,cACtGC,IAAO,gBAAAV,EAACN,GAAA,EAAS,MAAMgB,GAAM,OAAOC,GAAW,IAAK;AAAA,YAAA,GACvD;AAAA,YACCE,IAAW,gBAAAb,EAAC,OAAA,EAAI,WAAU,iCAAiC,aAAS,IAAS;AAAA,UAAA,GAChF;AAAA,UACCc,IAAW,gBAAAd,EAAC,OAAA,EAAI,WAAU,gCAAgC,UAAAc,GAAS,IAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGnF;AACF;"}
1
+ {"version":3,"file":"sectionHeader.js","sources":["../../../../../src/components/layout/sectionHeader/sectionHeader.tsx"],"sourcesContent":["import React, { HTMLAttributes, PropsWithChildren, ReactNode, useState } from \"react\";\nimport cn from \"clsx\";\nimport Icon from \"../../base/icon/icon\";\nimport { Tooltip } from \"../../feedBack/tooltip\";\nimport { useDismissOnEscape } from \"../../../hooks/useDismissOnEscape\";\n\nexport interface SectionHeaderProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n className?: string;\n /** The section's name. */\n title: ReactNode;\n /** Heading level of the title: 2 by default. */\n level?: 2 | 3 | 4 | 5 | 6;\n /** How many items the section holds, beside the title. Nothing is shown for null. */\n count?: number | string | null;\n /**\n * How to read the section, behind a \"?\" icon: shown on hover and on keyboard\n * focus, and the icon's accessible name. Text only — the tooltip renders in\n * the browser.\n */\n help?: string;\n /** The \"?\" icon's accessible name, e.g. \"Explanation: …\"; the help text by default. */\n helpLabel?: string;\n /** Id of the heading, for anchors and aria-labelledby. */\n titleId?: string;\n /** A line under the title. */\n subtitle?: ReactNode;\n /** Test id of the root `<header>`; `section-header` unless given. */\n \"data-testid\"?: string;\n}\n\n/** The \"?\" icon with its tooltip, open on hover and on keyboard focus. */\nfunction HelpHint({ text, label }: { text: string; label?: string }) {\n const [open, setOpen] = useState(false);\n // Escape hides the tooltip wherever focus is, shown by hover or by focus (WCAG 1.4.13),\n // and is marked as handled, so a window, panel, Modal or Sheet around the hint stays\n // open; with the tooltip hidden, the key is theirs.\n useDismissOnEscape(open, () => setOpen(false));\n return (\n <Tooltip\n className=\"smwb-section-header__tooltip\"\n message={text}\n trigger=\"manual\"\n open={open}\n placement=\"top\"\n offset={{ offsetY: 6 }}\n >\n <span\n className=\"smwb-section-header__help\"\n role=\"img\"\n aria-label={label ?? text}\n tabIndex={0}\n onPointerEnter={() => setOpen(true)}\n onPointerLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n >\n <Icon name=\"help\" size={16} />\n </span>\n </Tooltip>\n );\n}\n\n/**\n * A section's heading row: the title with a count and a help hint, a subtitle\n * under them, and the section's actions (the children) at the end. On a narrow\n * screen the actions wrap under the title.\n */\nexport const SectionHeader = React.forwardRef<HTMLElement, PropsWithChildren<SectionHeaderProps>>(\n function SectionHeader(\n {\n className,\n title,\n level = 2,\n count,\n help,\n helpLabel,\n titleId,\n subtitle,\n children,\n \"data-testid\": dataTestId = \"section-header\",\n ...rest\n },\n ref\n ) {\n const Heading = `h${level}` as \"h2\";\n return (\n <header\n data-testid={dataTestId}\n {...rest}\n ref={ref}\n className={cn(\"smwb-section-header\", `smwb-section-header_level-${level}`, className)}\n >\n <div className=\"smwb-section-header__titles\">\n <div className=\"smwb-section-header__title-line\">\n <Heading id={titleId} className=\"smwb-section-header__title\">\n {title}\n </Heading>\n {count !== undefined && count !== null ? <span className=\"smwb-section-header__count\">{count}</span> : null}\n {help ? <HelpHint text={help} label={helpLabel} /> : null}\n </div>\n {subtitle ? <div className=\"smwb-section-header__subtitle\">{subtitle}</div> : null}\n </div>\n {children ? <div className=\"smwb-section-header__actions\">{children}</div> : null}\n </header>\n );\n }\n);\n\nexport default SectionHeader;\n"],"names":["HelpHint","text","label","open","setOpen","useState","useDismissOnEscape","jsx","Tooltip","Icon","SectionHeader","React","className","title","level","count","help","helpLabel","titleId","subtitle","children","dataTestId","rest","ref","Heading","jsxs","cn"],"mappings":";;;;;;AA+BA,SAASA,EAAS,EAAE,MAAAC,GAAM,OAAAC,KAA2C;AACnE,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAS,EAAK;AAItC,SAAAC,EAAmBH,GAAM,MAAMC,EAAQ,EAAK,CAAC,GAE3C,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,SAASP;AAAA,MACT,SAAQ;AAAA,MACR,MAAAE;AAAA,MACA,WAAU;AAAA,MACV,QAAQ,EAAE,SAAS,EAAA;AAAA,MAEnB,UAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,cAAYL,KAAA,OAAAA,IAASD;AAAA,UACrB,UAAU;AAAA,UACV,gBAAgB,MAAMG,EAAQ,EAAI;AAAA,UAClC,gBAAgB,MAAMA,EAAQ,EAAK;AAAA,UACnC,SAAS,MAAMA,EAAQ,EAAI;AAAA,UAC3B,QAAQ,MAAMA,EAAQ,EAAK;AAAA,UAE3B,UAAA,gBAAAG,EAACE,GAAA,EAAK,MAAK,QAAO,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC9B;AAAA,EAAA;AAGN;AAOO,MAAMC,IAAgBC,EAAM;AAAA,EACjC,SACE;AAAA,IACE,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAeC,IAAa;AAAA,IAC5B,GAAGC;AAAA,EAAA,GAELC,GACA;AACA,UAAMC,IAAU,IAAIV,CAAK;AACzB,WACE,gBAAAW;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAaJ;AAAA,QACZ,GAAGC;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWG,EAAG,uBAAuB,6BAA6BZ,CAAK,IAAIF,CAAS;AAAA,QAEpF,UAAA;AAAA,UAAA,gBAAAa,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA;AAAA,YAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,cAAA,gBAAAlB,EAACiB,GAAA,EAAQ,IAAIN,GAAS,WAAU,8BAC7B,UAAAL,GACH;AAAA,cACwBE,KAAU,yBAAQ,QAAA,EAAK,WAAU,8BAA8B,UAAAA,EAAA,CAAM,IAAU;AAAA,cACtGC,IAAO,gBAAAT,EAACP,GAAA,EAAS,MAAMgB,GAAM,OAAOC,GAAW,IAAK;AAAA,YAAA,GACvD;AAAA,YACCE,IAAW,gBAAAZ,EAAC,OAAA,EAAI,WAAU,iCAAiC,aAAS,IAAS;AAAA,UAAA,GAChF;AAAA,UACCa,IAAW,gBAAAb,EAAC,OAAA,EAAI,WAAU,gCAAgC,UAAAa,GAAS,IAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGnF;AACF;"}
@@ -1,65 +1,66 @@
1
- import { jsx as n, jsxs as re } from "react/jsx-runtime";
2
- import K, { forwardRef as ne, useState as W, useRef as H, useEffect as oe, useCallback as w } from "react";
3
- import L from "clsx";
4
- import { CSSTransition as j } from "react-transition-group";
5
- import { createPortal as se } from "react-dom";
6
- import { Button as C } from "../../inputs/button/button.js";
7
- import { Icon as $ } from "../../base/icon/icon.js";
8
- import { useForkRef as ae } from "../../../hooks/useForkRef.js";
9
- import { isTopOverlayLayer as ie } from "../../../utils/overlayLayer.js";
10
- import { ClickAwayListener as le } from "../../clickAwayListener/clickAwayListener.js";
11
- const _e = ne(function({
12
- isOpen: u,
13
- onClose: i,
14
- variant: d = "default",
1
+ import { jsx as n, jsxs as ie } from "react/jsx-runtime";
2
+ import j, { forwardRef as le, useState as V, useRef as H, useEffect as ce, useCallback as p } from "react";
3
+ import C from "clsx";
4
+ import { CSSTransition as q } from "react-transition-group";
5
+ import { createPortal as de } from "react-dom";
6
+ import { Button as F } from "../../inputs/button/button.js";
7
+ import { Icon as X } from "../../base/icon/icon.js";
8
+ import { useForkRef as me } from "../../../hooks/useForkRef.js";
9
+ import { isTopOverlayLayer as ue } from "../../../utils/overlayLayer.js";
10
+ import { restoreFocus as he } from "../../../utils/restoreFocus.js";
11
+ import { ClickAwayListener as fe } from "../../clickAwayListener/clickAwayListener.js";
12
+ const ze = le(function({
13
+ isOpen: m,
14
+ onClose: s,
15
+ variant: c = "default",
15
16
  children: r,
16
- placement: k = "bottom",
17
- disableOutsideClick: p,
18
- closeOnEsc: z = !0,
17
+ placement: _ = "bottom",
18
+ disableOutsideClick: d,
19
+ closeOnEsc: R = !0,
19
20
  ...A
20
- }, D) {
21
- const [m, b] = W(null), y = H(null);
22
- oe(() => {
23
- if (!u || !z || !i)
21
+ }, k) {
22
+ const [u, b] = V(null), y = H(null);
23
+ ce(() => {
24
+ if (!m || !R || !s)
24
25
  return;
25
- const o = (v) => {
26
- v.key === "Escape" && ie(y.current) && i();
26
+ const L = (N) => {
27
+ N.key === "Escape" && !N.defaultPrevented && ue(y.current) && s();
27
28
  };
28
- return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o);
29
- }, [u, z, i]);
30
- const g = () => {
31
- b(m === "expanded" ? "small" : m ? null : "expanded");
32
- }, a = () => {
33
- i == null || i(), b(null);
29
+ return document.addEventListener("keydown", L), () => document.removeEventListener("keydown", L);
30
+ }, [m, R, s]);
31
+ const z = () => {
32
+ b(u === "expanded" ? "small" : u ? null : "expanded");
33
+ }, x = () => {
34
+ s == null || s(), b(null);
34
35
  };
35
- return se(
36
+ return de(
36
37
  /* @__PURE__ */ n(
37
- j,
38
+ q,
38
39
  {
39
- in: u,
40
+ in: m,
40
41
  timeout: 70,
41
42
  mountOnEnter: !0,
42
43
  unmountOnExit: !0,
43
44
  classNames: { enterDone: "smwb-entered" },
44
45
  appear: !0,
45
46
  nodeRef: y,
46
- children: d === "default" ? /* @__PURE__ */ n(
47
+ children: c === "default" ? /* @__PURE__ */ n(
47
48
  "div",
48
49
  {
49
- className: L(p ? "smwb-sheet__overlay" : "smwb-sheet__default"),
50
+ className: C(d ? "smwb-sheet__overlay" : "smwb-sheet__default"),
50
51
  ref: y,
51
52
  "data-smwb-overlay-layer": "",
52
53
  children: /* @__PURE__ */ n(
53
- U,
54
+ Y,
54
55
  {
55
- ref: D,
56
- onClose: i,
57
- handleSizeButton: g,
58
- handleClose: a,
59
- isOpen: u,
60
- mode: m,
61
- placement: k,
62
- variant: d,
56
+ ref: k,
57
+ onClose: s,
58
+ handleSizeButton: z,
59
+ handleClose: x,
60
+ isOpen: m,
61
+ mode: u,
62
+ placement: _,
63
+ variant: c,
63
64
  ...A,
64
65
  children: r
65
66
  }
@@ -68,20 +69,20 @@ const _e = ne(function({
68
69
  ) : /* @__PURE__ */ n(
69
70
  "div",
70
71
  {
71
- className: L("smwb-sheet__overlay", "smwb-dark", `smwb-${k}`, `smwb-sheet_${d}`),
72
+ className: C("smwb-sheet__overlay", "smwb-dark", `smwb-${_}`, `smwb-sheet_${c}`),
72
73
  ref: y,
73
74
  "data-smwb-overlay-layer": "",
74
- children: /* @__PURE__ */ n(le, { onClickAway: () => !p && a(), children: /* @__PURE__ */ n(
75
- U,
75
+ children: /* @__PURE__ */ n(fe, { onClickAway: () => !d && x(), children: /* @__PURE__ */ n(
76
+ Y,
76
77
  {
77
- ref: D,
78
- onClose: i,
79
- handleSizeButton: g,
80
- handleClose: a,
81
- isOpen: u,
82
- mode: m,
83
- placement: k,
84
- variant: d,
78
+ ref: k,
79
+ onClose: s,
80
+ handleSizeButton: z,
81
+ handleClose: x,
82
+ isOpen: m,
83
+ mode: u,
84
+ placement: _,
85
+ variant: c,
85
86
  ...A,
86
87
  children: r
87
88
  }
@@ -92,136 +93,151 @@ const _e = ne(function({
92
93
  ),
93
94
  document.body
94
95
  );
95
- }), ce = (x) => x === "bottom" || x === "top", U = K.forwardRef(function(u, i) {
96
+ }), we = (D) => D === "bottom" || D === "top", Y = j.forwardRef(function(m, s) {
96
97
  const {
97
- isOpen: d,
98
+ isOpen: c,
98
99
  placement: r,
99
- className: k,
100
- mode: p,
101
- size: z = "60%",
100
+ className: _,
101
+ mode: d,
102
+ size: R = "60%",
102
103
  variant: A,
103
- onClose: D,
104
- withSizeToggle: m = !0,
104
+ onClose: k,
105
+ withSizeToggle: u = !0,
105
106
  hideHeaderActions: b = !1,
106
107
  reverseHeaderActions: y = !1,
107
- resizable: g = !1,
108
- minSize: a = 80,
109
- maxSize: o,
110
- resizeStep: v = 24,
111
- resizeHandleAriaLabel: X = "Resize sheet",
112
- onResize: N,
113
- style: Y,
114
- handleClose: F,
115
- handleSizeButton: V,
116
- children: q,
117
- ...G
118
- } = u, J = !b && (!!D || m), P = [];
119
- m && P.push(
120
- /* @__PURE__ */ n(C, { variant: "outlined", size: "small", onClick: V, children: /* @__PURE__ */ n($, { name: "open_in_full" }) }, "size")
121
- ), D && P.push(
122
- /* @__PURE__ */ n(C, { variant: "outlined", size: "small", onClick: F, children: /* @__PURE__ */ n($, { name: "close" }) }, "close")
123
- ), y && P.reverse();
124
- const B = H(null), S = H(null), Q = ae(i, B, S), [l, I] = W(null), s = ce(r), M = w(
108
+ closeAriaLabel: z = "Close sheet",
109
+ expandAriaLabel: x = "Expand sheet",
110
+ collapseAriaLabel: L = "Collapse sheet",
111
+ restoreAriaLabel: N = "Restore sheet size",
112
+ resizable: S = !1,
113
+ minSize: h = 80,
114
+ maxSize: a,
115
+ resizeStep: I = 24,
116
+ resizeHandleAriaLabel: G = "Resize sheet",
117
+ onResize: P,
118
+ style: J,
119
+ handleClose: Q,
120
+ handleSizeButton: Z,
121
+ children: O,
122
+ "data-testid": ee = "sheet",
123
+ ...M
124
+ } = m, te = !b && (!!k || u), E = [];
125
+ u && E.push(
126
+ /* @__PURE__ */ n(
127
+ F,
128
+ {
129
+ variant: "outlined",
130
+ size: "small",
131
+ onClick: Z,
132
+ "aria-label": d === "expanded" ? L : d === "small" ? N : x,
133
+ children: /* @__PURE__ */ n(X, { name: d === "expanded" ? "close_fullscreen" : "open_in_full" })
134
+ },
135
+ "size"
136
+ )
137
+ ), k && E.push(
138
+ /* @__PURE__ */ n(F, { variant: "outlined", size: "small", onClick: Q, "aria-label": z, children: /* @__PURE__ */ n(X, { name: "close" }) }, "close")
139
+ ), y && E.reverse();
140
+ const K = H(null), T = H(null), re = me(s, K, T), [i, $] = V(null), o = we(r), U = p(
125
141
  (e) => {
126
- const t = s ? window.innerHeight : window.innerWidth, c = o != null ? o : t;
127
- return Math.max(a, Math.min(c, e));
142
+ const t = o ? window.innerHeight : window.innerWidth, l = a != null ? a : t;
143
+ return Math.max(h, Math.min(l, e));
128
144
  },
129
- [s, o, a]
130
- ), R = w(() => {
145
+ [o, a, h]
146
+ ), v = p(() => {
131
147
  var t;
132
- const e = (t = S.current) == null ? void 0 : t.getBoundingClientRect();
133
- return e ? s ? e.height : e.width : a;
134
- }, [s, a]), h = w(
148
+ const e = (t = T.current) == null ? void 0 : t.getBoundingClientRect();
149
+ return e ? o ? e.height : e.width : h;
150
+ }, [o, h]), f = p(
135
151
  (e) => {
136
- const t = M(e);
137
- I(t), N == null || N(t);
152
+ const t = U(e);
153
+ $(t), P == null || P(t);
138
154
  },
139
- [M, N]
140
- ), E = H(null), Z = w(
155
+ [U, P]
156
+ ), B = H(null), ne = p(
141
157
  (e) => {
142
- var t, c;
143
- e.preventDefault(), E.current = {
144
- start: s ? e.clientY : e.clientX,
145
- size: R()
158
+ var t, l;
159
+ e.preventDefault(), B.current = {
160
+ start: o ? e.clientY : e.clientX,
161
+ size: v()
146
162
  };
147
163
  try {
148
- (c = (t = e.currentTarget).setPointerCapture) == null || c.call(t, e.pointerId);
164
+ (l = (t = e.currentTarget).setPointerCapture) == null || l.call(t, e.pointerId);
149
165
  } catch {
150
166
  }
151
167
  },
152
- [s, R]
153
- ), O = w(
168
+ [o, v]
169
+ ), oe = p(
154
170
  (e) => {
155
- const t = E.current;
171
+ const t = B.current;
156
172
  if (!t)
157
173
  return;
158
- const f = (s ? e.clientY : e.clientX) - t.start, _ = r === "bottom" || r === "right" ? -f : f;
159
- h(t.size + _);
174
+ const w = (o ? e.clientY : e.clientX) - t.start, g = r === "bottom" || r === "right" ? -w : w;
175
+ f(t.size + g);
160
176
  },
161
- [s, r, h]
162
- ), T = w((e) => {
163
- var t, c, f, _;
164
- E.current = null, (c = (t = e.currentTarget).hasPointerCapture) != null && c.call(t, e.pointerId) && ((_ = (f = e.currentTarget).releasePointerCapture) == null || _.call(f, e.pointerId));
165
- }, []), ee = w(
177
+ [o, r, f]
178
+ ), W = p((e) => {
179
+ var t, l, w, g;
180
+ B.current = null, (l = (t = e.currentTarget).hasPointerCapture) != null && l.call(t, e.pointerId) && ((g = (w = e.currentTarget).releasePointerCapture) == null || g.call(w, e.pointerId));
181
+ }, []), ae = p(
166
182
  (e) => {
167
- const t = l != null ? l : R(), c = o != null ? o : s ? window.innerHeight : window.innerWidth, f = r === "bottom" ? "ArrowUp" : r === "top" ? "ArrowDown" : r === "left" ? "ArrowRight" : "ArrowLeft", _ = r === "bottom" ? "ArrowDown" : r === "top" ? "ArrowUp" : r === "left" ? "ArrowLeft" : "ArrowRight";
168
- e.key === f ? (e.preventDefault(), h(t + v)) : e.key === _ ? (e.preventDefault(), h(t - v)) : e.key === "Home" ? (e.preventDefault(), h(a)) : e.key === "End" && (e.preventDefault(), h(c));
183
+ const t = i != null ? i : v(), l = a != null ? a : o ? window.innerHeight : window.innerWidth, w = r === "bottom" ? "ArrowUp" : r === "top" ? "ArrowDown" : r === "left" ? "ArrowRight" : "ArrowLeft", g = r === "bottom" ? "ArrowDown" : r === "top" ? "ArrowUp" : r === "left" ? "ArrowLeft" : "ArrowRight";
184
+ e.key === w ? (e.preventDefault(), f(t + I)) : e.key === g ? (e.preventDefault(), f(t - I)) : e.key === "Home" ? (e.preventDefault(), f(h)) : e.key === "End" && (e.preventDefault(), f(l));
169
185
  },
170
- [l, R, s, r, h, v, a, o]
186
+ [i, v, o, r, f, I, h, a]
171
187
  );
172
- K.useEffect(() => {
173
- var e;
174
- if (!d) {
175
- I(null);
188
+ j.useEffect(() => {
189
+ if (!c) {
190
+ $(null);
176
191
  return;
177
192
  }
178
- (e = S.current) == null || e.focus();
179
- }, [d]);
180
- const te = g && l !== null ? { ...s ? { height: l } : { width: l }, transition: "none" } : {};
181
- return /* @__PURE__ */ n(j, { in: d, timeout: 120, appear: !0, classNames: { enterDone: "smwb-sheet_entered" }, nodeRef: B, children: /* @__PURE__ */ re(
193
+ const e = T.current, t = e != null && e.contains(document.activeElement) ? null : document.activeElement;
194
+ return e == null || e.focus(), () => he(t, e);
195
+ }, [c]);
196
+ const se = S && i !== null ? { ...o ? { height: i } : { width: i }, transition: "none" } : {};
197
+ return /* @__PURE__ */ n(q, { in: c, timeout: 120, appear: !0, classNames: { enterDone: "smwb-sheet_entered" }, nodeRef: K, children: /* @__PURE__ */ ie(
182
198
  "div",
183
199
  {
184
- ref: Q,
185
- "data-testid": "sheet",
200
+ ref: re,
201
+ "data-testid": ee,
202
+ ...M,
186
203
  tabIndex: -1,
187
204
  role: "dialog",
188
- "aria-modal": A === "modal" || void 0,
189
- ...G,
190
- className: L("smwb-sheet", k, `smwb-sheet_${A}`, `smwb-${r}`, {
191
- "smwb-expanded": p === "expanded",
192
- "smwb-small": p === "small",
193
- "smwb-sheet_resizable": g
205
+ "aria-modal": A === "modal" || M["aria-modal"],
206
+ className: C("smwb-sheet", _, `smwb-sheet_${A}`, `smwb-${r}`, {
207
+ "smwb-expanded": d === "expanded",
208
+ "smwb-small": d === "small",
209
+ "smwb-sheet_resizable": S
194
210
  }),
195
- style: { "--sizeProp": z, ...te, ...Y },
211
+ style: { "--sizeProp": R, ...se, ...J },
196
212
  children: [
197
- g && /* @__PURE__ */ n(
213
+ S && /* @__PURE__ */ n(
198
214
  "div",
199
215
  {
200
216
  className: "smwb-sheet__drag-handle",
201
217
  "data-testid": "sheet-drag-handle",
202
218
  role: "separator",
203
219
  tabIndex: 0,
204
- "aria-orientation": s ? "horizontal" : "vertical",
205
- "aria-label": X,
206
- "aria-valuemin": a,
207
- "aria-valuemax": Math.round(o != null ? o : s ? window.innerHeight : window.innerWidth),
208
- "aria-valuenow": Math.round(l != null ? l : R()),
209
- onPointerDown: Z,
210
- onPointerMove: O,
211
- onPointerUp: T,
212
- onPointerCancel: T,
213
- onKeyDown: ee,
220
+ "aria-orientation": o ? "horizontal" : "vertical",
221
+ "aria-label": G,
222
+ "aria-valuemin": h,
223
+ "aria-valuemax": Math.round(a != null ? a : o ? window.innerHeight : window.innerWidth),
224
+ "aria-valuenow": Math.round(i != null ? i : v()),
225
+ onPointerDown: ne,
226
+ onPointerMove: oe,
227
+ onPointerUp: W,
228
+ onPointerCancel: W,
229
+ onKeyDown: ae,
214
230
  children: /* @__PURE__ */ n("span", { className: "smwb-sheet__drag-handle-bar" })
215
231
  }
216
232
  ),
217
- J && /* @__PURE__ */ n("div", { className: "smwb-sheet__header", children: P }),
218
- d && p !== "small" && /* @__PURE__ */ n("div", { className: "smwb-sheet__inner", children: q })
233
+ te && /* @__PURE__ */ n("div", { className: "smwb-sheet__header", children: E }),
234
+ c && d !== "small" && /* @__PURE__ */ n("div", { className: "smwb-sheet__inner", children: O })
219
235
  ]
220
236
  }
221
237
  ) });
222
238
  });
223
239
  export {
224
- _e as Sheet,
225
- _e as default
240
+ ze as Sheet,
241
+ ze as default
226
242
  };
227
243
  //# sourceMappingURL=sheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sources":["../../../../../src/components/layout/sheet/sheet.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, PropsWithChildren, useCallback, useEffect, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { createPortal } from \"react-dom\";\nimport Button from \"../../inputs/button/button\";\nimport Icon from \"../../base/icon/icon\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { isTopOverlayLayer } from \"../../../utils/overlayLayer\";\n\nexport interface SheetProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n placement?: \"top\" | \"bottom\" | \"right\" | \"left\";\n isOpen: boolean;\n onClose?: () => void;\n variant?: \"default\" | \"modal\";\n withSizeToggle?: boolean;\n /** Hide built-in header actions; onClose still handles Esc and backdrop. */\n hideHeaderActions?: boolean;\n reverseHeaderActions?: boolean;\n size?: string;\n disableOutsideClick?: boolean;\n /** Close the sheet when Escape is pressed. */\n closeOnEsc?: boolean;\n /**\n * Allow the user to resize the sheet by dragging a grab handle with\n * touch or mouse (mobile bottom-sheet style). Off by default.\n */\n resizable?: boolean;\n /** Minimum size in px while resizing (default 80). */\n minSize?: number;\n /** Maximum size in px while resizing (default: viewport dimension). */\n maxSize?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Called with the new size in px while/after resizing. */\n onResize?: (size: number) => void;\n \"aria-label\"?: string;\n}\n\ntype Mode = \"small\" | \"expanded\" | null;\n\nexport const Sheet = forwardRef<HTMLDivElement, PropsWithChildren<SheetProps>>(function Sheet(\n {\n isOpen,\n onClose,\n variant = \"default\",\n children,\n placement = \"bottom\",\n disableOutsideClick,\n closeOnEsc = true,\n ...props\n },\n ref\n) {\n const [mode, setMode] = useState<Mode>(null);\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isOpen || !closeOnEsc || !onClose) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n // Only the topmost overlay layer reacts to Escape.\n if (event.key === \"Escape\" && isTopOverlayLayer(nodeRef.current)) {\n onClose();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [isOpen, closeOnEsc, onClose]);\n\n const handleSizeButton = () => {\n if (mode === \"expanded\") {\n setMode(\"small\");\n } else if (!mode) {\n setMode(\"expanded\");\n } else {\n setMode(null);\n }\n };\n\n const handleClose = () => {\n onClose?.();\n setMode(null);\n };\n\n return createPortal(\n <CSSTransition\n in={isOpen}\n timeout={70}\n mountOnEnter\n unmountOnExit\n classNames={{ enterDone: \"smwb-entered\" }}\n appear\n nodeRef={nodeRef}\n >\n {variant === \"default\" ? (\n <div\n className={cn(disableOutsideClick ? \"smwb-sheet__overlay\" : \"smwb-sheet__default\")}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </div>\n ) : (\n <div\n className={cn(\"smwb-sheet__overlay\", \"smwb-dark\", `smwb-${placement}`, `smwb-sheet_${variant}`)}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <ClickAwayListener onClickAway={() => !disableOutsideClick && handleClose()}>\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </ClickAwayListener>\n </div>\n )}\n </CSSTransition>,\n document.body\n );\n});\n\nexport default Sheet;\n\ninterface SheetBlockProps extends SheetProps {\n mode: Mode;\n handleSizeButton: () => void;\n handleClose: () => void;\n}\n\n/** Sheets anchored to a horizontal edge resize on the Y axis, vertical edges on X. */\nconst isVerticalAxis = (placement: SheetProps[\"placement\"]) => placement === \"bottom\" || placement === \"top\";\n\nconst SheetBlock = React.forwardRef(function SheetBlock(props: SheetBlockProps, ref: React.Ref<HTMLDivElement>) {\n const {\n isOpen,\n placement,\n className,\n mode,\n\n size = \"60%\",\n variant,\n onClose,\n withSizeToggle = true,\n hideHeaderActions = false,\n reverseHeaderActions = false,\n resizable = false,\n minSize = 80,\n maxSize,\n resizeStep = 24,\n resizeHandleAriaLabel = \"Resize sheet\",\n onResize,\n style,\n handleClose,\n handleSizeButton,\n children,\n ...rest\n } = props;\n const showActions = !hideHeaderActions && (!!onClose || withSizeToggle);\n const headerActionNodes: React.ReactNode[] = [];\n if (withSizeToggle) {\n headerActionNodes.push(\n <Button variant={\"outlined\"} size=\"small\" onClick={handleSizeButton} key=\"size\">\n <Icon name=\"open_in_full\" />\n </Button>\n );\n }\n if (onClose) {\n headerActionNodes.push(\n <Button variant={\"outlined\"} size=\"small\" onClick={handleClose} key=\"close\">\n <Icon name=\"close\" />\n </Button>\n );\n }\n if (reverseHeaderActions) {\n headerActionNodes.reverse();\n }\n const nodeRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const forkRef = useForkRef(ref, nodeRef, rootRef);\n\n // Drag-to-resize state. `dragSize` (px) wins over the CSS size when set\n // (inline style beats the .smwb-expanded/.smwb-small rules).\n const [dragSize, setDragSize] = useState<number | null>(null);\n const vertical = isVerticalAxis(placement);\n\n const clamp = useCallback(\n (px: number) => {\n const viewport = vertical ? window.innerHeight : window.innerWidth;\n const max = maxSize ?? viewport;\n return Math.max(minSize, Math.min(max, px));\n },\n [vertical, maxSize, minSize]\n );\n\n const currentSizePx = useCallback(() => {\n const rect = rootRef.current?.getBoundingClientRect();\n if (!rect) {\n return minSize;\n }\n return vertical ? rect.height : rect.width;\n }, [vertical, minSize]);\n\n const applySize = useCallback(\n (px: number) => {\n const next = clamp(px);\n setDragSize(next);\n onResize?.(next);\n },\n [clamp, onResize]\n );\n\n const dragRef = useRef<{ start: number; size: number } | null>(null);\n\n const onPointerDown = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n event.preventDefault();\n dragRef.current = {\n start: vertical ? event.clientY : event.clientX,\n size: currentSizePx(),\n };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* pointer capture is best-effort (unsupported in some envs) */\n }\n },\n [vertical, currentSizePx]\n );\n\n const onPointerMove = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const pos = vertical ? event.clientY : event.clientX;\n const delta = pos - drag.start;\n // Sign so dragging *away* from the anchored edge grows the sheet.\n const grow = placement === \"bottom\" || placement === \"right\" ? -delta : delta;\n applySize(drag.size + grow);\n },\n [vertical, placement, applySize]\n );\n\n const endDrag = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n dragRef.current = null;\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n }, []);\n\n const onHandleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const base = dragSize ?? currentSizePx();\n const max = maxSize ?? (vertical ? window.innerHeight : window.innerWidth);\n // Key that should make the sheet *bigger*, per anchored edge.\n const incKey =\n placement === \"bottom\"\n ? \"ArrowUp\"\n : placement === \"top\"\n ? \"ArrowDown\"\n : placement === \"left\"\n ? \"ArrowRight\"\n : \"ArrowLeft\";\n const decKey =\n placement === \"bottom\"\n ? \"ArrowDown\"\n : placement === \"top\"\n ? \"ArrowUp\"\n : placement === \"left\"\n ? \"ArrowLeft\"\n : \"ArrowRight\";\n if (event.key === incKey) {\n event.preventDefault();\n applySize(base + resizeStep);\n } else if (event.key === decKey) {\n event.preventDefault();\n applySize(base - resizeStep);\n } else if (event.key === \"Home\") {\n event.preventDefault();\n applySize(minSize);\n } else if (event.key === \"End\") {\n event.preventDefault();\n applySize(max);\n }\n },\n [dragSize, currentSizePx, vertical, placement, applySize, resizeStep, minSize, maxSize]\n );\n\n React.useEffect(() => {\n if (!isOpen) {\n setDragSize(null);\n return;\n }\n\n rootRef.current?.focus();\n }, [isOpen]);\n\n // While a drag size is applied, suppress the sheet's 0.2s size\n // transition so the panel tracks the pointer in real time instead\n // of lagging 200ms behind every move.\n const sizeStyle: CSSProperties =\n resizable && dragSize !== null\n ? { ...(vertical ? { height: dragSize } : { width: dragSize }), transition: \"none\" }\n : {};\n\n return (\n <CSSTransition in={isOpen} timeout={120} appear classNames={{ enterDone: \"smwb-sheet_entered\" }} nodeRef={nodeRef}>\n <div\n ref={forkRef}\n data-testid=\"sheet\"\n tabIndex={-1}\n role=\"dialog\"\n aria-modal={variant === \"modal\" || undefined}\n {...rest}\n className={cn(\"smwb-sheet\", className, `smwb-sheet_${variant}`, `smwb-${placement}`, {\n \"smwb-expanded\": mode === \"expanded\",\n \"smwb-small\": mode === \"small\",\n \"smwb-sheet_resizable\": resizable,\n })}\n style={{ \"--sizeProp\": size, ...sizeStyle, ...style } as CSSProperties}\n >\n {resizable && (\n <div\n className=\"smwb-sheet__drag-handle\"\n data-testid=\"sheet-drag-handle\"\n role=\"separator\"\n tabIndex={0}\n aria-orientation={vertical ? \"horizontal\" : \"vertical\"}\n aria-label={resizeHandleAriaLabel}\n aria-valuemin={minSize}\n aria-valuemax={Math.round(maxSize ?? (vertical ? window.innerHeight : window.innerWidth))}\n aria-valuenow={Math.round(dragSize ?? currentSizePx())}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={onHandleKeyDown}\n >\n <span className=\"smwb-sheet__drag-handle-bar\" />\n </div>\n )}\n {showActions && <div className=\"smwb-sheet__header\">{headerActionNodes}</div>}\n {isOpen && mode !== \"small\" && <div className=\"smwb-sheet__inner\">{children}</div>}\n </div>\n </CSSTransition>\n );\n});\n"],"names":["Sheet","forwardRef","isOpen","onClose","variant","children","placement","disableOutsideClick","closeOnEsc","props","ref","mode","setMode","useState","nodeRef","useRef","useEffect","onKeyDown","event","isTopOverlayLayer","handleSizeButton","handleClose","createPortal","jsx","CSSTransition","cn","SheetBlock","ClickAwayListener","isVerticalAxis","React","className","size","withSizeToggle","hideHeaderActions","reverseHeaderActions","resizable","minSize","maxSize","resizeStep","resizeHandleAriaLabel","onResize","style","rest","showActions","headerActionNodes","Button","Icon","rootRef","forkRef","useForkRef","dragSize","setDragSize","vertical","clamp","useCallback","px","viewport","max","currentSizePx","rect","_a","applySize","next","dragRef","onPointerDown","_b","onPointerMove","drag","delta","grow","endDrag","_d","_c","onHandleKeyDown","base","incKey","decKey","sizeStyle","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"sheet.js","sources":["../../../../../src/components/layout/sheet/sheet.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, PropsWithChildren, useCallback, useEffect, useRef, useState } from \"react\";\nimport cn from \"clsx\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { createPortal } from \"react-dom\";\nimport Button from \"../../inputs/button/button\";\nimport Icon from \"../../base/icon/icon\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { isTopOverlayLayer } from \"../../../utils/overlayLayer\";\nimport { restoreFocus } from \"../../../utils/restoreFocus\";\n\nexport interface SheetProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n placement?: \"top\" | \"bottom\" | \"right\" | \"left\";\n isOpen: boolean;\n onClose?: () => void;\n variant?: \"default\" | \"modal\";\n withSizeToggle?: boolean;\n /** Hide built-in header actions; onClose still handles Esc and backdrop. */\n hideHeaderActions?: boolean;\n reverseHeaderActions?: boolean;\n /** Accessible name of the header close button (default \"Close sheet\"). */\n closeAriaLabel?: string;\n /**\n * Accessible name of the size toggle while the sheet is at its normal size (default \"Expand sheet\"). The toggle\n * cycles normal, expanded, collapsed and back, and its name always says what the next press does; the\n * name changing is how it exposes its state. It shows the `open_in_full` icon, and `close_fullscreen` while expanded.\n */\n expandAriaLabel?: string;\n /** Accessible name of the size toggle while the sheet is expanded (default \"Collapse sheet\"). */\n collapseAriaLabel?: string;\n /** Accessible name of the size toggle while the sheet is collapsed to its header (default \"Restore sheet size\"). */\n restoreAriaLabel?: string;\n size?: string;\n disableOutsideClick?: boolean;\n /** Close the sheet when Escape is pressed. */\n closeOnEsc?: boolean;\n /**\n * Allow the user to resize the sheet by dragging a grab handle with\n * touch or mouse (mobile bottom-sheet style). Off by default.\n */\n resizable?: boolean;\n /** Minimum size in px while resizing (default 80). */\n minSize?: number;\n /** Maximum size in px while resizing (default: viewport dimension). */\n maxSize?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Called with the new size in px while/after resizing. */\n onResize?: (size: number) => void;\n \"aria-label\"?: string;\n /** Test id of the sheet panel (the dialog); `sheet` unless given. */\n \"data-testid\"?: string;\n}\n\ntype Mode = \"small\" | \"expanded\" | null;\n\nexport const Sheet = forwardRef<HTMLDivElement, PropsWithChildren<SheetProps>>(function Sheet(\n {\n isOpen,\n onClose,\n variant = \"default\",\n children,\n placement = \"bottom\",\n disableOutsideClick,\n closeOnEsc = true,\n ...props\n },\n ref\n) {\n const [mode, setMode] = useState<Mode>(null);\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isOpen || !closeOnEsc || !onClose) {\n return;\n }\n const onKeyDown = (event: KeyboardEvent) => {\n // Only the topmost overlay layer reacts to Escape, and not to one handled inside\n // it, e.g. by a menu closing on it.\n if (event.key === \"Escape\" && !event.defaultPrevented && isTopOverlayLayer(nodeRef.current)) {\n onClose();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [isOpen, closeOnEsc, onClose]);\n\n const handleSizeButton = () => {\n if (mode === \"expanded\") {\n setMode(\"small\");\n } else if (!mode) {\n setMode(\"expanded\");\n } else {\n setMode(null);\n }\n };\n\n const handleClose = () => {\n onClose?.();\n setMode(null);\n };\n\n return createPortal(\n <CSSTransition\n in={isOpen}\n timeout={70}\n mountOnEnter\n unmountOnExit\n classNames={{ enterDone: \"smwb-entered\" }}\n appear\n nodeRef={nodeRef}\n >\n {variant === \"default\" ? (\n <div\n className={cn(disableOutsideClick ? \"smwb-sheet__overlay\" : \"smwb-sheet__default\")}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </div>\n ) : (\n <div\n className={cn(\"smwb-sheet__overlay\", \"smwb-dark\", `smwb-${placement}`, `smwb-sheet_${variant}`)}\n ref={nodeRef}\n data-smwb-overlay-layer=\"\"\n >\n <ClickAwayListener onClickAway={() => !disableOutsideClick && handleClose()}>\n <SheetBlock\n ref={ref}\n onClose={onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n isOpen={isOpen}\n mode={mode}\n placement={placement}\n variant={variant}\n {...props}\n >\n {children}\n </SheetBlock>\n </ClickAwayListener>\n </div>\n )}\n </CSSTransition>,\n document.body\n );\n});\n\nexport default Sheet;\n\ninterface SheetBlockProps extends SheetProps {\n mode: Mode;\n handleSizeButton: () => void;\n handleClose: () => void;\n}\n\n/** Sheets anchored to a horizontal edge resize on the Y axis, vertical edges on X. */\nconst isVerticalAxis = (placement: SheetProps[\"placement\"]) => placement === \"bottom\" || placement === \"top\";\n\nconst SheetBlock = React.forwardRef(function SheetBlock(props: SheetBlockProps, ref: React.Ref<HTMLDivElement>) {\n const {\n isOpen,\n placement,\n className,\n mode,\n\n size = \"60%\",\n variant,\n onClose,\n withSizeToggle = true,\n hideHeaderActions = false,\n reverseHeaderActions = false,\n closeAriaLabel = \"Close sheet\",\n expandAriaLabel = \"Expand sheet\",\n collapseAriaLabel = \"Collapse sheet\",\n restoreAriaLabel = \"Restore sheet size\",\n resizable = false,\n minSize = 80,\n maxSize,\n resizeStep = 24,\n resizeHandleAriaLabel = \"Resize sheet\",\n onResize,\n style,\n handleClose,\n handleSizeButton,\n children,\n \"data-testid\": dataTestId = \"sheet\",\n ...rest\n } = props;\n const showActions = !hideHeaderActions && (!!onClose || withSizeToggle);\n const headerActionNodes: React.ReactNode[] = [];\n if (withSizeToggle) {\n headerActionNodes.push(\n <Button\n variant={\"outlined\"}\n size=\"small\"\n onClick={handleSizeButton}\n aria-label={mode === \"expanded\" ? collapseAriaLabel : mode === \"small\" ? restoreAriaLabel : expandAriaLabel}\n key=\"size\"\n >\n <Icon name={mode === \"expanded\" ? \"close_fullscreen\" : \"open_in_full\"} />\n </Button>\n );\n }\n if (onClose) {\n headerActionNodes.push(\n <Button variant={\"outlined\"} size=\"small\" onClick={handleClose} aria-label={closeAriaLabel} key=\"close\">\n <Icon name=\"close\" />\n </Button>\n );\n }\n if (reverseHeaderActions) {\n headerActionNodes.reverse();\n }\n const nodeRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const forkRef = useForkRef(ref, nodeRef, rootRef);\n\n // Drag-to-resize state. `dragSize` (px) wins over the CSS size when set\n // (inline style beats the .smwb-expanded/.smwb-small rules).\n const [dragSize, setDragSize] = useState<number | null>(null);\n const vertical = isVerticalAxis(placement);\n\n const clamp = useCallback(\n (px: number) => {\n const viewport = vertical ? window.innerHeight : window.innerWidth;\n const max = maxSize ?? viewport;\n return Math.max(minSize, Math.min(max, px));\n },\n [vertical, maxSize, minSize]\n );\n\n const currentSizePx = useCallback(() => {\n const rect = rootRef.current?.getBoundingClientRect();\n if (!rect) {\n return minSize;\n }\n return vertical ? rect.height : rect.width;\n }, [vertical, minSize]);\n\n const applySize = useCallback(\n (px: number) => {\n const next = clamp(px);\n setDragSize(next);\n onResize?.(next);\n },\n [clamp, onResize]\n );\n\n const dragRef = useRef<{ start: number; size: number } | null>(null);\n\n const onPointerDown = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n event.preventDefault();\n dragRef.current = {\n start: vertical ? event.clientY : event.clientX,\n size: currentSizePx(),\n };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* pointer capture is best-effort (unsupported in some envs) */\n }\n },\n [vertical, currentSizePx]\n );\n\n const onPointerMove = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n const drag = dragRef.current;\n if (!drag) {\n return;\n }\n const pos = vertical ? event.clientY : event.clientX;\n const delta = pos - drag.start;\n // Sign so dragging *away* from the anchored edge grows the sheet.\n const grow = placement === \"bottom\" || placement === \"right\" ? -delta : delta;\n applySize(drag.size + grow);\n },\n [vertical, placement, applySize]\n );\n\n const endDrag = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n dragRef.current = null;\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n }, []);\n\n const onHandleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const base = dragSize ?? currentSizePx();\n const max = maxSize ?? (vertical ? window.innerHeight : window.innerWidth);\n // Key that should make the sheet *bigger*, per anchored edge.\n const incKey =\n placement === \"bottom\"\n ? \"ArrowUp\"\n : placement === \"top\"\n ? \"ArrowDown\"\n : placement === \"left\"\n ? \"ArrowRight\"\n : \"ArrowLeft\";\n const decKey =\n placement === \"bottom\"\n ? \"ArrowDown\"\n : placement === \"top\"\n ? \"ArrowUp\"\n : placement === \"left\"\n ? \"ArrowLeft\"\n : \"ArrowRight\";\n if (event.key === incKey) {\n event.preventDefault();\n applySize(base + resizeStep);\n } else if (event.key === decKey) {\n event.preventDefault();\n applySize(base - resizeStep);\n } else if (event.key === \"Home\") {\n event.preventDefault();\n applySize(minSize);\n } else if (event.key === \"End\") {\n event.preventDefault();\n applySize(max);\n }\n },\n [dragSize, currentSizePx, vertical, placement, applySize, resizeStep, minSize, maxSize]\n );\n\n React.useEffect(() => {\n if (!isOpen) {\n setDragSize(null);\n return;\n }\n\n const root = rootRef.current;\n // The element that had focus when the sheet opened gets it back when it closes (or unmounts\n // while open), unless the app has put focus somewhere else by then.\n const opener = root?.contains(document.activeElement) ? null : document.activeElement;\n root?.focus();\n return () => restoreFocus(opener, root);\n }, [isOpen]);\n\n // While a drag size is applied, suppress the sheet's 0.2s size\n // transition so the panel tracks the pointer in real time instead\n // of lagging 200ms behind every move.\n const sizeStyle: CSSProperties =\n resizable && dragSize !== null\n ? { ...(vertical ? { height: dragSize } : { width: dragSize }), transition: \"none\" }\n : {};\n\n return (\n <CSSTransition in={isOpen} timeout={120} appear classNames={{ enterDone: \"smwb-sheet_entered\" }} nodeRef={nodeRef}>\n <div\n ref={forkRef}\n data-testid={dataTestId}\n {...rest}\n // A sheet is a dialog, focused as a whole when it opens: its role and\n // tabIndex win over the caller's, and so does aria-modal on a modal\n // sheet. On another, the caller's aria-modal stays.\n tabIndex={-1}\n role=\"dialog\"\n aria-modal={variant === \"modal\" || rest[\"aria-modal\"]}\n className={cn(\"smwb-sheet\", className, `smwb-sheet_${variant}`, `smwb-${placement}`, {\n \"smwb-expanded\": mode === \"expanded\",\n \"smwb-small\": mode === \"small\",\n \"smwb-sheet_resizable\": resizable,\n })}\n style={{ \"--sizeProp\": size, ...sizeStyle, ...style } as CSSProperties}\n >\n {resizable && (\n <div\n className=\"smwb-sheet__drag-handle\"\n data-testid=\"sheet-drag-handle\"\n role=\"separator\"\n tabIndex={0}\n aria-orientation={vertical ? \"horizontal\" : \"vertical\"}\n aria-label={resizeHandleAriaLabel}\n aria-valuemin={minSize}\n aria-valuemax={Math.round(maxSize ?? (vertical ? window.innerHeight : window.innerWidth))}\n aria-valuenow={Math.round(dragSize ?? currentSizePx())}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={onHandleKeyDown}\n >\n <span className=\"smwb-sheet__drag-handle-bar\" />\n </div>\n )}\n {showActions && <div className=\"smwb-sheet__header\">{headerActionNodes}</div>}\n {isOpen && mode !== \"small\" && <div className=\"smwb-sheet__inner\">{children}</div>}\n </div>\n </CSSTransition>\n );\n});\n"],"names":["Sheet","forwardRef","isOpen","onClose","variant","children","placement","disableOutsideClick","closeOnEsc","props","ref","mode","setMode","useState","nodeRef","useRef","useEffect","onKeyDown","event","isTopOverlayLayer","handleSizeButton","handleClose","createPortal","jsx","CSSTransition","cn","SheetBlock","ClickAwayListener","isVerticalAxis","React","className","size","withSizeToggle","hideHeaderActions","reverseHeaderActions","closeAriaLabel","expandAriaLabel","collapseAriaLabel","restoreAriaLabel","resizable","minSize","maxSize","resizeStep","resizeHandleAriaLabel","onResize","style","dataTestId","rest","showActions","headerActionNodes","Button","Icon","rootRef","forkRef","useForkRef","dragSize","setDragSize","vertical","clamp","useCallback","px","viewport","max","currentSizePx","rect","_a","applySize","next","dragRef","onPointerDown","_b","onPointerMove","drag","delta","grow","endDrag","_d","_c","onHandleKeyDown","base","incKey","decKey","root","opener","restoreFocus","sizeStyle","jsxs"],"mappings":";;;;;;;;;;;AA2DO,MAAMA,KAAQC,GAA0D,SAC7E;AAAA,EACE,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,qBAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,GAAGC;AACL,GACAC,GACA;AACA,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAe,IAAI,GACrCC,IAAUC,EAAuB,IAAI;AAE3C,EAAAC,GAAU,MAAM;AACd,QAAI,CAACd,KAAU,CAACM,KAAc,CAACL;AAC7B;AAEF,UAAMc,IAAY,CAACC,MAAyB;AAG1C,MAAIA,EAAM,QAAQ,YAAY,CAACA,EAAM,oBAAoBC,GAAkBL,EAAQ,OAAO,KACxFX,EAAA;AAAA,IAEJ;AACA,oBAAS,iBAAiB,WAAWc,CAAS,GAEvC,MAAM,SAAS,oBAAoB,WAAWA,CAAS;AAAA,EAChE,GAAG,CAACf,GAAQM,GAAYL,CAAO,CAAC;AAEhC,QAAMiB,IAAmB,MAAM;AAC7B,IACER,EADED,MAAS,aACH,UACEA,IAGF,OAFA,UAFO;AAAA,EAMnB,GAEMU,IAAc,MAAM;AACxB,IAAAlB,KAAA,QAAAA,KACAS,EAAQ,IAAI;AAAA,EACd;AAEA,SAAOU;AAAA,IACL,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAItB;AAAA,QACJ,SAAS;AAAA,QACT,cAAY;AAAA,QACZ,eAAa;AAAA,QACb,YAAY,EAAE,WAAW,eAAA;AAAA,QACzB,QAAM;AAAA,QACN,SAAAY;AAAA,QAEC,gBAAY,YACX,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWE,EAAGlB,IAAsB,wBAAwB,qBAAqB;AAAA,YACjF,KAAKO;AAAA,YACL,2BAAwB;AAAA,YAExB,UAAA,gBAAAS;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,KAAAhB;AAAA,gBACA,SAAAP;AAAA,gBACA,kBAAAiB;AAAA,gBACA,aAAAC;AAAA,gBACA,QAAAnB;AAAA,gBACA,MAAAS;AAAA,gBACA,WAAAL;AAAA,gBACA,SAAAF;AAAA,gBACC,GAAGK;AAAA,gBAEH,UAAAJ;AAAA,cAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA,IAGF,gBAAAkB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWE,EAAG,uBAAuB,aAAa,QAAQnB,CAAS,IAAI,cAAcF,CAAO,EAAE;AAAA,YAC9F,KAAKU;AAAA,YACL,2BAAwB;AAAA,YAExB,4BAACa,IAAA,EAAkB,aAAa,MAAM,CAACpB,KAAuBc,KAC5D,UAAA,gBAAAE;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,KAAAhB;AAAA,gBACA,SAAAP;AAAA,gBACA,kBAAAiB;AAAA,gBACA,aAAAC;AAAA,gBACA,QAAAnB;AAAA,gBACA,MAAAS;AAAA,gBACA,WAAAL;AAAA,gBACA,SAAAF;AAAA,gBACC,GAAGK;AAAA,gBAEH,UAAAJ;AAAA,cAAA;AAAA,YAAA,EACH,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAGJ,SAAS;AAAA,EAAA;AAEb,CAAC,GAWKuB,KAAiB,CAACtB,MAAuCA,MAAc,YAAYA,MAAc,OAEjGoB,IAAaG,EAAM,WAAW,SAAoBpB,GAAwBC,GAAgC;AAC9G,QAAM;AAAA,IACJ,QAAAR;AAAA,IACA,WAAAI;AAAA,IACA,WAAAwB;AAAA,IACA,MAAAnB;AAAA,IAEA,MAAAoB,IAAO;AAAA,IACP,SAAA3B;AAAA,IACA,SAAAD;AAAA,IACA,gBAAA6B,IAAiB;AAAA,IACjB,mBAAAC,IAAoB;AAAA,IACpB,sBAAAC,IAAuB;AAAA,IACvB,gBAAAC,IAAiB;AAAA,IACjB,iBAAAC,IAAkB;AAAA,IAClB,mBAAAC,IAAoB;AAAA,IACpB,kBAAAC,IAAmB;AAAA,IACnB,WAAAC,IAAY;AAAA,IACZ,SAAAC,IAAU;AAAA,IACV,SAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,uBAAAC,IAAwB;AAAA,IACxB,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAxB;AAAA,IACA,kBAAAD;AAAA,IACA,UAAAf;AAAA,IACA,eAAeyC,KAAa;AAAA,IAC5B,GAAGC;AAAA,EAAA,IACDtC,GACEuC,KAAc,CAACf,MAAsB,CAAC,CAAC9B,KAAW6B,IAClDiB,IAAuC,CAAA;AAC7C,EAAIjB,KACFiB,EAAkB;AAAA,IAChB,gBAAA1B;AAAA,MAAC2B;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,MAAK;AAAA,QACL,SAAS9B;AAAA,QACT,cAAYT,MAAS,aAAa0B,IAAoB1B,MAAS,UAAU2B,IAAmBF;AAAA,QAG5F,4BAACe,GAAA,EAAK,MAAMxC,MAAS,aAAa,qBAAqB,eAAA,CAAgB;AAAA,MAAA;AAAA,MAFnE;AAAA,IAAA;AAAA,EAGN,GAGAR,KACF8C,EAAkB;AAAA,IAChB,gBAAA1B,EAAC2B,GAAA,EAAO,SAAS,YAAY,MAAK,SAAQ,SAAS7B,GAAa,cAAYc,GAC1E,UAAA,gBAAAZ,EAAC4B,GAAA,EAAK,MAAK,QAAA,CAAQ,KAD2E,OAEhG;AAAA,EAAA,GAGAjB,KACFe,EAAkB,QAAA;AAEpB,QAAMnC,IAAUC,EAAuB,IAAI,GACrCqC,IAAUrC,EAAuB,IAAI,GACrCsC,KAAUC,GAAW5C,GAAKI,GAASsC,CAAO,GAI1C,CAACG,GAAUC,CAAW,IAAI3C,EAAwB,IAAI,GACtD4C,IAAW7B,GAAetB,CAAS,GAEnCoD,IAAQC;AAAA,IACZ,CAACC,MAAe;AACd,YAAMC,IAAWJ,IAAW,OAAO,cAAc,OAAO,YAClDK,IAAMrB,KAAA,OAAAA,IAAWoB;AACvB,aAAO,KAAK,IAAIrB,GAAS,KAAK,IAAIsB,GAAKF,CAAE,CAAC;AAAA,IAC5C;AAAA,IACA,CAACH,GAAUhB,GAASD,CAAO;AAAA,EAAA,GAGvBuB,IAAgBJ,EAAY,MAAM;;AACtC,UAAMK,KAAOC,IAAAb,EAAQ,YAAR,gBAAAa,EAAiB;AAC9B,WAAKD,IAGEP,IAAWO,EAAK,SAASA,EAAK,QAF5BxB;AAAA,EAGX,GAAG,CAACiB,GAAUjB,CAAO,CAAC,GAEhB0B,IAAYP;AAAA,IAChB,CAACC,MAAe;AACd,YAAMO,IAAOT,EAAME,CAAE;AACrB,MAAAJ,EAAYW,CAAI,GAChBvB,KAAA,QAAAA,EAAWuB;AAAA,IACb;AAAA,IACA,CAACT,GAAOd,CAAQ;AAAA,EAAA,GAGZwB,IAAUrD,EAA+C,IAAI,GAE7DsD,KAAgBV;AAAA,IACpB,CAACzC,MAA8C;;AAC7C,MAAAA,EAAM,eAAA,GACNkD,EAAQ,UAAU;AAAA,QAChB,OAAOX,IAAWvC,EAAM,UAAUA,EAAM;AAAA,QACxC,MAAM6C,EAAA;AAAA,MAAc;AAEtB,UAAI;AACF,SAAAO,KAAAL,IAAA/C,EAAM,eAAc,sBAApB,QAAAoD,EAAA,KAAAL,GAAwC/C,EAAM;AAAA,MAChD,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,IACA,CAACuC,GAAUM,CAAa;AAAA,EAAA,GAGpBQ,KAAgBZ;AAAA,IACpB,CAACzC,MAA8C;AAC7C,YAAMsD,IAAOJ,EAAQ;AACrB,UAAI,CAACI;AACH;AAGF,YAAMC,KADMhB,IAAWvC,EAAM,UAAUA,EAAM,WACzBsD,EAAK,OAEnBE,IAAOpE,MAAc,YAAYA,MAAc,UAAU,CAACmE,IAAQA;AACxE,MAAAP,EAAUM,EAAK,OAAOE,CAAI;AAAA,IAC5B;AAAA,IACA,CAACjB,GAAUnD,GAAW4D,CAAS;AAAA,EAAA,GAG3BS,IAAUhB,EAAY,CAACzC,MAA8C;;AACzE,IAAAkD,EAAQ,UAAU,OACdE,KAAAL,IAAA/C,EAAM,eAAc,sBAApB,QAAAoD,EAAA,KAAAL,GAAwC/C,EAAM,gBAChD0D,KAAAC,IAAA3D,EAAM,eAAc,0BAApB,QAAA0D,EAAA,KAAAC,GAA4C3D,EAAM;AAAA,EAEtD,GAAG,CAAA,CAAE,GAEC4D,KAAkBnB;AAAA,IACtB,CAACzC,MAA+C;AAC9C,YAAM6D,IAAOxB,KAAA,OAAAA,IAAYQ,EAAA,GACnBD,IAAMrB,KAAA,OAAAA,IAAYgB,IAAW,OAAO,cAAc,OAAO,YAEzDuB,IACJ1E,MAAc,WACV,YACAA,MAAc,QACZ,cACAA,MAAc,SACZ,eACA,aACJ2E,IACJ3E,MAAc,WACV,cACAA,MAAc,QACZ,YACAA,MAAc,SACZ,cACA;AACV,MAAIY,EAAM,QAAQ8D,KAChB9D,EAAM,eAAA,GACNgD,EAAUa,IAAOrC,CAAU,KAClBxB,EAAM,QAAQ+D,KACvB/D,EAAM,eAAA,GACNgD,EAAUa,IAAOrC,CAAU,KAClBxB,EAAM,QAAQ,UACvBA,EAAM,eAAA,GACNgD,EAAU1B,CAAO,KACRtB,EAAM,QAAQ,UACvBA,EAAM,eAAA,GACNgD,EAAUJ,CAAG;AAAA,IAEjB;AAAA,IACA,CAACP,GAAUQ,GAAeN,GAAUnD,GAAW4D,GAAWxB,GAAYF,GAASC,CAAO;AAAA,EAAA;AAGxF,EAAAZ,EAAM,UAAU,MAAM;AACpB,QAAI,CAAC3B,GAAQ;AACX,MAAAsD,EAAY,IAAI;AAChB;AAAA,IACF;AAEA,UAAM0B,IAAO9B,EAAQ,SAGf+B,IAASD,KAAA,QAAAA,EAAM,SAAS,SAAS,iBAAiB,OAAO,SAAS;AACxE,WAAAA,KAAA,QAAAA,EAAM,SACC,MAAME,GAAaD,GAAQD,CAAI;AAAA,EACxC,GAAG,CAAChF,CAAM,CAAC;AAKX,QAAMmF,KACJ9C,KAAagB,MAAa,OACtB,EAAE,GAAIE,IAAW,EAAE,QAAQF,EAAA,IAAa,EAAE,OAAOA,EAAA,GAAa,YAAY,OAAA,IAC1E,CAAA;AAEN,SACE,gBAAAhC,EAACC,GAAA,EAAc,IAAItB,GAAQ,SAAS,KAAK,QAAM,IAAC,YAAY,EAAE,WAAW,qBAAA,GAAwB,SAAAY,GAC/F,UAAA,gBAAAwE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKjC;AAAA,MACL,eAAaP;AAAA,MACZ,GAAGC;AAAA,MAIJ,UAAU;AAAA,MACV,MAAK;AAAA,MACL,cAAY3C,MAAY,WAAW2C,EAAK,YAAY;AAAA,MACpD,WAAWtB,EAAG,cAAcK,GAAW,cAAc1B,CAAO,IAAI,QAAQE,CAAS,IAAI;AAAA,QACnF,iBAAiBK,MAAS;AAAA,QAC1B,cAAcA,MAAS;AAAA,QACvB,wBAAwB4B;AAAA,MAAA,CACzB;AAAA,MACD,OAAO,EAAE,cAAcR,GAAM,GAAGsD,IAAW,GAAGxC,EAAA;AAAA,MAE7C,UAAA;AAAA,QAAAN,KACC,gBAAAhB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA,YACZ,MAAK;AAAA,YACL,UAAU;AAAA,YACV,oBAAkBkC,IAAW,eAAe;AAAA,YAC5C,cAAYd;AAAA,YACZ,iBAAeH;AAAA,YACf,iBAAe,KAAK,MAAMC,KAAA,OAAAA,IAAYgB,IAAW,OAAO,cAAc,OAAO,UAAW;AAAA,YACxF,iBAAe,KAAK,MAAMF,KAAA,OAAAA,IAAYQ,GAAe;AAAA,YACrD,eAAAM;AAAA,YACA,eAAAE;AAAA,YACA,aAAaI;AAAA,YACb,iBAAiBA;AAAA,YACjB,WAAWG;AAAA,YAEX,UAAA,gBAAAvD,EAAC,QAAA,EAAK,WAAU,8BAAA,CAA8B;AAAA,UAAA;AAAA,QAAA;AAAA,QAGjDyB,MAAe,gBAAAzB,EAAC,OAAA,EAAI,WAAU,sBAAsB,UAAA0B,GAAkB;AAAA,QACtE/C,KAAUS,MAAS,6BAAY,OAAA,EAAI,WAAU,qBAAqB,UAAAN,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEhF;AAEJ,CAAC;"}
@@ -1,33 +1,45 @@
1
- import { jsx as n, jsxs as k } from "react/jsx-runtime";
2
- import y, { Children as w, isValidElement as b, Fragment as h } from "react";
3
- import j from "clsx";
4
- const r = (t) => t === "start" || t === "end" ? `flex-${t}` : t, v = (t) => typeof t == "number" ? `calc(var(--smui-spacing-unit, 4px) * ${t})` : t === "none" ? "0" : `var(--smui-space-${t})`, N = y.forwardRef(function({ direction: i = "column", spacing: l = "md", align: c, justify: o, wrap: m, divider: e, className: f, style: d, children: a, ...p }, u) {
5
- const x = w.toArray(a).filter(b);
1
+ import { jsx as n, jsxs as y } from "react/jsx-runtime";
2
+ import w, { Children as b, isValidElement as h, Fragment as j } from "react";
3
+ import v from "clsx";
4
+ const r = (t) => t === "start" || t === "end" ? `flex-${t}` : t, $ = (t) => typeof t == "number" ? `calc(var(--smui-spacing-unit, 4px) * ${t})` : t === "none" ? "0" : `var(--smui-space-${t})`, R = w.forwardRef(function({
5
+ direction: i = "column",
6
+ spacing: l = "md",
7
+ align: c,
8
+ justify: o,
9
+ wrap: m,
10
+ divider: a,
11
+ className: d,
12
+ style: f,
13
+ children: e,
14
+ "data-testid": p = "stack",
15
+ ...u
16
+ }, x) {
17
+ const g = b.toArray(e).filter(h);
6
18
  return /* @__PURE__ */ n(
7
19
  "div",
8
20
  {
9
- ref: u,
10
- "data-testid": "stack",
11
- className: j("smwb-stack", f),
21
+ ref: x,
22
+ "data-testid": p,
23
+ className: v("smwb-stack", d),
12
24
  style: {
13
25
  display: "flex",
14
26
  flexDirection: i,
15
27
  flexWrap: m ? "wrap" : void 0,
16
28
  alignItems: r(c),
17
29
  justifyContent: r(o),
18
- gap: v(l),
19
- ...d
30
+ gap: $(l),
31
+ ...f
20
32
  },
21
- ...p,
22
- children: e ? x.map((g, s) => /* @__PURE__ */ k(h, { children: [
23
- s > 0 ? /* @__PURE__ */ n("div", { className: "smwb-stack__divider", children: e }) : null,
24
- g
25
- ] }, s)) : a
33
+ ...u,
34
+ children: a ? g.map((k, s) => /* @__PURE__ */ y(j, { children: [
35
+ s > 0 ? /* @__PURE__ */ n("div", { className: "smwb-stack__divider", children: a }) : null,
36
+ k
37
+ ] }, s)) : e
26
38
  }
27
39
  );
28
40
  });
29
41
  export {
30
- N as Stack,
31
- N as default
42
+ R as Stack,
43
+ R as default
32
44
  };
33
45
  //# sourceMappingURL=stack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sources":["../../../../../src/components/layout/stack/stack.tsx"],"sourcesContent":["import React, { Children, Fragment, HTMLAttributes, PropsWithChildren, ReactNode, isValidElement } from \"react\";\nimport cn from \"clsx\";\n\nexport type StackSpacing = number | \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\" | \"xxxl\";\n\nexport interface StackProps extends HTMLAttributes<HTMLDivElement> {\n direction?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n /** Gap between items: scale keyword, or a number = N × spacing unit. */\n spacing?: StackSpacing;\n align?: \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n justify?: \"start\" | \"center\" | \"end\" | \"space-between\" | \"space-around\" | \"space-evenly\";\n wrap?: boolean;\n /** Optional element rendered between each child. */\n divider?: ReactNode;\n className?: string;\n}\n\nconst flexAlign = (v?: string): string | undefined => (v === \"start\" || v === \"end\" ? `flex-${v}` : v);\n\nconst resolveGap = (s: StackSpacing): string =>\n typeof s === \"number\" ? `calc(var(--smui-spacing-unit, 4px) * ${s})` : s === \"none\" ? \"0\" : `var(--smui-space-${s})`;\n\nexport const Stack = React.forwardRef<HTMLDivElement, PropsWithChildren<StackProps>>(function Stack(\n { direction = \"column\", spacing = \"md\", align, justify, wrap, divider, className, style, children, ...rest },\n ref\n) {\n const items = Children.toArray(children).filter(isValidElement);\n return (\n <div\n ref={ref}\n data-testid=\"stack\"\n className={cn(\"smwb-stack\", className)}\n style={{\n display: \"flex\",\n flexDirection: direction,\n flexWrap: wrap ? \"wrap\" : undefined,\n alignItems: flexAlign(align),\n justifyContent: flexAlign(justify),\n gap: resolveGap(spacing),\n ...style,\n }}\n {...rest}\n >\n {divider\n ? items.map((child, i) => (\n <Fragment key={i}>\n {i > 0 ? <div className=\"smwb-stack__divider\">{divider}</div> : null}\n {child}\n </Fragment>\n ))\n : children}\n </div>\n );\n});\n\nexport default Stack;\n"],"names":["flexAlign","v","resolveGap","s","Stack","React","direction","spacing","align","justify","wrap","divider","className","style","children","rest","ref","items","Children","isValidElement","jsx","cn","child","i","Fragment"],"mappings":";;;AAiBA,MAAMA,IAAY,CAACC,MAAoCA,MAAM,WAAWA,MAAM,QAAQ,QAAQA,CAAC,KAAKA,GAE9FC,IAAa,CAACC,MAClB,OAAOA,KAAM,WAAW,wCAAwCA,CAAC,MAAMA,MAAM,SAAS,MAAM,oBAAoBA,CAAC,KAEtGC,IAAQC,EAAM,WAA0D,SACnF,EAAE,WAAAC,IAAY,UAAU,SAAAC,IAAU,MAAM,OAAAC,GAAO,SAAAC,GAAS,MAAAC,GAAM,SAAAC,GAAS,WAAAC,GAAW,OAAAC,GAAO,UAAAC,GAAU,GAAGC,EAAA,GACtGC,GACA;AACA,QAAMC,IAAQC,EAAS,QAAQJ,CAAQ,EAAE,OAAOK,CAAc;AAC9D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,eAAY;AAAA,MACZ,WAAWK,EAAG,cAAcT,CAAS;AAAA,MACrC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAeN;AAAA,QACf,UAAUI,IAAO,SAAS;AAAA,QAC1B,YAAYV,EAAUQ,CAAK;AAAA,QAC3B,gBAAgBR,EAAUS,CAAO;AAAA,QACjC,KAAKP,EAAWK,CAAO;AAAA,QACvB,GAAGM;AAAA,MAAA;AAAA,MAEJ,GAAGE;AAAA,MAEH,cACGE,EAAM,IAAI,CAACK,GAAOC,wBACfC,GAAA,EACE,UAAA;AAAA,QAAAD,IAAI,IAAI,gBAAAH,EAAC,OAAA,EAAI,WAAU,uBAAuB,aAAQ,IAAS;AAAA,QAC/DE;AAAA,MAAA,EAAA,GAFYC,CAGf,CACD,IACDT;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
1
+ {"version":3,"file":"stack.js","sources":["../../../../../src/components/layout/stack/stack.tsx"],"sourcesContent":["import React, { Children, Fragment, HTMLAttributes, PropsWithChildren, ReactNode, isValidElement } from \"react\";\nimport cn from \"clsx\";\n\nexport type StackSpacing = number | \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\" | \"xxxl\";\n\nexport interface StackProps extends HTMLAttributes<HTMLDivElement> {\n direction?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n /** Gap between items: scale keyword, or a number = N × spacing unit. */\n spacing?: StackSpacing;\n align?: \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n justify?: \"start\" | \"center\" | \"end\" | \"space-between\" | \"space-around\" | \"space-evenly\";\n wrap?: boolean;\n /** Optional element rendered between each child. */\n divider?: ReactNode;\n className?: string;\n /** Test id of the root `<div>`; `stack` unless given. */\n \"data-testid\"?: string;\n}\n\nconst flexAlign = (v?: string): string | undefined => (v === \"start\" || v === \"end\" ? `flex-${v}` : v);\n\nconst resolveGap = (s: StackSpacing): string =>\n typeof s === \"number\" ? `calc(var(--smui-spacing-unit, 4px) * ${s})` : s === \"none\" ? \"0\" : `var(--smui-space-${s})`;\n\nexport const Stack = React.forwardRef<HTMLDivElement, PropsWithChildren<StackProps>>(function Stack(\n {\n direction = \"column\",\n spacing = \"md\",\n align,\n justify,\n wrap,\n divider,\n className,\n style,\n children,\n \"data-testid\": dataTestId = \"stack\",\n ...rest\n },\n ref\n) {\n const items = Children.toArray(children).filter(isValidElement);\n return (\n <div\n ref={ref}\n data-testid={dataTestId}\n className={cn(\"smwb-stack\", className)}\n style={{\n display: \"flex\",\n flexDirection: direction,\n flexWrap: wrap ? \"wrap\" : undefined,\n alignItems: flexAlign(align),\n justifyContent: flexAlign(justify),\n gap: resolveGap(spacing),\n ...style,\n }}\n {...rest}\n >\n {divider\n ? items.map((child, i) => (\n <Fragment key={i}>\n {i > 0 ? <div className=\"smwb-stack__divider\">{divider}</div> : null}\n {child}\n </Fragment>\n ))\n : children}\n </div>\n );\n});\n\nexport default Stack;\n"],"names":["flexAlign","v","resolveGap","s","Stack","React","direction","spacing","align","justify","wrap","divider","className","style","children","dataTestId","rest","ref","items","Children","isValidElement","jsx","cn","child","i","Fragment"],"mappings":";;;AAmBA,MAAMA,IAAY,CAACC,MAAoCA,MAAM,WAAWA,MAAM,QAAQ,QAAQA,CAAC,KAAKA,GAE9FC,IAAa,CAACC,MAClB,OAAOA,KAAM,WAAW,wCAAwCA,CAAC,MAAMA,MAAM,SAAS,MAAM,oBAAoBA,CAAC,KAEtGC,IAAQC,EAAM,WAA0D,SACnF;AAAA,EACE,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAQC,EAAS,QAAQL,CAAQ,EAAE,OAAOM,CAAc;AAC9D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,eAAaF;AAAA,MACb,WAAWO,EAAG,cAAcV,CAAS;AAAA,MACrC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAeN;AAAA,QACf,UAAUI,IAAO,SAAS;AAAA,QAC1B,YAAYV,EAAUQ,CAAK;AAAA,QAC3B,gBAAgBR,EAAUS,CAAO;AAAA,QACjC,KAAKP,EAAWK,CAAO;AAAA,QACvB,GAAGM;AAAA,MAAA;AAAA,MAEJ,GAAGG;AAAA,MAEH,cACGE,EAAM,IAAI,CAACK,GAAOC,wBACfC,GAAA,EACE,UAAA;AAAA,QAAAD,IAAI,IAAI,gBAAAH,EAAC,OAAA,EAAI,WAAU,uBAAuB,aAAQ,IAAS;AAAA,QAC/DE;AAAA,MAAA,EAAA,GAFYC,CAGf,CACD,IACDV;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}