@basic-ui/core 0.0.54 → 0.0.57

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 (410) hide show
  1. package/README.md +3 -3
  2. package/build/cjs/index.js +364 -591
  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 +20 -29
  6. package/build/esm/Accordion/Accordion.js.map +1 -1
  7. package/build/esm/Accordion/AccordionBody.d.ts +6 -6
  8. package/build/esm/Accordion/AccordionBody.js +18 -32
  9. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  10. package/build/esm/Accordion/AccordionHeader.d.ts +7 -7
  11. package/build/esm/Accordion/AccordionHeader.js +37 -74
  12. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  13. package/build/esm/Accordion/AccordionItem.d.ts +9 -9
  14. package/build/esm/Accordion/AccordionItem.js +19 -22
  15. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  16. package/build/esm/Accordion/context.d.ts +19 -19
  17. package/build/esm/Accordion/context.js +16 -13
  18. package/build/esm/Accordion/context.js.map +1 -1
  19. package/build/esm/Accordion/index.d.ts +4 -4
  20. package/build/esm/Accordion/index.js.map +1 -1
  21. package/build/esm/Accordion/scopeQuery.d.ts +2 -2
  22. package/build/esm/Accordion/scopeQuery.js.map +1 -1
  23. package/build/esm/CheckBox/CheckBox.d.ts +7 -7
  24. package/build/esm/CheckBox/CheckBox.js +15 -25
  25. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  26. package/build/esm/CheckBox/index.d.ts +1 -1
  27. package/build/esm/CheckBox/index.js.map +1 -1
  28. package/build/esm/ComboBox/Combobox.d.ts +18 -18
  29. package/build/esm/ComboBox/Combobox.js +52 -59
  30. package/build/esm/ComboBox/Combobox.js.map +1 -1
  31. package/build/esm/ComboBox/ComboboxButton.d.ts +9 -9
  32. package/build/esm/ComboBox/ComboboxButton.js +23 -28
  33. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  34. package/build/esm/ComboBox/ComboboxInput.d.ts +17 -17
  35. package/build/esm/ComboBox/ComboboxInput.js +67 -70
  36. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  37. package/build/esm/ComboBox/ComboboxLabel.d.ts +7 -7
  38. package/build/esm/ComboBox/ComboboxLabel.js +15 -17
  39. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  40. package/build/esm/ComboBox/ComboboxList.d.ts +8 -8
  41. package/build/esm/ComboBox/ComboboxList.js +19 -20
  42. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  43. package/build/esm/ComboBox/ComboboxOption.d.ts +11 -11
  44. package/build/esm/ComboBox/ComboboxOption.js +41 -45
  45. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  46. package/build/esm/ComboBox/ComboboxPopover.d.ts +9 -9
  47. package/build/esm/ComboBox/ComboboxPopover.js +22 -21
  48. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  49. package/build/esm/ComboBox/cities.d.ts +5 -5
  50. package/build/esm/ComboBox/cities.js.map +1 -1
  51. package/build/esm/ComboBox/context.d.ts +30 -30
  52. package/build/esm/ComboBox/context.js +5 -6
  53. package/build/esm/ComboBox/context.js.map +1 -1
  54. package/build/esm/ComboBox/hooks.d.ts +37 -37
  55. package/build/esm/ComboBox/hooks.js +175 -148
  56. package/build/esm/ComboBox/hooks.js.map +1 -1
  57. package/build/esm/ComboBox/index.d.ts +8 -8
  58. package/build/esm/ComboBox/index.js.map +1 -1
  59. package/build/esm/ComboBox/makeHash.d.ts +1 -1
  60. package/build/esm/ComboBox/makeHash.js +3 -6
  61. package/build/esm/ComboBox/makeHash.js.map +1 -1
  62. package/build/esm/ComboBox/scopeQuery.d.ts +1 -1
  63. package/build/esm/ComboBox/scopeQuery.js.map +1 -1
  64. package/build/esm/FocusLock/FocusLock.d.ts +9 -9
  65. package/build/esm/FocusLock/FocusLock.js +26 -32
  66. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  67. package/build/esm/FocusLock/index.d.ts +1 -1
  68. package/build/esm/FocusLock/index.js.map +1 -1
  69. package/build/esm/FocusLock/tabUtils.d.ts +3 -3
  70. package/build/esm/FocusLock/tabUtils.js +5 -7
  71. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  72. package/build/esm/FocusLock/useFocusLock.d.ts +7 -7
  73. package/build/esm/FocusLock/useFocusLock.js +14 -19
  74. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  75. package/build/esm/List/List.d.ts +7 -7
  76. package/build/esm/List/List.js +9 -11
  77. package/build/esm/List/List.js.map +1 -1
  78. package/build/esm/List/ListItem.d.ts +7 -7
  79. package/build/esm/List/ListItem.js +9 -11
  80. package/build/esm/List/ListItem.js.map +1 -1
  81. package/build/esm/List/context.d.ts +4 -4
  82. package/build/esm/List/context.js +6 -6
  83. package/build/esm/List/context.js.map +1 -1
  84. package/build/esm/List/index.d.ts +2 -2
  85. package/build/esm/List/index.js.map +1 -1
  86. package/build/esm/Menu/ContextMenuTrigger.d.ts +11 -11
  87. package/build/esm/Menu/ContextMenuTrigger.js +32 -37
  88. package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
  89. package/build/esm/Menu/Menu.d.ts +10 -10
  90. package/build/esm/Menu/Menu.js +33 -49
  91. package/build/esm/Menu/Menu.js.map +1 -1
  92. package/build/esm/Menu/MenuButton.d.ts +11 -11
  93. package/build/esm/Menu/MenuButton.js +28 -44
  94. package/build/esm/Menu/MenuButton.js.map +1 -1
  95. package/build/esm/Menu/MenuItem.d.ts +8 -8
  96. package/build/esm/Menu/MenuItem.js +29 -38
  97. package/build/esm/Menu/MenuItem.js.map +1 -1
  98. package/build/esm/Menu/MenuList.d.ts +7 -7
  99. package/build/esm/Menu/MenuList.js +61 -116
  100. package/build/esm/Menu/MenuList.js.map +1 -1
  101. package/build/esm/Menu/MenuPopover.d.ts +8 -8
  102. package/build/esm/Menu/MenuPopover.js +16 -19
  103. package/build/esm/Menu/MenuPopover.js.map +1 -1
  104. package/build/esm/Menu/context.d.ts +25 -25
  105. package/build/esm/Menu/context.js +14 -12
  106. package/build/esm/Menu/context.js.map +1 -1
  107. package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
  108. package/build/esm/Menu/fixtures/countryList.js +1 -1
  109. package/build/esm/Menu/fixtures/countryList.js.map +1 -1
  110. package/build/esm/Menu/index.d.ts +6 -6
  111. package/build/esm/Menu/index.js.map +1 -1
  112. package/build/esm/Menu/scope.d.ts +1 -1
  113. package/build/esm/Menu/scope.js.map +1 -1
  114. package/build/esm/Modal/Modal.d.ts +9 -9
  115. package/build/esm/Modal/Modal.js +13 -18
  116. package/build/esm/Modal/Modal.js.map +1 -1
  117. package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
  118. package/build/esm/Modal/ModalBackdrop.js +24 -33
  119. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  120. package/build/esm/Modal/index.d.ts +2 -2
  121. package/build/esm/Modal/index.js.map +1 -1
  122. package/build/esm/Popper/Popper.d.ts +35 -35
  123. package/build/esm/Popper/Popper.js +44 -60
  124. package/build/esm/Popper/Popper.js.map +1 -1
  125. package/build/esm/Popper/PopperArrow.d.ts +6 -6
  126. package/build/esm/Popper/PopperArrow.js +11 -16
  127. package/build/esm/Popper/PopperArrow.js.map +1 -1
  128. package/build/esm/Popper/context.d.ts +6 -6
  129. package/build/esm/Popper/context.js +3 -5
  130. package/build/esm/Popper/context.js.map +1 -1
  131. package/build/esm/Popper/index.d.ts +3 -3
  132. package/build/esm/Popper/index.js.map +1 -1
  133. package/build/esm/Portal/Portal.d.ts +7 -7
  134. package/build/esm/Portal/Portal.js +9 -11
  135. package/build/esm/Portal/Portal.js.map +1 -1
  136. package/build/esm/Portal/PortalSelectorProvider.d.ts +8 -8
  137. package/build/esm/Portal/PortalSelectorProvider.js +6 -4
  138. package/build/esm/Portal/PortalSelectorProvider.js.map +1 -1
  139. package/build/esm/Portal/index.d.ts +2 -2
  140. package/build/esm/Portal/index.js.map +1 -1
  141. package/build/esm/RadioButton/RadioButton.d.ts +10 -10
  142. package/build/esm/RadioButton/RadioButton.js +17 -23
  143. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  144. package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
  145. package/build/esm/RadioButton/RadioGroup.js +19 -28
  146. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  147. package/build/esm/RadioButton/context.d.ts +9 -9
  148. package/build/esm/RadioButton/context.js +8 -6
  149. package/build/esm/RadioButton/context.js.map +1 -1
  150. package/build/esm/RadioButton/index.d.ts +2 -2
  151. package/build/esm/RadioButton/index.js.map +1 -1
  152. package/build/esm/SkipNav/SkipNav.d.ts +7 -7
  153. package/build/esm/SkipNav/SkipNav.js +9 -11
  154. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  155. package/build/esm/SkipNav/index.d.ts +1 -1
  156. package/build/esm/SkipNav/index.js.map +1 -1
  157. package/build/esm/Slider/Slider.d.ts +197 -197
  158. package/build/esm/Slider/Slider.js +422 -489
  159. package/build/esm/Slider/Slider.js.map +1 -1
  160. package/build/esm/Slider/index.d.ts +1 -1
  161. package/build/esm/Slider/index.js.map +1 -1
  162. package/build/esm/Spinner/Spinner.d.ts +12 -12
  163. package/build/esm/Spinner/Spinner.js +31 -59
  164. package/build/esm/Spinner/Spinner.js.map +1 -1
  165. package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
  166. package/build/esm/Spinner/SpinnerButton.js +14 -19
  167. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  168. package/build/esm/Spinner/context.d.ts +12 -12
  169. package/build/esm/Spinner/context.js +8 -7
  170. package/build/esm/Spinner/context.js.map +1 -1
  171. package/build/esm/Spinner/index.d.ts +2 -2
  172. package/build/esm/Spinner/index.js.map +1 -1
  173. package/build/esm/Tabs/Tab.d.ts +7 -7
  174. package/build/esm/Tabs/Tab.js +32 -50
  175. package/build/esm/Tabs/Tab.js.map +1 -1
  176. package/build/esm/Tabs/TabList.d.ts +9 -9
  177. package/build/esm/Tabs/TabList.js +24 -34
  178. package/build/esm/Tabs/TabList.js.map +1 -1
  179. package/build/esm/Tabs/TabPanel.d.ts +8 -8
  180. package/build/esm/Tabs/TabPanel.js +16 -23
  181. package/build/esm/Tabs/TabPanel.js.map +1 -1
  182. package/build/esm/Tabs/TabPanels.d.ts +8 -8
  183. package/build/esm/Tabs/TabPanels.js +15 -20
  184. package/build/esm/Tabs/TabPanels.js.map +1 -1
  185. package/build/esm/Tabs/Tabs.d.ts +10 -10
  186. package/build/esm/Tabs/Tabs.js +17 -33
  187. package/build/esm/Tabs/Tabs.js.map +1 -1
  188. package/build/esm/Tabs/context.d.ts +17 -17
  189. package/build/esm/Tabs/context.js +16 -13
  190. package/build/esm/Tabs/context.js.map +1 -1
  191. package/build/esm/Tabs/index.d.ts +5 -5
  192. package/build/esm/Tabs/index.js.map +1 -1
  193. package/build/esm/Tabs/scopeQuery.d.ts +1 -1
  194. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  195. package/build/esm/Tooltip/Tooltip.d.ts +10 -10
  196. package/build/esm/Tooltip/Tooltip.js +20 -30
  197. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  198. package/build/esm/Tooltip/index.d.ts +1 -1
  199. package/build/esm/Tooltip/index.js.map +1 -1
  200. package/build/esm/Tooltip/stateMachine.d.ts +28 -28
  201. package/build/esm/Tooltip/stateMachine.js +95 -81
  202. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  203. package/build/esm/Tooltip/useTooltip.d.ts +10 -10
  204. package/build/esm/Tooltip/useTooltip.js +38 -50
  205. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  206. package/build/esm/hooks/index.d.ts +13 -13
  207. package/build/esm/hooks/index.js.map +1 -1
  208. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  209. package/build/esm/hooks/useAutoFocus.js +3 -3
  210. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  211. package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
  212. package/build/esm/hooks/useChildrenCounter.js +6 -8
  213. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  214. package/build/esm/hooks/useControlledState.d.ts +3 -3
  215. package/build/esm/hooks/useControlledState.js +6 -16
  216. package/build/esm/hooks/useControlledState.js.map +1 -1
  217. package/build/esm/hooks/useFocusReturn.d.ts +2 -2
  218. package/build/esm/hooks/useFocusReturn.js +8 -12
  219. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  220. package/build/esm/hooks/useFocusState.d.ts +11 -11
  221. package/build/esm/hooks/useFocusState.js +9 -15
  222. package/build/esm/hooks/useFocusState.js.map +1 -1
  223. package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
  224. package/build/esm/hooks/useGestureHandlers.js +80 -100
  225. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  226. package/build/esm/hooks/useMeasure.d.ts +7 -7
  227. package/build/esm/hooks/useMeasure.js +7 -15
  228. package/build/esm/hooks/useMeasure.js.map +1 -1
  229. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  230. package/build/esm/hooks/useOnClickOutside.js +4 -6
  231. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  232. package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
  233. package/build/esm/hooks/useOnKeyDown.js +3 -4
  234. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  235. package/build/esm/hooks/useReducerMachine.d.ts +24 -24
  236. package/build/esm/hooks/useReducerMachine.js +15 -26
  237. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  238. package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
  239. package/build/esm/hooks/useRemoveBodyScroll.js +9 -14
  240. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  241. package/build/esm/hooks/useScope.d.ts +11 -11
  242. package/build/esm/hooks/useScope.js +12 -14
  243. package/build/esm/hooks/useScope.js.map +1 -1
  244. package/build/esm/hooks/useThrottle.d.ts +1 -1
  245. package/build/esm/hooks/useThrottle.js +5 -10
  246. package/build/esm/hooks/useThrottle.js.map +1 -1
  247. package/build/esm/index.d.ts +15 -15
  248. package/build/esm/index.js +4 -2
  249. package/build/esm/index.js.map +1 -1
  250. package/build/esm/styles.d.js +2 -0
  251. package/build/esm/styles.d.js.map +1 -0
  252. package/build/esm/utils/assign-ref.d.ts +3 -3
  253. package/build/esm/utils/assign-ref.js +3 -5
  254. package/build/esm/utils/assign-ref.js.map +1 -1
  255. package/build/esm/utils/can-use-dom.d.ts +1 -1
  256. package/build/esm/utils/can-use-dom.js.map +1 -1
  257. package/build/esm/utils/clamp.d.ts +1 -1
  258. package/build/esm/utils/clamp.js.map +1 -1
  259. package/build/esm/utils/context.d.ts +7 -7
  260. package/build/esm/utils/context.js +13 -20
  261. package/build/esm/utils/context.js.map +1 -1
  262. package/build/esm/utils/create-subscription.d.ts +4 -4
  263. package/build/esm/utils/create-subscription.js +5 -10
  264. package/build/esm/utils/create-subscription.js.map +1 -1
  265. package/build/esm/utils/get-circular-index.d.ts +1 -1
  266. package/build/esm/utils/get-circular-index.js +0 -1
  267. package/build/esm/utils/get-circular-index.js.map +1 -1
  268. package/build/esm/utils/index.d.ts +10 -10
  269. package/build/esm/utils/index.js.map +1 -1
  270. package/build/esm/utils/is-right-click.d.ts +6 -6
  271. package/build/esm/utils/is-right-click.js +4 -4
  272. package/build/esm/utils/is-right-click.js.map +1 -1
  273. package/build/esm/utils/owner-document.d.ts +7 -7
  274. package/build/esm/utils/owner-document.js +6 -6
  275. package/build/esm/utils/owner-document.js.map +1 -1
  276. package/build/esm/utils/polymorphic.d.ts +39 -39
  277. package/build/esm/utils/polymorphic.js.map +1 -1
  278. package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
  279. package/build/esm/utils/rubber-band-clamp.js +2 -5
  280. package/build/esm/utils/rubber-band-clamp.js.map +1 -1
  281. package/build/esm/utils/use-stable-callback.d.ts +16 -16
  282. package/build/esm/utils/use-stable-callback.js +24 -26
  283. package/build/esm/utils/use-stable-callback.js.map +1 -1
  284. package/build/esm/utils/wrap-event.d.ts +3 -3
  285. package/build/esm/utils/wrap-event.js +2 -5
  286. package/build/esm/utils/wrap-event.js.map +1 -1
  287. package/build/tsconfig-build.tsbuildinfo +1 -1
  288. package/package.json +7 -11
  289. package/src/Accordion/Accordion.story.tsx +74 -74
  290. package/src/Accordion/Accordion.tsx +59 -59
  291. package/src/Accordion/AccordionBody.tsx +52 -52
  292. package/src/Accordion/AccordionHeader.tsx +166 -167
  293. package/src/Accordion/AccordionItem.tsx +50 -50
  294. package/src/Accordion/context.ts +37 -37
  295. package/src/Accordion/index.ts +4 -4
  296. package/src/Accordion/scopeQuery.ts +7 -7
  297. package/src/Accordion/styles.css +21 -21
  298. package/src/CheckBox/CheckBox.tsx +41 -41
  299. package/src/CheckBox/index.ts +1 -1
  300. package/src/ComboBox/ComboBox.story.tsx +120 -120
  301. package/src/ComboBox/Combobox.tsx +148 -148
  302. package/src/ComboBox/ComboboxButton.tsx +61 -61
  303. package/src/ComboBox/ComboboxInput.tsx +187 -187
  304. package/src/ComboBox/ComboboxLabel.tsx +33 -33
  305. package/src/ComboBox/ComboboxList.tsx +47 -47
  306. package/src/ComboBox/ComboboxOption.tsx +110 -111
  307. package/src/ComboBox/ComboboxPopover.tsx +64 -64
  308. package/src/ComboBox/cities.ts +23194 -23194
  309. package/src/ComboBox/context.ts +35 -35
  310. package/src/ComboBox/hooks.tsx +448 -451
  311. package/src/ComboBox/index.ts +8 -8
  312. package/src/ComboBox/makeHash.ts +19 -19
  313. package/src/ComboBox/scopeQuery.ts +6 -6
  314. package/src/ComboBox/styles.css +32 -32
  315. package/src/FocusLock/FocusLock.tsx +66 -66
  316. package/src/FocusLock/index.ts +1 -1
  317. package/src/FocusLock/tabUtils.ts +40 -40
  318. package/src/FocusLock/useFocusLock.ts +55 -56
  319. package/src/List/List.story.tsx +18 -18
  320. package/src/List/List.tsx +17 -17
  321. package/src/List/ListItem.tsx +23 -23
  322. package/src/List/context.ts +19 -19
  323. package/src/List/index.ts +2 -2
  324. package/src/Menu/ContextMenu.story.tsx +73 -73
  325. package/src/Menu/ContextMenuTrigger.tsx +76 -76
  326. package/src/Menu/Menu.story.tsx +160 -160
  327. package/src/Menu/Menu.tsx +82 -83
  328. package/src/Menu/MenuButton.tsx +83 -83
  329. package/src/Menu/MenuComplex.story.tsx +58 -58
  330. package/src/Menu/MenuItem.tsx +87 -88
  331. package/src/Menu/MenuList.tsx +254 -254
  332. package/src/Menu/MenuPopover.tsx +35 -35
  333. package/src/Menu/context.ts +44 -44
  334. package/src/Menu/fixtures/countryList.ts +198 -198
  335. package/src/Menu/index.ts +6 -6
  336. package/src/Menu/scope.ts +7 -7
  337. package/src/Menu/styles.css +42 -42
  338. package/src/Modal/Modal.story.tsx +262 -258
  339. package/src/Modal/Modal.tsx +48 -48
  340. package/src/Modal/ModalBackdrop.tsx +78 -78
  341. package/src/Modal/NavDrawer.story.tsx +161 -158
  342. package/src/Modal/index.ts +2 -2
  343. package/src/Modal/styles.css +46 -46
  344. package/src/Popper/Popper.story.tsx +279 -263
  345. package/src/Popper/Popper.tsx +1 -1
  346. package/src/Popper/PopperArrow.tsx +35 -35
  347. package/src/Popper/context.ts +10 -10
  348. package/src/Popper/index.ts +3 -3
  349. package/src/Popper/styles.css +60 -60
  350. package/src/RadioButton/RadioButton.story.tsx +78 -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 +1115 -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 +53 -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/useControlledState.ts +1 -6
  386. package/src/hooks/useFocusReturn.ts +43 -43
  387. package/src/hooks/useFocusState.ts +30 -30
  388. package/src/hooks/useGestureHandlers.ts +282 -286
  389. package/src/hooks/useMeasure.ts +33 -33
  390. package/src/hooks/useOnClickOutside.ts +32 -32
  391. package/src/hooks/useOnKeyDown.ts +19 -19
  392. package/src/hooks/useReducerMachine.ts +60 -60
  393. package/src/hooks/useRemoveBodyScroll.ts +38 -39
  394. package/src/hooks/useScope.ts +52 -52
  395. package/src/hooks/useThrottle.ts +19 -19
  396. package/src/index.ts +20 -20
  397. package/src/styles.d.ts +1 -0
  398. package/src/utils/assign-ref.ts +27 -27
  399. package/src/utils/can-use-dom.ts +7 -7
  400. package/src/utils/clamp.ts +3 -3
  401. package/src/utils/context.tsx +48 -48
  402. package/src/utils/create-subscription.ts +16 -16
  403. package/src/utils/get-circular-index.ts +7 -7
  404. package/src/utils/index.ts +10 -10
  405. package/src/utils/is-right-click.ts +14 -14
  406. package/src/utils/owner-document.ts +13 -13
  407. package/src/utils/polymorphic.ts +82 -78
  408. package/src/utils/rubber-band-clamp.ts +25 -25
  409. package/src/utils/use-stable-callback.ts +57 -58
  410. package/src/utils/wrap-event.ts +22 -22
