@lumx/react 4.17.1-alpha.2 → 4.17.1-alpha.3

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 (748) hide show
  1. package/_internal/_virtual/_rolldown/runtime.js +34 -0
  2. package/_internal/components/alert-dialog/AlertDialog.d.ts +30 -0
  3. package/_internal/components/alert-dialog/AlertDialog.js +49 -0
  4. package/_internal/components/alert-dialog/index.d.ts +1 -0
  5. package/_internal/components/autocomplete/Autocomplete.d.ts +181 -0
  6. package/_internal/components/autocomplete/Autocomplete.js +92 -0
  7. package/_internal/components/autocomplete/AutocompleteMultiple.d.ts +28 -0
  8. package/_internal/components/autocomplete/AutocompleteMultiple.js +95 -0
  9. package/_internal/components/autocomplete/index.d.ts +2 -0
  10. package/_internal/components/avatar/Avatar.d.ts +39 -0
  11. package/_internal/components/avatar/Avatar.js +46 -0
  12. package/_internal/components/avatar/index.d.ts +2 -0
  13. package/_internal/components/badge/Badge.d.ts +24 -0
  14. package/_internal/components/badge/Badge.js +21 -0
  15. package/_internal/components/badge/BadgeWrapper.d.ts +16 -0
  16. package/_internal/components/badge/BadgeWrapper.js +13 -0
  17. package/_internal/components/badge/index.d.ts +2 -0
  18. package/_internal/components/button/Button.d.ts +22 -0
  19. package/_internal/components/button/Button.js +49 -0
  20. package/_internal/components/button/ButtonGroup.d.ts +17 -0
  21. package/_internal/components/button/ButtonGroup.js +21 -0
  22. package/_internal/components/button/ButtonRoot.d.ts +1 -0
  23. package/_internal/components/button/IconButton.d.ts +30 -0
  24. package/_internal/components/button/IconButton.js +40 -0
  25. package/_internal/components/button/index.d.ts +5 -0
  26. package/_internal/components/checkbox/Checkbox.d.ts +24 -0
  27. package/_internal/components/checkbox/Checkbox.js +58 -0
  28. package/_internal/components/checkbox/index.d.ts +1 -0
  29. package/_internal/components/chip/Chip.d.ts +34 -0
  30. package/_internal/components/chip/Chip.js +43 -0
  31. package/_internal/components/chip/ChipGroup.d.ts +20 -0
  32. package/_internal/components/chip/ChipGroup.js +25 -0
  33. package/_internal/components/chip/SelectionChipGroup.d.ts +43 -0
  34. package/_internal/components/chip/SelectionChipGroup.js +78 -0
  35. package/_internal/components/chip/index.d.ts +3 -0
  36. package/_internal/components/combobox/ComboboxButton.d.ts +17 -0
  37. package/_internal/components/combobox/ComboboxButton.js +59 -0
  38. package/_internal/components/combobox/ComboboxInput.d.ts +19 -0
  39. package/_internal/components/combobox/ComboboxInput.js +79 -0
  40. package/_internal/components/combobox/ComboboxList.d.ts +8 -0
  41. package/_internal/components/combobox/ComboboxList.js +64 -0
  42. package/_internal/components/combobox/ComboboxOption.d.ts +36 -0
  43. package/_internal/components/combobox/ComboboxOption.js +76 -0
  44. package/_internal/components/combobox/ComboboxOptionAction.d.ts +18 -0
  45. package/_internal/components/combobox/ComboboxOptionAction.js +38 -0
  46. package/_internal/components/combobox/ComboboxOptionMoreInfo.d.ts +19 -0
  47. package/_internal/components/combobox/ComboboxOptionMoreInfo.js +49 -0
  48. package/_internal/components/combobox/ComboboxOptionSkeleton.d.ts +19 -0
  49. package/_internal/components/combobox/ComboboxOptionSkeleton.js +38 -0
  50. package/_internal/components/combobox/ComboboxPopover.d.ts +18 -0
  51. package/_internal/components/combobox/ComboboxPopover.js +32 -0
  52. package/_internal/components/combobox/ComboboxProvider.d.ts +27 -0
  53. package/_internal/components/combobox/ComboboxProvider.js +41 -0
  54. package/_internal/components/combobox/ComboboxSection.d.ts +15 -0
  55. package/_internal/components/combobox/ComboboxSection.js +47 -0
  56. package/_internal/components/combobox/ComboboxState.d.ts +14 -0
  57. package/_internal/components/combobox/ComboboxState.js +70 -0
  58. package/_internal/components/combobox/context/ComboboxContext.js +15 -0
  59. package/_internal/components/combobox/context/ComboboxListContext.js +12 -0
  60. package/_internal/components/combobox/context/ComboboxOptionContext.js +16 -0
  61. package/_internal/components/combobox/context/useComboboxEvent.d.ts +10 -0
  62. package/_internal/components/combobox/context/useComboboxEvent.js +17 -0
  63. package/_internal/components/combobox/context/useComboboxOpen.js +13 -0
  64. package/_internal/components/combobox/index.d.ts +73 -0
  65. package/_internal/components/combobox/index.js +47 -0
  66. package/_internal/components/combobox/wrapRenderOption.js +38 -0
  67. package/_internal/components/comment-block/CommentBlock.d.ts +68 -0
  68. package/_internal/components/comment-block/CommentBlock.js +109 -0
  69. package/_internal/components/comment-block/index.d.ts +1 -0
  70. package/_internal/components/date-picker/DatePicker.d.ts +14 -0
  71. package/_internal/components/date-picker/DatePicker.js +45 -0
  72. package/_internal/components/date-picker/DatePickerControlled.d.ts +26 -0
  73. package/_internal/components/date-picker/DatePickerControlled.js +177 -0
  74. package/_internal/components/date-picker/DatePickerField.d.ts +38 -0
  75. package/_internal/components/date-picker/DatePickerField.js +83 -0
  76. package/_internal/components/date-picker/constants.js +11 -0
  77. package/_internal/components/date-picker/index.d.ts +4 -0
  78. package/_internal/components/date-picker/types.d.ts +30 -0
  79. package/_internal/components/dialog/Dialog.d.ts +47 -0
  80. package/_internal/components/dialog/Dialog.js +110 -0
  81. package/_internal/components/dialog/index.d.ts +2 -0
  82. package/_internal/components/divider/Divider.d.ts +20 -0
  83. package/_internal/components/divider/Divider.js +30 -0
  84. package/_internal/components/divider/index.d.ts +1 -0
  85. package/_internal/components/drag-handle/DragHandle.d.ts +20 -0
  86. package/_internal/components/drag-handle/DragHandle.js +29 -0
  87. package/_internal/components/drag-handle/index.d.ts +1 -0
  88. package/_internal/components/dropdown/Dropdown.d.ts +89 -0
  89. package/_internal/components/dropdown/Dropdown.js +89 -0
  90. package/_internal/components/dropdown/index.d.ts +1 -0
  91. package/_internal/components/expansion-panel/ExpansionPanel.d.ts +31 -0
  92. package/_internal/components/expansion-panel/ExpansionPanel.js +80 -0
  93. package/_internal/components/expansion-panel/index.d.ts +1 -0
  94. package/_internal/components/flag/Flag.d.ts +20 -0
  95. package/_internal/components/flag/Flag.js +28 -0
  96. package/_internal/components/flag/index.d.ts +1 -0
  97. package/_internal/components/flex-box/FlexBox.d.ts +25 -0
  98. package/_internal/components/flex-box/FlexBox.js +24 -0
  99. package/_internal/components/flex-box/index.d.ts +2 -0
  100. package/_internal/components/generic-block/GenericBlock.d.ts +51 -0
  101. package/_internal/components/generic-block/GenericBlock.js +90 -0
  102. package/_internal/components/generic-block/index.d.ts +2 -0
  103. package/_internal/components/grid/Grid.d.ts +33 -0
  104. package/_internal/components/grid/Grid.js +48 -0
  105. package/_internal/components/grid/GridItem.d.ts +29 -0
  106. package/_internal/components/grid/GridItem.js +37 -0
  107. package/_internal/components/grid/index.d.ts +2 -0
  108. package/_internal/components/grid-column/GridColumn.d.ts +24 -0
  109. package/_internal/components/grid-column/GridColumn.js +27 -0
  110. package/_internal/components/grid-column/index.d.ts +2 -0
  111. package/_internal/components/heading/Heading.d.ts +14 -0
  112. package/_internal/components/heading/Heading.js +25 -0
  113. package/_internal/components/heading/HeadingLevelProvider.d.ts +15 -0
  114. package/_internal/components/heading/HeadingLevelProvider.js +22 -0
  115. package/_internal/components/heading/context.js +6 -0
  116. package/_internal/components/heading/index.d.ts +3 -0
  117. package/_internal/components/heading/useHeadingLevel.d.ts +7 -0
  118. package/_internal/components/heading/useHeadingLevel.js +12 -0
  119. package/_internal/components/icon/Icon.d.ts +17 -0
  120. package/_internal/components/icon/Icon.js +24 -0
  121. package/_internal/components/icon/index.d.ts +2 -0
  122. package/_internal/components/image-block/ImageBlock.d.ts +29 -0
  123. package/_internal/components/image-block/ImageBlock.js +30 -0
  124. package/_internal/components/image-block/ImageCaption.d.ts +13 -0
  125. package/_internal/components/image-block/ImageCaption.js +18 -0
  126. package/_internal/components/image-block/index.d.ts +2 -0
  127. package/_internal/components/image-lightbox/ImageLightbox.d.ts +17 -0
  128. package/_internal/components/image-lightbox/ImageLightbox.js +66 -0
  129. package/_internal/components/image-lightbox/constants.js +11 -0
  130. package/_internal/components/image-lightbox/index.d.ts +2 -0
  131. package/_internal/components/image-lightbox/internal/ImageSlide.js +81 -0
  132. package/_internal/components/image-lightbox/internal/ImageSlideshow.js +112 -0
  133. package/_internal/components/image-lightbox/internal/useAnimateScroll.js +40 -0
  134. package/_internal/components/image-lightbox/internal/usePointerZoom.js +98 -0
  135. package/_internal/components/image-lightbox/types.d.ts +33 -0
  136. package/_internal/components/image-lightbox/useImageLightbox.d.ts +29 -0
  137. package/_internal/components/image-lightbox/useImageLightbox.js +102 -0
  138. package/_internal/components/inline-list/InlineList.d.ts +25 -0
  139. package/_internal/components/inline-list/InlineList.js +24 -0
  140. package/_internal/components/inline-list/index.d.ts +1 -0
  141. package/_internal/components/input-helper/InputHelper.d.ts +17 -0
  142. package/_internal/components/input-helper/InputHelper.js +25 -0
  143. package/_internal/components/input-helper/index.d.ts +1 -0
  144. package/_internal/components/input-label/InputLabel.d.ts +17 -0
  145. package/_internal/components/input-label/InputLabel.js +25 -0
  146. package/_internal/components/input-label/index.d.ts +1 -0
  147. package/_internal/components/lightbox/Lightbox.d.ts +33 -0
  148. package/_internal/components/lightbox/Lightbox.js +69 -0
  149. package/_internal/components/lightbox/index.d.ts +1 -0
  150. package/_internal/components/link/Link.d.ts +35 -0
  151. package/_internal/components/link/Link.js +45 -0
  152. package/_internal/components/link/index.d.ts +1 -0
  153. package/_internal/components/link-preview/LinkPreview.d.ts +25 -0
  154. package/_internal/components/link-preview/LinkPreview.js +31 -0
  155. package/_internal/components/link-preview/index.d.ts +1 -0
  156. package/_internal/components/list/List.d.ts +27 -0
  157. package/_internal/components/list/List.js +28 -0
  158. package/_internal/components/list/ListDivider.d.ts +21 -0
  159. package/_internal/components/list/ListDivider.js +22 -0
  160. package/_internal/components/list/ListItem.d.ts +47 -0
  161. package/_internal/components/list/ListItem.js +39 -0
  162. package/_internal/components/list/ListItemAction.js +30 -0
  163. package/_internal/components/list/ListSection.d.ts +24 -0
  164. package/_internal/components/list/ListSection.js +26 -0
  165. package/_internal/components/list/ListSubheader.d.ts +23 -0
  166. package/_internal/components/list/ListSubheader.js +33 -0
  167. package/_internal/components/list/index.d.ts +6 -0
  168. package/_internal/components/menu-button/MenuButton.d.ts +34 -0
  169. package/_internal/components/menu-button/MenuButton.js +48 -0
  170. package/_internal/components/menu-button/MenuItem.d.ts +46 -0
  171. package/_internal/components/menu-button/MenuItem.js +62 -0
  172. package/_internal/components/menu-button/MenuList.js +39 -0
  173. package/_internal/components/menu-button/MenuPopover.d.ts +13 -0
  174. package/_internal/components/menu-button/MenuPopover.js +31 -0
  175. package/_internal/components/menu-button/MenuProvider.js +45 -0
  176. package/_internal/components/menu-button/MenuTrigger.js +40 -0
  177. package/_internal/components/menu-button/context/MenuContext.js +11 -0
  178. package/_internal/components/menu-button/context/useMenuEvent.js +21 -0
  179. package/_internal/components/menu-button/context/useMenuOpen.js +15 -0
  180. package/_internal/components/menu-button/index.d.ts +3 -0
  181. package/_internal/components/message/Message.d.ts +17 -0
  182. package/_internal/components/message/Message.js +20 -0
  183. package/_internal/components/message/index.d.ts +1 -0
  184. package/_internal/components/mosaic/Mosaic.d.ts +25 -0
  185. package/_internal/components/mosaic/Mosaic.js +29 -0
  186. package/_internal/components/mosaic/index.d.ts +1 -0
  187. package/_internal/components/navigation/Navigation.d.ts +18 -0
  188. package/_internal/components/navigation/Navigation.js +51 -0
  189. package/_internal/components/navigation/NavigationItem.d.ts +23 -0
  190. package/_internal/components/navigation/NavigationItem.js +52 -0
  191. package/_internal/components/navigation/NavigationSection.d.ts +15 -0
  192. package/_internal/components/navigation/NavigationSection.js +100 -0
  193. package/_internal/components/navigation/constants.js +11 -0
  194. package/_internal/components/navigation/context.js +6 -0
  195. package/_internal/components/navigation/index.d.ts +1 -0
  196. package/_internal/components/notification/Notification.d.ts +36 -0
  197. package/_internal/components/notification/Notification.js +97 -0
  198. package/_internal/components/notification/constants.js +28 -0
  199. package/_internal/components/notification/index.d.ts +1 -0
  200. package/_internal/components/popover/Popover.d.ts +43 -0
  201. package/_internal/components/popover/Popover.js +86 -0
  202. package/_internal/components/popover/index.d.ts +3 -0
  203. package/_internal/components/popover/usePopoverStyle.js +82 -0
  204. package/_internal/components/popover-dialog/PopoverDialog.d.ts +22 -0
  205. package/_internal/components/popover-dialog/PopoverDialog.js +42 -0
  206. package/_internal/components/popover-dialog/index.d.ts +1 -0
  207. package/_internal/components/post-block/PostBlock.d.ts +44 -0
  208. package/_internal/components/post-block/PostBlock.js +92 -0
  209. package/_internal/components/post-block/index.d.ts +1 -0
  210. package/_internal/components/progress/Progress.d.ts +30 -0
  211. package/_internal/components/progress/Progress.js +54 -0
  212. package/_internal/components/progress/ProgressCircular.d.ts +20 -0
  213. package/_internal/components/progress/ProgressCircular.js +31 -0
  214. package/_internal/components/progress/ProgressLinear.d.ts +20 -0
  215. package/_internal/components/progress/ProgressLinear.js +26 -0
  216. package/_internal/components/progress/index.d.ts +4 -0
  217. package/_internal/components/progress-tracker/ProgressTracker.d.ts +26 -0
  218. package/_internal/components/progress-tracker/ProgressTracker.js +75 -0
  219. package/_internal/components/progress-tracker/ProgressTrackerProvider.d.ts +29 -0
  220. package/_internal/components/progress-tracker/ProgressTrackerProvider.js +45 -0
  221. package/_internal/components/progress-tracker/ProgressTrackerStep.d.ts +37 -0
  222. package/_internal/components/progress-tracker/ProgressTrackerStep.js +107 -0
  223. package/_internal/components/progress-tracker/ProgressTrackerStepPanel.d.ts +27 -0
  224. package/_internal/components/progress-tracker/ProgressTrackerStepPanel.js +47 -0
  225. package/_internal/components/progress-tracker/index.d.ts +4 -0
  226. package/_internal/components/radio-button/RadioButton.d.ts +23 -0
  227. package/_internal/components/radio-button/RadioButton.js +50 -0
  228. package/_internal/components/radio-button/RadioGroup.d.ts +20 -0
  229. package/_internal/components/radio-button/RadioGroup.js +23 -0
  230. package/_internal/components/radio-button/index.d.ts +2 -0
  231. package/_internal/components/select/Select.d.ts +20 -0
  232. package/_internal/components/select/Select.js +130 -0
  233. package/_internal/components/select/SelectMultiple.d.ts +24 -0
  234. package/_internal/components/select/SelectMultiple.js +128 -0
  235. package/_internal/components/select/WithSelectContext.js +96 -0
  236. package/_internal/components/select/constants.d.ts +59 -0
  237. package/_internal/components/select/constants.js +10 -0
  238. package/_internal/components/select/index.d.ts +3 -0
  239. package/_internal/components/select-button/SelectButton.d.ts +93 -0
  240. package/_internal/components/select-button/SelectButton.js +73 -0
  241. package/_internal/components/select-button/index.d.ts +18 -0
  242. package/_internal/components/select-button/index.js +11 -0
  243. package/_internal/components/select-text-field/SelectTextField.d.ts +80 -0
  244. package/_internal/components/select-text-field/SelectTextField.js +167 -0
  245. package/_internal/components/select-text-field/index.d.ts +33 -0
  246. package/_internal/components/select-text-field/index.js +24 -0
  247. package/_internal/components/side-navigation/SideNavigation.d.ts +22 -0
  248. package/_internal/components/side-navigation/SideNavigation.js +39 -0
  249. package/_internal/components/side-navigation/SideNavigationItem.d.ts +44 -0
  250. package/_internal/components/side-navigation/SideNavigationItem.js +111 -0
  251. package/_internal/components/side-navigation/index.d.ts +2 -0
  252. package/_internal/components/skeleton/SkeletonCircle.d.ts +19 -0
  253. package/_internal/components/skeleton/SkeletonCircle.js +30 -0
  254. package/_internal/components/skeleton/SkeletonRectangle.d.ts +19 -0
  255. package/_internal/components/skeleton/SkeletonRectangle.js +33 -0
  256. package/_internal/components/skeleton/SkeletonTypography.d.ts +19 -0
  257. package/_internal/components/skeleton/SkeletonTypography.js +31 -0
  258. package/_internal/components/skeleton/index.d.ts +4 -0
  259. package/_internal/components/slider/Slider.d.ts +44 -0
  260. package/_internal/components/slider/Slider.js +232 -0
  261. package/_internal/components/slider/index.d.ts +2 -0
  262. package/_internal/components/slideshow/Slides.d.ts +49 -0
  263. package/_internal/components/slideshow/Slides.js +86 -0
  264. package/_internal/components/slideshow/Slideshow.d.ts +35 -0
  265. package/_internal/components/slideshow/Slideshow.js +104 -0
  266. package/_internal/components/slideshow/SlideshowControls.d.ts +65 -0
  267. package/_internal/components/slideshow/SlideshowControls.js +139 -0
  268. package/_internal/components/slideshow/SlideshowItem.d.ts +23 -0
  269. package/_internal/components/slideshow/SlideshowItem.js +32 -0
  270. package/_internal/components/slideshow/SlideshowItemGroup.js +44 -0
  271. package/_internal/components/slideshow/constants.d.ts +13 -0
  272. package/_internal/components/slideshow/constants.js +16 -0
  273. package/_internal/components/slideshow/index.d.ts +4 -0
  274. package/_internal/components/slideshow/usePaginationVisibleRange.js +41 -0
  275. package/_internal/components/slideshow/useSlideFocusManagement.js +64 -0
  276. package/_internal/components/slideshow/useSlideScroll.js +57 -0
  277. package/_internal/components/slideshow/useSwipeNavigate.js +21 -0
  278. package/_internal/components/switch/Switch.d.ts +24 -0
  279. package/_internal/components/switch/Switch.js +54 -0
  280. package/_internal/components/switch/index.d.ts +1 -0
  281. package/_internal/components/table/Table.d.ts +20 -0
  282. package/_internal/components/table/Table.js +28 -0
  283. package/_internal/components/table/TableBody.d.ts +20 -0
  284. package/_internal/components/table/TableBody.js +22 -0
  285. package/_internal/components/table/TableCell.d.ts +23 -0
  286. package/_internal/components/table/TableCell.js +23 -0
  287. package/_internal/components/table/TableHeader.d.ts +20 -0
  288. package/_internal/components/table/TableHeader.js +23 -0
  289. package/_internal/components/table/TableRow.d.ts +23 -0
  290. package/_internal/components/table/TableRow.js +28 -0
  291. package/_internal/components/table/index.d.ts +6 -0
  292. package/_internal/components/tabs/Tab.d.ts +39 -0
  293. package/_internal/components/tabs/Tab.js +39 -0
  294. package/_internal/components/tabs/TabList.d.ts +22 -0
  295. package/_internal/components/tabs/TabList.js +37 -0
  296. package/_internal/components/tabs/TabPanel.d.ts +25 -0
  297. package/_internal/components/tabs/TabPanel.js +30 -0
  298. package/_internal/components/tabs/TabProvider.d.ts +27 -0
  299. package/_internal/components/tabs/TabProvider.js +51 -0
  300. package/_internal/components/tabs/index.d.ts +5 -0
  301. package/_internal/components/tabs/state.js +55 -0
  302. package/_internal/components/text/Text.d.ts +17 -0
  303. package/_internal/components/text/Text.js +33 -0
  304. package/_internal/components/text/index.d.ts +1 -0
  305. package/_internal/components/text-field/RawInputText.d.ts +20 -0
  306. package/_internal/components/text-field/RawInputText.js +23 -0
  307. package/_internal/components/text-field/RawInputTextarea.d.ts +21 -0
  308. package/_internal/components/text-field/RawInputTextarea.js +34 -0
  309. package/_internal/components/text-field/TextField.d.ts +46 -0
  310. package/_internal/components/text-field/TextField.js +122 -0
  311. package/_internal/components/text-field/index.d.ts +3 -0
  312. package/_internal/components/text-field/useFitRowsToContent.js +27 -0
  313. package/_internal/components/thumbnail/Thumbnail.d.ts +31 -0
  314. package/_internal/components/thumbnail/Thumbnail.js +45 -0
  315. package/_internal/components/thumbnail/index.d.ts +3 -0
  316. package/_internal/components/thumbnail/types.d.ts +49 -0
  317. package/_internal/components/thumbnail/types.js +23 -0
  318. package/_internal/components/thumbnail/useFocusPointStyle.d.ts +15 -0
  319. package/_internal/components/thumbnail/useFocusPointStyle.js +53 -0
  320. package/_internal/components/thumbnail/useImageLoad.js +23 -0
  321. package/_internal/components/time-picker-field/TimePickerField.d.ts +38 -0
  322. package/_internal/components/time-picker-field/TimePickerField.js +103 -0
  323. package/_internal/components/time-picker-field/index.d.ts +2 -0
  324. package/_internal/components/toolbar/Toolbar.d.ts +28 -0
  325. package/_internal/components/toolbar/Toolbar.js +21 -0
  326. package/_internal/components/toolbar/index.d.ts +1 -0
  327. package/_internal/components/tooltip/Tooltip.d.ts +23 -0
  328. package/_internal/components/tooltip/Tooltip.js +69 -0
  329. package/_internal/components/tooltip/context.js +15 -0
  330. package/_internal/components/tooltip/index.d.ts +2 -0
  331. package/_internal/components/tooltip/useInjectTooltipRef.js +43 -0
  332. package/_internal/components/tooltip/useTooltipOpen.js +36 -0
  333. package/_internal/components/uploader/Uploader.d.ts +29 -0
  334. package/_internal/components/uploader/Uploader.js +71 -0
  335. package/_internal/components/uploader/index.d.ts +2 -0
  336. package/_internal/components/user-block/UserBlock.d.ts +33 -0
  337. package/_internal/components/user-block/UserBlock.js +88 -0
  338. package/_internal/components/user-block/index.d.ts +2 -0
  339. package/_internal/constants.js +2 -0
  340. package/_internal/hooks/useBooleanState.js +13 -0
  341. package/_internal/hooks/useCallbackOnEscape.js +30 -0
  342. package/_internal/hooks/useChipGroupNavigation.d.ts +12 -0
  343. package/_internal/hooks/useChipGroupNavigation.js +49 -0
  344. package/_internal/hooks/useClickAway.d.ts +16 -0
  345. package/_internal/hooks/useClickAway.js +20 -0
  346. package/_internal/hooks/useDisableBodyScroll.js +25 -0
  347. package/_internal/hooks/useEventCallback.js +21 -0
  348. package/_internal/hooks/useFocus.js +19 -0
  349. package/_internal/hooks/useFocusTrap.js +28 -0
  350. package/_internal/hooks/useFocusWithin.js +27 -0
  351. package/_internal/hooks/useId.js +16 -0
  352. package/_internal/hooks/useImageSize.js +19 -0
  353. package/_internal/hooks/useInfiniteScroll.js +36 -0
  354. package/_internal/hooks/useIntersectionObserver.js +24 -0
  355. package/_internal/hooks/useInterval.js +26 -0
  356. package/_internal/hooks/useIsomorphicLayoutEffect.js +9 -0
  357. package/_internal/hooks/useKeyboardListNavigation.d.ts +17 -0
  358. package/_internal/hooks/useKeyboardListNavigation.js +136 -0
  359. package/_internal/hooks/useListenFocus.js +23 -0
  360. package/_internal/hooks/useOverflowTooltipLabel.js +27 -0
  361. package/_internal/hooks/usePreviousValue.js +15 -0
  362. package/_internal/hooks/useRestoreFocusOnClose.js +47 -0
  363. package/_internal/hooks/useRovingTabIndexContainer.js +31 -0
  364. package/_internal/hooks/useSizeOnWindowResize.js +26 -0
  365. package/_internal/hooks/useSlideshowControls.d.ts +63 -0
  366. package/_internal/hooks/useSlideshowControls.js +105 -0
  367. package/_internal/hooks/useStopPropagation.js +18 -0
  368. package/_internal/hooks/useTransitionVisibility.js +41 -0
  369. package/_internal/node_modules/@floating-ui/core/dist/floating-ui.core.js +536 -0
  370. package/_internal/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +528 -0
  371. package/_internal/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +209 -0
  372. package/_internal/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +144 -0
  373. package/_internal/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +135 -0
  374. package/_internal/node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js +114 -0
  375. package/_internal/node_modules/classnames/index.js +45 -0
  376. package/_internal/packages/lumx-core/src/js/components/AlertDialog/index.d.ts +15 -0
  377. package/_internal/packages/lumx-core/src/js/components/AlertDialog/index.js +116 -0
  378. package/_internal/packages/lumx-core/src/js/components/Avatar/index.d.ts +27 -0
  379. package/_internal/packages/lumx-core/src/js/components/Avatar/index.js +49 -0
  380. package/_internal/packages/lumx-core/src/js/components/Badge/BadgeWrapper.d.ts +14 -0
  381. package/_internal/packages/lumx-core/src/js/components/Badge/BadgeWrapper.js +21 -0
  382. package/_internal/packages/lumx-core/src/js/components/Badge/index.d.ts +18 -0
  383. package/_internal/packages/lumx-core/src/js/components/Badge/index.js +38 -0
  384. package/_internal/packages/lumx-core/src/js/components/Button/Button.d.ts +41 -0
  385. package/_internal/packages/lumx-core/src/js/components/Button/Button.js +46 -0
  386. package/_internal/packages/lumx-core/src/js/components/Button/ButtonGroup.d.ts +17 -0
  387. package/_internal/packages/lumx-core/src/js/components/Button/ButtonGroup.js +34 -0
  388. package/_internal/packages/lumx-core/src/js/components/Button/ButtonRoot.d.ts +46 -0
  389. package/_internal/packages/lumx-core/src/js/components/Button/ButtonRoot.js +75 -0
  390. package/_internal/packages/lumx-core/src/js/components/Button/IconButton.d.ts +24 -0
  391. package/_internal/packages/lumx-core/src/js/components/Button/IconButton.js +46 -0
  392. package/_internal/packages/lumx-core/src/js/components/Checkbox/index.d.ts +35 -0
  393. package/_internal/packages/lumx-core/src/js/components/Checkbox/index.js +83 -0
  394. package/_internal/packages/lumx-core/src/js/components/Chip/ChipGroup.d.ts +21 -0
  395. package/_internal/packages/lumx-core/src/js/components/Chip/ChipGroup.js +32 -0
  396. package/_internal/packages/lumx-core/src/js/components/Chip/SelectionChipGroup.d.ts +29 -0
  397. package/_internal/packages/lumx-core/src/js/components/Chip/SelectionChipGroup.js +66 -0
  398. package/_internal/packages/lumx-core/src/js/components/Chip/index.d.ts +63 -0
  399. package/_internal/packages/lumx-core/src/js/components/Chip/index.js +78 -0
  400. package/_internal/packages/lumx-core/src/js/components/Chip/setupSelectionChipGroupEvents.js +97 -0
  401. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxButton.d.ts +34 -0
  402. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxButton.js +51 -0
  403. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxInput.d.ts +34 -0
  404. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxInput.js +56 -0
  405. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxList.d.ts +36 -0
  406. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxList.js +34 -0
  407. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOption.d.ts +53 -0
  408. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOption.js +73 -0
  409. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionAction.js +33 -0
  410. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionMoreInfo.d.ts +29 -0
  411. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionMoreInfo.js +53 -0
  412. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionSkeleton.d.ts +32 -0
  413. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionSkeleton.js +44 -0
  414. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxPopover.js +47 -0
  415. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxSection.d.ts +36 -0
  416. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxSection.js +36 -0
  417. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxState.d.ts +64 -0
  418. package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxState.js +86 -0
  419. package/_internal/packages/lumx-core/src/js/components/Combobox/constants.js +4 -0
  420. package/_internal/packages/lumx-core/src/js/components/Combobox/setupCombobox.js +350 -0
  421. package/_internal/packages/lumx-core/src/js/components/Combobox/setupComboboxButton.js +84 -0
  422. package/_internal/packages/lumx-core/src/js/components/Combobox/setupComboboxInput.js +95 -0
  423. package/_internal/packages/lumx-core/src/js/components/Combobox/setupListbox.js +84 -0
  424. package/_internal/packages/lumx-core/src/js/components/Combobox/subscribeComboboxState.js +43 -0
  425. package/_internal/packages/lumx-core/src/js/components/Combobox/types.d.ts +59 -0
  426. package/_internal/packages/lumx-core/src/js/components/Combobox/utils.js +63 -0
  427. package/_internal/packages/lumx-core/src/js/components/Dialog/index.d.ts +20 -0
  428. package/_internal/packages/lumx-core/src/js/components/Dialog/index.js +93 -0
  429. package/_internal/packages/lumx-core/src/js/components/Divider/index.d.ts +13 -0
  430. package/_internal/packages/lumx-core/src/js/components/Divider/index.js +29 -0
  431. package/_internal/packages/lumx-core/src/js/components/DragHandle/index.d.ts +13 -0
  432. package/_internal/packages/lumx-core/src/js/components/DragHandle/index.js +37 -0
  433. package/_internal/packages/lumx-core/src/js/components/ExpansionPanel/index.d.ts +51 -0
  434. package/_internal/packages/lumx-core/src/js/components/ExpansionPanel/index.js +92 -0
  435. package/_internal/packages/lumx-core/src/js/components/Flag/index.d.ts +24 -0
  436. package/_internal/packages/lumx-core/src/js/components/Flag/index.js +41 -0
  437. package/_internal/packages/lumx-core/src/js/components/FlexBox/index.d.ts +34 -0
  438. package/_internal/packages/lumx-core/src/js/components/FlexBox/index.js +39 -0
  439. package/_internal/packages/lumx-core/src/js/components/FlexBox/types.d.ts +9 -0
  440. package/_internal/packages/lumx-core/src/js/components/GenericBlock/constants.d.ts +22 -0
  441. package/_internal/packages/lumx-core/src/js/components/GenericBlock/constants.js +15 -0
  442. package/_internal/packages/lumx-core/src/js/components/GenericBlock/index.d.ts +66 -0
  443. package/_internal/packages/lumx-core/src/js/components/GenericBlock/index.js +63 -0
  444. package/_internal/packages/lumx-core/src/js/components/GridColumn/GridColumn.d.ts +27 -0
  445. package/_internal/packages/lumx-core/src/js/components/GridColumn/GridColumn.js +44 -0
  446. package/_internal/packages/lumx-core/src/js/components/GridColumn/index.d.ts +1 -0
  447. package/_internal/packages/lumx-core/src/js/components/Heading/constants.js +19 -0
  448. package/_internal/packages/lumx-core/src/js/components/Heading/index.d.ts +14 -0
  449. package/_internal/packages/lumx-core/src/js/components/Heading/index.js +34 -0
  450. package/_internal/packages/lumx-core/src/js/components/Heading/utils.js +14 -0
  451. package/_internal/packages/lumx-core/src/js/components/Icon/constants.d.ts +4 -0
  452. package/_internal/packages/lumx-core/src/js/components/Icon/index.d.ts +34 -0
  453. package/_internal/packages/lumx-core/src/js/components/Icon/index.js +66 -0
  454. package/_internal/packages/lumx-core/src/js/components/ImageBlock/ImageCaption.d.ts +19 -0
  455. package/_internal/packages/lumx-core/src/js/components/ImageBlock/ImageCaption.js +61 -0
  456. package/_internal/packages/lumx-core/src/js/components/ImageBlock/index.d.ts +52 -0
  457. package/_internal/packages/lumx-core/src/js/components/ImageBlock/index.js +80 -0
  458. package/_internal/packages/lumx-core/src/js/components/InlineList/index.d.ts +34 -0
  459. package/_internal/packages/lumx-core/src/js/components/InlineList/index.js +48 -0
  460. package/_internal/packages/lumx-core/src/js/components/InputHelper/constants.js +9 -0
  461. package/_internal/packages/lumx-core/src/js/components/InputHelper/index.d.ts +21 -0
  462. package/_internal/packages/lumx-core/src/js/components/InputHelper/index.js +34 -0
  463. package/_internal/packages/lumx-core/src/js/components/InputLabel/index.d.ts +24 -0
  464. package/_internal/packages/lumx-core/src/js/components/InputLabel/index.js +31 -0
  465. package/_internal/packages/lumx-core/src/js/components/Lightbox/index.d.ts +14 -0
  466. package/_internal/packages/lumx-core/src/js/components/Lightbox/index.js +70 -0
  467. package/_internal/packages/lumx-core/src/js/components/Link/index.d.ts +34 -0
  468. package/_internal/packages/lumx-core/src/js/components/Link/index.js +40 -0
  469. package/_internal/packages/lumx-core/src/js/components/LinkPreview/index.d.ts +36 -0
  470. package/_internal/packages/lumx-core/src/js/components/LinkPreview/index.js +94 -0
  471. package/_internal/packages/lumx-core/src/js/components/List/ListDivider.d.ts +12 -0
  472. package/_internal/packages/lumx-core/src/js/components/List/ListDivider.js +36 -0
  473. package/_internal/packages/lumx-core/src/js/components/List/ListItem.d.ts +41 -0
  474. package/_internal/packages/lumx-core/src/js/components/List/ListItem.js +66 -0
  475. package/_internal/packages/lumx-core/src/js/components/List/ListItemAction.d.ts +10 -0
  476. package/_internal/packages/lumx-core/src/js/components/List/ListItemAction.js +36 -0
  477. package/_internal/packages/lumx-core/src/js/components/List/ListSection.d.ts +27 -0
  478. package/_internal/packages/lumx-core/src/js/components/List/ListSection.js +51 -0
  479. package/_internal/packages/lumx-core/src/js/components/List/index.d.ts +20 -0
  480. package/_internal/packages/lumx-core/src/js/components/List/index.js +37 -0
  481. package/_internal/packages/lumx-core/src/js/components/Menu/MenuButton.d.ts +28 -0
  482. package/_internal/packages/lumx-core/src/js/components/Menu/MenuButton.js +29 -0
  483. package/_internal/packages/lumx-core/src/js/components/Menu/MenuItem.d.ts +30 -0
  484. package/_internal/packages/lumx-core/src/js/components/Menu/MenuItem.js +34 -0
  485. package/_internal/packages/lumx-core/src/js/components/Menu/MenuList.js +20 -0
  486. package/_internal/packages/lumx-core/src/js/components/Menu/MenuPopover.d.ts +12 -0
  487. package/_internal/packages/lumx-core/src/js/components/Menu/MenuPopover.js +32 -0
  488. package/_internal/packages/lumx-core/src/js/components/Menu/MenuTrigger.js +20 -0
  489. package/_internal/packages/lumx-core/src/js/components/Menu/setupMenu.js +256 -0
  490. package/_internal/packages/lumx-core/src/js/components/Menu/utils.js +16 -0
  491. package/_internal/packages/lumx-core/src/js/components/Message/index.d.ts +31 -0
  492. package/_internal/packages/lumx-core/src/js/components/Message/index.js +85 -0
  493. package/_internal/packages/lumx-core/src/js/components/Mosaic/index.d.ts +18 -0
  494. package/_internal/packages/lumx-core/src/js/components/Mosaic/index.js +70 -0
  495. package/_internal/packages/lumx-core/src/js/components/Popover/constants.d.ts +39 -0
  496. package/_internal/packages/lumx-core/src/js/components/Popover/constants.js +37 -0
  497. package/_internal/packages/lumx-core/src/js/components/Popover/index.d.ts +65 -0
  498. package/_internal/packages/lumx-core/src/js/components/Popover/index.js +74 -0
  499. package/_internal/packages/lumx-core/src/js/components/Popover/types.d.ts +39 -0
  500. package/_internal/packages/lumx-core/src/js/components/Popover/utils/buildPopoverMiddleware.js +53 -0
  501. package/_internal/packages/lumx-core/src/js/components/Popover/utils/computeArrowStyles.js +13 -0
  502. package/_internal/packages/lumx-core/src/js/components/Popover/utils/getFloatingPlacement.js +10 -0
  503. package/_internal/packages/lumx-core/src/js/components/Popover/utils/parseAutoPlacement.js +21 -0
  504. package/_internal/packages/lumx-core/src/js/components/Popover/utils/parseFitWidth.js +12 -0
  505. package/_internal/packages/lumx-core/src/js/components/PopoverDialog/index.d.ts +13 -0
  506. package/_internal/packages/lumx-core/src/js/components/PopoverDialog/index.js +15 -0
  507. package/_internal/packages/lumx-core/src/js/components/ProgressCircular/index.d.ts +32 -0
  508. package/_internal/packages/lumx-core/src/js/components/ProgressCircular/index.js +57 -0
  509. package/_internal/packages/lumx-core/src/js/components/ProgressLinear/index.d.ts +13 -0
  510. package/_internal/packages/lumx-core/src/js/components/ProgressLinear/index.js +34 -0
  511. package/_internal/packages/lumx-core/src/js/components/RadioButton/index.d.ts +35 -0
  512. package/_internal/packages/lumx-core/src/js/components/RadioButton/index.js +71 -0
  513. package/_internal/packages/lumx-core/src/js/components/RadioGroup/index.d.ts +15 -0
  514. package/_internal/packages/lumx-core/src/js/components/RadioGroup/index.js +35 -0
  515. package/_internal/packages/lumx-core/src/js/components/RawClickable/index.d.ts +17 -0
  516. package/_internal/packages/lumx-core/src/js/components/RawClickable/index.js +34 -0
  517. package/_internal/packages/lumx-core/src/js/components/SelectButton/index.d.ts +58 -0
  518. package/_internal/packages/lumx-core/src/js/components/SelectButton/index.js +85 -0
  519. package/_internal/packages/lumx-core/src/js/components/SelectTextField/index.js +78 -0
  520. package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonCircle.d.ts +18 -0
  521. package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonCircle.js +33 -0
  522. package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonRectangle.d.ts +34 -0
  523. package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonRectangle.js +49 -0
  524. package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonTypography.d.ts +24 -0
  525. package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonTypography.js +38 -0
  526. package/_internal/packages/lumx-core/src/js/components/Skeleton/index.d.ts +3 -0
  527. package/_internal/packages/lumx-core/src/js/components/Switch/index.d.ts +37 -0
  528. package/_internal/packages/lumx-core/src/js/components/Switch/index.js +78 -0
  529. package/_internal/packages/lumx-core/src/js/components/Table/TableBody.d.ts +15 -0
  530. package/_internal/packages/lumx-core/src/js/components/Table/TableBody.js +29 -0
  531. package/_internal/packages/lumx-core/src/js/components/Table/TableCell.d.ts +42 -0
  532. package/_internal/packages/lumx-core/src/js/components/Table/TableCell.js +101 -0
  533. package/_internal/packages/lumx-core/src/js/components/Table/TableHeader.d.ts +15 -0
  534. package/_internal/packages/lumx-core/src/js/components/Table/TableHeader.js +33 -0
  535. package/_internal/packages/lumx-core/src/js/components/Table/TableRow.d.ts +22 -0
  536. package/_internal/packages/lumx-core/src/js/components/Table/TableRow.js +42 -0
  537. package/_internal/packages/lumx-core/src/js/components/Table/constants.d.ts +1 -0
  538. package/_internal/packages/lumx-core/src/js/components/Table/constants.js +11 -0
  539. package/_internal/packages/lumx-core/src/js/components/Table/index.d.ts +20 -0
  540. package/_internal/packages/lumx-core/src/js/components/Table/index.js +31 -0
  541. package/_internal/packages/lumx-core/src/js/components/Tabs/Tab.d.ts +54 -0
  542. package/_internal/packages/lumx-core/src/js/components/Tabs/Tab.js +69 -0
  543. package/_internal/packages/lumx-core/src/js/components/Tabs/TabList.d.ts +27 -0
  544. package/_internal/packages/lumx-core/src/js/components/Tabs/TabList.js +52 -0
  545. package/_internal/packages/lumx-core/src/js/components/Tabs/TabPanel.d.ts +26 -0
  546. package/_internal/packages/lumx-core/src/js/components/Tabs/TabPanel.js +41 -0
  547. package/_internal/packages/lumx-core/src/js/components/Tabs/constants.js +7 -0
  548. package/_internal/packages/lumx-core/src/js/components/Tabs/state.js +53 -0
  549. package/_internal/packages/lumx-core/src/js/components/Text/index.d.ts +55 -0
  550. package/_internal/packages/lumx-core/src/js/components/Text/index.js +50 -0
  551. package/_internal/packages/lumx-core/src/js/components/TextField/RawInputText.d.ts +21 -0
  552. package/_internal/packages/lumx-core/src/js/components/TextField/RawInputText.js +40 -0
  553. package/_internal/packages/lumx-core/src/js/components/TextField/RawInputTextarea.d.ts +19 -0
  554. package/_internal/packages/lumx-core/src/js/components/TextField/RawInputTextarea.js +40 -0
  555. package/_internal/packages/lumx-core/src/js/components/TextField/TextField.d.ts +70 -0
  556. package/_internal/packages/lumx-core/src/js/components/TextField/TextField.js +143 -0
  557. package/_internal/packages/lumx-core/src/js/components/TextField/constants.js +15 -0
  558. package/_internal/packages/lumx-core/src/js/components/Thumbnail/index.d.ts +60 -0
  559. package/_internal/packages/lumx-core/src/js/components/Thumbnail/index.js +114 -0
  560. package/_internal/packages/lumx-core/src/js/components/Thumbnail/types.d.ts +39 -0
  561. package/_internal/packages/lumx-core/src/js/components/Thumbnail/utils.d.ts +1 -0
  562. package/_internal/packages/lumx-core/src/js/components/Thumbnail/utils.js +76 -0
  563. package/_internal/packages/lumx-core/src/js/components/TimePickerField/index.d.ts +70 -0
  564. package/_internal/packages/lumx-core/src/js/components/TimePickerField/index.js +53 -0
  565. package/_internal/packages/lumx-core/src/js/components/Toolbar/index.d.ts +19 -0
  566. package/_internal/packages/lumx-core/src/js/components/Toolbar/index.js +51 -0
  567. package/_internal/packages/lumx-core/src/js/components/Tooltip/constants.d.ts +4 -0
  568. package/_internal/packages/lumx-core/src/js/components/Tooltip/constants.js +8 -0
  569. package/_internal/packages/lumx-core/src/js/components/Tooltip/index.d.ts +25 -0
  570. package/_internal/packages/lumx-core/src/js/components/Tooltip/index.js +55 -0
  571. package/_internal/packages/lumx-core/src/js/components/Tooltip/tooltipOpenManager.js +93 -0
  572. package/_internal/packages/lumx-core/src/js/components/Uploader/index.d.ts +59 -0
  573. package/_internal/packages/lumx-core/src/js/components/Uploader/index.js +79 -0
  574. package/_internal/packages/lumx-core/src/js/components/UserBlock/index.d.ts +124 -0
  575. package/_internal/packages/lumx-core/src/js/components/UserBlock/index.js +101 -0
  576. package/_internal/packages/lumx-core/src/js/constants/browser/index.js +7 -0
  577. package/_internal/packages/lumx-core/src/js/constants/components/index.js +19 -0
  578. package/_internal/packages/lumx-core/src/js/constants/enums/index.d.ts +184 -0
  579. package/_internal/packages/lumx-core/src/js/constants/enums/index.js +140 -0
  580. package/_internal/packages/lumx-core/src/js/constants/index.d.ts +1 -0
  581. package/_internal/packages/lumx-core/src/js/types/AriaAttributes.d.ts +32 -0
  582. package/_internal/packages/lumx-core/src/js/types/Booleanish.d.ts +4 -0
  583. package/_internal/packages/lumx-core/src/js/types/CommonRef.d.ts +4 -0
  584. package/_internal/packages/lumx-core/src/js/types/GenericProps.d.ts +14 -0
  585. package/_internal/packages/lumx-core/src/js/types/HasAriaDisabled.d.ts +9 -0
  586. package/_internal/packages/lumx-core/src/js/types/HasAriaLabelOrLabelledBy.d.ts +19 -0
  587. package/_internal/packages/lumx-core/src/js/types/HasChecked.d.ts +9 -0
  588. package/_internal/packages/lumx-core/src/js/types/HasClassName.d.ts +9 -0
  589. package/_internal/packages/lumx-core/src/js/types/HasCloseMode.d.ts +10 -0
  590. package/_internal/packages/lumx-core/src/js/types/HasDisabled.d.ts +9 -0
  591. package/_internal/packages/lumx-core/src/js/types/HasPolymorphicAs.d.ts +12 -0
  592. package/_internal/packages/lumx-core/src/js/types/HasRequiredLinkHref.d.ts +6 -0
  593. package/_internal/packages/lumx-core/src/js/types/HasTheme.d.ts +10 -0
  594. package/_internal/packages/lumx-core/src/js/types/HeadingElement.d.ts +5 -0
  595. package/_internal/packages/lumx-core/src/js/types/JSXElement.d.ts +13 -0
  596. package/_internal/packages/lumx-core/src/js/types/KebabCase.d.ts +5 -0
  597. package/_internal/packages/lumx-core/src/js/types/LumxClassName.d.ts +7 -0
  598. package/_internal/packages/lumx-core/src/js/types/Selector.d.ts +11 -0
  599. package/_internal/packages/lumx-core/src/js/types/TextElement.d.ts +7 -0
  600. package/_internal/packages/lumx-core/src/js/types/ValueOf.d.ts +5 -0
  601. package/_internal/packages/lumx-core/src/js/types/index.d.ts +18 -0
  602. package/_internal/packages/lumx-core/src/js/utils/ClickAway/index.js +37 -0
  603. package/_internal/packages/lumx-core/src/js/utils/InfiniteScroll/index.d.ts +9 -0
  604. package/_internal/packages/lumx-core/src/js/utils/InfiniteScroll/index.js +21 -0
  605. package/_internal/packages/lumx-core/src/js/utils/InfiniteScroll/setupInfiniteScrollObserver.js +18 -0
  606. package/_internal/packages/lumx-core/src/js/utils/Portal/index.d.ts +28 -0
  607. package/_internal/packages/lumx-core/src/js/utils/_internal/color/resolveColorWithVariants.js +9 -0
  608. package/_internal/packages/lumx-core/src/js/utils/browser/createSelectorTreeWalker.js +20 -0
  609. package/_internal/packages/lumx-core/src/js/utils/browser/css/combineSize.js +14 -0
  610. package/_internal/packages/lumx-core/src/js/utils/browser/css/resolveCssSize.js +8 -0
  611. package/_internal/packages/lumx-core/src/js/utils/browser/css/types.d.ts +7 -0
  612. package/_internal/packages/lumx-core/src/js/utils/browser/isFocusVisible.js +11 -0
  613. package/_internal/packages/lumx-core/src/js/utils/browser/isHoverNotSupported.js +5 -0
  614. package/_internal/packages/lumx-core/src/js/utils/browser/isPrintableKey.js +12 -0
  615. package/_internal/packages/lumx-core/src/js/utils/browser/lastDescendant.js +9 -0
  616. package/_internal/packages/lumx-core/src/js/utils/browser/querySelectorInclusive.js +18 -0
  617. package/_internal/packages/lumx-core/src/js/utils/browser/trackContainerFocus.js +28 -0
  618. package/_internal/packages/lumx-core/src/js/utils/classNames/action-area/index.js +22 -0
  619. package/_internal/packages/lumx-core/src/js/utils/classNames/bem/block.js +18 -0
  620. package/_internal/packages/lumx-core/src/js/utils/classNames/bem/element.js +7 -0
  621. package/_internal/packages/lumx-core/src/js/utils/classNames/bem/index.js +22 -0
  622. package/_internal/packages/lumx-core/src/js/utils/classNames/bem/modifier.js +19 -0
  623. package/_internal/packages/lumx-core/src/js/utils/classNames/color/index.js +38 -0
  624. package/_internal/packages/lumx-core/src/js/utils/classNames/index.js +12 -0
  625. package/_internal/packages/lumx-core/src/js/utils/classNames/spacing/index.js +31 -0
  626. package/_internal/packages/lumx-core/src/js/utils/classNames/typography/index.js +10 -0
  627. package/_internal/packages/lumx-core/src/js/utils/classNames/visually-hidden/index.js +9 -0
  628. package/_internal/packages/lumx-core/src/js/utils/disabledState/index.js +13 -0
  629. package/_internal/packages/lumx-core/src/js/utils/events/keyboard.js +15 -0
  630. package/_internal/packages/lumx-core/src/js/utils/focus/constants.js +13 -0
  631. package/_internal/packages/lumx-core/src/js/utils/focus/getFirstAndLastFocusable.js +20 -0
  632. package/_internal/packages/lumx-core/src/js/utils/focus/getFocusableElements.js +8 -0
  633. package/_internal/packages/lumx-core/src/js/utils/focus/setupFocusTrap.js +83 -0
  634. package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createActiveItemState.js +38 -0
  635. package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createGridFocusNavigation.js +182 -0
  636. package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createListFocusNavigation.js +151 -0
  637. package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createPendingNavigation.js +23 -0
  638. package/_internal/packages/lumx-core/src/js/utils/focusNavigation/setupRovingTabIndex.js +167 -0
  639. package/_internal/packages/lumx-core/src/js/utils/function/listenerTower.js +25 -0
  640. package/_internal/packages/lumx-core/src/js/utils/iterable/first.js +8 -0
  641. package/_internal/packages/lumx-core/src/js/utils/locale/getCurrentLocale.js +10 -0
  642. package/_internal/packages/lumx-core/src/js/utils/select/findOptionById.js +19 -0
  643. package/_internal/packages/lumx-core/src/js/utils/select/getOptionDisplayName.js +19 -0
  644. package/_internal/packages/lumx-core/src/js/utils/select/renderSelectOptions.js +51 -0
  645. package/_internal/packages/lumx-core/src/js/utils/select/toggleSelection.js +39 -0
  646. package/_internal/packages/lumx-core/src/js/utils/select/types.d.ts +203 -0
  647. package/_internal/packages/lumx-core/src/js/utils/selectors/getWithSelector.js +9 -0
  648. package/_internal/packages/lumx-core/src/js/utils/selectors/groupBySelector.js +21 -0
  649. package/_internal/packages/lumx-core/src/js/utils/time/buildTimeList.d.ts +20 -0
  650. package/_internal/packages/lumx-core/src/js/utils/time/buildTimeList.js +36 -0
  651. package/_internal/packages/lumx-core/src/js/utils/time/formatTime.js +14 -0
  652. package/_internal/packages/lumx-core/src/js/utils/time/getDateAtTime.js +12 -0
  653. package/_internal/packages/lumx-core/src/js/utils/time/isDateOnTime.js +10 -0
  654. package/_internal/packages/lumx-core/src/js/utils/time/parseTimeInput.js +46 -0
  655. package/_internal/packages/lumx-core/src/js/utils/time/snapTimeToBounds.js +21 -0
  656. package/_internal/packages/lumx-core/src/js/utils/time/timeOfDayMinutes.js +9 -0
  657. package/_internal/packages/lumx-core/src/js/utils/typeahead/index.js +77 -0
  658. package/_internal/utils/A11YLiveMessage/index.d.ts +50 -0
  659. package/_internal/utils/A11YLiveMessage/index.js +28 -0
  660. package/_internal/utils/ClickAwayProvider/ClickAwayProvider.d.ts +23 -0
  661. package/_internal/utils/ClickAwayProvider/ClickAwayProvider.js +46 -0
  662. package/_internal/utils/ClickAwayProvider/index.d.ts +1 -0
  663. package/_internal/utils/InfiniteScroll/InfiniteScroll.d.ts +10 -0
  664. package/_internal/utils/InfiniteScroll/InfiniteScroll.js +18 -0
  665. package/_internal/utils/InfiniteScroll/index.d.ts +2 -0
  666. package/_internal/utils/Portal/Portal.d.ts +15 -0
  667. package/_internal/utils/Portal/Portal.js +23 -0
  668. package/_internal/utils/Portal/PortalProvider.d.ts +14 -0
  669. package/_internal/utils/Portal/PortalProvider.js +9 -0
  670. package/_internal/utils/Portal/index.d.ts +3 -0
  671. package/_internal/utils/browser/DOM/findImage.js +5 -0
  672. package/_internal/utils/browser/DOM/startViewTransition.js +47 -0
  673. package/_internal/utils/browser/isReducedMotion.js +8 -0
  674. package/_internal/utils/browser/isScrollSnapSupported.js +8 -0
  675. package/_internal/utils/browser/onScrollEnd.js +25 -0
  676. package/_internal/utils/date/addMonthResetDay.js +12 -0
  677. package/_internal/utils/date/formatDayNumber.js +8 -0
  678. package/_internal/utils/date/getFirstDayOfWeek.js +42 -0
  679. package/_internal/utils/date/getMonthCalendar.js +43 -0
  680. package/_internal/utils/date/getWeekDays.js +25 -0
  681. package/_internal/utils/date/getYearDisplayName.js +12 -0
  682. package/_internal/utils/date/isDateValid.js +7 -0
  683. package/_internal/utils/date/isSameDay.js +8 -0
  684. package/_internal/utils/disabled/DisabledStateContext.d.ts +21 -0
  685. package/_internal/utils/disabled/DisabledStateContext.js +22 -0
  686. package/_internal/utils/disabled/index.d.ts +1 -0
  687. package/_internal/utils/disabled/useDisableStateProps.d.ts +1 -0
  688. package/_internal/utils/disabled/useDisableStateProps.js +29 -0
  689. package/_internal/utils/locale/parseLocale.js +26 -0
  690. package/_internal/utils/moving-focus/components/MovingFocusProvider/context.d.ts +14 -0
  691. package/_internal/utils/moving-focus/components/MovingFocusProvider/context.js +10 -0
  692. package/_internal/utils/moving-focus/components/MovingFocusProvider/index.d.ts +21 -0
  693. package/_internal/utils/moving-focus/components/MovingFocusProvider/index.js +58 -0
  694. package/_internal/utils/moving-focus/constants.d.ts +19 -0
  695. package/_internal/utils/moving-focus/constants.js +25 -0
  696. package/_internal/utils/moving-focus/ducks/keyboard-navigation.js +453 -0
  697. package/_internal/utils/moving-focus/ducks/slice.js +50 -0
  698. package/_internal/utils/moving-focus/ducks/tab-stop.js +109 -0
  699. package/_internal/utils/moving-focus/hooks/useRovingTabIndex/index.d.ts +1 -0
  700. package/_internal/utils/moving-focus/hooks/useRovingTabIndex/useRovingTabIndex.d.ts +19 -0
  701. package/_internal/utils/moving-focus/hooks/useRovingTabIndex/useRovingTabIndex.js +81 -0
  702. package/_internal/utils/moving-focus/hooks/useVirtualFocus/index.d.ts +2 -0
  703. package/_internal/utils/moving-focus/hooks/useVirtualFocus/useVirtualFocus.d.ts +15 -0
  704. package/_internal/utils/moving-focus/hooks/useVirtualFocus/useVirtualFocus.js +83 -0
  705. package/_internal/utils/moving-focus/hooks/useVirtualFocus/useVirtualFocusParent.d.ts +10 -0
  706. package/_internal/utils/moving-focus/hooks/useVirtualFocus/useVirtualFocusParent.js +47 -0
  707. package/_internal/utils/moving-focus/index.d.ts +5 -0
  708. package/_internal/utils/moving-focus/types.d.ts +177 -0
  709. package/_internal/utils/moving-focus/utils/buildLoopAroundObject.js +22 -0
  710. package/_internal/utils/moving-focus/utils/createGridMap.js +17 -0
  711. package/_internal/utils/moving-focus/utils/getCell.js +94 -0
  712. package/_internal/utils/moving-focus/utils/getCellCoordinates.js +16 -0
  713. package/_internal/utils/moving-focus/utils/getPointerTypeFromEvent.js +11 -0
  714. package/_internal/utils/moving-focus/utils/shouldLoopListHorizontally.js +7 -0
  715. package/_internal/utils/moving-focus/utils/shouldLoopListVertically.js +7 -0
  716. package/_internal/utils/moving-focus/utils/tabStopIsEnabled.js +5 -0
  717. package/_internal/utils/number/clamp.d.ts +12 -0
  718. package/_internal/utils/number/clamp.js +16 -0
  719. package/_internal/utils/object/isEqual.js +14 -0
  720. package/_internal/utils/partitionMulti.js +24 -0
  721. package/_internal/utils/react/OnBeforeUnmount.js +17 -0
  722. package/_internal/utils/react/forwardRef.js +8 -0
  723. package/_internal/utils/react/forwardRefPolymorphic.js +6 -0
  724. package/_internal/utils/react/mergeRefs.js +22 -0
  725. package/_internal/utils/react/skipRender.js +19 -0
  726. package/_internal/utils/react/unref.js +8 -0
  727. package/_internal/utils/react/wrapChildrenIconWithSpaces.js +19 -0
  728. package/_internal/utils/theme/ThemeContext.d.ts +14 -0
  729. package/_internal/utils/theme/ThemeContext.js +11 -0
  730. package/_internal/utils/type/Comp.d.ts +15 -0
  731. package/_internal/utils/type/ComponentRef.d.ts +15 -0
  732. package/_internal/utils/type/HasPolymorphicAs.d.ts +9 -0
  733. package/_internal/utils/type/MaybeElementOrRef.d.ts +9 -0
  734. package/_internal/utils/type/ReactToJSX.d.ts +13 -0
  735. package/_internal/utils/type/index.d.ts +15 -0
  736. package/_internal/utils/type/isComponent.d.ts +13 -0
  737. package/_internal/utils/type/isComponent.js +27 -0
  738. package/_internal/utils/type/isComponentType.d.ts +9 -0
  739. package/_internal/utils/type/isComponentType.js +8 -0
  740. package/index.d.ts +150 -5788
  741. package/index.js +247 -22493
  742. package/package.json +8 -21
  743. package/utils/index.d.ts +14 -413
  744. package/utils/index.js +12 -1440
  745. package/_internal/BvaFEHZn.js +0 -262
  746. package/_internal/BvaFEHZn.js.map +0 -1
  747. package/index.js.map +0 -1
  748. package/utils/index.js.map +0 -1
