@lumx/react 3.20.1-alpha.3 → 3.20.1-alpha.30

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 (698) hide show
  1. package/CONTRIBUTING.md +1 -5
  2. package/README.md +0 -2
  3. package/_internal/Button-4b67daa8.js +98 -0
  4. package/_internal/Button-4b67daa8.js.map +1 -0
  5. package/_internal/ButtonRoot-a70baf82.js +118 -0
  6. package/_internal/ButtonRoot-a70baf82.js.map +1 -0
  7. package/_internal/Chip-70af04b4.js +144 -0
  8. package/_internal/Chip-70af04b4.js.map +1 -0
  9. package/_internal/ClickAwayProvider-1204f237.js +95 -0
  10. package/_internal/ClickAwayProvider-1204f237.js.map +1 -0
  11. package/_internal/DisabledStateContext-ea04260d.js +29 -0
  12. package/_internal/DisabledStateContext-ea04260d.js.map +1 -0
  13. package/_internal/HeadingLevelProvider-ebdcb0c7.js +61 -0
  14. package/_internal/HeadingLevelProvider-ebdcb0c7.js.map +1 -0
  15. package/_internal/IconButton-8d61f5be.js +77 -0
  16. package/_internal/IconButton-8d61f5be.js.map +1 -0
  17. package/_internal/ImageCaption-db44ec9e.js +75 -0
  18. package/_internal/ImageCaption-db44ec9e.js.map +1 -0
  19. package/_internal/List-c75646f2.js +818 -0
  20. package/_internal/List-c75646f2.js.map +1 -0
  21. package/_internal/PopoverDialog-35b2d87d.js +657 -0
  22. package/_internal/PopoverDialog-35b2d87d.js.map +1 -0
  23. package/_internal/Portal-3f86608e.js +45 -0
  24. package/_internal/Portal-3f86608e.js.map +1 -0
  25. package/_internal/RawClickable-2c2b6a89.js +52 -0
  26. package/_internal/RawClickable-2c2b6a89.js.map +1 -0
  27. package/_internal/Slides-ce641b5f.js +679 -0
  28. package/_internal/Slides-ce641b5f.js.map +1 -0
  29. package/_internal/ThemeContext-3181f000.js +14 -0
  30. package/_internal/ThemeContext-3181f000.js.map +1 -0
  31. package/_internal/Thumbnail-02bd6869.js +314 -0
  32. package/_internal/Thumbnail-02bd6869.js.map +1 -0
  33. package/_internal/components/alert-dialog-a24330ed.js +166 -0
  34. package/_internal/components/alert-dialog-a24330ed.js.map +1 -0
  35. package/_internal/components/autocomplete-70749e51.js +262 -0
  36. package/_internal/components/autocomplete-70749e51.js.map +1 -0
  37. package/_internal/components/avatar-ed9f4869.js +84 -0
  38. package/_internal/components/avatar-ed9f4869.js.map +1 -0
  39. package/_internal/components/badge-ccf47147.js +82 -0
  40. package/_internal/components/badge-ccf47147.js.map +1 -0
  41. package/_internal/components/button-9f710830.js +48 -0
  42. package/_internal/components/button-9f710830.js.map +1 -0
  43. package/_internal/components/checkbox-8ab51ef9.js +142 -0
  44. package/_internal/components/checkbox-8ab51ef9.js.map +1 -0
  45. package/_internal/components/chip-19e40755.js +103 -0
  46. package/_internal/components/chip-19e40755.js.map +1 -0
  47. package/_internal/components/comment-block-bb6a0603.js +139 -0
  48. package/_internal/components/comment-block-bb6a0603.js.map +1 -0
  49. package/_internal/components/date-picker-e4209b01.js +2 -0
  50. package/_internal/components/date-picker-e4209b01.js.map +1 -0
  51. package/_internal/components/dialog-30336ccb.js +239 -0
  52. package/_internal/components/dialog-30336ccb.js.map +1 -0
  53. package/_internal/components/divider-0e93aa3d.js +51 -0
  54. package/_internal/components/divider-0e93aa3d.js.map +1 -0
  55. package/_internal/components/drag-handle-ba2e7e67.js +52 -0
  56. package/_internal/components/drag-handle-ba2e7e67.js.map +1 -0
  57. package/_internal/components/dropdown-d18122d7.js +148 -0
  58. package/_internal/components/dropdown-d18122d7.js.map +1 -0
  59. package/_internal/components/expansion-panel-0b263437.js +169 -0
  60. package/_internal/components/expansion-panel-0b263437.js.map +1 -0
  61. package/_internal/components/flag-8f9a498a.js +60 -0
  62. package/_internal/components/flag-8f9a498a.js.map +1 -0
  63. package/_internal/components/flex-box-15be92f6.js +57 -0
  64. package/_internal/components/flex-box-15be92f6.js.map +1 -0
  65. package/_internal/components/generic-block-5d843f1e.js +128 -0
  66. package/_internal/components/generic-block-5d843f1e.js.map +1 -0
  67. package/_internal/components/grid-8c08dc4b.js +105 -0
  68. package/_internal/components/grid-8c08dc4b.js.map +1 -0
  69. package/_internal/components/grid-column-85e305e7.js +59 -0
  70. package/_internal/components/grid-column-85e305e7.js.map +1 -0
  71. package/_internal/components/heading-7bfafd7d.js +54 -0
  72. package/_internal/components/heading-7bfafd7d.js.map +1 -0
  73. package/_internal/components/icon-ee15673b.js +103 -0
  74. package/_internal/components/icon-ee15673b.js.map +1 -0
  75. package/_internal/components/image-block-3479abda.js +111 -0
  76. package/_internal/components/image-block-3479abda.js.map +1 -0
  77. package/_internal/components/image-lightbox-1d7ca133.js +758 -0
  78. package/_internal/components/image-lightbox-1d7ca133.js.map +1 -0
  79. package/_internal/components/inline-list-5ba8bb0f.js +75 -0
  80. package/_internal/components/inline-list-5ba8bb0f.js.map +1 -0
  81. package/_internal/components/input-helper-2e4e49fd.js +72 -0
  82. package/_internal/components/input-helper-2e4e49fd.js.map +1 -0
  83. package/_internal/components/input-label-30d199c3.js +60 -0
  84. package/_internal/components/input-label-30d199c3.js.map +1 -0
  85. package/_internal/components/lightbox-c5f9afd0.js +156 -0
  86. package/_internal/components/lightbox-c5f9afd0.js.map +1 -0
  87. package/_internal/components/link-43ee103e.js +73 -0
  88. package/_internal/components/link-43ee103e.js.map +1 -0
  89. package/_internal/components/link-preview-db0ee2d6.js +118 -0
  90. package/_internal/components/link-preview-db0ee2d6.js.map +1 -0
  91. package/_internal/components/list-2f256244.js +72 -0
  92. package/_internal/components/list-2f256244.js.map +1 -0
  93. package/_internal/components/message-f7674e0e.js +101 -0
  94. package/_internal/components/message-f7674e0e.js.map +1 -0
  95. package/_internal/components/mosaic-3effd0cf.js +95 -0
  96. package/_internal/components/mosaic-3effd0cf.js.map +1 -0
  97. package/_internal/components/navigation-3a5dc270.js +227 -0
  98. package/_internal/components/navigation-3a5dc270.js.map +1 -0
  99. package/_internal/components/notification-098c5600.js +146 -0
  100. package/_internal/components/notification-098c5600.js.map +1 -0
  101. package/_internal/components/popover-dfcddda4.js +3 -0
  102. package/_internal/components/popover-dfcddda4.js.map +1 -0
  103. package/_internal/components/post-block-69797e4d.js +110 -0
  104. package/_internal/components/post-block-69797e4d.js.map +1 -0
  105. package/_internal/components/progress-44bb0301.js +183 -0
  106. package/_internal/components/progress-44bb0301.js.map +1 -0
  107. package/_internal/components/progress-tracker-e0981fcc.js +309 -0
  108. package/_internal/components/progress-tracker-e0981fcc.js.map +1 -0
  109. package/_internal/components/radio-button-929c7bee.js +150 -0
  110. package/_internal/components/radio-button-929c7bee.js.map +1 -0
  111. package/_internal/components/select-64bc72a0.js +458 -0
  112. package/_internal/components/select-64bc72a0.js.map +1 -0
  113. package/_internal/components/side-navigation-c610c689.js +166 -0
  114. package/_internal/components/side-navigation-c610c689.js.map +1 -0
  115. package/_internal/components/skeleton-1ea8c82a.js +167 -0
  116. package/_internal/components/skeleton-1ea8c82a.js.map +1 -0
  117. package/_internal/components/slider-78cfaa67.js +312 -0
  118. package/_internal/components/slider-78cfaa67.js.map +1 -0
  119. package/_internal/components/slideshow-d8a943a7.js +151 -0
  120. package/_internal/components/slideshow-d8a943a7.js.map +1 -0
  121. package/_internal/components/switch-25b65051.js +122 -0
  122. package/_internal/components/switch-25b65051.js.map +1 -0
  123. package/_internal/components/table-ec20c66c.js +296 -0
  124. package/_internal/components/table-ec20c66c.js.map +1 -0
  125. package/_internal/components/tabs-89c055bd.js +299 -0
  126. package/_internal/components/tabs-89c055bd.js.map +1 -0
  127. package/_internal/components/text-d04d0f1b.js +2 -0
  128. package/_internal/components/text-d04d0f1b.js.map +1 -0
  129. package/_internal/components/text-field-8f13957e.js +361 -0
  130. package/_internal/components/text-field-8f13957e.js.map +1 -0
  131. package/_internal/components/thumbnail-1255957f.js +42 -0
  132. package/_internal/components/thumbnail-1255957f.js.map +1 -0
  133. package/_internal/components/toolbar-e7c984e6.js +62 -0
  134. package/_internal/components/toolbar-e7c984e6.js.map +1 -0
  135. package/_internal/components/tooltip-dcb43bbe.js +328 -0
  136. package/_internal/components/tooltip-dcb43bbe.js.map +1 -0
  137. package/_internal/components/uploader-7ef4db39.js +154 -0
  138. package/_internal/components/uploader-7ef4db39.js.map +1 -0
  139. package/_internal/components/user-block-24d97650.js +145 -0
  140. package/_internal/components/user-block-24d97650.js.map +1 -0
  141. package/_internal/constants-43721918.js +2170 -0
  142. package/_internal/constants-43721918.js.map +1 -0
  143. package/_internal/constants-d0e3f49e.js +24 -0
  144. package/_internal/constants-d0e3f49e.js.map +1 -0
  145. package/_internal/context-9d1336a1.js +19 -0
  146. package/_internal/context-9d1336a1.js.map +1 -0
  147. package/_internal/forwardRef-8bce732e.js +9 -0
  148. package/_internal/forwardRef-8bce732e.js.map +1 -0
  149. package/_internal/getFocusableElements-230173a8.js +13 -0
  150. package/_internal/getFocusableElements-230173a8.js.map +1 -0
  151. package/_internal/index-25c9e8c2.js +118 -0
  152. package/_internal/index-25c9e8c2.js.map +1 -0
  153. package/_internal/index-25d2a45e.js +437 -0
  154. package/_internal/index-25d2a45e.js.map +1 -0
  155. package/_internal/isComponent-b9762ff1.js +18 -0
  156. package/_internal/isComponent-b9762ff1.js.map +1 -0
  157. package/_internal/isComponentType-e806b848.js +9 -0
  158. package/_internal/isComponentType-e806b848.js.map +1 -0
  159. package/_internal/mergeRefs-f0d7d6ea.js +30 -0
  160. package/_internal/mergeRefs-f0d7d6ea.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-b956a85d.js +64 -0
  166. package/_internal/useCallbackOnEscape-b956a85d.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-69e16b7c.js +36 -0
  170. package/_internal/useDisableStateProps-69e16b7c.js.map +1 -0
  171. package/_internal/useFocusTrap-2dbae79e.js +112 -0
  172. package/_internal/useFocusTrap-2dbae79e.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-50d705e6.js +20 -0
  180. package/_internal/wrapChildrenIconWithSpaces-50d705e6.js.map +1 -0
  181. package/index.d.ts +11 -368
  182. package/index.js +65 -14523
  183. package/index.js.map +1 -1
  184. package/package.json +8 -22
  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 -229
  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 -22
  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/partitionMulti.ts +0 -29
  676. package/src/utils/react/OnBeforeUnmount.tsx +0 -20
  677. package/src/utils/react/RawClickable.test.tsx +0 -153
  678. package/src/utils/react/RawClickable.tsx +0 -65
  679. package/src/utils/react/flattenChildren.ts +0 -32
  680. package/src/utils/react/forwardRef.ts +0 -11
  681. package/src/utils/react/forwardRefPolymorphic.ts +0 -9
  682. package/src/utils/react/mergeRefs.ts +0 -33
  683. package/src/utils/react/renderLink.tsx +0 -17
  684. package/src/utils/react/skipRender.tsx +0 -18
  685. package/src/utils/react/unref.ts +0 -7
  686. package/src/utils/react/wrapChildrenIconWithSpaces.test.tsx +0 -37
  687. package/src/utils/react/wrapChildrenIconWithSpaces.tsx +0 -22
  688. package/src/utils/theme/ThemeContext.ts +0 -16
  689. package/src/utils/theme/invertTheme.ts +0 -4
  690. package/src/utils/type/Comp.ts +0 -14
  691. package/src/utils/type/ComponentRef.ts +0 -16
  692. package/src/utils/type/HasAriaDisabled.ts +0 -6
  693. package/src/utils/type/HasPolymorphicAs.ts +0 -6
  694. package/src/utils/type/HasRequiredLinkHref.ts +0 -1
  695. package/src/utils/type/MaybeElementOrRef.ts +0 -6
  696. package/src/utils/type/index.ts +0 -9
  697. package/src/utils/type/isComponent.ts +0 -33
  698. package/src/utils/type/isComponentType.ts +0 -9
