@lumx/react 3.20.1-alpha.25 → 3.20.1-alpha.27

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 (710) hide show
  1. package/_internal/Button-2b55a913.js +97 -0
  2. package/_internal/Button-2b55a913.js.map +1 -0
  3. package/_internal/ButtonRoot-823f3e9c.js +117 -0
  4. package/_internal/ButtonRoot-823f3e9c.js.map +1 -0
  5. package/_internal/Chip-e1e85810.js +143 -0
  6. package/_internal/Chip-e1e85810.js.map +1 -0
  7. package/_internal/ClickAwayProvider-1204f237.js +95 -0
  8. package/_internal/ClickAwayProvider-1204f237.js.map +1 -0
  9. package/_internal/DisabledStateContext-ea04260d.js +29 -0
  10. package/_internal/DisabledStateContext-ea04260d.js.map +1 -0
  11. package/_internal/HeadingLevelProvider-ebdcb0c7.js +61 -0
  12. package/_internal/HeadingLevelProvider-ebdcb0c7.js.map +1 -0
  13. package/_internal/IconButton-be160cb0.js +77 -0
  14. package/_internal/IconButton-be160cb0.js.map +1 -0
  15. package/_internal/ImageCaption-fcf5720c.js +75 -0
  16. package/_internal/ImageCaption-fcf5720c.js.map +1 -0
  17. package/_internal/List-dbf4297f.js +791 -0
  18. package/_internal/List-dbf4297f.js.map +1 -0
  19. package/_internal/PopoverDialog-193a0918.js +655 -0
  20. package/_internal/PopoverDialog-193a0918.js.map +1 -0
  21. package/_internal/Portal-3f86608e.js +45 -0
  22. package/_internal/Portal-3f86608e.js.map +1 -0
  23. package/_internal/RawClickable-2c2b6a89.js +52 -0
  24. package/_internal/RawClickable-2c2b6a89.js.map +1 -0
  25. package/_internal/Slides-2d267d8c.js +679 -0
  26. package/_internal/Slides-2d267d8c.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-0872250e.js +314 -0
  30. package/_internal/Thumbnail-0872250e.js.map +1 -0
  31. package/_internal/check-circle-de24f857.js +4 -0
  32. package/_internal/check-circle-de24f857.js.map +1 -0
  33. package/_internal/chevron-right-827b804a.js +6 -0
  34. package/_internal/chevron-right-827b804a.js.map +1 -0
  35. package/_internal/chevron-up-0b9c76cb.js +6 -0
  36. package/_internal/chevron-up-0b9c76cb.js.map +1 -0
  37. package/_internal/close-circle-ef5d1aac.js +4 -0
  38. package/_internal/close-circle-ef5d1aac.js.map +1 -0
  39. package/_internal/close-eaf6c45a.js +4 -0
  40. package/_internal/close-eaf6c45a.js.map +1 -0
  41. package/_internal/components/alert-dialog-a6ed922b.js +163 -0
  42. package/_internal/components/alert-dialog-a6ed922b.js.map +1 -0
  43. package/_internal/components/autocomplete-c97b7698.js +261 -0
  44. package/_internal/components/autocomplete-c97b7698.js.map +1 -0
  45. package/_internal/components/avatar-d2214a61.js +83 -0
  46. package/_internal/components/avatar-d2214a61.js.map +1 -0
  47. package/_internal/components/badge-8390e590.js +81 -0
  48. package/_internal/components/badge-8390e590.js.map +1 -0
  49. package/_internal/components/button-b05f8f0c.js +47 -0
  50. package/_internal/components/button-b05f8f0c.js.map +1 -0
  51. package/_internal/components/checkbox-346834f8.js +143 -0
  52. package/_internal/components/checkbox-346834f8.js.map +1 -0
  53. package/_internal/components/chip-e3a6330f.js +102 -0
  54. package/_internal/components/chip-e3a6330f.js.map +1 -0
  55. package/_internal/components/comment-block-b1acc69f.js +138 -0
  56. package/_internal/components/comment-block-b1acc69f.js.map +1 -0
  57. package/_internal/components/date-picker-582c4925.js +2 -0
  58. package/_internal/components/date-picker-582c4925.js.map +1 -0
  59. package/_internal/components/dialog-785646aa.js +238 -0
  60. package/_internal/components/dialog-785646aa.js.map +1 -0
  61. package/_internal/components/divider-116af6b9.js +50 -0
  62. package/_internal/components/divider-116af6b9.js.map +1 -0
  63. package/_internal/components/drag-handle-6b073866.js +52 -0
  64. package/_internal/components/drag-handle-6b073866.js.map +1 -0
  65. package/_internal/components/dropdown-c0c0cfe8.js +147 -0
  66. package/_internal/components/dropdown-c0c0cfe8.js.map +1 -0
  67. package/_internal/components/expansion-panel-1de1d1ff.js +167 -0
  68. package/_internal/components/expansion-panel-1de1d1ff.js.map +1 -0
  69. package/_internal/components/flag-7c9d3abf.js +59 -0
  70. package/_internal/components/flag-7c9d3abf.js.map +1 -0
  71. package/_internal/components/flex-box-10423fa5.js +56 -0
  72. package/_internal/components/flex-box-10423fa5.js.map +1 -0
  73. package/_internal/components/generic-block-b79f163a.js +128 -0
  74. package/_internal/components/generic-block-b79f163a.js.map +1 -0
  75. package/_internal/components/grid-6f1b5a41.js +104 -0
  76. package/_internal/components/grid-6f1b5a41.js.map +1 -0
  77. package/_internal/components/grid-column-ee504283.js +58 -0
  78. package/_internal/components/grid-column-ee504283.js.map +1 -0
  79. package/_internal/components/heading-d4c66a34.js +53 -0
  80. package/_internal/components/heading-d4c66a34.js.map +1 -0
  81. package/_internal/components/icon-7c79ab42.js +2 -0
  82. package/_internal/components/icon-7c79ab42.js.map +1 -0
  83. package/_internal/components/image-block-762eb669.js +110 -0
  84. package/_internal/components/image-block-762eb669.js.map +1 -0
  85. package/_internal/components/image-lightbox-10fef304.js +759 -0
  86. package/_internal/components/image-lightbox-10fef304.js.map +1 -0
  87. package/_internal/components/inline-list-e6f19a98.js +74 -0
  88. package/_internal/components/inline-list-e6f19a98.js.map +1 -0
  89. package/_internal/components/input-helper-64153099.js +71 -0
  90. package/_internal/components/input-helper-64153099.js.map +1 -0
  91. package/_internal/components/input-label-2feb0bb0.js +59 -0
  92. package/_internal/components/input-label-2feb0bb0.js.map +1 -0
  93. package/_internal/components/lightbox-dcc9a7a0.js +155 -0
  94. package/_internal/components/lightbox-dcc9a7a0.js.map +1 -0
  95. package/_internal/components/link-f9421eab.js +72 -0
  96. package/_internal/components/link-f9421eab.js.map +1 -0
  97. package/_internal/components/link-preview-5c7e3878.js +117 -0
  98. package/_internal/components/link-preview-5c7e3878.js.map +1 -0
  99. package/_internal/components/list-f29e54b7.js +71 -0
  100. package/_internal/components/list-f29e54b7.js.map +1 -0
  101. package/_internal/components/message-aa3e3f76.js +98 -0
  102. package/_internal/components/message-aa3e3f76.js.map +1 -0
  103. package/_internal/components/mosaic-b4b35fa7.js +94 -0
  104. package/_internal/components/mosaic-b4b35fa7.js.map +1 -0
  105. package/_internal/components/navigation-8357dbe6.js +225 -0
  106. package/_internal/components/navigation-8357dbe6.js.map +1 -0
  107. package/_internal/components/notification-ec4cf95f.js +143 -0
  108. package/_internal/components/notification-ec4cf95f.js.map +1 -0
  109. package/_internal/components/popover-a674dd8d.js +3 -0
  110. package/_internal/components/popover-a674dd8d.js.map +1 -0
  111. package/_internal/components/post-block-bb3d3cbf.js +109 -0
  112. package/_internal/components/post-block-bb3d3cbf.js.map +1 -0
  113. package/_internal/components/progress-f39c3fa2.js +182 -0
  114. package/_internal/components/progress-f39c3fa2.js.map +1 -0
  115. package/_internal/components/progress-tracker-997931ac.js +309 -0
  116. package/_internal/components/progress-tracker-997931ac.js.map +1 -0
  117. package/_internal/components/radio-button-559a4863.js +149 -0
  118. package/_internal/components/radio-button-559a4863.js.map +1 -0
  119. package/_internal/components/select-8295a416.js +457 -0
  120. package/_internal/components/select-8295a416.js.map +1 -0
  121. package/_internal/components/side-navigation-40ee8bda.js +164 -0
  122. package/_internal/components/side-navigation-40ee8bda.js.map +1 -0
  123. package/_internal/components/skeleton-c66516ee.js +166 -0
  124. package/_internal/components/skeleton-c66516ee.js.map +1 -0
  125. package/_internal/components/slider-efbfbc45.js +311 -0
  126. package/_internal/components/slider-efbfbc45.js.map +1 -0
  127. package/_internal/components/slideshow-c5faf531.js +151 -0
  128. package/_internal/components/slideshow-c5faf531.js.map +1 -0
  129. package/_internal/components/switch-a26a5a72.js +121 -0
  130. package/_internal/components/switch-a26a5a72.js.map +1 -0
  131. package/_internal/components/table-c43ec4a5.js +297 -0
  132. package/_internal/components/table-c43ec4a5.js.map +1 -0
  133. package/_internal/components/tabs-4037fe57.js +298 -0
  134. package/_internal/components/tabs-4037fe57.js.map +1 -0
  135. package/_internal/components/text-851c62f8.js +2 -0
  136. package/_internal/components/text-851c62f8.js.map +1 -0
  137. package/_internal/components/text-field-82adaeb4.js +359 -0
  138. package/_internal/components/text-field-82adaeb4.js.map +1 -0
  139. package/_internal/components/thumbnail-f1784929.js +42 -0
  140. package/_internal/components/thumbnail-f1784929.js.map +1 -0
  141. package/_internal/components/toolbar-a43533a2.js +61 -0
  142. package/_internal/components/toolbar-a43533a2.js.map +1 -0
  143. package/_internal/components/tooltip-aa48ddda.js +327 -0
  144. package/_internal/components/tooltip-aa48ddda.js.map +1 -0
  145. package/_internal/components/uploader-7bc3adaa.js +153 -0
  146. package/_internal/components/uploader-7bc3adaa.js.map +1 -0
  147. package/_internal/components/user-block-fc03f01a.js +144 -0
  148. package/_internal/components/user-block-fc03f01a.js.map +1 -0
  149. package/_internal/constants-b9e57936.js +2155 -0
  150. package/_internal/constants-b9e57936.js.map +1 -0
  151. package/_internal/constants-d0e3f49e.js +24 -0
  152. package/_internal/constants-d0e3f49e.js.map +1 -0
  153. package/_internal/context-9d1336a1.js +19 -0
  154. package/_internal/context-9d1336a1.js.map +1 -0
  155. package/_internal/forwardRef-15f62847.js +70 -0
  156. package/_internal/forwardRef-15f62847.js.map +1 -0
  157. package/_internal/getFocusableElements-230173a8.js +13 -0
  158. package/_internal/getFocusableElements-230173a8.js.map +1 -0
  159. package/_internal/index-192f8ada.js +103 -0
  160. package/_internal/index-192f8ada.js.map +1 -0
  161. package/_internal/index-8e7fecb5.js +436 -0
  162. package/_internal/index-8e7fecb5.js.map +1 -0
  163. package/_internal/index-b06353f2.js +117 -0
  164. package/_internal/index-b06353f2.js.map +1 -0
  165. package/_internal/information-49bbeed3.js +6 -0
  166. package/_internal/information-49bbeed3.js.map +1 -0
  167. package/_internal/isComponent-b9762ff1.js +18 -0
  168. package/_internal/isComponent-b9762ff1.js.map +1 -0
  169. package/_internal/isComponentType-e806b848.js +9 -0
  170. package/_internal/isComponentType-e806b848.js.map +1 -0
  171. package/_internal/mergeRefs-f0d7d6ea.js +30 -0
  172. package/_internal/mergeRefs-f0d7d6ea.js.map +1 -0
  173. package/_internal/state-db358714.js +130 -0
  174. package/_internal/state-db358714.js.map +1 -0
  175. package/_internal/useBooleanState-2a3d237c.js +12 -0
  176. package/_internal/useBooleanState-2a3d237c.js.map +1 -0
  177. package/_internal/useCallbackOnEscape-0b220f9c.js +62 -0
  178. package/_internal/useCallbackOnEscape-0b220f9c.js.map +1 -0
  179. package/_internal/useDisableBodyScroll-36bd7352.js +219 -0
  180. package/_internal/useDisableBodyScroll-36bd7352.js.map +1 -0
  181. package/_internal/useDisableStateProps-69e16b7c.js +36 -0
  182. package/_internal/useDisableStateProps-69e16b7c.js.map +1 -0
  183. package/_internal/useFocusTrap-3114e5e8.js +112 -0
  184. package/_internal/useFocusTrap-3114e5e8.js.map +1 -0
  185. package/_internal/useId-3a1facc0.js +18 -0
  186. package/_internal/useId-3a1facc0.js.map +1 -0
  187. package/_internal/useRovingTabIndex-7daf0f24.js +77 -0
  188. package/_internal/useRovingTabIndex-7daf0f24.js.map +1 -0
  189. package/_internal/useTransitionVisibility-321fdbfa.js +50 -0
  190. package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
  191. package/_internal/wrapChildrenIconWithSpaces-f1e91251.js +20 -0
  192. package/_internal/wrapChildrenIconWithSpaces-f1e91251.js.map +1 -0
  193. package/index.d.ts +11 -367
  194. package/index.js +65 -14486
  195. package/index.js.map +1 -1
  196. package/package.json +4 -11
  197. package/utils/index.d.ts +1 -1
  198. package/utils/index.js +3 -1
  199. package/utils/index.js.map +1 -1
  200. package/_internal/Falsy.d.ts +0 -7
  201. package/_internal/index.js +0 -236
  202. package/_internal/index.js.map +0 -1
  203. package/src/components/alert-dialog/AlertDialog.stories.tsx +0 -127
  204. package/src/components/alert-dialog/AlertDialog.test.tsx +0 -34
  205. package/src/components/alert-dialog/AlertDialog.tsx +0 -189
  206. package/src/components/alert-dialog/index.ts +0 -1
  207. package/src/components/autocomplete/Autocomplete.stories.tsx +0 -75
  208. package/src/components/autocomplete/Autocomplete.test.tsx +0 -99
  209. package/src/components/autocomplete/Autocomplete.tsx +0 -294
  210. package/src/components/autocomplete/AutocompleteMultiple.stories.tsx +0 -167
  211. package/src/components/autocomplete/AutocompleteMultiple.test.tsx +0 -61
  212. package/src/components/autocomplete/AutocompleteMultiple.tsx +0 -156
  213. package/src/components/autocomplete/__mockData__/index.ts +0 -39
  214. package/src/components/autocomplete/index.ts +0 -2
  215. package/src/components/avatar/Avatar.stories.tsx +0 -119
  216. package/src/components/avatar/Avatar.test.tsx +0 -32
  217. package/src/components/avatar/Avatar.tsx +0 -114
  218. package/src/components/avatar/index.ts +0 -1
  219. package/src/components/badge/Badge.stories.tsx +0 -69
  220. package/src/components/badge/Badge.test.tsx +0 -45
  221. package/src/components/badge/Badge.tsx +0 -58
  222. package/src/components/badge/BadgeWrapper.stories.tsx +0 -75
  223. package/src/components/badge/BadgeWrapper.test.tsx +0 -47
  224. package/src/components/badge/BadgeWrapper.tsx +0 -37
  225. package/src/components/badge/index.ts +0 -2
  226. package/src/components/button/Button.stories.tsx +0 -355
  227. package/src/components/button/Button.test.tsx +0 -125
  228. package/src/components/button/Button.tsx +0 -101
  229. package/src/components/button/ButtonGroup.stories.tsx +0 -52
  230. package/src/components/button/ButtonGroup.test.tsx +0 -41
  231. package/src/components/button/ButtonGroup.tsx +0 -50
  232. package/src/components/button/ButtonRoot.tsx +0 -163
  233. package/src/components/button/IconButton.stories.tsx +0 -52
  234. package/src/components/button/IconButton.test.tsx +0 -66
  235. package/src/components/button/IconButton.tsx +0 -91
  236. package/src/components/button/index.ts +0 -4
  237. package/src/components/checkbox/Checkbox.stories.tsx +0 -64
  238. package/src/components/checkbox/Checkbox.test.tsx +0 -154
  239. package/src/components/checkbox/Checkbox.tsx +0 -164
  240. package/src/components/checkbox/index.ts +0 -1
  241. package/src/components/chip/Chip.stories.tsx +0 -164
  242. package/src/components/chip/Chip.test.tsx +0 -243
  243. package/src/components/chip/Chip.tsx +0 -168
  244. package/src/components/chip/ChipGroup.stories.tsx +0 -47
  245. package/src/components/chip/ChipGroup.test.tsx +0 -37
  246. package/src/components/chip/ChipGroup.tsx +0 -60
  247. package/src/components/chip/index.ts +0 -2
  248. package/src/components/comment-block/CommentBlock.stories.tsx +0 -91
  249. package/src/components/comment-block/CommentBlock.test.tsx +0 -28
  250. package/src/components/comment-block/CommentBlock.tsx +0 -172
  251. package/src/components/comment-block/index.ts +0 -1
  252. package/src/components/date-picker/DatePicker.stories.tsx +0 -118
  253. package/src/components/date-picker/DatePicker.test.tsx +0 -34
  254. package/src/components/date-picker/DatePicker.tsx +0 -52
  255. package/src/components/date-picker/DatePickerControlled.test.tsx +0 -91
  256. package/src/components/date-picker/DatePickerControlled.tsx +0 -259
  257. package/src/components/date-picker/DatePickerField.stories.tsx +0 -100
  258. package/src/components/date-picker/DatePickerField.test.tsx +0 -70
  259. package/src/components/date-picker/DatePickerField.tsx +0 -135
  260. package/src/components/date-picker/constants.ts +0 -11
  261. package/src/components/date-picker/index.ts +0 -4
  262. package/src/components/date-picker/types.ts +0 -28
  263. package/src/components/dialog/Dialog.stories.tsx +0 -318
  264. package/src/components/dialog/Dialog.test.tsx +0 -97
  265. package/src/components/dialog/Dialog.tsx +0 -288
  266. package/src/components/dialog/index.ts +0 -1
  267. package/src/components/divider/Divider.test.tsx +0 -51
  268. package/src/components/divider/Divider.tsx +0 -50
  269. package/src/components/divider/index.ts +0 -1
  270. package/src/components/drag-handle/DragHandle.test.tsx +0 -36
  271. package/src/components/drag-handle/DragHandle.tsx +0 -51
  272. package/src/components/drag-handle/index.ts +0 -1
  273. package/src/components/dropdown/Dropdown.stories.tsx +0 -31
  274. package/src/components/dropdown/Dropdown.test.tsx +0 -66
  275. package/src/components/dropdown/Dropdown.tsx +0 -186
  276. package/src/components/dropdown/index.ts +0 -1
  277. package/src/components/expansion-panel/ExpansionPanel.stories.tsx +0 -91
  278. package/src/components/expansion-panel/ExpansionPanel.test.tsx +0 -185
  279. package/src/components/expansion-panel/ExpansionPanel.tsx +0 -195
  280. package/src/components/expansion-panel/index.ts +0 -1
  281. package/src/components/flag/Flag.stories.tsx +0 -48
  282. package/src/components/flag/Flag.test.tsx +0 -62
  283. package/src/components/flag/Flag.tsx +0 -52
  284. package/src/components/flag/index.ts +0 -1
  285. package/src/components/flex-box/FlexBox.stories.tsx +0 -156
  286. package/src/components/flex-box/FlexBox.test.tsx +0 -24
  287. package/src/components/flex-box/FlexBox.tsx +0 -100
  288. package/src/components/flex-box/index.ts +0 -1
  289. package/src/components/generic-block/GenericBlock.stories.jsx +0 -128
  290. package/src/components/generic-block/GenericBlock.test.tsx +0 -156
  291. package/src/components/generic-block/GenericBlock.tsx +0 -225
  292. package/src/components/generic-block/constants.ts +0 -9
  293. package/src/components/generic-block/index.ts +0 -2
  294. package/src/components/grid/Grid.tsx +0 -83
  295. package/src/components/grid/GridItem.tsx +0 -55
  296. package/src/components/grid/index.ts +0 -2
  297. package/src/components/grid-column/GridColumn.stories.tsx +0 -45
  298. package/src/components/grid-column/GridColumn.test.jsx +0 -56
  299. package/src/components/grid-column/GridColumn.tsx +0 -83
  300. package/src/components/grid-column/index.ts +0 -1
  301. package/src/components/heading/Heading.stories.tsx +0 -69
  302. package/src/components/heading/Heading.test.tsx +0 -82
  303. package/src/components/heading/Heading.tsx +0 -65
  304. package/src/components/heading/HeadingLevelProvider.tsx +0 -30
  305. package/src/components/heading/constants.ts +0 -16
  306. package/src/components/heading/context.tsx +0 -13
  307. package/src/components/heading/index.ts +0 -3
  308. package/src/components/heading/useHeadingLevel.tsx +0 -8
  309. package/src/components/icon/Icon.stories.tsx +0 -73
  310. package/src/components/icon/Icon.test.tsx +0 -125
  311. package/src/components/icon/Icon.tsx +0 -133
  312. package/src/components/icon/index.ts +0 -1
  313. package/src/components/image-block/ImageBlock.stories.tsx +0 -117
  314. package/src/components/image-block/ImageBlock.test.tsx +0 -58
  315. package/src/components/image-block/ImageBlock.tsx +0 -142
  316. package/src/components/image-block/ImageCaption.tsx +0 -115
  317. package/src/components/image-block/index.ts +0 -1
  318. package/src/components/image-lightbox/ImageLightbox.stories.tsx +0 -160
  319. package/src/components/image-lightbox/ImageLightbox.test.tsx +0 -254
  320. package/src/components/image-lightbox/ImageLightbox.tsx +0 -90
  321. package/src/components/image-lightbox/constants.ts +0 -11
  322. package/src/components/image-lightbox/index.ts +0 -2
  323. package/src/components/image-lightbox/internal/ImageSlide.tsx +0 -107
  324. package/src/components/image-lightbox/internal/ImageSlideshow.tsx +0 -164
  325. package/src/components/image-lightbox/internal/useAnimateScroll.ts +0 -55
  326. package/src/components/image-lightbox/internal/usePointerZoom.ts +0 -148
  327. package/src/components/image-lightbox/types.ts +0 -48
  328. package/src/components/image-lightbox/useImageLightbox.tsx +0 -141
  329. package/src/components/inline-list/InlineList.stories.tsx +0 -77
  330. package/src/components/inline-list/InlineList.test.tsx +0 -52
  331. package/src/components/inline-list/InlineList.tsx +0 -96
  332. package/src/components/inline-list/index.ts +0 -1
  333. package/src/components/input-helper/InputHelper.stories.tsx +0 -35
  334. package/src/components/input-helper/InputHelper.test.tsx +0 -55
  335. package/src/components/input-helper/InputHelper.tsx +0 -65
  336. package/src/components/input-helper/constants.ts +0 -11
  337. package/src/components/input-helper/index.ts +0 -1
  338. package/src/components/input-label/InputLabel.stories.tsx +0 -45
  339. package/src/components/input-label/InputLabel.test.tsx +0 -59
  340. package/src/components/input-label/InputLabel.tsx +0 -69
  341. package/src/components/input-label/index.ts +0 -1
  342. package/src/components/lightbox/Lightbox.stories.tsx +0 -101
  343. package/src/components/lightbox/Lightbox.test.tsx +0 -53
  344. package/src/components/lightbox/Lightbox.tsx +0 -180
  345. package/src/components/lightbox/index.ts +0 -1
  346. package/src/components/link/Link.stories.tsx +0 -195
  347. package/src/components/link/Link.test.tsx +0 -127
  348. package/src/components/link/Link.tsx +0 -106
  349. package/src/components/link/index.ts +0 -1
  350. package/src/components/link-preview/LinkPreview.stories.tsx +0 -61
  351. package/src/components/link-preview/LinkPreview.test.tsx +0 -105
  352. package/src/components/link-preview/LinkPreview.tsx +0 -158
  353. package/src/components/link-preview/index.ts +0 -1
  354. package/src/components/list/List.stories.tsx +0 -116
  355. package/src/components/list/List.test.tsx +0 -18
  356. package/src/components/list/List.tsx +0 -104
  357. package/src/components/list/ListDivider.stories.tsx +0 -12
  358. package/src/components/list/ListDivider.test.tsx +0 -22
  359. package/src/components/list/ListDivider.tsx +0 -35
  360. package/src/components/list/ListItem.stories.tsx +0 -66
  361. package/src/components/list/ListItem.test.tsx +0 -93
  362. package/src/components/list/ListItem.tsx +0 -157
  363. package/src/components/list/ListSubheader.stories.tsx +0 -11
  364. package/src/components/list/ListSubheader.test.tsx +0 -21
  365. package/src/components/list/ListSubheader.tsx +0 -44
  366. package/src/components/list/index.ts +0 -4
  367. package/src/components/list/useInteractiveList.tsx +0 -202
  368. package/src/components/message/Message.stories.tsx +0 -72
  369. package/src/components/message/Message.test.tsx +0 -76
  370. package/src/components/message/Message.tsx +0 -100
  371. package/src/components/message/index.ts +0 -1
  372. package/src/components/mosaic/Mosaic.stories.tsx +0 -89
  373. package/src/components/mosaic/Mosaic.test.tsx +0 -77
  374. package/src/components/mosaic/Mosaic.tsx +0 -98
  375. package/src/components/mosaic/index.ts +0 -1
  376. package/src/components/navigation/Navigation.stories.tsx +0 -234
  377. package/src/components/navigation/Navigation.test.tsx +0 -65
  378. package/src/components/navigation/Navigation.tsx +0 -79
  379. package/src/components/navigation/NavigationItem.test.tsx +0 -35
  380. package/src/components/navigation/NavigationItem.tsx +0 -82
  381. package/src/components/navigation/NavigationSection.test.tsx +0 -137
  382. package/src/components/navigation/NavigationSection.tsx +0 -108
  383. package/src/components/navigation/context.tsx +0 -7
  384. package/src/components/navigation/index.ts +0 -1
  385. package/src/components/notification/Notification.test.tsx +0 -94
  386. package/src/components/notification/Notification.tsx +0 -138
  387. package/src/components/notification/Notifications.stories.tsx +0 -92
  388. package/src/components/notification/constants.ts +0 -28
  389. package/src/components/notification/index.ts +0 -1
  390. package/src/components/popover/Popover.stories.tsx +0 -264
  391. package/src/components/popover/Popover.test.tsx +0 -62
  392. package/src/components/popover/Popover.tsx +0 -201
  393. package/src/components/popover/constants.ts +0 -62
  394. package/src/components/popover/index.ts +0 -3
  395. package/src/components/popover/usePopoverStyle.tsx +0 -184
  396. package/src/components/popover/useRestoreFocusOnClose.tsx +0 -47
  397. package/src/components/popover-dialog/PopoverDialog.stories.tsx +0 -64
  398. package/src/components/popover-dialog/PopoverDialog.test.tsx +0 -139
  399. package/src/components/popover-dialog/PopoverDialog.tsx +0 -74
  400. package/src/components/popover-dialog/index.tsx +0 -1
  401. package/src/components/post-block/PostBlock.test.tsx +0 -27
  402. package/src/components/post-block/PostBlock.tsx +0 -122
  403. package/src/components/post-block/index.ts +0 -1
  404. package/src/components/progress/Progress.tsx +0 -68
  405. package/src/components/progress/ProgressCircular.stories.tsx +0 -43
  406. package/src/components/progress/ProgressCircular.test.tsx +0 -46
  407. package/src/components/progress/ProgressCircular.tsx +0 -82
  408. package/src/components/progress/ProgressLinear.stories.tsx +0 -12
  409. package/src/components/progress/ProgressLinear.test.tsx +0 -30
  410. package/src/components/progress/ProgressLinear.tsx +0 -50
  411. package/src/components/progress/index.ts +0 -3
  412. package/src/components/progress-tracker/ProgressTracker.stories.tsx +0 -145
  413. package/src/components/progress-tracker/ProgressTracker.test.tsx +0 -42
  414. package/src/components/progress-tracker/ProgressTracker.tsx +0 -87
  415. package/src/components/progress-tracker/ProgressTrackerProvider.test.tsx +0 -65
  416. package/src/components/progress-tracker/ProgressTrackerProvider.tsx +0 -67
  417. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +0 -36
  418. package/src/components/progress-tracker/ProgressTrackerStep.tsx +0 -159
  419. package/src/components/progress-tracker/ProgressTrackerStepPanel.test.tsx +0 -34
  420. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +0 -67
  421. package/src/components/progress-tracker/index.ts +0 -4
  422. package/src/components/radio-button/RadioButton.stories.tsx +0 -71
  423. package/src/components/radio-button/RadioButton.test.tsx +0 -143
  424. package/src/components/radio-button/RadioButton.tsx +0 -143
  425. package/src/components/radio-button/RadioGroup.stories.tsx +0 -39
  426. package/src/components/radio-button/RadioGroup.test.tsx +0 -29
  427. package/src/components/radio-button/RadioGroup.tsx +0 -44
  428. package/src/components/radio-button/index.ts +0 -2
  429. package/src/components/select/Select.stories.tsx +0 -385
  430. package/src/components/select/Select.test.tsx +0 -199
  431. package/src/components/select/Select.tsx +0 -199
  432. package/src/components/select/SelectMultiple.stories.tsx +0 -315
  433. package/src/components/select/SelectMultiple.test.tsx +0 -213
  434. package/src/components/select/SelectMultiple.tsx +0 -206
  435. package/src/components/select/WithSelectContext.tsx +0 -147
  436. package/src/components/select/constants.ts +0 -55
  437. package/src/components/select/index.ts +0 -2
  438. package/src/components/side-navigation/SideNavigation.stories.tsx +0 -191
  439. package/src/components/side-navigation/SideNavigation.test.tsx +0 -37
  440. package/src/components/side-navigation/SideNavigation.tsx +0 -52
  441. package/src/components/side-navigation/SideNavigationItem.stories.tsx +0 -133
  442. package/src/components/side-navigation/SideNavigationItem.test.tsx +0 -136
  443. package/src/components/side-navigation/SideNavigationItem.tsx +0 -165
  444. package/src/components/side-navigation/index.ts +0 -2
  445. package/src/components/skeleton/SkeletonCircle.stories.tsx +0 -41
  446. package/src/components/skeleton/SkeletonCircle.test.tsx +0 -27
  447. package/src/components/skeleton/SkeletonCircle.tsx +0 -52
  448. package/src/components/skeleton/SkeletonRectangle.stories.tsx +0 -82
  449. package/src/components/skeleton/SkeletonRectangle.test.tsx +0 -27
  450. package/src/components/skeleton/SkeletonRectangle.tsx +0 -88
  451. package/src/components/skeleton/SkeletonTypography.stories.tsx +0 -19
  452. package/src/components/skeleton/SkeletonTypography.test.tsx +0 -27
  453. package/src/components/skeleton/SkeletonTypography.tsx +0 -59
  454. package/src/components/skeleton/index.ts +0 -3
  455. package/src/components/slider/Slider.stories.tsx +0 -45
  456. package/src/components/slider/Slider.test.tsx +0 -29
  457. package/src/components/slider/Slider.tsx +0 -299
  458. package/src/components/slider/index.ts +0 -2
  459. package/src/components/slideshow/Slides.tsx +0 -130
  460. package/src/components/slideshow/Slideshow.stories.tsx +0 -179
  461. package/src/components/slideshow/Slideshow.test.tsx +0 -35
  462. package/src/components/slideshow/Slideshow.tsx +0 -173
  463. package/src/components/slideshow/SlideshowControls.stories.tsx +0 -100
  464. package/src/components/slideshow/SlideshowControls.tsx +0 -243
  465. package/src/components/slideshow/SlideshowItem.tsx +0 -44
  466. package/src/components/slideshow/SlideshowItemGroup.tsx +0 -60
  467. package/src/components/slideshow/constants.ts +0 -24
  468. package/src/components/slideshow/index.ts +0 -4
  469. package/src/components/slideshow/useKeyNavigate.ts +0 -28
  470. package/src/components/slideshow/usePaginationVisibleRange.ts +0 -37
  471. package/src/components/slideshow/useSlideFocusManagement.tsx +0 -92
  472. package/src/components/slideshow/useSwipeNavigate.ts +0 -18
  473. package/src/components/switch/Switch.stories.tsx +0 -49
  474. package/src/components/switch/Switch.test.tsx +0 -144
  475. package/src/components/switch/Switch.tsx +0 -145
  476. package/src/components/switch/index.ts +0 -1
  477. package/src/components/table/Table.test.tsx +0 -29
  478. package/src/components/table/Table.tsx +0 -59
  479. package/src/components/table/TableBody.test.tsx +0 -30
  480. package/src/components/table/TableBody.tsx +0 -42
  481. package/src/components/table/TableCell.test.tsx +0 -72
  482. package/src/components/table/TableCell.tsx +0 -130
  483. package/src/components/table/TableHeader.test.tsx +0 -30
  484. package/src/components/table/TableHeader.tsx +0 -48
  485. package/src/components/table/TableRow.test.tsx +0 -40
  486. package/src/components/table/TableRow.tsx +0 -71
  487. package/src/components/table/index.ts +0 -5
  488. package/src/components/tabs/Tab.test.tsx +0 -50
  489. package/src/components/tabs/Tab.tsx +0 -133
  490. package/src/components/tabs/TabList.test.tsx +0 -49
  491. package/src/components/tabs/TabList.tsx +0 -94
  492. package/src/components/tabs/TabPanel.test.tsx +0 -37
  493. package/src/components/tabs/TabPanel.tsx +0 -67
  494. package/src/components/tabs/TabProvider.test.tsx +0 -161
  495. package/src/components/tabs/TabProvider.tsx +0 -67
  496. package/src/components/tabs/Tabs.stories.tsx +0 -170
  497. package/src/components/tabs/index.ts +0 -4
  498. package/src/components/tabs/state.ts +0 -114
  499. package/src/components/tabs/test-utils.ts +0 -39
  500. package/src/components/text/Text.stories.tsx +0 -177
  501. package/src/components/text/Text.test.tsx +0 -92
  502. package/src/components/text/Text.tsx +0 -139
  503. package/src/components/text/index.ts +0 -1
  504. package/src/components/text-field/TextField.stories.tsx +0 -180
  505. package/src/components/text-field/TextField.test.tsx +0 -298
  506. package/src/components/text-field/TextField.tsx +0 -493
  507. package/src/components/text-field/index.ts +0 -1
  508. package/src/components/thumbnail/Thumbnail.stories.tsx +0 -448
  509. package/src/components/thumbnail/Thumbnail.test.tsx +0 -88
  510. package/src/components/thumbnail/Thumbnail.tsx +0 -248
  511. package/src/components/thumbnail/index.ts +0 -3
  512. package/src/components/thumbnail/types.ts +0 -48
  513. package/src/components/thumbnail/useFocusPointStyle.test.ts +0 -92
  514. package/src/components/thumbnail/useFocusPointStyle.tsx +0 -107
  515. package/src/components/thumbnail/useImageLoad.ts +0 -40
  516. package/src/components/toolbar/Toolbar.tsx +0 -68
  517. package/src/components/toolbar/index.ts +0 -1
  518. package/src/components/tooltip/Tooltip.stories.tsx +0 -118
  519. package/src/components/tooltip/Tooltip.test.tsx +0 -417
  520. package/src/components/tooltip/Tooltip.tsx +0 -165
  521. package/src/components/tooltip/constants.ts +0 -8
  522. package/src/components/tooltip/context.tsx +0 -17
  523. package/src/components/tooltip/index.ts +0 -1
  524. package/src/components/tooltip/useInjectTooltipRef.tsx +0 -55
  525. package/src/components/tooltip/useTooltipOpen.tsx +0 -143
  526. package/src/components/uploader/Uploader.stories.tsx +0 -109
  527. package/src/components/uploader/Uploader.test.tsx +0 -146
  528. package/src/components/uploader/Uploader.tsx +0 -177
  529. package/src/components/uploader/index.ts +0 -1
  530. package/src/components/user-block/UserBlock.stories.tsx +0 -133
  531. package/src/components/user-block/UserBlock.test.tsx +0 -106
  532. package/src/components/user-block/UserBlock.tsx +0 -193
  533. package/src/components/user-block/index.ts +0 -1
  534. package/src/constants.ts +0 -27
  535. package/src/hooks/useBooleanState.tsx +0 -13
  536. package/src/hooks/useCallbackOnEscape.ts +0 -34
  537. package/src/hooks/useChipGroupNavigation.tsx +0 -75
  538. package/src/hooks/useClickAway.tsx +0 -48
  539. package/src/hooks/useDisableBodyScroll.ts +0 -28
  540. package/src/hooks/useEventCallback.tsx +0 -17
  541. package/src/hooks/useFocus.tsx +0 -21
  542. package/src/hooks/useFocusTrap.ts +0 -93
  543. package/src/hooks/useFocusWithin.ts +0 -33
  544. package/src/hooks/useId.test.tsx +0 -22
  545. package/src/hooks/useId.ts +0 -15
  546. package/src/hooks/useImageSize.ts +0 -17
  547. package/src/hooks/useInfiniteScroll.tsx +0 -60
  548. package/src/hooks/useIntersectionObserver.tsx +0 -43
  549. package/src/hooks/useInterval.tsx +0 -31
  550. package/src/hooks/useKeyboardListNavigation.tsx +0 -204
  551. package/src/hooks/useListenFocus.tsx +0 -26
  552. package/src/hooks/useOverflowTooltipLabel.tsx +0 -32
  553. package/src/hooks/usePopper.ts +0 -12
  554. package/src/hooks/usePreviousValue.ts +0 -12
  555. package/src/hooks/useRovingTabIndex.tsx +0 -90
  556. package/src/hooks/useSizeOnWindowResize.ts +0 -30
  557. package/src/hooks/useSlideshowControls.ts +0 -246
  558. package/src/hooks/useStopPropagation.ts +0 -21
  559. package/src/hooks/useTransitionVisibility.ts +0 -48
  560. package/src/index.ts +0 -63
  561. package/src/stories/controls/color.ts +0 -7
  562. package/src/stories/controls/element.ts +0 -6
  563. package/src/stories/controls/focusPoint.ts +0 -1
  564. package/src/stories/controls/icons.ts +0 -126
  565. package/src/stories/controls/image.ts +0 -84
  566. package/src/stories/controls/selectArgType.ts +0 -8
  567. package/src/stories/controls/theme.ts +0 -3
  568. package/src/stories/controls/typography.ts +0 -5
  569. package/src/stories/controls/withUndefined.ts +0 -1
  570. package/src/stories/decorators/withChromaticForceScreenSize.tsx +0 -7
  571. package/src/stories/decorators/withCombinations.tsx +0 -132
  572. package/src/stories/decorators/withNestedProps.tsx +0 -22
  573. package/src/stories/decorators/withResizableBox.tsx +0 -21
  574. package/src/stories/decorators/withThemedBackground.tsx +0 -16
  575. package/src/stories/decorators/withValueOnChange.tsx +0 -18
  576. package/src/stories/decorators/withWrapper.tsx +0 -19
  577. package/src/stories/generated/Autocomplete/Demos.stories.tsx +0 -7
  578. package/src/stories/generated/Avatar/Demos.stories.tsx +0 -7
  579. package/src/stories/generated/Badge/Demos.stories.tsx +0 -9
  580. package/src/stories/generated/Button/Demos.stories.tsx +0 -11
  581. package/src/stories/generated/Checkbox/Demos.stories.tsx +0 -6
  582. package/src/stories/generated/Chip/Demos.stories.tsx +0 -11
  583. package/src/stories/generated/CommentBlock/Demos.stories.tsx +0 -8
  584. package/src/stories/generated/DatePicker/Demos.stories.tsx +0 -8
  585. package/src/stories/generated/Dialog/Demos.stories.tsx +0 -10
  586. package/src/stories/generated/Divider/Demos.stories.tsx +0 -6
  587. package/src/stories/generated/Dropdown/Demos.stories.tsx +0 -8
  588. package/src/stories/generated/ExpansionPanel/Demos.stories.tsx +0 -9
  589. package/src/stories/generated/Flag/Demos.stories.tsx +0 -6
  590. package/src/stories/generated/GenericBlock/Demos.stories.tsx +0 -8
  591. package/src/stories/generated/Heading/Demos.stories.tsx +0 -6
  592. package/src/stories/generated/Icon/Demos.stories.tsx +0 -8
  593. package/src/stories/generated/ImageBlock/Demos.stories.tsx +0 -9
  594. package/src/stories/generated/ImageLightbox/Demos.stories.tsx +0 -6
  595. package/src/stories/generated/Lightbox/Demos.stories.tsx +0 -6
  596. package/src/stories/generated/LinkPreview/Demos.stories.tsx +0 -7
  597. package/src/stories/generated/List/Demos.stories.tsx +0 -11
  598. package/src/stories/generated/Message/Demos.stories.tsx +0 -11
  599. package/src/stories/generated/Mosaic/Demos.stories.tsx +0 -10
  600. package/src/stories/generated/Notification/Demos.stories.tsx +0 -6
  601. package/src/stories/generated/Popover/Demos.stories.tsx +0 -11
  602. package/src/stories/generated/PopoverDialog/Demos.stories.tsx +0 -6
  603. package/src/stories/generated/PostBlock/Demos.stories.tsx +0 -6
  604. package/src/stories/generated/Progress/Demos.stories.tsx +0 -7
  605. package/src/stories/generated/ProgressTracker/Demos.stories.tsx +0 -9
  606. package/src/stories/generated/RadioButton/Demos.stories.tsx +0 -6
  607. package/src/stories/generated/Select/Demos.stories.tsx +0 -14
  608. package/src/stories/generated/SideNavigation/Demos.stories.tsx +0 -10
  609. package/src/stories/generated/Skeleton/Demos.stories.tsx +0 -9
  610. package/src/stories/generated/Slider/Demos.stories.tsx +0 -9
  611. package/src/stories/generated/Slideshow/Demos.stories.tsx +0 -8
  612. package/src/stories/generated/Switch/Demos.stories.tsx +0 -6
  613. package/src/stories/generated/Table/Demos.stories.tsx +0 -7
  614. package/src/stories/generated/Tabs/Demos.stories.tsx +0 -8
  615. package/src/stories/generated/TextField/Demos.stories.tsx +0 -20
  616. package/src/stories/generated/Thumbnail/Demos.stories.tsx +0 -12
  617. package/src/stories/generated/Toolbar/Demos.stories.tsx +0 -10
  618. package/src/stories/generated/Tooltip/Demos.stories.tsx +0 -8
  619. package/src/stories/generated/Uploader/Demos.stories.tsx +0 -8
  620. package/src/stories/generated/UserBlock/Demos.stories.tsx +0 -11
  621. package/src/stories/utils/CustomLink.tsx +0 -12
  622. package/src/stories/utils/concatPath.tsx +0 -17
  623. package/src/stories/utils/disableArgTypes.ts +0 -3
  624. package/src/stories/utils/initDemoShadowDOMPortal.ts +0 -10
  625. package/src/stories/utils/lorem.ts +0 -59
  626. package/src/stories/utils/theming.tsx +0 -166
  627. package/src/stories/utils/toFlattenProps.ts +0 -28
  628. package/src/stories/utils/withCategory.ts +0 -12
  629. package/src/testing/utils/ThemeSentinel.tsx +0 -10
  630. package/src/testing/utils/commonTestsSuiteRTL.tsx +0 -193
  631. package/src/testing/utils/index.ts +0 -1
  632. package/src/testing/utils/queries.ts +0 -19
  633. package/src/untypped-modules.d.ts +0 -9
  634. package/src/utils/ClickAwayProvider/ClickAwayProvider.stories.jsx +0 -70
  635. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +0 -69
  636. package/src/utils/ClickAwayProvider/index.ts +0 -1
  637. package/src/utils/MaterialThemeSwitcher/MaterialThemeSwitcher.tsx +0 -54
  638. package/src/utils/MaterialThemeSwitcher/index.ts +0 -1
  639. package/src/utils/Portal/Portal.test.tsx +0 -31
  640. package/src/utils/Portal/Portal.tsx +0 -33
  641. package/src/utils/Portal/PortalProvider.stories.jsx +0 -22
  642. package/src/utils/Portal/PortalProvider.test.tsx +0 -72
  643. package/src/utils/Portal/PortalProvider.tsx +0 -24
  644. package/src/utils/Portal/index.tsx +0 -2
  645. package/src/utils/browser/DOM/findImage.tsx +0 -3
  646. package/src/utils/browser/DOM/startViewTransition.ts +0 -68
  647. package/src/utils/browser/focus/constants.ts +0 -7
  648. package/src/utils/browser/focus/getFirstAndLastFocusable.test.ts +0 -134
  649. package/src/utils/browser/focus/getFirstAndLastFocusable.ts +0 -21
  650. package/src/utils/browser/focus/getFocusableElements.test.ts +0 -151
  651. package/src/utils/browser/focus/getFocusableElements.ts +0 -7
  652. package/src/utils/browser/isFocusVisible.ts +0 -9
  653. package/src/utils/browser/isHoverNotSupported.test.js +0 -24
  654. package/src/utils/browser/isHoverNotSupported.ts +0 -2
  655. package/src/utils/browser/isReducedMotion.ts +0 -6
  656. package/src/utils/date/addMonthResetDay.test.ts +0 -13
  657. package/src/utils/date/addMonthResetDay.ts +0 -9
  658. package/src/utils/date/formatDayNumber.test.ts +0 -12
  659. package/src/utils/date/formatDayNumber.ts +0 -5
  660. package/src/utils/date/getFirstDayOfWeek.test.ts +0 -20
  661. package/src/utils/date/getFirstDayOfWeek.ts +0 -59
  662. package/src/utils/date/getMonthCalendar.test.ts +0 -127
  663. package/src/utils/date/getMonthCalendar.ts +0 -69
  664. package/src/utils/date/getWeekDays.test.ts +0 -48
  665. package/src/utils/date/getWeekDays.ts +0 -34
  666. package/src/utils/date/getYearDisplayName.test.ts +0 -20
  667. package/src/utils/date/getYearDisplayName.ts +0 -12
  668. package/src/utils/date/isDateValid.test.ts +0 -15
  669. package/src/utils/date/isDateValid.ts +0 -4
  670. package/src/utils/date/isSameDay.test.ts +0 -37
  671. package/src/utils/date/isSameDay.ts +0 -11
  672. package/src/utils/disabled/DisabledStateContext.tsx +0 -29
  673. package/src/utils/disabled/DisabledStateProvider.stories.tsx +0 -92
  674. package/src/utils/disabled/index.ts +0 -2
  675. package/src/utils/disabled/useDisableStateProps.test.tsx +0 -74
  676. package/src/utils/disabled/useDisableStateProps.tsx +0 -37
  677. package/src/utils/function/makeListenerTowerContext.ts +0 -32
  678. package/src/utils/index.ts +0 -7
  679. package/src/utils/locale/getCurrentLocale.ts +0 -4
  680. package/src/utils/locale/parseLocale.test.ts +0 -17
  681. package/src/utils/locale/parseLocale.ts +0 -23
  682. package/src/utils/locale/types.ts +0 -8
  683. package/src/utils/number/clamp.ts +0 -17
  684. package/src/utils/object/isEqual.test.ts +0 -25
  685. package/src/utils/object/isEqual.ts +0 -11
  686. package/src/utils/partitionMulti.test.ts +0 -27
  687. package/src/utils/partitionMulti.ts +0 -29
  688. package/src/utils/react/OnBeforeUnmount.tsx +0 -20
  689. package/src/utils/react/RawClickable.test.tsx +0 -153
  690. package/src/utils/react/RawClickable.tsx +0 -65
  691. package/src/utils/react/flattenChildren.ts +0 -32
  692. package/src/utils/react/forwardRef.ts +0 -11
  693. package/src/utils/react/forwardRefPolymorphic.ts +0 -9
  694. package/src/utils/react/mergeRefs.ts +0 -33
  695. package/src/utils/react/renderLink.tsx +0 -17
  696. package/src/utils/react/skipRender.tsx +0 -18
  697. package/src/utils/react/unref.ts +0 -7
  698. package/src/utils/react/wrapChildrenIconWithSpaces.test.tsx +0 -37
  699. package/src/utils/react/wrapChildrenIconWithSpaces.tsx +0 -22
  700. package/src/utils/theme/ThemeContext.ts +0 -16
  701. package/src/utils/theme/invertTheme.ts +0 -4
  702. package/src/utils/type/Comp.ts +0 -14
  703. package/src/utils/type/ComponentRef.ts +0 -16
  704. package/src/utils/type/HasAriaDisabled.ts +0 -6
  705. package/src/utils/type/HasPolymorphicAs.ts +0 -6
  706. package/src/utils/type/HasRequiredLinkHref.ts +0 -1
  707. package/src/utils/type/MaybeElementOrRef.ts +0 -6
  708. package/src/utils/type/index.ts +0 -9
  709. package/src/utils/type/isComponent.ts +0 -33
  710. package/src/utils/type/isComponentType.ts +0 -9
