@basic-ui/core 0.0.52 → 0.0.53

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 (408) hide show
  1. package/README.md +3 -3
  2. package/build/cjs/index.js +105 -89
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/esm/Accordion/Accordion.d.ts +9 -9
  5. package/build/esm/Accordion/Accordion.js.map +1 -1
  6. package/build/esm/Accordion/AccordionBody.d.ts +6 -6
  7. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  8. package/build/esm/Accordion/AccordionHeader.d.ts +7 -7
  9. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  10. package/build/esm/Accordion/AccordionItem.d.ts +9 -9
  11. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  12. package/build/esm/Accordion/context.d.ts +19 -19
  13. package/build/esm/Accordion/context.js.map +1 -1
  14. package/build/esm/Accordion/index.d.ts +4 -4
  15. package/build/esm/Accordion/index.js.map +1 -1
  16. package/build/esm/Accordion/scopeQuery.d.ts +2 -2
  17. package/build/esm/Accordion/scopeQuery.js.map +1 -1
  18. package/build/esm/Carousel/Carousel.d.ts +9 -0
  19. package/build/esm/Carousel/Carousel.js +38 -0
  20. package/build/esm/Carousel/Carousel.js.map +1 -0
  21. package/build/esm/Carousel/Fader.d.ts +14 -0
  22. package/build/esm/Carousel/Fader.js +76 -0
  23. package/build/esm/Carousel/Fader.js.map +1 -0
  24. package/build/esm/Carousel/FaderItem.d.ts +5 -0
  25. package/build/esm/Carousel/FaderItem.js +16 -0
  26. package/build/esm/Carousel/FaderItem.js.map +1 -0
  27. package/build/esm/Carousel/Preloader.d.ts +7 -0
  28. package/build/esm/Carousel/Preloader.js +70 -0
  29. package/build/esm/Carousel/Preloader.js.map +1 -0
  30. package/build/esm/Carousel/Slider.d.ts +14 -0
  31. package/build/esm/Carousel/Slider.js +212 -0
  32. package/build/esm/Carousel/Slider.js.map +1 -0
  33. package/build/esm/Carousel/SliderItem.d.ts +12 -0
  34. package/build/esm/Carousel/SliderItem.js +41 -0
  35. package/build/esm/Carousel/SliderItem.js.map +1 -0
  36. package/build/esm/Carousel/context.d.ts +10 -0
  37. package/build/esm/Carousel/context.js +8 -0
  38. package/build/esm/Carousel/context.js.map +1 -0
  39. package/build/esm/Carousel/getSliderParams.d.ts +9 -0
  40. package/build/esm/Carousel/getSliderParams.js +85 -0
  41. package/build/esm/Carousel/getSliderParams.js.map +1 -0
  42. package/build/esm/Carousel/index.d.ts +7 -0
  43. package/build/esm/Carousel/index.js +8 -0
  44. package/build/esm/Carousel/index.js.map +1 -0
  45. package/build/esm/Carousel/useCarouselGestures.d.ts +30 -0
  46. package/build/esm/Carousel/useCarouselGestures.js +33 -0
  47. package/build/esm/Carousel/useCarouselGestures.js.map +1 -0
  48. package/build/esm/CheckBox/CheckBox.d.ts +7 -7
  49. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  50. package/build/esm/CheckBox/index.d.ts +1 -1
  51. package/build/esm/CheckBox/index.js.map +1 -1
  52. package/build/esm/ComboBox/Combobox.d.ts +18 -18
  53. package/build/esm/ComboBox/Combobox.js.map +1 -1
  54. package/build/esm/ComboBox/ComboboxButton.d.ts +9 -9
  55. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  56. package/build/esm/ComboBox/ComboboxInput.d.ts +17 -17
  57. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  58. package/build/esm/ComboBox/ComboboxLabel.d.ts +7 -7
  59. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  60. package/build/esm/ComboBox/ComboboxList.d.ts +8 -8
  61. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  62. package/build/esm/ComboBox/ComboboxOption.d.ts +11 -11
  63. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  64. package/build/esm/ComboBox/ComboboxPopover.d.ts +9 -9
  65. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  66. package/build/esm/ComboBox/cities.d.ts +5 -5
  67. package/build/esm/ComboBox/cities.js.map +1 -1
  68. package/build/esm/ComboBox/context.d.ts +30 -30
  69. package/build/esm/ComboBox/context.js.map +1 -1
  70. package/build/esm/ComboBox/hooks.d.ts +37 -37
  71. package/build/esm/ComboBox/hooks.js.map +1 -1
  72. package/build/esm/ComboBox/index.d.ts +8 -8
  73. package/build/esm/ComboBox/index.js.map +1 -1
  74. package/build/esm/ComboBox/makeHash.d.ts +1 -1
  75. package/build/esm/ComboBox/makeHash.js.map +1 -1
  76. package/build/esm/ComboBox/scopeQuery.d.ts +1 -1
  77. package/build/esm/ComboBox/scopeQuery.js.map +1 -1
  78. package/build/esm/DatePicker/DatePicker.d.ts +24 -0
  79. package/build/esm/DatePicker/DatePicker.js +101 -0
  80. package/build/esm/DatePicker/DatePicker.js.map +1 -0
  81. package/build/esm/DatePicker/DatePickerSelect.d.ts +8 -0
  82. package/build/esm/DatePicker/DatePickerSelect.js +201 -0
  83. package/build/esm/DatePicker/DatePickerSelect.js.map +1 -0
  84. package/build/esm/DatePicker/RangeDatePicker.d.ts +28 -0
  85. package/build/esm/DatePicker/RangeDatePicker.js +94 -0
  86. package/build/esm/DatePicker/RangeDatePicker.js.map +1 -0
  87. package/build/esm/DatePicker/adjustDates.d.ts +4 -0
  88. package/build/esm/DatePicker/adjustDates.js +18 -0
  89. package/build/esm/DatePicker/adjustDates.js.map +1 -0
  90. package/build/esm/DatePicker/contexts.d.ts +31 -0
  91. package/build/esm/DatePicker/contexts.js +15 -0
  92. package/build/esm/DatePicker/contexts.js.map +1 -0
  93. package/build/esm/DatePicker/dateTypes.d.ts +2 -0
  94. package/build/esm/DatePicker/dateTypes.js +2 -0
  95. package/build/esm/DatePicker/dateTypes.js.map +1 -0
  96. package/build/esm/DatePicker/hooks.d.ts +36 -0
  97. package/build/esm/DatePicker/hooks.js +98 -0
  98. package/build/esm/DatePicker/hooks.js.map +1 -0
  99. package/build/esm/DatePicker/index.d.ts +5 -0
  100. package/build/esm/DatePicker/index.js +6 -0
  101. package/build/esm/DatePicker/index.js.map +1 -0
  102. package/build/esm/FocusLock/FocusLock.d.ts +9 -9
  103. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  104. package/build/esm/FocusLock/index.d.ts +1 -1
  105. package/build/esm/FocusLock/index.js.map +1 -1
  106. package/build/esm/FocusLock/tabUtils.d.ts +3 -3
  107. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  108. package/build/esm/FocusLock/useFocusLock.d.ts +7 -7
  109. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  110. package/build/esm/List/List.d.ts +7 -7
  111. package/build/esm/List/List.js.map +1 -1
  112. package/build/esm/List/ListItem.d.ts +7 -7
  113. package/build/esm/List/ListItem.js.map +1 -1
  114. package/build/esm/List/context.d.ts +4 -4
  115. package/build/esm/List/context.js.map +1 -1
  116. package/build/esm/List/index.d.ts +2 -2
  117. package/build/esm/List/index.js.map +1 -1
  118. package/build/esm/Menu/ContextMenuTrigger.d.ts +11 -11
  119. package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
  120. package/build/esm/Menu/Menu.d.ts +10 -10
  121. package/build/esm/Menu/Menu.js.map +1 -1
  122. package/build/esm/Menu/MenuButton.d.ts +11 -11
  123. package/build/esm/Menu/MenuButton.js.map +1 -1
  124. package/build/esm/Menu/MenuItem.d.ts +8 -8
  125. package/build/esm/Menu/MenuItem.js.map +1 -1
  126. package/build/esm/Menu/MenuList.d.ts +7 -7
  127. package/build/esm/Menu/MenuList.js.map +1 -1
  128. package/build/esm/Menu/MenuPopover.d.ts +8 -8
  129. package/build/esm/Menu/MenuPopover.js.map +1 -1
  130. package/build/esm/Menu/context.d.ts +25 -25
  131. package/build/esm/Menu/context.js.map +1 -1
  132. package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
  133. package/build/esm/Menu/fixtures/countryList.js.map +1 -1
  134. package/build/esm/Menu/index.d.ts +6 -6
  135. package/build/esm/Menu/index.js.map +1 -1
  136. package/build/esm/Menu/scope.d.ts +1 -1
  137. package/build/esm/Menu/scope.js.map +1 -1
  138. package/build/esm/Modal/Modal.d.ts +9 -9
  139. package/build/esm/Modal/Modal.js.map +1 -1
  140. package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
  141. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  142. package/build/esm/Modal/index.d.ts +2 -2
  143. package/build/esm/Modal/index.js.map +1 -1
  144. package/build/esm/Popper/Popper.d.ts +35 -35
  145. package/build/esm/Popper/Popper.js.map +1 -1
  146. package/build/esm/Popper/PopperArrow.d.ts +6 -6
  147. package/build/esm/Popper/PopperArrow.js.map +1 -1
  148. package/build/esm/Popper/context.d.ts +6 -6
  149. package/build/esm/Popper/context.js.map +1 -1
  150. package/build/esm/Popper/index.d.ts +3 -3
  151. package/build/esm/Popper/index.js.map +1 -1
  152. package/build/esm/Portal/Portal.d.ts +7 -6
  153. package/build/esm/Portal/Portal.js +6 -3
  154. package/build/esm/Portal/Portal.js.map +1 -1
  155. package/build/esm/Portal/PortalSelectorProvider.d.ts +8 -0
  156. package/build/esm/Portal/PortalSelectorProvider.js +13 -0
  157. package/build/esm/Portal/PortalSelectorProvider.js.map +1 -0
  158. package/build/esm/Portal/index.d.ts +2 -1
  159. package/build/esm/Portal/index.js +1 -0
  160. package/build/esm/Portal/index.js.map +1 -1
  161. package/build/esm/RadioButton/RadioButton.d.ts +10 -10
  162. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  163. package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
  164. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  165. package/build/esm/RadioButton/context.d.ts +9 -9
  166. package/build/esm/RadioButton/context.js.map +1 -1
  167. package/build/esm/RadioButton/index.d.ts +2 -2
  168. package/build/esm/RadioButton/index.js.map +1 -1
  169. package/build/esm/SkipNav/SkipNav.d.ts +7 -7
  170. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  171. package/build/esm/SkipNav/index.d.ts +1 -1
  172. package/build/esm/SkipNav/index.js.map +1 -1
  173. package/build/esm/Slider/Slider.d.ts +197 -197
  174. package/build/esm/Slider/Slider.js +82 -82
  175. package/build/esm/Slider/Slider.js.map +1 -1
  176. package/build/esm/Slider/index.d.ts +1 -1
  177. package/build/esm/Slider/index.js.map +1 -1
  178. package/build/esm/Spinner/Spinner.d.ts +12 -12
  179. package/build/esm/Spinner/Spinner.js.map +1 -1
  180. package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
  181. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  182. package/build/esm/Spinner/context.d.ts +12 -12
  183. package/build/esm/Spinner/context.js.map +1 -1
  184. package/build/esm/Spinner/index.d.ts +2 -2
  185. package/build/esm/Spinner/index.js.map +1 -1
  186. package/build/esm/Tabs/Tab.d.ts +7 -7
  187. package/build/esm/Tabs/Tab.js.map +1 -1
  188. package/build/esm/Tabs/TabList.d.ts +9 -9
  189. package/build/esm/Tabs/TabList.js.map +1 -1
  190. package/build/esm/Tabs/TabPanel.d.ts +8 -8
  191. package/build/esm/Tabs/TabPanel.js.map +1 -1
  192. package/build/esm/Tabs/TabPanels.d.ts +8 -8
  193. package/build/esm/Tabs/TabPanels.js.map +1 -1
  194. package/build/esm/Tabs/Tabs.d.ts +10 -10
  195. package/build/esm/Tabs/Tabs.js.map +1 -1
  196. package/build/esm/Tabs/context.d.ts +17 -17
  197. package/build/esm/Tabs/context.js.map +1 -1
  198. package/build/esm/Tabs/index.d.ts +5 -5
  199. package/build/esm/Tabs/index.js.map +1 -1
  200. package/build/esm/Tabs/scopeQuery.d.ts +1 -1
  201. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  202. package/build/esm/Tooltip/Tooltip.d.ts +10 -10
  203. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  204. package/build/esm/Tooltip/index.d.ts +1 -1
  205. package/build/esm/Tooltip/index.js.map +1 -1
  206. package/build/esm/Tooltip/stateMachine.d.ts +28 -28
  207. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  208. package/build/esm/Tooltip/useTooltip.d.ts +10 -10
  209. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  210. package/build/esm/hooks/index.d.ts +13 -13
  211. package/build/esm/hooks/index.js.map +1 -1
  212. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  213. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  214. package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
  215. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  216. package/build/esm/hooks/useControlledState.d.ts +3 -3
  217. package/build/esm/hooks/useFocusReturn.d.ts +2 -2
  218. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  219. package/build/esm/hooks/useFocusState.d.ts +11 -11
  220. package/build/esm/hooks/useFocusState.js.map +1 -1
  221. package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
  222. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  223. package/build/esm/hooks/useId.d.ts +1 -0
  224. package/build/esm/hooks/useId.js +25 -0
  225. package/build/esm/hooks/useId.js.map +1 -0
  226. package/build/esm/hooks/useMeasure.d.ts +7 -7
  227. package/build/esm/hooks/useMeasure.js.map +1 -1
  228. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  229. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  230. package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
  231. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  232. package/build/esm/hooks/useReducerMachine.d.ts +24 -24
  233. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  234. package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
  235. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  236. package/build/esm/hooks/useScope.d.ts +11 -11
  237. package/build/esm/hooks/useScope.js.map +1 -1
  238. package/build/esm/hooks/useThrottle.d.ts +1 -1
  239. package/build/esm/hooks/useThrottle.js.map +1 -1
  240. package/build/esm/index.d.ts +15 -15
  241. package/build/esm/index.js.map +1 -1
  242. package/build/esm/utils/assign-ref.d.ts +3 -3
  243. package/build/esm/utils/assign-ref.js.map +1 -1
  244. package/build/esm/utils/assignRef.d.ts +3 -0
  245. package/build/esm/utils/assignRef.js +25 -0
  246. package/build/esm/utils/assignRef.js.map +1 -0
  247. package/build/esm/utils/can-use-dom.d.ts +1 -1
  248. package/build/esm/utils/can-use-dom.js.map +1 -1
  249. package/build/esm/utils/clamp.d.ts +1 -1
  250. package/build/esm/utils/clamp.js.map +1 -1
  251. package/build/esm/utils/context.d.ts +7 -7
  252. package/build/esm/utils/context.js.map +1 -1
  253. package/build/esm/utils/create-subscription.d.ts +4 -4
  254. package/build/esm/utils/create-subscription.js.map +1 -1
  255. package/build/esm/utils/get-circular-index.d.ts +1 -1
  256. package/build/esm/utils/get-circular-index.js.map +1 -1
  257. package/build/esm/utils/getCircularIndex.d.ts +1 -0
  258. package/build/esm/utils/getCircularIndex.js +8 -0
  259. package/build/esm/utils/getCircularIndex.js.map +1 -0
  260. package/build/esm/utils/index.d.ts +10 -10
  261. package/build/esm/utils/index.js.map +1 -1
  262. package/build/esm/utils/is-right-click.d.ts +6 -6
  263. package/build/esm/utils/is-right-click.js +4 -4
  264. package/build/esm/utils/is-right-click.js.map +1 -1
  265. package/build/esm/utils/owner-document.d.ts +7 -7
  266. package/build/esm/utils/owner-document.js +5 -5
  267. package/build/esm/utils/owner-document.js.map +1 -1
  268. package/build/esm/utils/polymorphic.d.ts +39 -39
  269. package/build/esm/utils/polymorphic.js.map +1 -1
  270. package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
  271. package/build/esm/utils/rubber-band-clamp.js.map +1 -1
  272. package/build/esm/utils/rubberBandClamp.d.ts +2 -0
  273. package/build/esm/utils/rubberBandClamp.js +20 -0
  274. package/build/esm/utils/rubberBandClamp.js.map +1 -0
  275. package/build/esm/utils/use-stable-callback.d.ts +16 -16
  276. package/build/esm/utils/use-stable-callback.js +16 -16
  277. package/build/esm/utils/use-stable-callback.js.map +1 -1
  278. package/build/esm/utils/wrap-event.d.ts +3 -3
  279. package/build/esm/utils/wrap-event.js.map +1 -1
  280. package/build/esm/utils/wrapEvent.d.ts +3 -0
  281. package/build/esm/utils/wrapEvent.js +16 -0
  282. package/build/esm/utils/wrapEvent.js.map +1 -0
  283. package/build/tsconfig-build.tsbuildinfo +1 -1
  284. package/build/tsconfig.tsbuildinfo +7270 -0
  285. package/package.json +2 -2
  286. package/src/Accordion/Accordion.story.tsx +74 -74
  287. package/src/Accordion/Accordion.tsx +59 -59
  288. package/src/Accordion/AccordionBody.tsx +52 -52
  289. package/src/Accordion/AccordionHeader.tsx +167 -167
  290. package/src/Accordion/AccordionItem.tsx +50 -50
  291. package/src/Accordion/context.ts +37 -37
  292. package/src/Accordion/index.ts +4 -4
  293. package/src/Accordion/scopeQuery.ts +7 -7
  294. package/src/Accordion/styles.css +21 -21
  295. package/src/CheckBox/CheckBox.tsx +41 -41
  296. package/src/CheckBox/index.ts +1 -1
  297. package/src/ComboBox/ComboBox.story.tsx +120 -120
  298. package/src/ComboBox/Combobox.tsx +148 -148
  299. package/src/ComboBox/ComboboxButton.tsx +61 -61
  300. package/src/ComboBox/ComboboxInput.tsx +187 -187
  301. package/src/ComboBox/ComboboxLabel.tsx +33 -33
  302. package/src/ComboBox/ComboboxList.tsx +47 -47
  303. package/src/ComboBox/ComboboxOption.tsx +111 -111
  304. package/src/ComboBox/ComboboxPopover.tsx +64 -64
  305. package/src/ComboBox/cities.ts +23194 -23194
  306. package/src/ComboBox/context.ts +35 -35
  307. package/src/ComboBox/hooks.tsx +451 -451
  308. package/src/ComboBox/index.ts +8 -8
  309. package/src/ComboBox/makeHash.ts +19 -19
  310. package/src/ComboBox/scopeQuery.ts +6 -6
  311. package/src/ComboBox/styles.css +32 -32
  312. package/src/FocusLock/FocusLock.tsx +66 -66
  313. package/src/FocusLock/index.ts +1 -1
  314. package/src/FocusLock/tabUtils.ts +40 -40
  315. package/src/FocusLock/useFocusLock.ts +56 -56
  316. package/src/List/List.story.tsx +18 -18
  317. package/src/List/List.tsx +17 -17
  318. package/src/List/ListItem.tsx +23 -23
  319. package/src/List/context.ts +19 -19
  320. package/src/List/index.ts +2 -2
  321. package/src/Menu/ContextMenu.story.tsx +73 -73
  322. package/src/Menu/ContextMenuTrigger.tsx +76 -76
  323. package/src/Menu/Menu.story.tsx +160 -160
  324. package/src/Menu/Menu.tsx +83 -83
  325. package/src/Menu/MenuButton.tsx +83 -83
  326. package/src/Menu/MenuComplex.story.tsx +58 -58
  327. package/src/Menu/MenuItem.tsx +88 -88
  328. package/src/Menu/MenuList.tsx +254 -254
  329. package/src/Menu/MenuPopover.tsx +35 -35
  330. package/src/Menu/context.ts +44 -44
  331. package/src/Menu/fixtures/countryList.ts +198 -198
  332. package/src/Menu/index.ts +6 -6
  333. package/src/Menu/scope.ts +7 -7
  334. package/src/Menu/styles.css +42 -42
  335. package/src/Modal/Modal.story.tsx +258 -258
  336. package/src/Modal/Modal.tsx +48 -48
  337. package/src/Modal/ModalBackdrop.tsx +78 -78
  338. package/src/Modal/NavDrawer.story.tsx +158 -158
  339. package/src/Modal/index.ts +2 -2
  340. package/src/Modal/styles.css +46 -46
  341. package/src/Popper/Popper.story.tsx +263 -263
  342. package/src/Popper/Popper.tsx +154 -154
  343. package/src/Popper/PopperArrow.tsx +35 -35
  344. package/src/Popper/context.ts +10 -10
  345. package/src/Popper/index.ts +3 -3
  346. package/src/Popper/styles.css +60 -60
  347. package/src/Portal/Portal.tsx +31 -20
  348. package/src/Portal/PortalSelectorProvider.tsx +24 -0
  349. package/src/Portal/index.ts +6 -1
  350. package/src/RadioButton/RadioButton.story.tsx +77 -77
  351. package/src/RadioButton/RadioButton.tsx +55 -55
  352. package/src/RadioButton/RadioGroup.tsx +60 -60
  353. package/src/RadioButton/context.ts +17 -17
  354. package/src/RadioButton/index.ts +2 -2
  355. package/src/SkipNav/SkipNav.tsx +16 -16
  356. package/src/SkipNav/index.tsx +1 -1
  357. package/src/Slider/Slider.story.tsx +45 -45
  358. package/src/Slider/Slider.tsx +1120 -1120
  359. package/src/Slider/index.ts +1 -1
  360. package/src/Slider/styles.css +131 -131
  361. package/src/Spinner/Spinner.story.tsx +31 -31
  362. package/src/Spinner/Spinner.tsx +117 -117
  363. package/src/Spinner/SpinnerButton.tsx +54 -54
  364. package/src/Spinner/context.ts +20 -20
  365. package/src/Spinner/index.ts +2 -2
  366. package/src/Spinner/styles.css +23 -23
  367. package/src/Tabs/Tab.story.tsx +80 -80
  368. package/src/Tabs/Tab.tsx +136 -136
  369. package/src/Tabs/TabList.tsx +71 -71
  370. package/src/Tabs/TabPanel.tsx +53 -53
  371. package/src/Tabs/TabPanels.tsx +30 -30
  372. package/src/Tabs/Tabs.tsx +46 -46
  373. package/src/Tabs/context.ts +30 -30
  374. package/src/Tabs/index.tsx +5 -5
  375. package/src/Tabs/scopeQuery.ts +6 -6
  376. package/src/Tooltip/Tooltip.story.tsx +61 -61
  377. package/src/Tooltip/Tooltip.tsx +50 -50
  378. package/src/Tooltip/index.ts +1 -1
  379. package/src/Tooltip/stateMachine.ts +192 -192
  380. package/src/Tooltip/styles.css +17 -17
  381. package/src/Tooltip/useTooltip.ts +136 -136
  382. package/src/hooks/index.ts +13 -13
  383. package/src/hooks/useAutoFocus.ts +22 -22
  384. package/src/hooks/useChildrenCounter.ts +51 -51
  385. package/src/hooks/useFocusReturn.ts +43 -43
  386. package/src/hooks/useFocusState.ts +30 -30
  387. package/src/hooks/useGestureHandlers.ts +286 -286
  388. package/src/hooks/useMeasure.ts +33 -33
  389. package/src/hooks/useOnClickOutside.ts +32 -32
  390. package/src/hooks/useOnKeyDown.ts +19 -19
  391. package/src/hooks/useReducerMachine.ts +60 -60
  392. package/src/hooks/useRemoveBodyScroll.ts +39 -39
  393. package/src/hooks/useScope.ts +52 -52
  394. package/src/hooks/useThrottle.ts +19 -19
  395. package/src/index.ts +20 -20
  396. package/src/utils/assign-ref.ts +27 -27
  397. package/src/utils/can-use-dom.ts +7 -7
  398. package/src/utils/clamp.ts +3 -3
  399. package/src/utils/context.tsx +48 -48
  400. package/src/utils/create-subscription.ts +16 -16
  401. package/src/utils/get-circular-index.ts +7 -7
  402. package/src/utils/index.ts +10 -10
  403. package/src/utils/is-right-click.ts +14 -14
  404. package/src/utils/owner-document.ts +13 -13
  405. package/src/utils/polymorphic.ts +78 -78
  406. package/src/utils/rubber-band-clamp.ts +25 -25
  407. package/src/utils/use-stable-callback.ts +58 -58
  408. package/src/utils/wrap-event.ts +22 -22