@@ -0,0 +1,758 @@
1
+ import React__default from 'react';
2
+ import classNames from 'classnames';
3
+ import { u as useMergeRefs, m as mergeRefs } from '../mergeRefs-f0d7d6ea.js';
4
+ import { f as forwardRef } from '../forwardRef-8bce732e.js';
5
+ import { mdiMagnifyMinusOutline } from '@lumx/icons/esm/magnify-minus-outline';
6
+ import { mdiMagnifyPlusOutline } from '@lumx/icons/esm/magnify-plus-outline';
7
+ import memoize from 'lodash/memoize';
8
+ import { I as ImageCaption } from '../ImageCaption-db44ec9e.js';
9
+ import { getRootClassName } from '@lumx/core/js/utils/className';
10
+ import throttle from 'lodash/throttle';
11
+ import { i as isReducedMotion } from '../useTransitionVisibility-321fdbfa.js';
12
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
13
+ import { S as SlideshowItem, a as SlideshowControls, b as Slides } from '../Slides-ce641b5f.js';
14
+ import { T as Thumbnail } from '../Thumbnail-02bd6869.js';
15
+ import { I as IconButton } from '../IconButton-8d61f5be.js';
16
+ import { FlexBox } from './flex-box-15be92f6.js';
17
+ import ReactDOM from 'react-dom';
18
+ import { Lightbox } from './lightbox-c5f9afd0.js';
19
+ import { T as ThemeProvider } from '../ThemeContext-3181f000.js';
20
+ import { C as ClickAwayProvider } from '../ClickAwayProvider-1204f237.js';
21
+
22
+ /**
23
+ * Component display name.
24
+ */
25
+ const COMPONENT_NAME = 'ImageLightbox';
26
+
27
+ /**
28
+ * Component default class name and class prefix.
29
+ */
30
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
31
+
32
+ /**
33
+ * Observe element size (only works if it's size depends on the window size).
34
+ *
35
+ * (Not using ResizeObserver for better browser backward compat)
36
+ *
37
+ * @param elementRef Element to observe
38
+ * @return the size and a manual update callback
39
+ */
40
+ function useSizeOnWindowResize(elementRef) {
41
+ const [size, setSize] = React__default.useState(null);
42
+ const updateSize = React__default.useMemo(() => throttle(() => {
43
+ const newSize = elementRef.current?.getBoundingClientRect();
44
+ if (newSize) setSize(newSize);
45
+ }, 10), [elementRef]);
46
+ React__default.useEffect(() => {
47
+ updateSize();
48
+ window.addEventListener('resize', updateSize);
49
+ return () => window.removeEventListener('resize', updateSize);
50
+ }, [updateSize]);
51
+ return [size, updateSize];
52
+ }
53
+
54
+ /** Get natural image size after load. */
55
+ function useImageSize(imgRef, getInitialSize) {
56
+ const [imageSize, setImageSize] = React__default.useState(getInitialSize || null);
57
+ React__default.useEffect(() => {
58
+ const {
59
+ current: img
60
+ } = imgRef;
61
+ if (!img) {
62
+ return undefined;
63
+ }
64
+ const onLoad = () => setImageSize({
65
+ width: img.naturalWidth,
66
+ height: img.naturalHeight
67
+ });
68
+ img.addEventListener('load', onLoad);
69
+ return () => img.removeEventListener('load', onLoad);
70
+ }, [imgRef]);
71
+ return imageSize;
72
+ }
73
+
74
+ /** Minimal recursive deep equal of JS values */
75
+ function isEqual(obj1, obj2) {
76
+ if (obj1 === obj2) return true;
77
+ if (typeof obj1 === 'object' && typeof obj2 === 'object') {
78
+ const keys1 = Object.keys(obj1);
79
+ const keys2 = Object.keys(obj2);
80
+ if (keys1.length !== keys2.length) return false;
81
+ return keys1.every(key1 => isEqual(obj1[key1], obj2[key1]));
82
+ }
83
+ return false;
84
+ }
85
+
86
+ /**
87
+ * Listen to mouse wheel + ctrl and multi-pointer pinch to zoom
88
+ */
89
+ function usePointerZoom(scrollAreaRef, onScaleChange, animateScroll) {
90
+ const [isPointerZooming, setPointerZooming] = React__default.useState(false);
91
+ React__default.useEffect(() => {
92
+ const scrollArea = scrollAreaRef.current;
93
+ if (!scrollArea || !onScaleChange) {
94
+ return undefined;
95
+ }
96
+ let animationFrame;
97
+ let zoomStateTimeoutId;
98
+ function updateScaleOnNextFrame(newScale, mousePosition) {
99
+ // Cancel previously scheduled frame
100
+ if (animationFrame) cancelAnimationFrame(animationFrame);
101
+
102
+ // Cancel previously scheduled zoom state change
103
+ if (zoomStateTimeoutId) clearTimeout(zoomStateTimeoutId);
104
+ function nextFrame() {
105
+ setPointerZooming(true);
106
+ onScaleChange?.(newScale);
107
+ animationFrame = null;
108
+ // Wait a bit before indicating the pointer zooming is finished
109
+ zoomStateTimeoutId = setTimeout(() => setPointerZooming(false), 100);
110
+ }
111
+ animationFrame = requestAnimationFrame(nextFrame);
112
+
113
+ // Animate scroll in parallel (centering on the current mouse position)
114
+ animateScroll(mousePosition, {
115
+ width: scrollArea.scrollWidth,
116
+ height: scrollArea.scrollHeight
117
+ });
118
+ }
119
+ function onWheel(event) {
120
+ if (!event.ctrlKey) {
121
+ return;
122
+ }
123
+ event.preventDefault();
124
+ const newScale = Math.exp(-event.deltaY / 50);
125
+
126
+ // Update scale on next frame (focused on the mouse position)
127
+ updateScaleOnNextFrame(newScale, {
128
+ x: event.clientX,
129
+ y: event.clientY
130
+ });
131
+ }
132
+ const activePointers = {};
133
+ let prevDistance = null;
134
+ let previousCenterPoint = null;
135
+ function onPointerDown(event) {
136
+ activePointers[event.pointerId] = event;
137
+ }
138
+ function onPointerMove(event) {
139
+ // Update pointer in cache
140
+ if (activePointers[event.pointerId]) {
141
+ activePointers[event.pointerId] = event;
142
+ }
143
+ const pointers = Object.values(activePointers);
144
+
145
+ // Make sure we run computation on one of the pointer in the group
146
+ if (pointers[0]?.pointerId !== event.pointerId) {
147
+ return;
148
+ }
149
+
150
+ // Centered point between all pointers
151
+ const centerPoint = {
152
+ x: pointers.reduce((x, {
153
+ clientX
154
+ }) => x + clientX, 0) / pointers.length,
155
+ y: pointers.reduce((y, {
156
+ clientY
157
+ }) => y + clientY, 0) / pointers.length
158
+ };
159
+
160
+ // Movement of the center point
161
+ const deltaCenterPoint = previousCenterPoint && {
162
+ left: previousCenterPoint.x - centerPoint.x,
163
+ top: previousCenterPoint.y - centerPoint.y
164
+ };
165
+
166
+ // Pan X & Y
167
+ if (deltaCenterPoint) {
168
+ // Apply movement of the center point to the scroll
169
+ scrollArea.scrollBy({
170
+ top: deltaCenterPoint.top / 2,
171
+ left: deltaCenterPoint.left / 2
172
+ });
173
+ }
174
+
175
+ // Pinch to zoom
176
+ if (pointers.length === 2) {
177
+ const [pointer1, pointer2] = pointers;
178
+ const distance = Math.hypot(pointer2.clientX - pointer1.clientX, pointer2.clientY - pointer1.clientY);
179
+ if (prevDistance && deltaCenterPoint) {
180
+ const delta = prevDistance - distance;
181
+ const absDelta = Math.abs(delta);
182
+
183
+ // Zoom only if we are "pinching" more than we are moving the pointers
184
+ if (absDelta > Math.abs(deltaCenterPoint.left) && absDelta > Math.abs(deltaCenterPoint.top)) {
185
+ // Update scale on next frame (focused on the center point between the two pointers)
186
+ const newScale = Math.exp(-delta / 100);
187
+ updateScaleOnNextFrame(newScale, centerPoint);
188
+ }
189
+ }
190
+ prevDistance = distance;
191
+ }
192
+ previousCenterPoint = centerPoint;
193
+ }
194
+ function onPointerUp(event) {
195
+ prevDistance = null;
196
+ previousCenterPoint = null;
197
+ delete activePointers[event.pointerId];
198
+ }
199
+ scrollArea.addEventListener('wheel', onWheel, {
200
+ passive: false
201
+ });
202
+ const isMultiTouch = navigator.maxTouchPoints >= 2;
203
+ if (isMultiTouch) {
204
+ scrollArea.addEventListener('pointerdown', onPointerDown);
205
+ scrollArea.addEventListener('pointermove', onPointerMove);
206
+ scrollArea.addEventListener('pointerup', onPointerUp);
207
+ }
208
+ return () => {
209
+ scrollArea.removeEventListener('wheel', onWheel);
210
+ if (isMultiTouch) {
211
+ scrollArea.removeEventListener('pointerdown', onPointerDown);
212
+ scrollArea.removeEventListener('pointermove', onPointerMove);
213
+ scrollArea.removeEventListener('pointerup', onPointerUp);
214
+ }
215
+ };
216
+ }, [animateScroll, onScaleChange, scrollAreaRef]);
217
+ return isPointerZooming;
218
+ }
219
+
220
+ /** Maintains the scroll position centered relative to the original scroll area's dimensions when the content scales. */
221
+ function useAnimateScroll(scrollAreaRef) {
222
+ return React__default.useMemo(() => {
223
+ let animationFrame = null;
224
+ return function animate(centerPoint, initialScrollAreaSize) {
225
+ const scrollArea = scrollAreaRef.current;
226
+ if (!scrollArea) {
227
+ return;
228
+ }
229
+
230
+ // Cancel previously running animation
231
+ if (animationFrame) cancelAnimationFrame(animationFrame);
232
+
233
+ // Center on the given point or else on the scroll area visual center
234
+ const clientHeightRatio = centerPoint?.y ? centerPoint.y / scrollArea.clientHeight : 0.5;
235
+ const clientWidthRatio = centerPoint?.x ? centerPoint.x / scrollArea.clientWidth : 0.5;
236
+ const initialScrollHeight = initialScrollAreaSize?.height || scrollArea.scrollHeight;
237
+ const initialScrollWidth = initialScrollAreaSize?.width || scrollArea.scrollWidth;
238
+ const heightCenter = scrollArea.scrollTop + scrollArea.clientHeight * clientHeightRatio;
239
+ const heightRatio = heightCenter / initialScrollHeight;
240
+ const widthCenter = scrollArea.scrollLeft + scrollArea.clientWidth * clientWidthRatio;
241
+ const widthRatio = widthCenter / initialScrollWidth;
242
+ let prevScrollHeight = 0;
243
+ let prevScrollWidth = 0;
244
+ function nextFrame() {
245
+ const {
246
+ scrollHeight,
247
+ scrollWidth,
248
+ clientHeight,
249
+ clientWidth
250
+ } = scrollArea;
251
+
252
+ // Scroll area stopped expanding => stop animation
253
+ if (scrollHeight === prevScrollHeight && scrollWidth === prevScrollWidth) {
254
+ animationFrame = null;
255
+ return;
256
+ }
257
+
258
+ // Compute next scroll position
259
+ const top = heightRatio * scrollHeight - clientHeight * clientHeightRatio;
260
+ const left = widthRatio * scrollWidth - clientWidth * clientWidthRatio;
261
+ scrollArea.scrollTo({
262
+ top,
263
+ left
264
+ });
265
+ prevScrollHeight = scrollHeight;
266
+ prevScrollWidth = scrollWidth;
267
+ animationFrame = requestAnimationFrame(nextFrame);
268
+ }
269
+ animationFrame = requestAnimationFrame(nextFrame);
270
+ };
271
+ }, [scrollAreaRef]);
272
+ }
273
+
274
+ /** Internal image slide component for ImageLightbox */
275
+ const ImageSlide = /*#__PURE__*/React__default.memo(props => {
276
+ const {
277
+ isActive,
278
+ scale,
279
+ onScaleChange,
280
+ image: {
281
+ image,
282
+ imgRef: propImgRef,
283
+ imgProps,
284
+ alt,
285
+ loadingPlaceholderImageRef
286
+ }
287
+ } = props;
288
+
289
+ // Get scroll area size
290
+ const scrollAreaRef = React__default.useRef(null);
291
+ const [scrollAreaSize, updateSize] = useSizeOnWindowResize(scrollAreaRef);
292
+ React__default.useEffect(() => {
293
+ // Update size when active
294
+ if (isActive) updateSize();
295
+ }, [isActive, updateSize]);
296
+
297
+ // Get image size
298
+ const imgRef = React__default.useRef(null);
299
+ const imageSize = useImageSize(imgRef, () => {
300
+ const width = Number.parseInt(imgProps?.width, 10);
301
+ const height = Number.parseInt(imgProps?.height, 10);
302
+ return width && height ? {
303
+ width,
304
+ height
305
+ } : null;
306
+ });
307
+
308
+ // Calculate new image size with scale
309
+ const scaledImageSize = React__default.useMemo(() => {
310
+ if (!scrollAreaSize || !imageSize) {
311
+ return null;
312
+ }
313
+ const horizontalScale = scrollAreaSize.width / imageSize.width;
314
+ const verticalScale = scrollAreaSize.height / imageSize.height;
315
+ const baseScale = Math.min(1, Math.min(horizontalScale, verticalScale));
316
+ return {
317
+ width: imageSize.width * baseScale * (scale ?? 1),
318
+ height: imageSize.height * baseScale * (scale ?? 1)
319
+ };
320
+ }, [scrollAreaSize, imageSize, scale]);
321
+
322
+ // Animate scroll to preserve the center of the current visible window in the scroll area
323
+ const animateScroll = useAnimateScroll(scrollAreaRef);
324
+
325
+ // Zoom via mouse wheel or multi-touch pinch zoom
326
+ const isPointerZooming = usePointerZoom(scrollAreaRef, onScaleChange, animateScroll);
327
+
328
+ // Animate scroll on scale change
329
+ React__default.useLayoutEffect(() => {
330
+ if (scale && !isPointerZooming) {
331
+ animateScroll();
332
+ }
333
+ }, [isPointerZooming, scale, animateScroll]);
334
+ const isScrollable = scaledImageSize && scrollAreaSize && (scaledImageSize.width > scrollAreaSize.width || scaledImageSize.height > scrollAreaSize.height);
335
+ return /*#__PURE__*/jsx(SlideshowItem, {
336
+ ref: scrollAreaRef
337
+ // Make it accessible to keyboard nav when the zone is scrollable
338
+ ,
339
+ tabIndex: isScrollable ? 0 : undefined,
340
+ className: `${CLASSNAME}__image-slide`,
341
+ children: /*#__PURE__*/jsx(Thumbnail, {
342
+ imgRef: useMergeRefs(imgRef, propImgRef),
343
+ image: image,
344
+ alt: alt,
345
+ className: `${CLASSNAME}__thumbnail`,
346
+ imgProps: {
347
+ ...imgProps,
348
+ style: {
349
+ ...imgProps?.style,
350
+ ...(scaledImageSize || {
351
+ maxHeight: scrollAreaSize?.height,
352
+ maxWidth: scrollAreaSize?.width
353
+ }),
354
+ // Only animate when scale is set, and we are not pointer zooming and the user does not prefer reduced motion
355
+ transition: scale && !isPointerZooming && !isReducedMotion() ? 'all 250ms' : undefined
356
+ }
357
+ },
358
+ loadingPlaceholderImageRef: loadingPlaceholderImageRef
359
+ })
360
+ });
361
+ }, isEqual);
362
+
363
+ /** Internal image slideshow component for ImageLightbox */
364
+ const ImageSlideshow = ({
365
+ activeImageIndex,
366
+ images,
367
+ slideGroupLabel,
368
+ zoomInButtonProps,
369
+ zoomOutButtonProps,
370
+ slideshowControlsProps,
371
+ currentPaginationItemRef,
372
+ footerRef,
373
+ activeImageRef
374
+ }) => {
375
+ const {
376
+ activeIndex,
377
+ slideshowId,
378
+ setSlideshow,
379
+ slideshowSlidesId,
380
+ slidesCount,
381
+ onNextClick,
382
+ onPaginationClick,
383
+ onPreviousClick,
384
+ toggleAutoPlay
385
+ } = SlideshowControls.useSlideshowControls({
386
+ itemsCount: images.length,
387
+ activeIndex: activeImageIndex
388
+ });
389
+
390
+ // Image metadata (caption)
391
+ const title = images[activeIndex]?.title;
392
+ const description = images[activeIndex]?.description;
393
+ const tags = images[activeIndex]?.tags;
394
+ const metadata = title || description || tags ? /*#__PURE__*/jsx(ImageCaption, {
395
+ as: "div",
396
+ title: title,
397
+ description: description,
398
+ tags: tags,
399
+ align: "center"
400
+ }) : null;
401
+
402
+ // Slideshow controls
403
+ const slideShowControls = slidesCount > 1 && slideshowControlsProps ? /*#__PURE__*/jsx(SlideshowControls, {
404
+ activeIndex: activeIndex,
405
+ slidesCount: slidesCount,
406
+ onNextClick: onNextClick,
407
+ onPreviousClick: onPreviousClick,
408
+ onPaginationClick: onPaginationClick,
409
+ ...slideshowControlsProps,
410
+ paginationItemProps: index => {
411
+ const props = slideshowControlsProps?.paginationItemProps?.(index) || {};
412
+ return {
413
+ ...props,
414
+ ref: mergeRefs(props?.ref,
415
+ // Focus the active pagination item once on mount
416
+ activeIndex === index ? currentPaginationItemRef : undefined)
417
+ };
418
+ }
419
+ }) : null;
420
+
421
+ // Zoom controls
422
+ const [scale, setScale] = React__default.useState(undefined);
423
+ const zoomEnabled = zoomInButtonProps && zoomOutButtonProps;
424
+ const onScaleChange = React__default.useMemo(() => {
425
+ if (!zoomEnabled) return undefined;
426
+ return newScale => {
427
+ setScale((prevScale = 1) => Math.max(1, newScale * prevScale));
428
+ };
429
+ }, [zoomEnabled]);
430
+ const zoomIn = React__default.useCallback(() => onScaleChange?.(1.5), [onScaleChange]);
431
+ const zoomOut = React__default.useCallback(() => onScaleChange?.(0.5), [onScaleChange]);
432
+ React__default.useEffect(() => {
433
+ // Reset scale on slide change
434
+ if (typeof activeIndex === 'number') setScale(undefined);
435
+ }, [activeIndex]);
436
+ const zoomControls = zoomEnabled && /*#__PURE__*/jsxs(Fragment, {
437
+ children: [/*#__PURE__*/jsx(IconButton, {
438
+ ...zoomInButtonProps,
439
+ emphasis: "low",
440
+ icon: mdiMagnifyPlusOutline,
441
+ onClick: zoomIn
442
+ }), /*#__PURE__*/jsx(IconButton, {
443
+ ...zoomOutButtonProps,
444
+ emphasis: "low",
445
+ isDisabled: !scale || scale <= 1,
446
+ icon: mdiMagnifyMinusOutline,
447
+ onClick: zoomOut
448
+ })]
449
+ });
450
+ const getImgRef = React__default.useMemo(() => memoize((index, isActive) => {
451
+ return mergeRefs(images?.[index].imgRef, isActive ? activeImageRef : undefined);
452
+ },
453
+ // memoize based on both arguments
454
+ (...args) => args.join()), [images, activeImageRef]);
455
+ return /*#__PURE__*/jsxs(Fragment, {
456
+ children: [/*#__PURE__*/jsx(Slides, {
457
+ activeIndex: activeIndex,
458
+ slideGroupLabel: slideGroupLabel,
459
+ fillHeight: true,
460
+ id: slideshowId,
461
+ ref: setSlideshow,
462
+ slidesId: slideshowSlidesId,
463
+ toggleAutoPlay: toggleAutoPlay,
464
+ children: images.map(({
465
+ image,
466
+ imgRef,
467
+ ...imageProps
468
+ }, index) => {
469
+ const isActive = index === activeIndex;
470
+ return /*#__PURE__*/jsx(ImageSlide, {
471
+ isActive: isActive,
472
+ image: {
473
+ ...imageProps,
474
+ image,
475
+ imgRef: getImgRef(index, isActive)
476
+ },
477
+ scale: isActive ? scale : undefined,
478
+ onScaleChange: onScaleChange
479
+ }, image);
480
+ })
481
+ }), (metadata || slideShowControls || zoomControls) && /*#__PURE__*/jsxs(FlexBox, {
482
+ ref: footerRef,
483
+ className: `${CLASSNAME}__footer`,
484
+ orientation: "vertical",
485
+ vAlign: "center",
486
+ gap: "big",
487
+ children: [metadata, /*#__PURE__*/jsxs(FlexBox, {
488
+ className: `${CLASSNAME}__footer-actions`,
489
+ orientation: "horizontal",
490
+ gap: "regular",
491
+ children: [slideShowControls, zoomControls]
492
+ })]
493
+ })]
494
+ });
495
+ };
496
+
497
+ /** Unref a react ref or element */
498
+ function unref(maybeElement) {
499
+ if (maybeElement instanceof HTMLElement) return maybeElement;
500
+ return maybeElement?.current;
501
+ }
502
+
503
+ function setupViewTransitionName(elementRef, name) {
504
+ let originalName = null;
505
+ return {
506
+ set() {
507
+ const element = unref(elementRef);
508
+ if (!element) return;
509
+ originalName = element.style.viewTransitionName;
510
+ element.style.viewTransitionName = name;
511
+ },
512
+ unset() {
513
+ const element = unref(elementRef);
514
+ if (!element || originalName === null) return;
515
+ element.style.viewTransitionName = originalName;
516
+ }
517
+ };
518
+ }
519
+
520
+ /**
521
+ * Wrapper around the `document.startViewTransition` handling browser incompatibilities, react DOM flush and
522
+ * user preference.
523
+ *
524
+ * @param changes callback containing the changes to apply within the view transition.
525
+ * @param setViewTransitionName set the `viewTransitionName` style on a `source` & `target` to morph these elements.
526
+ */
527
+ async function startViewTransition({
528
+ changes,
529
+ viewTransitionName
530
+ }) {
531
+ const start = document?.startViewTransition?.bind(document);
532
+ const prefersReducedMotion = isReducedMotion();
533
+ const {
534
+ flushSync
535
+ } = ReactDOM;
536
+ if (prefersReducedMotion || !start || !flushSync || !viewTransitionName?.source || !viewTransitionName?.target) {
537
+ // Skip, apply changes without a transition
538
+ changes();
539
+ return;
540
+ }
541
+
542
+ // Setup set/unset transition name on source & target
543
+ const sourceTransitionName = setupViewTransitionName(viewTransitionName.source, viewTransitionName.name);
544
+ const targetTransitionName = setupViewTransitionName(viewTransitionName.target, viewTransitionName.name);
545
+ sourceTransitionName.set();
546
+
547
+ // Start view transition, apply changes & flush to DOM
548
+ await start(() => {
549
+ sourceTransitionName.unset();
550
+ flushSync(changes);
551
+ targetTransitionName.set();
552
+ }).updateCallbackDone;
553
+ targetTransitionName.unset();
554
+ }
555
+
556
+ /** Find image in element including the element */
557
+ const findImage = element => element?.matches('img') ? element : element?.querySelector('img') || null;
558
+
559
+ /** Subset of the ImageLightboxProps managed by the useImageLightbox hook */
560
+
561
+ const EMPTY_PROPS = {
562
+ isOpen: false,
563
+ images: [],
564
+ parentElement: /*#__PURE__*/React__default.createRef()
565
+ };
566
+ /**
567
+ * Set up an ImageLightbox with images and triggers.
568
+ *
569
+ * - Associate a trigger with the lightbox to properly focus the trigger on close
570
+ * - Associate a trigger with an image to display on open
571
+ * - Automatically provide a view transition between an image trigger and the displayed image on open & close
572
+ *
573
+ * @param props Images to display in the image lightbox
574
+ */
575
+ function useImageLightbox(props) {
576
+ const propsRef = React__default.useRef(props);
577
+ React__default.useEffect(() => {
578
+ propsRef.current = props;
579
+ }, [props]);
580
+
581
+ // Keep reference for each image elements
582
+ const imageRefsRef = React__default.useRef([]);
583
+ const currentImageRef = React__default.useRef(null);
584
+ const [imageLightboxProps, setImageLightboxProps] = React__default.useState(() => ({
585
+ ...EMPTY_PROPS,
586
+ ...props
587
+ }));
588
+ const getTriggerProps = React__default.useMemo(() => {
589
+ const triggerImageRefs = {};
590
+ async function close() {
591
+ const currentImage = currentImageRef.current;
592
+ if (!currentImage) {
593
+ return;
594
+ }
595
+ const currentIndex = imageRefsRef.current.findIndex(imageRef => imageRef.current === currentImage);
596
+ await startViewTransition({
597
+ changes() {
598
+ // Close lightbox
599
+ setImageLightboxProps(prevProps => ({
600
+ ...prevProps,
601
+ isOpen: false
602
+ }));
603
+ },
604
+ // Morph from the image in lightbox to the image in trigger
605
+ viewTransitionName: {
606
+ source: currentImageRef,
607
+ target: triggerImageRefs[currentIndex],
608
+ name: CLASSNAME
609
+ }
610
+ });
611
+ }
612
+ async function open(triggerElement, {
613
+ activeImageIndex
614
+ } = {}) {
615
+ // If we find an image inside the trigger, animate it in transition with the opening image
616
+ const triggerImage = triggerImageRefs[activeImageIndex]?.current || findImage(triggerElement);
617
+
618
+ // Inject refs to improve transition and loading style
619
+ const images = propsRef.current?.images?.map((image, idx) => {
620
+ // Get or create image reference
621
+ let imgRef = imageRefsRef.current[idx];
622
+ if (!imgRef) {
623
+ imgRef = /*#__PURE__*/React__default.createRef();
624
+ imageRefsRef.current[idx] = imgRef;
625
+ }
626
+
627
+ // Try to use the trigger image as the loading placeholder
628
+ const loadingPlaceholderImageRef = triggerImage && idx === activeImageIndex ? {
629
+ current: triggerImage
630
+ } : undefined;
631
+ return {
632
+ loadingPlaceholderImageRef,
633
+ ...image,
634
+ imgRef
635
+ };
636
+ });
637
+ await startViewTransition({
638
+ changes: () => {
639
+ // Open lightbox with setup props
640
+ setImageLightboxProps(prevProps => ({
641
+ ...prevProps,
642
+ ...propsRef.current,
643
+ activeImageRef: currentImageRef,
644
+ parentElement: {
645
+ current: triggerElement
646
+ },
647
+ isOpen: true,
648
+ onClose: () => {
649
+ close();
650
+ propsRef.current?.onClose?.();
651
+ },
652
+ images,
653
+ activeImageIndex: activeImageIndex || 0
654
+ }));
655
+ },
656
+ // Morph from the image in trigger to the image in lightbox
657
+ viewTransitionName: {
658
+ source: triggerImage,
659
+ target: currentImageRef,
660
+ name: CLASSNAME
661
+ }
662
+ });
663
+ }
664
+ return memoize(options => ({
665
+ ref(element) {
666
+ // Track trigger image ref if any
667
+ if (options?.activeImageIndex !== undefined && element) {
668
+ triggerImageRefs[options.activeImageIndex] = {
669
+ current: findImage(element)
670
+ };
671
+ }
672
+ },
673
+ onClick(e) {
674
+ open(e.target, options);
675
+ }
676
+ }));
677
+ }, []);
678
+ return {
679
+ getTriggerProps,
680
+ imageLightboxProps
681
+ };
682
+ }
683
+
684
+ const Inner = forwardRef((props, ref) => {
685
+ const {
686
+ className,
687
+ isOpen,
688
+ closeButtonProps,
689
+ onClose,
690
+ parentElement,
691
+ activeImageIndex,
692
+ slideshowControlsProps,
693
+ slideGroupLabel,
694
+ images,
695
+ zoomOutButtonProps,
696
+ zoomInButtonProps,
697
+ activeImageRef: propImageRef,
698
+ ...forwardedProps
699
+ } = props;
700
+ const currentPaginationItemRef = React__default.useRef(null);
701
+ const footerRef = React__default.useRef(null);
702
+ const imageRef = React__default.useRef(null);
703
+ const clickAwayChildrenRefs = React__default.useRef([imageRef, footerRef]);
704
+ const onClickAway = React__default.useCallback(evt => {
705
+ const targetElement = evt.target;
706
+ if (!(targetElement instanceof HTMLElement) || !(evt instanceof MouseEvent)) return;
707
+
708
+ // Skip click away if clicking on the scrollbar
709
+ if (targetElement.clientWidth < evt.clientX || targetElement.clientHeight < evt.clientY) return;
710
+ onClose?.();
711
+ }, [onClose]);
712
+ return /*#__PURE__*/jsx(Lightbox, {
713
+ ref: ref,
714
+ className: classNames(className, CLASSNAME),
715
+ parentElement: parentElement,
716
+ isOpen: isOpen,
717
+ onClose: onClose,
718
+ closeButtonProps: closeButtonProps,
719
+ focusElement: currentPaginationItemRef,
720
+ ...forwardedProps,
721
+ // Disable the close on click away as we want a custom one here
722
+ preventAutoClose: true,
723
+ children: /*#__PURE__*/jsx(ClickAwayProvider, {
724
+ childrenRefs: clickAwayChildrenRefs,
725
+ callback: onClickAway,
726
+ children: /*#__PURE__*/jsx(ThemeProvider, {
727
+ value: "dark",
728
+ children: /*#__PURE__*/jsx(ImageSlideshow, {
729
+ activeImageIndex: activeImageIndex,
730
+ slideGroupLabel: slideGroupLabel,
731
+ slideshowControlsProps: slideshowControlsProps,
732
+ images: images,
733
+ zoomInButtonProps: zoomInButtonProps,
734
+ zoomOutButtonProps: zoomOutButtonProps,
735
+ footerRef: footerRef,
736
+ activeImageRef: useMergeRefs(propImageRef, imageRef),
737
+ currentPaginationItemRef: currentPaginationItemRef
738
+ })
739
+ })
740
+ })
741
+ });
742
+ });
743
+ Inner.displayName = COMPONENT_NAME;
744
+ Inner.className = CLASSNAME;
745
+
746
+ /**
747
+ * ImageLightbox component.
748
+ *
749
+ * @param props Component props.
750
+ * @param ref Component ref.
751
+ * @return React element.
752
+ */
753
+ const ImageLightbox = Object.assign(Inner, {
754
+ useImageLightbox
755
+ });
756
+
757
+ export { ImageLightbox };
758
+ //# sourceMappingURL=image-lightbox-1d7ca133.js.map