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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (697) hide show
  1. package/_internal/Button-f19e18df.js +96 -0
  2. package/_internal/Button-f19e18df.js.map +1 -0
  3. package/_internal/ButtonRoot-ab633b1d.js +115 -0
  4. package/_internal/ButtonRoot-ab633b1d.js.map +1 -0
  5. package/_internal/Chip-4c572eec.js +149 -0
  6. package/_internal/Chip-4c572eec.js.map +1 -0
  7. package/_internal/ClickAwayProvider-bcce6ceb.js +93 -0
  8. package/_internal/ClickAwayProvider-bcce6ceb.js.map +1 -0
  9. package/_internal/DisabledStateContext-077b7bef.js +29 -0
  10. package/_internal/DisabledStateContext-077b7bef.js.map +1 -0
  11. package/_internal/HeadingLevelProvider-e4817816.js +59 -0
  12. package/_internal/HeadingLevelProvider-e4817816.js.map +1 -0
  13. package/_internal/IconButton-10585058.js +72 -0
  14. package/_internal/IconButton-10585058.js.map +1 -0
  15. package/_internal/ImageCaption-4279b2b6.js +65 -0
  16. package/_internal/ImageCaption-4279b2b6.js.map +1 -0
  17. package/_internal/List-d5f5d465.js +791 -0
  18. package/_internal/List-d5f5d465.js.map +1 -0
  19. package/_internal/PopoverDialog-21e5c9dd.js +647 -0
  20. package/_internal/PopoverDialog-21e5c9dd.js.map +1 -0
  21. package/_internal/Portal-c43d098b.js +42 -0
  22. package/_internal/Portal-c43d098b.js.map +1 -0
  23. package/_internal/RawClickable-c76bbc4c.js +50 -0
  24. package/_internal/RawClickable-c76bbc4c.js.map +1 -0
  25. package/_internal/Slides-01f513ce.js +675 -0
  26. package/_internal/Slides-01f513ce.js.map +1 -0
  27. package/_internal/ThemeContext-3181f000.js +14 -0
  28. package/_internal/ThemeContext-3181f000.js.map +1 -0
  29. package/_internal/Thumbnail-30d2a781.js +312 -0
  30. package/_internal/Thumbnail-30d2a781.js.map +1 -0
  31. package/_internal/components/alert-dialog-8f1c163c.js +147 -0
  32. package/_internal/components/alert-dialog-8f1c163c.js.map +1 -0
  33. package/_internal/components/autocomplete-bfbdeb3c.js +264 -0
  34. package/_internal/components/autocomplete-bfbdeb3c.js.map +1 -0
  35. package/_internal/components/avatar-6990e3e9.js +87 -0
  36. package/_internal/components/avatar-6990e3e9.js.map +1 -0
  37. package/_internal/components/badge-81543bc7.js +81 -0
  38. package/_internal/components/badge-81543bc7.js.map +1 -0
  39. package/_internal/components/button-927abe71.js +49 -0
  40. package/_internal/components/button-927abe71.js.map +1 -0
  41. package/_internal/components/checkbox-dc4caec8.js +131 -0
  42. package/_internal/components/checkbox-dc4caec8.js.map +1 -0
  43. package/_internal/components/chip-fb3d0c76.js +104 -0
  44. package/_internal/components/chip-fb3d0c76.js.map +1 -0
  45. package/_internal/components/comment-block-b84c4694.js +121 -0
  46. package/_internal/components/comment-block-b84c4694.js.map +1 -0
  47. package/_internal/components/date-picker-a425534c.js +2 -0
  48. package/_internal/components/date-picker-a425534c.js.map +1 -0
  49. package/_internal/components/dialog-7dbcb485.js +226 -0
  50. package/_internal/components/dialog-7dbcb485.js.map +1 -0
  51. package/_internal/components/divider-12e9b6a0.js +53 -0
  52. package/_internal/components/divider-12e9b6a0.js.map +1 -0
  53. package/_internal/components/drag-handle-a38ff757.js +53 -0
  54. package/_internal/components/drag-handle-a38ff757.js.map +1 -0
  55. package/_internal/components/dropdown-38b0b6a0.js +148 -0
  56. package/_internal/components/dropdown-38b0b6a0.js.map +1 -0
  57. package/_internal/components/expansion-panel-c4b93653.js +158 -0
  58. package/_internal/components/expansion-panel-c4b93653.js.map +1 -0
  59. package/_internal/components/flag-c5e2f5f0.js +55 -0
  60. package/_internal/components/flag-c5e2f5f0.js.map +1 -0
  61. package/_internal/components/flex-box-c8701a85.js +58 -0
  62. package/_internal/components/flex-box-c8701a85.js.map +1 -0
  63. package/_internal/components/generic-block-0d6ad5a6.js +115 -0
  64. package/_internal/components/generic-block-0d6ad5a6.js.map +1 -0
  65. package/_internal/components/grid-3b194fe8.js +109 -0
  66. package/_internal/components/grid-3b194fe8.js.map +1 -0
  67. package/_internal/components/grid-column-985b9327.js +60 -0
  68. package/_internal/components/grid-column-985b9327.js.map +1 -0
  69. package/_internal/components/heading-5e954dfc.js +54 -0
  70. package/_internal/components/heading-5e954dfc.js.map +1 -0
  71. package/_internal/components/icon-2e7345ad.js +103 -0
  72. package/_internal/components/icon-2e7345ad.js.map +1 -0
  73. package/_internal/components/image-block-8d21dd7e.js +109 -0
  74. package/_internal/components/image-block-8d21dd7e.js.map +1 -0
  75. package/_internal/components/image-lightbox-4a5ab962.js +743 -0
  76. package/_internal/components/image-lightbox-4a5ab962.js.map +1 -0
  77. package/_internal/components/inline-list-4884f004.js +74 -0
  78. package/_internal/components/inline-list-4884f004.js.map +1 -0
  79. package/_internal/components/input-helper-e644e05e.js +73 -0
  80. package/_internal/components/input-helper-e644e05e.js.map +1 -0
  81. package/_internal/components/input-label-5e509a1b.js +61 -0
  82. package/_internal/components/input-label-5e509a1b.js.map +1 -0
  83. package/_internal/components/lightbox-bec1b95f.js +149 -0
  84. package/_internal/components/lightbox-bec1b95f.js.map +1 -0
  85. package/_internal/components/link-9637b9e4.js +70 -0
  86. package/_internal/components/link-9637b9e4.js.map +1 -0
  87. package/_internal/components/link-preview-7a4a6e4b.js +108 -0
  88. package/_internal/components/link-preview-7a4a6e4b.js.map +1 -0
  89. package/_internal/components/list-5c8f7122.js +77 -0
  90. package/_internal/components/list-5c8f7122.js.map +1 -0
  91. package/_internal/components/message-a67067d9.js +96 -0
  92. package/_internal/components/message-a67067d9.js.map +1 -0
  93. package/_internal/components/mosaic-92b66c80.js +92 -0
  94. package/_internal/components/mosaic-92b66c80.js.map +1 -0
  95. package/_internal/components/navigation-4fd3917d.js +210 -0
  96. package/_internal/components/navigation-4fd3917d.js.map +1 -0
  97. package/_internal/components/notification-9063c963.js +140 -0
  98. package/_internal/components/notification-9063c963.js.map +1 -0
  99. package/_internal/components/popover-3c4c54bd.js +3 -0
  100. package/_internal/components/popover-3c4c54bd.js.map +1 -0
  101. package/_internal/components/post-block-0cfc2206.js +99 -0
  102. package/_internal/components/post-block-0cfc2206.js.map +1 -0
  103. package/_internal/components/progress-eaf5b33d.js +188 -0
  104. package/_internal/components/progress-eaf5b33d.js.map +1 -0
  105. package/_internal/components/progress-tracker-4a65718d.js +309 -0
  106. package/_internal/components/progress-tracker-4a65718d.js.map +1 -0
  107. package/_internal/components/radio-button-3ef8a325.js +148 -0
  108. package/_internal/components/radio-button-3ef8a325.js.map +1 -0
  109. package/_internal/components/select-d46cfe35.js +404 -0
  110. package/_internal/components/select-d46cfe35.js.map +1 -0
  111. package/_internal/components/side-navigation-75b22f19.js +159 -0
  112. package/_internal/components/side-navigation-75b22f19.js.map +1 -0
  113. package/_internal/components/skeleton-361ce335.js +174 -0
  114. package/_internal/components/skeleton-361ce335.js.map +1 -0
  115. package/_internal/components/slider-8094cb5c.js +305 -0
  116. package/_internal/components/slider-8094cb5c.js.map +1 -0
  117. package/_internal/components/slideshow-2e8cd372.js +150 -0
  118. package/_internal/components/slideshow-2e8cd372.js.map +1 -0
  119. package/_internal/components/switch-5516949b.js +118 -0
  120. package/_internal/components/switch-5516949b.js.map +1 -0
  121. package/_internal/components/table-fa198ee6.js +299 -0
  122. package/_internal/components/table-fa198ee6.js.map +1 -0
  123. package/_internal/components/tabs-bb9bc2a5.js +298 -0
  124. package/_internal/components/tabs-bb9bc2a5.js.map +1 -0
  125. package/_internal/components/text-289c0526.js +2 -0
  126. package/_internal/components/text-289c0526.js.map +1 -0
  127. package/_internal/components/text-field-82733568.js +346 -0
  128. package/_internal/components/text-field-82733568.js.map +1 -0
  129. package/_internal/components/thumbnail-e3acff82.js +42 -0
  130. package/_internal/components/thumbnail-e3acff82.js.map +1 -0
  131. package/_internal/components/toolbar-155562be.js +60 -0
  132. package/_internal/components/toolbar-155562be.js.map +1 -0
  133. package/_internal/components/tooltip-84ffb4f9.js +318 -0
  134. package/_internal/components/tooltip-84ffb4f9.js.map +1 -0
  135. package/_internal/components/uploader-896a1d89.js +150 -0
  136. package/_internal/components/uploader-896a1d89.js.map +1 -0
  137. package/_internal/components/user-block-8fd15895.js +143 -0
  138. package/_internal/components/user-block-8fd15895.js.map +1 -0
  139. package/_internal/constants-b9e57936.js +2155 -0
  140. package/_internal/constants-b9e57936.js.map +1 -0
  141. package/_internal/constants-d0e3f49e.js +24 -0
  142. package/_internal/constants-d0e3f49e.js.map +1 -0
  143. package/_internal/context-21aeb1c7.js +19 -0
  144. package/_internal/context-21aeb1c7.js.map +1 -0
  145. package/_internal/forwardRef-49d2bb84.js +80 -0
  146. package/_internal/forwardRef-49d2bb84.js.map +1 -0
  147. package/_internal/getFocusableElements-230173a8.js +13 -0
  148. package/_internal/getFocusableElements-230173a8.js.map +1 -0
  149. package/_internal/index-b4d256e7.js +118 -0
  150. package/_internal/index-b4d256e7.js.map +1 -0
  151. package/_internal/index-f415b08e.js +430 -0
  152. package/_internal/index-f415b08e.js.map +1 -0
  153. package/_internal/isComponent-78df9309.js +20 -0
  154. package/_internal/isComponent-78df9309.js.map +1 -0
  155. package/_internal/isComponentType-e806b848.js +9 -0
  156. package/_internal/isComponentType-e806b848.js.map +1 -0
  157. package/_internal/mergeRefs-f0d7d6ea.js +30 -0
  158. package/_internal/mergeRefs-f0d7d6ea.js.map +1 -0
  159. package/{src/utils/partitionMulti.ts → _internal/partitionMulti-4daccdd5.js} +5 -9
  160. package/_internal/partitionMulti-4daccdd5.js.map +1 -0
  161. package/_internal/state-db358714.js +130 -0
  162. package/_internal/state-db358714.js.map +1 -0
  163. package/_internal/useBooleanState-2a3d237c.js +12 -0
  164. package/_internal/useBooleanState-2a3d237c.js.map +1 -0
  165. package/_internal/useCallbackOnEscape-ea4d9eb4.js +62 -0
  166. package/_internal/useCallbackOnEscape-ea4d9eb4.js.map +1 -0
  167. package/_internal/useDisableBodyScroll-36bd7352.js +219 -0
  168. package/_internal/useDisableBodyScroll-36bd7352.js.map +1 -0
  169. package/_internal/useDisableStateProps-fffc365f.js +36 -0
  170. package/_internal/useDisableStateProps-fffc365f.js.map +1 -0
  171. package/_internal/useFocusTrap-c3c6378b.js +112 -0
  172. package/_internal/useFocusTrap-c3c6378b.js.map +1 -0
  173. package/_internal/useId-3a1facc0.js +18 -0
  174. package/_internal/useId-3a1facc0.js.map +1 -0
  175. package/_internal/useRovingTabIndex-7daf0f24.js +77 -0
  176. package/_internal/useRovingTabIndex-7daf0f24.js.map +1 -0
  177. package/_internal/useTransitionVisibility-321fdbfa.js +50 -0
  178. package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
  179. package/_internal/wrapChildrenIconWithSpaces-f86106ce.js +20 -0
  180. package/_internal/wrapChildrenIconWithSpaces-f86106ce.js.map +1 -0
  181. package/index.d.ts +7 -352
  182. package/index.js +65 -14486
  183. package/index.js.map +1 -1
  184. package/package.json +3 -11
  185. package/utils/index.d.ts +1 -1
  186. package/utils/index.js +3 -1
  187. package/utils/index.js.map +1 -1
  188. package/_internal/Falsy.d.ts +0 -7
  189. package/_internal/index.js +0 -236
  190. package/_internal/index.js.map +0 -1
  191. package/src/components/alert-dialog/AlertDialog.stories.tsx +0 -127
  192. package/src/components/alert-dialog/AlertDialog.test.tsx +0 -34
  193. package/src/components/alert-dialog/AlertDialog.tsx +0 -189
  194. package/src/components/alert-dialog/index.ts +0 -1
  195. package/src/components/autocomplete/Autocomplete.stories.tsx +0 -75
  196. package/src/components/autocomplete/Autocomplete.test.tsx +0 -99
  197. package/src/components/autocomplete/Autocomplete.tsx +0 -294
  198. package/src/components/autocomplete/AutocompleteMultiple.stories.tsx +0 -167
  199. package/src/components/autocomplete/AutocompleteMultiple.test.tsx +0 -61
  200. package/src/components/autocomplete/AutocompleteMultiple.tsx +0 -156
  201. package/src/components/autocomplete/__mockData__/index.ts +0 -39
  202. package/src/components/autocomplete/index.ts +0 -2
  203. package/src/components/avatar/Avatar.stories.tsx +0 -119
  204. package/src/components/avatar/Avatar.test.tsx +0 -32
  205. package/src/components/avatar/Avatar.tsx +0 -114
  206. package/src/components/avatar/index.ts +0 -1
  207. package/src/components/badge/Badge.stories.tsx +0 -69
  208. package/src/components/badge/Badge.test.tsx +0 -45
  209. package/src/components/badge/Badge.tsx +0 -58
  210. package/src/components/badge/BadgeWrapper.stories.tsx +0 -75
  211. package/src/components/badge/BadgeWrapper.test.tsx +0 -47
  212. package/src/components/badge/BadgeWrapper.tsx +0 -37
  213. package/src/components/badge/index.ts +0 -2
  214. package/src/components/button/Button.stories.tsx +0 -355
  215. package/src/components/button/Button.test.tsx +0 -125
  216. package/src/components/button/Button.tsx +0 -101
  217. package/src/components/button/ButtonGroup.stories.tsx +0 -52
  218. package/src/components/button/ButtonGroup.test.tsx +0 -41
  219. package/src/components/button/ButtonGroup.tsx +0 -50
  220. package/src/components/button/ButtonRoot.tsx +0 -163
  221. package/src/components/button/IconButton.stories.tsx +0 -52
  222. package/src/components/button/IconButton.test.tsx +0 -66
  223. package/src/components/button/IconButton.tsx +0 -91
  224. package/src/components/button/index.ts +0 -4
  225. package/src/components/checkbox/Checkbox.stories.tsx +0 -64
  226. package/src/components/checkbox/Checkbox.test.tsx +0 -154
  227. package/src/components/checkbox/Checkbox.tsx +0 -164
  228. package/src/components/checkbox/index.ts +0 -1
  229. package/src/components/chip/Chip.stories.tsx +0 -164
  230. package/src/components/chip/Chip.test.tsx +0 -243
  231. package/src/components/chip/Chip.tsx +0 -168
  232. package/src/components/chip/ChipGroup.stories.tsx +0 -47
  233. package/src/components/chip/ChipGroup.test.tsx +0 -37
  234. package/src/components/chip/ChipGroup.tsx +0 -60
  235. package/src/components/chip/index.ts +0 -2
  236. package/src/components/comment-block/CommentBlock.stories.tsx +0 -91
  237. package/src/components/comment-block/CommentBlock.test.tsx +0 -28
  238. package/src/components/comment-block/CommentBlock.tsx +0 -172
  239. package/src/components/comment-block/index.ts +0 -1
  240. package/src/components/date-picker/DatePicker.stories.tsx +0 -118
  241. package/src/components/date-picker/DatePicker.test.tsx +0 -34
  242. package/src/components/date-picker/DatePicker.tsx +0 -52
  243. package/src/components/date-picker/DatePickerControlled.test.tsx +0 -91
  244. package/src/components/date-picker/DatePickerControlled.tsx +0 -259
  245. package/src/components/date-picker/DatePickerField.stories.tsx +0 -100
  246. package/src/components/date-picker/DatePickerField.test.tsx +0 -70
  247. package/src/components/date-picker/DatePickerField.tsx +0 -135
  248. package/src/components/date-picker/constants.ts +0 -11
  249. package/src/components/date-picker/index.ts +0 -4
  250. package/src/components/date-picker/types.ts +0 -28
  251. package/src/components/dialog/Dialog.stories.tsx +0 -318
  252. package/src/components/dialog/Dialog.test.tsx +0 -97
  253. package/src/components/dialog/Dialog.tsx +0 -288
  254. package/src/components/dialog/index.ts +0 -1
  255. package/src/components/divider/Divider.test.tsx +0 -51
  256. package/src/components/divider/Divider.tsx +0 -50
  257. package/src/components/divider/index.ts +0 -1
  258. package/src/components/drag-handle/DragHandle.test.tsx +0 -36
  259. package/src/components/drag-handle/DragHandle.tsx +0 -51
  260. package/src/components/drag-handle/index.ts +0 -1
  261. package/src/components/dropdown/Dropdown.stories.tsx +0 -31
  262. package/src/components/dropdown/Dropdown.test.tsx +0 -66
  263. package/src/components/dropdown/Dropdown.tsx +0 -186
  264. package/src/components/dropdown/index.ts +0 -1
  265. package/src/components/expansion-panel/ExpansionPanel.stories.tsx +0 -91
  266. package/src/components/expansion-panel/ExpansionPanel.test.tsx +0 -185
  267. package/src/components/expansion-panel/ExpansionPanel.tsx +0 -195
  268. package/src/components/expansion-panel/index.ts +0 -1
  269. package/src/components/flag/Flag.stories.tsx +0 -48
  270. package/src/components/flag/Flag.test.tsx +0 -62
  271. package/src/components/flag/Flag.tsx +0 -52
  272. package/src/components/flag/index.ts +0 -1
  273. package/src/components/flex-box/FlexBox.stories.tsx +0 -156
  274. package/src/components/flex-box/FlexBox.test.tsx +0 -24
  275. package/src/components/flex-box/FlexBox.tsx +0 -100
  276. package/src/components/flex-box/index.ts +0 -1
  277. package/src/components/generic-block/GenericBlock.stories.jsx +0 -128
  278. package/src/components/generic-block/GenericBlock.test.tsx +0 -156
  279. package/src/components/generic-block/GenericBlock.tsx +0 -225
  280. package/src/components/generic-block/constants.ts +0 -9
  281. package/src/components/generic-block/index.ts +0 -2
  282. package/src/components/grid/Grid.tsx +0 -83
  283. package/src/components/grid/GridItem.tsx +0 -55
  284. package/src/components/grid/index.ts +0 -2
  285. package/src/components/grid-column/GridColumn.stories.tsx +0 -45
  286. package/src/components/grid-column/GridColumn.test.jsx +0 -56
  287. package/src/components/grid-column/GridColumn.tsx +0 -83
  288. package/src/components/grid-column/index.ts +0 -1
  289. package/src/components/heading/Heading.stories.tsx +0 -69
  290. package/src/components/heading/Heading.test.tsx +0 -82
  291. package/src/components/heading/Heading.tsx +0 -65
  292. package/src/components/heading/HeadingLevelProvider.tsx +0 -30
  293. package/src/components/heading/constants.ts +0 -16
  294. package/src/components/heading/context.tsx +0 -13
  295. package/src/components/heading/index.ts +0 -3
  296. package/src/components/heading/useHeadingLevel.tsx +0 -8
  297. package/src/components/icon/Icon.stories.tsx +0 -73
  298. package/src/components/icon/Icon.test.tsx +0 -125
  299. package/src/components/icon/Icon.tsx +0 -133
  300. package/src/components/icon/index.ts +0 -1
  301. package/src/components/image-block/ImageBlock.stories.tsx +0 -117
  302. package/src/components/image-block/ImageBlock.test.tsx +0 -58
  303. package/src/components/image-block/ImageBlock.tsx +0 -142
  304. package/src/components/image-block/ImageCaption.tsx +0 -115
  305. package/src/components/image-block/index.ts +0 -1
  306. package/src/components/image-lightbox/ImageLightbox.stories.tsx +0 -160
  307. package/src/components/image-lightbox/ImageLightbox.test.tsx +0 -254
  308. package/src/components/image-lightbox/ImageLightbox.tsx +0 -90
  309. package/src/components/image-lightbox/constants.ts +0 -11
  310. package/src/components/image-lightbox/index.ts +0 -2
  311. package/src/components/image-lightbox/internal/ImageSlide.tsx +0 -107
  312. package/src/components/image-lightbox/internal/ImageSlideshow.tsx +0 -164
  313. package/src/components/image-lightbox/internal/useAnimateScroll.ts +0 -55
  314. package/src/components/image-lightbox/internal/usePointerZoom.ts +0 -148
  315. package/src/components/image-lightbox/types.ts +0 -48
  316. package/src/components/image-lightbox/useImageLightbox.tsx +0 -141
  317. package/src/components/inline-list/InlineList.stories.tsx +0 -77
  318. package/src/components/inline-list/InlineList.test.tsx +0 -52
  319. package/src/components/inline-list/InlineList.tsx +0 -96
  320. package/src/components/inline-list/index.ts +0 -1
  321. package/src/components/input-helper/InputHelper.stories.tsx +0 -35
  322. package/src/components/input-helper/InputHelper.test.tsx +0 -55
  323. package/src/components/input-helper/InputHelper.tsx +0 -65
  324. package/src/components/input-helper/constants.ts +0 -11
  325. package/src/components/input-helper/index.ts +0 -1
  326. package/src/components/input-label/InputLabel.stories.tsx +0 -45
  327. package/src/components/input-label/InputLabel.test.tsx +0 -59
  328. package/src/components/input-label/InputLabel.tsx +0 -69
  329. package/src/components/input-label/index.ts +0 -1
  330. package/src/components/lightbox/Lightbox.stories.tsx +0 -101
  331. package/src/components/lightbox/Lightbox.test.tsx +0 -53
  332. package/src/components/lightbox/Lightbox.tsx +0 -180
  333. package/src/components/lightbox/index.ts +0 -1
  334. package/src/components/link/Link.stories.tsx +0 -195
  335. package/src/components/link/Link.test.tsx +0 -127
  336. package/src/components/link/Link.tsx +0 -106
  337. package/src/components/link/index.ts +0 -1
  338. package/src/components/link-preview/LinkPreview.stories.tsx +0 -61
  339. package/src/components/link-preview/LinkPreview.test.tsx +0 -105
  340. package/src/components/link-preview/LinkPreview.tsx +0 -158
  341. package/src/components/link-preview/index.ts +0 -1
  342. package/src/components/list/List.stories.tsx +0 -116
  343. package/src/components/list/List.test.tsx +0 -18
  344. package/src/components/list/List.tsx +0 -104
  345. package/src/components/list/ListDivider.stories.tsx +0 -12
  346. package/src/components/list/ListDivider.test.tsx +0 -22
  347. package/src/components/list/ListDivider.tsx +0 -35
  348. package/src/components/list/ListItem.stories.tsx +0 -66
  349. package/src/components/list/ListItem.test.tsx +0 -93
  350. package/src/components/list/ListItem.tsx +0 -157
  351. package/src/components/list/ListSubheader.stories.tsx +0 -11
  352. package/src/components/list/ListSubheader.test.tsx +0 -21
  353. package/src/components/list/ListSubheader.tsx +0 -44
  354. package/src/components/list/index.ts +0 -4
  355. package/src/components/list/useInteractiveList.tsx +0 -202
  356. package/src/components/message/Message.stories.tsx +0 -72
  357. package/src/components/message/Message.test.tsx +0 -76
  358. package/src/components/message/Message.tsx +0 -100
  359. package/src/components/message/index.ts +0 -1
  360. package/src/components/mosaic/Mosaic.stories.tsx +0 -89
  361. package/src/components/mosaic/Mosaic.test.tsx +0 -77
  362. package/src/components/mosaic/Mosaic.tsx +0 -98
  363. package/src/components/mosaic/index.ts +0 -1
  364. package/src/components/navigation/Navigation.stories.tsx +0 -234
  365. package/src/components/navigation/Navigation.test.tsx +0 -65
  366. package/src/components/navigation/Navigation.tsx +0 -79
  367. package/src/components/navigation/NavigationItem.test.tsx +0 -35
  368. package/src/components/navigation/NavigationItem.tsx +0 -82
  369. package/src/components/navigation/NavigationSection.test.tsx +0 -137
  370. package/src/components/navigation/NavigationSection.tsx +0 -108
  371. package/src/components/navigation/context.tsx +0 -7
  372. package/src/components/navigation/index.ts +0 -1
  373. package/src/components/notification/Notification.test.tsx +0 -94
  374. package/src/components/notification/Notification.tsx +0 -138
  375. package/src/components/notification/Notifications.stories.tsx +0 -92
  376. package/src/components/notification/constants.ts +0 -28
  377. package/src/components/notification/index.ts +0 -1
  378. package/src/components/popover/Popover.stories.tsx +0 -264
  379. package/src/components/popover/Popover.test.tsx +0 -62
  380. package/src/components/popover/Popover.tsx +0 -201
  381. package/src/components/popover/constants.ts +0 -62
  382. package/src/components/popover/index.ts +0 -3
  383. package/src/components/popover/usePopoverStyle.tsx +0 -184
  384. package/src/components/popover/useRestoreFocusOnClose.tsx +0 -47
  385. package/src/components/popover-dialog/PopoverDialog.stories.tsx +0 -64
  386. package/src/components/popover-dialog/PopoverDialog.test.tsx +0 -139
  387. package/src/components/popover-dialog/PopoverDialog.tsx +0 -74
  388. package/src/components/popover-dialog/index.tsx +0 -1
  389. package/src/components/post-block/PostBlock.test.tsx +0 -27
  390. package/src/components/post-block/PostBlock.tsx +0 -122
  391. package/src/components/post-block/index.ts +0 -1
  392. package/src/components/progress/Progress.tsx +0 -68
  393. package/src/components/progress/ProgressCircular.stories.tsx +0 -43
  394. package/src/components/progress/ProgressCircular.test.tsx +0 -46
  395. package/src/components/progress/ProgressCircular.tsx +0 -82
  396. package/src/components/progress/ProgressLinear.stories.tsx +0 -12
  397. package/src/components/progress/ProgressLinear.test.tsx +0 -30
  398. package/src/components/progress/ProgressLinear.tsx +0 -50
  399. package/src/components/progress/index.ts +0 -3
  400. package/src/components/progress-tracker/ProgressTracker.stories.tsx +0 -145
  401. package/src/components/progress-tracker/ProgressTracker.test.tsx +0 -42
  402. package/src/components/progress-tracker/ProgressTracker.tsx +0 -87
  403. package/src/components/progress-tracker/ProgressTrackerProvider.test.tsx +0 -65
  404. package/src/components/progress-tracker/ProgressTrackerProvider.tsx +0 -67
  405. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +0 -36
  406. package/src/components/progress-tracker/ProgressTrackerStep.tsx +0 -159
  407. package/src/components/progress-tracker/ProgressTrackerStepPanel.test.tsx +0 -34
  408. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +0 -67
  409. package/src/components/progress-tracker/index.ts +0 -4
  410. package/src/components/radio-button/RadioButton.stories.tsx +0 -71
  411. package/src/components/radio-button/RadioButton.test.tsx +0 -143
  412. package/src/components/radio-button/RadioButton.tsx +0 -143
  413. package/src/components/radio-button/RadioGroup.stories.tsx +0 -39
  414. package/src/components/radio-button/RadioGroup.test.tsx +0 -29
  415. package/src/components/radio-button/RadioGroup.tsx +0 -44
  416. package/src/components/radio-button/index.ts +0 -2
  417. package/src/components/select/Select.stories.tsx +0 -385
  418. package/src/components/select/Select.test.tsx +0 -199
  419. package/src/components/select/Select.tsx +0 -199
  420. package/src/components/select/SelectMultiple.stories.tsx +0 -315
  421. package/src/components/select/SelectMultiple.test.tsx +0 -213
  422. package/src/components/select/SelectMultiple.tsx +0 -206
  423. package/src/components/select/WithSelectContext.tsx +0 -147
  424. package/src/components/select/constants.ts +0 -55
  425. package/src/components/select/index.ts +0 -2
  426. package/src/components/side-navigation/SideNavigation.stories.tsx +0 -191
  427. package/src/components/side-navigation/SideNavigation.test.tsx +0 -37
  428. package/src/components/side-navigation/SideNavigation.tsx +0 -52
  429. package/src/components/side-navigation/SideNavigationItem.stories.tsx +0 -133
  430. package/src/components/side-navigation/SideNavigationItem.test.tsx +0 -136
  431. package/src/components/side-navigation/SideNavigationItem.tsx +0 -165
  432. package/src/components/side-navigation/index.ts +0 -2
  433. package/src/components/skeleton/SkeletonCircle.stories.tsx +0 -41
  434. package/src/components/skeleton/SkeletonCircle.test.tsx +0 -27
  435. package/src/components/skeleton/SkeletonCircle.tsx +0 -52
  436. package/src/components/skeleton/SkeletonRectangle.stories.tsx +0 -82
  437. package/src/components/skeleton/SkeletonRectangle.test.tsx +0 -27
  438. package/src/components/skeleton/SkeletonRectangle.tsx +0 -88
  439. package/src/components/skeleton/SkeletonTypography.stories.tsx +0 -19
  440. package/src/components/skeleton/SkeletonTypography.test.tsx +0 -27
  441. package/src/components/skeleton/SkeletonTypography.tsx +0 -59
  442. package/src/components/skeleton/index.ts +0 -3
  443. package/src/components/slider/Slider.stories.tsx +0 -45
  444. package/src/components/slider/Slider.test.tsx +0 -29
  445. package/src/components/slider/Slider.tsx +0 -299
  446. package/src/components/slider/index.ts +0 -2
  447. package/src/components/slideshow/Slides.tsx +0 -130
  448. package/src/components/slideshow/Slideshow.stories.tsx +0 -179
  449. package/src/components/slideshow/Slideshow.test.tsx +0 -35
  450. package/src/components/slideshow/Slideshow.tsx +0 -173
  451. package/src/components/slideshow/SlideshowControls.stories.tsx +0 -100
  452. package/src/components/slideshow/SlideshowControls.tsx +0 -243
  453. package/src/components/slideshow/SlideshowItem.tsx +0 -44
  454. package/src/components/slideshow/SlideshowItemGroup.tsx +0 -60
  455. package/src/components/slideshow/constants.ts +0 -24
  456. package/src/components/slideshow/index.ts +0 -4
  457. package/src/components/slideshow/useKeyNavigate.ts +0 -28
  458. package/src/components/slideshow/usePaginationVisibleRange.ts +0 -37
  459. package/src/components/slideshow/useSlideFocusManagement.tsx +0 -92
  460. package/src/components/slideshow/useSwipeNavigate.ts +0 -18
  461. package/src/components/switch/Switch.stories.tsx +0 -49
  462. package/src/components/switch/Switch.test.tsx +0 -144
  463. package/src/components/switch/Switch.tsx +0 -145
  464. package/src/components/switch/index.ts +0 -1
  465. package/src/components/table/Table.test.tsx +0 -29
  466. package/src/components/table/Table.tsx +0 -59
  467. package/src/components/table/TableBody.test.tsx +0 -30
  468. package/src/components/table/TableBody.tsx +0 -42
  469. package/src/components/table/TableCell.test.tsx +0 -72
  470. package/src/components/table/TableCell.tsx +0 -130
  471. package/src/components/table/TableHeader.test.tsx +0 -30
  472. package/src/components/table/TableHeader.tsx +0 -48
  473. package/src/components/table/TableRow.test.tsx +0 -40
  474. package/src/components/table/TableRow.tsx +0 -71
  475. package/src/components/table/index.ts +0 -5
  476. package/src/components/tabs/Tab.test.tsx +0 -50
  477. package/src/components/tabs/Tab.tsx +0 -133
  478. package/src/components/tabs/TabList.test.tsx +0 -49
  479. package/src/components/tabs/TabList.tsx +0 -94
  480. package/src/components/tabs/TabPanel.test.tsx +0 -37
  481. package/src/components/tabs/TabPanel.tsx +0 -67
  482. package/src/components/tabs/TabProvider.test.tsx +0 -161
  483. package/src/components/tabs/TabProvider.tsx +0 -67
  484. package/src/components/tabs/Tabs.stories.tsx +0 -170
  485. package/src/components/tabs/index.ts +0 -4
  486. package/src/components/tabs/state.ts +0 -114
  487. package/src/components/tabs/test-utils.ts +0 -39
  488. package/src/components/text/Text.stories.tsx +0 -177
  489. package/src/components/text/Text.test.tsx +0 -92
  490. package/src/components/text/Text.tsx +0 -139
  491. package/src/components/text/index.ts +0 -1
  492. package/src/components/text-field/TextField.stories.tsx +0 -180
  493. package/src/components/text-field/TextField.test.tsx +0 -298
  494. package/src/components/text-field/TextField.tsx +0 -493
  495. package/src/components/text-field/index.ts +0 -1
  496. package/src/components/thumbnail/Thumbnail.stories.tsx +0 -448
  497. package/src/components/thumbnail/Thumbnail.test.tsx +0 -88
  498. package/src/components/thumbnail/Thumbnail.tsx +0 -248
  499. package/src/components/thumbnail/index.ts +0 -3
  500. package/src/components/thumbnail/types.ts +0 -48
  501. package/src/components/thumbnail/useFocusPointStyle.test.ts +0 -92
  502. package/src/components/thumbnail/useFocusPointStyle.tsx +0 -107
  503. package/src/components/thumbnail/useImageLoad.ts +0 -40
  504. package/src/components/toolbar/Toolbar.tsx +0 -68
  505. package/src/components/toolbar/index.ts +0 -1
  506. package/src/components/tooltip/Tooltip.stories.tsx +0 -118
  507. package/src/components/tooltip/Tooltip.test.tsx +0 -417
  508. package/src/components/tooltip/Tooltip.tsx +0 -165
  509. package/src/components/tooltip/constants.ts +0 -8
  510. package/src/components/tooltip/context.tsx +0 -17
  511. package/src/components/tooltip/index.ts +0 -1
  512. package/src/components/tooltip/useInjectTooltipRef.tsx +0 -55
  513. package/src/components/tooltip/useTooltipOpen.tsx +0 -143
  514. package/src/components/uploader/Uploader.stories.tsx +0 -109
  515. package/src/components/uploader/Uploader.test.tsx +0 -146
  516. package/src/components/uploader/Uploader.tsx +0 -177
  517. package/src/components/uploader/index.ts +0 -1
  518. package/src/components/user-block/UserBlock.stories.tsx +0 -133
  519. package/src/components/user-block/UserBlock.test.tsx +0 -106
  520. package/src/components/user-block/UserBlock.tsx +0 -193
  521. package/src/components/user-block/index.ts +0 -1
  522. package/src/constants.ts +0 -27
  523. package/src/hooks/useBooleanState.tsx +0 -13
  524. package/src/hooks/useCallbackOnEscape.ts +0 -34
  525. package/src/hooks/useChipGroupNavigation.tsx +0 -75
  526. package/src/hooks/useClickAway.tsx +0 -48
  527. package/src/hooks/useDisableBodyScroll.ts +0 -28
  528. package/src/hooks/useEventCallback.tsx +0 -17
  529. package/src/hooks/useFocus.tsx +0 -21
  530. package/src/hooks/useFocusTrap.ts +0 -93
  531. package/src/hooks/useFocusWithin.ts +0 -33
  532. package/src/hooks/useId.test.tsx +0 -22
  533. package/src/hooks/useId.ts +0 -15
  534. package/src/hooks/useImageSize.ts +0 -17
  535. package/src/hooks/useInfiniteScroll.tsx +0 -60
  536. package/src/hooks/useIntersectionObserver.tsx +0 -43
  537. package/src/hooks/useInterval.tsx +0 -31
  538. package/src/hooks/useKeyboardListNavigation.tsx +0 -204
  539. package/src/hooks/useListenFocus.tsx +0 -26
  540. package/src/hooks/useOverflowTooltipLabel.tsx +0 -32
  541. package/src/hooks/usePopper.ts +0 -12
  542. package/src/hooks/usePreviousValue.ts +0 -12
  543. package/src/hooks/useRovingTabIndex.tsx +0 -90
  544. package/src/hooks/useSizeOnWindowResize.ts +0 -30
  545. package/src/hooks/useSlideshowControls.ts +0 -246
  546. package/src/hooks/useStopPropagation.ts +0 -21
  547. package/src/hooks/useTransitionVisibility.ts +0 -48
  548. package/src/index.ts +0 -63
  549. package/src/stories/controls/color.ts +0 -7
  550. package/src/stories/controls/element.ts +0 -6
  551. package/src/stories/controls/focusPoint.ts +0 -1
  552. package/src/stories/controls/icons.ts +0 -126
  553. package/src/stories/controls/image.ts +0 -84
  554. package/src/stories/controls/selectArgType.ts +0 -8
  555. package/src/stories/controls/theme.ts +0 -3
  556. package/src/stories/controls/typography.ts +0 -5
  557. package/src/stories/controls/withUndefined.ts +0 -1
  558. package/src/stories/decorators/withChromaticForceScreenSize.tsx +0 -7
  559. package/src/stories/decorators/withCombinations.tsx +0 -132
  560. package/src/stories/decorators/withNestedProps.tsx +0 -22
  561. package/src/stories/decorators/withResizableBox.tsx +0 -21
  562. package/src/stories/decorators/withThemedBackground.tsx +0 -16
  563. package/src/stories/decorators/withValueOnChange.tsx +0 -18
  564. package/src/stories/decorators/withWrapper.tsx +0 -19
  565. package/src/stories/generated/Autocomplete/Demos.stories.tsx +0 -7
  566. package/src/stories/generated/Avatar/Demos.stories.tsx +0 -7
  567. package/src/stories/generated/Badge/Demos.stories.tsx +0 -9
  568. package/src/stories/generated/Button/Demos.stories.tsx +0 -11
  569. package/src/stories/generated/Checkbox/Demos.stories.tsx +0 -6
  570. package/src/stories/generated/Chip/Demos.stories.tsx +0 -11
  571. package/src/stories/generated/CommentBlock/Demos.stories.tsx +0 -8
  572. package/src/stories/generated/DatePicker/Demos.stories.tsx +0 -8
  573. package/src/stories/generated/Dialog/Demos.stories.tsx +0 -10
  574. package/src/stories/generated/Divider/Demos.stories.tsx +0 -6
  575. package/src/stories/generated/Dropdown/Demos.stories.tsx +0 -8
  576. package/src/stories/generated/ExpansionPanel/Demos.stories.tsx +0 -9
  577. package/src/stories/generated/Flag/Demos.stories.tsx +0 -6
  578. package/src/stories/generated/GenericBlock/Demos.stories.tsx +0 -8
  579. package/src/stories/generated/Heading/Demos.stories.tsx +0 -6
  580. package/src/stories/generated/Icon/Demos.stories.tsx +0 -8
  581. package/src/stories/generated/ImageBlock/Demos.stories.tsx +0 -9
  582. package/src/stories/generated/ImageLightbox/Demos.stories.tsx +0 -6
  583. package/src/stories/generated/Lightbox/Demos.stories.tsx +0 -6
  584. package/src/stories/generated/LinkPreview/Demos.stories.tsx +0 -7
  585. package/src/stories/generated/List/Demos.stories.tsx +0 -11
  586. package/src/stories/generated/Message/Demos.stories.tsx +0 -11
  587. package/src/stories/generated/Mosaic/Demos.stories.tsx +0 -10
  588. package/src/stories/generated/Notification/Demos.stories.tsx +0 -6
  589. package/src/stories/generated/Popover/Demos.stories.tsx +0 -11
  590. package/src/stories/generated/PopoverDialog/Demos.stories.tsx +0 -6
  591. package/src/stories/generated/PostBlock/Demos.stories.tsx +0 -6
  592. package/src/stories/generated/Progress/Demos.stories.tsx +0 -7
  593. package/src/stories/generated/ProgressTracker/Demos.stories.tsx +0 -9
  594. package/src/stories/generated/RadioButton/Demos.stories.tsx +0 -6
  595. package/src/stories/generated/Select/Demos.stories.tsx +0 -14
  596. package/src/stories/generated/SideNavigation/Demos.stories.tsx +0 -10
  597. package/src/stories/generated/Skeleton/Demos.stories.tsx +0 -9
  598. package/src/stories/generated/Slider/Demos.stories.tsx +0 -9
  599. package/src/stories/generated/Slideshow/Demos.stories.tsx +0 -8
  600. package/src/stories/generated/Switch/Demos.stories.tsx +0 -6
  601. package/src/stories/generated/Table/Demos.stories.tsx +0 -7
  602. package/src/stories/generated/Tabs/Demos.stories.tsx +0 -8
  603. package/src/stories/generated/TextField/Demos.stories.tsx +0 -20
  604. package/src/stories/generated/Thumbnail/Demos.stories.tsx +0 -12
  605. package/src/stories/generated/Toolbar/Demos.stories.tsx +0 -10
  606. package/src/stories/generated/Tooltip/Demos.stories.tsx +0 -8
  607. package/src/stories/generated/Uploader/Demos.stories.tsx +0 -8
  608. package/src/stories/generated/UserBlock/Demos.stories.tsx +0 -11
  609. package/src/stories/utils/CustomLink.tsx +0 -12
  610. package/src/stories/utils/concatPath.tsx +0 -17
  611. package/src/stories/utils/disableArgTypes.ts +0 -3
  612. package/src/stories/utils/initDemoShadowDOMPortal.ts +0 -10
  613. package/src/stories/utils/lorem.ts +0 -59
  614. package/src/stories/utils/theming.tsx +0 -166
  615. package/src/stories/utils/toFlattenProps.ts +0 -28
  616. package/src/stories/utils/withCategory.ts +0 -12
  617. package/src/testing/utils/ThemeSentinel.tsx +0 -10
  618. package/src/testing/utils/commonTestsSuiteRTL.tsx +0 -193
  619. package/src/testing/utils/index.ts +0 -1
  620. package/src/testing/utils/queries.ts +0 -19
  621. package/src/untypped-modules.d.ts +0 -9
  622. package/src/utils/ClickAwayProvider/ClickAwayProvider.stories.jsx +0 -70
  623. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +0 -69
  624. package/src/utils/ClickAwayProvider/index.ts +0 -1
  625. package/src/utils/MaterialThemeSwitcher/MaterialThemeSwitcher.tsx +0 -54
  626. package/src/utils/MaterialThemeSwitcher/index.ts +0 -1
  627. package/src/utils/Portal/Portal.test.tsx +0 -31
  628. package/src/utils/Portal/Portal.tsx +0 -33
  629. package/src/utils/Portal/PortalProvider.stories.jsx +0 -22
  630. package/src/utils/Portal/PortalProvider.test.tsx +0 -72
  631. package/src/utils/Portal/PortalProvider.tsx +0 -24
  632. package/src/utils/Portal/index.tsx +0 -2
  633. package/src/utils/browser/DOM/findImage.tsx +0 -3
  634. package/src/utils/browser/DOM/startViewTransition.ts +0 -68
  635. package/src/utils/browser/focus/constants.ts +0 -7
  636. package/src/utils/browser/focus/getFirstAndLastFocusable.test.ts +0 -134
  637. package/src/utils/browser/focus/getFirstAndLastFocusable.ts +0 -21
  638. package/src/utils/browser/focus/getFocusableElements.test.ts +0 -151
  639. package/src/utils/browser/focus/getFocusableElements.ts +0 -7
  640. package/src/utils/browser/isFocusVisible.ts +0 -9
  641. package/src/utils/browser/isHoverNotSupported.test.js +0 -24
  642. package/src/utils/browser/isHoverNotSupported.ts +0 -2
  643. package/src/utils/browser/isReducedMotion.ts +0 -6
  644. package/src/utils/date/addMonthResetDay.test.ts +0 -13
  645. package/src/utils/date/addMonthResetDay.ts +0 -9
  646. package/src/utils/date/formatDayNumber.test.ts +0 -12
  647. package/src/utils/date/formatDayNumber.ts +0 -5
  648. package/src/utils/date/getFirstDayOfWeek.test.ts +0 -20
  649. package/src/utils/date/getFirstDayOfWeek.ts +0 -59
  650. package/src/utils/date/getMonthCalendar.test.ts +0 -127
  651. package/src/utils/date/getMonthCalendar.ts +0 -69
  652. package/src/utils/date/getWeekDays.test.ts +0 -48
  653. package/src/utils/date/getWeekDays.ts +0 -34
  654. package/src/utils/date/getYearDisplayName.test.ts +0 -20
  655. package/src/utils/date/getYearDisplayName.ts +0 -12
  656. package/src/utils/date/isDateValid.test.ts +0 -15
  657. package/src/utils/date/isDateValid.ts +0 -4
  658. package/src/utils/date/isSameDay.test.ts +0 -37
  659. package/src/utils/date/isSameDay.ts +0 -11
  660. package/src/utils/disabled/DisabledStateContext.tsx +0 -29
  661. package/src/utils/disabled/DisabledStateProvider.stories.tsx +0 -92
  662. package/src/utils/disabled/index.ts +0 -2
  663. package/src/utils/disabled/useDisableStateProps.test.tsx +0 -74
  664. package/src/utils/disabled/useDisableStateProps.tsx +0 -37
  665. package/src/utils/function/makeListenerTowerContext.ts +0 -32
  666. package/src/utils/index.ts +0 -7
  667. package/src/utils/locale/getCurrentLocale.ts +0 -4
  668. package/src/utils/locale/parseLocale.test.ts +0 -17
  669. package/src/utils/locale/parseLocale.ts +0 -23
  670. package/src/utils/locale/types.ts +0 -8
  671. package/src/utils/number/clamp.ts +0 -17
  672. package/src/utils/object/isEqual.test.ts +0 -25
  673. package/src/utils/object/isEqual.ts +0 -11
  674. package/src/utils/partitionMulti.test.ts +0 -27
  675. package/src/utils/react/OnBeforeUnmount.tsx +0 -20
  676. package/src/utils/react/RawClickable.test.tsx +0 -153
  677. package/src/utils/react/RawClickable.tsx +0 -65
  678. package/src/utils/react/flattenChildren.ts +0 -32
  679. package/src/utils/react/forwardRef.ts +0 -11
  680. package/src/utils/react/forwardRefPolymorphic.ts +0 -9
  681. package/src/utils/react/mergeRefs.ts +0 -33
  682. package/src/utils/react/renderLink.tsx +0 -17
  683. package/src/utils/react/skipRender.tsx +0 -18
  684. package/src/utils/react/unref.ts +0 -7
  685. package/src/utils/react/wrapChildrenIconWithSpaces.test.tsx +0 -37
  686. package/src/utils/react/wrapChildrenIconWithSpaces.tsx +0 -22
  687. package/src/utils/theme/ThemeContext.ts +0 -16
  688. package/src/utils/theme/invertTheme.ts +0 -4
  689. package/src/utils/type/Comp.ts +0 -14
  690. package/src/utils/type/ComponentRef.ts +0 -16
  691. package/src/utils/type/HasAriaDisabled.ts +0 -6
  692. package/src/utils/type/HasPolymorphicAs.ts +0 -6
  693. package/src/utils/type/HasRequiredLinkHref.ts +0 -1
  694. package/src/utils/type/MaybeElementOrRef.ts +0 -6
  695. package/src/utils/type/index.ts +0 -9
  696. package/src/utils/type/isComponent.ts +0 -33
  697. package/src/utils/type/isComponentType.ts +0 -9
