@lumx/react 3.20.1-alpha.14 → 3.20.1-alpha.15

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 (697) hide show
  1. package/_internal/Button-f19e18df.js +96 -0
  2. package/_internal/Button-f19e18df.js.map +1 -0
  3. package/_internal/ButtonRoot-ab633b1d.js +115 -0
  4. package/_internal/ButtonRoot-ab633b1d.js.map +1 -0
  5. package/_internal/Chip-4c572eec.js +149 -0
  6. package/_internal/Chip-4c572eec.js.map +1 -0
  7. package/_internal/ClickAwayProvider-bcce6ceb.js +93 -0
  8. package/_internal/ClickAwayProvider-bcce6ceb.js.map +1 -0
  9. package/_internal/DisabledStateContext-077b7bef.js +29 -0
  10. package/_internal/DisabledStateContext-077b7bef.js.map +1 -0
  11. package/_internal/HeadingLevelProvider-e4817816.js +59 -0
  12. package/_internal/HeadingLevelProvider-e4817816.js.map +1 -0
  13. package/_internal/IconButton-10585058.js +72 -0
  14. package/_internal/IconButton-10585058.js.map +1 -0
  15. package/_internal/ImageCaption-4279b2b6.js +65 -0
  16. package/_internal/ImageCaption-4279b2b6.js.map +1 -0
  17. package/_internal/List-d5f5d465.js +791 -0
  18. package/_internal/List-d5f5d465.js.map +1 -0
  19. package/_internal/PopoverDialog-21e5c9dd.js +647 -0
  20. package/_internal/PopoverDialog-21e5c9dd.js.map +1 -0
  21. package/_internal/Portal-c43d098b.js +42 -0
  22. package/_internal/Portal-c43d098b.js.map +1 -0
  23. package/_internal/RawClickable-c76bbc4c.js +50 -0
  24. package/_internal/RawClickable-c76bbc4c.js.map +1 -0
  25. package/_internal/Slides-01f513ce.js +675 -0
  26. package/_internal/Slides-01f513ce.js.map +1 -0
  27. package/_internal/ThemeContext-3181f000.js +14 -0
  28. package/_internal/ThemeContext-3181f000.js.map +1 -0
  29. package/_internal/Thumbnail-30d2a781.js +312 -0
  30. package/_internal/Thumbnail-30d2a781.js.map +1 -0
  31. package/_internal/components/alert-dialog-8f1c163c.js +147 -0
  32. package/_internal/components/alert-dialog-8f1c163c.js.map +1 -0
  33. package/_internal/components/autocomplete-bfbdeb3c.js +264 -0
  34. package/_internal/components/autocomplete-bfbdeb3c.js.map +1 -0
  35. package/_internal/components/avatar-6990e3e9.js +87 -0
  36. package/_internal/components/avatar-6990e3e9.js.map +1 -0
  37. package/_internal/components/badge-81543bc7.js +81 -0
  38. package/_internal/components/badge-81543bc7.js.map +1 -0
  39. package/_internal/components/button-927abe71.js +49 -0
  40. package/_internal/components/button-927abe71.js.map +1 -0
  41. package/_internal/components/checkbox-dc4caec8.js +131 -0
  42. package/_internal/components/checkbox-dc4caec8.js.map +1 -0
  43. package/_internal/components/chip-fb3d0c76.js +104 -0
  44. package/_internal/components/chip-fb3d0c76.js.map +1 -0
  45. package/_internal/components/comment-block-b84c4694.js +121 -0
  46. package/_internal/components/comment-block-b84c4694.js.map +1 -0
  47. package/_internal/components/date-picker-a425534c.js +2 -0
  48. package/_internal/components/date-picker-a425534c.js.map +1 -0
  49. package/_internal/components/dialog-7dbcb485.js +226 -0
  50. package/_internal/components/dialog-7dbcb485.js.map +1 -0
  51. package/_internal/components/divider-12e9b6a0.js +53 -0
  52. package/_internal/components/divider-12e9b6a0.js.map +1 -0
  53. package/_internal/components/drag-handle-a38ff757.js +53 -0
  54. package/_internal/components/drag-handle-a38ff757.js.map +1 -0
  55. package/_internal/components/dropdown-38b0b6a0.js +148 -0
  56. package/_internal/components/dropdown-38b0b6a0.js.map +1 -0
  57. package/_internal/components/expansion-panel-c4b93653.js +158 -0
  58. package/_internal/components/expansion-panel-c4b93653.js.map +1 -0
  59. package/_internal/components/flag-c5e2f5f0.js +55 -0
  60. package/_internal/components/flag-c5e2f5f0.js.map +1 -0
  61. package/_internal/components/flex-box-c8701a85.js +58 -0
  62. package/_internal/components/flex-box-c8701a85.js.map +1 -0
  63. package/_internal/components/generic-block-0d6ad5a6.js +115 -0
  64. package/_internal/components/generic-block-0d6ad5a6.js.map +1 -0
  65. package/_internal/components/grid-3b194fe8.js +109 -0
  66. package/_internal/components/grid-3b194fe8.js.map +1 -0
  67. package/_internal/components/grid-column-985b9327.js +60 -0
  68. package/_internal/components/grid-column-985b9327.js.map +1 -0
  69. package/_internal/components/heading-5e954dfc.js +54 -0
  70. package/_internal/components/heading-5e954dfc.js.map +1 -0
  71. package/_internal/components/icon-2e7345ad.js +103 -0
  72. package/_internal/components/icon-2e7345ad.js.map +1 -0
  73. package/_internal/components/image-block-8d21dd7e.js +109 -0
  74. package/_internal/components/image-block-8d21dd7e.js.map +1 -0
  75. package/_internal/components/image-lightbox-4a5ab962.js +743 -0
  76. package/_internal/components/image-lightbox-4a5ab962.js.map +1 -0
  77. package/_internal/components/inline-list-4884f004.js +74 -0
  78. package/_internal/components/inline-list-4884f004.js.map +1 -0
  79. package/_internal/components/input-helper-e644e05e.js +73 -0
  80. package/_internal/components/input-helper-e644e05e.js.map +1 -0
  81. package/_internal/components/input-label-5e509a1b.js +61 -0
  82. package/_internal/components/input-label-5e509a1b.js.map +1 -0
  83. package/_internal/components/lightbox-bec1b95f.js +149 -0
  84. package/_internal/components/lightbox-bec1b95f.js.map +1 -0
  85. package/_internal/components/link-9637b9e4.js +70 -0
  86. package/_internal/components/link-9637b9e4.js.map +1 -0
  87. package/_internal/components/link-preview-7a4a6e4b.js +108 -0
  88. package/_internal/components/link-preview-7a4a6e4b.js.map +1 -0
  89. package/_internal/components/list-5c8f7122.js +77 -0
  90. package/_internal/components/list-5c8f7122.js.map +1 -0
  91. package/_internal/components/message-a67067d9.js +96 -0
  92. package/_internal/components/message-a67067d9.js.map +1 -0
  93. package/_internal/components/mosaic-92b66c80.js +92 -0
  94. package/_internal/components/mosaic-92b66c80.js.map +1 -0
  95. package/_internal/components/navigation-4fd3917d.js +210 -0
  96. package/_internal/components/navigation-4fd3917d.js.map +1 -0
  97. package/_internal/components/notification-9063c963.js +140 -0
  98. package/_internal/components/notification-9063c963.js.map +1 -0
  99. package/_internal/components/popover-3c4c54bd.js +3 -0
  100. package/_internal/components/popover-3c4c54bd.js.map +1 -0
  101. package/_internal/components/post-block-0cfc2206.js +99 -0
  102. package/_internal/components/post-block-0cfc2206.js.map +1 -0
  103. package/_internal/components/progress-eaf5b33d.js +188 -0
  104. package/_internal/components/progress-eaf5b33d.js.map +1 -0
  105. package/_internal/components/progress-tracker-4a65718d.js +309 -0
  106. package/_internal/components/progress-tracker-4a65718d.js.map +1 -0
  107. package/_internal/components/radio-button-3ef8a325.js +148 -0
  108. package/_internal/components/radio-button-3ef8a325.js.map +1 -0
  109. package/_internal/components/select-d46cfe35.js +404 -0
  110. package/_internal/components/select-d46cfe35.js.map +1 -0
  111. package/_internal/components/side-navigation-75b22f19.js +159 -0
  112. package/_internal/components/side-navigation-75b22f19.js.map +1 -0
  113. package/_internal/components/skeleton-361ce335.js +174 -0
  114. package/_internal/components/skeleton-361ce335.js.map +1 -0
  115. package/_internal/components/slider-8094cb5c.js +305 -0
  116. package/_internal/components/slider-8094cb5c.js.map +1 -0
  117. package/_internal/components/slideshow-2e8cd372.js +150 -0
  118. package/_internal/components/slideshow-2e8cd372.js.map +1 -0
  119. package/_internal/components/switch-5516949b.js +118 -0
  120. package/_internal/components/switch-5516949b.js.map +1 -0
  121. package/_internal/components/table-fa198ee6.js +299 -0
  122. package/_internal/components/table-fa198ee6.js.map +1 -0
  123. package/_internal/components/tabs-bb9bc2a5.js +298 -0
  124. package/_internal/components/tabs-bb9bc2a5.js.map +1 -0
  125. package/_internal/components/text-289c0526.js +2 -0
  126. package/_internal/components/text-289c0526.js.map +1 -0
  127. package/_internal/components/text-field-82733568.js +346 -0
  128. package/_internal/components/text-field-82733568.js.map +1 -0
  129. package/_internal/components/thumbnail-e3acff82.js +42 -0
  130. package/_internal/components/thumbnail-e3acff82.js.map +1 -0
  131. package/_internal/components/toolbar-155562be.js +60 -0
  132. package/_internal/components/toolbar-155562be.js.map +1 -0
  133. package/_internal/components/tooltip-84ffb4f9.js +318 -0
  134. package/_internal/components/tooltip-84ffb4f9.js.map +1 -0
  135. package/_internal/components/uploader-896a1d89.js +150 -0
  136. package/_internal/components/uploader-896a1d89.js.map +1 -0
  137. package/_internal/components/user-block-8fd15895.js +143 -0
  138. package/_internal/components/user-block-8fd15895.js.map +1 -0
  139. package/_internal/constants-b9e57936.js +2155 -0
  140. package/_internal/constants-b9e57936.js.map +1 -0
  141. package/_internal/constants-d0e3f49e.js +24 -0
  142. package/_internal/constants-d0e3f49e.js.map +1 -0
  143. package/_internal/context-21aeb1c7.js +19 -0
  144. package/_internal/context-21aeb1c7.js.map +1 -0
  145. package/_internal/forwardRef-49d2bb84.js +80 -0
  146. package/_internal/forwardRef-49d2bb84.js.map +1 -0
  147. package/_internal/getFocusableElements-230173a8.js +13 -0
  148. package/_internal/getFocusableElements-230173a8.js.map +1 -0
  149. package/_internal/index-b4d256e7.js +118 -0
  150. package/_internal/index-b4d256e7.js.map +1 -0
  151. package/_internal/index-f415b08e.js +430 -0
  152. package/_internal/index-f415b08e.js.map +1 -0
  153. package/_internal/isComponent-78df9309.js +20 -0
  154. package/_internal/isComponent-78df9309.js.map +1 -0
  155. package/_internal/isComponentType-e806b848.js +9 -0
  156. package/_internal/isComponentType-e806b848.js.map +1 -0
  157. package/_internal/mergeRefs-f0d7d6ea.js +30 -0
  158. package/_internal/mergeRefs-f0d7d6ea.js.map +1 -0
  159. package/{src/utils/partitionMulti.ts → _internal/partitionMulti-4daccdd5.js} +5 -9
  160. package/_internal/partitionMulti-4daccdd5.js.map +1 -0
  161. package/_internal/state-db358714.js +130 -0
  162. package/_internal/state-db358714.js.map +1 -0
  163. package/_internal/useBooleanState-2a3d237c.js +12 -0
  164. package/_internal/useBooleanState-2a3d237c.js.map +1 -0
  165. package/_internal/useCallbackOnEscape-ea4d9eb4.js +62 -0
  166. package/_internal/useCallbackOnEscape-ea4d9eb4.js.map +1 -0
  167. package/_internal/useDisableBodyScroll-36bd7352.js +219 -0
  168. package/_internal/useDisableBodyScroll-36bd7352.js.map +1 -0
  169. package/_internal/useDisableStateProps-fffc365f.js +36 -0
  170. package/_internal/useDisableStateProps-fffc365f.js.map +1 -0
  171. package/_internal/useFocusTrap-c3c6378b.js +112 -0
  172. package/_internal/useFocusTrap-c3c6378b.js.map +1 -0
  173. package/_internal/useId-3a1facc0.js +18 -0
  174. package/_internal/useId-3a1facc0.js.map +1 -0
  175. package/_internal/useRovingTabIndex-7daf0f24.js +77 -0
  176. package/_internal/useRovingTabIndex-7daf0f24.js.map +1 -0
  177. package/_internal/useTransitionVisibility-321fdbfa.js +50 -0
  178. package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
  179. package/_internal/wrapChildrenIconWithSpaces-f86106ce.js +20 -0
  180. package/_internal/wrapChildrenIconWithSpaces-f86106ce.js.map +1 -0
  181. package/index.d.ts +7 -352
  182. package/index.js +65 -14486
  183. package/index.js.map +1 -1
  184. package/package.json +3 -11
  185. package/utils/index.d.ts +1 -1
  186. package/utils/index.js +3 -1
  187. package/utils/index.js.map +1 -1
  188. package/_internal/Falsy.d.ts +0 -7
  189. package/_internal/index.js +0 -236
  190. package/_internal/index.js.map +0 -1
  191. package/src/components/alert-dialog/AlertDialog.stories.tsx +0 -127
  192. package/src/components/alert-dialog/AlertDialog.test.tsx +0 -34
  193. package/src/components/alert-dialog/AlertDialog.tsx +0 -189
  194. package/src/components/alert-dialog/index.ts +0 -1
  195. package/src/components/autocomplete/Autocomplete.stories.tsx +0 -75
  196. package/src/components/autocomplete/Autocomplete.test.tsx +0 -99
  197. package/src/components/autocomplete/Autocomplete.tsx +0 -294
  198. package/src/components/autocomplete/AutocompleteMultiple.stories.tsx +0 -167
  199. package/src/components/autocomplete/AutocompleteMultiple.test.tsx +0 -61
  200. package/src/components/autocomplete/AutocompleteMultiple.tsx +0 -156
  201. package/src/components/autocomplete/__mockData__/index.ts +0 -39
  202. package/src/components/autocomplete/index.ts +0 -2
  203. package/src/components/avatar/Avatar.stories.tsx +0 -119
  204. package/src/components/avatar/Avatar.test.tsx +0 -32
  205. package/src/components/avatar/Avatar.tsx +0 -114
  206. package/src/components/avatar/index.ts +0 -1
  207. package/src/components/badge/Badge.stories.tsx +0 -69
  208. package/src/components/badge/Badge.test.tsx +0 -45
  209. package/src/components/badge/Badge.tsx +0 -58
  210. package/src/components/badge/BadgeWrapper.stories.tsx +0 -75
  211. package/src/components/badge/BadgeWrapper.test.tsx +0 -47
  212. package/src/components/badge/BadgeWrapper.tsx +0 -37
  213. package/src/components/badge/index.ts +0 -2
  214. package/src/components/button/Button.stories.tsx +0 -355
  215. package/src/components/button/Button.test.tsx +0 -125
  216. package/src/components/button/Button.tsx +0 -101
  217. package/src/components/button/ButtonGroup.stories.tsx +0 -52
  218. package/src/components/button/ButtonGroup.test.tsx +0 -41
  219. package/src/components/button/ButtonGroup.tsx +0 -50
  220. package/src/components/button/ButtonRoot.tsx +0 -163
  221. package/src/components/button/IconButton.stories.tsx +0 -52
  222. package/src/components/button/IconButton.test.tsx +0 -66
  223. package/src/components/button/IconButton.tsx +0 -91
  224. package/src/components/button/index.ts +0 -4
  225. package/src/components/checkbox/Checkbox.stories.tsx +0 -64
  226. package/src/components/checkbox/Checkbox.test.tsx +0 -154
  227. package/src/components/checkbox/Checkbox.tsx +0 -164
  228. package/src/components/checkbox/index.ts +0 -1
  229. package/src/components/chip/Chip.stories.tsx +0 -164
  230. package/src/components/chip/Chip.test.tsx +0 -243
  231. package/src/components/chip/Chip.tsx +0 -168
  232. package/src/components/chip/ChipGroup.stories.tsx +0 -47
  233. package/src/components/chip/ChipGroup.test.tsx +0 -37
  234. package/src/components/chip/ChipGroup.tsx +0 -60
  235. package/src/components/chip/index.ts +0 -2
  236. package/src/components/comment-block/CommentBlock.stories.tsx +0 -91
  237. package/src/components/comment-block/CommentBlock.test.tsx +0 -28
  238. package/src/components/comment-block/CommentBlock.tsx +0 -172
  239. package/src/components/comment-block/index.ts +0 -1
  240. package/src/components/date-picker/DatePicker.stories.tsx +0 -118
  241. package/src/components/date-picker/DatePicker.test.tsx +0 -34
  242. package/src/components/date-picker/DatePicker.tsx +0 -52
  243. package/src/components/date-picker/DatePickerControlled.test.tsx +0 -91
  244. package/src/components/date-picker/DatePickerControlled.tsx +0 -259
  245. package/src/components/date-picker/DatePickerField.stories.tsx +0 -100
  246. package/src/components/date-picker/DatePickerField.test.tsx +0 -70
  247. package/src/components/date-picker/DatePickerField.tsx +0 -135
  248. package/src/components/date-picker/constants.ts +0 -11
  249. package/src/components/date-picker/index.ts +0 -4
  250. package/src/components/date-picker/types.ts +0 -28
  251. package/src/components/dialog/Dialog.stories.tsx +0 -318
  252. package/src/components/dialog/Dialog.test.tsx +0 -97
  253. package/src/components/dialog/Dialog.tsx +0 -288
  254. package/src/components/dialog/index.ts +0 -1
  255. package/src/components/divider/Divider.test.tsx +0 -51
  256. package/src/components/divider/Divider.tsx +0 -50
  257. package/src/components/divider/index.ts +0 -1
  258. package/src/components/drag-handle/DragHandle.test.tsx +0 -36
  259. package/src/components/drag-handle/DragHandle.tsx +0 -51
  260. package/src/components/drag-handle/index.ts +0 -1
  261. package/src/components/dropdown/Dropdown.stories.tsx +0 -31
  262. package/src/components/dropdown/Dropdown.test.tsx +0 -66
  263. package/src/components/dropdown/Dropdown.tsx +0 -186
  264. package/src/components/dropdown/index.ts +0 -1
  265. package/src/components/expansion-panel/ExpansionPanel.stories.tsx +0 -91
  266. package/src/components/expansion-panel/ExpansionPanel.test.tsx +0 -185
  267. package/src/components/expansion-panel/ExpansionPanel.tsx +0 -195
  268. package/src/components/expansion-panel/index.ts +0 -1
  269. package/src/components/flag/Flag.stories.tsx +0 -48
  270. package/src/components/flag/Flag.test.tsx +0 -62
  271. package/src/components/flag/Flag.tsx +0 -52
  272. package/src/components/flag/index.ts +0 -1
  273. package/src/components/flex-box/FlexBox.stories.tsx +0 -156
  274. package/src/components/flex-box/FlexBox.test.tsx +0 -24
  275. package/src/components/flex-box/FlexBox.tsx +0 -100
  276. package/src/components/flex-box/index.ts +0 -1
  277. package/src/components/generic-block/GenericBlock.stories.jsx +0 -128
  278. package/src/components/generic-block/GenericBlock.test.tsx +0 -156
  279. package/src/components/generic-block/GenericBlock.tsx +0 -225
  280. package/src/components/generic-block/constants.ts +0 -9
  281. package/src/components/generic-block/index.ts +0 -2
  282. package/src/components/grid/Grid.tsx +0 -83
  283. package/src/components/grid/GridItem.tsx +0 -55
  284. package/src/components/grid/index.ts +0 -2
  285. package/src/components/grid-column/GridColumn.stories.tsx +0 -45
  286. package/src/components/grid-column/GridColumn.test.jsx +0 -56
  287. package/src/components/grid-column/GridColumn.tsx +0 -83
  288. package/src/components/grid-column/index.ts +0 -1
  289. package/src/components/heading/Heading.stories.tsx +0 -69
  290. package/src/components/heading/Heading.test.tsx +0 -82
  291. package/src/components/heading/Heading.tsx +0 -65
  292. package/src/components/heading/HeadingLevelProvider.tsx +0 -30
  293. package/src/components/heading/constants.ts +0 -16
  294. package/src/components/heading/context.tsx +0 -13
  295. package/src/components/heading/index.ts +0 -3
  296. package/src/components/heading/useHeadingLevel.tsx +0 -8
  297. package/src/components/icon/Icon.stories.tsx +0 -73
  298. package/src/components/icon/Icon.test.tsx +0 -125
  299. package/src/components/icon/Icon.tsx +0 -133
  300. package/src/components/icon/index.ts +0 -1
  301. package/src/components/image-block/ImageBlock.stories.tsx +0 -117
  302. package/src/components/image-block/ImageBlock.test.tsx +0 -58
  303. package/src/components/image-block/ImageBlock.tsx +0 -142
  304. package/src/components/image-block/ImageCaption.tsx +0 -115
  305. package/src/components/image-block/index.ts +0 -1
  306. package/src/components/image-lightbox/ImageLightbox.stories.tsx +0 -160
  307. package/src/components/image-lightbox/ImageLightbox.test.tsx +0 -254
  308. package/src/components/image-lightbox/ImageLightbox.tsx +0 -90
  309. package/src/components/image-lightbox/constants.ts +0 -11
  310. package/src/components/image-lightbox/index.ts +0 -2
  311. package/src/components/image-lightbox/internal/ImageSlide.tsx +0 -107
  312. package/src/components/image-lightbox/internal/ImageSlideshow.tsx +0 -164
  313. package/src/components/image-lightbox/internal/useAnimateScroll.ts +0 -55
  314. package/src/components/image-lightbox/internal/usePointerZoom.ts +0 -148
  315. package/src/components/image-lightbox/types.ts +0 -48
  316. package/src/components/image-lightbox/useImageLightbox.tsx +0 -141
  317. package/src/components/inline-list/InlineList.stories.tsx +0 -77
  318. package/src/components/inline-list/InlineList.test.tsx +0 -52
  319. package/src/components/inline-list/InlineList.tsx +0 -96
  320. package/src/components/inline-list/index.ts +0 -1
  321. package/src/components/input-helper/InputHelper.stories.tsx +0 -35
  322. package/src/components/input-helper/InputHelper.test.tsx +0 -55
  323. package/src/components/input-helper/InputHelper.tsx +0 -65
  324. package/src/components/input-helper/constants.ts +0 -11
  325. package/src/components/input-helper/index.ts +0 -1
  326. package/src/components/input-label/InputLabel.stories.tsx +0 -45
  327. package/src/components/input-label/InputLabel.test.tsx +0 -59
  328. package/src/components/input-label/InputLabel.tsx +0 -69
  329. package/src/components/input-label/index.ts +0 -1
  330. package/src/components/lightbox/Lightbox.stories.tsx +0 -101
  331. package/src/components/lightbox/Lightbox.test.tsx +0 -53
  332. package/src/components/lightbox/Lightbox.tsx +0 -180
  333. package/src/components/lightbox/index.ts +0 -1
  334. package/src/components/link/Link.stories.tsx +0 -195
  335. package/src/components/link/Link.test.tsx +0 -127
  336. package/src/components/link/Link.tsx +0 -106
  337. package/src/components/link/index.ts +0 -1
  338. package/src/components/link-preview/LinkPreview.stories.tsx +0 -61
  339. package/src/components/link-preview/LinkPreview.test.tsx +0 -105
  340. package/src/components/link-preview/LinkPreview.tsx +0 -158
  341. package/src/components/link-preview/index.ts +0 -1
  342. package/src/components/list/List.stories.tsx +0 -116
  343. package/src/components/list/List.test.tsx +0 -18
  344. package/src/components/list/List.tsx +0 -104
  345. package/src/components/list/ListDivider.stories.tsx +0 -12
  346. package/src/components/list/ListDivider.test.tsx +0 -22
  347. package/src/components/list/ListDivider.tsx +0 -35
  348. package/src/components/list/ListItem.stories.tsx +0 -66
  349. package/src/components/list/ListItem.test.tsx +0 -93
  350. package/src/components/list/ListItem.tsx +0 -157
  351. package/src/components/list/ListSubheader.stories.tsx +0 -11
  352. package/src/components/list/ListSubheader.test.tsx +0 -21
  353. package/src/components/list/ListSubheader.tsx +0 -44
  354. package/src/components/list/index.ts +0 -4
  355. package/src/components/list/useInteractiveList.tsx +0 -202
  356. package/src/components/message/Message.stories.tsx +0 -72
  357. package/src/components/message/Message.test.tsx +0 -76
  358. package/src/components/message/Message.tsx +0 -100
  359. package/src/components/message/index.ts +0 -1
  360. package/src/components/mosaic/Mosaic.stories.tsx +0 -89
  361. package/src/components/mosaic/Mosaic.test.tsx +0 -77
  362. package/src/components/mosaic/Mosaic.tsx +0 -98
  363. package/src/components/mosaic/index.ts +0 -1
  364. package/src/components/navigation/Navigation.stories.tsx +0 -234
  365. package/src/components/navigation/Navigation.test.tsx +0 -65
  366. package/src/components/navigation/Navigation.tsx +0 -79
  367. package/src/components/navigation/NavigationItem.test.tsx +0 -35
  368. package/src/components/navigation/NavigationItem.tsx +0 -82
  369. package/src/components/navigation/NavigationSection.test.tsx +0 -137
  370. package/src/components/navigation/NavigationSection.tsx +0 -108
  371. package/src/components/navigation/context.tsx +0 -7
  372. package/src/components/navigation/index.ts +0 -1
  373. package/src/components/notification/Notification.test.tsx +0 -94
  374. package/src/components/notification/Notification.tsx +0 -138
  375. package/src/components/notification/Notifications.stories.tsx +0 -92
  376. package/src/components/notification/constants.ts +0 -28
  377. package/src/components/notification/index.ts +0 -1
  378. package/src/components/popover/Popover.stories.tsx +0 -264
  379. package/src/components/popover/Popover.test.tsx +0 -62
  380. package/src/components/popover/Popover.tsx +0 -201
  381. package/src/components/popover/constants.ts +0 -62
  382. package/src/components/popover/index.ts +0 -3
  383. package/src/components/popover/usePopoverStyle.tsx +0 -184
  384. package/src/components/popover/useRestoreFocusOnClose.tsx +0 -47
  385. package/src/components/popover-dialog/PopoverDialog.stories.tsx +0 -64
  386. package/src/components/popover-dialog/PopoverDialog.test.tsx +0 -139
  387. package/src/components/popover-dialog/PopoverDialog.tsx +0 -74
  388. package/src/components/popover-dialog/index.tsx +0 -1
  389. package/src/components/post-block/PostBlock.test.tsx +0 -27
  390. package/src/components/post-block/PostBlock.tsx +0 -122
  391. package/src/components/post-block/index.ts +0 -1
  392. package/src/components/progress/Progress.tsx +0 -68
  393. package/src/components/progress/ProgressCircular.stories.tsx +0 -43
  394. package/src/components/progress/ProgressCircular.test.tsx +0 -46
  395. package/src/components/progress/ProgressCircular.tsx +0 -82
  396. package/src/components/progress/ProgressLinear.stories.tsx +0 -12
  397. package/src/components/progress/ProgressLinear.test.tsx +0 -30
  398. package/src/components/progress/ProgressLinear.tsx +0 -50
  399. package/src/components/progress/index.ts +0 -3
  400. package/src/components/progress-tracker/ProgressTracker.stories.tsx +0 -145
  401. package/src/components/progress-tracker/ProgressTracker.test.tsx +0 -42
  402. package/src/components/progress-tracker/ProgressTracker.tsx +0 -87
  403. package/src/components/progress-tracker/ProgressTrackerProvider.test.tsx +0 -65
  404. package/src/components/progress-tracker/ProgressTrackerProvider.tsx +0 -67
  405. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +0 -36
  406. package/src/components/progress-tracker/ProgressTrackerStep.tsx +0 -159
  407. package/src/components/progress-tracker/ProgressTrackerStepPanel.test.tsx +0 -34
  408. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +0 -67
  409. package/src/components/progress-tracker/index.ts +0 -4
  410. package/src/components/radio-button/RadioButton.stories.tsx +0 -71
  411. package/src/components/radio-button/RadioButton.test.tsx +0 -143
  412. package/src/components/radio-button/RadioButton.tsx +0 -143
  413. package/src/components/radio-button/RadioGroup.stories.tsx +0 -39
  414. package/src/components/radio-button/RadioGroup.test.tsx +0 -29
  415. package/src/components/radio-button/RadioGroup.tsx +0 -44
  416. package/src/components/radio-button/index.ts +0 -2
  417. package/src/components/select/Select.stories.tsx +0 -385
  418. package/src/components/select/Select.test.tsx +0 -199
  419. package/src/components/select/Select.tsx +0 -199
  420. package/src/components/select/SelectMultiple.stories.tsx +0 -315
  421. package/src/components/select/SelectMultiple.test.tsx +0 -213
  422. package/src/components/select/SelectMultiple.tsx +0 -206
  423. package/src/components/select/WithSelectContext.tsx +0 -147
  424. package/src/components/select/constants.ts +0 -55
  425. package/src/components/select/index.ts +0 -2
  426. package/src/components/side-navigation/SideNavigation.stories.tsx +0 -191
  427. package/src/components/side-navigation/SideNavigation.test.tsx +0 -37
  428. package/src/components/side-navigation/SideNavigation.tsx +0 -52
  429. package/src/components/side-navigation/SideNavigationItem.stories.tsx +0 -133
  430. package/src/components/side-navigation/SideNavigationItem.test.tsx +0 -136
  431. package/src/components/side-navigation/SideNavigationItem.tsx +0 -165
  432. package/src/components/side-navigation/index.ts +0 -2
  433. package/src/components/skeleton/SkeletonCircle.stories.tsx +0 -41
  434. package/src/components/skeleton/SkeletonCircle.test.tsx +0 -27
  435. package/src/components/skeleton/SkeletonCircle.tsx +0 -52
  436. package/src/components/skeleton/SkeletonRectangle.stories.tsx +0 -82
  437. package/src/components/skeleton/SkeletonRectangle.test.tsx +0 -27
  438. package/src/components/skeleton/SkeletonRectangle.tsx +0 -88
  439. package/src/components/skeleton/SkeletonTypography.stories.tsx +0 -19
  440. package/src/components/skeleton/SkeletonTypography.test.tsx +0 -27
  441. package/src/components/skeleton/SkeletonTypography.tsx +0 -59
  442. package/src/components/skeleton/index.ts +0 -3
  443. package/src/components/slider/Slider.stories.tsx +0 -45
  444. package/src/components/slider/Slider.test.tsx +0 -29
  445. package/src/components/slider/Slider.tsx +0 -299
  446. package/src/components/slider/index.ts +0 -2
  447. package/src/components/slideshow/Slides.tsx +0 -130
  448. package/src/components/slideshow/Slideshow.stories.tsx +0 -179
  449. package/src/components/slideshow/Slideshow.test.tsx +0 -35
  450. package/src/components/slideshow/Slideshow.tsx +0 -173
  451. package/src/components/slideshow/SlideshowControls.stories.tsx +0 -100
  452. package/src/components/slideshow/SlideshowControls.tsx +0 -243
  453. package/src/components/slideshow/SlideshowItem.tsx +0 -44
  454. package/src/components/slideshow/SlideshowItemGroup.tsx +0 -60
  455. package/src/components/slideshow/constants.ts +0 -24
  456. package/src/components/slideshow/index.ts +0 -4
  457. package/src/components/slideshow/useKeyNavigate.ts +0 -28
  458. package/src/components/slideshow/usePaginationVisibleRange.ts +0 -37
  459. package/src/components/slideshow/useSlideFocusManagement.tsx +0 -92
  460. package/src/components/slideshow/useSwipeNavigate.ts +0 -18
  461. package/src/components/switch/Switch.stories.tsx +0 -49
  462. package/src/components/switch/Switch.test.tsx +0 -144
  463. package/src/components/switch/Switch.tsx +0 -145
  464. package/src/components/switch/index.ts +0 -1
  465. package/src/components/table/Table.test.tsx +0 -29
  466. package/src/components/table/Table.tsx +0 -59
  467. package/src/components/table/TableBody.test.tsx +0 -30
  468. package/src/components/table/TableBody.tsx +0 -42
  469. package/src/components/table/TableCell.test.tsx +0 -72
  470. package/src/components/table/TableCell.tsx +0 -130
  471. package/src/components/table/TableHeader.test.tsx +0 -30
  472. package/src/components/table/TableHeader.tsx +0 -48
  473. package/src/components/table/TableRow.test.tsx +0 -40
  474. package/src/components/table/TableRow.tsx +0 -71
  475. package/src/components/table/index.ts +0 -5
  476. package/src/components/tabs/Tab.test.tsx +0 -50
  477. package/src/components/tabs/Tab.tsx +0 -133
  478. package/src/components/tabs/TabList.test.tsx +0 -49
  479. package/src/components/tabs/TabList.tsx +0 -94
  480. package/src/components/tabs/TabPanel.test.tsx +0 -37
  481. package/src/components/tabs/TabPanel.tsx +0 -67
  482. package/src/components/tabs/TabProvider.test.tsx +0 -161
  483. package/src/components/tabs/TabProvider.tsx +0 -67
  484. package/src/components/tabs/Tabs.stories.tsx +0 -170
  485. package/src/components/tabs/index.ts +0 -4
  486. package/src/components/tabs/state.ts +0 -114
  487. package/src/components/tabs/test-utils.ts +0 -39
  488. package/src/components/text/Text.stories.tsx +0 -177
  489. package/src/components/text/Text.test.tsx +0 -92
  490. package/src/components/text/Text.tsx +0 -139
  491. package/src/components/text/index.ts +0 -1
  492. package/src/components/text-field/TextField.stories.tsx +0 -180
  493. package/src/components/text-field/TextField.test.tsx +0 -298
  494. package/src/components/text-field/TextField.tsx +0 -493
  495. package/src/components/text-field/index.ts +0 -1
  496. package/src/components/thumbnail/Thumbnail.stories.tsx +0 -448
  497. package/src/components/thumbnail/Thumbnail.test.tsx +0 -88
  498. package/src/components/thumbnail/Thumbnail.tsx +0 -248
  499. package/src/components/thumbnail/index.ts +0 -3
  500. package/src/components/thumbnail/types.ts +0 -48
  501. package/src/components/thumbnail/useFocusPointStyle.test.ts +0 -92
  502. package/src/components/thumbnail/useFocusPointStyle.tsx +0 -107
  503. package/src/components/thumbnail/useImageLoad.ts +0 -40
  504. package/src/components/toolbar/Toolbar.tsx +0 -68
  505. package/src/components/toolbar/index.ts +0 -1
  506. package/src/components/tooltip/Tooltip.stories.tsx +0 -118
  507. package/src/components/tooltip/Tooltip.test.tsx +0 -417
  508. package/src/components/tooltip/Tooltip.tsx +0 -165
  509. package/src/components/tooltip/constants.ts +0 -8
  510. package/src/components/tooltip/context.tsx +0 -17
  511. package/src/components/tooltip/index.ts +0 -1
  512. package/src/components/tooltip/useInjectTooltipRef.tsx +0 -55
  513. package/src/components/tooltip/useTooltipOpen.tsx +0 -143
  514. package/src/components/uploader/Uploader.stories.tsx +0 -109
  515. package/src/components/uploader/Uploader.test.tsx +0 -146
  516. package/src/components/uploader/Uploader.tsx +0 -177
  517. package/src/components/uploader/index.ts +0 -1
  518. package/src/components/user-block/UserBlock.stories.tsx +0 -133
  519. package/src/components/user-block/UserBlock.test.tsx +0 -106
  520. package/src/components/user-block/UserBlock.tsx +0 -193
  521. package/src/components/user-block/index.ts +0 -1
  522. package/src/constants.ts +0 -27
  523. package/src/hooks/useBooleanState.tsx +0 -13
  524. package/src/hooks/useCallbackOnEscape.ts +0 -34
  525. package/src/hooks/useChipGroupNavigation.tsx +0 -75
  526. package/src/hooks/useClickAway.tsx +0 -48
  527. package/src/hooks/useDisableBodyScroll.ts +0 -28
  528. package/src/hooks/useEventCallback.tsx +0 -17
  529. package/src/hooks/useFocus.tsx +0 -21
  530. package/src/hooks/useFocusTrap.ts +0 -93
  531. package/src/hooks/useFocusWithin.ts +0 -33
  532. package/src/hooks/useId.test.tsx +0 -22
  533. package/src/hooks/useId.ts +0 -15
  534. package/src/hooks/useImageSize.ts +0 -17
  535. package/src/hooks/useInfiniteScroll.tsx +0 -60
  536. package/src/hooks/useIntersectionObserver.tsx +0 -43
  537. package/src/hooks/useInterval.tsx +0 -31
  538. package/src/hooks/useKeyboardListNavigation.tsx +0 -204
  539. package/src/hooks/useListenFocus.tsx +0 -26
  540. package/src/hooks/useOverflowTooltipLabel.tsx +0 -32
  541. package/src/hooks/usePopper.ts +0 -12
  542. package/src/hooks/usePreviousValue.ts +0 -12
  543. package/src/hooks/useRovingTabIndex.tsx +0 -90
  544. package/src/hooks/useSizeOnWindowResize.ts +0 -30
  545. package/src/hooks/useSlideshowControls.ts +0 -246
  546. package/src/hooks/useStopPropagation.ts +0 -21
  547. package/src/hooks/useTransitionVisibility.ts +0 -48
  548. package/src/index.ts +0 -63
  549. package/src/stories/controls/color.ts +0 -7
  550. package/src/stories/controls/element.ts +0 -6
  551. package/src/stories/controls/focusPoint.ts +0 -1
  552. package/src/stories/controls/icons.ts +0 -126
  553. package/src/stories/controls/image.ts +0 -84
  554. package/src/stories/controls/selectArgType.ts +0 -8
  555. package/src/stories/controls/theme.ts +0 -3
  556. package/src/stories/controls/typography.ts +0 -5
  557. package/src/stories/controls/withUndefined.ts +0 -1
  558. package/src/stories/decorators/withChromaticForceScreenSize.tsx +0 -7
  559. package/src/stories/decorators/withCombinations.tsx +0 -132
  560. package/src/stories/decorators/withNestedProps.tsx +0 -22
  561. package/src/stories/decorators/withResizableBox.tsx +0 -21
  562. package/src/stories/decorators/withThemedBackground.tsx +0 -16
  563. package/src/stories/decorators/withValueOnChange.tsx +0 -18
  564. package/src/stories/decorators/withWrapper.tsx +0 -19
  565. package/src/stories/generated/Autocomplete/Demos.stories.tsx +0 -7
  566. package/src/stories/generated/Avatar/Demos.stories.tsx +0 -7
  567. package/src/stories/generated/Badge/Demos.stories.tsx +0 -9
  568. package/src/stories/generated/Button/Demos.stories.tsx +0 -11
  569. package/src/stories/generated/Checkbox/Demos.stories.tsx +0 -6
  570. package/src/stories/generated/Chip/Demos.stories.tsx +0 -11
  571. package/src/stories/generated/CommentBlock/Demos.stories.tsx +0 -8
  572. package/src/stories/generated/DatePicker/Demos.stories.tsx +0 -8
  573. package/src/stories/generated/Dialog/Demos.stories.tsx +0 -10
  574. package/src/stories/generated/Divider/Demos.stories.tsx +0 -6
  575. package/src/stories/generated/Dropdown/Demos.stories.tsx +0 -8
  576. package/src/stories/generated/ExpansionPanel/Demos.stories.tsx +0 -9
  577. package/src/stories/generated/Flag/Demos.stories.tsx +0 -6
  578. package/src/stories/generated/GenericBlock/Demos.stories.tsx +0 -8
  579. package/src/stories/generated/Heading/Demos.stories.tsx +0 -6
  580. package/src/stories/generated/Icon/Demos.stories.tsx +0 -8
  581. package/src/stories/generated/ImageBlock/Demos.stories.tsx +0 -9
  582. package/src/stories/generated/ImageLightbox/Demos.stories.tsx +0 -6
  583. package/src/stories/generated/Lightbox/Demos.stories.tsx +0 -6
  584. package/src/stories/generated/LinkPreview/Demos.stories.tsx +0 -7
  585. package/src/stories/generated/List/Demos.stories.tsx +0 -11
  586. package/src/stories/generated/Message/Demos.stories.tsx +0 -11
  587. package/src/stories/generated/Mosaic/Demos.stories.tsx +0 -10
  588. package/src/stories/generated/Notification/Demos.stories.tsx +0 -6
  589. package/src/stories/generated/Popover/Demos.stories.tsx +0 -11
  590. package/src/stories/generated/PopoverDialog/Demos.stories.tsx +0 -6
  591. package/src/stories/generated/PostBlock/Demos.stories.tsx +0 -6
  592. package/src/stories/generated/Progress/Demos.stories.tsx +0 -7
  593. package/src/stories/generated/ProgressTracker/Demos.stories.tsx +0 -9
  594. package/src/stories/generated/RadioButton/Demos.stories.tsx +0 -6
  595. package/src/stories/generated/Select/Demos.stories.tsx +0 -14
  596. package/src/stories/generated/SideNavigation/Demos.stories.tsx +0 -10
  597. package/src/stories/generated/Skeleton/Demos.stories.tsx +0 -9
  598. package/src/stories/generated/Slider/Demos.stories.tsx +0 -9
  599. package/src/stories/generated/Slideshow/Demos.stories.tsx +0 -8
  600. package/src/stories/generated/Switch/Demos.stories.tsx +0 -6
  601. package/src/stories/generated/Table/Demos.stories.tsx +0 -7
  602. package/src/stories/generated/Tabs/Demos.stories.tsx +0 -8
  603. package/src/stories/generated/TextField/Demos.stories.tsx +0 -20
  604. package/src/stories/generated/Thumbnail/Demos.stories.tsx +0 -12
  605. package/src/stories/generated/Toolbar/Demos.stories.tsx +0 -10
  606. package/src/stories/generated/Tooltip/Demos.stories.tsx +0 -8
  607. package/src/stories/generated/Uploader/Demos.stories.tsx +0 -8
  608. package/src/stories/generated/UserBlock/Demos.stories.tsx +0 -11
  609. package/src/stories/utils/CustomLink.tsx +0 -12
  610. package/src/stories/utils/concatPath.tsx +0 -17
  611. package/src/stories/utils/disableArgTypes.ts +0 -3
  612. package/src/stories/utils/initDemoShadowDOMPortal.ts +0 -10
  613. package/src/stories/utils/lorem.ts +0 -59
  614. package/src/stories/utils/theming.tsx +0 -166
  615. package/src/stories/utils/toFlattenProps.ts +0 -28
  616. package/src/stories/utils/withCategory.ts +0 -12
  617. package/src/testing/utils/ThemeSentinel.tsx +0 -10
  618. package/src/testing/utils/commonTestsSuiteRTL.tsx +0 -193
  619. package/src/testing/utils/index.ts +0 -1
  620. package/src/testing/utils/queries.ts +0 -19
  621. package/src/untypped-modules.d.ts +0 -9
  622. package/src/utils/ClickAwayProvider/ClickAwayProvider.stories.jsx +0 -70
  623. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +0 -69
  624. package/src/utils/ClickAwayProvider/index.ts +0 -1
  625. package/src/utils/MaterialThemeSwitcher/MaterialThemeSwitcher.tsx +0 -54
  626. package/src/utils/MaterialThemeSwitcher/index.ts +0 -1
  627. package/src/utils/Portal/Portal.test.tsx +0 -31
  628. package/src/utils/Portal/Portal.tsx +0 -33
  629. package/src/utils/Portal/PortalProvider.stories.jsx +0 -22
  630. package/src/utils/Portal/PortalProvider.test.tsx +0 -72
  631. package/src/utils/Portal/PortalProvider.tsx +0 -24
  632. package/src/utils/Portal/index.tsx +0 -2
  633. package/src/utils/browser/DOM/findImage.tsx +0 -3
  634. package/src/utils/browser/DOM/startViewTransition.ts +0 -68
  635. package/src/utils/browser/focus/constants.ts +0 -7
  636. package/src/utils/browser/focus/getFirstAndLastFocusable.test.ts +0 -134
  637. package/src/utils/browser/focus/getFirstAndLastFocusable.ts +0 -21
  638. package/src/utils/browser/focus/getFocusableElements.test.ts +0 -151
  639. package/src/utils/browser/focus/getFocusableElements.ts +0 -7
  640. package/src/utils/browser/isFocusVisible.ts +0 -9
  641. package/src/utils/browser/isHoverNotSupported.test.js +0 -24
  642. package/src/utils/browser/isHoverNotSupported.ts +0 -2
  643. package/src/utils/browser/isReducedMotion.ts +0 -6
  644. package/src/utils/date/addMonthResetDay.test.ts +0 -13
  645. package/src/utils/date/addMonthResetDay.ts +0 -9
  646. package/src/utils/date/formatDayNumber.test.ts +0 -12
  647. package/src/utils/date/formatDayNumber.ts +0 -5
  648. package/src/utils/date/getFirstDayOfWeek.test.ts +0 -20
  649. package/src/utils/date/getFirstDayOfWeek.ts +0 -59
  650. package/src/utils/date/getMonthCalendar.test.ts +0 -127
  651. package/src/utils/date/getMonthCalendar.ts +0 -69
  652. package/src/utils/date/getWeekDays.test.ts +0 -48
  653. package/src/utils/date/getWeekDays.ts +0 -34
  654. package/src/utils/date/getYearDisplayName.test.ts +0 -20
  655. package/src/utils/date/getYearDisplayName.ts +0 -12
  656. package/src/utils/date/isDateValid.test.ts +0 -15
  657. package/src/utils/date/isDateValid.ts +0 -4
  658. package/src/utils/date/isSameDay.test.ts +0 -37
  659. package/src/utils/date/isSameDay.ts +0 -11
  660. package/src/utils/disabled/DisabledStateContext.tsx +0 -29
  661. package/src/utils/disabled/DisabledStateProvider.stories.tsx +0 -92
  662. package/src/utils/disabled/index.ts +0 -2
  663. package/src/utils/disabled/useDisableStateProps.test.tsx +0 -74
  664. package/src/utils/disabled/useDisableStateProps.tsx +0 -37
  665. package/src/utils/function/makeListenerTowerContext.ts +0 -32
  666. package/src/utils/index.ts +0 -7
  667. package/src/utils/locale/getCurrentLocale.ts +0 -4
  668. package/src/utils/locale/parseLocale.test.ts +0 -17
  669. package/src/utils/locale/parseLocale.ts +0 -23
  670. package/src/utils/locale/types.ts +0 -8
  671. package/src/utils/number/clamp.ts +0 -17
  672. package/src/utils/object/isEqual.test.ts +0 -25
  673. package/src/utils/object/isEqual.ts +0 -11
  674. package/src/utils/partitionMulti.test.ts +0 -27
  675. package/src/utils/react/OnBeforeUnmount.tsx +0 -20
  676. package/src/utils/react/RawClickable.test.tsx +0 -153
  677. package/src/utils/react/RawClickable.tsx +0 -65
  678. package/src/utils/react/flattenChildren.ts +0 -32
  679. package/src/utils/react/forwardRef.ts +0 -11
  680. package/src/utils/react/forwardRefPolymorphic.ts +0 -9
  681. package/src/utils/react/mergeRefs.ts +0 -33
  682. package/src/utils/react/renderLink.tsx +0 -17
  683. package/src/utils/react/skipRender.tsx +0 -18
  684. package/src/utils/react/unref.ts +0 -7
  685. package/src/utils/react/wrapChildrenIconWithSpaces.test.tsx +0 -37
  686. package/src/utils/react/wrapChildrenIconWithSpaces.tsx +0 -22
  687. package/src/utils/theme/ThemeContext.ts +0 -16
  688. package/src/utils/theme/invertTheme.ts +0 -4
  689. package/src/utils/type/Comp.ts +0 -14
  690. package/src/utils/type/ComponentRef.ts +0 -16
  691. package/src/utils/type/HasAriaDisabled.ts +0 -6
  692. package/src/utils/type/HasPolymorphicAs.ts +0 -6
  693. package/src/utils/type/HasRequiredLinkHref.ts +0 -1
  694. package/src/utils/type/MaybeElementOrRef.ts +0 -6
  695. package/src/utils/type/index.ts +0 -9
  696. package/src/utils/type/isComponent.ts +0 -33
  697. package/src/utils/type/isComponentType.ts +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-lightbox-4a5ab962.js","sources":["../../../src/components/image-lightbox/constants.ts","../../../src/hooks/useSizeOnWindowResize.ts","../../../src/hooks/useImageSize.ts","../../../src/utils/object/isEqual.ts","../../../src/components/image-lightbox/internal/usePointerZoom.ts","../../../src/components/image-lightbox/internal/useAnimateScroll.ts","../../../src/components/image-lightbox/internal/ImageSlide.tsx","../../../src/components/image-lightbox/internal/ImageSlideshow.tsx","../../../src/utils/react/unref.ts","../../../src/utils/browser/DOM/startViewTransition.ts","../../../src/utils/browser/DOM/findImage.tsx","../../../src/components/image-lightbox/useImageLightbox.tsx","../../../src/components/image-lightbox/ImageLightbox.tsx"],"sourcesContent":["import { getRootClassName } from '@lumx/core/js/utils/className';\n\n/**\n * Component display name.\n */\nexport const COMPONENT_NAME = 'ImageLightbox';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n","import React from 'react';\n\nimport throttle from 'lodash/throttle';\nimport { RectSize } from '@lumx/react/utils/type';\n\n/**\n * Observe element size (only works if it's size depends on the window size).\n *\n * (Not using ResizeObserver for better browser backward compat)\n *\n * @param elementRef Element to observe\n * @return the size and a manual update callback\n */\nexport function useSizeOnWindowResize(elementRef: React.RefObject<HTMLElement>): [RectSize | null, () => void] {\n const [size, setSize] = React.useState<null | RectSize>(null);\n const updateSize = React.useMemo(\n () =>\n throttle(() => {\n const newSize = elementRef.current?.getBoundingClientRect();\n if (newSize) setSize(newSize);\n }, 10),\n [elementRef],\n );\n React.useEffect(() => {\n updateSize();\n window.addEventListener('resize', updateSize);\n return () => window.removeEventListener('resize', updateSize);\n }, [updateSize]);\n return [size, updateSize];\n}\n","import React from 'react';\nimport { RectSize } from '@lumx/react/utils/type';\n\n/** Get natural image size after load. */\nexport function useImageSize(imgRef: React.RefObject<HTMLImageElement>, getInitialSize?: () => RectSize | null) {\n const [imageSize, setImageSize] = React.useState<null | RectSize>(getInitialSize || null);\n React.useEffect(() => {\n const { current: img } = imgRef;\n if (!img) {\n return undefined;\n }\n const onLoad = () => setImageSize({ width: img.naturalWidth, height: img.naturalHeight });\n img.addEventListener('load', onLoad);\n return () => img.removeEventListener('load', onLoad);\n }, [imgRef]);\n return imageSize;\n}\n","/** Minimal recursive deep equal of JS values */\nexport function isEqual(obj1: any, obj2: any): boolean {\n if (obj1 === obj2) return true;\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) return false;\n return keys1.every((key1) => isEqual(obj1[key1], obj2[key1]));\n }\n return false;\n}\n","import React from 'react';\nimport type { Point } from '@lumx/react/utils/type';\nimport type { useAnimateScroll } from './useAnimateScroll';\n\n/**\n * Listen to mouse wheel + ctrl and multi-pointer pinch to zoom\n */\nexport function usePointerZoom(\n scrollAreaRef: React.RefObject<HTMLDivElement>,\n onScaleChange: ((value: number) => void) | undefined,\n animateScroll: ReturnType<typeof useAnimateScroll>,\n) {\n const [isPointerZooming, setPointerZooming] = React.useState(false);\n React.useEffect(() => {\n const scrollArea = scrollAreaRef.current as HTMLDivElement;\n if (!scrollArea || !onScaleChange) {\n return undefined;\n }\n\n let animationFrame: number | null;\n let zoomStateTimeoutId: ReturnType<typeof setTimeout> | null;\n\n function updateScaleOnNextFrame(newScale: number, mousePosition: Point): void {\n // Cancel previously scheduled frame\n if (animationFrame) cancelAnimationFrame(animationFrame);\n\n // Cancel previously scheduled zoom state change\n if (zoomStateTimeoutId) clearTimeout(zoomStateTimeoutId);\n\n function nextFrame() {\n setPointerZooming(true);\n onScaleChange?.(newScale);\n\n animationFrame = null;\n // Wait a bit before indicating the pointer zooming is finished\n zoomStateTimeoutId = setTimeout(() => setPointerZooming(false), 100);\n }\n animationFrame = requestAnimationFrame(nextFrame);\n\n // Animate scroll in parallel (centering on the current mouse position)\n animateScroll(mousePosition, {\n width: scrollArea.scrollWidth,\n height: scrollArea.scrollHeight,\n });\n }\n\n function onWheel(event: WheelEvent) {\n if (!event.ctrlKey) {\n return;\n }\n event.preventDefault();\n const newScale = Math.exp(-event.deltaY / 50);\n\n // Update scale on next frame (focused on the mouse position)\n updateScaleOnNextFrame(newScale, {\n x: event.clientX,\n y: event.clientY,\n });\n }\n\n const activePointers: Record<PointerEvent['pointerId'], PointerEvent> = {};\n let prevDistance: number | null = null;\n let previousCenterPoint: Point | null = null;\n\n function onPointerDown(event: PointerEvent) {\n activePointers[event.pointerId] = event;\n }\n function onPointerMove(event: PointerEvent) {\n // Update pointer in cache\n if (activePointers[event.pointerId]) {\n activePointers[event.pointerId] = event;\n }\n\n const pointers = Object.values(activePointers);\n\n // Make sure we run computation on one of the pointer in the group\n if (pointers[0]?.pointerId !== event.pointerId) {\n return;\n }\n\n // Centered point between all pointers\n const centerPoint: Point = {\n x: pointers.reduce((x, { clientX }) => x + clientX, 0) / pointers.length,\n y: pointers.reduce((y, { clientY }) => y + clientY, 0) / pointers.length,\n };\n\n // Movement of the center point\n const deltaCenterPoint = previousCenterPoint && {\n left: previousCenterPoint.x - centerPoint.x,\n top: previousCenterPoint.y - centerPoint.y,\n };\n\n // Pan X & Y\n if (deltaCenterPoint) {\n // Apply movement of the center point to the scroll\n scrollArea.scrollBy({\n top: deltaCenterPoint.top / 2,\n left: deltaCenterPoint.left / 2,\n });\n }\n\n // Pinch to zoom\n if (pointers.length === 2) {\n const [pointer1, pointer2] = pointers;\n const distance = Math.hypot(pointer2.clientX - pointer1.clientX, pointer2.clientY - pointer1.clientY);\n\n if (prevDistance && deltaCenterPoint) {\n const delta = prevDistance - distance;\n const absDelta = Math.abs(delta);\n\n // Zoom only if we are \"pinching\" more than we are moving the pointers\n if (absDelta > Math.abs(deltaCenterPoint.left) && absDelta > Math.abs(deltaCenterPoint.top)) {\n // Update scale on next frame (focused on the center point between the two pointers)\n const newScale = Math.exp(-delta / 100);\n updateScaleOnNextFrame(newScale, centerPoint);\n }\n }\n\n prevDistance = distance;\n }\n\n previousCenterPoint = centerPoint;\n }\n function onPointerUp(event: PointerEvent) {\n prevDistance = null;\n previousCenterPoint = null;\n delete activePointers[event.pointerId];\n }\n\n scrollArea.addEventListener('wheel', onWheel, { passive: false });\n const isMultiTouch = navigator.maxTouchPoints >= 2;\n if (isMultiTouch) {\n scrollArea.addEventListener('pointerdown', onPointerDown);\n scrollArea.addEventListener('pointermove', onPointerMove);\n scrollArea.addEventListener('pointerup', onPointerUp);\n }\n return () => {\n scrollArea.removeEventListener('wheel', onWheel);\n if (isMultiTouch) {\n scrollArea.removeEventListener('pointerdown', onPointerDown);\n scrollArea.removeEventListener('pointermove', onPointerMove);\n scrollArea.removeEventListener('pointerup', onPointerUp);\n }\n };\n }, [animateScroll, onScaleChange, scrollAreaRef]);\n\n return isPointerZooming;\n}\n","import React from 'react';\nimport type { Point, RectSize } from '@lumx/react/utils/type';\n\n/** Maintains the scroll position centered relative to the original scroll area's dimensions when the content scales. */\nexport function useAnimateScroll(scrollAreaRef: React.RefObject<HTMLDivElement>) {\n return React.useMemo(() => {\n let animationFrame: number | null = null;\n\n return function animate(centerPoint?: Point, initialScrollAreaSize?: RectSize) {\n const scrollArea = scrollAreaRef.current as HTMLDivElement;\n if (!scrollArea) {\n return;\n }\n\n // Cancel previously running animation\n if (animationFrame) cancelAnimationFrame(animationFrame);\n\n // Center on the given point or else on the scroll area visual center\n const clientHeightRatio = centerPoint?.y ? centerPoint.y / scrollArea.clientHeight : 0.5;\n const clientWidthRatio = centerPoint?.x ? centerPoint.x / scrollArea.clientWidth : 0.5;\n\n const initialScrollHeight = initialScrollAreaSize?.height || scrollArea.scrollHeight;\n const initialScrollWidth = initialScrollAreaSize?.width || scrollArea.scrollWidth;\n\n const heightCenter = scrollArea.scrollTop + scrollArea.clientHeight * clientHeightRatio;\n const heightRatio = heightCenter / initialScrollHeight;\n\n const widthCenter = scrollArea.scrollLeft + scrollArea.clientWidth * clientWidthRatio;\n const widthRatio = widthCenter / initialScrollWidth;\n\n let prevScrollHeight = 0;\n let prevScrollWidth = 0;\n\n function nextFrame() {\n const { scrollHeight, scrollWidth, clientHeight, clientWidth } = scrollArea;\n\n // Scroll area stopped expanding => stop animation\n if (scrollHeight === prevScrollHeight && scrollWidth === prevScrollWidth) {\n animationFrame = null;\n return;\n }\n\n // Compute next scroll position\n const top = heightRatio * scrollHeight - clientHeight * clientHeightRatio;\n const left = widthRatio * scrollWidth - clientWidth * clientWidthRatio;\n\n scrollArea.scrollTo({ top, left });\n prevScrollHeight = scrollHeight;\n prevScrollWidth = scrollWidth;\n animationFrame = requestAnimationFrame(nextFrame);\n }\n animationFrame = requestAnimationFrame(nextFrame);\n };\n }, [scrollAreaRef]);\n}\n","import React from 'react';\n\nimport { SlideshowItem, Thumbnail } from '@lumx/react';\nimport { useMergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { useSizeOnWindowResize } from '@lumx/react/hooks/useSizeOnWindowResize';\nimport { useImageSize } from '@lumx/react/hooks/useImageSize';\nimport { isReducedMotion } from '@lumx/react/utils/browser/isReducedMotion';\nimport { isEqual } from '@lumx/react/utils/object/isEqual';\n\nimport { CLASSNAME } from '../constants';\nimport { usePointerZoom } from './usePointerZoom';\nimport { useAnimateScroll } from './useAnimateScroll';\nimport type { ImageProps } from '../types';\n\nexport interface ImageSlideProps {\n image: ImageProps;\n isActive?: boolean;\n scale?: number;\n onScaleChange?: (value: number) => void;\n}\n\n/** Internal image slide component for ImageLightbox */\nexport const ImageSlide = React.memo((props: ImageSlideProps) => {\n const {\n isActive,\n scale,\n onScaleChange,\n image: { image, imgRef: propImgRef, imgProps, alt, loadingPlaceholderImageRef },\n } = props;\n\n // Get scroll area size\n const scrollAreaRef = React.useRef<HTMLDivElement>(null);\n const [scrollAreaSize, updateSize] = useSizeOnWindowResize(scrollAreaRef);\n React.useEffect(() => {\n // Update size when active\n if (isActive) updateSize();\n }, [isActive, updateSize]);\n\n // Get image size\n const imgRef = React.useRef<HTMLImageElement>(null);\n const imageSize = useImageSize(imgRef, () => {\n const width = Number.parseInt(imgProps?.width as any, 10);\n const height = Number.parseInt(imgProps?.height as any, 10);\n return width && height ? { width, height } : null;\n });\n\n // Calculate new image size with scale\n const scaledImageSize = React.useMemo(() => {\n if (!scrollAreaSize || !imageSize) {\n return null;\n }\n const horizontalScale = scrollAreaSize.width / imageSize.width;\n const verticalScale = scrollAreaSize.height / imageSize.height;\n const baseScale = Math.min(1, Math.min(horizontalScale, verticalScale));\n return {\n width: imageSize.width * baseScale * (scale ?? 1),\n height: imageSize.height * baseScale * (scale ?? 1),\n };\n }, [scrollAreaSize, imageSize, scale]);\n\n // Animate scroll to preserve the center of the current visible window in the scroll area\n const animateScroll = useAnimateScroll(scrollAreaRef);\n\n // Zoom via mouse wheel or multi-touch pinch zoom\n const isPointerZooming = usePointerZoom(scrollAreaRef, onScaleChange, animateScroll);\n\n // Animate scroll on scale change\n React.useLayoutEffect(() => {\n if (scale && !isPointerZooming) {\n animateScroll();\n }\n }, [isPointerZooming, scale, animateScroll]);\n\n const isScrollable =\n scaledImageSize &&\n scrollAreaSize &&\n (scaledImageSize.width > scrollAreaSize.width || scaledImageSize.height > scrollAreaSize.height);\n\n return (\n <SlideshowItem\n ref={scrollAreaRef}\n // Make it accessible to keyboard nav when the zone is scrollable\n tabIndex={isScrollable ? 0 : undefined}\n className={`${CLASSNAME}__image-slide`}\n >\n <Thumbnail\n imgRef={useMergeRefs(imgRef, propImgRef)}\n image={image}\n alt={alt}\n className={`${CLASSNAME}__thumbnail`}\n imgProps={{\n ...imgProps,\n style: {\n ...imgProps?.style,\n ...(scaledImageSize || {\n maxHeight: scrollAreaSize?.height,\n maxWidth: scrollAreaSize?.width,\n }),\n // Only animate when scale is set, and we are not pointer zooming and the user does not prefer reduced motion\n transition: scale && !isPointerZooming && !isReducedMotion() ? 'all 250ms' : undefined,\n },\n }}\n loadingPlaceholderImageRef={loadingPlaceholderImageRef}\n />\n </SlideshowItem>\n );\n}, isEqual);\n","import React from 'react';\n\nimport { mdiMagnifyMinusOutline, mdiMagnifyPlusOutline } from '@lumx/icons';\nimport { FlexBox, IconButton, Slides, SlideshowControls } from '@lumx/react';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\n\nimport memoize from 'lodash/memoize';\nimport { ImageCaption } from '../../image-block/ImageCaption';\nimport { CLASSNAME } from '../constants';\nimport type { ImagesProps, InheritedSlideShowProps, ZoomButtonProps } from '../types';\nimport { ImageSlide } from './ImageSlide';\n\nexport interface ImageSlideshowProps extends InheritedSlideShowProps, ZoomButtonProps, ImagesProps {\n currentPaginationItemRef?: React.Ref<HTMLButtonElement>;\n footerRef?: React.Ref<HTMLDivElement>;\n}\n\n/** Internal image slideshow component for ImageLightbox */\nexport const ImageSlideshow: React.FC<ImageSlideshowProps> = ({\n activeImageIndex,\n images,\n slideGroupLabel,\n zoomInButtonProps,\n zoomOutButtonProps,\n slideshowControlsProps,\n currentPaginationItemRef,\n footerRef,\n activeImageRef,\n}) => {\n const {\n activeIndex,\n slideshowId,\n setSlideshow,\n slideshowSlidesId,\n slidesCount,\n onNextClick,\n onPaginationClick,\n onPreviousClick,\n toggleAutoPlay,\n } = SlideshowControls.useSlideshowControls({\n itemsCount: images.length,\n activeIndex: activeImageIndex,\n });\n\n // Image metadata (caption)\n const title = images[activeIndex]?.title;\n const description = images[activeIndex]?.description;\n const tags = images[activeIndex]?.tags;\n const metadata =\n title || description || tags ? (\n <ImageCaption as=\"div\" title={title} description={description} tags={tags} align=\"center\" />\n ) : null;\n\n // Slideshow controls\n const slideShowControls =\n slidesCount > 1 && slideshowControlsProps ? (\n <SlideshowControls\n activeIndex={activeIndex}\n slidesCount={slidesCount}\n onNextClick={onNextClick}\n onPreviousClick={onPreviousClick}\n onPaginationClick={onPaginationClick}\n {...slideshowControlsProps}\n paginationItemProps={(index: number) => {\n const props = slideshowControlsProps?.paginationItemProps?.(index) || {};\n return {\n ...props,\n ref: mergeRefs(\n (props as any)?.ref,\n // Focus the active pagination item once on mount\n activeIndex === index ? currentPaginationItemRef : undefined,\n ),\n };\n }}\n />\n ) : null;\n\n // Zoom controls\n const [scale, setScale] = React.useState<number | undefined>(undefined);\n const zoomEnabled = zoomInButtonProps && zoomOutButtonProps;\n const onScaleChange = React.useMemo(() => {\n if (!zoomEnabled) return undefined;\n return (newScale: number) => {\n setScale((prevScale = 1) => Math.max(1, newScale * prevScale));\n };\n }, [zoomEnabled]);\n const zoomIn = React.useCallback(() => onScaleChange?.(1.5), [onScaleChange]);\n const zoomOut = React.useCallback(() => onScaleChange?.(0.5), [onScaleChange]);\n React.useEffect(() => {\n // Reset scale on slide change\n if (typeof activeIndex === 'number') setScale(undefined);\n }, [activeIndex]);\n const zoomControls = zoomEnabled && (\n <>\n <IconButton {...zoomInButtonProps} emphasis=\"low\" icon={mdiMagnifyPlusOutline} onClick={zoomIn} />\n <IconButton\n {...zoomOutButtonProps}\n emphasis=\"low\"\n isDisabled={!scale || scale <= 1}\n icon={mdiMagnifyMinusOutline}\n onClick={zoomOut}\n />\n </>\n );\n\n const getImgRef = React.useMemo(\n () =>\n memoize(\n (index: number, isActive: boolean) => {\n return mergeRefs(images?.[index].imgRef, isActive ? activeImageRef : undefined);\n },\n // memoize based on both arguments\n (...args) => args.join(),\n ),\n [images, activeImageRef],\n );\n\n return (\n <>\n <Slides\n activeIndex={activeIndex}\n slideGroupLabel={slideGroupLabel}\n fillHeight\n id={slideshowId}\n ref={setSlideshow}\n slidesId={slideshowSlidesId}\n toggleAutoPlay={toggleAutoPlay}\n >\n {images.map(({ image, imgRef, ...imageProps }, index) => {\n const isActive = index === activeIndex;\n return (\n <ImageSlide\n isActive={isActive}\n key={image}\n image={{\n ...imageProps,\n image,\n imgRef: getImgRef(index, isActive),\n }}\n scale={isActive ? scale : undefined}\n onScaleChange={onScaleChange}\n />\n );\n })}\n </Slides>\n {(metadata || slideShowControls || zoomControls) && (\n <FlexBox\n ref={footerRef}\n className={`${CLASSNAME}__footer`}\n orientation=\"vertical\"\n vAlign=\"center\"\n gap=\"big\"\n >\n {metadata}\n\n <FlexBox className={`${CLASSNAME}__footer-actions`} orientation=\"horizontal\" gap=\"regular\">\n {slideShowControls}\n {zoomControls}\n </FlexBox>\n </FlexBox>\n )}\n </>\n );\n};\n","import { MaybeElementOrRef } from '@lumx/react/utils/type';\n\n/** Unref a react ref or element */\nexport function unref(maybeElement: MaybeElementOrRef<HTMLElement>) {\n if (maybeElement instanceof HTMLElement) return maybeElement;\n return maybeElement?.current;\n}\n","import ReactDOM from 'react-dom';\n\nimport { MaybeElementOrRef } from '@lumx/react/utils/type';\n\nimport { unref } from '../../react/unref';\nimport { isReducedMotion } from '../isReducedMotion';\n\nfunction setupViewTransitionName(elementRef: MaybeElementOrRef<HTMLElement>, name: string) {\n let originalName: string | null = null;\n return {\n set() {\n const element = unref(elementRef);\n if (!element) return;\n originalName = element.style.viewTransitionName;\n element.style.viewTransitionName = name;\n },\n unset() {\n const element = unref(elementRef);\n if (!element || originalName === null) return;\n element.style.viewTransitionName = originalName;\n },\n };\n}\n\n/**\n * Wrapper around the `document.startViewTransition` handling browser incompatibilities, react DOM flush and\n * user preference.\n *\n * @param changes callback containing the changes to apply within the view transition.\n * @param setViewTransitionName set the `viewTransitionName` style on a `source` & `target` to morph these elements.\n */\nexport async function startViewTransition({\n changes,\n viewTransitionName,\n}: {\n changes: () => void;\n viewTransitionName: {\n source: MaybeElementOrRef<HTMLElement>;\n target: MaybeElementOrRef<HTMLElement>;\n name: string;\n };\n}) {\n const start = (document as any)?.startViewTransition?.bind(document);\n const prefersReducedMotion = isReducedMotion();\n const { flushSync } = ReactDOM as any;\n if (prefersReducedMotion || !start || !flushSync || !viewTransitionName?.source || !viewTransitionName?.target) {\n // Skip, apply changes without a transition\n changes();\n return;\n }\n\n // Setup set/unset transition name on source & target\n const sourceTransitionName = setupViewTransitionName(viewTransitionName.source, viewTransitionName.name);\n const targetTransitionName = setupViewTransitionName(viewTransitionName.target, viewTransitionName.name);\n\n sourceTransitionName.set();\n\n // Start view transition, apply changes & flush to DOM\n await start(() => {\n sourceTransitionName.unset();\n\n flushSync(changes);\n\n targetTransitionName.set();\n }).updateCallbackDone;\n\n targetTransitionName.unset();\n}\n","/** Find image in element including the element */\nexport const findImage = (element: HTMLElement | null): HTMLImageElement | null =>\n element?.matches('img') ? (element as HTMLImageElement) : element?.querySelector('img') || null;\n","import React from 'react';\n\nimport memoize from 'lodash/memoize';\n\nimport { startViewTransition } from '@lumx/react/utils/browser/DOM/startViewTransition';\nimport { findImage } from '@lumx/react/utils/browser/DOM/findImage';\n\nimport type { ImageLightboxProps } from './types';\nimport { CLASSNAME } from './constants';\n\n/** Subset of the ImageLightboxProps managed by the useImageLightbox hook */\ntype ManagedProps = Pick<\n ImageLightboxProps,\n 'isOpen' | 'images' | 'parentElement' | 'activeImageRef' | 'onClose' | 'activeImageIndex'\n>;\n\nconst EMPTY_PROPS: ManagedProps = { isOpen: false, images: [], parentElement: React.createRef() };\n\ntype TriggerOptions = Pick<ImageLightboxProps, 'activeImageIndex'>;\n\n/**\n * Set up an ImageLightbox with images and triggers.\n *\n * - Associate a trigger with the lightbox to properly focus the trigger on close\n * - Associate a trigger with an image to display on open\n * - Automatically provide a view transition between an image trigger and the displayed image on open & close\n *\n * @param props Images to display in the image lightbox\n */\nexport function useImageLightbox<P extends Partial<ImageLightboxProps>>(\n props: P,\n): {\n /**\n * Generates trigger props\n * @param index Provide an index to choose which image to display when the image lightbox opens.\n * */\n getTriggerProps: (options?: TriggerOptions) => { onClick: React.MouseEventHandler; ref: React.Ref<any> };\n /** Props to forward to the ImageLightbox */\n imageLightboxProps: ManagedProps & P;\n} {\n const propsRef = React.useRef(props);\n\n React.useEffect(() => {\n propsRef.current = props;\n }, [props]);\n\n // Keep reference for each image elements\n const imageRefsRef = React.useRef<Array<React.RefObject<HTMLImageElement>>>([]);\n\n const currentImageRef = React.useRef<HTMLImageElement>(null);\n const [imageLightboxProps, setImageLightboxProps] = React.useState(\n () => ({ ...EMPTY_PROPS, ...props }) as ManagedProps & P,\n );\n\n const getTriggerProps = React.useMemo(() => {\n const triggerImageRefs: Record<number, React.RefObject<HTMLImageElement>> = {};\n\n async function close() {\n const currentImage = currentImageRef.current;\n if (!currentImage) {\n return;\n }\n const currentIndex = imageRefsRef.current.findIndex(\n (imageRef) => imageRef.current === currentImage,\n ) as number;\n\n await startViewTransition({\n changes() {\n // Close lightbox\n setImageLightboxProps((prevProps) => ({ ...prevProps, isOpen: false }));\n },\n // Morph from the image in lightbox to the image in trigger\n viewTransitionName: {\n source: currentImageRef,\n target: triggerImageRefs[currentIndex],\n name: CLASSNAME,\n },\n });\n }\n\n async function open(triggerElement: HTMLElement, { activeImageIndex }: TriggerOptions = {}) {\n // If we find an image inside the trigger, animate it in transition with the opening image\n const triggerImage = triggerImageRefs[activeImageIndex as any]?.current || findImage(triggerElement);\n\n // Inject refs to improve transition and loading style\n const images = propsRef.current?.images?.map((image, idx) => {\n // Get or create image reference\n let imgRef = imageRefsRef.current[idx];\n if (!imgRef) {\n imgRef = React.createRef();\n imageRefsRef.current[idx] = imgRef;\n }\n\n // Try to use the trigger image as the loading placeholder\n const loadingPlaceholderImageRef =\n triggerImage && idx === activeImageIndex ? { current: triggerImage } : undefined;\n\n return { loadingPlaceholderImageRef, ...image, imgRef };\n });\n\n await startViewTransition({\n changes: () => {\n // Open lightbox with setup props\n setImageLightboxProps((prevProps) => ({\n ...prevProps,\n ...propsRef.current,\n activeImageRef: currentImageRef,\n parentElement: { current: triggerElement },\n isOpen: true,\n onClose: () => {\n close();\n propsRef.current?.onClose?.();\n },\n images,\n activeImageIndex: activeImageIndex || 0,\n }));\n },\n // Morph from the image in trigger to the image in lightbox\n viewTransitionName: {\n source: triggerImage,\n target: currentImageRef,\n name: CLASSNAME,\n },\n });\n }\n\n return memoize((options?: TriggerOptions) => ({\n ref(element: HTMLElement | null) {\n // Track trigger image ref if any\n if (options?.activeImageIndex !== undefined && element) {\n triggerImageRefs[options.activeImageIndex] = { current: findImage(element) };\n }\n },\n onClick(e: React.MouseEvent) {\n open(e.target as HTMLElement, options);\n },\n }));\n }, []);\n\n return { getTriggerProps, imageLightboxProps };\n}\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { Lightbox, ThemeProvider } from '@lumx/react';\nimport { ClickAwayProvider } from '@lumx/react/utils';\nimport { useMergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { ImageSlideshow } from './internal/ImageSlideshow';\nimport { useImageLightbox } from './useImageLightbox';\nimport type { ImageLightboxProps } from './types';\nimport { CLASSNAME, COMPONENT_NAME } from './constants';\n\nconst Inner = forwardRef<ImageLightboxProps, HTMLDivElement>((props, ref) => {\n const {\n className,\n isOpen,\n closeButtonProps,\n onClose,\n parentElement,\n activeImageIndex,\n slideshowControlsProps,\n slideGroupLabel,\n images,\n zoomOutButtonProps,\n zoomInButtonProps,\n activeImageRef: propImageRef,\n ...forwardedProps\n } = props;\n const currentPaginationItemRef = React.useRef(null);\n const footerRef = React.useRef(null);\n const imageRef = React.useRef(null);\n const clickAwayChildrenRefs = React.useRef([imageRef, footerRef]);\n\n const onClickAway = React.useCallback(\n (evt: Event) => {\n const targetElement = evt.target;\n if (!(targetElement instanceof HTMLElement) || !(evt instanceof MouseEvent)) return;\n\n // Skip click away if clicking on the scrollbar\n if (targetElement.clientWidth < evt.clientX || targetElement.clientHeight < evt.clientY) return;\n\n onClose?.();\n },\n [onClose],\n );\n\n return (\n <Lightbox\n ref={ref}\n className={classNames(className, CLASSNAME)}\n parentElement={parentElement}\n isOpen={isOpen}\n onClose={onClose}\n closeButtonProps={closeButtonProps}\n focusElement={currentPaginationItemRef}\n {...forwardedProps}\n // Disable the close on click away as we want a custom one here\n preventAutoClose\n >\n <ClickAwayProvider childrenRefs={clickAwayChildrenRefs} callback={onClickAway}>\n <ThemeProvider value=\"dark\">\n <ImageSlideshow\n activeImageIndex={activeImageIndex}\n slideGroupLabel={slideGroupLabel}\n slideshowControlsProps={slideshowControlsProps}\n images={images}\n zoomInButtonProps={zoomInButtonProps}\n zoomOutButtonProps={zoomOutButtonProps}\n footerRef={footerRef}\n activeImageRef={useMergeRefs(propImageRef, imageRef)}\n currentPaginationItemRef={currentPaginationItemRef}\n />\n </ThemeProvider>\n </ClickAwayProvider>\n </Lightbox>\n );\n});\nInner.displayName = COMPONENT_NAME;\nInner.className = CLASSNAME;\n\n/**\n * ImageLightbox component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ImageLightbox = Object.assign(Inner, { useImageLightbox });\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","useSizeOnWindowResize","elementRef","size","setSize","React","useState","updateSize","useMemo","throttle","newSize","current","getBoundingClientRect","useEffect","window","addEventListener","removeEventListener","useImageSize","imgRef","getInitialSize","imageSize","setImageSize","img","undefined","onLoad","width","naturalWidth","height","naturalHeight","isEqual","obj1","obj2","keys1","Object","keys","keys2","length","every","key1","usePointerZoom","scrollAreaRef","onScaleChange","animateScroll","isPointerZooming","setPointerZooming","scrollArea","animationFrame","zoomStateTimeoutId","updateScaleOnNextFrame","newScale","mousePosition","cancelAnimationFrame","clearTimeout","nextFrame","setTimeout","requestAnimationFrame","scrollWidth","scrollHeight","onWheel","event","ctrlKey","preventDefault","Math","exp","deltaY","x","clientX","y","clientY","activePointers","prevDistance","previousCenterPoint","onPointerDown","pointerId","onPointerMove","pointers","values","centerPoint","reduce","deltaCenterPoint","left","top","scrollBy","pointer1","pointer2","distance","hypot","delta","absDelta","abs","onPointerUp","passive","isMultiTouch","navigator","maxTouchPoints","useAnimateScroll","animate","initialScrollAreaSize","clientHeightRatio","clientHeight","clientWidthRatio","clientWidth","initialScrollHeight","initialScrollWidth","heightCenter","scrollTop","heightRatio","widthCenter","scrollLeft","widthRatio","prevScrollHeight","prevScrollWidth","scrollTo","ImageSlide","memo","props","isActive","scale","image","propImgRef","imgProps","alt","loadingPlaceholderImageRef","useRef","scrollAreaSize","Number","parseInt","scaledImageSize","horizontalScale","verticalScale","baseScale","min","useLayoutEffect","isScrollable","createElement","SlideshowItem","ref","tabIndex","className","Thumbnail","useMergeRefs","style","maxHeight","maxWidth","transition","isReducedMotion","ImageSlideshow","activeImageIndex","images","slideGroupLabel","zoomInButtonProps","zoomOutButtonProps","slideshowControlsProps","currentPaginationItemRef","footerRef","activeImageRef","activeIndex","slideshowId","setSlideshow","slideshowSlidesId","slidesCount","onNextClick","onPaginationClick","onPreviousClick","toggleAutoPlay","SlideshowControls","useSlideshowControls","itemsCount","title","description","tags","metadata","ImageCaption","as","align","slideShowControls","_extends","paginationItemProps","index","mergeRefs","setScale","zoomEnabled","prevScale","max","zoomIn","useCallback","zoomOut","zoomControls","Fragment","IconButton","emphasis","icon","mdiMagnifyPlusOutline","onClick","isDisabled","mdiMagnifyMinusOutline","getImgRef","memoize","args","join","Slides","fillHeight","id","slidesId","map","imageProps","key","FlexBox","orientation","vAlign","gap","unref","maybeElement","HTMLElement","setupViewTransitionName","name","originalName","set","element","viewTransitionName","unset","startViewTransition","changes","start","document","bind","prefersReducedMotion","flushSync","ReactDOM","source","target","sourceTransitionName","targetTransitionName","updateCallbackDone","findImage","matches","querySelector","EMPTY_PROPS","isOpen","parentElement","createRef","useImageLightbox","propsRef","imageRefsRef","currentImageRef","imageLightboxProps","setImageLightboxProps","getTriggerProps","triggerImageRefs","close","currentImage","currentIndex","findIndex","imageRef","prevProps","open","triggerElement","triggerImage","idx","onClose","options","e","Inner","forwardRef","closeButtonProps","propImageRef","forwardedProps","clickAwayChildrenRefs","onClickAway","evt","targetElement","MouseEvent","Lightbox","classNames","focusElement","preventAutoClose","ClickAwayProvider","childrenRefs","callback","ThemeProvider","value","displayName","ImageLightbox","assign"],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
2
+ import { Children, isValidElement } from 'react';
3
+ import { getRootClassName, getTypographyClassName, fontColorClass } from '@lumx/core/js/utils/className';
4
+
5
+ /**
6
+ * Defines the props of the component.
7
+ */
8
+
9
+ /**
10
+ * Component display name.
11
+ */
12
+ const COMPONENT_NAME = 'InlineList';
13
+
14
+ /**
15
+ * Component default class name and class prefix.
16
+ */
17
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
18
+
19
+ /**
20
+ * Component default props.
21
+ */
22
+ const DEFAULT_PROPS = {};
23
+
24
+ /**
25
+ * InlineList component.
26
+ *
27
+ * @param props Component props.
28
+ * @param ref Component ref.
29
+ * @return React element.
30
+ */
31
+ const InlineList = forwardRef((props, ref) => {
32
+ const {
33
+ className,
34
+ color,
35
+ colorVariant,
36
+ typography,
37
+ children,
38
+ wrap,
39
+ ...forwardedProps
40
+ } = props;
41
+ const typographyClassName = typography && getTypographyClassName(typography);
42
+ return (
43
+ /*#__PURE__*/
44
+ // eslint-disable-next-line jsx-a11y/no-redundant-roles
45
+ React.createElement("ul", _extends({}, forwardedProps, {
46
+ ref: ref,
47
+ className: classNames(className, CLASSNAME, wrap && `${CLASSNAME}--wrap`, fontColorClass(color, colorVariant), typographyClassName)
48
+ // Lists with removed bullet style can lose their a11y list role on some browsers
49
+ ,
50
+ role: "list"
51
+ }), Children.toArray(children).map((child, index) => {
52
+ const key = /*#__PURE__*/isValidElement(child) && child.key || index;
53
+ return (
54
+ /*#__PURE__*/
55
+ // We need to item is set as display: contents which removes the semantic.
56
+ // eslint-disable-next-line jsx-a11y/no-redundant-roles
57
+ React.createElement("li", {
58
+ key: key,
59
+ role: "listitem",
60
+ className: `${CLASSNAME}__item`
61
+ }, index !== 0 && /*#__PURE__*/React.createElement("span", {
62
+ className: `${CLASSNAME}__item-separator`,
63
+ "aria-hidden": "true"
64
+ }, '\u00A0•\u00A0'), child)
65
+ );
66
+ }))
67
+ );
68
+ });
69
+ InlineList.displayName = COMPONENT_NAME;
70
+ InlineList.className = CLASSNAME;
71
+ InlineList.defaultProps = DEFAULT_PROPS;
72
+
73
+ export { InlineList };
74
+ //# sourceMappingURL=inline-list-4884f004.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-list-4884f004.js","sources":["../../../src/components/inline-list/InlineList.tsx"],"sourcesContent":["import { Children, isValidElement } from 'react';\n\nimport classNames from 'classnames';\n\nimport { ColorVariant, ColorWithVariants, Typography } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { fontColorClass, getRootClassName, getTypographyClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface InlineListProps extends GenericProps {\n /**\n * Text color.\n */\n color?: ColorWithVariants;\n /**\n * Lightened or darkened variant of the selected color.\n */\n colorVariant?: ColorVariant;\n /**\n * Typography variant.\n */\n typography?: Typography;\n /**\n * Activate line wrap on overflow.\n */\n wrap?: boolean;\n /**\n * Children\n */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'InlineList';\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 = {} as const;\n\n/**\n * InlineList component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const InlineList = forwardRef<InlineListProps>((props, ref) => {\n const { className, color, colorVariant, typography, children, wrap, ...forwardedProps } = props;\n const typographyClassName = typography && getTypographyClassName(typography);\n return (\n // eslint-disable-next-line jsx-a11y/no-redundant-roles\n <ul\n {...forwardedProps}\n ref={ref as any}\n className={classNames(\n className,\n CLASSNAME,\n wrap && `${CLASSNAME}--wrap`,\n fontColorClass(color, colorVariant),\n typographyClassName,\n )}\n // Lists with removed bullet style can lose their a11y list role on some browsers\n role=\"list\"\n >\n {Children.toArray(children).map((child, index) => {\n const key = (isValidElement(child) && child.key) || index;\n return (\n // We need to item is set as display: contents which removes the semantic.\n // eslint-disable-next-line jsx-a11y/no-redundant-roles\n <li key={key} role=\"listitem\" className={`${CLASSNAME}__item`}>\n {index !== 0 && (\n <span className={`${CLASSNAME}__item-separator`} aria-hidden=\"true\">\n {'\\u00A0•\\u00A0'}\n </span>\n )}\n {child}\n </li>\n );\n })}\n </ul>\n );\n});\nInlineList.displayName = COMPONENT_NAME;\nInlineList.className = CLASSNAME;\nInlineList.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","InlineList","forwardRef","props","ref","className","color","colorVariant","typography","children","wrap","forwardedProps","typographyClassName","getTypographyClassName","React","createElement","_extends","classNames","fontColorClass","role","Children","toArray","map","child","index","key","isValidElement","displayName","defaultProps"],"mappings":";;;;AASA;AACA;AACA;;AAwBA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,YAAY,CAAA;;AAEnC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAa,GAAG,EAAW,CAAA;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAGC,UAAU,CAAkB,CAACC,KAAK,EAAEC,GAAG,KAAK;EAClE,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEC,YAAY;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,IAAI;IAAE,GAAGC,cAAAA;AAAe,GAAC,GAAGR,KAAK,CAAA;AAC/F,EAAA,MAAMS,mBAAmB,GAAGJ,UAAU,IAAIK,sBAAsB,CAACL,UAAU,CAAC,CAAA;AAC5E,EAAA;AAAA;AACI;AACAM,IAAAA,KAAA,CAAAC,aAAA,CAAAC,IAAAA,EAAAA,QAAA,KACQL,cAAc,EAAA;AAClBP,MAAAA,GAAG,EAAEA,GAAW;MAChBC,SAAS,EAAEY,UAAU,CACjBZ,SAAS,EACTP,SAAS,EACTY,IAAI,IAAI,CAAA,EAAGZ,SAAS,CAAQ,MAAA,CAAA,EAC5BoB,cAAc,CAACZ,KAAK,EAAEC,YAAY,CAAC,EACnCK,mBACJ,CAAA;AACA;AAAA;AACAO,MAAAA,IAAI,EAAC,MAAA;AAAM,KAAA,CAAA,EAEVC,QAAQ,CAACC,OAAO,CAACZ,QAAQ,CAAC,CAACa,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAK;AAC9C,MAAA,MAAMC,GAAG,gBAAIC,cAAc,CAACH,KAAK,CAAC,IAAIA,KAAK,CAACE,GAAG,IAAKD,KAAK,CAAA;AACzD,MAAA;AAAA;AACI;AACA;AACAV,QAAAA,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIU,UAAAA,GAAG,EAAEA,GAAI;AAACN,UAAAA,IAAI,EAAC,UAAU;UAACd,SAAS,EAAE,GAAGP,SAAS,CAAA,MAAA,CAAA;AAAS,SAAA,EACzD0B,KAAK,KAAK,CAAC,iBACRV,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;UAAMV,SAAS,EAAE,CAAGP,EAAAA,SAAS,CAAmB,gBAAA,CAAA;UAAC,aAAY,EAAA,MAAA;SACxD,EAAA,eACC,CACT,EACAyB,KACD,CAAA;AAAC,QAAA;AAEb,KAAC,CACD,CAAA;AAAC,IAAA;AAEb,CAAC,EAAC;AACFtB,UAAU,CAAC0B,WAAW,GAAG9B,cAAc,CAAA;AACvCI,UAAU,CAACI,SAAS,GAAGP,SAAS,CAAA;AAChCG,UAAU,CAAC2B,YAAY,GAAG5B,aAAa;;;;"}
@@ -0,0 +1,73 @@
1
+ import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
2
+ import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
3
+ import { u as useTheme } from '../ThemeContext-3181f000.js';
4
+ import { Kind, Theme } from '@lumx/core/js/constants';
5
+
6
+ const INPUT_HELPER_CONFIGURATION = {
7
+ error: {
8
+ color: 'red'
9
+ },
10
+ success: {
11
+ color: 'green'
12
+ },
13
+ warning: {
14
+ color: 'yellow'
15
+ }
16
+ };
17
+
18
+ /**
19
+ * Defines the props of the component.
20
+ */
21
+
22
+ /**
23
+ * Component display name.
24
+ */
25
+ const COMPONENT_NAME = 'InputHelper';
26
+
27
+ /**
28
+ * Component default class name and class prefix.
29
+ */
30
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
31
+
32
+ /**
33
+ * Component default props.
34
+ */
35
+ const DEFAULT_PROPS = {
36
+ kind: Kind.info
37
+ };
38
+
39
+ /**
40
+ * InputHelper component.
41
+ *
42
+ * @param props Component props.
43
+ * @param ref Component ref.
44
+ * @return React element.
45
+ */
46
+ const InputHelper = forwardRef((props, ref) => {
47
+ const defaultTheme = useTheme() || Theme.light;
48
+ const {
49
+ children,
50
+ className,
51
+ kind = DEFAULT_PROPS.kind,
52
+ theme = defaultTheme,
53
+ ...forwardedProps
54
+ } = props;
55
+ const {
56
+ color
57
+ } = INPUT_HELPER_CONFIGURATION[kind] || {};
58
+ return /*#__PURE__*/React.createElement("p", _extends({
59
+ ref: ref
60
+ }, forwardedProps, {
61
+ className: classNames(className, handleBasicClasses({
62
+ prefix: CLASSNAME,
63
+ color,
64
+ theme
65
+ }))
66
+ }), children);
67
+ });
68
+ InputHelper.displayName = COMPONENT_NAME;
69
+ InputHelper.className = CLASSNAME;
70
+ InputHelper.defaultProps = DEFAULT_PROPS;
71
+
72
+ export { InputHelper };
73
+ //# sourceMappingURL=input-helper-e644e05e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-helper-e644e05e.js","sources":["../../../src/components/input-helper/constants.ts","../../../src/components/input-helper/InputHelper.tsx"],"sourcesContent":["export const INPUT_HELPER_CONFIGURATION: Record<string, { color: string }> = {\n error: {\n color: 'red',\n },\n success: {\n color: 'green',\n },\n warning: {\n color: 'yellow',\n },\n};\n","import { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Kind, Theme } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { INPUT_HELPER_CONFIGURATION } from './constants';\n\n/**\n * Defines the props of the component.\n */\nexport interface InputHelperProps extends GenericProps, HasTheme {\n /** Helper content. */\n children: string | ReactNode;\n /** Helper variant. */\n kind?: Kind;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'InputHelper';\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<InputHelperProps> = {\n kind: Kind.info,\n};\n\n/**\n * InputHelper component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const InputHelper = forwardRef<InputHelperProps, HTMLParagraphElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { children, className, kind = DEFAULT_PROPS.kind, theme = defaultTheme, ...forwardedProps } = props;\n const { color } = INPUT_HELPER_CONFIGURATION[kind as any] || {};\n\n return (\n <p\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, color, theme }))}\n >\n {children}\n </p>\n );\n});\n\nInputHelper.displayName = COMPONENT_NAME;\nInputHelper.className = CLASSNAME;\nInputHelper.defaultProps = DEFAULT_PROPS;\n"],"names":["INPUT_HELPER_CONFIGURATION","error","color","success","warning","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","kind","Kind","info","InputHelper","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","children","className","theme","forwardedProps","React","createElement","_extends","classNames","handleBasicClasses","prefix","displayName","defaultProps"],"mappings":";;;;;AAAO,MAAMA,0BAA6D,GAAG;AACzEC,EAAAA,KAAK,EAAE;AACHC,IAAAA,KAAK,EAAE,KAAA;GACV;AACDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,KAAK,EAAE,OAAA;GACV;AACDE,EAAAA,OAAO,EAAE;AACLF,IAAAA,KAAK,EAAE,QAAA;AACX,GAAA;AACJ,CAAC;;ACED;AACA;AACA;;AAQA;AACA;AACA;AACA,MAAMG,cAAc,GAAG,aAAa,CAAA;;AAEpC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAwC,GAAG;EAC7CC,IAAI,EAAEC,IAAI,CAACC,IAAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,GAAGC,UAAU,CAAyC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC1F,MAAMC,YAAY,GAAGC,QAAQ,EAAE,IAAIC,KAAK,CAACC,KAAK,CAAA;EAC9C,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEZ,IAAI,GAAGD,aAAa,CAACC,IAAI;AAAEa,IAAAA,KAAK,GAAGN,YAAY;IAAE,GAAGO,cAAAA;AAAe,GAAC,GAAGT,KAAK,CAAA;EACzG,MAAM;AAAEZ,IAAAA,KAAAA;AAAM,GAAC,GAAGF,0BAA0B,CAACS,IAAI,CAAQ,IAAI,EAAE,CAAA;AAE/D,EAAA,oBACIe,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAAC,QAAA,CAAA;AACIX,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACLQ,cAAc,EAAA;AAClBF,IAAAA,SAAS,EAAEM,UAAU,CAACN,SAAS,EAAEO,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAEvB,SAAS;MAAEJ,KAAK;AAAEoB,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAAE,GAAA,CAAA,EAEzFF,QACF,CAAC,CAAA;AAEZ,CAAC,EAAC;AAEFR,WAAW,CAACkB,WAAW,GAAGzB,cAAc,CAAA;AACxCO,WAAW,CAACS,SAAS,GAAGf,SAAS,CAAA;AACjCM,WAAW,CAACmB,YAAY,GAAGvB,aAAa;;;;"}
@@ -0,0 +1,61 @@
1
+ import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
2
+ import { getRootClassName, getTypographyClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
3
+ import { u as useTheme } from '../ThemeContext-3181f000.js';
4
+ import { Theme } from '@lumx/core/js/constants';
5
+
6
+ /**
7
+ * Defines the props of the component.
8
+ */
9
+
10
+ /**
11
+ * Component display name.
12
+ */
13
+ const COMPONENT_NAME = 'InputLabel';
14
+
15
+ /**
16
+ * Component default class name and class prefix.
17
+ */
18
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
19
+
20
+ /**
21
+ * Component default props.
22
+ */
23
+ const DEFAULT_PROPS = {};
24
+
25
+ /**
26
+ * InputLabel component.
27
+ *
28
+ * @param props Component props.
29
+ * @param ref Component ref.
30
+ * @return React element.
31
+ */
32
+ const InputLabel = forwardRef((props, ref) => {
33
+ const defaultTheme = useTheme() || Theme.light;
34
+ const {
35
+ children,
36
+ className,
37
+ htmlFor,
38
+ isRequired,
39
+ theme = defaultTheme,
40
+ typography,
41
+ ...forwardedProps
42
+ } = props;
43
+ const typographyClass = typography && getTypographyClassName(typography);
44
+ return /*#__PURE__*/React.createElement("label", _extends({
45
+ ref: ref
46
+ }, forwardedProps, {
47
+ htmlFor: htmlFor,
48
+ className: classNames(className, handleBasicClasses({
49
+ prefix: CLASSNAME,
50
+ isRequired,
51
+ theme,
52
+ hasCustomTypography: Boolean(typography)
53
+ }), typographyClass)
54
+ }), children);
55
+ });
56
+ InputLabel.displayName = COMPONENT_NAME;
57
+ InputLabel.className = CLASSNAME;
58
+ InputLabel.defaultProps = DEFAULT_PROPS;
59
+
60
+ export { InputLabel };
61
+ //# sourceMappingURL=input-label-5e509a1b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-label-5e509a1b.js","sources":["../../../src/components/input-label/InputLabel.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Theme, Typography } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses, getTypographyClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\n\n/**\n * Defines the props of the component.\n */\nexport interface InputLabelProps extends GenericProps, HasTheme {\n /** Typography variant. */\n typography?: Typography;\n /** Label content. */\n children: string | ReactNode;\n /** Native htmlFor property. */\n htmlFor: string;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'InputLabel';\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<InputLabelProps> = {};\n\n/**\n * InputLabel component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const InputLabel = forwardRef<InputLabelProps, HTMLLabelElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { children, className, htmlFor, isRequired, theme = defaultTheme, typography, ...forwardedProps } = props;\n const typographyClass = typography && getTypographyClassName(typography);\n\n return (\n <label\n ref={ref}\n {...forwardedProps}\n htmlFor={htmlFor}\n className={classNames(\n className,\n handleBasicClasses({ prefix: CLASSNAME, isRequired, theme, hasCustomTypography: Boolean(typography) }),\n typographyClass,\n )}\n >\n {children}\n </label>\n );\n});\nInputLabel.displayName = COMPONENT_NAME;\nInputLabel.className = CLASSNAME;\nInputLabel.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","InputLabel","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","children","className","htmlFor","isRequired","theme","typography","forwardedProps","typographyClass","getTypographyClassName","React","createElement","_extends","classNames","handleBasicClasses","prefix","hasCustomTypography","Boolean","displayName","defaultProps"],"mappings":";;;;;AAUA;AACA;AACA;;AAYA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,YAAY,CAAA;;AAEnC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAuC,GAAG,EAAE,CAAA;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAGC,UAAU,CAAoC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACpF,MAAMC,YAAY,GAAGC,QAAQ,EAAE,IAAIC,KAAK,CAACC,KAAK,CAAA;EAC9C,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,OAAO;IAAEC,UAAU;AAAEC,IAAAA,KAAK,GAAGR,YAAY;IAAES,UAAU;IAAE,GAAGC,cAAAA;AAAe,GAAC,GAAGZ,KAAK,CAAA;AAC/G,EAAA,MAAMa,eAAe,GAAGF,UAAU,IAAIG,sBAAsB,CAACH,UAAU,CAAC,CAAA;AAExE,EAAA,oBACII,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAAC,QAAA,CAAA;AACIhB,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACLW,cAAc,EAAA;AAClBJ,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,SAAS,EAAEW,UAAU,CACjBX,SAAS,EACTY,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAEzB,SAAS;MAAEc,UAAU;MAAEC,KAAK;MAAEW,mBAAmB,EAAEC,OAAO,CAACX,UAAU,CAAA;KAAG,CAAC,EACtGE,eACJ,CAAA;AAAE,GAAA,CAAA,EAEDP,QACE,CAAC,CAAA;AAEhB,CAAC,EAAC;AACFR,UAAU,CAACyB,WAAW,GAAG7B,cAAc,CAAA;AACvCI,UAAU,CAACS,SAAS,GAAGZ,SAAS,CAAA;AAChCG,UAAU,CAAC0B,YAAY,GAAG3B,aAAa;;;;"}
@@ -0,0 +1,149 @@
1
+ import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
2
+ import { useRef, useEffect } from 'react';
3
+ import { mdiClose } from '@lumx/icons';
4
+ import { D as DOCUMENT } from '../constants-d0e3f49e.js';
5
+ import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
6
+ import { u as useFocusTrap } from '../useFocusTrap-c3c6378b.js';
7
+ import { u as useDisableBodyScroll } from '../useDisableBodyScroll-36bd7352.js';
8
+ import { m as mergeRefs } from '../mergeRefs-f0d7d6ea.js';
9
+ import { u as useCallbackOnEscape } from '../useCallbackOnEscape-ea4d9eb4.js';
10
+ import { u as useTransitionVisibility } from '../useTransitionVisibility-321fdbfa.js';
11
+ import { T as ThemeProvider } from '../ThemeContext-3181f000.js';
12
+ import { P as Portal } from '../Portal-c43d098b.js';
13
+ import { I as IconButton } from '../IconButton-10585058.js';
14
+ import { H as HeadingLevelProvider } from '../HeadingLevelProvider-e4817816.js';
15
+ import { C as ClickAwayProvider } from '../ClickAwayProvider-bcce6ceb.js';
16
+ import { DIALOG_TRANSITION_DURATION } from '@lumx/core/js/constants';
17
+
18
+ /**
19
+ * Defines the props of the component.
20
+ */
21
+
22
+ /**
23
+ * Component display name.
24
+ */
25
+ const COMPONENT_NAME = 'Lightbox';
26
+
27
+ /**
28
+ * Component default class name and class prefix.
29
+ */
30
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
31
+
32
+ /**
33
+ * Lightbox component.
34
+ *
35
+ * @param props Component props.
36
+ * @param ref Component ref.
37
+ * @return React element.
38
+ */
39
+ const Lightbox = forwardRef((props, ref) => {
40
+ const {
41
+ 'aria-labelledby': propAriaLabelledBy,
42
+ ariaLabelledBy = propAriaLabelledBy,
43
+ 'aria-label': propAriaLabel,
44
+ ariaLabel = propAriaLabel,
45
+ children,
46
+ className,
47
+ closeButtonProps,
48
+ isOpen,
49
+ onClose,
50
+ parentElement,
51
+ focusElement,
52
+ preventAutoClose,
53
+ theme,
54
+ zIndex,
55
+ ...forwardedProps
56
+ } = props;
57
+ if (!DOCUMENT) {
58
+ // Can't render in SSR.
59
+ return null;
60
+ }
61
+
62
+ // eslint-disable-next-line react-hooks/rules-of-hooks
63
+ const childrenRef = useRef(null);
64
+ // eslint-disable-next-line react-hooks/rules-of-hooks
65
+ const wrapperRef = useRef(null);
66
+ // eslint-disable-next-line react-hooks/rules-of-hooks
67
+ const closeButtonRef = useRef(null);
68
+
69
+ // eslint-disable-next-line react-hooks/rules-of-hooks
70
+ useDisableBodyScroll(isOpen && wrapperRef.current);
71
+
72
+ // eslint-disable-next-line react-hooks/rules-of-hooks
73
+ const isVisible = useTransitionVisibility(wrapperRef, !!isOpen, DIALOG_TRANSITION_DURATION);
74
+
75
+ // Handle focus trap.
76
+ // eslint-disable-next-line react-hooks/rules-of-hooks
77
+ useFocusTrap(
78
+ // Focus trap zone
79
+ isOpen && wrapperRef.current,
80
+ // Focus element (fallback on close button and then on the dialog)
81
+ focusElement?.current || closeButtonRef.current || wrapperRef.current);
82
+
83
+ // eslint-disable-next-line react-hooks/rules-of-hooks
84
+ const previousOpen = useRef(isOpen);
85
+
86
+ // eslint-disable-next-line react-hooks/rules-of-hooks
87
+ useEffect(() => {
88
+ if (isOpen !== previousOpen.current) {
89
+ previousOpen.current = isOpen;
90
+
91
+ // Focus the parent element on close.
92
+ if (!isOpen && parentElement && parentElement.current) {
93
+ parentElement.current.focus();
94
+ }
95
+ }
96
+ }, [isOpen, parentElement]);
97
+
98
+ // Close lightbox on escape key pressed.
99
+ // eslint-disable-next-line react-hooks/rules-of-hooks
100
+ useCallbackOnEscape(onClose);
101
+
102
+ // eslint-disable-next-line react-hooks/rules-of-hooks
103
+ const clickAwayRefs = useRef([wrapperRef]);
104
+ if (!isOpen && !isVisible) return null;
105
+ return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement("div", _extends({
106
+ ref: mergeRefs(ref, wrapperRef)
107
+ }, forwardedProps, {
108
+ "aria-label": ariaLabel,
109
+ "aria-labelledby": ariaLabelledBy,
110
+ "aria-modal": "true",
111
+ role: "dialog",
112
+ tabIndex: -1,
113
+ className: classNames(className, handleBasicClasses({
114
+ prefix: CLASSNAME,
115
+ isHidden: !isOpen,
116
+ isShown: isOpen || isVisible,
117
+ theme
118
+ })),
119
+ style: {
120
+ zIndex
121
+ }
122
+ }), closeButtonProps && /*#__PURE__*/React.createElement("div", {
123
+ className: `${CLASSNAME}__close`
124
+ }, /*#__PURE__*/React.createElement(IconButton, _extends({}, closeButtonProps, {
125
+ ref: closeButtonRef,
126
+ emphasis: "low",
127
+ hasBackground: true,
128
+ icon: mdiClose,
129
+ theme: "dark",
130
+ type: "button",
131
+ onClick: onClose
132
+ }))), /*#__PURE__*/React.createElement(HeadingLevelProvider, {
133
+ level: 2
134
+ }, /*#__PURE__*/React.createElement(ThemeProvider, {
135
+ value: undefined
136
+ }, /*#__PURE__*/React.createElement(ClickAwayProvider, {
137
+ callback: !preventAutoClose && onClose,
138
+ childrenRefs: clickAwayRefs
139
+ }, /*#__PURE__*/React.createElement("div", {
140
+ ref: childrenRef,
141
+ className: `${CLASSNAME}__wrapper`,
142
+ role: "presentation"
143
+ }, children))))));
144
+ });
145
+ Lightbox.displayName = COMPONENT_NAME;
146
+ Lightbox.className = CLASSNAME;
147
+
148
+ export { Lightbox };
149
+ //# sourceMappingURL=lightbox-bec1b95f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightbox-bec1b95f.js","sources":["../../../src/components/lightbox/Lightbox.tsx"],"sourcesContent":["import { RefObject, useRef, useEffect, AriaAttributes } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiClose } from '@lumx/icons';\nimport { HeadingLevelProvider, IconButton, IconButtonProps } from '@lumx/react';\nimport { DIALOG_TRANSITION_DURATION, DOCUMENT } from '@lumx/react/constants';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\n\nimport { useFocusTrap } from '@lumx/react/hooks/useFocusTrap';\nimport { useDisableBodyScroll } from '@lumx/react/hooks/useDisableBodyScroll';\nimport { ClickAwayProvider } from '@lumx/react/utils/ClickAwayProvider';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { useCallbackOnEscape } from '@lumx/react/hooks/useCallbackOnEscape';\nimport { useTransitionVisibility } from '@lumx/react/hooks/useTransitionVisibility';\nimport { ThemeProvider } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { Portal } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface LightboxProps extends GenericProps, HasTheme, Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /** Props to pass to the close button (minus those already set by the Lightbox props). */\n closeButtonProps?: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Reference to the element that triggered modal opening to set focus on. */\n parentElement: RefObject<any>;\n /** Reference to the element that should get the focus when the lightbox opens. By default, the close button or the lightbox itself will take focus. */\n focusElement?: RefObject<HTMLElement>;\n /** Whether to keep the dialog open on clickaway or escape press. */\n preventAutoClose?: boolean;\n /** Z-axis position. */\n zIndex?: number;\n /** On close callback. */\n onClose?(): void;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Lightbox';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Lightbox component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Lightbox = forwardRef<LightboxProps, HTMLDivElement>((props, ref) => {\n const {\n 'aria-labelledby': propAriaLabelledBy,\n ariaLabelledBy = propAriaLabelledBy,\n 'aria-label': propAriaLabel,\n ariaLabel = propAriaLabel,\n children,\n className,\n closeButtonProps,\n isOpen,\n onClose,\n parentElement,\n focusElement,\n preventAutoClose,\n theme,\n zIndex,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const childrenRef = useRef<any>(null);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const wrapperRef = useRef<HTMLDivElement>(null);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const closeButtonRef = useRef<HTMLButtonElement>(null);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useDisableBodyScroll(isOpen && wrapperRef.current);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const isVisible = useTransitionVisibility(wrapperRef, !!isOpen, DIALOG_TRANSITION_DURATION);\n\n // Handle focus trap.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useFocusTrap(\n // Focus trap zone\n isOpen && wrapperRef.current,\n // Focus element (fallback on close button and then on the dialog)\n focusElement?.current || closeButtonRef.current || wrapperRef.current,\n );\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const previousOpen = useRef(isOpen);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n if (isOpen !== previousOpen.current) {\n previousOpen.current = isOpen;\n\n // Focus the parent element on close.\n if (!isOpen && parentElement && parentElement.current) {\n parentElement.current.focus();\n }\n }\n }, [isOpen, parentElement]);\n\n // Close lightbox on escape key pressed.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useCallbackOnEscape(onClose);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const clickAwayRefs = useRef([wrapperRef]);\n\n if (!isOpen && !isVisible) return null;\n\n return (\n <Portal>\n <div\n ref={mergeRefs(ref, wrapperRef)}\n {...forwardedProps}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-modal=\"true\"\n role=\"dialog\"\n tabIndex={-1}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n isHidden: !isOpen,\n isShown: isOpen || isVisible,\n theme,\n }),\n )}\n style={{ zIndex }}\n >\n {closeButtonProps && (\n <div className={`${CLASSNAME}__close`}>\n <IconButton\n {...closeButtonProps}\n ref={closeButtonRef}\n emphasis=\"low\"\n hasBackground\n icon={mdiClose}\n theme=\"dark\"\n type=\"button\"\n onClick={onClose}\n />\n </div>\n )}\n <HeadingLevelProvider level={2}>\n <ThemeProvider value={undefined}>\n <ClickAwayProvider callback={!preventAutoClose && onClose} childrenRefs={clickAwayRefs}>\n <div ref={childrenRef} className={`${CLASSNAME}__wrapper`} role=\"presentation\">\n {children}\n </div>\n </ClickAwayProvider>\n </ThemeProvider>\n </HeadingLevelProvider>\n </div>\n </Portal>\n );\n});\nLightbox.displayName = COMPONENT_NAME;\nLightbox.className = CLASSNAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","Lightbox","forwardRef","props","ref","propAriaLabelledBy","ariaLabelledBy","propAriaLabel","ariaLabel","children","className","closeButtonProps","isOpen","onClose","parentElement","focusElement","preventAutoClose","theme","zIndex","forwardedProps","DOCUMENT","childrenRef","useRef","wrapperRef","closeButtonRef","useDisableBodyScroll","current","isVisible","useTransitionVisibility","DIALOG_TRANSITION_DURATION","useFocusTrap","previousOpen","useEffect","focus","useCallbackOnEscape","clickAwayRefs","React","createElement","Portal","_extends","mergeRefs","role","tabIndex","classNames","handleBasicClasses","prefix","isHidden","isShown","style","IconButton","emphasis","hasBackground","icon","mdiClose","type","onClick","HeadingLevelProvider","level","ThemeProvider","value","undefined","ClickAwayProvider","callback","childrenRefs","displayName"],"mappings":"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"}