@lumx/react 3.0.2 → 3.0.3-alpha.1

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 (391) hide show
  1. package/{esm/_internal/_rollupPluginBabelHelpers.js → _internal/ClickAwayProvider.js} +107 -2
  2. package/_internal/ClickAwayProvider.js.map +1 -0
  3. package/_internal/types.d.ts +271 -0
  4. package/index.d.ts +2686 -0
  5. package/index.js +12533 -0
  6. package/index.js.map +1 -0
  7. package/package.json +7 -6
  8. package/src/components/alert-dialog/AlertDialog.tsx +2 -1
  9. package/src/components/autocomplete/Autocomplete.tsx +2 -2
  10. package/src/components/autocomplete/AutocompleteMultiple.tsx +2 -1
  11. package/src/components/avatar/Avatar.tsx +2 -1
  12. package/src/components/badge/Badge.test.tsx +1 -1
  13. package/src/components/badge/Badge.tsx +2 -1
  14. package/src/components/button/Button.test.tsx +1 -1
  15. package/src/components/button/Button.tsx +2 -1
  16. package/src/components/button/ButtonGroup.tsx +2 -1
  17. package/src/components/button/ButtonRoot.test.tsx +1 -1
  18. package/src/components/button/ButtonRoot.tsx +2 -1
  19. package/src/components/button/IconButton.tsx +2 -1
  20. package/src/components/checkbox/Checkbox.test.tsx +1 -1
  21. package/src/components/checkbox/Checkbox.tsx +2 -1
  22. package/src/components/chip/Chip.test.tsx +1 -1
  23. package/src/components/chip/Chip.tsx +3 -1
  24. package/src/components/chip/ChipGroup.tsx +2 -1
  25. package/src/components/comment-block/CommentBlock.tsx +2 -1
  26. package/src/components/date-picker/DatePicker.tsx +1 -1
  27. package/src/components/date-picker/DatePickerControlled.tsx +1 -1
  28. package/src/components/date-picker/DatePickerField.tsx +1 -1
  29. package/src/components/date-picker/constants.ts +1 -1
  30. package/src/components/date-picker/types.ts +1 -1
  31. package/src/components/dialog/Dialog.tsx +4 -8
  32. package/src/components/divider/Divider.test.tsx +1 -1
  33. package/src/components/divider/Divider.tsx +3 -2
  34. package/src/components/drag-handle/DragHandle.tsx +2 -1
  35. package/src/components/dropdown/Dropdown.tsx +2 -1
  36. package/src/components/expansion-panel/ExpansionPanel.test.tsx +1 -1
  37. package/src/components/expansion-panel/ExpansionPanel.tsx +3 -10
  38. package/src/components/flag/Flag.test.tsx +1 -1
  39. package/src/components/flag/Flag.tsx +2 -1
  40. package/src/components/flex-box/FlexBox.stories.tsx +8 -0
  41. package/src/components/flex-box/FlexBox.tsx +7 -3
  42. package/src/components/flex-box/__snapshots__/FlexBox.test.tsx.snap +16 -0
  43. package/src/components/generic-block/GenericBlock.stories.jsx +23 -1
  44. package/src/components/generic-block/GenericBlock.tsx +18 -4
  45. package/src/components/generic-block/constants.ts +9 -0
  46. package/src/components/generic-block/index.ts +1 -0
  47. package/src/components/grid/Grid.tsx +2 -1
  48. package/src/components/grid/GridItem.tsx +2 -1
  49. package/src/components/heading/Heading.tsx +2 -1
  50. package/src/components/heading/HeadingLevelProvider.tsx +1 -1
  51. package/src/components/heading/context.tsx +1 -1
  52. package/src/components/icon/Icon.test.tsx +1 -1
  53. package/src/components/icon/Icon.tsx +2 -1
  54. package/src/components/image-block/ImageBlock.tsx +2 -1
  55. package/src/components/index.ts +1 -1
  56. package/src/components/inline-list/InlineList.stories.tsx +40 -0
  57. package/src/components/inline-list/InlineList.test.tsx +41 -0
  58. package/src/components/inline-list/InlineList.tsx +80 -0
  59. package/src/components/inline-list/index.ts +1 -0
  60. package/src/components/input-helper/InputHelper.tsx +2 -1
  61. package/src/components/input-label/InputLabel.tsx +2 -1
  62. package/src/components/lightbox/Lightbox.tsx +2 -1
  63. package/src/components/link/Link.tsx +2 -1
  64. package/src/components/link-preview/LinkPreview.test.tsx +1 -1
  65. package/src/components/link-preview/LinkPreview.tsx +2 -1
  66. package/src/components/list/List.tsx +2 -1
  67. package/src/components/list/ListDivider.tsx +2 -1
  68. package/src/components/list/ListItem.tsx +3 -8
  69. package/src/components/list/ListSubheader.tsx +2 -1
  70. package/src/components/list/useInteractiveList.tsx +1 -1
  71. package/src/components/message/Message.test.tsx +1 -1
  72. package/src/components/message/Message.tsx +2 -1
  73. package/src/components/mosaic/Mosaic.tsx +2 -1
  74. package/src/components/notification/Notification.tsx +2 -1
  75. package/src/components/popover/Popover.tsx +2 -1
  76. package/src/components/post-block/PostBlock.tsx +2 -1
  77. package/src/components/progress/Progress.tsx +2 -1
  78. package/src/components/progress-tracker/ProgressTracker.tsx +2 -1
  79. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +1 -1
  80. package/src/components/progress-tracker/ProgressTrackerStep.tsx +2 -1
  81. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +2 -1
  82. package/src/components/radio-button/RadioButton.test.tsx +1 -1
  83. package/src/components/radio-button/RadioButton.tsx +2 -1
  84. package/src/components/radio-button/RadioGroup.tsx +2 -1
  85. package/src/components/select/Select.test.tsx +1 -1
  86. package/src/components/select/Select.tsx +2 -1
  87. package/src/components/select/SelectMultiple.test.tsx +1 -1
  88. package/src/components/select/SelectMultiple.tsx +2 -1
  89. package/src/components/select/WithSelectContext.tsx +1 -1
  90. package/src/components/select/constants.ts +1 -1
  91. package/src/components/side-navigation/SideNavigation.tsx +2 -1
  92. package/src/components/side-navigation/SideNavigationItem.test.tsx +1 -1
  93. package/src/components/side-navigation/SideNavigationItem.tsx +3 -9
  94. package/src/components/skeleton/SkeletonCircle.tsx +2 -1
  95. package/src/components/skeleton/SkeletonRectangle.tsx +2 -1
  96. package/src/components/skeleton/SkeletonTypography.tsx +2 -1
  97. package/src/components/slider/Slider.tsx +2 -1
  98. package/src/components/slideshow/Slides.tsx +2 -1
  99. package/src/components/slideshow/Slideshow.tsx +1 -1
  100. package/src/components/slideshow/SlideshowControls.tsx +2 -1
  101. package/src/components/slideshow/SlideshowItem.tsx +2 -1
  102. package/src/components/slideshow/SlideshowItemGroup.tsx +2 -1
  103. package/src/components/switch/Switch.test.tsx +1 -1
  104. package/src/components/switch/Switch.tsx +2 -1
  105. package/src/components/table/Table.tsx +2 -1
  106. package/src/components/table/TableBody.tsx +2 -1
  107. package/src/components/table/TableCell.tsx +3 -1
  108. package/src/components/table/TableHeader.tsx +2 -1
  109. package/src/components/table/TableRow.tsx +2 -1
  110. package/src/components/tabs/Tab.test.tsx +1 -1
  111. package/src/components/tabs/Tab.tsx +2 -1
  112. package/src/components/tabs/TabList.test.tsx +1 -1
  113. package/src/components/tabs/TabList.tsx +2 -1
  114. package/src/components/tabs/TabPanel.tsx +2 -1
  115. package/src/components/text/{Text.stories.tsx → Text.stories.jsx} +23 -28
  116. package/src/components/text/Text.test.tsx +15 -1
  117. package/src/components/text/Text.tsx +38 -12
  118. package/src/components/text-field/TextField.test.tsx +1 -1
  119. package/src/components/text-field/TextField.tsx +2 -1
  120. package/src/components/thumbnail/Thumbnail.tsx +2 -1
  121. package/src/components/thumbnail/types.ts +1 -1
  122. package/src/components/toolbar/Toolbar.tsx +2 -1
  123. package/src/components/tooltip/Tooltip.tsx +2 -1
  124. package/src/components/tooltip/useTooltipOpen.tsx +1 -1
  125. package/src/components/uploader/Uploader.test.tsx +1 -1
  126. package/src/components/uploader/Uploader.tsx +2 -1
  127. package/src/components/user-block/UserBlock.tsx +2 -1
  128. package/src/hooks/useCallbackOnEscape.ts +2 -1
  129. package/src/hooks/useClickAway.tsx +1 -1
  130. package/src/hooks/useDisableBodyScroll.ts +1 -1
  131. package/src/hooks/useFocusTrap.ts +1 -1
  132. package/src/hooks/useInterval.tsx +1 -1
  133. package/src/hooks/useOnResize.ts +1 -1
  134. package/src/index.ts +5 -0
  135. package/src/stories/generated/GenericBlock/Demos.stories.tsx +3 -1
  136. package/src/stories/generated/Heading/Demos.stories.tsx +6 -0
  137. package/src/stories/withResizableBox.tsx +18 -0
  138. package/src/testing/utils/commonTestsSuite.ts +1 -1
  139. package/src/utils/{getRootClassName.ts → className.ts} +19 -0
  140. package/src/utils/event.ts +1 -0
  141. package/src/utils/index.ts +5 -0
  142. package/src/utils/type.ts +3 -0
  143. package/src/utils/utils.test.ts +1 -1
  144. package/types.d.ts +68 -11
  145. package/utils/index.d.ts +29 -0
  146. package/utils/index.js +2 -0
  147. package/utils/index.js.map +1 -0
  148. package/esm/_internal/AlertDialog.js +0 -141
  149. package/esm/_internal/AlertDialog.js.map +0 -1
  150. package/esm/_internal/AutocompleteMultiple.js +0 -257
  151. package/esm/_internal/AutocompleteMultiple.js.map +0 -1
  152. package/esm/_internal/Avatar2.js +0 -82
  153. package/esm/_internal/Avatar2.js.map +0 -1
  154. package/esm/_internal/Badge2.js +0 -54
  155. package/esm/_internal/Badge2.js.map +0 -1
  156. package/esm/_internal/Button2.js +0 -84
  157. package/esm/_internal/Button2.js.map +0 -1
  158. package/esm/_internal/ButtonGroup.js +0 -51
  159. package/esm/_internal/ButtonGroup.js.map +0 -1
  160. package/esm/_internal/ButtonRoot.js +0 -135
  161. package/esm/_internal/ButtonRoot.js.map +0 -1
  162. package/esm/_internal/Checkbox2.js +0 -116
  163. package/esm/_internal/Checkbox2.js.map +0 -1
  164. package/esm/_internal/Chip2.js +0 -118
  165. package/esm/_internal/Chip2.js.map +0 -1
  166. package/esm/_internal/ChipGroup.js +0 -122
  167. package/esm/_internal/ChipGroup.js.map +0 -1
  168. package/esm/_internal/ClickAwayProvider.js +0 -217
  169. package/esm/_internal/ClickAwayProvider.js.map +0 -1
  170. package/esm/_internal/CommentBlock.js +0 -124
  171. package/esm/_internal/CommentBlock.js.map +0 -1
  172. package/esm/_internal/DatePickerField.js +0 -347
  173. package/esm/_internal/DatePickerField.js.map +0 -1
  174. package/esm/_internal/Dialog2.js +0 -274
  175. package/esm/_internal/Dialog2.js.map +0 -1
  176. package/esm/_internal/Divider2.js +0 -53
  177. package/esm/_internal/Divider2.js.map +0 -1
  178. package/esm/_internal/DragHandle.js +0 -50
  179. package/esm/_internal/DragHandle.js.map +0 -1
  180. package/esm/_internal/Dropdown2.js +0 -157
  181. package/esm/_internal/Dropdown2.js.map +0 -1
  182. package/esm/_internal/ExpansionPanel.js +0 -156
  183. package/esm/_internal/ExpansionPanel.js.map +0 -1
  184. package/esm/_internal/Flag2.js +0 -48
  185. package/esm/_internal/Flag2.js.map +0 -1
  186. package/esm/_internal/FlexBox.js +0 -55
  187. package/esm/_internal/FlexBox.js.map +0 -1
  188. package/esm/_internal/GenericBlock.js +0 -125
  189. package/esm/_internal/GenericBlock.js.map +0 -1
  190. package/esm/_internal/GridItem.js +0 -96
  191. package/esm/_internal/GridItem.js.map +0 -1
  192. package/esm/_internal/HeadingLevelProvider.js +0 -112
  193. package/esm/_internal/HeadingLevelProvider.js.map +0 -1
  194. package/esm/_internal/Icon2.js +0 -120
  195. package/esm/_internal/Icon2.js.map +0 -1
  196. package/esm/_internal/IconButton.js +0 -74
  197. package/esm/_internal/IconButton.js.map +0 -1
  198. package/esm/_internal/ImageBlock.js +0 -101
  199. package/esm/_internal/ImageBlock.js.map +0 -1
  200. package/esm/_internal/InputHelper.js +0 -72
  201. package/esm/_internal/InputHelper.js.map +0 -1
  202. package/esm/_internal/InputLabel.js +0 -58
  203. package/esm/_internal/InputLabel.js.map +0 -1
  204. package/esm/_internal/Lightbox2.js +0 -123
  205. package/esm/_internal/Lightbox2.js.map +0 -1
  206. package/esm/_internal/Link2.js +0 -122
  207. package/esm/_internal/Link2.js.map +0 -1
  208. package/esm/_internal/LinkPreview.js +0 -105
  209. package/esm/_internal/LinkPreview.js.map +0 -1
  210. package/esm/_internal/List2.js +0 -799
  211. package/esm/_internal/List2.js.map +0 -1
  212. package/esm/_internal/ListSubheader.js +0 -79
  213. package/esm/_internal/ListSubheader.js.map +0 -1
  214. package/esm/_internal/Message2.js +0 -78
  215. package/esm/_internal/Message2.js.map +0 -1
  216. package/esm/_internal/Mosaic2.js +0 -89
  217. package/esm/_internal/Mosaic2.js.map +0 -1
  218. package/esm/_internal/Notification2.js +0 -133
  219. package/esm/_internal/Notification2.js.map +0 -1
  220. package/esm/_internal/Popover2.js +0 -2473
  221. package/esm/_internal/Popover2.js.map +0 -1
  222. package/esm/_internal/PostBlock.js +0 -96
  223. package/esm/_internal/PostBlock.js.map +0 -1
  224. package/esm/_internal/Progress2.js +0 -81
  225. package/esm/_internal/Progress2.js.map +0 -1
  226. package/esm/_internal/ProgressTrackerStepPanel.js +0 -313
  227. package/esm/_internal/ProgressTrackerStepPanel.js.map +0 -1
  228. package/esm/_internal/RadioGroup.js +0 -147
  229. package/esm/_internal/RadioGroup.js.map +0 -1
  230. package/esm/_internal/SelectMultiple.js +0 -424
  231. package/esm/_internal/SelectMultiple.js.map +0 -1
  232. package/esm/_internal/SideNavigationItem.js +0 -151
  233. package/esm/_internal/SideNavigationItem.js.map +0 -1
  234. package/esm/_internal/SkeletonTypography.js +0 -168
  235. package/esm/_internal/SkeletonTypography.js.map +0 -1
  236. package/esm/_internal/Slider2.js +0 -327
  237. package/esm/_internal/Slider2.js.map +0 -1
  238. package/esm/_internal/Slides.js +0 -864
  239. package/esm/_internal/Slides.js.map +0 -1
  240. package/esm/_internal/Switch2.js +0 -116
  241. package/esm/_internal/Switch2.js.map +0 -1
  242. package/esm/_internal/TabPanel.js +0 -280
  243. package/esm/_internal/TabPanel.js.map +0 -1
  244. package/esm/_internal/TableRow.js +0 -291
  245. package/esm/_internal/TableRow.js.map +0 -1
  246. package/esm/_internal/Text2.js +0 -63
  247. package/esm/_internal/Text2.js.map +0 -1
  248. package/esm/_internal/TextField.js +0 -322
  249. package/esm/_internal/TextField.js.map +0 -1
  250. package/esm/_internal/Thumbnail2.js +0 -301
  251. package/esm/_internal/Thumbnail2.js.map +0 -1
  252. package/esm/_internal/Toolbar2.js +0 -60
  253. package/esm/_internal/Toolbar2.js.map +0 -1
  254. package/esm/_internal/Tooltip2.js +0 -282
  255. package/esm/_internal/Tooltip2.js.map +0 -1
  256. package/esm/_internal/Uploader2.js +0 -84
  257. package/esm/_internal/Uploader2.js.map +0 -1
  258. package/esm/_internal/UserBlock.js +0 -132
  259. package/esm/_internal/UserBlock.js.map +0 -1
  260. package/esm/_internal/_rollupPluginBabelHelpers.js.map +0 -1
  261. package/esm/_internal/alert-dialog.js +0 -34
  262. package/esm/_internal/alert-dialog.js.map +0 -1
  263. package/esm/_internal/autocomplete.js +0 -32
  264. package/esm/_internal/autocomplete.js.map +0 -1
  265. package/esm/_internal/avatar.js +0 -13
  266. package/esm/_internal/avatar.js.map +0 -1
  267. package/esm/_internal/badge.js +0 -10
  268. package/esm/_internal/badge.js.map +0 -1
  269. package/esm/_internal/button.js +0 -25
  270. package/esm/_internal/button.js.map +0 -1
  271. package/esm/_internal/checkbox.js +0 -14
  272. package/esm/_internal/checkbox.js.map +0 -1
  273. package/esm/_internal/chip.js +0 -12
  274. package/esm/_internal/chip.js.map +0 -1
  275. package/esm/_internal/comment-block.js +0 -24
  276. package/esm/_internal/comment-block.js.map +0 -1
  277. package/esm/_internal/components.js +0 -156
  278. package/esm/_internal/components.js.map +0 -1
  279. package/esm/_internal/constants.js +0 -13
  280. package/esm/_internal/constants.js.map +0 -1
  281. package/esm/_internal/date-picker.js +0 -32
  282. package/esm/_internal/date-picker.js.map +0 -1
  283. package/esm/_internal/dialog.js +0 -27
  284. package/esm/_internal/dialog.js.map +0 -1
  285. package/esm/_internal/divider.js +0 -10
  286. package/esm/_internal/divider.js.map +0 -1
  287. package/esm/_internal/drag-handle.js +0 -11
  288. package/esm/_internal/drag-handle.js.map +0 -1
  289. package/esm/_internal/dropdown.js +0 -21
  290. package/esm/_internal/dropdown.js.map +0 -1
  291. package/esm/_internal/expansion-panel.js +0 -32
  292. package/esm/_internal/expansion-panel.js.map +0 -1
  293. package/esm/_internal/flag.js +0 -11
  294. package/esm/_internal/flag.js.map +0 -1
  295. package/esm/_internal/flex-box.js +0 -11
  296. package/esm/_internal/flex-box.js.map +0 -1
  297. package/esm/_internal/generic-block.js +0 -20
  298. package/esm/_internal/generic-block.js.map +0 -1
  299. package/esm/_internal/getRootClassName.js +0 -346
  300. package/esm/_internal/getRootClassName.js.map +0 -1
  301. package/esm/_internal/grid.js +0 -10
  302. package/esm/_internal/grid.js.map +0 -1
  303. package/esm/_internal/heading.js +0 -11
  304. package/esm/_internal/heading.js.map +0 -1
  305. package/esm/_internal/icon.js +0 -10
  306. package/esm/_internal/icon.js.map +0 -1
  307. package/esm/_internal/image-block.js +0 -14
  308. package/esm/_internal/image-block.js.map +0 -1
  309. package/esm/_internal/input-helper.js +0 -10
  310. package/esm/_internal/input-helper.js.map +0 -1
  311. package/esm/_internal/input-label.js +0 -10
  312. package/esm/_internal/input-label.js.map +0 -1
  313. package/esm/_internal/lightbox.js +0 -27
  314. package/esm/_internal/lightbox.js.map +0 -1
  315. package/esm/_internal/link-preview.js +0 -15
  316. package/esm/_internal/link-preview.js.map +0 -1
  317. package/esm/_internal/link.js +0 -12
  318. package/esm/_internal/link.js.map +0 -1
  319. package/esm/_internal/list.js +0 -15
  320. package/esm/_internal/list.js.map +0 -1
  321. package/esm/_internal/mergeRefs.js +0 -25
  322. package/esm/_internal/mergeRefs.js.map +0 -1
  323. package/esm/_internal/message.js +0 -11
  324. package/esm/_internal/message.js.map +0 -1
  325. package/esm/_internal/mosaic.js +0 -14
  326. package/esm/_internal/mosaic.js.map +0 -1
  327. package/esm/_internal/notification.js +0 -18
  328. package/esm/_internal/notification.js.map +0 -1
  329. package/esm/_internal/partitionMulti.js +0 -27
  330. package/esm/_internal/partitionMulti.js.map +0 -1
  331. package/esm/_internal/popover.js +0 -15
  332. package/esm/_internal/popover.js.map +0 -1
  333. package/esm/_internal/post-block.js +0 -15
  334. package/esm/_internal/post-block.js.map +0 -1
  335. package/esm/_internal/progress-tracker.js +0 -17
  336. package/esm/_internal/progress-tracker.js.map +0 -1
  337. package/esm/_internal/progress.js +0 -10
  338. package/esm/_internal/progress.js.map +0 -1
  339. package/esm/_internal/radio-button.js +0 -13
  340. package/esm/_internal/radio-button.js.map +0 -1
  341. package/esm/_internal/renderLink.js +0 -25
  342. package/esm/_internal/renderLink.js.map +0 -1
  343. package/esm/_internal/select.js +0 -31
  344. package/esm/_internal/select.js.map +0 -1
  345. package/esm/_internal/side-navigation.js +0 -25
  346. package/esm/_internal/side-navigation.js.map +0 -1
  347. package/esm/_internal/skeleton.js +0 -10
  348. package/esm/_internal/skeleton.js.map +0 -1
  349. package/esm/_internal/slider.js +0 -13
  350. package/esm/_internal/slider.js.map +0 -1
  351. package/esm/_internal/slideshow.js +0 -29
  352. package/esm/_internal/slideshow.js.map +0 -1
  353. package/esm/_internal/state.js +0 -145
  354. package/esm/_internal/state.js.map +0 -1
  355. package/esm/_internal/switch.js +0 -13
  356. package/esm/_internal/switch.js.map +0 -1
  357. package/esm/_internal/table.js +0 -12
  358. package/esm/_internal/table.js.map +0 -1
  359. package/esm/_internal/tabs.js +0 -15
  360. package/esm/_internal/tabs.js.map +0 -1
  361. package/esm/_internal/text-field.js +0 -26
  362. package/esm/_internal/text-field.js.map +0 -1
  363. package/esm/_internal/text.js +0 -10
  364. package/esm/_internal/text.js.map +0 -1
  365. package/esm/_internal/thumbnail.js +0 -13
  366. package/esm/_internal/thumbnail.js.map +0 -1
  367. package/esm/_internal/toolbar.js +0 -9
  368. package/esm/_internal/toolbar.js.map +0 -1
  369. package/esm/_internal/tooltip.js +0 -18
  370. package/esm/_internal/tooltip.js.map +0 -1
  371. package/esm/_internal/type.js +0 -40
  372. package/esm/_internal/type.js.map +0 -1
  373. package/esm/_internal/types.js +0 -23
  374. package/esm/_internal/types.js.map +0 -1
  375. package/esm/_internal/uploader.js +0 -11
  376. package/esm/_internal/uploader.js.map +0 -1
  377. package/esm/_internal/useDelayedVisibility.js +0 -47
  378. package/esm/_internal/useDelayedVisibility.js.map +0 -1
  379. package/esm/_internal/useDisableBodyScroll.js +0 -220
  380. package/esm/_internal/useDisableBodyScroll.js.map +0 -1
  381. package/esm/_internal/useFocusTrap.js +0 -86
  382. package/esm/_internal/useFocusTrap.js.map +0 -1
  383. package/esm/_internal/useRovingTabIndex.js +0 -87
  384. package/esm/_internal/useRovingTabIndex.js.map +0 -1
  385. package/esm/_internal/user-block.js +0 -17
  386. package/esm/_internal/user-block.js.map +0 -1
  387. package/esm/index.js +0 -95
  388. package/esm/index.js.map +0 -1
  389. package/esm/index2.js +0 -16
  390. package/esm/index2.js.map +0 -1
  391. package/src/utils/index.tsx +0 -7
