@smwb/ui-react 2.6.3 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/AI_LESS_OVERRIDES.md +4 -2
  2. package/AI_THEMING.md +17 -1
  3. package/README.md +111 -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/card/card.entry.css +1 -1
  7. package/dist/assets/styles/less/components/chart/chart.entry.css +1 -0
  8. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  9. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  10. package/dist/assets/styles/less/components/descriptionList/descriptionList.entry.css +1 -0
  11. package/dist/assets/styles/less/components/emptyState/emptyState.entry.css +1 -0
  12. package/dist/assets/styles/less/components/kanban/kanban.entry.css +1 -0
  13. package/dist/assets/styles/less/components/menu/menu.entry.css +1 -1
  14. package/dist/assets/styles/less/components/meter/meter.entry.css +1 -0
  15. package/dist/assets/styles/less/components/personChip/personChip.entry.css +1 -0
  16. package/dist/assets/styles/less/components/progressIndicator/progressIndicator.entry.css +1 -1
  17. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  18. package/dist/assets/styles/less/components/rating/rating.entry.css +1 -1
  19. package/dist/assets/styles/less/components/sectionHeader/sectionHeader.entry.css +1 -0
  20. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  21. package/dist/assets/styles/less/components/stat/stat.entry.css +1 -0
  22. package/dist/assets/styles/less/components/stepper/stepper.entry.css +1 -1
  23. package/dist/assets/styles/less/components/table/table.entry.css +1 -1
  24. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  25. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  26. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  27. package/dist/assets/styles/less/components/thumbCard/thumbCard.entry.css +1 -1
  28. package/dist/assets/styles/less/components/timeline/timeline.entry.css +1 -0
  29. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  30. package/dist/assets/styles/less/components/tooltip/tooltip.entry.css +1 -1
  31. package/dist/assets/styles/less/components/typography/typography.entry.css +1 -1
  32. package/dist/assets/styles/less/connects/rt/table.entry.css +1 -0
  33. package/dist/assets/styles/less/tokens.entry.css +1 -0
  34. package/dist/chart.d.ts +2 -0
  35. package/dist/chart.js +8 -0
  36. package/dist/chart.js.map +1 -0
  37. package/dist/components/base/icon/icon.d.ts +6 -2
  38. package/dist/components/base/icon/icon.js +51 -38
  39. package/dist/components/base/icon/icon.js.map +1 -1
  40. package/dist/components/base/ripple/ripple.d.ts +3 -0
  41. package/dist/components/base/ripple/ripple.js +42 -26
  42. package/dist/components/base/ripple/ripple.js.map +1 -1
  43. package/dist/components/dataDisplay/accordion/accordion.d.ts +18 -1
  44. package/dist/components/dataDisplay/accordion/accordion.js +77 -54
  45. package/dist/components/dataDisplay/accordion/accordion.js.map +1 -1
  46. package/dist/components/dataDisplay/assetGrid/assetGrid.js +15 -14
  47. package/dist/components/dataDisplay/assetGrid/assetGrid.js.map +1 -1
  48. package/dist/components/dataDisplay/avatar/avatar.d.ts +8 -0
  49. package/dist/components/dataDisplay/avatar/avatar.js +66 -38
  50. package/dist/components/dataDisplay/avatar/avatar.js.map +1 -1
  51. package/dist/components/dataDisplay/badge/badge.js +41 -31
  52. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  53. package/dist/components/dataDisplay/card/card.d.ts +30 -2
  54. package/dist/components/dataDisplay/card/card.js +51 -23
  55. package/dist/components/dataDisplay/card/card.js.map +1 -1
  56. package/dist/components/dataDisplay/carousel/carousel.js +80 -79
  57. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  58. package/dist/components/dataDisplay/chart/chart.d.ts +67 -0
  59. package/dist/components/dataDisplay/chart/chart.js +146 -0
  60. package/dist/components/dataDisplay/chart/chart.js.map +1 -0
  61. package/dist/components/dataDisplay/chart/chartTheme.d.ts +35 -0
  62. package/dist/components/dataDisplay/chart/chartTheme.js +74 -0
  63. package/dist/components/dataDisplay/chart/chartTheme.js.map +1 -0
  64. package/dist/components/dataDisplay/chart/index.d.ts +4 -0
  65. package/dist/components/dataDisplay/chat/chat.js +5 -4
  66. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  67. package/dist/components/dataDisplay/chat/chatIconButton.d.ts +1 -1
  68. package/dist/components/dataDisplay/chat/chatIconButton.js +30 -26
  69. package/dist/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  70. package/dist/components/dataDisplay/chat/chatLayout.d.ts +3 -1
  71. package/dist/components/dataDisplay/chat/chatLayout.js +56 -55
  72. package/dist/components/dataDisplay/chat/chatLayout.js.map +1 -1
  73. package/dist/components/dataDisplay/chat/chatOverlayLayout.d.ts +3 -1
  74. package/dist/components/dataDisplay/chip/chip.d.ts +31 -0
  75. package/dist/components/dataDisplay/chip/chip.js +112 -84
  76. package/dist/components/dataDisplay/chip/chip.js.map +1 -1
  77. package/dist/components/dataDisplay/chipGroup/chipGroup.js +37 -32
  78. package/dist/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  79. package/dist/components/dataDisplay/descriptionList/descriptionList.d.ts +45 -0
  80. package/dist/components/dataDisplay/descriptionList/descriptionList.js +43 -0
  81. package/dist/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  82. package/dist/components/dataDisplay/descriptionList/index.d.ts +2 -0
  83. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +145 -99
  84. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  85. package/dist/components/dataDisplay/imagesList/imagesList.js +11 -10
  86. package/dist/components/dataDisplay/imagesList/imagesList.js.map +1 -1
  87. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +31 -24
  88. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  89. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.d.ts +1 -1
  90. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  91. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  92. package/dist/components/dataDisplay/kanban/index.d.ts +2 -0
  93. package/dist/components/dataDisplay/kanban/kanban.d.ts +53 -0
  94. package/dist/components/dataDisplay/kanban/kanban.js +74 -0
  95. package/dist/components/dataDisplay/kanban/kanban.js.map +1 -0
  96. package/dist/components/dataDisplay/lazyImage/lazyImage.js +33 -31
  97. package/dist/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  98. package/dist/components/dataDisplay/list/list.d.ts +2 -0
  99. package/dist/components/dataDisplay/list/list.js +17 -15
  100. package/dist/components/dataDisplay/list/list.js.map +1 -1
  101. package/dist/components/dataDisplay/meter/index.d.ts +2 -0
  102. package/dist/components/dataDisplay/meter/meter.d.ts +35 -0
  103. package/dist/components/dataDisplay/meter/meter.js +63 -0
  104. package/dist/components/dataDisplay/meter/meter.js.map +1 -0
  105. package/dist/components/dataDisplay/personChip/index.d.ts +2 -0
  106. package/dist/components/dataDisplay/personChip/personChip.d.ts +33 -0
  107. package/dist/components/dataDisplay/personChip/personChip.js +73 -0
  108. package/dist/components/dataDisplay/personChip/personChip.js.map +1 -0
  109. package/dist/components/dataDisplay/stat/index.d.ts +2 -0
  110. package/dist/components/dataDisplay/stat/stat.d.ts +38 -0
  111. package/dist/components/dataDisplay/stat/stat.js +60 -0
  112. package/dist/components/dataDisplay/stat/stat.js.map +1 -0
  113. package/dist/components/dataDisplay/table/table.d.ts +22 -0
  114. package/dist/components/dataDisplay/table/table.js +42 -32
  115. package/dist/components/dataDisplay/table/table.js.map +1 -1
  116. package/dist/components/dataDisplay/table/tableBody.js +10 -4
  117. package/dist/components/dataDisplay/table/tableBody.js.map +1 -1
  118. package/dist/components/dataDisplay/table/tableCell.d.ts +11 -1
  119. package/dist/components/dataDisplay/table/tableCell.js +20 -4
  120. package/dist/components/dataDisplay/table/tableCell.js.map +1 -1
  121. package/dist/components/dataDisplay/table/tableColumns.d.ts +83 -0
  122. package/dist/components/dataDisplay/table/tableColumns.js +112 -0
  123. package/dist/components/dataDisplay/table/tableColumns.js.map +1 -0
  124. package/dist/components/dataDisplay/table/tableHead.js +9 -3
  125. package/dist/components/dataDisplay/table/tableHead.js.map +1 -1
  126. package/dist/components/dataDisplay/table/tableHeadCell.d.ts +34 -3
  127. package/dist/components/dataDisplay/table/tableHeadCell.js +61 -36
  128. package/dist/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  129. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js +10 -9
  130. package/dist/components/dataDisplay/table/tablePagination/tablePagination.js.map +1 -1
  131. package/dist/components/dataDisplay/table/tableRow.d.ts +3 -1
  132. package/dist/components/dataDisplay/table/tableRow.js +28 -16
  133. package/dist/components/dataDisplay/table/tableRow.js.map +1 -1
  134. package/dist/components/dataDisplay/thumbCard/thumbCard.d.ts +44 -3
  135. package/dist/components/dataDisplay/thumbCard/thumbCard.js +81 -60
  136. package/dist/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  137. package/dist/components/dataDisplay/timeline/index.d.ts +2 -0
  138. package/dist/components/dataDisplay/timeline/timeline.d.ts +43 -0
  139. package/dist/components/dataDisplay/timeline/timeline.js +44 -0
  140. package/dist/components/dataDisplay/timeline/timeline.js.map +1 -0
  141. package/dist/components/dataDisplay/treeView/treeView.d.ts +2 -0
  142. package/dist/components/dataDisplay/treeView/treeView.js +26 -24
  143. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  144. package/dist/components/dataDisplay/typography/typography.d.ts +4 -0
  145. package/dist/components/dataDisplay/typography/typography.js +41 -23
  146. package/dist/components/dataDisplay/typography/typography.js.map +1 -1
  147. package/dist/components/feedBack/confirmDialog/confirmDialog.js +14 -13
  148. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -1
  149. package/dist/components/feedBack/emptyState/emptyState.d.ts +28 -0
  150. package/dist/components/feedBack/emptyState/emptyState.js +37 -0
  151. package/dist/components/feedBack/emptyState/emptyState.js.map +1 -0
  152. package/dist/components/feedBack/emptyState/index.d.ts +2 -0
  153. package/dist/components/feedBack/message/message.d.ts +2 -0
  154. package/dist/components/feedBack/message/message.js +33 -21
  155. package/dist/components/feedBack/message/message.js.map +1 -1
  156. package/dist/components/feedBack/modal/modal.js +44 -43
  157. package/dist/components/feedBack/modal/modal.js.map +1 -1
  158. package/dist/components/feedBack/progressIndicator/progressIndicator.d.ts +14 -1
  159. package/dist/components/feedBack/progressIndicator/progressIndicator.js +72 -40
  160. package/dist/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  161. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js +32 -31
  162. package/dist/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  163. package/dist/components/feedBack/skeleton/skeleton.d.ts +10 -2
  164. package/dist/components/feedBack/skeleton/skeleton.js +40 -36
  165. package/dist/components/feedBack/skeleton/skeleton.js.map +1 -1
  166. package/dist/components/feedBack/snackbar/snackbar.js +110 -108
  167. package/dist/components/feedBack/snackbar/snackbar.js.map +1 -1
  168. package/dist/components/feedBack/tooltip/tooltip.d.ts +9 -1
  169. package/dist/components/feedBack/tooltip/tooltip.js +77 -49
  170. package/dist/components/feedBack/tooltip/tooltip.js.map +1 -1
  171. package/dist/components/inputs/button/button.d.ts +2 -0
  172. package/dist/components/inputs/button/button.js +67 -62
  173. package/dist/components/inputs/button/button.js.map +1 -1
  174. package/dist/components/inputs/buttonGroups/buttonGroup.d.ts +2 -0
  175. package/dist/components/inputs/buttonGroups/buttonGroup.js +42 -37
  176. package/dist/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  177. package/dist/components/inputs/checkbox/checkbox.d.ts +10 -0
  178. package/dist/components/inputs/checkbox/checkbox.js +86 -60
  179. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  180. package/dist/components/inputs/datePicker/datePicker.js +179 -170
  181. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  182. package/dist/components/inputs/datePicker/datePickerDay.d.ts +1 -1
  183. package/dist/components/inputs/datePicker/datePickerDay.js +52 -44
  184. package/dist/components/inputs/datePicker/datePickerDay.js.map +1 -1
  185. package/dist/components/inputs/datePicker/datePickerIconButton.d.ts +1 -1
  186. package/dist/components/inputs/datePicker/datePickerIconButton.js +32 -28
  187. package/dist/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  188. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +165 -157
  189. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  190. package/dist/components/inputs/fileDrop/fileDrop.js +13 -12
  191. package/dist/components/inputs/fileDrop/fileDrop.js.map +1 -1
  192. package/dist/components/inputs/fileInput/fileInput.js +4 -3
  193. package/dist/components/inputs/fileInput/fileInput.js.map +1 -1
  194. package/dist/components/inputs/floatingButton/floatingButton.js +34 -31
  195. package/dist/components/inputs/floatingButton/floatingButton.js.map +1 -1
  196. package/dist/components/inputs/radioButton/radioButton.d.ts +9 -0
  197. package/dist/components/inputs/radioButton/radioButton.js +79 -59
  198. package/dist/components/inputs/radioButton/radioButton.js.map +1 -1
  199. package/dist/components/inputs/rating/rating.d.ts +8 -0
  200. package/dist/components/inputs/rating/rating.js +87 -71
  201. package/dist/components/inputs/rating/rating.js.map +1 -1
  202. package/dist/components/inputs/selectField/dropdownMenu.d.ts +20 -1
  203. package/dist/components/inputs/selectField/dropdownMenu.js +265 -109
  204. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  205. package/dist/components/inputs/selectField/optionNavigation.d.ts +17 -0
  206. package/dist/components/inputs/selectField/optionNavigation.js +38 -0
  207. package/dist/components/inputs/selectField/optionNavigation.js.map +1 -0
  208. package/dist/components/inputs/selectField/selectField.d.ts +33 -1
  209. package/dist/components/inputs/selectField/selectField.js +365 -214
  210. package/dist/components/inputs/selectField/selectField.js.map +1 -1
  211. package/dist/components/inputs/slider/slider.d.ts +22 -1
  212. package/dist/components/inputs/slider/slider.js +332 -262
  213. package/dist/components/inputs/slider/slider.js.map +1 -1
  214. package/dist/components/inputs/textField/textField.d.ts +7 -0
  215. package/dist/components/inputs/textField/textField.js +118 -99
  216. package/dist/components/inputs/textField/textField.js.map +1 -1
  217. package/dist/components/inputs/textField/textFieldWrapper.d.ts +15 -1
  218. package/dist/components/inputs/textField/textFieldWrapper.js +45 -34
  219. package/dist/components/inputs/textField/textFieldWrapper.js.map +1 -1
  220. package/dist/components/inputs/textField/utils.d.ts +1 -1
  221. package/dist/components/inputs/timePicker/timePicker.js +94 -85
  222. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  223. package/dist/components/inputs/toggle/toggle.d.ts +4 -0
  224. package/dist/components/inputs/toggle/toggle.js +81 -61
  225. package/dist/components/inputs/toggle/toggle.js.map +1 -1
  226. package/dist/components/inputs/valueSlider/valueSlider.d.ts +12 -0
  227. package/dist/components/inputs/valueSlider/valueSlider.js +24 -22
  228. package/dist/components/inputs/valueSlider/valueSlider.js.map +1 -1
  229. package/dist/components/layout/appLayout/appLayout.d.ts +2 -0
  230. package/dist/components/layout/appLayout/appLayout.js +35 -33
  231. package/dist/components/layout/appLayout/appLayout.js.map +1 -1
  232. package/dist/components/layout/divider/divider.d.ts +2 -0
  233. package/dist/components/layout/divider/divider.js +24 -22
  234. package/dist/components/layout/divider/divider.js.map +1 -1
  235. package/dist/components/layout/floatingWindow/floatingWindow.d.ts +2 -0
  236. package/dist/components/layout/floatingWindow/floatingWindow.js +147 -140
  237. package/dist/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  238. package/dist/components/layout/grid/grid.d.ts +12 -1
  239. package/dist/components/layout/grid/grid.js +50 -34
  240. package/dist/components/layout/grid/grid.js.map +1 -1
  241. package/dist/components/layout/page/page.d.ts +2 -0
  242. package/dist/components/layout/page/page.js +18 -9
  243. package/dist/components/layout/page/page.js.map +1 -1
  244. package/dist/components/layout/pageHeader/pageHeader.d.ts +2 -0
  245. package/dist/components/layout/pageHeader/pageHeader.js +22 -12
  246. package/dist/components/layout/pageHeader/pageHeader.js.map +1 -1
  247. package/dist/components/layout/screenDivider/screenDivider.js +19 -18
  248. package/dist/components/layout/screenDivider/screenDivider.js.map +1 -1
  249. package/dist/components/layout/sectionHeader/index.d.ts +2 -0
  250. package/dist/components/layout/sectionHeader/sectionHeader.d.ts +33 -0
  251. package/dist/components/layout/sectionHeader/sectionHeader.js +77 -0
  252. package/dist/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  253. package/dist/components/layout/sheet/sheet.d.ts +2 -0
  254. package/dist/components/layout/sheet/sheet.js +82 -80
  255. package/dist/components/layout/sheet/sheet.js.map +1 -1
  256. package/dist/components/layout/stack/stack.d.ts +2 -0
  257. package/dist/components/layout/stack/stack.js +33 -20
  258. package/dist/components/layout/stack/stack.js.map +1 -1
  259. package/dist/components/navigation/appBar/appBar.d.ts +2 -0
  260. package/dist/components/navigation/appBar/appBar.js +20 -18
  261. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  262. package/dist/components/navigation/bottomBar/bottomBar.js +83 -78
  263. package/dist/components/navigation/bottomBar/bottomBar.js.map +1 -1
  264. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +2 -0
  265. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +31 -28
  266. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  267. package/dist/components/navigation/menu/menu.d.ts +12 -0
  268. package/dist/components/navigation/menu/menu.js +6 -5
  269. package/dist/components/navigation/menu/menu.js.map +1 -1
  270. package/dist/components/navigation/menu/menuContext.d.ts +2 -0
  271. package/dist/components/navigation/menu/menuContext.js.map +1 -1
  272. package/dist/components/navigation/menu/menuFloating.js +42 -30
  273. package/dist/components/navigation/menu/menuFloating.js.map +1 -1
  274. package/dist/components/navigation/menu/menuItem.d.ts +4 -0
  275. package/dist/components/navigation/menu/menuItem.js +60 -48
  276. package/dist/components/navigation/menu/menuItem.js.map +1 -1
  277. package/dist/components/navigation/menu/menuList.d.ts +5 -1
  278. package/dist/components/navigation/menu/menuList.js +30 -19
  279. package/dist/components/navigation/menu/menuList.js.map +1 -1
  280. package/dist/components/navigation/menu/menuSubmenu.js +53 -40
  281. package/dist/components/navigation/menu/menuSubmenu.js.map +1 -1
  282. package/dist/components/navigation/overflowMenu/overflowMenu.js +16 -15
  283. package/dist/components/navigation/overflowMenu/overflowMenu.js.map +1 -1
  284. package/dist/components/navigation/pagination/pagination.d.ts +2 -0
  285. package/dist/components/navigation/pagination/pagination.js +53 -50
  286. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  287. package/dist/components/navigation/sidebar/sidebar.js +46 -44
  288. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  289. package/dist/components/navigation/stepper/stepper.d.ts +12 -2
  290. package/dist/components/navigation/stepper/stepper.js +43 -31
  291. package/dist/components/navigation/stepper/stepper.js.map +1 -1
  292. package/dist/components/navigation/tabs/tab/tab.d.ts +2 -0
  293. package/dist/components/navigation/tabs/tab/tab.js +44 -41
  294. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  295. package/dist/components/navigation/tabs/tabs.d.ts +18 -0
  296. package/dist/components/navigation/tabs/tabs.js +139 -87
  297. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  298. package/dist/connects/rt/table/draggableHeader.d.ts +1 -1
  299. package/dist/connects/rt/table/draggableHeader.js.map +1 -0
  300. package/dist/connects/rt/table/headerCellRenderer.d.ts +9 -0
  301. package/dist/connects/rt/table/headerCellRenderer.js +51 -0
  302. package/dist/connects/rt/table/headerCellRenderer.js.map +1 -0
  303. package/dist/connects/rt/table/table.d.ts +17 -1
  304. package/dist/connects/rt/table/table.js +194 -0
  305. package/dist/connects/rt/table/table.js.map +1 -0
  306. package/dist/connects/rt/table/utils.js.map +1 -0
  307. package/dist/headless/components/base/icon/icon.js +49 -37
  308. package/dist/headless/components/base/icon/icon.js.map +1 -1
  309. package/dist/headless/components/base/ripple/ripple.js +42 -27
  310. package/dist/headless/components/base/ripple/ripple.js.map +1 -1
  311. package/dist/headless/components/dataDisplay/accordion/accordion.js +76 -54
  312. package/dist/headless/components/dataDisplay/accordion/accordion.js.map +1 -1
  313. package/dist/headless/components/dataDisplay/avatar/avatar.js +62 -35
  314. package/dist/headless/components/dataDisplay/avatar/avatar.js.map +1 -1
  315. package/dist/headless/components/dataDisplay/badge/badge.js +37 -28
  316. package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
  317. package/dist/headless/components/dataDisplay/card/card.js +50 -23
  318. package/dist/headless/components/dataDisplay/card/card.js.map +1 -1
  319. package/dist/headless/components/dataDisplay/carousel/carousel.js +55 -55
  320. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  321. package/dist/headless/components/dataDisplay/chat/chatIconButton.js +30 -26
  322. package/dist/headless/components/dataDisplay/chat/chatIconButton.js.map +1 -1
  323. package/dist/headless/components/dataDisplay/chat/chatLayout.js +56 -55
  324. package/dist/headless/components/dataDisplay/chat/chatLayout.js.map +1 -1
  325. package/dist/headless/components/dataDisplay/chip/chip.js +108 -81
  326. package/dist/headless/components/dataDisplay/chip/chip.js.map +1 -1
  327. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js +35 -31
  328. package/dist/headless/components/dataDisplay/chipGroup/chipGroup.js.map +1 -1
  329. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js +41 -0
  330. package/dist/headless/components/dataDisplay/descriptionList/descriptionList.js.map +1 -0
  331. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +143 -98
  332. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  333. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js +29 -23
  334. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItem.js.map +1 -1
  335. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +16 -13
  336. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  337. package/dist/headless/components/dataDisplay/kanban/kanban.js +72 -0
  338. package/dist/headless/components/dataDisplay/kanban/kanban.js.map +1 -0
  339. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js +30 -29
  340. package/dist/headless/components/dataDisplay/lazyImage/lazyImage.js.map +1 -1
  341. package/dist/headless/components/dataDisplay/list/list.js +15 -14
  342. package/dist/headless/components/dataDisplay/list/list.js.map +1 -1
  343. package/dist/headless/components/dataDisplay/meter/meter.js +61 -0
  344. package/dist/headless/components/dataDisplay/meter/meter.js.map +1 -0
  345. package/dist/headless/components/dataDisplay/personChip/personChip.js +71 -0
  346. package/dist/headless/components/dataDisplay/personChip/personChip.js.map +1 -0
  347. package/dist/headless/components/dataDisplay/stat/stat.js +58 -0
  348. package/dist/headless/components/dataDisplay/stat/stat.js.map +1 -0
  349. package/dist/headless/components/dataDisplay/table/table.js +40 -31
  350. package/dist/headless/components/dataDisplay/table/table.js.map +1 -1
  351. package/dist/headless/components/dataDisplay/table/tableBody.js +10 -4
  352. package/dist/headless/components/dataDisplay/table/tableBody.js.map +1 -1
  353. package/dist/headless/components/dataDisplay/table/tableCell.js +20 -4
  354. package/dist/headless/components/dataDisplay/table/tableCell.js.map +1 -1
  355. package/dist/headless/components/dataDisplay/table/tableColumns.js +112 -0
  356. package/dist/headless/components/dataDisplay/table/tableColumns.js.map +1 -0
  357. package/dist/headless/components/dataDisplay/table/tableHead.js +9 -3
  358. package/dist/headless/components/dataDisplay/table/tableHead.js.map +1 -1
  359. package/dist/headless/components/dataDisplay/table/tableHeadCell.js +61 -36
  360. package/dist/headless/components/dataDisplay/table/tableHeadCell.js.map +1 -1
  361. package/dist/headless/components/dataDisplay/table/tableRow.js +28 -16
  362. package/dist/headless/components/dataDisplay/table/tableRow.js.map +1 -1
  363. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js +78 -58
  364. package/dist/headless/components/dataDisplay/thumbCard/thumbCard.js.map +1 -1
  365. package/dist/headless/components/dataDisplay/timeline/timeline.js +42 -0
  366. package/dist/headless/components/dataDisplay/timeline/timeline.js.map +1 -0
  367. package/dist/headless/components/dataDisplay/treeView/treeView.js +24 -23
  368. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  369. package/dist/headless/components/dataDisplay/typography/typography.js +39 -22
  370. package/dist/headless/components/dataDisplay/typography/typography.js.map +1 -1
  371. package/dist/headless/components/feedBack/emptyState/emptyState.js +35 -0
  372. package/dist/headless/components/feedBack/emptyState/emptyState.js.map +1 -0
  373. package/dist/headless/components/feedBack/message/message.js +31 -20
  374. package/dist/headless/components/feedBack/message/message.js.map +1 -1
  375. package/dist/headless/components/feedBack/modal/modal.js +44 -44
  376. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  377. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js +70 -39
  378. package/dist/headless/components/feedBack/progressIndicator/progressIndicator.js.map +1 -1
  379. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js +30 -30
  380. package/dist/headless/components/feedBack/saveAssetDialog/saveAssetDialog.js.map +1 -1
  381. package/dist/headless/components/feedBack/skeleton/skeleton.js +38 -35
  382. package/dist/headless/components/feedBack/skeleton/skeleton.js.map +1 -1
  383. package/dist/headless/components/feedBack/snackbar/snackbar.js +108 -107
  384. package/dist/headless/components/feedBack/snackbar/snackbar.js.map +1 -1
  385. package/dist/headless/components/feedBack/tooltip/tooltip.js +75 -48
  386. package/dist/headless/components/feedBack/tooltip/tooltip.js.map +1 -1
  387. package/dist/headless/components/inputs/button/button.js +62 -58
  388. package/dist/headless/components/inputs/button/button.js.map +1 -1
  389. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js +40 -36
  390. package/dist/headless/components/inputs/buttonGroups/buttonGroup.js.map +1 -1
  391. package/dist/headless/components/inputs/checkbox/checkbox.js +85 -60
  392. package/dist/headless/components/inputs/checkbox/checkbox.js.map +1 -1
  393. package/dist/headless/components/inputs/datePicker/datePicker.js +177 -169
  394. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  395. package/dist/headless/components/inputs/datePicker/datePickerDay.js +52 -44
  396. package/dist/headless/components/inputs/datePicker/datePickerDay.js.map +1 -1
  397. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js +32 -28
  398. package/dist/headless/components/inputs/datePicker/datePickerIconButton.js.map +1 -1
  399. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +165 -157
  400. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  401. package/dist/headless/components/inputs/floatingButton/floatingButton.js +32 -30
  402. package/dist/headless/components/inputs/floatingButton/floatingButton.js.map +1 -1
  403. package/dist/headless/components/inputs/radioButton/radioButton.js +77 -58
  404. package/dist/headless/components/inputs/radioButton/radioButton.js.map +1 -1
  405. package/dist/headless/components/inputs/rating/rating.js +85 -70
  406. package/dist/headless/components/inputs/rating/rating.js.map +1 -1
  407. package/dist/headless/components/inputs/selectField/dropdownMenu.js +265 -109
  408. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  409. package/dist/headless/components/inputs/selectField/optionNavigation.js +38 -0
  410. package/dist/headless/components/inputs/selectField/optionNavigation.js.map +1 -0
  411. package/dist/headless/components/inputs/selectField/selectField.js +360 -210
  412. package/dist/headless/components/inputs/selectField/selectField.js.map +1 -1
  413. package/dist/headless/components/inputs/slider/slider.js +330 -261
  414. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  415. package/dist/headless/components/inputs/textField/textField.js +118 -100
  416. package/dist/headless/components/inputs/textField/textField.js.map +1 -1
  417. package/dist/headless/components/inputs/textField/textFieldWrapper.js +45 -34
  418. package/dist/headless/components/inputs/textField/textFieldWrapper.js.map +1 -1
  419. package/dist/headless/components/inputs/timePicker/timePicker.js +92 -84
  420. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  421. package/dist/headless/components/inputs/toggle/toggle.js +79 -60
  422. package/dist/headless/components/inputs/toggle/toggle.js.map +1 -1
  423. package/dist/headless/components/inputs/valueSlider/valueSlider.js +25 -24
  424. package/dist/headless/components/inputs/valueSlider/valueSlider.js.map +1 -1
  425. package/dist/headless/components/layout/appLayout/appLayout.js +27 -26
  426. package/dist/headless/components/layout/appLayout/appLayout.js.map +1 -1
  427. package/dist/headless/components/layout/divider/divider.js +18 -17
  428. package/dist/headless/components/layout/divider/divider.js.map +1 -1
  429. package/dist/headless/components/layout/floatingWindow/floatingWindow.js +145 -139
  430. package/dist/headless/components/layout/floatingWindow/floatingWindow.js.map +1 -1
  431. package/dist/headless/components/layout/grid/grid.js +48 -33
  432. package/dist/headless/components/layout/grid/grid.js.map +1 -1
  433. package/dist/headless/components/layout/page/page.js +15 -7
  434. package/dist/headless/components/layout/page/page.js.map +1 -1
  435. package/dist/headless/components/layout/pageHeader/pageHeader.js +20 -11
  436. package/dist/headless/components/layout/pageHeader/pageHeader.js.map +1 -1
  437. package/dist/headless/components/layout/sectionHeader/sectionHeader.js +75 -0
  438. package/dist/headless/components/layout/sectionHeader/sectionHeader.js.map +1 -0
  439. package/dist/headless/components/layout/sheet/sheet.js +80 -79
  440. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  441. package/dist/headless/components/layout/stack/stack.js +29 -17
  442. package/dist/headless/components/layout/stack/stack.js.map +1 -1
  443. package/dist/headless/components/navigation/appBar/appBar.js +15 -14
  444. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  445. package/dist/headless/components/navigation/bottomBar/bottomBar.js +81 -77
  446. package/dist/headless/components/navigation/bottomBar/bottomBar.js.map +1 -1
  447. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js +32 -30
  448. package/dist/headless/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  449. package/dist/headless/components/navigation/menu/menu.js.map +1 -1
  450. package/dist/headless/components/navigation/menu/menuContext.js.map +1 -1
  451. package/dist/headless/components/navigation/menu/menuFloating.js +42 -30
  452. package/dist/headless/components/navigation/menu/menuFloating.js.map +1 -1
  453. package/dist/headless/components/navigation/menu/menuItem.js +60 -48
  454. package/dist/headless/components/navigation/menu/menuItem.js.map +1 -1
  455. package/dist/headless/components/navigation/menu/menuList.js +30 -19
  456. package/dist/headless/components/navigation/menu/menuList.js.map +1 -1
  457. package/dist/headless/components/navigation/menu/menuSubmenu.js +53 -40
  458. package/dist/headless/components/navigation/menu/menuSubmenu.js.map +1 -1
  459. package/dist/headless/components/navigation/pagination/pagination.js +51 -49
  460. package/dist/headless/components/navigation/pagination/pagination.js.map +1 -1
  461. package/dist/headless/components/navigation/sidebar/sidebar.js +29 -28
  462. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  463. package/dist/headless/components/navigation/stepper/stepper.js +41 -30
  464. package/dist/headless/components/navigation/stepper/stepper.js.map +1 -1
  465. package/dist/headless/components/navigation/tabs/tab/tab.js +41 -39
  466. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  467. package/dist/headless/components/navigation/tabs/tabs.js +137 -86
  468. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  469. package/dist/headless/hooks/useDismissOnEscape.js +16 -0
  470. package/dist/headless/hooks/useDismissOnEscape.js.map +1 -0
  471. package/dist/headless/hooks/useFocusTrap.js +1 -0
  472. package/dist/headless/hooks/useFocusTrap.js.map +1 -1
  473. package/dist/headless/hooks/useHelperText.js +13 -0
  474. package/dist/headless/hooks/useHelperText.js.map +1 -0
  475. package/dist/headless/hooks/useSafeLayoutEffect.js +4 -2
  476. package/dist/headless/hooks/useSafeLayoutEffect.js.map +1 -1
  477. package/dist/headless/icons/catalog.js +78 -1
  478. package/dist/headless/icons/catalog.js.map +1 -1
  479. package/dist/headless/icons/index.js +596 -574
  480. package/dist/headless/icons/index.js.map +1 -1
  481. package/dist/headless/icons/svg/accountTree.js +9 -0
  482. package/dist/headless/icons/svg/accountTree.js.map +1 -0
  483. package/dist/headless/icons/svg/callSplit.js +9 -0
  484. package/dist/headless/icons/svg/callSplit.js.map +1 -0
  485. package/dist/headless/icons/svg/deviceHub.js +8 -0
  486. package/dist/headless/icons/svg/deviceHub.js.map +1 -0
  487. package/dist/headless/icons/svg/editNote.js +9 -0
  488. package/dist/headless/icons/svg/editNote.js.map +1 -0
  489. package/dist/headless/icons/svg/filterList.js +9 -0
  490. package/dist/headless/icons/svg/filterList.js.map +1 -0
  491. package/dist/headless/icons/svg/forkRight.js +8 -0
  492. package/dist/headless/icons/svg/forkRight.js.map +1 -0
  493. package/dist/headless/icons/svg/groups.js +9 -0
  494. package/dist/headless/icons/svg/groups.js.map +1 -0
  495. package/dist/headless/icons/svg/hub.js +8 -0
  496. package/dist/headless/icons/svg/hub.js.map +1 -0
  497. package/dist/headless/icons/svg/index.js +598 -576
  498. package/dist/headless/icons/svg/index.js.map +1 -1
  499. package/dist/headless/icons/svg/lan.js +9 -0
  500. package/dist/headless/icons/svg/lan.js.map +1 -0
  501. package/dist/headless/icons/svg/personOff.js +9 -0
  502. package/dist/headless/icons/svg/personOff.js.map +1 -0
  503. package/dist/headless/icons/svg/schema.js +9 -0
  504. package/dist/headless/icons/svg/schema.js.map +1 -0
  505. package/dist/headless/index.js +209 -183
  506. package/dist/headless/index.js.map +1 -1
  507. package/dist/headless/utils/controlProps.js +14 -0
  508. package/dist/headless/utils/controlProps.js.map +1 -0
  509. package/dist/headless/utils/overlayLayer.js +14 -7
  510. package/dist/headless/utils/overlayLayer.js.map +1 -1
  511. package/dist/headless/utils/ownClick.js +40 -0
  512. package/dist/headless/utils/ownClick.js.map +1 -0
  513. package/dist/headless/utils/readOnlyToggle.js +14 -0
  514. package/dist/headless/utils/readOnlyToggle.js.map +1 -0
  515. package/dist/hooks/useDismissOnEscape.d.ts +11 -0
  516. package/dist/hooks/useDismissOnEscape.js +16 -0
  517. package/dist/hooks/useDismissOnEscape.js.map +1 -0
  518. package/dist/hooks/useFocusTrap.d.ts +2 -0
  519. package/dist/hooks/useFocusTrap.js +1 -0
  520. package/dist/hooks/useFocusTrap.js.map +1 -1
  521. package/dist/hooks/useHelperText.d.ts +21 -0
  522. package/dist/hooks/useHelperText.js +13 -0
  523. package/dist/hooks/useHelperText.js.map +1 -0
  524. package/dist/hooks/useSafeLayoutEffect.d.ts +7 -1
  525. package/dist/hooks/useSafeLayoutEffect.js +4 -2
  526. package/dist/hooks/useSafeLayoutEffect.js.map +1 -1
  527. package/dist/icons/catalog.d.ts +1 -1
  528. package/dist/icons/catalog.js +78 -1
  529. package/dist/icons/catalog.js.map +1 -1
  530. package/dist/icons/index.js +596 -574
  531. package/dist/icons/index.js.map +1 -1
  532. package/dist/icons/svg/accountTree.d.ts +4 -0
  533. package/dist/icons/svg/accountTree.js +9 -0
  534. package/dist/icons/svg/accountTree.js.map +1 -0
  535. package/dist/icons/svg/callSplit.d.ts +4 -0
  536. package/dist/icons/svg/callSplit.js +9 -0
  537. package/dist/icons/svg/callSplit.js.map +1 -0
  538. package/dist/icons/svg/deviceHub.d.ts +4 -0
  539. package/dist/icons/svg/deviceHub.js +8 -0
  540. package/dist/icons/svg/deviceHub.js.map +1 -0
  541. package/dist/icons/svg/editNote.d.ts +4 -0
  542. package/dist/icons/svg/editNote.js +9 -0
  543. package/dist/icons/svg/editNote.js.map +1 -0
  544. package/dist/icons/svg/filterList.d.ts +4 -0
  545. package/dist/icons/svg/filterList.js +9 -0
  546. package/dist/icons/svg/filterList.js.map +1 -0
  547. package/dist/icons/svg/forkRight.d.ts +4 -0
  548. package/dist/icons/svg/forkRight.js +8 -0
  549. package/dist/icons/svg/forkRight.js.map +1 -0
  550. package/dist/icons/svg/groups.d.ts +4 -0
  551. package/dist/icons/svg/groups.js +9 -0
  552. package/dist/icons/svg/groups.js.map +1 -0
  553. package/dist/icons/svg/hub.d.ts +4 -0
  554. package/dist/icons/svg/hub.js +8 -0
  555. package/dist/icons/svg/hub.js.map +1 -0
  556. package/dist/icons/svg/index.d.ts +11 -0
  557. package/dist/icons/svg/index.js +598 -576
  558. package/dist/icons/svg/index.js.map +1 -1
  559. package/dist/icons/svg/lan.d.ts +4 -0
  560. package/dist/icons/svg/lan.js +9 -0
  561. package/dist/icons/svg/lan.js.map +1 -0
  562. package/dist/icons/svg/personOff.d.ts +4 -0
  563. package/dist/icons/svg/personOff.js +9 -0
  564. package/dist/icons/svg/personOff.js.map +1 -0
  565. package/dist/icons/svg/schema.d.ts +4 -0
  566. package/dist/icons/svg/schema.js +9 -0
  567. package/dist/icons/svg/schema.js.map +1 -0
  568. package/dist/icons.cjs +1 -1
  569. package/dist/icons.cjs.map +1 -1
  570. package/dist/index.cjs +2 -2
  571. package/dist/index.cjs.map +1 -1
  572. package/dist/index.d.ts +16 -0
  573. package/dist/index.js +209 -183
  574. package/dist/index.js.map +1 -1
  575. package/dist/utils/controlProps.d.ts +16 -0
  576. package/dist/utils/controlProps.js +14 -0
  577. package/dist/utils/controlProps.js.map +1 -0
  578. package/dist/utils/overlayLayer.d.ts +15 -3
  579. package/dist/utils/overlayLayer.js +14 -7
  580. package/dist/utils/overlayLayer.js.map +1 -1
  581. package/dist/utils/ownClick.d.ts +16 -0
  582. package/dist/utils/ownClick.js +40 -0
  583. package/dist/utils/ownClick.js.map +1 -0
  584. package/dist/utils/readOnlyToggle.d.ts +15 -0
  585. package/dist/utils/readOnlyToggle.js +14 -0
  586. package/dist/utils/readOnlyToggle.js.map +1 -0
  587. package/package.json +18 -7
  588. package/dist/react-table/components/base/icon/icon.js +0 -60
  589. package/dist/react-table/components/base/icon/icon.js.map +0 -1
  590. package/dist/react-table/components/base/icon/iconProvider.js +0 -15
  591. package/dist/react-table/components/base/icon/iconProvider.js.map +0 -1
  592. package/dist/react-table/components/dataDisplay/table/table.js +0 -37
  593. package/dist/react-table/components/dataDisplay/table/table.js.map +0 -1
  594. package/dist/react-table/components/dataDisplay/table/tableBody.js +0 -7
  595. package/dist/react-table/components/dataDisplay/table/tableBody.js.map +0 -1
  596. package/dist/react-table/components/dataDisplay/table/tableCell.js +0 -7
  597. package/dist/react-table/components/dataDisplay/table/tableCell.js.map +0 -1
  598. package/dist/react-table/components/dataDisplay/table/tableHead.js +0 -7
  599. package/dist/react-table/components/dataDisplay/table/tableHead.js.map +0 -1
  600. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js +0 -48
  601. package/dist/react-table/components/dataDisplay/table/tableHeadCell.js.map +0 -1
  602. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js +0 -40
  603. package/dist/react-table/components/dataDisplay/table/tablePagination/tablePagination.js.map +0 -1
  604. package/dist/react-table/components/dataDisplay/table/tableRow.js +0 -20
  605. package/dist/react-table/components/dataDisplay/table/tableRow.js.map +0 -1
  606. package/dist/react-table/components/feedBack/message/message.js +0 -31
  607. package/dist/react-table/components/feedBack/message/message.js.map +0 -1
  608. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js +0 -51
  609. package/dist/react-table/components/feedBack/progressIndicator/progressIndicator.js.map +0 -1
  610. package/dist/react-table/components/inputs/textField/textField.js +0 -125
  611. package/dist/react-table/components/inputs/textField/textField.js.map +0 -1
  612. package/dist/react-table/components/inputs/textField/textFieldAdornment.js +0 -25
  613. package/dist/react-table/components/inputs/textField/textFieldAdornment.js.map +0 -1
  614. package/dist/react-table/components/inputs/textField/textFieldWrapper.js +0 -50
  615. package/dist/react-table/components/inputs/textField/textFieldWrapper.js.map +0 -1
  616. package/dist/react-table/components/inputs/textField/utils.js +0 -11
  617. package/dist/react-table/components/inputs/textField/utils.js.map +0 -1
  618. package/dist/react-table/connects/rt/table/draggableHeader.js.map +0 -1
  619. package/dist/react-table/connects/rt/table/headerCellRenderer.js +0 -14
  620. package/dist/react-table/connects/rt/table/headerCellRenderer.js.map +0 -1
  621. package/dist/react-table/connects/rt/table/table.js +0 -180
  622. package/dist/react-table/connects/rt/table/table.js.map +0 -1
  623. package/dist/react-table/connects/rt/table/utils.js.map +0 -1
  624. package/dist/react-table/hooks/useForkRef.js +0 -13
  625. package/dist/react-table/hooks/useForkRef.js.map +0 -1
  626. package/dist/react-table/hooks/useSafeLayoutEffect.js +0 -6
  627. package/dist/react-table/hooks/useSafeLayoutEffect.js.map +0 -1
  628. package/dist/react-table/icons/config.js +0 -9
  629. package/dist/react-table/icons/config.js.map +0 -1
  630. package/dist/react-table/icons/registry.js +0 -12
  631. package/dist/react-table/icons/registry.js.map +0 -1
  632. package/dist/react-table/icons/store.js +0 -10
  633. package/dist/react-table/icons/store.js.map +0 -1
  634. package/dist/react-table/utils/setRef.js +0 -7
  635. package/dist/react-table/utils/setRef.js.map +0 -1
  636. package/dist/storybook/storyPlay.d.ts +0 -28
  637. /package/dist/{react-table/connects → connects}/rt/table/draggableHeader.js +0 -0
  638. /package/dist/{react-table/connects → connects}/rt/table/utils.js +0 -0
  639. /package/dist/{react-table/react-table.js → react-table.js} +0 -0
  640. /package/dist/{react-table/react-table.js.map → react-table.js.map} +0 -0
