@smwb/ui-solid 0.12.0 → 0.13.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 (850) hide show
  1. package/README.md +74 -0
  2. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  3. package/dist/assets/styles/less/components/card/card.entry.css +1 -1
  4. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  5. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  6. package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
  7. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  8. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -1
  9. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  10. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  11. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  12. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  13. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  14. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  15. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  16. package/dist/components/base/animateHeight/animateHeight.js +41 -42
  17. package/dist/components/base/animateHeight/animateHeight.js.map +1 -1
  18. package/dist/components/base/icon/icon.d.ts +6 -2
  19. package/dist/components/base/icon/icon.js +41 -41
  20. package/dist/components/base/icon/icon.js.map +1 -1
  21. package/dist/components/base/ripple/ripple.d.ts +3 -0
  22. package/dist/components/base/ripple/ripple.js +46 -34
  23. package/dist/components/base/ripple/ripple.js.map +1 -1
  24. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  25. package/dist/components/dataDisplay/avatar/avatar.js +37 -33
  26. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  27. package/dist/components/dataDisplay/card/card.d.ts +32 -1
  28. package/dist/components/dataDisplay/card/card.js +47 -34
  29. package/dist/components/dataDisplay/card/card.js.map +1 -1
  30. package/dist/components/dataDisplay/carousel/carousel.js +92 -88
  31. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  32. package/dist/components/dataDisplay/chart/chart.d.ts +2 -0
  33. package/dist/components/dataDisplay/chat/chatIconButton.js +23 -13
  34. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  35. package/dist/components/dataDisplay/chat/chatLayout.d.ts +2 -0
  36. package/dist/components/dataDisplay/chat/chatLayout.js +33 -29
  37. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  38. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +2 -0
  39. package/dist/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  40. package/dist/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  41. package/dist/components/dataDisplay/chip/chip.d.ts +32 -0
  42. package/dist/components/dataDisplay/chip/chip.js +104 -63
  43. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  44. package/dist/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  45. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  46. package/dist/components/dataDisplay/dagView/dagLayout.d.ts +74 -0
  47. package/dist/components/dataDisplay/dagView/dagLayout.js +284 -0
  48. package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  49. package/dist/components/dataDisplay/dagView/dagView.d.ts +151 -0
  50. package/dist/components/dataDisplay/dagView/dagView.js +488 -0
  51. package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
  52. package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
  53. package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
  54. package/dist/components/dataDisplay/dagView/panZoom.js +161 -0
  55. package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
  56. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +11 -3
  57. package/dist/components/dataDisplay/descriptionList/descriptionList.js +20 -24
  58. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  59. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  60. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  61. package/dist/components/dataDisplay/kanban/kanban.d.ts +6 -0
  62. package/dist/components/dataDisplay/kanban/kanban.js +71 -61
  63. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -1
  64. package/dist/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  65. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  66. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  67. package/dist/components/dataDisplay/list/list.js +16 -12
  68. package/dist/components/dataDisplay/list/list.js.map +1 -1
  69. package/dist/components/dataDisplay/list/listItem.js +20 -18
  70. package/dist/components/dataDisplay/list/listItem.js.map +1 -1
  71. package/dist/components/dataDisplay/meter/meter.d.ts +2 -0
  72. package/dist/components/dataDisplay/meter/meter.js +15 -13
  73. package/dist/components/dataDisplay/meter/meter.js.map +1 -1
  74. package/dist/components/dataDisplay/personChip/personChip.d.ts +2 -0
  75. package/dist/components/dataDisplay/personChip/personChip.js +12 -10
  76. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -1
  77. package/dist/components/dataDisplay/stat/stat.d.ts +2 -0
  78. package/dist/components/dataDisplay/stat/stat.js +41 -43
  79. package/dist/components/dataDisplay/stat/stat.js.map +1 -1
  80. package/dist/components/dataDisplay/table/table.d.ts +10 -1
  81. package/dist/components/dataDisplay/table/table.js +46 -22
  82. package/dist/components/dataDisplay/table/table.js.map +1 -1
  83. package/dist/components/dataDisplay/table/tableBody.js +25 -12
  84. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  85. package/dist/components/dataDisplay/table/tableCell.d.ts +10 -2
  86. package/dist/components/dataDisplay/table/tableCell.js +15 -14
  87. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  88. package/dist/components/dataDisplay/table/tableColumns.d.ts +146 -0
  89. package/dist/components/dataDisplay/table/tableColumns.js +254 -0
  90. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  91. package/dist/components/dataDisplay/table/tableEntities.d.ts +4 -0
  92. package/dist/components/dataDisplay/table/tableEntities.js +6 -0
  93. package/dist/components/dataDisplay/table/tableEntities.js.map +1 -0
  94. package/dist/components/dataDisplay/table/tableHead.js +29 -11
  95. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  96. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +23 -1
  97. package/dist/components/dataDisplay/table/tableHeadCell.js +51 -26
  98. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  99. package/dist/components/dataDisplay/table/tableHtmlText.d.ts +8 -0
  100. package/dist/components/dataDisplay/table/tableHtmlText.js +121 -0
  101. package/dist/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  102. package/dist/components/dataDisplay/table/tableRow.d.ts +2 -0
  103. package/dist/components/dataDisplay/table/tableRow.js +28 -13
  104. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  105. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  106. package/dist/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  107. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  108. package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
  109. package/dist/components/dataDisplay/treeView/treeView.js +4 -2
  110. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  111. package/dist/components/dataDisplay/typography/typography.js +22 -26
  112. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  113. package/dist/components/feedBack/emptyState/emptyState.d.ts +2 -0
  114. package/dist/components/feedBack/emptyState/emptyState.js +20 -16
  115. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -1
  116. package/dist/components/feedBack/message/message.d.ts +2 -0
  117. package/dist/components/feedBack/message/message.js +17 -13
  118. package/dist/components/feedBack/message/message.js.map +1 -1
  119. package/dist/components/feedBack/modal/modal.js +20 -16
  120. package/dist/components/feedBack/modal/modal.js.map +1 -1
  121. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  122. package/dist/components/feedBack/skeleton/skeleton.js +43 -35
  123. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  124. package/dist/components/feedBack/snackbar/snackbar.js +24 -20
  125. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  126. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  127. package/dist/components/feedBack/tooltip/tooltip.js +65 -41
  128. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  129. package/dist/components/inputs/button/button.d.ts +2 -0
  130. package/dist/components/inputs/button/button.js +48 -20
  131. package/dist/components/inputs/button/button.js.map +1 -1
  132. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  133. package/dist/components/inputs/buttonGroups/buttonGroup.js +14 -10
  134. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  135. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  136. package/dist/components/inputs/checkbox/checkbox.js +59 -36
  137. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  138. package/dist/components/inputs/datePicker/datePicker.js +108 -97
  139. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  140. package/dist/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  141. package/dist/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  142. package/dist/components/inputs/datePicker/datePickerDay.js +41 -25
  143. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  144. package/dist/components/inputs/datePicker/datePickerIconButton.js +24 -14
  145. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  146. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  147. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  148. package/dist/components/inputs/floatingButton/floatingButton.js +26 -16
  149. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  150. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  151. package/dist/components/inputs/radioButton/radioButton.js +48 -34
  152. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  153. package/dist/components/inputs/rating/rating.d.ts +9 -0
  154. package/dist/components/inputs/rating/rating.js +74 -53
  155. package/dist/components/inputs/rating/rating.js.map +1 -1
  156. package/dist/components/inputs/selectField/dropdownMenu.d.ts +21 -1
  157. package/dist/components/inputs/selectField/dropdownMenu.js +268 -143
  158. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  159. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  160. package/dist/components/inputs/selectField/optionNavigation.js +37 -0
  161. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  162. package/dist/components/inputs/selectField/selectField.d.ts +32 -1
  163. package/dist/components/inputs/selectField/selectField.js +297 -126
  164. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  165. package/dist/components/inputs/slider/slider.d.ts +25 -3
  166. package/dist/components/inputs/slider/slider.js +320 -197
  167. package/dist/components/inputs/slider/slider.js.map +1 -1
  168. package/dist/components/inputs/textField/textField.d.ts +9 -1
  169. package/dist/components/inputs/textField/textField.js +104 -51
  170. package/dist/components/inputs/textField/textField.js.map +1 -1
  171. package/dist/components/inputs/textField/textFieldWrapper.d.ts +14 -0
  172. package/dist/components/inputs/textField/textFieldWrapper.js +52 -45
  173. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  174. package/dist/components/inputs/timePicker/timePicker.js +73 -62
  175. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  176. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  177. package/dist/components/inputs/toggle/toggle.js +43 -31
  178. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  179. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  180. package/dist/components/inputs/valueSlider/valueSlider.js +32 -27
  181. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  182. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  183. package/dist/components/layout/appLayout/appLayout.js +32 -30
  184. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  185. package/dist/components/layout/divider/divider.d.ts +2 -0
  186. package/dist/components/layout/divider/divider.js +22 -20
  187. package/dist/components/layout/divider/divider.js.map +1 -1
  188. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  189. package/dist/components/layout/floatingWindow/floatingWindow.js +171 -168
  190. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  191. package/dist/components/layout/grid/grid.d.ts +8 -0
  192. package/dist/components/layout/grid/grid.js +52 -44
  193. package/dist/components/layout/grid/grid.js.map +1 -1
  194. package/dist/components/layout/page/page.d.ts +2 -0
  195. package/dist/components/layout/page/page.js +14 -12
  196. package/dist/components/layout/page/page.js.map +1 -1
  197. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  198. package/dist/components/layout/pageHeader/pageHeader.js +23 -21
  199. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  200. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +2 -0
  201. package/dist/components/layout/sectionHeader/sectionHeader.js +38 -36
  202. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  203. package/dist/components/layout/sheet/sheet.d.ts +2 -0
  204. package/dist/components/layout/sheet/sheet.js +50 -48
  205. package/dist/components/layout/sheet/sheet.js.map +1 -1
  206. package/dist/components/layout/stack/stack.d.ts +2 -0
  207. package/dist/components/layout/stack/stack.js +26 -24
  208. package/dist/components/layout/stack/stack.js.map +1 -1
  209. package/dist/components/navigation/appBar/appBar.d.ts +2 -0
  210. package/dist/components/navigation/appBar/appBar.js +18 -16
  211. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  212. package/dist/components/navigation/bottomBar/bottomBar.js +125 -120
  213. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  214. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  215. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +18 -14
  216. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  217. package/dist/components/navigation/menu/menu.d.ts +6 -0
  218. package/dist/components/navigation/menu/menu.js.map +1 -1
  219. package/dist/components/navigation/menu/menuComponent.js +12 -23
  220. package/dist/components/navigation/menu/menuComponent.js.map +1 -1
  221. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  222. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  223. package/dist/components/navigation/menu/menuFloating.js +54 -46
  224. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  225. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  226. package/dist/components/navigation/menu/menuItem.js +58 -33
  227. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  228. package/dist/components/navigation/menu/menuList.d.ts +4 -0
  229. package/dist/components/navigation/menu/menuList.js +34 -16
  230. package/dist/components/navigation/menu/menuList.js.map +1 -1
  231. package/dist/components/navigation/menu/menuSubmenu.d.ts +8 -1
  232. package/dist/components/navigation/menu/menuSubmenu.js +58 -38
  233. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  234. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  235. package/dist/components/navigation/pagination/pagination.js +28 -24
  236. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  237. package/dist/components/navigation/sidebar/sidebar.js +27 -25
  238. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  239. package/dist/components/navigation/stepper/stepper.d.ts +2 -0
  240. package/dist/components/navigation/stepper/stepper.js +46 -42
  241. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  242. package/dist/components/navigation/tabs/tab/tab.js +46 -35
  243. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  244. package/dist/components/navigation/tabs/tabs.d.ts +7 -0
  245. package/dist/components/navigation/tabs/tabs.js +90 -75
  246. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  247. package/dist/components/navigation/tabs/tabsContext.d.ts +6 -4
  248. package/dist/components/navigation/tabs/tabsContext.js.map +1 -1
  249. package/dist/connects/rt/table/table.d.ts +16 -1
  250. package/dist/headless/components/base/animateHeight/animateHeight.js +41 -42
  251. package/dist/headless/components/base/animateHeight/animateHeight.js.map +1 -1
  252. package/dist/headless/components/base/icon/icon.js +40 -40
  253. package/dist/headless/components/base/icon/icon.js.map +1 -1
  254. package/dist/headless/components/base/ripple/ripple.js +46 -34
  255. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  256. package/dist/headless/components/dataDisplay/avatar/avatar.js +37 -33
  257. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  258. package/dist/headless/components/dataDisplay/card/card.js +44 -31
  259. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  260. package/dist/headless/components/dataDisplay/carousel/carousel.js +102 -98
  261. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  262. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +23 -13
  263. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  264. package/dist/headless/components/dataDisplay/chat/chatLayout.js +33 -29
  265. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  266. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js +19 -17
  267. package/dist/headless/components/dataDisplay/chat/chatOverlayLayout.js.map +1 -1
  268. package/dist/headless/components/dataDisplay/chip/chip.js +104 -63
  269. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  270. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +44 -39
  271. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  272. package/dist/headless/components/dataDisplay/dagView/dagLayout.js +284 -0
  273. package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  274. package/dist/headless/components/dataDisplay/dagView/dagView.js +486 -0
  275. package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
  276. package/dist/headless/components/dataDisplay/dagView/panZoom.js +161 -0
  277. package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
  278. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +15 -19
  279. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -1
  280. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +114 -81
  281. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  282. package/dist/headless/components/dataDisplay/kanban/kanban.js +71 -61
  283. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -1
  284. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +14 -12
  285. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  286. package/dist/headless/components/dataDisplay/list/list.js +16 -12
  287. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  288. package/dist/headless/components/dataDisplay/list/listItem.js +20 -18
  289. package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
  290. package/dist/headless/components/dataDisplay/meter/meter.js +14 -12
  291. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -1
  292. package/dist/headless/components/dataDisplay/personChip/personChip.js +12 -10
  293. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -1
  294. package/dist/headless/components/dataDisplay/stat/stat.js +43 -45
  295. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -1
  296. package/dist/headless/components/dataDisplay/table/table.js +47 -23
  297. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  298. package/dist/headless/components/dataDisplay/table/tableBody.js +25 -12
  299. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  300. package/dist/headless/components/dataDisplay/table/tableCell.js +15 -14
  301. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  302. package/dist/headless/components/dataDisplay/table/tableColumns.js +254 -0
  303. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  304. package/dist/headless/components/dataDisplay/table/tableEntities.js +6 -0
  305. package/dist/headless/components/dataDisplay/table/tableEntities.js.map +1 -0
  306. package/dist/headless/components/dataDisplay/table/tableHead.js +29 -11
  307. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  308. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +51 -26
  309. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  310. package/dist/headless/components/dataDisplay/table/tableHtmlText.js +121 -0
  311. package/dist/headless/components/dataDisplay/table/tableHtmlText.js.map +1 -0
  312. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -13
  313. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  314. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +86 -58
  315. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  316. package/dist/headless/components/dataDisplay/treeView/treeView.js +4 -2
  317. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  318. package/dist/headless/components/dataDisplay/typography/typography.js +21 -25
  319. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  320. package/dist/headless/components/feedBack/emptyState/emptyState.js +9 -5
  321. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -1
  322. package/dist/headless/components/feedBack/message/message.js +17 -13
  323. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  324. package/dist/headless/components/feedBack/modal/modal.js +20 -16
  325. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  326. package/dist/headless/components/feedBack/skeleton/skeleton.js +43 -35
  327. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  328. package/dist/headless/components/feedBack/snackbar/snackbar.js +30 -26
  329. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  330. package/dist/headless/components/feedBack/tooltip/tooltip.js +63 -39
  331. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  332. package/dist/headless/components/inputs/button/button.js +51 -23
  333. package/dist/headless/components/inputs/button/button.js.map +1 -1
  334. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +22 -18
  335. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  336. package/dist/headless/components/inputs/checkbox/checkbox.js +59 -36
  337. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  338. package/dist/headless/components/inputs/datePicker/datePicker.js +106 -95
  339. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  340. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js +19 -17
  341. package/dist/headless/components/inputs/datePicker/datePickerActionLabel.js.map +1 -1
  342. package/dist/headless/components/inputs/datePicker/datePickerDay.js +41 -25
  343. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  344. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +24 -14
  345. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  346. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +90 -79
  347. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  348. package/dist/headless/components/inputs/floatingButton/floatingButton.js +25 -15
  349. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  350. package/dist/headless/components/inputs/radioButton/radioButton.js +48 -34
  351. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  352. package/dist/headless/components/inputs/rating/rating.js +74 -53
  353. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  354. package/dist/headless/components/inputs/selectField/dropdownMenu.js +268 -143
  355. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  356. package/dist/headless/components/inputs/selectField/optionNavigation.js +37 -0
  357. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  358. package/dist/headless/components/inputs/selectField/selectField.js +297 -126
  359. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  360. package/dist/headless/components/inputs/slider/slider.js +320 -197
  361. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  362. package/dist/headless/components/inputs/textField/textField.js +104 -51
  363. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  364. package/dist/headless/components/inputs/textField/textFieldWrapper.js +52 -45
  365. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  366. package/dist/headless/components/inputs/timePicker/timePicker.js +74 -63
  367. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  368. package/dist/headless/components/inputs/toggle/toggle.js +42 -30
  369. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  370. package/dist/headless/components/inputs/valueSlider/valueSlider.js +33 -28
  371. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  372. package/dist/headless/components/layout/appLayout/appLayout.js +29 -27
  373. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  374. package/dist/headless/components/layout/divider/divider.js +19 -17
  375. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  376. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +185 -182
  377. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  378. package/dist/headless/components/layout/grid/grid.js +54 -46
  379. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  380. package/dist/headless/components/layout/page/page.js +12 -10
  381. package/dist/headless/components/layout/page/page.js.map +1 -1
  382. package/dist/headless/components/layout/pageHeader/pageHeader.js +22 -20
  383. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  384. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +39 -37
  385. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -1
  386. package/dist/headless/components/layout/sheet/sheet.js +50 -48
  387. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  388. package/dist/headless/components/layout/stack/stack.js +23 -21
  389. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  390. package/dist/headless/components/navigation/appBar/appBar.js +15 -13
  391. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  392. package/dist/headless/components/navigation/bottomBar/bottomBar.js +125 -120
  393. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  394. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +13 -9
  395. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  396. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  397. package/dist/headless/components/navigation/menu/menuComponent.js +12 -23
  398. package/dist/headless/components/navigation/menu/menuComponent.js.map +1 -1
  399. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  400. package/dist/headless/components/navigation/menu/menuFloating.js +54 -46
  401. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  402. package/dist/headless/components/navigation/menu/menuItem.js +58 -33
  403. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  404. package/dist/headless/components/navigation/menu/menuList.js +34 -16
  405. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  406. package/dist/headless/components/navigation/menu/menuSubmenu.js +58 -38
  407. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  408. package/dist/headless/components/navigation/pagination/pagination.js +23 -19
  409. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  410. package/dist/headless/components/navigation/sidebar/sidebar.js +14 -12
  411. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  412. package/dist/headless/components/navigation/stepper/stepper.js +38 -34
  413. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  414. package/dist/headless/components/navigation/tabs/tab/tab.js +48 -37
  415. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  416. package/dist/headless/components/navigation/tabs/tabs.js +91 -76
  417. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  418. package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -1
  419. package/dist/headless/index.js +224 -220
  420. package/dist/headless/index.js.map +1 -1
  421. package/dist/headless/primitives/createCssTransition.js +31 -28
  422. package/dist/headless/primitives/createCssTransition.js.map +1 -1
  423. package/dist/headless/primitives/createDismissOnEscape.js +14 -0
  424. package/dist/headless/primitives/createDismissOnEscape.js.map +1 -0
  425. package/dist/headless/primitives/createFocusTrap.js +1 -0
  426. package/dist/headless/primitives/createFocusTrap.js.map +1 -1
  427. package/dist/headless/primitives/createHelperText.js +14 -0
  428. package/dist/headless/primitives/createHelperText.js.map +1 -0
  429. package/dist/headless/primitives/mergeStyle.js +9 -0
  430. package/dist/headless/primitives/mergeStyle.js.map +1 -0
  431. package/dist/headless/primitives/overlayLayer.js +14 -7
  432. package/dist/headless/primitives/overlayLayer.js.map +1 -1
  433. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx +7 -11
  434. package/dist/headless/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  435. package/dist/headless/source/components/base/icon/icon.jsx +10 -12
  436. package/dist/headless/source/components/base/icon/icon.jsx.map +1 -1
  437. package/dist/headless/source/components/base/ripple/ripple.jsx +16 -4
  438. package/dist/headless/source/components/base/ripple/ripple.jsx.map +1 -1
  439. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  440. package/dist/headless/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  441. package/dist/headless/source/components/dataDisplay/card/card.jsx +31 -12
  442. package/dist/headless/source/components/dataDisplay/card/card.jsx.map +1 -1
  443. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  444. package/dist/headless/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  445. package/dist/headless/source/components/dataDisplay/chart/chart.jsx +5 -4
  446. package/dist/headless/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  447. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  448. package/dist/headless/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  449. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  450. package/dist/headless/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  451. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  452. package/dist/headless/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  453. package/dist/headless/source/components/dataDisplay/chip/chip.jsx +55 -19
  454. package/dist/headless/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  455. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  456. package/dist/headless/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  457. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  458. package/dist/headless/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  459. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx +639 -0
  460. package/dist/headless/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  461. package/dist/headless/source/components/dataDisplay/dagView/index.js +10 -0
  462. package/dist/headless/source/components/dataDisplay/dagView/index.js.map +7 -0
  463. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js +247 -0
  464. package/dist/headless/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  465. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  466. package/dist/headless/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  467. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  468. package/dist/headless/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  469. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  470. package/dist/headless/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  471. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  472. package/dist/headless/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  473. package/dist/headless/source/components/dataDisplay/list/list.jsx +3 -3
  474. package/dist/headless/source/components/dataDisplay/list/list.jsx.map +1 -1
  475. package/dist/headless/source/components/dataDisplay/list/listItem.jsx +11 -10
  476. package/dist/headless/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  477. package/dist/headless/source/components/dataDisplay/meter/meter.jsx +3 -2
  478. package/dist/headless/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  479. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  480. package/dist/headless/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  481. package/dist/headless/source/components/dataDisplay/stat/stat.jsx +7 -8
  482. package/dist/headless/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  483. package/dist/headless/source/components/dataDisplay/table/table.jsx +18 -1
  484. package/dist/headless/source/components/dataDisplay/table/table.jsx.map +1 -1
  485. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx +6 -1
  486. package/dist/headless/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  487. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx +13 -4
  488. package/dist/headless/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  489. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  490. package/dist/headless/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  491. package/dist/headless/source/components/dataDisplay/table/tableEntities.js +7 -0
  492. package/dist/headless/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  493. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx +14 -1
  494. package/dist/headless/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  495. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  496. package/dist/headless/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  497. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  498. package/dist/headless/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  499. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx +11 -5
  500. package/dist/headless/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  501. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  502. package/dist/headless/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  503. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +9 -2
  504. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  505. package/dist/headless/source/components/dataDisplay/typography/typography.jsx +2 -6
  506. package/dist/headless/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  507. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  508. package/dist/headless/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  509. package/dist/headless/source/components/feedBack/message/message.jsx +5 -4
  510. package/dist/headless/source/components/feedBack/message/message.jsx.map +1 -1
  511. package/dist/headless/source/components/feedBack/modal/modal.jsx +5 -2
  512. package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
  513. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  514. package/dist/headless/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  515. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  516. package/dist/headless/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  517. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  518. package/dist/headless/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  519. package/dist/headless/source/components/inputs/button/button.jsx +8 -3
  520. package/dist/headless/source/components/inputs/button/button.jsx.map +1 -1
  521. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  522. package/dist/headless/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  523. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx +27 -4
  524. package/dist/headless/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  525. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +13 -0
  526. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  527. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  528. package/dist/headless/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  529. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  530. package/dist/headless/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  531. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  532. package/dist/headless/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  533. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  534. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  535. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  536. package/dist/headless/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  537. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx +16 -4
  538. package/dist/headless/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  539. package/dist/headless/source/components/inputs/rating/rating.jsx +49 -20
  540. package/dist/headless/source/components/inputs/rating/rating.jsx.map +1 -1
  541. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  542. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  543. package/dist/headless/source/components/inputs/selectField/optionNavigation.js +51 -0
  544. package/dist/headless/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  545. package/dist/headless/source/components/inputs/selectField/selectField.jsx +318 -92
  546. package/dist/headless/source/components/inputs/selectField/selectField.jsx.map +1 -1
  547. package/dist/headless/source/components/inputs/slider/slider.jsx +89 -18
  548. package/dist/headless/source/components/inputs/slider/slider.jsx.map +1 -1
  549. package/dist/headless/source/components/inputs/textField/textField.jsx +47 -9
  550. package/dist/headless/source/components/inputs/textField/textField.jsx.map +1 -1
  551. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  552. package/dist/headless/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  553. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +13 -0
  554. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  555. package/dist/headless/source/components/inputs/toggle/toggle.jsx +14 -2
  556. package/dist/headless/source/components/inputs/toggle/toggle.jsx.map +1 -1
  557. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  558. package/dist/headless/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  559. package/dist/headless/source/components/layout/appLayout/appLayout.jsx +8 -6
  560. package/dist/headless/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  561. package/dist/headless/source/components/layout/divider/divider.jsx +6 -5
  562. package/dist/headless/source/components/layout/divider/divider.jsx.map +1 -1
  563. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  564. package/dist/headless/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  565. package/dist/headless/source/components/layout/grid/grid.jsx +20 -8
  566. package/dist/headless/source/components/layout/grid/grid.jsx.map +1 -1
  567. package/dist/headless/source/components/layout/page/page.jsx +10 -2
  568. package/dist/headless/source/components/layout/page/page.jsx.map +1 -1
  569. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  570. package/dist/headless/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  571. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  572. package/dist/headless/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  573. package/dist/headless/source/components/layout/sheet/sheet.jsx +6 -8
  574. package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
  575. package/dist/headless/source/components/layout/stack/stack.jsx +15 -11
  576. package/dist/headless/source/components/layout/stack/stack.jsx.map +1 -1
  577. package/dist/headless/source/components/navigation/appBar/appBar.jsx +3 -2
  578. package/dist/headless/source/components/navigation/appBar/appBar.jsx.map +1 -1
  579. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  580. package/dist/headless/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  581. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  582. package/dist/headless/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  583. package/dist/headless/source/components/navigation/menu/menu.jsx.map +1 -1
  584. package/dist/headless/source/components/navigation/menu/menuComponent.jsx +3 -4
  585. package/dist/headless/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  586. package/dist/headless/source/components/navigation/menu/menuContext.js.map +2 -2
  587. package/dist/headless/source/components/navigation/menu/menuFloating.jsx +26 -4
  588. package/dist/headless/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  589. package/dist/headless/source/components/navigation/menu/menuItem.jsx +22 -2
  590. package/dist/headless/source/components/navigation/menu/menuItem.jsx.map +1 -1
  591. package/dist/headless/source/components/navigation/menu/menuList.jsx +19 -7
  592. package/dist/headless/source/components/navigation/menu/menuList.jsx.map +1 -1
  593. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  594. package/dist/headless/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  595. package/dist/headless/source/components/navigation/pagination/pagination.jsx +4 -3
  596. package/dist/headless/source/components/navigation/pagination/pagination.jsx.map +1 -1
  597. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx +1 -1
  598. package/dist/headless/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  599. package/dist/headless/source/components/navigation/stepper/stepper.jsx +14 -9
  600. package/dist/headless/source/components/navigation/stepper/stepper.jsx.map +1 -1
  601. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx +12 -16
  602. package/dist/headless/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  603. package/dist/headless/source/components/navigation/tabs/tabs.jsx +34 -10
  604. package/dist/headless/source/components/navigation/tabs/tabs.jsx.map +1 -1
  605. package/dist/headless/source/components/navigation/tabs/tabsContext.js.map +2 -2
  606. package/dist/headless/source/connects/rt/table/table.jsx +7 -2
  607. package/dist/headless/source/connects/rt/table/table.jsx.map +1 -1
  608. package/dist/headless/source/index.js +3 -0
  609. package/dist/headless/source/index.js.map +2 -2
  610. package/dist/headless/source/primitives/createCssTransition.js +10 -1
  611. package/dist/headless/source/primitives/createCssTransition.js.map +2 -2
  612. package/dist/headless/source/primitives/createDismissOnEscape.js +17 -0
  613. package/dist/headless/source/primitives/createDismissOnEscape.js.map +7 -0
  614. package/dist/headless/source/primitives/createFocusTrap.js +1 -0
  615. package/dist/headless/source/primitives/createFocusTrap.js.map +2 -2
  616. package/dist/headless/source/primitives/createHelperText.js +16 -0
  617. package/dist/headless/source/primitives/createHelperText.js.map +7 -0
  618. package/dist/headless/source/primitives/mergeStyle.js +15 -0
  619. package/dist/headless/source/primitives/mergeStyle.js.map +7 -0
  620. package/dist/headless/source/primitives/overlayLayer.js +10 -2
  621. package/dist/headless/source/primitives/overlayLayer.js.map +2 -2
  622. package/dist/headless/source/utils/controlProps.js +22 -0
  623. package/dist/headless/source/utils/controlProps.js.map +7 -0
  624. package/dist/headless/source/utils/ownClick.js +41 -0
  625. package/dist/headless/source/utils/ownClick.js.map +7 -0
  626. package/dist/headless/utils/controlProps.js +20 -0
  627. package/dist/headless/utils/controlProps.js.map +1 -0
  628. package/dist/headless/utils/ownClick.js +39 -0
  629. package/dist/headless/utils/ownClick.js.map +1 -0
  630. package/dist/index.d.ts +2 -0
  631. package/dist/index.js +224 -220
  632. package/dist/index.js.map +1 -1
  633. package/dist/primitives/createCssTransition.d.ts +6 -0
  634. package/dist/primitives/createCssTransition.js +31 -28
  635. package/dist/primitives/createCssTransition.js.map +1 -1
  636. package/dist/primitives/createDismissOnEscape.d.ts +12 -0
  637. package/dist/primitives/createDismissOnEscape.js +14 -0
  638. package/dist/primitives/createDismissOnEscape.js.map +1 -0
  639. package/dist/primitives/createFocusTrap.d.ts +2 -0
  640. package/dist/primitives/createFocusTrap.js +1 -0
  641. package/dist/primitives/createFocusTrap.js.map +1 -1
  642. package/dist/primitives/createHelperText.d.ts +26 -0
  643. package/dist/primitives/createHelperText.js +14 -0
  644. package/dist/primitives/createHelperText.js.map +1 -0
  645. package/dist/primitives/mergeStyle.d.ts +19 -0
  646. package/dist/primitives/mergeStyle.js +9 -0
  647. package/dist/primitives/mergeStyle.js.map +1 -0
  648. package/dist/primitives/overlayLayer.d.ts +15 -3
  649. package/dist/primitives/overlayLayer.js +14 -7
  650. package/dist/primitives/overlayLayer.js.map +1 -1
  651. package/dist/source/components/base/animateHeight/animateHeight.jsx +7 -11
  652. package/dist/source/components/base/animateHeight/animateHeight.jsx.map +1 -1
  653. package/dist/source/components/base/icon/icon.jsx +10 -12
  654. package/dist/source/components/base/icon/icon.jsx.map +1 -1
  655. package/dist/source/components/base/ripple/ripple.jsx +16 -4
  656. package/dist/source/components/base/ripple/ripple.jsx.map +1 -1
  657. package/dist/source/components/dataDisplay/avatar/avatar.jsx +14 -7
  658. package/dist/source/components/dataDisplay/avatar/avatar.jsx.map +1 -1
  659. package/dist/source/components/dataDisplay/card/card.jsx +31 -12
  660. package/dist/source/components/dataDisplay/card/card.jsx.map +1 -1
  661. package/dist/source/components/dataDisplay/carousel/carousel.jsx +9 -3
  662. package/dist/source/components/dataDisplay/carousel/carousel.jsx.map +1 -1
  663. package/dist/source/components/dataDisplay/chart/chart.jsx +5 -4
  664. package/dist/source/components/dataDisplay/chart/chart.jsx.map +1 -1
  665. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx +13 -3
  666. package/dist/source/components/dataDisplay/chat/chatIconButton.jsx.map +1 -1
  667. package/dist/source/components/dataDisplay/chat/chatLayout.jsx +6 -7
  668. package/dist/source/components/dataDisplay/chat/chatLayout.jsx.map +1 -1
  669. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx +5 -6
  670. package/dist/source/components/dataDisplay/chat/chatOverlayLayout.jsx.map +1 -1
  671. package/dist/source/components/dataDisplay/chip/chip.jsx +55 -19
  672. package/dist/source/components/dataDisplay/chip/chip.jsx.map +1 -1
  673. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx +14 -11
  674. package/dist/source/components/dataDisplay/chipGroup/chipGroup.jsx.map +1 -1
  675. package/dist/source/components/dataDisplay/dagView/dagLayout.js +383 -0
  676. package/dist/source/components/dataDisplay/dagView/dagLayout.js.map +7 -0
  677. package/dist/source/components/dataDisplay/dagView/dagView.jsx +641 -0
  678. package/dist/source/components/dataDisplay/dagView/dagView.jsx.map +1 -0
  679. package/dist/source/components/dataDisplay/dagView/index.js +10 -0
  680. package/dist/source/components/dataDisplay/dagView/index.js.map +7 -0
  681. package/dist/source/components/dataDisplay/dagView/panZoom.js +247 -0
  682. package/dist/source/components/dataDisplay/dagView/panZoom.js.map +7 -0
  683. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx +4 -6
  684. package/dist/source/components/dataDisplay/descriptionList/descriptionList.jsx.map +1 -1
  685. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx +83 -9
  686. package/dist/source/components/dataDisplay/expansionPanel/expansionPanel.jsx.map +1 -1
  687. package/dist/source/components/dataDisplay/kanban/kanban.jsx +20 -10
  688. package/dist/source/components/dataDisplay/kanban/kanban.jsx.map +1 -1
  689. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx +1 -1
  690. package/dist/source/components/dataDisplay/lazyImage/lazyImage.jsx.map +1 -1
  691. package/dist/source/components/dataDisplay/list/list.jsx +3 -3
  692. package/dist/source/components/dataDisplay/list/list.jsx.map +1 -1
  693. package/dist/source/components/dataDisplay/list/listItem.jsx +11 -10
  694. package/dist/source/components/dataDisplay/list/listItem.jsx.map +1 -1
  695. package/dist/source/components/dataDisplay/meter/meter.jsx +3 -2
  696. package/dist/source/components/dataDisplay/meter/meter.jsx.map +1 -1
  697. package/dist/source/components/dataDisplay/personChip/personChip.jsx +3 -2
  698. package/dist/source/components/dataDisplay/personChip/personChip.jsx.map +1 -1
  699. package/dist/source/components/dataDisplay/stat/stat.jsx +7 -8
  700. package/dist/source/components/dataDisplay/stat/stat.jsx.map +1 -1
  701. package/dist/source/components/dataDisplay/table/table.jsx +18 -1
  702. package/dist/source/components/dataDisplay/table/table.jsx.map +1 -1
  703. package/dist/source/components/dataDisplay/table/tableBody.jsx +6 -1
  704. package/dist/source/components/dataDisplay/table/tableBody.jsx.map +1 -1
  705. package/dist/source/components/dataDisplay/table/tableCell.jsx +13 -4
  706. package/dist/source/components/dataDisplay/table/tableCell.jsx.map +1 -1
  707. package/dist/source/components/dataDisplay/table/tableColumns.jsx +311 -0
  708. package/dist/source/components/dataDisplay/table/tableColumns.jsx.map +1 -0
  709. package/dist/source/components/dataDisplay/table/tableEntities.js +7 -0
  710. package/dist/source/components/dataDisplay/table/tableEntities.js.map +7 -0
  711. package/dist/source/components/dataDisplay/table/tableHead.jsx +14 -1
  712. package/dist/source/components/dataDisplay/table/tableHead.jsx.map +1 -1
  713. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx +51 -33
  714. package/dist/source/components/dataDisplay/table/tableHeadCell.jsx.map +1 -1
  715. package/dist/source/components/dataDisplay/table/tableHtmlText.js +140 -0
  716. package/dist/source/components/dataDisplay/table/tableHtmlText.js.map +7 -0
  717. package/dist/source/components/dataDisplay/table/tableRow.jsx +11 -5
  718. package/dist/source/components/dataDisplay/table/tableRow.jsx.map +1 -1
  719. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx +48 -19
  720. package/dist/source/components/dataDisplay/thumbCard/thumbCard.jsx.map +1 -1
  721. package/dist/source/components/dataDisplay/treeView/treeView.jsx +9 -2
  722. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  723. package/dist/source/components/dataDisplay/typography/typography.jsx +2 -6
  724. package/dist/source/components/dataDisplay/typography/typography.jsx.map +1 -1
  725. package/dist/source/components/feedBack/emptyState/emptyState.jsx +12 -2
  726. package/dist/source/components/feedBack/emptyState/emptyState.jsx.map +1 -1
  727. package/dist/source/components/feedBack/message/message.jsx +5 -4
  728. package/dist/source/components/feedBack/message/message.jsx.map +1 -1
  729. package/dist/source/components/feedBack/modal/modal.jsx +5 -2
  730. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  731. package/dist/source/components/feedBack/skeleton/skeleton.jsx +12 -5
  732. package/dist/source/components/feedBack/skeleton/skeleton.jsx.map +1 -1
  733. package/dist/source/components/feedBack/snackbar/snackbar.jsx +3 -3
  734. package/dist/source/components/feedBack/snackbar/snackbar.jsx.map +1 -1
  735. package/dist/source/components/feedBack/tooltip/tooltip.jsx +52 -5
  736. package/dist/source/components/feedBack/tooltip/tooltip.jsx.map +1 -1
  737. package/dist/source/components/inputs/button/button.jsx +8 -3
  738. package/dist/source/components/inputs/button/button.jsx.map +1 -1
  739. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx +4 -3
  740. package/dist/source/components/inputs/buttonGroups/buttonGroup.jsx.map +1 -1
  741. package/dist/source/components/inputs/checkbox/checkbox.jsx +27 -4
  742. package/dist/source/components/inputs/checkbox/checkbox.jsx.map +1 -1
  743. package/dist/source/components/inputs/datePicker/datePicker.jsx +13 -0
  744. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  745. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx +4 -1
  746. package/dist/source/components/inputs/datePicker/datePickerActionLabel.jsx.map +1 -1
  747. package/dist/source/components/inputs/datePicker/datePickerDay.jsx +12 -12
  748. package/dist/source/components/inputs/datePicker/datePickerDay.jsx.map +1 -1
  749. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx +13 -3
  750. package/dist/source/components/inputs/datePicker/datePickerIconButton.jsx.map +1 -1
  751. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +13 -0
  752. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  753. package/dist/source/components/inputs/floatingButton/floatingButton.jsx +12 -1
  754. package/dist/source/components/inputs/floatingButton/floatingButton.jsx.map +1 -1
  755. package/dist/source/components/inputs/radioButton/radioButton.jsx +16 -4
  756. package/dist/source/components/inputs/radioButton/radioButton.jsx.map +1 -1
  757. package/dist/source/components/inputs/rating/rating.jsx +49 -20
  758. package/dist/source/components/inputs/rating/rating.jsx.map +1 -1
  759. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +222 -61
  760. package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  761. package/dist/source/components/inputs/selectField/optionNavigation.js +51 -0
  762. package/dist/source/components/inputs/selectField/optionNavigation.js.map +7 -0
  763. package/dist/source/components/inputs/selectField/selectField.jsx +318 -92
  764. package/dist/source/components/inputs/selectField/selectField.jsx.map +1 -1
  765. package/dist/source/components/inputs/slider/slider.jsx +89 -18
  766. package/dist/source/components/inputs/slider/slider.jsx.map +1 -1
  767. package/dist/source/components/inputs/textField/textField.jsx +47 -9
  768. package/dist/source/components/inputs/textField/textField.jsx.map +1 -1
  769. package/dist/source/components/inputs/textField/textFieldWrapper.jsx +20 -6
  770. package/dist/source/components/inputs/textField/textFieldWrapper.jsx.map +1 -1
  771. package/dist/source/components/inputs/timePicker/timePicker.jsx +13 -0
  772. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  773. package/dist/source/components/inputs/toggle/toggle.jsx +14 -2
  774. package/dist/source/components/inputs/toggle/toggle.jsx.map +1 -1
  775. package/dist/source/components/inputs/valueSlider/valueSlider.jsx +7 -2
  776. package/dist/source/components/inputs/valueSlider/valueSlider.jsx.map +1 -1
  777. package/dist/source/components/layout/appLayout/appLayout.jsx +8 -6
  778. package/dist/source/components/layout/appLayout/appLayout.jsx.map +1 -1
  779. package/dist/source/components/layout/divider/divider.jsx +6 -5
  780. package/dist/source/components/layout/divider/divider.jsx.map +1 -1
  781. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx +17 -11
  782. package/dist/source/components/layout/floatingWindow/floatingWindow.jsx.map +1 -1
  783. package/dist/source/components/layout/grid/grid.jsx +20 -8
  784. package/dist/source/components/layout/grid/grid.jsx.map +1 -1
  785. package/dist/source/components/layout/page/page.jsx +10 -2
  786. package/dist/source/components/layout/page/page.jsx.map +1 -1
  787. package/dist/source/components/layout/pageHeader/pageHeader.jsx +3 -2
  788. package/dist/source/components/layout/pageHeader/pageHeader.jsx.map +1 -1
  789. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx +5 -5
  790. package/dist/source/components/layout/sectionHeader/sectionHeader.jsx.map +1 -1
  791. package/dist/source/components/layout/sheet/sheet.jsx +6 -8
  792. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  793. package/dist/source/components/layout/stack/stack.jsx +15 -11
  794. package/dist/source/components/layout/stack/stack.jsx.map +1 -1
  795. package/dist/source/components/navigation/appBar/appBar.jsx +3 -2
  796. package/dist/source/components/navigation/appBar/appBar.jsx.map +1 -1
  797. package/dist/source/components/navigation/bottomBar/bottomBar.jsx +48 -40
  798. package/dist/source/components/navigation/bottomBar/bottomBar.jsx.map +1 -1
  799. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx +9 -2
  800. package/dist/source/components/navigation/breadcrumbs/breadcrumbs.jsx.map +1 -1
  801. package/dist/source/components/navigation/menu/menu.jsx.map +1 -1
  802. package/dist/source/components/navigation/menu/menuComponent.jsx +3 -4
  803. package/dist/source/components/navigation/menu/menuComponent.jsx.map +1 -1
  804. package/dist/source/components/navigation/menu/menuContext.js.map +2 -2
  805. package/dist/source/components/navigation/menu/menuFloating.jsx +26 -4
  806. package/dist/source/components/navigation/menu/menuFloating.jsx.map +1 -1
  807. package/dist/source/components/navigation/menu/menuItem.jsx +22 -2
  808. package/dist/source/components/navigation/menu/menuItem.jsx.map +1 -1
  809. package/dist/source/components/navigation/menu/menuList.jsx +19 -7
  810. package/dist/source/components/navigation/menu/menuList.jsx.map +1 -1
  811. package/dist/source/components/navigation/menu/menuSubmenu.jsx +36 -4
  812. package/dist/source/components/navigation/menu/menuSubmenu.jsx.map +1 -1
  813. package/dist/source/components/navigation/pagination/pagination.jsx +4 -3
  814. package/dist/source/components/navigation/pagination/pagination.jsx.map +1 -1
  815. package/dist/source/components/navigation/sidebar/sidebar.jsx +1 -1
  816. package/dist/source/components/navigation/sidebar/sidebar.jsx.map +1 -1
  817. package/dist/source/components/navigation/stepper/stepper.jsx +14 -9
  818. package/dist/source/components/navigation/stepper/stepper.jsx.map +1 -1
  819. package/dist/source/components/navigation/tabs/tab/tab.jsx +12 -16
  820. package/dist/source/components/navigation/tabs/tab/tab.jsx.map +1 -1
  821. package/dist/source/components/navigation/tabs/tabs.jsx +34 -10
  822. package/dist/source/components/navigation/tabs/tabs.jsx.map +1 -1
  823. package/dist/source/components/navigation/tabs/tabsContext.js.map +2 -2
  824. package/dist/source/connects/rt/table/table.jsx +7 -2
  825. package/dist/source/connects/rt/table/table.jsx.map +1 -1
  826. package/dist/source/index.js +3 -0
  827. package/dist/source/index.js.map +2 -2
  828. package/dist/source/primitives/createCssTransition.js +10 -1
  829. package/dist/source/primitives/createCssTransition.js.map +2 -2
  830. package/dist/source/primitives/createDismissOnEscape.js +17 -0
  831. package/dist/source/primitives/createDismissOnEscape.js.map +7 -0
  832. package/dist/source/primitives/createFocusTrap.js +1 -0
  833. package/dist/source/primitives/createFocusTrap.js.map +2 -2
  834. package/dist/source/primitives/createHelperText.js +16 -0
  835. package/dist/source/primitives/createHelperText.js.map +7 -0
  836. package/dist/source/primitives/mergeStyle.js +15 -0
  837. package/dist/source/primitives/mergeStyle.js.map +7 -0
  838. package/dist/source/primitives/overlayLayer.js +10 -2
  839. package/dist/source/primitives/overlayLayer.js.map +2 -2
  840. package/dist/source/utils/controlProps.js +22 -0
  841. package/dist/source/utils/controlProps.js.map +7 -0
  842. package/dist/source/utils/ownClick.js +41 -0
  843. package/dist/source/utils/ownClick.js.map +7 -0
  844. package/dist/utils/controlProps.d.ts +17 -0
  845. package/dist/utils/controlProps.js +20 -0
  846. package/dist/utils/controlProps.js.map +1 -0
  847. package/dist/utils/ownClick.d.ts +16 -0
  848. package/dist/utils/ownClick.js +39 -0
  849. package/dist/utils/ownClick.js.map +1 -0
  850. package/package.json +9 -3
