@smwb/ui-react 2.6.2 → 2.7.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 (421) hide show
  1. package/AI_LESS_OVERRIDES.md +4 -2
  2. package/AI_THEMING.md +17 -1
  3. package/README.md +84 -35
  4. package/dist/assets/styles/less/components/accordion/accordion.entry.css +1 -1
  5. package/dist/assets/styles/less/components/avatar/avatar.entry.css +1 -1
  6. package/dist/assets/styles/less/components/chart/chart.entry.css +1 -0
  7. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  8. package/dist/assets/styles/less/components/descriptionList/descriptionList.entry.css +1 -0
  9. package/dist/assets/styles/less/components/emptyState/emptyState.entry.css +1 -0
  10. package/dist/assets/styles/less/components/kanban/kanban.entry.css +1 -0
  11. package/dist/assets/styles/less/components/meter/meter.entry.css +1 -0
  12. package/dist/assets/styles/less/components/modal/modal.entry.css +1 -1
  13. package/dist/assets/styles/less/components/overflowMenu/overflowMenu.entry.css +1 -1
  14. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -0
  15. package/dist/assets/styles/less/components/progressIndicator/progressIndicator.entry.css +1 -1
  16. package/dist/assets/styles/less/components/sectionHeader/sectionHeader.entry.css +1 -0
  17. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  18. package/dist/assets/styles/less/components/stat/stat.entry.css +1 -0
  19. package/dist/assets/styles/less/components/stepper/stepper.entry.css +1 -1
  20. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  21. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  22. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  23. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  24. package/dist/assets/styles/less/components/timeline/timeline.entry.css +1 -0
  25. package/dist/assets/styles/less/components/tooltip/tooltip.entry.css +1 -1
  26. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  27. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -0
  28. package/dist/assets/styles/less/tokens.entry.css +1 -0
  29. package/dist/chart.d.ts +2 -0
  30. package/dist/chart.js +8 -0
  31. package/dist/chart.js.map +1 -0
  32. package/dist/components/base/icon/icon.js +8 -7
  33. package/dist/components/base/icon/icon.js.map +1 -1
  34. package/dist/components/base/ripple/ripple.js +11 -10
  35. package/dist/components/base/ripple/ripple.js.map +1 -1
  36. package/dist/components/dataDisplay/accordion/accordion.d.ts +18 -1
  37. package/dist/components/dataDisplay/accordion/accordion.js +77 -54
  38. package/dist/components/dataDisplay/accordion/accordion.js.map +1 -1
  39. package/dist/components/dataDisplay/assetGrid/assetGrid.js +15 -14
  40. package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -1
  41. package/dist/components/dataDisplay/avatar/avatar.d.ts +4 -0
  42. package/dist/components/dataDisplay/avatar/avatar.js +45 -30
  43. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  44. package/dist/components/dataDisplay/badge/badge.js +11 -10
  45. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  46. package/dist/components/dataDisplay/card/card.js +16 -15
  47. package/dist/components/dataDisplay/card/card.js.map +1 -1
  48. package/dist/components/dataDisplay/carousel/carousel.js +23 -22
  49. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  50. package/dist/components/dataDisplay/chart/chart.d.ts +65 -0
  51. package/dist/components/dataDisplay/chart/chart.js +133 -0
  52. package/dist/components/dataDisplay/chart/chart.js.map +1 -0
  53. package/dist/components/dataDisplay/chart/chartTheme.d.ts +35 -0
  54. package/dist/components/dataDisplay/chart/chartTheme.js +74 -0
  55. package/dist/components/dataDisplay/chart/chartTheme.js.map +1 -0
  56. package/dist/components/dataDisplay/chart/index.d.ts +4 -0
  57. package/dist/components/dataDisplay/chat/chat.js +5 -4
  58. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  59. package/dist/components/dataDisplay/chip/chip.js +5 -4
  60. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  61. package/dist/components/dataDisplay/chipGroup/chipGroup.js +10 -9
  62. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  63. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +37 -0
  64. package/dist/components/dataDisplay/descriptionList/descriptionList.js +43 -0
  65. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  66. package/dist/components/dataDisplay/descriptionList/index.d.ts +2 -0
  67. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +5 -4
  68. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  69. package/dist/components/dataDisplay/imagesList/imagesList.js +11 -10
  70. package/dist/components/dataDisplay/imagesList/imagesList.js.map +1 -1
  71. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +31 -24
  72. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  73. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.d.ts +1 -1
  74. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  75. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  76. package/dist/components/dataDisplay/kanban/index.d.ts +2 -0
  77. package/dist/components/dataDisplay/kanban/kanban.d.ts +47 -0
  78. package/dist/components/dataDisplay/kanban/kanban.js +63 -0
  79. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -0
  80. package/dist/components/dataDisplay/lazyImage/lazyImage.js +9 -8
  81. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  82. package/dist/components/dataDisplay/list/list.js +11 -10
  83. package/dist/components/dataDisplay/list/list.js.map +1 -1
  84. package/dist/components/dataDisplay/meter/index.d.ts +2 -0
  85. package/dist/components/dataDisplay/meter/meter.d.ts +33 -0
  86. package/dist/components/dataDisplay/meter/meter.js +62 -0
  87. package/dist/components/dataDisplay/meter/meter.js.map +1 -0
  88. package/dist/components/dataDisplay/personChip/index.d.ts +2 -0
  89. package/dist/components/dataDisplay/personChip/personChip.d.ts +31 -0
  90. package/dist/components/dataDisplay/personChip/personChip.js +61 -0
  91. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -0
  92. package/dist/components/dataDisplay/stat/index.d.ts +2 -0
  93. package/dist/components/dataDisplay/stat/stat.d.ts +36 -0
  94. package/dist/components/dataDisplay/stat/stat.js +48 -0
  95. package/dist/components/dataDisplay/stat/stat.js.map +1 -0
  96. package/dist/components/dataDisplay/table/table.d.ts +7 -0
  97. package/dist/components/dataDisplay/table/table.js +21 -15
  98. package/dist/components/dataDisplay/table/table.js.map +1 -1
  99. package/dist/components/dataDisplay/table/tableCell.d.ts +3 -1
  100. package/dist/components/dataDisplay/table/tableCell.js +11 -2
  101. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  102. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +11 -1
  103. package/dist/components/dataDisplay/table/tableHeadCell.js +54 -24
  104. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  105. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js +10 -9
  106. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js.map +1 -1
  107. package/dist/components/dataDisplay/thumbCard/thumbCard.js +10 -9
  108. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  109. package/dist/components/dataDisplay/timeline/index.d.ts +2 -0
  110. package/dist/components/dataDisplay/timeline/timeline.d.ts +43 -0
  111. package/dist/components/dataDisplay/timeline/timeline.js +44 -0
  112. package/dist/components/dataDisplay/timeline/timeline.js.map +1 -0
  113. package/dist/components/dataDisplay/treeView/treeView.js +5 -4
  114. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  115. package/dist/components/dataDisplay/typography/typography.d.ts +4 -0
  116. package/dist/components/dataDisplay/typography/typography.js +41 -23
  117. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  118. package/dist/components/feedBack/confirmDialog/confirmDialog.js +14 -13
  119. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  120. package/dist/components/feedBack/emptyState/emptyState.d.ts +26 -0
  121. package/dist/components/feedBack/emptyState/emptyState.js +27 -0
  122. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -0
  123. package/dist/components/feedBack/emptyState/index.d.ts +2 -0
  124. package/dist/components/feedBack/message/message.js +8 -7
  125. package/dist/components/feedBack/message/message.js.map +1 -1
  126. package/dist/components/feedBack/modal/modal.js +5 -4
  127. package/dist/components/feedBack/modal/modal.js.map +1 -1
  128. package/dist/components/feedBack/progressIndicator/progressIndicator.d.ts +14 -1
  129. package/dist/components/feedBack/progressIndicator/progressIndicator.js +72 -40
  130. package/dist/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  131. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +31 -29
  132. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  133. package/dist/components/feedBack/skeleton/skeleton.js +17 -16
  134. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  135. package/dist/components/feedBack/snackbar/snackbar.js +6 -5
  136. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  137. package/dist/components/feedBack/tooltip/tooltip.js +57 -49
  138. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  139. package/dist/components/inputs/button/button.js +16 -15
  140. package/dist/components/inputs/button/button.js.map +1 -1
  141. package/dist/components/inputs/buttonGroups/buttonGroup.js +5 -4
  142. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  143. package/dist/components/inputs/checkbox/checkbox.js +10 -9
  144. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  145. package/dist/components/inputs/datePicker/datePicker.js +123 -120
  146. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  147. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +121 -119
  148. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  149. package/dist/components/inputs/fileDrop/fileDrop.js +13 -12
  150. package/dist/components/inputs/fileDrop/fileDrop.js.map +1 -1
  151. package/dist/components/inputs/fileInput/fileInput.js +4 -3
  152. package/dist/components/inputs/fileInput/fileInput.js.map +1 -1
  153. package/dist/components/inputs/floatingButton/floatingButton.js +17 -16
  154. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  155. package/dist/components/inputs/radioButton/radioButton.js +11 -10
  156. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  157. package/dist/components/inputs/rating/rating.js +18 -17
  158. package/dist/components/inputs/rating/rating.js.map +1 -1
  159. package/dist/components/inputs/selectField/dropdownMenu.d.ts +1 -1
  160. package/dist/components/inputs/selectField/dropdownMenu.js +72 -69
  161. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  162. package/dist/components/inputs/selectField/selectField.d.ts +2 -0
  163. package/dist/components/inputs/selectField/selectField.js +128 -117
  164. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  165. package/dist/components/inputs/slider/slider.js +4 -3
  166. package/dist/components/inputs/slider/slider.js.map +1 -1
  167. package/dist/components/inputs/textField/textField.js +16 -15
  168. package/dist/components/inputs/textField/textField.js.map +1 -1
  169. package/dist/components/inputs/textField/utils.d.ts +1 -1
  170. package/dist/components/inputs/timePicker/timePicker.js +66 -63
  171. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  172. package/dist/components/inputs/toggle/toggle.js +14 -13
  173. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  174. package/dist/components/inputs/valueSlider/valueSlider.js +9 -8
  175. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  176. package/dist/components/layout/appLayout/appLayout.js +20 -19
  177. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  178. package/dist/components/layout/divider/divider.js +9 -8
  179. package/dist/components/layout/divider/divider.js.map +1 -1
  180. package/dist/components/layout/floatingWindow/floatingWindow.js +4 -3
  181. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  182. package/dist/components/layout/grid/grid.js +17 -16
  183. package/dist/components/layout/grid/grid.js.map +1 -1
  184. package/dist/components/layout/page/page.js +9 -8
  185. package/dist/components/layout/page/page.js.map +1 -1
  186. package/dist/components/layout/pageHeader/pageHeader.js +10 -9
  187. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  188. package/dist/components/layout/screenDivider/screenDivider.js +19 -18
  189. package/dist/components/layout/screenDivider/screenDivider.js.map +1 -1
  190. package/dist/components/layout/sectionHeader/index.d.ts +2 -0
  191. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +31 -0
  192. package/dist/components/layout/sectionHeader/sectionHeader.js +67 -0
  193. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  194. package/dist/components/layout/sheet/sheet.js +5 -4
  195. package/dist/components/layout/sheet/sheet.js.map +1 -1
  196. package/dist/components/layout/stack/stack.js +10 -9
  197. package/dist/components/layout/stack/stack.js.map +1 -1
  198. package/dist/components/navigation/appBar/appBar.js +18 -17
  199. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  200. package/dist/components/navigation/bottomBar/bottomBar.js +5 -4
  201. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  202. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +5 -4
  203. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  204. package/dist/components/navigation/menu/menu.js +6 -5
  205. package/dist/components/navigation/menu/menu.js.map +1 -1
  206. package/dist/components/navigation/overflowMenu/overflowMenu.js +16 -15
  207. package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -1
  208. package/dist/components/navigation/pagination/pagination.js +5 -4
  209. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  210. package/dist/components/navigation/sidebar/sidebar.js +13 -12
  211. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  212. package/dist/components/navigation/stepper/stepper.d.ts +10 -2
  213. package/dist/components/navigation/stepper/stepper.js +33 -30
  214. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  215. package/dist/components/navigation/tabs/tab/tab.d.ts +2 -0
  216. package/dist/components/navigation/tabs/tab/tab.js +14 -13
  217. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  218. package/dist/components/navigation/tabs/tabs.d.ts +12 -0
  219. package/dist/components/navigation/tabs/tabs.js +138 -83
  220. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  221. package/dist/connects/rt/table/draggableHeader.d.ts +1 -1
  222. package/dist/connects/rt/table/draggableHeader.js.map +1 -0
  223. package/dist/connects/rt/table/headerCellRenderer.d.ts +6 -0
  224. package/dist/connects/rt/table/headerCellRenderer.js +21 -0
  225. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -0
  226. package/dist/connects/rt/table/table.d.ts +2 -0
  227. package/dist/connects/rt/table/table.js +200 -0
  228. package/dist/connects/rt/table/table.js.map +1 -0
  229. package/dist/connects/rt/table/utils.js.map +1 -0
  230. package/dist/headless/components/dataDisplay/accordion/accordion.js +76 -54
  231. package/dist/headless/components/dataDisplay/accordion/accordion.js.map +1 -1
  232. package/dist/headless/components/dataDisplay/avatar/avatar.js +45 -31
  233. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  234. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +41 -0
  235. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  236. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +29 -23
  237. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  238. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  239. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  240. package/dist/headless/components/dataDisplay/kanban/kanban.js +61 -0
  241. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -0
  242. package/dist/headless/components/dataDisplay/meter/meter.js +60 -0
  243. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -0
  244. package/dist/headless/components/dataDisplay/personChip/personChip.js +59 -0
  245. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -0
  246. package/dist/headless/components/dataDisplay/stat/stat.js +46 -0
  247. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -0
  248. package/dist/headless/components/dataDisplay/table/table.js +16 -11
  249. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  250. package/dist/headless/components/dataDisplay/table/tableCell.js +11 -2
  251. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  252. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +54 -24
  253. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  254. package/dist/headless/components/dataDisplay/timeline/timeline.js +42 -0
  255. package/dist/headless/components/dataDisplay/timeline/timeline.js.map +1 -0
  256. package/dist/headless/components/dataDisplay/typography/typography.js +39 -22
  257. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  258. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js +9 -9
  259. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  260. package/dist/headless/components/feedBack/emptyState/emptyState.js +25 -0
  261. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -0
  262. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js +70 -39
  263. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  264. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +27 -26
  265. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  266. package/dist/headless/components/feedBack/tooltip/tooltip.js +53 -46
  267. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  268. package/dist/headless/components/inputs/datePicker/datePicker.js +112 -110
  269. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  270. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +121 -119
  271. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  272. package/dist/headless/components/inputs/selectField/dropdownMenu.js +72 -69
  273. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  274. package/dist/headless/components/inputs/selectField/selectField.js +109 -99
  275. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  276. package/dist/headless/components/inputs/timePicker/timePicker.js +65 -63
  277. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  278. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +65 -0
  279. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  280. package/dist/headless/components/navigation/stepper/stepper.js +31 -29
  281. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  282. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  283. package/dist/headless/components/navigation/tabs/tabs.js +129 -75
  284. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  285. package/dist/headless/hooks/useSafeLayoutEffect.js +4 -2
  286. package/dist/headless/hooks/useSafeLayoutEffect.js.map +1 -1
  287. package/dist/headless/icons/catalog.js +78 -1
  288. package/dist/headless/icons/catalog.js.map +1 -1
  289. package/dist/headless/icons/index.js +596 -574
  290. package/dist/headless/icons/index.js.map +1 -1
  291. package/dist/headless/icons/svg/accountTree.js +9 -0
  292. package/dist/headless/icons/svg/accountTree.js.map +1 -0
  293. package/dist/headless/icons/svg/callSplit.js +9 -0
  294. package/dist/headless/icons/svg/callSplit.js.map +1 -0
  295. package/dist/headless/icons/svg/deviceHub.js +8 -0
  296. package/dist/headless/icons/svg/deviceHub.js.map +1 -0
  297. package/dist/headless/icons/svg/editNote.js +9 -0
  298. package/dist/headless/icons/svg/editNote.js.map +1 -0
  299. package/dist/headless/icons/svg/filterList.js +9 -0
  300. package/dist/headless/icons/svg/filterList.js.map +1 -0
  301. package/dist/headless/icons/svg/forkRight.js +8 -0
  302. package/dist/headless/icons/svg/forkRight.js.map +1 -0
  303. package/dist/headless/icons/svg/groups.js +9 -0
  304. package/dist/headless/icons/svg/groups.js.map +1 -0
  305. package/dist/headless/icons/svg/hub.js +8 -0
  306. package/dist/headless/icons/svg/hub.js.map +1 -0
  307. package/dist/headless/icons/svg/index.js +598 -576
  308. package/dist/headless/icons/svg/index.js.map +1 -1
  309. package/dist/headless/icons/svg/lan.js +9 -0
  310. package/dist/headless/icons/svg/lan.js.map +1 -0
  311. package/dist/headless/icons/svg/personOff.js +9 -0
  312. package/dist/headless/icons/svg/personOff.js.map +1 -0
  313. package/dist/headless/icons/svg/schema.js +9 -0
  314. package/dist/headless/icons/svg/schema.js.map +1 -0
  315. package/dist/headless/index.js +209 -183
  316. package/dist/headless/index.js.map +1 -1
  317. package/dist/hooks/useSafeLayoutEffect.d.ts +7 -1
  318. package/dist/hooks/useSafeLayoutEffect.js +4 -2
  319. package/dist/hooks/useSafeLayoutEffect.js.map +1 -1
  320. package/dist/icons/catalog.d.ts +1 -1
  321. package/dist/icons/catalog.js +78 -1
  322. package/dist/icons/catalog.js.map +1 -1
  323. package/dist/icons/index.js +596 -574
  324. package/dist/icons/index.js.map +1 -1
  325. package/dist/icons/svg/accountTree.d.ts +4 -0
  326. package/dist/icons/svg/accountTree.js +9 -0
  327. package/dist/icons/svg/accountTree.js.map +1 -0
  328. package/dist/icons/svg/callSplit.d.ts +4 -0
  329. package/dist/icons/svg/callSplit.js +9 -0
  330. package/dist/icons/svg/callSplit.js.map +1 -0
  331. package/dist/icons/svg/deviceHub.d.ts +4 -0
  332. package/dist/icons/svg/deviceHub.js +8 -0
  333. package/dist/icons/svg/deviceHub.js.map +1 -0
  334. package/dist/icons/svg/editNote.d.ts +4 -0
  335. package/dist/icons/svg/editNote.js +9 -0
  336. package/dist/icons/svg/editNote.js.map +1 -0
  337. package/dist/icons/svg/filterList.d.ts +4 -0
  338. package/dist/icons/svg/filterList.js +9 -0
  339. package/dist/icons/svg/filterList.js.map +1 -0
  340. package/dist/icons/svg/forkRight.d.ts +4 -0
  341. package/dist/icons/svg/forkRight.js +8 -0
  342. package/dist/icons/svg/forkRight.js.map +1 -0
  343. package/dist/icons/svg/groups.d.ts +4 -0
  344. package/dist/icons/svg/groups.js +9 -0
  345. package/dist/icons/svg/groups.js.map +1 -0
  346. package/dist/icons/svg/hub.d.ts +4 -0
  347. package/dist/icons/svg/hub.js +8 -0
  348. package/dist/icons/svg/hub.js.map +1 -0
  349. package/dist/icons/svg/index.d.ts +11 -0
  350. package/dist/icons/svg/index.js +598 -576
  351. package/dist/icons/svg/index.js.map +1 -1
  352. package/dist/icons/svg/lan.d.ts +4 -0
  353. package/dist/icons/svg/lan.js +9 -0
  354. package/dist/icons/svg/lan.js.map +1 -0
  355. package/dist/icons/svg/personOff.d.ts +4 -0
  356. package/dist/icons/svg/personOff.js +9 -0
  357. package/dist/icons/svg/personOff.js.map +1 -0
  358. package/dist/icons/svg/schema.d.ts +4 -0
  359. package/dist/icons/svg/schema.js +9 -0
  360. package/dist/icons/svg/schema.js.map +1 -0
  361. package/dist/icons.cjs +1 -1
  362. package/dist/icons.cjs.map +1 -1
  363. package/dist/index.cjs +2 -2
  364. package/dist/index.cjs.map +1 -1
  365. package/dist/index.d.ts +16 -0
  366. package/dist/index.js +209 -183
  367. package/dist/index.js.map +1 -1
  368. package/package.json +18 -7
  369. package/dist/react-table/components/base/icon/icon.js +0 -60
  370. package/dist/react-table/components/base/icon/icon.js.map +0 -1
  371. package/dist/react-table/components/base/icon/iconProvider.js +0 -15
  372. package/dist/react-table/components/base/icon/iconProvider.js.map +0 -1
  373. package/dist/react-table/components/dataDisplay/table/table.js +0 -37
  374. package/dist/react-table/components/dataDisplay/table/table.js.map +0 -1
  375. package/dist/react-table/components/dataDisplay/table/tableBody.js +0 -7
  376. package/dist/react-table/components/dataDisplay/table/tableBody.js.map +0 -1
  377. package/dist/react-table/components/dataDisplay/table/tableCell.js +0 -7
  378. package/dist/react-table/components/dataDisplay/table/tableCell.js.map +0 -1
  379. package/dist/react-table/components/dataDisplay/table/tableHead.js +0 -7
  380. package/dist/react-table/components/dataDisplay/table/tableHead.js.map +0 -1
  381. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js +0 -48
  382. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js.map +0 -1
  383. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js +0 -40
  384. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js.map +0 -1
  385. package/dist/react-table/components/dataDisplay/table/tableRow.js +0 -20
  386. package/dist/react-table/components/dataDisplay/table/tableRow.js.map +0 -1
  387. package/dist/react-table/components/feedBack/message/message.js +0 -31
  388. package/dist/react-table/components/feedBack/message/message.js.map +0 -1
  389. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js +0 -51
  390. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js.map +0 -1
  391. package/dist/react-table/components/inputs/textField/textField.js +0 -125
  392. package/dist/react-table/components/inputs/textField/textField.js.map +0 -1
  393. package/dist/react-table/components/inputs/textField/textFieldAdornment.js +0 -25
  394. package/dist/react-table/components/inputs/textField/textFieldAdornment.js.map +0 -1
  395. package/dist/react-table/components/inputs/textField/textFieldWrapper.js +0 -50
  396. package/dist/react-table/components/inputs/textField/textFieldWrapper.js.map +0 -1
  397. package/dist/react-table/components/inputs/textField/utils.js +0 -11
  398. package/dist/react-table/components/inputs/textField/utils.js.map +0 -1
  399. package/dist/react-table/connects/rt/table/draggableHeader.js.map +0 -1
  400. package/dist/react-table/connects/rt/table/headerCellRenderer.js +0 -14
  401. package/dist/react-table/connects/rt/table/headerCellRenderer.js.map +0 -1
  402. package/dist/react-table/connects/rt/table/table.js +0 -180
  403. package/dist/react-table/connects/rt/table/table.js.map +0 -1
  404. package/dist/react-table/connects/rt/table/utils.js.map +0 -1
  405. package/dist/react-table/hooks/useForkRef.js +0 -13
  406. package/dist/react-table/hooks/useForkRef.js.map +0 -1
  407. package/dist/react-table/hooks/useSafeLayoutEffect.js +0 -6
  408. package/dist/react-table/hooks/useSafeLayoutEffect.js.map +0 -1
  409. package/dist/react-table/icons/config.js +0 -9
  410. package/dist/react-table/icons/config.js.map +0 -1
  411. package/dist/react-table/icons/registry.js +0 -12
  412. package/dist/react-table/icons/registry.js.map +0 -1
  413. package/dist/react-table/icons/store.js +0 -10
  414. package/dist/react-table/icons/store.js.map +0 -1
  415. package/dist/react-table/utils/setRef.js +0 -7
  416. package/dist/react-table/utils/setRef.js.map +0 -1
  417. package/dist/storybook/storyPlay.d.ts +0 -19
  418. /package/dist/{react-table/connects → connects}/rt/table/draggableHeader.js +0 -0
  419. /package/dist/{react-table/connects → connects}/rt/table/utils.js +0 -0
  420. /package/dist/{react-table/react-table.js → react-table.js} +0 -0
  421. /package/dist/{react-table/react-table.js.map → react-table.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sources":["../../../../src/components/inputs/slider/slider.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useEventCallback } from \"../../../hooks/useEventCallback\";\nimport { rescale, toPercent, coordX, coordY } from \"./utils\";\nimport { TextField, TextFieldWrapper } from \"../textField\";\n\nexport type SliderValue = number | [number, number];\n\nexport interface SliderMark {\n value: number;\n label?: React.ReactNode;\n}\n\nexport interface SliderProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"onChange\" | \"defaultValue\"> {\n value?: SliderValue;\n onChange?: (event: Event | React.SyntheticEvent, value: SliderValue, data: SliderProps) => void;\n min?: number;\n max?: number;\n step?: number;\n name?: string;\n defaultValue?: SliderValue;\n disabled?: boolean;\n variant?: \"continuous\" | \"discrete\";\n valueField?: boolean;\n withTicks?: boolean;\n label?: string;\n helperText?: React.ReactNode;\n error?: boolean;\n size?: \"small\" | \"medium\" | \"large\";\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** Enables a two-thumb range slider (value becomes `[number, number]`). */\n range?: boolean;\n /** Slider direction. */\n orientation?: \"horizontal\" | \"vertical\";\n /** Show ticks/marks. `true` derives marks from `step`; an array gives explicit positions/labels. */\n marks?: boolean | SliderMark[];\n /** Accessible label applied to the slider control. */\n \"aria-label\"?: string;\n /** Maps the numeric value to a human-readable string for assistive tech. */\n getAriaValueText?: (value: number) => string;\n}\n\nfunction resolveMarks(\n marks: boolean | SliderMark[] | undefined,\n min: number,\n max: number,\n step?: number\n): SliderMark[] {\n if (!marks) {\n return [];\n }\n if (Array.isArray(marks)) {\n return marks;\n }\n const s = step && step > 0 ? step : (max - min) / 10;\n const result: SliderMark[] = [];\n for (let v = min; v <= max + 1e-9; v += s) {\n result.push({ value: Math.round(v * 1e6) / 1e6 });\n }\n return result;\n}\n\nconst RangeSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function RangeSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n label,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n // consumed by the dispatcher / not valid DOM attributes — keep them off the span\n /* eslint-disable @typescript-eslint/no-unused-vars */\n range,\n variant,\n valueField,\n withTicks,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...rest\n } = props;\n\n const isVertical = orientation === \"vertical\";\n const normalize = (v: SliderValue | undefined): [number, number] => {\n const arr = Array.isArray(v) ? v : [min, max];\n const lo = Math.min(arr[0] ?? min, arr[1] ?? max);\n const hi = Math.max(arr[0] ?? min, arr[1] ?? max);\n return [lo, hi];\n };\n\n const isControlled = valueProp !== undefined;\n const [valueState, setValueState] = React.useState<[number, number]>(() => normalize(defaultValue));\n const value = isControlled ? normalize(valueProp) : valueState;\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const activeThumb = React.useRef<0 | 1>(0);\n const isPressedRef = React.useRef<boolean>(false);\n\n const markList = resolveMarks(marks, min, max, step);\n\n const positionToValue = (event: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent) => {\n const rect = containerRef.current?.getBoundingClientRect();\n if (!rect) {\n return min;\n }\n if (isVertical) {\n const y =\n (typeof (event as MouseEvent).clientY === \"number\"\n ? (event as MouseEvent).clientY\n : coordY(event as React.MouseEvent)) - rect.top;\n return rescale(rect.height - y, [0, rect.height], [min, max], { step });\n }\n const x =\n (typeof (event as MouseEvent).clientX === \"number\"\n ? (event as MouseEvent).clientX\n : coordX(event as React.MouseEvent)) - rect.left;\n return rescale(x, [0, rect.width], [min, max], { step });\n };\n\n const commit = (next: [number, number], event: Event | React.SyntheticEvent) => {\n const lo = Math.min(next[0], next[1]);\n const hi = Math.max(next[0], next[1]);\n const clamped: [number, number] = [Math.max(min, lo), Math.min(max, hi)];\n if (!isControlled) {\n setValueState(clamped);\n }\n onChange?.(event, clamped, props);\n };\n\n const moveThumb = (raw: number, event: Event | React.SyntheticEvent) => {\n const idx = activeThumb.current;\n const next: [number, number] = [value[0], value[1]];\n next[idx] = Math.max(min, Math.min(max, raw));\n commit(next, event);\n };\n\n const pickThumb = (raw: number) => {\n activeThumb.current = Math.abs(raw - value[0]) <= Math.abs(raw - value[1]) ? 0 : 1;\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (!isPressedRef.current) {\n return;\n }\n event.preventDefault();\n moveThumb(positionToValue(event), event);\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n });\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (disabled || event.button !== 0) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStartNative = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n useSafeLayoutEffect(() => {\n const el = containerRef.current;\n if (!el) {\n return;\n }\n el.addEventListener(\"touchstart\", onTouchStartNative);\n return () => el.removeEventListener(\"touchstart\", onTouchStartNative);\n });\n\n const onThumbKeyDown = (idx: 0 | 1) => (event: React.KeyboardEvent) => {\n if (disabled) {\n return;\n }\n const delta = step && step > 0 ? step : 1;\n let next: number | null = null;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n next = value[idx] - delta;\n } else if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n next = value[idx] + delta;\n } else if (event.key === \"Home\") {\n next = min;\n } else if (event.key === \"End\") {\n next = max;\n }\n if (next !== null) {\n event.preventDefault();\n activeThumb.current = idx;\n moveThumb(next, event);\n }\n };\n\n const classNames = cn(\n \"smwb-slider\",\n \"smwb-slider--range\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const p0 = toPercent(value[0], min, max);\n const p1 = toPercent(value[1], min, max);\n const startPct = `${Math.min(p0, p1)}%`;\n const spanPct = `${Math.abs(p1 - p0)}%`;\n const mainStart = isVertical ? { bottom: `${p0}%` } : { left: `${p0}%` };\n const mainEnd = isVertical ? { bottom: `${p1}%` } : { left: `${p1}%` };\n const trackStyle = isVertical ? { bottom: startPct, height: spanPct } : { left: startPct, width: spanPct };\n\n return (\n <TextFieldWrapper label={label} helperText={helperText} disabled={disabled} error={error} fullWidth shrink>\n <div className=\"smwb-slider__container\">\n <span ref={rootRef} onMouseDown={onMouseDown} className={classNames} {...rest}>\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n {([0, 1] as const).map((idx) => (\n <span\n key={idx}\n className={cn(\"smwb-slider__thumb\", `smwb-slider__thumb--${idx === 0 ? \"start\" : \"end\"}`)}\n style={idx === 0 ? mainStart : mainEnd}\n >\n <input\n data-testid={`slider-input-${idx}`}\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n name={name ? `${name}[${idx}]` : undefined}\n value={value[idx]}\n disabled={disabled}\n onChange={() => undefined}\n onKeyDown={onThumbKeyDown(idx)}\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} ${idx === 0 ? \"minimum\" : \"maximum\"}` : undefined}\n aria-orientation={orientation}\n aria-valuenow={value[idx]}\n aria-valuemin={idx === 0 ? min : value[0]}\n aria-valuemax={idx === 0 ? value[1] : max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value[idx]) : undefined}\n aria-disabled={disabled || undefined}\n />\n </span>\n ))}\n </span>\n </div>\n </TextFieldWrapper>\n );\n});\n\nconst SingleSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function SingleSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n variant = \"continuous\",\n valueField,\n withTicks,\n label,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n // `range` is handled by the Slider dispatcher; destructured here to keep it off the DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n range,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n\n const singleDefault = typeof defaultValue === \"number\" ? defaultValue : undefined;\n const singleValueProp = typeof valueProp === \"number\" ? valueProp : undefined;\n const isVertical = orientation === \"vertical\";\n\n const [valueState, setValue] = React.useState<number>(singleDefault ?? min);\n const [isDragging, setIsDragging] = React.useState<boolean>(false);\n const [isActive, setIsActive] = React.useState<boolean>(false);\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const isPressedRef = React.useRef<boolean>(false);\n\n const isControlled = singleValueProp !== undefined;\n const isDiscrete = variant === \"discrete\";\n const value = isControlled ? singleValueProp : valueState;\n\n const updateValue = (value: number, event: Event | React.SyntheticEvent) => {\n if (value < min || value > max) return;\n if (!isControlled) {\n setValue(value);\n }\n onChange?.(event, value, props);\n };\n\n const offsetToValue = (absolute: number, containerSize: number) => {\n return rescale(absolute, [0, containerSize], [min, max], { step });\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (disabled) {\n return;\n }\n\n if (event.button !== 0) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const absolutePosition = isVertical ? rect.height - (event.clientY - rect.top) : event.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStart = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const touch = event.changedTouches?.[0];\n const absolutePosition = isVertical ? rect.height - (touch.clientY - rect.top) : touch.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (isPressedRef.current) {\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n // TODO need clarification обработка разных событий разных типов 1 функцией\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientX = coordX(event);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientY = coordY(event);\n const absolutePosition = isVertical ? rect.height - (clientY - rect.top) : clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n if (value === newValue) {\n return;\n }\n\n if (!isDragging) {\n setIsDragging(true);\n }\n\n updateValue(newValue, event);\n }\n }\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n\n if (isDragging) {\n setIsDragging(false);\n }\n\n if (isActive) {\n setIsActive(false);\n }\n\n removeListeners();\n });\n\n const removeListeners = () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n\n const handleArrowsControls = (e: React.KeyboardEvent) => {\n if (!isFocused || disabled) return;\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") {\n updateValue(value - (step || 1), e);\n }\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") {\n updateValue(value + (step || 1), e);\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n document.removeEventListener(\"keydown\", handleArrowsControls as (e: unknown) => void);\n };\n\n useSafeLayoutEffect(() => {\n if (containerRef.current) {\n containerRef.current.addEventListener(\"touchstart\", onTouchStart);\n\n return () => {\n containerRef.current?.removeEventListener(\"touchstart\", onTouchStart);\n };\n }\n });\n\n useSafeLayoutEffect(() => {\n if (disabled && containerRef.current?.contains(document.activeElement)) {\n (document.activeElement as HTMLElement)?.blur();\n }\n }, [disabled]);\n\n const classNames = cn(\n \"smwb-slider\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--dragging\": isDragging,\n \"smwb-slider--discrete\": isDiscrete,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const pct = `${toPercent(value, min, max)}%`;\n const trackStyle = isVertical ? { height: pct } : { width: pct };\n const thumbStyle = isVertical ? { bottom: pct } : { left: pct };\n\n const getTicks = () => Array(Math.round(max / (step || 1)) + 1).fill(1) as number[];\n const markList = resolveMarks(marks, min, max, step);\n\n return (\n <TextFieldWrapper label={label} helperText={helperText} disabled={disabled} error={error} fullWidth shrink>\n <div className=\"smwb-slider__container\">\n <span\n onKeyDown={handleArrowsControls}\n ref={rootRef}\n onMouseDown={onMouseDown}\n className={classNames}\n tabIndex={disabled ? -1 : 0}\n onFocus={() => setIsFocused(true)}\n onBlur={handleBlur}\n {...rest}\n >\n {withTicks && (\n <span className=\"smwb-slider__ticks\" style={{ gap: `${step}` }}>\n {getTicks().map((t, idx) => (\n <span className=\"smwb-slider__tick\" key={idx} />\n ))}\n </span>\n )}\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n <span\n className={cn(\"smwb-slider__thumb\", {\n \"smwb-slider__thumb--active\": isActive,\n \"smwb-slider__thumb--discrete\": isDiscrete,\n })}\n style={thumbStyle}\n >\n {isDiscrete && <span className=\"smwb-slider__thumb-tooltip\">{Math.round(value)}</span>}\n <input\n data-testid=\"slider-input\"\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n name={name}\n value={value}\n readOnly\n aria-label={ariaLabel}\n aria-orientation={orientation}\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value) : undefined}\n aria-disabled={disabled || undefined}\n />\n </span>\n </span>\n {valueField && isDiscrete && (\n <TextField\n type=\"number\"\n value={value}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => updateValue(+e.target.value, e)}\n variant=\"filled\"\n helperText={null}\n />\n )}\n </div>\n </TextFieldWrapper>\n );\n});\n\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>(function Slider(props, ref) {\n const isRangeMode = props.range === true || Array.isArray(props.value) || Array.isArray(props.defaultValue);\n\n return isRangeMode ? <RangeSlider ref={ref} {...props} /> : <SingleSlider ref={ref} {...props} />;\n});\n"],"names":["resolveMarks","marks","min","max","step","s","result","v","RangeSlider","React","props","ref","defaultValue","valueProp","onChange","name","disabled","className","label","helperText","error","size","color","orientation","getAriaValueText","ariaLabel","range","variant","valueField","withTicks","rest","isVertical","normalize","arr","lo","_a","_b","hi","_c","_d","isControlled","valueState","setValueState","value","containerRef","rootRef","useForkRef","activeThumb","isPressedRef","markList","positionToValue","event","rect","y","coordY","rescale","x","coordX","commit","next","clamped","moveThumb","raw","idx","pickThumb","onMouseMove","useEventCallback","onMouseEnd","onMouseDown","onTouchStartNative","useSafeLayoutEffect","el","onThumbKeyDown","delta","classNames","cn","p0","toPercent","p1","startPct","spanPct","mainStart","mainEnd","trackStyle","jsx","TextFieldWrapper","m","mp","SingleSlider","singleDefault","singleValueProp","setValue","isDragging","setIsDragging","isActive","setIsActive","isFocused","setIsFocused","isDiscrete","updateValue","offsetToValue","absolute","containerSize","element","absolutePosition","newValue","onTouchStart","touch","clientX","clientY","removeListeners","handleArrowsControls","e","handleBlur","pct","thumbStyle","getTicks","jsxs","TextField","Slider"],"mappings":"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"}
