@basic-ui/core 0.0.38 → 0.0.39

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 (252) hide show
  1. package/build/cjs/index.js.map +1 -1
  2. package/build/esm/Accordion/Accordion.d.ts +1 -1
  3. package/build/esm/Accordion/Accordion.js +23 -17
  4. package/build/esm/Accordion/Accordion.js.map +1 -1
  5. package/build/esm/Accordion/AccordionBody.d.ts +1 -1
  6. package/build/esm/Accordion/AccordionBody.js +24 -15
  7. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  8. package/build/esm/Accordion/AccordionHeader.d.ts +1 -1
  9. package/build/esm/Accordion/AccordionHeader.js +46 -31
  10. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  11. package/build/esm/Accordion/AccordionItem.d.ts +1 -1
  12. package/build/esm/Accordion/AccordionItem.js +17 -16
  13. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  14. package/build/esm/Accordion/context.d.ts +1 -1
  15. package/build/esm/Accordion/context.js +12 -10
  16. package/build/esm/Accordion/context.js.map +1 -1
  17. package/build/esm/CheckBox/CheckBox.d.ts +1 -1
  18. package/build/esm/CheckBox/CheckBox.js +20 -12
  19. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  20. package/build/esm/ComboBox/Combobox.d.ts +1 -1
  21. package/build/esm/ComboBox/Combobox.js +53 -46
  22. package/build/esm/ComboBox/Combobox.js.map +1 -1
  23. package/build/esm/ComboBox/ComboboxButton.d.ts +1 -1
  24. package/build/esm/ComboBox/ComboboxButton.js +20 -20
  25. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  26. package/build/esm/ComboBox/ComboboxInput.d.ts +1 -1
  27. package/build/esm/ComboBox/ComboboxInput.js +53 -50
  28. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  29. package/build/esm/ComboBox/ComboboxLabel.d.ts +1 -1
  30. package/build/esm/ComboBox/ComboboxLabel.js +12 -12
  31. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  32. package/build/esm/ComboBox/ComboboxList.d.ts +1 -1
  33. package/build/esm/ComboBox/ComboboxList.js +16 -17
  34. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  35. package/build/esm/ComboBox/ComboboxOption.d.ts +1 -1
  36. package/build/esm/ComboBox/ComboboxOption.js +32 -34
  37. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  38. package/build/esm/ComboBox/ComboboxPopover.d.ts +1 -1
  39. package/build/esm/ComboBox/ComboboxPopover.js +16 -17
  40. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  41. package/build/esm/ComboBox/context.d.ts +3 -3
  42. package/build/esm/ComboBox/context.js +6 -5
  43. package/build/esm/ComboBox/context.js.map +1 -1
  44. package/build/esm/ComboBox/hooks.d.ts +1 -1
  45. package/build/esm/ComboBox/hooks.js +82 -115
  46. package/build/esm/ComboBox/hooks.js.map +1 -1
  47. package/build/esm/ComboBox/makeHash.js +3 -3
  48. package/build/esm/ComboBox/makeHash.js.map +1 -1
  49. package/build/esm/FocusLock/FocusLock.d.ts +1 -1
  50. package/build/esm/FocusLock/FocusLock.js +18 -16
  51. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  52. package/build/esm/FocusLock/tabUtils.js +4 -4
  53. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  54. package/build/esm/FocusLock/useFocusLock.js +10 -11
  55. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  56. package/build/esm/List/List.d.ts +1 -1
  57. package/build/esm/List/List.js +6 -6
  58. package/build/esm/List/List.js.map +1 -1
  59. package/build/esm/List/ListItem.d.ts +1 -1
  60. package/build/esm/List/ListItem.js +6 -6
  61. package/build/esm/List/ListItem.js.map +1 -1
  62. package/build/esm/List/context.js +3 -3
  63. package/build/esm/List/context.js.map +1 -1
  64. package/build/esm/Menu/Menu.d.ts +1 -1
  65. package/build/esm/Menu/Menu.js +30 -21
  66. package/build/esm/Menu/Menu.js.map +1 -1
  67. package/build/esm/Menu/MenuButton.d.ts +1 -1
  68. package/build/esm/Menu/MenuButton.js +28 -24
  69. package/build/esm/Menu/MenuButton.js.map +1 -1
  70. package/build/esm/Menu/MenuItem.d.ts +1 -1
  71. package/build/esm/Menu/MenuItem.js +24 -24
  72. package/build/esm/Menu/MenuItem.js.map +1 -1
  73. package/build/esm/Menu/MenuList.d.ts +1 -1
  74. package/build/esm/Menu/MenuList.js +62 -45
  75. package/build/esm/Menu/MenuList.js.map +1 -1
  76. package/build/esm/Menu/MenuPopover.d.ts +2 -2
  77. package/build/esm/Menu/MenuPopover.js +9 -10
  78. package/build/esm/Menu/MenuPopover.js.map +1 -1
  79. package/build/esm/Menu/context.d.ts +1 -1
  80. package/build/esm/Menu/context.js +11 -8
  81. package/build/esm/Menu/context.js.map +1 -1
  82. package/build/esm/Modal/Modal.d.ts +2 -2
  83. package/build/esm/Modal/Modal.js +12 -10
  84. package/build/esm/Modal/Modal.js.map +1 -1
  85. package/build/esm/Modal/ModalBackdrop.d.ts +1 -1
  86. package/build/esm/Modal/ModalBackdrop.js +21 -19
  87. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  88. package/build/esm/Popper/Popper.d.ts +2 -2
  89. package/build/esm/Popper/Popper.js +47 -37
  90. package/build/esm/Popper/Popper.js.map +1 -1
  91. package/build/esm/Popper/PopperArrow.d.ts +1 -1
  92. package/build/esm/Popper/PopperArrow.js +9 -9
  93. package/build/esm/Popper/PopperArrow.js.map +1 -1
  94. package/build/esm/Popper/context.d.ts +1 -1
  95. package/build/esm/Popper/context.js +5 -3
  96. package/build/esm/Popper/context.js.map +1 -1
  97. package/build/esm/Portal/Portal.d.ts +1 -1
  98. package/build/esm/Portal/Portal.js +6 -5
  99. package/build/esm/Portal/Portal.js.map +1 -1
  100. package/build/esm/RadioButton/RadioButton.d.ts +2 -2
  101. package/build/esm/RadioButton/RadioButton.js +13 -13
  102. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  103. package/build/esm/RadioButton/RadioGroup.d.ts +2 -2
  104. package/build/esm/RadioButton/RadioGroup.js +23 -16
  105. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  106. package/build/esm/RadioButton/context.js +6 -5
  107. package/build/esm/RadioButton/context.js.map +1 -1
  108. package/build/esm/SkipNav/SkipNav.d.ts +1 -1
  109. package/build/esm/SkipNav/SkipNav.js +6 -6
  110. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  111. package/build/esm/Spinner/Spinner.d.ts +1 -1
  112. package/build/esm/Spinner/Spinner.js +42 -31
  113. package/build/esm/Spinner/Spinner.js.map +1 -1
  114. package/build/esm/Spinner/SpinnerButton.d.ts +1 -1
  115. package/build/esm/Spinner/SpinnerButton.js +12 -12
  116. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  117. package/build/esm/Spinner/context.js +6 -5
  118. package/build/esm/Spinner/context.js.map +1 -1
  119. package/build/esm/Tabs/Tab.d.ts +1 -1
  120. package/build/esm/Tabs/Tab.js +30 -29
  121. package/build/esm/Tabs/Tab.js.map +1 -1
  122. package/build/esm/Tabs/TabList.d.ts +1 -1
  123. package/build/esm/Tabs/TabList.js +25 -21
  124. package/build/esm/Tabs/TabList.js.map +1 -1
  125. package/build/esm/Tabs/TabPanel.d.ts +1 -1
  126. package/build/esm/Tabs/TabPanel.js +13 -12
  127. package/build/esm/Tabs/TabPanel.js.map +1 -1
  128. package/build/esm/Tabs/TabPanels.d.ts +1 -1
  129. package/build/esm/Tabs/TabPanels.js +14 -12
  130. package/build/esm/Tabs/TabPanels.js.map +1 -1
  131. package/build/esm/Tabs/Tabs.d.ts +1 -1
  132. package/build/esm/Tabs/Tabs.js +28 -14
  133. package/build/esm/Tabs/Tabs.js.map +1 -1
  134. package/build/esm/Tabs/context.d.ts +1 -1
  135. package/build/esm/Tabs/context.js +12 -10
  136. package/build/esm/Tabs/context.js.map +1 -1
  137. package/build/esm/Tooltip/Tooltip.d.ts +2 -1
  138. package/build/esm/Tooltip/Tooltip.js +17 -15
  139. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  140. package/build/esm/Tooltip/stateMachine.js +56 -80
  141. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  142. package/build/esm/Tooltip/useTooltip.d.ts +1 -1
  143. package/build/esm/Tooltip/useTooltip.js +31 -29
  144. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  145. package/build/esm/hooks/useAutoFocus.js +1 -1
  146. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  147. package/build/esm/hooks/useChildrenCounter.d.ts +1 -1
  148. package/build/esm/hooks/useChildrenCounter.js +6 -4
  149. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  150. package/build/esm/hooks/useControlledState.d.ts +1 -1
  151. package/build/esm/hooks/useControlledState.js +7 -2
  152. package/build/esm/hooks/useControlledState.js.map +1 -1
  153. package/build/esm/hooks/useFocusReturn.d.ts +1 -1
  154. package/build/esm/hooks/useFocusReturn.js +6 -6
  155. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  156. package/build/esm/hooks/useFocusState.js +13 -9
  157. package/build/esm/hooks/useFocusState.js.map +1 -1
  158. package/build/esm/hooks/useGestureHandlers.js +59 -63
  159. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  160. package/build/esm/hooks/useMeasure.js +13 -7
  161. package/build/esm/hooks/useMeasure.js.map +1 -1
  162. package/build/esm/hooks/useOnClickOutside.js +5 -4
  163. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  164. package/build/esm/hooks/useOnKeyDown.js +4 -3
  165. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  166. package/build/esm/hooks/useReducerMachine.d.ts +1 -1
  167. package/build/esm/hooks/useReducerMachine.js +13 -10
  168. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  169. package/build/esm/hooks/useRemoveBodyScroll.js +4 -4
  170. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  171. package/build/esm/hooks/useScope.d.ts +1 -1
  172. package/build/esm/hooks/useScope.js +10 -12
  173. package/build/esm/hooks/useScope.js.map +1 -1
  174. package/build/esm/hooks/useThrottle.js +10 -5
  175. package/build/esm/hooks/useThrottle.js.map +1 -1
  176. package/build/esm/utils/assignRef.d.ts +1 -1
  177. package/build/esm/utils/assignRef.js +7 -3
  178. package/build/esm/utils/assignRef.js.map +1 -1
  179. package/build/esm/utils/createSubscription.js +7 -5
  180. package/build/esm/utils/createSubscription.js.map +1 -1
  181. package/build/esm/utils/rubberBandClamp.js +5 -2
  182. package/build/esm/utils/rubberBandClamp.js.map +1 -1
  183. package/build/esm/utils/wrapEvent.js +7 -3
  184. package/build/esm/utils/wrapEvent.js.map +1 -1
  185. package/build/tsconfig.tsbuildinfo +1 -1
  186. package/package.json +2 -2
  187. package/src/Accordion/Accordion.story.tsx +1 -0
  188. package/src/Accordion/Accordion.tsx +4 -2
  189. package/src/Accordion/AccordionBody.tsx +4 -4
  190. package/src/Accordion/AccordionHeader.tsx +7 -8
  191. package/src/Accordion/AccordionItem.tsx +4 -2
  192. package/src/Accordion/context.ts +2 -1
  193. package/src/CheckBox/CheckBox.tsx +2 -1
  194. package/src/ComboBox/ComboBox.story.tsx +3 -3
  195. package/src/ComboBox/Combobox.tsx +8 -10
  196. package/src/ComboBox/ComboboxButton.tsx +4 -9
  197. package/src/ComboBox/ComboboxInput.tsx +2 -1
  198. package/src/ComboBox/ComboboxLabel.tsx +2 -1
  199. package/src/ComboBox/ComboboxList.tsx +2 -1
  200. package/src/ComboBox/ComboboxOption.tsx +1 -1
  201. package/src/ComboBox/ComboboxPopover.tsx +2 -1
  202. package/src/ComboBox/context.ts +4 -3
  203. package/src/ComboBox/hooks.tsx +6 -9
  204. package/src/FocusLock/FocusLock.tsx +2 -1
  205. package/src/FocusLock/useFocusLock.ts +1 -0
  206. package/src/List/List.tsx +1 -1
  207. package/src/List/ListItem.tsx +1 -1
  208. package/src/Menu/Menu.story.tsx +6 -5
  209. package/src/Menu/Menu.tsx +4 -2
  210. package/src/Menu/MenuButton.tsx +4 -8
  211. package/src/Menu/MenuItem.tsx +2 -1
  212. package/src/Menu/MenuList.tsx +4 -8
  213. package/src/Menu/MenuPopover.tsx +4 -2
  214. package/src/Menu/context.ts +2 -1
  215. package/src/Modal/Modal.story.tsx +1 -0
  216. package/src/Modal/Modal.tsx +4 -2
  217. package/src/Modal/ModalBackdrop.tsx +2 -1
  218. package/src/Modal/NavDrawer.story.tsx +3 -3
  219. package/src/Popper/Popper.story.tsx +3 -4
  220. package/src/Popper/Popper.tsx +8 -7
  221. package/src/Popper/PopperArrow.tsx +2 -1
  222. package/src/Popper/context.ts +2 -1
  223. package/src/Portal/Portal.tsx +1 -1
  224. package/src/RadioButton/RadioButton.story.tsx +1 -0
  225. package/src/RadioButton/RadioButton.tsx +4 -2
  226. package/src/RadioButton/RadioGroup.tsx +4 -2
  227. package/src/SkipNav/SkipNav.tsx +1 -1
  228. package/src/Spinner/Spinner.story.tsx +1 -0
  229. package/src/Spinner/Spinner.tsx +2 -1
  230. package/src/Spinner/SpinnerButton.tsx +2 -1
  231. package/src/Tabs/Tab.story.tsx +1 -0
  232. package/src/Tabs/Tab.tsx +4 -4
  233. package/src/Tabs/TabList.tsx +2 -1
  234. package/src/Tabs/TabPanel.tsx +2 -1
  235. package/src/Tabs/TabPanels.tsx +1 -1
  236. package/src/Tabs/Tabs.tsx +2 -1
  237. package/src/Tabs/context.ts +2 -1
  238. package/src/Tooltip/Tooltip.story.tsx +2 -1
  239. package/src/Tooltip/Tooltip.tsx +3 -7
  240. package/src/Tooltip/stateMachine.ts +1 -1
  241. package/src/Tooltip/useTooltip.ts +3 -1
  242. package/src/hooks/useAutoFocus.ts +1 -0
  243. package/src/hooks/useChildrenCounter.ts +2 -1
  244. package/src/hooks/useControlledState.ts +3 -1
  245. package/src/hooks/useFocusReturn.ts +2 -1
  246. package/src/hooks/useFocusState.ts +1 -0
  247. package/src/hooks/useReducerMachine.ts +2 -1
  248. package/src/hooks/useScope.ts +2 -1
  249. package/src/utils/assignRef.ts +1 -1
  250. package/build/esm/hooks/useId.d.ts +0 -3
  251. package/build/esm/hooks/useId.js +0 -16
  252. package/build/esm/hooks/useId.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Accordion/AccordionBody.tsx"],"names":["forwardRef","useState","useEffect","useRef","useAccordionItemContext","useAccordionContext","bodyScopeQuery","scopeQuery","assignMultipleRefs","AccordionBody","props","forwardedRef","as","Comp","otherProps","accordionItemContext","accordionContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","Boolean","expandedIndex","headerId","bodyId","undefined"],"mappings":";;AAAA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,SAA/B,EAA0CC,MAA1C,QAAwD,OAAxD;AAEA,SAASC,uBAAT,EAAkCC,mBAAlC,QAA6D,WAA7D;AACA,SAASC,cAAc,IAAIC,UAA3B,QAA6C,cAA7C;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAQA,OAAO,MAAMC,aAAa,gBAAGT,UAAU,CACrC,SAASS,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;AAC1C,QAAM;AAAEC,IAAAA,EAAE,EAAEC,IAAI,GAAG;AAAb,MAAsCH,KAA5C;AAAA,QAA6BI,UAA7B,iCAA4CJ,KAA5C;;AACA,QAAMK,oBAAoB,GAAGX,uBAAuB,EAApD;AACA,QAAMY,gBAAgB,GAAGX,mBAAmB,EAA5C;AACA,QAAMY,GAAG,GAAGd,MAAM,EAAlB;AACA,QAAM,CAACe,KAAD,EAAQC,QAAR,IAAoBlB,QAAQ,EAAlC;;AAEA,MAAI,CAACc,oBAAL,EAA2B;AACzB,UAAM,IAAIK,KAAJ,CAAU,wCAAV,CAAN;AACD;;AAEDlB,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIc,gBAAJ,EAAsB;AACpB,YAAMK,UAAU,GAAGL,gBAAgB,CAACM,KAAjB,CAAuBC,OAAvB,CAA+BC,aAA/B,CACjBjB,UADiB,CAAnB;AAIA,YAAMW,KAAK,GAAGG,UAAU,CAACI,SAAX,CAAsBC,CAAD,IAAOA,CAAC,KAAKT,GAAG,CAACM,OAAtC,CAAd;AACAJ,MAAAA,QAAQ,CAACD,KAAD,CAAR;AACD;AACF,GATQ,EASN,CAACF,gBAAD,CATM,CAAT;AAWA,QAAMW,QAAQ,GAAGC,OAAO,CACtBb,oBAAoB,CAACY,QAArB,IACGX,gBAAgB,IAAIA,gBAAgB,CAACa,aAAjB,KAAmCX,KAFpC,CAAxB;AAKA,sBACE,KAAC,IAAD;AACE,IAAA,GAAG,EAAEV,kBAAkB,CAACG,YAAD,EAAeM,GAAf;AADzB,KAEMH,UAFN;AAGE,uBAAiBC,oBAAoB,CAACe,QAHxC;AAIE,IAAA,EAAE,EAAEf,oBAAoB,CAACgB,MAJ3B;AAKE,IAAA,IAAI,EAAC,QALP;AAME,2BAAoB,EANtB;AAOE,IAAA,MAAM,EAAEJ,QAAQ,GAAGK,SAAH,GAAe;AAPjC,KADF;AAWD,CAvCoC,CAAhC","sourcesContent":["import { forwardRef, useState, useEffect, useRef } from 'react';\nimport type * as React from 'react';\nimport { useAccordionItemContext, useAccordionContext } from './context';\nimport { bodyScopeQuery as scopeQuery } from './scopeQuery';\nimport { assignMultipleRefs } from '../utils';\n\nexport interface AccordionBodyProps\n extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n}\n\nexport const AccordionBody = forwardRef<HTMLDivElement, AccordionBodyProps>(\n function AccordionBody(props, forwardedRef) {\n const { as: Comp = 'div', ...otherProps } = props;\n const accordionItemContext = useAccordionItemContext();\n const accordionContext = useAccordionContext();\n const ref = useRef<HTMLDivElement>();\n const [index, setIndex] = useState<number>();\n\n if (!accordionItemContext) {\n throw new Error('Missing parent <Accordion /> component');\n }\n\n useEffect(() => {\n if (accordionContext) {\n const allHeaders = accordionContext.scope.current.queryAllNodes(\n scopeQuery\n );\n\n const index = allHeaders.findIndex((e) => e === ref.current);\n setIndex(index);\n }\n }, [accordionContext]);\n\n const expanded = Boolean(\n accordionItemContext.expanded ||\n (accordionContext && accordionContext.expandedIndex === index)\n );\n\n return (\n <Comp\n ref={assignMultipleRefs(forwardedRef, ref)}\n {...otherProps}\n aria-labelledby={accordionItemContext.headerId}\n id={accordionItemContext.bodyId}\n role=\"region\"\n data-accordion-body=\"\"\n hidden={expanded ? undefined : 'hidden'}\n />\n );\n }\n);\n"],"file":"AccordionBody.js"}
1
+ {"version":3,"sources":["../../../src/Accordion/AccordionBody.tsx"],"names":["forwardRef","useState","useEffect","useRef","React","useAccordionItemContext","useAccordionContext","bodyScopeQuery","scopeQuery","assignMultipleRefs","AccordionBody","props","forwardedRef","as","Comp","otherProps","accordionItemContext","accordionContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","Boolean","expandedIndex","headerId","bodyId","undefined"],"mappings":";;;AAAA,SAASA,UAAT,EAAqBC,QAArB,EAA+BC,SAA/B,EAA0CC,MAA1C,QAAwD,OAAxD;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAEA,SAASC,uBAAT,EAAkCC,mBAAlC,QAA6D,WAA7D;AACA,SAASC,cAAc,IAAIC,UAA3B,QAA6C,cAA7C;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAQA,OAAO,IAAMC,aAAa,gBAAGV,UAAU,CACrC,SAASU,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;AAAA,kBACED,KADF,CAClCE,EADkC;AAAA,MAC9BC,IAD8B,0BACvB,KADuB;AAAA,MACbC,UADa,4BACEJ,KADF;;AAE1C,MAAMK,oBAAoB,GAAGX,uBAAuB,EAApD;AACA,MAAMY,gBAAgB,GAAGX,mBAAmB,EAA5C;AACA,MAAMY,GAAG,GAAGf,MAAM,EAAlB;;AAJ0C,kBAKhBF,QAAQ,EALQ;AAAA;AAAA,MAKnCkB,KALmC;AAAA,MAK5BC,QAL4B;;AAO1C,MAAI,CAACJ,oBAAL,EAA2B;AACzB,UAAM,IAAIK,KAAJ,CAAU,wCAAV,CAAN;AACD;;AAEDnB,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIe,gBAAJ,EAAsB;AACpB,UAAMK,UAAU,GACdL,gBAAgB,CAACM,KAAjB,CAAuBC,OAAvB,CAA+BC,aAA/B,CAA6CjB,UAA7C,CADF;;AAGA,UAAMW,MAAK,GAAGG,UAAU,CAACI,SAAX,CAAqB,UAACC,CAAD;AAAA,eAAOA,CAAC,KAAKT,GAAG,CAACM,OAAjB;AAAA,OAArB,CAAd;;AACAJ,MAAAA,QAAQ,CAACD,MAAD,CAAR;AACD;AACF,GARQ,EAQN,CAACF,gBAAD,CARM,CAAT;AAUA,MAAMW,QAAQ,GAAGC,OAAO,CACtBb,oBAAoB,CAACY,QAArB,IACGX,gBAAgB,IAAIA,gBAAgB,CAACa,aAAjB,KAAmCX,KAFpC,CAAxB;AAKA,sBACE,KAAC,IAAD;AACE,IAAA,GAAG,EAAEV,kBAAkB,CAACG,YAAD,EAAeM,GAAf;AADzB,KAEMH,UAFN;AAGE,uBAAiBC,oBAAoB,CAACe,QAHxC;AAIE,IAAA,EAAE,EAAEf,oBAAoB,CAACgB,MAJ3B;AAKE,IAAA,IAAI,EAAC,QALP;AAME,2BAAoB,EANtB;AAOE,IAAA,MAAM,EAAEJ,QAAQ,GAAGK,SAAH,GAAe;AAPjC,KADF;AAWD,CAtCoC,CAAhC","sourcesContent":["import { forwardRef, useState, useEffect, useRef } from 'react';\nimport * as React from 'react';\n\nimport { useAccordionItemContext, useAccordionContext } from './context';\nimport { bodyScopeQuery as scopeQuery } from './scopeQuery';\nimport { assignMultipleRefs } from '../utils';\n\nexport interface AccordionBodyProps\n extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n}\n\nexport const AccordionBody = forwardRef<HTMLDivElement, AccordionBodyProps>(\n function AccordionBody(props, forwardedRef) {\n const { as: Comp = 'div', ...otherProps } = props;\n const accordionItemContext = useAccordionItemContext();\n const accordionContext = useAccordionContext();\n const ref = useRef<HTMLDivElement>();\n const [index, setIndex] = useState<number>();\n\n if (!accordionItemContext) {\n throw new Error('Missing parent <Accordion /> component');\n }\n\n useEffect(() => {\n if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery);\n\n const index = allHeaders.findIndex((e) => e === ref.current);\n setIndex(index);\n }\n }, [accordionContext]);\n\n const expanded = Boolean(\n accordionItemContext.expanded ||\n (accordionContext && accordionContext.expandedIndex === index)\n );\n\n return (\n <Comp\n ref={assignMultipleRefs(forwardedRef, ref)}\n {...otherProps}\n aria-labelledby={accordionItemContext.headerId}\n id={accordionItemContext.bodyId}\n role=\"region\"\n data-accordion-body=\"\"\n hidden={expanded ? undefined : 'hidden'}\n />\n );\n }\n);\n"],"file":"AccordionBody.js"}
@@ -1,4 +1,4 @@
1
- import type * as React from 'react';
1
+ import * as React from 'react';
2
2
  export interface AccordionHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  as?: React.ElementType<any>;
4
4
  innerAs?: React.ElementType<any>;
@@ -1,44 +1,55 @@
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, useRef, useState, useEffect } from 'react';
5
+ import * as React from 'react';
4
6
  import { wrapEvent, assignMultipleRefs, getCircularIndex } from '../utils';
