@basic-ui/core 0.0.51 → 0.0.52

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 (350) hide show
  1. package/README.md +3 -3
  2. package/build/cjs/index.js +88 -88
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/esm/Accordion/Accordion.d.ts +9 -9
  5. package/build/esm/Accordion/Accordion.js.map +1 -1
  6. package/build/esm/Accordion/AccordionBody.d.ts +6 -6
  7. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  8. package/build/esm/Accordion/AccordionHeader.d.ts +7 -7
  9. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  10. package/build/esm/Accordion/AccordionItem.d.ts +9 -9
  11. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  12. package/build/esm/Accordion/context.d.ts +19 -19
  13. package/build/esm/Accordion/context.js.map +1 -1
  14. package/build/esm/Accordion/index.d.ts +4 -4
  15. package/build/esm/Accordion/index.js.map +1 -1
  16. package/build/esm/Accordion/scopeQuery.d.ts +2 -2
  17. package/build/esm/Accordion/scopeQuery.js.map +1 -1
  18. package/build/esm/CheckBox/CheckBox.d.ts +7 -7
  19. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  20. package/build/esm/CheckBox/index.d.ts +1 -1
  21. package/build/esm/CheckBox/index.js.map +1 -1
  22. package/build/esm/ComboBox/Combobox.d.ts +18 -18
  23. package/build/esm/ComboBox/Combobox.js.map +1 -1
  24. package/build/esm/ComboBox/ComboboxButton.d.ts +9 -9
  25. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  26. package/build/esm/ComboBox/ComboboxInput.d.ts +17 -17
  27. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  28. package/build/esm/ComboBox/ComboboxLabel.d.ts +7 -7
  29. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  30. package/build/esm/ComboBox/ComboboxList.d.ts +8 -8
  31. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  32. package/build/esm/ComboBox/ComboboxOption.d.ts +11 -11
  33. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  34. package/build/esm/ComboBox/ComboboxPopover.d.ts +9 -9
  35. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  36. package/build/esm/ComboBox/cities.d.ts +5 -5
  37. package/build/esm/ComboBox/cities.js.map +1 -1
  38. package/build/esm/ComboBox/context.d.ts +30 -30
  39. package/build/esm/ComboBox/context.js.map +1 -1
  40. package/build/esm/ComboBox/hooks.d.ts +37 -37
  41. package/build/esm/ComboBox/hooks.js.map +1 -1
  42. package/build/esm/ComboBox/index.d.ts +8 -8
  43. package/build/esm/ComboBox/index.js.map +1 -1
  44. package/build/esm/ComboBox/makeHash.d.ts +1 -1
  45. package/build/esm/ComboBox/makeHash.js.map +1 -1
  46. package/build/esm/ComboBox/scopeQuery.d.ts +1 -1
  47. package/build/esm/ComboBox/scopeQuery.js.map +1 -1
  48. package/build/esm/FocusLock/FocusLock.d.ts +9 -9
  49. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  50. package/build/esm/FocusLock/index.d.ts +1 -1
  51. package/build/esm/FocusLock/index.js.map +1 -1
  52. package/build/esm/FocusLock/tabUtils.d.ts +3 -3
  53. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  54. package/build/esm/FocusLock/useFocusLock.d.ts +7 -7
  55. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  56. package/build/esm/List/List.d.ts +7 -7
  57. package/build/esm/List/List.js.map +1 -1
  58. package/build/esm/List/ListItem.d.ts +7 -7
  59. package/build/esm/List/ListItem.js.map +1 -1
  60. package/build/esm/List/context.d.ts +4 -4
  61. package/build/esm/List/context.js.map +1 -1
  62. package/build/esm/List/index.d.ts +2 -2
  63. package/build/esm/List/index.js.map +1 -1
  64. package/build/esm/Menu/ContextMenuTrigger.d.ts +11 -11
  65. package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
  66. package/build/esm/Menu/Menu.d.ts +10 -10
  67. package/build/esm/Menu/Menu.js.map +1 -1
  68. package/build/esm/Menu/MenuButton.d.ts +11 -11
  69. package/build/esm/Menu/MenuButton.js.map +1 -1
  70. package/build/esm/Menu/MenuItem.d.ts +8 -8
  71. package/build/esm/Menu/MenuItem.js.map +1 -1
  72. package/build/esm/Menu/MenuList.d.ts +7 -7
  73. package/build/esm/Menu/MenuList.js.map +1 -1
  74. package/build/esm/Menu/MenuPopover.d.ts +8 -8
  75. package/build/esm/Menu/MenuPopover.js.map +1 -1
  76. package/build/esm/Menu/context.d.ts +25 -25
  77. package/build/esm/Menu/context.js.map +1 -1
  78. package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
  79. package/build/esm/Menu/fixtures/countryList.js.map +1 -1
  80. package/build/esm/Menu/index.d.ts +6 -6
  81. package/build/esm/Menu/index.js.map +1 -1
  82. package/build/esm/Menu/scope.d.ts +1 -1
  83. package/build/esm/Menu/scope.js.map +1 -1
  84. package/build/esm/Modal/Modal.d.ts +9 -9
  85. package/build/esm/Modal/Modal.js.map +1 -1
  86. package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
  87. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  88. package/build/esm/Modal/index.d.ts +2 -2
  89. package/build/esm/Modal/index.js.map +1 -1
  90. package/build/esm/Popper/Popper.d.ts +35 -35
  91. package/build/esm/Popper/Popper.js.map +1 -1
  92. package/build/esm/Popper/PopperArrow.d.ts +6 -6
  93. package/build/esm/Popper/PopperArrow.js.map +1 -1
  94. package/build/esm/Popper/context.d.ts +6 -6
  95. package/build/esm/Popper/context.js.map +1 -1
  96. package/build/esm/Popper/index.d.ts +3 -3
  97. package/build/esm/Popper/index.js.map +1 -1
  98. package/build/esm/Portal/Portal.d.ts +6 -6
  99. package/build/esm/Portal/Portal.js.map +1 -1
  100. package/build/esm/Portal/index.d.ts +1 -1
  101. package/build/esm/Portal/index.js.map +1 -1
  102. package/build/esm/RadioButton/RadioButton.d.ts +10 -10
  103. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  104. package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
  105. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  106. package/build/esm/RadioButton/context.d.ts +9 -9
  107. package/build/esm/RadioButton/context.js.map +1 -1
  108. package/build/esm/RadioButton/index.d.ts +2 -2
  109. package/build/esm/RadioButton/index.js.map +1 -1
  110. package/build/esm/SkipNav/SkipNav.d.ts +7 -7
  111. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  112. package/build/esm/SkipNav/index.d.ts +1 -1
  113. package/build/esm/SkipNav/index.js.map +1 -1
  114. package/build/esm/Slider/Slider.d.ts +197 -197
  115. package/build/esm/Slider/Slider.js +82 -82
  116. package/build/esm/Slider/Slider.js.map +1 -1
  117. package/build/esm/Slider/index.d.ts +1 -1
  118. package/build/esm/Slider/index.js.map +1 -1
  119. package/build/esm/Spinner/Spinner.d.ts +12 -12
  120. package/build/esm/Spinner/Spinner.js.map +1 -1
  121. package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
  122. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  123. package/build/esm/Spinner/context.d.ts +12 -12
  124. package/build/esm/Spinner/context.js.map +1 -1
  125. package/build/esm/Spinner/index.d.ts +2 -2
  126. package/build/esm/Spinner/index.js.map +1 -1
  127. package/build/esm/Tabs/Tab.d.ts +7 -7
  128. package/build/esm/Tabs/Tab.js.map +1 -1
  129. package/build/esm/Tabs/TabList.d.ts +9 -9
  130. package/build/esm/Tabs/TabList.js.map +1 -1
  131. package/build/esm/Tabs/TabPanel.d.ts +8 -8
  132. package/build/esm/Tabs/TabPanel.js.map +1 -1
  133. package/build/esm/Tabs/TabPanels.d.ts +8 -8
  134. package/build/esm/Tabs/TabPanels.js.map +1 -1
  135. package/build/esm/Tabs/Tabs.d.ts +10 -10
  136. package/build/esm/Tabs/Tabs.js.map +1 -1
  137. package/build/esm/Tabs/context.d.ts +17 -17
  138. package/build/esm/Tabs/context.js.map +1 -1
  139. package/build/esm/Tabs/index.d.ts +5 -5
  140. package/build/esm/Tabs/index.js.map +1 -1
  141. package/build/esm/Tabs/scopeQuery.d.ts +1 -1
  142. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  143. package/build/esm/Tooltip/Tooltip.d.ts +10 -10
  144. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  145. package/build/esm/Tooltip/index.d.ts +1 -1
  146. package/build/esm/Tooltip/index.js.map +1 -1
  147. package/build/esm/Tooltip/stateMachine.d.ts +28 -28
  148. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  149. package/build/esm/Tooltip/useTooltip.d.ts +10 -10
  150. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  151. package/build/esm/hooks/index.d.ts +13 -13
  152. package/build/esm/hooks/index.js.map +1 -1
  153. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  154. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  155. package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
  156. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  157. package/build/esm/hooks/useControlledState.d.ts +3 -3
  158. package/build/esm/hooks/useControlledState.js +1 -1
  159. package/build/esm/hooks/useControlledState.js.map +1 -1
  160. package/build/esm/hooks/useFocusReturn.d.ts +2 -2
  161. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  162. package/build/esm/hooks/useFocusState.d.ts +11 -11
  163. package/build/esm/hooks/useFocusState.js.map +1 -1
  164. package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
  165. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  166. package/build/esm/hooks/useMeasure.d.ts +7 -7
  167. package/build/esm/hooks/useMeasure.js.map +1 -1
  168. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  169. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  170. package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
  171. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  172. package/build/esm/hooks/useReducerMachine.d.ts +24 -24
  173. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  174. package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
  175. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  176. package/build/esm/hooks/useScope.d.ts +11 -11
  177. package/build/esm/hooks/useScope.js.map +1 -1
  178. package/build/esm/hooks/useThrottle.d.ts +1 -1
  179. package/build/esm/hooks/useThrottle.js.map +1 -1
  180. package/build/esm/index.d.ts +15 -15
  181. package/build/esm/index.js.map +1 -1
  182. package/build/esm/utils/assign-ref.d.ts +3 -3
  183. package/build/esm/utils/assign-ref.js.map +1 -1
  184. package/build/esm/utils/can-use-dom.d.ts +1 -1
  185. package/build/esm/utils/can-use-dom.js.map +1 -1
  186. package/build/esm/utils/clamp.d.ts +1 -1
  187. package/build/esm/utils/clamp.js.map +1 -1
  188. package/build/esm/utils/context.d.ts +7 -7
  189. package/build/esm/utils/context.js.map +1 -1
  190. package/build/esm/utils/create-subscription.d.ts +4 -4
  191. package/build/esm/utils/create-subscription.js.map +1 -1
  192. package/build/esm/utils/get-circular-index.d.ts +1 -1
  193. package/build/esm/utils/get-circular-index.js.map +1 -1
  194. package/build/esm/utils/index.d.ts +10 -10
  195. package/build/esm/utils/index.js.map +1 -1
  196. package/build/esm/utils/is-right-click.d.ts +6 -6
  197. package/build/esm/utils/is-right-click.js +4 -4
  198. package/build/esm/utils/is-right-click.js.map +1 -1
  199. package/build/esm/utils/owner-document.d.ts +7 -7
  200. package/build/esm/utils/owner-document.js +5 -5
  201. package/build/esm/utils/owner-document.js.map +1 -1
  202. package/build/esm/utils/polymorphic.d.ts +39 -39
  203. package/build/esm/utils/polymorphic.js.map +1 -1
  204. package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
  205. package/build/esm/utils/rubber-band-clamp.js.map +1 -1
  206. package/build/esm/utils/use-stable-callback.d.ts +16 -16
  207. package/build/esm/utils/use-stable-callback.js +16 -16
  208. package/build/esm/utils/use-stable-callback.js.map +1 -1
  209. package/build/esm/utils/wrap-event.d.ts +3 -3
  210. package/build/esm/utils/wrap-event.js.map +1 -1
  211. package/build/tsconfig-build.tsbuildinfo +1 -1
  212. package/package.json +2 -2
  213. package/src/Accordion/Accordion.story.tsx +74 -74
  214. package/src/Accordion/Accordion.tsx +59 -59
  215. package/src/Accordion/AccordionBody.tsx +52 -52
  216. package/src/Accordion/AccordionHeader.tsx +167 -167
  217. package/src/Accordion/AccordionItem.tsx +50 -50
  218. package/src/Accordion/context.ts +37 -37
  219. package/src/Accordion/index.ts +4 -4
  220. package/src/Accordion/scopeQuery.ts +7 -7
  221. package/src/Accordion/styles.css +21 -21
  222. package/src/CheckBox/CheckBox.tsx +41 -41
  223. package/src/CheckBox/index.ts +1 -1
  224. package/src/ComboBox/ComboBox.story.tsx +120 -120
  225. package/src/ComboBox/Combobox.tsx +148 -148
  226. package/src/ComboBox/ComboboxButton.tsx +61 -61
  227. package/src/ComboBox/ComboboxInput.tsx +187 -187
  228. package/src/ComboBox/ComboboxLabel.tsx +33 -33
  229. package/src/ComboBox/ComboboxList.tsx +47 -47
  230. package/src/ComboBox/ComboboxOption.tsx +111 -111
  231. package/src/ComboBox/ComboboxPopover.tsx +64 -64
  232. package/src/ComboBox/cities.ts +23194 -23194
  233. package/src/ComboBox/context.ts +35 -35
  234. package/src/ComboBox/hooks.tsx +451 -451
  235. package/src/ComboBox/index.ts +8 -8
  236. package/src/ComboBox/makeHash.ts +19 -19
  237. package/src/ComboBox/scopeQuery.ts +6 -6
  238. package/src/ComboBox/styles.css +32 -32
  239. package/src/FocusLock/FocusLock.tsx +66 -66
  240. package/src/FocusLock/index.ts +1 -1
  241. package/src/FocusLock/tabUtils.ts +40 -40
  242. package/src/FocusLock/useFocusLock.ts +56 -56
  243. package/src/List/List.story.tsx +18 -18
  244. package/src/List/List.tsx +17 -17
  245. package/src/List/ListItem.tsx +23 -23
  246. package/src/List/context.ts +19 -19
  247. package/src/List/index.ts +2 -2
  248. package/src/Menu/ContextMenu.story.tsx +73 -73
  249. package/src/Menu/ContextMenuTrigger.tsx +76 -76
  250. package/src/Menu/Menu.story.tsx +160 -160
  251. package/src/Menu/Menu.tsx +83 -83
  252. package/src/Menu/MenuButton.tsx +83 -83
  253. package/src/Menu/MenuComplex.story.tsx +58 -58
  254. package/src/Menu/MenuItem.tsx +88 -88
  255. package/src/Menu/MenuList.tsx +254 -254
  256. package/src/Menu/MenuPopover.tsx +35 -35
  257. package/src/Menu/context.ts +44 -44
  258. package/src/Menu/fixtures/countryList.ts +198 -198
  259. package/src/Menu/index.ts +6 -6
  260. package/src/Menu/scope.ts +7 -7
  261. package/src/Menu/styles.css +42 -42
  262. package/src/Modal/Modal.story.tsx +258 -258
  263. package/src/Modal/Modal.tsx +48 -48
  264. package/src/Modal/ModalBackdrop.tsx +78 -78
  265. package/src/Modal/NavDrawer.story.tsx +158 -158
  266. package/src/Modal/index.ts +2 -2
  267. package/src/Modal/styles.css +46 -46
  268. package/src/Popper/Popper.story.tsx +263 -263
  269. package/src/Popper/Popper.tsx +154 -154
  270. package/src/Popper/PopperArrow.tsx +35 -35
  271. package/src/Popper/context.ts +10 -10
  272. package/src/Popper/index.ts +3 -3
  273. package/src/Popper/styles.css +60 -60
  274. package/src/Portal/Portal.tsx +20 -20
  275. package/src/Portal/index.ts +1 -1
  276. package/src/RadioButton/RadioButton.story.tsx +77 -77
  277. package/src/RadioButton/RadioButton.tsx +55 -55
  278. package/src/RadioButton/RadioGroup.tsx +60 -60
  279. package/src/RadioButton/context.ts +17 -17
  280. package/src/RadioButton/index.ts +2 -2
  281. package/src/SkipNav/SkipNav.tsx +16 -16
  282. package/src/SkipNav/index.tsx +1 -1
  283. package/src/Slider/Slider.story.tsx +45 -45
  284. package/src/Slider/Slider.tsx +1120 -1120
  285. package/src/Slider/index.ts +1 -1
  286. package/src/Slider/styles.css +131 -131
  287. package/src/Spinner/Spinner.story.tsx +31 -31
  288. package/src/Spinner/Spinner.tsx +117 -117
  289. package/src/Spinner/SpinnerButton.tsx +54 -54
  290. package/src/Spinner/context.ts +20 -20
  291. package/src/Spinner/index.ts +2 -2
  292. package/src/Spinner/styles.css +23 -23
  293. package/src/Tabs/Tab.story.tsx +80 -80
  294. package/src/Tabs/Tab.tsx +136 -136
  295. package/src/Tabs/TabList.tsx +71 -71
  296. package/src/Tabs/TabPanel.tsx +53 -53
  297. package/src/Tabs/TabPanels.tsx +30 -30
  298. package/src/Tabs/Tabs.tsx +46 -46
  299. package/src/Tabs/context.ts +30 -30
  300. package/src/Tabs/index.tsx +5 -5
  301. package/src/Tabs/scopeQuery.ts +6 -6
  302. package/src/Tooltip/Tooltip.story.tsx +61 -61
  303. package/src/Tooltip/Tooltip.tsx +50 -50
  304. package/src/Tooltip/index.ts +1 -1
  305. package/src/Tooltip/stateMachine.ts +192 -192
  306. package/src/Tooltip/styles.css +17 -17
  307. package/src/Tooltip/useTooltip.ts +136 -136
  308. package/src/hooks/index.ts +13 -13
  309. package/src/hooks/useAutoFocus.ts +22 -22
  310. package/src/hooks/useChildrenCounter.ts +51 -51
  311. package/src/hooks/useControlledState.ts +3 -3
  312. package/src/hooks/useFocusReturn.ts +43 -43
  313. package/src/hooks/useFocusState.ts +30 -30
  314. package/src/hooks/useGestureHandlers.ts +286 -286
  315. package/src/hooks/useMeasure.ts +33 -33
  316. package/src/hooks/useOnClickOutside.ts +32 -32
  317. package/src/hooks/useOnKeyDown.ts +19 -19
  318. package/src/hooks/useReducerMachine.ts +60 -60
  319. package/src/hooks/useRemoveBodyScroll.ts +39 -39
  320. package/src/hooks/useScope.ts +52 -52
  321. package/src/hooks/useThrottle.ts +19 -19
  322. package/src/index.ts +20 -20
  323. package/src/utils/assign-ref.ts +27 -27
  324. package/src/utils/can-use-dom.ts +7 -7
  325. package/src/utils/clamp.ts +3 -3
  326. package/src/utils/context.tsx +48 -48
  327. package/src/utils/create-subscription.ts +16 -16
  328. package/src/utils/get-circular-index.ts +7 -7
  329. package/src/utils/index.ts +10 -10
  330. package/src/utils/is-right-click.ts +14 -14
  331. package/src/utils/owner-document.ts +13 -13
  332. package/src/utils/polymorphic.ts +78 -78
  333. package/src/utils/rubber-band-clamp.ts +25 -25
  334. package/src/utils/use-stable-callback.ts +58 -58
  335. package/src/utils/wrap-event.ts +22 -22
  336. package/build/esm/TimerField/clamp.d.ts +0 -1
  337. package/build/esm/TimerField/clamp.js +0 -2
  338. package/build/esm/TimerField/clamp.js.map +0 -1
  339. package/build/esm/TimerField/index.d.ts +0 -1
  340. package/build/esm/TimerField/index.js +0 -2
  341. package/build/esm/TimerField/index.js.map +0 -1
  342. package/build/esm/TimerField/useControlledState.d.ts +0 -1
  343. package/build/esm/TimerField/useControlledState.js +0 -2
  344. package/build/esm/TimerField/useControlledState.js.map +0 -1
  345. package/build/esm/TimerField/useTimerField.d.ts +0 -44
  346. package/build/esm/TimerField/useTimerField.js +0 -430
  347. package/build/esm/TimerField/useTimerField.js.map +0 -1
  348. package/build/esm/TimerField/wrapEvent.d.ts +0 -1
  349. package/build/esm/TimerField/wrapEvent.js +0 -2
  350. package/build/esm/TimerField/wrapEvent.js.map +0 -1