1
+ {"version":3,"file":"slider.js","sources":["../../../../src/components/inputs/slider/slider.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"clsx\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useEventCallback } from \"../../../hooks/useEventCallback\";\nimport { rescale, toPercent, coordX, coordY } from \"./utils\";\nimport { TextField, TextFieldWrapper } from \"../textField\";\n\nexport type SliderValue = number | [number, number];\n\nexport interface SliderMark {\n value: number;\n label?: React.ReactNode;\n}\n\nexport interface SliderProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"onChange\" | \"defaultValue\"> {\n value?: SliderValue;\n onChange?: (event: Event | React.SyntheticEvent, value: SliderValue, data: SliderProps) => void;\n min?: number;\n max?: number;\n step?: number;\n name?: string;\n defaultValue?: SliderValue;\n disabled?: boolean;\n variant?: \"continuous\" | \"discrete\";\n valueField?: boolean;\n withTicks?: boolean;\n label?: string;\n helperText?: React.ReactNode;\n error?: boolean;\n size?: \"small\" | \"medium\" | \"large\";\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** Enables a two-thumb range slider (value becomes `[number, number]`). */\n range?: boolean;\n /** Slider direction. */\n orientation?: \"horizontal\" | \"vertical\";\n /** Show ticks/marks. `true` derives marks from `step`; an array gives explicit positions/labels. */\n marks?: boolean | SliderMark[];\n /** Accessible label applied to the slider control. */\n \"aria-label\"?: string;\n /** Maps the numeric value to a human-readable string for assistive tech. */\n getAriaValueText?: (value: number) => string;\n}\n\nfunction resolveMarks(\n marks: boolean | SliderMark[] | undefined,\n min: number,\n max: number,\n step?: number\n): SliderMark[] {\n if (!marks) {\n return [];\n }\n if (Array.isArray(marks)) {\n return marks;\n }\n const s = step && step > 0 ? step : (max - min) / 10;\n const result: SliderMark[] = [];\n for (let v = min; v <= max + 1e-9; v += s) {\n result.push({ value: Math.round(v * 1e6) / 1e6 });\n }\n return result;\n}\n\nconst RangeSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function RangeSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n label,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n // consumed by the dispatcher / not valid DOM attributes — keep them off the span\n /* eslint-disable @typescript-eslint/no-unused-vars */\n range,\n variant,\n valueField,\n withTicks,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...rest\n } = props;\n\n const isVertical = orientation === \"vertical\";\n const normalize = (v: SliderValue | undefined): [number, number] => {\n const arr = Array.isArray(v) ? v : [min, max];\n const lo = Math.min(arr[0] ?? min, arr[1] ?? max);\n const hi = Math.max(arr[0] ?? min, arr[1] ?? max);\n return [lo, hi];\n };\n\n const isControlled = valueProp !== undefined;\n const [valueState, setValueState] = React.useState<[number, number]>(() => normalize(defaultValue));\n const value = isControlled ? normalize(valueProp) : valueState;\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const activeThumb = React.useRef<0 | 1>(0);\n const isPressedRef = React.useRef<boolean>(false);\n\n const markList = resolveMarks(marks, min, max, step);\n\n const positionToValue = (event: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent) => {\n const rect = containerRef.current?.getBoundingClientRect();\n if (!rect) {\n return min;\n }\n if (isVertical) {\n const y =\n (typeof (event as MouseEvent).clientY === \"number\"\n ? (event as MouseEvent).clientY\n : coordY(event as React.MouseEvent)) - rect.top;\n return rescale(rect.height - y, [0, rect.height], [min, max], { step });\n }\n const x =\n (typeof (event as MouseEvent).clientX === \"number\"\n ? (event as MouseEvent).clientX\n : coordX(event as React.MouseEvent)) - rect.left;\n return rescale(x, [0, rect.width], [min, max], { step });\n };\n\n const commit = (next: [number, number], event: Event | React.SyntheticEvent) => {\n const lo = Math.min(next[0], next[1]);\n const hi = Math.max(next[0], next[1]);\n const clamped: [number, number] = [Math.max(min, lo), Math.min(max, hi)];\n if (!isControlled) {\n setValueState(clamped);\n }\n onChange?.(event, clamped, props);\n };\n\n const moveThumb = (raw: number, event: Event | React.SyntheticEvent) => {\n const idx = activeThumb.current;\n const next: [number, number] = [value[0], value[1]];\n next[idx] = Math.max(min, Math.min(max, raw));\n commit(next, event);\n };\n\n const pickThumb = (raw: number) => {\n activeThumb.current = Math.abs(raw - value[0]) <= Math.abs(raw - value[1]) ? 0 : 1;\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (!isPressedRef.current) {\n return;\n }\n event.preventDefault();\n moveThumb(positionToValue(event), event);\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n });\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (disabled || event.button !== 0) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStartNative = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressedRef.current = true;\n moveThumb(raw, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n useSafeLayoutEffect(() => {\n const el = containerRef.current;\n if (!el) {\n return;\n }\n el.addEventListener(\"touchstart\", onTouchStartNative);\n return () => el.removeEventListener(\"touchstart\", onTouchStartNative);\n });\n\n const onThumbKeyDown = (idx: 0 | 1) => (event: React.KeyboardEvent) => {\n if (disabled) {\n return;\n }\n const delta = step && step > 0 ? step : 1;\n let next: number | null = null;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n next = value[idx] - delta;\n } else if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n next = value[idx] + delta;\n } else if (event.key === \"Home\") {\n next = min;\n } else if (event.key === \"End\") {\n next = max;\n }\n if (next !== null) {\n event.preventDefault();\n activeThumb.current = idx;\n moveThumb(next, event);\n }\n };\n\n const classNames = cn(\n \"smwb-slider\",\n \"smwb-slider--range\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const p0 = toPercent(value[0], min, max);\n const p1 = toPercent(value[1], min, max);\n const startPct = `${Math.min(p0, p1)}%`;\n const spanPct = `${Math.abs(p1 - p0)}%`;\n const mainStart = isVertical ? { bottom: `${p0}%` } : { left: `${p0}%` };\n const mainEnd = isVertical ? { bottom: `${p1}%` } : { left: `${p1}%` };\n const trackStyle = isVertical ? { bottom: startPct, height: spanPct } : { left: startPct, width: spanPct };\n\n return (\n <TextFieldWrapper label={label} helperText={helperText} disabled={disabled} error={error} fullWidth shrink>\n <div className=\"smwb-slider__container\">\n <span ref={rootRef} onMouseDown={onMouseDown} className={classNames} {...rest}>\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n {([0, 1] as const).map((idx) => (\n <span\n key={idx}\n className={cn(\"smwb-slider__thumb\", `smwb-slider__thumb--${idx === 0 ? \"start\" : \"end\"}`)}\n style={idx === 0 ? mainStart : mainEnd}\n >\n <input\n data-testid={`slider-input-${idx}`}\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n name={name ? `${name}[${idx}]` : undefined}\n value={value[idx]}\n disabled={disabled}\n onChange={() => undefined}\n onKeyDown={onThumbKeyDown(idx)}\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} ${idx === 0 ? \"minimum\" : \"maximum\"}` : undefined}\n aria-orientation={orientation}\n aria-valuenow={value[idx]}\n aria-valuemin={idx === 0 ? min : value[0]}\n aria-valuemax={idx === 0 ? value[1] : max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value[idx]) : undefined}\n aria-disabled={disabled || undefined}\n />\n </span>\n ))}\n </span>\n </div>\n </TextFieldWrapper>\n );\n});\n\nconst SingleSlider = React.forwardRef<HTMLSpanElement, SliderProps>(function SingleSlider(props, ref) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n min = 0,\n max = 100,\n name,\n disabled = false,\n className,\n step,\n variant = \"continuous\",\n valueField,\n withTicks,\n label,\n helperText,\n error,\n size = \"medium\",\n color = \"primary\",\n orientation = \"horizontal\",\n marks,\n // `range` is handled by the Slider dispatcher; destructured here to keep it off the DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n range,\n getAriaValueText,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n\n const singleDefault = typeof defaultValue === \"number\" ? defaultValue : undefined;\n const singleValueProp = typeof valueProp === \"number\" ? valueProp : undefined;\n const isVertical = orientation === \"vertical\";\n\n const [valueState, setValue] = React.useState<number>(singleDefault ?? min);\n const [isDragging, setIsDragging] = React.useState<boolean>(false);\n const [isActive, setIsActive] = React.useState<boolean>(false);\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n\n const containerRef = React.useRef<HTMLSpanElement>(null);\n const rootRef = useForkRef<HTMLSpanElement>(ref, containerRef);\n const isPressedRef = React.useRef<boolean>(false);\n\n const isControlled = singleValueProp !== undefined;\n const isDiscrete = variant === \"discrete\";\n const value = isControlled ? singleValueProp : valueState;\n\n const updateValue = (value: number, event: Event | React.SyntheticEvent) => {\n if (value < min || value > max) return;\n if (!isControlled) {\n setValue(value);\n }\n onChange?.(event, value, props);\n };\n\n const offsetToValue = (absolute: number, containerSize: number) => {\n return rescale(absolute, [0, containerSize], [min, max], { step });\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {\n if (disabled) {\n return;\n }\n\n if (event.button !== 0) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const absolutePosition = isVertical ? rect.height - (event.clientY - rect.top) : event.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n\n const onTouchStart = (event: TouchEvent) => {\n if (disabled) {\n return;\n }\n\n isPressedRef.current = true;\n\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n const touch = event.changedTouches?.[0];\n const absolutePosition = isVertical ? rect.height - (touch.clientY - rect.top) : touch.clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n updateValue(newValue, event);\n }\n\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n const onMouseMove = useEventCallback((event: MouseEvent | TouchEvent) => {\n if (isPressedRef.current) {\n const element = containerRef.current;\n const rect = element?.getBoundingClientRect();\n\n if (rect) {\n // TODO need clarification обработка разных событий разных типов 1 функцией\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientX = coordX(event);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const clientY = coordY(event);\n const absolutePosition = isVertical ? rect.height - (clientY - rect.top) : clientX - rect.left;\n const newValue = offsetToValue(absolutePosition, isVertical ? rect.height : rect.width);\n\n if (!isActive) {\n setIsActive(true);\n }\n\n if (value === newValue) {\n return;\n }\n\n if (!isDragging) {\n setIsDragging(true);\n }\n\n updateValue(newValue, event);\n }\n }\n });\n\n const onMouseEnd = useEventCallback(() => {\n isPressedRef.current = false;\n\n if (isDragging) {\n setIsDragging(false);\n }\n\n if (isActive) {\n setIsActive(false);\n }\n\n removeListeners();\n });\n\n const removeListeners = () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n\n const handleArrowsControls = (e: React.KeyboardEvent) => {\n if (!isFocused || disabled) return;\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") {\n updateValue(value - (step || 1), e);\n }\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") {\n updateValue(value + (step || 1), e);\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n document.removeEventListener(\"keydown\", handleArrowsControls as (e: unknown) => void);\n };\n\n useSafeLayoutEffect(() => {\n if (containerRef.current) {\n containerRef.current.addEventListener(\"touchstart\", onTouchStart);\n\n return () => {\n containerRef.current?.removeEventListener(\"touchstart\", onTouchStart);\n };\n }\n });\n\n useSafeLayoutEffect(() => {\n if (disabled && containerRef.current?.contains(document.activeElement)) {\n (document.activeElement as HTMLElement)?.blur();\n }\n }, [disabled]);\n\n const classNames = cn(\n \"smwb-slider\",\n className,\n {\n \"smwb-slider--disabled\": disabled,\n \"smwb-slider--dragging\": isDragging,\n \"smwb-slider--discrete\": isDiscrete,\n \"smwb-slider--vertical\": isVertical,\n },\n size !== \"medium\" && `smwb-slider_size-${size}`,\n color !== \"primary\" && `smwb-slider_color-${color}`\n );\n\n const pct = `${toPercent(value, min, max)}%`;\n const trackStyle = isVertical ? { height: pct } : { width: pct };\n const thumbStyle = isVertical ? { bottom: pct } : { left: pct };\n\n const getTicks = () => Array(Math.round(max / (step || 1)) + 1).fill(1) as number[];\n const markList = resolveMarks(marks, min, max, step);\n\n return (\n <TextFieldWrapper label={label} helperText={helperText} disabled={disabled} error={error} fullWidth shrink>\n <div className=\"smwb-slider__container\">\n <span\n onKeyDown={handleArrowsControls}\n ref={rootRef}\n onMouseDown={onMouseDown}\n className={classNames}\n tabIndex={disabled ? -1 : 0}\n onFocus={() => setIsFocused(true)}\n onBlur={handleBlur}\n {...rest}\n >\n {withTicks && (\n <span className=\"smwb-slider__ticks\" style={{ gap: `${step}` }}>\n {getTicks().map((t, idx) => (\n <span className=\"smwb-slider__tick\" key={idx} />\n ))}\n </span>\n )}\n {markList.length > 0 && (\n <span className=\"smwb-slider__marks\" aria-hidden=\"true\">\n {markList.map((m) => {\n const mp = `${toPercent(m.value, min, max)}%`;\n return (\n <span key={m.value} className=\"smwb-slider__mark\" style={isVertical ? { bottom: mp } : { left: mp }}>\n {m.label != null && <span className=\"smwb-slider__mark-label\">{m.label}</span>}\n </span>\n );\n })}\n </span>\n )}\n <span className=\"smwb-slider__rail\" />\n <span className=\"smwb-slider__track\" style={trackStyle} />\n <span\n className={cn(\"smwb-slider__thumb\", {\n \"smwb-slider__thumb--active\": isActive,\n \"smwb-slider__thumb--discrete\": isDiscrete,\n })}\n style={thumbStyle}\n >\n {isDiscrete && <span className=\"smwb-slider__thumb-tooltip\">{Math.round(value)}</span>}\n <input\n data-testid=\"slider-input\"\n className=\"smwb-slider__input\"\n type=\"range\"\n min={min}\n max={max}\n name={name}\n value={value}\n readOnly\n aria-label={ariaLabel}\n aria-orientation={orientation}\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuetext={getAriaValueText ? getAriaValueText(value) : undefined}\n aria-disabled={disabled || undefined}\n />\n </span>\n </span>\n {valueField && isDiscrete && (\n <TextField\n type=\"number\"\n value={value}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => updateValue(+e.target.value, e)}\n variant=\"filled\"\n helperText={null}\n />\n )}\n </div>\n </TextFieldWrapper>\n );\n});\n\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>(function Slider(props, ref) {\n const isRangeMode = props.range === true || Array.isArray(props.value) || Array.isArray(props.defaultValue);\n\n return isRangeMode ? <RangeSlider ref={ref} {...props} /> : <SingleSlider ref={ref} {...props} />;\n});\n"],"names":["resolveMarks","marks","min","max","step","s","result","v","RangeSlider","React","props","ref","defaultValue","valueProp","onChange","name","disabled","className","label","helperText","error","size","color","orientation","getAriaValueText","ariaLabel","range","variant","valueField","withTicks","rest","isVertical","normalize","arr","lo","_a","_b","hi","_c","_d","isControlled","valueState","setValueState","value","containerRef","rootRef","useForkRef","activeThumb","isPressedRef","markList","positionToValue","event","rect","y","coordY","rescale","x","coordX","commit","next","clamped","moveThumb","raw","idx","pickThumb","onMouseMove","useEventCallback","onMouseEnd","onMouseDown","onTouchStartNative","useSafeLayoutEffect","el","onThumbKeyDown","delta","classNames","cn","p0","toPercent","p1","startPct","spanPct","mainStart","mainEnd","trackStyle","jsx","TextFieldWrapper","m","mp","SingleSlider","singleDefault","singleValueProp","setValue","isDragging","setIsDragging","isActive","setIsActive","isFocused","setIsFocused","isDiscrete","updateValue","offsetToValue","absolute","containerSize","element","absolutePosition","newValue","onTouchStart","touch","clientX","clientY","removeListeners","handleArrowsControls","e","handleBlur","pct","thumbStyle","getTicks","jsxs","TextField","Slider"],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { jsx as k } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/textField/textField.entry.css';/* empty css */
2
+ import '../../../assets/styles/less/components/textField/textField.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
3
4
  import t from "react";