@@ -1 +1 @@
1
- {"version":3,"file":"SpinnerButton.js","names":["forwardRef","useSpinnerContext","wrapEvent","SpinnerButton","props","forwardedRef","as","Comp","type","onClick","otherProps","spinnerContext","Error","handleClick","e","delta","onChange","value","disabled","maxValue","minValue","spinnerHasFocus","undefined"],"sources":["../../../src/Spinner/SpinnerButton.tsx"],"sourcesContent":["import type {\r\n ButtonHTMLAttributes,\r\n ElementType,\r\n MouseEvent,\r\n ReactNode,\r\n} from 'react';\r\nimport { forwardRef } from 'react';\r\n\r\nimport { useSpinnerContext } from './context';\r\nimport { wrapEvent } from '../utils';\r\n\r\nexport interface SpinnerButtonProps\r\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type'> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n type: 'next' | 'previous';\r\n}\r\n\r\nexport const SpinnerButton = forwardRef<HTMLButtonElement, SpinnerButtonProps>(\r\n function SpinnerButton(props, forwardedRef) {\r\n const { as: Comp = 'button', type, onClick, ...otherProps } = props;\r\n const spinnerContext = useSpinnerContext();\r\n\r\n if (!spinnerContext) {\r\n throw new Error('Missing <Spinner /> in component tree');\r\n }\r\n\r\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\r\n const delta = type === 'next' ? 1 : -1;\r\n\r\n spinnerContext.onChange &&\r\n spinnerContext.onChange(e, spinnerContext.value + delta);\r\n };\r\n\r\n const disabled =\r\n type === 'next'\r\n ? spinnerContext.value + 1 > spinnerContext.maxValue\r\n : spinnerContext.value - 1 < spinnerContext.minValue;\r\n\r\n return (\r\n <Comp\r\n {...otherProps}\r\n type=\"button\"\r\n ref={forwardedRef}\r\n tabIndex={-1}\r\n data-spinner-button=\"\"\r\n data-spinner-has-focus={spinnerContext.spinnerHasFocus ? '' : undefined}\r\n disabled={disabled}\r\n onClick={wrapEvent(onClick, handleClick)}\r\n />\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AAMA,SAASA,UAAT,QAA2B,OAA3B;AAEA,SAASC,iBAAT,QAAkC,WAAlC;AACA,SAASC,SAAT,QAA0B,UAA1B;;AAUA,OAAO,IAAMC,aAAa,gBAAGH,UAAU,CACrC,SAASG,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;EAC1C,gBAA8DD,KAA9D,CAAQE,EAAR;EAAA,IAAYC,IAAZ,0BAAmB,QAAnB;EAAA,IAA6BC,IAA7B,GAA8DJ,KAA9D,CAA6BI,IAA7B;EAAA,IAAmCC,OAAnC,GAA8DL,KAA9D,CAAmCK,OAAnC;EAAA,IAA+CC,UAA/C,4BAA8DN,KAA9D;;EACA,IAAMO,cAAc,GAAGV,iBAAiB,EAAxC;;EAEA,IAAI,CAACU,cAAL,EAAqB;IACnB,MAAM,IAAIC,KAAJ,CAAU,uCAAV,CAAN;EACD;;EAED,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAsC;IACxD,IAAMC,KAAK,GAAGP,IAAI,KAAK,MAAT,GAAkB,CAAlB,GAAsB,CAAC,CAArC;IAEAG,cAAc,CAACK,QAAf,IACEL,cAAc,CAACK,QAAf,CAAwBF,CAAxB,EAA2BH,cAAc,CAACM,KAAf,GAAuBF,KAAlD,CADF;EAED,CALD;;EAOA,IAAMG,QAAQ,GACZV,IAAI,KAAK,MAAT,GACIG,cAAc,CAACM,KAAf,GAAuB,CAAvB,GAA2BN,cAAc,CAACQ,QAD9C,GAEIR,cAAc,CAACM,KAAf,GAAuB,CAAvB,GAA2BN,cAAc,CAACS,QAHhD;EAKA,oBACE,KAAC,IAAD,wBACMV,UADN;IAEE,IAAI,EAAC,QAFP;IAGE,GAAG,EAAEL,YAHP;IAIE,QAAQ,EAAE,CAAC,CAJb;IAKE,uBAAoB,EALtB;IAME,0BAAwBM,cAAc,CAACU,eAAf,GAAiC,EAAjC,GAAsCC,SANhE;IAOE,QAAQ,EAAEJ,QAPZ;IAQE,OAAO,EAAEhB,SAAS,CAACO,OAAD,EAAUI,WAAV;EARpB,GADF;AAYD,CAjCoC,CAAhC"}
1
+ {"version":3,"file":"SpinnerButton.js","names":["forwardRef","useSpinnerContext","wrapEvent","jsx","_jsx","SpinnerButton","props","forwardedRef","as","Comp","type","onClick","otherProps","spinnerContext","Error","handleClick","e","delta","onChange","value","disabled","maxValue","minValue","ref","tabIndex","spinnerHasFocus","undefined"],"sources":["../../../src/Spinner/SpinnerButton.tsx"],"sourcesContent":["import type {\n ButtonHTMLAttributes,\n ElementType,\n MouseEvent,\n ReactNode,\n} from 'react';\nimport { forwardRef } from 'react';\n\nimport { useSpinnerContext } from './context';\nimport { wrapEvent } from '../utils';\n\nexport interface SpinnerButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type'> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n type: 'next' | 'previous';\n}\n\nexport const SpinnerButton = forwardRef<HTMLButtonElement, SpinnerButtonProps>(\n function SpinnerButton(props, forwardedRef) {\n const { as: Comp = 'button', type, onClick, ...otherProps } = props;\n const spinnerContext = useSpinnerContext();\n\n if (!spinnerContext) {\n throw new Error('Missing <Spinner /> in component tree');\n }\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n const delta = type === 'next' ? 1 : -1;\n\n spinnerContext.onChange &&\n spinnerContext.onChange(e, spinnerContext.value + delta);\n };\n\n const disabled =\n type === 'next'\n ? spinnerContext.value + 1 > spinnerContext.maxValue\n : spinnerContext.value - 1 < spinnerContext.minValue;\n\n return (\n <Comp\n {...otherProps}\n type=\"button\"\n ref={forwardedRef}\n tabIndex={-1}\n data-spinner-button=\"\"\n data-spinner-has-focus={spinnerContext.spinnerHasFocus ? '' : undefined}\n disabled={disabled}\n onClick={wrapEvent(onClick, handleClick)}\n />\n );\n }\n);\n"],"mappings":"AAMA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,SAAS,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUrC,OAAO,MAAMC,aAAa,gBAAGL,UAAU,CACrC,SAASK,aAAaA,CAACC,KAAK,EAAEC,YAAY,EAAE;EAC1C,MAAM;IAAEC,EAAE,EAAEC,IAAI,GAAG,QAAQ;IAAEC,IAAI;IAAEC,OAAO;IAAE,GAAGC;EAAW,CAAC,GAAGN,KAAK;EACnE,MAAMO,cAAc,GAAGZ,iBAAiB,CAAC,CAAC;EAE1C,IAAI,CAACY,cAAc,EAAE;IACnB,MAAM,IAAIC,KAAK,CAAC,uCAAuC,CAAC;EAC1D;EAEA,MAAMC,WAAW,GAAIC,CAAgC,IAAK;IACxD,MAAMC,KAAK,GAAGP,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IAEtCG,cAAc,CAACK,QAAQ,IACrBL,cAAc,CAACK,QAAQ,CAACF,CAAC,EAAEH,cAAc,CAACM,KAAK,GAAGF,KAAK,CAAC;EAC5D,CAAC;EAED,MAAMG,QAAQ,GACZV,IAAI,KAAK,MAAM,GACXG,cAAc,CAACM,KAAK,GAAG,CAAC,GAAGN,cAAc,CAACQ,QAAQ,GAClDR,cAAc,CAACM,KAAK,GAAG,CAAC,GAAGN,cAAc,CAACS,QAAQ;EAExD,oBACElB,IAAA,CAACK,IAAI;IAAA,GACCG,UAAU;IACdF,IAAI,EAAC,QAAQ;IACba,GAAG,EAAEhB,YAAa;IAClBiB,QAAQ,EAAE,CAAC,CAAE;IACb,uBAAoB,EAAE;IACtB,0BAAwBX,cAAc,CAACY,eAAe,GAAG,EAAE,GAAGC,SAAU;IACxEN,QAAQ,EAAEA,QAAS;IACnBT,OAAO,EAAET,SAAS,CAACS,OAAO,EAAEI,WAAW;EAAE,CAC1C,CAAC;AAEN,CACF,CAAC","ignoreList":[]}
@@ -1,12 +1,12 @@
1
- import type { KeyboardEvent, MouseEvent } from 'react';
2
- export interface SpinnerContextProps {
3
- value: number;
4
- minValue: number;
5
- maxValue: number;
6
- stepSize: number;
7
- onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLDivElement>, value: number) => void;
8
- clamp: (value: number) => number;
9
- spinnerHasFocus: boolean;
10
- }
11
- export declare const SpinnerProvider: import("react").Provider<SpinnerContextProps | null>;
12
- export declare const useSpinnerContext: () => SpinnerContextProps | null;
1
+ import type { KeyboardEvent, MouseEvent } from 'react';
2
+ export interface SpinnerContextProps {
3
+ value: number;
4
+ minValue: number;
5
+ maxValue: number;
6
+ stepSize: number;
7
+ onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLDivElement>, value: number) => void;
8
+ clamp: (value: number) => number;
9
+ spinnerHasFocus: boolean;
10
+ }
11
+ export declare const SpinnerProvider: import("react").Provider<SpinnerContextProps | null>;
12
+ export declare const useSpinnerContext: () => SpinnerContextProps | null;
@@ -1,9 +1,10 @@
1
- import { createContext, useContext } from 'react'; // Spinner Component
1
+ import { createContext, useContext } from 'react';
2
2
 
