@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":"dropdownMenu.js","sources":["../../../../../src/components/inputs/selectField/dropdownMenu.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { useVirtualList } from \"../../../hooks/useVirtualList\";\nimport { Menu, MenuDivider, MenuItem, MenuItemProps } from \"../../navigation/menu\";\nimport { TextField } from \"../textField\";\nimport ProgressIndicator from \"../../feedBack/progressIndicator/progressIndicator\";\nimport { createPortal } from \"react-dom\";\nimport { MenuFloatingProps } from \"../../navigation/menu/menuFloating\";\n\nexport interface DropdownItem {\n key?: string | number;\n text: string;\n value: string | number | undefined | null;\n helperText?: string;\n /** Disables selection of this option. */\n disabled?: boolean;\n /** Optional group label; consecutive items sharing it get a group header. */\n group?: string;\n}\n\nexport interface DropdownItemProps<T extends HTMLElement = HTMLElement> {\n menuMaxHeight?: number;\n menuMiddleware?: MenuFloatingProps[\"middleware\"];\n menuNoItemsMessage?: React.ReactNode;\n search?: boolean;\n onSearchInputChange?: (event: React.ChangeEvent<HTMLInputElement>, value: string | number | undefined) => void;\n items: DropdownItem[];\n searchValue?: string | number;\n isOpen: boolean;\n onClose: () => void;\n anchorElementRef: React.RefObject<T>;\n value?: undefined | null | string | number | (undefined | null | string | number)[];\n onItemClick: (event: React.SyntheticEvent, item: DropdownItem) => void;\n isLoading?: boolean;\n optionRenderer?: (args: MenuItemProps) => React.ReactNode;\n container?: HTMLElement;\n /** Renders a trailing \"create\" affordance (used by `creatable` SelectField). */\n createOption?: { text: React.ReactNode; onCreate: (event: React.SyntheticEvent) => void };\n /** Windows the option list for large datasets (fixed row height). */\n virtualized?: boolean;\n /** Row height (px) used when `virtualized`. */\n itemHeight?: number;\n}\n\nexport function DropdownMenu<T extends HTMLElement>({\n menuMaxHeight,\n menuMiddleware,\n search,\n onSearchInputChange,\n items,\n searchValue,\n isOpen,\n onClose,\n anchorElementRef,\n value,\n onItemClick,\n isLoading,\n optionRenderer,\n menuNoItemsMessage,\n container = document.body,\n createOption,\n virtualized,\n itemHeight = 40,\n}: DropdownItemProps<T>) {\n const valueArray = Array.isArray(value) ? value : [value];\n const hasGroups = items.some((i) => !!i.group);\n let lastGroup: string | undefined;\n\n const useVirtual = !!virtualized && !hasGroups && !isLoading && items.length > 0;\n const viewportHeight = menuMaxHeight || 240;\n const { startIndex, endIndex, totalHeight, offsetY, onScroll } = useVirtualList({\n itemCount: useVirtual ? items.length : 0,\n itemHeight,\n viewportHeight,\n });\n\n const renderItem = (el: DropdownItem) => {\n const node: React.ReactNode[] = [];\n if (hasGroups && el.group !== lastGroup) {\n lastGroup = el.group;\n node.push(\n <li key={`group-${el.group ?? \"ungrouped\"}`} className=\"smwb-select-field__group-label\" role=\"presentation\">\n {el.group}\n </li>\n );\n }\n node.push(\n <MenuItem\n key={el.key || el.value}\n value={el.value}\n disabled={el.disabled}\n selected={!!valueArray.find((v) => v === el.value)}\n onClick={(e: React.SyntheticEvent) => {\n if (!el.disabled) {\n onItemClick(e, el);\n }\n }}\n optionRenderer={optionRenderer}\n >\n {el.text}\n {el.helperText ? <span className=\"smwb-select-field__option__helper-text\">{el.helperText}</span> : null}\n </MenuItem>\n );\n return node;\n };\n const [menuMinWidth, setMenuMinWidth] = React.useState<number>();\n\n useEffect(() => {\n if (isOpen && anchorElementRef.current) {\n setMenuMinWidth(anchorElementRef.current.clientWidth);\n }\n }, [anchorElementRef, isOpen]);\n\n React.useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (isOpen && event.key === \"Escape\") {\n onClose();\n }\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, onClose]);\n\n return createPortal(\n <Menu\n isOpen={isOpen}\n onClose={onClose}\n anchorElement={anchorElementRef.current}\n middleware={menuMiddleware}\n data-smwb-overlay-layer=\"\"\n style={{\n minWidth: menuMinWidth,\n maxHeight: menuMaxHeight || undefined,\n overflowY: menuMaxHeight ? \"auto\" : undefined,\n }}\n >\n {search && (\n <>\n <li className=\"smwb-select-field__menu-search\">\n <TextField\n className=\"smwb-select-field__menu-search-input\"\n type=\"text\"\n placeholder=\"Найти...\"\n value={searchValue}\n onChange={(e, data) => onSearchInputChange?.(e, data.value)}\n fullWidth\n />\n </li>\n <MenuDivider />\n </>\n )}\n {isLoading ? (\n <div className=\"smwb-select-field__menu-loading\">\n <ProgressIndicator type=\"indeterminate\" variant=\"circular\" className=\"smwb-select-field__menu__loader\" />\n </div>\n ) : useVirtual ? (\n <li role=\"presentation\" className=\"smwb-select-field__virtual-viewport\">\n <div\n className=\"smwb-select-field__virtual-scroller\"\n style={{ maxHeight: viewportHeight, overflowY: \"auto\" }}\n onScroll={onScroll}\n >\n <div style={{ height: totalHeight, position: \"relative\" }}>\n <ul\n role=\"presentation\"\n className=\"smwb-select-field__virtual-list\"\n style={{ transform: `translateY(${offsetY}px)`, listStyle: \"none\", margin: 0, padding: 0 }}\n >\n {items.slice(startIndex, endIndex).map((el) => renderItem(el))}\n </ul>\n </div>\n </div>\n </li>\n ) : items.length ? (\n items.map((el) => renderItem(el))\n ) : !createOption ? (\n <li className=\"smwb-select-field__empty-items\">{menuNoItemsMessage || \"Опций не найдено.\"}</li>\n ) : null}\n {createOption ? (\n <MenuItem\n key=\"__create__\"\n value=\"__create__\"\n onClick={(e: React.SyntheticEvent) => createOption.onCreate(e)}\n className=\"smwb-select-field__create-option\"\n >\n {createOption.text}\n </MenuItem>\n ) : null}\n </Menu>,\n container\n );\n}\n"],"names":["DropdownMenu","menuMaxHeight","menuMiddleware","search","onSearchInputChange","items","searchValue","isOpen","onClose","anchorElementRef","value","onItemClick","isLoading","optionRenderer","menuNoItemsMessage","container","createOption","virtualized","itemHeight","valueArray","hasGroups","i","lastGroup","useVirtual","viewportHeight","startIndex","endIndex","totalHeight","offsetY","onScroll","useVirtualList","renderItem","el","node","jsx","_a","jsxs","MenuItem","v","e","menuMinWidth","setMenuMinWidth","React","useEffect","onKeyDown","event","createPortal","Menu","Fragment","TextField","data","MenuDivider","ProgressIndicator"],"mappings":"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"}
1
+ {"version":3,"file":"dropdownMenu.js","sources":["../../../../../src/components/inputs/selectField/dropdownMenu.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useVirtualList } from \"../../../hooks/useVirtualList\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { Menu, MenuDivider, MenuItem, MenuItemProps } from \"../../navigation/menu\";\nimport { TextField } from \"../textField\";\nimport ProgressIndicator from \"../../feedBack/progressIndicator/progressIndicator\";\nimport { createPortal } from \"react-dom\";\nimport { MenuFloatingProps } from \"../../navigation/menu/menuFloating\";\n\nexport interface DropdownItem {\n key?: string | number;\n text: string;\n value: string | number | undefined | null;\n helperText?: string;\n /** Disables selection of this option. */\n disabled?: boolean;\n /** Optional group label; consecutive items sharing it get a group header. */\n group?: string;\n}\n\nexport interface DropdownItemProps<T extends HTMLElement = HTMLElement> {\n menuMaxHeight?: number;\n menuMiddleware?: MenuFloatingProps[\"middleware\"];\n menuNoItemsMessage?: React.ReactNode;\n search?: boolean;\n onSearchInputChange?: (event: React.ChangeEvent<HTMLInputElement>, value: string | number | undefined) => void;\n items: DropdownItem[];\n searchValue?: string | number;\n isOpen: boolean;\n onClose: () => void;\n anchorElementRef: React.RefObject<T>;\n value?: undefined | null | string | number | (undefined | null | string | number)[];\n onItemClick: (event: React.SyntheticEvent, item: DropdownItem) => void;\n isLoading?: boolean;\n optionRenderer?: (args: MenuItemProps) => React.ReactNode;\n container?: HTMLElement;\n /** Renders a trailing \"create\" affordance (used by `creatable` SelectField). */\n createOption?: { text: React.ReactNode; onCreate: (event: React.SyntheticEvent) => void };\n /** Windows the option list for large datasets (fixed row height). */\n virtualized?: boolean;\n /** Row height (px) used when `virtualized`. */\n itemHeight?: number;\n}\n\nexport function DropdownMenu<T extends HTMLElement>({\n menuMaxHeight,\n menuMiddleware,\n search,\n onSearchInputChange,\n items,\n searchValue,\n isOpen,\n onClose,\n anchorElementRef,\n value,\n onItemClick,\n isLoading,\n optionRenderer,\n menuNoItemsMessage,\n container,\n createOption,\n virtualized,\n itemHeight = 40,\n}: DropdownItemProps<T>) {\n const valueArray = Array.isArray(value) ? value : [value];\n const hasGroups = items.some((i) => !!i.group);\n let lastGroup: string | undefined;\n\n const useVirtual = !!virtualized && !hasGroups && !isLoading && items.length > 0;\n const viewportHeight = menuMaxHeight || 240;\n const { startIndex, endIndex, totalHeight, offsetY, onScroll } = useVirtualList({\n itemCount: useVirtual ? items.length : 0,\n itemHeight,\n viewportHeight,\n });\n\n const renderItem = (el: DropdownItem) => {\n const node: React.ReactNode[] = [];\n if (hasGroups && el.group !== lastGroup) {\n lastGroup = el.group;\n node.push(\n <li key={`group-${el.group ?? \"ungrouped\"}`} className=\"smwb-select-field__group-label\" role=\"presentation\">\n {el.group}\n </li>\n );\n }\n node.push(\n <MenuItem\n key={el.key || el.value}\n value={el.value}\n disabled={el.disabled}\n selected={!!valueArray.find((v) => v === el.value)}\n onClick={(e: React.SyntheticEvent) => {\n if (!el.disabled) {\n onItemClick(e, el);\n }\n }}\n optionRenderer={optionRenderer}\n >\n {el.text}\n {el.helperText ? <span className=\"smwb-select-field__option__helper-text\">{el.helperText}</span> : null}\n </MenuItem>\n );\n return node;\n };\n const [menuMinWidth, setMenuMinWidth] = React.useState<number>();\n // The menu is portalled: its target is resolved in the browser only. A server\n // render (no document) and the first client render emit nothing here, so the\n // select renders and hydrates on a server-rendered page.\n const [domRoot, setDomRoot] = useState<HTMLElement>();\n useSafeLayoutEffect(() => {\n setDomRoot(container ?? document.body);\n }, [container]);\n\n useEffect(() => {\n if (isOpen && anchorElementRef.current) {\n setMenuMinWidth(anchorElementRef.current.clientWidth);\n }\n }, [anchorElementRef, isOpen]);\n\n React.useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (isOpen && event.key === \"Escape\") {\n onClose();\n }\n };\n\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, onClose]);\n\n if (!domRoot) {\n return null;\n }\n\n return createPortal(\n <Menu\n isOpen={isOpen}\n onClose={onClose}\n anchorElement={anchorElementRef.current}\n middleware={menuMiddleware}\n data-smwb-overlay-layer=\"\"\n style={{\n minWidth: menuMinWidth,\n maxHeight: menuMaxHeight || undefined,\n overflowY: menuMaxHeight ? \"auto\" : undefined,\n }}\n >\n {search && (\n <>\n <li className=\"smwb-select-field__menu-search\">\n <TextField\n className=\"smwb-select-field__menu-search-input\"\n type=\"text\"\n placeholder=\"Найти...\"\n value={searchValue}\n onChange={(e, data) => onSearchInputChange?.(e, data.value)}\n fullWidth\n />\n </li>\n <MenuDivider />\n </>\n )}\n {isLoading ? (\n <div className=\"smwb-select-field__menu-loading\">\n <ProgressIndicator type=\"indeterminate\" variant=\"circular\" className=\"smwb-select-field__menu__loader\" />\n </div>\n ) : useVirtual ? (\n <li role=\"presentation\" className=\"smwb-select-field__virtual-viewport\">\n <div\n className=\"smwb-select-field__virtual-scroller\"\n style={{ maxHeight: viewportHeight, overflowY: \"auto\" }}\n onScroll={onScroll}\n >\n <div style={{ height: totalHeight, position: \"relative\" }}>\n <ul\n role=\"presentation\"\n className=\"smwb-select-field__virtual-list\"\n style={{ transform: `translateY(${offsetY}px)`, listStyle: \"none\", margin: 0, padding: 0 }}\n >\n {items.slice(startIndex, endIndex).map((el) => renderItem(el))}\n </ul>\n </div>\n </div>\n </li>\n ) : items.length ? (\n items.map((el) => renderItem(el))\n ) : !createOption ? (\n <li className=\"smwb-select-field__empty-items\">{menuNoItemsMessage || \"Опций не найдено.\"}</li>\n ) : null}\n {createOption ? (\n <MenuItem\n key=\"__create__\"\n value=\"__create__\"\n onClick={(e: React.SyntheticEvent) => createOption.onCreate(e)}\n className=\"smwb-select-field__create-option\"\n >\n {createOption.text}\n </MenuItem>\n ) : null}\n </Menu>,\n domRoot\n );\n}\n"],"names":["DropdownMenu","menuMaxHeight","menuMiddleware","search","onSearchInputChange","items","searchValue","isOpen","onClose","anchorElementRef","value","onItemClick","isLoading","optionRenderer","menuNoItemsMessage","container","createOption","virtualized","itemHeight","valueArray","hasGroups","i","lastGroup","useVirtual","viewportHeight","startIndex","endIndex","totalHeight","offsetY","onScroll","useVirtualList","renderItem","el","node","jsx","_a","jsxs","MenuItem","v","e","menuMinWidth","setMenuMinWidth","React","domRoot","setDomRoot","useState","useSafeLayoutEffect","useEffect","onKeyDown","event","createPortal","Menu","Fragment","TextField","data","MenuDivider","ProgressIndicator"],"mappings":"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"}
@@ -1,71 +1,72 @@
1
- import { jsx as a, jsxs as b, Fragment as Ce } from "react/jsx-runtime";
2
- import { forwardRef as Ne, useState as D, useRef as S, useMemo as Fe, useEffect as U } from "react";
3
- import V from "clsx";
4
- import { useSafeLayoutEffect as Me } from "../../../hooks/useSafeLayoutEffect.js";
5
- import { useForkRef as Re } from "../../../hooks/useForkRef.js";
6
- import { DropdownMenu as Ve } from "./dropdownMenu.js";
7
- import { Chip as Ee } from "../../dataDisplay/chip/chip.js";
8
- import { Icon as q } from "../../base/icon/icon.js";
9
- import { TextFieldWrapper as Le } from "../textField/textFieldWrapper.js";
10
- const ke = (i) => /* @__PURE__ */ a(q, { name: "arrow_drop_down", ...i }), Pe = (i) => /* @__PURE__ */ a(q, { name: "close", size: 20, ...i });
11
- function $(i) {
1
+ import { jsx as a, jsxs as b, Fragment as Ne } from "react/jsx-runtime";
2
+ import { forwardRef as Fe, useState as D, useRef as S, useMemo as Me, useEffect as U } from "react";
3
+ import C from "clsx";
4
+ import { useSafeLayoutEffect as Re } from "../../../hooks/useSafeLayoutEffect.js";
5
+ import { useForkRef as Ve } from "../../../hooks/useForkRef.js";
6
+ import { DropdownMenu as Ee } from "./dropdownMenu.js";
7
+ import { Chip as Le } from "../../dataDisplay/chip/chip.js";
8
+ import { Icon as G } from "../../base/icon/icon.js";
9
+ import { TextFieldWrapper as ke } from "../textField/textFieldWrapper.js";
10
+ const ze = (i) => /* @__PURE__ */ a(G, { name: "arrow_drop_down", ...i }), Pe = (i) => /* @__PURE__ */ a(G, { name: "close", size: 20, ...i });
11
+ function q(i) {
12
12
  i.preventDefault(), i.stopPropagation();
13
13
  }
14
- const $e = Ne(function(E, G) {
14
+ const qe = Fe(function(L, J) {
15
15
  const {
16
- className: L,
16
+ className: k,
17
17
  value: _,
18
- defaultValue: k,
19
- onChange: C,
18
+ defaultValue: z,
19
+ onChange: N,
20
20
  disabled: f,
21
- readOnly: N,
22
- name: J,
21
+ readOnly: F,
22
+ name: Q,
23
23
  multiple: P,
24
- menuMaxHeight: Q,
25
- menuMiddleware: X,
26
- menuNoItemsMessage: Y,
27
- menuContainer: Z,
24
+ menuMaxHeight: X,
25
+ menuMiddleware: Y,
26
+ menuNoItemsMessage: Z,
27
+ menuContainer: ee,
28
28
  search: c,
29
- chips: ee,
29
+ chips: se,
30
30
  isFocused: K,
31
31
  error: O,
32
32
  items: r,
33
33
  label: W,
34
34
  variant: j = "outlined",
35
- fullWidth: se,
36
- helperText: le,
35
+ size: M = "medium",
36
+ fullWidth: le,
37
+ helperText: te,
37
38
  onSearch: v,
38
39
  resetSearch: y,
39
- isLoading: te,
40
- inline: z,
41
- endAdornment: ne,
42
- hideSelectArrowIcon: oe,
43
- optionRenderer: ae,
44
- clearable: re,
45
- creatable: ie,
46
- onCreate: F,
47
- virtualized: ce,
48
- itemHeight: ue,
49
- "aria-label": de,
50
- id: fe,
51
- ...me
52
- } = E, [o, u] = D(!1), [pe, we] = D(k), [m, p] = D(() => {
53
- const e = _ != null ? _ : k;
40
+ isLoading: ne,
41
+ inline: H,
42
+ endAdornment: oe,
43
+ hideSelectArrowIcon: ae,
44
+ optionRenderer: re,
45
+ clearable: ie,
46
+ creatable: ce,
47
+ onCreate: R,
48
+ virtualized: ue,
49
+ itemHeight: de,
50
+ "aria-label": fe,
51
+ id: me,
52
+ ...pe
53
+ } = L, [o, u] = D(!1), [we, he] = D(z), [m, p] = D(() => {
54
+ const e = _ != null ? _ : z;
54
55
  if (Array.isArray(e))
55
56
  return r.filter((t) => e.includes(t.value));
56
57
  const s = e == null ? void 0 : r.find((t) => t.value === e);
57
58
  return s ? [s] : [];
58
- }), [n, x] = D(""), { current: he } = S(_ != null), h = S(null), be = Re(G, h), A = S(null), H = S(null), l = he ? _ : pe, g = Fe(() => K || o, [K, o]), _e = (e) => {
59
+ }), [n, x] = D(""), { current: be } = S(_ != null), h = S(null), _e = Ve(J, h), A = S(null), T = S(null), l = be ? _ : we, g = Me(() => K || o, [K, o]), ve = (e) => {
59
60
  var s;
60
61
  e.button === 0 && (e.preventDefault(), (s = h.current) == null || s.focus(), u(!o));
61
- }, ve = () => {
62
+ }, ye = () => {
62
63
  var e;
63
64
  u(!1), (e = h.current) == null || e.focus();
64
- }, ye = () => {
65
+ }, xe = () => {
65
66
  var e;
66
- c === !0 && ((e = H.current) == null || e.focus());
67
- }, xe = (e) => {
68
- N || [" ", "ArrowUp", "ArrowDown", "Enter"].includes(e.key) && (e.preventDefault(), u(!o));
67
+ c === !0 && ((e = T.current) == null || e.focus());
68
+ }, Ae = (e) => {
69
+ F || [" ", "ArrowUp", "ArrowDown", "Enter"].includes(e.key) && (e.preventDefault(), u(!o));
69
70
  };
70
71
  U(() => {
71
72
  (!g || c === "menu" && !o) && (x(""), y == null || y());
@@ -78,85 +79,94 @@ const $e = Ne(function(E, G) {
78
79
  const e = r.find((s) => s.value === l);
79
80
  p(e ? [e] : []);
80
81
  }
81
- }, [l, r]), Me(() => {
82
+ }, [l, r]), Re(() => {
82
83
  A.current && (A.current.scrollLeft = A.current.scrollWidth);
83
84
  }, [l]);
84
- const M = (e, s) => {
85
- C == null || C(e, { ...E, value: s, name: J || void 0 }), we(s);
86
- }, Ae = (e, s) => {
85
+ const V = (e, s) => {
86
+ N == null || N(e, { ...L, value: s, name: Q || void 0 }), he(s);
87
+ }, ge = (e, s) => {
87
88
  var w;
88
89
  let t, d;
89
90
  if (P) {
90
91
  const B = Array.isArray(l) ? l : [l].filter(Boolean);
91
92
  t = B.slice(), d = m.slice();
92
- const R = B.findIndex((Se) => Se === s.value);
93
- R === -1 ? (t.push(s.value), d.push(s)) : (t.splice(R, 1), d.splice(R, 1));
93
+ const E = B.findIndex((Ce) => Ce === s.value);
94
+ E === -1 ? (t.push(s.value), d.push(s)) : (t.splice(E, 1), d.splice(E, 1));
94
95
  } else
95
96
  t = l === s.value ? "" : s.value, d = [s];
96
- n && x(""), P || (u(!1), (w = h.current) == null || w.focus()), p(d), M(e, t);
97
- }, T = (e) => {
97
+ n && x(""), P || (u(!1), (w = h.current) == null || w.focus()), p(d), V(e, t);
98
+ }, $ = (e) => {
98
99
  x(e.target.value), v == null || v(e), o || u(!0);
99
- }, ge = (e) => (s) => {
100
+ }, Ie = (e) => (s) => {
100
101
  if (Array.isArray(l)) {
101
102
  const t = l.filter((w) => e !== w);
102
- M(s, t);
103
+ V(s, t);
103
104
  const d = m.filter((w) => w.value !== e);
104
105
  p(d);
105
106
  }
106
- }, Ie = (e) => {
107
- M(e, []), p([]);
107
+ }, De = (e) => {
108
+ V(e, []), p([]);
108
109
  };
109
110
  let I;
110
- const De = V("smwb-select-field", L, {
111
+ const Se = C("smwb-select-field", k, {
111
112
  "smwb-select-field--filled": j === "filled" && W,
112
113
  "smwb-select-field--disabled": f,
113
114
  "smwb-select-field--search": c,
114
- "smwb-select-field--inline": z
115
+ "smwb-select-field--inline": H
115
116
  });
116
- return ee ? I = m.map(({ key: e, value: s, text: t }) => /* @__PURE__ */ a(Ee, { label: t, onDelete: ge(s), onDeleteMouseDown: $ }, e || s)) : I = m.map((e) => e.text).join(", "), /* @__PURE__ */ b(Ce, { children: [
117
+ return se ? I = m.map(({ key: e, value: s, text: t }) => /* @__PURE__ */ a(
118
+ Le,
119
+ {
120
+ label: t,
121
+ size: M === "small" ? "small" : "medium",
122
+ onDelete: Ie(s),
123
+ onDeleteMouseDown: q
124
+ },
125
+ e || s
126
+ )) : I = m.map((e) => e.text).join(", "), /* @__PURE__ */ b(Ne, { children: [
117
127
  /* @__PURE__ */ a(
118
- Le,
128
+ ke,
119
129
  {
120
130
  label: W,
121
- helperText: le,
131
+ helperText: te,
122
132
  variant: j,
123
133
  disabled: f,
124
- className: L,
134
+ className: C(k, M !== "medium" && `smwb-text-field_size-${M}`),
125
135
  error: O,
126
- fullWidth: se,
136
+ fullWidth: le,
127
137
  isFilledState: !!m.length || !!n,
128
138
  isFocused: g,
129
- inline: z,
130
- ...me,
139
+ inline: H,
140
+ ...pe,
131
141
  children: /* @__PURE__ */ b(
132
142
  "span",
133
143
  {
134
- ref: be,
135
- id: fe,
136
- className: De,
144
+ ref: _e,
145
+ id: me,
146
+ className: Se,
137
147
  tabIndex: f ? void 0 : 0,
138
148
  role: "button",
139
149
  "aria-haspopup": "listbox",
140
150
  "aria-expanded": o,
141
151
  "aria-disabled": f || void 0,
142
- "aria-label": de,
143
- onMouseDown: f || N ? void 0 : _e,
144
- onFocus: ye,
145
- onKeyDown: xe,
152
+ "aria-label": fe,
153
+ onMouseDown: f || F ? void 0 : ve,
154
+ onFocus: xe,
155
+ onKeyDown: Ae,
146
156
  "data-testid": "select-field",
147
157
  children: [
148
158
  /* @__PURE__ */ b("span", { className: "smwb-select-field__search-wrapper", ref: A, children: [
149
159
  I && /* @__PURE__ */ a("span", { className: "smwb-select-field__values", children: I }),
150
- c && typeof c == "boolean" && !N && /* @__PURE__ */ b("span", { className: "smwb-select-field__search", children: [
160
+ c && typeof c == "boolean" && !F && /* @__PURE__ */ b("span", { className: "smwb-select-field__search", children: [
151
161
  /* @__PURE__ */ a("span", { className: "smwb-select-field__search-text", children: n }),
152
162
  /* @__PURE__ */ a(
153
163
  "input",
154
164
  {
155
165
  className: "smwb-select-field__search-input",
156
- ref: H,
166
+ ref: T,
157
167
  type: "text",
158
168
  value: n,
159
- onChange: T,
169
+ onChange: $,
160
170
  onMouseDown: (e) => {
161
171
  e.stopPropagation(), u(!0);
162
172
  },
@@ -169,21 +179,21 @@ const $e = Ne(function(E, G) {
169
179
  ] })
170
180
  ] }),
171
181
  /* @__PURE__ */ b("span", { className: "smwb-select-field__actions", children: [
172
- (Array.isArray(l) && l.length > 0 || re && m.length > 0) && !f && /* @__PURE__ */ a(
182
+ (Array.isArray(l) && l.length > 0 || ie && m.length > 0) && !f && /* @__PURE__ */ a(
173
183
  Pe,
174
184
  {
175
- onClick: Ie,
176
- onMouseDown: $,
177
- className: V("smwb-select-field__icon", "smwb-select-field__icon--close"),
185
+ onClick: De,
186
+ onMouseDown: q,
187
+ className: C("smwb-select-field__icon", "smwb-select-field__icon--close"),
178
188
  "aria-label": "Clear selection",
179
189
  role: "button"
180
190
  }
181
191
  ),
182
- ne,
183
- !oe && /* @__PURE__ */ a(
184
- ke,
192
+ oe,
193
+ !ae && /* @__PURE__ */ a(
194
+ ze,
185
195
  {
186
- className: V("smwb-select-field__icon", "smwb-select-field__icon--arrow", {
196
+ className: C("smwb-select-field__icon", "smwb-select-field__icon--arrow", {
187
197
  "smwb-select-field__icon--opened": o,
188
198
  "smwb-select-field__icon--focused": g,
189
199
  "smwb-select-field__icon--error": O
@@ -197,29 +207,29 @@ const $e = Ne(function(E, G) {
197
207
  }
198
208
  ),
199
209
  /* @__PURE__ */ a(
200
- Ve,
210
+ Ee,
201
211
  {
202
212
  anchorElementRef: h,
203
- menuMaxHeight: Q,
204
- menuMiddleware: X,
213
+ menuMaxHeight: X,
214
+ menuMiddleware: Y,
205
215
  search: c === "menu",
206
- onSearchInputChange: T,
207
- optionRenderer: ae,
216
+ onSearchInputChange: $,
217
+ optionRenderer: re,
208
218
  items: v ? r : n ? r.filter((e) => e.text.search(new RegExp(n, "i")) !== -1) : r,
209
219
  searchValue: n,
210
220
  isOpen: o,
211
- onClose: ve,
212
- onItemClick: Ae,
221
+ onClose: ye,
222
+ onItemClick: ge,
213
223
  value: l,
214
- isLoading: te,
215
- menuNoItemsMessage: Y,
216
- container: Z,
217
- virtualized: ce,
218
- itemHeight: ue,
219
- createOption: ie && n && !r.some((e) => e.text.toLowerCase() === String(n).toLowerCase()) ? {
224
+ isLoading: ne,
225
+ menuNoItemsMessage: Z,
226
+ container: ee,
227
+ virtualized: ue,
228
+ itemHeight: de,
229
+ createOption: ce && n && !r.some((e) => e.text.toLowerCase() === String(n).toLowerCase()) ? {
220
230
  text: `Создать "${n}"`,
221
231
  onCreate: (e) => {
222
- F == null || F(String(n), e), x(""), u(!1);
232
+ R == null || R(String(n), e), x(""), u(!1);
223
233
  }
224
234
  } : void 0
225
235
  }
@@ -227,6 +237,6 @@ const $e = Ne(function(E, G) {
227
237
  ] });
228
238
  });
229
239
  export {
230
- $e as SelectField
240
+ qe as SelectField
231
241
  };
232
242
  //# sourceMappingURL=selectField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectField.js","sources":["../../../../../src/components/inputs/selectField/selectField.tsx"],"sourcesContent":["import type { HTMLAttributes, SyntheticEvent } from \"react\";\nimport React, { useState, useRef, useEffect, useMemo, forwardRef } from \"react\";\nimport cn from \"clsx\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { DropdownMenu, DropdownItem, DropdownItemProps } from \"./dropdownMenu\";\nimport Chip from \"../../dataDisplay/chip/chip\";\nimport { TextFieldWrapper } from \"../textField\";\nimport Icon from \"../../base/icon/icon\";\nimport { MenuItemProps } from \"../../navigation/menu\";\n\nconst SelectArrowIcon = (props: HTMLAttributes<HTMLSpanElement>) => <Icon name=\"arrow_drop_down\" {...props} />;\n\nconst ClearIcon = (props: HTMLAttributes<HTMLSpanElement>) => <Icon name=\"close\" size={20} {...props} />;\n\nfunction stopEvent(event: React.SyntheticEvent) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nexport type OnSelectChange = (e: SyntheticEvent, data: SelectFieldProps) => void;\n\nexport interface SelectFieldProps {\n className?: string;\n value?: null | string | number | (string | number | undefined | null)[];\n defaultValue?: null | string | number | (string | number)[];\n onChange?: OnSelectChange;\n disabled?: boolean;\n readOnly?: boolean;\n name?: string;\n multiple?: boolean;\n menuMaxHeight?: number;\n menuMiddleware?: DropdownItemProps[\"menuMiddleware\"];\n menuNoItemsMessage?: React.ReactNode;\n menuContainer?: HTMLElement;\n search?: true | false | \"menu\";\n chips?: boolean;\n isFocused?: boolean;\n error?: boolean;\n items: DropdownItem[];\n label?: string;\n variant?: \"outlined\" | \"filled\";\n fullWidth?: boolean;\n helperText?: React.ReactNode;\n onSearch?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n isLoading?: boolean;\n resetSearch?: () => void;\n inline?: boolean;\n endAdornment?: React.ReactNode;\n hideSelectArrowIcon?: boolean;\n optionRenderer?: (args: MenuItemProps) => React.ReactNode;\n /** Shows a clear button to reset the selection. */\n clearable?: boolean;\n /** Allows creating a new option from the current search text. */\n creatable?: boolean;\n /** Invoked with the typed text when the user creates a new option. */\n onCreate?: (inputValue: string, event: React.SyntheticEvent) => void;\n /** Windows long option lists for performance (fixed row height). */\n virtualized?: boolean;\n /** Row height (px) used when `virtualized`. */\n itemHeight?: number;\n /** Accessible label for the combobox control. */\n \"aria-label\"?: string;\n id?: string;\n}\n\nexport const SelectField = forwardRef<HTMLSpanElement, SelectFieldProps>(function SelectField(props, ref) {\n const {\n className,\n value: valueProp,\n defaultValue,\n onChange,\n disabled,\n readOnly,\n name,\n multiple,\n menuMaxHeight,\n menuMiddleware,\n menuNoItemsMessage,\n menuContainer,\n search,\n chips,\n isFocused: isFocusedProp,\n error,\n items,\n label,\n variant = \"outlined\",\n fullWidth,\n helperText,\n onSearch,\n resetSearch,\n isLoading,\n inline,\n endAdornment,\n hideSelectArrowIcon,\n optionRenderer,\n clearable,\n creatable,\n onCreate,\n virtualized,\n itemHeight,\n \"aria-label\": ariaLabel,\n id,\n ...rest\n } = props;\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [valueState, setValueState] = useState<typeof valueProp>(defaultValue);\n const [selectedItems, setSelectedItems] = useState<typeof items>(() => {\n // Seed from the effective initial value so an uncontrolled `defaultValue`\n // shows its selection (and floats the label) before any interaction.\n const initialValue = valueProp != null ? valueProp : defaultValue;\n\n if (Array.isArray(initialValue)) {\n return items.filter((item) => initialValue.includes(item.value));\n }\n\n const item = initialValue == null ? undefined : items.find((i) => i.value === initialValue);\n\n return item ? [item] : [];\n });\n const [searchValue, setSearchValue] = useState(\"\");\n const { current: isControlled } = useRef(valueProp != null);\n const anchorElementRef = useRef<HTMLSpanElement>(null);\n const forkedAnchorRef = useForkRef<HTMLSpanElement>(ref, anchorElementRef);\n const searchWrapperRef = useRef<HTMLSpanElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const value = isControlled ? valueProp : valueState;\n\n const isFocused = useMemo(() => isFocusedProp || isOpen, [isFocusedProp, isOpen]);\n\n const onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n // Только для левой клавиши мышки.\n if (event.button !== 0) {\n return;\n }\n event.preventDefault();\n anchorElementRef.current?.focus();\n setIsOpen(!isOpen);\n };\n\n const onClose = () => {\n setIsOpen(false);\n anchorElementRef.current?.focus();\n };\n\n const onFocus = () => {\n if (search === true) {\n searchInputRef.current?.focus();\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!readOnly) {\n const validKeys = [\" \", \"ArrowUp\", \"ArrowDown\", \"Enter\"];\n\n if (validKeys.includes(event.key)) {\n event.preventDefault();\n setIsOpen(!isOpen);\n }\n }\n };\n\n useEffect(() => {\n if (!isFocused || (search === \"menu\" && !isOpen)) {\n setSearchValue(\"\");\n resetSearch?.();\n }\n }, [isFocused, search, isOpen, resetSearch]);\n\n // Keep the displayed selection in sync with the effective value (controlled\n // `value` or uncontrolled `defaultValue`/internal state), so the label floats\n // whenever there is a value — including the initial default, without focus.\n useEffect(() => {\n if (Array.isArray(value)) {\n setSelectedItems(items.filter((item) => value.includes(item.value)));\n } else if (value == null || value === \"\") {\n setSelectedItems([]);\n } else {\n const item = items.find((item) => item.value === value);\n setSelectedItems(item ? [item] : []);\n }\n }, [value, items]);\n\n useSafeLayoutEffect(() => {\n if (searchWrapperRef.current) {\n searchWrapperRef.current.scrollLeft = searchWrapperRef.current.scrollWidth;\n }\n }, [value]);\n\n const updateValue = (event: React.SyntheticEvent, value: typeof valueProp) => {\n onChange?.(event, { ...props, value, name: name || undefined });\n setValueState(value);\n };\n\n const onItemClick = (event: React.SyntheticEvent, item: DropdownItem) => {\n let newValue: typeof valueProp;\n let newSelectedItem: typeof selectedItems;\n if (multiple) {\n const valueArray = Array.isArray(value) ? value : [value].filter(Boolean);\n newValue = valueArray.slice();\n newSelectedItem = selectedItems.slice();\n const itemIndex = valueArray.findIndex((el) => el === item.value);\n\n if (itemIndex === -1) {\n newValue.push(item.value);\n newSelectedItem.push(item);\n } else {\n newValue.splice(itemIndex, 1);\n newSelectedItem.splice(itemIndex, 1);\n }\n } else {\n newValue = value === item.value ? \"\" : item.value;\n newSelectedItem = [item];\n }\n\n if (searchValue) {\n setSearchValue(\"\");\n }\n\n if (!multiple) {\n setIsOpen(false);\n anchorElementRef.current?.focus();\n }\n setSelectedItems(newSelectedItem);\n updateValue(event, newValue);\n };\n\n const onSearchInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n onSearch?.(event);\n if (!isOpen) {\n setIsOpen(true);\n }\n };\n\n const onDeleteChip = (currentValue: typeof valueProp) => (event: React.SyntheticEvent) => {\n if (Array.isArray(value)) {\n const newValue = value.filter((value) => currentValue !== value);\n updateValue(event, newValue);\n const newSelectedItems = selectedItems.filter((el) => el.value !== currentValue);\n setSelectedItems(newSelectedItems);\n }\n };\n\n const onResetSelected = (event: React.MouseEvent) => {\n updateValue(event, []);\n setSelectedItems([]);\n };\n\n let displayValues: string | React.ReactNode[];\n\n const classes = cn(\"smwb-select-field\", className, {\n \"smwb-select-field--filled\": variant === \"filled\" && label,\n \"smwb-select-field--disabled\": disabled,\n \"smwb-select-field--search\": search,\n \"smwb-select-field--inline\": inline,\n });\n\n if (chips) {\n displayValues = selectedItems.map(({ key, value, text }) => (\n <Chip key={key || value} label={text} onDelete={onDeleteChip(value)} onDeleteMouseDown={stopEvent} />\n ));\n } else {\n displayValues = selectedItems.map((el) => el.text).join(\", \");\n }\n\n return (\n <>\n <TextFieldWrapper\n label={label}\n helperText={helperText}\n variant={variant}\n disabled={disabled}\n className={className}\n error={error}\n fullWidth={fullWidth}\n isFilledState={!!selectedItems.length || !!searchValue}\n isFocused={isFocused}\n inline={inline}\n {...rest}\n >\n <span\n ref={forkedAnchorRef}\n id={id}\n className={classes}\n tabIndex={disabled ? undefined : 0}\n role=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-disabled={disabled || undefined}\n aria-label={ariaLabel}\n onMouseDown={disabled || readOnly ? undefined : onMouseDown}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n data-testid=\"select-field\"\n >\n <span className=\"smwb-select-field__search-wrapper\" ref={searchWrapperRef}>\n {displayValues && <span className=\"smwb-select-field__values\">{displayValues}</span>}\n {search && typeof search === \"boolean\" && !readOnly && (\n <span className=\"smwb-select-field__search\">\n <span className=\"smwb-select-field__search-text\">{searchValue}</span>\n <input\n className=\"smwb-select-field__search-input\"\n ref={searchInputRef}\n type=\"text\"\n value={searchValue}\n onChange={onSearchInputChange}\n onMouseDown={(event: React.MouseEvent<HTMLInputElement>) => {\n event.stopPropagation();\n setIsOpen(true);\n }}\n onKeyDown={(event) => {\n event.stopPropagation();\n }}\n data-testid=\"search-input\"\n />\n </span>\n )}\n </span>\n <span className=\"smwb-select-field__actions\">\n {((Array.isArray(value) && value.length > 0) || (clearable && selectedItems.length > 0)) && !disabled && (\n <ClearIcon\n onClick={onResetSelected}\n onMouseDown={stopEvent}\n className={cn(\"smwb-select-field__icon\", \"smwb-select-field__icon--close\")}\n aria-label=\"Clear selection\"\n role=\"button\"\n />\n )}\n {endAdornment}\n {!hideSelectArrowIcon && (\n <SelectArrowIcon\n className={cn(\"smwb-select-field__icon\", \"smwb-select-field__icon--arrow\", {\n \"smwb-select-field__icon--opened\": isOpen,\n \"smwb-select-field__icon--focused\": isFocused,\n \"smwb-select-field__icon--error\": error,\n })}\n />\n )}\n </span>\n </span>\n </TextFieldWrapper>\n <DropdownMenu\n anchorElementRef={anchorElementRef}\n menuMaxHeight={menuMaxHeight}\n menuMiddleware={menuMiddleware}\n search={search === \"menu\"}\n onSearchInputChange={onSearchInputChange}\n optionRenderer={optionRenderer}\n items={\n onSearch\n ? items\n : searchValue\n ? items.filter((el) => el.text.search(new RegExp(searchValue, \"i\")) !== -1)\n : items\n }\n searchValue={searchValue}\n isOpen={isOpen}\n onClose={onClose}\n onItemClick={onItemClick}\n value={value}\n isLoading={isLoading}\n menuNoItemsMessage={menuNoItemsMessage}\n container={menuContainer}\n virtualized={virtualized}\n itemHeight={itemHeight}\n createOption={\n creatable && searchValue && !items.some((i) => i.text.toLowerCase() === String(searchValue).toLowerCase())\n ? {\n text: `Создать \"${searchValue}\"`,\n onCreate: (event: React.SyntheticEvent) => {\n onCreate?.(String(searchValue), event);\n setSearchValue(\"\");\n setIsOpen(false);\n },\n }\n : undefined\n }\n />\n </>\n );\n});\n\nexport default SelectField;\n"],"names":["SelectArrowIcon","props","jsx","Icon","ClearIcon","stopEvent","event","SelectField","forwardRef","ref","className","valueProp","defaultValue","onChange","disabled","readOnly","name","multiple","menuMaxHeight","menuMiddleware","menuNoItemsMessage","menuContainer","search","chips","isFocusedProp","error","items","label","variant","fullWidth","helperText","onSearch","resetSearch","isLoading","inline","endAdornment","hideSelectArrowIcon","optionRenderer","clearable","creatable","onCreate","virtualized","itemHeight","ariaLabel","id","rest","isOpen","setIsOpen","useState","valueState","setValueState","selectedItems","setSelectedItems","initialValue","item","i","searchValue","setSearchValue","isControlled","useRef","anchorElementRef","forkedAnchorRef","useForkRef","searchWrapperRef","searchInputRef","value","isFocused","useMemo","onMouseDown","_a","onClose","onFocus","onKeyDown","useEffect","useSafeLayoutEffect","updateValue","onItemClick","newValue","newSelectedItem","valueArray","itemIndex","el","onSearchInputChange","onDeleteChip","currentValue","newSelectedItems","onResetSelected","displayValues","classes","cn","key","text","Chip","jsxs","Fragment","TextFieldWrapper","DropdownMenu"],"mappings":"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"}
1
+ {"version":3,"file":"selectField.js","sources":["../../../../../src/components/inputs/selectField/selectField.tsx"],"sourcesContent":["import type { HTMLAttributes, SyntheticEvent } from \"react\";\nimport React, { useState, useRef, useEffect, useMemo, forwardRef } from \"react\";\nimport cn from \"clsx\";\nimport { useSafeLayoutEffect } from \"../../../hooks/useSafeLayoutEffect\";\nimport { useForkRef } from \"../../../hooks/useForkRef\";\nimport { DropdownMenu, DropdownItem, DropdownItemProps } from \"./dropdownMenu\";\nimport Chip from \"../../dataDisplay/chip/chip\";\nimport { TextFieldWrapper } from \"../textField\";\nimport Icon from \"../../base/icon/icon\";\nimport { MenuItemProps } from \"../../navigation/menu\";\n\nconst SelectArrowIcon = (props: HTMLAttributes<HTMLSpanElement>) => <Icon name=\"arrow_drop_down\" {...props} />;\n\nconst ClearIcon = (props: HTMLAttributes<HTMLSpanElement>) => <Icon name=\"close\" size={20} {...props} />;\n\nfunction stopEvent(event: React.SyntheticEvent) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nexport type OnSelectChange = (e: SyntheticEvent, data: SelectFieldProps) => void;\n\nexport interface SelectFieldProps {\n className?: string;\n value?: null | string | number | (string | number | undefined | null)[];\n defaultValue?: null | string | number | (string | number)[];\n onChange?: OnSelectChange;\n disabled?: boolean;\n readOnly?: boolean;\n name?: string;\n multiple?: boolean;\n menuMaxHeight?: number;\n menuMiddleware?: DropdownItemProps[\"menuMiddleware\"];\n menuNoItemsMessage?: React.ReactNode;\n menuContainer?: HTMLElement;\n search?: true | false | \"menu\";\n chips?: boolean;\n isFocused?: boolean;\n error?: boolean;\n items: DropdownItem[];\n label?: string;\n variant?: \"outlined\" | \"filled\";\n /** Height of the field, as for TextField: `small` (40px, for toolbars), `medium` (default) or `large`. */\n size?: \"small\" | \"medium\" | \"large\";\n fullWidth?: boolean;\n helperText?: React.ReactNode;\n onSearch?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n isLoading?: boolean;\n resetSearch?: () => void;\n inline?: boolean;\n endAdornment?: React.ReactNode;\n hideSelectArrowIcon?: boolean;\n optionRenderer?: (args: MenuItemProps) => React.ReactNode;\n /** Shows a clear button to reset the selection. */\n clearable?: boolean;\n /** Allows creating a new option from the current search text. */\n creatable?: boolean;\n /** Invoked with the typed text when the user creates a new option. */\n onCreate?: (inputValue: string, event: React.SyntheticEvent) => void;\n /** Windows long option lists for performance (fixed row height). */\n virtualized?: boolean;\n /** Row height (px) used when `virtualized`. */\n itemHeight?: number;\n /** Accessible label for the combobox control. */\n \"aria-label\"?: string;\n id?: string;\n}\n\nexport const SelectField = forwardRef<HTMLSpanElement, SelectFieldProps>(function SelectField(props, ref) {\n const {\n className,\n value: valueProp,\n defaultValue,\n onChange,\n disabled,\n readOnly,\n name,\n multiple,\n menuMaxHeight,\n menuMiddleware,\n menuNoItemsMessage,\n menuContainer,\n search,\n chips,\n isFocused: isFocusedProp,\n error,\n items,\n label,\n variant = \"outlined\",\n size = \"medium\",\n fullWidth,\n helperText,\n onSearch,\n resetSearch,\n isLoading,\n inline,\n endAdornment,\n hideSelectArrowIcon,\n optionRenderer,\n clearable,\n creatable,\n onCreate,\n virtualized,\n itemHeight,\n \"aria-label\": ariaLabel,\n id,\n ...rest\n } = props;\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [valueState, setValueState] = useState<typeof valueProp>(defaultValue);\n const [selectedItems, setSelectedItems] = useState<typeof items>(() => {\n // Seed from the effective initial value so an uncontrolled `defaultValue`\n // shows its selection (and floats the label) before any interaction.\n const initialValue = valueProp != null ? valueProp : defaultValue;\n\n if (Array.isArray(initialValue)) {\n return items.filter((item) => initialValue.includes(item.value));\n }\n\n const item = initialValue == null ? undefined : items.find((i) => i.value === initialValue);\n\n return item ? [item] : [];\n });\n const [searchValue, setSearchValue] = useState(\"\");\n const { current: isControlled } = useRef(valueProp != null);\n const anchorElementRef = useRef<HTMLSpanElement>(null);\n const forkedAnchorRef = useForkRef<HTMLSpanElement>(ref, anchorElementRef);\n const searchWrapperRef = useRef<HTMLSpanElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const value = isControlled ? valueProp : valueState;\n\n const isFocused = useMemo(() => isFocusedProp || isOpen, [isFocusedProp, isOpen]);\n\n const onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n // Только для левой клавиши мышки.\n if (event.button !== 0) {\n return;\n }\n event.preventDefault();\n anchorElementRef.current?.focus();\n setIsOpen(!isOpen);\n };\n\n const onClose = () => {\n setIsOpen(false);\n anchorElementRef.current?.focus();\n };\n\n const onFocus = () => {\n if (search === true) {\n searchInputRef.current?.focus();\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!readOnly) {\n const validKeys = [\" \", \"ArrowUp\", \"ArrowDown\", \"Enter\"];\n\n if (validKeys.includes(event.key)) {\n event.preventDefault();\n setIsOpen(!isOpen);\n }\n }\n };\n\n useEffect(() => {\n if (!isFocused || (search === \"menu\" && !isOpen)) {\n setSearchValue(\"\");\n resetSearch?.();\n }\n }, [isFocused, search, isOpen, resetSearch]);\n\n // Keep the displayed selection in sync with the effective value (controlled\n // `value` or uncontrolled `defaultValue`/internal state), so the label floats\n // whenever there is a value — including the initial default, without focus.\n useEffect(() => {\n if (Array.isArray(value)) {\n setSelectedItems(items.filter((item) => value.includes(item.value)));\n } else if (value == null || value === \"\") {\n setSelectedItems([]);\n } else {\n const item = items.find((item) => item.value === value);\n setSelectedItems(item ? [item] : []);\n }\n }, [value, items]);\n\n useSafeLayoutEffect(() => {\n if (searchWrapperRef.current) {\n searchWrapperRef.current.scrollLeft = searchWrapperRef.current.scrollWidth;\n }\n }, [value]);\n\n const updateValue = (event: React.SyntheticEvent, value: typeof valueProp) => {\n onChange?.(event, { ...props, value, name: name || undefined });\n setValueState(value);\n };\n\n const onItemClick = (event: React.SyntheticEvent, item: DropdownItem) => {\n let newValue: typeof valueProp;\n let newSelectedItem: typeof selectedItems;\n if (multiple) {\n const valueArray = Array.isArray(value) ? value : [value].filter(Boolean);\n newValue = valueArray.slice();\n newSelectedItem = selectedItems.slice();\n const itemIndex = valueArray.findIndex((el) => el === item.value);\n\n if (itemIndex === -1) {\n newValue.push(item.value);\n newSelectedItem.push(item);\n } else {\n newValue.splice(itemIndex, 1);\n newSelectedItem.splice(itemIndex, 1);\n }\n } else {\n newValue = value === item.value ? \"\" : item.value;\n newSelectedItem = [item];\n }\n\n if (searchValue) {\n setSearchValue(\"\");\n }\n\n if (!multiple) {\n setIsOpen(false);\n anchorElementRef.current?.focus();\n }\n setSelectedItems(newSelectedItem);\n updateValue(event, newValue);\n };\n\n const onSearchInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n onSearch?.(event);\n if (!isOpen) {\n setIsOpen(true);\n }\n };\n\n const onDeleteChip = (currentValue: typeof valueProp) => (event: React.SyntheticEvent) => {\n if (Array.isArray(value)) {\n const newValue = value.filter((value) => currentValue !== value);\n updateValue(event, newValue);\n const newSelectedItems = selectedItems.filter((el) => el.value !== currentValue);\n setSelectedItems(newSelectedItems);\n }\n };\n\n const onResetSelected = (event: React.MouseEvent) => {\n updateValue(event, []);\n setSelectedItems([]);\n };\n\n let displayValues: string | React.ReactNode[];\n\n const classes = cn(\"smwb-select-field\", className, {\n \"smwb-select-field--filled\": variant === \"filled\" && label,\n \"smwb-select-field--disabled\": disabled,\n \"smwb-select-field--search\": search,\n \"smwb-select-field--inline\": inline,\n });\n\n if (chips) {\n displayValues = selectedItems.map(({ key, value, text }) => (\n <Chip\n key={key || value}\n label={text}\n size={size === \"small\" ? \"small\" : \"medium\"}\n onDelete={onDeleteChip(value)}\n onDeleteMouseDown={stopEvent}\n />\n ));\n } else {\n displayValues = selectedItems.map((el) => el.text).join(\", \");\n }\n\n return (\n <>\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={!!selectedItems.length || !!searchValue}\n isFocused={isFocused}\n inline={inline}\n {...rest}\n >\n <span\n ref={forkedAnchorRef}\n id={id}\n className={classes}\n tabIndex={disabled ? undefined : 0}\n role=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-disabled={disabled || undefined}\n aria-label={ariaLabel}\n onMouseDown={disabled || readOnly ? undefined : onMouseDown}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n data-testid=\"select-field\"\n >\n <span className=\"smwb-select-field__search-wrapper\" ref={searchWrapperRef}>\n {displayValues && <span className=\"smwb-select-field__values\">{displayValues}</span>}\n {search && typeof search === \"boolean\" && !readOnly && (\n <span className=\"smwb-select-field__search\">\n <span className=\"smwb-select-field__search-text\">{searchValue}</span>\n <input\n className=\"smwb-select-field__search-input\"\n ref={searchInputRef}\n type=\"text\"\n value={searchValue}\n onChange={onSearchInputChange}\n onMouseDown={(event: React.MouseEvent<HTMLInputElement>) => {\n event.stopPropagation();\n setIsOpen(true);\n }}\n onKeyDown={(event) => {\n event.stopPropagation();\n }}\n data-testid=\"search-input\"\n />\n </span>\n )}\n </span>\n <span className=\"smwb-select-field__actions\">\n {((Array.isArray(value) && value.length > 0) || (clearable && selectedItems.length > 0)) && !disabled && (\n <ClearIcon\n onClick={onResetSelected}\n onMouseDown={stopEvent}\n className={cn(\"smwb-select-field__icon\", \"smwb-select-field__icon--close\")}\n aria-label=\"Clear selection\"\n role=\"button\"\n />\n )}\n {endAdornment}\n {!hideSelectArrowIcon && (\n <SelectArrowIcon\n className={cn(\"smwb-select-field__icon\", \"smwb-select-field__icon--arrow\", {\n \"smwb-select-field__icon--opened\": isOpen,\n \"smwb-select-field__icon--focused\": isFocused,\n \"smwb-select-field__icon--error\": error,\n })}\n />\n )}\n </span>\n </span>\n </TextFieldWrapper>\n <DropdownMenu\n anchorElementRef={anchorElementRef}\n menuMaxHeight={menuMaxHeight}\n menuMiddleware={menuMiddleware}\n search={search === \"menu\"}\n onSearchInputChange={onSearchInputChange}\n optionRenderer={optionRenderer}\n items={\n onSearch\n ? items\n : searchValue\n ? items.filter((el) => el.text.search(new RegExp(searchValue, \"i\")) !== -1)\n : items\n }\n searchValue={searchValue}\n isOpen={isOpen}\n onClose={onClose}\n onItemClick={onItemClick}\n value={value}\n isLoading={isLoading}\n menuNoItemsMessage={menuNoItemsMessage}\n container={menuContainer}\n virtualized={virtualized}\n itemHeight={itemHeight}\n createOption={\n creatable && searchValue && !items.some((i) => i.text.toLowerCase() === String(searchValue).toLowerCase())\n ? {\n text: `Создать \"${searchValue}\"`,\n onCreate: (event: React.SyntheticEvent) => {\n onCreate?.(String(searchValue), event);\n setSearchValue(\"\");\n setIsOpen(false);\n },\n }\n : undefined\n }\n />\n </>\n );\n});\n\nexport default SelectField;\n"],"names":["SelectArrowIcon","props","jsx","Icon","ClearIcon","stopEvent","event","SelectField","forwardRef","ref","className","valueProp","defaultValue","onChange","disabled","readOnly","name","multiple","menuMaxHeight","menuMiddleware","menuNoItemsMessage","menuContainer","search","chips","isFocusedProp","error","items","label","variant","size","fullWidth","helperText","onSearch","resetSearch","isLoading","inline","endAdornment","hideSelectArrowIcon","optionRenderer","clearable","creatable","onCreate","virtualized","itemHeight","ariaLabel","id","rest","isOpen","setIsOpen","useState","valueState","setValueState","selectedItems","setSelectedItems","initialValue","item","i","searchValue","setSearchValue","isControlled","useRef","anchorElementRef","forkedAnchorRef","useForkRef","searchWrapperRef","searchInputRef","value","isFocused","useMemo","onMouseDown","_a","onClose","onFocus","onKeyDown","useEffect","useSafeLayoutEffect","updateValue","onItemClick","newValue","newSelectedItem","valueArray","itemIndex","el","onSearchInputChange","onDeleteChip","currentValue","newSelectedItems","onResetSelected","displayValues","classes","cn","key","text","Chip","jsxs","Fragment","TextFieldWrapper","DropdownMenu"],"mappings":"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"}