@@ -0,0 +1,759 @@
1
+ import React__default from 'react';
2
+ import { f as forwardRef, c as classNames } from '../forwardRef-15f62847.js';
3
+ import { u as useMergeRefs, m as mergeRefs } from '../mergeRefs-f0d7d6ea.js';
4
+ import memoize from 'lodash/memoize';
5
+ import { I as ImageCaption } from '../ImageCaption-fcf5720c.js';
6
+ import { getRootClassName } from '@lumx/core/js/utils/className';
7
+ import throttle from 'lodash/throttle';
8
+ import { i as isReducedMotion } from '../useTransitionVisibility-321fdbfa.js';
9
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
+ import { S as SlideshowItem, a as SlideshowControls, b as Slides } from '../Slides-2d267d8c.js';
11
+ import { T as Thumbnail } from '../Thumbnail-0872250e.js';
12
+ import { I as IconButton } from '../IconButton-be160cb0.js';
13
+ import { FlexBox } from './flex-box-10423fa5.js';
14
+ import ReactDOM from 'react-dom';
15
+ import { Lightbox } from './lightbox-dcc9a7a0.js';
16
+ import { T as ThemeProvider } from '../ThemeContext-3181f000.js';
17
+ import { C as ClickAwayProvider } from '../ClickAwayProvider-1204f237.js';
18
+
19
+ const mdiMagnifyMinusOutline = 'M15.5 14h-.79l-.28-.27A6.5 6.5 0 0 0 16 9.5 6.5 6.5 0 0 0 9.5 3 6.5 6.5 0 0 0 3 9.5 6.5 6.5 0 0 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 5 1.5-1.5zm-6 0C7 14 5 12 5 9.5S7 5 9.5 5 14 7 14 9.5 12 14 9.5 14M7 9h5v1H7z';
20
+
21
+ const mdiMagnifyPlusOutline = 'm15.5 14 5 5-1.5 1.5-5-5v-.79l-.27-.28A6.5 6.5 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3 6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.57 4.23l.28.27zm-6 0C12 14 14 12 14 9.5S12 5 9.5 5 5 7 5 9.5 7 14 9.5 14m2.5-4h-2v2H9v-2H7V9h2V7h1v2h2z';
22
+
23
+ /**
24
+ * Component display name.
25
+ */
26
+ const COMPONENT_NAME = 'ImageLightbox';
27
+
28
+ /**
29
+ * Component default class name and class prefix.
30
+ */
31
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
32
+
33
+ /**
34
+ * Observe element size (only works if it's size depends on the window size).
35
+ *
36
+ * (Not using ResizeObserver for better browser backward compat)
37
+ *
38
+ * @param elementRef Element to observe
39
+ * @return the size and a manual update callback
40
+ */
41
+ function useSizeOnWindowResize(elementRef) {
42
+ const [size, setSize] = React__default.useState(null);
43
+ const updateSize = React__default.useMemo(() => throttle(() => {
44
+ const newSize = elementRef.current?.getBoundingClientRect();
45
+ if (newSize) setSize(newSize);
46
+ }, 10), [elementRef]);
47
+ React__default.useEffect(() => {
48
+ updateSize();
49
+ window.addEventListener('resize', updateSize);
50
+ return () => window.removeEventListener('resize', updateSize);
51
+ }, [updateSize]);
52
+ return [size, updateSize];
53
+ }
54
+
55
+ /** Get natural image size after load. */
56
+ function useImageSize(imgRef, getInitialSize) {
57
+ const [imageSize, setImageSize] = React__default.useState(getInitialSize || null);
58
+ React__default.useEffect(() => {
59
+ const {
60
+ current: img
61
+ } = imgRef;
62
+ if (!img) {
63
+ return undefined;
64
+ }
65
+ const onLoad = () => setImageSize({
66
+ width: img.naturalWidth,
67
+ height: img.naturalHeight
68
+ });
69
+ img.addEventListener('load', onLoad);
70
+ return () => img.removeEventListener('load', onLoad);
71
+ }, [imgRef]);
72
+ return imageSize;
73
+ }
74
+
75
+ /** Minimal recursive deep equal of JS values */
76
+ function isEqual(obj1, obj2) {
77
+ if (obj1 === obj2) return true;
78
+ if (typeof obj1 === 'object' && typeof obj2 === 'object') {
79
+ const keys1 = Object.keys(obj1);
80
+ const keys2 = Object.keys(obj2);
81
+ if (keys1.length !== keys2.length) return false;
82
+ return keys1.every(key1 => isEqual(obj1[key1], obj2[key1]));
83
+ }
84
+ return false;
85
+ }
86
+
87
+ /**
88
+ * Listen to mouse wheel + ctrl and multi-pointer pinch to zoom
89
+ */
90
+ function usePointerZoom(scrollAreaRef, onScaleChange, animateScroll) {
91
+ const [isPointerZooming, setPointerZooming] = React__default.useState(false);
92
+ React__default.useEffect(() => {
93
+ const scrollArea = scrollAreaRef.current;
94
+ if (!scrollArea || !onScaleChange) {
95
+ return undefined;
96
+ }
97
+ let animationFrame;
98
+ let zoomStateTimeoutId;
99
+ function updateScaleOnNextFrame(newScale, mousePosition) {
100
+ // Cancel previously scheduled frame
101
+ if (animationFrame) cancelAnimationFrame(animationFrame);
102
+
103
+ // Cancel previously scheduled zoom state change
104
+ if (zoomStateTimeoutId) clearTimeout(zoomStateTimeoutId);
105
+ function nextFrame() {
106
+ setPointerZooming(true);
107
+ onScaleChange?.(newScale);
108
+ animationFrame = null;
109
+ // Wait a bit before indicating the pointer zooming is finished
110
+ zoomStateTimeoutId = setTimeout(() => setPointerZooming(false), 100);
111
+ }
112
+ animationFrame = requestAnimationFrame(nextFrame);
113
+
114
+ // Animate scroll in parallel (centering on the current mouse position)
115
+ animateScroll(mousePosition, {
116
+ width: scrollArea.scrollWidth,
117
+ height: scrollArea.scrollHeight
118
+ });
119
+ }
120
+ function onWheel(event) {
121
+ if (!event.ctrlKey) {
122
+ return;
123
+ }
124
+ event.preventDefault();
125
+ const newScale = Math.exp(-event.deltaY / 50);
126
+
127
+ // Update scale on next frame (focused on the mouse position)
128
+ updateScaleOnNextFrame(newScale, {
129
+ x: event.clientX,
130
+ y: event.clientY
131
+ });
132
+ }
133
+ const activePointers = {};
134
+ let prevDistance = null;
135
+ let previousCenterPoint = null;
136
+ function onPointerDown(event) {
137
+ activePointers[event.pointerId] = event;
138
+ }
139
+ function onPointerMove(event) {
140
+ // Update pointer in cache
141
+ if (activePointers[event.pointerId]) {
142
+ activePointers[event.pointerId] = event;
143
+ }
144
+ const pointers = Object.values(activePointers);
145
+
146
+ // Make sure we run computation on one of the pointer in the group
147
+ if (pointers[0]?.pointerId !== event.pointerId) {
148
+ return;
149
+ }
150
+
151
+ // Centered point between all pointers
152
+ const centerPoint = {
153
+ x: pointers.reduce((x, {
154
+ clientX
155
+ }) => x + clientX, 0) / pointers.length,
156
+ y: pointers.reduce((y, {
157
+ clientY
158
+ }) => y + clientY, 0) / pointers.length
159
+ };
160
+
161
+ // Movement of the center point
162
+ const deltaCenterPoint = previousCenterPoint && {
163
+ left: previousCenterPoint.x - centerPoint.x,
164
+ top: previousCenterPoint.y - centerPoint.y
165
+ };
166
+
167
+ // Pan X & Y
168
+ if (deltaCenterPoint) {
169
+ // Apply movement of the center point to the scroll
170
+ scrollArea.scrollBy({
171
+ top: deltaCenterPoint.top / 2,
172
+ left: deltaCenterPoint.left / 2
173
+ });
174
+ }
175
+
176
+ // Pinch to zoom
177
+ if (pointers.length === 2) {
178
+ const [pointer1, pointer2] = pointers;
179
+ const distance = Math.hypot(pointer2.clientX - pointer1.clientX, pointer2.clientY - pointer1.clientY);
180
+ if (prevDistance && deltaCenterPoint) {
181
+ const delta = prevDistance - distance;
182
+ const absDelta = Math.abs(delta);
183
+
184
+ // Zoom only if we are "pinching" more than we are moving the pointers
185
+ if (absDelta > Math.abs(deltaCenterPoint.left) && absDelta > Math.abs(deltaCenterPoint.top)) {
186
+ // Update scale on next frame (focused on the center point between the two pointers)
187
+ const newScale = Math.exp(-delta / 100);
188
+ updateScaleOnNextFrame(newScale, centerPoint);
189
+ }
190
+ }
191
+ prevDistance = distance;
192
+ }
193
+ previousCenterPoint = centerPoint;
194
+ }
195
+ function onPointerUp(event) {
196
+ prevDistance = null;
197
+ previousCenterPoint = null;
198
+ delete activePointers[event.pointerId];
199
+ }
200
+ scrollArea.addEventListener('wheel', onWheel, {
201
+ passive: false
202
+ });
203
+ const isMultiTouch = navigator.maxTouchPoints >= 2;
204
+ if (isMultiTouch) {
205
+ scrollArea.addEventListener('pointerdown', onPointerDown);
206
+ scrollArea.addEventListener('pointermove', onPointerMove);
207
+ scrollArea.addEventListener('pointerup', onPointerUp);
208
+ }
209
+ return () => {
210
+ scrollArea.removeEventListener('wheel', onWheel);
211
+ if (isMultiTouch) {
212
+ scrollArea.removeEventListener('pointerdown', onPointerDown);
213
+ scrollArea.removeEventListener('pointermove', onPointerMove);
214
+ scrollArea.removeEventListener('pointerup', onPointerUp);
215
+ }
216
+ };
217
+ }, [animateScroll, onScaleChange, scrollAreaRef]);
218
+ return isPointerZooming;
219
+ }
220
+
221
+ /** Maintains the scroll position centered relative to the original scroll area's dimensions when the content scales. */
222
+ function useAnimateScroll(scrollAreaRef) {
223
+ return React__default.useMemo(() => {
224
+ let animationFrame = null;
225
+ return function animate(centerPoint, initialScrollAreaSize) {
226
+ const scrollArea = scrollAreaRef.current;
227
+ if (!scrollArea) {
228
+ return;
229
+ }
230
+
231
+ // Cancel previously running animation
232
+ if (animationFrame) cancelAnimationFrame(animationFrame);
233
+
234
+ // Center on the given point or else on the scroll area visual center
235
+ const clientHeightRatio = centerPoint?.y ? centerPoint.y / scrollArea.clientHeight : 0.5;
236
+ const clientWidthRatio = centerPoint?.x ? centerPoint.x / scrollArea.clientWidth : 0.5;
237
+ const initialScrollHeight = initialScrollAreaSize?.height || scrollArea.scrollHeight;
238
+ const initialScrollWidth = initialScrollAreaSize?.width || scrollArea.scrollWidth;
239
+ const heightCenter = scrollArea.scrollTop + scrollArea.clientHeight * clientHeightRatio;
240
+ const heightRatio = heightCenter / initialScrollHeight;
241
+ const widthCenter = scrollArea.scrollLeft + scrollArea.clientWidth * clientWidthRatio;
242
+ const widthRatio = widthCenter / initialScrollWidth;
243
+ let prevScrollHeight = 0;
244
+ let prevScrollWidth = 0;
245
+ function nextFrame() {
246
+ const {
247
+ scrollHeight,
248
+ scrollWidth,
249
+ clientHeight,
250
+ clientWidth
251
+ } = scrollArea;
252
+
253
+ // Scroll area stopped expanding => stop animation
254
+ if (scrollHeight === prevScrollHeight && scrollWidth === prevScrollWidth) {
255
+ animationFrame = null;
256
+ return;
257
+ }
258
+
259
+ // Compute next scroll position
260
+ const top = heightRatio * scrollHeight - clientHeight * clientHeightRatio;
261
+ const left = widthRatio * scrollWidth - clientWidth * clientWidthRatio;
262
+ scrollArea.scrollTo({
263
+ top,
264
+ left
265
+ });
266
+ prevScrollHeight = scrollHeight;
267
+ prevScrollWidth = scrollWidth;
268
+ animationFrame = requestAnimationFrame(nextFrame);
269
+ }
270
+ animationFrame = requestAnimationFrame(nextFrame);
271
+ };
272
+ }, [scrollAreaRef]);
273
+ }
274
+
275
+ /** Internal image slide component for ImageLightbox */
276
+ const ImageSlide = /*#__PURE__*/React__default.memo(props => {
277
+ const {
278
+ isActive,
279
+ scale,
280
+ onScaleChange,
281
+ image: {
282
+ image,
283
+ imgRef: propImgRef,
284
+ imgProps,
285
+ alt,
286
+ loadingPlaceholderImageRef
287
+ }
288
+ } = props;
289
+
290
+ // Get scroll area size
291
+ const scrollAreaRef = React__default.useRef(null);
292
+ const [scrollAreaSize, updateSize] = useSizeOnWindowResize(scrollAreaRef);
293
+ React__default.useEffect(() => {
294
+ // Update size when active
295
+ if (isActive) updateSize();
296
+ }, [isActive, updateSize]);
297
+
298
+ // Get image size
299
+ const imgRef = React__default.useRef(null);
300
+ const imageSize = useImageSize(imgRef, () => {
301
+ const width = Number.parseInt(imgProps?.width, 10);
302
+ const height = Number.parseInt(imgProps?.height, 10);
303
+ return width && height ? {
304
+ width,
305
+ height
306
+ } : null;
307
+ });
308
+
309
+ // Calculate new image size with scale
310
+ const scaledImageSize = React__default.useMemo(() => {
311
+ if (!scrollAreaSize || !imageSize) {
312
+ return null;
313
+ }
314
+ const horizontalScale = scrollAreaSize.width / imageSize.width;
315
+ const verticalScale = scrollAreaSize.height / imageSize.height;
316
+ const baseScale = Math.min(1, Math.min(horizontalScale, verticalScale));
317
+ return {
318
+ width: imageSize.width * baseScale * (scale ?? 1),
319
+ height: imageSize.height * baseScale * (scale ?? 1)
320
+ };
321
+ }, [scrollAreaSize, imageSize, scale]);
322
+
323
+ // Animate scroll to preserve the center of the current visible window in the scroll area
324
+ const animateScroll = useAnimateScroll(scrollAreaRef);
325
+
326
+ // Zoom via mouse wheel or multi-touch pinch zoom
327
+ const isPointerZooming = usePointerZoom(scrollAreaRef, onScaleChange, animateScroll);
328
+
329
+ // Animate scroll on scale change
330
+ React__default.useLayoutEffect(() => {
331
+ if (scale && !isPointerZooming) {
332
+ animateScroll();
333
+ }
334
+ }, [isPointerZooming, scale, animateScroll]);
335
+ const isScrollable = scaledImageSize && scrollAreaSize && (scaledImageSize.width > scrollAreaSize.width || scaledImageSize.height > scrollAreaSize.height);
336
+ return /*#__PURE__*/jsx(SlideshowItem, {
337
+ ref: scrollAreaRef
338
+ // Make it accessible to keyboard nav when the zone is scrollable
339
+ ,
340
+ tabIndex: isScrollable ? 0 : undefined,
341
+ className: `${CLASSNAME}__image-slide`,
342
+ children: /*#__PURE__*/jsx(Thumbnail, {
343
+ imgRef: useMergeRefs(imgRef, propImgRef),
344
+ image: image,
345
+ alt: alt,
346
+ className: `${CLASSNAME}__thumbnail`,
347
+ imgProps: {
348
+ ...imgProps,
349
+ style: {
350
+ ...imgProps?.style,
351
+ ...(scaledImageSize || {
352
+ maxHeight: scrollAreaSize?.height,
353
+ maxWidth: scrollAreaSize?.width
354
+ }),
355
+ // Only animate when scale is set, and we are not pointer zooming and the user does not prefer reduced motion
356
+ transition: scale && !isPointerZooming && !isReducedMotion() ? 'all 250ms' : undefined
357
+ }
358
+ },
359
+ loadingPlaceholderImageRef: loadingPlaceholderImageRef
360
+ })
361
+ });
362
+ }, isEqual);
363
+
364
+ /** Internal image slideshow component for ImageLightbox */
365
+ const ImageSlideshow = ({
366
+ activeImageIndex,
367
+ images,
368
+ slideGroupLabel,
369
+ zoomInButtonProps,
370
+ zoomOutButtonProps,
371
+ slideshowControlsProps,
372
+ currentPaginationItemRef,
373
+ footerRef,
374
+ activeImageRef
375
+ }) => {
376
+ const {
377
+ activeIndex,
378
+ slideshowId,
379
+ setSlideshow,
380
+ slideshowSlidesId,
381
+ slidesCount,
382
+ onNextClick,
383
+ onPaginationClick,
384
+ onPreviousClick,
385
+ toggleAutoPlay
386
+ } = SlideshowControls.useSlideshowControls({
387
+ itemsCount: images.length,
388
+ activeIndex: activeImageIndex
389
+ });
390
+
391
+ // Image metadata (caption)
392
+ const title = images[activeIndex]?.title;
393
+ const description = images[activeIndex]?.description;
394
+ const tags = images[activeIndex]?.tags;
395
+ const metadata = title || description || tags ? /*#__PURE__*/jsx(ImageCaption, {
396
+ as: "div",
397
+ title: title,
398
+ description: description,
399
+ tags: tags,
400
+ align: "center"
401
+ }) : null;
402
+
403
+ // Slideshow controls
404
+ const slideShowControls = slidesCount > 1 && slideshowControlsProps ? /*#__PURE__*/jsx(SlideshowControls, {
405
+ activeIndex: activeIndex,
406
+ slidesCount: slidesCount,
407
+ onNextClick: onNextClick,
408
+ onPreviousClick: onPreviousClick,
409
+ onPaginationClick: onPaginationClick,
410
+ ...slideshowControlsProps,
411
+ paginationItemProps: index => {
412
+ const props = slideshowControlsProps?.paginationItemProps?.(index) || {};
413
+ return {
414
+ ...props,
415
+ ref: mergeRefs(props?.ref,
416
+ // Focus the active pagination item once on mount
417
+ activeIndex === index ? currentPaginationItemRef : undefined)
418
+ };
419
+ }
420
+ }) : null;
421
+
422
+ // Zoom controls
423
+ const [scale, setScale] = React__default.useState(undefined);
424
+ const zoomEnabled = zoomInButtonProps && zoomOutButtonProps;
425
+ const onScaleChange = React__default.useMemo(() => {
426
+ if (!zoomEnabled) return undefined;
427
+ return newScale => {
428
+ setScale((prevScale = 1) => Math.max(1, newScale * prevScale));
429
+ };
430
+ }, [zoomEnabled]);
431
+ const zoomIn = React__default.useCallback(() => onScaleChange?.(1.5), [onScaleChange]);
432
+ const zoomOut = React__default.useCallback(() => onScaleChange?.(0.5), [onScaleChange]);
433
+ React__default.useEffect(() => {
434
+ // Reset scale on slide change
435
+ if (typeof activeIndex === 'number') setScale(undefined);
436
+ }, [activeIndex]);
437
+ const zoomControls = zoomEnabled && /*#__PURE__*/jsxs(Fragment, {
438
+ children: [/*#__PURE__*/jsx(IconButton, {
439
+ ...zoomInButtonProps,
440
+ emphasis: "low",
441
+ icon: mdiMagnifyPlusOutline,
442
+ onClick: zoomIn
443
+ }), /*#__PURE__*/jsx(IconButton, {
444
+ ...zoomOutButtonProps,
445
+ emphasis: "low",
446
+ isDisabled: !scale || scale <= 1,
447
+ icon: mdiMagnifyMinusOutline,
448
+ onClick: zoomOut
449
+ })]
450
+ });
451
+ const getImgRef = React__default.useMemo(() => memoize((index, isActive) => {
452
+ return mergeRefs(images?.[index].imgRef, isActive ? activeImageRef : undefined);
453
+ },
454
+ // memoize based on both arguments
455
+ (...args) => args.join()), [images, activeImageRef]);
456
+ return /*#__PURE__*/jsxs(Fragment, {
457
+ children: [/*#__PURE__*/jsx(Slides, {
458
+ activeIndex: activeIndex,
459
+ slideGroupLabel: slideGroupLabel,
460
+ fillHeight: true,
461
+ id: slideshowId,
462
+ ref: setSlideshow,
463
+ slidesId: slideshowSlidesId,
464
+ toggleAutoPlay: toggleAutoPlay,
465
+ children: images.map(({
466
+ image,
467
+ imgRef,
468
+ ...imageProps
469
+ }, index) => {
470
+ const isActive = index === activeIndex;
471
+ return /*#__PURE__*/jsx(ImageSlide, {
472
+ isActive: isActive,
473
+ image: {
474
+ ...imageProps,
475
+ image,
476
+ imgRef: getImgRef(index, isActive)
477
+ },
478
+ scale: isActive ? scale : undefined,
479
+ onScaleChange: onScaleChange
480
+ }, image);
481
+ })
482
+ }), (metadata || slideShowControls || zoomControls) && /*#__PURE__*/jsxs(FlexBox, {
483
+ ref: footerRef,
484
+ className: `${CLASSNAME}__footer`,
485
+ orientation: "vertical",
486
+ vAlign: "center",
487
+ gap: "big",
488
+ children: [metadata, /*#__PURE__*/jsxs(FlexBox, {
489
+ className: `${CLASSNAME}__footer-actions`,
490
+ orientation: "horizontal",
491
+ gap: "regular",
492
+ children: [slideShowControls, zoomControls]
493
+ })]
494
+ })]
495
+ });
496
+ };
497
+
498
+ /** Unref a react ref or element */
499
+ function unref(maybeElement) {
500
+ if (maybeElement instanceof HTMLElement) return maybeElement;
501
+ return maybeElement?.current;
502
+ }
503
+
504
+ function setupViewTransitionName(elementRef, name) {
505
+ let originalName = null;
506
+ return {
507
+ set() {
508
+ const element = unref(elementRef);
509
+ if (!element) return;
510
+ originalName = element.style.viewTransitionName;
511
+ element.style.viewTransitionName = name;
512
+ },
513
+ unset() {
514
+ const element = unref(elementRef);
515
+ if (!element || originalName === null) return;
516
+ element.style.viewTransitionName = originalName;
517
+ }
518
+ };
519
+ }
520
+
521
+ /**
522
+ * Wrapper around the `document.startViewTransition` handling browser incompatibilities, react DOM flush and
523
+ * user preference.
524
+ *
525
+ * @param changes callback containing the changes to apply within the view transition.
526
+ * @param setViewTransitionName set the `viewTransitionName` style on a `source` & `target` to morph these elements.
527
+ */
528
+ async function startViewTransition({
529
+ changes,
530
+ viewTransitionName
531
+ }) {
532
+ const start = document?.startViewTransition?.bind(document);
533
+ const prefersReducedMotion = isReducedMotion();
534
+ const {
535
+ flushSync
536
+ } = ReactDOM;
537
+ if (prefersReducedMotion || !start || !flushSync || !viewTransitionName?.source || !viewTransitionName?.target) {
538
+ // Skip, apply changes without a transition
539
+ changes();
540
+ return;
541
+ }
542
+
543
+ // Setup set/unset transition name on source & target
544
+ const sourceTransitionName = setupViewTransitionName(viewTransitionName.source, viewTransitionName.name);
545
+ const targetTransitionName = setupViewTransitionName(viewTransitionName.target, viewTransitionName.name);
546
+ sourceTransitionName.set();
547
+
548
+ // Start view transition, apply changes & flush to DOM
549
+ await start(() => {
550
+ sourceTransitionName.unset();
551
+ flushSync(changes);
552
+ targetTransitionName.set();
553
+ }).updateCallbackDone;
554
+ targetTransitionName.unset();
555
+ }
556
+
557
+ /** Find image in element including the element */
558
+ const findImage = element => element?.matches('img') ? element : element?.querySelector('img') || null;
559
+
560
+ /** Subset of the ImageLightboxProps managed by the useImageLightbox hook */
561
+
562
+ const EMPTY_PROPS = {
563
+ isOpen: false,
564
+ images: [],
565
+ parentElement: /*#__PURE__*/React__default.createRef()
566
+ };
567
+ /**
568
+ * Set up an ImageLightbox with images and triggers.
569
+ *
570
+ * - Associate a trigger with the lightbox to properly focus the trigger on close
571
+ * - Associate a trigger with an image to display on open
572
+ * - Automatically provide a view transition between an image trigger and the displayed image on open & close
573
+ *
574
+ * @param props Images to display in the image lightbox
575
+ */
576
+ function useImageLightbox(props) {
577
+ const propsRef = React__default.useRef(props);
578
+ React__default.useEffect(() => {
579
+ propsRef.current = props;
580
+ }, [props]);
581
+
582
+ // Keep reference for each image elements
583
+ const imageRefsRef = React__default.useRef([]);
584
+ const currentImageRef = React__default.useRef(null);
585
+ const [imageLightboxProps, setImageLightboxProps] = React__default.useState(() => ({
586
+ ...EMPTY_PROPS,
587
+ ...props
588
+ }));
589
+ const getTriggerProps = React__default.useMemo(() => {
590
+ const triggerImageRefs = {};
591
+ async function close() {
592
+ const currentImage = currentImageRef.current;
593
+ if (!currentImage) {
594
+ return;
595
+ }
596
+ const currentIndex = imageRefsRef.current.findIndex(imageRef => imageRef.current === currentImage);
597
+ await startViewTransition({
598
+ changes() {
599
+ // Close lightbox
600
+ setImageLightboxProps(prevProps => ({
601
+ ...prevProps,
602
+ isOpen: false
603
+ }));
604
+ },
605
+ // Morph from the image in lightbox to the image in trigger
606
+ viewTransitionName: {
607
+ source: currentImageRef,
608
+ target: triggerImageRefs[currentIndex],
609
+ name: CLASSNAME
610
+ }
611
+ });
612
+ }
613
+ async function open(triggerElement, {
614
+ activeImageIndex
615
+ } = {}) {
616
+ // If we find an image inside the trigger, animate it in transition with the opening image
617
+ const triggerImage = triggerImageRefs[activeImageIndex]?.current || findImage(triggerElement);
618
+
619
+ // Inject refs to improve transition and loading style
620
+ const images = propsRef.current?.images?.map((image, idx) => {
621
+ // Get or create image reference
622
+ let imgRef = imageRefsRef.current[idx];
623
+ if (!imgRef) {
624
+ imgRef = /*#__PURE__*/React__default.createRef();
625
+ imageRefsRef.current[idx] = imgRef;
626
+ }
627
+
628
+ // Try to use the trigger image as the loading placeholder
629
+ const loadingPlaceholderImageRef = triggerImage && idx === activeImageIndex ? {
630
+ current: triggerImage
631
+ } : undefined;
632
+ return {
633
+ loadingPlaceholderImageRef,
634
+ ...image,
635
+ imgRef
636
+ };
637
+ });
638
+ await startViewTransition({
639
+ changes: () => {
640
+ // Open lightbox with setup props
641
+ setImageLightboxProps(prevProps => ({
642
+ ...prevProps,
643
+ ...propsRef.current,
644
+ activeImageRef: currentImageRef,
645
+ parentElement: {
646
+ current: triggerElement
647
+ },
648
+ isOpen: true,
649
+ onClose: () => {
650
+ close();
651
+ propsRef.current?.onClose?.();
652
+ },
653
+ images,
654
+ activeImageIndex: activeImageIndex || 0
655
+ }));
656
+ },
657
+ // Morph from the image in trigger to the image in lightbox
658
+ viewTransitionName: {
659
+ source: triggerImage,
660
+ target: currentImageRef,
661
+ name: CLASSNAME
662
+ }
663
+ });
664
+ }
665
+ return memoize(options => ({
666
+ ref(element) {
667
+ // Track trigger image ref if any
668
+ if (options?.activeImageIndex !== undefined && element) {
669
+ triggerImageRefs[options.activeImageIndex] = {
670
+ current: findImage(element)
671
+ };
672
+ }
673
+ },
674
+ onClick(e) {
675
+ open(e.target, options);
676
+ }
677
+ }));
678
+ }, []);
679
+ return {
680
+ getTriggerProps,
681
+ imageLightboxProps
682
+ };
683
+ }
684
+
685
+ const Inner = forwardRef((props, ref) => {
686
+ const {
687
+ className,
688
+ isOpen,
689
+ closeButtonProps,
690
+ onClose,
691
+ parentElement,
692
+ activeImageIndex,
693
+ slideshowControlsProps,
694
+ slideGroupLabel,
695
+ images,
696
+ zoomOutButtonProps,
697
+ zoomInButtonProps,
698
+ activeImageRef: propImageRef,
699
+ ...forwardedProps
700
+ } = props;
701
+ const currentPaginationItemRef = React__default.useRef(null);
702
+ const footerRef = React__default.useRef(null);
703
+ const imageRef = React__default.useRef(null);
704
+ const clickAwayChildrenRefs = React__default.useRef([imageRef, footerRef]);
705
+ const onClickAway = React__default.useCallback(evt => {
706
+ const targetElement = evt.target;
707
+ if (!(targetElement instanceof HTMLElement) || !(evt instanceof MouseEvent)) return;
708
+
709
+ // Skip click away if clicking on the scrollbar
710
+ if (targetElement.clientWidth < evt.clientX || targetElement.clientHeight < evt.clientY) return;
711
+ onClose?.();
712
+ }, [onClose]);
713
+ return /*#__PURE__*/jsx(Lightbox, {
714
+ ref: ref,
715
+ className: classNames(className, CLASSNAME),
716
+ parentElement: parentElement,
717
+ isOpen: isOpen,
718
+ onClose: onClose,
719
+ closeButtonProps: closeButtonProps,
720
+ focusElement: currentPaginationItemRef,
721
+ ...forwardedProps,
722
+ // Disable the close on click away as we want a custom one here
723
+ preventAutoClose: true,
724
+ children: /*#__PURE__*/jsx(ClickAwayProvider, {
725
+ childrenRefs: clickAwayChildrenRefs,
726
+ callback: onClickAway,
727
+ children: /*#__PURE__*/jsx(ThemeProvider, {
728
+ value: "dark",
729
+ children: /*#__PURE__*/jsx(ImageSlideshow, {
730
+ activeImageIndex: activeImageIndex,
731
+ slideGroupLabel: slideGroupLabel,
732
+ slideshowControlsProps: slideshowControlsProps,
733
+ images: images,
734
+ zoomInButtonProps: zoomInButtonProps,
735
+ zoomOutButtonProps: zoomOutButtonProps,
736
+ footerRef: footerRef,
737
+ activeImageRef: useMergeRefs(propImageRef, imageRef),
738
+ currentPaginationItemRef: currentPaginationItemRef
739
+ })
740
+ })
741
+ })
742
+ });
743
+ });
744
+ Inner.displayName = COMPONENT_NAME;
745
+ Inner.className = CLASSNAME;
746
+
747
+ /**
748
+ * ImageLightbox component.
749
+ *
750
+ * @param props Component props.
751
+ * @param ref Component ref.
752
+ * @return React element.
753
+ */
754
+ const ImageLightbox = Object.assign(Inner, {
755
+ useImageLightbox
756
+ });
757
+
758
+ export { ImageLightbox };
759
+ //# sourceMappingURL=image-lightbox-10fef304.js.map