@@ -1 +1 @@
1
- {"version":3,"file":"floatingWindow.js","sources":["../../../../src/components/layout/floatingWindow/floatingWindow.tsx"],"sourcesContent":["import {\n type Accessor,\n For,\n type JSX,\n type ParentProps,\n Show,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { createId } from \"../../../primitives/createId\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface FloatingWindowPosition {\n x: number;\n y: number;\n}\n\nexport interface FloatingWindowSize {\n width: number;\n height: number;\n}\n\n/** The eight edge/corner resize directions. */\nexport type FloatingWindowResizeDir = \"n\" | \"s\" | \"e\" | \"w\" | \"ne\" | \"nw\" | \"se\" | \"sw\";\n\nexport interface FloatingWindowProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onResize\" | \"title\"> {\n /** Controlled open state of the window. */\n open: boolean;\n /** Title bar content. When given, the window is labelled by it. */\n title?: JSX.Element;\n /** Extra header controls, rendered before the built-in collapse/close buttons. */\n headerActions?: JSX.Element;\n\n /** Controlled top-left position in viewport px. */\n position?: FloatingWindowPosition;\n /** Initial position when uncontrolled. */\n defaultPosition?: FloatingWindowPosition;\n /** Called on every move frame and on viewport re-clamp, with the clamped position. */\n onPositionChange?: ((position: FloatingWindowPosition) => void) | undefined;\n /** Called once when a move gesture ends — the point at which to persist. */\n onMoveEnd?: ((position: FloatingWindowPosition) => void) | undefined;\n\n /** Controlled size in px. */\n size?: FloatingWindowSize;\n /** Initial size when uncontrolled. */\n defaultSize?: FloatingWindowSize;\n /** Called on every resize frame and on viewport re-clamp, with the clamped size. */\n onResize?: ((size: FloatingWindowSize) => void) | undefined;\n /** Called once when a resize gesture ends — the point at which to persist. */\n onResizeEnd?: ((size: FloatingWindowSize) => void) | undefined;\n\n /** Minimum width in px (default 200). */\n minWidth?: number;\n /** Minimum height in px (default 120). */\n minHeight?: number;\n /** Maximum width in px (default: viewport width). */\n maxWidth?: number;\n /** Maximum height in px (default: viewport height). */\n maxHeight?: number;\n /** Px of the window that must stay inside the viewport (default 56). */\n keepVisible?: number;\n /** Step in px for keyboard moving (default 24). */\n moveStep?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n\n /** Inline stacking order. The host owns z-order across several windows. */\n zIndex?: number;\n /** Called on pointerdown anywhere in the window, so the host can raise it. */\n onActivate?: (() => void) | undefined;\n\n /** Shade the window down to its title bar. */\n collapsed?: boolean;\n /** Initial collapsed state when uncontrolled. */\n defaultCollapsed?: boolean;\n onCollapsedChange?: ((collapsed: boolean) => void) | undefined;\n /** Render the built-in collapse toggle (default true). */\n collapsible?: boolean;\n\n /** Allow drag-to-move by the title bar (default true). */\n movable?: boolean;\n /** Allow drag-to-resize from the edges and corners (default true). */\n resizable?: boolean;\n /** Close on Escape while focus is inside the window (default false). */\n closeOnEsc?: boolean;\n onClose?: (() => void) | undefined;\n\n /** Accessible label for the move handle. */\n moveHandleAriaLabel?: string;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Accessible label for the close button. */\n closeAriaLabel?: string;\n /** Accessible label for the collapse toggle while expanded. */\n collapseAriaLabel?: string;\n /** Accessible label for the collapse toggle while collapsed. */\n expandAriaLabel?: string;\n\n \"aria-label\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\ninterface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\ninterface Viewport {\n width: number;\n height: number;\n}\n\n/** Sign vector per resize direction: how the pointer delta maps onto x/y/width/height. */\nconst RESIZE_DIRS: Record<FloatingWindowResizeDir, { dx: 0 | 1; dy: 0 | 1; dw: -1 | 0 | 1; dh: -1 | 0 | 1 }> = {\n n: { dx: 0, dy: 1, dw: 0, dh: -1 },\n s: { dx: 0, dy: 0, dw: 0, dh: 1 },\n e: { dx: 0, dy: 0, dw: 1, dh: 0 },\n w: { dx: 1, dy: 0, dw: -1, dh: 0 },\n ne: { dx: 0, dy: 1, dw: 1, dh: -1 },\n nw: { dx: 1, dy: 1, dw: -1, dh: -1 },\n se: { dx: 0, dy: 0, dw: 1, dh: 1 },\n sw: { dx: 1, dy: 0, dw: -1, dh: 1 },\n};\n\nconst RESIZE_ORDER: FloatingWindowResizeDir[] = [\"n\", \"s\", \"e\", \"w\", \"ne\", \"nw\", \"se\", \"sw\"];\n\nconst viewportOf = (): Viewport =>\n typeof window === \"undefined\" ? { width: 0, height: 0 } : { width: window.innerWidth, height: window.innerHeight };\n\n/**\n * Free-floating, non-modal window: draggable by its title bar, resizable from every\n * edge and corner, clamped so a grabbable strip always stays on screen.\n *\n * Unlike Sheet/Modal it is deliberately NOT an overlay layer: no backdrop, no focus\n * trap, no `data-smwb-overlay-layer`. Several windows are meant to be open and usable\n * at once alongside the page behind them, so it must not trap focus, swallow clicks,\n * or steal Escape from a Modal stacked above it. Stacking order is the host's job —\n * pass `zIndex` and raise the window from `onActivate`.\n */\nexport function FloatingWindow(props: ParentProps<FloatingWindowProps>): JSX.Element {\n const merged = mergeProps(\n {\n minWidth: 200,\n minHeight: 120,\n keepVisible: 56,\n moveStep: 24,\n resizeStep: 24,\n collapsible: true,\n movable: true,\n resizable: true,\n closeOnEsc: false,\n defaultPosition: { x: 24, y: 24 },\n defaultSize: { width: 360, height: 420 },\n defaultCollapsed: false,\n moveHandleAriaLabel: \"Move window\",\n resizeHandleAriaLabel: \"Resize window\",\n closeAriaLabel: \"Close window\",\n collapseAriaLabel: \"Collapse window\",\n expandAriaLabel: \"Expand window\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"open\",\n \"title\",\n \"headerActions\",\n \"position\",\n \"defaultPosition\",\n \"onPositionChange\",\n \"onMoveEnd\",\n \"size\",\n \"defaultSize\",\n \"onResize\",\n \"onResizeEnd\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\",\n \"keepVisible\",\n \"moveStep\",\n \"resizeStep\",\n \"zIndex\",\n \"onActivate\",\n \"collapsed\",\n \"defaultCollapsed\",\n \"onCollapsedChange\",\n \"collapsible\",\n \"movable\",\n \"resizable\",\n \"closeOnEsc\",\n \"onClose\",\n \"moveHandleAriaLabel\",\n \"resizeHandleAriaLabel\",\n \"closeAriaLabel\",\n \"collapseAriaLabel\",\n \"expandAriaLabel\",\n \"class\",\n \"style\",\n \"children\",\n \"ref\",\n ]);\n\n let rootEl: HTMLDivElement | undefined;\n const titleId = createId(undefined, \"smwb-floating-window-title\");\n\n const transition = createCssTransition({\n in: () => local.open,\n timeout: { enter: 120, exit: 120 },\n classNames: { enterDone: \"smwb-floating-window_entered\" },\n appear: true,\n });\n\n const [position, setPosition] = createControllableState<FloatingWindowPosition>({\n value: () => local.position,\n defaultValue: local.defaultPosition,\n onChange: (next) => local.onPositionChange?.(next),\n });\n const [size, setSize] = createControllableState<FloatingWindowSize>({\n value: () => local.size,\n defaultValue: local.defaultSize,\n onChange: (next) => local.onResize?.(next),\n });\n const [collapsed, setCollapsed] = createControllableState<boolean>({\n value: () => local.collapsed,\n defaultValue: local.defaultCollapsed,\n onChange: (next) => local.onCollapsedChange?.(next),\n });\n\n /**\n * Size first, then position against the clamped size. `y` is never negative, so the\n * title bar can never be dragged above the top edge and become ungrabbable — the gap\n * that makes an off-screen Sheet unrecoverable.\n */\n const clampRect = (rect: Rect, vp: Viewport): Rect => {\n const maxW = local.maxWidth ?? vp.width;\n const maxH = local.maxHeight ?? vp.height;\n const width = Math.max(local.minWidth, Math.min(maxW, rect.width));\n const height = Math.max(local.minHeight, Math.min(maxH, rect.height));\n const keep = Math.min(local.keepVisible, width);\n const x = Math.max(keep - width, Math.min(vp.width - keep, rect.x));\n const y = Math.max(0, Math.min(Math.max(0, vp.height - keep), rect.y));\n return { x, y, width, height };\n };\n\n /**\n * Where a window is placed before anyone touches it: fully inside the viewport when\n * it fits at all. `clampRect` alone only keeps `keepVisible` px reachable, which is\n * right for a window the user parked at an edge but wrong on opening — a 760px\n * default on a 375px phone opened a quarter of a screen off to the right.\n */\n const fitRect = (rect: Rect, vp: Viewport): Rect => {\n const clamped = clampRect(rect, vp);\n return {\n ...clamped,\n x: Math.max(0, Math.min(clamped.x, vp.width - clamped.width)),\n y: Math.max(0, Math.min(clamped.y, vp.height - clamped.height)),\n };\n };\n\n // Set by the first move/resize: from then on the user's placement wins and only the\n // reachability clamp applies, so a window can still be parked half off-screen.\n const [placed, setPlaced] = createSignal(false);\n\n /** The geometry actually rendered. Clamping the CONTROLLED value (not just drag\n * frames) means a rect restored from a larger monitor lands on screen immediately. */\n const rect: Accessor<Rect> = createMemo(() => {\n const current = { x: position().x, y: position().y, width: size().width, height: size().height };\n return placed() ? clampRect(current, viewportOf()) : fitRect(current, viewportOf());\n });\n\n const commitRect = (next: Rect, gesture = true): void => {\n if (gesture) setPlaced(true);\n const clamped = clampRect(next, viewportOf());\n const pos = position();\n const dim = size();\n if (clamped.x !== pos.x || clamped.y !== pos.y) setPosition({ x: clamped.x, y: clamped.y });\n if (clamped.width !== dim.width || clamped.height !== dim.height) {\n setSize({ width: clamped.width, height: clamped.height });\n }\n };\n\n // A closed window forgets that it was moved: opening it again should land on screen\n // like the first time, whatever the viewport is now.\n createEffect(() => {\n if (!local.open) setPlaced(false);\n });\n\n // Re-clamp when the viewport shrinks, so a window parked near an edge on a large\n // screen stays reachable on a small one. Sheet has no such listener, which is why a\n // dragged sheet survives a viewport shrink oversized.\n createEffect(() => {\n if (isServer || !local.open) return;\n const onViewportResize = (): void => commitRect(rect(), false);\n window.addEventListener(\"resize\", onViewportResize);\n onCleanup(() => window.removeEventListener(\"resize\", onViewportResize));\n });\n\n // Escape only while focus is inside this window. FloatingWindow is not an overlay\n // layer, so `isTopOverlayLayer` (document order, not z-index) would be the wrong\n // arbiter with several windows open.\n createEffect(() => {\n if (isServer || !local.open || !local.closeOnEsc || !local.onClose) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n if (event.key !== \"Escape\") return;\n if (!rootEl || !rootEl.contains(document.activeElement)) return;\n local.onClose?.();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n const activate = (): void => {\n local.onActivate?.();\n // Only when focus is elsewhere — an unconditional focus() would steal the caret\n // from an input inside the window on every raise.\n if (rootEl && !rootEl.contains(document.activeElement)) rootEl.focus({ preventScroll: true });\n };\n\n // Pointer capture keeps `pointermove` flowing to the handle even outside it, so there\n // are no document-level listeners to leak (Sheet's pattern, not screenDivider's).\n let move: { px: number; py: number; x: number; y: number } | null = null;\n\n const onMoveHandlePointerDown = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n if (!local.movable) return;\n // Header buttons stay clickable.\n if ((event.target as Element | null)?.closest(\"button,[data-no-drag]\")) return;\n event.preventDefault();\n const current = rect();\n move = { px: event.clientX, py: event.clientY, x: current.x, y: current.y };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* best-effort */\n }\n };\n\n const onMoveHandlePointerMove = (event: PointerEvent): void => {\n if (!move) return;\n const current = rect();\n commitRect({\n ...current,\n x: move.x + event.clientX - move.px,\n y: move.y + event.clientY - move.py,\n });\n };\n\n const endMove = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n if (move) {\n move = null;\n const current = rect();\n local.onMoveEnd?.({ x: current.x, y: current.y });\n }\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n };\n\n let resize: { dir: FloatingWindowResizeDir; px: number; py: number; rect: Rect } | null = null;\n\n const onResizePointerDown = (\n dir: FloatingWindowResizeDir,\n event: PointerEvent & { currentTarget: HTMLDivElement }\n ): void => {\n event.preventDefault();\n event.stopPropagation();\n resize = { dir, px: event.clientX, py: event.clientY, rect: rect() };\n // Grabbing a resize grip is an interaction with the window, so raise it too. (The root\n // listener cannot be relied on here — see the `on:pointerdown` note on the root.)\n activate();\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* best-effort */\n }\n };\n\n const onResizePointerMove = (event: PointerEvent): void => {\n if (!resize) return;\n const sign = RESIZE_DIRS[resize.dir];\n const dx = event.clientX - resize.px;\n const dy = event.clientY - resize.py;\n const start = resize.rect;\n // A west/north drag moves the origin AND changes the size, so width is recomputed from\n // the moved edge rather than from the delta alone — otherwise dragging past minWidth\n // would keep sliding the window instead of stopping at the minimum.\n //\n // The size must be clamped to BOTH bounds here, before the origin is derived from it.\n // Clamping only the minimum and leaving the maximum to commitRect's own clamp would\n // compute the origin from a width that then gets shrunk, so the edge the user is NOT\n // dragging would drift away under the cursor.\n const vp = viewportOf();\n const maxW = local.maxWidth ?? vp.width;\n const maxH = local.maxHeight ?? vp.height;\n const width = Math.min(maxW, Math.max(local.minWidth, start.width + sign.dw * dx));\n const height = Math.min(maxH, Math.max(local.minHeight, start.height + sign.dh * dy));\n commitRect({\n x: sign.dx ? start.x + start.width - width : start.x,\n y: sign.dy ? start.y + start.height - height : start.y,\n width,\n height,\n });\n };\n\n const endResize = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n if (resize) {\n resize = null;\n const current = rect();\n local.onResizeEnd?.({ width: current.width, height: current.height });\n }\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n };\n\n /** A keypress is a COMPLETE gesture, so it reports move/resize end as well as the\n * per-frame change — otherwise a consumer that persists only on `*End` (the documented\n * way to avoid thrashing storage during a drag) would silently never save\n * keyboard-driven geometry. */\n const endKeyboardGesture = (resized: boolean): void => {\n const current = rect();\n if (resized) local.onResizeEnd?.({ width: current.width, height: current.height });\n else local.onMoveEnd?.({ x: current.x, y: current.y });\n };\n\n /** Arrows move; Shift+Arrows resize. */\n const onMoveHandleKeyDown: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n const current = rect();\n const step = event.shiftKey ? local.resizeStep : local.moveStep;\n const delta: Record<string, [number, number]> = {\n ArrowLeft: [-step, 0],\n ArrowRight: [step, 0],\n ArrowUp: [0, -step],\n ArrowDown: [0, step],\n };\n const d = delta[event.key];\n if (!d) return;\n event.preventDefault();\n if (event.shiftKey) {\n commitRect({ ...current, width: current.width + d[0], height: current.height + d[1] });\n } else {\n commitRect({ ...current, x: current.x + d[0], y: current.y + d[1] });\n }\n endKeyboardGesture(event.shiftKey);\n };\n\n const onResizeHandleKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n const current = rect();\n const vp = viewportOf();\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n const dir = event.key === \"ArrowRight\" ? 1 : -1;\n commitRect({ ...current, width: current.width + dir * local.resizeStep });\n } else if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n const dir = event.key === \"ArrowDown\" ? 1 : -1;\n commitRect({ ...current, height: current.height + dir * local.resizeStep });\n } else if (event.key === \"Home\") {\n event.preventDefault();\n commitRect({ ...current, width: local.minWidth, height: local.minHeight });\n } else if (event.key === \"End\") {\n event.preventDefault();\n commitRect({ ...current, width: local.maxWidth ?? vp.width, height: local.maxHeight ?? vp.height });\n } else {\n return;\n }\n endKeyboardGesture(true);\n };\n\n const toggleCollapsed = (): void => setCollapsed((prev) => !prev);\n\n return (\n <Show when={transition.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n {...rest}\n ref={mergeRefs(local.ref, (el) => (rootEl = el as HTMLDivElement))}\n data-testid=\"floating-window\"\n role=\"dialog\"\n tabindex={-1}\n aria-labelledby={local.title ? titleId : undefined}\n class={cn(\"smwb-floating-window\", local.class, transition.classes(), {\n \"smwb-collapsed\": collapsed(),\n })}\n style={{\n left: `${rect().x}px`,\n top: `${rect().y}px`,\n width: `${rect().width}px`,\n ...(collapsed() ? {} : { height: `${rect().height}px` }),\n ...(local.zIndex === undefined ? {} : { \"z-index\": local.zIndex }),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n }}\n // `on:pointerdown` (native listener), NOT `onPointerDown` (delegated). Solid's\n // delegated dispatcher walks `_$host`, the LOGICAL owner chain, and Portal sets\n // `_$host` to its marker's parent — so an event raised inside content a consumer\n // portals into this window never reaches this handler, and clicking such a panel\n // would silently fail to raise the window. A native listener follows the real DOM\n // tree, where the portaled container genuinely is a descendant.\n on:pointerdown={activate}\n >\n <div\n class=\"smwb-floating-window__header\"\n data-testid=\"floating-window-header\"\n onPointerDown={onMoveHandlePointerDown}\n onPointerMove={onMoveHandlePointerMove}\n onPointerUp={endMove}\n onPointerCancel={endMove}\n >\n {/* The move affordance is the grip, not the header: the header also hosts the\n collapse/close buttons and any consumer `headerActions`, and nesting those\n inside a role=\"button\" is an a11y violation. Pointer drag still works\n anywhere on the header; only the keyboard affordance lives here. */}\n <span\n class=\"smwb-floating-window__grip\"\n data-testid=\"floating-window-move\"\n role=\"button\"\n tabindex={0}\n aria-label={local.moveHandleAriaLabel}\n onKeyDown={onMoveHandleKeyDown}\n >\n <Icon name=\"drag_indicator\" />\n </span>\n <Show when={local.title}>\n <span class=\"smwb-floating-window__title\" id={titleId}>\n {local.title}\n </span>\n </Show>\n <div class=\"smwb-floating-window__actions\" data-no-drag>\n {local.headerActions}\n <Show when={local.collapsible}>\n <button\n type=\"button\"\n class=\"smwb-floating-window__action\"\n data-testid=\"floating-window-collapse\"\n aria-label={collapsed() ? local.expandAriaLabel : local.collapseAriaLabel}\n aria-expanded={!collapsed()}\n onClick={toggleCollapsed}\n >\n <Icon name={collapsed() ? \"open_in_full\" : \"close_fullscreen\"} />\n </button>\n </Show>\n <Show when={local.onClose}>\n <button\n type=\"button\"\n class=\"smwb-floating-window__action\"\n data-testid=\"floating-window-close\"\n aria-label={local.closeAriaLabel}\n onClick={() => local.onClose?.()}\n >\n <Icon name=\"close\" />\n </button>\n </Show>\n </div>\n </div>\n\n <Show when={!collapsed()}>\n <div class=\"smwb-floating-window__body\" data-testid=\"floating-window-body\">\n {local.children}\n </div>\n </Show>\n\n <Show when={local.resizable && !collapsed()}>\n <For each={RESIZE_ORDER}>\n {(dir) => (\n <div\n class={cn(\"smwb-floating-window__resize\", `smwb-floating-window__resize_${dir}`)}\n data-testid={`floating-window-resize-${dir}`}\n // Only the south-east grip is reachable by keyboard: eight tab stops per\n // window would make Tab unusable once a few windows are open.\n {...(dir === \"se\"\n ? {\n role: \"separator\",\n tabindex: 0,\n \"aria-label\": local.resizeHandleAriaLabel,\n \"aria-valuemin\": local.minWidth,\n \"aria-valuemax\": Math.round(local.maxWidth ?? viewportOf().width),\n \"aria-valuenow\": Math.round(rect().width),\n onKeyDown: onResizeHandleKeyDown,\n }\n : { \"aria-hidden\": true, tabindex: -1 })}\n onPointerDown={(event) => onResizePointerDown(dir, event)}\n onPointerMove={onResizePointerMove}\n onPointerUp={endResize}\n onPointerCancel={endResize}\n />\n )}\n </For>\n </Show>\n </div>\n </Portal>\n </Show>\n );\n}\n\nexport default FloatingWindow;\n"],"names":["RESIZE_DIRS","n","dx","dy","dw","dh","s","e","w","ne","nw","se","sw","RESIZE_ORDER","viewportOf","window","width","height","innerWidth","innerHeight","FloatingWindow","props","merged","mergeProps","minWidth","minHeight","keepVisible","moveStep","resizeStep","collapsible","movable","resizable","closeOnEsc","defaultPosition","x","y","defaultSize","defaultCollapsed","moveHandleAriaLabel","resizeHandleAriaLabel","closeAriaLabel","collapseAriaLabel","expandAriaLabel","local","rest","splitProps","rootEl","titleId","createId","undefined","transition","createCssTransition","in","open","timeout","enter","exit","classNames","enterDone","appear","position","setPosition","createControllableState","value","defaultValue","onChange","next","onPositionChange","size","setSize","onResize","collapsed","setCollapsed","onCollapsedChange","clampRect","rect","vp","maxW","maxWidth","maxH","maxHeight","Math","max","min","keep","fitRect","clamped","placed","setPlaced","createSignal","createMemo","current","commitRect","gesture","pos","dim","createEffect","isServer","onViewportResize","addEventListener","onCleanup","removeEventListener","onClose","onKeyDown","event","key","contains","document","activeElement","activate","onActivate","focus","preventScroll","move","onMoveHandlePointerDown","target","closest","preventDefault","px","clientX","py","clientY","currentTarget","setPointerCapture","pointerId","onMoveHandlePointerMove","endMove","onMoveEnd","hasPointerCapture","releasePointerCapture","resize","onResizePointerDown","dir","stopPropagation","onResizePointerMove","sign","start","endResize","onResizeEnd","endKeyboardGesture","resized","onMoveHandleKeyDown","step","shiftKey","d","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","onResizeHandleKeyDown","toggleCollapsed","prev","_$createComponent","Show","when","mounted","children","Portal","mount","body","_el$","_tmpl$5","_el$2","firstChild","_el$3","_el$5","nextSibling","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","title","cn","class","classes","style","left","top","zIndex","$$pointerup","$$pointermove","$$pointerdown","$$keydown","_$insert","Icon","name","_el$4","_tmpl$","_$setAttribute","headerActions","_el$6","_tmpl$2","$$click","_$effect","_p$","_v$","_v$2","t","_el$7","_tmpl$3","_el$8","_tmpl$4","_$memo","For","each","_el$9","_tmpl$6","role","tabindex","round","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"floatingWindow.js","sources":["../../../../src/components/layout/floatingWindow/floatingWindow.tsx"],"sourcesContent":["import {\n type Accessor,\n For,\n type JSX,\n type ParentProps,\n Show,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Icon } from \"../../base/icon\";\nimport { hasOverlayLayerAbove } from \"../../../primitives/overlayLayer\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { createControllableState } from \"../../../primitives/createControllableState\";\nimport { createId } from \"../../../primitives/createId\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport { mergeStyle } from \"../../../primitives/mergeStyle\";\n\nexport interface FloatingWindowPosition {\n x: number;\n y: number;\n}\n\nexport interface FloatingWindowSize {\n width: number;\n height: number;\n}\n\n/** The eight edge/corner resize directions. */\nexport type FloatingWindowResizeDir = \"n\" | \"s\" | \"e\" | \"w\" | \"ne\" | \"nw\" | \"se\" | \"sw\";\n\nexport interface FloatingWindowProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onResize\" | \"title\"> {\n /** Controlled open state of the window. */\n open: boolean;\n /** Title bar content. When given, the window is labelled by it. */\n title?: JSX.Element;\n /** Extra header controls, rendered before the built-in collapse/close buttons. */\n headerActions?: JSX.Element;\n\n /** Controlled top-left position in viewport px. */\n position?: FloatingWindowPosition;\n /** Initial position when uncontrolled. */\n defaultPosition?: FloatingWindowPosition;\n /** Called on every move frame and on viewport re-clamp, with the clamped position. */\n onPositionChange?: ((position: FloatingWindowPosition) => void) | undefined;\n /** Called once when a move gesture ends — the point at which to persist. */\n onMoveEnd?: ((position: FloatingWindowPosition) => void) | undefined;\n\n /** Controlled size in px. */\n size?: FloatingWindowSize;\n /** Initial size when uncontrolled. */\n defaultSize?: FloatingWindowSize;\n /** Called on every resize frame and on viewport re-clamp, with the clamped size. */\n onResize?: ((size: FloatingWindowSize) => void) | undefined;\n /** Called once when a resize gesture ends — the point at which to persist. */\n onResizeEnd?: ((size: FloatingWindowSize) => void) | undefined;\n\n /** Minimum width in px (default 200). */\n minWidth?: number;\n /** Minimum height in px (default 120). */\n minHeight?: number;\n /** Maximum width in px (default: viewport width). */\n maxWidth?: number;\n /** Maximum height in px (default: viewport height). */\n maxHeight?: number;\n /** Px of the window that must stay inside the viewport (default 56). */\n keepVisible?: number;\n /** Step in px for keyboard moving (default 24). */\n moveStep?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n\n /** Inline stacking order. The host owns z-order across several windows. */\n zIndex?: number;\n /** Called on pointerdown anywhere in the window, so the host can raise it. */\n onActivate?: (() => void) | undefined;\n\n /** Shade the window down to its title bar. */\n collapsed?: boolean;\n /** Initial collapsed state when uncontrolled. */\n defaultCollapsed?: boolean;\n onCollapsedChange?: ((collapsed: boolean) => void) | undefined;\n /** Render the built-in collapse toggle (default true). */\n collapsible?: boolean;\n\n /** Allow drag-to-move by the title bar (default true). */\n movable?: boolean;\n /** Allow drag-to-resize from the edges and corners (default true). */\n resizable?: boolean;\n /** Close on Escape while focus is inside the window (default false). */\n closeOnEsc?: boolean;\n onClose?: (() => void) | undefined;\n\n /** Accessible label for the move handle. */\n moveHandleAriaLabel?: string;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Accessible label for the close button. */\n closeAriaLabel?: string;\n /** Accessible label for the collapse toggle while expanded. */\n collapseAriaLabel?: string;\n /** Accessible label for the collapse toggle while collapsed. */\n expandAriaLabel?: string;\n\n \"aria-label\"?: string;\n /** Test id of the window's root `<div>`; `floating-window` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\ninterface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\ninterface Viewport {\n width: number;\n height: number;\n}\n\n/** Sign vector per resize direction: how the pointer delta maps onto x/y/width/height. */\nconst RESIZE_DIRS: Record<FloatingWindowResizeDir, { dx: 0 | 1; dy: 0 | 1; dw: -1 | 0 | 1; dh: -1 | 0 | 1 }> = {\n n: { dx: 0, dy: 1, dw: 0, dh: -1 },\n s: { dx: 0, dy: 0, dw: 0, dh: 1 },\n e: { dx: 0, dy: 0, dw: 1, dh: 0 },\n w: { dx: 1, dy: 0, dw: -1, dh: 0 },\n ne: { dx: 0, dy: 1, dw: 1, dh: -1 },\n nw: { dx: 1, dy: 1, dw: -1, dh: -1 },\n se: { dx: 0, dy: 0, dw: 1, dh: 1 },\n sw: { dx: 1, dy: 0, dw: -1, dh: 1 },\n};\n\nconst RESIZE_ORDER: FloatingWindowResizeDir[] = [\"n\", \"s\", \"e\", \"w\", \"ne\", \"nw\", \"se\", \"sw\"];\n\nconst viewportOf = (): Viewport =>\n typeof window === \"undefined\" ? { width: 0, height: 0 } : { width: window.innerWidth, height: window.innerHeight };\n\n/**\n * Free-floating, non-modal window: draggable by its title bar, resizable from every\n * edge and corner, clamped so a grabbable strip always stays on screen.\n *\n * Unlike Sheet/Modal it is deliberately NOT an overlay layer: no backdrop, no focus\n * trap, no `data-smwb-overlay-layer`. Several windows are meant to be open and usable\n * at once alongside the page behind them, so it must not trap focus, swallow clicks,\n * or steal Escape from a Modal stacked above it. Stacking order is the host's job —\n * pass `zIndex` and raise the window from `onActivate`.\n */\nexport function FloatingWindow(props: ParentProps<FloatingWindowProps>): JSX.Element {\n const merged = mergeProps(\n {\n minWidth: 200,\n minHeight: 120,\n keepVisible: 56,\n moveStep: 24,\n resizeStep: 24,\n collapsible: true,\n movable: true,\n resizable: true,\n closeOnEsc: false,\n defaultPosition: { x: 24, y: 24 },\n defaultSize: { width: 360, height: 420 },\n defaultCollapsed: false,\n moveHandleAriaLabel: \"Move window\",\n resizeHandleAriaLabel: \"Resize window\",\n closeAriaLabel: \"Close window\",\n collapseAriaLabel: \"Collapse window\",\n expandAriaLabel: \"Expand window\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"open\",\n \"title\",\n \"headerActions\",\n \"position\",\n \"defaultPosition\",\n \"onPositionChange\",\n \"onMoveEnd\",\n \"size\",\n \"defaultSize\",\n \"onResize\",\n \"onResizeEnd\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\",\n \"keepVisible\",\n \"moveStep\",\n \"resizeStep\",\n \"zIndex\",\n \"onActivate\",\n \"collapsed\",\n \"defaultCollapsed\",\n \"onCollapsedChange\",\n \"collapsible\",\n \"movable\",\n \"resizable\",\n \"closeOnEsc\",\n \"onClose\",\n \"moveHandleAriaLabel\",\n \"resizeHandleAriaLabel\",\n \"closeAriaLabel\",\n \"collapseAriaLabel\",\n \"expandAriaLabel\",\n \"class\",\n \"style\",\n \"children\",\n \"ref\",\n \"data-testid\",\n ]);\n\n let rootEl: HTMLDivElement | undefined;\n const titleId = createId(undefined, \"smwb-floating-window-title\");\n\n const transition = createCssTransition({\n in: () => local.open,\n timeout: { enter: 120, exit: 120 },\n classNames: { enterDone: \"smwb-floating-window_entered\" },\n appear: true,\n });\n\n const [position, setPosition] = createControllableState<FloatingWindowPosition>({\n value: () => local.position,\n defaultValue: local.defaultPosition,\n onChange: (next) => local.onPositionChange?.(next),\n });\n const [size, setSize] = createControllableState<FloatingWindowSize>({\n value: () => local.size,\n defaultValue: local.defaultSize,\n onChange: (next) => local.onResize?.(next),\n });\n const [collapsed, setCollapsed] = createControllableState<boolean>({\n value: () => local.collapsed,\n defaultValue: local.defaultCollapsed,\n onChange: (next) => local.onCollapsedChange?.(next),\n });\n\n /**\n * Size first, then position against the clamped size. `y` is never negative, so the\n * title bar can never be dragged above the top edge and become ungrabbable — the gap\n * that makes an off-screen Sheet unrecoverable.\n */\n const clampRect = (rect: Rect, vp: Viewport): Rect => {\n const maxW = local.maxWidth ?? vp.width;\n const maxH = local.maxHeight ?? vp.height;\n const width = Math.max(local.minWidth, Math.min(maxW, rect.width));\n const height = Math.max(local.minHeight, Math.min(maxH, rect.height));\n const keep = Math.min(local.keepVisible, width);\n const x = Math.max(keep - width, Math.min(vp.width - keep, rect.x));\n const y = Math.max(0, Math.min(Math.max(0, vp.height - keep), rect.y));\n return { x, y, width, height };\n };\n\n /**\n * Where a window is placed before anyone touches it: fully inside the viewport when\n * it fits at all. `clampRect` alone only keeps `keepVisible` px reachable, which is\n * right for a window the user parked at an edge but wrong on opening — a 760px\n * default on a 375px phone opened a quarter of a screen off to the right.\n */\n const fitRect = (rect: Rect, vp: Viewport): Rect => {\n const clamped = clampRect(rect, vp);\n return {\n ...clamped,\n x: Math.max(0, Math.min(clamped.x, vp.width - clamped.width)),\n y: Math.max(0, Math.min(clamped.y, vp.height - clamped.height)),\n };\n };\n\n // Set by the first move/resize: from then on the user's placement wins and only the\n // reachability clamp applies, so a window can still be parked half off-screen.\n const [placed, setPlaced] = createSignal(false);\n\n /** The geometry actually rendered. Clamping the CONTROLLED value (not just drag\n * frames) means a rect restored from a larger monitor lands on screen immediately. */\n const rect: Accessor<Rect> = createMemo(() => {\n const current = { x: position().x, y: position().y, width: size().width, height: size().height };\n return placed() ? clampRect(current, viewportOf()) : fitRect(current, viewportOf());\n });\n\n const commitRect = (next: Rect, gesture = true): void => {\n if (gesture) setPlaced(true);\n const clamped = clampRect(next, viewportOf());\n const pos = position();\n const dim = size();\n if (clamped.x !== pos.x || clamped.y !== pos.y) setPosition({ x: clamped.x, y: clamped.y });\n if (clamped.width !== dim.width || clamped.height !== dim.height) {\n setSize({ width: clamped.width, height: clamped.height });\n }\n };\n\n // A closed window forgets that it was moved: opening it again should land on screen\n // like the first time, whatever the viewport is now.\n createEffect(() => {\n if (!local.open) setPlaced(false);\n });\n\n // Re-clamp when the viewport shrinks, so a window parked near an edge on a large\n // screen stays reachable on a small one. Sheet has no such listener, which is why a\n // dragged sheet survives a viewport shrink oversized.\n createEffect(() => {\n if (isServer || !local.open) return;\n const onViewportResize = (): void => commitRect(rect(), false);\n window.addEventListener(\"resize\", onViewportResize);\n onCleanup(() => window.removeEventListener(\"resize\", onViewportResize));\n });\n\n // Escape only while focus is inside this window. FloatingWindow is not an overlay\n // layer, so `isTopOverlayLayer` (document order, not z-index) would be the wrong\n // arbiter with several windows open. An open layer above it, such as a select menu\n // opened from inside it, takes the Escape first; other windows never do.\n createEffect(() => {\n if (isServer || !local.open || !local.closeOnEsc || !local.onClose) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n // An Escape handled inside the window, e.g. by a menu closing on it, is not the window's.\n if (event.defaultPrevented) return;\n if (event.key !== \"Escape\") return;\n if (!rootEl || !rootEl.contains(document.activeElement) || hasOverlayLayerAbove(rootEl)) return;\n local.onClose?.();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n const activate = (): void => {\n local.onActivate?.();\n // Only when focus is elsewhere — an unconditional focus() would steal the caret\n // from an input inside the window on every raise.\n if (rootEl && !rootEl.contains(document.activeElement)) rootEl.focus({ preventScroll: true });\n };\n\n // Pointer capture keeps `pointermove` flowing to the handle even outside it, so there\n // are no document-level listeners to leak (Sheet's pattern, not screenDivider's).\n let move: { px: number; py: number; x: number; y: number } | null = null;\n\n const onMoveHandlePointerDown = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n if (!local.movable) return;\n // Header buttons stay clickable.\n if ((event.target as Element | null)?.closest(\"button,[data-no-drag]\")) return;\n event.preventDefault();\n const current = rect();\n move = { px: event.clientX, py: event.clientY, x: current.x, y: current.y };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* best-effort */\n }\n };\n\n const onMoveHandlePointerMove = (event: PointerEvent): void => {\n if (!move) return;\n const current = rect();\n commitRect({\n ...current,\n x: move.x + event.clientX - move.px,\n y: move.y + event.clientY - move.py,\n });\n };\n\n const endMove = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n if (move) {\n move = null;\n const current = rect();\n local.onMoveEnd?.({ x: current.x, y: current.y });\n }\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n };\n\n let resize: { dir: FloatingWindowResizeDir; px: number; py: number; rect: Rect } | null = null;\n\n const onResizePointerDown = (\n dir: FloatingWindowResizeDir,\n event: PointerEvent & { currentTarget: HTMLDivElement }\n ): void => {\n event.preventDefault();\n event.stopPropagation();\n resize = { dir, px: event.clientX, py: event.clientY, rect: rect() };\n // Grabbing a resize grip is an interaction with the window, so raise it too. (The root\n // listener cannot be relied on here — see the `on:pointerdown` note on the root.)\n activate();\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* best-effort */\n }\n };\n\n const onResizePointerMove = (event: PointerEvent): void => {\n if (!resize) return;\n const sign = RESIZE_DIRS[resize.dir];\n const dx = event.clientX - resize.px;\n const dy = event.clientY - resize.py;\n const start = resize.rect;\n // A west/north drag moves the origin AND changes the size, so width is recomputed from\n // the moved edge rather than from the delta alone — otherwise dragging past minWidth\n // would keep sliding the window instead of stopping at the minimum.\n //\n // The size must be clamped to BOTH bounds here, before the origin is derived from it.\n // Clamping only the minimum and leaving the maximum to commitRect's own clamp would\n // compute the origin from a width that then gets shrunk, so the edge the user is NOT\n // dragging would drift away under the cursor.\n const vp = viewportOf();\n const maxW = local.maxWidth ?? vp.width;\n const maxH = local.maxHeight ?? vp.height;\n const width = Math.min(maxW, Math.max(local.minWidth, start.width + sign.dw * dx));\n const height = Math.min(maxH, Math.max(local.minHeight, start.height + sign.dh * dy));\n commitRect({\n x: sign.dx ? start.x + start.width - width : start.x,\n y: sign.dy ? start.y + start.height - height : start.y,\n width,\n height,\n });\n };\n\n const endResize = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n if (resize) {\n resize = null;\n const current = rect();\n local.onResizeEnd?.({ width: current.width, height: current.height });\n }\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n };\n\n /** A keypress is a COMPLETE gesture, so it reports move/resize end as well as the\n * per-frame change — otherwise a consumer that persists only on `*End` (the documented\n * way to avoid thrashing storage during a drag) would silently never save\n * keyboard-driven geometry. */\n const endKeyboardGesture = (resized: boolean): void => {\n const current = rect();\n if (resized) local.onResizeEnd?.({ width: current.width, height: current.height });\n else local.onMoveEnd?.({ x: current.x, y: current.y });\n };\n\n /** Arrows move; Shift+Arrows resize. */\n const onMoveHandleKeyDown: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n const current = rect();\n const step = event.shiftKey ? local.resizeStep : local.moveStep;\n const delta: Record<string, [number, number]> = {\n ArrowLeft: [-step, 0],\n ArrowRight: [step, 0],\n ArrowUp: [0, -step],\n ArrowDown: [0, step],\n };\n const d = delta[event.key];\n if (!d) return;\n event.preventDefault();\n if (event.shiftKey) {\n commitRect({ ...current, width: current.width + d[0], height: current.height + d[1] });\n } else {\n commitRect({ ...current, x: current.x + d[0], y: current.y + d[1] });\n }\n endKeyboardGesture(event.shiftKey);\n };\n\n const onResizeHandleKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n const current = rect();\n const vp = viewportOf();\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n const dir = event.key === \"ArrowRight\" ? 1 : -1;\n commitRect({ ...current, width: current.width + dir * local.resizeStep });\n } else if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n const dir = event.key === \"ArrowDown\" ? 1 : -1;\n commitRect({ ...current, height: current.height + dir * local.resizeStep });\n } else if (event.key === \"Home\") {\n event.preventDefault();\n commitRect({ ...current, width: local.minWidth, height: local.minHeight });\n } else if (event.key === \"End\") {\n event.preventDefault();\n commitRect({ ...current, width: local.maxWidth ?? vp.width, height: local.maxHeight ?? vp.height });\n } else {\n return;\n }\n endKeyboardGesture(true);\n };\n\n const toggleCollapsed = (): void => setCollapsed((prev) => !prev);\n\n return (\n <Show when={transition.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n {...rest}\n ref={mergeRefs(local.ref, (el) => (rootEl = el as HTMLDivElement))}\n data-testid={local[\"data-testid\"] ?? \"floating-window\"}\n role=\"dialog\"\n tabindex={-1}\n // Labelled by its title when it has one; without (undefined), the\n // caller's own stays.\n aria-labelledby={local.title ? titleId : undefined}\n class={cn(\"smwb-floating-window\", local.class, transition.classes(), {\n \"smwb-collapsed\": collapsed(),\n })}\n style={mergeStyle(\n {\n left: `${rect().x}px`,\n top: `${rect().y}px`,\n width: `${rect().width}px`,\n ...(collapsed() ? {} : { height: `${rect().height}px` }),\n ...(local.zIndex === undefined ? {} : { \"z-index\": local.zIndex }),\n },\n local.style\n )}\n // `on:pointerdown` (native listener), NOT `onPointerDown` (delegated). Solid's\n // delegated dispatcher walks `_$host`, the LOGICAL owner chain, and Portal sets\n // `_$host` to its marker's parent — so an event raised inside content a consumer\n // portals into this window never reaches this handler, and clicking such a panel\n // would silently fail to raise the window. A native listener follows the real DOM\n // tree, where the portaled container genuinely is a descendant.\n on:pointerdown={activate}\n >\n <div\n class=\"smwb-floating-window__header\"\n data-testid=\"floating-window-header\"\n onPointerDown={onMoveHandlePointerDown}\n onPointerMove={onMoveHandlePointerMove}\n onPointerUp={endMove}\n onPointerCancel={endMove}\n >\n {/* The move affordance is the grip, not the header: the header also hosts the\n collapse/close buttons and any consumer `headerActions`, and nesting those\n inside a role=\"button\" is an a11y violation. Pointer drag still works\n anywhere on the header; only the keyboard affordance lives here. */}\n <span\n class=\"smwb-floating-window__grip\"\n data-testid=\"floating-window-move\"\n role=\"button\"\n tabindex={0}\n aria-label={local.moveHandleAriaLabel}\n onKeyDown={onMoveHandleKeyDown}\n >\n <Icon name=\"drag_indicator\" />\n </span>\n <Show when={local.title}>\n <span class=\"smwb-floating-window__title\" id={titleId}>\n {local.title}\n </span>\n </Show>\n <div class=\"smwb-floating-window__actions\" data-no-drag>\n {local.headerActions}\n <Show when={local.collapsible}>\n <button\n type=\"button\"\n class=\"smwb-floating-window__action\"\n data-testid=\"floating-window-collapse\"\n aria-label={collapsed() ? local.expandAriaLabel : local.collapseAriaLabel}\n aria-expanded={!collapsed()}\n onClick={toggleCollapsed}\n >\n <Icon name={collapsed() ? \"open_in_full\" : \"close_fullscreen\"} />\n </button>\n </Show>\n <Show when={local.onClose}>\n <button\n type=\"button\"\n class=\"smwb-floating-window__action\"\n data-testid=\"floating-window-close\"\n aria-label={local.closeAriaLabel}\n onClick={() => local.onClose?.()}\n >\n <Icon name=\"close\" />\n </button>\n </Show>\n </div>\n </div>\n\n <Show when={!collapsed()}>\n <div class=\"smwb-floating-window__body\" data-testid=\"floating-window-body\">\n {local.children}\n </div>\n </Show>\n\n <Show when={local.resizable && !collapsed()}>\n <For each={RESIZE_ORDER}>\n {(dir) => (\n <div\n class={cn(\"smwb-floating-window__resize\", `smwb-floating-window__resize_${dir}`)}\n data-testid={`floating-window-resize-${dir}`}\n // Only the south-east grip is reachable by keyboard: eight tab stops per\n // window would make Tab unusable once a few windows are open.\n {...(dir === \"se\"\n ? {\n role: \"separator\",\n tabindex: 0,\n \"aria-label\": local.resizeHandleAriaLabel,\n \"aria-valuemin\": local.minWidth,\n \"aria-valuemax\": Math.round(local.maxWidth ?? viewportOf().width),\n \"aria-valuenow\": Math.round(rect().width),\n onKeyDown: onResizeHandleKeyDown,\n }\n : { \"aria-hidden\": true, tabindex: -1 })}\n onPointerDown={(event) => onResizePointerDown(dir, event)}\n onPointerMove={onResizePointerMove}\n onPointerUp={endResize}\n onPointerCancel={endResize}\n />\n )}\n </For>\n </Show>\n </div>\n </Portal>\n </Show>\n );\n}\n\nexport default FloatingWindow;\n"],"names":["RESIZE_DIRS","n","dx","dy","dw","dh","s","e","w","ne","nw","se","sw","RESIZE_ORDER","viewportOf","window","width","height","innerWidth","innerHeight","FloatingWindow","props","merged","mergeProps","minWidth","minHeight","keepVisible","moveStep","resizeStep","collapsible","movable","resizable","closeOnEsc","defaultPosition","x","y","defaultSize","defaultCollapsed","moveHandleAriaLabel","resizeHandleAriaLabel","closeAriaLabel","collapseAriaLabel","expandAriaLabel","local","rest","splitProps","rootEl","titleId","createId","undefined","transition","createCssTransition","in","open","timeout","enter","exit","classNames","enterDone","appear","position","setPosition","createControllableState","value","defaultValue","onChange","next","onPositionChange","size","setSize","onResize","collapsed","setCollapsed","onCollapsedChange","clampRect","rect","vp","maxW","maxWidth","maxH","maxHeight","Math","max","min","keep","fitRect","clamped","placed","setPlaced","createSignal","createMemo","current","commitRect","gesture","pos","dim","createEffect","isServer","onViewportResize","addEventListener","onCleanup","removeEventListener","onClose","onKeyDown","event","defaultPrevented","key","contains","document","activeElement","hasOverlayLayerAbove","activate","onActivate","focus","preventScroll","move","onMoveHandlePointerDown","target","closest","preventDefault","px","clientX","py","clientY","currentTarget","setPointerCapture","pointerId","onMoveHandlePointerMove","endMove","onMoveEnd","hasPointerCapture","releasePointerCapture","resize","onResizePointerDown","dir","stopPropagation","onResizePointerMove","sign","start","endResize","onResizeEnd","endKeyboardGesture","resized","onMoveHandleKeyDown","step","shiftKey","d","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","onResizeHandleKeyDown","toggleCollapsed","prev","_$createComponent","Show","when","mounted","children","Portal","mount","body","_el$","_tmpl$5","_el$2","firstChild","_el$3","_el$5","nextSibling","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","title","cn","class","classes","style","mergeStyle","left","top","zIndex","$$pointerup","$$pointermove","$$pointerdown","$$keydown","_$insert","Icon","name","_el$4","_tmpl$","_$setAttribute","headerActions","_el$6","_tmpl$2","$$click","_$effect","_p$","_v$","_v$2","t","_el$7","_tmpl$3","_el$8","_tmpl$4","_$memo","For","each","_el$9","_tmpl$6","role","tabindex","round","_$delegateEvents"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { type JSX } from "solid-js";
2
2
  import { type Ref } from "../../../primitives/mergeRefs";
3
3
  type DivProps = JSX.HTMLAttributes<HTMLDivElement> & {
4
+ /** Test id of the root `<div>`; `grid` unless given. */
5
+ "data-testid"?: string | undefined;
4
6
  ref?: Ref<HTMLDivElement>;
5
7
  };
6
8
  export declare function Grid(props: DivProps): JSX.Element;
@@ -21,6 +23,8 @@ export interface RowProps extends JSX.HTMLAttributes<HTMLDivElement> {
21
23
  alignItems?: (typeof alignItemsOptions)[number];
22
24
  direction?: (typeof directionOptions)[number];
23
25
  spacing?: number;
26
+ /** Test id of the root `<div>`; `grid-row` unless given. */
27
+ "data-testid"?: string | undefined;
24
28
  ref?: Ref<HTMLDivElement>;
25
29
  }
26
30
  export declare function Row(props: RowProps): JSX.Element;
@@ -37,6 +41,8 @@ export interface ColumnProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "h
37
41
  xlOffset?: OffsetType;
38
42
  /** Hide column: boolean (always) or per breakpoint `{ xs:true, md:false }`. */
39
43
  hidden?: ResponsiveBool;
44
+ /** Test id of the root `<div>`; `grid-col` unless given. */
45
+ "data-testid"?: string | undefined;
40
46
  ref?: Ref<HTMLDivElement>;
41
47
  }
42
48
  export declare function Column(props: ColumnProps): JSX.Element;
@@ -46,6 +52,8 @@ export interface ContainerProps extends JSX.HTMLAttributes<HTMLDivElement> {
46
52
  maxWidth?: ContainerMaxWidth;
47
53
  /** Remove horizontal gutters. */
48
54
  disableGutters?: boolean;
55
+ /** Test id of the root `<div>`; `grid-container` unless given. */
56
+ "data-testid"?: string | undefined;
49
57
  ref?: Ref<HTMLDivElement>;
50
58
  }
51
59
  export declare function Container(props: ContainerProps): JSX.Element;
@@ -1,4 +1,4 @@
1
- import { use as f, spread as a, mergeProps as c, template as _ } from "solid-js/web";
1
+ import { use as l, spread as f, mergeProps as c, template as _ } from "solid-js/web";
2
2
  import '../../../assets/styles/less/components/grid/grid.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
4
  import { splitProps as m } from "solid-js";
@@ -6,79 +6,87 @@ import d from "clsx";
6
6
  import { mergeRefs as u } from "../../../primitives/mergeRefs.js";
7
7
  var g = /* @__PURE__ */ _("<div>");
8
8
  function h(r) {
9
- const [s, e] = m(r, ["class", "ref"]);
9
+ const [t, s] = m(r, ["class", "ref", "data-testid"]);
10
10
  return (() => {
11
- var n = g(), t = u(s.ref);
12
- return typeof t == "function" && f(t, n), a(n, c(e, {
13
- "data-testid": "grid",
11
+ var n = g(), e = u(t.ref);
12
+ return typeof e == "function" && l(e, n), f(n, c(s, {
13
+ get "data-testid"() {
14
+ return t["data-testid"] ?? "grid";
15
+ },
14
16
  get class() {
15
- return d("smwb-grid", s.class);
17
+ return d("smwb-grid", t.class);
16
18
  }
17
19
  }), !1, !1), n;
18
20
  })();
19
21
  }
20
22
  const w = ["wrap", "nowrap", "wrap-reverse"], p = ["flex-start", "center", "flex-end", "space-between", "space-around", "space-evenly"], b = ["flex-start", "center", "flex-end", "stretch", "baseline"], x = ["row", "row-reverse", "column", "column-reverse"];
21
23
  function W(r) {
22
- const [s, e] = m(r, ["class", "justifyContent", "alignItems", "direction", "wrap", "spacing", "ref"]), n = () => {
23
- const t = s.justifyContent && p.includes(s.justifyContent) && s.justifyContent !== "flex-start", o = s.alignItems && b.includes(s.alignItems) && s.alignItems !== "flex-start", i = s.direction && x.includes(s.direction) && s.direction !== "row", l = s.wrap && w.includes(s.wrap) && s.wrap !== "wrap";
24
- return d("smwb-grid__row", s.class, {
25
- [`smwb-grid__row--spacing-${s.spacing}`]: s.spacing,
26
- [`smwb-grid__row--justifyContent-${s.justifyContent}`]: t,
27
- [`smwb-grid__row--alignItems-${s.alignItems}`]: o,
28
- [`smwb-grid__row--direction-${s.direction}`]: i,
29
- [`smwb-grid__row--${s.wrap}`]: l
24
+ const [t, s] = m(r, ["class", "justifyContent", "alignItems", "direction", "wrap", "spacing", "ref", "data-testid"]), n = () => {
25
+ const e = t.justifyContent && p.includes(t.justifyContent) && t.justifyContent !== "flex-start", i = t.alignItems && b.includes(t.alignItems) && t.alignItems !== "flex-start", o = t.direction && x.includes(t.direction) && t.direction !== "row", a = t.wrap && w.includes(t.wrap) && t.wrap !== "wrap";
26
+ return d("smwb-grid__row", t.class, {
27
+ [`smwb-grid__row--spacing-${t.spacing}`]: t.spacing,
28
+ [`smwb-grid__row--justifyContent-${t.justifyContent}`]: e,
29
+ [`smwb-grid__row--alignItems-${t.alignItems}`]: i,
30
+ [`smwb-grid__row--direction-${t.direction}`]: o,
31
+ [`smwb-grid__row--${t.wrap}`]: a
30
32
  });
31
33
  };
32
34
  return (() => {
33
- var t = g(), o = u(s.ref);
34
- return typeof o == "function" && f(o, t), a(t, c(e, {
35
- "data-testid": "grid-row",
35
+ var e = g(), i = u(t.ref);
36
+ return typeof i == "function" && l(i, e), f(e, c(s, {
37
+ get "data-testid"() {
38
+ return t["data-testid"] ?? "grid-row";
39
+ },
36
40
  get class() {
37
41
  return n();
38
42
  }
39
- }), !1, !1), t;
43
+ }), !1, !1), e;
40
44
  })();
41
45
  }
42
46
  const $ = (r) => r === void 0 ? {} : typeof r == "boolean" ? {
43
47
  "smwb-grid__column--hidden": r
44
- } : Object.keys(r).reduce((s, e) => (s[`smwb-grid__column--hidden-${e}`] = r[e] === !0, s[`smwb-grid__column--visible-${e}`] = r[e] === !1, s), {});
48
+ } : Object.keys(r).reduce((t, s) => (t[`smwb-grid__column--hidden-${s}`] = r[s] === !0, t[`smwb-grid__column--visible-${s}`] = r[s] === !1, t), {});
45
49
  function G(r) {
46
- const [s, e] = m(r, ["class", "xs", "sm", "md", "lg", "xl", "xsOffset", "smOffset", "mdOffset", "lgOffset", "xlOffset", "hidden", "ref"]), n = () => d("smwb-grid__column", s.class, {
47
- [`smwb-grid__column--xs-${s.xs}`]: s.xs,
48
- [`smwb-grid__column--sm-${s.sm}`]: s.sm,
49
- [`smwb-grid__column--md-${s.md}`]: s.md,
50
- [`smwb-grid__column--lg-${s.lg}`]: s.lg,
51
- [`smwb-grid__column--xl-${s.xl}`]: s.xl,
52
- [`smwb-grid__column--xs-offset-${s.xsOffset}`]: s.xsOffset,
53
- [`smwb-grid__column--sm-offset-${s.smOffset}`]: s.smOffset,
54
- [`smwb-grid__column--md-offset-${s.mdOffset}`]: s.mdOffset,
55
- [`smwb-grid__column--lg-offset-${s.lgOffset}`]: s.lgOffset,
56
- [`smwb-grid__column--xl-offset-${s.xlOffset}`]: s.xlOffset,
57
- ...$(s.hidden)
50
+ const [t, s] = m(r, ["class", "xs", "sm", "md", "lg", "xl", "xsOffset", "smOffset", "mdOffset", "lgOffset", "xlOffset", "hidden", "ref", "data-testid"]), n = () => d("smwb-grid__column", t.class, {
51
+ [`smwb-grid__column--xs-${t.xs}`]: t.xs,
52
+ [`smwb-grid__column--sm-${t.sm}`]: t.sm,
53
+ [`smwb-grid__column--md-${t.md}`]: t.md,
54
+ [`smwb-grid__column--lg-${t.lg}`]: t.lg,
55
+ [`smwb-grid__column--xl-${t.xl}`]: t.xl,
56
+ [`smwb-grid__column--xs-offset-${t.xsOffset}`]: t.xsOffset,
57
+ [`smwb-grid__column--sm-offset-${t.smOffset}`]: t.smOffset,
58
+ [`smwb-grid__column--md-offset-${t.mdOffset}`]: t.mdOffset,
59
+ [`smwb-grid__column--lg-offset-${t.lgOffset}`]: t.lgOffset,
60
+ [`smwb-grid__column--xl-offset-${t.xlOffset}`]: t.xlOffset,
61
+ ...$(t.hidden)
58
62
  });
59
63
  return (() => {
60
- var t = g(), o = u(s.ref);
61
- return typeof o == "function" && f(o, t), a(t, c(e, {
64
+ var e = g(), i = u(t.ref);
65
+ return typeof i == "function" && l(i, e), f(e, c(s, {
62
66
  get class() {
63
67
  return n();
64
68
  },
65
- "data-testid": "grid-col"
66
- }), !1, !1), t;
69
+ get "data-testid"() {
70
+ return t["data-testid"] ?? "grid-col";
71
+ }
72
+ }), !1, !1), e;
67
73
  })();
68
74
  }
69
75
  function P(r) {
70
- const s = r, [e, n] = m(s, ["class", "maxWidth", "disableGutters", "ref"]), t = () => e.maxWidth ?? "lg", o = () => d("smwb-container", {
71
- [`smwb-container--${t()}`]: t() !== !1,
72
- "smwb-container--gutterless": e.disableGutters
73
- }, e.class);
76
+ const t = r, [s, n] = m(t, ["class", "maxWidth", "disableGutters", "ref", "data-testid"]), e = () => s.maxWidth ?? "lg", i = () => d("smwb-container", {
77
+ [`smwb-container--${e()}`]: e() !== !1,
78
+ "smwb-container--gutterless": s.disableGutters
79
+ }, s.class);
74
80
  return (() => {
75
- var i = g(), l = u(e.ref);
76
- return typeof l == "function" && f(l, i), a(i, c(n, {
77
- "data-testid": "grid-container",
81
+ var o = g(), a = u(s.ref);
82
+ return typeof a == "function" && l(a, o), f(o, c(n, {
83
+ get "data-testid"() {
84
+ return s["data-testid"] ?? "grid-container";
85
+ },
78
86
  get class() {
79
- return o();
87
+ return i();
80
88
  }
81
- }), !1, !1), i;
89
+ }), !1, !1), o;
82
90
  })();
83
91
  }
84
92
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sources":["../../../../src/components/layout/grid/grid.tsx"],"sourcesContent":["import { type JSX, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\ntype DivProps = JSX.HTMLAttributes<HTMLDivElement> & { ref?: Ref<HTMLDivElement> };\n\nexport function Grid(props: DivProps): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"ref\"]);\n return <div {...rest} ref={mergeRefs(local.ref)} data-testid=\"grid\" class={cn(\"smwb-grid\", local.class)} />;\n}\n\nexport type ColumnSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n/** Column width per breakpoint: 1–12 grid units, `\"auto\"` (fit content) or `true` (fill remaining). */\nexport type BreakpointType = ColumnSpan | \"auto\" | true;\n/** Column offset (empty leading columns) per breakpoint: 0–11. */\nexport type OffsetType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;\nexport type Breakpoint = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type ResponsiveBool = boolean | Partial<Record<Breakpoint, boolean>>;\n\nexport const wrapOptions = [\"wrap\", \"nowrap\", \"wrap-reverse\"] as const;\nexport const justifyContentOptions = [\n \"flex-start\",\n \"center\",\n \"flex-end\",\n \"space-between\",\n \"space-around\",\n \"space-evenly\",\n] as const;\nexport const alignItemsOptions = [\"flex-start\", \"center\", \"flex-end\", \"stretch\", \"baseline\"] as const;\nexport const directionOptions = [\"row\", \"row-reverse\", \"column\", \"column-reverse\"] as const;\n\nexport interface RowProps extends JSX.HTMLAttributes<HTMLDivElement> {\n wrap?: (typeof wrapOptions)[number];\n justifyContent?: (typeof justifyContentOptions)[number];\n alignItems?: (typeof alignItemsOptions)[number];\n direction?: (typeof directionOptions)[number];\n spacing?: number;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function Row(props: RowProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"justifyContent\",\n \"alignItems\",\n \"direction\",\n \"wrap\",\n \"spacing\",\n \"ref\",\n ]);\n\n const classes = (): string => {\n const isJustifyContent =\n local.justifyContent && justifyContentOptions.includes(local.justifyContent) && local.justifyContent !== \"flex-start\";\n const isAlignItems = local.alignItems && alignItemsOptions.includes(local.alignItems) && local.alignItems !== \"flex-start\";\n const isDirection = local.direction && directionOptions.includes(local.direction) && local.direction !== \"row\";\n const isFlexWrap = local.wrap && wrapOptions.includes(local.wrap) && local.wrap !== \"wrap\";\n return cn(\"smwb-grid__row\", local.class, {\n [`smwb-grid__row--spacing-${local.spacing}`]: local.spacing,\n [`smwb-grid__row--justifyContent-${local.justifyContent}`]: isJustifyContent,\n [`smwb-grid__row--alignItems-${local.alignItems}`]: isAlignItems,\n [`smwb-grid__row--direction-${local.direction}`]: isDirection,\n [`smwb-grid__row--${local.wrap}`]: isFlexWrap,\n });\n };\n\n return <div {...rest} ref={mergeRefs(local.ref)} data-testid=\"grid-row\" class={classes()} />;\n}\n\nexport interface ColumnProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"hidden\"> {\n xs?: BreakpointType;\n sm?: BreakpointType;\n md?: BreakpointType;\n lg?: BreakpointType;\n xl?: BreakpointType;\n xsOffset?: OffsetType;\n smOffset?: OffsetType;\n mdOffset?: OffsetType;\n lgOffset?: OffsetType;\n xlOffset?: OffsetType;\n /** Hide column: boolean (always) or per breakpoint `{ xs:true, md:false }`. */\n hidden?: ResponsiveBool;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst hiddenClasses = (hidden?: ResponsiveBool): Record<string, boolean> => {\n if (hidden === undefined) {\n return {};\n }\n if (typeof hidden === \"boolean\") {\n return { \"smwb-grid__column--hidden\": hidden };\n }\n return (Object.keys(hidden) as Breakpoint[]).reduce<Record<string, boolean>>((acc, bp) => {\n acc[`smwb-grid__column--hidden-${bp}`] = hidden[bp] === true;\n acc[`smwb-grid__column--visible-${bp}`] = hidden[bp] === false;\n return acc;\n }, {});\n};\n\nexport function Column(props: ColumnProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"xsOffset\",\n \"smOffset\",\n \"mdOffset\",\n \"lgOffset\",\n \"xlOffset\",\n \"hidden\",\n \"ref\",\n ]);\n\n const classes = (): string =>\n cn(\"smwb-grid__column\", local.class, {\n [`smwb-grid__column--xs-${local.xs}`]: local.xs,\n [`smwb-grid__column--sm-${local.sm}`]: local.sm,\n [`smwb-grid__column--md-${local.md}`]: local.md,\n [`smwb-grid__column--lg-${local.lg}`]: local.lg,\n [`smwb-grid__column--xl-${local.xl}`]: local.xl,\n [`smwb-grid__column--xs-offset-${local.xsOffset}`]: local.xsOffset,\n [`smwb-grid__column--sm-offset-${local.smOffset}`]: local.smOffset,\n [`smwb-grid__column--md-offset-${local.mdOffset}`]: local.mdOffset,\n [`smwb-grid__column--lg-offset-${local.lgOffset}`]: local.lgOffset,\n [`smwb-grid__column--xl-offset-${local.xlOffset}`]: local.xlOffset,\n ...hiddenClasses(local.hidden),\n });\n\n return <div {...rest} ref={mergeRefs(local.ref)} class={classes()} data-testid=\"grid-col\" />;\n}\n\nexport type ContainerMaxWidth = \"sm\" | \"md\" | \"lg\" | \"xl\" | false;\nexport interface ContainerProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /** Max-width breakpoint cap; `false` = fluid full width. */\n maxWidth?: ContainerMaxWidth;\n /** Remove horizontal gutters. */\n disableGutters?: boolean;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function Container(props: ContainerProps): JSX.Element {\n const merged = props;\n const [local, rest] = splitProps(merged, [\"class\", \"maxWidth\", \"disableGutters\", \"ref\"]);\n const maxWidth = (): ContainerMaxWidth => local.maxWidth ?? \"lg\";\n const classes = (): string =>\n cn(\n \"smwb-container\",\n {\n [`smwb-container--${maxWidth()}`]: maxWidth() !== false,\n \"smwb-container--gutterless\": local.disableGutters,\n },\n local.class\n );\n return <div {...rest} ref={mergeRefs(local.ref)} data-testid=\"grid-container\" class={classes()} />;\n}\n"],"names":["Grid","props","local","rest","splitProps","_el$","_tmpl$","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","wrapOptions","justifyContentOptions","alignItemsOptions","directionOptions","Row","classes","isJustifyContent","justifyContent","includes","isAlignItems","alignItems","isDirection","direction","isFlexWrap","wrap","spacing","_el$2","_ref$2","hiddenClasses","hidden","undefined","Object","keys","reduce","acc","bp","Column","xs","sm","md","lg","xl","xsOffset","smOffset","mdOffset","lgOffset","xlOffset","_el$3","_ref$3","Container","merged","maxWidth","disableGutters","_el$4","_ref$4"],"mappings":"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"}
1
+ {"version":3,"file":"grid.js","sources":["../../../../src/components/layout/grid/grid.tsx"],"sourcesContent":["import { type JSX, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\ntype DivProps = JSX.HTMLAttributes<HTMLDivElement> & {\n /** Test id of the root `<div>`; `grid` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n};\n\nexport function Grid(props: DivProps): JSX.Element {\n const [local, rest] = splitProps(props, [\"class\", \"ref\", \"data-testid\"]);\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"grid\"}\n class={cn(\"smwb-grid\", local.class)}\n />\n );\n}\n\nexport type ColumnSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n/** Column width per breakpoint: 1–12 grid units, `\"auto\"` (fit content) or `true` (fill remaining). */\nexport type BreakpointType = ColumnSpan | \"auto\" | true;\n/** Column offset (empty leading columns) per breakpoint: 0–11. */\nexport type OffsetType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;\nexport type Breakpoint = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type ResponsiveBool = boolean | Partial<Record<Breakpoint, boolean>>;\n\nexport const wrapOptions = [\"wrap\", \"nowrap\", \"wrap-reverse\"] as const;\nexport const justifyContentOptions = [\n \"flex-start\",\n \"center\",\n \"flex-end\",\n \"space-between\",\n \"space-around\",\n \"space-evenly\",\n] as const;\nexport const alignItemsOptions = [\"flex-start\", \"center\", \"flex-end\", \"stretch\", \"baseline\"] as const;\nexport const directionOptions = [\"row\", \"row-reverse\", \"column\", \"column-reverse\"] as const;\n\nexport interface RowProps extends JSX.HTMLAttributes<HTMLDivElement> {\n wrap?: (typeof wrapOptions)[number];\n justifyContent?: (typeof justifyContentOptions)[number];\n alignItems?: (typeof alignItemsOptions)[number];\n direction?: (typeof directionOptions)[number];\n spacing?: number;\n /** Test id of the root `<div>`; `grid-row` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function Row(props: RowProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"justifyContent\",\n \"alignItems\",\n \"direction\",\n \"wrap\",\n \"spacing\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const classes = (): string => {\n const isJustifyContent =\n local.justifyContent && justifyContentOptions.includes(local.justifyContent) && local.justifyContent !== \"flex-start\";\n const isAlignItems = local.alignItems && alignItemsOptions.includes(local.alignItems) && local.alignItems !== \"flex-start\";\n const isDirection = local.direction && directionOptions.includes(local.direction) && local.direction !== \"row\";\n const isFlexWrap = local.wrap && wrapOptions.includes(local.wrap) && local.wrap !== \"wrap\";\n return cn(\"smwb-grid__row\", local.class, {\n [`smwb-grid__row--spacing-${local.spacing}`]: local.spacing,\n [`smwb-grid__row--justifyContent-${local.justifyContent}`]: isJustifyContent,\n [`smwb-grid__row--alignItems-${local.alignItems}`]: isAlignItems,\n [`smwb-grid__row--direction-${local.direction}`]: isDirection,\n [`smwb-grid__row--${local.wrap}`]: isFlexWrap,\n });\n };\n\n return (\n <div {...rest} ref={mergeRefs(local.ref)} data-testid={local[\"data-testid\"] ?? \"grid-row\"} class={classes()} />\n );\n}\n\nexport interface ColumnProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"hidden\"> {\n xs?: BreakpointType;\n sm?: BreakpointType;\n md?: BreakpointType;\n lg?: BreakpointType;\n xl?: BreakpointType;\n xsOffset?: OffsetType;\n smOffset?: OffsetType;\n mdOffset?: OffsetType;\n lgOffset?: OffsetType;\n xlOffset?: OffsetType;\n /** Hide column: boolean (always) or per breakpoint `{ xs:true, md:false }`. */\n hidden?: ResponsiveBool;\n /** Test id of the root `<div>`; `grid-col` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst hiddenClasses = (hidden?: ResponsiveBool): Record<string, boolean> => {\n if (hidden === undefined) {\n return {};\n }\n if (typeof hidden === \"boolean\") {\n return { \"smwb-grid__column--hidden\": hidden };\n }\n return (Object.keys(hidden) as Breakpoint[]).reduce<Record<string, boolean>>((acc, bp) => {\n acc[`smwb-grid__column--hidden-${bp}`] = hidden[bp] === true;\n acc[`smwb-grid__column--visible-${bp}`] = hidden[bp] === false;\n return acc;\n }, {});\n};\n\nexport function Column(props: ColumnProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"xsOffset\",\n \"smOffset\",\n \"mdOffset\",\n \"lgOffset\",\n \"xlOffset\",\n \"hidden\",\n \"ref\",\n \"data-testid\",\n ]);\n\n const classes = (): string =>\n cn(\"smwb-grid__column\", local.class, {\n [`smwb-grid__column--xs-${local.xs}`]: local.xs,\n [`smwb-grid__column--sm-${local.sm}`]: local.sm,\n [`smwb-grid__column--md-${local.md}`]: local.md,\n [`smwb-grid__column--lg-${local.lg}`]: local.lg,\n [`smwb-grid__column--xl-${local.xl}`]: local.xl,\n [`smwb-grid__column--xs-offset-${local.xsOffset}`]: local.xsOffset,\n [`smwb-grid__column--sm-offset-${local.smOffset}`]: local.smOffset,\n [`smwb-grid__column--md-offset-${local.mdOffset}`]: local.mdOffset,\n [`smwb-grid__column--lg-offset-${local.lgOffset}`]: local.lgOffset,\n [`smwb-grid__column--xl-offset-${local.xlOffset}`]: local.xlOffset,\n ...hiddenClasses(local.hidden),\n });\n\n return (\n <div {...rest} ref={mergeRefs(local.ref)} class={classes()} data-testid={local[\"data-testid\"] ?? \"grid-col\"} />\n );\n}\n\nexport type ContainerMaxWidth = \"sm\" | \"md\" | \"lg\" | \"xl\" | false;\nexport interface ContainerProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /** Max-width breakpoint cap; `false` = fluid full width. */\n maxWidth?: ContainerMaxWidth;\n /** Remove horizontal gutters. */\n disableGutters?: boolean;\n /** Test id of the root `<div>`; `grid-container` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function Container(props: ContainerProps): JSX.Element {\n const merged = props;\n const [local, rest] = splitProps(merged, [\"class\", \"maxWidth\", \"disableGutters\", \"ref\", \"data-testid\"]);\n const maxWidth = (): ContainerMaxWidth => local.maxWidth ?? \"lg\";\n const classes = (): string =>\n cn(\n \"smwb-container\",\n {\n [`smwb-container--${maxWidth()}`]: maxWidth() !== false,\n \"smwb-container--gutterless\": local.disableGutters,\n },\n local.class\n );\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"grid-container\"}\n class={classes()}\n />\n );\n}\n"],"names":["Grid","props","local","rest","splitProps","_el$","_tmpl$","_ref$","mergeRefs","ref","_$use","_$spread","_$mergeProps","cn","class","wrapOptions","justifyContentOptions","alignItemsOptions","directionOptions","Row","classes","isJustifyContent","justifyContent","includes","isAlignItems","alignItems","isDirection","direction","isFlexWrap","wrap","spacing","_el$2","_ref$2","hiddenClasses","hidden","undefined","Object","keys","reduce","acc","bp","Column","xs","sm","md","lg","xl","xsOffset","smOffset","mdOffset","lgOffset","xlOffset","_el$3","_ref$3","Container","merged","maxWidth","disableGutters","_el$4","_ref$4"],"mappings":"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"}
@@ -8,6 +8,8 @@ export interface PageProps extends JSX.HTMLAttributes<HTMLElement> {
8
8
  disableGutters?: boolean;
9
9
  /** Render as a different element (default `main`). */
10
10
  component?: string;
11
+ /** Test id of the root element; `page` unless given. */
12
+ "data-testid"?: string | undefined;
11
13
  ref?: Ref<HTMLElement>;
12
14
  }
13
15
  export declare function Page(props: ParentProps<PageProps>): JSX.Element;
@@ -1,33 +1,35 @@
1
1
  import { createComponent as o, Dynamic as n, mergeProps as i, insert as p, template as l } from "solid-js/web";
2
2
  import '../../../assets/styles/less/components/page/page.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
3
  /* empty css */
4
- import { mergeProps as c, splitProps as g } from "solid-js";
5
- import d from "clsx";
4
+ import { mergeProps as c, splitProps as d } from "solid-js";
5
+ import g from "clsx";
6
6
  import { mergeRefs as f } from "../../../primitives/mergeRefs.js";
7
7
  var u = /* @__PURE__ */ l("<div class=smwb-page__inner>");
8
8
  function v(s) {
9
- const m = c({
9
+ const a = c({
10
10
  maxWidth: "lg",
11
11
  disableGutters: !1
12
- }, s), [e, a] = g(m, ["maxWidth", "disableGutters", "component", "class", "children", "ref"]);
12
+ }, s), [e, m] = d(a, ["maxWidth", "disableGutters", "component", "class", "children", "ref", "data-testid"]);
13
13
  return o(n, i({
14
14
  get component() {
15
15
  return e.component ?? "main";
16
16
  }
17
- }, a, {
18
- ref(r) {
19
- var t = f(e.ref);
20
- typeof t == "function" && t(r);
17
+ }, m, {
18
+ ref(t) {
19
+ var r = f(e.ref);
20
+ typeof r == "function" && r(t);
21
+ },
22
+ get "data-testid"() {
23
+ return e["data-testid"] ?? "page";
21
24
  },
22
- "data-testid": "page",
23
25
  get class() {
24
- return d("smwb-page", `smwb-page_max-${e.maxWidth}`, {
26
+ return g("smwb-page", `smwb-page_max-${e.maxWidth}`, {
25
27
  "smwb-page_gutterless": e.disableGutters
26
28
  }, e.class);
27
29
  },
28
30
  get children() {
29
- var r = u();
30
- return p(r, () => e.children), r;
31
+ var t = u();
32
+ return p(t, () => e.children), t;
31
33
  }
32
34
  }));
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sources":["../../../../src/components/layout/page/page.tsx"],"sourcesContent":["import { type JSX, type ParentProps, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type PageMaxWidth = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface PageProps extends JSX.HTMLAttributes<HTMLElement> {\n /** Content max-width cap; `full` = fluid. */\n maxWidth?: PageMaxWidth;\n /** Remove the page padding. */\n disableGutters?: boolean;\n /** Render as a different element (default `main`). */\n component?: string;\n ref?: Ref<HTMLElement>;\n}\n\nexport function Page(props: ParentProps<PageProps>): JSX.Element {\n const merged = mergeProps({ maxWidth: \"lg\" as PageMaxWidth, disableGutters: false }, props);\n const [local, rest] = splitProps(merged, [\"maxWidth\", \"disableGutters\", \"component\", \"class\", \"children\", \"ref\"]);\n return (\n <Dynamic\n component={local.component ?? \"main\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid=\"page\"\n class={cn(\n \"smwb-page\",\n `smwb-page_max-${local.maxWidth}`,\n { \"smwb-page_gutterless\": local.disableGutters },\n local.class\n )}\n >\n <div class=\"smwb-page__inner\">{local.children}</div>\n </Dynamic>\n );\n}\n\nexport default Page;\n"],"names":["Page","props","merged","mergeProps","maxWidth","disableGutters","local","rest","splitProps","_$createComponent","Dynamic","_$mergeProps","component","ref","r$","_ref$","mergeRefs","cn","class","children","_el$","_tmpl$","_$insert"],"mappings":";;;;;;;AAmBO,SAASA,EAAKC,GAA4C;AAC/D,QAAMC,IAASC,EAAW;AAAA,IAAEC,UAAU;AAAA,IAAsBC,gBAAgB;AAAA,EAAA,GAASJ,CAAK,GACpF,CAACK,GAAOC,CAAI,IAAIC,EAAWN,GAAQ,CAAC,YAAY,kBAAkB,aAAa,SAAS,YAAY,KAAK,CAAC;AAChH,SAAAO,EACGC,GAAOC,EAAA;AAAA,IAAA,IACNC,YAAS;AAAA,aAAEN,EAAMM,aAAa;AAAA,IAAM;AAAA,EAAA,GAChCL,GAAI;AAAA,IAAAM,IAAAC,GAAA;AAAA,UAAAC,IACHC,EAAUV,EAAMO,GAAG;AAAC,aAAAE,KAAA,cAAAA,EAAAD,CAAA;AAAA,IAAA;AAAA,IAAA,eAAA;AAAA,IAAA,IAAA,QAAA;AAAA,aAElBG,EACL,aACA,iBAAiBX,EAAMF,QAAQ,IAC/B;AAAA,QAAE,wBAAwBE,EAAMD;AAAAA,MAAAA,GAChCC,EAAMY,KACR;AAAA,IAAC;AAAA,IAAA,IAAAC,WAAA;AAAA,UAAAC,IAAAC,EAAAA;AAAAC,aAAAA,EAAAF,GAAA,MAE8Bd,EAAMa,QAAQ,GAAAC;AAAAA,IAAA;AAAA,EAAA,CAAA,CAAA;AAGnD;"}
1
+ {"version":3,"file":"page.js","sources":["../../../../src/components/layout/page/page.tsx"],"sourcesContent":["import { type JSX, type ParentProps, mergeProps, splitProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type PageMaxWidth = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface PageProps extends JSX.HTMLAttributes<HTMLElement> {\n /** Content max-width cap; `full` = fluid. */\n maxWidth?: PageMaxWidth;\n /** Remove the page padding. */\n disableGutters?: boolean;\n /** Render as a different element (default `main`). */\n component?: string;\n /** Test id of the root element; `page` unless given. */\n \"data-testid\"?: string | undefined;\n ref?: Ref<HTMLElement>;\n}\n\nexport function Page(props: ParentProps<PageProps>): JSX.Element {\n const merged = mergeProps({ maxWidth: \"lg\" as PageMaxWidth, disableGutters: false }, props);\n const [local, rest] = splitProps(merged, [\n \"maxWidth\",\n \"disableGutters\",\n \"component\",\n \"class\",\n \"children\",\n \"ref\",\n \"data-testid\",\n ]);\n return (\n <Dynamic\n component={local.component ?? \"main\"}\n {...rest}\n ref={mergeRefs(local.ref)}\n data-testid={local[\"data-testid\"] ?? \"page\"}\n class={cn(\n \"smwb-page\",\n `smwb-page_max-${local.maxWidth}`,\n { \"smwb-page_gutterless\": local.disableGutters },\n local.class\n )}\n >\n <div class=\"smwb-page__inner\">{local.children}</div>\n </Dynamic>\n );\n}\n\nexport default Page;\n"],"names":["Page","props","merged","mergeProps","maxWidth","disableGutters","local","rest","splitProps","_$createComponent","Dynamic","_$mergeProps","component","ref","r$","_ref$","mergeRefs","cn","class","children","_el$","_tmpl$","_$insert"],"mappings":";;;;;;;AAqBO,SAASA,EAAKC,GAA4C;AAC/D,QAAMC,IAASC,EAAW;AAAA,IAAEC,UAAU;AAAA,IAAsBC,gBAAgB;AAAA,EAAA,GAASJ,CAAK,GACpF,CAACK,GAAOC,CAAI,IAAIC,EAAWN,GAAQ,CACvC,YACA,kBACA,aACA,SACA,YACA,OACA,aAAa,CACd;AACD,SAAAO,EACGC,GAAOC,EAAA;AAAA,IAAA,IACNC,YAAS;AAAA,aAAEN,EAAMM,aAAa;AAAA,IAAM;AAAA,EAAA,GAChCL,GAAI;AAAA,IAAAM,IAAAC,GAAA;AAAA,UAAAC,IACHC,EAAUV,EAAMO,GAAG;AAAC,aAAAE,KAAA,cAAAA,EAAAD,CAAA;AAAA,IAAA;AAAA,IAAA,IAAA,gBAAA;AAAA,aACZR,EAAM,aAAa,KAAK;AAAA,IAAM;AAAA,IAAA,IAAA,QAAA;AAAA,aACpCW,EACL,aACA,iBAAiBX,EAAMF,QAAQ,IAC/B;AAAA,QAAE,wBAAwBE,EAAMD;AAAAA,MAAAA,GAChCC,EAAMY,KACR;AAAA,IAAC;AAAA,IAAA,IAAAC,WAAA;AAAA,UAAAC,IAAAC,EAAAA;AAAAC,aAAAA,EAAAF,GAAA,MAE8Bd,EAAMa,QAAQ,GAAAC;AAAAA,IAAA;AAAA,EAAA,CAAA,CAAA;AAGnD;"}
@@ -9,6 +9,8 @@ export interface PageHeaderProps extends Omit<JSX.HTMLAttributes<HTMLElement>, "
9
9
  actions?: JSX.Element;
10
10
  /** Render a divider below the header. */
11
11
  divider?: boolean;
12
+ /** Test id of the root `<header>`; `page-header` unless given. */
13
+ "data-testid"?: string | undefined;
12
14
  ref?: Ref<HTMLElement>;
13
15
  }
14
16
  export declare function PageHeader(props: PageHeaderProps): JSX.Element;