5
7
  import { useAccordionContext, useAccordionItemContext } from './context';
6
8
  import { headerScopeQuery as scopeQuery } from './scopeQuery';
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
8
- export const AccordionHeader = /*#__PURE__*/forwardRef(function AccordionHeader(props, forwardedRef) {
9
- const {
10
- as: Comp = 'div',
11
- onKeyDown,
12
- onClick: onClickProp,
13
- onFocus,
14
- onBlur
15
- } = props,
16
- otherProps = _objectWithoutPropertiesLoose(props, ["as", "onKeyDown", "onClick", "onFocus", "onBlur"]);
17
-
18
- const accordionContext = useAccordionContext();
19
- const accordionItemContext = useAccordionItemContext();
20
- const ref = useRef();
21
- const [index, setIndex] = useState();
10
+ export var AccordionHeader = /*#__PURE__*/forwardRef(function AccordionHeader(props, forwardedRef) {
11
+ var _props$as = props.as,
12
+ Comp = _props$as === void 0 ? 'div' : _props$as,
13
+ onKeyDown = props.onKeyDown,
14
+ onClickProp = props.onClick,
15
+ onFocus = props.onFocus,
16
+ onBlur = props.onBlur,
17
+ otherProps = _objectWithoutProperties(props, ["as", "onKeyDown", "onClick", "onFocus", "onBlur"]);
18
+
19
+ var accordionContext = useAccordionContext();
20
+ var accordionItemContext = useAccordionItemContext();
21
+ var ref = useRef();
22
+
23
+ var _useState = useState(),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ index = _useState2[0],
26
+ setIndex = _useState2[1];
22
27
 
23
28
  if (!accordionItemContext) {
24
29
  throw new Error('Missing parent <Accordion /> component');
25
30
  }
26
31
 
27
- useEffect(() => {
32
+ useEffect(function () {
28
33
  if (accordionContext) {
29
- const allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery) || [];
30
- const index = allHeaders.findIndex(e => e === ref.current);
31
- setIndex(index);
34
+ var allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery) || [];
35
+
36
+ var _index = allHeaders.findIndex(function (e) {
37
+ return e === ref.current;
38
+ });
39
+
40
+ setIndex(_index);
32
41
  }
33
42
  }, [accordionContext]);
34
- const onClick = wrapEvent(onClickProp, e => {
35
- let index = 0;
43
+ var onClick = wrapEvent(onClickProp, function (e) {
44
+ var index = 0;
36
45
 
37
46
  if (accordionItemContext.expanded) {
38
47
  index = -1;
39
48
  } else if (accordionContext) {
40
- const allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery) || [];
41
- index = allHeaders.findIndex(e => e === ref.current);
49
+ var allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery) || [];
50
+ index = allHeaders.findIndex(function (e) {
51
+ return e === ref.current;
52
+ });
42
53
 
43
54
  if (index === accordionContext.expandedIndex) {
44
55
  index = -1;
@@ -50,7 +61,7 @@ export const AccordionHeader = /*#__PURE__*/forwardRef(function AccordionHeader(
50
61
  accordionItemContext.onChange && accordionItemContext.onChange(e, index >= 0);
51
62
  });
52
63
 
53
- const handleKeyDown = e => {
64
+ var handleKeyDown = function handleKeyDown(e) {
54
65
  switch (e.key) {
55
66
  case 'Enter':
56
67
  case ' ':
@@ -69,14 +80,16 @@ export const AccordionHeader = /*#__PURE__*/forwardRef(function AccordionHeader(
69
80
  return;
70
81
  }
71
82
 
72
- const allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery);
83
+ var allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery);
73
84
  e.preventDefault();
74
85
 
75
86
  if (allHeaders.length === 0) {
76
87
  return;
77
88
  }
78
89
 
79
- let nextIndex = allHeaders.findIndex(e => e === ref.current);
90
+ var nextIndex = allHeaders.findIndex(function (e) {
91
+ return e === ref.current;
92
+ });
80
93
 
81
94
  switch (e.key) {
82
95
  case 'ArrowUp':
@@ -108,7 +121,7 @@ export const AccordionHeader = /*#__PURE__*/forwardRef(function AccordionHeader(
108
121
  }
109
122
  };
110
123
 
111
- const handleFocus = () => {
124
+ var handleFocus = function handleFocus() {
112
125
  if (accordionContext) {
113
126
  if (!accordionContext.childrenHeaderHasFocus) {
114
127
  // this is needed to avoid rerendering the parent and
@@ -118,10 +131,12 @@ export const AccordionHeader = /*#__PURE__*/forwardRef(function AccordionHeader(
118
131
  }
119
132
  };
120
133
 
121
- const handleBlur = e => {
134
+ var handleBlur = function handleBlur(e) {
122
135
  if (accordionContext) {
123
- const allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery);
124
- const newFocusIsHeader = allHeaders.findIndex(header => header === e.relatedTarget) >= 0; // only remove focus flag if the focus went to some element
136
+ var allHeaders = accordionContext.scope.current.queryAllNodes(scopeQuery);
137
+ var newFocusIsHeader = allHeaders.findIndex(function (header) {
138
+ return header === e.relatedTarget;
139
+ }) >= 0; // only remove focus flag if the focus went to some element
125
140
  // that is not an accordion header
126
141
 
127
142
  if (!newFocusIsHeader) {
@@ -130,7 +145,7 @@ export const AccordionHeader = /*#__PURE__*/forwardRef(function AccordionHeader(
130
145
  }
131
146
  };
132
147
 
133
- const expanded = Boolean(accordionItemContext.expanded || accordionContext && accordionContext.expandedIndex === index);
148
+ var expanded = Boolean(accordionItemContext.expanded || accordionContext && accordionContext.expandedIndex === index);
134
149
  return /*#__PURE__*/_jsx(Comp, _extends({
135
150
  ref: assignMultipleRefs(ref, forwardedRef)
136
151
  }, otherProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Accordion/AccordionHeader.tsx"],"names":["forwardRef","useRef","useState","useEffect","wrapEvent","assignMultipleRefs","getCircularIndex","useAccordionContext","useAccordionItemContext","headerScopeQuery","scopeQuery","AccordionHeader","props","forwardedRef","as","Comp","onKeyDown","onClick","onClickProp","onFocus","onBlur","otherProps","accordionContext","accordionItemContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","expandedIndex","onChange","handleKeyDown","key","preventDefault","length","nextIndex","focus","handleFocus","childrenHeaderHasFocus","setChildrenHeaderHasFocus","handleBlur","newFocusIsHeader","header","relatedTarget","Boolean","headerId","bodyId","String"],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useState, useEffect } from 'react';\nimport type * as React from 'react';\nimport { wrapEvent, assignMultipleRefs, getCircularIndex } from '../utils';\nimport { useAccordionContext, useAccordionItemContext } from './context';\nimport { headerScopeQuery as scopeQuery } from './scopeQuery';\n\nexport interface AccordionHeaderProps\n extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n}\n\nexport const AccordionHeader = forwardRef<HTMLDivElement, AccordionHeaderProps>(\n function AccordionHeader(props, forwardedRef) {\n const {\n as: Comp = 'div',\n onKeyDown,\n onClick: onClickProp,\n onFocus,\n onBlur,\n ...otherProps\n } = props;\n const accordionContext = useAccordionContext();\n const accordionItemContext = useAccordionItemContext();\n const ref = useRef<HTMLDivElement>();\n const [index, setIndex] = useState<number | undefined>();\n\n if (!accordionItemContext) {\n throw new Error('Missing parent <Accordion /> component');\n }\n\n useEffect(() => {\n if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\n\n const index = allHeaders.findIndex((e) => e === ref.current);\n setIndex(index);\n }\n }, [accordionContext]);\n\n const onClick = wrapEvent(\n onClickProp,\n (e: React.MouseEvent<HTMLDivElement>) => {\n let index = 0;\n if (accordionItemContext.expanded) {\n index = -1;\n } else if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\n\n index = allHeaders.findIndex((e) => e === ref.current);\n if (index === accordionContext.expandedIndex) {\n index = -1;\n }\n accordionContext.onChange && accordionContext.onChange(e, index);\n }\n\n accordionItemContext.onChange &&\n accordionItemContext.onChange(e, index >= 0);\n }\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n switch (e.key) {\n case 'Enter':\n case ' ': {\n onClick((e as unknown) as React.MouseEvent<HTMLDivElement>);\n e.preventDefault();\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End': {\n if (!accordionContext) {\n return;\n }\n const allHeaders = accordionContext.scope.current.queryAllNodes(\n scopeQuery\n );\n\n e.preventDefault();\n\n if (allHeaders.length === 0) {\n return;\n }\n\n let nextIndex = allHeaders.findIndex((e) => e === ref.current);\n switch (e.key) {\n case 'ArrowUp':\n nextIndex += -1;\n break;\n case 'ArrowDown':\n nextIndex += +1;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = -1;\n break;\n }\n\n // We're sure it will not be null, because we already checked for allHeaders.length > 0 above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n nextIndex = getCircularIndex(nextIndex, allHeaders.length)!;\n allHeaders[nextIndex] && allHeaders[nextIndex].focus();\n break;\n }\n default:\n return;\n }\n };\n\n const handleFocus = () => {\n if (accordionContext) {\n if (!accordionContext.childrenHeaderHasFocus) {\n // this is needed to avoid rerendering the parent and\n // messing up with the internal count for children/parent count\n accordionContext.setChildrenHeaderHasFocus(true);\n }\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n if (accordionContext) {\n const allHeaders = accordionContext.scope.current.queryAllNodes(\n scopeQuery\n );\n const newFocusIsHeader =\n allHeaders.findIndex((header) => header === e.relatedTarget) >= 0;\n\n // only remove focus flag if the focus went to some element\n // that is not an accordion header\n if (!newFocusIsHeader) {\n accordionContext.setChildrenHeaderHasFocus(false);\n }\n }\n };\n\n const expanded = Boolean(\n accordionItemContext.expanded ||\n (accordionContext && accordionContext.expandedIndex === index)\n );\n\n return (\n <Comp\n ref={assignMultipleRefs(ref, forwardedRef)}\n {...otherProps}\n id={accordionItemContext.headerId}\n aria-controls={accordionItemContext.bodyId}\n role=\"button\"\n data-accordion-header=\"\"\n tabIndex=\"0\"\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n onFocus={wrapEvent(onFocus, handleFocus)}\n onBlur={wrapEvent(onBlur, handleBlur)}\n onClick={onClick}\n aria-expanded={String(expanded)}\n />\n );\n }\n);\n"],"file":"AccordionHeader.js"}
1
+ {"version":3,"sources":["../../../src/Accordion/AccordionHeader.tsx"],"names":["forwardRef","useRef","useState","useEffect","React","wrapEvent","assignMultipleRefs","getCircularIndex","useAccordionContext","useAccordionItemContext","headerScopeQuery","scopeQuery","AccordionHeader","props","forwardedRef","as","Comp","onKeyDown","onClickProp","onClick","onFocus","onBlur","otherProps","accordionContext","accordionItemContext","ref","index","setIndex","Error","allHeaders","scope","current","queryAllNodes","findIndex","e","expanded","expandedIndex","onChange","handleKeyDown","key","preventDefault","length","nextIndex","focus","handleFocus","childrenHeaderHasFocus","setChildrenHeaderHasFocus","handleBlur","newFocusIsHeader","header","relatedTarget","Boolean","headerId","bodyId","String"],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useState, useEffect } from 'react';\nimport * as React from 'react';\n\nimport { wrapEvent, assignMultipleRefs, getCircularIndex } from '../utils';\nimport { useAccordionContext, useAccordionItemContext } from './context';\nimport { headerScopeQuery as scopeQuery } from './scopeQuery';\n\nexport interface AccordionHeaderProps\n extends React.HTMLAttributes<HTMLDivElement> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n}\n\nexport const AccordionHeader = forwardRef<HTMLDivElement, AccordionHeaderProps>(\n function AccordionHeader(props, forwardedRef) {\n const {\n as: Comp = 'div',\n onKeyDown,\n onClick: onClickProp,\n onFocus,\n onBlur,\n ...otherProps\n } = props;\n const accordionContext = useAccordionContext();\n const accordionItemContext = useAccordionItemContext();\n const ref = useRef<HTMLDivElement>();\n const [index, setIndex] = useState<number | undefined>();\n\n if (!accordionItemContext) {\n throw new Error('Missing parent <Accordion /> component');\n }\n\n useEffect(() => {\n if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\n\n const index = allHeaders.findIndex((e) => e === ref.current);\n setIndex(index);\n }\n }, [accordionContext]);\n\n const onClick = wrapEvent(\n onClickProp,\n (e: React.MouseEvent<HTMLDivElement>) => {\n let index = 0;\n if (accordionItemContext.expanded) {\n index = -1;\n } else if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery) || [];\n\n index = allHeaders.findIndex((e) => e === ref.current);\n if (index === accordionContext.expandedIndex) {\n index = -1;\n }\n accordionContext.onChange && accordionContext.onChange(e, index);\n }\n\n accordionItemContext.onChange &&\n accordionItemContext.onChange(e, index >= 0);\n }\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n switch (e.key) {\n case 'Enter':\n case ' ': {\n onClick(e as unknown as React.MouseEvent<HTMLDivElement>);\n e.preventDefault();\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End': {\n if (!accordionContext) {\n return;\n }\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery);\n\n e.preventDefault();\n\n if (allHeaders.length === 0) {\n return;\n }\n\n let nextIndex = allHeaders.findIndex((e) => e === ref.current);\n switch (e.key) {\n case 'ArrowUp':\n nextIndex += -1;\n break;\n case 'ArrowDown':\n nextIndex += +1;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = -1;\n break;\n }\n\n // We're sure it will not be null, because we already checked for allHeaders.length > 0 above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n nextIndex = getCircularIndex(nextIndex, allHeaders.length)!;\n allHeaders[nextIndex] && allHeaders[nextIndex].focus();\n break;\n }\n default:\n return;\n }\n };\n\n const handleFocus = () => {\n if (accordionContext) {\n if (!accordionContext.childrenHeaderHasFocus) {\n // this is needed to avoid rerendering the parent and\n // messing up with the internal count for children/parent count\n accordionContext.setChildrenHeaderHasFocus(true);\n }\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n if (accordionContext) {\n const allHeaders =\n accordionContext.scope.current.queryAllNodes(scopeQuery);\n const newFocusIsHeader =\n allHeaders.findIndex((header) => header === e.relatedTarget) >= 0;\n\n // only remove focus flag if the focus went to some element\n // that is not an accordion header\n if (!newFocusIsHeader) {\n accordionContext.setChildrenHeaderHasFocus(false);\n }\n }\n };\n\n const expanded = Boolean(\n accordionItemContext.expanded ||\n (accordionContext && accordionContext.expandedIndex === index)\n );\n\n return (\n <Comp\n ref={assignMultipleRefs(ref, forwardedRef)}\n {...otherProps}\n id={accordionItemContext.headerId}\n aria-controls={accordionItemContext.bodyId}\n role=\"button\"\n data-accordion-header=\"\"\n tabIndex=\"0\"\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n onFocus={wrapEvent(onFocus, handleFocus)}\n onBlur={wrapEvent(onBlur, handleBlur)}\n onClick={onClick}\n aria-expanded={String(expanded)}\n />\n );\n }\n);\n"],"file":"AccordionHeader.js"}
@@ -1,4 +1,4 @@
1
- import type * as React from 'react';
1
+ import * as React from 'react';
2
2
  export interface AccordionItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
3
  as?: React.ElementType<any>;
4
4
  innerAs?: React.ElementType<any>;
@@ -1,24 +1,25 @@
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 { Fragment, forwardRef, useId } from 'react';
4
+ import * as React from 'react';
4
5
  import { AccordionItemProvider } from './context';
5
6
  import { jsx as _jsx } from "react/jsx-runtime";
6
- export const AccordionItem = /*#__PURE__*/forwardRef(function AccordionItem(props, forwardedRef) {
7
- const {
8
- as: Comp = Fragment,
9
- expanded = false,
10
- onChange
11
- } = props,
12
- otherProps = _objectWithoutPropertiesLoose(props, ["as", "expanded", "onChange"]);
7
+ export var AccordionItem = /*#__PURE__*/forwardRef(function AccordionItem(props, forwardedRef) {
8
+ var _props$as = props.as,
9
+ Comp = _props$as === void 0 ? Fragment : _props$as,
10
+ _props$expanded = props.expanded,
11
+ expanded = _props$expanded === void 0 ? false : _props$expanded,
12
+ onChange = props.onChange,
13
+ otherProps = _objectWithoutProperties(props, ["as", "expanded", "onChange"]);
13
14
 
14
- const id = useId();
15
- const headerId = id ? "accordion-header-".concat(id) : undefined;
16
- const bodyId = id ? "accordion-body-".concat(id) : undefined;
17
- const contextValue = {
18
- headerId,
19
- bodyId,
20
- expanded,
21
- onChange
15
+ var id = useId();
16
+ var headerId = id ? "accordion-header-".concat(id) : undefined;
17
+ var bodyId = id ? "accordion-body-".concat(id) : undefined;
18
+ var contextValue = {
19
+ headerId: headerId,
20
+ bodyId: bodyId,
21
+ expanded: expanded,
22
+ onChange: onChange
22
23
  };
23
24
  return /*#__PURE__*/_jsx(AccordionItemProvider, {
24
25
  value: contextValue,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Accordion/AccordionItem.tsx"],"names":["Fragment","forwardRef","useId","AccordionItemProvider","AccordionItem","props","forwardedRef","as","Comp","expanded","onChange","otherProps","id","headerId","undefined","bodyId","contextValue"],"mappings":";;AAAA,SAASA,QAAT,EAAmBC,UAAnB,EAA+BC,KAA/B,QAA4C,OAA5C;AAEA,SAAoCC,qBAApC,QAAiE,WAAjE;;AAcA,OAAO,MAAMC,aAAa,gBAAGH,UAAU,CACrC,SAASG,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;AAC1C,QAAM;AACJC,IAAAA,EAAE,EAAEC,IAAI,GAAGR,QADP;AAEJS,IAAAA,QAAQ,GAAG,KAFP;AAGJC,IAAAA;AAHI,MAKFL,KALJ;AAAA,QAIKM,UAJL,iCAKIN,KALJ;;AAMA,QAAMO,EAAE,GAAGV,KAAK,EAAhB;AAEA,QAAMW,QAAQ,GAAGD,EAAE,8BAAuBA,EAAvB,IAA8BE,SAAjD;AACA,QAAMC,MAAM,GAAGH,EAAE,4BAAqBA,EAArB,IAA4BE,SAA7C;AACA,QAAME,YAAuC,GAAG;AAC9CH,IAAAA,QAD8C;AAE9CE,IAAAA,MAF8C;AAG9CN,IAAAA,QAH8C;AAI9CC,IAAAA;AAJ8C,GAAhD;AAOA,sBACE,KAAC,qBAAD;AAAuB,IAAA,KAAK,EAAEM,YAA9B;AAAA,2BACE,KAAC,IAAD;AAAM,MAAA,GAAG,EAAEV;AAAX,OAA6BK,UAA7B;AADF,IADF;AAKD,CAxBoC,CAAhC","sourcesContent":["import { Fragment, forwardRef, useId } from 'react';\nimport type * as React from 'react';\nimport { AccordionItemContextProps, AccordionItemProvider } from './context';\n\nexport interface AccordionItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n expanded?: boolean;\n onChange?: (\n e: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>,\n value: boolean\n ) => void;\n}\n\nexport const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(\n function AccordionItem(props, forwardedRef) {\n const {\n as: Comp = Fragment,\n expanded = false,\n onChange,\n ...otherProps\n } = props;\n const id = useId();\n\n const headerId = id ? `accordion-header-${id}` : undefined;\n const bodyId = id ? `accordion-body-${id}` : undefined;\n const contextValue: AccordionItemContextProps = {\n headerId,\n bodyId,\n expanded,\n onChange,\n };\n\n return (\n <AccordionItemProvider value={contextValue}>\n <Comp ref={forwardedRef} {...otherProps} />\n </AccordionItemProvider>\n );\n }\n);\n"],"file":"AccordionItem.js"}
1
+ {"version":3,"sources":["../../../src/Accordion/AccordionItem.tsx"],"names":["Fragment","forwardRef","useId","React","AccordionItemProvider","AccordionItem","props","forwardedRef","as","Comp","expanded","onChange","otherProps","id","headerId","undefined","bodyId","contextValue"],"mappings":";;AAAA,SAASA,QAAT,EAAmBC,UAAnB,EAA+BC,KAA/B,QAA4C,OAA5C;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAGA,SAASC,qBAAT,QAAsC,WAAtC;;AAcA,OAAO,IAAMC,aAAa,gBAAGJ,UAAU,CACrC,SAASI,aAAT,CAAuBC,KAAvB,EAA8BC,YAA9B,EAA4C;AAAA,kBAMtCD,KANsC,CAExCE,EAFwC;AAAA,MAEpCC,IAFoC,0BAE7BT,QAF6B;AAAA,wBAMtCM,KANsC,CAGxCI,QAHwC;AAAA,MAGxCA,QAHwC,gCAG7B,KAH6B;AAAA,MAIxCC,QAJwC,GAMtCL,KANsC,CAIxCK,QAJwC;AAAA,MAKrCC,UALqC,4BAMtCN,KANsC;;AAO1C,MAAMO,EAAE,GAAGX,KAAK,EAAhB;AAEA,MAAMY,QAAQ,GAAGD,EAAE,8BAAuBA,EAAvB,IAA8BE,SAAjD;AACA,MAAMC,MAAM,GAAGH,EAAE,4BAAqBA,EAArB,IAA4BE,SAA7C;AACA,MAAME,YAAuC,GAAG;AAC9CH,IAAAA,QAAQ,EAARA,QAD8C;AAE9CE,IAAAA,MAAM,EAANA,MAF8C;AAG9CN,IAAAA,QAAQ,EAARA,QAH8C;AAI9CC,IAAAA,QAAQ,EAARA;AAJ8C,GAAhD;AAOA,sBACE,KAAC,qBAAD;AAAuB,IAAA,KAAK,EAAEM,YAA9B;AAAA,2BACE,KAAC,IAAD;AAAM,MAAA,GAAG,EAAEV;AAAX,OAA6BK,UAA7B;AADF,IADF;AAKD,CAxBoC,CAAhC","sourcesContent":["import { Fragment, forwardRef, useId } from 'react';\nimport * as React from 'react';\n\nimport type { AccordionItemContextProps } from './context';\nimport { AccordionItemProvider } from './context';\n\nexport interface AccordionItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n expanded?: boolean;\n onChange?: (\n e: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>,\n value: boolean\n ) => void;\n}\n\nexport const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(\n function AccordionItem(props, forwardedRef) {\n const {\n as: Comp = Fragment,\n expanded = false,\n onChange,\n ...otherProps\n } = props;\n const id = useId();\n\n const headerId = id ? `accordion-header-${id}` : undefined;\n const bodyId = id ? `accordion-body-${id}` : undefined;\n const contextValue: AccordionItemContextProps = {\n headerId,\n bodyId,\n expanded,\n onChange,\n };\n\n return (\n <AccordionItemProvider value={contextValue}>\n <Comp ref={forwardedRef} {...otherProps} />\n </AccordionItemProvider>\n );\n }\n);\n"],"file":"AccordionItem.js"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Scope } from '../hooks/useScope';
2
+ import type { Scope } from '../hooks/useScope';
3
3
  export interface AccordionContextProps {
4
4
  childrenHeaderHasFocus: boolean;
5
5
  setChildrenHeaderHasFocus: (value: boolean) => void;
@@ -1,13 +1,15 @@
1
1
  import { useContext, createContext } from 'react';
2
- const accordionContext = /*#__PURE__*/createContext(null);
3
- export const {
4
- Provider: AccordionProvider
5
- } = accordionContext;
6
- export const useAccordionContext = () => useContext(accordionContext); // Accordion Component
2
+ var accordionContext = /*#__PURE__*/createContext(null);
3
+ var AccordionProvider = accordionContext.Provider;
4
+ export { AccordionProvider };
5
+ export var useAccordionContext = function useAccordionContext() {
6
+ return useContext(accordionContext);
7
+ }; // Accordion Component
7
8
 
8
- const accordionItemContext = /*#__PURE__*/createContext(null);
9
- export const {
10
- Provider: AccordionItemProvider
11
- } = accordionItemContext;
12
- export const useAccordionItemContext = () => useContext(accordionItemContext);
9
+ var accordionItemContext = /*#__PURE__*/createContext(null);
10
+ var AccordionItemProvider = accordionItemContext.Provider;
11
+ export { AccordionItemProvider };
12
+ export var useAccordionItemContext = function useAccordionItemContext() {
13
+ return useContext(accordionItemContext);
14
+ };
13
15
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Accordion/context.ts"],"names":["useContext","createContext","accordionContext","Provider","AccordionProvider","useAccordionContext","accordionItemContext","AccordionItemProvider","useAccordionItemContext"],"mappings":"AAAA,SAASA,UAAT,EAAqBC,aAArB,QAA0C,OAA1C;AAeA,MAAMC,gBAAgB,gBAAGD,aAAa,CAA+B,IAA/B,CAAtC;AACA,OAAO,MAAM;AAAEE,EAAAA,QAAQ,EAAEC;AAAZ,IAAkCF,gBAAxC;AACP,OAAO,MAAMG,mBAAmB,GAAG,MAAML,UAAU,CAACE,gBAAD,CAA5C,C,CAEP;;AAWA,MAAMI,oBAAoB,gBAAGL,aAAa,CACxC,IADwC,CAA1C;AAGA,OAAO,MAAM;AAAEE,EAAAA,QAAQ,EAAEI;AAAZ,IAAsCD,oBAA5C;AACP,OAAO,MAAME,uBAAuB,GAAG,MAAMR,UAAU,CAACM,oBAAD,CAAhD","sourcesContent":["import { useContext, createContext } from 'react';\nimport { Scope } from '../hooks/useScope';\n\n// AccordionGroup Component\nexport interface AccordionContextProps {\n childrenHeaderHasFocus: boolean;\n setChildrenHeaderHasFocus: (value: boolean) => void;\n scope: Scope<HTMLElement>;\n expandedIndex: number;\n onChange?: (\n e: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>,\n index: number\n ) => void;\n}\n\nconst accordionContext = createContext<AccordionContextProps | null>(null);\nexport const { Provider: AccordionProvider } = accordionContext;\nexport const useAccordionContext = () => useContext(accordionContext);\n\n// Accordion Component\nexport interface AccordionItemContextProps {\n headerId: string | undefined;\n bodyId: string | undefined;\n expanded: boolean;\n onChange?: (\n e: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>,\n value: boolean\n ) => void;\n}\n\nconst accordionItemContext = createContext<AccordionItemContextProps | null>(\n null\n);\nexport const { Provider: AccordionItemProvider } = accordionItemContext;\nexport const useAccordionItemContext = () => useContext(accordionItemContext);\n"],"file":"context.js"}
1
+ {"version":3,"sources":["../../../src/Accordion/context.ts"],"names":["useContext","createContext","accordionContext","AccordionProvider","Provider","useAccordionContext","accordionItemContext","AccordionItemProvider","useAccordionItemContext"],"mappings":"AAAA,SAASA,UAAT,EAAqBC,aAArB,QAA0C,OAA1C;AAgBA,IAAMC,gBAAgB,gBAAGD,aAAa,CAA+B,IAA/B,CAAtC;IACyBE,iB,GAAsBD,gB,CAAhCE,Q;;AACf,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,SAAML,UAAU,CAACE,gBAAD,CAAhB;AAAA,CAA5B,C,CAEP;;AAWA,IAAMI,oBAAoB,gBAAGL,aAAa,CACxC,IADwC,CAA1C;IAGyBM,qB,GAA0BD,oB,CAApCF,Q;;AACf,OAAO,IAAMI,uBAAuB,GAAG,SAA1BA,uBAA0B;AAAA,SAAMR,UAAU,CAACM,oBAAD,CAAhB;AAAA,CAAhC","sourcesContent":["import { useContext, createContext } from 'react';\n\nimport type { Scope } from '../hooks/useScope';\n\n// AccordionGroup Component\nexport interface AccordionContextProps {\n childrenHeaderHasFocus: boolean;\n setChildrenHeaderHasFocus: (value: boolean) => void;\n scope: Scope<HTMLElement>;\n expandedIndex: number;\n onChange?: (\n e: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>,\n index: number\n ) => void;\n}\n\nconst accordionContext = createContext<AccordionContextProps | null>(null);\nexport const { Provider: AccordionProvider } = accordionContext;\nexport const useAccordionContext = () => useContext(accordionContext);\n\n// Accordion Component\nexport interface AccordionItemContextProps {\n headerId: string | undefined;\n bodyId: string | undefined;\n expanded: boolean;\n onChange?: (\n e: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>,\n value: boolean\n ) => void;\n}\n\nconst accordionItemContext = createContext<AccordionItemContextProps | null>(\n null\n);\nexport const { Provider: AccordionItemProvider } = accordionItemContext;\nexport const useAccordionItemContext = () => useContext(accordionItemContext);\n"],"file":"context.js"}
@@ -1,4 +1,4 @@
1
- import type * as React from 'react';
1
+ import * as React from 'react';
2
2
  export interface CheckBoxProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
3
  as?: React.ElementType<any>;
4
4
  innerAs?: React.ElementType<any>;
@@ -1,20 +1,28 @@
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 } from 'react';
5
+ import * as React from 'react';
4
6
  import { useControlledState } from '../hooks';
5
7
  import { jsx as _jsx } from "react/jsx-runtime";
6
- export const CheckBox = /*#__PURE__*/forwardRef(function CheckBox(props, forwardedRef) {
7
- const {
8
- as: Comp = 'input',
9
- checked: checkedProp,
10
- defaultChecked = false,
11
- onChange: onChangeProp
12
- } = props,
13
- otherProps = _objectWithoutPropertiesLoose(props, ["as", "checked", "defaultChecked", "onChange"]);
8
+ export var CheckBox = /*#__PURE__*/forwardRef(function CheckBox(props, forwardedRef) {
9
+ var _props$as = props.as,
10
+ Comp = _props$as === void 0 ? 'input' : _props$as,
11
+ checkedProp = props.checked,
12
+ _props$defaultChecked = props.defaultChecked,
13
+ defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,
14
+ onChangeProp = props.onChange,
15
+ otherProps = _objectWithoutProperties(props, ["as", "checked", "defaultChecked", "onChange"]);
16
+
17
+ var _useControlledState = useControlledState(checkedProp, onChangeProp, defaultChecked, function (setValue) {
18
+ return function (e) {
19
+ setValue(e.target.checked);
20
+ };
21
+ }),
22
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
23
+ checked = _useControlledState2[0],
24
+ onChange = _useControlledState2[1];
14
25
 
15
- const [checked, onChange] = useControlledState(checkedProp, onChangeProp, defaultChecked, setValue => e => {
16
- setValue(e.target.checked);
17
- });
18
26
  return /*#__PURE__*/_jsx(Comp, _extends({
19
27
  ref: forwardedRef,
20
28
  type: "checkbox",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/CheckBox/CheckBox.tsx"],"names":["forwardRef","useControlledState","CheckBox","props","forwardedRef","as","Comp","checked","checkedProp","defaultChecked","onChange","onChangeProp","otherProps","setValue","e","target"],"mappings":";;AAAA,SAASA,UAAT,QAA2B,OAA3B;AAEA,SAASC,kBAAT,QAAmC,UAAnC;;AASA,OAAO,MAAMC,QAAQ,gBAAGF,UAAU,CAChC,SAASE,QAAT,CAAkBC,KAAlB,EAAyBC,YAAzB,EAAuC;AACrC,QAAM;AACJC,IAAAA,EAAE,EAAEC,IAAI,GAAG,OADP;AAEJC,IAAAA,OAAO,EAAEC,WAFL;AAGJC,IAAAA,cAAc,GAAG,KAHb;AAIJC,IAAAA,QAAQ,EAAEC;AAJN,MAMFR,KANJ;AAAA,QAKKS,UALL,iCAMIT,KANJ;;AAOA,QAAM,CAACI,OAAD,EAAUG,QAAV,IAAsBT,kBAAkB,CAC5CO,WAD4C,EAE5CG,YAF4C,EAG5CF,cAH4C,EAI3CI,QAAD,IAAeC,CAAD,IAAO;AACnBD,IAAAA,QAAQ,CAACC,CAAC,CAACC,MAAF,CAASR,OAAV,CAAR;AACD,GAN2C,CAA9C;AASA,sBACE,KAAC,IAAD;AACE,IAAA,GAAG,EAAEH,YADP;AAEE,IAAA,IAAI,EAAC,UAFP;AAGE,IAAA,OAAO,EAAEG,OAHX;AAIE,oBAAcA,OAJhB;AAKE,IAAA,QAAQ,EAAEG;AALZ,KAMME,UANN,EADF;AAUD,CA5B+B,CAA3B","sourcesContent":["import { forwardRef } from 'react';\nimport type * as React from 'react';\nimport { useControlledState } from '../hooks';\n\nexport interface CheckBoxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n}\n\nexport const CheckBox = forwardRef<HTMLInputElement, CheckBoxProps>(\n function CheckBox(props, forwardedRef) {\n const {\n as: Comp = 'input',\n checked: checkedProp,\n defaultChecked = false,\n onChange: onChangeProp,\n ...otherProps\n } = props;\n const [checked, onChange] = useControlledState(\n checkedProp,\n onChangeProp,\n defaultChecked,\n (setValue) => (e) => {\n setValue(e.target.checked);\n }\n );\n\n return (\n <Comp\n ref={forwardedRef}\n type=\"checkbox\"\n checked={checked}\n aria-checked={checked}\n onChange={onChange}\n {...otherProps}\n />\n );\n }\n);\n"],"file":"CheckBox.js"}
1
+ {"version":3,"sources":["../../../src/CheckBox/CheckBox.tsx"],"names":["forwardRef","React","useControlledState","CheckBox","props","forwardedRef","as","Comp","checkedProp","checked","defaultChecked","onChangeProp","onChange","otherProps","setValue","e","target"],"mappings":";;;AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAEA,SAASC,kBAAT,QAAmC,UAAnC;;AASA,OAAO,IAAMC,QAAQ,gBAAGH,UAAU,CAChC,SAASG,QAAT,CAAkBC,KAAlB,EAAyBC,YAAzB,EAAuC;AAAA,kBAOjCD,KAPiC,CAEnCE,EAFmC;AAAA,MAE/BC,IAF+B,0BAExB,OAFwB;AAAA,MAG1BC,WAH0B,GAOjCJ,KAPiC,CAGnCK,OAHmC;AAAA,8BAOjCL,KAPiC,CAInCM,cAJmC;AAAA,MAInCA,cAJmC,sCAIlB,KAJkB;AAAA,MAKzBC,YALyB,GAOjCP,KAPiC,CAKnCQ,QALmC;AAAA,MAMhCC,UANgC,4BAOjCT,KAPiC;;AAAA,4BAQTF,kBAAkB,CAC5CM,WAD4C,EAE5CG,YAF4C,EAG5CD,cAH4C,EAI5C,UAACI,QAAD;AAAA,WAAc,UAACC,CAAD,EAAO;AACnBD,MAAAA,QAAQ,CAACC,CAAC,CAACC,MAAF,CAASP,OAAV,CAAR;AACD,KAFD;AAAA,GAJ4C,CART;AAAA;AAAA,MAQ9BA,OAR8B;AAAA,MAQrBG,QARqB;;AAiBrC,sBACE,KAAC,IAAD;AACE,IAAA,GAAG,EAAEP,YADP;AAEE,IAAA,IAAI,EAAC,UAFP;AAGE,IAAA,OAAO,EAAEI,OAHX;AAIE,oBAAcA,OAJhB;AAKE,IAAA,QAAQ,EAAEG;AALZ,KAMMC,UANN,EADF;AAUD,CA5B+B,CAA3B","sourcesContent":["import { forwardRef } from 'react';\nimport * as React from 'react';\n\nimport { useControlledState } from '../hooks';\n\nexport interface CheckBoxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n children?: React.ReactNode;\n}\n\nexport const CheckBox = forwardRef<HTMLInputElement, CheckBoxProps>(\n function CheckBox(props, forwardedRef) {\n const {\n as: Comp = 'input',\n checked: checkedProp,\n defaultChecked = false,\n onChange: onChangeProp,\n ...otherProps\n } = props;\n const [checked, onChange] = useControlledState(\n checkedProp,\n onChangeProp,\n defaultChecked,\n (setValue) => (e) => {\n setValue(e.target.checked);\n }\n );\n\n return (\n <Comp\n ref={forwardedRef}\n type=\"checkbox\"\n checked={checked}\n aria-checked={checked}\n onChange={onChange}\n {...otherProps}\n />\n );\n }\n);\n"],"file":"CheckBox.js"}
@@ -1,4 +1,4 @@
1
- import type * as React from 'react';
1
+ import * as React from 'react';
2
2
  export declare type SelectEventHandler = (text: string, itemId: string, obj: any) => void;
3
3
  export declare type ComboboxProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {
4
4
  onSelect?: SelectEventHandler;
@@ -1,50 +1,49 @@
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, useRef, useMemo, useId } from 'react';
5
+ import * as React from 'react';
4
6
  import { stateChart, comboboxReducer, isVisible, INIT } from './hooks';
5
7
  import { ComboBoxProvider } from './context';
6
8
  import { useReducerMachine } from '../hooks/useReducerMachine';
7
9
  import { getScope } from '../hooks';
8
10
  import { jsx as _jsx } from "react/jsx-runtime";
9
- export const Combobox = /*#__PURE__*/forwardRef(function Combobox(_ref, ref) {
10
- let {
11
- // Called whenever the user selects an item from the list
12
- onSelect,
13
- // opens the list when the input receives focused (but only if there are
14
- // items in the list)
15
- openOnFocus = false,
16
- // if set to true, it will select an item after blurring
17
- selectOnBlur = false,
18
- children,
19
- as: Comp = 'div',
20
- innerAs
21
- } = _ref,
22
- rest = _objectWithoutPropertiesLoose(_ref, ["onSelect", "openOnFocus", "selectOnBlur", "children", "as", "innerAs"]);
11
+ export var Combobox = /*#__PURE__*/forwardRef(function Combobox(_ref, ref) {
12
+ var onSelect = _ref.onSelect,
13
+ _ref$openOnFocus = _ref.openOnFocus,
14
+ openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
15
+ _ref$selectOnBlur = _ref.selectOnBlur,
16
+ selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
17
+ children = _ref.children,
18
+ _ref$as = _ref.as,
19
+ Comp = _ref$as === void 0 ? 'div' : _ref$as,
20
+ innerAs = _ref.innerAs,
21
+ rest = _objectWithoutProperties(_ref, ["onSelect", "openOnFocus", "selectOnBlur", "children", "as", "innerAs"]);
23
22
 
24
23
  // We store the values of all the ComboboxOptions on this ref. This makes it
25
24
  // possible to perform the keyboard navigation from the input on the list. We
26
25
  // manipulate this array through context so that we don't have to enforce a
27
26
  // parent/child relationship between ComboboxList and ComboboxOption.
28
- const optionsRef = useRef({});
29
- const listScope = useRef(getScope({
27
+ var optionsRef = useRef({});
28
+ var listScope = useRef(getScope({
30
29
  current: null
31
30
  })); // Need this to focus it
32
31
 
33
- const inputRef = useRef(null);
34
- const popoverRef = useRef(null);
35
- const buttonRef = useRef(null); // When <ComboboxInput autocomplete={false} /> we don't want cycle back to
32
+ var inputRef = useRef(null);
33
+ var popoverRef = useRef(null);
34
+ var buttonRef = useRef(null); // When <ComboboxInput autocomplete={false} /> we don't want cycle back to
36
35
  // the user's value while navigating (because it's always the user's value),
37
36
  // but we need to know this in useKeyDown which is far away from the prop
38
37
  // here, so we do something sneaky and write it to this ref on context so we
39
38
  // can use it anywhere else 😛. Another new trick for me and I'm excited
40
39
  // about this one too!
41
40
 
42
- const autocompletePropRef = useRef(false);
43
- const persistSelectionRef = useRef(false);
44
- const clearOnEscapeRef = useRef(false);
45
- const listboxIdRef = useRef();
46
- const labelIdRef = useRef();
47
- const defaultData = {
41
+ var autocompletePropRef = useRef(false);
42
+ var persistSelectionRef = useRef(false);
43
+ var clearOnEscapeRef = useRef(false);
44
+ var listboxIdRef = useRef();
45
+ var labelIdRef = useRef();
46
+ var defaultData = {
48
47
  // initial state
49
48
  state: stateChart.initial,
50
49
  // the value the user has typed, we derived this also when the developer is
@@ -58,28 +57,36 @@ export const Combobox = /*#__PURE__*/forwardRef(function Combobox(_ref, ref) {
58
57
  // the last submitted action
59
58
  lastActionType: INIT
60
59
  };
61
- const [state, data, transition] = useReducerMachine(stateChart, comboboxReducer, defaultData);
60
+
61
+ var _useReducerMachine = useReducerMachine(stateChart, comboboxReducer, defaultData),
62
+ _useReducerMachine2 = _slicedToArray(_useReducerMachine, 3),
63
+ state = _useReducerMachine2[0],
64
+ data = _useReducerMachine2[1],
65
+ transition = _useReducerMachine2[2];
66
+
62
67
  listboxIdRef.current = useId();
63
68
  labelIdRef.current = useId();
64
- const context = useMemo(() => ({
65
- data,
66
- inputRef,
67
- popoverRef,
68
- buttonRef,
69
- onSelect,
70
- optionsRef,
71
- listScope,
72
- state,
73
- transition,
74
- listboxIdRef,
75
- labelIdRef,
76
- autocompletePropRef,
77
- persistSelectionRef,
78
- clearOnEscapeRef,
79
- isVisible: isVisible(state),
80
- openOnFocus,
81
- selectOnBlur
82
- }), [data, onSelect, listScope, state, transition, openOnFocus, selectOnBlur]);
69
+ var context = useMemo(function () {
70
+ return {
71
+ data: data,
72
+ inputRef: inputRef,
73
+ popoverRef: popoverRef,
74
+ buttonRef: buttonRef,
75
+ onSelect: onSelect,
76
+ optionsRef: optionsRef,
77
+ listScope: listScope,
78
+ state: state,
79
+ transition: transition,
80
+ listboxIdRef: listboxIdRef,
81
+ labelIdRef: labelIdRef,
82
+ autocompletePropRef: autocompletePropRef,
83
+ persistSelectionRef: persistSelectionRef,
84
+ clearOnEscapeRef: clearOnEscapeRef,
85
+ isVisible: isVisible(state),
86
+ openOnFocus: openOnFocus,
87
+ selectOnBlur: selectOnBlur
88
+ };
89
+ }, [data, onSelect, listScope, state, transition, openOnFocus, selectOnBlur]);
83
90
  return /*#__PURE__*/_jsx(ComboBoxProvider, {
84
91
  value: context,
85
92
  children: /*#__PURE__*/_jsx(Comp, _extends({}, rest, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ComboBox/Combobox.tsx"],"names":["forwardRef","useRef","useMemo","useId","stateChart","comboboxReducer","isVisible","INIT","ComboBoxProvider","useReducerMachine","getScope","Combobox","ref","onSelect","openOnFocus","selectOnBlur","children","as","Comp","innerAs","rest","optionsRef","listScope","current","inputRef","popoverRef","buttonRef","autocompletePropRef","persistSelectionRef","clearOnEscapeRef","listboxIdRef","labelIdRef","defaultData","state","initial","text","item","navigationItem","lastActionType","data","transition","context"],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useMemo, useId } from 'react';\nimport type * as React from 'react';\nimport {\n stateChart,\n comboboxReducer,\n isVisible,\n INIT,\n ActionTypes,\n} from './hooks';\nimport { ComboBoxProvider, ComboBoxContextProps } from './context';\nimport { useReducerMachine } from '../hooks/useReducerMachine';\nimport { Scope, getScope } from '../hooks';\n\nexport type SelectEventHandler = (\n text: string,\n itemId: string,\n obj: any\n) => void;\n\nexport type ComboboxProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onSelect'\n> & {\n onSelect?: SelectEventHandler;\n openOnFocus?: boolean;\n selectOnBlur?: boolean;\n children?: React.ReactNode;\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n};\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>(\n function Combobox(\n {\n // Called whenever the user selects an item from the list\n onSelect,\n\n // opens the list when the input receives focused (but only if there are\n // items in the list)\n openOnFocus = false,\n\n // if set to true, it will select an item after blurring\n selectOnBlur = false,\n\n children,\n as: Comp = 'div',\n innerAs,\n ...rest\n }: ComboboxProps,\n ref\n ) {\n // We store the values of all the ComboboxOptions on this ref. This makes it\n // possible to perform the keyboard navigation from the input on the list. We\n // manipulate this array through context so that we don't have to enforce a\n // parent/child relationship between ComboboxList and ComboboxOption.\n const optionsRef = useRef<{\n [itemId: string]: {\n value: string | unknown;\n text: string;\n };\n }>({});\n\n const listScope: Scope<HTMLElement> = useRef(getScope({ current: null }));\n\n // Need this to focus it\n const inputRef = useRef<HTMLInputElement>(null);\n\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // When <ComboboxInput autocomplete={false} /> we don't want cycle back to\n // the user's value while navigating (because it's always the user's value),\n // but we need to know this in useKeyDown which is far away from the prop\n // here, so we do something sneaky and write it to this ref on context so we\n // can use it anywhere else 😛. Another new trick for me and I'm excited\n // about this one too!\n const autocompletePropRef = useRef<boolean>(false);\n\n const persistSelectionRef = useRef<boolean>(false);\n\n const clearOnEscapeRef = useRef<boolean>(false);\n\n const listboxIdRef = useRef<string | undefined>();\n\n const labelIdRef = useRef<string | undefined>();\n\n const defaultData = {\n // initial state\n state: stateChart.initial,\n // the value the user has typed, we derived this also when the developer is\n // controlling the value of ComboboxInput\n text: '',\n // the index the user has typed, we derived this also when the developer is\n // controlling the value of ComboboxInput\n item: '',\n // the hash of the currently navigated item\n navigationItem: '',\n // the last submitted action\n lastActionType: INIT as ActionTypes,\n };\n\n const [state, data, transition] = useReducerMachine(\n stateChart,\n comboboxReducer,\n defaultData\n );\n\n listboxIdRef.current = useId();\n\n labelIdRef.current = useId();\n\n const context = useMemo(\n (): ComboBoxContextProps => ({\n data,\n inputRef,\n popoverRef,\n buttonRef,\n onSelect,\n optionsRef,\n listScope,\n state,\n transition,\n listboxIdRef,\n labelIdRef,\n autocompletePropRef,\n persistSelectionRef,\n clearOnEscapeRef,\n isVisible: isVisible(state),\n openOnFocus,\n selectOnBlur,\n }),\n [data, onSelect, listScope, state, transition, openOnFocus, selectOnBlur]\n );\n\n return (\n <ComboBoxProvider value={context}>\n <Comp\n {...rest}\n as={innerAs}\n data-reach-combobox=\"\"\n ref={ref}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={listboxIdRef.current}\n aria-expanded={context.isVisible}\n >\n {children}\n </Comp>\n </ComboBoxProvider>\n );\n }\n);\n"],"file":"Combobox.js"}
1
+ {"version":3,"sources":["../../../src/ComboBox/Combobox.tsx"],"names":["forwardRef","useRef","useMemo","useId","React","stateChart","comboboxReducer","isVisible","INIT","ComboBoxProvider","useReducerMachine","getScope","Combobox","ref","onSelect","openOnFocus","selectOnBlur","children","as","Comp","innerAs","rest","optionsRef","listScope","current","inputRef","popoverRef","buttonRef","autocompletePropRef","persistSelectionRef","clearOnEscapeRef","listboxIdRef","labelIdRef","defaultData","state","initial","text","item","navigationItem","lastActionType","data","transition","context"],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useMemo, useId } from 'react';\nimport * as React from 'react';\n\nimport type { ActionTypes } from './hooks';\nimport { stateChart, comboboxReducer, isVisible, INIT } from './hooks';\nimport type { ComboBoxContextProps } from './context';\nimport { ComboBoxProvider } from './context';\nimport { useReducerMachine } from '../hooks/useReducerMachine';\nimport type { Scope } from '../hooks';\nimport { getScope } from '../hooks';\n\nexport type SelectEventHandler = (\n text: string,\n itemId: string,\n obj: any\n) => void;\n\nexport type ComboboxProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onSelect'\n> & {\n onSelect?: SelectEventHandler;\n openOnFocus?: boolean;\n selectOnBlur?: boolean;\n children?: React.ReactNode;\n as?: React.ElementType<any>;\n innerAs?: React.ElementType<any>;\n};\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>(\n function Combobox(\n {\n // Called whenever the user selects an item from the list\n onSelect,\n\n // opens the list when the input receives focused (but only if there are\n // items in the list)\n openOnFocus = false,\n\n // if set to true, it will select an item after blurring\n selectOnBlur = false,\n\n children,\n as: Comp = 'div',\n innerAs,\n ...rest\n }: ComboboxProps,\n ref\n ) {\n // We store the values of all the ComboboxOptions on this ref. This makes it\n // possible to perform the keyboard navigation from the input on the list. We\n // manipulate this array through context so that we don't have to enforce a\n // parent/child relationship between ComboboxList and ComboboxOption.\n const optionsRef = useRef<{\n [itemId: string]: {\n value: string | unknown;\n text: string;\n };\n }>({});\n\n const listScope: Scope<HTMLElement> = useRef(getScope({ current: null }));\n\n // Need this to focus it\n const inputRef = useRef<HTMLInputElement>(null);\n\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // When <ComboboxInput autocomplete={false} /> we don't want cycle back to\n // the user's value while navigating (because it's always the user's value),\n // but we need to know this in useKeyDown which is far away from the prop\n // here, so we do something sneaky and write it to this ref on context so we\n // can use it anywhere else 😛. Another new trick for me and I'm excited\n // about this one too!\n const autocompletePropRef = useRef<boolean>(false);\n\n const persistSelectionRef = useRef<boolean>(false);\n\n const clearOnEscapeRef = useRef<boolean>(false);\n\n const listboxIdRef = useRef<string | undefined>();\n\n const labelIdRef = useRef<string | undefined>();\n\n const defaultData = {\n // initial state\n state: stateChart.initial,\n // the value the user has typed, we derived this also when the developer is\n // controlling the value of ComboboxInput\n text: '',\n // the index the user has typed, we derived this also when the developer is\n // controlling the value of ComboboxInput\n item: '',\n // the hash of the currently navigated item\n navigationItem: '',\n // the last submitted action\n lastActionType: INIT as ActionTypes,\n };\n\n const [state, data, transition] = useReducerMachine(\n stateChart,\n comboboxReducer,\n defaultData\n );\n\n listboxIdRef.current = useId();\n\n labelIdRef.current = useId();\n\n const context = useMemo(\n (): ComboBoxContextProps => ({\n data,\n inputRef,\n popoverRef,\n buttonRef,\n onSelect,\n optionsRef,\n listScope,\n state,\n transition,\n listboxIdRef,\n labelIdRef,\n autocompletePropRef,\n persistSelectionRef,\n clearOnEscapeRef,\n isVisible: isVisible(state),\n openOnFocus,\n selectOnBlur,\n }),\n [data, onSelect, listScope, state, transition, openOnFocus, selectOnBlur]\n );\n\n return (\n <ComboBoxProvider value={context}>\n <Comp\n {...rest}\n as={innerAs}\n data-reach-combobox=\"\"\n ref={ref}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={listboxIdRef.current}\n aria-expanded={context.isVisible}\n >\n {children}\n </Comp>\n </ComboBoxProvider>\n );\n }\n);\n"],"file":"Combobox.js"}
@@ -1,4 +1,4 @@
1
- import type * as React from 'react';
1
+ import * as React from 'react';
2
2
  export interface ComboboxButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
3
  as?: React.ElementType<any>;
4
4
  innerAs?: React.ElementType<any>;