@lumx/react 2.2.18-alpha-hooks.1 → 2.2.20-alpha-type.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 (311) hide show
  1. package/esm/_internal/{alertdialog.1.js → AlertDialog.js} +8 -8
  2. package/esm/_internal/AlertDialog.js.map +1 -0
  3. package/esm/_internal/{autocompletemultiple.2.js → AutocompleteMultiple.js} +9 -9
  4. package/esm/_internal/AutocompleteMultiple.js.map +1 -0
  5. package/esm/_internal/{avatar.3.js → Avatar2.js} +4 -4
  6. package/esm/_internal/Avatar2.js.map +1 -0
  7. package/esm/_internal/{badge.4.js → Badge2.js} +3 -3
  8. package/esm/_internal/Badge2.js.map +1 -0
  9. package/esm/_internal/{button.5.js → Button2.js} +5 -5
  10. package/esm/_internal/Button2.js.map +1 -0
  11. package/esm/_internal/{buttongroup.7.js → ButtonGroup.js} +3 -3
  12. package/esm/_internal/ButtonGroup.js.map +1 -0
  13. package/esm/_internal/{buttonroot.57.js → ButtonRoot.js} +4 -4
  14. package/esm/_internal/ButtonRoot.js.map +1 -0
  15. package/esm/_internal/{checkbox.8.js → Checkbox2.js} +10 -8
  16. package/esm/_internal/Checkbox2.js.map +1 -0
  17. package/esm/_internal/{chip.9.js → Chip2.js} +3 -3
  18. package/esm/_internal/Chip2.js.map +1 -0
  19. package/esm/_internal/{chipgroup.10.js → ChipGroup.js} +3 -3
  20. package/esm/_internal/ChipGroup.js.map +1 -0
  21. package/esm/_internal/ClickAwayProvider.js +194 -0
  22. package/esm/_internal/ClickAwayProvider.js.map +1 -0
  23. package/esm/_internal/{commentblock.11.js → CommentBlock.js} +5 -5
  24. package/esm/_internal/CommentBlock.js.map +1 -0
  25. package/esm/_internal/{datepickerfield.12.js → DatePickerField.js} +27 -20
  26. package/esm/_internal/DatePickerField.js.map +1 -0
  27. package/esm/_internal/{dialog.13.js → Dialog2.js} +13 -13
  28. package/esm/_internal/Dialog2.js.map +1 -0
  29. package/esm/_internal/{divider.14.js → Divider2.js} +3 -3
  30. package/esm/_internal/Divider2.js.map +1 -0
  31. package/esm/_internal/{draghandle.15.js → DragHandle.js} +4 -4
  32. package/esm/_internal/DragHandle.js.map +1 -0
  33. package/esm/_internal/{dropdown.16.js → Dropdown2.js} +6 -6
  34. package/esm/_internal/Dropdown2.js.map +1 -0
  35. package/esm/_internal/{expansionpanel.17.js → ExpansionPanel.js} +8 -8
  36. package/esm/_internal/ExpansionPanel.js.map +1 -0
  37. package/esm/_internal/{flag.18.js → Flag2.js} +4 -4
  38. package/esm/_internal/Flag2.js.map +1 -0
  39. package/esm/_internal/{flexbox.19.js → FlexBox.js} +3 -3
  40. package/esm/_internal/FlexBox.js.map +1 -0
  41. package/esm/_internal/GenericBlock.js +90 -0
  42. package/esm/_internal/GenericBlock.js.map +1 -0
  43. package/esm/_internal/{griditem.20.js → GridItem.js} +3 -3
  44. package/esm/_internal/GridItem.js.map +1 -0
  45. package/esm/_internal/{icon.21.js → Icon2.js} +3 -3
  46. package/esm/_internal/Icon2.js.map +1 -0
  47. package/esm/_internal/{iconbutton.6.js → IconButton.js} +6 -6
  48. package/esm/_internal/IconButton.js.map +1 -0
  49. package/esm/_internal/{imageblock.22.js → ImageBlock.js} +4 -4
  50. package/esm/_internal/ImageBlock.js.map +1 -0
  51. package/esm/_internal/{inputhelper.23.js → InputHelper.js} +3 -3
  52. package/esm/_internal/InputHelper.js.map +1 -0
  53. package/esm/_internal/{inputlabel.24.js → InputLabel.js} +3 -3
  54. package/esm/_internal/InputLabel.js.map +1 -0
  55. package/esm/_internal/{lightbox.25.js → Lightbox2.js} +12 -12
  56. package/esm/_internal/Lightbox2.js.map +1 -0
  57. package/esm/_internal/{link.26.js → Link2.js} +5 -5
  58. package/esm/_internal/Link2.js.map +1 -0
  59. package/esm/_internal/{linkpreview.27.js → LinkPreview.js} +26 -16
  60. package/esm/_internal/LinkPreview.js.map +1 -0
  61. package/esm/_internal/{list.28.js → List2.js} +6 -6
  62. package/esm/_internal/List2.js.map +1 -0
  63. package/esm/_internal/{listsubheader.29.js → ListSubheader.js} +3 -3
  64. package/esm/_internal/ListSubheader.js.map +1 -0
  65. package/esm/_internal/{message.30.js → Message2.js} +4 -4
  66. package/esm/_internal/Message2.js.map +1 -0
  67. package/esm/_internal/{mosaic.31.js → Mosaic2.js} +4 -4
  68. package/esm/_internal/Mosaic2.js.map +1 -0
  69. package/esm/_internal/{notification.32.js → Notification2.js} +7 -7
  70. package/esm/_internal/Notification2.js.map +1 -0
  71. package/esm/_internal/{popover.33.js → Popover2.js} +51 -15
  72. package/esm/_internal/Popover2.js.map +1 -0
  73. package/esm/_internal/{postblock.34.js → PostBlock.js} +5 -5
  74. package/esm/_internal/PostBlock.js.map +1 -0
  75. package/esm/_internal/{progress.35.js → Progress2.js} +3 -3
  76. package/esm/_internal/Progress2.js.map +1 -0
  77. package/esm/_internal/{progresstrackersteppanel.36.js → ProgressTrackerStepPanel.js} +8 -8
  78. package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -0
  79. package/esm/_internal/{radiogroup.37.js → RadioGroup.js} +6 -6
  80. package/esm/_internal/RadioGroup.js.map +1 -0
  81. package/esm/_internal/{selectmultiple.38.js → SelectMultiple.js} +28 -16
  82. package/esm/_internal/SelectMultiple.js.map +1 -0
  83. package/esm/_internal/{sidenavigationitem.39.js → SideNavigationItem.js} +15 -11
  84. package/esm/_internal/SideNavigationItem.js.map +1 -0
  85. package/esm/_internal/{skeletontypography.40.js → SkeletonTypography.js} +3 -3
  86. package/esm/_internal/SkeletonTypography.js.map +1 -0
  87. package/esm/_internal/{slider.41.js → Slider2.js} +6 -6
  88. package/esm/_internal/Slider2.js.map +1 -0
  89. package/esm/_internal/{slides.42.js → Slides.js} +8 -8
  90. package/esm/_internal/Slides.js.map +1 -0
  91. package/esm/_internal/{switch.43.js → Switch2.js} +6 -6
  92. package/esm/_internal/Switch2.js.map +1 -0
  93. package/esm/_internal/{tabpanel.45.js → TabPanel.js} +6 -6
  94. package/esm/_internal/TabPanel.js.map +1 -0
  95. package/esm/_internal/{tablerow.44.js → TableRow.js} +4 -4
  96. package/esm/_internal/TableRow.js.map +1 -0
  97. package/esm/_internal/{textfield.46.js → TextField.js} +9 -9
  98. package/esm/_internal/TextField.js.map +1 -0
  99. package/esm/_internal/{thumbnail.47.js → Thumbnail2.js} +6 -6
  100. package/esm/_internal/Thumbnail2.js.map +1 -0
  101. package/esm/_internal/{toolbar.49.js → Toolbar2.js} +3 -3
  102. package/esm/_internal/Toolbar2.js.map +1 -0
  103. package/esm/_internal/{tooltip.50.js → Tooltip2.js} +17 -19
  104. package/esm/_internal/Tooltip2.js.map +1 -0
  105. package/esm/_internal/{uploader.51.js → Uploader2.js} +4 -4
  106. package/esm/_internal/Uploader2.js.map +1 -0
  107. package/esm/_internal/{userblock.52.js → UserBlock.js} +14 -7
  108. package/esm/_internal/UserBlock.js.map +1 -0
  109. package/esm/_internal/{_rolluppluginbabelhelpers.53.js → _rollupPluginBabelHelpers.js} +1 -1
  110. package/esm/_internal/_rollupPluginBabelHelpers.js.map +1 -0
  111. package/esm/_internal/alert-dialog.js +20 -20
  112. package/esm/_internal/autocomplete.js +22 -22
  113. package/esm/_internal/avatar.js +6 -6
  114. package/esm/_internal/badge.js +3 -3
  115. package/esm/_internal/button.js +16 -16
  116. package/esm/_internal/checkbox.js +7 -7
  117. package/esm/_internal/chip.js +4 -4
  118. package/esm/_internal/comment-block.js +14 -14
  119. package/esm/_internal/components.js +1 -1
  120. package/esm/_internal/{constants.59.js → constants.js} +1 -1
  121. package/esm/_internal/constants.js.map +1 -0
  122. package/esm/_internal/date-picker.js +20 -20
  123. package/esm/_internal/dialog.js +13 -13
  124. package/esm/_internal/divider.js +3 -3
  125. package/esm/_internal/drag-handle.js +4 -4
  126. package/esm/_internal/dropdown.js +12 -12
  127. package/esm/_internal/expansion-panel.js +17 -18
  128. package/esm/_internal/expansion-panel.js.map +1 -1
  129. package/esm/_internal/flag.js +4 -4
  130. package/esm/_internal/flex-box.js +3 -3
  131. package/esm/_internal/generic-block.js +12 -0
  132. package/esm/_internal/generic-block.js.map +1 -0
  133. package/esm/_internal/{getrootclassname.54.js → getRootClassName.js} +2 -2
  134. package/esm/_internal/getRootClassName.js.map +1 -0
  135. package/esm/_internal/grid.js +3 -3
  136. package/esm/_internal/icon.js +3 -3
  137. package/esm/_internal/image-block.js +6 -6
  138. package/esm/_internal/input-helper.js +3 -3
  139. package/esm/_internal/input-label.js +3 -3
  140. package/esm/_internal/lightbox.js +18 -18
  141. package/esm/_internal/link-preview.js +8 -8
  142. package/esm/_internal/link.js +5 -5
  143. package/esm/_internal/list.js +7 -7
  144. package/esm/_internal/{mergerefs.56.js → mergeRefs.js} +1 -1
  145. package/esm/_internal/mergeRefs.js.map +1 -0
  146. package/esm/_internal/message.js +4 -4
  147. package/esm/_internal/mosaic.js +6 -6
  148. package/esm/_internal/notification.js +9 -9
  149. package/esm/_internal/{partitionmulti.62.js → partitionMulti.js} +1 -1
  150. package/esm/_internal/partitionMulti.js.map +1 -0
  151. package/esm/_internal/popover.js +8 -8
  152. package/esm/_internal/post-block.js +7 -7
  153. package/esm/_internal/progress-tracker.js +9 -9
  154. package/esm/_internal/progress.js +3 -3
  155. package/esm/_internal/radio-button.js +6 -6
  156. package/esm/_internal/{renderlink.65.js → renderLink.js} +2 -2
  157. package/esm/_internal/renderLink.js.map +1 -0
  158. package/esm/_internal/select.js +21 -21
  159. package/esm/_internal/side-navigation.js +16 -16
  160. package/esm/_internal/skeleton.js +3 -3
  161. package/esm/_internal/slider.js +6 -6
  162. package/esm/_internal/slideshow.js +15 -15
  163. package/esm/_internal/switch.js +6 -6
  164. package/esm/_internal/table.js +4 -4
  165. package/esm/_internal/tabs.js +7 -7
  166. package/esm/_internal/text-field.js +17 -17
  167. package/esm/_internal/thumbnail.js +6 -6
  168. package/esm/_internal/toolbar.js +3 -3
  169. package/esm/_internal/tooltip.js +10 -10
  170. package/esm/_internal/{type.64.js → type.js} +1 -1
  171. package/esm/_internal/type.js.map +1 -0
  172. package/esm/_internal/{types.48.js → types.js} +3 -2
  173. package/esm/_internal/types.js.map +1 -0
  174. package/esm/_internal/uploader.js +4 -4
  175. package/esm/_internal/{usedelayedvisibility.63.js → useDelayedVisibility.js} +2 -2
  176. package/esm/_internal/useDelayedVisibility.js.map +1 -0
  177. package/esm/_internal/{usedisablebodyscroll.61.js → useDisableBodyScroll.js} +1 -1
  178. package/esm/_internal/useDisableBodyScroll.js.map +1 -0
  179. package/esm/_internal/useFocusTrap.js +86 -0
  180. package/esm/_internal/useFocusTrap.js.map +1 -0
  181. package/esm/_internal/{userovingtabindex.66.js → useRovingTabIndex.js} +3 -3
  182. package/esm/_internal/useRovingTabIndex.js.map +1 -0
  183. package/esm/_internal/user-block.js +10 -9
  184. package/esm/_internal/user-block.js.map +1 -1
  185. package/esm/index.js +91 -0
  186. package/{index.js.map → esm/index.js.map} +1 -1
  187. package/esm/{_internal/index.55.js → index2.js} +1 -1
  188. package/esm/index2.js.map +1 -0
  189. package/package.json +9 -12
  190. package/src/components/autocomplete/Autocomplete.tsx +4 -4
  191. package/src/components/button/Button.stories.tsx +1 -0
  192. package/src/components/button/ButtonRoot.tsx +4 -4
  193. package/src/components/checkbox/Checkbox.tsx +2 -1
  194. package/src/components/checkbox/__snapshots__/Checkbox.test.tsx.snap +4 -0
  195. package/src/components/date-picker/DatePickerField.tsx +15 -16
  196. package/src/components/date-picker/types.ts +2 -2
  197. package/src/components/dialog/Dialog.stories.tsx +61 -14
  198. package/src/components/dialog/Dialog.tsx +3 -3
  199. package/src/components/dialog/__snapshots__/Dialog.test.tsx.snap +167 -91
  200. package/src/components/dropdown/Dropdown.tsx +4 -3
  201. package/src/components/generic-block/GenericBlock.stories.tsx +149 -0
  202. package/src/components/generic-block/GenericBlock.test.tsx +28 -0
  203. package/src/components/generic-block/GenericBlock.tsx +120 -0
  204. package/src/components/generic-block/__snapshots__/GenericBlock.test.tsx.snap +92 -0
  205. package/src/components/generic-block/index.ts +1 -0
  206. package/src/components/lightbox/Lightbox.tsx +1 -1
  207. package/src/components/link-preview/LinkPreview.test.tsx +50 -55
  208. package/src/components/link-preview/LinkPreview.tsx +43 -16
  209. package/src/components/popover/Popover.tsx +20 -4
  210. package/src/components/select/Select.stories.tsx +2 -0
  211. package/src/components/select/Select.tsx +11 -1
  212. package/src/components/select/SelectMultiple.stories.tsx +2 -0
  213. package/src/components/select/SelectMultiple.tsx +11 -1
  214. package/src/components/select/constants.ts +2 -0
  215. package/src/components/side-navigation/SideNavigation.stories.tsx +26 -0
  216. package/src/components/side-navigation/SideNavigationItem.test.tsx +19 -2
  217. package/src/components/side-navigation/SideNavigationItem.tsx +10 -2
  218. package/src/components/side-navigation/__snapshots__/SideNavigationItem.test.tsx.snap +1 -1
  219. package/src/components/table/__snapshots__/Table.test.tsx.snap +5 -0
  220. package/src/components/text-field/TextField.tsx +4 -4
  221. package/src/components/thumbnail/Thumbnail.tsx +2 -2
  222. package/src/components/thumbnail/index.ts +1 -0
  223. package/src/components/tooltip/Tooltip.tsx +2 -5
  224. package/src/components/tooltip/useTooltipOpen.tsx +7 -4
  225. package/src/components/user-block/UserBlock.stories.tsx +4 -4
  226. package/src/components/user-block/UserBlock.tsx +9 -3
  227. package/src/components/user-block/__snapshots__/UserBlock.test.tsx.snap +51 -8
  228. package/src/hooks/useBooleanState.tsx +4 -10
  229. package/src/hooks/useCallbackOnEscape.ts +21 -13
  230. package/src/hooks/useFocusTrap.ts +67 -76
  231. package/src/index.ts +1 -0
  232. package/src/stories/generated/Dialog/Demos.stories.tsx +1 -0
  233. package/src/stories/generated/GenericBlock/Demos.stories.tsx +6 -0
  234. package/src/utils/focus/getFirstAndLastFocusable.test.ts +134 -0
  235. package/src/utils/focus/getFirstAndLastFocusable.ts +27 -0
  236. package/src/utils/makeListenerTowerContext.ts +32 -0
  237. package/src/utils/type.ts +3 -0
  238. package/{index.d.ts → types.d.ts} +82 -22
  239. package/esm/_internal/_rolluppluginbabelhelpers.53.js.map +0 -1
  240. package/esm/_internal/alertdialog.1.js.map +0 -1
  241. package/esm/_internal/autocompletemultiple.2.js.map +0 -1
  242. package/esm/_internal/avatar.3.js.map +0 -1
  243. package/esm/_internal/badge.4.js.map +0 -1
  244. package/esm/_internal/button.5.js.map +0 -1
  245. package/esm/_internal/buttongroup.7.js.map +0 -1
  246. package/esm/_internal/buttonroot.57.js.map +0 -1
  247. package/esm/_internal/checkbox.8.js.map +0 -1
  248. package/esm/_internal/chip.9.js.map +0 -1
  249. package/esm/_internal/chipgroup.10.js.map +0 -1
  250. package/esm/_internal/clickawayprovider.60.js +0 -116
  251. package/esm/_internal/clickawayprovider.60.js.map +0 -1
  252. package/esm/_internal/commentblock.11.js.map +0 -1
  253. package/esm/_internal/constants.59.js.map +0 -1
  254. package/esm/_internal/datepickerfield.12.js.map +0 -1
  255. package/esm/_internal/dialog.13.js.map +0 -1
  256. package/esm/_internal/divider.14.js.map +0 -1
  257. package/esm/_internal/draghandle.15.js.map +0 -1
  258. package/esm/_internal/dropdown.16.js.map +0 -1
  259. package/esm/_internal/expansionpanel.17.js.map +0 -1
  260. package/esm/_internal/flag.18.js.map +0 -1
  261. package/esm/_internal/flexbox.19.js.map +0 -1
  262. package/esm/_internal/getrootclassname.54.js.map +0 -1
  263. package/esm/_internal/griditem.20.js.map +0 -1
  264. package/esm/_internal/icon.21.js.map +0 -1
  265. package/esm/_internal/iconbutton.6.js.map +0 -1
  266. package/esm/_internal/imageblock.22.js.map +0 -1
  267. package/esm/_internal/index.55.js.map +0 -1
  268. package/esm/_internal/inputhelper.23.js.map +0 -1
  269. package/esm/_internal/inputlabel.24.js.map +0 -1
  270. package/esm/_internal/lightbox.25.js.map +0 -1
  271. package/esm/_internal/link.26.js.map +0 -1
  272. package/esm/_internal/linkpreview.27.js.map +0 -1
  273. package/esm/_internal/list.28.js.map +0 -1
  274. package/esm/_internal/listsubheader.29.js.map +0 -1
  275. package/esm/_internal/mergerefs.56.js.map +0 -1
  276. package/esm/_internal/message.30.js.map +0 -1
  277. package/esm/_internal/mosaic.31.js.map +0 -1
  278. package/esm/_internal/notification.32.js.map +0 -1
  279. package/esm/_internal/partitionmulti.62.js.map +0 -1
  280. package/esm/_internal/popover.33.js.map +0 -1
  281. package/esm/_internal/postblock.34.js.map +0 -1
  282. package/esm/_internal/progress.35.js.map +0 -1
  283. package/esm/_internal/progresstrackersteppanel.36.js.map +0 -1
  284. package/esm/_internal/radiogroup.37.js.map +0 -1
  285. package/esm/_internal/renderlink.65.js.map +0 -1
  286. package/esm/_internal/selectmultiple.38.js.map +0 -1
  287. package/esm/_internal/sidenavigationitem.39.js.map +0 -1
  288. package/esm/_internal/skeletontypography.40.js.map +0 -1
  289. package/esm/_internal/slider.41.js.map +0 -1
  290. package/esm/_internal/slides.42.js.map +0 -1
  291. package/esm/_internal/switch.43.js.map +0 -1
  292. package/esm/_internal/tablerow.44.js.map +0 -1
  293. package/esm/_internal/tabpanel.45.js.map +0 -1
  294. package/esm/_internal/textfield.46.js.map +0 -1
  295. package/esm/_internal/thumbnail.47.js.map +0 -1
  296. package/esm/_internal/toolbar.49.js.map +0 -1
  297. package/esm/_internal/tooltip.50.js.map +0 -1
  298. package/esm/_internal/type.64.js.map +0 -1
  299. package/esm/_internal/types.48.js.map +0 -1
  300. package/esm/_internal/uploader.51.js.map +0 -1
  301. package/esm/_internal/usedelayedvisibility.63.js.map +0 -1
  302. package/esm/_internal/usedisablebodyscroll.61.js.map +0 -1
  303. package/esm/_internal/usefocustrap.58.js +0 -93
  304. package/esm/_internal/usefocustrap.58.js.map +0 -1
  305. package/esm/_internal/userblock.52.js.map +0 -1
  306. package/esm/_internal/userovingtabindex.66.js.map +0 -1
  307. package/hooks/useFocusWithin.d.ts +0 -16
  308. package/hooks/useFocusWithin.js +0 -28
  309. package/hooks/useFocusWithin.js.map +0 -1
  310. package/index.js +0 -90
  311. package/src/components/link-preview/__snapshots__/LinkPreview.test.tsx.snap +0 -51
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message2.js","sources":["../../../src/components/message/Message.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\nimport { ColorPalette, Icon, Kind, Size } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport classNames from 'classnames';\nimport React, { forwardRef, ReactNode } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface MessageProps extends GenericProps {\n /** Content. */\n children?: ReactNode;\n /** Whether the message has a background or not. */\n hasBackground?: boolean;\n /** Message variant. */\n kind?: Kind;\n /** Message custom icon SVG path. */\n icon?: string;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Message';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Associative map from message kind to color and icon.\n */\nconst CONFIG = {\n [Kind.error]: { color: ColorPalette.red, icon: mdiAlert },\n [Kind.info]: { color: ColorPalette.dark, icon: mdiInformation },\n [Kind.success]: { color: ColorPalette.green, icon: mdiCheckCircle },\n [Kind.warning]: { color: ColorPalette.yellow, icon: mdiAlertCircle },\n};\n\n/**\n * Message component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Message: Comp<MessageProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, hasBackground, kind, icon: customIcon, ...forwardedProps } = props;\n const { color, icon } = CONFIG[kind as Kind] || {};\n\n return (\n <div\n ref={ref}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasBackground,\n prefix: CLASSNAME,\n }),\n )}\n {...forwardedProps}\n >\n {(customIcon || icon) && (\n <Icon className={`${CLASSNAME}__icon`} icon={customIcon || icon} size={Size.xs} color={color} />\n )}\n <div className={`${CLASSNAME}__text`}>{children}</div>\n </div>\n );\n});\nMessage.displayName = COMPONENT_NAME;\nMessage.className = CLASSNAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","CONFIG","Kind","error","color","ColorPalette","red","icon","mdiAlert","info","dark","mdiInformation","success","green","mdiCheckCircle","warning","yellow","mdiAlertCircle","Message","forwardRef","props","ref","children","className","hasBackground","kind","customIcon","forwardedProps","classNames","handleBasicClasses","prefix","Size","xs","displayName"],"mappings":";;;;;;;AAMA;;;;AAcA;;;AAGA,IAAMA,cAAc,GAAG,SAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,MAAM,2CACPC,IAAI,CAACC,KADE,EACM;AAAEC,EAAAA,KAAK,EAAEC,YAAY,CAACC,GAAtB;AAA2BC,EAAAA,IAAI,EAAEC;AAAjC,CADN,4BAEPN,IAAI,CAACO,IAFE,EAEK;AAAEL,EAAAA,KAAK,EAAEC,YAAY,CAACK,IAAtB;AAA4BH,EAAAA,IAAI,EAAEI;AAAlC,CAFL,4BAGPT,IAAI,CAACU,OAHE,EAGQ;AAAER,EAAAA,KAAK,EAAEC,YAAY,CAACQ,KAAtB;AAA6BN,EAAAA,IAAI,EAAEO;AAAnC,CAHR,4BAIPZ,IAAI,CAACa,OAJE,EAIQ;AAAEX,EAAAA,KAAK,EAAEC,YAAY,CAACW,MAAtB;AAA8BT,EAAAA,IAAI,EAAEU;AAApC,CAJR,WAAZ;AAOA;;;;;;;;IAOaC,OAA2C,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAC1EC,QAD0E,GACQF,KADR,CAC1EE,QAD0E;AAAA,MAChEC,SADgE,GACQH,KADR,CAChEG,SADgE;AAAA,MACrDC,aADqD,GACQJ,KADR,CACrDI,aADqD;AAAA,MACtCC,IADsC,GACQL,KADR,CACtCK,IADsC;AAAA,MAC1BC,UAD0B,GACQN,KADR,CAChCb,IADgC;AAAA,MACXoB,cADW,4BACQP,KADR;;AAAA,aAE1DnB,MAAM,CAACwB,IAAD,CAAN,IAAwB,EAFkC;AAAA,MAE1ErB,KAF0E,QAE1EA,KAF0E;AAAA,MAEnEG,IAFmE,QAEnEA,IAFmE;;AAIlF,SACI;AACI,IAAA,GAAG,EAAEc,GADT;AAEI,IAAA,SAAS,EAAEO,UAAU,CACjBL,SADiB,EAEjBM,kBAAkB,CAAC;AACfzB,MAAAA,KAAK,EAALA,KADe;AAEfoB,MAAAA,aAAa,EAAbA,aAFe;AAGfM,MAAAA,MAAM,EAAE/B;AAHO,KAAD,CAFD;AAFzB,KAUQ4B,cAVR,GAYK,CAACD,UAAU,IAAInB,IAAf,KACG,oBAAC,IAAD;AAAM,IAAA,SAAS,YAAKR,SAAL,WAAf;AAAuC,IAAA,IAAI,EAAE2B,UAAU,IAAInB,IAA3D;AAAiE,IAAA,IAAI,EAAEwB,IAAI,CAACC,EAA5E;AAAgF,IAAA,KAAK,EAAE5B;AAAvF,IAbR,EAeI;AAAK,IAAA,SAAS,YAAKL,SAAL;AAAd,KAAuCuB,QAAvC,CAfJ,CADJ;AAmBH,CAvBoE;AAwBrEJ,OAAO,CAACe,WAAR,GAAsBnC,cAAtB;AACAoB,OAAO,CAACK,SAAR,GAAoBxB,SAApB;;;;"}
@@ -1,9 +1,9 @@
1
- import { b as _objectWithoutProperties, c as _extends, a as _defineProperty } from './_rolluppluginbabelhelpers.53.js';
1
+ import { b as _objectWithoutProperties, c as _extends, a as _defineProperty } from './_rollupPluginBabelHelpers.js';
2
2
  import { Alignment, AspectRatio, Theme } from './components.js';
3
3
  import React, { forwardRef, useMemo } from 'react';
4
- import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getrootclassname.54.js';
4
+ import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getRootClassName.js';
5
5
  import take from 'lodash/take';
6
- import { T as Thumbnail } from './thumbnail.47.js';
6
+ import { T as Thumbnail } from './Thumbnail2.js';
7
7
 
8
8
  /**
9
9
  * Defines the props of the component.
@@ -86,4 +86,4 @@ Mosaic.className = CLASSNAME;
86
86
  Mosaic.defaultProps = DEFAULT_PROPS;
87
87
 
88
88
  export { Mosaic as M };
89
- //# sourceMappingURL=mosaic.31.js.map
89
+ //# sourceMappingURL=Mosaic2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mosaic2.js","sources":["../../../src/components/mosaic/Mosaic.tsx"],"sourcesContent":["import React, { forwardRef, MouseEventHandler, useMemo } from 'react';\n\nimport { Alignment, AspectRatio, Theme, Thumbnail, ThumbnailProps } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport classNames from 'classnames';\nimport take from 'lodash/take';\n\n/**\n * Defines the props of the component.\n */\nexport interface MosaicProps extends GenericProps {\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Thumbnails. */\n thumbnails: ThumbnailProps[];\n /** On image click callback. */\n onImageClick?(index: number): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Mosaic';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<MosaicProps> = {\n theme: Theme.light,\n};\n\n/**\n * Mosaic component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Mosaic: Comp<MosaicProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { className, theme, thumbnails, onImageClick, ...forwardedProps } = props;\n const handleImageClick = useMemo(() => {\n if (!onImageClick) return undefined;\n\n return (index: number, onClick?: MouseEventHandler): MouseEventHandler => (event) => {\n onClick?.(event);\n onImageClick?.(index);\n };\n }, [onImageClick]);\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }), {\n [`${CLASSNAME}--has-1-thumbnail`]: thumbnails?.length === 1,\n [`${CLASSNAME}--has-2-thumbnails`]: thumbnails?.length === 2,\n [`${CLASSNAME}--has-3-thumbnails`]: thumbnails?.length === 3,\n [`${CLASSNAME}--has-4-thumbnails`]: thumbnails?.length >= 4,\n })}\n >\n <div className={`${CLASSNAME}__wrapper`}>\n {take(thumbnails, 4).map((thumbnail: any, index: number) => {\n const { image, onClick, align, ...thumbnailProps } = thumbnail;\n\n return (\n <div key={index} className={`${CLASSNAME}__thumbnail`}>\n <Thumbnail\n {...thumbnailProps}\n align={align || Alignment.left}\n image={image}\n theme={theme}\n aspectRatio={AspectRatio.free}\n fillHeight\n onClick={handleImageClick?.(index, onClick) || onClick}\n />\n\n {thumbnails.length > 4 && index === 3 && (\n <div className={`${CLASSNAME}__overlay`}>\n <span>+{thumbnails.length - 4}</span>\n </div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n});\nMosaic.displayName = COMPONENT_NAME;\nMosaic.className = CLASSNAME;\nMosaic.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","Mosaic","forwardRef","props","ref","className","thumbnails","onImageClick","forwardedProps","handleImageClick","useMemo","undefined","index","onClick","event","classNames","handleBasicClasses","prefix","length","take","map","thumbnail","image","align","thumbnailProps","Alignment","left","AspectRatio","free","displayName","defaultProps"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { b as _objectWithoutProperties, c as _extends } from './_rolluppluginbabelhelpers.53.js';
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
2
  import { Size, Emphasis, Theme } from './components.js';
3
3
  import React, { forwardRef } from 'react';
4
- import { g as getRootClassName, c as classnames, h as handleBasicClasses, N as NOTIFICATION_TRANSITION_DURATION } from './getrootclassname.54.js';
5
- import { m as mdiAlert, a as mdiInformation, b as mdiCheckCircle, c as mdiAlertCircle, I as Icon } from './icon.21.js';
6
- import { D as DOCUMENT } from './constants.59.js';
7
- import { a as Button } from './button.5.js';
4
+ import { g as getRootClassName, c as classnames, h as handleBasicClasses, N as NOTIFICATION_TRANSITION_DURATION } from './getRootClassName.js';
5
+ import { m as mdiAlert, a as mdiInformation, b as mdiCheckCircle, c as mdiAlertCircle, I as Icon } from './Icon2.js';
6
+ import { D as DOCUMENT } from './constants.js';
7
+ import { a as Button } from './Button2.js';
8
8
  import isFunction from 'lodash/isFunction';
9
9
  import { createPortal } from 'react-dom';
10
- import { u as useDelayedVisibility } from './usedelayedvisibility.63.js';
10
+ import { u as useDelayedVisibility } from './useDelayedVisibility.js';
11
11
 
12
12
  /**
13
13
  * Notification icon and colors according to their type.
@@ -130,4 +130,4 @@ Notification.className = CLASSNAME;
130
130
  Notification.defaultProps = DEFAULT_PROPS;
131
131
 
132
132
  export { Notification as N };
133
- //# sourceMappingURL=notification.32.js.map
133
+ //# sourceMappingURL=Notification2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Notification2.js","sources":["../../../src/components/notification/constants.ts","../../../src/components/notification/Notification.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\n\n/**\n * Notification delay before hiding.\n */\nexport const HIDE_DELAY = 6000;\n\n/**\n * Notification icon and colors according to their type.\n */\nexport const NOTIFICATION_CONFIGURATION = {\n error: {\n color: 'red',\n icon: mdiAlert,\n },\n info: {\n color: 'dark',\n icon: mdiInformation,\n },\n success: {\n color: 'green',\n icon: mdiCheckCircle,\n },\n warning: {\n color: 'yellow',\n icon: mdiAlertCircle,\n },\n};\n","import React, { forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport classNames from 'classnames';\n\nimport isFunction from 'lodash/isFunction';\n\nimport { Button, Emphasis, Icon, Kind, Size, Theme } from '@lumx/react';\n\nimport { DOCUMENT, NOTIFICATION_TRANSITION_DURATION } from '@lumx/react/constants';\nimport { NOTIFICATION_CONFIGURATION } from '@lumx/react/components/notification/constants';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { useDelayedVisibility } from '@lumx/react/hooks/useDelayedVisibility';\n\n/**\n * Defines the props of the component.\n */\nexport interface NotificationProps extends GenericProps {\n /** Action button label. */\n actionLabel?: string;\n /** Content. */\n content?: React.ReactNode;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Notification type. */\n type?: Kind;\n /** Z-axis position. */\n zIndex?: number;\n /** On action button click callback. */\n onActionClick?(): void;\n /** On click callback. */\n onClick?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Notification';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<NotificationProps> = {\n theme: Theme.light,\n zIndex: 9999,\n};\n\n/* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n/**\n * Notification component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Notification: Comp<NotificationProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n actionLabel,\n className,\n content,\n isOpen,\n onActionClick,\n onClick,\n theme,\n type,\n zIndex,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { color, icon } = NOTIFICATION_CONFIGURATION[type as Kind] || {};\n const isVisible = useDelayedVisibility(!!isOpen, NOTIFICATION_TRANSITION_DURATION);\n const hasAction: boolean = Boolean(onActionClick) && Boolean(actionLabel);\n\n const handleCallback = (evt: React.MouseEvent) => {\n if (isFunction(onActionClick)) {\n onActionClick();\n }\n evt.stopPropagation();\n };\n\n return type && isVisible\n ? createPortal(\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <div\n ref={ref}\n role=\"alert\"\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasAction,\n isHidden: !isOpen,\n prefix: CLASSNAME,\n }),\n )}\n onClick={onClick}\n style={{ zIndex }}\n >\n <div className={`${CLASSNAME}__icon`}>\n <Icon icon={icon} size={Size.s} />\n </div>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n {hasAction && (\n <div className={`${CLASSNAME}__action`}>\n <Button emphasis={Emphasis.medium} theme={theme} onClick={handleCallback}>\n <span>{actionLabel}</span>\n </Button>\n </div>\n )}\n </div>,\n document.body,\n )\n : null;\n});\nNotification.displayName = COMPONENT_NAME;\nNotification.className = CLASSNAME;\nNotification.defaultProps = DEFAULT_PROPS;\n"],"names":["NOTIFICATION_CONFIGURATION","error","color","icon","mdiAlert","info","mdiInformation","success","mdiCheckCircle","warning","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","zIndex","Notification","forwardRef","props","ref","actionLabel","className","content","isOpen","onActionClick","onClick","type","forwardedProps","DOCUMENT","isVisible","useDelayedVisibility","NOTIFICATION_TRANSITION_DURATION","hasAction","Boolean","handleCallback","evt","isFunction","stopPropagation","createPortal","classNames","handleBasicClasses","isHidden","prefix","Size","s","Emphasis","medium","document","body","displayName","defaultProps"],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- import { d as _slicedToArray, b as _objectWithoutProperties, _ as _objectSpread2, c as _extends } from './_rolluppluginbabelhelpers.53.js';
2
- import React, { useState, useEffect, useLayoutEffect, useRef, useMemo, forwardRef } from 'react';
3
- import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getrootclassname.54.js';
4
- import { D as DOCUMENT, W as WINDOW } from './constants.59.js';
5
- import { m as mergeRefs } from './mergerefs.56.js';
1
+ import { d as _slicedToArray, b as _objectWithoutProperties, _ as _objectSpread2, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React, { useState, useEffect, useLayoutEffect, useRef, useMemo, forwardRef, useCallback } from 'react';
3
+ import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getRootClassName.js';
4
+ import { D as DOCUMENT, W as WINDOW } from './constants.js';
5
+ import { m as mergeRefs } from './mergeRefs.js';
6
+ import { g as getFirstAndLastFocusable, u as useCallbackOnEscape, C as ClickAwayProvider } from './ClickAwayProvider.js';
6
7
  import { createPortal } from 'react-dom';
7
- import { u as useCallbackOnEscape, C as ClickAwayProvider } from './clickawayprovider.60.js';
8
- import { useFocusWithin } from '../../hooks/useFocusWithin.js';
9
8
 
10
9
  /**
11
10
  * Hook focusing an element when defined and `focus` boolean `true`.
@@ -2115,6 +2114,30 @@ var usePopper = function usePopper(referenceElement, popperElement, options) {
2115
2114
  };
2116
2115
  };
2117
2116
 
2117
+ /**
2118
+ * Hook that allows to control when there is a focus event within a given element, meaning
2119
+ * that any element within the given target will trigger the focus in and focus out events.
2120
+ * @param options - UseFocusWithinOptions
2121
+ */
2122
+ var useFocusWithin = function useFocusWithin(_ref) {
2123
+ var element = _ref.element,
2124
+ onFocusIn = _ref.onFocusIn,
2125
+ onFocusOut = _ref.onFocusOut;
2126
+ useEffect(function () {
2127
+ if (element) {
2128
+ element.addEventListener('focusin', onFocusIn);
2129
+ element.addEventListener('focusout', onFocusOut);
2130
+ }
2131
+
2132
+ return function () {
2133
+ if (element) {
2134
+ element.removeEventListener('focusin', onFocusIn);
2135
+ element.removeEventListener('focusout', onFocusOut);
2136
+ }
2137
+ };
2138
+ }, [onFocusIn, element, onFocusOut]);
2139
+ };
2140
+
2118
2141
  /**
2119
2142
  * Different possible placements for the popover.
2120
2143
  */
@@ -2272,13 +2295,14 @@ var Popover = forwardRef(function (props, ref) {
2272
2295
  isOpen = props.isOpen,
2273
2296
  offset = props.offset,
2274
2297
  onClose = props.onClose,
2298
+ parentElement = props.parentElement,
2275
2299
  placement = props.placement,
2276
2300
  style = props.style,
2277
2301
  usePortal = props.usePortal,
2278
2302
  zIndex = props.zIndex,
2279
2303
  _props$focusAnchorOnC = props.focusAnchorOnClose,
2280
2304
  focusAnchorOnClose = _props$focusAnchorOnC === void 0 ? true : _props$focusAnchorOnC,
2281
- forwardedProps = _objectWithoutProperties(props, ["anchorRef", "boundaryRef", "children", "className", "closeOnClickAway", "closeOnEscape", "elevation", "fitToAnchorWidth", "fitWithinViewportHeight", "focusElement", "hasArrow", "isOpen", "offset", "onClose", "placement", "style", "usePortal", "zIndex", "focusAnchorOnClose"]); // eslint-disable-next-line react-hooks/rules-of-hooks
2305
+ forwardedProps = _objectWithoutProperties(props, ["anchorRef", "boundaryRef", "children", "className", "closeOnClickAway", "closeOnEscape", "elevation", "fitToAnchorWidth", "fitWithinViewportHeight", "focusElement", "hasArrow", "isOpen", "offset", "onClose", "parentElement", "placement", "style", "usePortal", "zIndex", "focusAnchorOnClose"]); // eslint-disable-next-line react-hooks/rules-of-hooks
2282
2306
 
2283
2307
 
2284
2308
  var _useState = useState(),
@@ -2312,8 +2336,9 @@ var Popover = forwardRef(function (props, ref) {
2312
2336
  }
2313
2337
  });
2314
2338
  /** Action on close */
2339
+ // eslint-disable-next-line react-hooks/rules-of-hooks
2315
2340
 
2316
- var handleClose = function handleClose() {
2341
+ var handleClose = useCallback(function () {
2317
2342
  if (!onClose) {
2318
2343
  return;
2319
2344
  }
@@ -2325,14 +2350,25 @@ var Popover = forwardRef(function (props, ref) {
2325
2350
 
2326
2351
 
2327
2352
  if (isFocusedWithin.current && focusAnchorOnClose) {
2328
- var _anchorRef$current;
2353
+ if (parentElement === null || parentElement === void 0 ? void 0 : parentElement.current) {
2354
+ parentElement === null || parentElement === void 0 ? void 0 : parentElement.current.focus();
2355
+ }
2329
2356
 
2330
- (_anchorRef$current = anchorRef.current) === null || _anchorRef$current === void 0 ? void 0 : _anchorRef$current.focus();
2357
+ var firstFocusable = (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && getFirstAndLastFocusable(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current).first;
2358
+
2359
+ if (firstFocusable) {
2360
+ // Focus the first focusable element in anchor.
2361
+ firstFocusable.focus();
2362
+ } else {
2363
+ var _anchorRef$current;
2364
+
2365
+ // Fallback on the anchor element.
2366
+ anchorRef === null || anchorRef === void 0 ? void 0 : (_anchorRef$current = anchorRef.current) === null || _anchorRef$current === void 0 ? void 0 : _anchorRef$current.focus();
2367
+ }
2331
2368
  }
2332
2369
 
2333
2370
  onClose();
2334
- };
2335
-
2371
+ }, [anchorRef, focusAnchorOnClose, onClose, parentElement]);
2336
2372
  var modifiers = [];
2337
2373
  var actualOffset = [(_ref5 = offset === null || offset === void 0 ? void 0 : offset.along) !== null && _ref5 !== void 0 ? _ref5 : 0, ((_ref6 = offset === null || offset === void 0 ? void 0 : offset.away) !== null && _ref6 !== void 0 ? _ref6 : 0) + (hasArrow ? ARROW_SIZE : 0)];
2338
2374
  modifiers.push({
@@ -2433,5 +2469,5 @@ Popover.displayName = COMPONENT_NAME;
2433
2469
  Popover.className = CLASSNAME;
2434
2470
  Popover.defaultProps = DEFAULT_PROPS;
2435
2471
 
2436
- export { Placement as P, Popover as a, usePopper as b, useFocus as u };
2437
- //# sourceMappingURL=popover.33.js.map
2472
+ export { Placement as P, Popover as a, useFocusWithin as b, usePopper as c, useFocus as u };
2473
+ //# sourceMappingURL=Popover2.js.map