@@ -1,9 +1,9 @@
1
- import type { ElementType, HTMLAttributes, KeyboardEvent, MouseEvent, ReactNode } from 'react';
2
- export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- children?: ReactNode;
6
- expandedIndex?: number;
7
- onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, index: number) => void;
8
- }
9
- export declare const Accordion: import("react").ForwardRefExoticComponent<AccordionProps & import("react").RefAttributes<HTMLDivElement>>;
1
+ import type { ElementType, HTMLAttributes, KeyboardEvent, MouseEvent, ReactNode } from 'react';
2
+ export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ children?: ReactNode;
6
+ expandedIndex?: number;
7
+ onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, index: number) => void;
8
+ }
9
+ export declare const Accordion: import("react").ForwardRefExoticComponent<AccordionProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["forwardRef","useRef","useState","AccordionProvider","useScope","assignMultipleRefs","Accordion","props","forwardedRef","as","Comp","expandedIndex","onChange","otherProps","childrenHeaderHasFocus","setChildrenHeaderHasFocus","ref","scope","contextValue"],"sources":["../../../src/Accordion/Accordion.tsx"],"sourcesContent":["import type {\r\n ElementType,\r\n HTMLAttributes,\r\n KeyboardEvent,\r\n MouseEvent,\r\n ReactNode,\r\n} from 'react';\r\nimport { forwardRef, useRef, useState } from 'react';\r\n\r\nimport type { AccordionContextProps } from './context';\r\nimport { AccordionProvider } from './context';\r\nimport { useScope } from '../hooks';\r\nimport { assignMultipleRefs } from '../utils';\r\n\r\nexport interface AccordionProps\r\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n expandedIndex?: number;\r\n onChange?: (\r\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\r\n index: number\r\n ) => void;\r\n}\r\n\r\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(\r\n function Accordion(props, forwardedRef) {\r\n const {\r\n as: Comp = 'div',\r\n expandedIndex = -1,\r\n onChange,\r\n ...otherProps\r\n } = props;\r\n const [childrenHeaderHasFocus, setChildrenHeaderHasFocus] = useState(false);\r\n const ref = useRef<HTMLDivElement>();\r\n\r\n const scope = useScope(ref);\r\n\r\n const contextValue: AccordionContextProps = {\r\n childrenHeaderHasFocus,\r\n setChildrenHeaderHasFocus,\r\n scope,\r\n expandedIndex,\r\n onChange,\r\n };\r\n\r\n return (\r\n <AccordionProvider value={contextValue}>\r\n <Comp\r\n ref={assignMultipleRefs(forwardedRef, ref)}\r\n {...otherProps}\r\n data-accordion-root=\"\"\r\n data-children-has-focus={childrenHeaderHasFocus}\r\n />\r\n </AccordionProvider>\r\n );\r\n }\r\n);\r\n"],"mappings":";;;;AAOA,SAASA,UAAT,EAAqBC,MAArB,EAA6BC,QAA7B,QAA6C,OAA7C;AAGA,SAASC,iBAAT,QAAkC,WAAlC;AACA,SAASC,QAAT,QAAyB,UAAzB;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAcA,OAAO,IAAMC,SAAS,gBAAGN,UAAU,CACjC,SAASM,SAAT,CAAmBC,KAAnB,EAA0BC,YAA1B,EAAwC;EACtC,gBAKID,KALJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,KADb;EAAA,2BAKIH,KALJ,CAEEI,aAFF;EAAA,IAEEA,aAFF,qCAEkB,CAAC,CAFnB;EAAA,IAGEC,QAHF,GAKIL,KALJ,CAGEK,QAHF;EAAA,IAIKC,UAJL,4BAKIN,KALJ;;EAMA,gBAA4DL,QAAQ,CAAC,KAAD,CAApE;EAAA;EAAA,IAAOY,sBAAP;EAAA,IAA+BC,yBAA/B;;EACA,IAAMC,GAAG,GAAGf,MAAM,EAAlB;EAEA,IAAMgB,KAAK,GAAGb,QAAQ,CAACY,GAAD,CAAtB;EAEA,IAAME,YAAmC,GAAG;IAC1CJ,sBAAsB,EAAtBA,sBAD0C;IAE1CC,yBAAyB,EAAzBA,yBAF0C;IAG1CE,KAAK,EAALA,KAH0C;IAI1CN,aAAa,EAAbA,aAJ0C;IAK1CC,QAAQ,EAARA;EAL0C,CAA5C;EAQA,oBACE,KAAC,iBAAD;IAAmB,KAAK,EAAEM,YAA1B;IAAA,uBACE,KAAC,IAAD;MACE,GAAG,EAAEb,kBAAkB,CAACG,YAAD,EAAeQ,GAAf;IADzB,GAEMH,UAFN;MAGE,uBAAoB,EAHtB;MAIE,2BAAyBC;IAJ3B;EADF,EADF;AAUD,CA/BgC,CAA5B"}
1
+ {"version":3,"file":"Accordion.js","names":["forwardRef","useRef","useState","AccordionProvider","useScope","assignMultipleRefs","Accordion","props","forwardedRef","as","Comp","expandedIndex","onChange","otherProps","childrenHeaderHasFocus","setChildrenHeaderHasFocus","ref","scope","contextValue"],"sources":["../../../src/Accordion/Accordion.tsx"],"sourcesContent":["import type {\n ElementType,\n HTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n} from 'react';\nimport { forwardRef, useRef, useState } from 'react';\n\nimport type { AccordionContextProps } from './context';\nimport { AccordionProvider } from './context';\nimport { useScope } from '../hooks';\nimport { assignMultipleRefs } from '../utils';\n\nexport interface AccordionProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n expandedIndex?: number;\n onChange?: (\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\n index: number\n ) => void;\n}\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n function Accordion(props, forwardedRef) {\n const {\n as: Comp = 'div',\n expandedIndex = -1,\n onChange,\n ...otherProps\n } = props;\n const [childrenHeaderHasFocus, setChildrenHeaderHasFocus] = useState(false);\n const ref = useRef<HTMLDivElement>();\n\n const scope = useScope(ref);\n\n const contextValue: AccordionContextProps = {\n childrenHeaderHasFocus,\n setChildrenHeaderHasFocus,\n scope,\n expandedIndex,\n onChange,\n };\n\n return (\n <AccordionProvider value={contextValue}>\n <Comp\n ref={assignMultipleRefs(forwardedRef, ref)}\n {...otherProps}\n data-accordion-root=\"\"\n data-children-has-focus={childrenHeaderHasFocus}\n />\n </AccordionProvider>\n );\n }\n);\n"],"mappings":";;;;AAOA,SAASA,UAAT,EAAqBC,MAArB,EAA6BC,QAA7B,QAA6C,OAA7C;AAGA,SAASC,iBAAT,QAAkC,WAAlC;AACA,SAASC,QAAT,QAAyB,UAAzB;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAcA,OAAO,IAAMC,SAAS,gBAAGN,UAAU,CACjC,SAASM,SAAT,CAAmBC,KAAnB,EAA0BC,YAA1B,EAAwC;EACtC,gBAKID,KALJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,KADb;EAAA,2BAKIH,KALJ,CAEEI,aAFF;EAAA,IAEEA,aAFF,qCAEkB,CAAC,CAFnB;EAAA,IAGEC,QAHF,GAKIL,KALJ,CAGEK,QAHF;EAAA,IAIKC,UAJL,4BAKIN,KALJ;;EAMA,gBAA4DL,QAAQ,CAAC,KAAD,CAApE;EAAA;EAAA,IAAOY,sBAAP;EAAA,IAA+BC,yBAA/B;;EACA,IAAMC,GAAG,GAAGf,MAAM,EAAlB;EAEA,IAAMgB,KAAK,GAAGb,QAAQ,CAACY,GAAD,CAAtB;EAEA,IAAME,YAAmC,GAAG;IAC1CJ,sBAAsB,EAAtBA,sBAD0C;IAE1CC,yBAAyB,EAAzBA,yBAF0C;IAG1CE,KAAK,EAALA,KAH0C;IAI1CN,aAAa,EAAbA,aAJ0C;IAK1CC,QAAQ,EAARA;EAL0C,CAA5C;EAQA,oBACE,KAAC,iBAAD;IAAmB,KAAK,EAAEM,YAA1B;IAAA,uBACE,KAAC,IAAD;MACE,GAAG,EAAEb,kBAAkB,CAACG,YAAD,EAAeQ,GAAf;IADzB,GAEMH,UAFN;MAGE,uBAAoB,EAHtB;MAIE,2BAAyBC;IAJ3B;EADF,EADF;AAUD,CA/BgC,CAA5B"}
@@ -1,6 +1,6 @@
1
- import type { HTMLAttributes, ElementType } from 'react';
2
- export interface AccordionBodyProps extends HTMLAttributes<HTMLDivElement> {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- }
6
- export declare const AccordionBody: import("react").ForwardRefExoticComponent<AccordionBodyProps & import("react").RefAttributes<HTMLDivElement>>;
1
+ import type { HTMLAttributes, ElementType } from 'react';
2
+ export interface AccordionBodyProps extends HTMLAttributes<HTMLDivElement> {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ }
6
+ export declare const AccordionBody: import("react").ForwardRefExoticComponent<AccordionBodyProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionBody.js","names":["forwardRef","useState","useEffect","useRef","useAccordionItemContext","useAccordionContext","bodyScopeQuery","scopeQuery","assignMultipleRefs","AccordionBody","props","forwardedRef","as","Comp","otherProps","accordionItemContext","accordionContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","Boolean","expandedIndex","headerId","bodyId","undefined"],"sources":["../../../src/Accordion/AccordionBody.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType } from 'react';\r\nimport { forwardRef, useState, useEffect, useRef } from 'react';\r\n\r\nimport { useAccordionItemContext, useAccordionContext } from './context';\r\nimport { bodyScopeQuery as scopeQuery } from './scopeQuery';\r\nimport { assignMultipleRefs } from '../utils';\r\n\r\nexport interface AccordionBodyProps extends HTMLAttributes<HTMLDivElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n}\r\n\r\nexport const AccordionBody = forwardRef<HTMLDivElement, AccordionBodyProps>(\r\n function AccordionBody(props, forwardedRef) {\r\n const { as: Comp = 'div', ...otherProps } = props;\r\n const accordionItemContext = useAccordionItemContext();\r\n const accordionContext = useAccordionContext();\r\n const ref = useRef<HTMLDivElement>();\r\n const [index, setIndex] = useState<number>();\r\n\r\n if (!accordionItemContext) {\r\n throw new Error('Missing parent <Accordion /> component');\r\n }\r\n\r\n useEffect(() => {\r\n if (accordionContext) {\r\n const allHeaders =\r\n accordionContext.scope.current.queryAllNodes(scopeQuery);\r\n\r\n const index = allHeaders.findIndex((e) => e === ref.current);\r\n setIndex(index);\r\n }\r\n }, [accordionContext]);\r\n\r\n const expanded = Boolean(\r\n accordionItemContext.expanded ||\r\n (accordionContext && accordionContext.expandedIndex === index)\r\n );\r\n\r\n return (\r\n <Comp\r\n ref={assignMultipleRefs(forwardedRef, ref)}\r\n {...otherProps}\r\n aria-labelledby={accordionItemContext.headerId}\r\n id={accordionItemContext.bodyId}\r\n role=\"region\"\r\n data-accordion-body=\"\"\r\n hidden={expanded ? undefined : 'hidden'}\r\n />\r\n );\r\n }\r\n);\r\n"],"mappings":";;;;AACA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,SAA/B,EAA0CC,MAA1C,QAAwD,OAAxD;AAEA,SAASC,uBAAT,EAAkCC,mBAAlC,QAA6D,WAA7D;AACA,SAASC,cAAc,IAAIC,UAA3B,QAA6C,cAA7C;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAOA,OAAO,IAAMC,aAAa,gBAAGT,UAAU,CACrC,SAASS,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;EAC1C,gBAA4CD,KAA5C,CAAQE,EAAR;EAAA,IAAYC,IAAZ,0BAAmB,KAAnB;EAAA,IAA6BC,UAA7B,4BAA4CJ,KAA5C;;EACA,IAAMK,oBAAoB,GAAGX,uBAAuB,EAApD;EACA,IAAMY,gBAAgB,GAAGX,mBAAmB,EAA5C;EACA,IAAMY,GAAG,GAAGd,MAAM,EAAlB;;EACA,gBAA0BF,QAAQ,EAAlC;EAAA;EAAA,IAAOiB,KAAP;EAAA,IAAcC,QAAd;;EAEA,IAAI,CAACJ,oBAAL,EAA2B;IACzB,MAAM,IAAIK,KAAJ,CAAU,wCAAV,CAAN;EACD;;EAEDlB,SAAS,CAAC,YAAM;IACd,IAAIc,gBAAJ,EAAsB;MACpB,IAAMK,UAAU,GACdL,gBAAgB,CAACM,KAAjB,CAAuBC,OAAvB,CAA+BC,aAA/B,CAA6CjB,UAA7C,CADF;;MAGA,IAAMW,MAAK,GAAGG,UAAU,CAACI,SAAX,CAAqB,UAACC,CAAD;QAAA,OAAOA,CAAC,KAAKT,GAAG,CAACM,OAAjB;MAAA,CAArB,CAAd;;MACAJ,QAAQ,CAACD,MAAD,CAAR;IACD;EACF,CARQ,EAQN,CAACF,gBAAD,CARM,CAAT;EAUA,IAAMW,QAAQ,GAAGC,OAAO,CACtBb,oBAAoB,CAACY,QAArB,IACGX,gBAAgB,IAAIA,gBAAgB,CAACa,aAAjB,KAAmCX,KAFpC,CAAxB;EAKA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEV,kBAAkB,CAACG,YAAD,EAAeM,GAAf;EADzB,GAEMH,UAFN;IAGE,mBAAiBC,oBAAoB,CAACe,QAHxC;IAIE,EAAE,EAAEf,oBAAoB,CAACgB,MAJ3B;IAKE,IAAI,EAAC,QALP;IAME,uBAAoB,EANtB;IAOE,MAAM,EAAEJ,QAAQ,GAAGK,SAAH,GAAe;EAPjC,GADF;AAWD,CAtCoC,CAAhC"}
1
+ {"version":3,"file":"AccordionBody.js","names":["forwardRef","useState","useEffect","useRef","useAccordionItemContext","useAccordionContext","bodyScopeQuery","scopeQuery","assignMultipleRefs","AccordionBody","props","forwardedRef","as","Comp","otherProps","accordionItemContext","accordionContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","Boolean","expandedIndex","headerId","bodyId","undefined"],"sources":["../../../src/Accordion/AccordionBody.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType } from 'react';\nimport { forwardRef, useState, useEffect, useRef } from 'react';\n\nimport { useAccordionItemContext, useAccordionContext } from './context';\nimport { bodyScopeQuery as scopeQuery } from './scopeQuery';\nimport { assignMultipleRefs } from '../utils';\n\nexport interface AccordionBodyProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n}\n\nexport const AccordionBody = forwardRef<HTMLDivElement, AccordionBodyProps>(\n function AccordionBody(props, forwardedRef) {\n const { as: Comp = 'div', ...otherProps } = props;\n const accordionItemContext = useAccordionItemContext();\n const accordionContext = useAccordionContext();\n const ref = useRef<HTMLDivElement>();\n const [index, setIndex] = useState<number>();\n\n if (!accordionItemContext) {\n throw new Error('Missing parent <Accordion /> component');\n }\n\n useEffect(() => {\n if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery);\n\n const index = allHeaders.findIndex((e) => e === ref.current);\n setIndex(index);\n }\n }, [accordionContext]);\n\n const expanded = Boolean(\n accordionItemContext.expanded ||\n (accordionContext && accordionContext.expandedIndex === index)\n );\n\n return (\n <Comp\n ref={assignMultipleRefs(forwardedRef, ref)}\n {...otherProps}\n aria-labelledby={accordionItemContext.headerId}\n id={accordionItemContext.bodyId}\n role=\"region\"\n data-accordion-body=\"\"\n hidden={expanded ? undefined : 'hidden'}\n />\n );\n }\n);\n"],"mappings":";;;;AACA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,SAA/B,EAA0CC,MAA1C,QAAwD,OAAxD;AAEA,SAASC,uBAAT,EAAkCC,mBAAlC,QAA6D,WAA7D;AACA,SAASC,cAAc,IAAIC,UAA3B,QAA6C,cAA7C;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAOA,OAAO,IAAMC,aAAa,gBAAGT,UAAU,CACrC,SAASS,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;EAC1C,gBAA4CD,KAA5C,CAAQE,EAAR;EAAA,IAAYC,IAAZ,0BAAmB,KAAnB;EAAA,IAA6BC,UAA7B,4BAA4CJ,KAA5C;;EACA,IAAMK,oBAAoB,GAAGX,uBAAuB,EAApD;EACA,IAAMY,gBAAgB,GAAGX,mBAAmB,EAA5C;EACA,IAAMY,GAAG,GAAGd,MAAM,EAAlB;;EACA,gBAA0BF,QAAQ,EAAlC;EAAA;EAAA,IAAOiB,KAAP;EAAA,IAAcC,QAAd;;EAEA,IAAI,CAACJ,oBAAL,EAA2B;IACzB,MAAM,IAAIK,KAAJ,CAAU,wCAAV,CAAN;EACD;;EAEDlB,SAAS,CAAC,YAAM;IACd,IAAIc,gBAAJ,EAAsB;MACpB,IAAMK,UAAU,GACdL,gBAAgB,CAACM,KAAjB,CAAuBC,OAAvB,CAA+BC,aAA/B,CAA6CjB,UAA7C,CADF;;MAGA,IAAMW,MAAK,GAAGG,UAAU,CAACI,SAAX,CAAqB,UAACC,CAAD;QAAA,OAAOA,CAAC,KAAKT,GAAG,CAACM,OAAjB;MAAA,CAArB,CAAd;;MACAJ,QAAQ,CAACD,MAAD,CAAR;IACD;EACF,CARQ,EAQN,CAACF,gBAAD,CARM,CAAT;EAUA,IAAMW,QAAQ,GAAGC,OAAO,CACtBb,oBAAoB,CAACY,QAArB,IACGX,gBAAgB,IAAIA,gBAAgB,CAACa,aAAjB,KAAmCX,KAFpC,CAAxB;EAKA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEV,kBAAkB,CAACG,YAAD,EAAeM,GAAf;EADzB,GAEMH,UAFN;IAGE,mBAAiBC,oBAAoB,CAACe,QAHxC;IAIE,EAAE,EAAEf,oBAAoB,CAACgB,MAJ3B;IAKE,IAAI,EAAC,QALP;IAME,uBAAoB,EANtB;IAOE,MAAM,EAAEJ,QAAQ,GAAGK,SAAH,GAAe;EAPjC,GADF;AAWD,CAtCoC,CAAhC"}
@@ -1,7 +1,7 @@
1
- import type { HTMLAttributes, ElementType, ReactNode } from 'react';
2
- export interface AccordionHeaderProps extends HTMLAttributes<HTMLDivElement> {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- children?: ReactNode;
6
- }
7
- export declare const AccordionHeader: import("react").ForwardRefExoticComponent<AccordionHeaderProps & import("react").RefAttributes<HTMLDivElement>>;
1
+ import type { HTMLAttributes, ElementType, ReactNode } from 'react';
2
+ export interface AccordionHeaderProps extends HTMLAttributes<HTMLDivElement> {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ children?: ReactNode;
6
+ }
7
+ export declare const AccordionHeader: import("react").ForwardRefExoticComponent<AccordionHeaderProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHeader.js","names":["forwardRef","useRef","useState","useEffect","wrapEvent","assignMultipleRefs","getCircularIndex","useAccordionContext","useAccordionItemContext","headerScopeQuery","scopeQuery","AccordionHeader","props","forwardedRef","as","Comp","onKeyDown","onClickProp","onClick","onFocus","onBlur","otherProps","accordionContext","accordionItemContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","expandedIndex","onChange","handleKeyDown","key","preventDefault","length","nextIndex","focus","handleFocus","childrenHeaderHasFocus","setChildrenHeaderHasFocus","handleBlur","newFocusIsHeader","header","relatedTarget","Boolean","headerId","bodyId","String"],"sources":["../../../src/Accordion/AccordionHeader.tsx"],"sourcesContent":["import type {\r\n HTMLAttributes,\r\n ElementType,\r\n ReactNode,\r\n MouseEvent,\r\n KeyboardEvent,\r\n FocusEvent,\r\n} from 'react';\r\nimport { forwardRef, useRef, useState, useEffect } from 'react';\r\n\r\nimport { wrapEvent, assignMultipleRefs, getCircularIndex } from '../utils';\r\nimport { useAccordionContext, useAccordionItemContext } from './context';\r\nimport { headerScopeQuery as scopeQuery } from './scopeQuery';\r\n\r\nexport interface AccordionHeaderProps extends HTMLAttributes<HTMLDivElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n}\r\n\r\nexport const AccordionHeader = forwardRef<HTMLDivElement, AccordionHeaderProps>(\r\n function AccordionHeader(props, forwardedRef) {\r\n const {\r\n as: Comp = 'div',\r\n onKeyDown,\r\n onClick: onClickProp,\r\n onFocus,\r\n onBlur,\r\n ...otherProps\r\n } = props;\r\n const accordionContext = useAccordionContext();\r\n const accordionItemContext = useAccordionItemContext();\r\n const ref = useRef<HTMLDivElement>();\r\n const [index, setIndex] = useState<number | undefined>();\r\n\r\n if (!accordionItemContext) {\r\n throw new Error('Missing parent <Accordion /> component');\r\n }\r\n\r\n useEffect(() => {\r\n if (accordionContext) {\r\n const allHeaders =\r\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\r\n\r\n const index = allHeaders.findIndex((e) => e === ref.current);\r\n setIndex(index);\r\n }\r\n }, [accordionContext]);\r\n\r\n const onClick = wrapEvent(onClickProp, (e: MouseEvent<HTMLDivElement>) => {\r\n let index = 0;\r\n if (accordionItemContext.expanded) {\r\n index = -1;\r\n } else if (accordionContext) {\r\n const allHeaders =\r\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\r\n\r\n index = allHeaders.findIndex((e) => e === ref.current);\r\n if (index === accordionContext.expandedIndex) {\r\n index = -1;\r\n }\r\n accordionContext.onChange && accordionContext.onChange(e, index);\r\n }\r\n\r\n accordionItemContext.onChange &&\r\n accordionItemContext.onChange(e, index >= 0);\r\n });\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n switch (e.key) {\r\n case 'Enter':\r\n case ' ': {\r\n onClick(e as unknown as MouseEvent<HTMLDivElement>);\r\n e.preventDefault();\r\n break;\r\n }\r\n case 'ArrowUp':\r\n case 'ArrowDown':\r\n case 'Home':\r\n case 'End': {\r\n if (!accordionContext) {\r\n return;\r\n }\r\n const allHeaders =\r\n accordionContext.scope.current.queryAllNodes(scopeQuery);\r\n\r\n e.preventDefault();\r\n\r\n if (allHeaders.length === 0) {\r\n return;\r\n }\r\n\r\n let nextIndex = allHeaders.findIndex((e) => e === ref.current);\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n nextIndex += -1;\r\n break;\r\n case 'ArrowDown':\r\n nextIndex += +1;\r\n break;\r\n case 'Home':\r\n nextIndex = 0;\r\n break;\r\n case 'End':\r\n nextIndex = -1;\r\n break;\r\n }\r\n\r\n // We're sure it will not be null, because we already checked for allHeaders.length > 0 above\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n nextIndex = getCircularIndex(nextIndex, allHeaders.length)!;\r\n allHeaders[nextIndex] && allHeaders[nextIndex].focus();\r\n break;\r\n }\r\n default:\r\n return;\r\n }\r\n };\r\n\r\n const handleFocus = () => {\r\n if (accordionContext) {\r\n if (!accordionContext.childrenHeaderHasFocus) {\r\n // this is needed to avoid rerendering the parent and\r\n // messing up with the internal count for children/parent count\r\n accordionContext.setChildrenHeaderHasFocus(true);\r\n }\r\n }\r\n };\r\n\r\n const handleBlur = (e: FocusEvent<HTMLDivElement>) => {\r\n if (accordionContext) {\r\n const allHeaders =\r\n accordionContext.scope.current.queryAllNodes(scopeQuery);\r\n const newFocusIsHeader =\r\n allHeaders.findIndex((header) => header === e.relatedTarget) >= 0;\r\n\r\n // only remove focus flag if the focus went to some element\r\n // that is not an accordion header\r\n if (!newFocusIsHeader) {\r\n accordionContext.setChildrenHeaderHasFocus(false);\r\n }\r\n }\r\n };\r\n\r\n const expanded = Boolean(\r\n accordionItemContext.expanded ||\r\n (accordionContext && accordionContext.expandedIndex === index)\r\n );\r\n\r\n return (\r\n <Comp\r\n ref={assignMultipleRefs(ref, forwardedRef)}\r\n {...otherProps}\r\n id={accordionItemContext.headerId}\r\n aria-controls={accordionItemContext.bodyId}\r\n role=\"button\"\r\n data-accordion-header=\"\"\r\n tabIndex=\"0\"\r\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\r\n onFocus={wrapEvent(onFocus, handleFocus)}\r\n onBlur={wrapEvent(onBlur, handleBlur)}\r\n onClick={onClick}\r\n aria-expanded={String(expanded)}\r\n />\r\n );\r\n }\r\n);\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"AccordionHeader.js","names":["forwardRef","useRef","useState","useEffect","wrapEvent","assignMultipleRefs","getCircularIndex","useAccordionContext","useAccordionItemContext","headerScopeQuery","scopeQuery","AccordionHeader","props","forwardedRef","as","Comp","onKeyDown","onClickProp","onClick","onFocus","onBlur","otherProps","accordionContext","accordionItemContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","expandedIndex","onChange","handleKeyDown","key","preventDefault","length","nextIndex","focus","handleFocus","childrenHeaderHasFocus","setChildrenHeaderHasFocus","handleBlur","newFocusIsHeader","header","relatedTarget","Boolean","headerId","bodyId","String"],"sources":["../../../src/Accordion/AccordionHeader.tsx"],"sourcesContent":["import type {\n HTMLAttributes,\n ElementType,\n ReactNode,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n} from 'react';\nimport { forwardRef, useRef, useState, useEffect } from 'react';\n\nimport { wrapEvent, assignMultipleRefs, getCircularIndex } from '../utils';\nimport { useAccordionContext, useAccordionItemContext } from './context';\nimport { headerScopeQuery as scopeQuery } from './scopeQuery';\n\nexport interface AccordionHeaderProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n}\n\nexport const AccordionHeader = forwardRef<HTMLDivElement, AccordionHeaderProps>(\n function AccordionHeader(props, forwardedRef) {\n const {\n as: Comp = 'div',\n onKeyDown,\n onClick: onClickProp,\n onFocus,\n onBlur,\n ...otherProps\n } = props;\n const accordionContext = useAccordionContext();\n const accordionItemContext = useAccordionItemContext();\n const ref = useRef<HTMLDivElement>();\n const [index, setIndex] = useState<number | undefined>();\n\n if (!accordionItemContext) {\n throw new Error('Missing parent <Accordion /> component');\n }\n\n useEffect(() => {\n if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\n\n const index = allHeaders.findIndex((e) => e === ref.current);\n setIndex(index);\n }\n }, [accordionContext]);\n\n const onClick = wrapEvent(onClickProp, (e: MouseEvent<HTMLDivElement>) => {\n let index = 0;\n if (accordionItemContext.expanded) {\n index = -1;\n } else if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\n\n index = allHeaders.findIndex((e) => e === ref.current);\n if (index === accordionContext.expandedIndex) {\n index = -1;\n }\n accordionContext.onChange && accordionContext.onChange(e, index);\n }\n\n accordionItemContext.onChange &&\n accordionItemContext.onChange(e, index >= 0);\n });\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n switch (e.key) {\n case 'Enter':\n case ' ': {\n onClick(e as unknown as MouseEvent<HTMLDivElement>);\n e.preventDefault();\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End': {\n if (!accordionContext) {\n return;\n }\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery);\n\n e.preventDefault();\n\n if (allHeaders.length === 0) {\n return;\n }\n\n let nextIndex = allHeaders.findIndex((e) => e === ref.current);\n switch (e.key) {\n case 'ArrowUp':\n nextIndex += -1;\n break;\n case 'ArrowDown':\n nextIndex += +1;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = -1;\n break;\n }\n\n // We're sure it will not be null, because we already checked for allHeaders.length > 0 above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n nextIndex = getCircularIndex(nextIndex, allHeaders.length)!;\n allHeaders[nextIndex] && allHeaders[nextIndex].focus();\n break;\n }\n default:\n return;\n }\n };\n\n const handleFocus = () => {\n if (accordionContext) {\n if (!accordionContext.childrenHeaderHasFocus) {\n // this is needed to avoid rerendering the parent and\n // messing up with the internal count for children/parent count\n accordionContext.setChildrenHeaderHasFocus(true);\n }\n }\n };\n\n const handleBlur = (e: FocusEvent<HTMLDivElement>) => {\n if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery);\n const newFocusIsHeader =\n allHeaders.findIndex((header) => header === e.relatedTarget) >= 0;\n\n // only remove focus flag if the focus went to some element\n // that is not an accordion header\n if (!newFocusIsHeader) {\n accordionContext.setChildrenHeaderHasFocus(false);\n }\n }\n };\n\n const expanded = Boolean(\n accordionItemContext.expanded ||\n (accordionContext && accordionContext.expandedIndex === index)\n );\n\n return (\n <Comp\n ref={assignMultipleRefs(ref, forwardedRef)}\n {...otherProps}\n id={accordionItemContext.headerId}\n aria-controls={accordionItemContext.bodyId}\n role=\"button\"\n data-accordion-header=\"\"\n tabIndex=\"0\"\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n onFocus={wrapEvent(onFocus, handleFocus)}\n onBlur={wrapEvent(onBlur, handleBlur)}\n onClick={onClick}\n aria-expanded={String(expanded)}\n />\n );\n }\n);\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { HTMLAttributes, ElementType, ReactNode, KeyboardEvent, MouseEvent } from 'react';
2
- export interface AccordionItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- children?: ReactNode;
6
- expanded?: boolean;
7
- onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, value: boolean) => void;
8
- }
9
- export declare const AccordionItem: import("react").ForwardRefExoticComponent<AccordionItemProps & import("react").RefAttributes<HTMLDivElement>>;
1
+ import type { HTMLAttributes, ElementType, ReactNode, KeyboardEvent, MouseEvent } from 'react';
2
+ export interface AccordionItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ children?: ReactNode;
6
+ expanded?: boolean;
7
+ onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, value: boolean) => void;
8
+ }
9
+ export declare const AccordionItem: import("react").ForwardRefExoticComponent<AccordionItemProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.js","names":["Fragment","forwardRef","useId","AccordionItemProvider","AccordionItem","props","forwardedRef","as","Comp","expanded","onChange","otherProps","id","headerId","undefined","bodyId","contextValue"],"sources":["../../../src/Accordion/AccordionItem.tsx"],"sourcesContent":["import type {\r\n HTMLAttributes,\r\n ElementType,\r\n ReactNode,\r\n KeyboardEvent,\r\n MouseEvent,\r\n} from 'react';\r\nimport { Fragment, forwardRef, useId } from 'react';\r\n\r\nimport type { AccordionItemContextProps } from './context';\r\nimport { AccordionItemProvider } from './context';\r\n\r\nexport interface AccordionItemProps\r\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n expanded?: boolean;\r\n onChange?: (\r\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\r\n value: boolean\r\n ) => void;\r\n}\r\n\r\nexport const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(\r\n function AccordionItem(props, forwardedRef) {\r\n const {\r\n as: Comp = Fragment,\r\n expanded = false,\r\n onChange,\r\n ...otherProps\r\n } = props;\r\n const id = useId();\r\n\r\n const headerId = id ? `accordion-header-${id}` : undefined;\r\n const bodyId = id ? `accordion-body-${id}` : undefined;\r\n const contextValue: AccordionItemContextProps = {\r\n headerId,\r\n bodyId,\r\n expanded,\r\n onChange,\r\n };\r\n\r\n return (\r\n <AccordionItemProvider value={contextValue}>\r\n <Comp ref={forwardedRef} {...otherProps} />\r\n </AccordionItemProvider>\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AAOA,SAASA,QAAT,EAAmBC,UAAnB,EAA+BC,KAA/B,QAA4C,OAA5C;AAGA,SAASC,qBAAT,QAAsC,WAAtC;;AAcA,OAAO,IAAMC,aAAa,gBAAGH,UAAU,CACrC,SAASG,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;EAC1C,gBAKID,KALJ,CACEE,EADF;EAAA,IACMC,IADN,0BACaR,QADb;EAAA,sBAKIK,KALJ,CAEEI,QAFF;EAAA,IAEEA,QAFF,gCAEa,KAFb;EAAA,IAGEC,QAHF,GAKIL,KALJ,CAGEK,QAHF;EAAA,IAIKC,UAJL,4BAKIN,KALJ;;EAMA,IAAMO,EAAE,GAAGV,KAAK,EAAhB;EAEA,IAAMW,QAAQ,GAAGD,EAAE,8BAAuBA,EAAvB,IAA8BE,SAAjD;EACA,IAAMC,MAAM,GAAGH,EAAE,4BAAqBA,EAArB,IAA4BE,SAA7C;EACA,IAAME,YAAuC,GAAG;IAC9CH,QAAQ,EAARA,QAD8C;IAE9CE,MAAM,EAANA,MAF8C;IAG9CN,QAAQ,EAARA,QAH8C;IAI9CC,QAAQ,EAARA;EAJ8C,CAAhD;EAOA,oBACE,KAAC,qBAAD;IAAuB,KAAK,EAAEM,YAA9B;IAAA,uBACE,KAAC,IAAD;MAAM,GAAG,EAAEV;IAAX,GAA6BK,UAA7B;EADF,EADF;AAKD,CAxBoC,CAAhC"}
1
+ {"version":3,"file":"AccordionItem.js","names":["Fragment","forwardRef","useId","AccordionItemProvider","AccordionItem","props","forwardedRef","as","Comp","expanded","onChange","otherProps","id","headerId","undefined","bodyId","contextValue"],"sources":["../../../src/Accordion/AccordionItem.tsx"],"sourcesContent":["import type {\n HTMLAttributes,\n ElementType,\n ReactNode,\n KeyboardEvent,\n MouseEvent,\n} from 'react';\nimport { Fragment, forwardRef, useId } from 'react';\n\nimport type { AccordionItemContextProps } from './context';\nimport { AccordionItemProvider } from './context';\n\nexport interface AccordionItemProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n expanded?: boolean;\n onChange?: (\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\n value: boolean\n ) => void;\n}\n\nexport const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(\n function AccordionItem(props, forwardedRef) {\n const {\n as: Comp = Fragment,\n expanded = false,\n onChange,\n ...otherProps\n } = props;\n const id = useId();\n\n const headerId = id ? `accordion-header-${id}` : undefined;\n const bodyId = id ? `accordion-body-${id}` : undefined;\n const contextValue: AccordionItemContextProps = {\n headerId,\n bodyId,\n expanded,\n onChange,\n };\n\n return (\n <AccordionItemProvider value={contextValue}>\n <Comp ref={forwardedRef} {...otherProps} />\n </AccordionItemProvider>\n );\n }\n);\n"],"mappings":";;;AAOA,SAASA,QAAT,EAAmBC,UAAnB,EAA+BC,KAA/B,QAA4C,OAA5C;AAGA,SAASC,qBAAT,QAAsC,WAAtC;;AAcA,OAAO,IAAMC,aAAa,gBAAGH,UAAU,CACrC,SAASG,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;EAC1C,gBAKID,KALJ,CACEE,EADF;EAAA,IACMC,IADN,0BACaR,QADb;EAAA,sBAKIK,KALJ,CAEEI,QAFF;EAAA,IAEEA,QAFF,gCAEa,KAFb;EAAA,IAGEC,QAHF,GAKIL,KALJ,CAGEK,QAHF;EAAA,IAIKC,UAJL,4BAKIN,KALJ;;EAMA,IAAMO,EAAE,GAAGV,KAAK,EAAhB;EAEA,IAAMW,QAAQ,GAAGD,EAAE,8BAAuBA,EAAvB,IAA8BE,SAAjD;EACA,IAAMC,MAAM,GAAGH,EAAE,4BAAqBA,EAArB,IAA4BE,SAA7C;EACA,IAAME,YAAuC,GAAG;IAC9CH,QAAQ,EAARA,QAD8C;IAE9CE,MAAM,EAANA,MAF8C;IAG9CN,QAAQ,EAARA,QAH8C;IAI9CC,QAAQ,EAARA;EAJ8C,CAAhD;EAOA,oBACE,KAAC,qBAAD;IAAuB,KAAK,EAAEM,YAA9B;IAAA,uBACE,KAAC,IAAD;MAAM,GAAG,EAAEV;IAAX,GAA6BK,UAA7B;EADF,EADF;AAKD,CAxBoC,CAAhC"}
@@ -1,19 +1,19 @@
1
- import type { KeyboardEvent, MouseEvent } from 'react';
2
- import type { Scope } from '../hooks/useScope';
3
- export interface AccordionContextProps {
4
- childrenHeaderHasFocus: boolean;
5
- setChildrenHeaderHasFocus: (value: boolean) => void;
6
- scope: Scope<HTMLElement>;
7
- expandedIndex: number;
8
- onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, index: number) => void;
9
- }
10
- export declare const AccordionProvider: import("react").Provider<AccordionContextProps | null>;
11
- export declare const useAccordionContext: () => AccordionContextProps | null;
12
- export interface AccordionItemContextProps {
13
- headerId: string | undefined;
14
- bodyId: string | undefined;
15
- expanded: boolean;
16
- onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, value: boolean) => void;
17
- }
18
- export declare const AccordionItemProvider: import("react").Provider<AccordionItemContextProps | null>;
19
- export declare const useAccordionItemContext: () => AccordionItemContextProps | null;
1
+ import type { KeyboardEvent, MouseEvent } from 'react';
2
+ import type { Scope } from '../hooks/useScope';
3
+ export interface AccordionContextProps {
4
+ childrenHeaderHasFocus: boolean;
5
+ setChildrenHeaderHasFocus: (value: boolean) => void;
6
+ scope: Scope<HTMLElement>;
7
+ expandedIndex: number;
8
+ onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, index: number) => void;
9
+ }
10
+ export declare const AccordionProvider: import("react").Provider<AccordionContextProps | null>;
11
+ export declare const useAccordionContext: () => AccordionContextProps | null;
12
+ export interface AccordionItemContextProps {
13
+ headerId: string | undefined;
14
+ bodyId: string | undefined;
15
+ expanded: boolean;
16
+ onChange?: (e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>, value: boolean) => void;
17
+ }
18
+ export declare const AccordionItemProvider: import("react").Provider<AccordionItemContextProps | null>;
19
+ export declare const useAccordionItemContext: () => AccordionItemContextProps | null;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["useContext","createContext","accordionContext","AccordionProvider","Provider","useAccordionContext","accordionItemContext","AccordionItemProvider","useAccordionItemContext"],"sources":["../../../src/Accordion/context.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\r\nimport { useContext, createContext } from 'react';\r\n\r\nimport type { Scope } from '../hooks/useScope';\r\n\r\n// AccordionGroup Component\r\nexport interface AccordionContextProps {\r\n childrenHeaderHasFocus: boolean;\r\n setChildrenHeaderHasFocus: (value: boolean) => void;\r\n scope: Scope<HTMLElement>;\r\n expandedIndex: number;\r\n onChange?: (\r\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\r\n index: number\r\n ) => void;\r\n}\r\n\r\nconst accordionContext = createContext<AccordionContextProps | null>(null);\r\nexport const { Provider: AccordionProvider } = accordionContext;\r\nexport const useAccordionContext = () => useContext(accordionContext);\r\n\r\n// Accordion Component\r\nexport interface AccordionItemContextProps {\r\n headerId: string | undefined;\r\n bodyId: string | undefined;\r\n expanded: boolean;\r\n onChange?: (\r\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\r\n value: boolean\r\n ) => void;\r\n}\r\n\r\nconst accordionItemContext = createContext<AccordionItemContextProps | null>(\r\n null\r\n);\r\nexport const { Provider: AccordionItemProvider } = accordionItemContext;\r\nexport const useAccordionItemContext = () => useContext(accordionItemContext);\r\n"],"mappings":"AACA,SAASA,UAAT,EAAqBC,aAArB,QAA0C,OAA1C;AAgBA,IAAMC,gBAAgB,gBAAGD,aAAa,CAA+B,IAA/B,CAAtC;AACO,IAAkBE,iBAAlB,GAAwCD,gBAAxC,CAAQE,QAAR;;AACP,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB;EAAA,OAAML,UAAU,CAACE,gBAAD,CAAhB;AAAA,CAA5B,C,CAEP;;AAWA,IAAMI,oBAAoB,gBAAGL,aAAa,CACxC,IADwC,CAA1C;AAGO,IAAkBM,qBAAlB,GAA4CD,oBAA5C,CAAQF,QAAR;;AACP,OAAO,IAAMI,uBAAuB,GAAG,SAA1BA,uBAA0B;EAAA,OAAMR,UAAU,CAACM,oBAAD,CAAhB;AAAA,CAAhC"}
1
+ {"version":3,"file":"context.js","names":["useContext","createContext","accordionContext","AccordionProvider","Provider","useAccordionContext","accordionItemContext","AccordionItemProvider","useAccordionItemContext"],"sources":["../../../src/Accordion/context.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\nimport { useContext, createContext } from 'react';\n\nimport type { Scope } from '../hooks/useScope';\n\n// AccordionGroup Component\nexport interface AccordionContextProps {\n childrenHeaderHasFocus: boolean;\n setChildrenHeaderHasFocus: (value: boolean) => void;\n scope: Scope<HTMLElement>;\n expandedIndex: number;\n onChange?: (\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\n index: number\n ) => void;\n}\n\nconst accordionContext = createContext<AccordionContextProps | null>(null);\nexport const { Provider: AccordionProvider } = accordionContext;\nexport const useAccordionContext = () => useContext(accordionContext);\n\n// Accordion Component\nexport interface AccordionItemContextProps {\n headerId: string | undefined;\n bodyId: string | undefined;\n expanded: boolean;\n onChange?: (\n e: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>,\n value: boolean\n ) => void;\n}\n\nconst accordionItemContext = createContext<AccordionItemContextProps | null>(\n null\n);\nexport const { Provider: AccordionItemProvider } = accordionItemContext;\nexport const useAccordionItemContext = () => useContext(accordionItemContext);\n"],"mappings":"AACA,SAASA,UAAT,EAAqBC,aAArB,QAA0C,OAA1C;AAgBA,IAAMC,gBAAgB,gBAAGD,aAAa,CAA+B,IAA/B,CAAtC;AACO,IAAkBE,iBAAlB,GAAwCD,gBAAxC,CAAQE,QAAR;;AACP,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB;EAAA,OAAML,UAAU,CAACE,gBAAD,CAAhB;AAAA,CAA5B,C,CAEP;;AAWA,IAAMI,oBAAoB,gBAAGL,aAAa,CACxC,IADwC,CAA1C;AAGO,IAAkBM,qBAAlB,GAA4CD,oBAA5C,CAAQF,QAAR;;AACP,OAAO,IAAMI,uBAAuB,GAAG,SAA1BA,uBAA0B;EAAA,OAAMR,UAAU,CAACM,oBAAD,CAAhB;AAAA,CAAhC"}
@@ -1,4 +1,4 @@
1
- export * from './Accordion';
2
- export * from './AccordionItem';
3
- export * from './AccordionHeader';
4
- export * from './AccordionBody';
1
+ export * from './Accordion';
2
+ export * from './AccordionItem';
3
+ export * from './AccordionHeader';
4
+ export * from './AccordionBody';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/Accordion/index.ts"],"sourcesContent":["export * from './Accordion';\r\nexport * from './AccordionItem';\r\nexport * from './AccordionHeader';\r\nexport * from './AccordionBody';\r\n"],"mappings":"AAAA,cAAc,aAAd;AACA,cAAc,iBAAd;AACA,cAAc,mBAAd;AACA,cAAc,iBAAd"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/Accordion/index.ts"],"sourcesContent":["export * from './Accordion';\nexport * from './AccordionItem';\nexport * from './AccordionHeader';\nexport * from './AccordionBody';\n"],"mappings":"AAAA,cAAc,aAAd;AACA,cAAc,iBAAd;AACA,cAAc,mBAAd;AACA,cAAc,iBAAd"}
@@ -1,2 +1,2 @@
1
- export declare function headerScopeQuery(type: string, props: Record<string, unknown>): boolean;
2
- export declare function bodyScopeQuery(type: string, props: Record<string, unknown>): boolean;
1
+ export declare function headerScopeQuery(type: string, props: Record<string, unknown>): boolean;
2
+ export declare function bodyScopeQuery(type: string, props: Record<string, unknown>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"scopeQuery.js","names":["headerScopeQuery","type","props","bodyScopeQuery"],"sources":["../../../src/Accordion/scopeQuery.ts"],"sourcesContent":["export function headerScopeQuery(type: string, props: Record<string, unknown>) {\r\n return props['data-accordion-header'] === '';\r\n}\r\n\r\nexport function bodyScopeQuery(type: string, props: Record<string, unknown>) {\r\n return props['data-accordion-body'] === '';\r\n}\r\n"],"mappings":"AAAA,OAAO,SAASA,gBAAT,CAA0BC,IAA1B,EAAwCC,KAAxC,EAAwE;EAC7E,OAAOA,KAAK,CAAC,uBAAD,CAAL,KAAmC,EAA1C;AACD;AAED,OAAO,SAASC,cAAT,CAAwBF,IAAxB,EAAsCC,KAAtC,EAAsE;EAC3E,OAAOA,KAAK,CAAC,qBAAD,CAAL,KAAiC,EAAxC;AACD"}
1
+ {"version":3,"file":"scopeQuery.js","names":["headerScopeQuery","type","props","bodyScopeQuery"],"sources":["../../../src/Accordion/scopeQuery.ts"],"sourcesContent":["export function headerScopeQuery(type: string, props: Record<string, unknown>) {\n return props['data-accordion-header'] === '';\n}\n\nexport function bodyScopeQuery(type: string, props: Record<string, unknown>) {\n return props['data-accordion-body'] === '';\n}\n"],"mappings":"AAAA,OAAO,SAASA,gBAAT,CAA0BC,IAA1B,EAAwCC,KAAxC,EAAwE;EAC7E,OAAOA,KAAK,CAAC,uBAAD,CAAL,KAAmC,EAA1C;AACD;AAED,OAAO,SAASC,cAAT,CAAwBF,IAAxB,EAAsCC,KAAtC,EAAsE;EAC3E,OAAOA,KAAK,CAAC,qBAAD,CAAL,KAAiC,EAAxC;AACD"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export interface CarouselProps extends React.HTMLAttributes<HTMLElement> {
3
+ as?: React.ElementType<any>;
4
+ isRTL?: boolean;
5
+ currentSlide?: number;
6
+ slidesToShow?: number;
7
+ children?: React.ReactNode;
8
+ }
9
+ export declare const Carousel: React.ForwardRefExoticComponent<CarouselProps & React.RefAttributes<HTMLElement>>;
@@ -0,0 +1,38 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import React, { forwardRef, useMemo, useRef } from 'react';
4
+ import { assignMultipleRefs } from '../utils/assignRef';
5
+ import { CarouselProvider } from './context';
6
+ export var Carousel = forwardRef(function Carousel(_ref, forwardedRef) {
7
+ var _ref$as = _ref.as,
8
+ Comp = _ref$as === void 0 ? 'section' : _ref$as,
9
+ _ref$currentSlide = _ref.currentSlide,
10
+ currentSlide = _ref$currentSlide === void 0 ? 0 : _ref$currentSlide,
11
+ _ref$slidesToShow = _ref.slidesToShow,
12
+ slidesToShow = _ref$slidesToShow === void 0 ? 1 : _ref$slidesToShow,
13
+ _ref$isRTL = _ref.isRTL,
14
+ isRTL = _ref$isRTL === void 0 ? false : _ref$isRTL,
15
+ children = _ref.children,
16
+ otherProps = _objectWithoutProperties(_ref, ["as", "currentSlide", "slidesToShow", "isRTL", "children"]);
17
+
18
+ var containerRef = useRef(null);
19
+ var contextValue = useMemo(function () {
20
+ return {
21
+ slidesToShow: slidesToShow,
22
+ isRTL: isRTL,
23
+ currentSlide: currentSlide,
24
+ itemWidth: 100 / slidesToShow,
25
+ containerRef: containerRef
26
+ };
27
+ }, [currentSlide, isRTL, slidesToShow]);
28
+ return /*#__PURE__*/React.createElement(CarouselProvider, {
29
+ value: contextValue
30
+ }, /*#__PURE__*/React.createElement(Comp, _extends({
31
+ ref: assignMultipleRefs(forwardedRef, containerRef)
32
+ }, otherProps, {
33
+ role: "region",
34
+ "data-carousel-root": "",
35
+ "aria-roledescription": "carousel"
36
+ }), children));
37
+ });
38
+ //# sourceMappingURL=Carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Carousel/Carousel.tsx"],"names":["React","forwardRef","useMemo","useRef","assignMultipleRefs","CarouselProvider","Carousel","forwardedRef","as","Comp","currentSlide","slidesToShow","isRTL","children","otherProps","containerRef","contextValue","itemWidth"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,OAA5B,EAAqCC,MAArC,QAAmD,OAAnD;AACA,SAASC,kBAAT,QAAmC,oBAAnC;AACA,SAASC,gBAAT,QAAiC,WAAjC;AAUA,OAAO,IAAMC,QAAQ,GAAGL,UAAU,CAChC,SAASK,QAAT,OASEC,YATF,EAUE;AAAA,qBAREC,EAQF;AAAA,MARMC,IAQN,wBARa,SAQb;AAAA,+BAPEC,YAOF;AAAA,MAPEA,YAOF,kCAPiB,CAOjB;AAAA,+BANEC,YAMF;AAAA,MANEA,YAMF,kCANiB,CAMjB;AAAA,wBALEC,KAKF;AAAA,MALEA,KAKF,2BALU,KAKV;AAAA,MAJEC,QAIF,QAJEA,QAIF;AAAA,MAHKC,UAGL;;AACA,MAAMC,YAAY,GAAGZ,MAAM,CAAqB,IAArB,CAA3B;AACA,MAAMa,YAAY,GAAGd,OAAO,CAC1B;AAAA,WAAO;AACLS,MAAAA,YAAY,EAAZA,YADK;AAELC,MAAAA,KAAK,EAALA,KAFK;AAGLF,MAAAA,YAAY,EAAZA,YAHK;AAILO,MAAAA,SAAS,EAAE,MAAMN,YAJZ;AAKLI,MAAAA,YAAY,EAAZA;AALK,KAAP;AAAA,GAD0B,EAQ1B,CAACL,YAAD,EAAeE,KAAf,EAAsBD,YAAtB,CAR0B,CAA5B;AAWA,sBACE,oBAAC,gBAAD;AAAkB,IAAA,KAAK,EAAEK;AAAzB,kBACE,oBAAC,IAAD;AACE,IAAA,GAAG,EAAEZ,kBAAkB,CAACG,YAAD,EAAeQ,YAAf;AADzB,KAEMD,UAFN;AAGE,IAAA,IAAI,EAAC,QAHP;AAIE,0BAAmB,EAJrB;AAKE,4BAAqB;AALvB,MAOGD,QAPH,CADF,CADF;AAaD,CArC+B,CAA3B","sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { assignMultipleRefs } from '../utils/assignRef';\nimport { CarouselProvider } from './context';\n\nexport interface CarouselProps extends React.HTMLAttributes<HTMLElement> {\n as?: React.ElementType<any>;\n isRTL?: boolean;\n currentSlide?: number;\n slidesToShow?: number;\n children?: React.ReactNode;\n}\n\nexport const Carousel = forwardRef<HTMLElement, CarouselProps>(\n function Carousel(\n {\n as: Comp = 'section',\n currentSlide = 0,\n slidesToShow = 1,\n isRTL = false,\n children,\n ...otherProps\n },\n forwardedRef\n ) {\n const containerRef = useRef<HTMLElement | null>(null);\n const contextValue = useMemo(\n () => ({\n slidesToShow,\n isRTL,\n currentSlide,\n itemWidth: 100 / slidesToShow,\n containerRef,\n }),\n [currentSlide, isRTL, slidesToShow]\n );\n\n return (\n <CarouselProvider value={contextValue}>\n <Comp\n ref={assignMultipleRefs(forwardedRef, containerRef)}\n {...otherProps}\n role=\"region\"\n data-carousel-root=\"\"\n aria-roledescription=\"carousel\"\n >\n {children}\n </Comp>\n </CarouselProvider>\n );\n }\n);\n"],"file":"Carousel.js"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { SpringConfig } from 'react-spring';
3
+ import { GestureHandlersState } from '../hooks';
4
+ export declare const faderConfig: SpringConfig;
5
+ export interface FaderProps extends React.HTMLAttributes<HTMLDivElement> {
6
+ as?: React.ElementType<any>;
7
+ mouseSwipe?: boolean;
8
+ touchSwipe?: boolean;
9
+ onSwipeRight?: (s: Partial<GestureHandlersState>) => void;
10
+ onSwipeLeft?: (s: Partial<GestureHandlersState>) => void;
11
+ springConfig?: SpringConfig;
12
+ children?: React.ReactNode[] | React.ReactNode;
13
+ }
14
+ export declare const Fader: React.ForwardRefExoticComponent<FaderProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,76 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import React, { forwardRef, Children, useMemo } from 'react';
4
+ import { useTransition, animated } from 'react-spring';
5
+ import { getCircularIndex } from '../utils/getCircularIndex';
6
+ import { useCarouselGestures } from './useCarouselGestures';
7
+ import { useCarouselContext } from './context';
8
+ export var faderConfig = {
9
+ tension: 280,
10
+ friction: 75,
11
+ clamp: true
12
+ };
13
+ export var Fader = forwardRef(function Fader(_ref, ref) {
14
+ var _ref$as = _ref.as,
15
+ Comp = _ref$as === void 0 ? 'div' : _ref$as,
16
+ maybeSingleChildren = _ref.children,
17
+ _ref$springConfig = _ref.springConfig,
18
+ springConfig = _ref$springConfig === void 0 ? faderConfig : _ref$springConfig,
19
+ _ref$mouseSwipe = _ref.mouseSwipe,
20
+ mouseSwipe = _ref$mouseSwipe === void 0 ? false : _ref$mouseSwipe,
21
+ _ref$touchSwipe = _ref.touchSwipe,
22
+ touchSwipe = _ref$touchSwipe === void 0 ? false : _ref$touchSwipe,
23
+ onSwipeLeft = _ref.onSwipeLeft,
24
+ onSwipeRight = _ref.onSwipeRight,
25
+ otherProps = _objectWithoutProperties(_ref, ["as", "children", "springConfig", "mouseSwipe", "touchSwipe", "onSwipeLeft", "onSwipeRight"]);
26
+
27
+ var _useCarouselContext = useCarouselContext(),
28
+ _useCarouselContext$i = _useCarouselContext.isRTL,
29
+ isRTL = _useCarouselContext$i === void 0 ? false : _useCarouselContext$i,
30
+ _useCarouselContext$c = _useCarouselContext.currentSlide,
31
+ nextSlideIndex = _useCarouselContext$c === void 0 ? 0 : _useCarouselContext$c,
32
+ containerRef = _useCarouselContext.containerRef;
33
+
34
+ var children = useMemo(function () {
35
+ return Children.toArray(maybeSingleChildren);
36
+ }, [maybeSingleChildren]);
37
+ var transitions = useTransition(nextSlideIndex, {
38
+ config: springConfig,
39
+ from: {
40
+ opacity: 0
41
+ },
42
+ enter: {
43
+ opacity: 1
44
+ },
45
+ leave: {
46
+ opacity: 0
47
+ }
48
+ });
49
+
50
+ var _useCarouselGestures = useCarouselGestures({
51
+ onSwipeLeft: onSwipeLeft,
52
+ onSwipeRight: onSwipeRight,
53
+ isRTL: isRTL,
54
+ containerRef: containerRef
55
+ }),
56
+ handlers = _useCarouselGestures.handlers;
57
+
58
+ return /*#__PURE__*/React.createElement(Comp, _extends({
59
+ onTouchStart: touchSwipe ? handlers.onTouchStart : undefined,
60
+ onMouseDown: mouseSwipe ? handlers.onMouseDown : undefined,
61
+ "aria-live": "polite",
62
+ "data-carousel-slider": "",
63
+ ref: ref
64
+ }, otherProps), transitions(function (style, item) {
65
+ var idx = getCircularIndex(item, children.length);
66
+
67
+ if (idx !== null) {
68
+ return /*#__PURE__*/React.createElement(animated.span, {
69
+ style: style
70
+ }, children[idx]);
71
+ }
72
+
73
+ return null;
74
+ }));
75
+ });
76
+ //# sourceMappingURL=Fader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Carousel/Fader.tsx"],"names":["React","forwardRef","Children","useMemo","useTransition","animated","getCircularIndex","useCarouselGestures","useCarouselContext","faderConfig","tension","friction","clamp","Fader","ref","as","Comp","maybeSingleChildren","children","springConfig","mouseSwipe","touchSwipe","onSwipeLeft","onSwipeRight","otherProps","isRTL","currentSlide","nextSlideIndex","containerRef","toArray","transitions","config","from","opacity","enter","leave","handlers","onTouchStart","undefined","onMouseDown","style","item","idx","length"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,QAA5B,EAAsCC,OAAtC,QAAqD,OAArD;AACA,SAASC,aAAT,EAAsCC,QAAtC,QAAsD,cAAtD;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AACA,SAASC,mBAAT,QAAoC,uBAApC;AACA,SAASC,kBAAT,QAAmC,WAAnC;AAGA,OAAO,IAAMC,WAAyB,GAAG;AACvCC,EAAAA,OAAO,EAAE,GAD8B;AAEvCC,EAAAA,QAAQ,EAAE,EAF6B;AAGvCC,EAAAA,KAAK,EAAE;AAHgC,CAAlC;AAgBP,OAAO,IAAMC,KAAK,GAAGZ,UAAU,CAAC,SAASY,KAAT,OAW9BC,GAX8B,EAY9B;AAAA,qBAVEC,EAUF;AAAA,MAVMC,IAUN,wBAVa,KAUb;AAAA,MATYC,mBASZ,QATEC,QASF;AAAA,+BAREC,YAQF;AAAA,MAREA,YAQF,kCARiBV,WAQjB;AAAA,6BAPEW,UAOF;AAAA,MAPEA,UAOF,gCAPe,KAOf;AAAA,6BANEC,UAMF;AAAA,MANEA,UAMF,gCANe,KAMf;AAAA,MALEC,WAKF,QALEA,WAKF;AAAA,MAJEC,YAIF,QAJEA,YAIF;AAAA,MAHKC,UAGL;;AAAA,4BAKIhB,kBAAkB,EALtB;AAAA,kDAEEiB,KAFF;AAAA,MAEEA,KAFF,sCAEU,KAFV;AAAA,kDAGEC,YAHF;AAAA,MAGgBC,cAHhB,sCAGiC,CAHjC;AAAA,MAIEC,YAJF,uBAIEA,YAJF;;AAMA,MAAMV,QAAQ,GAAGf,OAAO,CAAC;AAAA,WAAMD,QAAQ,CAAC2B,OAAT,CAAiBZ,mBAAjB,CAAN;AAAA,GAAD,EAA8C,CACpEA,mBADoE,CAA9C,CAAxB;AAIA,MAAMa,WAAW,GAAG1B,aAAa,CAACuB,cAAD,EAAiB;AAChDI,IAAAA,MAAM,EAAEZ,YADwC;AAEhDa,IAAAA,IAAI,EAAE;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAF0C;AAGhDC,IAAAA,KAAK,EAAE;AAAED,MAAAA,OAAO,EAAE;AAAX,KAHyC;AAIhDE,IAAAA,KAAK,EAAE;AAAEF,MAAAA,OAAO,EAAE;AAAX;AAJyC,GAAjB,CAAjC;;AAVA,6BAiBqB1B,mBAAmB,CAAC;AACvCe,IAAAA,WAAW,EAAXA,WADuC;AAEvCC,IAAAA,YAAY,EAAZA,YAFuC;AAGvCE,IAAAA,KAAK,EAALA,KAHuC;AAIvCG,IAAAA,YAAY,EAAZA;AAJuC,GAAD,CAjBxC;AAAA,MAiBQQ,QAjBR,wBAiBQA,QAjBR;;AAwBA,sBACE,oBAAC,IAAD;AACE,IAAA,YAAY,EAAEf,UAAU,GAAGe,QAAQ,CAACC,YAAZ,GAA2BC,SADrD;AAEE,IAAA,WAAW,EAAElB,UAAU,GAAGgB,QAAQ,CAACG,WAAZ,GAA0BD,SAFnD;AAGE,iBAAU,QAHZ;AAIE,4BAAqB,EAJvB;AAKE,IAAA,GAAG,EAAExB;AALP,KAMMU,UANN,GAQGM,WAAW,CAAC,UAACU,KAAD,EAAQC,IAAR,EAAiB;AAC5B,QAAMC,GAAG,GAAGpC,gBAAgB,CAACmC,IAAD,EAAOvB,QAAQ,CAACyB,MAAhB,CAA5B;;AACA,QAAID,GAAG,KAAK,IAAZ,EAAkB;AAChB,0BAAO,oBAAC,QAAD,CAAU,IAAV;AAAe,QAAA,KAAK,EAAEF;AAAtB,SAA8BtB,QAAQ,CAACwB,GAAD,CAAtC,CAAP;AACD;;AAED,WAAO,IAAP;AACD,GAPW,CARd,CADF;AAmBD,CAvD8B,CAAxB","sourcesContent":["import React, { forwardRef, Children, useMemo } from 'react';\nimport { useTransition, SpringConfig, animated } from 'react-spring';\nimport { getCircularIndex } from '../utils/getCircularIndex';\nimport { useCarouselGestures } from './useCarouselGestures';\nimport { useCarouselContext } from './context';\nimport { GestureHandlersState } from '../hooks';\n\nexport const faderConfig: SpringConfig = {\n tension: 280,\n friction: 75,\n clamp: true,\n};\n\nexport interface FaderProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n mouseSwipe?: boolean;\n touchSwipe?: boolean;\n onSwipeRight?: (s: Partial<GestureHandlersState>) => void;\n onSwipeLeft?: (s: Partial<GestureHandlersState>) => void;\n springConfig?: SpringConfig;\n children?: React.ReactNode[] | React.ReactNode;\n}\n\nexport const Fader = forwardRef(function Fader(\n {\n as: Comp = 'div',\n children: maybeSingleChildren,\n springConfig = faderConfig,\n mouseSwipe = false,\n touchSwipe = false,\n onSwipeLeft,\n onSwipeRight,\n ...otherProps\n }: FaderProps,\n ref: React.Ref<HTMLDivElement>\n) {\n const {\n isRTL = false,\n currentSlide: nextSlideIndex = 0,\n containerRef,\n } = useCarouselContext();\n const children = useMemo(() => Children.toArray(maybeSingleChildren), [\n maybeSingleChildren,\n ]);\n\n const transitions = useTransition(nextSlideIndex, {\n config: springConfig,\n from: { opacity: 0 },\n enter: { opacity: 1 },\n leave: { opacity: 0 },\n });\n\n const { handlers } = useCarouselGestures({\n onSwipeLeft,\n onSwipeRight,\n isRTL,\n containerRef,\n });\n\n return (\n <Comp\n onTouchStart={touchSwipe ? handlers.onTouchStart : undefined}\n onMouseDown={mouseSwipe ? handlers.onMouseDown : undefined}\n aria-live=\"polite\"\n data-carousel-slider=\"\"\n ref={ref}\n {...otherProps}\n >\n {transitions((style, item) => {\n const idx = getCircularIndex(item, children.length);\n if (idx !== null) {\n return <animated.span style={style}>{children[idx]}</animated.span>;\n }\n\n return null;\n })}\n </Comp>\n );\n});\n"],"file":"Fader.js"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export interface FaderItemProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ as?: React.ElementType<any>;
4
+ }
5
+ export declare const FaderItem: React.ForwardRefExoticComponent<FaderItemProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,16 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import React, { forwardRef } from 'react';
4
+ export var FaderItem = forwardRef(function FaderItem(_ref, ref) {
5
+ var _ref$as = _ref.as,
6
+ Comp = _ref$as === void 0 ? 'div' : _ref$as,
7
+ props = _objectWithoutProperties(_ref, ["as"]);
8
+
9
+ return /*#__PURE__*/React.createElement(Comp, _extends({
10
+ role: "group",
11
+ "aria-roledescription": "slide",
12
+ "data-carousel-fader-item": "",
13
+ ref: ref
14
+ }, props));
15
+ });
16
+ //# sourceMappingURL=FaderItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Carousel/FaderItem.tsx"],"names":["React","forwardRef","FaderItem","ref","as","Comp","props"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AAMA,OAAO,IAAMC,SAAS,GAAGD,UAAU,CACjC,SAASC,SAAT,OAAmDC,GAAnD,EAAwD;AAAA,qBAAnCC,EAAmC;AAAA,MAA/BC,IAA+B,wBAAxB,KAAwB;AAAA,MAAdC,KAAc;;AACtD,sBACE,oBAAC,IAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,4BAAqB,OAFvB;AAGE,gCAAyB,EAH3B;AAIE,IAAA,GAAG,EAAEH;AAJP,KAKMG,KALN,EADF;AASD,CAXgC,CAA5B","sourcesContent":["import React, { forwardRef } from 'react';\n\nexport interface FaderItemProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n}\n\nexport const FaderItem = forwardRef<HTMLDivElement, FaderItemProps>(\n function FaderItem({ as: Comp = 'div', ...props }, ref) {\n return (\n <Comp\n role=\"group\"\n aria-roledescription=\"slide\"\n data-carousel-fader-item=\"\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n"],"file":"FaderItem.js"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface PreloaderProps {
3
+ children: React.ReactNode[] | React.ReactNode;
4
+ preloadNextCount?: number;
5
+ preloadPrevCount?: number;
6
+ }
7
+ export declare const Preloader: React.ForwardRefExoticComponent<PreloaderProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,70 @@
1
+ import React, { Children, forwardRef, cloneElement, useEffect, useRef } from 'react';
2
+ import { useCarouselContext } from './context';
3
+ import { getCircularIndex } from '../utils/getCircularIndex';
4
+ export var Preloader = forwardRef(function Preloader(_ref, ref) {
5
+ var maybeSingleChildren = _ref.children,
6
+ _ref$preloadNextCount = _ref.preloadNextCount,
7
+ preloadNextCount = _ref$preloadNextCount === void 0 ? 0 : _ref$preloadNextCount,
8
+ _ref$preloadPrevCount = _ref.preloadPrevCount,
9
+ preloadPrevCount = _ref$preloadPrevCount === void 0 ? 0 : _ref$preloadPrevCount;
10
+
11
+ var _useCarouselContext = useCarouselContext(),
12
+ currentSlide = _useCarouselContext.currentSlide,
13
+ slidesToShow = _useCarouselContext.slidesToShow;
14
+
15
+ var preloadedImagesCache = useRef({});
16
+ var childrenRef = useRef(maybeSingleChildren);
17
+ useEffect(function () {
18
+ if (maybeSingleChildren !== childrenRef.current) {
19
+ // clear cache
20
+ childrenRef.current = maybeSingleChildren;
21
+ preloadedImagesCache.current = {};
22
+ }
23
+ }, [maybeSingleChildren]);
24
+ var children = Children.toArray(maybeSingleChildren);
25
+
26
+ if (preloadNextCount > 0 && preloadPrevCount > 0 && children.length > 0) {
27
+ var ret = [];
28
+
29
+ for (var i = currentSlide - preloadPrevCount; i <= currentSlide + (slidesToShow - 1) + preloadNextCount; i += 1) {
30
+ var idx = getCircularIndex(i, children.length);
31
+
32
+ if (!idx) {
33
+ continue;
34
+ }
35
+
36
+ if ( // ignore images currently rendered in carousel
37
+ i >= currentSlide && i <= currentSlide + (slidesToShow - 1) || // ignore images we've already preloaded first
38
+ preloadedImagesCache.current[idx]) {
39
+ // set images rendered as already preloaded
40
+ preloadedImagesCache.current[idx] = true;
41
+ continue;
42
+ }
43
+
44
+ preloadedImagesCache.current[idx] = true;
45
+ ret.push(cloneElement(children[idx], {
46
+ 'data-carousel-preload': idx
47
+ }));
48
+ }
49
+
50
+ if (ret.length > 0) {
51
+ return /*#__PURE__*/React.createElement("div", {
52
+ ref: ref,
53
+ "data-carousel-preloader": true,
54
+ "aria-hidden": true,
55
+ style: {
56
+ width: '1px',
57
+ height: '0px',
58
+ padding: '0',
59
+ overflow: 'hidden',
60
+ position: 'fixed',
61
+ top: '1px',
62
+ left: '1px'
63
+ }
64
+ }, ret);
65
+ }
66
+ }
67
+
68
+ return null;
69
+ });
70
+ //# sourceMappingURL=Preloader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Carousel/Preloader.tsx"],"names":["React","Children","forwardRef","cloneElement","useEffect","useRef","useCarouselContext","getCircularIndex","Preloader","ref","maybeSingleChildren","children","preloadNextCount","preloadPrevCount","currentSlide","slidesToShow","preloadedImagesCache","childrenRef","current","toArray","length","ret","i","idx","push","width","height","padding","overflow","position","top","left"],"mappings":"AAAA,OAAOA,KAAP,IACEC,QADF,EAEEC,UAFF,EAGEC,YAHF,EAIEC,SAJF,EAKEC,MALF,QAMO,OANP;AAOA,SAASC,kBAAT,QAAmC,WAAnC;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AAQA,OAAO,IAAMC,SAAS,GAAGN,UAAU,CACjC,SAASM,SAAT,OAMEC,GANF,EAOE;AAAA,MALYC,mBAKZ,QALEC,QAKF;AAAA,mCAJEC,gBAIF;AAAA,MAJEA,gBAIF,sCAJqB,CAIrB;AAAA,mCAHEC,gBAGF;AAAA,MAHEA,gBAGF,sCAHqB,CAGrB;;AAAA,4BACuCP,kBAAkB,EADzD;AAAA,MACQQ,YADR,uBACQA,YADR;AAAA,MACsBC,YADtB,uBACsBA,YADtB;;AAEA,MAAMC,oBAAoB,GAAGX,MAAM,CAAC,EAAD,CAAnC;AACA,MAAMY,WAAW,GAAGZ,MAAM,CAACK,mBAAD,CAA1B;AAEAN,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIM,mBAAmB,KAAKO,WAAW,CAACC,OAAxC,EAAiD;AAC/C;AACAD,MAAAA,WAAW,CAACC,OAAZ,GAAsBR,mBAAtB;AACAM,MAAAA,oBAAoB,CAACE,OAArB,GAA+B,EAA/B;AACD;AACF,GANQ,EAMN,CAACR,mBAAD,CANM,CAAT;AAQA,MAAMC,QAAQ,GAAGV,QAAQ,CAACkB,OAAT,CAAiBT,mBAAjB,CAAjB;;AAEA,MAAIE,gBAAgB,GAAG,CAAnB,IAAwBC,gBAAgB,GAAG,CAA3C,IAAgDF,QAAQ,CAACS,MAAT,GAAkB,CAAtE,EAAyE;AACvE,QAAMC,GAAyB,GAAG,EAAlC;;AACA,SACE,IAAIC,CAAC,GAAGR,YAAY,GAAGD,gBADzB,EAEES,CAAC,IAAIR,YAAY,IAAIC,YAAY,GAAG,CAAnB,CAAZ,GAAoCH,gBAF3C,EAGEU,CAAC,IAAI,CAHP,EAIE;AACA,UAAMC,GAAG,GAAGhB,gBAAgB,CAACe,CAAD,EAAIX,QAAQ,CAACS,MAAb,CAA5B;;AACA,UAAI,CAACG,GAAL,EAAU;AACR;AACD;;AAED,WACE;AACCD,MAAAA,CAAC,IAAIR,YAAL,IAAqBQ,CAAC,IAAIR,YAAY,IAAIC,YAAY,GAAG,CAAnB,CAAvC,IACA;AACAC,MAAAA,oBAAoB,CAACE,OAArB,CAA6BK,GAA7B,CAJF,EAKE;AACA;AACAP,QAAAA,oBAAoB,CAACE,OAArB,CAA6BK,GAA7B,IAAoC,IAApC;AACA;AACD;;AAEDP,MAAAA,oBAAoB,CAACE,OAArB,CAA6BK,GAA7B,IAAoC,IAApC;AACAF,MAAAA,GAAG,CAACG,IAAJ,CACErB,YAAY,CAACQ,QAAQ,CAACY,GAAD,CAAT,EAA2C;AACrD,iCAAyBA;AAD4B,OAA3C,CADd;AAKD;;AAED,QAAIF,GAAG,CAACD,MAAJ,GAAa,CAAjB,EAAoB;AAClB,0BACE;AACE,QAAA,GAAG,EAAEX,GADP;AAEE,uCAFF;AAGE,2BAHF;AAIE,QAAA,KAAK,EAAE;AACLgB,UAAAA,KAAK,EAAE,KADF;AAELC,UAAAA,MAAM,EAAE,KAFH;AAGLC,UAAAA,OAAO,EAAE,GAHJ;AAILC,UAAAA,QAAQ,EAAE,QAJL;AAKLC,UAAAA,QAAQ,EAAE,OALL;AAMLC,UAAAA,GAAG,EAAE,KANA;AAOLC,UAAAA,IAAI,EAAE;AAPD;AAJT,SAcGV,GAdH,CADF;AAkBD;AACF;;AAED,SAAO,IAAP;AACD,CA7EgC,CAA5B","sourcesContent":["import React, {\n Children,\n forwardRef,\n cloneElement,\n useEffect,\n useRef,\n} from 'react';\nimport { useCarouselContext } from './context';\nimport { getCircularIndex } from '../utils/getCircularIndex';\n\nexport interface PreloaderProps {\n children: React.ReactNode[] | React.ReactNode;\n preloadNextCount?: number;\n preloadPrevCount?: number;\n}\n\nexport const Preloader = forwardRef<HTMLDivElement, PreloaderProps>(\n function Preloader(\n {\n children: maybeSingleChildren,\n preloadNextCount = 0,\n preloadPrevCount = 0,\n },\n ref\n ) {\n const { currentSlide, slidesToShow } = useCarouselContext();\n const preloadedImagesCache = useRef({});\n const childrenRef = useRef(maybeSingleChildren);\n\n useEffect(() => {\n if (maybeSingleChildren !== childrenRef.current) {\n // clear cache\n childrenRef.current = maybeSingleChildren;\n preloadedImagesCache.current = {};\n }\n }, [maybeSingleChildren]);\n\n const children = Children.toArray(maybeSingleChildren);\n\n if (preloadNextCount > 0 && preloadPrevCount > 0 && children.length > 0) {\n const ret: React.ReactElement[] = [];\n for (\n let i = currentSlide - preloadPrevCount;\n i <= currentSlide + (slidesToShow - 1) + preloadNextCount;\n i += 1\n ) {\n const idx = getCircularIndex(i, children.length);\n if (!idx) {\n continue;\n }\n\n if (\n // ignore images currently rendered in carousel\n (i >= currentSlide && i <= currentSlide + (slidesToShow - 1)) ||\n // ignore images we've already preloaded first\n preloadedImagesCache.current[idx]\n ) {\n // set images rendered as already preloaded\n preloadedImagesCache.current[idx] = true;\n continue;\n }\n\n preloadedImagesCache.current[idx] = true;\n ret.push(\n cloneElement(children[idx] as React.ReactElement<any>, {\n 'data-carousel-preload': idx,\n })\n );\n }\n\n if (ret.length > 0) {\n return (\n <div\n ref={ref}\n data-carousel-preloader\n aria-hidden\n style={{\n width: '1px',\n height: '0px',\n padding: '0',\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px',\n }}\n >\n {ret}\n </div>\n );\n }\n }\n\n return null;\n }\n);\n"],"file":"Preloader.js"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { SpringConfig } from 'react-spring';
3
+ import { GestureHandlersState } from '../hooks';
4
+ export declare const sliderConfig: SpringConfig;
5
+ export interface SliderProps extends React.HTMLAttributes<HTMLDivElement> {
6
+ as?: React.ElementType<any>;
7
+ mouseSwipe?: boolean;
8
+ touchSwipe?: boolean;
9
+ onSwipeRight?: (s: Partial<GestureHandlersState>) => void;
10
+ onSwipeLeft?: (s: Partial<GestureHandlersState>) => void;
11
+ springConfig?: SpringConfig;
12
+ children?: React.ReactNode[] | React.ReactNode;
13
+ }
14
+ export declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLDivElement>>;