@@ -0,0 +1,318 @@
1
+ import { _ as _extends, f as forwardRef, c as classNames } from '../forwardRef-49d2bb84.js';
2
+ import React__default, { useMemo, cloneElement, useState, useRef, useEffect } from 'react';
3
+ import { I as IS_BROWSER, D as DOCUMENT, V as VISUALLY_HIDDEN } from '../constants-d0e3f49e.js';
4
+ import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
5
+ import { m as mergeRefs, u as useMergeRefs } from '../mergeRefs-f0d7d6ea.js';
6
+ import { T as TooltipContextProvider } from '../context-21aeb1c7.js';
7
+ import { u as useId } from '../useId-3a1facc0.js';
8
+ import { a as POPOVER_ZINDEX, P as Placement, u as usePopper } from '../constants-b9e57936.js';
9
+ import { u as useCallbackOnEscape } from '../useCallbackOnEscape-ea4d9eb4.js';
10
+ import { TOOLTIP_LONG_PRESS_DELAY, TOOLTIP_HOVER_DELAY } from '@lumx/core/js/constants';
11
+ import { P as Portal } from '../Portal-c43d098b.js';
12
+
13
+ /**
14
+ * Make sure tooltip appear above popovers.
15
+ */
16
+ const TOOLTIP_ZINDEX = POPOVER_ZINDEX + 1;
17
+
18
+ /**
19
+ * Add ref and ARIA attribute(s) in tooltip children or wrapped children.
20
+ * Button, IconButton, Icon and React HTML elements don't need to be wrapped but any other kind of children (array, fragment, custom components)
21
+ * will be wrapped in a <span>.
22
+ */
23
+ const useInjectTooltipRef = options => {
24
+ const {
25
+ children,
26
+ setAnchorElement,
27
+ isMounted,
28
+ id,
29
+ label,
30
+ ariaLinkMode
31
+ } = options;
32
+ // Only add link when mounted
33
+ const linkId = isMounted ? id : undefined;
34
+ return useMemo(() => {
35
+ if (!label) return children;
36
+
37
+ // Non-disabled element
38
+ if (/*#__PURE__*/React__default.isValidElement(children) && children.props.disabled !== true && children.props.isDisabled !== true) {
39
+ const ref = mergeRefs(children.ref, setAnchorElement);
40
+ const props = {
41
+ ...children.props,
42
+ ref
43
+ };
44
+
45
+ // Do not add label/description if the tooltip label is already in aria-label
46
+ if (linkId && label !== props['aria-label']) {
47
+ if (props[ariaLinkMode]) props[ariaLinkMode] += ' ';else props[ariaLinkMode] = '';
48
+ props[ariaLinkMode] += linkId;
49
+ }
50
+ return /*#__PURE__*/cloneElement(children, props);
51
+ }
52
+ const aria = linkId ? {
53
+ [ariaLinkMode]: linkId
54
+ } : undefined;
55
+ return /*#__PURE__*/React__default.createElement("div", _extends({
56
+ className: "lumx-tooltip-anchor-wrapper",
57
+ ref: setAnchorElement
58
+ }, aria), children);
59
+ }, [label, children, setAnchorElement, linkId, ariaLinkMode]);
60
+ };
61
+
62
+ /** Return true if the browser does not support pointer hover */
63
+ const isHoverNotSupported = () => !!window.matchMedia?.('(hover: none)').matches;
64
+
65
+ /** Check if the focus is visible on the given element */
66
+ const isFocusVisible = element => {
67
+ try {
68
+ return element?.matches?.(':focus-visible, [data-focus-visible-added]');
69
+ } catch (_ignored) {
70
+ // Can fail on non browser env
71
+ return true;
72
+ }
73
+ };
74
+
75
+ /**
76
+ * Hook controlling tooltip visibility using mouse hover the anchor and delay.
77
+ *
78
+ * @param delay Delay in millisecond to display the tooltip.
79
+ * @param anchorElement Tooltip anchor element.
80
+ * @return whether or not to show the tooltip.
81
+ */
82
+ function useTooltipOpen(delay, anchorElement) {
83
+ const [isOpen, setIsOpen] = useState(false);
84
+ const onPopperMount = useRef(null);
85
+
86
+ // Global close on escape
87
+ const [closeCallback, setCloseCallback] = useState(undefined);
88
+ useCallbackOnEscape(isOpen ? closeCallback : undefined);
89
+ useEffect(() => {
90
+ if (!anchorElement) {
91
+ return undefined;
92
+ }
93
+ let timer;
94
+ let openStartTime;
95
+ let shouldOpen;
96
+
97
+ // Run timer to defer updating the isOpen state.
98
+ const deferUpdate = duration => {
99
+ if (timer) clearTimeout(timer);
100
+ const update = () => {
101
+ setIsOpen(!!shouldOpen);
102
+ };
103
+ // Skip timeout in fake browsers
104
+ if (!IS_BROWSER) update();else timer = setTimeout(update, duration);
105
+ };
106
+ const hoverNotSupported = isHoverNotSupported();
107
+ const hasTouch = 'ontouchstart' in window;
108
+
109
+ // Adapt open/close delay
110
+ const openDelay = delay || (hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.open : TOOLTIP_HOVER_DELAY.open);
111
+ const closeDelay = hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.close : TOOLTIP_HOVER_DELAY.close;
112
+
113
+ // Open (or/and cancel closing) of tooltip.
114
+ const open = () => {
115
+ if (shouldOpen && !timer) return;
116
+ shouldOpen = true;
117
+ openStartTime = Date.now();
118
+ deferUpdate(openDelay);
119
+ };
120
+
121
+ // Close or cancel opening of tooltip
122
+ const getClose = (overrideDelay = closeDelay) => {
123
+ if (!shouldOpen && !timer) return;
124
+ shouldOpen = false;
125
+ deferUpdate(overrideDelay);
126
+ };
127
+ const close = () => getClose(closeDelay);
128
+ const closeImmediately = () => getClose(0);
129
+ setCloseCallback(() => closeImmediately);
130
+
131
+ // Adapt event to browsers with or without `hover` support.
132
+ const events = [];
133
+ if (hoverNotSupported) {
134
+ /**
135
+ * Handle touchend event
136
+ * If end comes before the open delay => cancel tooltip (close immediate).
137
+ * Else if end comes after the open delay => tooltip takes priority, the anchor's default touch end event is prevented.
138
+ */
139
+ const longPressEnd = evt => {
140
+ if (!openStartTime) return;
141
+ if (Date.now() - openStartTime >= openDelay) {
142
+ // Tooltip take priority, event prevented.
143
+ evt.stopPropagation();
144
+ evt.preventDefault();
145
+ anchorElement.focus();
146
+ // Close with delay.
147
+ close();
148
+ } else {
149
+ // Close immediately.
150
+ closeImmediately();
151
+ }
152
+ };
153
+ events.push([anchorElement, hasTouch ? 'touchstart' : 'mousedown', open], [anchorElement, hasTouch ? 'touchend' : 'mouseup', longPressEnd]);
154
+ } else {
155
+ events.push([anchorElement, 'mouseenter', open], [anchorElement, 'mouseleave', close], [anchorElement, 'mouseup', closeImmediately]);
156
+ onPopperMount.current = popperElement => {
157
+ if (!popperElement) return;
158
+ // Popper element hover
159
+ popperElement.addEventListener('mouseenter', open);
160
+ popperElement.addEventListener('mouseleave', close);
161
+ // Add to event list to remove on unmount
162
+ events.push([popperElement, 'mouseenter', open], [popperElement, 'mouseleave', close]);
163
+ };
164
+ }
165
+
166
+ // Events always applied no matter the browser:.
167
+ events.push(
168
+ // Open on focus (only if focus is visible).
169
+ [anchorElement, 'focusin', e => {
170
+ // Skip if focus is not visible
171
+ if (!isFocusVisible(e.target)) return;
172
+ open();
173
+ }],
174
+ // Close on lost focus.
175
+ [anchorElement, 'focusout', closeImmediately]);
176
+
177
+ // Attach events
178
+ for (const [node, eventType, eventHandler] of events) {
179
+ node.addEventListener(eventType, eventHandler);
180
+ }
181
+ return () => {
182
+ // Clear pending timers.
183
+ if (timer) clearTimeout(timer);
184
+
185
+ // Detach events.
186
+ for (const [node, eventType, eventHandler] of events) {
187
+ node.removeEventListener(eventType, eventHandler);
188
+ }
189
+ };
190
+ }, [anchorElement, delay]);
191
+ return {
192
+ isOpen,
193
+ onPopperMount: onPopperMount.current
194
+ };
195
+ }
196
+
197
+ /** Position of the tooltip relative to the anchor element. */
198
+
199
+ /**
200
+ * Defines the props of the component.
201
+ */
202
+
203
+ /**
204
+ * Component display name.
205
+ */
206
+ const COMPONENT_NAME = 'Tooltip';
207
+
208
+ /**
209
+ * Component default class name and class prefix.
210
+ */
211
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
212
+
213
+ /**
214
+ * Component default props.
215
+ */
216
+ const DEFAULT_PROPS = {
217
+ placement: Placement.BOTTOM,
218
+ closeMode: 'unmount',
219
+ ariaLinkMode: 'aria-describedby',
220
+ zIndex: TOOLTIP_ZINDEX
221
+ };
222
+
223
+ /**
224
+ * Arrow size (in pixel).
225
+ */
226
+ const ARROW_SIZE = 8;
227
+
228
+ /**
229
+ * Tooltip component.
230
+ *
231
+ * @param props Component props.
232
+ * @param ref Component ref.
233
+ * @return React element.
234
+ */
235
+ const Tooltip = forwardRef((props, ref) => {
236
+ const {
237
+ label,
238
+ children,
239
+ className,
240
+ delay,
241
+ placement = DEFAULT_PROPS.placement,
242
+ forceOpen,
243
+ closeMode = DEFAULT_PROPS.closeMode,
244
+ ariaLinkMode = DEFAULT_PROPS.ariaLinkMode,
245
+ zIndex = DEFAULT_PROPS.zIndex,
246
+ ...forwardedProps
247
+ } = props;
248
+ // Disable in SSR.
249
+ if (!DOCUMENT) {
250
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);
251
+ }
252
+ const id = useId();
253
+ const [popperElement, setPopperElement] = useState(null);
254
+ const [anchorElement, setAnchorElement] = useState(null);
255
+ const {
256
+ styles,
257
+ attributes,
258
+ update
259
+ } = usePopper(anchorElement, popperElement, {
260
+ placement,
261
+ modifiers: [{
262
+ name: 'offset',
263
+ options: {
264
+ offset: [0, ARROW_SIZE]
265
+ }
266
+ }]
267
+ });
268
+ const position = attributes?.popper?.['data-popper-placement'] ?? placement;
269
+ const {
270
+ isOpen: isActivated,
271
+ onPopperMount
272
+ } = useTooltipOpen(delay, anchorElement);
273
+ const isOpen = (isActivated || forceOpen) && !!label;
274
+ const isMounted = !!label && (isOpen || closeMode === 'hide');
275
+ const isHidden = !isOpen && closeMode === 'hide';
276
+ const wrappedChildren = useInjectTooltipRef({
277
+ children,
278
+ setAnchorElement,
279
+ isMounted,
280
+ id,
281
+ label,
282
+ ariaLinkMode: ariaLinkMode
283
+ });
284
+
285
+ // Update on open
286
+ React__default.useEffect(() => {
287
+ if (isOpen || popperElement) update?.();
288
+ }, [isOpen, update, popperElement]);
289
+ const labelLines = label ? label.split('\n') : [];
290
+ const tooltipRef = useMergeRefs(ref, setPopperElement, onPopperMount);
291
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TooltipContextProvider, null, wrappedChildren), isMounted && /*#__PURE__*/React__default.createElement(Portal, null, /*#__PURE__*/React__default.createElement("div", _extends({
292
+ ref: tooltipRef
293
+ }, forwardedProps, {
294
+ id: id,
295
+ role: "tooltip",
296
+ className: classNames(className, handleBasicClasses({
297
+ prefix: CLASSNAME,
298
+ position,
299
+ isInitializing: !styles.popper?.transform
300
+ }), isHidden && VISUALLY_HIDDEN),
301
+ style: {
302
+ ...(isHidden ? undefined : styles.popper),
303
+ zIndex
304
+ }
305
+ }, attributes.popper), /*#__PURE__*/React__default.createElement("div", {
306
+ className: `${CLASSNAME}__arrow`
307
+ }), /*#__PURE__*/React__default.createElement("div", {
308
+ className: `${CLASSNAME}__inner`
309
+ }, labelLines.map(line => /*#__PURE__*/React__default.createElement("p", {
310
+ key: line
311
+ }, line))))));
312
+ });
313
+ Tooltip.displayName = COMPONENT_NAME;
314
+ Tooltip.className = CLASSNAME;
315
+ Tooltip.defaultProps = DEFAULT_PROPS;
316
+
317
+ export { Tooltip };
318
+ //# sourceMappingURL=tooltip-84ffb4f9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-84ffb4f9.js","sources":["../../../src/components/tooltip/constants.ts","../../../src/components/tooltip/useInjectTooltipRef.tsx","../../../src/utils/browser/isHoverNotSupported.ts","../../../src/utils/browser/isFocusVisible.ts","../../../src/components/tooltip/useTooltipOpen.tsx","../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { POPOVER_ZINDEX } from '../popover/constants';\n\nexport const ARIA_LINK_MODES = ['aria-describedby', 'aria-labelledby'] as const;\n\n/**\n * Make sure tooltip appear above popovers.\n */\nexport const TOOLTIP_ZINDEX = POPOVER_ZINDEX + 1;\n","import React, { cloneElement, ReactNode, useMemo } from 'react';\n\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\n\ninterface Options {\n /** Original tooltip anchor */\n children: ReactNode;\n /** Set tooltip anchor element */\n setAnchorElement: (e: HTMLDivElement) => void;\n /** Whether the tooltip is open or not */\n isMounted: boolean | undefined;\n /** Tooltip id */\n id: string;\n /** Tooltip label*/\n label?: string | null | false;\n /** Choose how the tooltip text should link to the anchor */\n ariaLinkMode: 'aria-describedby' | 'aria-labelledby';\n}\n\n/**\n * Add ref and ARIA attribute(s) in tooltip children or wrapped children.\n * Button, IconButton, Icon and React HTML elements don't need to be wrapped but any other kind of children (array, fragment, custom components)\n * will be wrapped in a <span>.\n */\nexport const useInjectTooltipRef = (options: Options): ReactNode => {\n const { children, setAnchorElement, isMounted, id, label, ariaLinkMode } = options;\n // Only add link when mounted\n const linkId = isMounted ? id : undefined;\n\n return useMemo(() => {\n if (!label) return children;\n\n // Non-disabled element\n if (React.isValidElement(children) && children.props.disabled !== true && children.props.isDisabled !== true) {\n const ref = mergeRefs((children as any).ref, setAnchorElement);\n const props = { ...children.props, ref };\n\n // Do not add label/description if the tooltip label is already in aria-label\n if (linkId && label !== props['aria-label']) {\n if (props[ariaLinkMode]) props[ariaLinkMode] += ' ';\n else props[ariaLinkMode] = '';\n props[ariaLinkMode] += linkId;\n }\n\n return cloneElement(children, props);\n }\n\n const aria = linkId ? { [ariaLinkMode]: linkId } : undefined;\n return (\n <div className=\"lumx-tooltip-anchor-wrapper\" ref={setAnchorElement} {...aria}>\n {children}\n </div>\n );\n }, [label, children, setAnchorElement, linkId, ariaLinkMode]);\n};\n","/** Return true if the browser does not support pointer hover */\nexport const isHoverNotSupported = (): boolean => !!window.matchMedia?.('(hover: none)').matches;\n","/** Check if the focus is visible on the given element */\nexport const isFocusVisible = (element?: HTMLElement) => {\n try {\n return element?.matches?.(':focus-visible, [data-focus-visible-added]');\n } catch (_ignored) {\n // Can fail on non browser env\n return true;\n }\n};\n","import { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport { isHoverNotSupported } from '@lumx/react/utils/browser/isHoverNotSupported';\nimport { IS_BROWSER, TOOLTIP_HOVER_DELAY, TOOLTIP_LONG_PRESS_DELAY } from '@lumx/react/constants';\nimport { useCallbackOnEscape } from '@lumx/react/hooks/useCallbackOnEscape';\nimport { isFocusVisible } from '@lumx/react/utils/browser/isFocusVisible';\n\n/**\n * Hook controlling tooltip visibility using mouse hover the anchor and delay.\n *\n * @param delay Delay in millisecond to display the tooltip.\n * @param anchorElement Tooltip anchor element.\n * @return whether or not to show the tooltip.\n */\nexport function useTooltipOpen(delay: number | undefined, anchorElement: HTMLElement | null) {\n const [isOpen, setIsOpen] = useState(false);\n\n const onPopperMount = useRef<any>(null) as MutableRefObject<(elem: HTMLElement | null) => void>;\n\n // Global close on escape\n const [closeCallback, setCloseCallback] = useState<undefined | (() => void)>(undefined);\n useCallbackOnEscape(isOpen ? closeCallback : undefined);\n\n useEffect(() => {\n if (!anchorElement) {\n return undefined;\n }\n let timer: number | undefined;\n let openStartTime: number | undefined;\n let shouldOpen: boolean | undefined;\n\n // Run timer to defer updating the isOpen state.\n const deferUpdate = (duration: number) => {\n if (timer) clearTimeout(timer);\n const update = () => {\n setIsOpen(!!shouldOpen);\n };\n // Skip timeout in fake browsers\n if (!IS_BROWSER) update();\n else timer = setTimeout(update, duration) as any;\n };\n\n const hoverNotSupported = isHoverNotSupported();\n const hasTouch = 'ontouchstart' in window;\n\n // Adapt open/close delay\n const openDelay = delay || (hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.open : TOOLTIP_HOVER_DELAY.open);\n const closeDelay = hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.close : TOOLTIP_HOVER_DELAY.close;\n\n // Open (or/and cancel closing) of tooltip.\n const open = () => {\n if (shouldOpen && !timer) return;\n shouldOpen = true;\n openStartTime = Date.now();\n deferUpdate(openDelay);\n };\n\n // Close or cancel opening of tooltip\n const getClose = (overrideDelay = closeDelay) => {\n if (!shouldOpen && !timer) return;\n shouldOpen = false;\n deferUpdate(overrideDelay);\n };\n const close = () => getClose(closeDelay);\n const closeImmediately = () => getClose(0);\n setCloseCallback(() => closeImmediately);\n\n // Adapt event to browsers with or without `hover` support.\n const events: Array<[Node, Event['type'], any]> = [];\n if (hoverNotSupported) {\n /**\n * Handle touchend event\n * If end comes before the open delay => cancel tooltip (close immediate).\n * Else if end comes after the open delay => tooltip takes priority, the anchor's default touch end event is prevented.\n */\n const longPressEnd = (evt: Event) => {\n if (!openStartTime) return;\n if (Date.now() - openStartTime >= openDelay) {\n // Tooltip take priority, event prevented.\n evt.stopPropagation();\n evt.preventDefault();\n anchorElement.focus();\n // Close with delay.\n close();\n } else {\n // Close immediately.\n closeImmediately();\n }\n };\n\n events.push(\n [anchorElement, hasTouch ? 'touchstart' : 'mousedown', open],\n [anchorElement, hasTouch ? 'touchend' : 'mouseup', longPressEnd],\n );\n } else {\n events.push(\n [anchorElement, 'mouseenter', open],\n [anchorElement, 'mouseleave', close],\n [anchorElement, 'mouseup', closeImmediately],\n );\n\n onPopperMount.current = (popperElement: HTMLElement | null) => {\n if (!popperElement) return;\n // Popper element hover\n popperElement.addEventListener('mouseenter', open);\n popperElement.addEventListener('mouseleave', close);\n // Add to event list to remove on unmount\n events.push([popperElement, 'mouseenter', open], [popperElement, 'mouseleave', close]);\n };\n }\n\n // Events always applied no matter the browser:.\n events.push(\n // Open on focus (only if focus is visible).\n [\n anchorElement,\n 'focusin',\n (e: Event) => {\n // Skip if focus is not visible\n if (!isFocusVisible(e.target as HTMLElement)) return;\n open();\n },\n ],\n // Close on lost focus.\n [anchorElement, 'focusout', closeImmediately],\n );\n\n // Attach events\n for (const [node, eventType, eventHandler] of events) {\n node.addEventListener(eventType, eventHandler);\n }\n return () => {\n // Clear pending timers.\n if (timer) clearTimeout(timer);\n\n // Detach events.\n for (const [node, eventType, eventHandler] of events) {\n node.removeEventListener(eventType, eventHandler);\n }\n };\n }, [anchorElement, delay]);\n\n return { isOpen, onPopperMount: onPopperMount.current };\n}\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { ReactNode, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { DOCUMENT, VISUALLY_HIDDEN } from '@lumx/react/constants';\nimport { GenericProps, HasCloseMode } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useMergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { Placement } from '@lumx/react/components/popover';\nimport { TooltipContextProvider } from '@lumx/react/components/tooltip/context';\nimport { useId } from '@lumx/react/hooks/useId';\nimport { usePopper } from '@lumx/react/hooks/usePopper';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { ARIA_LINK_MODES, TOOLTIP_ZINDEX } from '@lumx/react/components/tooltip/constants';\nimport { Portal } from '@lumx/react/utils';\nimport { useInjectTooltipRef } from './useInjectTooltipRef';\nimport { useTooltipOpen } from './useTooltipOpen';\n\n/** Position of the tooltip relative to the anchor element. */\nexport type TooltipPlacement = Extract<Placement, 'top' | 'right' | 'bottom' | 'left'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface TooltipProps extends GenericProps, HasCloseMode {\n /** Anchor (element on which we activate the tooltip). */\n children: ReactNode;\n /** Delay (in ms) before closing the tooltip. */\n delay?: number;\n /** Whether the tooltip is displayed even without the mouse hovering the anchor. */\n forceOpen?: boolean;\n /** Label text. */\n label?: string | null | false;\n /** Placement of the tooltip relative to the anchor. */\n placement?: TooltipPlacement;\n /** Choose how the tooltip text should link to the anchor */\n ariaLinkMode?: (typeof ARIA_LINK_MODES)[number];\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tooltip';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TooltipProps> = {\n placement: Placement.BOTTOM,\n closeMode: 'unmount',\n ariaLinkMode: 'aria-describedby',\n zIndex: TOOLTIP_ZINDEX,\n};\n\n/**\n * Arrow size (in pixel).\n */\nconst ARROW_SIZE = 8;\n\n/**\n * Tooltip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tooltip = forwardRef<TooltipProps, HTMLDivElement>((props, ref) => {\n const {\n label,\n children,\n className,\n delay,\n placement = DEFAULT_PROPS.placement,\n forceOpen,\n closeMode = DEFAULT_PROPS.closeMode,\n ariaLinkMode = DEFAULT_PROPS.ariaLinkMode,\n zIndex = DEFAULT_PROPS.zIndex,\n ...forwardedProps\n } = props;\n // Disable in SSR.\n if (!DOCUMENT) {\n return <>{children}</>;\n }\n\n const id = useId();\n\n const [popperElement, setPopperElement] = useState<null | HTMLElement>(null);\n const [anchorElement, setAnchorElement] = useState<null | HTMLElement>(null);\n const { styles, attributes, update } = usePopper(anchorElement, popperElement, {\n placement,\n modifiers: [\n {\n name: 'offset',\n options: { offset: [0, ARROW_SIZE] },\n },\n ],\n });\n\n const position = attributes?.popper?.['data-popper-placement'] ?? placement;\n const { isOpen: isActivated, onPopperMount } = useTooltipOpen(delay, anchorElement);\n const isOpen = (isActivated || forceOpen) && !!label;\n const isMounted = !!label && (isOpen || closeMode === 'hide');\n const isHidden = !isOpen && closeMode === 'hide';\n const wrappedChildren = useInjectTooltipRef({\n children,\n setAnchorElement,\n isMounted,\n id,\n label,\n ariaLinkMode: ariaLinkMode as any,\n });\n\n // Update on open\n React.useEffect(() => {\n if (isOpen || popperElement) update?.();\n }, [isOpen, update, popperElement]);\n\n const labelLines = label ? label.split('\\n') : [];\n\n const tooltipRef = useMergeRefs(ref, setPopperElement, onPopperMount);\n\n return (\n <>\n <TooltipContextProvider>{wrappedChildren}</TooltipContextProvider>\n {isMounted && (\n <Portal>\n <div\n ref={tooltipRef}\n {...forwardedProps}\n id={id}\n role=\"tooltip\"\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n position,\n isInitializing: !styles.popper?.transform,\n }),\n isHidden && VISUALLY_HIDDEN,\n )}\n style={{ ...(isHidden ? undefined : styles.popper), zIndex }}\n {...attributes.popper}\n >\n <div className={`${CLASSNAME}__arrow`} />\n <div className={`${CLASSNAME}__inner`}>\n {labelLines.map((line) => (\n <p key={line}>{line}</p>\n ))}\n </div>\n </div>\n </Portal>\n )}\n </>\n );\n});\nTooltip.displayName = COMPONENT_NAME;\nTooltip.className = CLASSNAME;\nTooltip.defaultProps = DEFAULT_PROPS;\n"],"names":["TOOLTIP_ZINDEX","POPOVER_ZINDEX","useInjectTooltipRef","options","children","setAnchorElement","isMounted","id","label","ariaLinkMode","linkId","undefined","useMemo","React","isValidElement","props","disabled","isDisabled","ref","mergeRefs","cloneElement","aria","createElement","_extends","className","isHoverNotSupported","window","matchMedia","matches","isFocusVisible","element","_ignored","useTooltipOpen","delay","anchorElement","isOpen","setIsOpen","useState","onPopperMount","useRef","closeCallback","setCloseCallback","useCallbackOnEscape","useEffect","timer","openStartTime","shouldOpen","deferUpdate","duration","clearTimeout","update","IS_BROWSER","setTimeout","hoverNotSupported","hasTouch","openDelay","TOOLTIP_LONG_PRESS_DELAY","open","TOOLTIP_HOVER_DELAY","closeDelay","close","Date","now","getClose","overrideDelay","closeImmediately","events","longPressEnd","evt","stopPropagation","preventDefault","focus","push","current","popperElement","addEventListener","e","target","node","eventType","eventHandler","removeEventListener","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","placement","Placement","BOTTOM","closeMode","zIndex","ARROW_SIZE","Tooltip","forwardRef","forceOpen","forwardedProps","DOCUMENT","Fragment","useId","setPopperElement","styles","attributes","usePopper","modifiers","name","offset","position","popper","isActivated","isHidden","wrappedChildren","labelLines","split","tooltipRef","useMergeRefs","TooltipContextProvider","Portal","role","classNames","handleBasicClasses","prefix","isInitializing","transform","VISUALLY_HIDDEN","style","map","line","key","displayName","defaultProps"],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
2
+ import React__default from 'react';
3
+ import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
4
+ import { u as useBooleanState } from '../useBooleanState-2a3d237c.js';
5
+ import { u as useId } from '../useId-3a1facc0.js';
6
+ import { u as useTheme } from '../ThemeContext-3181f000.js';
7
+ import { V as VISUALLY_HIDDEN } from '../constants-d0e3f49e.js';
8
+ import { u as useDisableStateProps } from '../useDisableStateProps-fffc365f.js';
9
+ import { AspectRatio, Size, Theme } from '@lumx/core/js/constants';
10
+ import { Icon } from './icon-2e7345ad.js';
11
+
12
+ /**
13
+ * Uploader variants.
14
+ */
15
+ const UploaderVariant = {
16
+ square: 'square',
17
+ rounded: 'rounded',
18
+ circle: 'circle'
19
+ };
20
+
21
+ /**
22
+ * Uploader sizes.
23
+ */
24
+
25
+ /**
26
+ * Extend native HTML input props with specialized `onChange` providing the a `File` array.
27
+ */
28
+
29
+ /**
30
+ * Defines the props of the component.
31
+ */
32
+
33
+ /**
34
+ * Component display name.
35
+ */
36
+ const COMPONENT_NAME = 'Uploader';
37
+
38
+ /**
39
+ * Component default class name and class prefix.
40
+ */
41
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
42
+
43
+ /**
44
+ * Component default props.
45
+ */
46
+ const DEFAULT_PROPS = {
47
+ aspectRatio: AspectRatio.horizontal,
48
+ size: Size.xl,
49
+ variant: UploaderVariant.square
50
+ };
51
+
52
+ /**
53
+ * Uploader component.
54
+ *
55
+ * @param props Component props.
56
+ * @param ref Component ref.
57
+ * @return React element.
58
+ */
59
+ const Uploader = forwardRef((props, ref) => {
60
+ const {
61
+ disabledStateProps,
62
+ otherProps,
63
+ isAnyDisabled
64
+ } = useDisableStateProps(props);
65
+ const defaultTheme = useTheme() || Theme.light;
66
+ const {
67
+ aspectRatio = DEFAULT_PROPS.aspectRatio,
68
+ className,
69
+ label,
70
+ icon,
71
+ size = DEFAULT_PROPS.size,
72
+ theme = defaultTheme,
73
+ variant = DEFAULT_PROPS.variant,
74
+ fileInputProps,
75
+ onClick,
76
+ ...forwardedProps
77
+ } = otherProps;
78
+ // Adjust to square aspect ratio when using circle variants.
79
+ const adjustedAspectRatio = variant === UploaderVariant.circle ? AspectRatio.square : aspectRatio;
80
+ const handleClick = React__default.useCallback(evt => {
81
+ if (isAnyDisabled) {
82
+ evt.preventDefault();
83
+ } else {
84
+ onClick?.(evt);
85
+ }
86
+ }, [isAnyDisabled, onClick]);
87
+ const generatedInputId = useId();
88
+ const inputId = fileInputProps?.id || generatedInputId;
89
+ const [isDragHovering, unsetDragHovering, setDragHovering] = useBooleanState(false);
90
+ const wrapper = fileInputProps ? {
91
+ Component: 'label',
92
+ props: {
93
+ htmlFor: inputId
94
+ }
95
+ } : {
96
+ Component: 'button',
97
+ props: {
98
+ type: 'button',
99
+ ...disabledStateProps
100
+ }
101
+ };
102
+ const onChange = React__default.useMemo(() => {
103
+ if (isAnyDisabled || !fileInputProps?.onChange) return undefined;
104
+ return evt => {
105
+ const fileList = evt.target.files;
106
+ const files = fileList ? Array.from(fileList) : [];
107
+ fileInputProps.onChange(files, evt);
108
+ };
109
+ }, [isAnyDisabled, fileInputProps]);
110
+ return /*#__PURE__*/React__default.createElement(wrapper.Component, _extends({
111
+ ref: ref
112
+ }, wrapper.props, forwardedProps, {
113
+ onClick: handleClick,
114
+ className: classNames(className, handleBasicClasses({
115
+ aspectRatio: adjustedAspectRatio,
116
+ prefix: CLASSNAME,
117
+ size,
118
+ theme,
119
+ variant,
120
+ isDragHovering,
121
+ isDisabled: isAnyDisabled
122
+ }))
123
+ }), /*#__PURE__*/React__default.createElement("span", {
124
+ className: `${CLASSNAME}__background`
125
+ }), /*#__PURE__*/React__default.createElement("span", {
126
+ className: `${CLASSNAME}__wrapper`
127
+ }, icon && /*#__PURE__*/React__default.createElement(Icon, {
128
+ className: `${CLASSNAME}__icon`,
129
+ icon: icon,
130
+ size: Size.s
131
+ }), label && /*#__PURE__*/React__default.createElement("span", {
132
+ className: `${CLASSNAME}__label`
133
+ }, label)), fileInputProps && /*#__PURE__*/React__default.createElement("input", _extends({
134
+ type: "file",
135
+ id: inputId,
136
+ className: `${CLASSNAME}__input ${VISUALLY_HIDDEN}`
137
+ }, disabledStateProps, fileInputProps, {
138
+ readOnly: isAnyDisabled,
139
+ onChange: onChange,
140
+ onDragEnter: setDragHovering,
141
+ onDragLeave: unsetDragHovering,
142
+ onDrop: unsetDragHovering
143
+ })));
144
+ });
145
+ Uploader.displayName = COMPONENT_NAME;
146
+ Uploader.className = CLASSNAME;
147
+ Uploader.defaultProps = DEFAULT_PROPS;
148
+
149
+ export { Uploader, UploaderVariant };
150
+ //# sourceMappingURL=uploader-896a1d89.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploader-896a1d89.js","sources":["../../../src/components/uploader/Uploader.tsx"],"sourcesContent":["import React, { MouseEventHandler } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AspectRatio, Icon, Size, Theme } from '@lumx/react';\nimport { GenericProps, HasTheme, ValueOf } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useBooleanState } from '@lumx/react/hooks/useBooleanState';\nimport { useId } from '@lumx/react/hooks/useId';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { HasAriaDisabled } from '@lumx/react/utils/type/HasAriaDisabled';\nimport { useDisableStateProps } from '@lumx/react/utils/disabled';\nimport { VISUALLY_HIDDEN } from '@lumx/react/constants';\n\n/**\n * Uploader variants.\n */\nexport const UploaderVariant = {\n square: 'square',\n rounded: 'rounded',\n circle: 'circle',\n} as const;\nexport type UploaderVariant = ValueOf<typeof UploaderVariant>;\n\n/**\n * Uploader sizes.\n */\nexport type UploaderSize = Extract<Size, 'xl' | 'xxl'>;\n\n/**\n * Extend native HTML input props with specialized `onChange` providing the a `File` array.\n */\ninterface FileInputProps extends Omit<React.ComponentProps<'input'>, 'onChange'> {\n onChange(files: File[], evt: React.ChangeEvent<HTMLInputElement>): void;\n}\n\n/**\n * Defines the props of the component.\n */\nexport interface UploaderProps extends GenericProps, HasTheme, HasAriaDisabled {\n /** Image aspect ratio. */\n aspectRatio?: AspectRatio;\n /** Icon (SVG path). */\n icon?: string;\n /** Disabled state */\n isDisabled?: boolean;\n /** Label text. */\n label?: string;\n /** Size variant. */\n size?: UploaderSize;\n /** Variant. */\n variant?: UploaderVariant;\n /** On click callback. */\n onClick?: MouseEventHandler;\n /** Handle file selection with a native input file. */\n fileInputProps?: FileInputProps;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Uploader';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<UploaderProps> = {\n aspectRatio: AspectRatio.horizontal,\n size: Size.xl,\n variant: UploaderVariant.square,\n};\n\n/**\n * Uploader component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Uploader = forwardRef<UploaderProps>((props, ref) => {\n const { disabledStateProps, otherProps, isAnyDisabled } = useDisableStateProps(props);\n const defaultTheme = useTheme() || Theme.light;\n const {\n aspectRatio = DEFAULT_PROPS.aspectRatio,\n className,\n label,\n icon,\n size = DEFAULT_PROPS.size,\n theme = defaultTheme,\n variant = DEFAULT_PROPS.variant,\n fileInputProps,\n onClick,\n ...forwardedProps\n } = otherProps;\n // Adjust to square aspect ratio when using circle variants.\n const adjustedAspectRatio = variant === UploaderVariant.circle ? AspectRatio.square : aspectRatio;\n\n const handleClick: React.MouseEventHandler = React.useCallback(\n (evt) => {\n if (isAnyDisabled) {\n evt.preventDefault();\n } else {\n onClick?.(evt);\n }\n },\n [isAnyDisabled, onClick],\n );\n\n const generatedInputId = useId();\n const inputId = fileInputProps?.id || generatedInputId;\n const [isDragHovering, unsetDragHovering, setDragHovering] = useBooleanState(false);\n const wrapper = fileInputProps\n ? ({ Component: 'label', props: { htmlFor: inputId } } as const)\n : ({ Component: 'button', props: { type: 'button', ...disabledStateProps } } as const);\n\n const onChange = React.useMemo(() => {\n if (isAnyDisabled || !fileInputProps?.onChange) return undefined;\n return (evt: React.ChangeEvent<HTMLInputElement>) => {\n const fileList = evt.target.files;\n const files = fileList ? Array.from(fileList) : [];\n fileInputProps.onChange(files, evt);\n };\n }, [isAnyDisabled, fileInputProps]);\n\n return (\n <wrapper.Component\n ref={ref as any}\n {...wrapper.props}\n {...forwardedProps}\n onClick={handleClick}\n className={classNames(\n className,\n handleBasicClasses({\n aspectRatio: adjustedAspectRatio,\n prefix: CLASSNAME,\n size,\n theme,\n variant,\n isDragHovering,\n isDisabled: isAnyDisabled,\n }),\n )}\n >\n <span className={`${CLASSNAME}__background`} />\n\n <span className={`${CLASSNAME}__wrapper`}>\n {icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.s} />}\n\n {label && <span className={`${CLASSNAME}__label`}>{label}</span>}\n </span>\n\n {fileInputProps && (\n <input\n type=\"file\"\n id={inputId}\n className={`${CLASSNAME}__input ${VISUALLY_HIDDEN}`}\n {...disabledStateProps}\n {...fileInputProps}\n readOnly={isAnyDisabled}\n onChange={onChange}\n onDragEnter={setDragHovering}\n onDragLeave={unsetDragHovering}\n onDrop={unsetDragHovering}\n />\n )}\n </wrapper.Component>\n );\n});\nUploader.displayName = COMPONENT_NAME;\nUploader.className = CLASSNAME;\nUploader.defaultProps = DEFAULT_PROPS;\n"],"names":["UploaderVariant","square","rounded","circle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","aspectRatio","AspectRatio","horizontal","size","Size","xl","variant","Uploader","forwardRef","props","ref","disabledStateProps","otherProps","isAnyDisabled","useDisableStateProps","defaultTheme","useTheme","Theme","light","className","label","icon","theme","fileInputProps","onClick","forwardedProps","adjustedAspectRatio","handleClick","React","useCallback","evt","preventDefault","generatedInputId","useId","inputId","id","isDragHovering","unsetDragHovering","setDragHovering","useBooleanState","wrapper","Component","htmlFor","type","onChange","useMemo","undefined","fileList","target","files","Array","from","createElement","_extends","classNames","handleBasicClasses","prefix","isDisabled","Icon","s","VISUALLY_HIDDEN","readOnly","onDragEnter","onDragLeave","onDrop","displayName","defaultProps"],"mappings":"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"}