@basic-ui/core 0.0.38 → 0.0.41

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 (266) hide show
  1. package/build/cjs/index.js +1 -1
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Accordion/Accordion.d.ts +7 -7
  4. package/build/esm/Accordion/Accordion.js +22 -17
  5. package/build/esm/Accordion/Accordion.js.map +1 -1
  6. package/build/esm/Accordion/AccordionBody.d.ts +5 -5
  7. package/build/esm/Accordion/AccordionBody.js +23 -15
  8. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  9. package/build/esm/Accordion/AccordionHeader.d.ts +6 -6
  10. package/build/esm/Accordion/AccordionHeader.js +45 -31
  11. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  12. package/build/esm/Accordion/AccordionItem.d.ts +7 -7
  13. package/build/esm/Accordion/AccordionItem.js +16 -16
  14. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  15. package/build/esm/Accordion/context.d.ts +4 -4
  16. package/build/esm/Accordion/context.js +12 -10
  17. package/build/esm/Accordion/context.js.map +1 -1
  18. package/build/esm/CheckBox/CheckBox.d.ts +6 -6
  19. package/build/esm/CheckBox/CheckBox.js +19 -12
  20. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  21. package/build/esm/ComboBox/Combobox.d.ts +10 -10
  22. package/build/esm/ComboBox/Combobox.js +52 -46
  23. package/build/esm/ComboBox/Combobox.js.map +1 -1
  24. package/build/esm/ComboBox/ComboboxButton.d.ts +8 -8
  25. package/build/esm/ComboBox/ComboboxButton.js +19 -20
  26. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  27. package/build/esm/ComboBox/ComboboxInput.d.ts +10 -10
  28. package/build/esm/ComboBox/ComboboxInput.js +52 -50
  29. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  30. package/build/esm/ComboBox/ComboboxLabel.d.ts +5 -5
  31. package/build/esm/ComboBox/ComboboxLabel.js +11 -12
  32. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  33. package/build/esm/ComboBox/ComboboxList.d.ts +6 -6
  34. package/build/esm/ComboBox/ComboboxList.js +15 -17
  35. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  36. package/build/esm/ComboBox/ComboboxOption.d.ts +7 -7
  37. package/build/esm/ComboBox/ComboboxOption.js +31 -34
  38. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  39. package/build/esm/ComboBox/ComboboxPopover.d.ts +8 -8
  40. package/build/esm/ComboBox/ComboboxPopover.js +15 -17
  41. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  42. package/build/esm/ComboBox/context.d.ts +13 -13
  43. package/build/esm/ComboBox/context.js +6 -5
  44. package/build/esm/ComboBox/context.js.map +1 -1
  45. package/build/esm/ComboBox/hooks.d.ts +4 -4
  46. package/build/esm/ComboBox/hooks.js +82 -115
  47. package/build/esm/ComboBox/hooks.js.map +1 -1
  48. package/build/esm/ComboBox/makeHash.js +3 -3
  49. package/build/esm/ComboBox/makeHash.js.map +1 -1
  50. package/build/esm/FocusLock/FocusLock.d.ts +7 -7
  51. package/build/esm/FocusLock/FocusLock.js +17 -16
  52. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  53. package/build/esm/FocusLock/tabUtils.js +4 -4
  54. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  55. package/build/esm/FocusLock/useFocusLock.d.ts +4 -4
  56. package/build/esm/FocusLock/useFocusLock.js +10 -11
  57. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  58. package/build/esm/List/List.d.ts +6 -6
  59. package/build/esm/List/List.js +5 -6
  60. package/build/esm/List/List.js.map +1 -1
  61. package/build/esm/List/ListItem.d.ts +6 -6
  62. package/build/esm/List/ListItem.js +5 -6
  63. package/build/esm/List/ListItem.js.map +1 -1
  64. package/build/esm/List/context.js +3 -3
  65. package/build/esm/List/context.js.map +1 -1
  66. package/build/esm/Menu/Menu.d.ts +6 -6
  67. package/build/esm/Menu/Menu.js +29 -21
  68. package/build/esm/Menu/Menu.js.map +1 -1
  69. package/build/esm/Menu/MenuButton.d.ts +10 -10
  70. package/build/esm/Menu/MenuButton.js +27 -24
  71. package/build/esm/Menu/MenuButton.js.map +1 -1
  72. package/build/esm/Menu/MenuItem.d.ts +6 -6
  73. package/build/esm/Menu/MenuItem.js +23 -24
  74. package/build/esm/Menu/MenuItem.js.map +1 -1
  75. package/build/esm/Menu/MenuList.d.ts +5 -5
  76. package/build/esm/Menu/MenuList.js +61 -45
  77. package/build/esm/Menu/MenuList.js.map +1 -1
  78. package/build/esm/Menu/MenuPopover.d.ts +6 -6
  79. package/build/esm/Menu/MenuPopover.js +8 -10
  80. package/build/esm/Menu/MenuPopover.js.map +1 -1
  81. package/build/esm/Menu/context.d.ts +2 -2
  82. package/build/esm/Menu/context.js +11 -8
  83. package/build/esm/Menu/context.js.map +1 -1
  84. package/build/esm/Modal/Modal.d.ts +6 -7
  85. package/build/esm/Modal/Modal.js +11 -10
  86. package/build/esm/Modal/Modal.js.map +1 -1
  87. package/build/esm/Modal/ModalBackdrop.d.ts +6 -6
  88. package/build/esm/Modal/ModalBackdrop.js +20 -19
  89. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  90. package/build/esm/Popper/Popper.d.ts +8 -8
  91. package/build/esm/Popper/Popper.js +46 -37
  92. package/build/esm/Popper/Popper.js.map +1 -1
  93. package/build/esm/Popper/PopperArrow.d.ts +5 -5
  94. package/build/esm/Popper/PopperArrow.js +8 -9
  95. package/build/esm/Popper/PopperArrow.js.map +1 -1
  96. package/build/esm/Popper/context.d.ts +1 -1
  97. package/build/esm/Popper/context.js +5 -3
  98. package/build/esm/Popper/context.js.map +1 -1
  99. package/build/esm/Portal/Portal.d.ts +1 -1
  100. package/build/esm/Portal/Portal.js +6 -5
  101. package/build/esm/Portal/Portal.js.map +1 -1
  102. package/build/esm/RadioButton/RadioButton.d.ts +7 -7
  103. package/build/esm/RadioButton/RadioButton.js +12 -13
  104. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  105. package/build/esm/RadioButton/RadioGroup.d.ts +8 -8
  106. package/build/esm/RadioButton/RadioGroup.js +22 -16
  107. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  108. package/build/esm/RadioButton/context.d.ts +2 -2
  109. package/build/esm/RadioButton/context.js +6 -5
  110. package/build/esm/RadioButton/context.js.map +1 -1
  111. package/build/esm/SkipNav/SkipNav.d.ts +6 -6
  112. package/build/esm/SkipNav/SkipNav.js +5 -6
  113. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  114. package/build/esm/Spinner/Spinner.d.ts +7 -7
  115. package/build/esm/Spinner/Spinner.js +41 -31
  116. package/build/esm/Spinner/Spinner.js.map +1 -1
  117. package/build/esm/Spinner/SpinnerButton.d.ts +6 -6
  118. package/build/esm/Spinner/SpinnerButton.js +11 -12
  119. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  120. package/build/esm/Spinner/context.d.ts +2 -2
  121. package/build/esm/Spinner/context.js +6 -5
  122. package/build/esm/Spinner/context.js.map +1 -1
  123. package/build/esm/Tabs/Tab.d.ts +6 -6
  124. package/build/esm/Tabs/Tab.js +29 -29
  125. package/build/esm/Tabs/Tab.js.map +1 -1
  126. package/build/esm/Tabs/TabList.d.ts +6 -6
  127. package/build/esm/Tabs/TabList.js +24 -21
  128. package/build/esm/Tabs/TabList.js.map +1 -1
  129. package/build/esm/Tabs/TabPanel.d.ts +6 -6
  130. package/build/esm/Tabs/TabPanel.js +12 -12
  131. package/build/esm/Tabs/TabPanel.js.map +1 -1
  132. package/build/esm/Tabs/TabPanels.d.ts +5 -5
  133. package/build/esm/Tabs/TabPanels.js +13 -12
  134. package/build/esm/Tabs/TabPanels.js.map +1 -1
  135. package/build/esm/Tabs/Tabs.d.ts +6 -6
  136. package/build/esm/Tabs/Tabs.js +27 -14
  137. package/build/esm/Tabs/Tabs.js.map +1 -1
  138. package/build/esm/Tabs/context.d.ts +3 -3
  139. package/build/esm/Tabs/context.js +12 -10
  140. package/build/esm/Tabs/context.js.map +1 -1
  141. package/build/esm/Tooltip/Tooltip.d.ts +7 -7
  142. package/build/esm/Tooltip/Tooltip.js +18 -16
  143. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  144. package/build/esm/Tooltip/stateMachine.js +56 -80
  145. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  146. package/build/esm/Tooltip/useTooltip.d.ts +7 -7
  147. package/build/esm/Tooltip/useTooltip.js +32 -30
  148. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  149. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  150. package/build/esm/hooks/useAutoFocus.js +1 -1
  151. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  152. package/build/esm/hooks/useChildrenCounter.d.ts +1 -1
  153. package/build/esm/hooks/useChildrenCounter.js +6 -4
  154. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  155. package/build/esm/hooks/useControlledState.d.ts +3 -7
  156. package/build/esm/hooks/useControlledState.js +7 -2
  157. package/build/esm/hooks/useControlledState.js.map +1 -1
  158. package/build/esm/hooks/useFocusReturn.d.ts +1 -1
  159. package/build/esm/hooks/useFocusReturn.js +6 -6
  160. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  161. package/build/esm/hooks/useFocusState.d.ts +3 -3
  162. package/build/esm/hooks/useFocusState.js +13 -9
  163. package/build/esm/hooks/useFocusState.js.map +1 -1
  164. package/build/esm/hooks/useGestureHandlers.d.ts +5 -5
  165. package/build/esm/hooks/useGestureHandlers.js +59 -63
  166. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  167. package/build/esm/hooks/useMeasure.d.ts +2 -2
  168. package/build/esm/hooks/useMeasure.js +13 -7
  169. package/build/esm/hooks/useMeasure.js.map +1 -1
  170. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  171. package/build/esm/hooks/useOnClickOutside.js +5 -4
  172. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  173. package/build/esm/hooks/useOnKeyDown.js +4 -3
  174. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  175. package/build/esm/hooks/useReducerMachine.d.ts +1 -1
  176. package/build/esm/hooks/useReducerMachine.js +13 -10
  177. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  178. package/build/esm/hooks/useRemoveBodyScroll.js +4 -4
  179. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  180. package/build/esm/hooks/useScope.d.ts +1 -1
  181. package/build/esm/hooks/useScope.js +10 -12
  182. package/build/esm/hooks/useScope.js.map +1 -1
  183. package/build/esm/hooks/useThrottle.js +10 -5
  184. package/build/esm/hooks/useThrottle.js.map +1 -1
  185. package/build/esm/utils/assignRef.d.ts +1 -1
  186. package/build/esm/utils/assignRef.js +7 -3
  187. package/build/esm/utils/assignRef.js.map +1 -1
  188. package/build/esm/utils/createSubscription.js +7 -5
  189. package/build/esm/utils/createSubscription.js.map +1 -1
  190. package/build/esm/utils/rubberBandClamp.js +5 -2
  191. package/build/esm/utils/rubberBandClamp.js.map +1 -1
  192. package/build/esm/utils/wrapEvent.d.ts +3 -3
  193. package/build/esm/utils/wrapEvent.js +7 -3
  194. package/build/esm/utils/wrapEvent.js.map +1 -1
  195. package/build/tsconfig-build.tsbuildinfo +1 -0
  196. package/build/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +3 -3
  198. package/src/Accordion/Accordion.story.tsx +1 -0
  199. package/src/Accordion/Accordion.tsx +15 -7
  200. package/src/Accordion/AccordionBody.tsx +7 -8
  201. package/src/Accordion/AccordionHeader.tsx +35 -33
  202. package/src/Accordion/AccordionItem.tsx +15 -7
  203. package/src/Accordion/context.ts +5 -3
  204. package/src/CheckBox/CheckBox.tsx +6 -6
  205. package/src/ComboBox/ComboBox.story.tsx +5 -5
  206. package/src/ComboBox/Combobox.tsx +12 -17
  207. package/src/ComboBox/ComboboxButton.tsx +16 -15
  208. package/src/ComboBox/ComboboxInput.tsx +19 -10
  209. package/src/ComboBox/ComboboxLabel.tsx +5 -4
  210. package/src/ComboBox/ComboboxList.tsx +6 -6
  211. package/src/ComboBox/ComboboxOption.tsx +11 -7
  212. package/src/ComboBox/ComboboxPopover.tsx +14 -8
  213. package/src/ComboBox/context.ts +14 -12
  214. package/src/ComboBox/hooks.tsx +9 -11
  215. package/src/FocusLock/FocusLock.tsx +14 -7
  216. package/src/FocusLock/useFocusLock.ts +5 -3
  217. package/src/List/List.tsx +5 -5
  218. package/src/List/ListItem.tsx +5 -5
  219. package/src/Menu/Menu.story.tsx +7 -6
  220. package/src/Menu/Menu.tsx +16 -8
  221. package/src/Menu/MenuButton.tsx +15 -16
  222. package/src/Menu/MenuItem.tsx +15 -10
  223. package/src/Menu/MenuList.tsx +8 -12
  224. package/src/Menu/MenuPopover.tsx +7 -5
  225. package/src/Menu/context.ts +10 -4
  226. package/src/Modal/Modal.story.tsx +1 -0
  227. package/src/Modal/Modal.tsx +12 -6
  228. package/src/Modal/ModalBackdrop.tsx +15 -9
  229. package/src/Modal/NavDrawer.story.tsx +3 -3
  230. package/src/Popper/Popper.story.tsx +3 -4
  231. package/src/Popper/Popper.tsx +13 -12
  232. package/src/Popper/PopperArrow.tsx +5 -4
  233. package/src/Popper/context.ts +2 -1
  234. package/src/Portal/Portal.tsx +1 -1
  235. package/src/RadioButton/RadioButton.story.tsx +1 -0
  236. package/src/RadioButton/RadioButton.tsx +14 -7
  237. package/src/RadioButton/RadioGroup.tsx +14 -10
  238. package/src/RadioButton/context.ts +2 -4
  239. package/src/SkipNav/SkipNav.tsx +5 -5
  240. package/src/Spinner/Spinner.story.tsx +1 -0
  241. package/src/Spinner/Spinner.tsx +14 -9
  242. package/src/Spinner/SpinnerButton.tsx +12 -6
  243. package/src/Spinner/context.ts +2 -3
  244. package/src/Tabs/Tab.story.tsx +1 -0
  245. package/src/Tabs/Tab.tsx +16 -11
  246. package/src/Tabs/TabList.tsx +6 -5
  247. package/src/Tabs/TabPanel.tsx +6 -5
  248. package/src/Tabs/TabPanels.tsx +4 -4
  249. package/src/Tabs/Tabs.tsx +6 -7
  250. package/src/Tabs/context.ts +4 -4
  251. package/src/Tooltip/Tooltip.story.tsx +3 -2
  252. package/src/Tooltip/Tooltip.tsx +11 -9
  253. package/src/Tooltip/stateMachine.ts +1 -1
  254. package/src/Tooltip/useTooltip.ts +19 -10
  255. package/src/hooks/useAutoFocus.ts +3 -1
  256. package/src/hooks/useChildrenCounter.ts +2 -1
  257. package/src/hooks/useControlledState.ts +7 -8
  258. package/src/hooks/useFocusReturn.ts +2 -1
  259. package/src/hooks/useFocusState.ts +4 -2
  260. package/src/hooks/useGestureHandlers.ts +11 -7
  261. package/src/hooks/useMeasure.ts +2 -1
  262. package/src/hooks/useOnClickOutside.ts +2 -2
  263. package/src/hooks/useReducerMachine.ts +2 -1
  264. package/src/hooks/useScope.ts +2 -1
  265. package/src/utils/assignRef.ts +1 -1
  266. package/src/utils/wrapEvent.ts +4 -5