3
- var spinbuttonContext = /*#__PURE__*/createContext(null);
4
- var SpinnerProvider = spinbuttonContext.Provider;
5
- export { SpinnerProvider };
6
- export var useSpinnerContext = function useSpinnerContext() {
7
- return useContext(spinbuttonContext);
8
- };
3
+ // Spinner Component
4
+
5
+ const spinbuttonContext = /*#__PURE__*/createContext(null);
6
+ export const {
7
+ Provider: SpinnerProvider
8
+ } = spinbuttonContext;
9
+ export const useSpinnerContext = () => useContext(spinbuttonContext);
9
10
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["createContext","useContext","spinbuttonContext","SpinnerProvider","Provider","useSpinnerContext"],"sources":["../../../src/Spinner/context.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\r\nimport { createContext, useContext } from 'react';\r\n\r\n// Spinner Component\r\nexport interface SpinnerContextProps {\r\n value: number;\r\n minValue: number;\r\n maxValue: number;\r\n stepSize: number;\r\n onChange?: (\r\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLDivElement>,\r\n value: number\r\n ) => void;\r\n clamp: (value: number) => number;\r\n spinnerHasFocus: boolean;\r\n}\r\n\r\nconst spinbuttonContext = createContext<SpinnerContextProps | null>(null);\r\nexport const { Provider: SpinnerProvider } = spinbuttonContext;\r\nexport const useSpinnerContext = () => useContext(spinbuttonContext);\r\n"],"mappings":"AACA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C,C,CAEA;;AAcA,IAAMC,iBAAiB,gBAAGF,aAAa,CAA6B,IAA7B,CAAvC;AACO,IAAkBG,eAAlB,GAAsCD,iBAAtC,CAAQE,QAAR;;AACP,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB;EAAA,OAAMJ,UAAU,CAACC,iBAAD,CAAhB;AAAA,CAA1B"}
1
+ {"version":3,"file":"context.js","names":["createContext","useContext","spinbuttonContext","Provider","SpinnerProvider","useSpinnerContext"],"sources":["../../../src/Spinner/context.ts"],"sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\nimport { createContext, useContext } from 'react';\n\n// Spinner Component\nexport interface SpinnerContextProps {\n value: number;\n minValue: number;\n maxValue: number;\n stepSize: number;\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLDivElement>,\n value: number\n ) => void;\n clamp: (value: number) => number;\n spinnerHasFocus: boolean;\n}\n\nconst spinbuttonContext = createContext<SpinnerContextProps | null>(null);\nexport const { Provider: SpinnerProvider } = spinbuttonContext;\nexport const useSpinnerContext = () => useContext(spinbuttonContext);\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAEjD;;AAcA,MAAMC,iBAAiB,gBAAGF,aAAa,CAA6B,IAAI,CAAC;AACzE,OAAO,MAAM;EAAEG,QAAQ,EAAEC;AAAgB,CAAC,GAAGF,iBAAiB;AAC9D,OAAO,MAAMG,iBAAiB,GAAGA,CAAA,KAAMJ,UAAU,CAACC,iBAAiB,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- export * from './Spinner';
2
- export * from './SpinnerButton';
1
+ export * from './Spinner';
2
+ export * from './SpinnerButton';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/Spinner/index.ts"],"sourcesContent":["export * from './Spinner';\r\nexport * from './SpinnerButton';\r\n"],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,iBAAd"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/Spinner/index.ts"],"sourcesContent":["export * from './Spinner';\nexport * from './SpinnerButton';\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,iBAAiB","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import type { ButtonHTMLAttributes, ElementType, ReactNode } from 'react';
2
- export interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- children?: ReactNode;
6
- }
7
- export declare const Tab: import("react").ForwardRefExoticComponent<TabProps & import("react").RefAttributes<HTMLButtonElement>>;
1
+ import type { ButtonHTMLAttributes, ElementType, ReactNode } from 'react';
2
+ export interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ children?: ReactNode;
6
+ }
7
+ export declare const Tab: import("react").ForwardRefExoticComponent<TabProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,60 +1,46 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["as", "onKeyDown", "onClick", "index"];
4
1
  import { forwardRef, useRef } from 'react';