@@ -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 { useId } from \"../../../hooks/useId\";\nimport { DropdownMenu, DropdownItem, DropdownItemProps, dropdownOptionId } from \"./dropdownMenu\";\nimport { firstOption, lastOption, matchOption, moveOption } from \"./optionNavigation\";\nimport Chip from \"../../dataDisplay/chip/chip\";\nimport { TextFieldWrapper } from \"../textField\";\nimport { useHelperText } from \"../../../hooks/useHelperText\";\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\n// The items a value selects, in the order of `items`.\nfunction findSelectedItems(items: DropdownItem[], value: SelectFieldProps[\"value\"]): DropdownItem[] {\n if (Array.isArray(value)) {\n return items.filter((item) => value.includes(item.value));\n }\n if (value == null || value === \"\") {\n return [];\n }\n const item = items.find((item) => item.value === value);\n return item ? [item] : [];\n}\n\n// The items whose text holds the search text, in any case. The text is taken\n// literally: \"C++\" or \"(\" searches for those characters.\nfunction filterItems(items: DropdownItem[], searchText: string): DropdownItem[] {\n if (!searchText) {\n return items;\n }\n const pattern = new RegExp(searchText.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"), \"i\");\n return items.filter((el) => el.text.search(pattern) !== -1);\n}\n\n// A key that types a character: type-ahead in the options.\nfunction isPrintableKey(event: React.KeyboardEvent) {\n return event.key.length === 1 && event.key !== \" \" && !event.altKey && !event.ctrlKey && !event.metaKey;\n}\n\n// Keys come to the combobox: the control, the search box in the field, or the\n// search box in the menu. The two search boxes keep the keys that edit text.\ntype ComboboxKind = \"control\" | \"search\" | \"menuSearch\";\n\nexport type OnSelectChange = (e: SyntheticEvent, data: SelectFieldProps) => void;\n\nexport interface SelectFieldProps {\n className?: string;\n /**\n * The selected value, or the values of a `multiple` field. Any value but\n * `undefined` makes the field controlled: it shows this value and nothing\n * else, and a pick, a chip delete or a clear only asks for a change through\n * `onChange`. `null` means nothing is selected. While `value` is `undefined`,\n * the field keeps its own value, starting from `defaultValue`.\n */\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 /**\n * A search box for the options: `true` puts it in the field, where it takes\n * the focus and is the combobox; `\"menu\"` puts it at the top of the menu,\n * which moves the focus into it when it opens.\n */\n search?: true | false | \"menu\";\n chips?: boolean;\n isFocused?: boolean;\n error?: boolean;\n items: DropdownItem[];\n /**\n * Visible label, drawn above the field (an `inline` field draws none). It\n * names the combobox, whose value is the selected text: \"Country\", \"Russia\".\n * With `chips` the chips' texts follow it in the name: \"Labels Backend Docs\".\n */\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 /**\n * Draws an option in place of the default one. It gets the option's props\n * and returns its `<li>`: pass `id`, `role`, `aria-selected`, `aria-disabled`,\n * `className` and `onClick` on to it, so the option can be reached from the\n * keyboard, read out and picked.\n */\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 /**\n * Accessible name of the combobox. Replaces the name the visible `label`\n * gives it; a field without a drawn label needs it.\n */\n \"aria-label\"?: string;\n /**\n * Id of the control, the part of the field that holds the selected text. It is\n * the combobox, unless `search` puts a search box in it: then the box is.\n */\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 helper = useHelperText(helperText, { inline });\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [valueState, setValueState] = useState<typeof valueProp>(defaultValue);\n // Seeded from `defaultValue`, like `valueState`, so an uncontrolled field\n // shows its selection (and floats the label) before any interaction.\n const [ownSelectedItems, setOwnSelectedItems] = useState<typeof items>(() => findSelectedItems(items, defaultValue));\n const [searchValue, setSearchValue] = useState(\"\");\n // The option the keyboard is on (aria-activedescendant), by index in the\n // options drawn; it shows once a key moves it, not on a pointer's open.\n const [activeIndex, setActiveIndex] = useState(-1);\n const [showActive, setShowActive] = useState(false);\n const typeaheadRef = useRef<{ text: string; timer?: ReturnType<typeof setTimeout> }>({ text: \"\" });\n // Controlled while the parent passes a `value` other than `undefined` (`null`\n // is \"nothing selected\"), checked on every render as in `useControllableState`.\n const isControlled = valueProp !== undefined;\n const anchorElementRef = useRef<HTMLSpanElement>(null);\n const controlRef = useRef<HTMLSpanElement>(null);\n const forkedControlRef = useForkRef<HTMLSpanElement>(ref, controlRef);\n const searchWrapperRef = useRef<HTMLSpanElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const menuSearchInputRef = useRef<HTMLInputElement>(null);\n const value = isControlled ? valueProp : valueState;\n // A controlled field shows the items of its `value` and nothing else, in the\n // same render as the value. A pick, a chip delete or a clear only asks the\n // parent through `onChange`: it shows once the parent passes the new value\n // back, and never when the parent keeps the old one. An uncontrolled field\n // shows the items its handlers and the effect below set.\n const selectedItems = useMemo(\n () => (isControlled ? findSelectedItems(items, value) : ownSelectedItems),\n [isControlled, items, value, ownSelectedItems]\n );\n\n const isFocused = useMemo(() => isFocusedProp || isOpen, [isFocusedProp, isOpen]);\n\n // The combobox is named by the label, and its value is the selected text it\n // holds. Chips sit beside the control with their delete buttons, so their\n // labels follow the label in the name (\"Labels Backend Docs\"). With neither a\n // drawn label nor chips, the selected text names it, as before it was a\n // combobox. A caller's aria-label replaces all of these: on one element\n // aria-labelledby would win over it.\n const baseId = useId();\n const labelId = `${baseId}-label`;\n const valueId = `${baseId}-value`;\n const listboxId = `${baseId}-listbox`;\n const valueIds = chips ? selectedItems.map((_, index) => `${valueId}-${index}`) : [valueId];\n const chipIds = chips ? valueIds : [];\n const controlLabelledBy = ariaLabel\n ? undefined\n : label && !inline\n ? [labelId, ...chipIds].join(\" \")\n : chipIds.length > 0\n ? chipIds.join(\" \")\n : !chips && selectedItems.length > 0\n ? valueId\n : undefined;\n // A search box in the field is a combobox whose value is the typed text, so\n // the selected text follows the label in its name.\n const labelledBy = ariaLabel\n ? undefined\n : label && !inline\n ? [labelId, ...valueIds].join(\" \")\n : chips && valueIds.length > 0\n ? valueIds.join(\" \")\n : undefined;\n\n // The search input takes the keyboard focus, so it is the field's only tab\n // stop. A focusable span before it would take Shift+Tab from the input and\n // hand the focus straight back to the input.\n const hasSearchInput = search === true && !readOnly;\n\n // The options as drawn: the items the search text keeps (all of them when\n // the caller searches itself), then the create option.\n const displayedItems = onSearch ? items : filterItems(items, searchValue);\n const 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 closeMenu();\n },\n }\n : undefined;\n const createIndex = createOption ? displayedItems.length : -1;\n const optionCount = displayedItems.length + (createOption ? 1 : 0);\n // A loading menu shows no items, only the create option.\n const isOptionEnabled = (index: number) =>\n index >= 0 &&\n (index === createIndex || (!isLoading && index < displayedItems.length && !displayedItems[index].disabled));\n const currentActive = isOpen && isOptionEnabled(activeIndex) ? activeIndex : -1;\n const activeDescendant = showActive && currentActive >= 0 ? dropdownOptionId(listboxId, currentActive) : undefined;\n\n const isItemSelected = (item: DropdownItem) =>\n Array.isArray(value) ? value.includes(item.value) : value != null && value !== \"\" && value === item.value;\n\n // The keyboard starts on the selected option (the first one of several), or\n // on the first option.\n const initialActive = () => {\n const selected = displayedItems.findIndex(isItemSelected);\n return isOptionEnabled(selected) ? selected : firstOption(optionCount, isOptionEnabled);\n };\n\n // A pointer's open marks no option: the keyboard's active option starts on\n // the selected one, unshown, or with nothing selected on none, so the first\n // ArrowDown reaches the first option.\n const pointerActive = () => {\n const selected = displayedItems.findIndex(isItemSelected);\n return isOptionEnabled(selected) ? selected : -1;\n };\n\n const openMenu = (active: number, byKeyboard: boolean) => {\n setActiveIndex(active);\n setShowActive(byKeyboard);\n setIsOpen(true);\n };\n\n // A menu that had the focus (its search box) hands it back to the control;\n // one closed by a press elsewhere leaves the focus where the press put it.\n const closeMenu = () => {\n if (menuRef.current?.contains(menuRef.current.ownerDocument.activeElement)) {\n controlRef.current?.focus();\n }\n setIsOpen(false);\n setActiveIndex(-1);\n setShowActive(false);\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n // Только для левой клавиши мышки.\n if (event.button !== 0) {\n return;\n }\n event.preventDefault();\n controlRef.current?.focus();\n if (isOpen) {\n closeMenu();\n } else {\n openMenu(pointerActive(), false);\n }\n };\n\n const onFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n // React's onFocus bubbles: only the span's own focus (a press on it, a\n // closed menu) moves on to the input, not the focus of a chip's button.\n if (hasSearchInput && event.target === event.currentTarget) {\n searchInputRef.current?.focus();\n }\n };\n\n // The field's own items and value change only while it is uncontrolled, as\n // in `useControllableState`: a parent that stops passing `value` gets back\n // the field's `defaultValue`, or the picks made before it passed one.\n const setSelectedItems = (next: typeof items) => {\n if (!isControlled) {\n setOwnSelectedItems(next);\n }\n };\n\n const updateValue = (event: React.SyntheticEvent, value: typeof valueProp) => {\n onChange?.(event, { ...props, value, name: name || undefined });\n if (!isControlled) {\n setValueState(value);\n }\n };\n\n // Picks an item: `multiple` toggles it; a single select takes it, and a click\n // on the selected item clears the value (`toggleOff`), where a key keeps it.\n const chooseItem = (event: React.SyntheticEvent, item: DropdownItem, toggleOff: boolean) => {\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 if (value === item.value && !toggleOff) {\n return;\n }\n newValue = value === item.value ? \"\" : item.value;\n newSelectedItem = [item];\n }\n\n if (searchValue) {\n setSearchValue(\"\");\n }\n\n setSelectedItems(newSelectedItem);\n updateValue(event, newValue);\n };\n\n const onItemClick = (event: React.SyntheticEvent, item: DropdownItem) => {\n chooseItem(event, item, true);\n\n if (multiple) {\n // The search text goes with the pick, so the item's place is in all items.\n setActiveIndex(items.indexOf(item));\n } else {\n closeMenu();\n controlRef.current?.focus();\n }\n };\n\n // Enter, Space, Tab or Alt+ArrowUp on the active option, once it shows: an\n // option a key has not marked yet (after a pointer's open) is not picked.\n const chooseActive = (event: React.SyntheticEvent) => {\n if (!showActive) {\n return;\n }\n if (currentActive === createIndex) {\n createOption?.onCreate(event);\n } else if (currentActive >= 0) {\n chooseItem(event, displayedItems[currentActive], false);\n if (multiple) {\n setActiveIndex(searchValue ? items.indexOf(displayedItems[currentActive]) : currentActive);\n } else {\n closeMenu();\n }\n }\n };\n\n const moveActive = (event: React.KeyboardEvent, index: number) => {\n event.preventDefault();\n if (index >= 0) {\n setActiveIndex(index);\n }\n setShowActive(true);\n };\n\n // Type-ahead: letters typed in quick succession make a prefix to look for.\n const typeahead = (key: string) => {\n const state = typeaheadRef.current;\n clearTimeout(state.timer);\n state.text += key;\n state.timer = setTimeout(() => {\n state.text = \"\";\n }, 500);\n const texts = displayedItems.map((item) => item.text);\n return matchOption(texts, isOptionEnabled, state.text, currentActive);\n };\n\n useEffect(() => {\n const state = typeaheadRef.current;\n return () => clearTimeout(state.timer);\n }, []);\n\n // The combobox's keys (WAI-ARIA combobox pattern): arrows, Home, End and the\n // page keys move the active option and open a closed menu; Enter and Space\n // pick it; Tab picks it in a single select and moves on; Escape closes.\n // The search boxes leave Space, Home, End and typing to the text.\n const onComboboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, kind: ComboboxKind) => {\n const { key } = event;\n if (disabled || readOnly || event.ctrlKey || event.metaKey) {\n return;\n }\n const isControl = kind === \"control\";\n\n if (!isOpen) {\n if (key === \"ArrowDown\" || key === \"ArrowUp\" || key === \"Enter\" || (isControl && key === \" \")) {\n event.preventDefault();\n openMenu(initialActive(), true);\n } else if (isControl && (key === \"Home\" || key === \"End\")) {\n event.preventDefault();\n openMenu(\n key === \"Home\" ? firstOption(optionCount, isOptionEnabled) : lastOption(optionCount, isOptionEnabled),\n true\n );\n } else if (isControl && !search && isPrintableKey(event)) {\n event.preventDefault();\n const match = typeahead(key);\n openMenu(match >= 0 ? match : initialActive(), true);\n }\n return;\n }\n\n if (key === \"ArrowDown\") {\n moveActive(event, event.altKey ? currentActive : moveOption(optionCount, isOptionEnabled, currentActive, 1));\n } else if (key === \"ArrowUp\" && event.altKey) {\n event.preventDefault();\n if (!multiple) {\n chooseActive(event);\n }\n closeMenu();\n } else if (key === \"ArrowUp\") {\n moveActive(event, moveOption(optionCount, isOptionEnabled, currentActive, -1));\n } else if (key === \"PageDown\" || key === \"PageUp\") {\n moveActive(event, moveOption(optionCount, isOptionEnabled, currentActive, key === \"PageDown\" ? 10 : -10));\n } else if (isControl && (key === \"Home\" || key === \"End\")) {\n moveActive(\n event,\n key === \"Home\" ? firstOption(optionCount, isOptionEnabled) : lastOption(optionCount, isOptionEnabled)\n );\n } else if (key === \"Enter\" || (isControl && key === \" \")) {\n event.preventDefault();\n // After a pointer's open the first press shows the active option, the\n // next one picks it.\n chooseActive(event);\n setShowActive(true);\n if (!multiple && currentActive < 0 && isControl) {\n closeMenu();\n }\n } else if (key === \"Escape\") {\n // Handled: the overlays around the field leave this press alone.\n event.preventDefault();\n closeMenu();\n } else if (key === \"Tab\") {\n if (kind === \"menuSearch\") {\n // The search box in the menu goes with it: the focus goes back to the\n // control, which Tab then leaves as usual.\n event.preventDefault();\n } else if (isControl && !multiple) {\n chooseActive(event);\n }\n closeMenu();\n } else if (isControl && !search && isPrintableKey(event)) {\n const match = typeahead(key);\n moveActive(event, match);\n }\n };\n\n // Keys pressed on a button inside (a chip's delete button) bubble up here\n // too. Only the control's own keys work the menu: preventing the default\n // of theirs would cancel the button's activation.\n const onKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n if (event.target !== event.currentTarget || hasSearchInput) {\n return;\n }\n onComboboxKeyDown(event, \"control\");\n };\n\n // A read-only field opens no menu: one that was open when the field became\n // read-only closes, so none of its options can be picked.\n useEffect(() => {\n if (readOnly && isOpen) {\n setIsOpen(false);\n }\n }, [readOnly, isOpen]);\n\n useEffect(() => {\n if (!isFocused || (search === \"menu\" && !isOpen)) {\n setSearchValue(\"\");\n resetSearch?.();\n }\n }, [isFocused, search, isOpen, resetSearch]);\n\n // A disabled field has no menu: one that was open when the field got\n // disabled closes, so none of its options can be picked.\n useEffect(() => {\n if (disabled && isOpen) {\n setIsOpen(false);\n }\n }, [disabled, isOpen]);\n\n // The search box in the menu takes the focus when the menu opens.\n useSafeLayoutEffect(() => {\n if (isOpen && search === \"menu\") {\n menuSearchInputRef.current?.focus();\n }\n }, [isOpen, search]);\n\n // Keep the displayed selection in sync with the effective value (controlled\n // fields derive theirs above), so the label floats whenever there is a\n // value — including the initial default, without focus.\n useEffect(() => {\n if (!isControlled) {\n setOwnSelectedItems(findSelectedItems(items, value));\n }\n }, [isControlled, value, items]);\n\n useSafeLayoutEffect(() => {\n if (searchWrapperRef.current) {\n searchWrapperRef.current.scrollLeft = searchWrapperRef.current.scrollWidth;\n }\n }, [value]);\n\n const onSearchInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const text = event.target.value;\n setSearchValue(text);\n onSearch?.(event);\n // The keyboard moves on to the first option the text keeps, so Enter picks\n // it; items the caller searches for itself are not here yet.\n const kept = filterItems(items, text);\n const canCreate = creatable && text && !items.some((i) => i.text.toLowerCase() === text.toLowerCase());\n const count = onSearch ? 0 : kept.length + (canCreate ? 1 : 0);\n setActiveIndex(firstOption(count, (index) => index >= kept.length || !kept[index].disabled));\n setShowActive(true);\n if (!isOpen) {\n setIsOpen(true);\n }\n };\n\n // A delete or clear button goes away with what it removes. When it had the\n // focus (a key press: a click leaves the focus where it was), the control\n // takes the focus over, so it does not drop to the page.\n const hasFocus = (event: React.SyntheticEvent) =>\n event.currentTarget.contains(event.currentTarget.ownerDocument.activeElement);\n\n const onDeleteChip = (currentValue: typeof valueProp) => (event: React.SyntheticEvent) => {\n if (Array.isArray(value)) {\n const refocus = hasFocus(event);\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 if (refocus) controlRef.current?.focus();\n }\n };\n\n const onResetSelected = (event: React.MouseEvent) => {\n const refocus = hasFocus(event);\n updateValue(event, []);\n setSelectedItems([]);\n if (refocus) controlRef.current?.focus();\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 }, index) => (\n <Chip\n key={key || value}\n label={text}\n labelId={valueIds[index]}\n deleteAriaLabel={`Remove ${text}`}\n size={size === \"small\" ? \"small\" : \"medium\"}\n // A read-only field shows its chips without delete buttons.\n onDelete={readOnly ? undefined : onDeleteChip(value)}\n onDeleteMouseDown={stopEvent}\n disabled={disabled}\n />\n ));\n } else {\n displayValues = selectedItems.map((el) => el.text).join(\", \");\n }\n\n // Neither a disabled nor a read-only field offers to clear its value.\n const canClear =\n ((Array.isArray(value) && value.length > 0) || (clearable && selectedItems.length > 0)) && !disabled && !readOnly;\n\n // What makes an element the combobox; the search box in the field takes it\n // from the control.\n const comboboxProps = {\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\" as const,\n \"aria-expanded\": isOpen,\n \"aria-controls\": isOpen ? listboxId : undefined,\n };\n\n return (\n <>\n <TextFieldWrapper\n labelId={labelId}\n label={label}\n helperText={helperText}\n helperTextId={helper.id}\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 {/* The field: a press anywhere in it opens the menu, which lines up\n under it. The control, the part that is the combobox, sits inside,\n with the chips and the clear button beside it: nested in it, they\n would be read into its name. */}\n <span ref={anchorElementRef} className={classes} onMouseDown={disabled || readOnly ? undefined : onMouseDown}>\n <span className=\"smwb-select-field__search-wrapper\" ref={searchWrapperRef}>\n {chips && <span className=\"smwb-select-field__values\">{displayValues}</span>}\n <span\n ref={forkedControlRef}\n id={id}\n className=\"smwb-select-field__control\"\n tabIndex={disabled ? undefined : hasSearchInput ? -1 : 0}\n {...(hasSearchInput\n ? undefined\n : {\n ...comboboxProps,\n \"aria-labelledby\": controlLabelledBy,\n \"aria-label\": ariaLabel,\n \"aria-activedescendant\": search === \"menu\" ? undefined : activeDescendant,\n \"aria-disabled\": disabled || undefined,\n \"aria-readonly\": readOnly || undefined,\n \"aria-describedby\": helper.describedBy,\n })}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n data-testid=\"select-field\"\n >\n {!chips && displayValues && (\n <span id={valueId} className=\"smwb-select-field__values\">\n {displayValues}\n </span>\n )}\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 disabled={disabled}\n value={searchValue}\n {...comboboxProps}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeDescendant}\n autoComplete=\"off\"\n aria-label={ariaLabel}\n aria-labelledby={labelledBy}\n aria-describedby={helper.describedBy}\n onChange={onSearchInputChange}\n onMouseDown={(event: React.MouseEvent<HTMLInputElement>) => {\n event.stopPropagation();\n if (!isOpen) {\n openMenu(pointerActive(), false);\n }\n }}\n onKeyDown={(event) => {\n onComboboxKeyDown(event, \"search\");\n // Typed keys must not reach the span. Escape goes on: the\n // overlays around the field listen for it on the document,\n // and React's stopPropagation would stop it before the document.\n if (event.key !== \"Escape\") {\n event.stopPropagation();\n }\n }}\n data-testid=\"search-input\"\n />\n </span>\n )}\n </span>\n </span>\n <span className=\"smwb-select-field__actions\">\n {canClear && (\n <button\n type=\"button\"\n className=\"smwb-select-field__clear\"\n aria-label=\"Clear selection\"\n onClick={onResetSelected}\n onMouseDown={stopEvent}\n >\n <ClearIcon className={cn(\"smwb-select-field__icon\", \"smwb-select-field__icon--close\")} />\n </button>\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 menuRef={menuRef}\n menuMaxHeight={menuMaxHeight}\n menuMiddleware={menuMiddleware}\n search={search === \"menu\"}\n onSearchInputChange={onSearchInputChange}\n searchInputRef={menuSearchInputRef}\n searchInputProps={{\n ...comboboxProps,\n \"aria-autocomplete\": \"list\",\n \"aria-activedescendant\": activeDescendant,\n \"aria-labelledby\": controlLabelledBy,\n \"aria-label\": ariaLabel,\n onKeyDown: (event) => onComboboxKeyDown(event, \"menuSearch\"),\n }}\n optionRenderer={optionRenderer}\n items={displayedItems}\n searchValue={searchValue}\n isOpen={isOpen}\n onClose={closeMenu}\n onItemClick={onItemClick}\n value={value}\n isLoading={isLoading}\n menuNoItemsMessage={menuNoItemsMessage}\n container={menuContainer}\n virtualized={virtualized}\n itemHeight={itemHeight}\n createOption={createOption}\n listboxId={listboxId}\n labelledBy={ariaLabel ? undefined : label && !inline ? labelId : controlLabelledBy}\n label={ariaLabel}\n multiple={multiple}\n activeIndex={currentActive}\n showActive={showActive}\n />\n </>\n );\n});\n\nexport default SelectField;\n"],"names":["SelectArrowIcon","props","jsx","Icon","ClearIcon","stopEvent","event","findSelectedItems","items","value","item","filterItems","searchText","pattern","el","isPrintableKey","SelectField","forwardRef","ref","className","valueProp","defaultValue","onChange","disabled","readOnly","name","multiple","menuMaxHeight","menuMiddleware","menuNoItemsMessage","menuContainer","search","chips","isFocusedProp","error","label","variant","size","fullWidth","helperText","onSearch","resetSearch","isLoading","inline","endAdornment","hideSelectArrowIcon","optionRenderer","clearable","creatable","onCreate","virtualized","itemHeight","ariaLabel","id","rest","helper","useHelperText","isOpen","setIsOpen","useState","valueState","setValueState","ownSelectedItems","setOwnSelectedItems","searchValue","setSearchValue","activeIndex","setActiveIndex","showActive","setShowActive","typeaheadRef","useRef","isControlled","anchorElementRef","controlRef","forkedControlRef","useForkRef","searchWrapperRef","searchInputRef","menuRef","menuSearchInputRef","selectedItems","useMemo","isFocused","baseId","useId","labelId","valueId","listboxId","valueIds","_","index","chipIds","controlLabelledBy","labelledBy","hasSearchInput","displayedItems","createOption","i","closeMenu","createIndex","optionCount","isOptionEnabled","currentActive","activeDescendant","dropdownOptionId","isItemSelected","initialActive","selected","firstOption","pointerActive","openMenu","active","byKeyboard","_a","_b","onMouseDown","onFocus","setSelectedItems","next","updateValue","chooseItem","toggleOff","newValue","newSelectedItem","valueArray","itemIndex","onItemClick","chooseActive","moveActive","typeahead","key","state","texts","matchOption","useEffect","onComboboxKeyDown","kind","isControl","lastOption","match","moveOption","onKeyDown","useSafeLayoutEffect","onSearchInputChange","text","kept","canCreate","count","hasFocus","onDeleteChip","currentValue","refocus","newSelectedItems","onResetSelected","displayValues","classes","cn","Chip","canClear","comboboxProps","jsxs","Fragment","TextFieldWrapper","DropdownMenu"],"mappings":"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"}