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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (710) hide show
  1. package/_internal/Button-2b55a913.js +97 -0
  2. package/_internal/Button-2b55a913.js.map +1 -0
  3. package/_internal/ButtonRoot-823f3e9c.js +117 -0
  4. package/_internal/ButtonRoot-823f3e9c.js.map +1 -0
  5. package/_internal/Chip-e1e85810.js +143 -0
  6. package/_internal/Chip-e1e85810.js.map +1 -0
  7. package/_internal/ClickAwayProvider-1204f237.js +95 -0
  8. package/_internal/ClickAwayProvider-1204f237.js.map +1 -0
  9. package/_internal/DisabledStateContext-ea04260d.js +29 -0
  10. package/_internal/DisabledStateContext-ea04260d.js.map +1 -0
  11. package/_internal/HeadingLevelProvider-ebdcb0c7.js +61 -0
  12. package/_internal/HeadingLevelProvider-ebdcb0c7.js.map +1 -0
  13. package/_internal/IconButton-be160cb0.js +77 -0
  14. package/_internal/IconButton-be160cb0.js.map +1 -0
  15. package/_internal/ImageCaption-fcf5720c.js +75 -0
  16. package/_internal/ImageCaption-fcf5720c.js.map +1 -0
  17. package/_internal/List-dbf4297f.js +791 -0
  18. package/_internal/List-dbf4297f.js.map +1 -0
  19. package/_internal/PopoverDialog-193a0918.js +655 -0
  20. package/_internal/PopoverDialog-193a0918.js.map +1 -0
  21. package/_internal/Portal-3f86608e.js +45 -0
  22. package/_internal/Portal-3f86608e.js.map +1 -0
  23. package/_internal/RawClickable-2c2b6a89.js +52 -0
  24. package/_internal/RawClickable-2c2b6a89.js.map +1 -0
  25. package/_internal/Slides-2d267d8c.js +679 -0
  26. package/_internal/Slides-2d267d8c.js.map +1 -0
  27. package/_internal/ThemeContext-3181f000.js +14 -0
  28. package/_internal/ThemeContext-3181f000.js.map +1 -0
  29. package/_internal/Thumbnail-0872250e.js +314 -0
  30. package/_internal/Thumbnail-0872250e.js.map +1 -0
  31. package/_internal/check-circle-de24f857.js +4 -0
  32. package/_internal/check-circle-de24f857.js.map +1 -0
  33. package/_internal/chevron-right-827b804a.js +6 -0
  34. package/_internal/chevron-right-827b804a.js.map +1 -0
  35. package/_internal/chevron-up-0b9c76cb.js +6 -0
  36. package/_internal/chevron-up-0b9c76cb.js.map +1 -0
  37. package/_internal/close-circle-ef5d1aac.js +4 -0
  38. package/_internal/close-circle-ef5d1aac.js.map +1 -0
  39. package/_internal/close-eaf6c45a.js +4 -0
  40. package/_internal/close-eaf6c45a.js.map +1 -0
  41. package/_internal/components/alert-dialog-a6ed922b.js +163 -0
  42. package/_internal/components/alert-dialog-a6ed922b.js.map +1 -0
  43. package/_internal/components/autocomplete-c97b7698.js +261 -0
  44. package/_internal/components/autocomplete-c97b7698.js.map +1 -0
  45. package/_internal/components/avatar-d2214a61.js +83 -0
  46. package/_internal/components/avatar-d2214a61.js.map +1 -0
  47. package/_internal/components/badge-8390e590.js +81 -0
  48. package/_internal/components/badge-8390e590.js.map +1 -0
  49. package/_internal/components/button-b05f8f0c.js +47 -0
  50. package/_internal/components/button-b05f8f0c.js.map +1 -0
  51. package/_internal/components/checkbox-346834f8.js +143 -0
  52. package/_internal/components/checkbox-346834f8.js.map +1 -0
  53. package/_internal/components/chip-e3a6330f.js +102 -0
  54. package/_internal/components/chip-e3a6330f.js.map +1 -0
  55. package/_internal/components/comment-block-b1acc69f.js +138 -0
  56. package/_internal/components/comment-block-b1acc69f.js.map +1 -0
  57. package/_internal/components/date-picker-582c4925.js +2 -0
  58. package/_internal/components/date-picker-582c4925.js.map +1 -0
  59. package/_internal/components/dialog-785646aa.js +238 -0
  60. package/_internal/components/dialog-785646aa.js.map +1 -0
  61. package/_internal/components/divider-116af6b9.js +50 -0
  62. package/_internal/components/divider-116af6b9.js.map +1 -0
  63. package/_internal/components/drag-handle-6b073866.js +52 -0
  64. package/_internal/components/drag-handle-6b073866.js.map +1 -0
  65. package/_internal/components/dropdown-c0c0cfe8.js +147 -0
  66. package/_internal/components/dropdown-c0c0cfe8.js.map +1 -0
  67. package/_internal/components/expansion-panel-1de1d1ff.js +167 -0
  68. package/_internal/components/expansion-panel-1de1d1ff.js.map +1 -0
  69. package/_internal/components/flag-7c9d3abf.js +59 -0
  70. package/_internal/components/flag-7c9d3abf.js.map +1 -0
  71. package/_internal/components/flex-box-10423fa5.js +56 -0
  72. package/_internal/components/flex-box-10423fa5.js.map +1 -0
  73. package/_internal/components/generic-block-b79f163a.js +128 -0
  74. package/_internal/components/generic-block-b79f163a.js.map +1 -0
  75. package/_internal/components/grid-6f1b5a41.js +104 -0
  76. package/_internal/components/grid-6f1b5a41.js.map +1 -0
  77. package/_internal/components/grid-column-ee504283.js +58 -0
  78. package/_internal/components/grid-column-ee504283.js.map +1 -0
  79. package/_internal/components/heading-d4c66a34.js +53 -0
  80. package/_internal/components/heading-d4c66a34.js.map +1 -0
  81. package/_internal/components/icon-7c79ab42.js +2 -0
  82. package/_internal/components/icon-7c79ab42.js.map +1 -0
  83. package/_internal/components/image-block-762eb669.js +110 -0
  84. package/_internal/components/image-block-762eb669.js.map +1 -0
  85. package/_internal/components/image-lightbox-10fef304.js +759 -0
  86. package/_internal/components/image-lightbox-10fef304.js.map +1 -0
  87. package/_internal/components/inline-list-e6f19a98.js +74 -0
  88. package/_internal/components/inline-list-e6f19a98.js.map +1 -0
  89. package/_internal/components/input-helper-64153099.js +71 -0
  90. package/_internal/components/input-helper-64153099.js.map +1 -0
  91. package/_internal/components/input-label-2feb0bb0.js +59 -0
  92. package/_internal/components/input-label-2feb0bb0.js.map +1 -0
  93. package/_internal/components/lightbox-dcc9a7a0.js +155 -0
  94. package/_internal/components/lightbox-dcc9a7a0.js.map +1 -0
  95. package/_internal/components/link-f9421eab.js +72 -0
  96. package/_internal/components/link-f9421eab.js.map +1 -0
  97. package/_internal/components/link-preview-5c7e3878.js +117 -0
  98. package/_internal/components/link-preview-5c7e3878.js.map +1 -0
  99. package/_internal/components/list-f29e54b7.js +71 -0
  100. package/_internal/components/list-f29e54b7.js.map +1 -0
  101. package/_internal/components/message-aa3e3f76.js +98 -0
  102. package/_internal/components/message-aa3e3f76.js.map +1 -0
  103. package/_internal/components/mosaic-b4b35fa7.js +94 -0
  104. package/_internal/components/mosaic-b4b35fa7.js.map +1 -0
  105. package/_internal/components/navigation-8357dbe6.js +225 -0
  106. package/_internal/components/navigation-8357dbe6.js.map +1 -0
  107. package/_internal/components/notification-ec4cf95f.js +143 -0
  108. package/_internal/components/notification-ec4cf95f.js.map +1 -0
  109. package/_internal/components/popover-a674dd8d.js +3 -0
  110. package/_internal/components/popover-a674dd8d.js.map +1 -0
  111. package/_internal/components/post-block-bb3d3cbf.js +109 -0
  112. package/_internal/components/post-block-bb3d3cbf.js.map +1 -0
  113. package/_internal/components/progress-f39c3fa2.js +182 -0
  114. package/_internal/components/progress-f39c3fa2.js.map +1 -0
  115. package/_internal/components/progress-tracker-997931ac.js +309 -0
  116. package/_internal/components/progress-tracker-997931ac.js.map +1 -0
  117. package/_internal/components/radio-button-559a4863.js +149 -0
  118. package/_internal/components/radio-button-559a4863.js.map +1 -0
  119. package/_internal/components/select-8295a416.js +457 -0
  120. package/_internal/components/select-8295a416.js.map +1 -0
  121. package/_internal/components/side-navigation-40ee8bda.js +164 -0
  122. package/_internal/components/side-navigation-40ee8bda.js.map +1 -0
  123. package/_internal/components/skeleton-c66516ee.js +166 -0
  124. package/_internal/components/skeleton-c66516ee.js.map +1 -0
  125. package/_internal/components/slider-efbfbc45.js +311 -0
  126. package/_internal/components/slider-efbfbc45.js.map +1 -0
  127. package/_internal/components/slideshow-c5faf531.js +151 -0
  128. package/_internal/components/slideshow-c5faf531.js.map +1 -0
  129. package/_internal/components/switch-a26a5a72.js +121 -0
  130. package/_internal/components/switch-a26a5a72.js.map +1 -0
  131. package/_internal/components/table-c43ec4a5.js +297 -0
  132. package/_internal/components/table-c43ec4a5.js.map +1 -0
  133. package/_internal/components/tabs-4037fe57.js +298 -0
  134. package/_internal/components/tabs-4037fe57.js.map +1 -0
  135. package/_internal/components/text-851c62f8.js +2 -0
  136. package/_internal/components/text-851c62f8.js.map +1 -0
  137. package/_internal/components/text-field-82adaeb4.js +359 -0
  138. package/_internal/components/text-field-82adaeb4.js.map +1 -0
  139. package/_internal/components/thumbnail-f1784929.js +42 -0
  140. package/_internal/components/thumbnail-f1784929.js.map +1 -0
  141. package/_internal/components/toolbar-a43533a2.js +61 -0
  142. package/_internal/components/toolbar-a43533a2.js.map +1 -0
  143. package/_internal/components/tooltip-aa48ddda.js +327 -0
  144. package/_internal/components/tooltip-aa48ddda.js.map +1 -0
  145. package/_internal/components/uploader-7bc3adaa.js +153 -0
  146. package/_internal/components/uploader-7bc3adaa.js.map +1 -0
  147. package/_internal/components/user-block-fc03f01a.js +144 -0
  148. package/_internal/components/user-block-fc03f01a.js.map +1 -0
  149. package/_internal/constants-b9e57936.js +2155 -0
  150. package/_internal/constants-b9e57936.js.map +1 -0
  151. package/_internal/constants-d0e3f49e.js +24 -0
  152. package/_internal/constants-d0e3f49e.js.map +1 -0
  153. package/_internal/context-9d1336a1.js +19 -0
  154. package/_internal/context-9d1336a1.js.map +1 -0
  155. package/_internal/forwardRef-15f62847.js +70 -0
  156. package/_internal/forwardRef-15f62847.js.map +1 -0
  157. package/_internal/getFocusableElements-230173a8.js +13 -0
  158. package/_internal/getFocusableElements-230173a8.js.map +1 -0
  159. package/_internal/index-192f8ada.js +103 -0
  160. package/_internal/index-192f8ada.js.map +1 -0
  161. package/_internal/index-8e7fecb5.js +436 -0
  162. package/_internal/index-8e7fecb5.js.map +1 -0
  163. package/_internal/index-b06353f2.js +117 -0
  164. package/_internal/index-b06353f2.js.map +1 -0
  165. package/_internal/information-49bbeed3.js +6 -0
  166. package/_internal/information-49bbeed3.js.map +1 -0
  167. package/_internal/isComponent-b9762ff1.js +18 -0
  168. package/_internal/isComponent-b9762ff1.js.map +1 -0
  169. package/_internal/isComponentType-e806b848.js +9 -0
  170. package/_internal/isComponentType-e806b848.js.map +1 -0
  171. package/_internal/mergeRefs-f0d7d6ea.js +30 -0
  172. package/_internal/mergeRefs-f0d7d6ea.js.map +1 -0
  173. package/_internal/state-db358714.js +130 -0
  174. package/_internal/state-db358714.js.map +1 -0
  175. package/_internal/useBooleanState-2a3d237c.js +12 -0
  176. package/_internal/useBooleanState-2a3d237c.js.map +1 -0
  177. package/_internal/useCallbackOnEscape-0b220f9c.js +62 -0
  178. package/_internal/useCallbackOnEscape-0b220f9c.js.map +1 -0
  179. package/_internal/useDisableBodyScroll-36bd7352.js +219 -0
  180. package/_internal/useDisableBodyScroll-36bd7352.js.map +1 -0
  181. package/_internal/useDisableStateProps-69e16b7c.js +36 -0
  182. package/_internal/useDisableStateProps-69e16b7c.js.map +1 -0
  183. package/_internal/useFocusTrap-3114e5e8.js +112 -0
  184. package/_internal/useFocusTrap-3114e5e8.js.map +1 -0
  185. package/_internal/useId-3a1facc0.js +18 -0
  186. package/_internal/useId-3a1facc0.js.map +1 -0
  187. package/_internal/useRovingTabIndex-7daf0f24.js +77 -0
  188. package/_internal/useRovingTabIndex-7daf0f24.js.map +1 -0
  189. package/_internal/useTransitionVisibility-321fdbfa.js +50 -0
  190. package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
  191. package/_internal/wrapChildrenIconWithSpaces-f1e91251.js +20 -0
  192. package/_internal/wrapChildrenIconWithSpaces-f1e91251.js.map +1 -0
  193. package/index.d.ts +11 -367
  194. package/index.js +65 -14486
  195. package/index.js.map +1 -1
  196. package/package.json +4 -11
  197. package/utils/index.d.ts +1 -1
  198. package/utils/index.js +3 -1
  199. package/utils/index.js.map +1 -1
  200. package/_internal/Falsy.d.ts +0 -7
  201. package/_internal/index.js +0 -236
  202. package/_internal/index.js.map +0 -1
  203. package/src/components/alert-dialog/AlertDialog.stories.tsx +0 -127
  204. package/src/components/alert-dialog/AlertDialog.test.tsx +0 -34
  205. package/src/components/alert-dialog/AlertDialog.tsx +0 -189
  206. package/src/components/alert-dialog/index.ts +0 -1
  207. package/src/components/autocomplete/Autocomplete.stories.tsx +0 -75
  208. package/src/components/autocomplete/Autocomplete.test.tsx +0 -99
  209. package/src/components/autocomplete/Autocomplete.tsx +0 -294
  210. package/src/components/autocomplete/AutocompleteMultiple.stories.tsx +0 -167
  211. package/src/components/autocomplete/AutocompleteMultiple.test.tsx +0 -61
  212. package/src/components/autocomplete/AutocompleteMultiple.tsx +0 -156
  213. package/src/components/autocomplete/__mockData__/index.ts +0 -39
  214. package/src/components/autocomplete/index.ts +0 -2
  215. package/src/components/avatar/Avatar.stories.tsx +0 -119
  216. package/src/components/avatar/Avatar.test.tsx +0 -32
  217. package/src/components/avatar/Avatar.tsx +0 -114
  218. package/src/components/avatar/index.ts +0 -1
  219. package/src/components/badge/Badge.stories.tsx +0 -69
  220. package/src/components/badge/Badge.test.tsx +0 -45
  221. package/src/components/badge/Badge.tsx +0 -58
  222. package/src/components/badge/BadgeWrapper.stories.tsx +0 -75
  223. package/src/components/badge/BadgeWrapper.test.tsx +0 -47
  224. package/src/components/badge/BadgeWrapper.tsx +0 -37
  225. package/src/components/badge/index.ts +0 -2
  226. package/src/components/button/Button.stories.tsx +0 -355
  227. package/src/components/button/Button.test.tsx +0 -125
  228. package/src/components/button/Button.tsx +0 -101
  229. package/src/components/button/ButtonGroup.stories.tsx +0 -52
  230. package/src/components/button/ButtonGroup.test.tsx +0 -41
  231. package/src/components/button/ButtonGroup.tsx +0 -50
  232. package/src/components/button/ButtonRoot.tsx +0 -163
  233. package/src/components/button/IconButton.stories.tsx +0 -52
  234. package/src/components/button/IconButton.test.tsx +0 -66
  235. package/src/components/button/IconButton.tsx +0 -91
  236. package/src/components/button/index.ts +0 -4
  237. package/src/components/checkbox/Checkbox.stories.tsx +0 -64
  238. package/src/components/checkbox/Checkbox.test.tsx +0 -154
  239. package/src/components/checkbox/Checkbox.tsx +0 -164
  240. package/src/components/checkbox/index.ts +0 -1
  241. package/src/components/chip/Chip.stories.tsx +0 -164
  242. package/src/components/chip/Chip.test.tsx +0 -243
  243. package/src/components/chip/Chip.tsx +0 -168
  244. package/src/components/chip/ChipGroup.stories.tsx +0 -47
  245. package/src/components/chip/ChipGroup.test.tsx +0 -37
  246. package/src/components/chip/ChipGroup.tsx +0 -60
  247. package/src/components/chip/index.ts +0 -2
  248. package/src/components/comment-block/CommentBlock.stories.tsx +0 -91
  249. package/src/components/comment-block/CommentBlock.test.tsx +0 -28
  250. package/src/components/comment-block/CommentBlock.tsx +0 -172
  251. package/src/components/comment-block/index.ts +0 -1
  252. package/src/components/date-picker/DatePicker.stories.tsx +0 -118
  253. package/src/components/date-picker/DatePicker.test.tsx +0 -34
  254. package/src/components/date-picker/DatePicker.tsx +0 -52
  255. package/src/components/date-picker/DatePickerControlled.test.tsx +0 -91
  256. package/src/components/date-picker/DatePickerControlled.tsx +0 -259
  257. package/src/components/date-picker/DatePickerField.stories.tsx +0 -100
  258. package/src/components/date-picker/DatePickerField.test.tsx +0 -70
  259. package/src/components/date-picker/DatePickerField.tsx +0 -135
  260. package/src/components/date-picker/constants.ts +0 -11
  261. package/src/components/date-picker/index.ts +0 -4
  262. package/src/components/date-picker/types.ts +0 -28
  263. package/src/components/dialog/Dialog.stories.tsx +0 -318
  264. package/src/components/dialog/Dialog.test.tsx +0 -97
  265. package/src/components/dialog/Dialog.tsx +0 -288
  266. package/src/components/dialog/index.ts +0 -1
  267. package/src/components/divider/Divider.test.tsx +0 -51
  268. package/src/components/divider/Divider.tsx +0 -50
  269. package/src/components/divider/index.ts +0 -1
  270. package/src/components/drag-handle/DragHandle.test.tsx +0 -36
  271. package/src/components/drag-handle/DragHandle.tsx +0 -51
  272. package/src/components/drag-handle/index.ts +0 -1
  273. package/src/components/dropdown/Dropdown.stories.tsx +0 -31
  274. package/src/components/dropdown/Dropdown.test.tsx +0 -66
  275. package/src/components/dropdown/Dropdown.tsx +0 -186
  276. package/src/components/dropdown/index.ts +0 -1
  277. package/src/components/expansion-panel/ExpansionPanel.stories.tsx +0 -91
  278. package/src/components/expansion-panel/ExpansionPanel.test.tsx +0 -185
  279. package/src/components/expansion-panel/ExpansionPanel.tsx +0 -195
  280. package/src/components/expansion-panel/index.ts +0 -1
  281. package/src/components/flag/Flag.stories.tsx +0 -48
  282. package/src/components/flag/Flag.test.tsx +0 -62
  283. package/src/components/flag/Flag.tsx +0 -52
  284. package/src/components/flag/index.ts +0 -1
  285. package/src/components/flex-box/FlexBox.stories.tsx +0 -156
  286. package/src/components/flex-box/FlexBox.test.tsx +0 -24
  287. package/src/components/flex-box/FlexBox.tsx +0 -100
  288. package/src/components/flex-box/index.ts +0 -1
  289. package/src/components/generic-block/GenericBlock.stories.jsx +0 -128
  290. package/src/components/generic-block/GenericBlock.test.tsx +0 -156
  291. package/src/components/generic-block/GenericBlock.tsx +0 -225
  292. package/src/components/generic-block/constants.ts +0 -9
  293. package/src/components/generic-block/index.ts +0 -2
  294. package/src/components/grid/Grid.tsx +0 -83
  295. package/src/components/grid/GridItem.tsx +0 -55
  296. package/src/components/grid/index.ts +0 -2
  297. package/src/components/grid-column/GridColumn.stories.tsx +0 -45
  298. package/src/components/grid-column/GridColumn.test.jsx +0 -56
  299. package/src/components/grid-column/GridColumn.tsx +0 -83
  300. package/src/components/grid-column/index.ts +0 -1
  301. package/src/components/heading/Heading.stories.tsx +0 -69
  302. package/src/components/heading/Heading.test.tsx +0 -82
  303. package/src/components/heading/Heading.tsx +0 -65
  304. package/src/components/heading/HeadingLevelProvider.tsx +0 -30
  305. package/src/components/heading/constants.ts +0 -16
  306. package/src/components/heading/context.tsx +0 -13
  307. package/src/components/heading/index.ts +0 -3
  308. package/src/components/heading/useHeadingLevel.tsx +0 -8
  309. package/src/components/icon/Icon.stories.tsx +0 -73
  310. package/src/components/icon/Icon.test.tsx +0 -125
  311. package/src/components/icon/Icon.tsx +0 -133
  312. package/src/components/icon/index.ts +0 -1
  313. package/src/components/image-block/ImageBlock.stories.tsx +0 -117
  314. package/src/components/image-block/ImageBlock.test.tsx +0 -58
  315. package/src/components/image-block/ImageBlock.tsx +0 -142
  316. package/src/components/image-block/ImageCaption.tsx +0 -115
  317. package/src/components/image-block/index.ts +0 -1
  318. package/src/components/image-lightbox/ImageLightbox.stories.tsx +0 -160
  319. package/src/components/image-lightbox/ImageLightbox.test.tsx +0 -254
  320. package/src/components/image-lightbox/ImageLightbox.tsx +0 -90
  321. package/src/components/image-lightbox/constants.ts +0 -11
  322. package/src/components/image-lightbox/index.ts +0 -2
  323. package/src/components/image-lightbox/internal/ImageSlide.tsx +0 -107
  324. package/src/components/image-lightbox/internal/ImageSlideshow.tsx +0 -164
  325. package/src/components/image-lightbox/internal/useAnimateScroll.ts +0 -55
  326. package/src/components/image-lightbox/internal/usePointerZoom.ts +0 -148
  327. package/src/components/image-lightbox/types.ts +0 -48
  328. package/src/components/image-lightbox/useImageLightbox.tsx +0 -141
  329. package/src/components/inline-list/InlineList.stories.tsx +0 -77
  330. package/src/components/inline-list/InlineList.test.tsx +0 -52
  331. package/src/components/inline-list/InlineList.tsx +0 -96
  332. package/src/components/inline-list/index.ts +0 -1
  333. package/src/components/input-helper/InputHelper.stories.tsx +0 -35
  334. package/src/components/input-helper/InputHelper.test.tsx +0 -55
  335. package/src/components/input-helper/InputHelper.tsx +0 -65
  336. package/src/components/input-helper/constants.ts +0 -11
  337. package/src/components/input-helper/index.ts +0 -1
  338. package/src/components/input-label/InputLabel.stories.tsx +0 -45
  339. package/src/components/input-label/InputLabel.test.tsx +0 -59
  340. package/src/components/input-label/InputLabel.tsx +0 -69
  341. package/src/components/input-label/index.ts +0 -1
  342. package/src/components/lightbox/Lightbox.stories.tsx +0 -101
  343. package/src/components/lightbox/Lightbox.test.tsx +0 -53
  344. package/src/components/lightbox/Lightbox.tsx +0 -180
  345. package/src/components/lightbox/index.ts +0 -1
  346. package/src/components/link/Link.stories.tsx +0 -195
  347. package/src/components/link/Link.test.tsx +0 -127
  348. package/src/components/link/Link.tsx +0 -106
  349. package/src/components/link/index.ts +0 -1
  350. package/src/components/link-preview/LinkPreview.stories.tsx +0 -61
  351. package/src/components/link-preview/LinkPreview.test.tsx +0 -105
  352. package/src/components/link-preview/LinkPreview.tsx +0 -158
  353. package/src/components/link-preview/index.ts +0 -1
  354. package/src/components/list/List.stories.tsx +0 -116
  355. package/src/components/list/List.test.tsx +0 -18
  356. package/src/components/list/List.tsx +0 -104
  357. package/src/components/list/ListDivider.stories.tsx +0 -12
  358. package/src/components/list/ListDivider.test.tsx +0 -22
  359. package/src/components/list/ListDivider.tsx +0 -35
  360. package/src/components/list/ListItem.stories.tsx +0 -66
  361. package/src/components/list/ListItem.test.tsx +0 -93
  362. package/src/components/list/ListItem.tsx +0 -157
  363. package/src/components/list/ListSubheader.stories.tsx +0 -11
  364. package/src/components/list/ListSubheader.test.tsx +0 -21
  365. package/src/components/list/ListSubheader.tsx +0 -44
  366. package/src/components/list/index.ts +0 -4
  367. package/src/components/list/useInteractiveList.tsx +0 -202
  368. package/src/components/message/Message.stories.tsx +0 -72
  369. package/src/components/message/Message.test.tsx +0 -76
  370. package/src/components/message/Message.tsx +0 -100
  371. package/src/components/message/index.ts +0 -1
  372. package/src/components/mosaic/Mosaic.stories.tsx +0 -89
  373. package/src/components/mosaic/Mosaic.test.tsx +0 -77
  374. package/src/components/mosaic/Mosaic.tsx +0 -98
  375. package/src/components/mosaic/index.ts +0 -1
  376. package/src/components/navigation/Navigation.stories.tsx +0 -234
  377. package/src/components/navigation/Navigation.test.tsx +0 -65
  378. package/src/components/navigation/Navigation.tsx +0 -79
  379. package/src/components/navigation/NavigationItem.test.tsx +0 -35
  380. package/src/components/navigation/NavigationItem.tsx +0 -82
  381. package/src/components/navigation/NavigationSection.test.tsx +0 -137
  382. package/src/components/navigation/NavigationSection.tsx +0 -108
  383. package/src/components/navigation/context.tsx +0 -7
  384. package/src/components/navigation/index.ts +0 -1
  385. package/src/components/notification/Notification.test.tsx +0 -94
  386. package/src/components/notification/Notification.tsx +0 -138
  387. package/src/components/notification/Notifications.stories.tsx +0 -92
  388. package/src/components/notification/constants.ts +0 -28
  389. package/src/components/notification/index.ts +0 -1
  390. package/src/components/popover/Popover.stories.tsx +0 -264
  391. package/src/components/popover/Popover.test.tsx +0 -62
  392. package/src/components/popover/Popover.tsx +0 -201
  393. package/src/components/popover/constants.ts +0 -62
  394. package/src/components/popover/index.ts +0 -3
  395. package/src/components/popover/usePopoverStyle.tsx +0 -184
  396. package/src/components/popover/useRestoreFocusOnClose.tsx +0 -47
  397. package/src/components/popover-dialog/PopoverDialog.stories.tsx +0 -64
  398. package/src/components/popover-dialog/PopoverDialog.test.tsx +0 -139
  399. package/src/components/popover-dialog/PopoverDialog.tsx +0 -74
  400. package/src/components/popover-dialog/index.tsx +0 -1
  401. package/src/components/post-block/PostBlock.test.tsx +0 -27
  402. package/src/components/post-block/PostBlock.tsx +0 -122
  403. package/src/components/post-block/index.ts +0 -1
  404. package/src/components/progress/Progress.tsx +0 -68
  405. package/src/components/progress/ProgressCircular.stories.tsx +0 -43
  406. package/src/components/progress/ProgressCircular.test.tsx +0 -46
  407. package/src/components/progress/ProgressCircular.tsx +0 -82
  408. package/src/components/progress/ProgressLinear.stories.tsx +0 -12
  409. package/src/components/progress/ProgressLinear.test.tsx +0 -30
  410. package/src/components/progress/ProgressLinear.tsx +0 -50
  411. package/src/components/progress/index.ts +0 -3
  412. package/src/components/progress-tracker/ProgressTracker.stories.tsx +0 -145
  413. package/src/components/progress-tracker/ProgressTracker.test.tsx +0 -42
  414. package/src/components/progress-tracker/ProgressTracker.tsx +0 -87
  415. package/src/components/progress-tracker/ProgressTrackerProvider.test.tsx +0 -65
  416. package/src/components/progress-tracker/ProgressTrackerProvider.tsx +0 -67
  417. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +0 -36
  418. package/src/components/progress-tracker/ProgressTrackerStep.tsx +0 -159
  419. package/src/components/progress-tracker/ProgressTrackerStepPanel.test.tsx +0 -34
  420. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +0 -67
  421. package/src/components/progress-tracker/index.ts +0 -4
  422. package/src/components/radio-button/RadioButton.stories.tsx +0 -71
  423. package/src/components/radio-button/RadioButton.test.tsx +0 -143
  424. package/src/components/radio-button/RadioButton.tsx +0 -143
  425. package/src/components/radio-button/RadioGroup.stories.tsx +0 -39
  426. package/src/components/radio-button/RadioGroup.test.tsx +0 -29
  427. package/src/components/radio-button/RadioGroup.tsx +0 -44
  428. package/src/components/radio-button/index.ts +0 -2
  429. package/src/components/select/Select.stories.tsx +0 -385
  430. package/src/components/select/Select.test.tsx +0 -199
  431. package/src/components/select/Select.tsx +0 -199
  432. package/src/components/select/SelectMultiple.stories.tsx +0 -315
  433. package/src/components/select/SelectMultiple.test.tsx +0 -213
  434. package/src/components/select/SelectMultiple.tsx +0 -206
  435. package/src/components/select/WithSelectContext.tsx +0 -147
  436. package/src/components/select/constants.ts +0 -55
  437. package/src/components/select/index.ts +0 -2
  438. package/src/components/side-navigation/SideNavigation.stories.tsx +0 -191
  439. package/src/components/side-navigation/SideNavigation.test.tsx +0 -37
  440. package/src/components/side-navigation/SideNavigation.tsx +0 -52
  441. package/src/components/side-navigation/SideNavigationItem.stories.tsx +0 -133
  442. package/src/components/side-navigation/SideNavigationItem.test.tsx +0 -136
  443. package/src/components/side-navigation/SideNavigationItem.tsx +0 -165
  444. package/src/components/side-navigation/index.ts +0 -2
  445. package/src/components/skeleton/SkeletonCircle.stories.tsx +0 -41
  446. package/src/components/skeleton/SkeletonCircle.test.tsx +0 -27
  447. package/src/components/skeleton/SkeletonCircle.tsx +0 -52
  448. package/src/components/skeleton/SkeletonRectangle.stories.tsx +0 -82
  449. package/src/components/skeleton/SkeletonRectangle.test.tsx +0 -27
  450. package/src/components/skeleton/SkeletonRectangle.tsx +0 -88
  451. package/src/components/skeleton/SkeletonTypography.stories.tsx +0 -19
  452. package/src/components/skeleton/SkeletonTypography.test.tsx +0 -27
  453. package/src/components/skeleton/SkeletonTypography.tsx +0 -59
  454. package/src/components/skeleton/index.ts +0 -3
  455. package/src/components/slider/Slider.stories.tsx +0 -45
  456. package/src/components/slider/Slider.test.tsx +0 -29
  457. package/src/components/slider/Slider.tsx +0 -299
  458. package/src/components/slider/index.ts +0 -2
  459. package/src/components/slideshow/Slides.tsx +0 -130
  460. package/src/components/slideshow/Slideshow.stories.tsx +0 -179
  461. package/src/components/slideshow/Slideshow.test.tsx +0 -35
  462. package/src/components/slideshow/Slideshow.tsx +0 -173
  463. package/src/components/slideshow/SlideshowControls.stories.tsx +0 -100
  464. package/src/components/slideshow/SlideshowControls.tsx +0 -243
  465. package/src/components/slideshow/SlideshowItem.tsx +0 -44
  466. package/src/components/slideshow/SlideshowItemGroup.tsx +0 -60
  467. package/src/components/slideshow/constants.ts +0 -24
  468. package/src/components/slideshow/index.ts +0 -4
  469. package/src/components/slideshow/useKeyNavigate.ts +0 -28
  470. package/src/components/slideshow/usePaginationVisibleRange.ts +0 -37
  471. package/src/components/slideshow/useSlideFocusManagement.tsx +0 -92
  472. package/src/components/slideshow/useSwipeNavigate.ts +0 -18
  473. package/src/components/switch/Switch.stories.tsx +0 -49
  474. package/src/components/switch/Switch.test.tsx +0 -144
  475. package/src/components/switch/Switch.tsx +0 -145
  476. package/src/components/switch/index.ts +0 -1
  477. package/src/components/table/Table.test.tsx +0 -29
  478. package/src/components/table/Table.tsx +0 -59
  479. package/src/components/table/TableBody.test.tsx +0 -30
  480. package/src/components/table/TableBody.tsx +0 -42
  481. package/src/components/table/TableCell.test.tsx +0 -72
  482. package/src/components/table/TableCell.tsx +0 -130
  483. package/src/components/table/TableHeader.test.tsx +0 -30
  484. package/src/components/table/TableHeader.tsx +0 -48
  485. package/src/components/table/TableRow.test.tsx +0 -40
  486. package/src/components/table/TableRow.tsx +0 -71
  487. package/src/components/table/index.ts +0 -5
  488. package/src/components/tabs/Tab.test.tsx +0 -50
  489. package/src/components/tabs/Tab.tsx +0 -133
  490. package/src/components/tabs/TabList.test.tsx +0 -49
  491. package/src/components/tabs/TabList.tsx +0 -94
  492. package/src/components/tabs/TabPanel.test.tsx +0 -37
  493. package/src/components/tabs/TabPanel.tsx +0 -67
  494. package/src/components/tabs/TabProvider.test.tsx +0 -161
  495. package/src/components/tabs/TabProvider.tsx +0 -67
  496. package/src/components/tabs/Tabs.stories.tsx +0 -170
  497. package/src/components/tabs/index.ts +0 -4
  498. package/src/components/tabs/state.ts +0 -114
  499. package/src/components/tabs/test-utils.ts +0 -39
  500. package/src/components/text/Text.stories.tsx +0 -177
  501. package/src/components/text/Text.test.tsx +0 -92
  502. package/src/components/text/Text.tsx +0 -139
  503. package/src/components/text/index.ts +0 -1
  504. package/src/components/text-field/TextField.stories.tsx +0 -180
  505. package/src/components/text-field/TextField.test.tsx +0 -298
  506. package/src/components/text-field/TextField.tsx +0 -493
  507. package/src/components/text-field/index.ts +0 -1
  508. package/src/components/thumbnail/Thumbnail.stories.tsx +0 -448
  509. package/src/components/thumbnail/Thumbnail.test.tsx +0 -88
  510. package/src/components/thumbnail/Thumbnail.tsx +0 -248
  511. package/src/components/thumbnail/index.ts +0 -3
  512. package/src/components/thumbnail/types.ts +0 -48
  513. package/src/components/thumbnail/useFocusPointStyle.test.ts +0 -92
  514. package/src/components/thumbnail/useFocusPointStyle.tsx +0 -107
  515. package/src/components/thumbnail/useImageLoad.ts +0 -40
  516. package/src/components/toolbar/Toolbar.tsx +0 -68
  517. package/src/components/toolbar/index.ts +0 -1
  518. package/src/components/tooltip/Tooltip.stories.tsx +0 -118
  519. package/src/components/tooltip/Tooltip.test.tsx +0 -417
  520. package/src/components/tooltip/Tooltip.tsx +0 -165
  521. package/src/components/tooltip/constants.ts +0 -8
  522. package/src/components/tooltip/context.tsx +0 -17
  523. package/src/components/tooltip/index.ts +0 -1
  524. package/src/components/tooltip/useInjectTooltipRef.tsx +0 -55
  525. package/src/components/tooltip/useTooltipOpen.tsx +0 -143
  526. package/src/components/uploader/Uploader.stories.tsx +0 -109
  527. package/src/components/uploader/Uploader.test.tsx +0 -146
  528. package/src/components/uploader/Uploader.tsx +0 -177
  529. package/src/components/uploader/index.ts +0 -1
  530. package/src/components/user-block/UserBlock.stories.tsx +0 -133
  531. package/src/components/user-block/UserBlock.test.tsx +0 -106
  532. package/src/components/user-block/UserBlock.tsx +0 -193
  533. package/src/components/user-block/index.ts +0 -1
  534. package/src/constants.ts +0 -27
  535. package/src/hooks/useBooleanState.tsx +0 -13
  536. package/src/hooks/useCallbackOnEscape.ts +0 -34
  537. package/src/hooks/useChipGroupNavigation.tsx +0 -75
  538. package/src/hooks/useClickAway.tsx +0 -48
  539. package/src/hooks/useDisableBodyScroll.ts +0 -28
  540. package/src/hooks/useEventCallback.tsx +0 -17
  541. package/src/hooks/useFocus.tsx +0 -21
  542. package/src/hooks/useFocusTrap.ts +0 -93
  543. package/src/hooks/useFocusWithin.ts +0 -33
  544. package/src/hooks/useId.test.tsx +0 -22
  545. package/src/hooks/useId.ts +0 -15
  546. package/src/hooks/useImageSize.ts +0 -17
  547. package/src/hooks/useInfiniteScroll.tsx +0 -60
  548. package/src/hooks/useIntersectionObserver.tsx +0 -43
  549. package/src/hooks/useInterval.tsx +0 -31
  550. package/src/hooks/useKeyboardListNavigation.tsx +0 -204
  551. package/src/hooks/useListenFocus.tsx +0 -26
  552. package/src/hooks/useOverflowTooltipLabel.tsx +0 -32
  553. package/src/hooks/usePopper.ts +0 -12
  554. package/src/hooks/usePreviousValue.ts +0 -12
  555. package/src/hooks/useRovingTabIndex.tsx +0 -90
  556. package/src/hooks/useSizeOnWindowResize.ts +0 -30
  557. package/src/hooks/useSlideshowControls.ts +0 -246
  558. package/src/hooks/useStopPropagation.ts +0 -21
  559. package/src/hooks/useTransitionVisibility.ts +0 -48
  560. package/src/index.ts +0 -63
  561. package/src/stories/controls/color.ts +0 -7
  562. package/src/stories/controls/element.ts +0 -6
  563. package/src/stories/controls/focusPoint.ts +0 -1
  564. package/src/stories/controls/icons.ts +0 -126
  565. package/src/stories/controls/image.ts +0 -84
  566. package/src/stories/controls/selectArgType.ts +0 -8
  567. package/src/stories/controls/theme.ts +0 -3
  568. package/src/stories/controls/typography.ts +0 -5
  569. package/src/stories/controls/withUndefined.ts +0 -1
  570. package/src/stories/decorators/withChromaticForceScreenSize.tsx +0 -7
  571. package/src/stories/decorators/withCombinations.tsx +0 -132
  572. package/src/stories/decorators/withNestedProps.tsx +0 -22
  573. package/src/stories/decorators/withResizableBox.tsx +0 -21
  574. package/src/stories/decorators/withThemedBackground.tsx +0 -16
  575. package/src/stories/decorators/withValueOnChange.tsx +0 -18
  576. package/src/stories/decorators/withWrapper.tsx +0 -19
  577. package/src/stories/generated/Autocomplete/Demos.stories.tsx +0 -7
  578. package/src/stories/generated/Avatar/Demos.stories.tsx +0 -7
  579. package/src/stories/generated/Badge/Demos.stories.tsx +0 -9
  580. package/src/stories/generated/Button/Demos.stories.tsx +0 -11
  581. package/src/stories/generated/Checkbox/Demos.stories.tsx +0 -6
  582. package/src/stories/generated/Chip/Demos.stories.tsx +0 -11
  583. package/src/stories/generated/CommentBlock/Demos.stories.tsx +0 -8
  584. package/src/stories/generated/DatePicker/Demos.stories.tsx +0 -8
  585. package/src/stories/generated/Dialog/Demos.stories.tsx +0 -10
  586. package/src/stories/generated/Divider/Demos.stories.tsx +0 -6
  587. package/src/stories/generated/Dropdown/Demos.stories.tsx +0 -8
  588. package/src/stories/generated/ExpansionPanel/Demos.stories.tsx +0 -9
  589. package/src/stories/generated/Flag/Demos.stories.tsx +0 -6
  590. package/src/stories/generated/GenericBlock/Demos.stories.tsx +0 -8
  591. package/src/stories/generated/Heading/Demos.stories.tsx +0 -6
  592. package/src/stories/generated/Icon/Demos.stories.tsx +0 -8
  593. package/src/stories/generated/ImageBlock/Demos.stories.tsx +0 -9
  594. package/src/stories/generated/ImageLightbox/Demos.stories.tsx +0 -6
  595. package/src/stories/generated/Lightbox/Demos.stories.tsx +0 -6
  596. package/src/stories/generated/LinkPreview/Demos.stories.tsx +0 -7
  597. package/src/stories/generated/List/Demos.stories.tsx +0 -11
  598. package/src/stories/generated/Message/Demos.stories.tsx +0 -11
  599. package/src/stories/generated/Mosaic/Demos.stories.tsx +0 -10
  600. package/src/stories/generated/Notification/Demos.stories.tsx +0 -6
  601. package/src/stories/generated/Popover/Demos.stories.tsx +0 -11
  602. package/src/stories/generated/PopoverDialog/Demos.stories.tsx +0 -6
  603. package/src/stories/generated/PostBlock/Demos.stories.tsx +0 -6
  604. package/src/stories/generated/Progress/Demos.stories.tsx +0 -7
  605. package/src/stories/generated/ProgressTracker/Demos.stories.tsx +0 -9
  606. package/src/stories/generated/RadioButton/Demos.stories.tsx +0 -6
  607. package/src/stories/generated/Select/Demos.stories.tsx +0 -14
  608. package/src/stories/generated/SideNavigation/Demos.stories.tsx +0 -10
  609. package/src/stories/generated/Skeleton/Demos.stories.tsx +0 -9
  610. package/src/stories/generated/Slider/Demos.stories.tsx +0 -9
  611. package/src/stories/generated/Slideshow/Demos.stories.tsx +0 -8
  612. package/src/stories/generated/Switch/Demos.stories.tsx +0 -6
  613. package/src/stories/generated/Table/Demos.stories.tsx +0 -7
  614. package/src/stories/generated/Tabs/Demos.stories.tsx +0 -8
  615. package/src/stories/generated/TextField/Demos.stories.tsx +0 -20
  616. package/src/stories/generated/Thumbnail/Demos.stories.tsx +0 -12
  617. package/src/stories/generated/Toolbar/Demos.stories.tsx +0 -10
  618. package/src/stories/generated/Tooltip/Demos.stories.tsx +0 -8
  619. package/src/stories/generated/Uploader/Demos.stories.tsx +0 -8
  620. package/src/stories/generated/UserBlock/Demos.stories.tsx +0 -11
  621. package/src/stories/utils/CustomLink.tsx +0 -12
  622. package/src/stories/utils/concatPath.tsx +0 -17
  623. package/src/stories/utils/disableArgTypes.ts +0 -3
  624. package/src/stories/utils/initDemoShadowDOMPortal.ts +0 -10
  625. package/src/stories/utils/lorem.ts +0 -59
  626. package/src/stories/utils/theming.tsx +0 -166
  627. package/src/stories/utils/toFlattenProps.ts +0 -28
  628. package/src/stories/utils/withCategory.ts +0 -12
  629. package/src/testing/utils/ThemeSentinel.tsx +0 -10
  630. package/src/testing/utils/commonTestsSuiteRTL.tsx +0 -193
  631. package/src/testing/utils/index.ts +0 -1
  632. package/src/testing/utils/queries.ts +0 -19
  633. package/src/untypped-modules.d.ts +0 -9
  634. package/src/utils/ClickAwayProvider/ClickAwayProvider.stories.jsx +0 -70
  635. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +0 -69
  636. package/src/utils/ClickAwayProvider/index.ts +0 -1
  637. package/src/utils/MaterialThemeSwitcher/MaterialThemeSwitcher.tsx +0 -54
  638. package/src/utils/MaterialThemeSwitcher/index.ts +0 -1
  639. package/src/utils/Portal/Portal.test.tsx +0 -31
  640. package/src/utils/Portal/Portal.tsx +0 -33
  641. package/src/utils/Portal/PortalProvider.stories.jsx +0 -22
  642. package/src/utils/Portal/PortalProvider.test.tsx +0 -72
  643. package/src/utils/Portal/PortalProvider.tsx +0 -24
  644. package/src/utils/Portal/index.tsx +0 -2
  645. package/src/utils/browser/DOM/findImage.tsx +0 -3
  646. package/src/utils/browser/DOM/startViewTransition.ts +0 -68
  647. package/src/utils/browser/focus/constants.ts +0 -7
  648. package/src/utils/browser/focus/getFirstAndLastFocusable.test.ts +0 -134
  649. package/src/utils/browser/focus/getFirstAndLastFocusable.ts +0 -21
  650. package/src/utils/browser/focus/getFocusableElements.test.ts +0 -151
  651. package/src/utils/browser/focus/getFocusableElements.ts +0 -7
  652. package/src/utils/browser/isFocusVisible.ts +0 -9
  653. package/src/utils/browser/isHoverNotSupported.test.js +0 -24
  654. package/src/utils/browser/isHoverNotSupported.ts +0 -2
  655. package/src/utils/browser/isReducedMotion.ts +0 -6
  656. package/src/utils/date/addMonthResetDay.test.ts +0 -13
  657. package/src/utils/date/addMonthResetDay.ts +0 -9
  658. package/src/utils/date/formatDayNumber.test.ts +0 -12
  659. package/src/utils/date/formatDayNumber.ts +0 -5
  660. package/src/utils/date/getFirstDayOfWeek.test.ts +0 -20
  661. package/src/utils/date/getFirstDayOfWeek.ts +0 -59
  662. package/src/utils/date/getMonthCalendar.test.ts +0 -127
  663. package/src/utils/date/getMonthCalendar.ts +0 -69
  664. package/src/utils/date/getWeekDays.test.ts +0 -48
  665. package/src/utils/date/getWeekDays.ts +0 -34
  666. package/src/utils/date/getYearDisplayName.test.ts +0 -20
  667. package/src/utils/date/getYearDisplayName.ts +0 -12
  668. package/src/utils/date/isDateValid.test.ts +0 -15
  669. package/src/utils/date/isDateValid.ts +0 -4
  670. package/src/utils/date/isSameDay.test.ts +0 -37
  671. package/src/utils/date/isSameDay.ts +0 -11
  672. package/src/utils/disabled/DisabledStateContext.tsx +0 -29
  673. package/src/utils/disabled/DisabledStateProvider.stories.tsx +0 -92
  674. package/src/utils/disabled/index.ts +0 -2
  675. package/src/utils/disabled/useDisableStateProps.test.tsx +0 -74
  676. package/src/utils/disabled/useDisableStateProps.tsx +0 -37
  677. package/src/utils/function/makeListenerTowerContext.ts +0 -32
  678. package/src/utils/index.ts +0 -7
  679. package/src/utils/locale/getCurrentLocale.ts +0 -4
  680. package/src/utils/locale/parseLocale.test.ts +0 -17
  681. package/src/utils/locale/parseLocale.ts +0 -23
  682. package/src/utils/locale/types.ts +0 -8
  683. package/src/utils/number/clamp.ts +0 -17
  684. package/src/utils/object/isEqual.test.ts +0 -25
  685. package/src/utils/object/isEqual.ts +0 -11
  686. package/src/utils/partitionMulti.test.ts +0 -27
  687. package/src/utils/partitionMulti.ts +0 -29
  688. package/src/utils/react/OnBeforeUnmount.tsx +0 -20
  689. package/src/utils/react/RawClickable.test.tsx +0 -153
  690. package/src/utils/react/RawClickable.tsx +0 -65
  691. package/src/utils/react/flattenChildren.ts +0 -32
  692. package/src/utils/react/forwardRef.ts +0 -11
  693. package/src/utils/react/forwardRefPolymorphic.ts +0 -9
  694. package/src/utils/react/mergeRefs.ts +0 -33
  695. package/src/utils/react/renderLink.tsx +0 -17
  696. package/src/utils/react/skipRender.tsx +0 -18
  697. package/src/utils/react/unref.ts +0 -7
  698. package/src/utils/react/wrapChildrenIconWithSpaces.test.tsx +0 -37
  699. package/src/utils/react/wrapChildrenIconWithSpaces.tsx +0 -22
  700. package/src/utils/theme/ThemeContext.ts +0 -16
  701. package/src/utils/theme/invertTheme.ts +0 -4
  702. package/src/utils/type/Comp.ts +0 -14
  703. package/src/utils/type/ComponentRef.ts +0 -16
  704. package/src/utils/type/HasAriaDisabled.ts +0 -6
  705. package/src/utils/type/HasPolymorphicAs.ts +0 -6
  706. package/src/utils/type/HasRequiredLinkHref.ts +0 -1
  707. package/src/utils/type/MaybeElementOrRef.ts +0 -6
  708. package/src/utils/type/index.ts +0 -9
  709. package/src/utils/type/isComponent.ts +0 -33
  710. package/src/utils/type/isComponentType.ts +0 -9