4
5
  import C from "clsx";
5
6
  import { useSafeLayoutEffect as J } from "../../../hooks/useSafeLayoutEffect.js";
6
7
  import { useForkRef as K } from "../../../hooks/useForkRef.js";
7
8
  import { isFilled as Q } from "./utils.js";
8
9
  import { TextFieldWrapper as U } from "./textFieldWrapper.js";
9
- const oe = t.forwardRef(function(a, S) {
10
+ const le = t.forwardRef(function(a, S) {
10
11
  const {
11
12
  label: F,
12
13
  helperText: T,
@@ -14,7 +15,7 @@ const oe = t.forwardRef(function(a, S) {
14
15
  size: _ = "medium",
15
16
  required: h,
16
17
  className: y,
17
- disabled: i,
18
+ disabled: n,
18
19
  value: s,
19
20
  defaultValue: B,
20
21
  onChange: u,
@@ -34,27 +35,27 @@ const oe = t.forwardRef(function(a, S) {
34
35
  inputMode: I,
35
36
  ...M
36
37
  } = a, [p, x] = t.useState(!1), [W, j] = t.useState(!1), { current: o } = t.useRef(s != null), r = t.useRef(null), H = K(S, r), L = (e) => {
37
- if (i) {
38
+ if (n) {
38
39
  e.stopPropagation();
39
40
  return;
40
41
  }
41
42
  f == null || f(e), x(!0);
42
43
  }, O = (e) => {
43
44
  if (!o) {
44
- const n = e.target || r.current;
45
+ const i = e.target || r.current;
45
46
  l({
46
- value: n.value
47
+ value: i.value
47
48
  });
48
49
  }
49
50
  c == null || c(e, a), x(!1);
50
51
  }, l = t.useCallback((e) => {
51
- const n = !!Q(e);
52
- j((g) => g === n ? g : n);
52
+ const i = !!Q(e);
53
+ j((g) => g === i ? g : i);
53
54
  }, []), V = (e) => {
54
55
  if (!o) {
55
- const n = e.target || r.current;
56
+ const i = e.target || r.current;
56
57
  l({
57
- value: n.value
58
+ value: i.value
58
59
  });
59
60
  }
60
61
  u == null || u(e, a);
@@ -62,8 +63,8 @@ const oe = t.forwardRef(function(a, S) {
62
63
  r.current && e.currentTarget === e.target && (e.preventDefault(), r.current.focus());
63
64
  };
64
65
  t.useEffect(() => {
65
- i && p && x(!1);
66
- }, [i, p]), t.useEffect(() => {
66
+ n && p && x(!1);
67
+ }, [n, p]), t.useEffect(() => {
67
68
  o || l(r.current);
68
69
  }), J(() => {
69
70
  o && l({ value: s });
@@ -81,7 +82,7 @@ const oe = t.forwardRef(function(a, S) {
81
82
  label: F,
82
83
  helperText: T,
83
84
  variant: v,
84
- disabled: i,
85
+ disabled: n,
85
86
  className: C(y, _ !== "medium" && `smwb-text-field_size-${_}`),
86
87
  error: b,
87
88
  fullWidth: z,
@@ -105,7 +106,7 @@ const oe = t.forwardRef(function(a, S) {
105
106
  "aria-invalid": b || void 0,
106
107
  "aria-required": h || void 0,
107
108
  placeholder: q,
108
- disabled: i,
109
+ disabled: n,
109
110
  value: s,
110
111
  className: G,
111
112
  ref: H,
@@ -121,6 +122,6 @@ const oe = t.forwardRef(function(a, S) {
121
122
  );
122
123
  });
123
124
  export {
124
- oe as TextField
125
+ le as TextField
125
126
  };
126
127
  //# sourceMappingURL=textField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textField.js","sources":["../../../../src/components/inputs/textField/textField.tsx"],"sourcesContent":["import React, { ChangeEventHandler } from \"react\";\nimport cn from \"clsx\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { isFilled } from \"./utils\";\nimport { TextFieldWrapper } from \"./textFieldWrapper\";\n\nexport interface TextFieldProps extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"onBlur\" | \"size\"\n> {\n label?: string;\n helperText?: React.ReactNode;\n variant?: \"outlined\" | \"filled\";\n size?: \"small\" | \"medium\" | \"large\";\n required?: boolean;\n disabled?: boolean;\n value?: string | number;\n className?: string;\n placeholder?: string;\n defaultValue?: string;\n error?: boolean;\n name?: string;\n type?: string;\n readOnly?: boolean;\n fullWidth?: boolean;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>, data: TextFieldProps) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, data: TextFieldProps) => void;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n id?: string;\n inline?: boolean;\n autoComplete?: string;\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(function TextField(props, ref) {\n const {\n label,\n helperText,\n variant = \"outlined\",\n size = \"medium\",\n required,\n className,\n disabled,\n value,\n defaultValue,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n name,\n type = \"text\",\n readOnly,\n placeholder,\n fullWidth,\n id,\n startAdornment,\n endAdornment,\n inline,\n autoComplete,\n inputMode,\n ...rest\n } = props;\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n const [isFilledState, setIsFilledState] = React.useState<boolean>(false);\n\n const { current: isControlled } = React.useRef<boolean>(value != null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef<HTMLInputElement>(ref, inputRef);\n\n const onFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n onFocusProp?.(event);\n\n setIsFocused(true);\n };\n\n const onBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onBlurProp?.(event, props);\n setIsFocused(false);\n };\n\n const checkDirty = React.useCallback((obj: Parameters<typeof isFilled>[0]) => {\n const filled = Boolean(isFilled(obj));\n setIsFilledState((prev) => (prev === filled ? prev : filled));\n }, []);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onChangeProp?.(event, props);\n };\n\n const onHolderMouseDown: React.MouseEventHandler<HTMLDivElement> = (event) => {\n if (inputRef.current && event.currentTarget === event.target) {\n event.preventDefault();\n inputRef.current.focus();\n }\n };\n\n React.useEffect(() => {\n if (disabled && isFocused) {\n setIsFocused(false);\n }\n }, [disabled, isFocused]);\n\n // Uncontrolled inputs can receive a value imperatively — e.g. react-hook-form's\n // `register` sets the DOM value on `reset(...)` without firing onChange. Re-derive\n // the filled state from the DOM on every render (the form re-renders on reset) so\n // the floating label still rises. `checkDirty` is a no-op when nothing changed.\n React.useEffect(() => {\n if (!isControlled) {\n checkDirty(inputRef.current);\n }\n });\n\n useSafeLayoutEffect(() => {\n if (isControlled) {\n checkDirty({ value });\n }\n }, [value, isControlled, checkDirty]);\n\n const inputClasses = cn(\n \"smwb-text-field__input\",\n (!label || inline) && \"smwb-text-field__input--show-placeholder\",\n startAdornment && \"smwb-text-field__input--adornment-start\",\n endAdornment && \"smwb-text-field__input--adornment-end\",\n inline && \"smwb-text-field__input--inline\"\n );\n\n return (\n <TextFieldWrapper\n label={label}\n helperText={helperText}\n variant={variant}\n disabled={disabled}\n className={cn(className, size !== \"medium\" && `smwb-text-field_size-${size}`)}\n error={error}\n fullWidth={fullWidth}\n isFilledState={isFilledState}\n isFocused={isFocused}\n htmlFor={id}\n shrink={Boolean(startAdornment)}\n onHolderMouseDown={onHolderMouseDown}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n inline={inline}\n {...rest}\n >\n <input\n type={type}\n defaultValue={defaultValue}\n name={name}\n readOnly={readOnly}\n required={required}\n aria-invalid={error || undefined}\n aria-required={required || undefined}\n placeholder={placeholder}\n disabled={disabled}\n value={value}\n className={inputClasses}\n ref={inputForkRef}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n id={id}\n autoComplete={autoComplete}\n inputMode={inputMode}\n />\n </TextFieldWrapper>\n );\n});\n"],"names":["TextField","React","props","ref","label","helperText","variant","size","required","className","disabled","value","defaultValue","onChangeProp","onFocusProp","onBlurProp","error","name","type","readOnly","placeholder","fullWidth","id","startAdornment","endAdornment","inline","autoComplete","inputMode","rest","isFocused","setIsFocused","isFilledState","setIsFilledState","isControlled","inputRef","inputForkRef","useForkRef","onFocus","event","onBlur","element","checkDirty","obj","filled","isFilled","prev","onChange","onHolderMouseDown","useSafeLayoutEffect","inputClasses","cn","jsx","TextFieldWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"textField.js","sources":["../../../../src/components/inputs/textField/textField.tsx"],"sourcesContent":["import React, { ChangeEventHandler } from \"react\";\nimport cn from \"clsx\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { isFilled } from \"./utils\";\nimport { TextFieldWrapper } from \"./textFieldWrapper\";\n\nexport interface TextFieldProps extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"onBlur\" | \"size\"\n> {\n label?: string;\n helperText?: React.ReactNode;\n variant?: \"outlined\" | \"filled\";\n size?: \"small\" | \"medium\" | \"large\";\n required?: boolean;\n disabled?: boolean;\n value?: string | number;\n className?: string;\n placeholder?: string;\n defaultValue?: string;\n error?: boolean;\n name?: string;\n type?: string;\n readOnly?: boolean;\n fullWidth?: boolean;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>, data: TextFieldProps) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, data: TextFieldProps) => void;\n startAdornment?: React.ReactNode;\n endAdornment?: React.ReactNode;\n id?: string;\n inline?: boolean;\n autoComplete?: string;\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(function TextField(props, ref) {\n const {\n label,\n helperText,\n variant = \"outlined\",\n size = \"medium\",\n required,\n className,\n disabled,\n value,\n defaultValue,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n name,\n type = \"text\",\n readOnly,\n placeholder,\n fullWidth,\n id,\n startAdornment,\n endAdornment,\n inline,\n autoComplete,\n inputMode,\n ...rest\n } = props;\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n const [isFilledState, setIsFilledState] = React.useState<boolean>(false);\n\n const { current: isControlled } = React.useRef<boolean>(value != null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef<HTMLInputElement>(ref, inputRef);\n\n const onFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n onFocusProp?.(event);\n\n setIsFocused(true);\n };\n\n const onBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onBlurProp?.(event, props);\n setIsFocused(false);\n };\n\n const checkDirty = React.useCallback((obj: Parameters<typeof isFilled>[0]) => {\n const filled = Boolean(isFilled(obj));\n setIsFilledState((prev) => (prev === filled ? prev : filled));\n }, []);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n checkDirty({\n value: element.value,\n });\n }\n onChangeProp?.(event, props);\n };\n\n const onHolderMouseDown: React.MouseEventHandler<HTMLDivElement> = (event) => {\n if (inputRef.current && event.currentTarget === event.target) {\n event.preventDefault();\n inputRef.current.focus();\n }\n };\n\n React.useEffect(() => {\n if (disabled && isFocused) {\n setIsFocused(false);\n }\n }, [disabled, isFocused]);\n\n // Uncontrolled inputs can receive a value imperatively — e.g. react-hook-form's\n // `register` sets the DOM value on `reset(...)` without firing onChange. Re-derive\n // the filled state from the DOM on every render (the form re-renders on reset) so\n // the floating label still rises. `checkDirty` is a no-op when nothing changed.\n React.useEffect(() => {\n if (!isControlled) {\n checkDirty(inputRef.current);\n }\n });\n\n useSafeLayoutEffect(() => {\n if (isControlled) {\n checkDirty({ value });\n }\n }, [value, isControlled, checkDirty]);\n\n const inputClasses = cn(\n \"smwb-text-field__input\",\n (!label || inline) && \"smwb-text-field__input--show-placeholder\",\n startAdornment && \"smwb-text-field__input--adornment-start\",\n endAdornment && \"smwb-text-field__input--adornment-end\",\n inline && \"smwb-text-field__input--inline\"\n );\n\n return (\n <TextFieldWrapper\n label={label}\n helperText={helperText}\n variant={variant}\n disabled={disabled}\n className={cn(className, size !== \"medium\" && `smwb-text-field_size-${size}`)}\n error={error}\n fullWidth={fullWidth}\n isFilledState={isFilledState}\n isFocused={isFocused}\n htmlFor={id}\n shrink={Boolean(startAdornment)}\n onHolderMouseDown={onHolderMouseDown}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n inline={inline}\n {...rest}\n >\n <input\n type={type}\n defaultValue={defaultValue}\n name={name}\n readOnly={readOnly}\n required={required}\n aria-invalid={error || undefined}\n aria-required={required || undefined}\n placeholder={placeholder}\n disabled={disabled}\n value={value}\n className={inputClasses}\n ref={inputForkRef}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n id={id}\n autoComplete={autoComplete}\n inputMode={inputMode}\n />\n </TextFieldWrapper>\n );\n});\n"],"names":["TextField","React","props","ref","label","helperText","variant","size","required","className","disabled","value","defaultValue","onChangeProp","onFocusProp","onBlurProp","error","name","type","readOnly","placeholder","fullWidth","id","startAdornment","endAdornment","inline","autoComplete","inputMode","rest","isFocused","setIsFocused","isFilledState","setIsFilledState","isControlled","inputRef","inputForkRef","useForkRef","onFocus","event","onBlur","element","checkDirty","obj","filled","isFilled","prev","onChange","onHolderMouseDown","useSafeLayoutEffect","inputClasses","cn","jsx","TextFieldWrapper"],"mappings":";;;;;;;;;AAqCO,MAAMA,KAAYC,EAAM,WAA6C,SAAmBC,GAAOC,GAAK;AACzG,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAUC;AAAA,IACV,SAASC;AAAA,IACT,QAAQC;AAAA,IACR,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,IAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACD1B,GACE,CAAC2B,GAAWC,CAAY,IAAI7B,EAAM,SAAkB,EAAK,GACzD,CAAC8B,GAAeC,CAAgB,IAAI/B,EAAM,SAAkB,EAAK,GAEjE,EAAE,SAASgC,EAAA,IAAiBhC,EAAM,OAAgBU,KAAS,IAAI,GAC/DuB,IAAWjC,EAAM,OAAyB,IAAI,GAC9CkC,IAAeC,EAA6BjC,GAAK+B,CAAQ,GAEzDG,IAAU,CAACC,MAA8C;AAC7D,QAAI5B,GAAU;AACZ,MAAA4B,EAAM,gBAAA;AACN;AAAA,IACF;AAEA,IAAAxB,KAAA,QAAAA,EAAcwB,IAEdR,EAAa,EAAI;AAAA,EACnB,GAEMS,IAAS,CAACD,MAA8C;AAC5D,QAAI,CAACL,GAAc;AACjB,YAAMO,IAAUF,EAAM,UAAUJ,EAAS;AAEzC,MAAAO,EAAW;AAAA,QACT,OAAOD,EAAQ;AAAA,MAAA,CAChB;AAAA,IACH;AACA,IAAAzB,KAAA,QAAAA,EAAauB,GAAOpC,IACpB4B,EAAa,EAAK;AAAA,EACpB,GAEMW,IAAaxC,EAAM,YAAY,CAACyC,MAAwC;AAC5E,UAAMC,IAAS,EAAQC,EAASF,CAAG;AACnC,IAAAV,EAAiB,CAACa,MAAUA,MAASF,IAASE,IAAOF,CAAO;AAAA,EAC9D,GAAG,CAAA,CAAE,GAECG,IAAiD,CAACR,MAAU;AAChE,QAAI,CAACL,GAAc;AACjB,YAAMO,IAAUF,EAAM,UAAUJ,EAAS;AAEzC,MAAAO,EAAW;AAAA,QACT,OAAOD,EAAQ;AAAA,MAAA,CAChB;AAAA,IACH;AACA,IAAA3B,KAAA,QAAAA,EAAeyB,GAAOpC;AAAA,EACxB,GAEM6C,IAA6D,CAACT,MAAU;AAC5E,IAAIJ,EAAS,WAAWI,EAAM,kBAAkBA,EAAM,WACpDA,EAAM,eAAA,GACNJ,EAAS,QAAQ,MAAA;AAAA,EAErB;AAEA,EAAAjC,EAAM,UAAU,MAAM;AACpB,IAAIS,KAAYmB,KACdC,EAAa,EAAK;AAAA,EAEtB,GAAG,CAACpB,GAAUmB,CAAS,CAAC,GAMxB5B,EAAM,UAAU,MAAM;AACpB,IAAKgC,KACHQ,EAAWP,EAAS,OAAO;AAAA,EAE/B,CAAC,GAEDc,EAAoB,MAAM;AACxB,IAAIf,KACFQ,EAAW,EAAE,OAAA9B,GAAO;AAAA,EAExB,GAAG,CAACA,GAAOsB,GAAcQ,CAAU,CAAC;AAEpC,QAAMQ,IAAeC;AAAA,IACnB;AAAA,KACC,CAAC9C,KAASqB,MAAW;AAAA,IACtBF,KAAkB;AAAA,IAClBC,KAAgB;AAAA,IAChBC,KAAU;AAAA,EAAA;AAGZ,SACE,gBAAA0B;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAhD;AAAA,MACA,YAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAAI;AAAA,MACA,WAAWwC,EAAGzC,GAAWF,MAAS,YAAY,wBAAwBA,CAAI,EAAE;AAAA,MAC5E,OAAAS;AAAA,MACA,WAAAK;AAAA,MACA,eAAAU;AAAA,MACA,WAAAF;AAAA,MACA,SAASP;AAAA,MACT,QAAQ,EAAQC;AAAA,MAChB,mBAAAwB;AAAA,MACA,gBAAAxB;AAAA,MACA,cAAAC;AAAA,MACA,QAAAC;AAAA,MACC,GAAGG;AAAA,MAEJ,UAAA,gBAAAuB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAAjC;AAAA,UACA,cAAAN;AAAA,UACA,MAAAK;AAAA,UACA,UAAAE;AAAA,UACA,UAAAX;AAAA,UACA,gBAAcQ,KAAS;AAAA,UACvB,iBAAeR,KAAY;AAAA,UAC3B,aAAAY;AAAA,UACA,UAAAV;AAAA,UACA,OAAAC;AAAA,UACA,WAAWsC;AAAA,UACX,KAAKd;AAAA,UACL,UAAAW;AAAA,UACA,SAAAT;AAAA,UACA,QAAAE;AAAA,UACA,IAAAjB;AAAA,UACA,cAAAI;AAAA,UACA,WAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,CAAC;"}
@@ -4,4 +4,4 @@ export declare function isFilled(obj?: {
4
4
  value?: unknown;
5
5
  defaultValue?: unknown;
6
6
  } | null): boolean | null | undefined;
7
- export declare function isHostComponent(element: ElementType): element is "symbol" | "object" | "input" | "progress" | "select" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "blockquote" | "body" | "br" | "button" | "canvas" | "caption" | "cite" | "code" | "col" | "colgroup" | "data" | "datalist" | "dd" | "del" | "details" | "dfn" | "dialog" | "div" | "dl" | "dt" | "em" | "embed" | "fieldset" | "figcaption" | "figure" | "footer" | "form" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "head" | "header" | "hgroup" | "hr" | "html" | "i" | "iframe" | "img" | "ins" | "kbd" | "label" | "legend" | "li" | "link" | "main" | "map" | "mark" | "menu" | "meta" | "meter" | "nav" | "noscript" | "ol" | "optgroup" | "option" | "output" | "p" | "picture" | "pre" | "q" | "rp" | "rt" | "ruby" | "s" | "samp" | "script" | "search" | "section" | "slot" | "small" | "source" | "span" | "strong" | "style" | "sub" | "summary" | "sup" | "table" | "tbody" | "td" | "template" | "textarea" | "tfoot" | "th" | "thead" | "time" | "title" | "tr" | "track" | "u" | "ul" | "var" | "video" | "wbr" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "set" | "stop" | "svg" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | "big" | "center" | "keygen" | "menuitem" | "param" | "noindex" | "webview";
7
+ export declare function isHostComponent(element: ElementType): element is "symbol" | "object" | "text" | "span" | "div" | "slot" | "style" | "title" | "center" | "button" | "meter" | "textarea" | "sub" | "progress" | "ruby" | "table" | "small" | "circle" | "embed" | "pre" | "caption" | "menu" | "menuitem" | "search" | "big" | "link" | "sup" | "article" | "dialog" | "figure" | "form" | "img" | "main" | "option" | "switch" | "time" | "map" | "filter" | "g" | "b" | "legend" | "data" | "canvas" | "svg" | "label" | "summary" | "line" | "p" | "input" | "select" | "a" | "abbr" | "address" | "area" | "aside" | "audio" | "base" | "bdi" | "bdo" | "blockquote" | "body" | "br" | "cite" | "code" | "col" | "colgroup" | "datalist" | "dd" | "del" | "details" | "dfn" | "dl" | "dt" | "em" | "fieldset" | "figcaption" | "footer" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "head" | "header" | "hgroup" | "hr" | "html" | "i" | "iframe" | "ins" | "kbd" | "li" | "mark" | "meta" | "nav" | "noscript" | "ol" | "optgroup" | "output" | "picture" | "q" | "rp" | "rt" | "s" | "samp" | "script" | "section" | "source" | "strong" | "tbody" | "td" | "template" | "tfoot" | "th" | "thead" | "tr" | "track" | "u" | "ul" | "var" | "video" | "wbr" | "animate" | "animateMotion" | "animateTransform" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "foreignObject" | "image" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "set" | "stop" | "textPath" | "tspan" | "use" | "view" | "keygen" | "param" | "noindex" | "webview";
@@ -1,115 +1,118 @@
1
- import { jsxs as I, Fragment as N, jsx as n } from "react/jsx-runtime";
2
- import '../../../assets/styles/less/components/timePicker/timePicker.entry.css';/* empty css */
3
- import _, { useMemo as U, useState as h, useRef as C, useCallback as i } from "react";
4
- import { useFloating as $, autoUpdate as q } from "@floating-ui/react";
5
- import z from "react-transition-group/Transition";
6
- import { resolvePlacement as G, buildFloatingMiddleware as H } from "../../../utils/floating.js";
7
- import { useSafeLayoutEffect as J } from "../../../hooks/useSafeLayoutEffect.js";
8
- import { useForkRef as R } from "../../../hooks/useForkRef.js";
9
- import { TimePickerInput as K } from "./timePickerInput.js";
10
- import { TimePickerColumns as Q } from "./timePickerColumns.js";
11
- import { isValidTimeDate as T } from "./timeUtils.js";
12
- import { createPortal as W } from "react-dom";
13
- import { ClickAwayListener as X } from "../../clickAwayListener/clickAwayListener.js";
14
- const Y = (m) => ({
15
- transition: `opacity ${m}ms ease-in-out`,
1
+ import { jsxs as U, Fragment as $, jsx as n } from "react/jsx-runtime";
2
+ import '../../../assets/styles/less/components/timePicker/timePicker.entry.css';import '../../../assets/styles/less/tokens.entry.css';/* empty css */
3
+ /* empty css */
4
+ import q, { useMemo as z, useState as m, useRef as C, useCallback as i } from "react";
5
+ import { useFloating as G, autoUpdate as H } from "@floating-ui/react";
6
+ import J from "react-transition-group/Transition";
7
+ import { resolvePlacement as K, buildFloatingMiddleware as Q } from "../../../utils/floating.js";
8
+ import { useSafeLayoutEffect as P } from "../../../hooks/useSafeLayoutEffect.js";
9
+ import { useForkRef as T } from "../../../hooks/useForkRef.js";
10
+ import { TimePickerInput as W } from "./timePickerInput.js";
11
+ import { TimePickerColumns as X } from "./timePickerColumns.js";
12
+ import { isValidTimeDate as F } from "./timeUtils.js";
13
+ import { createPortal as Y } from "react-dom";
14
+ import { ClickAwayListener as Z } from "../../clickAwayListener/clickAwayListener.js";
15
+ const ee = (u) => ({
16
+ transition: `opacity ${u}ms ease-in-out`,
16
17
  opacity: 0
17
- }), Z = {
18
+ }), te = {
18
19
  entering: { opacity: 1 },
19
20
  entered: { opacity: 1 },
20
21
  exiting: { opacity: 0 }
21
- }, de = _.forwardRef(function(a, F) {
22
+ }, ge = q.forwardRef(function(a, S) {
22
23
  const {
23
24
  value: l,
24
25
  onChange: r,
25
- placement: P = "bottom-start",
26
+ placement: x = "bottom-start",
26
27
  disabled: t,
27
28
  disableClock: f,
28
- clockAriaLabel: S = "Choose time",
29
- format: u,
30
- onBlur: x,
31
- ...D
32
- } = a, o = U(() => l === void 0 ? void 0 : new Date(l), [l]), [E, d] = h(() => T(o) ? o : /* @__PURE__ */ new Date()), [p, s] = h(!1), k = C(null), c = C(null), g = G(P), { refs: w, floatingStyles: O } = $({
33
- open: p,
34
- placement: g.placement,
35
- whileElementsMounted: q,
36
- middleware: H(g)
37
- }), V = R(k, w.setReference, F), A = R(c, w.setFloating);
38
- J(() => {
39
- t || d(T(o) ? o : /* @__PURE__ */ new Date());
29
+ clockAriaLabel: D = "Choose time",
30
+ format: d,
31
+ onBlur: E,
32
+ ...O
33
+ } = a, o = z(() => l === void 0 ? void 0 : new Date(l), [l]), [V, p] = m(() => F(o) ? o : /* @__PURE__ */ new Date()), [k, s] = m(!1), g = C(null), c = C(null), w = K(x), { refs: y, floatingStyles: A } = G({
34
+ open: k,
35
+ placement: w.placement,
36
+ whileElementsMounted: H,
37
+ middleware: Q(w)
38
+ }), B = T(g, y.setReference, S), L = T(c, y.setFloating), [v, M] = m();
39
+ P(() => {
40
+ M(document.body);
41
+ }, []), P(() => {
42
+ t || p(F(o) ? o : /* @__PURE__ */ new Date());
40
43
  }, [o, t]);
41
- const B = i(() => {
44
+ const j = i(() => {
42
45
  t || s((e) => !e);
43
- }, [t]), L = i((e) => {
44
- var v, b;
45
- const y = e.target;
46
- (v = c.current) != null && v.contains(y) || (b = k.current) != null && b.contains(y) || s(!1);
47
- }, []), M = i(
46
+ }, [t]), I = i((e) => {
47
+ var h, R;
48
+ const b = e.target;
49
+ (h = c.current) != null && h.contains(b) || (R = g.current) != null && R.contains(b) || s(!1);
50
+ }, []), N = i(
48
51
  (e) => {
49
- d(e), r == null || r(void 0, e, a);
52
+ p(e), r == null || r(void 0, e, a);
50
53
  },
51
54
  [r, a]
52
- ), j = i(() => {
55
+ ), _ = i(() => {
53
56
  s(!1);
54
57
  }, []);
55
- return /* @__PURE__ */ I(N, { children: [
58
+ return /* @__PURE__ */ U($, { children: [
56
59
  /* @__PURE__ */ n(
57
- K,
60
+ W,
58
61
  {
59
- ref: V,
62
+ ref: B,
60
63
  value: o,
61
64
  onChange: r,
62
- onBlur: x,
63
- onToggle: B,
65
+ onBlur: E,
66
+ onToggle: j,
64
67
  disabled: t,
65
68
  disableClock: f,
66
- format: u,
67
- ...D
69
+ format: d,
70
+ ...O
68
71
  }
69
72
  ),
70
- W(
73
+ v ? Y(
71
74
  /* @__PURE__ */ n(
72
- z,
75
+ J,
73
76
  {
74
77
  nodeRef: c,
75
- in: p && !t && !f,
78
+ in: k && !t && !f,
76
79
  timeout: 150,
77
80
  mountOnEnter: !0,
78
81
  unmountOnExit: !0,
79
- children: (e) => /* @__PURE__ */ n(X, { onClickAway: L, children: /* @__PURE__ */ n(
82
+ children: (e) => /* @__PURE__ */ n(Z, { onClickAway: I, children: /* @__PURE__ */ n(
80
83
  "div",
81
84
  {
82
- ref: A,
85
+ ref: L,
83
86
  className: "smwb-date-picker smwb-time-picker",
84
87
  style: {
85
- ...O,
86
- ...Y(150),
87
- ...Z[e]
88
+ ...A,
89
+ ...ee(150),
90
+ ...te[e]
88
91
  },
89
92
  "data-testid": "time-picker",
90
93
  "data-smwb-overlay-layer": "",
91
94
  role: "dialog",
92
95
  "aria-modal": "false",
93
- "aria-label": S,
96
+ "aria-label": D,
94
97
  children: /* @__PURE__ */ n("div", { className: "smwb-date-picker__inner", children: /* @__PURE__ */ n(
95
- Q,
98
+ X,
96
99
  {
97
- value: E,
98
- format: u,
99
- onChange: M,
100
- onComplete: j
100
+ value: V,
101
+ format: d,
102
+ onChange: N,
103
+ onComplete: _
101
104
  }
102
105
  ) })
103
106
  }
104
107
  ) })
105
108
  }
106
109
  ),
107
- document.body
108
- )
110
+ v
111
+ ) : null
109
112
  ] });
110
113
  });
111
114
  export {
112
- de as TimePicker,
113
- de as default
115
+ ge as TimePicker,
116
+ ge as default
114
117
  };
115
118
  //# sourceMappingURL=timePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timePicker.js","sources":["../../../../src/components/inputs/timePicker/timePicker.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from \"react\";\nimport { autoUpdate, useFloating } from \"@floating-ui/react\";\nimport Transition, { TransitionStatus } from \"react-transition-group/Transition\";\nimport { buildFloatingMiddleware, Placement, resolvePlacement } from \"../../../utils/floating\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { TextFieldProps } from \"../textField\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { TimePickerInput } from \"./timePickerInput\";\nimport { TimePickerColumns } from \"./timePickerColumns\";\nimport { isValidTimeDate } from \"./timeUtils\";\nimport { createPortal } from \"react-dom\";\n\nconst defaultStyle = (duration: number) => ({\n transition: `opacity ${duration}ms ease-in-out`,\n opacity: 0,\n});\n\nconst transitionStyles = {\n entering: { opacity: 1 },\n entered: { opacity: 1 },\n exiting: { opacity: 0 },\n} as Record<TransitionStatus, { opacity: number }>;\n\nexport interface TimePickerProps extends Omit<TextFieldProps, \"onBlur\" | \"onChange\" | \"value\" | \"defaultValue\"> {\n /** Time format pattern with tokens HH, mm, ss, e.g. \"HH:mm\" or \"HH:mm:ss\". */\n format?: string;\n placement?: Placement;\n disableClock?: boolean;\n label?: string;\n clockAriaLabel?: string;\n autoComplete?: string;\n value?: Date | string;\n clockIcon?: React.ReactNode;\n onChange?: (event?: React.ChangeEvent<HTMLInputElement>, value?: Date, data?: TimePickerProps) => void;\n onBlur?: (event?: React.FocusEvent<HTMLInputElement>, value?: Date, data?: TimePickerProps) => void;\n}\n\nexport const TimePicker = React.forwardRef(function TimePicker(props: TimePickerProps, ref) {\n const {\n value: valueProp,\n onChange: onChangeProp,\n placement = \"bottom-start\",\n disabled,\n disableClock,\n clockAriaLabel = \"Choose time\",\n format,\n onBlur: onBlurProp,\n ...rest\n } = props;\n const value = useMemo(() => (valueProp === undefined ? undefined : new Date(valueProp)), [valueProp]);\n const [viewValue, setViewValue] = useState<Date>(() => (isValidTimeDate(value) ? value : new Date()));\n const [isOpen, setIsOpen] = useState(false);\n\n const anchorRef = useRef<HTMLDivElement | null>(null);\n const clockRef = useRef<HTMLDivElement | null>(null);\n\n const resolved = resolvePlacement(placement);\n const { refs, floatingStyles } = useFloating({\n open: isOpen,\n placement: resolved.placement,\n whileElementsMounted: autoUpdate,\n middleware: buildFloatingMiddleware(resolved),\n });\n\n const anchorForkRef = useForkRef(anchorRef, refs.setReference, ref);\n const clockForkRef = useForkRef(clockRef, refs.setFloating);\n\n useSafeLayoutEffect(() => {\n if (disabled) {\n return;\n }\n\n setViewValue(isValidTimeDate(value) ? value : new Date());\n }, [value, disabled]);\n\n const onToggle = useCallback(() => {\n if (!disabled) {\n setIsOpen((prevState) => !prevState);\n }\n }, [disabled]);\n\n const onClickAway = useCallback((event: Event | React.SyntheticEvent) => {\n const target = event.target as HTMLElement;\n\n if (clockRef.current?.contains(target) || anchorRef.current?.contains(target)) {\n return;\n }\n\n setIsOpen(false);\n }, []);\n\n const onTimeChange = useCallback(\n (next: Date) => {\n setViewValue(next);\n onChangeProp?.(undefined, next, props);\n },\n [onChangeProp, props]\n );\n\n const onComplete = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n return (\n <>\n <TimePickerInput\n ref={anchorForkRef}\n value={value}\n onChange={onChangeProp}\n onBlur={onBlurProp}\n onToggle={onToggle}\n disabled={disabled}\n disableClock={disableClock}\n format={format}\n {...rest}\n />\n {createPortal(\n <Transition\n nodeRef={clockRef}\n in={isOpen && !disabled && !disableClock}\n timeout={150}\n mountOnEnter\n unmountOnExit\n >\n {(state) => (\n <ClickAwayListener onClickAway={onClickAway}>\n <div\n ref={clockForkRef}\n className=\"smwb-date-picker smwb-time-picker\"\n style={{\n ...floatingStyles,\n ...defaultStyle(150),\n ...transitionStyles[state],\n }}\n data-testid=\"time-picker\"\n data-smwb-overlay-layer=\"\"\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label={clockAriaLabel}\n >\n <div className=\"smwb-date-picker__inner\">\n <TimePickerColumns\n value={viewValue}\n format={format}\n onChange={onTimeChange}\n onComplete={onComplete}\n />\n </div>\n </div>\n </ClickAwayListener>\n )}\n </Transition>,\n document.body\n )}\n </>\n );\n});\n\nexport default TimePicker;\n"],"names":["defaultStyle","duration","transitionStyles","TimePicker","React","props","ref","valueProp","onChangeProp","placement","disabled","disableClock","clockAriaLabel","format","onBlurProp","rest","value","useMemo","viewValue","setViewValue","useState","isValidTimeDate","isOpen","setIsOpen","anchorRef","useRef","clockRef","resolved","resolvePlacement","refs","floatingStyles","useFloating","autoUpdate","buildFloatingMiddleware","anchorForkRef","useForkRef","clockForkRef","useSafeLayoutEffect","onToggle","useCallback","prevState","onClickAway","event","target","_a","_b","onTimeChange","next","onComplete","jsxs","Fragment","jsx","TimePickerInput","createPortal","Transition","state","ClickAwayListener","TimePickerColumns"],"mappings":"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"}
1
+ {"version":3,"file":"timePicker.js","sources":["../../../../src/components/inputs/timePicker/timePicker.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from \"react\";\nimport { autoUpdate, useFloating } from \"@floating-ui/react\";\nimport Transition, { TransitionStatus } from \"react-transition-group/Transition\";\nimport { buildFloatingMiddleware, Placement, resolvePlacement } from \"../../../utils/floating\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { TextFieldProps } from \"../textField\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { TimePickerInput } from \"./timePickerInput\";\nimport { TimePickerColumns } from \"./timePickerColumns\";\nimport { isValidTimeDate } from \"./timeUtils\";\nimport { createPortal } from \"react-dom\";\n\nconst defaultStyle = (duration: number) => ({\n transition: `opacity ${duration}ms ease-in-out`,\n opacity: 0,\n});\n\nconst transitionStyles = {\n entering: { opacity: 1 },\n entered: { opacity: 1 },\n exiting: { opacity: 0 },\n} as Record<TransitionStatus, { opacity: number }>;\n\nexport interface TimePickerProps extends Omit<TextFieldProps, \"onBlur\" | \"onChange\" | \"value\" | \"defaultValue\"> {\n /** Time format pattern with tokens HH, mm, ss, e.g. \"HH:mm\" or \"HH:mm:ss\". */\n format?: string;\n placement?: Placement;\n disableClock?: boolean;\n label?: string;\n clockAriaLabel?: string;\n autoComplete?: string;\n value?: Date | string;\n clockIcon?: React.ReactNode;\n onChange?: (event?: React.ChangeEvent<HTMLInputElement>, value?: Date, data?: TimePickerProps) => void;\n onBlur?: (event?: React.FocusEvent<HTMLInputElement>, value?: Date, data?: TimePickerProps) => void;\n}\n\nexport const TimePicker = React.forwardRef(function TimePicker(props: TimePickerProps, ref) {\n const {\n value: valueProp,\n onChange: onChangeProp,\n placement = \"bottom-start\",\n disabled,\n disableClock,\n clockAriaLabel = \"Choose time\",\n format,\n onBlur: onBlurProp,\n ...rest\n } = props;\n const value = useMemo(() => (valueProp === undefined ? undefined : new Date(valueProp)), [valueProp]);\n const [viewValue, setViewValue] = useState<Date>(() => (isValidTimeDate(value) ? value : new Date()));\n const [isOpen, setIsOpen] = useState(false);\n\n const anchorRef = useRef<HTMLDivElement | null>(null);\n const clockRef = useRef<HTMLDivElement | null>(null);\n\n const resolved = resolvePlacement(placement);\n const { refs, floatingStyles } = useFloating({\n open: isOpen,\n placement: resolved.placement,\n whileElementsMounted: autoUpdate,\n middleware: buildFloatingMiddleware(resolved),\n });\n\n const anchorForkRef = useForkRef(anchorRef, refs.setReference, ref);\n const clockForkRef = useForkRef(clockRef, refs.setFloating);\n\n // The clock is portalled: its target is resolved in the browser only. A server\n // render (no document) and the first client render emit nothing there, so the\n // picker renders and hydrates on a server-rendered page.\n const [portalRoot, setPortalRoot] = useState<HTMLElement>();\n useSafeLayoutEffect(() => {\n setPortalRoot(document.body);\n }, []);\n\n useSafeLayoutEffect(() => {\n if (disabled) {\n return;\n }\n\n setViewValue(isValidTimeDate(value) ? value : new Date());\n }, [value, disabled]);\n\n const onToggle = useCallback(() => {\n if (!disabled) {\n setIsOpen((prevState) => !prevState);\n }\n }, [disabled]);\n\n const onClickAway = useCallback((event: Event | React.SyntheticEvent) => {\n const target = event.target as HTMLElement;\n\n if (clockRef.current?.contains(target) || anchorRef.current?.contains(target)) {\n return;\n }\n\n setIsOpen(false);\n }, []);\n\n const onTimeChange = useCallback(\n (next: Date) => {\n setViewValue(next);\n onChangeProp?.(undefined, next, props);\n },\n [onChangeProp, props]\n );\n\n const onComplete = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n return (\n <>\n <TimePickerInput\n ref={anchorForkRef}\n value={value}\n onChange={onChangeProp}\n onBlur={onBlurProp}\n onToggle={onToggle}\n disabled={disabled}\n disableClock={disableClock}\n format={format}\n {...rest}\n />\n {portalRoot\n ? createPortal(\n <Transition\n nodeRef={clockRef}\n in={isOpen && !disabled && !disableClock}\n timeout={150}\n mountOnEnter\n unmountOnExit\n >\n {(state) => (\n <ClickAwayListener onClickAway={onClickAway}>\n <div\n ref={clockForkRef}\n className=\"smwb-date-picker smwb-time-picker\"\n style={{\n ...floatingStyles,\n ...defaultStyle(150),\n ...transitionStyles[state],\n }}\n data-testid=\"time-picker\"\n data-smwb-overlay-layer=\"\"\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label={clockAriaLabel}\n >\n <div className=\"smwb-date-picker__inner\">\n <TimePickerColumns\n value={viewValue}\n format={format}\n onChange={onTimeChange}\n onComplete={onComplete}\n />\n </div>\n </div>\n </ClickAwayListener>\n )}\n </Transition>,\n portalRoot\n )\n : null}\n </>\n );\n});\n\nexport default TimePicker;\n"],"names":["defaultStyle","duration","transitionStyles","TimePicker","React","props","ref","valueProp","onChangeProp","placement","disabled","disableClock","clockAriaLabel","format","onBlurProp","rest","value","useMemo","viewValue","setViewValue","useState","isValidTimeDate","isOpen","setIsOpen","anchorRef","useRef","clockRef","resolved","resolvePlacement","refs","floatingStyles","useFloating","autoUpdate","buildFloatingMiddleware","anchorForkRef","useForkRef","clockForkRef","portalRoot","setPortalRoot","useSafeLayoutEffect","onToggle","useCallback","prevState","onClickAway","event","target","_a","_b","onTimeChange","next","onComplete","jsxs","Fragment","jsx","TimePickerInput","createPortal","Transition","state","ClickAwayListener","TimePickerColumns"],"mappings":"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"}