@@ -1,19 +1,20 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import { forwardRef, Fragment, Children, cloneElement } from 'react';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- export const TabPanels = /*#__PURE__*/forwardRef(function TabPanels(props, forwardedRef) {
6
- const {
7
- as: Comp = Fragment,
8
- children: childrenProps,
9
- lazy
10
- } = props,
11
- otherProps = _objectWithoutPropertiesLoose(props, ["as", "children", "lazy"]);
5
+ export var TabPanels = /*#__PURE__*/forwardRef(function TabPanels(props, forwardedRef) {
6
+ var _props$as = props.as,
7
+ Comp = _props$as === void 0 ? Fragment : _props$as,
8
+ childrenProps = props.children,
9
+ lazy = props.lazy,
10
+ otherProps = _objectWithoutProperties(props, ["as", "children", "lazy"]);
12
11
 
13
- const children = Children.map(childrenProps, (node, index) => /*#__PURE__*/cloneElement(node, {
14
- index,
15
- lazy
16
- }));
12
+ var children = Children.map(childrenProps, function (node, index) {
13
+ return /*#__PURE__*/cloneElement(node, {
14
+ index: index,
15
+ lazy: lazy
16
+ });
17
+ });
17
18
  return /*#__PURE__*/_jsx(Comp, _extends({
18
19
  ref: forwardedRef
19
20
  }, otherProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Tabs/TabPanels.tsx"],"names":["forwardRef","Fragment","Children","cloneElement","TabPanels","props","forwardedRef","as","Comp","children","childrenProps","lazy","otherProps","map","node","index"],"mappings":";;AAAA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,QAA/B,EAAyCC,YAAzC,QAA6D,OAA7D;;AAUA,OAAO,MAAMC,SAAS,gBAAGJ,UAAU,CACjC,SAASI,SAAT,CAAmBC,KAAnB,EAA0BC,YAA1B,EAAwC;AACtC,QAAM;AACJC,IAAAA,EAAE,EAAEC,IAAI,GAAGP,QADP;AAEJQ,IAAAA,QAAQ,EAAEC,aAFN;AAGJC,IAAAA;AAHI,MAKFN,KALJ;AAAA,QAIKO,UAJL,iCAKIP,KALJ;;AAOA,QAAMI,QAAQ,GAAGP,QAAQ,CAACW,GAAT,CAAaH,aAAb,EAA4B,CAACI,IAAD,EAAOC,KAAP,kBAC3CZ,YAAY,CAACW,IAAD,EAAc;AAAEC,IAAAA,KAAF;AAASJ,IAAAA;AAAT,GAAd,CADG,CAAjB;AAIA,sBACE,KAAC,IAAD;AAAM,IAAA,GAAG,EAAEL;AAAX,KAA6BM,UAA7B;AAAA,cACGH;AADH,KADF;AAKD,CAlBgC,CAA5B","sourcesContent":["import { forwardRef, Fragment, Children, cloneElement } from 'react';\nimport type * as React from 'react';\n\nexport interface TabPanelsProps {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n lazy?: boolean;\n children?: React.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"],"file":"TabPanels.js"}
1
+ {"version":3,"sources":["../../../src/Tabs/TabPanels.tsx"],"names":["forwardRef","Fragment","Children","cloneElement","TabPanels","props","forwardedRef","as","Comp","childrenProps","children","lazy","otherProps","map","node","index"],"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;AAAA,kBAMlCD,KANkC,CAEpCE,EAFoC;AAAA,MAEhCC,IAFgC,0BAEzBP,QAFyB;AAAA,MAG1BQ,aAH0B,GAMlCJ,KANkC,CAGpCK,QAHoC;AAAA,MAIpCC,IAJoC,GAMlCN,KANkC,CAIpCM,IAJoC;AAAA,MAKjCC,UALiC,4BAMlCP,KANkC;;AAQtC,MAAMK,QAAQ,GAAGR,QAAQ,CAACW,GAAT,CAAaJ,aAAb,EAA4B,UAACK,IAAD,EAAOC,KAAP;AAAA,wBAC3CZ,YAAY,CAACW,IAAD,EAAc;AAAEC,MAAAA,KAAK,EAALA,KAAF;AAASJ,MAAAA,IAAI,EAAJA;AAAT,KAAd,CAD+B;AAAA,GAA5B,CAAjB;AAIA,sBACE,KAAC,IAAD;AAAM,IAAA,GAAG,EAAEL;AAAX,KAA6BM,UAA7B;AAAA,cACGF;AADH,KADF;AAKD,CAlBgC,CAA5B","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"],"file":"TabPanels.js"}
@@ -1,10 +1,10 @@
1
- import type * as React from 'react';
1
+ import type { ElementType, KeyboardEvent, MouseEvent, ReactNode } from 'react';
2
2
  export interface TabsProps {
3
- as?: React.ElementType<any>;
4
- innerAs?: React.ElementType<any>;
5
- children?: React.ReactNode;
6
- onChange?: (e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>, value: number) => void;
3
+ as?: ElementType<any>;
4
+ innerAs?: ElementType<any>;
5
+ children?: ReactNode;
6
+ onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>, value: number) => void;
7
7
  index?: number;
8
8
  defaultIndex?: number;
9
9
  }
10
- export declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,26 +1,39 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
4
  import { forwardRef, Fragment, useState } from 'react';
4
5
  import { TabsProvider } from './context';
5
6
  import { useControlledState } from '../hooks';
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
- export const Tabs = /*#__PURE__*/forwardRef(function Tabs(props, forwardedRef) {
8
- const {
9
- as: Comp = Fragment,
10
- index: indexProp,
11
- onChange: onChangeProp,
12
- defaultIndex = 0
13
- } = props,
14
- otherProps = _objectWithoutPropertiesLoose(props, ["as", "index", "onChange", "defaultIndex"]);
8
+ export var Tabs = /*#__PURE__*/forwardRef(function Tabs(props, forwardedRef) {
9
+ var _props$as = props.as,
10
+ Comp = _props$as === void 0 ? Fragment : _props$as,
11
+ indexProp = props.index,
12
+ onChangeProp = props.onChange,
13
+ _props$defaultIndex = props.defaultIndex,
14
+ defaultIndex = _props$defaultIndex === void 0 ? 0 : _props$defaultIndex,
15
+ otherProps = _objectWithoutProperties(props, ["as", "index", "onChange", "defaultIndex"]);
16
+
17
+ var _useControlledState = useControlledState(indexProp, onChangeProp, defaultIndex, function (setState) {
18
+ return function (e, idx) {
19
+ return setState(idx);
20
+ };
21
+ }),
22
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
23
+ index = _useControlledState2[0],
24
+ onChange = _useControlledState2[1];
25
+
26
+ var _useState = useState(null),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ tabListId = _useState2[0],
29
+ setTabListId = _useState2[1];
15
30
 
16
- const [index, onChange] = useControlledState(indexProp, onChangeProp, defaultIndex, setState => (e, idx) => setState(idx));
17
- const [tabListId, setTabListId] = useState(null);
18
31
  return /*#__PURE__*/_jsx(TabsProvider, {
19
32
  value: {
20
33
  currentIndex: index || 0,
21
- onChange,
22
- tabListId,
23
- setTabListId
34
+ onChange: onChange,
35
+ tabListId: tabListId,
36
+ setTabListId: setTabListId
24
37
  },
25
38
  children: /*#__PURE__*/_jsx(Comp, _extends({
26
39
  ref: forwardedRef
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Tabs/Tabs.tsx"],"names":["forwardRef","Fragment","useState","TabsProvider","useControlledState","Tabs","props","forwardedRef","as","Comp","index","indexProp","onChange","onChangeProp","defaultIndex","otherProps","setState","e","idx","tabListId","setTabListId","currentIndex"],"mappings":";;AAAA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,QAA/B,QAA+C,OAA/C;AAEA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAgBA,OAAO,MAAMC,IAAI,gBAAGL,UAAU,CAA4B,SAASK,IAAT,CACxDC,KADwD,EAExDC,YAFwD,EAGxD;AACA,QAAM;AACJC,IAAAA,EAAE,EAAEC,IAAI,GAAGR,QADP;AAEJS,IAAAA,KAAK,EAAEC,SAFH;AAGJC,IAAAA,QAAQ,EAAEC,YAHN;AAIJC,IAAAA,YAAY,GAAG;AAJX,MAMFR,KANJ;AAAA,QAKKS,UALL,iCAMIT,KANJ;;AAOA,QAAM,CAACI,KAAD,EAAQE,QAAR,IAAoBR,kBAAkB,CAC1CO,SAD0C,EAE1CE,YAF0C,EAG1CC,YAH0C,EAIzCE,QAAD,IAAc,CAACC,CAAD,EAAIC,GAAJ,KAAYF,QAAQ,CAACE,GAAD,CAJQ,CAA5C;AAOA,QAAM,CAACC,SAAD,EAAYC,YAAZ,IAA4BlB,QAAQ,CAAgB,IAAhB,CAA1C;AAEA,sBACE,KAAC,YAAD;AACE,IAAA,KAAK,EAAE;AAAEmB,MAAAA,YAAY,EAAEX,KAAK,IAAI,CAAzB;AAA4BE,MAAAA,QAA5B;AAAsCO,MAAAA,SAAtC;AAAiDC,MAAAA;AAAjD,KADT;AAAA,2BAGE,KAAC,IAAD;AAAM,MAAA,GAAG,EAAEb;AAAX,OAA6BQ,UAA7B;AAHF,IADF;AAOD,CA3B6B,CAAvB","sourcesContent":["import { forwardRef, Fragment, useState } from 'react';\nimport type * as React from 'react';\nimport { TabsProvider } from './context';\nimport { useControlledState } from '../hooks';\n\nexport interface TabsProps {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n onChange?: (\n e:\n | React.MouseEvent<HTMLButtonElement>\n | React.KeyboardEvent<HTMLButtonElement>,\n value: number\n ) => void;\n index?: number;\n defaultIndex?: number;\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n props,\n forwardedRef\n) {\n const {\n as: Comp = Fragment,\n index: indexProp,\n onChange: onChangeProp,\n defaultIndex = 0,\n ...otherProps\n } = props;\n const [index, onChange] = useControlledState(\n indexProp,\n onChangeProp,\n defaultIndex,\n (setState) => (e, idx) => setState(idx)\n );\n\n const [tabListId, setTabListId] = useState<string | null>(null);\n\n return (\n <TabsProvider\n value={{ currentIndex: index || 0, onChange, tabListId, setTabListId }}\n >\n <Comp ref={forwardedRef} {...otherProps} />\n </TabsProvider>\n );\n});\n"],"file":"Tabs.js"}
1
+ {"version":3,"sources":["../../../src/Tabs/Tabs.tsx"],"names":["forwardRef","Fragment","useState","TabsProvider","useControlledState","Tabs","props","forwardedRef","as","Comp","indexProp","index","onChangeProp","onChange","defaultIndex","otherProps","setState","e","idx","tabListId","setTabListId","currentIndex"],"mappings":";;;AACA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,QAA/B,QAA+C,OAA/C;AAEA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAcA,OAAO,IAAMC,IAAI,gBAAGL,UAAU,CAA4B,SAASK,IAAT,CACxDC,KADwD,EAExDC,YAFwD,EAGxD;AAAA,kBAOID,KAPJ,CAEEE,EAFF;AAAA,MAEMC,IAFN,0BAEaR,QAFb;AAAA,MAGSS,SAHT,GAOIJ,KAPJ,CAGEK,KAHF;AAAA,MAIYC,YAJZ,GAOIN,KAPJ,CAIEO,QAJF;AAAA,4BAOIP,KAPJ,CAKEQ,YALF;AAAA,MAKEA,YALF,oCAKiB,CALjB;AAAA,MAMKC,UANL,4BAOIT,KAPJ;;AAAA,4BAQ0BF,kBAAkB,CAC1CM,SAD0C,EAE1CE,YAF0C,EAG1CE,YAH0C,EAI1C,UAACE,QAAD;AAAA,WAAc,UAACC,CAAD,EAAIC,GAAJ;AAAA,aAAYF,QAAQ,CAACE,GAAD,CAApB;AAAA,KAAd;AAAA,GAJ0C,CAR5C;AAAA;AAAA,MAQOP,KARP;AAAA,MAQcE,QARd;;AAAA,kBAekCX,QAAQ,CAAgB,IAAhB,CAf1C;AAAA;AAAA,MAeOiB,SAfP;AAAA,MAekBC,YAflB;;AAiBA,sBACE,KAAC,YAAD;AACE,IAAA,KAAK,EAAE;AAAEC,MAAAA,YAAY,EAAEV,KAAK,IAAI,CAAzB;AAA4BE,MAAAA,QAAQ,EAARA,QAA5B;AAAsCM,MAAAA,SAAS,EAATA,SAAtC;AAAiDC,MAAAA,YAAY,EAAZA;AAAjD,KADT;AAAA,2BAGE,KAAC,IAAD;AAAM,MAAA,GAAG,EAAEb;AAAX,OAA6BQ,UAA7B;AAHF,IADF;AAOD,CA3B6B,CAAvB","sourcesContent":["import type { ElementType, KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport { forwardRef, Fragment, useState } from 'react';\n\nimport { TabsProvider } from './context';\nimport { useControlledState } from '../hooks';\n\nexport interface TabsProps {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,\n value: number\n ) => void;\n index?: number;\n defaultIndex?: number;\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n props,\n forwardedRef\n) {\n const {\n as: Comp = Fragment,\n index: indexProp,\n onChange: onChangeProp,\n defaultIndex = 0,\n ...otherProps\n } = props;\n const [index, onChange] = useControlledState(\n indexProp,\n onChangeProp,\n defaultIndex,\n (setState) => (e, idx) => setState(idx)\n );\n\n const [tabListId, setTabListId] = useState<string | null>(null);\n\n return (\n <TabsProvider\n value={{ currentIndex: index || 0, onChange, tabListId, setTabListId }}\n >\n <Comp ref={forwardedRef} {...otherProps} />\n </TabsProvider>\n );\n});\n"],"file":"Tabs.js"}
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
2
- import { Scope } from '../hooks/useScope';
1
+ import type { KeyboardEvent, MouseEvent } from 'react';
2
+ import type { Scope } from '../hooks/useScope';
3
3
  export interface TabsContextProps {
4
4
  currentIndex: number;
5
- onChange?: (e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>, value: number) => void;
5
+ onChange?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>, value: number) => void;
6
6
  tabListId: string | null;
7
7
  setTabListId: (v: string | null) => void;
8
8
  }
@@ -1,13 +1,15 @@
1
1
  import { createContext, useContext } from 'react';
2
- const tabsContext = /*#__PURE__*/createContext(null);
3
- export const {
4
- Provider: TabsProvider
5
- } = tabsContext;
6
- export const useTabsContext = () => useContext(tabsContext); // TabList Component
2
+ var tabsContext = /*#__PURE__*/createContext(null);
3
+ var TabsProvider = tabsContext.Provider;
4
+ export { TabsProvider };
5
+ export var useTabsContext = function useTabsContext() {
6
+ return useContext(tabsContext);
7
+ }; // TabList Component
7
8
 
8
- const tablistContext = /*#__PURE__*/createContext(null);
9
- export const {
10
- Provider: TabListProvider
11
- } = tablistContext;
12
- export const useTabListContext = () => useContext(tablistContext);
9
+ var tablistContext = /*#__PURE__*/createContext(null);
10
+ var TabListProvider = tablistContext.Provider;
11
+ export { TabListProvider };
12
+ export var useTabListContext = function useTabListContext() {
13
+ return useContext(tablistContext);
14
+ };
13
15
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Tabs/context.ts"],"names":["createContext","useContext","tabsContext","Provider","TabsProvider","useTabsContext","tablistContext","TabListProvider","useTabListContext"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAgBA,MAAMC,WAAW,gBAAGF,aAAa,CAA0B,IAA1B,CAAjC;AACA,OAAO,MAAM;AAAEG,EAAAA,QAAQ,EAAEC;AAAZ,IAA6BF,WAAnC;AACP,OAAO,MAAMG,cAAc,GAAG,MAAMJ,UAAU,CAACC,WAAD,CAAvC,C,CAEP;;AAOA,MAAMI,cAAc,gBAAGN,aAAa,CAA6B,IAA7B,CAApC;AACA,OAAO,MAAM;AAAEG,EAAAA,QAAQ,EAAEI;AAAZ,IAAgCD,cAAtC;AACP,OAAO,MAAME,iBAAiB,GAAG,MAAMP,UAAU,CAACK,cAAD,CAA1C","sourcesContent":["import { createContext, useContext } from 'react';\nimport { Scope } from '../hooks/useScope';\n\n// Tabs Component\nexport interface TabsContextProps {\n currentIndex: number;\n onChange?: (\n e:\n | React.MouseEvent<HTMLButtonElement>\n | React.KeyboardEvent<HTMLButtonElement>,\n value: number\n ) => void;\n tabListId: string | null;\n setTabListId: (v: string | null) => void;\n}\n\nconst tabsContext = createContext<TabsContextProps | null>(null);\nexport const { Provider: TabsProvider } = tabsContext;\nexport const useTabsContext = () => useContext(tabsContext);\n\n// TabList Component\nexport interface TabListContextProps {\n tabsScope: Scope<HTMLElement>;\n manualActivation: boolean;\n vertical: boolean;\n}\n\nconst tablistContext = createContext<TabListContextProps | null>(null);\nexport const { Provider: TabListProvider } = tablistContext;\nexport const useTabListContext = () => useContext(tablistContext);\n"],"file":"context.js"}
1
+ {"version":3,"sources":["../../../src/Tabs/context.ts"],"names":["createContext","useContext","tabsContext","TabsProvider","Provider","useTabsContext","tablistContext","TabListProvider","useTabListContext"],"mappings":"AACA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAeA,IAAMC,WAAW,gBAAGF,aAAa,CAA0B,IAA1B,CAAjC;IACyBG,Y,GAAiBD,W,CAA3BE,Q;;AACf,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,SAAMJ,UAAU,CAACC,WAAD,CAAhB;AAAA,CAAvB,C,CAEP;;AAOA,IAAMI,cAAc,gBAAGN,aAAa,CAA6B,IAA7B,CAApC;IACyBO,e,GAAoBD,c,CAA9BF,Q;;AACf,OAAO,IAAMI,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,SAAMP,UAAU,CAACK,cAAD,CAAhB;AAAA,CAA1B","sourcesContent":["import type { KeyboardEvent, MouseEvent } from 'react';\nimport { createContext, useContext } from 'react';\n\nimport type { Scope } from '../hooks/useScope';\n\n// Tabs Component\nexport interface TabsContextProps {\n currentIndex: number;\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,\n value: number\n ) => void;\n tabListId: string | null;\n setTabListId: (v: string | null) => void;\n}\n\nconst tabsContext = createContext<TabsContextProps | null>(null);\nexport const { Provider: TabsProvider } = tabsContext;\nexport const useTabsContext = () => useContext(tabsContext);\n\n// TabList Component\nexport interface TabListContextProps {\n tabsScope: Scope<HTMLElement>;\n manualActivation: boolean;\n vertical: boolean;\n}\n\nconst tablistContext = createContext<TabListContextProps | null>(null);\nexport const { Provider: TabListProvider } = tablistContext;\nexport const useTabListContext = () => useContext(tablistContext);\n"],"file":"context.js"}
@@ -1,10 +1,10 @@
1
- import React from 'react';
1
+ import type { ElementType, HTMLAttributes, ReactNode, RefAttributes } from 'react';
2
2
  export type { InjectedTooltipProps } from './useTooltip';
3
- export interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {
4
- as?: React.ElementType<any>;
5
- innerAs?: React.ElementType<any>;
6
- children?: React.ReactNode;
7
- label: React.ReactNode;
3
+ export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
4
+ as?: ElementType<any>;
5
+ innerAs?: ElementType<any>;
6
+ children?: ReactNode;
7
+ label: ReactNode;
8
8
  disabled?: boolean;
9
9
  }
10
- export declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & RefAttributes<HTMLDivElement>>;
@@ -1,26 +1,28 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
- import React, { forwardRef, cloneElement, Children } from 'react';
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ import { forwardRef, cloneElement, Children } from 'react';
4
5
  import { useTooltip } from './useTooltip';
5
6
  import { Fragment as _Fragment } from "react/jsx-runtime";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
- export const Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, forwardedRef) {
9
- const {
10
- as: Comp = 'div',
11
- innerAs,
12
- children,
13
- disabled = false
14
- } = props,
15
- otherProps = _objectWithoutPropertiesLoose(props, ["as", "innerAs", "children", "disabled"]);
9
+ export var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, forwardedRef) {
10
+ var _props$as = props.as,
11
+ Comp = _props$as === void 0 ? 'div' : _props$as,
12
+ innerAs = props.innerAs,
13
+ children = props.children,
14
+ _props$disabled = props.disabled,
15
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
16
+ otherProps = _objectWithoutProperties(props, ["as", "innerAs", "children", "disabled"]);
16
17
 
17
- const child = Children.only(children);
18
- const [childProps, _ref] = useTooltip(child.props, child.ref, otherProps);
18
+ var child = Children.only(children);
19
19
 
20
- const {
21
- visible
22
- } = _ref,
23
- tooltipProps = _objectWithoutPropertiesLoose(_ref, ["visible"]);
20
+ var _useTooltip = useTooltip(child.props, child.ref, otherProps),
21
+ _useTooltip2 = _slicedToArray(_useTooltip, 2),
22
+ childProps = _useTooltip2[0],
23
+ _useTooltip2$ = _useTooltip2[1],
24
+ visible = _useTooltip2$.visible,
25
+ tooltipProps = _objectWithoutProperties(_useTooltip2$, ["visible"]);
24
26
 
25
27
  if (disabled) {
26
28
  return /*#__PURE__*/_jsx(_Fragment, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Tooltip/Tooltip.tsx"],"names":["React","forwardRef","cloneElement","Children","useTooltip","Tooltip","props","forwardedRef","as","Comp","innerAs","children","disabled","otherProps","child","only","childProps","ref","visible","tooltipProps"],"mappings":";;AAAA,OAAOA,KAAP,IACEC,UADF,EAEEC,YAFF,EAGEC,QAHF,QAMO,OANP;AAOA,SAASC,UAAT,QAA2B,cAA3B;;;;AAWA,OAAO,MAAMC,OAAO,gBAAGJ,UAAU,CAC/B,SAASI,OAAT,CAAiBC,KAAjB,EAAwBC,YAAxB,EAAsC;AACpC,QAAM;AACJC,IAAAA,EAAE,EAAEC,IAAI,GAAG,KADP;AAEJC,IAAAA,OAFI;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,QAAQ,GAAG;AAJP,MAMFN,KANJ;AAAA,QAKKO,UALL,iCAMIP,KANJ;;AAOA,QAAMQ,KAAwC,GAAGX,QAAQ,CAACY,IAAT,CAC/CJ,QAD+C,CAAjD;AAGA,QAAM,CAACK,UAAD,UAA6CZ,UAAU,CAC3DU,KAAK,CAACR,KADqD,EAE3DQ,KAAK,CAACG,GAFqD,EAG3DJ,UAH2D,CAA7D;;AAXoC,QAWjB;AAAEK,IAAAA;AAAF,GAXiB;AAAA,QAWHC,YAXG;;AAiBpC,MAAIP,QAAJ,EAAc;AACZ,wBAAO;AAAA,gBAAGE;AAAH,MAAP;AACD;;AAED,sBACE;AAAA,4BACGZ,YAAY,CAACY,KAAD,EAAQE,UAAR,CADf,EAEGE,OAAO,iBAAI,KAAC,IAAD;AAAM,MAAA,EAAE,EAAER,OAAV;AAAmB,MAAA,GAAG,EAAEH;AAAxB,OAA0CY,YAA1C,EAFd;AAAA,IADF;AAMD,CA5B8B,CAA1B","sourcesContent":["import React, {\n forwardRef,\n cloneElement,\n Children,\n ReactElement,\n RefAttributes,\n} from 'react';\nimport { useTooltip } from './useTooltip';\nexport type { InjectedTooltipProps } from './useTooltip';\n\nexport interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n function Tooltip(props, forwardedRef) {\n const {\n as: Comp = 'div',\n innerAs,\n children,\n disabled = false,\n ...otherProps\n } = props;\n const child: ReactElement & RefAttributes<any> = Children.only(\n children\n ) as any;\n const [childProps, { visible, ...tooltipProps }] = useTooltip(\n child.props,\n child.ref,\n otherProps\n );\n\n if (disabled) {\n return <>{child}</>;\n }\n\n return (\n <>\n {cloneElement(child, childProps)}\n {visible && <Comp as={innerAs} ref={forwardedRef} {...tooltipProps} />}\n </>\n );\n }\n);\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../../src/Tooltip/Tooltip.tsx"],"names":["forwardRef","cloneElement","Children","useTooltip","Tooltip","props","forwardedRef","as","Comp","innerAs","children","disabled","otherProps","child","only","ref","childProps","visible","tooltipProps"],"mappings":";;;AAOA,SAASA,UAAT,EAAqBC,YAArB,EAAmCC,QAAnC,QAAmD,OAAnD;AAEA,SAASC,UAAT,QAA2B,cAA3B;;;;AAWA,OAAO,IAAMC,OAAO,gBAAGJ,UAAU,CAC/B,SAASI,OAAT,CAAiBC,KAAjB,EAAwBC,YAAxB,EAAsC;AAAA,kBAOhCD,KAPgC,CAElCE,EAFkC;AAAA,MAE9BC,IAF8B,0BAEvB,KAFuB;AAAA,MAGlCC,OAHkC,GAOhCJ,KAPgC,CAGlCI,OAHkC;AAAA,MAIlCC,QAJkC,GAOhCL,KAPgC,CAIlCK,QAJkC;AAAA,wBAOhCL,KAPgC,CAKlCM,QALkC;AAAA,MAKlCA,QALkC,gCAKvB,KALuB;AAAA,MAM/BC,UAN+B,4BAOhCP,KAPgC;;AAQpC,MAAMQ,KAAwC,GAAGX,QAAQ,CAACY,IAAT,CAC/CJ,QAD+C,CAAjD;;AARoC,oBAWeP,UAAU,CAC3DU,KAAK,CAACR,KADqD,EAE3DQ,KAAK,CAACE,GAFqD,EAG3DH,UAH2D,CAXzB;AAAA;AAAA,MAW7BI,UAX6B;AAAA;AAAA,MAWfC,OAXe,iBAWfA,OAXe;AAAA,MAWHC,YAXG;;AAiBpC,MAAIP,QAAJ,EAAc;AACZ,wBAAO;AAAA,gBAAGE;AAAH,MAAP;AACD;;AAED,sBACE;AAAA,4BACGZ,YAAY,CAACY,KAAD,EAAQG,UAAR,CADf,EAEGC,OAAO,iBAAI,KAAC,IAAD;AAAM,MAAA,EAAE,EAAER,OAAV;AAAmB,MAAA,GAAG,EAAEH;AAAxB,OAA0CY,YAA1C,EAFd;AAAA,IADF;AAMD,CA5B8B,CAA1B","sourcesContent":["import type {\n ElementType,\n HTMLAttributes,\n ReactElement,\n ReactNode,\n RefAttributes,\n} from 'react';\nimport { forwardRef, cloneElement, Children } from 'react';\n\nimport { useTooltip } from './useTooltip';\nexport type { InjectedTooltipProps } from './useTooltip';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLDivElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n label: ReactNode;\n disabled?: boolean;\n}\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n function Tooltip(props, forwardedRef) {\n const {\n as: Comp = 'div',\n innerAs,\n children,\n disabled = false,\n ...otherProps\n } = props;\n const child: ReactElement & RefAttributes<any> = Children.only(\n children\n ) as any;\n const [childProps, { visible, ...tooltipProps }] = useTooltip(\n child.props,\n child.ref,\n otherProps\n );\n\n if (disabled) {\n return <>{child}</>;\n }\n\n return (\n <>\n {cloneElement(child, childProps)}\n {visible && <Comp as={innerAs} ref={forwardedRef} {...tooltipProps} />}\n </>\n );\n }\n);\n"],"file":"Tooltip.js"}
@@ -1,14 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+
4
+ var _on, _on2, _on3, _on4, _on5, _states;
5
+
2
6
  import { createSubscription } from '../utils/createSubscription';
3
7
  ////////////////////////////////////////////////////////////////////////////////
4
8
  // Timeouts:
5
9
  // Manages when the user "rests" on an element. Keeps the interface from being
6
10
  // flashing tooltips all the time as the user moves the mouse around the screen.
7
- let restTimeout;
11
+ var restTimeout;
8
12
 
9
13
  function startRestTimer() {
10
14
  window.clearTimeout(restTimeout);
11
- restTimeout = window.setTimeout(() => {
15
+ restTimeout = window.setTimeout(function () {
12
16
  send(Rest, undefined);
13
17
  }, 200);
14
18
  }
@@ -18,11 +22,13 @@ function clearRestTimer() {
18
22
  } // Manages the delay to hide the tooltip after rest leaves.
19
23
 
20
24
 
21
- let leavingVisibleTimer;
25
+ var leavingVisibleTimer;
22
26
 
23
27
  function startLeavingVisibleTimer() {
24
28
  window.clearTimeout(leavingVisibleTimer);
25
- leavingVisibleTimer = window.setTimeout(() => send(TimeComplete, undefined), 100);
29
+ leavingVisibleTimer = window.setTimeout(function () {
30
+ return send(TimeComplete, undefined);
31
+ }, 100);
26
32
  }
27
33
 
28
34
  function clearLeavingVisibleTimer() {
@@ -32,28 +38,28 @@ function clearLeavingVisibleTimer() {
32
38
 
33
39
 
34
40
  // Nothing goin' on
35
- export const Idle = 'IDLE'; // We're considering showing the tooltip, but we're gonna wait a sec
41
+ export var Idle = 'IDLE'; // We're considering showing the tooltip, but we're gonna wait a sec
36
42
 
37
- export const Focused = 'FOCUSED'; // It's on!
43
+ export var Focused = 'FOCUSED'; // It's on!
38
44
 
39
- export const Visible = 'VISIBLE'; // Focus has left, but we want to keep it visible for a sec
45
+ export var Visible = 'VISIBLE'; // Focus has left, but we want to keep it visible for a sec
40
46
 
41
- export const LeavingVisible = 'LEAVING_VISIBLE'; // The user clicked the tool, so we want to hide the thing, we can't just use
47
+ export var LeavingVisible = 'LEAVING_VISIBLE'; // The user clicked the tool, so we want to hide the thing, we can't just use
42
48
  // IDLE because we need to ignore mousemove, etc.
43
49
 
44
- export const Dismissed = 'DISMISSED';
45
- export const Blur = 'BLUR';
46
- export const Focus = 'FOCUS';
47
- export const GlobalMouseMove = 'GLOBAL_MOUSE_MOVE';
48
- export const MouseDown = 'MOUSE_DOWN';
49
- export const MouseEnter = 'MOUSE_ENTER';
50
- export const MouseLeave = 'MOUSE_LEAVE';
51
- export const MouseMove = 'MOUSE_MOVE';
52
- export const Rest = 'REST';
53
- export const SelectWithKeyboard = 'SELECT_WITH_KEYBOARD';
54
- export const TimeComplete = 'TIME_COMPLETE';
55
- export const subscription = createSubscription();
56
- export const state = {
50
+ export var Dismissed = 'DISMISSED';
51
+ export var Blur = 'BLUR';
52
+ export var Focus = 'FOCUS';
53
+ export var GlobalMouseMove = 'GLOBAL_MOUSE_MOVE';
54
+ export var MouseDown = 'MOUSE_DOWN';
55
+ export var MouseEnter = 'MOUSE_ENTER';
56
+ export var MouseLeave = 'MOUSE_LEAVE';
57
+ export var MouseMove = 'MOUSE_MOVE';
58
+ export var Rest = 'REST';
59
+ export var SelectWithKeyboard = 'SELECT_WITH_KEYBOARD';
60
+ export var TimeComplete = 'TIME_COMPLETE';
61
+ export var subscription = createSubscription();
62
+ export var state = {
57
63
  current: {
58
64
  state: Idle,
59
65
  id: ''
@@ -64,72 +70,42 @@ function clearContextId() {
64
70
  state.current.id = '';
65
71
  }
66
72
 
67
- const chart = {
73
+ var chart = {
68
74
  initial: Idle,
69
- states: {
70
- [Idle]: {
71
- enter: () => {
72
- clearContextId();
73
- },
74
- on: {
75
- [MouseEnter]: Focused,
76
- [Focus]: Visible
77
- }
75
+ states: (_states = {}, _defineProperty(_states, Idle, {
76
+ enter: function enter() {
77
+ clearContextId();
78
78
  },
79
- [Focused]: {
80
- enter: startRestTimer,
81
- leave: clearRestTimer,
82
- on: {
83
- [MouseMove]: Focused,
84
- [MouseLeave]: Idle,
85
- [MouseDown]: Dismissed,
86
- [Blur]: Idle,
87
- [Rest]: Visible
88
- }
79
+ on: (_on = {}, _defineProperty(_on, MouseEnter, Focused), _defineProperty(_on, Focus, Visible), _on)
80
+ }), _defineProperty(_states, Focused, {
81
+ enter: startRestTimer,
82
+ leave: clearRestTimer,
83
+ on: (_on2 = {}, _defineProperty(_on2, MouseMove, Focused), _defineProperty(_on2, MouseLeave, Idle), _defineProperty(_on2, MouseDown, Dismissed), _defineProperty(_on2, Blur, Idle), _defineProperty(_on2, Rest, Visible), _on2)
84
+ }), _defineProperty(_states, Visible, {
85
+ on: (_on3 = {}, _defineProperty(_on3, Focus, Focused), _defineProperty(_on3, MouseEnter, Focused), _defineProperty(_on3, MouseLeave, LeavingVisible), _defineProperty(_on3, Blur, LeavingVisible), _defineProperty(_on3, MouseDown, Dismissed), _defineProperty(_on3, SelectWithKeyboard, Dismissed), _defineProperty(_on3, GlobalMouseMove, LeavingVisible), _on3)
86
+ }), _defineProperty(_states, LeavingVisible, {
87
+ enter: function enter() {
88
+ startLeavingVisibleTimer();
89
89
  },
90
- [Visible]: {
91
- on: {
92
- [Focus]: Focused,
93
- [MouseEnter]: Focused,
94
- [MouseLeave]: LeavingVisible,
95
- [Blur]: LeavingVisible,
96
- [MouseDown]: Dismissed,
97
- [SelectWithKeyboard]: Dismissed,
98
- [GlobalMouseMove]: LeavingVisible
99
- }
90
+ leave: function leave() {
91
+ clearLeavingVisibleTimer();
92
+ clearContextId();
100
93
  },
101
- [LeavingVisible]: {
102
- enter: () => {
103
- startLeavingVisibleTimer();
104
- },
105
- leave: () => {
106
- clearLeavingVisibleTimer();
107
- clearContextId();
108
- },
109
- on: {
110
- [MouseEnter]: Visible,
111
- [Focus]: Visible,
112
- [TimeComplete]: Idle
113
- }
94
+ on: (_on4 = {}, _defineProperty(_on4, MouseEnter, Visible), _defineProperty(_on4, Focus, Visible), _defineProperty(_on4, TimeComplete, Idle), _on4)
95
+ }), _defineProperty(_states, Dismissed, {
96
+ leave: function leave() {
97
+ clearContextId();
114
98
  },
115
- [Dismissed]: {
116
- leave: () => {
117
- clearContextId();
118
- },
119
- on: {
120
- [MouseLeave]: Idle,
121
- [Blur]: Idle
122
- }
123
- }
124
- }
99
+ on: (_on5 = {}, _defineProperty(_on5, MouseLeave, Idle), _defineProperty(_on5, Blur, Idle), _on5)
100
+ }), _states)
125
101
  };
126
102
 
127
103
  function transition(currentState, event, payload) {
128
104
  var _stateDef$on;
129
105
 
130
- const currentStateValue = currentState.state;
131
- const stateDef = chart.states[currentState.state];
132
- const nextState = stateDef == null ? void 0 : (_stateDef$on = stateDef.on) == null ? void 0 : _stateDef$on[event]; // Really useful for debugging
106
+ var currentStateValue = currentState.state;
107
+ var stateDef = chart.states[currentState.state];
108
+ var nextState = stateDef == null ? void 0 : (_stateDef$on = stateDef.on) == null ? void 0 : _stateDef$on[event]; // Really useful for debugging
133
109
  // console.log({
134
110
  // event,
135
111
  // state: state.current.state,
@@ -145,8 +121,8 @@ function transition(currentState, event, payload) {
145
121
  stateDef.leave(currentStateValue, payload);
146
122
  }
147
123
 
148
- const nextStateValue = nextState;
149
- const nextDef = chart.states[nextStateValue];
124
+ var nextStateValue = nextState;
125
+ var nextDef = chart.states[nextStateValue];
150
126
 
151
127
  if (nextDef && nextDef.enter) {
152
128
  nextDef.enter(nextStateValue, payload);
@@ -158,7 +134,7 @@ function transition(currentState, event, payload) {
158
134
  }
159
135
 
160
136
  export function send(event, payload) {
161
- const nextState = transition(state.current, event, payload);
137
+ var nextState = transition(state.current, event, payload);
162
138
 
163
139
  if (state.current !== nextState) {
164
140
  state.current = nextState;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Tooltip/stateMachine.ts"],"names":["createSubscription","restTimeout","startRestTimer","window","clearTimeout","setTimeout","send","Rest","undefined","clearRestTimer","leavingVisibleTimer","startLeavingVisibleTimer","TimeComplete","clearLeavingVisibleTimer","Idle","Focused","Visible","LeavingVisible","Dismissed","Blur","Focus","GlobalMouseMove","MouseDown","MouseEnter","MouseLeave","MouseMove","SelectWithKeyboard","subscription","state","current","id","clearContextId","chart","initial","states","enter","on","leave","transition","currentState","event","payload","currentStateValue","stateDef","nextState","nextStateValue","nextDef","notify"],"mappings":"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","sourcesContent":["import { createSubscription } from '../utils/createSubscription';\nimport { StateChart as GenericStateChart } from '../hooks/useReducerMachine';\n\n////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n\n// Manages when the user \"rests\" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\nlet restTimeout: number;\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(() => {\n send(Rest, undefined);\n }, 200);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n}\n\n// Manages the delay to hide the tooltip after rest leaves.\nlet leavingVisibleTimer: number;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(\n () => send(TimeComplete, undefined),\n 100\n );\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// State machine\n\nexport type TooltipStates =\n | 'IDLE'\n | 'FOCUSED'\n | 'VISIBLE'\n | 'LEAVING_VISIBLE'\n | 'DISMISSED';\n\n// Nothing goin' on\nexport const Idle = 'IDLE' as const;\n// We're considering showing the tooltip, but we're gonna wait a sec\nexport const Focused = 'FOCUSED' as const;\n// It's on!\nexport const Visible = 'VISIBLE' as const;\n// Focus has left, but we want to keep it visible for a sec\nexport const LeavingVisible = 'LEAVING_VISIBLE' as const;\n// The user clicked the tool, so we want to hide the thing, we can't just use\n// IDLE because we need to ignore mousemove, etc.\nexport const Dismissed = 'DISMISSED' as const;\n\nexport type TooltipEventTypes =\n | 'BLUR'\n | 'FOCUS'\n | 'GLOBAL_MOUSE_MOVE'\n | 'MOUSE_DOWN'\n | 'MOUSE_ENTER'\n | 'MOUSE_LEAVE'\n | 'MOUSE_MOVE'\n | 'REST'\n | 'SELECT_WITH_KEYBOARD'\n | 'TIME_COMPLETE';\n\nexport const Blur = 'BLUR' as const;\nexport const Focus = 'FOCUS' as const;\nexport const GlobalMouseMove = 'GLOBAL_MOUSE_MOVE' as const;\nexport const MouseDown = 'MOUSE_DOWN' as const;\nexport const MouseEnter = 'MOUSE_ENTER' as const;\nexport const MouseLeave = 'MOUSE_LEAVE' as const;\nexport const MouseMove = 'MOUSE_MOVE' as const;\nexport const Rest = 'REST' as const;\nexport const SelectWithKeyboard = 'SELECT_WITH_KEYBOARD' as const;\nexport const TimeComplete = 'TIME_COMPLETE' as const;\n\nexport const subscription = createSubscription();\nexport const state = {\n current: {\n state: Idle as TooltipStates,\n id: '',\n },\n};\n\nfunction clearContextId() {\n state.current.id = '';\n}\n\nconst chart: GenericStateChart<TooltipStates, TooltipEventTypes> = {\n initial: Idle,\n states: {\n [Idle]: {\n enter: () => {\n clearContextId();\n },\n on: {\n [MouseEnter]: Focused,\n [Focus]: Visible,\n },\n },\n [Focused]: {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: {\n [MouseMove]: Focused,\n [MouseLeave]: Idle,\n [MouseDown]: Dismissed,\n [Blur]: Idle,\n [Rest]: Visible,\n },\n },\n [Visible]: {\n on: {\n [Focus]: Focused,\n [MouseEnter]: Focused,\n [MouseLeave]: LeavingVisible,\n [Blur]: LeavingVisible,\n [MouseDown]: Dismissed,\n [SelectWithKeyboard]: Dismissed,\n [GlobalMouseMove]: LeavingVisible,\n },\n },\n [LeavingVisible]: {\n enter: () => {\n startLeavingVisibleTimer();\n },\n leave: () => {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: {\n [MouseEnter]: Visible,\n [Focus]: Visible,\n [TimeComplete]: Idle,\n },\n },\n [Dismissed]: {\n leave: () => {\n clearContextId();\n },\n on: {\n [MouseLeave]: Idle,\n [Blur]: Idle,\n },\n },\n },\n};\n\nfunction transition(\n currentState: typeof state['current'],\n event: TooltipEventTypes,\n payload?: Omit<typeof state['current'], 'state'>\n): typeof state['current'] {\n const currentStateValue = currentState.state;\n const stateDef = chart.states[currentState.state];\n const nextState = stateDef?.on?.[event];\n\n // Really useful for debugging\n // console.log({\n // event,\n // state: state.current.state,\n // id: state.current.id,\n // nextState,\n // });\n\n if (!nextState) {\n return currentState;\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentStateValue, payload);\n }\n\n const nextStateValue = nextState;\n const nextDef = chart.states[nextStateValue];\n if (nextDef && nextDef.enter) {\n nextDef.enter(nextStateValue, payload);\n }\n\n return { ...currentState, ...payload, state: nextStateValue };\n}\n\nexport function send<T extends TooltipEventTypes>(\n event: T,\n payload?: Omit<typeof state['current'], 'state'>\n) {\n const nextState = transition(state.current, event, payload);\n if (state.current !== nextState) {\n state.current = nextState;\n subscription.notify();\n }\n}\n"],"file":"stateMachine.js"}
1
+ {"version":3,"sources":["../../../src/Tooltip/stateMachine.ts"],"names":["createSubscription","restTimeout","startRestTimer","window","clearTimeout","setTimeout","send","Rest","undefined","clearRestTimer","leavingVisibleTimer","startLeavingVisibleTimer","TimeComplete","clearLeavingVisibleTimer","Idle","Focused","Visible","LeavingVisible","Dismissed","Blur","Focus","GlobalMouseMove","MouseDown","MouseEnter","MouseLeave","MouseMove","SelectWithKeyboard","subscription","state","current","id","clearContextId","chart","initial","states","enter","on","leave","transition","currentState","event","payload","currentStateValue","stateDef","nextState","nextStateValue","nextDef","notify"],"mappings":";;;;;AAAA,SAASA,kBAAT,QAAmC,6BAAnC;AAGA;AACA;AAEA;AACA;AACA,IAAIC,WAAJ;;AACA,SAASC,cAAT,GAA0B;AACxBC,EAAAA,MAAM,CAACC,YAAP,CAAoBH,WAApB;AACAA,EAAAA,WAAW,GAAGE,MAAM,CAACE,UAAP,CAAkB,YAAM;AACpCC,IAAAA,IAAI,CAACC,IAAD,EAAOC,SAAP,CAAJ;AACD,GAFa,EAEX,GAFW,CAAd;AAGD;;AAED,SAASC,cAAT,GAA0B;AACxBN,EAAAA,MAAM,CAACC,YAAP,CAAoBH,WAApB;AACD,C,CAED;;;AACA,IAAIS,mBAAJ;;AAEA,SAASC,wBAAT,GAAoC;AAClCR,EAAAA,MAAM,CAACC,YAAP,CAAoBM,mBAApB;AACAA,EAAAA,mBAAmB,GAAGP,MAAM,CAACE,UAAP,CACpB;AAAA,WAAMC,IAAI,CAACM,YAAD,EAAeJ,SAAf,CAAV;AAAA,GADoB,EAEpB,GAFoB,CAAtB;AAID;;AAED,SAASK,wBAAT,GAAoC;AAClCV,EAAAA,MAAM,CAACC,YAAP,CAAoBM,mBAApB;AACD,C,CAED;AACA;;;AASA;AACA,OAAO,IAAMI,IAAI,GAAG,MAAb,C,CACP;;AACA,OAAO,IAAMC,OAAO,GAAG,SAAhB,C,CACP;;AACA,OAAO,IAAMC,OAAO,GAAG,SAAhB,C,CACP;;AACA,OAAO,IAAMC,cAAc,GAAG,iBAAvB,C,CACP;AACA;;AACA,OAAO,IAAMC,SAAS,GAAG,WAAlB;AAcP,OAAO,IAAMC,IAAI,GAAG,MAAb;AACP,OAAO,IAAMC,KAAK,GAAG,OAAd;AACP,OAAO,IAAMC,eAAe,GAAG,mBAAxB;AACP,OAAO,IAAMC,SAAS,GAAG,YAAlB;AACP,OAAO,IAAMC,UAAU,GAAG,aAAnB;AACP,OAAO,IAAMC,UAAU,GAAG,aAAnB;AACP,OAAO,IAAMC,SAAS,GAAG,YAAlB;AACP,OAAO,IAAMlB,IAAI,GAAG,MAAb;AACP,OAAO,IAAMmB,kBAAkB,GAAG,sBAA3B;AACP,OAAO,IAAMd,YAAY,GAAG,eAArB;AAEP,OAAO,IAAMe,YAAY,GAAG3B,kBAAkB,EAAvC;AACP,OAAO,IAAM4B,KAAK,GAAG;AACnBC,EAAAA,OAAO,EAAE;AACPD,IAAAA,KAAK,EAAEd,IADA;AAEPgB,IAAAA,EAAE,EAAE;AAFG;AADU,CAAd;;AAOP,SAASC,cAAT,GAA0B;AACxBH,EAAAA,KAAK,CAACC,OAAN,CAAcC,EAAd,GAAmB,EAAnB;AACD;;AAED,IAAME,KAA0D,GAAG;AACjEC,EAAAA,OAAO,EAAEnB,IADwD;AAEjEoB,EAAAA,MAAM,0CACHpB,IADG,EACI;AACNqB,IAAAA,KAAK,EAAE,iBAAM;AACXJ,MAAAA,cAAc;AACf,KAHK;AAINK,IAAAA,EAAE,kCACCb,UADD,EACcR,OADd,wBAECK,KAFD,EAESJ,OAFT;AAJI,GADJ,4BAUHD,OAVG,EAUO;AACToB,IAAAA,KAAK,EAAEjC,cADE;AAETmC,IAAAA,KAAK,EAAE5B,cAFE;AAGT2B,IAAAA,EAAE,oCACCX,SADD,EACaV,OADb,yBAECS,UAFD,EAEcV,IAFd,yBAGCQ,SAHD,EAGaJ,SAHb,yBAICC,IAJD,EAIQL,IAJR,yBAKCP,IALD,EAKQS,OALR;AAHO,GAVP,4BAqBHA,OArBG,EAqBO;AACToB,IAAAA,EAAE,oCACChB,KADD,EACSL,OADT,yBAECQ,UAFD,EAEcR,OAFd,yBAGCS,UAHD,EAGcP,cAHd,yBAICE,IAJD,EAIQF,cAJR,yBAKCK,SALD,EAKaJ,SALb,yBAMCQ,kBAND,EAMsBR,SANtB,yBAOCG,eAPD,EAOmBJ,cAPnB;AADO,GArBP,4BAgCHA,cAhCG,EAgCc;AAChBkB,IAAAA,KAAK,EAAE,iBAAM;AACXxB,MAAAA,wBAAwB;AACzB,KAHe;AAIhB0B,IAAAA,KAAK,EAAE,iBAAM;AACXxB,MAAAA,wBAAwB;AACxBkB,MAAAA,cAAc;AACf,KAPe;AAQhBK,IAAAA,EAAE,oCACCb,UADD,EACcP,OADd,yBAECI,KAFD,EAESJ,OAFT,yBAGCJ,YAHD,EAGgBE,IAHhB;AARc,GAhCd,4BA8CHI,SA9CG,EA8CS;AACXmB,IAAAA,KAAK,EAAE,iBAAM;AACXN,MAAAA,cAAc;AACf,KAHU;AAIXK,IAAAA,EAAE,oCACCZ,UADD,EACcV,IADd,yBAECK,IAFD,EAEQL,IAFR;AAJS,GA9CT;AAF2D,CAAnE;;AA4DA,SAASwB,UAAT,CACEC,YADF,EAEEC,KAFF,EAGEC,OAHF,EAI2B;AAAA;;AACzB,MAAMC,iBAAiB,GAAGH,YAAY,CAACX,KAAvC;AACA,MAAMe,QAAQ,GAAGX,KAAK,CAACE,MAAN,CAAaK,YAAY,CAACX,KAA1B,CAAjB;AACA,MAAMgB,SAAS,GAAGD,QAAH,oCAAGA,QAAQ,CAAEP,EAAb,qBAAG,aAAeI,KAAf,CAAlB,CAHyB,CAKzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAI,CAACI,SAAL,EAAgB;AACd,WAAOL,YAAP;AACD;;AAED,MAAII,QAAQ,IAAIA,QAAQ,CAACN,KAAzB,EAAgC;AAC9BM,IAAAA,QAAQ,CAACN,KAAT,CAAeK,iBAAf,EAAkCD,OAAlC;AACD;;AAED,MAAMI,cAAc,GAAGD,SAAvB;AACA,MAAME,OAAO,GAAGd,KAAK,CAACE,MAAN,CAAaW,cAAb,CAAhB;;AACA,MAAIC,OAAO,IAAIA,OAAO,CAACX,KAAvB,EAA8B;AAC5BW,IAAAA,OAAO,CAACX,KAAR,CAAcU,cAAd,EAA8BJ,OAA9B;AACD;;AAED,sBAAYF,YAAZ,EAA6BE,OAA7B;AAAsCb,IAAAA,KAAK,EAAEiB;AAA7C;AACD;;AAED,OAAO,SAASvC,IAAT,CACLkC,KADK,EAELC,OAFK,EAGL;AACA,MAAMG,SAAS,GAAGN,UAAU,CAACV,KAAK,CAACC,OAAP,EAAgBW,KAAhB,EAAuBC,OAAvB,CAA5B;;AACA,MAAIb,KAAK,CAACC,OAAN,KAAkBe,SAAtB,EAAiC;AAC/BhB,IAAAA,KAAK,CAACC,OAAN,GAAgBe,SAAhB;AACAjB,IAAAA,YAAY,CAACoB,MAAb;AACD;AACF","sourcesContent":["import { createSubscription } from '../utils/createSubscription';\nimport type { StateChart as GenericStateChart } from '../hooks/useReducerMachine';\n\n////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n\n// Manages when the user \"rests\" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\nlet restTimeout: number;\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(() => {\n send(Rest, undefined);\n }, 200);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n}\n\n// Manages the delay to hide the tooltip after rest leaves.\nlet leavingVisibleTimer: number;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(\n () => send(TimeComplete, undefined),\n 100\n );\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// State machine\n\nexport type TooltipStates =\n | 'IDLE'\n | 'FOCUSED'\n | 'VISIBLE'\n | 'LEAVING_VISIBLE'\n | 'DISMISSED';\n\n// Nothing goin' on\nexport const Idle = 'IDLE' as const;\n// We're considering showing the tooltip, but we're gonna wait a sec\nexport const Focused = 'FOCUSED' as const;\n// It's on!\nexport const Visible = 'VISIBLE' as const;\n// Focus has left, but we want to keep it visible for a sec\nexport const LeavingVisible = 'LEAVING_VISIBLE' as const;\n// The user clicked the tool, so we want to hide the thing, we can't just use\n// IDLE because we need to ignore mousemove, etc.\nexport const Dismissed = 'DISMISSED' as const;\n\nexport type TooltipEventTypes =\n | 'BLUR'\n | 'FOCUS'\n | 'GLOBAL_MOUSE_MOVE'\n | 'MOUSE_DOWN'\n | 'MOUSE_ENTER'\n | 'MOUSE_LEAVE'\n | 'MOUSE_MOVE'\n | 'REST'\n | 'SELECT_WITH_KEYBOARD'\n | 'TIME_COMPLETE';\n\nexport const Blur = 'BLUR' as const;\nexport const Focus = 'FOCUS' as const;\nexport const GlobalMouseMove = 'GLOBAL_MOUSE_MOVE' as const;\nexport const MouseDown = 'MOUSE_DOWN' as const;\nexport const MouseEnter = 'MOUSE_ENTER' as const;\nexport const MouseLeave = 'MOUSE_LEAVE' as const;\nexport const MouseMove = 'MOUSE_MOVE' as const;\nexport const Rest = 'REST' as const;\nexport const SelectWithKeyboard = 'SELECT_WITH_KEYBOARD' as const;\nexport const TimeComplete = 'TIME_COMPLETE' as const;\n\nexport const subscription = createSubscription();\nexport const state = {\n current: {\n state: Idle as TooltipStates,\n id: '',\n },\n};\n\nfunction clearContextId() {\n state.current.id = '';\n}\n\nconst chart: GenericStateChart<TooltipStates, TooltipEventTypes> = {\n initial: Idle,\n states: {\n [Idle]: {\n enter: () => {\n clearContextId();\n },\n on: {\n [MouseEnter]: Focused,\n [Focus]: Visible,\n },\n },\n [Focused]: {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: {\n [MouseMove]: Focused,\n [MouseLeave]: Idle,\n [MouseDown]: Dismissed,\n [Blur]: Idle,\n [Rest]: Visible,\n },\n },\n [Visible]: {\n on: {\n [Focus]: Focused,\n [MouseEnter]: Focused,\n [MouseLeave]: LeavingVisible,\n [Blur]: LeavingVisible,\n [MouseDown]: Dismissed,\n [SelectWithKeyboard]: Dismissed,\n [GlobalMouseMove]: LeavingVisible,\n },\n },\n [LeavingVisible]: {\n enter: () => {\n startLeavingVisibleTimer();\n },\n leave: () => {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: {\n [MouseEnter]: Visible,\n [Focus]: Visible,\n [TimeComplete]: Idle,\n },\n },\n [Dismissed]: {\n leave: () => {\n clearContextId();\n },\n on: {\n [MouseLeave]: Idle,\n [Blur]: Idle,\n },\n },\n },\n};\n\nfunction transition(\n currentState: typeof state['current'],\n event: TooltipEventTypes,\n payload?: Omit<typeof state['current'], 'state'>\n): typeof state['current'] {\n const currentStateValue = currentState.state;\n const stateDef = chart.states[currentState.state];\n const nextState = stateDef?.on?.[event];\n\n // Really useful for debugging\n // console.log({\n // event,\n // state: state.current.state,\n // id: state.current.id,\n // nextState,\n // });\n\n if (!nextState) {\n return currentState;\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentStateValue, payload);\n }\n\n const nextStateValue = nextState;\n const nextDef = chart.states[nextStateValue];\n if (nextDef && nextDef.enter) {\n nextDef.enter(nextStateValue, payload);\n }\n\n return { ...currentState, ...payload, state: nextStateValue };\n}\n\nexport function send<T extends TooltipEventTypes>(\n event: T,\n payload?: Omit<typeof state['current'], 'state'>\n) {\n const nextState = transition(state.current, event, payload);\n if (state.current !== nextState) {\n state.current = nextState;\n subscription.notify();\n }\n}\n"],"file":"stateMachine.js"}
@@ -1,10 +1,10 @@
1
- import { RefAttributes } from 'react';
2
- export declare type ChildProps = React.HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>;
3
- export interface InjectedTooltipProps extends React.HTMLAttributes<HTMLElement> {
4
- anchorEl: React.RefObject<HTMLElement>;
1
+ import type { HTMLAttributes, ReactNode, Ref, RefAttributes, RefObject } from 'react';
2
+ export declare type ChildProps = HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>;
3
+ export interface InjectedTooltipProps extends HTMLAttributes<HTMLElement> {
4
+ anchorEl: RefObject<HTMLElement>;
5
5
  visible: boolean;
6
- children?: React.ReactNode;
6
+ children?: ReactNode;
7
7
  }
8
- export declare function useTooltip(childProps: ChildProps, childRef: React.Ref<HTMLElement> | undefined, tooltipProps: React.HTMLAttributes<HTMLElement> & {
9
- label?: React.ReactNode;
8
+ export declare function useTooltip(childProps: ChildProps, childRef: Ref<HTMLElement> | undefined, tooltipProps: HTMLAttributes<HTMLElement> & {
9
+ label?: ReactNode;
10
10
  }): [ChildProps, InjectedTooltipProps];