@@ -0,0 +1,117 @@
1
+ import { f as forwardRef, c as classNames } from './forwardRef-15f62847.js';
2
+ import { getRootClassName, getTypographyClassName, handleBasicClasses, fontColorClass } from '@lumx/core/js/utils/className';
3
+ import React__default from 'react';
4
+ import { u as useTooltipContext } from './context-9d1336a1.js';
5
+ import { V as VISUALLY_HIDDEN } from './constants-d0e3f49e.js';
6
+ import { u as useMergeRefs } from './mergeRefs-f0d7d6ea.js';
7
+ import { w as wrapChildrenIconWithSpaces } from './wrapChildrenIconWithSpaces-f1e91251.js';
8
+ import { jsx } from 'react/jsx-runtime';
9
+
10
+ /**
11
+ * Compute a tooltip label based on a label element `innerText` if the text overflows.
12
+ * Updates dynamically on content changes (but not on resize!)
13
+ */
14
+ const useOverflowTooltipLabel = content => {
15
+ const parentTooltip = useTooltipContext();
16
+ const [tooltipLabel, setTooltipLabel] = React__default.useState(undefined);
17
+ const [labelElement, setLabelElement] = React__default.useState(null);
18
+ React__default.useLayoutEffect(() => {
19
+ if (
20
+ // Not inside a tooltip
21
+ !parentTooltip && labelElement &&
22
+ // Not inside a visually hidden
23
+ !labelElement?.closest(`.${VISUALLY_HIDDEN}`) &&
24
+ // Text overflows
25
+ labelElement.offsetWidth < labelElement.scrollWidth) {
26
+ // Set tooltip label
27
+ setTooltipLabel(labelElement.innerText);
28
+ } else {
29
+ setTooltipLabel(undefined);
30
+ }
31
+ }, [labelElement, parentTooltip, content]);
32
+ return {
33
+ labelRef: setLabelElement,
34
+ tooltipLabel
35
+ };
36
+ };
37
+
38
+ /**
39
+ * Component display name.
40
+ */
41
+ const COMPONENT_NAME = 'Text';
42
+
43
+ /**
44
+ * Component default class name and class prefix.
45
+ */
46
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
47
+
48
+ /**
49
+ * Component default props.
50
+ */
51
+ const DEFAULT_PROPS = {};
52
+
53
+ /**
54
+ * Text component.
55
+ *
56
+ * @param props Component props.
57
+ * @param ref Component ref.
58
+ * @return React element.
59
+ */
60
+ const Text = forwardRef((props, ref) => {
61
+ const {
62
+ as: Component,
63
+ children,
64
+ className,
65
+ color,
66
+ colorVariant,
67
+ noWrap,
68
+ typography,
69
+ truncate,
70
+ whiteSpace,
71
+ style,
72
+ ...forwardedProps
73
+ } = props;
74
+ const typographyClass = typography && getTypographyClassName(typography);
75
+
76
+ // Truncate mode
77
+ const truncateLinesStyle = typeof truncate === 'object' && truncate.lines > 1 && {
78
+ '--lumx-text-truncate-lines': truncate.lines
79
+ };
80
+ const isTruncatedMultiline = !!truncateLinesStyle;
81
+ const isTruncated = !!truncate;
82
+
83
+ /**
84
+ * Add custom white-space style if specified
85
+ * Disabled if noWrap is specified
86
+ * Disabled if truncated on one-line
87
+ * */
88
+ const whiteSpaceStyle = !noWrap && !(isTruncated && !isTruncatedMultiline) && whiteSpace && {
89
+ '--lumx-text-white-space': whiteSpace
90
+ };
91
+ const {
92
+ tooltipLabel,
93
+ labelRef
94
+ } = useOverflowTooltipLabel(children);
95
+ return /*#__PURE__*/jsx(Component, {
96
+ ref: useMergeRefs(ref, labelRef),
97
+ className: classNames(className, handleBasicClasses({
98
+ prefix: CLASSNAME,
99
+ isTruncated: isTruncated && !isTruncatedMultiline,
100
+ isTruncatedMultiline
101
+ }), typographyClass, fontColorClass(color, colorVariant), noWrap && `${CLASSNAME}--no-wrap`),
102
+ title: tooltipLabel,
103
+ style: {
104
+ ...truncateLinesStyle,
105
+ ...whiteSpaceStyle,
106
+ ...style
107
+ },
108
+ ...forwardedProps,
109
+ children: wrapChildrenIconWithSpaces(children)
110
+ });
111
+ });
112
+ Text.displayName = COMPONENT_NAME;
113
+ Text.className = CLASSNAME;
114
+ Text.defaultProps = DEFAULT_PROPS;
115
+
116
+ export { Text as T, useOverflowTooltipLabel as u };
117
+ //# sourceMappingURL=index-b06353f2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-b06353f2.js","sources":["../../src/hooks/useOverflowTooltipLabel.tsx","../../src/components/text/Text.tsx"],"sourcesContent":["import React from 'react';\nimport { useTooltipContext } from '@lumx/react/components/tooltip/context';\nimport { VISUALLY_HIDDEN } from '@lumx/react/constants';\n\n/**\n * Compute a tooltip label based on a label element `innerText` if the text overflows.\n * Updates dynamically on content changes (but not on resize!)\n */\nexport const useOverflowTooltipLabel = (content: React.ReactNode) => {\n const parentTooltip = useTooltipContext();\n const [tooltipLabel, setTooltipLabel] = React.useState<string | undefined>(undefined);\n const [labelElement, setLabelElement] = React.useState<HTMLElement | null>(null);\n\n React.useLayoutEffect(() => {\n if (\n // Not inside a tooltip\n !parentTooltip &&\n labelElement &&\n // Not inside a visually hidden\n !labelElement?.closest(`.${VISUALLY_HIDDEN}`) &&\n // Text overflows\n labelElement.offsetWidth < labelElement.scrollWidth\n ) {\n // Set tooltip label\n setTooltipLabel(labelElement.innerText);\n } else {\n setTooltipLabel(undefined);\n }\n }, [labelElement, parentTooltip, content]);\n\n return { labelRef: setLabelElement, tooltipLabel };\n};\n","import classNames from 'classnames';\n\nimport { ColorWithVariants, ColorVariant, Typography, WhiteSpace } from '@lumx/react';\nimport { GenericProps, TextElement } from '@lumx/react/utils/type';\nimport {\n fontColorClass,\n getRootClassName,\n handleBasicClasses,\n getTypographyClassName,\n} from '@lumx/core/js/utils/className';\nimport { useOverflowTooltipLabel } from '@lumx/react/hooks/useOverflowTooltipLabel';\nimport { useMergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { wrapChildrenIconWithSpaces } from '@lumx/react/utils/react/wrapChildrenIconWithSpaces';\n\n/**\n * Defines the props of the component.\n */\nexport interface TextProps extends GenericProps {\n /**\n * Color variant.\n */\n color?: ColorWithVariants;\n /**\n * Lightened or darkened variant of the selected color.\n */\n colorVariant?: ColorVariant;\n /**\n * Typography variant.\n */\n typography?: Typography;\n /**\n * Custom component to render the text.\n */\n as: TextElement;\n /**\n * Control whether the text should truncate or not.\n * Setting as `true` will make the text truncate on a single line.\n * Setting as `{ lines: number }` will make the text truncate on a multiple lines.\n */\n truncate?: boolean | { lines: number };\n /**\n * Prevents text to wrap on multiple lines\n * (automatically activated when single line text truncate is activated).\n */\n noWrap?: boolean;\n /**\n * WhiteSpace variant\n * Ignored when `noWrap` is set to true\n * Ignored when `truncate` is set to true or lines: 1\n * */\n whiteSpace?: WhiteSpace;\n /**\n * Children\n */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Text';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS = {} as const;\n\n/**\n * Text component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Text = forwardRef<TextProps>((props, ref) => {\n const {\n as: Component,\n children,\n className,\n color,\n colorVariant,\n noWrap,\n typography,\n truncate,\n whiteSpace,\n style,\n ...forwardedProps\n } = props;\n\n const typographyClass = typography && getTypographyClassName(typography);\n\n // Truncate mode\n const truncateLinesStyle = typeof truncate === 'object' &&\n truncate.lines > 1 && { '--lumx-text-truncate-lines': truncate.lines };\n const isTruncatedMultiline = !!truncateLinesStyle;\n const isTruncated = !!truncate;\n\n /**\n * Add custom white-space style if specified\n * Disabled if noWrap is specified\n * Disabled if truncated on one-line\n * */\n const whiteSpaceStyle = !noWrap &&\n !(isTruncated && !isTruncatedMultiline) &&\n whiteSpace && { '--lumx-text-white-space': whiteSpace };\n\n const { tooltipLabel, labelRef } = useOverflowTooltipLabel(children);\n\n return (\n <Component\n ref={useMergeRefs(ref as React.Ref<any>, labelRef)}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n isTruncated: isTruncated && !isTruncatedMultiline,\n isTruncatedMultiline,\n }),\n typographyClass,\n fontColorClass(color, colorVariant),\n noWrap && `${CLASSNAME}--no-wrap`,\n )}\n title={tooltipLabel}\n style={{ ...truncateLinesStyle, ...whiteSpaceStyle, ...style }}\n {...forwardedProps}\n >\n {wrapChildrenIconWithSpaces(children)}\n </Component>\n );\n});\nText.displayName = COMPONENT_NAME;\nText.className = CLASSNAME;\nText.defaultProps = DEFAULT_PROPS;\n"],"names":["useOverflowTooltipLabel","content","parentTooltip","useTooltipContext","tooltipLabel","setTooltipLabel","React","useState","undefined","labelElement","setLabelElement","useLayoutEffect","closest","VISUALLY_HIDDEN","offsetWidth","scrollWidth","innerText","labelRef","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","Text","forwardRef","props","ref","as","Component","children","className","color","colorVariant","noWrap","typography","truncate","whiteSpace","style","forwardedProps","typographyClass","getTypographyClassName","truncateLinesStyle","lines","isTruncatedMultiline","isTruncated","whiteSpaceStyle","_jsx","useMergeRefs","classNames","handleBasicClasses","prefix","fontColorClass","title","wrapChildrenIconWithSpaces","displayName","defaultProps"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ const mdiAlert = 'M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z';
2
+
3
+ const mdiInformation = 'M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2';
4
+
5
+ export { mdiInformation as a, mdiAlert as m };
6
+ //# sourceMappingURL=information-49bbeed3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"information-49bbeed3.js","sources":["../../../lumx-icons/dist/esm/alert.js","../../../lumx-icons/dist/esm/information.js"],"sourcesContent":["export const mdiAlert = /*#__PURE__*/ 'M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z';","export const mdiInformation = /*#__PURE__*/ 'M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2';"],"names":["mdiAlert","mdiInformation"],"mappings":"AAAaA,MAAAA,QAAQ,GAAiB;;ACAzBC,MAAAA,cAAc,GAAiB;;;;"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Properties of a component to use to determine its name.
3
+ * In the order of preference.
4
+ */
5
+ const NAME_PROPERTIES = ['type', 'type.displayName', 'displayName', 'name', 'type.name', 'props.mdxType', '_reactInternalFiber.elementType.name'];
6
+ /**
7
+ * Create a predicate function that checks if a ReactNode is a react element from the given component.
8
+ *
9
+ * @param component React function component or the component name
10
+ * @return predicate returning true if value is instance of the component
11
+ */
12
+ const isComponent = component => instance => {
13
+ const componentName = typeof component === 'string' ? component : component.displayName;
14
+ return !!instance.$$typeof && NAME_PROPERTIES.some(nameProperty => instance[nameProperty] === componentName);
15
+ };
16
+
17
+ export { isComponent as i };
18
+ //# sourceMappingURL=isComponent-b9762ff1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isComponent-b9762ff1.js","sources":["../../src/utils/type/isComponent.ts"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport type { Comp } from './Comp';\n\n/**\n * Properties of a component to use to determine its name.\n * In the order of preference.\n */\nconst NAME_PROPERTIES: string[] = [\n 'type',\n 'type.displayName',\n 'displayName',\n 'name',\n 'type.name',\n 'props.mdxType',\n '_reactInternalFiber.elementType.name',\n];\n/**\n * Create a predicate function that checks if a ReactNode is a react element from the given component.\n *\n * @param component React function component or the component name\n * @return predicate returning true if value is instance of the component\n */\nexport const isComponent =\n <C>(component: Comp<C, any> | string) =>\n (instance: ReactNode): instance is ReactElement => {\n const componentName = typeof component === 'string' ? component : component.displayName;\n\n return (\n !!(instance as any).$$typeof &&\n NAME_PROPERTIES.some((nameProperty: string): boolean => (instance as any)[nameProperty] === componentName)\n );\n };\n"],"names":["NAME_PROPERTIES","isComponent","component","instance","componentName","displayName","$$typeof","some","nameProperty"],"mappings":"AAGA;AACA;AACA;AACA;AACA,MAAMA,eAAyB,GAAG,CAC9B,MAAM,EACN,kBAAkB,EAClB,aAAa,EACb,MAAM,EACN,WAAW,EACX,eAAe,EACf,sCAAsC,CACzC,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;MACaC,WAAW,GAChBC,SAAgC,IACnCC,QAAmB,IAA+B;EAC/C,MAAMC,aAAa,GAAG,OAAOF,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAGA,SAAS,CAACG,WAAW,CAAA;AAEvF,EAAA,OACI,CAAC,CAAEF,QAAQ,CAASG,QAAQ,IAC5BN,eAAe,CAACO,IAAI,CAAEC,YAAoB,IAAeL,QAAQ,CAASK,YAAY,CAAC,KAAKJ,aAAa,CAAC,CAAA;AAElH;;;;"}
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+
3
+ /**
4
+ * Similar to `isComponent` but more precise as it's not based on the component `displayName` but on the component function reference.
5
+ */
6
+ const isComponentType = type => node => /*#__PURE__*/React__default.isValidElement(node) && node.type === type;
7
+
8
+ export { isComponentType as i };
9
+ //# sourceMappingURL=isComponentType-e806b848.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isComponentType-e806b848.js","sources":["../../src/utils/type/isComponentType.ts"],"sourcesContent":["import React, { ReactElement, ReactNode } from 'react';\n\n/**\n * Similar to `isComponent` but more precise as it's not based on the component `displayName` but on the component function reference.\n */\nexport const isComponentType =\n (type: ReactElement['type']) =>\n (node: ReactNode): node is ReactElement =>\n React.isValidElement(node) && node.type === type;\n"],"names":["isComponentType","type","node","React","isValidElement"],"mappings":";;AAEA;AACA;AACA;MACaA,eAAe,GACvBC,IAA0B,IAC1BC,IAAe,iBACZC,cAAK,CAACC,cAAc,CAACF,IAAI,CAAC,IAAIA,IAAI,CAACD,IAAI,KAAKA;;;;"}
@@ -0,0 +1,30 @@
1
+ import { useMemo } from 'react';
2
+
3
+ /**
4
+ * Merge refs into a single function ref.
5
+ *
6
+ * @param refs React references to merge.
7
+ * @return the merged ref.
8
+ */
9
+ function mergeRefs(...refs) {
10
+ return value => refs.forEach(ref => {
11
+ if (typeof ref === 'function') {
12
+ ref(value);
13
+ } else if (ref) {
14
+ // eslint-disable-next-line no-param-reassign
15
+ ref.current = value;
16
+ }
17
+ });
18
+ }
19
+
20
+ /**
21
+ * Same as `mergeRefs` but memoized
22
+ */
23
+ const useMergeRefs = (...refs) => {
24
+ return useMemo(() => mergeRefs(...refs),
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ refs);
27
+ };
28
+
29
+ export { mergeRefs as m, useMergeRefs as u };
30
+ //# sourceMappingURL=mergeRefs-f0d7d6ea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeRefs-f0d7d6ea.js","sources":["../../src/utils/react/mergeRefs.ts"],"sourcesContent":["import { Falsy } from '@lumx/react/utils/type';\nimport { MutableRefObject, useMemo } from 'react';\n\ntype FnRef<T> = (value: T) => void;\n\n/**\n * Merge refs into a single function ref.\n *\n * @param refs React references to merge.\n * @return the merged ref.\n */\nexport function mergeRefs<T>(...refs: Array<MutableRefObject<T | null> | FnRef<T> | Falsy>): FnRef<T> {\n return (value) =>\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n // eslint-disable-next-line no-param-reassign\n (ref as MutableRefObject<T>).current = value;\n }\n });\n}\n\n/**\n * Same as `mergeRefs` but memoized\n */\nexport const useMergeRefs = <T>(...refs: Array<MutableRefObject<T | null> | FnRef<T> | Falsy>) => {\n return useMemo(\n () => mergeRefs(...refs),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n refs,\n );\n};\n"],"names":["mergeRefs","refs","value","forEach","ref","current","useMergeRefs","useMemo"],"mappings":";;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CAAI,GAAGC,IAA0D,EAAY;AAClG,EAAA,OAAQC,KAAK,IACTD,IAAI,CAACE,OAAO,CAAEC,GAAG,IAAK;AAClB,IAAA,IAAI,OAAOA,GAAG,KAAK,UAAU,EAAE;MAC3BA,GAAG,CAACF,KAAK,CAAC,CAAA;KACb,MAAM,IAAIE,GAAG,EAAE;AACZ;MACCA,GAAG,CAAyBC,OAAO,GAAGH,KAAK,CAAA;AAChD,KAAA;AACJ,GAAC,CAAC,CAAA;AACV,CAAA;;AAEA;AACA;AACA;MACaI,YAAY,GAAGA,CAAI,GAAGL,IAA0D,KAAK;AAC9F,EAAA,OAAOM,OAAO,CACV,MAAMP,SAAS,CAAC,GAAGC,IAAI,CAAC;AACxB;AACAA,EAAAA,IACJ,CAAC,CAAA;AACL;;;;"}
@@ -0,0 +1,130 @@
1
+ import { createContext, useContext, useEffect, useMemo, useCallback } from 'react';
2
+ import { u as useId } from './useId-3a1facc0.js';
3
+
4
+ const INIT_STATE = {
5
+ isLazy: true,
6
+ shouldActivateOnFocus: false,
7
+ activeTabIndex: 0,
8
+ ids: {
9
+ tab: [],
10
+ tabPanel: []
11
+ }
12
+ };
13
+ const reducer = (state, action) => {
14
+ switch (action.type) {
15
+ case 'update':
16
+ return {
17
+ ...state,
18
+ ...action.payload
19
+ };
20
+ case 'setActiveTabIndex':
21
+ {
22
+ if (state.activeTabIndex === action.payload) {
23
+ return state;
24
+ }
25
+ // Change active tab index.
26
+ return {
27
+ ...state,
28
+ activeTabIndex: action.payload
29
+ };
30
+ }
31
+ case 'register':
32
+ {
33
+ const {
34
+ type,
35
+ id
36
+ } = action.payload;
37
+ // Append tab/tabPanel id in state.
38
+ return {
39
+ ...state,
40
+ ids: {
41
+ ...state.ids,
42
+ [type]: [...state.ids[type], id]
43
+ }
44
+ };
45
+ }
46
+ case 'unregister':
47
+ {
48
+ const {
49
+ type,
50
+ id
51
+ } = action.payload;
52
+ const index = state.ids[type].indexOf(id);
53
+ if (index === -1) return state;
54
+ // Remove tab & tab panel at index.
55
+ const tabIds = [...state.ids.tab];
56
+ tabIds.splice(index, 1);
57
+ const tabPanelIds = [...state.ids.tabPanel];
58
+ tabPanelIds.splice(index, 1);
59
+ return {
60
+ ...state,
61
+ ids: {
62
+ tab: tabIds,
63
+ tabPanel: tabPanelIds
64
+ }
65
+ };
66
+ }
67
+ default:
68
+ return state;
69
+ }
70
+ };
71
+ const TabProviderContext = /*#__PURE__*/createContext(null);
72
+ /* eslint-disable react-hooks/rules-of-hooks */
73
+ const useTabProviderContext = (type, originalId) => {
74
+ const context = useContext(TabProviderContext);
75
+ if (!context) {
76
+ return undefined;
77
+ }
78
+ const [state, dispatch] = context;
79
+
80
+ // Current tab or tab panel id.
81
+ const generatedId = useId();
82
+ const id = originalId || generatedId;
83
+ useEffect(() => {
84
+ // On mount: register tab or tab panel id.
85
+ dispatch({
86
+ type: 'register',
87
+ payload: {
88
+ type,
89
+ id
90
+ }
91
+ });
92
+ return () => {
93
+ // On unmount: unregister tab or tab panel id.
94
+ dispatch({
95
+ type: 'unregister',
96
+ payload: {
97
+ type,
98
+ id
99
+ }
100
+ });
101
+ };
102
+ },
103
+ // eslint-disable-next-line react-hooks/exhaustive-deps
104
+ []);
105
+
106
+ // Find tab/tabPanel index using it's id.
107
+ const index = useMemo(() => state.ids[type].indexOf(id), [state.ids, type, id]);
108
+ const tabId = useMemo(() => state.ids.tab[index] || '', [state, index]);
109
+ const tabPanelId = useMemo(() => state.ids.tabPanel[index] || '', [state, index]);
110
+ const isActive = useMemo(() => state.activeTabIndex === index, [state, index]);
111
+ const changeToTab = useCallback(() => dispatch({
112
+ type: 'setActiveTabIndex',
113
+ payload: index
114
+ }), [dispatch, index]);
115
+ return {
116
+ isLazy: state.isLazy,
117
+ shouldActivateOnFocus: state.shouldActivateOnFocus,
118
+ tabId,
119
+ tabPanelId,
120
+ isActive,
121
+ changeToTab
122
+ };
123
+ };
124
+ const useTabProviderContextState = () => {
125
+ const context = useContext(TabProviderContext);
126
+ return context?.[0];
127
+ };
128
+
129
+ export { INIT_STATE as I, TabProviderContext as T, useTabProviderContext as a, reducer as r, useTabProviderContextState as u };
130
+ //# sourceMappingURL=state-db358714.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-db358714.js","sources":["../../src/components/tabs/state.ts"],"sourcesContent":["import { Dispatch, createContext, useCallback, useContext, useEffect, useMemo } from 'react';\nimport { useId } from '@lumx/react/hooks/useId';\n\ntype TabType = 'tab' | 'tabPanel';\n\nexport interface State {\n isLazy: boolean;\n shouldActivateOnFocus: boolean;\n activeTabIndex: number;\n ids: Record<TabType, string[]>;\n}\n\nexport const INIT_STATE: State = {\n isLazy: true,\n shouldActivateOnFocus: false,\n activeTabIndex: 0,\n ids: { tab: [], tabPanel: [] },\n};\n\nexport type Action =\n | { type: 'update'; payload: Partial<State> }\n | { type: 'setActiveTabIndex'; payload: number }\n | { type: 'register'; payload: { type: TabType; id: string } }\n | { type: 'unregister'; payload: { type: TabType; id: string } };\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'update':\n return { ...state, ...action.payload };\n case 'setActiveTabIndex': {\n if (state.activeTabIndex === action.payload) {\n return state;\n }\n // Change active tab index.\n return { ...state, activeTabIndex: action.payload };\n }\n case 'register': {\n const { type, id } = action.payload;\n // Append tab/tabPanel id in state.\n return { ...state, ids: { ...state.ids, [type]: [...state.ids[type], id] } };\n }\n case 'unregister': {\n const { type, id } = action.payload;\n const index = state.ids[type].indexOf(id);\n if (index === -1) return state;\n // Remove tab & tab panel at index.\n const tabIds = [...state.ids.tab];\n tabIds.splice(index, 1);\n const tabPanelIds = [...state.ids.tabPanel];\n tabPanelIds.splice(index, 1);\n return {\n ...state,\n ids: { tab: tabIds, tabPanel: tabPanelIds },\n };\n }\n default:\n return state;\n }\n};\n\nexport const TabProviderContext = createContext<[State, Dispatch<Action>] | null>(null);\n\nexport type TabState = Pick<Required<State>, 'isLazy' | 'shouldActivateOnFocus'> & {\n isActive: boolean;\n tabId: string;\n tabPanelId: string;\n changeToTab(): void;\n};\n\n/* eslint-disable react-hooks/rules-of-hooks */\nexport const useTabProviderContext = (type: TabType, originalId?: string): undefined | TabState => {\n const context = useContext(TabProviderContext);\n if (!context) {\n return undefined;\n }\n const [state, dispatch] = context;\n\n // Current tab or tab panel id.\n const generatedId = useId();\n const id = originalId || generatedId;\n\n useEffect(\n () => {\n // On mount: register tab or tab panel id.\n dispatch({ type: 'register', payload: { type, id } });\n return () => {\n // On unmount: unregister tab or tab panel id.\n dispatch({ type: 'unregister', payload: { type, id } });\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n // Find tab/tabPanel index using it's id.\n const index = useMemo(() => state.ids[type].indexOf(id), [state.ids, type, id]);\n const tabId = useMemo(() => state.ids.tab[index] || '', [state, index]);\n const tabPanelId = useMemo(() => state.ids.tabPanel[index] || '', [state, index]);\n const isActive = useMemo(() => state.activeTabIndex === index, [state, index]);\n const changeToTab = useCallback(() => dispatch({ type: 'setActiveTabIndex', payload: index }), [dispatch, index]);\n return {\n isLazy: state.isLazy,\n shouldActivateOnFocus: state.shouldActivateOnFocus,\n tabId,\n tabPanelId,\n isActive,\n changeToTab,\n };\n};\n\nexport const useTabProviderContextState = (): State | undefined => {\n const context = useContext(TabProviderContext);\n return context?.[0];\n};\n"],"names":["INIT_STATE","isLazy","shouldActivateOnFocus","activeTabIndex","ids","tab","tabPanel","reducer","state","action","type","payload","id","index","indexOf","tabIds","splice","tabPanelIds","TabProviderContext","createContext","useTabProviderContext","originalId","context","useContext","undefined","dispatch","generatedId","useId","useEffect","useMemo","tabId","tabPanelId","isActive","changeToTab","useCallback","useTabProviderContextState"],"mappings":";;;AAYO,MAAMA,UAAiB,GAAG;AAC7BC,EAAAA,MAAM,EAAE,IAAI;AACZC,EAAAA,qBAAqB,EAAE,KAAK;AAC5BC,EAAAA,cAAc,EAAE,CAAC;AACjBC,EAAAA,GAAG,EAAE;AAAEC,IAAAA,GAAG,EAAE,EAAE;AAAEC,IAAAA,QAAQ,EAAE,EAAA;AAAG,GAAA;AACjC,EAAC;MAQYC,OAAO,GAAGA,CAACC,KAAY,EAAEC,MAAc,KAAY;EAC5D,QAAQA,MAAM,CAACC,IAAI;AACf,IAAA,KAAK,QAAQ;MACT,OAAO;AAAE,QAAA,GAAGF,KAAK;AAAE,QAAA,GAAGC,MAAM,CAACE,OAAAA;OAAS,CAAA;AAC1C,IAAA,KAAK,mBAAmB;AAAE,MAAA;AACtB,QAAA,IAAIH,KAAK,CAACL,cAAc,KAAKM,MAAM,CAACE,OAAO,EAAE;AACzC,UAAA,OAAOH,KAAK,CAAA;AAChB,SAAA;AACA;QACA,OAAO;AAAE,UAAA,GAAGA,KAAK;UAAEL,cAAc,EAAEM,MAAM,CAACE,OAAAA;SAAS,CAAA;AACvD,OAAA;AACA,IAAA,KAAK,UAAU;AAAE,MAAA;QACb,MAAM;UAAED,IAAI;AAAEE,UAAAA,EAAAA;SAAI,GAAGH,MAAM,CAACE,OAAO,CAAA;AACnC;QACA,OAAO;AAAE,UAAA,GAAGH,KAAK;AAAEJ,UAAAA,GAAG,EAAE;YAAE,GAAGI,KAAK,CAACJ,GAAG;YAAE,CAACM,IAAI,GAAG,CAAC,GAAGF,KAAK,CAACJ,GAAG,CAACM,IAAI,CAAC,EAAEE,EAAE,CAAA;AAAE,WAAA;SAAG,CAAA;AAChF,OAAA;AACA,IAAA,KAAK,YAAY;AAAE,MAAA;QACf,MAAM;UAAEF,IAAI;AAAEE,UAAAA,EAAAA;SAAI,GAAGH,MAAM,CAACE,OAAO,CAAA;AACnC,QAAA,MAAME,KAAK,GAAGL,KAAK,CAACJ,GAAG,CAACM,IAAI,CAAC,CAACI,OAAO,CAACF,EAAE,CAAC,CAAA;AACzC,QAAA,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE,OAAOL,KAAK,CAAA;AAC9B;QACA,MAAMO,MAAM,GAAG,CAAC,GAAGP,KAAK,CAACJ,GAAG,CAACC,GAAG,CAAC,CAAA;AACjCU,QAAAA,MAAM,CAACC,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC,CAAA;QACvB,MAAMI,WAAW,GAAG,CAAC,GAAGT,KAAK,CAACJ,GAAG,CAACE,QAAQ,CAAC,CAAA;AAC3CW,QAAAA,WAAW,CAACD,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC,CAAA;QAC5B,OAAO;AACH,UAAA,GAAGL,KAAK;AACRJ,UAAAA,GAAG,EAAE;AAAEC,YAAAA,GAAG,EAAEU,MAAM;AAAET,YAAAA,QAAQ,EAAEW,WAAAA;AAAY,WAAA;SAC7C,CAAA;AACL,OAAA;AACA,IAAA;AACI,MAAA,OAAOT,KAAK,CAAA;AACpB,GAAA;AACJ,EAAC;MAEYU,kBAAkB,gBAAGC,aAAa,CAAmC,IAAI,EAAC;AASvF;MACaC,qBAAqB,GAAGA,CAACV,IAAa,EAAEW,UAAmB,KAA2B;AAC/F,EAAA,MAAMC,OAAO,GAAGC,UAAU,CAACL,kBAAkB,CAAC,CAAA;EAC9C,IAAI,CAACI,OAAO,EAAE;AACV,IAAA,OAAOE,SAAS,CAAA;AACpB,GAAA;AACA,EAAA,MAAM,CAAChB,KAAK,EAAEiB,QAAQ,CAAC,GAAGH,OAAO,CAAA;;AAEjC;AACA,EAAA,MAAMI,WAAW,GAAGC,KAAK,EAAE,CAAA;AAC3B,EAAA,MAAMf,EAAE,GAAGS,UAAU,IAAIK,WAAW,CAAA;AAEpCE,EAAAA,SAAS,CACL,MAAM;AACF;AACAH,IAAAA,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAE,UAAU;AAAEC,MAAAA,OAAO,EAAE;QAAED,IAAI;AAAEE,QAAAA,EAAAA;AAAG,OAAA;AAAE,KAAC,CAAC,CAAA;AACrD,IAAA,OAAO,MAAM;AACT;AACAa,MAAAA,QAAQ,CAAC;AAAEf,QAAAA,IAAI,EAAE,YAAY;AAAEC,QAAAA,OAAO,EAAE;UAAED,IAAI;AAAEE,UAAAA,EAAAA;AAAG,SAAA;AAAE,OAAC,CAAC,CAAA;KAC1D,CAAA;GACJ;AACD;AACA,EAAA,EACJ,CAAC,CAAA;;AAED;EACA,MAAMC,KAAK,GAAGgB,OAAO,CAAC,MAAMrB,KAAK,CAACJ,GAAG,CAACM,IAAI,CAAC,CAACI,OAAO,CAACF,EAAE,CAAC,EAAE,CAACJ,KAAK,CAACJ,GAAG,EAAEM,IAAI,EAAEE,EAAE,CAAC,CAAC,CAAA;EAC/E,MAAMkB,KAAK,GAAGD,OAAO,CAAC,MAAMrB,KAAK,CAACJ,GAAG,CAACC,GAAG,CAACQ,KAAK,CAAC,IAAI,EAAE,EAAE,CAACL,KAAK,EAAEK,KAAK,CAAC,CAAC,CAAA;EACvE,MAAMkB,UAAU,GAAGF,OAAO,CAAC,MAAMrB,KAAK,CAACJ,GAAG,CAACE,QAAQ,CAACO,KAAK,CAAC,IAAI,EAAE,EAAE,CAACL,KAAK,EAAEK,KAAK,CAAC,CAAC,CAAA;AACjF,EAAA,MAAMmB,QAAQ,GAAGH,OAAO,CAAC,MAAMrB,KAAK,CAACL,cAAc,KAAKU,KAAK,EAAE,CAACL,KAAK,EAAEK,KAAK,CAAC,CAAC,CAAA;AAC9E,EAAA,MAAMoB,WAAW,GAAGC,WAAW,CAAC,MAAMT,QAAQ,CAAC;AAAEf,IAAAA,IAAI,EAAE,mBAAmB;AAAEC,IAAAA,OAAO,EAAEE,KAAAA;AAAM,GAAC,CAAC,EAAE,CAACY,QAAQ,EAAEZ,KAAK,CAAC,CAAC,CAAA;EACjH,OAAO;IACHZ,MAAM,EAAEO,KAAK,CAACP,MAAM;IACpBC,qBAAqB,EAAEM,KAAK,CAACN,qBAAqB;IAClD4B,KAAK;IACLC,UAAU;IACVC,QAAQ;AACRC,IAAAA,WAAAA;GACH,CAAA;AACL,EAAC;AAEYE,MAAAA,0BAA0B,GAAGA,MAAyB;AAC/D,EAAA,MAAMb,OAAO,GAAGC,UAAU,CAACL,kBAAkB,CAAC,CAAA;EAC9C,OAAOI,OAAO,GAAG,CAAC,CAAC,CAAA;AACvB;;;;"}
@@ -0,0 +1,12 @@
1
+ import { useState, useCallback } from 'react';
2
+
3
+ const useBooleanState = defaultValue => {
4
+ const [booleanValue, setBoolean] = useState(defaultValue);
5
+ const setToFalse = useCallback(() => setBoolean(false), []);
6
+ const setToTrue = useCallback(() => setBoolean(true), []);
7
+ const toggleBoolean = useCallback(() => setBoolean(previousValue => !previousValue), []);
8
+ return [booleanValue, setToFalse, setToTrue, toggleBoolean];
9
+ };
10
+
11
+ export { useBooleanState as u };
12
+ //# sourceMappingURL=useBooleanState-2a3d237c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBooleanState-2a3d237c.js","sources":["../../src/hooks/useBooleanState.tsx"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nexport const useBooleanState = (defaultValue: boolean): [boolean, () => void, () => void, () => void] => {\n const [booleanValue, setBoolean] = useState<boolean>(defaultValue);\n\n const setToFalse = useCallback(() => setBoolean(false), []);\n\n const setToTrue = useCallback(() => setBoolean(true), []);\n\n const toggleBoolean = useCallback(() => setBoolean((previousValue) => !previousValue), []);\n\n return [booleanValue, setToFalse, setToTrue, toggleBoolean];\n};\n"],"names":["useBooleanState","defaultValue","booleanValue","setBoolean","useState","setToFalse","useCallback","setToTrue","toggleBoolean","previousValue"],"mappings":";;AAEaA,MAAAA,eAAe,GAAIC,YAAqB,IAAoD;EACrG,MAAM,CAACC,YAAY,EAAEC,UAAU,CAAC,GAAGC,QAAQ,CAAUH,YAAY,CAAC,CAAA;EAElE,MAAMI,UAAU,GAAGC,WAAW,CAAC,MAAMH,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;EAE3D,MAAMI,SAAS,GAAGD,WAAW,CAAC,MAAMH,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;AAEzD,EAAA,MAAMK,aAAa,GAAGF,WAAW,CAAC,MAAMH,UAAU,CAAEM,aAAa,IAAK,CAACA,aAAa,CAAC,EAAE,EAAE,CAAC,CAAA;EAE1F,OAAO,CAACP,YAAY,EAAEG,UAAU,EAAEE,SAAS,EAAEC,aAAa,CAAC,CAAA;AAC/D;;;;"}
@@ -0,0 +1,62 @@
1
+ import { D as DOCUMENT } from './constants-d0e3f49e.js';
2
+ import { onEscapePressed } from '@lumx/core/js/utils';
3
+ import { useEffect } from 'react';
4
+ import { pull } from '@lumx/core/js/utils/collection/pull';
5
+ import { last } from '@lumx/core/js/utils/collection/last';
6
+
7
+ /**
8
+ * Keep track of listeners, only the last registered listener gets activated at any point (previously registered
9
+ * listener are disabled).
10
+ * When a listener gets unregistered, the previously registered listener gets enabled again.
11
+ */
12
+ function makeListenerTowerContext() {
13
+ const LISTENERS = [];
14
+ return {
15
+ register(listener) {
16
+ // Disable previous listener.
17
+ last(LISTENERS)?.disable();
18
+ // Keep track of current listener.
19
+ LISTENERS.push(listener);
20
+ // Enable current listener.
21
+ listener.enable();
22
+ },
23
+ unregister(listener) {
24
+ // Disable current listener.
25
+ listener.disable();
26
+ // Remove current listener.
27
+ pull(LISTENERS, listener);
28
+ // Enable previous listener.
29
+ last(LISTENERS)?.enable();
30
+ }
31
+ };
32
+ }
33
+
34
+ const LISTENERS = makeListenerTowerContext();
35
+
36
+ /**
37
+ * Register a global listener on 'Escape' key pressed.
38
+ *
39
+ * If multiple listener are registered, only the last one is maintained. When a listener is unregistered, the previous
40
+ * one gets activated again.
41
+ *
42
+ * @param callback Callback
43
+ * @param closeOnEscape Disables the hook when false
44
+ */
45
+ function useCallbackOnEscape(callback, closeOnEscape = true) {
46
+ useEffect(() => {
47
+ const rootElement = DOCUMENT?.body;
48
+ if (!closeOnEscape || !callback || !rootElement) {
49
+ return undefined;
50
+ }
51
+ const onKeyDown = onEscapePressed(callback);
52
+ const listener = {
53
+ enable: () => rootElement.addEventListener('keydown', onKeyDown),
54
+ disable: () => rootElement.removeEventListener('keydown', onKeyDown)
55
+ };
56
+ LISTENERS.register(listener);
57
+ return () => LISTENERS.unregister(listener);
58
+ }, [callback, closeOnEscape]);
59
+ }
60
+
61
+ export { makeListenerTowerContext as m, useCallbackOnEscape as u };
62
+ //# sourceMappingURL=useCallbackOnEscape-0b220f9c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCallbackOnEscape-0b220f9c.js","sources":["../../src/utils/function/makeListenerTowerContext.ts","../../src/hooks/useCallbackOnEscape.ts"],"sourcesContent":["import { pull } from '@lumx/core/js/utils/collection/pull';\nimport { last } from '@lumx/core/js/utils/collection/last';\n\nexport type Listener = { enable(): void; disable(): void };\n\n/**\n * Keep track of listeners, only the last registered listener gets activated at any point (previously registered\n * listener are disabled).\n * When a listener gets unregistered, the previously registered listener gets enabled again.\n */\nexport function makeListenerTowerContext() {\n const LISTENERS: Listener[] = [];\n\n return {\n register(listener: Listener) {\n // Disable previous listener.\n last(LISTENERS)?.disable();\n // Keep track of current listener.\n LISTENERS.push(listener);\n // Enable current listener.\n listener.enable();\n },\n unregister(listener: Listener) {\n // Disable current listener.\n listener.disable();\n // Remove current listener.\n pull(LISTENERS, listener);\n // Enable previous listener.\n last(LISTENERS)?.enable();\n },\n };\n}\n","import { DOCUMENT } from '@lumx/react/constants';\nimport { Callback } from '@lumx/react/utils/type';\nimport { onEscapePressed } from '@lumx/core/js/utils';\nimport { useEffect } from 'react';\nimport { Listener, makeListenerTowerContext } from '@lumx/react/utils/function/makeListenerTowerContext';\n\nconst LISTENERS = makeListenerTowerContext();\n\n/**\n * Register a global listener on 'Escape' key pressed.\n *\n * If multiple listener are registered, only the last one is maintained. When a listener is unregistered, the previous\n * one gets activated again.\n *\n * @param callback Callback\n * @param closeOnEscape Disables the hook when false\n */\nexport function useCallbackOnEscape(callback: Callback | undefined, closeOnEscape = true) {\n useEffect(() => {\n const rootElement = DOCUMENT?.body;\n if (!closeOnEscape || !callback || !rootElement) {\n return undefined;\n }\n const onKeyDown = onEscapePressed(callback);\n\n const listener: Listener = {\n enable: () => rootElement.addEventListener('keydown', onKeyDown),\n disable: () => rootElement.removeEventListener('keydown', onKeyDown),\n };\n\n LISTENERS.register(listener);\n return () => LISTENERS.unregister(listener);\n }, [callback, closeOnEscape]);\n}\n"],"names":["makeListenerTowerContext","LISTENERS","register","listener","last","disable","push","enable","unregister","pull","useCallbackOnEscape","callback","closeOnEscape","useEffect","rootElement","DOCUMENT","body","undefined","onKeyDown","onEscapePressed","addEventListener","removeEventListener"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;AACA;AACO,SAASA,wBAAwBA,GAAG;EACvC,MAAMC,SAAqB,GAAG,EAAE,CAAA;EAEhC,OAAO;IACHC,QAAQA,CAACC,QAAkB,EAAE;AACzB;AACAC,MAAAA,IAAI,CAACH,SAAS,CAAC,EAAEI,OAAO,EAAE,CAAA;AAC1B;AACAJ,MAAAA,SAAS,CAACK,IAAI,CAACH,QAAQ,CAAC,CAAA;AACxB;MACAA,QAAQ,CAACI,MAAM,EAAE,CAAA;KACpB;IACDC,UAAUA,CAACL,QAAkB,EAAE;AAC3B;MACAA,QAAQ,CAACE,OAAO,EAAE,CAAA;AAClB;AACAI,MAAAA,IAAI,CAACR,SAAS,EAAEE,QAAQ,CAAC,CAAA;AACzB;AACAC,MAAAA,IAAI,CAACH,SAAS,CAAC,EAAEM,MAAM,EAAE,CAAA;AAC7B,KAAA;GACH,CAAA;AACL;;ACzBA,MAAMN,SAAS,GAAGD,wBAAwB,EAAE,CAAA;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASU,mBAAmBA,CAACC,QAA8B,EAAEC,aAAa,GAAG,IAAI,EAAE;AACtFC,EAAAA,SAAS,CAAC,MAAM;AACZ,IAAA,MAAMC,WAAW,GAAGC,QAAQ,EAAEC,IAAI,CAAA;IAClC,IAAI,CAACJ,aAAa,IAAI,CAACD,QAAQ,IAAI,CAACG,WAAW,EAAE;AAC7C,MAAA,OAAOG,SAAS,CAAA;AACpB,KAAA;AACA,IAAA,MAAMC,SAAS,GAAGC,eAAe,CAACR,QAAQ,CAAC,CAAA;AAE3C,IAAA,MAAMR,QAAkB,GAAG;MACvBI,MAAM,EAAEA,MAAMO,WAAW,CAACM,gBAAgB,CAAC,SAAS,EAAEF,SAAS,CAAC;MAChEb,OAAO,EAAEA,MAAMS,WAAW,CAACO,mBAAmB,CAAC,SAAS,EAAEH,SAAS,CAAA;KACtE,CAAA;AAEDjB,IAAAA,SAAS,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAA;AAC5B,IAAA,OAAO,MAAMF,SAAS,CAACO,UAAU,CAACL,QAAQ,CAAC,CAAA;AAC/C,GAAC,EAAE,CAACQ,QAAQ,EAAEC,aAAa,CAAC,CAAC,CAAA;AACjC;;;;"}