5
2
  import { useTabsContext, useTabListContext } from './context';
6
3
  import { assignMultipleRefs, getCircularIndex, wrapEvent } from '../utils';
7
4
  import { scopeQuery } from './scopeQuery';
8
5
  import { jsx as _jsx } from "react/jsx-runtime";
9
-
10
6
  function getNextIndex(desiredIndex, delta, allTabs) {
11
- for (var i = 0; i < allTabs.length; i++) {
12
- var nextIndex = getCircularIndex(desiredIndex + delta * i, allTabs.length);
13
-
7
+ for (let i = 0; i < allTabs.length; i++) {
8
+ const nextIndex = getCircularIndex(desiredIndex + delta * i, allTabs.length);
14
9
  if (nextIndex !== null && !allTabs[nextIndex].disabled) {
15
10
  return nextIndex;
16
11
  }
17
12
  }
18
-
19
13
  return null;
20
14
  }
21
-
22
- export var Tab = /*#__PURE__*/forwardRef(function Tab(props, forwardedRef) {
23
- var _ref = props,
24
- _ref$as = _ref.as,
25
- Comp = _ref$as === void 0 ? 'button' : _ref$as,
26
- onKeyDown = _ref.onKeyDown,
27
- onClick = _ref.onClick,
28
- _ref$index = _ref.index,
29
- tabIndex = _ref$index === void 0 ? -1 : _ref$index,
30
- otherProps = _objectWithoutProperties(_ref, _excluded);
31
-
32
- var tabContext = useTabsContext();
33
- var tabListContext = useTabListContext();
34
- var ref = useRef(undefined);
35
-
15
+ export const Tab = /*#__PURE__*/forwardRef(function Tab(props, forwardedRef) {
16
+ const {
17
+ as: Comp = 'button',
18
+ onKeyDown,
19
+ onClick,
20
+ index: tabIndex = -1,
21
+ ...otherProps
22
+ } = props;
23
+ const tabContext = useTabsContext();
24
+ const tabListContext = useTabListContext();
25
+ const ref = useRef(undefined);
36
26
  if (!tabContext || !tabListContext) {
37
27
  throw new Error('Missing <Tabs /> or <TabList /> in the component tree');
38
28
  }
39
-
40
- var handleKeyDown = function handleKeyDown(e) {
41
- var right = tabListContext.vertical ? 'ArrowDown' : 'ArrowRight';
42
- var left = tabListContext.vertical ? 'ArrowUp' : 'ArrowLeft';
43
- var first = 'Home';
44
- var last = 'End';
45
-
46
- var navigateIndex = function navigateIndex(desiredIndex, isLast) {
47
- var delta = e.key === right || e.key === first ? 1 : -1;
48
- var allTabs = tabListContext.tabsScope.current.queryAllNodes(scopeQuery);
49
- var currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;
50
- var nextIndex = getNextIndex(isLast ? desiredIndex : currentIndex + desiredIndex, delta, allTabs);
51
-
29
+ const handleKeyDown = e => {
30
+ const right = tabListContext.vertical ? 'ArrowDown' : 'ArrowRight';
31
+ const left = tabListContext.vertical ? 'ArrowUp' : 'ArrowLeft';
32
+ const first = 'Home';
33
+ const last = 'End';
34
+ const navigateIndex = (desiredIndex, isLast) => {
35
+ const delta = e.key === right || e.key === first ? 1 : -1;
36
+ const allTabs = tabListContext.tabsScope.current.queryAllNodes(scopeQuery);
37
+ const currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;
38
+ const nextIndex = getNextIndex(isLast ? desiredIndex : currentIndex + desiredIndex, delta, allTabs);
52
39
  if (nextIndex !== null && nextIndex !== currentIndex && tabContext.onChange) {
53
40
  allTabs[nextIndex].focus();
54
41
  !tabListContext.manualActivation && tabContext.onChange(e, nextIndex);
55
42
  }
56
43
  };
57
-
58
44
  switch (e.key) {
59
45
  case right:
60
46
  case left:
@@ -62,9 +48,7 @@ export var Tab = /*#__PURE__*/forwardRef(function Tab(props, forwardedRef) {
62
48
  navigateIndex(e.key === right ? 1 : -1, false);
63
49
  break;
64
50
  }
65
-
66
51
  case first: // Home / End
67
-
68
52
  case last:
69
53
  {
70
54
  navigateIndex(e.key === first ? 0 : -1, true);
@@ -72,28 +56,26 @@ export var Tab = /*#__PURE__*/forwardRef(function Tab(props, forwardedRef) {
72
56
  }
73
57
  }
74
58
  };
75
-
76
- var handleClick = function handleClick(e) {
77
- var allTabs = tabListContext.tabsScope.current.queryAllNodes(scopeQuery);
78
- var currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;
79
-
59
+ const handleClick = e => {
60
+ const allTabs = tabListContext.tabsScope.current.queryAllNodes(scopeQuery);
61
+ const currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;
80
62
  if (currentIndex >= 0) {
81
63
  tabContext.onChange && tabContext.onChange(e, currentIndex);
82
64
  }
83
65
  };
84
-
85
- var isSelected = tabIndex === tabContext.currentIndex;
86
- return /*#__PURE__*/_jsx(Comp, _extends(_extends({}, otherProps), {}, {
66
+ const isSelected = tabIndex === tabContext.currentIndex;
67
+ return /*#__PURE__*/_jsx(Comp, {
68
+ ...otherProps,
87
69
  ref: assignMultipleRefs(ref, forwardedRef),
88
70
  "data-tab": "",
89
- id: tabContext.tabListId !== null && tabIndex >= 0 ? "tab-".concat(tabContext.tabListId, "-").concat(tabIndex) : undefined,
90
- "aria-controls": tabContext.tabListId !== null && tabIndex >= 0 ? "tabpanel-".concat(tabContext.tabListId, "-").concat(tabIndex) : undefined,
71
+ id: tabContext.tabListId !== null && tabIndex >= 0 ? `tab-${tabContext.tabListId}-${tabIndex}` : undefined,
72
+ "aria-controls": tabContext.tabListId !== null && tabIndex >= 0 ? `tabpanel-${tabContext.tabListId}-${tabIndex}` : undefined,
91
73
  role: "tab",
92
74
  tabIndex: isSelected ? 0 : -1,
93
75
  "aria-selected": isSelected,
94
76
  selected: isSelected,
95
77
  onKeyDown: wrapEvent(onKeyDown, handleKeyDown),
96
78
  onClick: wrapEvent(onClick, handleClick)
97
- }));
79
+ });
98
80
  });
99
81
  //# sourceMappingURL=Tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","names":["forwardRef","useRef","useTabsContext","useTabListContext","assignMultipleRefs","getCircularIndex","wrapEvent","scopeQuery","getNextIndex","desiredIndex","delta","allTabs","i","length","nextIndex","disabled","Tab","props","forwardedRef","as","Comp","onKeyDown","onClick","index","tabIndex","otherProps","tabContext","tabListContext","ref","undefined","Error","handleKeyDown","e","right","vertical","left","first","last","navigateIndex","isLast","key","tabsScope","current","queryAllNodes","currentIndex","indexOf","onChange","focus","manualActivation","handleClick","isSelected","tabListId"],"sources":["../../../src/Tabs/Tab.tsx"],"sourcesContent":["import type {\r\n ButtonHTMLAttributes,\r\n ElementType,\r\n KeyboardEvent,\r\n MouseEvent,\r\n ReactNode,\r\n} from 'react';\r\nimport { forwardRef, useRef } from 'react';\r\n\r\nimport { useTabsContext, useTabListContext } from './context';\r\nimport { assignMultipleRefs, getCircularIndex, wrapEvent } from '../utils';\r\nimport { scopeQuery } from './scopeQuery';\r\n\r\nfunction getNextIndex(\r\n desiredIndex: number,\r\n delta: number,\r\n allTabs: HTMLButtonElement[]\r\n) {\r\n for (let i = 0; i < allTabs.length; i++) {\r\n const nextIndex = getCircularIndex(\r\n desiredIndex + delta * i,\r\n allTabs.length\r\n );\r\n\r\n if (nextIndex !== null && !allTabs[nextIndex].disabled) {\r\n return nextIndex;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n}\r\n\r\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(\r\n props,\r\n forwardedRef\r\n) {\r\n const {\r\n as: Comp = 'button',\r\n onKeyDown,\r\n onClick,\r\n index: tabIndex = -1,\r\n ...otherProps\r\n } = props as TabProps & { index: number };\r\n const tabContext = useTabsContext();\r\n const tabListContext = useTabListContext();\r\n\r\n const ref = useRef<HTMLButtonElement | undefined>(undefined);\r\n\r\n if (!tabContext || !tabListContext) {\r\n throw new Error('Missing <Tabs /> or <TabList /> in the component tree');\r\n }\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\r\n const right = tabListContext.vertical ? 'ArrowDown' : 'ArrowRight';\r\n const left = tabListContext.vertical ? 'ArrowUp' : 'ArrowLeft';\r\n const first = 'Home';\r\n const last = 'End';\r\n\r\n const navigateIndex = (desiredIndex: number, isLast: boolean) => {\r\n const delta = e.key === right || e.key === first ? 1 : -1;\r\n\r\n const allTabs =\r\n tabListContext.tabsScope.current.queryAllNodes(scopeQuery);\r\n const currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;\r\n\r\n const nextIndex = getNextIndex(\r\n isLast ? desiredIndex : currentIndex + desiredIndex,\r\n delta,\r\n allTabs as HTMLButtonElement[]\r\n );\r\n\r\n if (\r\n nextIndex !== null &&\r\n nextIndex !== currentIndex &&\r\n tabContext.onChange\r\n ) {\r\n allTabs[nextIndex].focus();\r\n !tabListContext.manualActivation && tabContext.onChange(e, nextIndex);\r\n }\r\n };\r\n\r\n switch (e.key) {\r\n case right:\r\n case left: {\r\n navigateIndex(e.key === right ? 1 : -1, false);\r\n break;\r\n }\r\n case first: // Home / End\r\n case last: {\r\n navigateIndex(e.key === first ? 0 : -1, true);\r\n break;\r\n }\r\n }\r\n };\r\n\r\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\r\n const allTabs = tabListContext.tabsScope.current.queryAllNodes(scopeQuery);\r\n const currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;\r\n\r\n if (currentIndex >= 0) {\r\n tabContext.onChange && tabContext.onChange(e, currentIndex);\r\n }\r\n };\r\n\r\n const isSelected = tabIndex === tabContext.currentIndex;\r\n\r\n return (\r\n <Comp\r\n {...otherProps}\r\n ref={assignMultipleRefs(ref, forwardedRef)}\r\n data-tab=\"\"\r\n id={\r\n tabContext.tabListId !== null && tabIndex >= 0\r\n ? `tab-${tabContext.tabListId}-${tabIndex}`\r\n : undefined\r\n }\r\n aria-controls={\r\n tabContext.tabListId !== null && tabIndex >= 0\r\n ? `tabpanel-${tabContext.tabListId}-${tabIndex}`\r\n : undefined\r\n }\r\n role=\"tab\"\r\n tabIndex={isSelected ? 0 : -1}\r\n aria-selected={isSelected}\r\n selected={isSelected}\r\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\r\n onClick={wrapEvent(onClick, handleClick)}\r\n />\r\n );\r\n});\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tab.js","names":["forwardRef","useRef","useTabsContext","useTabListContext","assignMultipleRefs","getCircularIndex","wrapEvent","scopeQuery","jsx","_jsx","getNextIndex","desiredIndex","delta","allTabs","i","length","nextIndex","disabled","Tab","props","forwardedRef","as","Comp","onKeyDown","onClick","index","tabIndex","otherProps","tabContext","tabListContext","ref","undefined","Error","handleKeyDown","e","right","vertical","left","first","last","navigateIndex","isLast","key","tabsScope","current","queryAllNodes","currentIndex","indexOf","onChange","focus","manualActivation","handleClick","isSelected","id","tabListId","role","selected"],"sources":["../../../src/Tabs/Tab.tsx"],"sourcesContent":["import type {\n ButtonHTMLAttributes,\n ElementType,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n} from 'react';\nimport { forwardRef, useRef } from 'react';\n\nimport { useTabsContext, useTabListContext } from './context';\nimport { assignMultipleRefs, getCircularIndex, wrapEvent } from '../utils';\nimport { scopeQuery } from './scopeQuery';\n\nfunction getNextIndex(\n desiredIndex: number,\n delta: number,\n allTabs: HTMLButtonElement[]\n) {\n for (let i = 0; i < allTabs.length; i++) {\n const nextIndex = getCircularIndex(\n desiredIndex + delta * i,\n allTabs.length\n );\n\n if (nextIndex !== null && !allTabs[nextIndex].disabled) {\n return nextIndex;\n }\n }\n\n return null;\n}\n\nexport interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n}\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(\n props,\n forwardedRef\n) {\n const {\n as: Comp = 'button',\n onKeyDown,\n onClick,\n index: tabIndex = -1,\n ...otherProps\n } = props as TabProps & { index: number };\n const tabContext = useTabsContext();\n const tabListContext = useTabListContext();\n\n const ref = useRef<HTMLButtonElement | undefined>(undefined);\n\n if (!tabContext || !tabListContext) {\n throw new Error('Missing <Tabs /> or <TabList /> in the component tree');\n }\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n const right = tabListContext.vertical ? 'ArrowDown' : 'ArrowRight';\n const left = tabListContext.vertical ? 'ArrowUp' : 'ArrowLeft';\n const first = 'Home';\n const last = 'End';\n\n const navigateIndex = (desiredIndex: number, isLast: boolean) => {\n const delta = e.key === right || e.key === first ? 1 : -1;\n\n const allTabs =\n tabListContext.tabsScope.current.queryAllNodes(scopeQuery);\n const currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;\n\n const nextIndex = getNextIndex(\n isLast ? desiredIndex : currentIndex + desiredIndex,\n delta,\n allTabs as HTMLButtonElement[]\n );\n\n if (\n nextIndex !== null &&\n nextIndex !== currentIndex &&\n tabContext.onChange\n ) {\n allTabs[nextIndex].focus();\n !tabListContext.manualActivation && tabContext.onChange(e, nextIndex);\n }\n };\n\n switch (e.key) {\n case right:\n case left: {\n navigateIndex(e.key === right ? 1 : -1, false);\n break;\n }\n case first: // Home / End\n case last: {\n navigateIndex(e.key === first ? 0 : -1, true);\n break;\n }\n }\n };\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n const allTabs = tabListContext.tabsScope.current.queryAllNodes(scopeQuery);\n const currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;\n\n if (currentIndex >= 0) {\n tabContext.onChange && tabContext.onChange(e, currentIndex);\n }\n };\n\n const isSelected = tabIndex === tabContext.currentIndex;\n\n return (\n <Comp\n {...otherProps}\n ref={assignMultipleRefs(ref, forwardedRef)}\n data-tab=\"\"\n id={\n tabContext.tabListId !== null && tabIndex >= 0\n ? `tab-${tabContext.tabListId}-${tabIndex}`\n : undefined\n }\n aria-controls={\n tabContext.tabListId !== null && tabIndex >= 0\n ? `tabpanel-${tabContext.tabListId}-${tabIndex}`\n : undefined\n }\n role=\"tab\"\n tabIndex={isSelected ? 0 : -1}\n aria-selected={isSelected}\n selected={isSelected}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n onClick={wrapEvent(onClick, handleClick)}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,9 @@
1
- import type { HTMLAttributes, ElementType, ReactNode } from 'react';
2
- export interface TabListProps extends HTMLAttributes<HTMLDivElement> {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- manualActivation?: boolean;
6
- vertical?: boolean;
7
- children?: ReactNode;
8
- }
9
- export declare const TabList: import("react").ForwardRefExoticComponent<TabListProps & import("react").RefAttributes<HTMLDivElement>>;
1
+ import type { HTMLAttributes, ElementType, ReactNode } from 'react';
2
+ export interface TabListProps extends HTMLAttributes<HTMLDivElement> {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ manualActivation?: boolean;
6
+ vertical?: boolean;
7
+ children?: ReactNode;
8
+ }
9
+ export declare const TabList: import("react").ForwardRefExoticComponent<TabListProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,58 +1,48 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["as", "manualActivation", "vertical", "children"];
4
1
  import { forwardRef, useRef, useEffect, Children, cloneElement, useId } from 'react';
5
2
  import { TabListProvider, useTabsContext } from './context';
6
3
  import { useScope } from '../hooks';
7
4
  import { assignMultipleRefs } from '../utils';
8
5
  import { jsx as _jsx } from "react/jsx-runtime";
9
- export var TabList = /*#__PURE__*/forwardRef(function TabList(props, forwardedRef) {
10
- var _props$as = props.as,
11
- Comp = _props$as === void 0 ? 'div' : _props$as,
12
- _props$manualActivati = props.manualActivation,
13
- manualActivation = _props$manualActivati === void 0 ? false : _props$manualActivati,
14
- _props$vertical = props.vertical,
15
- vertical = _props$vertical === void 0 ? false : _props$vertical,
16
- childrenProps = props.children,
17
- otherProps = _objectWithoutProperties(props, _excluded);
18
-
19
- var ref = useRef();
20
- var tabsScope = useScope(ref);
21
- var tabsContext = useTabsContext();
22
- var id = useId();
23
-
6
+ export const TabList = /*#__PURE__*/forwardRef(function TabList(props, forwardedRef) {
7
+ const {
8
+ as: Comp = 'div',
9
+ manualActivation = false,
10
+ vertical = false,
11
+ children: childrenProps,
12
+ ...otherProps
13
+ } = props;
14
+ const ref = useRef(null);
15
+ const tabsScope = useScope(ref);
16
+ const tabsContext = useTabsContext();
17
+ const id = useId();
24
18
  if (!tabsContext) {
25
19
  throw new Error('Missing <Tabs /> in the component tree');
26
20
  }
27
-
28
- useEffect(function () {
21
+ useEffect(() => {
29
22
  if (id !== undefined) {
30
23
  tabsContext.setTabListId(id);
31
- return function () {
24
+ return () => {
32
25
  tabsContext.setTabListId(null);
33
26
  };
34
27
  }
35
-
36
28
  return;
37
29
  }, [id, tabsContext, tabsContext.setTabListId]);
38
- var children = Children.map(childrenProps, function (node, index) {
39
- return /*#__PURE__*/cloneElement(node, {
40
- index: index
41
- });
42
- });
30
+ const children = Children.map(childrenProps, (node, index) => /*#__PURE__*/cloneElement(node, {
31
+ index
32
+ }));
43
33
  return /*#__PURE__*/_jsx(TabListProvider, {
44
34
  value: {
45
- tabsScope: tabsScope,
46
- manualActivation: manualActivation,
47
- vertical: vertical
35
+ tabsScope,
36
+ manualActivation,
37
+ vertical
48
38
  },
49
- children: /*#__PURE__*/_jsx(Comp, _extends(_extends({
39
+ children: /*#__PURE__*/_jsx(Comp, {
50
40
  ref: assignMultipleRefs(forwardedRef, ref),
51
41
  "data-tab-list": "",
52
- role: "tablist"
53
- }, otherProps), {}, {
42
+ role: "tablist",
43
+ ...otherProps,
54
44
  children: children
55
- }))
45
+ })
56
46
  });
57
47
  });
58
48
  //# sourceMappingURL=TabList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.js","names":["forwardRef","useRef","useEffect","Children","cloneElement","useId","TabListProvider","useTabsContext","useScope","assignMultipleRefs","TabList","props","forwardedRef","as","Comp","manualActivation","vertical","childrenProps","children","otherProps","ref","tabsScope","tabsContext","id","Error","undefined","setTabListId","map","node","index"],"sources":["../../../src/Tabs/TabList.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType, ReactNode } from 'react';\r\nimport {\r\n forwardRef,\r\n useRef,\r\n useEffect,\r\n Children,\r\n cloneElement,\r\n useId,\r\n} from 'react';\r\n\r\nimport { TabListProvider, useTabsContext } from './context';\r\nimport { useScope } from '../hooks';\r\nimport { assignMultipleRefs } from '../utils';\r\n\r\nexport interface TabListProps extends HTMLAttributes<HTMLDivElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n manualActivation?: boolean;\r\n vertical?: boolean;\r\n children?: ReactNode;\r\n}\r\n\r\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(\r\n function TabList(props, forwardedRef) {\r\n const {\r\n as: Comp = 'div',\r\n manualActivation = false,\r\n vertical = false,\r\n children: childrenProps,\r\n ...otherProps\r\n } = props;\r\n\r\n const ref = useRef();\r\n const tabsScope = useScope(ref);\r\n const tabsContext = useTabsContext();\r\n const id = useId();\r\n\r\n if (!tabsContext) {\r\n throw new Error('Missing <Tabs /> in the component tree');\r\n }\r\n\r\n useEffect(() => {\r\n if (id !== undefined) {\r\n tabsContext.setTabListId(id);\r\n\r\n return () => {\r\n tabsContext.setTabListId(null);\r\n };\r\n }\r\n\r\n return;\r\n }, [id, tabsContext, tabsContext.setTabListId]);\r\n\r\n const children = Children.map(childrenProps, (node, index) =>\r\n cloneElement(node as any, { index })\r\n );\r\n\r\n return (\r\n <TabListProvider value={{ tabsScope, manualActivation, vertical }}>\r\n <Comp\r\n ref={assignMultipleRefs(forwardedRef, ref)}\r\n data-tab-list=\"\"\r\n role=\"tablist\"\r\n {...otherProps}\r\n >\r\n {children}\r\n </Comp>\r\n </TabListProvider>\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AACA,SACEA,UADF,EAEEC,MAFF,EAGEC,SAHF,EAIEC,QAJF,EAKEC,YALF,EAMEC,KANF,QAOO,OAPP;AASA,SAASC,eAAT,EAA0BC,cAA1B,QAAgD,WAAhD;AACA,SAASC,QAAT,QAAyB,UAAzB;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAUA,OAAO,IAAMC,OAAO,gBAAGV,UAAU,CAC/B,SAASU,OAAT,CAAiBC,KAAjB,EAAwBC,YAAxB,EAAsC;EACpC,gBAMID,KANJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,KADb;EAAA,4BAMIH,KANJ,CAEEI,gBAFF;EAAA,IAEEA,gBAFF,sCAEqB,KAFrB;EAAA,sBAMIJ,KANJ,CAGEK,QAHF;EAAA,IAGEA,QAHF,gCAGa,KAHb;EAAA,IAIYC,aAJZ,GAMIN,KANJ,CAIEO,QAJF;EAAA,IAKKC,UALL,4BAMIR,KANJ;;EAQA,IAAMS,GAAG,GAAGnB,MAAM,EAAlB;EACA,IAAMoB,SAAS,GAAGb,QAAQ,CAACY,GAAD,CAA1B;EACA,IAAME,WAAW,GAAGf,cAAc,EAAlC;EACA,IAAMgB,EAAE,GAAGlB,KAAK,EAAhB;;EAEA,IAAI,CAACiB,WAAL,EAAkB;IAChB,MAAM,IAAIE,KAAJ,CAAU,wCAAV,CAAN;EACD;;EAEDtB,SAAS,CAAC,YAAM;IACd,IAAIqB,EAAE,KAAKE,SAAX,EAAsB;MACpBH,WAAW,CAACI,YAAZ,CAAyBH,EAAzB;MAEA,OAAO,YAAM;QACXD,WAAW,CAACI,YAAZ,CAAyB,IAAzB;MACD,CAFD;IAGD;;IAED;EACD,CAVQ,EAUN,CAACH,EAAD,EAAKD,WAAL,EAAkBA,WAAW,CAACI,YAA9B,CAVM,CAAT;EAYA,IAAMR,QAAQ,GAAGf,QAAQ,CAACwB,GAAT,CAAaV,aAAb,EAA4B,UAACW,IAAD,EAAOC,KAAP;IAAA,oBAC3CzB,YAAY,CAACwB,IAAD,EAAc;MAAEC,KAAK,EAALA;IAAF,CAAd,CAD+B;EAAA,CAA5B,CAAjB;EAIA,oBACE,KAAC,eAAD;IAAiB,KAAK,EAAE;MAAER,SAAS,EAATA,SAAF;MAAaN,gBAAgB,EAAhBA,gBAAb;MAA+BC,QAAQ,EAARA;IAA/B,CAAxB;IAAA,uBACE,KAAC,IAAD;MACE,GAAG,EAAEP,kBAAkB,CAACG,YAAD,EAAeQ,GAAf,CADzB;MAEE,iBAAc,EAFhB;MAGE,IAAI,EAAC;IAHP,GAIMD,UAJN;MAAA,UAMGD;IANH;EADF,EADF;AAYD,CA/C8B,CAA1B"}
1
+ {"version":3,"file":"TabList.js","names":["forwardRef","useRef","useEffect","Children","cloneElement","useId","TabListProvider","useTabsContext","useScope","assignMultipleRefs","jsx","_jsx","TabList","props","forwardedRef","as","Comp","manualActivation","vertical","children","childrenProps","otherProps","ref","tabsScope","tabsContext","id","Error","undefined","setTabListId","map","node","index","value","role"],"sources":["../../../src/Tabs/TabList.tsx"],"sourcesContent":["import type { HTMLAttributes, ElementType, ReactNode } from 'react';\nimport {\n forwardRef,\n useRef,\n useEffect,\n Children,\n cloneElement,\n useId,\n} from 'react';\n\nimport { TabListProvider, useTabsContext } from './context';\nimport { useScope } from '../hooks';\nimport { assignMultipleRefs } from '../utils';\n\nexport interface TabListProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n manualActivation?: boolean;\n vertical?: boolean;\n children?: ReactNode;\n}\n\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(\n function TabList(props, forwardedRef) {\n const {\n as: Comp = 'div',\n manualActivation = false,\n vertical = false,\n children: childrenProps,\n ...otherProps\n } = props;\n\n const ref = useRef(null);\n const tabsScope = useScope(ref);\n const tabsContext = useTabsContext();\n const id = useId();\n\n if (!tabsContext) {\n throw new Error('Missing <Tabs /> in the component tree');\n }\n\n useEffect(() => {\n if (id !== undefined) {\n tabsContext.setTabListId(id);\n\n return () => {\n tabsContext.setTabListId(null);\n };\n }\n\n return;\n }, [id, tabsContext, tabsContext.setTabListId]);\n\n const children = Children.map(childrenProps, (node, index) =>\n cloneElement(node as any, { index })\n );\n\n return (\n <TabListProvider value={{ tabsScope, manualActivation, vertical }}>\n <Comp\n ref={assignMultipleRefs(forwardedRef, ref)}\n data-tab-list=\"\"\n role=\"tablist\"\n {...otherProps}\n >\n {children}\n </Comp>\n </TabListProvider>\n );\n }\n);\n"],"mappings":"AACA,SACEA,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,YAAY,EACZC,KAAK,QACA,OAAO;AAEd,SAASC,eAAe,EAAEC,cAAc,QAAQ,WAAW;AAC3D,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,kBAAkB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAU9C,OAAO,MAAMC,OAAO,gBAAGZ,UAAU,CAC/B,SAASY,OAAOA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACpC,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAChBC,gBAAgB,GAAG,KAAK;IACxBC,QAAQ,GAAG,KAAK;IAChBC,QAAQ,EAAEC,aAAa;IACvB,GAAGC;EACL,CAAC,GAAGR,KAAK;EAET,MAAMS,GAAG,GAAGrB,MAAM,CAAC,IAAI,CAAC;EACxB,MAAMsB,SAAS,GAAGf,QAAQ,CAACc,GAAG,CAAC;EAC/B,MAAME,WAAW,GAAGjB,cAAc,CAAC,CAAC;EACpC,MAAMkB,EAAE,GAAGpB,KAAK,CAAC,CAAC;EAElB,IAAI,CAACmB,WAAW,EAAE;IAChB,MAAM,IAAIE,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EAEAxB,SAAS,CAAC,MAAM;IACd,IAAIuB,EAAE,KAAKE,SAAS,EAAE;MACpBH,WAAW,CAACI,YAAY,CAACH,EAAE,CAAC;MAE5B,OAAO,MAAM;QACXD,WAAW,CAACI,YAAY,CAAC,IAAI,CAAC;MAChC,CAAC;IACH;IAEA;EACF,CAAC,EAAE,CAACH,EAAE,EAAED,WAAW,EAAEA,WAAW,CAACI,YAAY,CAAC,CAAC;EAE/C,MAAMT,QAAQ,GAAGhB,QAAQ,CAAC0B,GAAG,CAACT,aAAa,EAAE,CAACU,IAAI,EAAEC,KAAK,kBACvD3B,YAAY,CAAC0B,IAAI,EAAS;IAAEC;EAAM,CAAC,CACrC,CAAC;EAED,oBACEpB,IAAA,CAACL,eAAe;IAAC0B,KAAK,EAAE;MAAET,SAAS;MAAEN,gBAAgB;MAAEC;IAAS,CAAE;IAAAC,QAAA,eAChER,IAAA,CAACK,IAAI;MACHM,GAAG,EAAEb,kBAAkB,CAACK,YAAY,EAAEQ,GAAG,CAAE;MAC3C,iBAAc,EAAE;MAChBW,IAAI,EAAC,SAAS;MAAA,GACVZ,UAAU;MAAAF,QAAA,EAEbA;IAAQ,CACL;EAAC,CACQ,CAAC;AAEtB,CACF,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import type { ElementType, HTMLAttributes, ReactNode } from 'react';
2
- export interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- children?: ReactNode;
6
- lazy?: boolean;
7
- }
8
- export declare const TabPanel: import("react").ForwardRefExoticComponent<TabPanelProps & import("react").RefAttributes<HTMLDivElement>>;
1
+ import type { ElementType, HTMLAttributes, ReactNode } from 'react';
2
+ export interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ children?: ReactNode;
6
+ lazy?: boolean;
7
+ }
8
+ export declare const TabPanel: import("react").ForwardRefExoticComponent<TabPanelProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,36 +1,29 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["as", "index", "lazy", "children"];
4
1
  import { forwardRef } from 'react';
5
2
  import { useTabsContext } from './context';
6
3
  import { jsx as _jsx } from "react/jsx-runtime";
7
- export var TabPanel = /*#__PURE__*/forwardRef(function TabPanel(props, forwardedRef) {
8
- var _ref = props,
9
- _ref$as = _ref.as,
10
- Comp = _ref$as === void 0 ? 'div' : _ref$as,
11
- index = _ref.index,
12
- _ref$lazy = _ref.lazy,
13
- lazy = _ref$lazy === void 0 ? false : _ref$lazy,
14
- children = _ref.children,
15
- otherProps = _objectWithoutProperties(_ref, _excluded);
16
-
17
- var tabsContext = useTabsContext();
18
-
4
+ export const TabPanel = /*#__PURE__*/forwardRef(function TabPanel(props, forwardedRef) {
5
+ const {
6
+ as: Comp = 'div',
7
+ index,
8
+ lazy = false,
9
+ children,
10
+ ...otherProps
11
+ } = props;
12
+ const tabsContext = useTabsContext();
19
13
  if (!tabsContext) {
20
14
  throw new Error('Missing <Tabs /> in the component tree.');
21
15
  }
22
-
23
- var isSelected = tabsContext.currentIndex === index;
24
- return /*#__PURE__*/_jsx(Comp, _extends(_extends({
16
+ const isSelected = tabsContext.currentIndex === index;
17
+ return /*#__PURE__*/_jsx(Comp, {
25
18
  ref: forwardedRef,
26
19
  "data-tab-panel": "",
27
20
  role: "tabpanel",
28
- id: tabsContext.tabListId !== null ? "tabpanel-".concat(tabsContext.tabListId, "-").concat(index) : undefined,
29
- "aria-labelledby": tabsContext.tabListId !== null ? "tab-".concat(tabsContext.tabListId, "-").concat(index) : undefined,
21
+ id: tabsContext.tabListId !== null ? `tabpanel-${tabsContext.tabListId}-${index}` : undefined,
22
+ "aria-labelledby": tabsContext.tabListId !== null ? `tab-${tabsContext.tabListId}-${index}` : undefined,
30
23
  hidden: isSelected ? undefined : 'hidden',
31
- tabIndex: 0
32
- }, otherProps), {}, {
24
+ tabIndex: 0,
25
+ ...otherProps,
33
26
  children: (isSelected || !lazy) && children
34
- }));
27
+ });
35
28
  });
36
29
  //# sourceMappingURL=TabPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabPanel.js","names":["forwardRef","useTabsContext","TabPanel","props","forwardedRef","as","Comp","index","lazy","children","otherProps","tabsContext","Error","isSelected","currentIndex","tabListId","undefined"],"sources":["../../../src/Tabs/TabPanel.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes, ReactNode } from 'react';\r\nimport { forwardRef } from 'react';\r\n\r\nimport { useTabsContext } from './context';\r\n\r\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n children?: ReactNode;\r\n lazy?: boolean;\r\n}\r\n\r\nexport const TabPanel = forwardRef<HTMLDivElement, TabPanelProps>(\r\n function TabPanel(props, forwardedRef) {\r\n const {\r\n as: Comp = 'div',\r\n index,\r\n lazy = false,\r\n children,\r\n ...otherProps\r\n } = props as TabPanelProps & { index: number };\r\n const tabsContext = useTabsContext();\r\n\r\n if (!tabsContext) {\r\n throw new Error('Missing <Tabs /> in the component tree.');\r\n }\r\n\r\n const isSelected = tabsContext.currentIndex === index;\r\n\r\n return (\r\n <Comp\r\n ref={forwardedRef}\r\n data-tab-panel=\"\"\r\n role=\"tabpanel\"\r\n id={\r\n tabsContext.tabListId !== null\r\n ? `tabpanel-${tabsContext.tabListId}-${index}`\r\n : undefined\r\n }\r\n aria-labelledby={\r\n tabsContext.tabListId !== null\r\n ? `tab-${tabsContext.tabListId}-${index}`\r\n : undefined\r\n }\r\n hidden={isSelected ? undefined : 'hidden'}\r\n tabIndex={0}\r\n {...otherProps}\r\n >\r\n {(isSelected || !lazy) && children}\r\n </Comp>\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AACA,SAASA,UAAT,QAA2B,OAA3B;AAEA,SAASC,cAAT,QAA+B,WAA/B;;AASA,OAAO,IAAMC,QAAQ,gBAAGF,UAAU,CAChC,SAASE,QAAT,CAAkBC,KAAlB,EAAyBC,YAAzB,EAAuC;EACrC,WAMID,KANJ;EAAA,mBACEE,EADF;EAAA,IACMC,IADN,wBACa,KADb;EAAA,IAEEC,KAFF,QAEEA,KAFF;EAAA,qBAGEC,IAHF;EAAA,IAGEA,IAHF,0BAGS,KAHT;EAAA,IAIEC,QAJF,QAIEA,QAJF;EAAA,IAKKC,UALL;;EAOA,IAAMC,WAAW,GAAGV,cAAc,EAAlC;;EAEA,IAAI,CAACU,WAAL,EAAkB;IAChB,MAAM,IAAIC,KAAJ,CAAU,yCAAV,CAAN;EACD;;EAED,IAAMC,UAAU,GAAGF,WAAW,CAACG,YAAZ,KAA6BP,KAAhD;EAEA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEH,YADP;IAEE,kBAAe,EAFjB;IAGE,IAAI,EAAC,UAHP;IAIE,EAAE,EACAO,WAAW,CAACI,SAAZ,KAA0B,IAA1B,sBACgBJ,WAAW,CAACI,SAD5B,cACyCR,KADzC,IAEIS,SAPR;IASE,mBACEL,WAAW,CAACI,SAAZ,KAA0B,IAA1B,iBACWJ,WAAW,CAACI,SADvB,cACoCR,KADpC,IAEIS,SAZR;IAcE,MAAM,EAAEH,UAAU,GAAGG,SAAH,GAAe,QAdnC;IAeE,QAAQ,EAAE;EAfZ,GAgBMN,UAhBN;IAAA,UAkBG,CAACG,UAAU,IAAI,CAACL,IAAhB,KAAyBC;EAlB5B,GADF;AAsBD,CAvC+B,CAA3B"}
1
+ {"version":3,"file":"TabPanel.js","names":["forwardRef","useTabsContext","jsx","_jsx","TabPanel","props","forwardedRef","as","Comp","index","lazy","children","otherProps","tabsContext","Error","isSelected","currentIndex","ref","role","id","tabListId","undefined","hidden","tabIndex"],"sources":["../../../src/Tabs/TabPanel.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTabsContext } from './context';\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n lazy?: boolean;\n}\n\nexport const TabPanel = forwardRef<HTMLDivElement, TabPanelProps>(\n function TabPanel(props, forwardedRef) {\n const {\n as: Comp = 'div',\n index,\n lazy = false,\n children,\n ...otherProps\n } = props as TabPanelProps & { index: number };\n const tabsContext = useTabsContext();\n\n if (!tabsContext) {\n throw new Error('Missing <Tabs /> in the component tree.');\n }\n\n const isSelected = tabsContext.currentIndex === index;\n\n return (\n <Comp\n ref={forwardedRef}\n data-tab-panel=\"\"\n role=\"tabpanel\"\n id={\n tabsContext.tabListId !== null\n ? `tabpanel-${tabsContext.tabListId}-${index}`\n : undefined\n }\n aria-labelledby={\n tabsContext.tabListId !== null\n ? `tab-${tabsContext.tabListId}-${index}`\n : undefined\n }\n hidden={isSelected ? undefined : 'hidden'}\n tabIndex={0}\n {...otherProps}\n >\n {(isSelected || !lazy) && children}\n </Comp>\n );\n }\n);\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,cAAc,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS3C,OAAO,MAAMC,QAAQ,gBAAGJ,UAAU,CAChC,SAASI,QAAQA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACrC,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAChBC,KAAK;IACLC,IAAI,GAAG,KAAK;IACZC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAGP,KAA0C;EAC9C,MAAMQ,WAAW,GAAGZ,cAAc,CAAC,CAAC;EAEpC,IAAI,CAACY,WAAW,EAAE;IAChB,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EAC5D;EAEA,MAAMC,UAAU,GAAGF,WAAW,CAACG,YAAY,KAAKP,KAAK;EAErD,oBACEN,IAAA,CAACK,IAAI;IACHS,GAAG,EAAEX,YAAa;IAClB,kBAAe,EAAE;IACjBY,IAAI,EAAC,UAAU;IACfC,EAAE,EACAN,WAAW,CAACO,SAAS,KAAK,IAAI,GAC1B,YAAYP,WAAW,CAACO,SAAS,IAAIX,KAAK,EAAE,GAC5CY,SACL;IACD,mBACER,WAAW,CAACO,SAAS,KAAK,IAAI,GAC1B,OAAOP,WAAW,CAACO,SAAS,IAAIX,KAAK,EAAE,GACvCY,SACL;IACDC,MAAM,EAAEP,UAAU,GAAGM,SAAS,GAAG,QAAS;IAC1CE,QAAQ,EAAE,CAAE;IAAA,GACRX,UAAU;IAAAD,QAAA,EAEb,CAACI,UAAU,IAAI,CAACL,IAAI,KAAKC;EAAQ,CAC9B,CAAC;AAEX,CACF,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import type { ElementType, ReactNode } from 'react';
2
- export interface TabPanelsProps {
3
- as?: ElementType<any>;
4
- innerAs?: ElementType<any>;
5
- lazy?: boolean;
6
- children?: ReactNode;
7
- }
8
- export declare const TabPanels: import("react").ForwardRefExoticComponent<TabPanelsProps & import("react").RefAttributes<HTMLDivElement>>;
1
+ import type { ElementType, ReactNode } from 'react';
2
+ export interface TabPanelsProps {
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ lazy?: boolean;
6
+ children?: ReactNode;
7
+ }
8
+ export declare const TabPanels: import("react").ForwardRefExoticComponent<TabPanelsProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,25 +1,20 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["as", "children", "lazy"];
4
1
  import { forwardRef, Fragment, Children, cloneElement } from 'react';
5
2
  import { jsx as _jsx } from "react/jsx-runtime";
6
- export var TabPanels = /*#__PURE__*/forwardRef(function TabPanels(props, forwardedRef) {
7
- var _props$as = props.as,
8
- Comp = _props$as === void 0 ? Fragment : _props$as,
9
- childrenProps = props.children,
10
- lazy = props.lazy,
11
- otherProps = _objectWithoutProperties(props, _excluded);
12
-
13
- var children = Children.map(childrenProps, function (node, index) {
14
- return /*#__PURE__*/cloneElement(node, {
15
- index: index,
16
- lazy: lazy
17
- });
18
- });
19
- return /*#__PURE__*/_jsx(Comp, _extends(_extends({
20
- ref: forwardedRef
21
- }, otherProps), {}, {
22
- children: children
3
+ export const TabPanels = /*#__PURE__*/forwardRef(function TabPanels(props, forwardedRef) {
4
+ const {
5
+ as: Comp = Fragment,
6
+ children: childrenProps,
7
+ lazy,
8
+ ...otherProps
9
+ } = props;
10
+ const children = Children.map(childrenProps, (node, index) => /*#__PURE__*/cloneElement(node, {
11
+ index,
12
+ lazy
23
13
  }));
14
+ return /*#__PURE__*/_jsx(Comp, {
15
+ ref: forwardedRef,
16
+ ...otherProps,
17
+ children: children
18
+ });
24
19
  });
25
20
  //# sourceMappingURL=TabPanels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabPanels.js","names":["forwardRef","Fragment","Children","cloneElement","TabPanels","props","forwardedRef","as","Comp","childrenProps","children","lazy","otherProps","map","node","index"],"sources":["../../../src/Tabs/TabPanels.tsx"],"sourcesContent":["import type { ElementType, ReactNode } from 'react';\r\nimport { forwardRef, Fragment, Children, cloneElement } from 'react';\r\n\r\nexport interface TabPanelsProps {\r\n as?: ElementType<any>;\r\n innerAs?: ElementType<any>;\r\n lazy?: boolean;\r\n children?: ReactNode;\r\n}\r\n\r\nexport const TabPanels = forwardRef<HTMLDivElement, TabPanelsProps>(\r\n function TabPanels(props, forwardedRef) {\r\n const {\r\n as: Comp = Fragment,\r\n children: childrenProps,\r\n lazy,\r\n ...otherProps\r\n } = props;\r\n\r\n const children = Children.map(childrenProps, (node, index) =>\r\n cloneElement(node as any, { index, lazy })\r\n );\r\n\r\n return (\r\n <Comp ref={forwardedRef} {...otherProps}>\r\n {children}\r\n </Comp>\r\n );\r\n }\r\n);\r\n"],"mappings":";;;AACA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,QAA/B,EAAyCC,YAAzC,QAA6D,OAA7D;;AASA,OAAO,IAAMC,SAAS,gBAAGJ,UAAU,CACjC,SAASI,SAAT,CAAmBC,KAAnB,EAA0BC,YAA1B,EAAwC;EACtC,gBAKID,KALJ,CACEE,EADF;EAAA,IACMC,IADN,0BACaP,QADb;EAAA,IAEYQ,aAFZ,GAKIJ,KALJ,CAEEK,QAFF;EAAA,IAGEC,IAHF,GAKIN,KALJ,CAGEM,IAHF;EAAA,IAIKC,UAJL,4BAKIP,KALJ;;EAOA,IAAMK,QAAQ,GAAGR,QAAQ,CAACW,GAAT,CAAaJ,aAAb,EAA4B,UAACK,IAAD,EAAOC,KAAP;IAAA,oBAC3CZ,YAAY,CAACW,IAAD,EAAc;MAAEC,KAAK,EAALA,KAAF;MAASJ,IAAI,EAAJA;IAAT,CAAd,CAD+B;EAAA,CAA5B,CAAjB;EAIA,oBACE,KAAC,IAAD;IAAM,GAAG,EAAEL;EAAX,GAA6BM,UAA7B;IAAA,UACGF;EADH,GADF;AAKD,CAlBgC,CAA5B"}
1
+ {"version":3,"file":"TabPanels.js","names":["forwardRef","Fragment","Children","cloneElement","jsx","_jsx","TabPanels","props","forwardedRef","as","Comp","children","childrenProps","lazy","otherProps","map","node","index","ref"],"sources":["../../../src/Tabs/TabPanels.tsx"],"sourcesContent":["import type { ElementType, ReactNode } from 'react';\nimport { forwardRef, Fragment, Children, cloneElement } from 'react';\n\nexport interface TabPanelsProps {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n lazy?: boolean;\n children?: ReactNode;\n}\n\nexport const TabPanels = forwardRef<HTMLDivElement, TabPanelsProps>(\n function TabPanels(props, forwardedRef) {\n const {\n as: Comp = Fragment,\n children: childrenProps,\n lazy,\n ...otherProps\n } = props;\n\n const children = Children.map(childrenProps, (node, index) =>\n cloneElement(node as any, { index, lazy })\n );\n\n return (\n <Comp ref={forwardedRef} {...otherProps}>\n {children}\n </Comp>\n );\n }\n);\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASrE,OAAO,MAAMC,SAAS,gBAAGN,UAAU,CACjC,SAASM,SAASA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACtC,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAGT,QAAQ;IACnBU,QAAQ,EAAEC,aAAa;IACvBC,IAAI;IACJ,GAAGC;EACL,CAAC,GAAGP,KAAK;EAET,MAAMI,QAAQ,GAAGT,QAAQ,CAACa,GAAG,CAACH,aAAa,EAAE,CAACI,IAAI,EAAEC,KAAK,kBACvDd,YAAY,CAACa,IAAI,EAAS;IAAEC,KAAK;IAAEJ;EAAK,CAAC,CAC3C,CAAC;EAED,oBACER,IAAA,CAACK,IAAI;IAACQ,GAAG,EAAEV,YAAa;IAAA,GAAKM,UAAU;IAAAH,QAAA,EACpCA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC","ignoreList":[]}