@basic-ui/core 0.0.50 → 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 (337) hide show
  1. package/README.md +3 -3
  2. package/build/cjs/index.js +106 -92
  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 +1 -0
  72. package/build/esm/Menu/MenuItem.js.map +1 -1
  73. package/build/esm/Menu/MenuList.d.ts +7 -7
  74. package/build/esm/Menu/MenuList.js +17 -4
  75. package/build/esm/Menu/MenuList.js.map +1 -1
  76. package/build/esm/Menu/MenuPopover.d.ts +8 -8
  77. package/build/esm/Menu/MenuPopover.js.map +1 -1
  78. package/build/esm/Menu/context.d.ts +25 -25
  79. package/build/esm/Menu/context.js.map +1 -1
  80. package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
  81. package/build/esm/Menu/fixtures/countryList.js.map +1 -1
  82. package/build/esm/Menu/index.d.ts +6 -6
  83. package/build/esm/Menu/index.js.map +1 -1
  84. package/build/esm/Menu/scope.d.ts +1 -1
  85. package/build/esm/Menu/scope.js.map +1 -1
  86. package/build/esm/Modal/Modal.d.ts +9 -9
  87. package/build/esm/Modal/Modal.js.map +1 -1
  88. package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
  89. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  90. package/build/esm/Modal/index.d.ts +2 -2
  91. package/build/esm/Modal/index.js.map +1 -1
  92. package/build/esm/Popper/Popper.d.ts +35 -35
  93. package/build/esm/Popper/Popper.js.map +1 -1
  94. package/build/esm/Popper/PopperArrow.d.ts +6 -6
  95. package/build/esm/Popper/PopperArrow.js.map +1 -1
  96. package/build/esm/Popper/context.d.ts +6 -6
  97. package/build/esm/Popper/context.js.map +1 -1
  98. package/build/esm/Popper/index.d.ts +3 -3
  99. package/build/esm/Popper/index.js.map +1 -1
  100. package/build/esm/Portal/Portal.d.ts +6 -6
  101. package/build/esm/Portal/Portal.js.map +1 -1
  102. package/build/esm/Portal/index.d.ts +1 -1
  103. package/build/esm/Portal/index.js.map +1 -1
  104. package/build/esm/RadioButton/RadioButton.d.ts +10 -10
  105. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  106. package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
  107. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  108. package/build/esm/RadioButton/context.d.ts +9 -9
  109. package/build/esm/RadioButton/context.js.map +1 -1
  110. package/build/esm/RadioButton/index.d.ts +2 -2
  111. package/build/esm/RadioButton/index.js.map +1 -1
  112. package/build/esm/SkipNav/SkipNav.d.ts +7 -7
  113. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  114. package/build/esm/SkipNav/index.d.ts +1 -1
  115. package/build/esm/SkipNav/index.js.map +1 -1
  116. package/build/esm/Slider/Slider.d.ts +197 -197
  117. package/build/esm/Slider/Slider.js +82 -82
  118. package/build/esm/Slider/Slider.js.map +1 -1
  119. package/build/esm/Slider/index.d.ts +1 -1
  120. package/build/esm/Slider/index.js.map +1 -1
  121. package/build/esm/Spinner/Spinner.d.ts +12 -12
  122. package/build/esm/Spinner/Spinner.js.map +1 -1
  123. package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
  124. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  125. package/build/esm/Spinner/context.d.ts +12 -12
  126. package/build/esm/Spinner/context.js.map +1 -1
  127. package/build/esm/Spinner/index.d.ts +2 -2
  128. package/build/esm/Spinner/index.js.map +1 -1
  129. package/build/esm/Tabs/Tab.d.ts +7 -7
  130. package/build/esm/Tabs/Tab.js.map +1 -1
  131. package/build/esm/Tabs/TabList.d.ts +9 -9
  132. package/build/esm/Tabs/TabList.js.map +1 -1
  133. package/build/esm/Tabs/TabPanel.d.ts +8 -8
  134. package/build/esm/Tabs/TabPanel.js.map +1 -1
  135. package/build/esm/Tabs/TabPanels.d.ts +8 -8
  136. package/build/esm/Tabs/TabPanels.js.map +1 -1
  137. package/build/esm/Tabs/Tabs.d.ts +10 -10
  138. package/build/esm/Tabs/Tabs.js.map +1 -1
  139. package/build/esm/Tabs/context.d.ts +17 -17
  140. package/build/esm/Tabs/context.js.map +1 -1
  141. package/build/esm/Tabs/index.d.ts +5 -5
  142. package/build/esm/Tabs/index.js.map +1 -1
  143. package/build/esm/Tabs/scopeQuery.d.ts +1 -1
  144. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  145. package/build/esm/Tooltip/Tooltip.d.ts +10 -10
  146. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  147. package/build/esm/Tooltip/index.d.ts +1 -1
  148. package/build/esm/Tooltip/index.js.map +1 -1
  149. package/build/esm/Tooltip/stateMachine.d.ts +28 -28
  150. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  151. package/build/esm/Tooltip/useTooltip.d.ts +10 -10
  152. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  153. package/build/esm/hooks/index.d.ts +13 -13
  154. package/build/esm/hooks/index.js.map +1 -1
  155. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  156. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  157. package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
  158. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  159. package/build/esm/hooks/useControlledState.d.ts +3 -3
  160. package/build/esm/hooks/useControlledState.js +1 -1
  161. package/build/esm/hooks/useControlledState.js.map +1 -1
  162. package/build/esm/hooks/useFocusReturn.d.ts +2 -2
  163. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  164. package/build/esm/hooks/useFocusState.d.ts +11 -11
  165. package/build/esm/hooks/useFocusState.js.map +1 -1
  166. package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
  167. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  168. package/build/esm/hooks/useMeasure.d.ts +7 -7
  169. package/build/esm/hooks/useMeasure.js.map +1 -1
  170. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  171. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  172. package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
  173. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  174. package/build/esm/hooks/useReducerMachine.d.ts +24 -24
  175. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  176. package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
  177. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  178. package/build/esm/hooks/useScope.d.ts +11 -11
  179. package/build/esm/hooks/useScope.js.map +1 -1
  180. package/build/esm/hooks/useThrottle.d.ts +1 -1
  181. package/build/esm/hooks/useThrottle.js.map +1 -1
  182. package/build/esm/index.d.ts +15 -15
  183. package/build/esm/index.js.map +1 -1
  184. package/build/esm/utils/assign-ref.d.ts +3 -3
  185. package/build/esm/utils/assign-ref.js.map +1 -1
  186. package/build/esm/utils/can-use-dom.d.ts +1 -1
  187. package/build/esm/utils/can-use-dom.js.map +1 -1
  188. package/build/esm/utils/clamp.d.ts +1 -1
  189. package/build/esm/utils/clamp.js.map +1 -1
  190. package/build/esm/utils/context.d.ts +7 -7
  191. package/build/esm/utils/context.js.map +1 -1
  192. package/build/esm/utils/create-subscription.d.ts +4 -4
  193. package/build/esm/utils/create-subscription.js.map +1 -1
  194. package/build/esm/utils/get-circular-index.d.ts +1 -1
  195. package/build/esm/utils/get-circular-index.js.map +1 -1
  196. package/build/esm/utils/index.d.ts +10 -10
  197. package/build/esm/utils/index.js.map +1 -1
  198. package/build/esm/utils/is-right-click.d.ts +6 -6
  199. package/build/esm/utils/is-right-click.js +4 -4
  200. package/build/esm/utils/is-right-click.js.map +1 -1
  201. package/build/esm/utils/owner-document.d.ts +7 -7
  202. package/build/esm/utils/owner-document.js +5 -5
  203. package/build/esm/utils/owner-document.js.map +1 -1
  204. package/build/esm/utils/polymorphic.d.ts +39 -39
  205. package/build/esm/utils/polymorphic.js.map +1 -1
  206. package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
  207. package/build/esm/utils/rubber-band-clamp.js.map +1 -1
  208. package/build/esm/utils/use-stable-callback.d.ts +16 -16
  209. package/build/esm/utils/use-stable-callback.js +16 -16
  210. package/build/esm/utils/use-stable-callback.js.map +1 -1
  211. package/build/esm/utils/wrap-event.d.ts +3 -3
  212. package/build/esm/utils/wrap-event.js.map +1 -1
  213. package/build/tsconfig-build.tsbuildinfo +1 -1
  214. package/package.json +2 -2
  215. package/src/Accordion/Accordion.story.tsx +74 -74
  216. package/src/Accordion/Accordion.tsx +59 -59
  217. package/src/Accordion/AccordionBody.tsx +52 -52
  218. package/src/Accordion/AccordionHeader.tsx +167 -167
  219. package/src/Accordion/AccordionItem.tsx +50 -50
  220. package/src/Accordion/context.ts +37 -37
  221. package/src/Accordion/index.ts +4 -4
  222. package/src/Accordion/scopeQuery.ts +7 -7
  223. package/src/Accordion/styles.css +21 -21
  224. package/src/CheckBox/CheckBox.tsx +41 -41
  225. package/src/CheckBox/index.ts +1 -1
  226. package/src/ComboBox/ComboBox.story.tsx +120 -120
  227. package/src/ComboBox/Combobox.tsx +148 -148
  228. package/src/ComboBox/ComboboxButton.tsx +61 -61
  229. package/src/ComboBox/ComboboxInput.tsx +187 -187
  230. package/src/ComboBox/ComboboxLabel.tsx +33 -33
  231. package/src/ComboBox/ComboboxList.tsx +47 -47
  232. package/src/ComboBox/ComboboxOption.tsx +111 -111
  233. package/src/ComboBox/ComboboxPopover.tsx +64 -64
  234. package/src/ComboBox/cities.ts +23194 -23194
  235. package/src/ComboBox/context.ts +35 -35
  236. package/src/ComboBox/hooks.tsx +451 -451
  237. package/src/ComboBox/index.ts +8 -8
  238. package/src/ComboBox/makeHash.ts +19 -19
  239. package/src/ComboBox/scopeQuery.ts +6 -6
  240. package/src/ComboBox/styles.css +32 -32
  241. package/src/FocusLock/FocusLock.tsx +66 -66
  242. package/src/FocusLock/index.ts +1 -1
  243. package/src/FocusLock/tabUtils.ts +40 -40
  244. package/src/FocusLock/useFocusLock.ts +56 -56
  245. package/src/List/List.story.tsx +18 -18
  246. package/src/List/List.tsx +17 -17
  247. package/src/List/ListItem.tsx +23 -23
  248. package/src/List/context.ts +19 -19
  249. package/src/List/index.ts +2 -2
  250. package/src/Menu/ContextMenu.story.tsx +73 -73
  251. package/src/Menu/ContextMenuTrigger.tsx +76 -76
  252. package/src/Menu/Menu.story.tsx +160 -160
  253. package/src/Menu/Menu.tsx +83 -83
  254. package/src/Menu/MenuButton.tsx +83 -83
  255. package/src/Menu/MenuComplex.story.tsx +58 -58
  256. package/src/Menu/MenuItem.tsx +88 -87
  257. package/src/Menu/MenuList.tsx +254 -243
  258. package/src/Menu/MenuPopover.tsx +35 -35
  259. package/src/Menu/context.ts +44 -44
  260. package/src/Menu/fixtures/countryList.ts +198 -198
  261. package/src/Menu/index.ts +6 -6
  262. package/src/Menu/scope.ts +7 -7
  263. package/src/Menu/styles.css +42 -42
  264. package/src/Modal/Modal.story.tsx +258 -258
  265. package/src/Modal/Modal.tsx +48 -48
  266. package/src/Modal/ModalBackdrop.tsx +78 -78
  267. package/src/Modal/NavDrawer.story.tsx +158 -158
  268. package/src/Modal/index.ts +2 -2
  269. package/src/Modal/styles.css +46 -46
  270. package/src/Popper/Popper.story.tsx +263 -263
  271. package/src/Popper/Popper.tsx +154 -154
  272. package/src/Popper/PopperArrow.tsx +35 -35
  273. package/src/Popper/context.ts +10 -10
  274. package/src/Popper/index.ts +3 -3
  275. package/src/Popper/styles.css +60 -60
  276. package/src/Portal/Portal.tsx +20 -20
  277. package/src/Portal/index.ts +1 -1
  278. package/src/RadioButton/RadioButton.story.tsx +77 -77
  279. package/src/RadioButton/RadioButton.tsx +55 -55
  280. package/src/RadioButton/RadioGroup.tsx +60 -60
  281. package/src/RadioButton/context.ts +17 -17
  282. package/src/RadioButton/index.ts +2 -2
  283. package/src/SkipNav/SkipNav.tsx +16 -16
  284. package/src/SkipNav/index.tsx +1 -1
  285. package/src/Slider/Slider.story.tsx +45 -45
  286. package/src/Slider/Slider.tsx +1120 -1120
  287. package/src/Slider/index.ts +1 -1
  288. package/src/Slider/styles.css +131 -131
  289. package/src/Spinner/Spinner.story.tsx +31 -31
  290. package/src/Spinner/Spinner.tsx +117 -117
  291. package/src/Spinner/SpinnerButton.tsx +54 -54
  292. package/src/Spinner/context.ts +20 -20
  293. package/src/Spinner/index.ts +2 -2
  294. package/src/Spinner/styles.css +23 -23
  295. package/src/Tabs/Tab.story.tsx +80 -80
  296. package/src/Tabs/Tab.tsx +136 -136
  297. package/src/Tabs/TabList.tsx +71 -71
  298. package/src/Tabs/TabPanel.tsx +53 -53
  299. package/src/Tabs/TabPanels.tsx +30 -30
  300. package/src/Tabs/Tabs.tsx +46 -46
  301. package/src/Tabs/context.ts +30 -30
  302. package/src/Tabs/index.tsx +5 -5
  303. package/src/Tabs/scopeQuery.ts +6 -6
  304. package/src/Tooltip/Tooltip.story.tsx +61 -61
  305. package/src/Tooltip/Tooltip.tsx +50 -50
  306. package/src/Tooltip/index.ts +1 -1
  307. package/src/Tooltip/stateMachine.ts +192 -192
  308. package/src/Tooltip/styles.css +17 -17
  309. package/src/Tooltip/useTooltip.ts +136 -136
  310. package/src/hooks/index.ts +13 -13
  311. package/src/hooks/useAutoFocus.ts +22 -22
  312. package/src/hooks/useChildrenCounter.ts +51 -51
  313. package/src/hooks/useControlledState.ts +3 -3
  314. package/src/hooks/useFocusReturn.ts +43 -43
  315. package/src/hooks/useFocusState.ts +30 -30
  316. package/src/hooks/useGestureHandlers.ts +286 -286
  317. package/src/hooks/useMeasure.ts +33 -33
  318. package/src/hooks/useOnClickOutside.ts +32 -32
  319. package/src/hooks/useOnKeyDown.ts +19 -19
  320. package/src/hooks/useReducerMachine.ts +60 -60
  321. package/src/hooks/useRemoveBodyScroll.ts +39 -39
  322. package/src/hooks/useScope.ts +52 -52
  323. package/src/hooks/useThrottle.ts +19 -19
  324. package/src/index.ts +20 -20
  325. package/src/utils/assign-ref.ts +27 -27
  326. package/src/utils/can-use-dom.ts +7 -7
  327. package/src/utils/clamp.ts +3 -3
  328. package/src/utils/context.tsx +48 -48
  329. package/src/utils/create-subscription.ts +16 -16
  330. package/src/utils/get-circular-index.ts +7 -7
  331. package/src/utils/index.ts +10 -10
  332. package/src/utils/is-right-click.ts +14 -14
  333. package/src/utils/owner-document.ts +13 -13
  334. package/src/utils/polymorphic.ts +78 -78
  335. package/src/utils/rubber-band-clamp.ts +25 -25
  336. package/src/utils/use-stable-callback.ts +58 -58
  337. package/src/utils/wrap-event.ts +22 -22
@@ -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
+ }