@@ -1,424 +0,0 @@
1
- import { d as _slicedToArray, c as _extends, b as _objectWithoutProperties, _ as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
2
- import { Kind, Theme, Size, Emphasis } from './components.js';
3
- import React, { useState, useEffect, useMemo, useRef, useCallback, forwardRef } from 'react';
4
- import { c as classnames, h as handleBasicClasses, g as getRootClassName } from './getRootClassName.js';
5
- import { I as Icon, b as mdiCheckCircle, c as mdiAlertCircle, n as mdiCloseCircle, o as mdiMenuDown, d as mdiClose } from './Icon2.js';
6
- import { u as uid } from '../index2.js';
7
- import isEmpty from 'lodash/isEmpty';
8
- import { P as Placement } from './Popover2.js';
9
- import { m as mergeRefs } from './mergeRefs.js';
10
- import { I as IconButton } from './IconButton.js';
11
- import { C as Chip } from './Chip2.js';
12
- import { D as Dropdown } from './Dropdown2.js';
13
- import { I as InputHelper } from './InputHelper.js';
14
- import { I as InputLabel } from './InputLabel.js';
15
-
16
- /**
17
- * Listen on element focus to store the focus status.
18
- */
19
-
20
- function useListenFocus(ref) {
21
- var _useState = useState(false),
22
- _useState2 = _slicedToArray(_useState, 2),
23
- isFocus = _useState2[0],
24
- setFocus = _useState2[1];
25
-
26
- useEffect(function () {
27
- var element = ref.current;
28
-
29
- if (!element) {
30
- return undefined;
31
- }
32
-
33
- var onFocus = function onFocus() {
34
- return setFocus(true);
35
- };
36
-
37
- var onBlur = function onBlur() {
38
- return setFocus(false);
39
- };
40
-
41
- element.addEventListener('focus', onFocus);
42
- element.addEventListener('blur', onBlur);
43
- return function () {
44
- element.removeEventListener('focus', onFocus);
45
- element.removeEventListener('blur', onBlur);
46
- };
47
- }, [ref, setFocus]);
48
- return isFocus;
49
- }
50
-
51
- /**
52
- * Select variants.
53
- */
54
- var SelectVariant = {
55
- input: 'input',
56
- chip: 'chip'
57
- };
58
-
59
- /** The display name of the component. */
60
-
61
- var COMPONENT_NAME = 'Select';
62
- /** The default class name and classes prefix for this component. */
63
-
64
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
65
- /** The default value of props. */
66
-
67
- var DEFAULT_PROPS = {
68
- theme: Theme.light,
69
- variant: SelectVariant.input
70
- };
71
- var WithSelectContext = function WithSelectContext(SelectElement, _ref, ref) {
72
- var children = _ref.children,
73
- className = _ref.className,
74
- isMultiple = _ref.isMultiple,
75
- _ref$closeOnClick = _ref.closeOnClick,
76
- closeOnClick = _ref$closeOnClick === void 0 ? !isMultiple : _ref$closeOnClick,
77
- disabled = _ref.disabled,
78
- error = _ref.error,
79
- hasError = _ref.hasError,
80
- helper = _ref.helper,
81
- id = _ref.id,
82
- _ref$isDisabled = _ref.isDisabled,
83
- isDisabled = _ref$isDisabled === void 0 ? disabled : _ref$isDisabled,
84
- isEmpty = _ref.isEmpty,
85
- isOpen = _ref.isOpen,
86
- isRequired = _ref.isRequired,
87
- isValid = _ref.isValid,
88
- label = _ref.label,
89
- onClear = _ref.onClear,
90
- onDropdownClose = _ref.onDropdownClose,
91
- onInfiniteScroll = _ref.onInfiniteScroll,
92
- onInputClick = _ref.onInputClick,
93
- placeholder = _ref.placeholder,
94
- _ref$theme = _ref.theme,
95
- theme = _ref$theme === void 0 ? DEFAULT_PROPS.theme : _ref$theme,
96
- value = _ref.value,
97
- _ref$variant = _ref.variant,
98
- variant = _ref$variant === void 0 ? DEFAULT_PROPS.variant : _ref$variant,
99
- forwardedProps = _objectWithoutProperties(_ref, ["children", "className", "isMultiple", "closeOnClick", "disabled", "error", "hasError", "helper", "id", "isDisabled", "isEmpty", "isOpen", "isRequired", "isValid", "label", "onClear", "onDropdownClose", "onInfiniteScroll", "onInputClick", "placeholder", "theme", "value", "variant"]);
100
-
101
- var selectId = useMemo(function () {
102
- return id || "select-".concat(uid());
103
- }, [id]);
104
- var anchorRef = useRef(null);
105
- var selectRef = useRef(null);
106
- var isFocus = useListenFocus(anchorRef);
107
- var handleKeyboardNav = useCallback(function (evt) {
108
- if ((evt.key === 'Enter' || evt.key === ' ' || evt.key === 'ArrowDown') && onInputClick) {
109
- evt.preventDefault();
110
- onInputClick();
111
- }
112
- }, [onInputClick]);
113
-
114
- var onClose = function onClose() {
115
- var _anchorRef$current;
116
-
117
- if (onDropdownClose) {
118
- onDropdownClose();
119
- }
120
-
121
- anchorRef === null || anchorRef === void 0 ? void 0 : (_anchorRef$current = anchorRef.current) === null || _anchorRef$current === void 0 ? void 0 : _anchorRef$current.blur();
122
- };
123
-
124
- return React.createElement("div", {
125
- ref: mergeRefs(ref, selectRef),
126
- className: classnames(className, handleBasicClasses({
127
- hasError: hasError,
128
- hasLabel: Boolean(label),
129
- hasPlaceholder: Boolean(placeholder),
130
- hasValue: !isEmpty,
131
- isDisabled: isDisabled,
132
- isEmpty: isEmpty,
133
- isFocus: isFocus,
134
- isOpen: isOpen,
135
- isValid: isValid,
136
- prefix: CLASSNAME,
137
- theme: theme === Theme.light ? Theme.light : Theme.dark
138
- }))
139
- }, React.createElement(SelectElement, _extends({}, forwardedProps, {
140
- anchorRef: anchorRef,
141
- "aria-disabled": isDisabled,
142
- handleKeyboardNav: handleKeyboardNav,
143
- hasError: hasError,
144
- isDisabled: isDisabled,
145
- isEmpty: isEmpty,
146
- isRequired: isRequired,
147
- isValid: isValid,
148
- label: label,
149
- placeholder: placeholder,
150
- id: selectId,
151
- theme: theme,
152
- value: value,
153
- variant: variant,
154
- onClear: onClear,
155
- onInputClick: onInputClick
156
- })), React.createElement(Dropdown, {
157
- anchorRef: anchorRef,
158
- closeOnClick: closeOnClick,
159
- closeOnClickAway: true,
160
- closeOnEscape: true,
161
- isOpen: !!isOpen,
162
- placement: Placement.BOTTOM_START,
163
- onClose: onClose,
164
- onInfiniteScroll: onInfiniteScroll
165
- }, children), hasError && error && React.createElement(InputHelper, {
166
- className: "".concat(CLASSNAME, "__helper"),
167
- kind: Kind.error,
168
- theme: theme
169
- }, error), helper && React.createElement(InputHelper, {
170
- className: "".concat(CLASSNAME, "__helper"),
171
- theme: theme
172
- }, helper));
173
- };
174
-
175
- /** The display name of the component. */
176
-
177
- var COMPONENT_NAME$1 = 'Select';
178
- /** The default class name and classes prefix for this component. */
179
-
180
- var CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
181
- /** The default value of props. */
182
-
183
- var DEFAULT_PROPS$1 = {
184
- selectedValueRender: function selectedValueRender(choice) {
185
- return choice;
186
- }
187
- };
188
-
189
- var stopPropagation = function stopPropagation(evt) {
190
- return evt.stopPropagation();
191
- };
192
- /**
193
- * Select component.
194
- */
195
-
196
-
197
- var SelectField = function SelectField(_ref) {
198
- var anchorRef = _ref.anchorRef,
199
- clearButtonProps = _ref.clearButtonProps,
200
- handleKeyboardNav = _ref.handleKeyboardNav,
201
- hasError = _ref.hasError,
202
- hasInputClear = _ref.hasInputClear,
203
- icon = _ref.icon,
204
- id = _ref.id,
205
- isDisabled = _ref.isDisabled,
206
- isEmpty = _ref.isEmpty,
207
- isRequired = _ref.isRequired,
208
- isValid = _ref.isValid,
209
- label = _ref.label,
210
- onClear = _ref.onClear,
211
- onInputClick = _ref.onInputClick,
212
- placeholder = _ref.placeholder,
213
- selectedValueRender = _ref.selectedValueRender,
214
- theme = _ref.theme,
215
- value = _ref.value,
216
- variant = _ref.variant,
217
- forwardedProps = _objectWithoutProperties(_ref, ["anchorRef", "clearButtonProps", "handleKeyboardNav", "hasError", "hasInputClear", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedValueRender", "theme", "value", "variant"]);
218
-
219
- return React.createElement(React.Fragment, null, variant === SelectVariant.input && React.createElement(React.Fragment, null, label && React.createElement("div", {
220
- className: "".concat(CLASSNAME$1, "__header")
221
- }, React.createElement(InputLabel, {
222
- htmlFor: id,
223
- className: "".concat(CLASSNAME$1, "__label"),
224
- isRequired: isRequired,
225
- theme: theme
226
- }, label)), React.createElement("div", _extends({
227
- ref: anchorRef,
228
- id: id,
229
- className: "".concat(CLASSNAME$1, "__wrapper"),
230
- onClick: onInputClick,
231
- onKeyDown: handleKeyboardNav,
232
- tabIndex: isDisabled ? undefined : 0,
233
- "aria-disabled": isDisabled || undefined
234
- }, forwardedProps), icon && React.createElement(Icon, {
235
- className: "".concat(CLASSNAME$1, "__input-icon"),
236
- color: theme === Theme.dark ? 'light' : undefined,
237
- icon: icon,
238
- size: Size.xs
239
- }), React.createElement("div", {
240
- className: classnames(["".concat(CLASSNAME$1, "__input-native"), isEmpty && placeholder && "".concat(CLASSNAME$1, "__input-native--placeholder")])
241
- }, !isEmpty && React.createElement("span", null, selectedValueRender === null || selectedValueRender === void 0 ? void 0 : selectedValueRender(value)), isEmpty && placeholder && React.createElement("span", null, placeholder)), (isValid || hasError) && React.createElement("div", {
242
- className: "".concat(CLASSNAME$1, "__input-validity")
243
- }, React.createElement(Icon, {
244
- icon: isValid ? mdiCheckCircle : mdiAlertCircle,
245
- size: Size.xxs
246
- })), hasInputClear && clearButtonProps && React.createElement(IconButton, _extends({}, clearButtonProps, {
247
- className: "".concat(CLASSNAME$1, "__input-clear"),
248
- icon: mdiCloseCircle,
249
- emphasis: Emphasis.low,
250
- size: Size.s,
251
- theme: theme,
252
- onClick: onClear,
253
- onKeyDown: stopPropagation
254
- })), React.createElement("div", {
255
- className: "".concat(CLASSNAME$1, "__input-indicator")
256
- }, React.createElement(Icon, {
257
- icon: mdiMenuDown,
258
- size: Size.s
259
- })))), variant === SelectVariant.chip && React.createElement(Chip, _extends({
260
- id: id,
261
- isSelected: !isEmpty,
262
- isDisabled: isDisabled,
263
- after: React.createElement(Icon, {
264
- icon: isEmpty ? mdiMenuDown : mdiCloseCircle
265
- }),
266
- onAfterClick: isEmpty ? onInputClick : onClear,
267
- onClick: onInputClick,
268
- ref: anchorRef,
269
- theme: theme
270
- }, forwardedProps), isEmpty && React.createElement("span", null, label), !isEmpty && React.createElement("span", null, selectedValueRender === null || selectedValueRender === void 0 ? void 0 : selectedValueRender(value))));
271
- };
272
- /**
273
- * Select component.
274
- *
275
- * @param props Component props.
276
- * @param ref Component ref.
277
- * @return React element.
278
- */
279
-
280
-
281
- var Select = forwardRef(function (props, ref) {
282
- var isEmpty$1 = isEmpty(props.value);
283
- var hasInputClear = props.onClear && props.clearButtonProps && !isEmpty$1;
284
- return WithSelectContext(SelectField, _objectSpread2({}, props, {
285
- className: classnames(props.className, handleBasicClasses({
286
- hasInputClear: hasInputClear,
287
- hasUnique: !props.isEmpty,
288
- prefix: CLASSNAME$1
289
- })),
290
- hasInputClear: hasInputClear,
291
- isEmpty: isEmpty$1
292
- }), ref);
293
- });
294
- Select.displayName = COMPONENT_NAME$1;
295
- Select.className = CLASSNAME$1;
296
- Select.defaultProps = DEFAULT_PROPS$1;
297
- Select.className = CLASSNAME$1;
298
-
299
- /** Defines the props of the component. */
300
-
301
- /** The display name of the component. */
302
- var COMPONENT_NAME$2 = 'Select';
303
- /** The default class name and classes prefix for this component. */
304
-
305
- var CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
306
- /** The default value of props. */
307
-
308
- var DEFAULT_PROPS$2 = {
309
- selectedChipRender: function selectedChipRender(choice, index, onClear, isDisabled, theme) {
310
- var onClick = function onClick(event) {
311
- return onClear && onClear(event, choice);
312
- };
313
-
314
- return React.createElement(Chip, {
315
- key: index,
316
- after: onClear && React.createElement(Icon, {
317
- icon: mdiClose,
318
- size: Size.xxs
319
- }),
320
- isDisabled: isDisabled,
321
- size: Size.s,
322
- onAfterClick: onClick,
323
- onClick: onClick,
324
- theme: theme
325
- }, choice);
326
- },
327
- selectedValueRender: function selectedValueRender(choice) {
328
- return choice;
329
- }
330
- };
331
- var SelectMultipleField = function SelectMultipleField(_ref) {
332
- var anchorRef = _ref.anchorRef,
333
- handleKeyboardNav = _ref.handleKeyboardNav,
334
- hasError = _ref.hasError,
335
- icon = _ref.icon,
336
- id = _ref.id,
337
- isDisabled = _ref.isDisabled,
338
- isEmpty = _ref.isEmpty,
339
- isRequired = _ref.isRequired,
340
- isValid = _ref.isValid,
341
- label = _ref.label,
342
- onClear = _ref.onClear,
343
- onInputClick = _ref.onInputClick,
344
- placeholder = _ref.placeholder,
345
- selectedChipRender = _ref.selectedChipRender,
346
- selectedValueRender = _ref.selectedValueRender,
347
- theme = _ref.theme,
348
- value = _ref.value,
349
- variant = _ref.variant,
350
- forwardedProps = _objectWithoutProperties(_ref, ["anchorRef", "handleKeyboardNav", "hasError", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedChipRender", "selectedValueRender", "theme", "value", "variant"]);
351
-
352
- return React.createElement(React.Fragment, null, variant === SelectVariant.input && React.createElement(React.Fragment, null, label && React.createElement("div", {
353
- className: "".concat(CLASSNAME$2, "__header")
354
- }, React.createElement(InputLabel, {
355
- htmlFor: id,
356
- className: "".concat(CLASSNAME$2, "__label"),
357
- isRequired: isRequired,
358
- theme: theme
359
- }, label)), React.createElement("div", _extends({
360
- ref: anchorRef,
361
- id: id,
362
- className: "".concat(CLASSNAME$2, "__wrapper"),
363
- onClick: onInputClick,
364
- onKeyDown: handleKeyboardNav,
365
- tabIndex: isDisabled ? undefined : 0,
366
- "aria-disabled": isDisabled || undefined
367
- }, forwardedProps), icon && React.createElement(Icon, {
368
- className: "".concat(CLASSNAME$2, "__input-icon"),
369
- color: theme === Theme.dark ? 'light' : undefined,
370
- icon: icon,
371
- size: Size.xs
372
- }), React.createElement("div", {
373
- className: "".concat(CLASSNAME$2, "__chips")
374
- }, !isEmpty && value.map(function (val, index) {
375
- return selectedChipRender === null || selectedChipRender === void 0 ? void 0 : selectedChipRender(val, index, onClear, isDisabled, theme);
376
- })), isEmpty && placeholder && React.createElement("div", {
377
- className: classnames(["".concat(CLASSNAME$2, "__input-native"), "".concat(CLASSNAME$2, "__input-native--placeholder")])
378
- }, React.createElement("span", null, placeholder)), (isValid || hasError) && React.createElement("div", {
379
- className: "".concat(CLASSNAME$2, "__input-validity")
380
- }, React.createElement(Icon, {
381
- icon: isValid ? mdiCheckCircle : mdiAlertCircle,
382
- size: Size.xxs
383
- })), React.createElement("div", {
384
- className: "".concat(CLASSNAME$2, "__input-indicator")
385
- }, React.createElement(Icon, {
386
- icon: mdiMenuDown,
387
- size: Size.s
388
- })))), variant === SelectVariant.chip && React.createElement(Chip, _extends({
389
- id: id,
390
- isSelected: !isEmpty,
391
- isDisabled: isDisabled,
392
- after: React.createElement(Icon, {
393
- icon: isEmpty ? mdiMenuDown : mdiCloseCircle
394
- }),
395
- onAfterClick: isEmpty ? onInputClick : onClear,
396
- onClick: onInputClick,
397
- ref: anchorRef,
398
- theme: theme
399
- }, forwardedProps), isEmpty && React.createElement("span", null, label), !isEmpty && React.createElement("span", null, React.createElement("span", null, selectedValueRender === null || selectedValueRender === void 0 ? void 0 : selectedValueRender(value[0])), value.length > 1 && React.createElement("span", null, "\xA0+", value.length - 1))));
400
- };
401
- /**
402
- * SelectMultiple component.
403
- *
404
- * @param props Component props.
405
- * @param ref Component ref.
406
- * @return React element.
407
- */
408
-
409
- var SelectMultiple = forwardRef(function (props, ref) {
410
- return WithSelectContext(SelectMultipleField, _objectSpread2({}, props, {
411
- className: classnames(props.className, handleBasicClasses({
412
- hasMultiple: !props.isEmpty,
413
- prefix: CLASSNAME$2
414
- })),
415
- isEmpty: props.value.length === 0,
416
- isMultiple: true
417
- }), ref);
418
- });
419
- SelectMultiple.displayName = COMPONENT_NAME$2;
420
- SelectMultiple.className = CLASSNAME$2;
421
- SelectMultiple.defaultProps = DEFAULT_PROPS$2;
422
-
423
- export { SelectVariant as S, Select as a, SelectMultipleField as b, SelectMultiple as c };
424
- //# sourceMappingURL=SelectMultiple.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectMultiple.js","sources":["../../../src/hooks/useListenFocus.tsx","../../../src/components/select/constants.ts","../../../src/components/select/WithSelectContext.tsx","../../../src/components/select/Select.tsx","../../../src/components/select/SelectMultiple.tsx"],"sourcesContent":["import { RefObject, useEffect, useState } from 'react';\n\n/**\n * Listen on element focus to store the focus status.\n */\nexport function useListenFocus(ref: RefObject<HTMLElement>) {\n const [isFocus, setFocus] = useState(false);\n\n useEffect(() => {\n const { current: element } = ref;\n if (!element) {\n return undefined;\n }\n\n const onFocus = () => setFocus(true);\n const onBlur = () => setFocus(false);\n element.addEventListener('focus', onFocus);\n element.addEventListener('blur', onBlur);\n return () => {\n element.removeEventListener('focus', onFocus);\n element.removeEventListener('blur', onBlur);\n };\n }, [ref, setFocus]);\n\n return isFocus;\n}\n","import { IconButtonProps } from '@lumx/react';\nimport { GenericProps, HasTheme, ValueOf } from '@lumx/react/utils';\nimport { ReactNode, SyntheticEvent } from 'react';\n\n/**\n * Select variants.\n */\nexport const SelectVariant = { input: 'input', chip: 'chip' } as const;\nexport type SelectVariant = ValueOf<typeof SelectVariant>;\n\nexport interface CoreSelectProps extends GenericProps, HasTheme {\n /** Props to pass to the clear button (minus those already set by the Select props). If not specified, the button won't be displayed. */\n clearButtonProps?: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Whether the select (input variant) is displayed with error style or not. */\n hasError?: boolean;\n /** Error message. */\n error?: string | ReactNode;\n /** Helper text. */\n helper?: string;\n /** Whether the select should close on click. */\n closeOnClick?: boolean;\n /** Icon (SVG path). */\n icon?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the select (input variant) is displayed with valid style or not. */\n isValid?: boolean;\n /** Label text. */\n label?: string;\n /** Placeholder input text. */\n placeholder?: string;\n /** Select variant. */\n variant?: SelectVariant;\n /** On clear callback. */\n onClear?(event: SyntheticEvent, value?: string): void;\n /** On blur callback. */\n onBlur?(): void;\n /** On filter text change callback (with 500ms debounce). */\n onFilter?(): void;\n /** On input click callback (can be used for dropdown toggle). */\n onInputClick?(): void;\n /** On dropdown close callback. */\n onDropdownClose?(): void;\n /** On scroll end callback. */\n onInfiniteScroll?(): void;\n /** Render value function. Default: Renders the value as a string. */\n selectedValueRender?(choice: string): ReactNode | string;\n}\n","import React, { Ref, useCallback, useMemo, useRef } from 'react';\n\nimport classNames from 'classnames';\nimport { uid } from 'uid';\n\nimport { Kind, Theme } from '@lumx/react/components';\nimport { Dropdown } from '@lumx/react/components/dropdown/Dropdown';\nimport { InputHelper } from '@lumx/react/components/input-helper/InputHelper';\nimport { Placement } from '@lumx/react/components/popover/Popover';\n\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { useListenFocus } from '@lumx/react/hooks/useListenFocus';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nexport const DEFAULT_PROPS: Partial<CoreSelectProps> = {\n theme: Theme.light,\n variant: SelectVariant.input,\n};\n\nexport const WithSelectContext = (\n SelectElement: React.FC<any>,\n {\n children,\n className,\n isMultiple,\n closeOnClick = !isMultiple,\n disabled,\n error,\n hasError,\n helper,\n id,\n isDisabled = disabled,\n isEmpty,\n isOpen,\n isRequired,\n isValid,\n label,\n onClear,\n onDropdownClose,\n onInfiniteScroll,\n onInputClick,\n placeholder,\n theme = DEFAULT_PROPS.theme,\n value,\n variant = DEFAULT_PROPS.variant,\n ...forwardedProps\n }: CoreSelectProps,\n ref: Ref<HTMLDivElement>,\n): React.ReactElement => {\n const selectId = useMemo(() => id || `select-${uid()}`, [id]);\n const anchorRef = useRef<HTMLElement>(null);\n const selectRef = useRef<HTMLDivElement>(null);\n const isFocus = useListenFocus(anchorRef);\n\n const handleKeyboardNav = useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if ((evt.key === 'Enter' || evt.key === ' ' || evt.key === 'ArrowDown') && onInputClick) {\n evt.preventDefault();\n onInputClick();\n }\n },\n [onInputClick],\n );\n\n const onClose = () => {\n if (onDropdownClose) {\n onDropdownClose();\n }\n anchorRef?.current?.blur();\n };\n\n return (\n <div\n ref={mergeRefs(ref, selectRef)}\n className={classNames(\n className,\n handleBasicClasses({\n hasError,\n hasLabel: Boolean(label),\n hasPlaceholder: Boolean(placeholder),\n hasValue: !isEmpty,\n isDisabled,\n isEmpty,\n isFocus,\n isOpen,\n isValid,\n prefix: CLASSNAME,\n theme: theme === Theme.light ? Theme.light : Theme.dark,\n }),\n )}\n >\n <SelectElement\n {...forwardedProps}\n anchorRef={anchorRef}\n aria-disabled={isDisabled}\n handleKeyboardNav={handleKeyboardNav}\n hasError={hasError}\n isDisabled={isDisabled}\n isEmpty={isEmpty}\n isRequired={isRequired}\n isValid={isValid}\n label={label}\n placeholder={placeholder}\n id={selectId}\n theme={theme}\n value={value}\n variant={variant}\n onClear={onClear}\n onInputClick={onInputClick}\n />\n <Dropdown\n anchorRef={anchorRef}\n closeOnClick={closeOnClick}\n closeOnClickAway\n closeOnEscape\n isOpen={!!isOpen}\n placement={Placement.BOTTOM_START}\n onClose={onClose}\n onInfiniteScroll={onInfiniteScroll}\n >\n {children}\n </Dropdown>\n {hasError && error && (\n <InputHelper className={`${CLASSNAME}__helper`} kind={Kind.error} theme={theme}>\n {error}\n </InputHelper>\n )}\n {helper && (\n <InputHelper className={`${CLASSNAME}__helper`} theme={theme}>\n {helper}\n </InputHelper>\n )}\n </div>\n );\n};\n","import React, { forwardRef, RefObject } from 'react';\n\nimport classNames from 'classnames';\nimport lodashIsEmpty from 'lodash/isEmpty';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiCloseCircle, mdiMenuDown } from '@lumx/icons';\n\nimport { Emphasis, Size, Theme } from '@lumx/react/components';\nimport { IconButton } from '@lumx/react/components/button/IconButton';\nimport { Chip } from '@lumx/react/components/chip/Chip';\nimport { Icon } from '@lumx/react/components/icon/Icon';\nimport { InputLabel } from '@lumx/react/components/input-label/InputLabel';\n\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { WithSelectContext } from './WithSelectContext';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** Defines the props of the component. */\nexport interface SelectProps extends CoreSelectProps {\n /** Selected value. */\n value: string;\n}\n\nexport { SelectVariant };\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nconst DEFAULT_PROPS: Partial<SelectProps> = {\n selectedValueRender: (choice) => choice,\n};\n\nconst stopPropagation = (evt: Event) => evt.stopPropagation();\n\n/**\n * Select component.\n */\nconst SelectField: React.FC<SelectProps> = ({\n anchorRef,\n clearButtonProps,\n handleKeyboardNav,\n hasError,\n hasInputClear,\n icon,\n id,\n isDisabled,\n isEmpty,\n isRequired,\n isValid,\n label,\n onClear,\n onInputClick,\n placeholder,\n selectedValueRender,\n theme,\n value,\n variant,\n ...forwardedProps\n}) => {\n return (\n <>\n {variant === SelectVariant.input && (\n <>\n {label && (\n <div className={`${CLASSNAME}__header`}>\n <InputLabel\n htmlFor={id}\n className={`${CLASSNAME}__label`}\n isRequired={isRequired}\n theme={theme}\n >\n {label}\n </InputLabel>\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={anchorRef as RefObject<HTMLDivElement>}\n id={id}\n className={`${CLASSNAME}__wrapper`}\n onClick={onInputClick}\n onKeyDown={handleKeyboardNav}\n tabIndex={isDisabled ? undefined : 0}\n aria-disabled={isDisabled || undefined}\n {...forwardedProps}\n >\n {icon && (\n <Icon\n className={`${CLASSNAME}__input-icon`}\n color={theme === Theme.dark ? 'light' : undefined}\n icon={icon}\n size={Size.xs}\n />\n )}\n\n <div\n className={classNames([\n `${CLASSNAME}__input-native`,\n isEmpty && placeholder && `${CLASSNAME}__input-native--placeholder`,\n ])}\n >\n {!isEmpty && <span>{selectedValueRender?.(value)}</span>}\n\n {isEmpty && placeholder && <span>{placeholder}</span>}\n </div>\n\n {(isValid || hasError) && (\n <div className={`${CLASSNAME}__input-validity`}>\n <Icon icon={isValid ? mdiCheckCircle : mdiAlertCircle} size={Size.xxs} />\n </div>\n )}\n\n {hasInputClear && clearButtonProps && (\n <IconButton\n {...clearButtonProps}\n className={`${CLASSNAME}__input-clear`}\n icon={mdiCloseCircle}\n emphasis={Emphasis.low}\n size={Size.s}\n theme={theme}\n onClick={onClear}\n onKeyDown={stopPropagation}\n />\n )}\n\n <div className={`${CLASSNAME}__input-indicator`}>\n <Icon icon={mdiMenuDown} size={Size.s} />\n </div>\n </div>\n </>\n )}\n\n {variant === SelectVariant.chip && (\n <Chip\n id={id}\n isSelected={!isEmpty}\n isDisabled={isDisabled}\n after={<Icon icon={isEmpty ? mdiMenuDown : mdiCloseCircle} />}\n onAfterClick={isEmpty ? onInputClick : onClear}\n onClick={onInputClick}\n ref={anchorRef as RefObject<HTMLAnchorElement>}\n theme={theme}\n {...forwardedProps}\n >\n {isEmpty && <span>{label}</span>}\n\n {!isEmpty && <span>{selectedValueRender?.(value)}</span>}\n </Chip>\n )}\n </>\n );\n};\n\n/**\n * Select component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Select: Comp<SelectProps, HTMLDivElement> = forwardRef((props, ref) => {\n const isEmpty = lodashIsEmpty(props.value);\n const hasInputClear = props.onClear && props.clearButtonProps && !isEmpty;\n\n return WithSelectContext(\n SelectField,\n {\n ...props,\n className: classNames(\n props.className,\n handleBasicClasses({\n hasInputClear,\n hasUnique: !props.isEmpty,\n prefix: CLASSNAME,\n }),\n ),\n hasInputClear,\n isEmpty,\n },\n ref,\n );\n});\nSelect.displayName = COMPONENT_NAME;\nSelect.className = CLASSNAME;\nSelect.defaultProps = DEFAULT_PROPS;\nSelect.className = CLASSNAME;\n","import React, { forwardRef, ReactNode, RefObject, SyntheticEvent } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiClose, mdiCloseCircle, mdiMenuDown } from '@lumx/icons';\n\nimport { Size, Theme } from '@lumx/react/components';\nimport { Chip } from '@lumx/react/components/chip/Chip';\nimport { Icon } from '@lumx/react/components/icon/Icon';\nimport { InputLabel } from '@lumx/react/components/input-label/InputLabel';\n\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { WithSelectContext } from './WithSelectContext';\nimport { CoreSelectProps, SelectVariant } from './constants';\n\n/** Defines the props of the component. */\nexport interface SelectMultipleProps extends CoreSelectProps {\n /** Selected values. */\n value: string[];\n /** Selected value render function. Default: Renders the value inside of a Chip. */\n selectedChipRender?(\n choice: string,\n index: number,\n onClear?: (event: SyntheticEvent, choice: string) => void,\n isDisabled?: boolean,\n theme?: any,\n ): ReactNode | string;\n}\n\n/** The display name of the component. */\nconst COMPONENT_NAME = 'Select';\n\n/** The default class name and classes prefix for this component. */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/** The default value of props. */\nconst DEFAULT_PROPS: Partial<SelectMultipleProps> = {\n selectedChipRender(choice, index, onClear, isDisabled?, theme?) {\n const onClick = (event: React.MouseEvent) => onClear && onClear(event, choice);\n return (\n <Chip\n key={index}\n after={onClear && <Icon icon={mdiClose} size={Size.xxs} />}\n isDisabled={isDisabled}\n size={Size.s}\n onAfterClick={onClick}\n onClick={onClick}\n theme={theme}\n >\n {choice}\n </Chip>\n );\n },\n selectedValueRender: (choice) => choice,\n};\n\nexport const SelectMultipleField: React.FC<SelectMultipleProps> = ({\n anchorRef,\n handleKeyboardNav,\n hasError,\n icon,\n id,\n isDisabled,\n isEmpty,\n isRequired,\n isValid,\n label,\n onClear,\n onInputClick,\n placeholder,\n selectedChipRender,\n selectedValueRender,\n theme,\n value,\n variant,\n ...forwardedProps\n}) => (\n <>\n {variant === SelectVariant.input && (\n <>\n {label && (\n <div className={`${CLASSNAME}__header`}>\n <InputLabel\n htmlFor={id}\n className={`${CLASSNAME}__label`}\n isRequired={isRequired}\n theme={theme}\n >\n {label}\n </InputLabel>\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={anchorRef as RefObject<HTMLDivElement>}\n id={id}\n className={`${CLASSNAME}__wrapper`}\n onClick={onInputClick}\n onKeyDown={handleKeyboardNav}\n tabIndex={isDisabled ? undefined : 0}\n aria-disabled={isDisabled || undefined}\n {...forwardedProps}\n >\n {icon && (\n <Icon\n className={`${CLASSNAME}__input-icon`}\n color={theme === Theme.dark ? 'light' : undefined}\n icon={icon}\n size={Size.xs}\n />\n )}\n\n <div className={`${CLASSNAME}__chips`}>\n {!isEmpty &&\n value.map((val, index) => selectedChipRender?.(val, index, onClear, isDisabled, theme))}\n </div>\n\n {isEmpty && placeholder && (\n <div\n className={classNames([\n `${CLASSNAME}__input-native`,\n `${CLASSNAME}__input-native--placeholder`,\n ])}\n >\n <span>{placeholder}</span>\n </div>\n )}\n\n {(isValid || hasError) && (\n <div className={`${CLASSNAME}__input-validity`}>\n <Icon icon={isValid ? mdiCheckCircle : mdiAlertCircle} size={Size.xxs} />\n </div>\n )}\n\n <div className={`${CLASSNAME}__input-indicator`}>\n <Icon icon={mdiMenuDown} size={Size.s} />\n </div>\n </div>\n </>\n )}\n\n {variant === SelectVariant.chip && (\n <Chip\n id={id}\n isSelected={!isEmpty}\n isDisabled={isDisabled}\n after={<Icon icon={isEmpty ? mdiMenuDown : mdiCloseCircle} />}\n onAfterClick={isEmpty ? onInputClick : onClear}\n onClick={onInputClick}\n ref={anchorRef as RefObject<HTMLAnchorElement>}\n theme={theme}\n {...forwardedProps}\n >\n {isEmpty && <span>{label}</span>}\n\n {!isEmpty && (\n <span>\n <span>{selectedValueRender?.(value[0])}</span>\n\n {value.length > 1 && <span>&nbsp;+{value.length - 1}</span>}\n </span>\n )}\n </Chip>\n )}\n </>\n);\n\n/**\n * SelectMultiple component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SelectMultiple: Comp<SelectMultipleProps, HTMLDivElement> = forwardRef((props, ref) => {\n return WithSelectContext(\n SelectMultipleField,\n {\n ...props,\n className: classNames(\n props.className,\n handleBasicClasses({\n hasMultiple: !props.isEmpty,\n prefix: CLASSNAME,\n }),\n ),\n isEmpty: props.value.length === 0,\n isMultiple: true,\n },\n ref,\n );\n});\nSelectMultiple.displayName = COMPONENT_NAME;\nSelectMultiple.className = CLASSNAME;\nSelectMultiple.defaultProps = DEFAULT_PROPS;\n"],"names":["useListenFocus","ref","useState","isFocus","setFocus","useEffect","element","current","undefined","onFocus","onBlur","addEventListener","removeEventListener","SelectVariant","input","chip","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","variant","WithSelectContext","SelectElement","children","className","isMultiple","closeOnClick","disabled","error","hasError","helper","id","isDisabled","isEmpty","isOpen","isRequired","isValid","label","onClear","onDropdownClose","onInfiniteScroll","onInputClick","placeholder","value","forwardedProps","selectId","useMemo","uid","anchorRef","useRef","selectRef","handleKeyboardNav","useCallback","evt","key","preventDefault","onClose","blur","mergeRefs","classNames","handleBasicClasses","hasLabel","Boolean","hasPlaceholder","hasValue","prefix","dark","Placement","BOTTOM_START","Kind","selectedValueRender","choice","stopPropagation","SelectField","clearButtonProps","hasInputClear","icon","Size","xs","mdiCheckCircle","mdiAlertCircle","xxs","mdiCloseCircle","Emphasis","low","s","mdiMenuDown","Select","forwardRef","props","lodashIsEmpty","hasUnique","displayName","defaultProps","selectedChipRender","index","onClick","event","mdiClose","SelectMultipleField","map","val","length","SelectMultiple","hasMultiple"],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- import { b as _objectWithoutProperties, c as _extends, _ as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
2
- import { Theme, Size, Emphasis } from './components.js';
3
- import React, { forwardRef, Children } from 'react';
4
- import { g as getRootClassName, c as classnames, h as handleBasicClasses, o as onEnterPressed } from './getRootClassName.js';
5
- import { I as Icon, i as mdiChevronUp, j as mdiChevronDown } from './Icon2.js';
6
- import isEmpty from 'lodash/isEmpty';
7
- import { i as isComponent } from './type.js';
8
- import { r as renderLink } from './renderLink.js';
9
- import { I as IconButton } from './IconButton.js';
10
-
11
- /**
12
- * Defines the props of the component.
13
- */
14
-
15
- /**
16
- * Component display name.
17
- */
18
- var COMPONENT_NAME = 'SideNavigation';
19
- /**
20
- * Component default class name and class prefix.
21
- */
22
-
23
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
24
- /**
25
- * SideNavigation component.
26
- *
27
- * @param props Component props.
28
- * @param ref Component ref.
29
- * @return React element.
30
- */
31
-
32
- var SideNavigation = forwardRef(function (props, ref) {
33
- var children = props.children,
34
- className = props.className,
35
- theme = props.theme,
36
- forwardedProps = _objectWithoutProperties(props, ["children", "className", "theme"]);
37
-
38
- var content = Children.toArray(children).filter(isComponent(SideNavigationItem));
39
- return React.createElement("ul", _extends({
40
- ref: ref
41
- }, forwardedProps, {
42
- className: classnames(className, theme === Theme.dark && 'lumx-color-font-light-N', handleBasicClasses({
43
- prefix: CLASSNAME
44
- }))
45
- }), content);
46
- });
47
- SideNavigation.displayName = COMPONENT_NAME;
48
- SideNavigation.className = CLASSNAME;
49
-
50
- /**
51
- * Defines the props of the component.
52
- */
53
-
54
- /**
55
- * Component display name.
56
- */
57
- var COMPONENT_NAME$1 = 'SideNavigationItem';
58
- /**
59
- * Component default class name and class prefix.
60
- */
61
-
62
- var CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
63
- /**
64
- * Component default props.
65
- */
66
-
67
- var DEFAULT_PROPS = {
68
- emphasis: Emphasis.high,
69
- closeMode: 'unmount'
70
- };
71
- /**
72
- * SideNavigationItem component.
73
- *
74
- * @param props Component props.
75
- * @param ref Component ref.
76
- * @return React element.
77
- */
78
-
79
- var SideNavigationItem = forwardRef(function (props, ref) {
80
- var children = props.children,
81
- className = props.className,
82
- emphasis = props.emphasis,
83
- icon = props.icon,
84
- isOpen = props.isOpen,
85
- isSelected = props.isSelected,
86
- label = props.label,
87
- linkAs = props.linkAs,
88
- linkProps = props.linkProps,
89
- onActionClick = props.onActionClick,
90
- onClick = props.onClick,
91
- toggleButtonProps = props.toggleButtonProps,
92
- _props$closeMode = props.closeMode,
93
- closeMode = _props$closeMode === void 0 ? 'unmount' : _props$closeMode,
94
- forwardedProps = _objectWithoutProperties(props, ["children", "className", "emphasis", "icon", "isOpen", "isSelected", "label", "linkAs", "linkProps", "onActionClick", "onClick", "toggleButtonProps", "closeMode"]);
95
-
96
- var content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));
97
- var hasContent = !isEmpty(content);
98
- var shouldSplitActions = Boolean(onActionClick);
99
- var showChildren = hasContent && isOpen;
100
- return React.createElement("li", _extends({
101
- ref: ref
102
- }, forwardedProps, {
103
- className: classnames(className, handleBasicClasses({
104
- emphasis: emphasis,
105
- isOpen: showChildren,
106
- isSelected: isSelected,
107
- prefix: CLASSNAME$1
108
- }))
109
- }), shouldSplitActions ? React.createElement("div", {
110
- className: "".concat(CLASSNAME$1, "__wrapper")
111
- }, renderLink(_objectSpread2({
112
- linkAs: linkAs
113
- }, linkProps, {
114
- className: "".concat(CLASSNAME$1, "__link"),
115
- onClick: onClick,
116
- tabIndex: 0
117
- }), icon && React.createElement(Icon, {
118
- className: "".concat(CLASSNAME$1, "__icon"),
119
- icon: icon,
120
- size: Size.xs
121
- }), React.createElement("span", null, label)), React.createElement(IconButton, _extends({}, toggleButtonProps, {
122
- className: "".concat(CLASSNAME$1, "__toggle"),
123
- icon: isOpen ? mdiChevronUp : mdiChevronDown,
124
- size: Size.m,
125
- emphasis: Emphasis.low,
126
- onClick: onActionClick
127
- }))) : renderLink(_objectSpread2({
128
- linkAs: linkAs
129
- }, linkProps, {
130
- className: "".concat(CLASSNAME$1, "__link"),
131
- tabIndex: 0,
132
- onClick: onClick,
133
- onKeyDown: onClick ? onEnterPressed(onClick) : undefined
134
- }), icon && React.createElement(Icon, {
135
- className: "".concat(CLASSNAME$1, "__icon"),
136
- icon: icon,
137
- size: Size.xs
138
- }), React.createElement("span", null, label), hasContent && React.createElement(Icon, {
139
- className: "".concat(CLASSNAME$1, "__chevron"),
140
- icon: isOpen ? mdiChevronUp : mdiChevronDown,
141
- size: Size.xs
142
- })), (closeMode === 'hide' || showChildren) && React.createElement("ul", {
143
- className: "".concat(CLASSNAME$1, "__children")
144
- }, content));
145
- });
146
- SideNavigationItem.displayName = COMPONENT_NAME$1;
147
- SideNavigationItem.className = CLASSNAME$1;
148
- SideNavigationItem.defaultProps = DEFAULT_PROPS;
149
-
150
- export { SideNavigation as S, SideNavigationItem as a };
151
- //# sourceMappingURL=SideNavigationItem.js.map