@@ -1,77 +1,77 @@
1
- import { useState } from 'react';
2
-
3
- import { RadioButton, RadioGroup } from './';
4
- // import './styles.css';
5
-
6
- export default {
7
- title: 'components/RadioButton',
8
- };
9
-
10
- const UncontrolledExample = (props: { initialValue?: string }) => {
11
- return (
12
- <RadioGroup defaultValue={props.initialValue}>
13
- <label>
14
- <RadioButton value="highly agree" />
15
- Highly agree
16
- </label>
17
- <label>
18
- <RadioButton value="agree" />
19
- Agree
20
- </label>
21
- <label>
22
- <RadioButton value="neutral" />
23
- Neutral
24
- </label>
25
- <label>
26
- <RadioButton value="disagree" />
27
- Disagree
28
- </label>
29
- <label>
30
- <RadioButton value="highly disagree" />
31
- Highly disagree
32
- </label>
33
- </RadioGroup>
34
- );
35
- };
36
-
37
- const ControlledExample = () => {
38
- const [value, setValue] = useState(undefined);
39
-
40
- return (
41
- <RadioGroup
42
- value={value}
43
- onChange={(e, value) => {
44
- setValue(value);
45
- }}
46
- >
47
- <label>
48
- <RadioButton value="highly agree" />
49
- Highly agree
50
- </label>
51
- <label>
52
- <RadioButton value="agree" />
53
- Agree
54
- </label>
55
- <label>
56
- <RadioButton value="neutral" />
57
- Neutral
58
- </label>
59
- <label>
60
- <RadioButton value="disagree" />
61
- Disagree
62
- </label>
63
- <label>
64
- <RadioButton value="highly disagree" />
65
- Highly disagree
66
- </label>
67
- </RadioGroup>
68
- );
69
- };
70
-
71
- export const Uncontrolled = () => <UncontrolledExample />;
72
-
73
- export const UncontrolledWithInitialValue = () => (
74
- <UncontrolledExample initialValue={'highly disagree'} />
75
- );
76
-
77
- export const Controlled = () => <ControlledExample />;
1
+ import { useState } from 'react';
2
+
3
+ import { RadioButton, RadioGroup } from './';
4
+ // import './styles.css';
5
+
6
+ export default {
7
+ title: 'components/RadioButton',
8
+ };
9
+
10
+ const UncontrolledExample = (props: { initialValue?: string }) => {
11
+ return (
12
+ <RadioGroup defaultValue={props.initialValue}>
13
+ <label>
14
+ <RadioButton value="highly agree" />
15
+ Highly agree
16
+ </label>
17
+ <label>
18
+ <RadioButton value="agree" />
19
+ Agree
20
+ </label>
21
+ <label>
22
+ <RadioButton value="neutral" />
23
+ Neutral
24
+ </label>
25
+ <label>
26
+ <RadioButton value="disagree" />
27
+ Disagree
28
+ </label>
29
+ <label>
30
+ <RadioButton value="highly disagree" />
31
+ Highly disagree
32
+ </label>
33
+ </RadioGroup>
34
+ );
35
+ };
36
+
37
+ const ControlledExample = () => {
38
+ const [value, setValue] = useState(undefined);
39
+
40
+ return (
41
+ <RadioGroup
42
+ value={value}
43
+ onChange={(e, value) => {
44
+ setValue(value);
45
+ }}
46
+ >
47
+ <label>
48
+ <RadioButton value="highly agree" />
49
+ Highly agree
50
+ </label>
51
+ <label>
52
+ <RadioButton value="agree" />
53
+ Agree
54
+ </label>
55
+ <label>
56
+ <RadioButton value="neutral" />
57
+ Neutral
58
+ </label>
59
+ <label>
60
+ <RadioButton value="disagree" />
61
+ Disagree
62
+ </label>
63
+ <label>
64
+ <RadioButton value="highly disagree" />
65
+ Highly disagree
66
+ </label>
67
+ </RadioGroup>
68
+ );
69
+ };
70
+
71
+ export const Uncontrolled = () => <UncontrolledExample />;
72
+
73
+ export const UncontrolledWithInitialValue = () => (
74
+ <UncontrolledExample initialValue={'highly disagree'} />
75
+ );
76
+
77
+ export const Controlled = () => <ControlledExample />;
@@ -1,55 +1,55 @@
1
- import type {
2
- ChangeEvent,
3
- ElementType,
4
- InputHTMLAttributes,
5
- ReactNode,
6
- } from 'react';
7
- import { forwardRef } from 'react';
8
-
9
- import type { RadioValue } from './context';
10
- import { useRadioGroupContext } from './context';
11
- import { wrapEvent } from '../utils';
12
-
13
- export interface RadioButtonProps
14
- extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value'> {
15
- as?: ElementType<any>;
16
- innerAs?: ElementType<any>;
17
- children?: ReactNode;
18
- checked?: boolean;
19
- value: RadioValue;
20
- }
21
-
22
- export const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(
23
- function RadioButton(props, forwardedRef) {
24
- const {
25
- as: Comp = 'input',
26
- value: valueProp,
27
- onChange: onChangeProp,
28
- checked: checkedProp,
29
- name: nameProp,
30
- ...otherProps
31
- } = props;
32
- const radioGroupContext = useRadioGroupContext();
33
-
34
- const handleChange = (e: ChangeEvent<HTMLInputElement>) => {
35
- radioGroupContext?.onChange?.(e, valueProp);
36
- };
37
-
38
- const checked = radioGroupContext
39
- ? radioGroupContext.value === valueProp
40
- : checkedProp;
41
-
42
- return (
43
- <Comp
44
- ref={forwardedRef}
45
- type="radio"
46
- checked={checked}
47
- aria-checked={String(checked)}
48
- name={radioGroupContext ? radioGroupContext.name : nameProp}
49
- onChange={wrapEvent(onChangeProp, handleChange)}
50
- value={valueProp}
51
- {...otherProps}
52
- />
53
- );
54
- }
55
- );
1
+ import type {
2
+ ChangeEvent,
3
+ ElementType,
4
+ InputHTMLAttributes,
5
+ ReactNode,
6
+ } from 'react';
7
+ import { forwardRef } from 'react';
8
+
9
+ import type { RadioValue } from './context';
10
+ import { useRadioGroupContext } from './context';
11
+ import { wrapEvent } from '../utils';
12
+
13
+ export interface RadioButtonProps
14
+ extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value'> {
15
+ as?: ElementType<any>;
16
+ innerAs?: ElementType<any>;
17
+ children?: ReactNode;
18
+ checked?: boolean;
19
+ value: RadioValue;
20
+ }
21
+
22
+ export const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(
23
+ function RadioButton(props, forwardedRef) {
24
+ const {
25
+ as: Comp = 'input',
26
+ value: valueProp,
27
+ onChange: onChangeProp,
28
+ checked: checkedProp,
29
+ name: nameProp,
30
+ ...otherProps
31
+ } = props;
32
+ const radioGroupContext = useRadioGroupContext();
33
+
34
+ const handleChange = (e: ChangeEvent<HTMLInputElement>) => {
35
+ radioGroupContext?.onChange?.(e, valueProp);
36
+ };
37
+
38
+ const checked = radioGroupContext
39
+ ? radioGroupContext.value === valueProp
40
+ : checkedProp;
41
+
42
+ return (
43
+ <Comp
44
+ ref={forwardedRef}
45
+ type="radio"
46
+ checked={checked}
47
+ aria-checked={String(checked)}
48
+ name={radioGroupContext ? radioGroupContext.name : nameProp}
49
+ onChange={wrapEvent(onChangeProp, handleChange)}
50
+ value={valueProp}
51
+ {...otherProps}
52
+ />
53
+ );
54
+ }
55
+ );
@@ -1,60 +1,60 @@
1
- import type {
2
- ChangeEvent,
3
- ElementType,
4
- HTMLAttributes,
5
- ReactNode,
6
- } from 'react';
7
- import { forwardRef, useId } from 'react';
8
-
9
- import type { RadioValue } from './context';
10
- import { RadioGroupProvider } from './context';
11
- import { useControlledState } from '../hooks';
12
-
13
- export interface RadioGroupProps
14
- extends Omit<
15
- HTMLAttributes<HTMLDivElement>,
16
- 'onChange' | 'value' | 'defaultValue'
17
- > {
18
- as?: ElementType<any>;
19
- innerAs?: ElementType<any>;
20
- children?: ReactNode;
21
- value?: RadioValue;
22
- defaultValue?: RadioValue;
23
- name?: string;
24
- onChange?: (e: ChangeEvent<HTMLInputElement>, value: RadioValue) => void;
25
- }
26
-
27
- export const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(
28
- function RadioGroup(props, forwardedRef) {
29
- const {
30
- as: Comp = 'div',
31
- onChange: onChangeProp,
32
- value: valueProp,
33
- name: nameProp,
34
- defaultValue,
35
- ...otherProps
36
- } = props;
37
- const [value, onChange] = useControlledState(
38
- valueProp,
39
- onChangeProp,
40
- defaultValue,
41
- (setValue) => (e, value) => {
42
- setValue(value);
43
- }
44
- );
45
-
46
- const fallbackId = useId();
47
-
48
- return (
49
- <RadioGroupProvider
50
- value={{
51
- value,
52
- onChange,
53
- name: nameProp || fallbackId,
54
- }}
55
- >
56
- <Comp ref={forwardedRef} role="radiogroup" {...otherProps} />
57
- </RadioGroupProvider>
58
- );
59
- }
60
- );
1
+ import type {
2
+ ChangeEvent,
3
+ ElementType,
4
+ HTMLAttributes,
5
+ ReactNode,
6
+ } from 'react';
7
+ import { forwardRef, useId } from 'react';
8
+
9
+ import type { RadioValue } from './context';
10
+ import { RadioGroupProvider } from './context';
11
+ import { useControlledState } from '../hooks';
12
+
13
+ export interface RadioGroupProps
14
+ extends Omit<
15
+ HTMLAttributes<HTMLDivElement>,
16
+ 'onChange' | 'value' | 'defaultValue'
17
+ > {
18
+ as?: ElementType<any>;
19
+ innerAs?: ElementType<any>;
20
+ children?: ReactNode;
21
+ value?: RadioValue;
22
+ defaultValue?: RadioValue;
23
+ name?: string;
24
+ onChange?: (e: ChangeEvent<HTMLInputElement>, value: RadioValue) => void;
25
+ }
26
+
27
+ export const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(
28
+ function RadioGroup(props, forwardedRef) {
29
+ const {
30
+ as: Comp = 'div',
31
+ onChange: onChangeProp,
32
+ value: valueProp,
33
+ name: nameProp,
34
+ defaultValue,
35
+ ...otherProps
36
+ } = props;
37
+ const [value, onChange] = useControlledState(
38
+ valueProp,
39
+ onChangeProp,
40
+ defaultValue,
41
+ (setValue) => (e, value) => {
42
+ setValue(value);
43
+ }
44
+ );
45
+
46
+ const fallbackId = useId();
47
+
48
+ return (
49
+ <RadioGroupProvider
50
+ value={{
51
+ value,
52
+ onChange,
53
+ name: nameProp || fallbackId,
54
+ }}
55
+ >
56
+ <Comp ref={forwardedRef} role="radiogroup" {...otherProps} />
57
+ </RadioGroupProvider>
58
+ );
59
+ }
60
+ );
@@ -1,17 +1,17 @@
1
- import type { ChangeEvent } from 'react';
2
- import { createContext, useContext } from 'react';
3
-
4
- export type RadioValue = string | number | boolean;
5
-
6
- // RadioGroup Component
7
- export interface RadioGroupContextProps {
8
- value: RadioValue | undefined;
9
- onChange?: (e: ChangeEvent<HTMLInputElement>, value: RadioValue) => void;
10
- name: string | undefined;
11
- }
12
-
13
- const RadioGroupContext = createContext<RadioGroupContextProps | undefined>(
14
- undefined
15
- );
16
- export const { Provider: RadioGroupProvider } = RadioGroupContext;
17
- export const useRadioGroupContext = () => useContext(RadioGroupContext);
1
+ import type { ChangeEvent } from 'react';
2
+ import { createContext, useContext } from 'react';
3
+
4
+ export type RadioValue = string | number | boolean;
5
+
6
+ // RadioGroup Component
7
+ export interface RadioGroupContextProps {
8
+ value: RadioValue | undefined;
9
+ onChange?: (e: ChangeEvent<HTMLInputElement>, value: RadioValue) => void;
10
+ name: string | undefined;
11
+ }
12
+
13
+ const RadioGroupContext = createContext<RadioGroupContextProps | undefined>(
14
+ undefined
15
+ );
16
+ export const { Provider: RadioGroupProvider } = RadioGroupContext;
17
+ export const useRadioGroupContext = () => useContext(RadioGroupContext);
@@ -1,2 +1,2 @@
1
- export * from './RadioButton';
2
- export * from './RadioGroup';
1
+ export * from './RadioButton';
2
+ export * from './RadioGroup';
@@ -1,16 +1,16 @@
1
- import type { ElementType, HTMLAttributes, ReactNode } from 'react';
2
- import { forwardRef } from 'react';
3
-
4
- export interface SkipNavProps extends HTMLAttributes<HTMLDivElement> {
5
- as?: ElementType<any>;
6
- innerAs?: ElementType<any>;
7
- children?: ReactNode;
8
- }
9
-
10
- export const SkipNav = forwardRef<HTMLDivElement, SkipNavProps>(
11
- function SkipNav(props, forwardedRef) {
12
- const { as: Comp = 'div', ...otherProps } = props;
13
-
14
- return <Comp ref={forwardedRef} {...otherProps} />;
15
- }
16
- );
1
+ import type { ElementType, HTMLAttributes, ReactNode } from 'react';
2
+ import { forwardRef } from 'react';
3
+
4
+ export interface SkipNavProps extends HTMLAttributes<HTMLDivElement> {
5
+ as?: ElementType<any>;
6
+ innerAs?: ElementType<any>;
7
+ children?: ReactNode;
8
+ }
9
+
10
+ export const SkipNav = forwardRef<HTMLDivElement, SkipNavProps>(
11
+ function SkipNav(props, forwardedRef) {
12
+ const { as: Comp = 'div', ...otherProps } = props;
13
+
14
+ return <Comp ref={forwardedRef} {...otherProps} />;
15
+ }
16
+ );
@@ -1 +1 @@
1
- export * from './SkipNav';
1
+ export * from './SkipNav';
@@ -1,45 +1,45 @@
1
- import { Slider, SliderMarker } from './';
2
- import './styles.css';
3
- import '../Tooltip/styles.css';
4
-
5
- export default { title: 'components/Slider' };
6
-
7
- export function Basic() {
8
- return (
9
- <div>
10
- <Slider id="gee-whiz">
11
- <SliderMarker value={10}>
12
- <span>10</span>
13
- </SliderMarker>
14
- <SliderMarker value={90}>
15
- <span>90</span>
16
- </SliderMarker>
17
- </Slider>
18
- <br />
19
- <br />
20
- <br />
21
- <Slider defaultValue={30} disabled />
22
- </div>
23
- );
24
- }
25
-
26
- export function WithSteps() {
27
- const step = 20;
28
- const min = 0;
29
- const max = 120;
30
- const range = max - min;
31
- const steps = Array.from(Array(range / step + 1).keys());
32
-
33
- return (
34
- <Slider as="span" step={step} min={min} max={max}>
35
- {steps.map((key) => {
36
- const value = key * step;
37
- return (
38
- <SliderMarker key={key} value={value}>
39
- <span>{value}</span>
40
- </SliderMarker>
41
- );
42
- })}
43
- </Slider>
44
- );
45
- }
1
+ import { Slider, SliderMarker } from './';
2
+ import './styles.css';
3
+ import '../Tooltip/styles.css';
4
+
5
+ export default { title: 'components/Slider' };
6
+
7
+ export function Basic() {
8
+ return (
9
+ <div>
10
+ <Slider id="gee-whiz">
11
+ <SliderMarker value={10}>
12
+ <span>10</span>
13
+ </SliderMarker>
14
+ <SliderMarker value={90}>
15
+ <span>90</span>
16
+ </SliderMarker>
17
+ </Slider>
18
+ <br />
19
+ <br />
20
+ <br />
21
+ <Slider defaultValue={30} disabled />
22
+ </div>
23
+ );
24
+ }
25
+
26
+ export function WithSteps() {
27
+ const step = 20;
28
+ const min = 0;
29
+ const max = 120;
30
+ const range = max - min;
31
+ const steps = Array.from(Array(range / step + 1).keys());
32
+
33
+ return (
34
+ <Slider as="span" step={step} min={min} max={max}>
35
+ {steps.map((key) => {
36
+ const value = key * step;
37
+ return (
38
+ <SliderMarker key={key} value={value}>
39
+ <span>{value}</span>
40
+ </SliderMarker>
41
+ );
42
+ })}
43
+ </Slider>
44
+ );
45
+ }