@@ -0,0 +1,182 @@
1
+ import { createSelectorTreeWalker } from "../browser/createSelectorTreeWalker.js";
2
+ import { createPendingNavigation } from "./createPendingNavigation.js";
3
+ import { createActiveItemState } from "./createActiveItemState.js";
4
+ import { lastDescendant } from "../browser/lastDescendant.js";
5
+ import { first } from "../iterable/first.js";
6
+ //#region ../lumx-core/src/js/utils/focusNavigation/createGridFocusNavigation.ts
7
+ /**
8
+ * Create a focus navigation controller for a 2D grid.
9
+ *
10
+ * Resolves rows and cells by querying the DOM and commits focus by updating the
11
+ * active-item state (which fires {@link FocusNavigationCallbacks}).
12
+ *
13
+ * Supports Up/Down between rows (with column memory) and Left/Right between cells
14
+ * (with wrapping across rows).
15
+ *
16
+ * @param options Grid navigation options (container, rowSelector, cellSelector, wrap).
17
+ * @param callbacks Callbacks for focus state changes.
18
+ * @param signal AbortSignal for cleanup.
19
+ * @returns FocusNavigationController instance.
20
+ */
21
+ function createGridFocusNavigation(options, callbacks, signal) {
22
+ const { container, rowSelector, cellSelector, wrap = false } = options;
23
+ const state = createActiveItemState(callbacks, signal);
24
+ const isNavigableRow = (row) => row.querySelector(cellSelector) !== null;
25
+ const getFirstCell = (row) => row.querySelector(cellSelector);
26
+ const getRowCells = (row) => Array.from(row.querySelectorAll(cellSelector));
27
+ /** Lazily walk navigable rows from `start` in a `direction`, projecting each row through `dive`. */
28
+ function* findRows(start = "first", direction = "next", dive) {
29
+ const walker = createSelectorTreeWalker(container, rowSelector);
30
+ if (start instanceof HTMLElement) walker.currentNode = start;
31
+ else if (start === "last") walker.currentNode = lastDescendant(container);
32
+ let node;
33
+ do {
34
+ node = direction === "next" ? walker.nextNode() : walker.previousNode();
35
+ if (node && isNavigableRow(node)) {
36
+ const result = dive ? dive(node) : node;
37
+ if (result) yield result;
38
+ }
39
+ } while (node);
40
+ }
41
+ const findFirstVisibleRow = () => first(findRows());
42
+ const findLastVisibleRow = () => first(findRows("last", "prev"));
43
+ function findParentRow(cell) {
44
+ const row = cell.closest(rowSelector);
45
+ return row && container.contains(row) ? row : null;
46
+ }
47
+ /** Deferred navigation intent (replayed once cells are committed to the DOM). */
48
+ const pending = createPendingNavigation(signal);
49
+ /** Remembered column index for Up/Down navigation (column memory). */
50
+ let rememberedCol = 0;
51
+ /** Activate the cell at the given column in a row element. */
52
+ function focusCellInRow(row, col) {
53
+ const cells = getRowCells(row);
54
+ if (cells.length === 0) return false;
55
+ const clampedCol = Math.min(col, cells.length - 1);
56
+ state.setActive(cells[clampedCol]);
57
+ return true;
58
+ }
59
+ /** Activate the given cell (validates it is in the grid, updates column memory). */
60
+ function activateCell(item) {
61
+ const row = findParentRow(item);
62
+ if (!row) return false;
63
+ const col = getRowCells(row).indexOf(item);
64
+ if (col === -1) return false;
65
+ rememberedCol = col;
66
+ state.setActive(item);
67
+ return true;
68
+ }
69
+ /** Got to first cell in first row */
70
+ function goToFirst() {
71
+ const row = findFirstVisibleRow();
72
+ if (!row) return false;
73
+ rememberedCol = 0;
74
+ return focusCellInRow(row, 0);
75
+ }
76
+ /** Got to first cell in last row */
77
+ function goToLast() {
78
+ const row = findLastVisibleRow();
79
+ if (!row) return false;
80
+ rememberedCol = 0;
81
+ return focusCellInRow(row, 0);
82
+ }
83
+ /** Navigate horizontally (left or right) within cells, wrapping across rows. */
84
+ function goHorizontal(step) {
85
+ if (!state.active) return false;
86
+ const currentRow = findParentRow(state.active);
87
+ if (!currentRow) return false;
88
+ const cells = getRowCells(currentRow);
89
+ const col = cells.indexOf(state.active);
90
+ if (col === -1) return false;
91
+ const nextCol = col + step;
92
+ if (nextCol >= 0 && nextCol < cells.length) {
93
+ rememberedCol = nextCol;
94
+ state.setActive(cells[nextCol]);
95
+ return true;
96
+ }
97
+ if (!wrap) return false;
98
+ const targetRow = first(findRows(currentRow, step > 0 ? "next" : "prev")) ?? (step > 0 ? findFirstVisibleRow() : findLastVisibleRow());
99
+ if (!targetRow) return false;
100
+ const targetCells = getRowCells(targetRow);
101
+ if (targetCells.length === 0) return false;
102
+ const targetCol = step > 0 ? 0 : targetCells.length - 1;
103
+ rememberedCol = targetCol;
104
+ state.setActive(targetCells[targetCol]);
105
+ return true;
106
+ }
107
+ /** Navigate vertically (up or down) between rows with column memory. */
108
+ function goVertical(direction) {
109
+ if (!state.active) return direction === "next" ? goToFirst() : goToLast();
110
+ const currentRow = findParentRow(state.active);
111
+ if (!currentRow) return false;
112
+ const adjacentRow = first(findRows(currentRow, direction));
113
+ if (adjacentRow) return focusCellInRow(adjacentRow, rememberedCol);
114
+ if (wrap) {
115
+ const wrapRow = direction === "next" ? findFirstVisibleRow() : findLastVisibleRow();
116
+ if (wrapRow) return focusCellInRow(wrapRow, rememberedCol);
117
+ }
118
+ return false;
119
+ }
120
+ const selectors = {
121
+ get activeItem() {
122
+ return state.active;
123
+ },
124
+ get hasNavigableItems() {
125
+ return first(findRows()) !== null;
126
+ },
127
+ getFirst: () => first(findRows("first", "next", getFirstCell)),
128
+ getLast: () => first(findRows("last", "prev", getFirstCell)),
129
+ getMatching: (predicate) => first(findRows("first", "next", (row) => getRowCells(row).find(predicate)))
130
+ };
131
+ return {
132
+ type: "grid",
133
+ selectors,
134
+ goToOffset(offset) {
135
+ if (offset === 0) return state.active !== null;
136
+ const visibleRows = Array.from(findRows());
137
+ if (visibleRows.length === 0) return false;
138
+ if (!state.active) {
139
+ const startIdx = offset > 0 ? 0 : visibleRows.length - 1;
140
+ const remainingOffset = offset > 0 ? offset - 1 : offset + 1;
141
+ return focusCellInRow(visibleRows[Math.max(0, Math.min(startIdx + remainingOffset, visibleRows.length - 1))], rememberedCol);
142
+ }
143
+ const currentRow = findParentRow(state.active);
144
+ if (!currentRow) return false;
145
+ const rowIdx = visibleRows.indexOf(currentRow);
146
+ if (rowIdx === -1) return false;
147
+ const targetIdx = Math.max(0, Math.min(rowIdx + offset, visibleRows.length - 1));
148
+ if (targetIdx === rowIdx) return false;
149
+ return focusCellInRow(visibleRows[targetIdx], rememberedCol);
150
+ },
151
+ clear() {
152
+ state.clear();
153
+ pending.clear();
154
+ },
155
+ goTo(resolve) {
156
+ const target = resolve(selectors);
157
+ if (target && activateCell(target)) {
158
+ pending.clear();
159
+ return true;
160
+ }
161
+ pending.defer(() => this.goTo(resolve));
162
+ return false;
163
+ },
164
+ flushPendingNavigation() {
165
+ pending.flush();
166
+ },
167
+ goUp() {
168
+ return goVertical("prev");
169
+ },
170
+ goDown() {
171
+ return goVertical("next");
172
+ },
173
+ goLeft() {
174
+ return goHorizontal(-1);
175
+ },
176
+ goRight() {
177
+ return goHorizontal(1);
178
+ }
179
+ };
180
+ }
181
+ //#endregion
182
+ export { createGridFocusNavigation };
@@ -0,0 +1,151 @@
1
+ import { createSelectorTreeWalker } from "../browser/createSelectorTreeWalker.js";
2
+ import { createPendingNavigation } from "./createPendingNavigation.js";
3
+ //#region ../lumx-core/src/js/utils/focusNavigation/createListFocusNavigation.ts
4
+ /**
5
+ * Create a focus navigation controller for a 1D list.
6
+ *
7
+ * This controller is **stateless** — it does not maintain an internal reference to
8
+ * the active item. Instead it reads the active item from the DOM each time via the
9
+ * `getActiveItem` callback provided in the options. This avoids any desync between
10
+ * the controller's internal state and the actual DOM.
11
+ *
12
+ * @param options List navigation options (container, itemSelector, direction, wrap, getActiveItem).
13
+ * @param callbacks Callbacks for focus state changes.
14
+ * @param signal AbortSignal for cleanup.
15
+ * @returns ListFocusNavigationController instance.
16
+ */
17
+ function createListFocusNavigation(options, callbacks, signal) {
18
+ const { container, itemSelector, direction = "vertical", wrap = false, itemDisabledSelector, getActiveItem = () => null } = options;
19
+ /** Combined CSS selector matching enabled (non-disabled) items. */
20
+ const enabledItemSelector = itemDisabledSelector ? `${itemSelector}:not(${itemDisabledSelector})` : itemSelector;
21
+ /** Create a TreeWalker over items in the container. */
22
+ function createItemWalker(enabledOnly = true) {
23
+ return createSelectorTreeWalker(container, enabledOnly ? enabledItemSelector : itemSelector);
24
+ }
25
+ /** Find the first enabled item in the container. */
26
+ function findFirstEnabled() {
27
+ return container.querySelector(enabledItemSelector);
28
+ }
29
+ /** Find the last enabled item in the container. */
30
+ function findLastEnabled() {
31
+ const items = container.querySelectorAll(enabledItemSelector);
32
+ return items.length > 0 ? items[items.length - 1] : null;
33
+ }
34
+ const pending = createPendingNavigation(signal);
35
+ /** Find item at offset (lazily walk nodes) */
36
+ function findAtOffset(offset) {
37
+ const forward = offset > 0;
38
+ const stepsNeeded = Math.abs(offset);
39
+ const active = getActiveItem();
40
+ const walker = createItemWalker();
41
+ const step = forward ? () => walker.nextNode() : () => walker.previousNode();
42
+ let target = null;
43
+ let remaining = stepsNeeded;
44
+ if (active) walker.currentNode = active;
45
+ else if (!forward) {
46
+ target = walker.lastChild();
47
+ if (!target) return null;
48
+ remaining -= 1;
49
+ }
50
+ for (let i = 0; i < remaining; i++) {
51
+ const next = step();
52
+ if (next) target = next;
53
+ else if (active && wrap) {
54
+ const wrapped = forward ? findFirstEnabled() : findLastEnabled();
55
+ if (!wrapped || wrapped === active) break;
56
+ target = wrapped;
57
+ walker.currentNode = wrapped;
58
+ } else break;
59
+ }
60
+ return target;
61
+ }
62
+ function findMatching(predicate) {
63
+ const walker = createItemWalker(false);
64
+ let node = walker.nextNode();
65
+ while (node) {
66
+ if (predicate(node)) return node;
67
+ node = walker.nextNode();
68
+ }
69
+ return null;
70
+ }
71
+ /** Clear the active item and discard any pending navigation intent. */
72
+ function clear() {
73
+ const current = getActiveItem();
74
+ if (current) callbacks.onDeactivate(current);
75
+ pending.clear();
76
+ callbacks.onClear?.();
77
+ }
78
+ signal.addEventListener("abort", clear);
79
+ const selectors = {
80
+ enabledItemSelector,
81
+ get activeItem() {
82
+ return getActiveItem();
83
+ },
84
+ get hasNavigableItems() {
85
+ return container.querySelector(enabledItemSelector) !== null;
86
+ },
87
+ getFirst: findFirstEnabled,
88
+ getLast: findLastEnabled,
89
+ getMatching: findMatching,
90
+ findNearestEnabled(anchor) {
91
+ if (!container.contains(anchor)) return findFirstEnabled();
92
+ if (anchor instanceof HTMLElement && anchor.matches(enabledItemSelector)) return anchor;
93
+ const walker = createItemWalker();
94
+ walker.currentNode = anchor;
95
+ const next = walker.nextNode();
96
+ if (next instanceof HTMLElement) return next;
97
+ walker.currentNode = anchor;
98
+ return walker.previousNode();
99
+ }
100
+ };
101
+ /**
102
+ * Navigate via a resolver. The resolver receives the selectors to find the target.
103
+ * If the target is valid, focus is committed (deactivate current, activate target).
104
+ * If the target is not resolvable yet, the intent is deferred for later replay.
105
+ */
106
+ function goTo(resolve) {
107
+ const target = resolve(selectors);
108
+ if (target && target.matches(itemSelector) && container.contains(target)) {
109
+ const current = getActiveItem();
110
+ if (current !== target) {
111
+ if (current) callbacks.onDeactivate(current);
112
+ callbacks.onActivate(target);
113
+ }
114
+ pending.clear();
115
+ return true;
116
+ }
117
+ pending.defer(() => goTo(resolve));
118
+ return false;
119
+ }
120
+ /** Go to the item at the given offset from the active item. */
121
+ function goToOffset(offset) {
122
+ if (offset === 0) return getActiveItem() !== null;
123
+ const target = findAtOffset(offset);
124
+ if (!target) return false;
125
+ return goTo(() => target);
126
+ }
127
+ return {
128
+ type: "list",
129
+ selectors,
130
+ goToOffset,
131
+ clear,
132
+ goTo,
133
+ flushPendingNavigation() {
134
+ pending.flush();
135
+ },
136
+ goUp() {
137
+ return direction === "vertical" ? goToOffset(-1) : false;
138
+ },
139
+ goDown() {
140
+ return direction === "vertical" ? goToOffset(1) : false;
141
+ },
142
+ goLeft() {
143
+ return direction === "horizontal" ? goToOffset(-1) : false;
144
+ },
145
+ goRight() {
146
+ return direction === "horizontal" ? goToOffset(1) : false;
147
+ }
148
+ };
149
+ }
150
+ //#endregion
151
+ export { createListFocusNavigation };
@@ -0,0 +1,23 @@
1
+ //#region ../lumx-core/src/js/utils/focusNavigation/createPendingNavigation.ts
2
+ /** Create a pending navigation store; discards intent on abort. */
3
+ function createPendingNavigation(signal) {
4
+ let pending = null;
5
+ const clear = () => {
6
+ pending = null;
7
+ };
8
+ signal.addEventListener("abort", clear);
9
+ return {
10
+ get hasPending() {
11
+ return pending !== null;
12
+ },
13
+ defer(navigate) {
14
+ pending = navigate;
15
+ },
16
+ flush() {
17
+ if (pending?.()) pending = null;
18
+ },
19
+ clear
20
+ };
21
+ }
22
+ //#endregion
23
+ export { createPendingNavigation };
@@ -0,0 +1,167 @@
1
+ import { createListFocusNavigation } from "./createListFocusNavigation.js";
2
+ import { querySelectorInclusive } from "../browser/querySelectorInclusive.js";
3
+ import { trackContainerFocus } from "../browser/trackContainerFocus.js";
4
+ //#region ../lumx-core/src/js/utils/focusNavigation/setupRovingTabIndex.ts
5
+ /**
6
+ * Set up the roving tabindex pattern on a container element.
7
+ *
8
+ * - Keyboard navigation (Arrow keys, Home, End)
9
+ * - tabindex management (`0` on active, `-1` on others)
10
+ * - Mount normalization (single-tabstop invariant)
11
+ * - DOM mutation handling via MutationObserver:
12
+ * removal recovery, insertion normalization, disabled-state changes
13
+ *
14
+ * Torn down when `signal` is aborted.
15
+ */
16
+ function setupRovingTabIndex(options, signal) {
17
+ const { container, itemSelector, direction = "horizontal", itemDisabledSelector, itemSelectedAttr = "aria-selected", onItemFocused } = options;
18
+ const itemActiveSelector = `${itemSelector}[tabindex="0"]`;
19
+ let itemSelectedSelector = `${itemSelector}[${itemSelectedAttr}=true]`;
20
+ if (itemDisabledSelector) itemSelectedSelector += `:not(${itemDisabledSelector})`;
21
+ const containerFocus = trackContainerFocus(container, signal);
22
+ const nav = createListFocusNavigation({
23
+ type: "list",
24
+ container,
25
+ itemSelector,
26
+ direction,
27
+ wrap: true,
28
+ itemDisabledSelector,
29
+ getActiveItem: () => container.querySelector(itemActiveSelector)
30
+ }, {
31
+ onActivate(item) {
32
+ item.setAttribute("tabindex", "0");
33
+ item.focus();
34
+ onItemFocused?.(item);
35
+ },
36
+ onDeactivate(item) {
37
+ item.setAttribute("tabindex", "-1");
38
+ }
39
+ }, signal);
40
+ /** Set tabindex only when the value actually changes to avoid unnecessary DOM mutations. */
41
+ function setTabIndex(item, value) {
42
+ if (item.getAttribute("tabindex") !== value) item.setAttribute("tabindex", value);
43
+ }
44
+ /** Assign tabindex across `items`, ensuring at most one `tabindex="0"` */
45
+ function normalizeItems(items, hasExistingTabStop) {
46
+ let hasTabStop = hasExistingTabStop;
47
+ for (const item of items) {
48
+ if (!container.contains(item)) continue;
49
+ if (!(itemDisabledSelector ? item.matches(itemDisabledSelector) : false) && !hasTabStop) {
50
+ setTabIndex(item, "0");
51
+ hasTabStop = true;
52
+ } else setTabIndex(item, "-1");
53
+ }
54
+ if (!hasTabStop) {
55
+ const fallback = container.querySelector(nav.selectors.enabledItemSelector);
56
+ if (fallback) setTabIndex(fallback, "0");
57
+ }
58
+ }
59
+ /** Enforce the single-tabstop invariant across all items. */
60
+ function normalizeAllItems() {
61
+ const items = Array.from(container.querySelectorAll(itemSelector));
62
+ const { activeItem } = nav.selectors;
63
+ let preferredTabStopIndex = activeItem && items.indexOf(activeItem);
64
+ if (!preferredTabStopIndex || preferredTabStopIndex === -1) preferredTabStopIndex = items.findIndex((item) => item.matches(itemSelectedSelector));
65
+ if (preferredTabStopIndex && preferredTabStopIndex > 0) {
66
+ const [preferredItem] = items.splice(preferredTabStopIndex, 1);
67
+ items.unshift(preferredItem);
68
+ }
69
+ normalizeItems(items, false);
70
+ }
71
+ /** Ensure a tab stop exists; find a fallback near `anchor` and optionally move focus to it. */
72
+ function ensureTabStop(shouldFocus, anchor) {
73
+ if (container.querySelector(itemActiveSelector)) return;
74
+ const fallback = (anchor && nav.selectors.findNearestEnabled(anchor)) ?? container.querySelector(nav.selectors.enabledItemSelector);
75
+ if (!fallback) return;
76
+ if (shouldFocus) nav.goTo(() => fallback);
77
+ else setTabIndex(fallback, "0");
78
+ }
79
+ normalizeAllItems();
80
+ const observer = new MutationObserver((mutations) => {
81
+ let removedActiveItem = null;
82
+ let removalAnchor = null;
83
+ let newSelectedItem = null;
84
+ const disabledTargets = [];
85
+ const insertedItems = [];
86
+ for (const mutation of mutations) {
87
+ if (mutation.type === "childList") {
88
+ if (!removedActiveItem) for (const removedNode of mutation.removedNodes) {
89
+ const { value: firstMatch } = querySelectorInclusive(removedNode, itemActiveSelector).next();
90
+ if (firstMatch) {
91
+ removedActiveItem = firstMatch;
92
+ removalAnchor = mutation.nextSibling ?? mutation.previousSibling ?? null;
93
+ break;
94
+ }
95
+ }
96
+ for (const addedNode of mutation.addedNodes) for (const item of querySelectorInclusive(addedNode, itemSelector)) insertedItems.push(item);
97
+ }
98
+ const target = mutation.target;
99
+ if (mutation.type === "attributes" && target.matches(itemSelector)) {
100
+ if (mutation.attributeName === itemSelectedAttr && target.getAttribute(itemSelectedAttr) === "true") newSelectedItem = target;
101
+ else if (itemDisabledSelector && target.matches(itemDisabledSelector)) disabledTargets.push(target);
102
+ }
103
+ }
104
+ if (removedActiveItem) {
105
+ const shouldMoveFocus = containerFocus.hasFocus;
106
+ containerFocus.reset();
107
+ ensureTabStop(shouldMoveFocus, removalAnchor);
108
+ }
109
+ if (insertedItems.length > 0) normalizeItems(insertedItems, container.querySelector(itemActiveSelector) !== null);
110
+ if (disabledTargets.length > 0) {
111
+ const currentActive = nav.selectors.activeItem;
112
+ for (const target of disabledTargets) setTabIndex(target, "-1");
113
+ ensureTabStop(!!(currentActive && disabledTargets.includes(currentActive) && containerFocus.hasFocus));
114
+ }
115
+ if (newSelectedItem) {
116
+ const currentTabStop = container.querySelector(itemActiveSelector);
117
+ if (currentTabStop && currentTabStop !== newSelectedItem) setTabIndex(currentTabStop, "-1");
118
+ setTabIndex(newSelectedItem, "0");
119
+ }
120
+ });
121
+ observer.observe(container, {
122
+ childList: true,
123
+ subtree: true,
124
+ attributes: true,
125
+ attributeFilter: [
126
+ "aria-disabled",
127
+ "disabled",
128
+ itemSelectedAttr
129
+ ]
130
+ });
131
+ signal.addEventListener("abort", () => observer.disconnect());
132
+ container.addEventListener("keydown", (evt) => {
133
+ if (!nav.selectors.activeItem) {
134
+ const target = evt.target;
135
+ if (target.matches(itemSelector) && container.contains(target)) nav.goTo(() => target);
136
+ }
137
+ let handled = false;
138
+ switch (evt.key) {
139
+ case "ArrowRight":
140
+ handled = nav.goRight();
141
+ break;
142
+ case "ArrowLeft":
143
+ handled = nav.goLeft();
144
+ break;
145
+ case "ArrowDown":
146
+ handled = nav.goDown();
147
+ break;
148
+ case "ArrowUp":
149
+ handled = nav.goUp();
150
+ break;
151
+ case "Home":
152
+ handled = nav.goTo((s) => s.getFirst());
153
+ break;
154
+ case "End":
155
+ handled = nav.goTo((s) => s.getLast());
156
+ break;
157
+ default: break;
158
+ }
159
+ if (handled) {
160
+ evt.preventDefault();
161
+ evt.stopPropagation();
162
+ }
163
+ }, { signal });
164
+ return nav;
165
+ }
166
+ //#endregion
167
+ export { setupRovingTabIndex };
@@ -0,0 +1,25 @@
1
+ import last from "lodash/last.js";
2
+ import pull from "lodash/pull.js";
3
+ //#region ../lumx-core/src/js/utils/function/listenerTower.ts
4
+ /**
5
+ * Keep track of listeners, only the last registered listener gets activated at any point (previously registered
6
+ * listener are disabled).
7
+ * When a listener gets unregistered, the previously registered listener gets enabled again.
8
+ */
9
+ function makeListenerTowerContext() {
10
+ const LISTENERS = [];
11
+ return {
12
+ register(listener) {
13
+ last(LISTENERS)?.disable();
14
+ LISTENERS.push(listener);
15
+ listener.enable();
16
+ },
17
+ unregister(listener) {
18
+ listener.disable();
19
+ pull(LISTENERS, listener);
20
+ last(LISTENERS)?.enable();
21
+ }
22
+ };
23
+ }
24
+ //#endregion
25
+ export { makeListenerTowerContext };
@@ -0,0 +1,8 @@
1
+ //#region ../lumx-core/src/js/utils/iterable/first.ts
2
+ /** Return the first item of an iterable, or `null` if it is empty. */
3
+ function first(iterable) {
4
+ const { value, done } = iterable[Symbol.iterator]().next();
5
+ return done ? null : value;
6
+ }
7
+ //#endregion
8
+ export { first };
@@ -0,0 +1,10 @@
1
+ //#region ../lumx-core/src/js/utils/locale/getCurrentLocale.ts
2
+ /**
3
+ * Get current browser locale (BCP-47 string).
4
+ *
5
+ * Reads `navigator.languages[0]` (the user's preferred language) with a
6
+ * fallback to `navigator.language`.
7
+ */
8
+ var getCurrentLocale = () => navigator.languages?.[0] || navigator.language;
9
+ //#endregion
10
+ export { getCurrentLocale };
@@ -0,0 +1,19 @@
1
+ import { getWithSelector } from "../selectors/getWithSelector.js";
2
+ //#region ../lumx-core/src/js/utils/select/findOptionById.ts
3
+ /**
4
+ * Find the option whose id matches the given value.
5
+ *
6
+ * Used by Select* wrappers to resolve a selection event (which carries the option id
7
+ * as `selectedOption.value`) back to the original option object.
8
+ *
9
+ * @param options The list of options.
10
+ * @param getOptionId Selector returning the option id (matches `<Combobox.Option value>`).
11
+ * @param id The id to match against.
12
+ * @return The matching option, or `undefined` if none is found / inputs are nullish.
13
+ */
14
+ function findOptionById(options, getOptionId, id) {
15
+ if (id == null) return void 0;
16
+ return options?.find((option) => getWithSelector(getOptionId, option) === id);
17
+ }
18
+ //#endregion
19
+ export { findOptionById };
@@ -0,0 +1,19 @@
1
+ import { getWithSelector } from "../selectors/getWithSelector.js";
2
+ //#region ../lumx-core/src/js/utils/select/getOptionDisplayName.ts
3
+ /**
4
+ * Get the display name for a single option value.
5
+ *
6
+ * Resolves the option's display name by trying `getOptionName` first,
7
+ * then falling back to `getOptionId`, returning `''` for nullish values.
8
+ */
9
+ function getOptionDisplayName(value, getOptionName, getOptionId) {
10
+ if (value === void 0 || value === null) return "";
11
+ if (getOptionName) {
12
+ const name = getWithSelector(getOptionName, value);
13
+ if (name != null) return String(name);
14
+ }
15
+ if (getOptionId) return String(getWithSelector(getOptionId, value));
16
+ return "";
17
+ }
18
+ //#endregion
19
+ export { getOptionDisplayName };
@@ -0,0 +1,51 @@
1
+ import { getWithSelector } from "../selectors/getWithSelector.js";
2
+ import { groupBySelector } from "../selectors/groupBySelector.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region ../lumx-core/src/js/utils/select/renderSelectOptions.tsx
5
+ /**
6
+ * Render options as ComboboxOption elements.
7
+ * Framework-specific components are passed as a second argument.
8
+ */
9
+ function renderSelectOptions(props, components) {
10
+ const { options, getOptionId, getOptionName, getOptionDescription, renderOption, selected, getSectionId, renderSectionTitle } = props;
11
+ const { Combobox } = components;
12
+ if (getSectionId && options) {
13
+ const sections = groupBySelector(options, (option) => getWithSelector(getSectionId, option));
14
+ return Array.from(sections.entries()).map(([sectionId, sectionOptions]) => {
15
+ const sectionLabel = renderSectionTitle ? renderSectionTitle(sectionId, sectionOptions) : sectionId;
16
+ return /* @__PURE__ */ jsx(Combobox.Section, {
17
+ label: sectionLabel,
18
+ children: renderSelectOptions({
19
+ options: sectionOptions,
20
+ getOptionId,
21
+ getOptionName,
22
+ getOptionDescription,
23
+ renderOption,
24
+ selected
25
+ }, components)
26
+ }, sectionId);
27
+ });
28
+ }
29
+ const selectedIds = selected ? new Set((Array.isArray(selected) ? selected : [selected]).map((s) => getWithSelector(getOptionId, s))) : void 0;
30
+ return options?.map((item, index) => {
31
+ const id = getWithSelector(getOptionId || getOptionName, item);
32
+ const name = getWithSelector(getOptionName || getOptionId, item) || id;
33
+ const description = getOptionDescription && getWithSelector(getOptionDescription, item);
34
+ const isSelected = selectedIds?.has(id) ?? false;
35
+ if (renderOption) return renderOption(item, {
36
+ index,
37
+ value: id,
38
+ name,
39
+ isSelected,
40
+ description
41
+ });
42
+ return /* @__PURE__ */ jsx(Combobox.Option, {
43
+ value: id,
44
+ description,
45
+ isSelected,
46
+ children: name
47
+ }, id);
48
+ });
49
+ }
50
+ //#endregion
51
+ export { renderSelectOptions };