@koine/react 2.0.0-beta.12 → 2.0.0-beta.15

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 (576) hide show
  1. package/Alert/Alert.js +10 -0
  2. package/Alert/index.d.ts +1 -1
  3. package/Alert/index.js +1 -0
  4. package/Animations/Reveal.d.ts +1 -2
  5. package/Animations/Reveal.js +16 -0
  6. package/Animations/Underline.js +5 -0
  7. package/Animations/index.d.ts +3 -3
  8. package/Animations/index.js +3 -0
  9. package/Animations/useReveal.d.ts +0 -21
  10. package/Animations/useReveal.js +42 -0
  11. package/Autocomplete/AutocompleteDownshift.js +1 -0
  12. package/Autocomplete/AutocompleteDownshiftMultiselect.js +1 -0
  13. package/Autocomplete/AutocompleteMui.d.ts +2 -27
  14. package/Autocomplete/AutocompleteMui.js +93 -0
  15. package/Autocomplete/AutocompleteReach.js +1 -0
  16. package/Autocomplete/components.d.ts +0 -5
  17. package/Autocomplete/components.js +26 -0
  18. package/Autocomplete/helpers.d.ts +1 -1
  19. package/Autocomplete/helpers.js +17 -0
  20. package/Autocomplete/index.d.ts +2 -2
  21. package/Autocomplete/index.js +1 -0
  22. package/Bg/BgColor.d.ts +1 -20
  23. package/Bg/BgColor.js +16 -0
  24. package/Bg/BgPhoto.d.ts +1 -6
  25. package/Bg/BgPhoto.js +16 -0
  26. package/Bg/BgSvg.d.ts +0 -3
  27. package/Bg/BgSvg.js +9 -0
  28. package/Bg/index.d.ts +3 -3
  29. package/Bg/index.js +3 -0
  30. package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  31. package/Breadcrumbs/Breadcrumbs.js +27 -0
  32. package/Breadcrumbs/index.d.ts +1 -1
  33. package/Breadcrumbs/index.js +1 -0
  34. package/Buttons/Button.d.ts +0 -4
  35. package/Buttons/Button.js +10 -0
  36. package/Buttons/ButtonComposite.d.ts +3 -4
  37. package/Buttons/ButtonComposite.js +28 -0
  38. package/Buttons/ButtonFab.d.ts +1 -2
  39. package/Buttons/ButtonFab.js +6 -0
  40. package/Buttons/ButtonLink.d.ts +3 -3
  41. package/Buttons/ButtonLink.js +11 -0
  42. package/Buttons/IconButton.d.ts +1 -2
  43. package/Buttons/IconButton.js +7 -0
  44. package/Buttons/index.d.ts +5 -5
  45. package/Buttons/index.js +5 -0
  46. package/Calendar/CalendarDaygridCell.d.ts +3 -4
  47. package/Calendar/CalendarDaygridCell.js +46 -0
  48. package/Calendar/CalendarDaygridNav.d.ts +2 -2
  49. package/Calendar/CalendarDaygridNav.js +23 -0
  50. package/Calendar/CalendarDaygridTable.d.ts +3 -3
  51. package/Calendar/CalendarDaygridTable.js +45 -0
  52. package/Calendar/CalendarLegend.d.ts +2 -3
  53. package/Calendar/CalendarLegend.js +8 -0
  54. package/Calendar/calendar-api-google.d.ts +1 -9
  55. package/Calendar/calendar-api-google.js +126 -0
  56. package/Calendar/index.d.ts +6 -6
  57. package/Calendar/index.js +6 -0
  58. package/Calendar/types.d.ts +0 -19
  59. package/Calendar/types.js +1 -0
  60. package/Calendar/useCalendar.d.ts +4 -19
  61. package/Calendar/useCalendar.js +176 -0
  62. package/Calendar/utils.d.ts +1 -1
  63. package/Calendar/utils.js +185 -0
  64. package/Carousel/Carousel.js +1 -0
  65. package/Carousel/CarouselCss.d.ts +1 -23
  66. package/Carousel/CarouselCss.js +19 -0
  67. package/Carousel/index.d.ts +1 -1
  68. package/Carousel/index.js +1 -0
  69. package/Collapsable/Collapsable.js +1 -0
  70. package/Collapsable/CollapsableReach.d.ts +0 -6
  71. package/Collapsable/CollapsableReach.js +1 -0
  72. package/Collapsable/index.d.ts +1 -1
  73. package/Collapsable/index.js +1 -0
  74. package/Debug/Debug.js +9 -0
  75. package/Debug/index.d.ts +1 -1
  76. package/Debug/index.js +1 -0
  77. package/Details/Details.d.ts +0 -6
  78. package/Details/Details.js +52 -0
  79. package/Details/index.d.ts +1 -1
  80. package/Details/index.js +1 -0
  81. package/Dialog/DialogMui.d.ts +1 -3
  82. package/Dialog/DialogMui.js +39 -0
  83. package/Dialog/css/bare.d.ts +1 -2
  84. package/Dialog/css/bare.js +20 -0
  85. package/Dialog/index.d.ts +2 -2
  86. package/Dialog/index.js +1 -0
  87. package/Dialog/m/bare.js +3 -0
  88. package/Dialog/m/basic.d.ts +1 -1
  89. package/Dialog/m/basic.js +28 -0
  90. package/Dialog/m/index.d.ts +1 -2
  91. package/Dialog/m/index.js +4 -0
  92. package/Dialog/sc/bare.d.ts +2 -12
  93. package/Dialog/sc/bare.js +31 -0
  94. package/Dialog/sc/framer.d.ts +1 -2
  95. package/Dialog/sc/framer.js +16 -0
  96. package/Dialog/sc/framerMaterial.js +16 -0
  97. package/Dialog/sc/material.d.ts +1 -2
  98. package/Dialog/sc/material.js +21 -0
  99. package/Dialog/tw/bare.d.ts +2 -17
  100. package/Dialog/tw/bare.js +28 -0
  101. package/Dialog/tw/elegant.d.ts +1 -2
  102. package/Dialog/tw/elegant.js +20 -0
  103. package/Dialog/tw/framer.d.ts +1 -2
  104. package/Dialog/tw/framer.js +16 -0
  105. package/Dialog/tw/framerMaterial.js +16 -0
  106. package/Dialog/tw/material.d.ts +1 -2
  107. package/Dialog/tw/material.js +20 -0
  108. package/Editor/Editor--tiptap.js +26 -0
  109. package/Editor/components.js +10 -0
  110. package/Editor/index.d.ts +1 -1
  111. package/Editor/index.js +1 -0
  112. package/FaviconTags.d.ts +0 -10
  113. package/FaviconTags.js +6 -0
  114. package/Form/Form.d.ts +1 -14
  115. package/Form/Form.js +60 -0
  116. package/Form/index.d.ts +1 -1
  117. package/Form/index.js +1 -0
  118. package/Form/sc/bare.d.ts +1 -2
  119. package/Form/sc/bare.js +20 -0
  120. package/Forms/Checkbox/Checkbox.d.ts +1 -5
  121. package/Forms/Checkbox/Checkbox.js +15 -0
  122. package/Forms/Checkbox/index.d.ts +1 -1
  123. package/Forms/Checkbox/index.js +1 -0
  124. package/Forms/Feedback/Feedback.js +9 -0
  125. package/Forms/Feedback/index.d.ts +1 -1
  126. package/Forms/Feedback/index.js +1 -0
  127. package/Forms/Field/Field.d.ts +1 -19
  128. package/Forms/Field/Field.js +25 -0
  129. package/Forms/Field/FieldControl.d.ts +2 -14
  130. package/Forms/Field/FieldControl.js +35 -0
  131. package/Forms/Field/FieldHint.js +4 -0
  132. package/Forms/Field/index.d.ts +2 -2
  133. package/Forms/Field/index.js +2 -0
  134. package/Forms/Input/Input.d.ts +1 -2
  135. package/Forms/Input/Input.js +16 -0
  136. package/Forms/Input/index.d.ts +1 -1
  137. package/Forms/Input/index.js +1 -0
  138. package/Forms/InputGroup/InputGroup.d.ts +1 -2
  139. package/Forms/InputGroup/InputGroup.js +15 -0
  140. package/Forms/InputGroup/index.d.ts +1 -1
  141. package/Forms/InputGroup/index.js +1 -0
  142. package/Forms/Label/Label.js +6 -0
  143. package/Forms/Label/index.d.ts +1 -1
  144. package/Forms/Label/index.js +1 -0
  145. package/Forms/Password/Password.d.ts +1 -2
  146. package/Forms/Password/Password.js +17 -0
  147. package/Forms/Password/index.d.ts +1 -1
  148. package/Forms/Password/index.js +1 -0
  149. package/Forms/Radio/Radio.d.ts +1 -2
  150. package/Forms/Radio/Radio.js +25 -0
  151. package/Forms/Radio/index.d.ts +1 -1
  152. package/Forms/Radio/index.js +1 -0
  153. package/Forms/Switch/Switch.d.ts +1 -5
  154. package/Forms/Switch/Switch.js +17 -0
  155. package/Forms/Switch/index.d.ts +1 -1
  156. package/Forms/Switch/index.js +1 -0
  157. package/Forms/Textarea/Textarea.d.ts +1 -2
  158. package/Forms/Textarea/Textarea.js +12 -0
  159. package/Forms/Textarea/TextareaRich.d.ts +1 -2
  160. package/Forms/Textarea/TextareaRich.js +26 -0
  161. package/Forms/Textarea/index.d.ts +2 -2
  162. package/Forms/Textarea/index.js +2 -0
  163. package/Forms/Toggle/Toggle-tailwind.js +1 -0
  164. package/Forms/Toggle/Toggle.d.ts +0 -1
  165. package/Forms/Toggle/Toggle.js +25 -0
  166. package/Forms/Toggle/index.d.ts +1 -1
  167. package/Forms/Toggle/index.js +1 -0
  168. package/Forms/Toggle/useToggle-tailwind.js +1 -0
  169. package/Forms/Toggle/useToggle.d.ts +1 -31
  170. package/Forms/Toggle/useToggle.js +85 -0
  171. package/Forms/antispam.d.ts +0 -20
  172. package/Forms/antispam.js +31 -0
  173. package/Forms/helpers.d.ts +0 -8
  174. package/Forms/helpers.js +36 -0
  175. package/Forms/index.d.ts +15 -15
  176. package/Forms/index.js +15 -0
  177. package/Forms/styles.d.ts +0 -6
  178. package/Forms/styles.js +19 -0
  179. package/Gauge/Gauge.d.ts +0 -1
  180. package/Gauge/Gauge.js +1 -0
  181. package/Grid/Grid.d.ts +1 -10
  182. package/Grid/Grid.js +52 -0
  183. package/Grid/index.d.ts +1 -1
  184. package/Grid/index.js +1 -0
  185. package/Hamburger/Hamburger.d.ts +0 -1
  186. package/Hamburger/Hamburger.js +47 -0
  187. package/Hamburger/index.d.ts +1 -1
  188. package/Hamburger/index.js +1 -0
  189. package/Header/index.d.ts +1 -1
  190. package/Header/index.js +1 -0
  191. package/Header/useHeader.d.ts +0 -4
  192. package/Header/useHeader.js +31 -0
  193. package/Hidden/Hidden.d.ts +1 -1
  194. package/Hidden/Hidden.js +10 -0
  195. package/Hidden/index.d.ts +1 -1
  196. package/Hidden/index.js +1 -0
  197. package/Img/index.d.ts +1 -1
  198. package/Img/index.js +1 -0
  199. package/Img/sc/bare.js +4 -0
  200. package/Img/types.js +1 -0
  201. package/Link/Link.js +4 -0
  202. package/Link/LinkBlank.js +15 -0
  203. package/Link/index.d.ts +2 -2
  204. package/Link/index.js +2 -0
  205. package/Menu/Menu.js +4 -0
  206. package/Menu/MenuMui.js +1 -0
  207. package/Menu/index.d.ts +1 -1
  208. package/Menu/index.js +1 -0
  209. package/MenuItem/MenuItem.js +4 -0
  210. package/MenuItem/MenuItemMui.js +1 -0
  211. package/MenuItem/index.d.ts +1 -1
  212. package/MenuItem/index.js +1 -0
  213. package/MenuItem/useMenuItem.js +42 -0
  214. package/Meta/Meta.d.ts +0 -10
  215. package/Meta/Meta.js +6 -0
  216. package/Meta/index.d.ts +2 -2
  217. package/Meta/index.js +2 -0
  218. package/NoJs/NoJs.js +7 -0
  219. package/NoJs/index.d.ts +2 -2
  220. package/NoJs/index.js +2 -0
  221. package/Pagination/PaginationNav.d.ts +1 -9
  222. package/Pagination/PaginationNav.js +48 -0
  223. package/Pagination/PaginationResults.js +11 -0
  224. package/Pagination/index.d.ts +2 -2
  225. package/Pagination/index.js +2 -0
  226. package/Pill/Pill.js +7 -0
  227. package/Pill/index.d.ts +1 -1
  228. package/Pill/index.js +1 -0
  229. package/Progress/ProgressCircular.d.ts +1 -7
  230. package/Progress/ProgressCircular.js +12 -0
  231. package/Progress/ProgressLinear.d.ts +1 -8
  232. package/Progress/ProgressLinear.js +21 -0
  233. package/Progress/ProgressOverlay.js +23 -0
  234. package/Progress/index.d.ts +3 -3
  235. package/Progress/index.js +3 -0
  236. package/Rating/Rating.d.ts +0 -8
  237. package/Rating/Rating.js +43 -0
  238. package/Rating/index.d.ts +1 -4
  239. package/Rating/index.js +45 -0
  240. package/Select/SelectDownshift.d.ts +1 -1
  241. package/Select/SelectDownshift.js +1 -0
  242. package/Select/components.js +12 -0
  243. package/Select/index.d.ts +2 -2
  244. package/Select/index.js +1 -0
  245. package/Sidebar/Sidebar.js +23 -0
  246. package/Sidebar/index.d.ts +1 -1
  247. package/Sidebar/index.js +1 -0
  248. package/Spacing/Spacing.d.ts +1 -14
  249. package/Spacing/Spacing.js +32 -0
  250. package/Spacing/index.d.ts +1 -1
  251. package/Spacing/index.js +1 -0
  252. package/Sticky/Sticky.js +1 -0
  253. package/Sticky/StickyCss.js +6 -0
  254. package/Sticky/index.d.ts +1 -1
  255. package/Sticky/index.js +1 -0
  256. package/Tabs/TabsMui.d.ts +2 -3
  257. package/Tabs/TabsMui.js +30 -0
  258. package/Tabs/index.d.ts +1 -1
  259. package/Tabs/index.js +1 -0
  260. package/Tabs/sc/bare.d.ts +0 -5
  261. package/Tabs/sc/bare.js +1 -0
  262. package/Tabs/tw/bare.d.ts +1 -2
  263. package/Tabs/tw/bare.js +16 -0
  264. package/Tabs/tw/material.d.ts +1 -2
  265. package/Tabs/tw/material.js +18 -0
  266. package/Tabs/useTabs.d.ts +0 -22
  267. package/Tabs/useTabs.js +43 -0
  268. package/Typography/CopyPasteVisible.js +4 -0
  269. package/Typography/Native.js +14 -0
  270. package/Typography/ReadMore.d.ts +0 -2
  271. package/Typography/ReadMore.js +42 -0
  272. package/Typography/TextLoop.js +45 -0
  273. package/Typography/TypeStairs.js +42 -0
  274. package/Typography/index.d.ts +5 -5
  275. package/Typography/index.js +5 -0
  276. package/css/index.d.ts +2 -2
  277. package/css/index.js +2 -0
  278. package/helpers/classed.d.ts +0 -19
  279. package/helpers/classed.js +43 -0
  280. package/helpers/createUseMediaQueryWidth.d.ts +0 -6
  281. package/helpers/createUseMediaQueryWidth.js +39 -0
  282. package/helpers/extend-component.d.ts +0 -11
  283. package/helpers/extend-component.js +9 -0
  284. package/helpers/index.d.ts +4 -4
  285. package/helpers/index.js +4 -0
  286. package/helpers/{mergeRefs.mjs → mergeRefs.js} +4 -3
  287. package/hooks/index.d.ts +20 -20
  288. package/hooks/index.js +20 -0
  289. package/hooks/types.d.ts +0 -6
  290. package/hooks/types.js +1 -0
  291. package/hooks/useAsyncFn.d.ts +1 -4
  292. package/hooks/useAsyncFn.js +33 -0
  293. package/hooks/useDateLocale.d.ts +0 -6
  294. package/hooks/useDateLocale.js +28 -0
  295. package/hooks/useFirstMountState.d.ts +0 -3
  296. package/hooks/useFirstMountState.js +10 -0
  297. package/hooks/useFixedOffset.d.ts +0 -9
  298. package/hooks/useFixedOffset.js +45 -0
  299. package/hooks/useFocus.d.ts +0 -3
  300. package/hooks/useFocus.js +9 -0
  301. package/hooks/useInterval.d.ts +0 -5
  302. package/hooks/useInterval.js +22 -0
  303. package/hooks/useIsomorphicLayoutEffect.d.ts +0 -3
  304. package/hooks/useIsomorphicLayoutEffect.js +6 -0
  305. package/hooks/useKeyUp.js +18 -0
  306. package/hooks/useMeasure.d.ts +0 -5
  307. package/hooks/useMeasure.js +134 -0
  308. package/hooks/useMountedState.d.ts +0 -3
  309. package/hooks/useMountedState.js +13 -0
  310. package/hooks/useNavigateAway.d.ts +0 -29
  311. package/hooks/useNavigateAway.js +25 -0
  312. package/hooks/usePrevious.d.ts +0 -3
  313. package/hooks/usePrevious.js +9 -0
  314. package/hooks/{usePreviousRef.mjs → usePreviousRef.js} +2 -2
  315. package/hooks/useScrollPosition.d.ts +0 -7
  316. package/hooks/useScrollPosition.js +61 -0
  317. package/hooks/useScrollThreshold.js +26 -0
  318. package/hooks/useScrollTo.js +22 -0
  319. package/hooks/useSmoothScroll.d.ts +0 -6
  320. package/hooks/useSmoothScroll.js +33 -0
  321. package/hooks/useSpinDelay.d.ts +0 -12
  322. package/hooks/useSpinDelay.js +38 -0
  323. package/hooks/useTraceUpdate.d.ts +0 -3
  324. package/hooks/useTraceUpdate.js +18 -0
  325. package/hooks/useUpdateEffect.d.ts +0 -3
  326. package/hooks/useUpdateEffect.js +11 -0
  327. package/hooks/useWindowSize.d.ts +0 -9
  328. package/hooks/useWindowSize.js +20 -0
  329. package/index.d.ts +1 -1
  330. package/index.js +1 -0
  331. package/m/MotionProvider.d.ts +0 -32
  332. package/m/MotionProvider.js +7 -0
  333. package/m/index.d.ts +1 -6
  334. package/m/index.js +1 -0
  335. package/package.json +624 -22
  336. package/sc/index.d.ts +30 -30
  337. package/sc/index.js +30 -0
  338. package/scm/index.d.ts +29 -29
  339. package/scm/index.js +29 -0
  340. package/shared/index.d.ts +8 -8
  341. package/shared/index.js +8 -0
  342. package/styles/Body.d.ts +0 -8
  343. package/styles/Body.js +5 -0
  344. package/styles/Global.d.ts +0 -13
  345. package/styles/Global.js +5 -0
  346. package/styles/index.d.ts +7 -7
  347. package/styles/index.js +7 -0
  348. package/styles/media.d.ts +1 -50
  349. package/styles/media.js +74 -0
  350. package/styles/spacing.d.ts +1 -2
  351. package/styles/spacing.js +45 -0
  352. package/styles/styled.d.ts +0 -4
  353. package/styles/styled.js +9 -0
  354. package/styles/theme--vanilla.js +46 -0
  355. package/styles/theme.d.ts +0 -29
  356. package/styles/theme.js +30 -0
  357. package/tw/index.d.ts +2 -2
  358. package/tw/index.js +2 -0
  359. package/twm/index.d.ts +2 -2
  360. package/twm/index.js +2 -0
  361. package/types.d.ts +1 -2
  362. package/types.js +1 -0
  363. package/Alert/Alert.mjs +0 -22
  364. package/Alert/Alert.stories.mjs +0 -18
  365. package/Alert/index.mjs +0 -1
  366. package/Animations/Reveal.mjs +0 -43
  367. package/Animations/Underline.mjs +0 -15
  368. package/Animations/index.mjs +0 -3
  369. package/Animations/useReveal.mjs +0 -73
  370. package/Autocomplete/AutocompleteDownshift.mjs +0 -157
  371. package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
  372. package/Autocomplete/AutocompleteMui.mjs +0 -219
  373. package/Autocomplete/AutocompleteReach.mjs +0 -111
  374. package/Autocomplete/components.mjs +0 -87
  375. package/Autocomplete/helpers.mjs +0 -35
  376. package/Autocomplete/index.mjs +0 -4
  377. package/Bg/BgColor.mjs +0 -42
  378. package/Bg/BgPhoto.mjs +0 -71
  379. package/Bg/BgSvg.mjs +0 -22
  380. package/Bg/index.mjs +0 -3
  381. package/Breadcrumbs/Breadcrumbs.mjs +0 -91
  382. package/Breadcrumbs/index.mjs +0 -1
  383. package/Buttons/Button.mjs +0 -78
  384. package/Buttons/ButtonComposite.mjs +0 -105
  385. package/Buttons/ButtonFab.mjs +0 -8
  386. package/Buttons/ButtonLink.mjs +0 -18
  387. package/Buttons/IconButton.mjs +0 -19
  388. package/Buttons/index.mjs +0 -5
  389. package/Calendar/CalendarDaygridCell.mjs +0 -95
  390. package/Calendar/CalendarDaygridNav.mjs +0 -52
  391. package/Calendar/CalendarDaygridTable.mjs +0 -115
  392. package/Calendar/CalendarLegend.mjs +0 -29
  393. package/Calendar/calendar-api-google.mjs +0 -99
  394. package/Calendar/index.mjs +0 -6
  395. package/Calendar/types.mjs +0 -1
  396. package/Calendar/useCalendar.mjs +0 -225
  397. package/Calendar/utils.mjs +0 -209
  398. package/Carousel/Carousel.mjs +0 -377
  399. package/Carousel/CarouselCss.mjs +0 -44
  400. package/Carousel/index.mjs +0 -1
  401. package/Collapsable/Collapsable.mjs +0 -1
  402. package/Collapsable/CollapsableReach.mjs +0 -250
  403. package/Collapsable/index.mjs +0 -1
  404. package/Debug/Debug.mjs +0 -23
  405. package/Debug/index.mjs +0 -1
  406. package/Details/Details.mjs +0 -90
  407. package/Details/Details.stories.mjs +0 -21
  408. package/Details/index.mjs +0 -1
  409. package/Dialog/DialogMui.mjs +0 -105
  410. package/Dialog/DialogMui.stories.mjs +0 -20
  411. package/Dialog/css/bare.mjs +0 -19
  412. package/Dialog/css/index.stories.mjs +0 -75
  413. package/Dialog/index.mjs +0 -1
  414. package/Dialog/m/bare.mjs +0 -115
  415. package/Dialog/m/basic.mjs +0 -31
  416. package/Dialog/m/index.mjs +0 -4
  417. package/Dialog/sc/bare.mjs +0 -54
  418. package/Dialog/sc/framer.mjs +0 -16
  419. package/Dialog/sc/framerMaterial.mjs +0 -16
  420. package/Dialog/sc/index.stories.mjs +0 -48
  421. package/Dialog/sc/material.mjs +0 -41
  422. package/Dialog/tw/bare.mjs +0 -29
  423. package/Dialog/tw/elegant.mjs +0 -18
  424. package/Dialog/tw/framer.mjs +0 -16
  425. package/Dialog/tw/framerMaterial.mjs +0 -16
  426. package/Dialog/tw/index.stories.mjs +0 -83
  427. package/Dialog/tw/material.mjs +0 -18
  428. package/Editor/Editor--tiptap.mjs +0 -53
  429. package/Editor/components.mjs +0 -28
  430. package/Editor/index.mjs +0 -1
  431. package/FaviconTags.mjs +0 -64
  432. package/Form/Form.mjs +0 -95
  433. package/Form/index.mjs +0 -1
  434. package/Form/sc/bare.mjs +0 -29
  435. package/Forms/Checkbox/Checkbox.mjs +0 -36
  436. package/Forms/Checkbox/index.mjs +0 -1
  437. package/Forms/Feedback/Feedback.mjs +0 -14
  438. package/Forms/Feedback/index.mjs +0 -1
  439. package/Forms/Field/Field.mjs +0 -50
  440. package/Forms/Field/FieldControl.mjs +0 -67
  441. package/Forms/Field/FieldHint.mjs +0 -6
  442. package/Forms/Field/index.mjs +0 -2
  443. package/Forms/Input/Input.mjs +0 -36
  444. package/Forms/Input/index.mjs +0 -1
  445. package/Forms/InputGroup/InputGroup.mjs +0 -57
  446. package/Forms/InputGroup/index.mjs +0 -1
  447. package/Forms/Label/Label.mjs +0 -24
  448. package/Forms/Label/index.mjs +0 -1
  449. package/Forms/Password/Password.mjs +0 -53
  450. package/Forms/Password/index.mjs +0 -1
  451. package/Forms/Radio/Radio.mjs +0 -57
  452. package/Forms/Radio/index.mjs +0 -1
  453. package/Forms/Switch/Switch.mjs +0 -60
  454. package/Forms/Switch/index.mjs +0 -1
  455. package/Forms/Textarea/Textarea.mjs +0 -26
  456. package/Forms/Textarea/TextareaRich.mjs +0 -48
  457. package/Forms/Textarea/index.mjs +0 -2
  458. package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
  459. package/Forms/Toggle/Toggle.mjs +0 -123
  460. package/Forms/Toggle/index.mjs +0 -1
  461. package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
  462. package/Forms/Toggle/useToggle.mjs +0 -163
  463. package/Forms/antispam.mjs +0 -58
  464. package/Forms/helpers.mjs +0 -52
  465. package/Forms/index.mjs +0 -16
  466. package/Forms/styles.mjs +0 -61
  467. package/Gauge/Gauge.mjs +0 -101
  468. package/Grid/Grid.mjs +0 -75
  469. package/Grid/index.mjs +0 -1
  470. package/Hamburger/Hamburger.mjs +0 -79
  471. package/Hamburger/index.mjs +0 -1
  472. package/Header/index.mjs +0 -1
  473. package/Header/useHeader.mjs +0 -36
  474. package/Hidden/Hidden.mjs +0 -10
  475. package/Hidden/index.mjs +0 -1
  476. package/Img/index.mjs +0 -1
  477. package/Img/sc/bare.mjs +0 -36
  478. package/Img/types.mjs +0 -1
  479. package/Link/Link.mjs +0 -2
  480. package/Link/LinkBlank.mjs +0 -32
  481. package/Link/index.mjs +0 -2
  482. package/Menu/Menu.mjs +0 -11
  483. package/Menu/MenuMui.mjs +0 -164
  484. package/Menu/index.mjs +0 -1
  485. package/MenuItem/MenuItem.mjs +0 -20
  486. package/MenuItem/MenuItemMui.mjs +0 -31
  487. package/MenuItem/index.mjs +0 -1
  488. package/MenuItem/useMenuItem.mjs +0 -78
  489. package/Meta/Meta.mjs +0 -8
  490. package/Meta/index.mjs +0 -2
  491. package/NoJs/NoJs.mjs +0 -10
  492. package/NoJs/index.mjs +0 -2
  493. package/Pagination/PaginationNav.mjs +0 -122
  494. package/Pagination/PaginationResults.mjs +0 -34
  495. package/Pagination/index.mjs +0 -2
  496. package/Pill/Pill.mjs +0 -37
  497. package/Pill/index.mjs +0 -1
  498. package/Progress/ProgressCircular.mjs +0 -53
  499. package/Progress/ProgressLinear.mjs +0 -44
  500. package/Progress/ProgressOverlay.mjs +0 -64
  501. package/Progress/index.mjs +0 -3
  502. package/README.md +0 -1
  503. package/Rating/Rating.mjs +0 -154
  504. package/Rating/index.mjs +0 -62
  505. package/Select/SelectDownshift.mjs +0 -37
  506. package/Select/components.mjs +0 -25
  507. package/Select/index.mjs +0 -2
  508. package/Sidebar/Sidebar.mjs +0 -63
  509. package/Sidebar/index.mjs +0 -1
  510. package/Spacing/Spacing.mjs +0 -55
  511. package/Spacing/index.mjs +0 -1
  512. package/Sticky/Sticky.mjs +0 -218
  513. package/Sticky/StickyCss.mjs +0 -10
  514. package/Sticky/index.mjs +0 -1
  515. package/Tabs/TabsMui.mjs +0 -61
  516. package/Tabs/TabsMui.stories.mjs +0 -20
  517. package/Tabs/index.mjs +0 -1
  518. package/Tabs/sc/bare.mjs +0 -85
  519. package/Tabs/sc/index.stories.mjs +0 -0
  520. package/Tabs/tw/bare.mjs +0 -15
  521. package/Tabs/tw/index.stories.mjs +0 -25
  522. package/Tabs/tw/material.mjs +0 -14
  523. package/Tabs/useTabs.mjs +0 -46
  524. package/Typography/CopyPasteVisible.mjs +0 -6
  525. package/Typography/Native.mjs +0 -47
  526. package/Typography/ReadMore.mjs +0 -114
  527. package/Typography/TextLoop.mjs +0 -90
  528. package/Typography/TypeStairs.mjs +0 -61
  529. package/Typography/index.mjs +0 -5
  530. package/css/index.mjs +0 -30
  531. package/helpers/classed.mjs +0 -65
  532. package/helpers/classed.stories.mjs +0 -121
  533. package/helpers/createUseMediaQueryWidth.mjs +0 -178
  534. package/helpers/extend-component.mjs +0 -13
  535. package/helpers/index.mjs +0 -4
  536. package/hooks/index.mjs +0 -21
  537. package/hooks/types.mjs +0 -3
  538. package/hooks/useAsyncFn.mjs +0 -39
  539. package/hooks/useDateLocale.mjs +0 -37
  540. package/hooks/useFirstMountState.mjs +0 -12
  541. package/hooks/useFixedOffset.mjs +0 -56
  542. package/hooks/useFocus.mjs +0 -14
  543. package/hooks/useInterval.mjs +0 -29
  544. package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
  545. package/hooks/useKeyUp.mjs +0 -21
  546. package/hooks/useMeasure.mjs +0 -174
  547. package/hooks/useMountedState.mjs +0 -15
  548. package/hooks/useNavigateAway.mjs +0 -69
  549. package/hooks/usePrevious.mjs +0 -17
  550. package/hooks/useScrollPosition.mjs +0 -70
  551. package/hooks/useScrollThreshold.mjs +0 -33
  552. package/hooks/useScrollTo.mjs +0 -20
  553. package/hooks/useSmoothScroll.mjs +0 -35
  554. package/hooks/useSpinDelay.mjs +0 -52
  555. package/hooks/useTraceUpdate.mjs +0 -23
  556. package/hooks/useUpdateEffect.mjs +0 -14
  557. package/hooks/useWindowSize.mjs +0 -32
  558. package/index.mjs +0 -4
  559. package/m/MotionProvider.mjs +0 -40
  560. package/m/index.mjs +0 -5
  561. package/sc/index.mjs +0 -31
  562. package/scm/index.mjs +0 -31
  563. package/shared/index.mjs +0 -43
  564. package/styles/Body.mjs +0 -16
  565. package/styles/Global.mjs +0 -49
  566. package/styles/index.mjs +0 -7
  567. package/styles/media.mjs +0 -151
  568. package/styles/spacing.mjs +0 -46
  569. package/styles/styled.mjs +0 -26
  570. package/styles/theme--vanilla.mjs +0 -65
  571. package/styles/theme.mjs +0 -38
  572. package/tw/index.mjs +0 -30
  573. package/twm/index.mjs +0 -30
  574. package/types.mjs +0 -1
  575. /package/m/{lite.mjs → lite.js} +0 -0
  576. /package/m/{max.mjs → max.js} +0 -0
@@ -1,48 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
- import styled from "styled-components";
4
- import { Editor } from "../../Editor";
5
- // import TextareaAutosize from "@mui/base/TextareaAutosize";
6
- import { Label } from "../Label/Label";
7
- import { triggerOnChange } from "../helpers";
8
- const Root = styled.div`
9
- .ProseMirror {
10
- max-height: 160px;
11
- overflow: auto;
12
- }
13
- .EditorContent {
14
- position: relative;
15
- &:after {
16
- position: absolute;
17
- content: "";
18
- bottom: 0;
19
- left: 0;
20
- right: 16px; /* scrollbar width? */
21
- height: 3em;
22
- background: linear-gradient(0deg, white, white 33%, transparent);
23
- pointer-events: none;
24
- }
25
- }
26
- `;
27
- export const TextareaRich = /*#__PURE__*/ forwardRef(function TextareaRich({ register, setValue, name, label, defaultValue = "", onChange, ...props }, ref) {
28
- if (register) register(name);
29
- return /*#__PURE__*/ _jsxs(Root, {
30
- children: [
31
- label && /*#__PURE__*/ _jsx(Label, {
32
- children: label
33
- }),
34
- /*#__PURE__*/ _jsx(Editor, {
35
- options: {
36
- // element: <TextareaAutosize />,
37
- content: defaultValue,
38
- onUpdate: (onChange || setValue) && name ? ({ editor })=>{
39
- const value = editor.getHTML();
40
- if (setValue) setValue(name, value);
41
- triggerOnChange(onChange, name, value);
42
- } : undefined
43
- },
44
- ...props
45
- })
46
- ]
47
- });
48
- });
@@ -1,2 +0,0 @@
1
- export * from "./Textarea";
2
- export * from "./TextareaRich";
@@ -1,98 +0,0 @@
1
- // /**
2
- // * @file
3
- // *
4
- // * About accessibility:
5
- // * - minimum target size of 44px https://www.w3.org/TR/WCAG21/#target-size
6
- // *
7
- // * @see tests on tailwind playground:
8
- // * - https://play.tailwindcss.com/RVldIcmZa5
9
- // */
10
- // import { type FormControlState } from "../FormControl";
11
- // import { FormControlStatefulElement } from "../FormControlStatefulElement";
12
- // export type ToggleProps = React.ComponentProps<"span">;
13
- // export const Toggle = ({ className = "", ...props }: ToggleProps) => {
14
- // return (
15
- // <span
16
- // className={`relative my-0 -mx-1 inline-flex h-8 w-8 items-center justify-center p-1 ${className}`}
17
- // {...props}
18
- // />
19
- // );
20
- // };
21
- // export type ToggleLabelProps = React.ComponentProps<"span">;
22
- // export const ToggleLabel = ({ className = "", ...props }: ToggleLabelProps) => {
23
- // return (
24
- // <span
25
- // className={`text-grey-200 ml-3 select-none ${className}`}
26
- // {...props}
27
- // />
28
- // );
29
- // };
30
- // export type ToggleLabelSubProps = React.ComponentProps<"small">;
31
- // export const ToggleLabelSub = ({
32
- // className = "",
33
- // ...props
34
- // }: ToggleLabelSubProps) => {
35
- // return (
36
- // <span
37
- // className={`text-xs opacity-70 ${className}`}
38
- // {...props}
39
- // />
40
- // );
41
- // };
42
- // export type ToggleIndicatorProps = FormControlState & {
43
- // className?: string;
44
- // };
45
- // export const ToggleIndicator = ({
46
- // className,
47
- // ...props
48
- // }: ToggleIndicatorProps) => {
49
- // return (
50
- // <FormControlStatefulElement
51
- // as="span"
52
- // className={`relative flex h-[24px] w-[24px] rounded-md border border-solid ${className}`}
53
- // {...props}
54
- // />
55
- // );
56
- // };
57
- // export type ToggleIndicatorFgProps = React.ComponentProps<"svg">;
58
- // export const ToggleIndicatorFg = ({
59
- // className = "",
60
- // ...props
61
- // }: ToggleIndicatorFgProps) => {
62
- // return (
63
- // <svg
64
- // className={`on-toggle-checked:scale-100 absolute left-0 h-full w-full scale-0 transition-transform ${className}`}
65
- // {...props}
66
- // />
67
- // );
68
- // };
69
- // export type ToggleIndicatorSquaredProps = ToggleIndicatorProps;
70
- // export const ToggleIndicatorSquared = (props: ToggleIndicatorSquaredProps) => {
71
- // return (
72
- // <ToggleIndicator {...props}>
73
- // <ToggleIndicatorFg viewBox="0 0 24 24">
74
- // <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" />
75
- // </ToggleIndicatorFg>
76
- // </ToggleIndicator>
77
- // );
78
- // };
79
- // export type ToggleIndicatorRoundedProps = ToggleIndicatorProps & {
80
- // /** @default 6 */
81
- // r?: number;
82
- // };
83
- // export const ToggleIndicatorRounded = ({
84
- // r = 6,
85
- // ...props
86
- // }: ToggleIndicatorRoundedProps) => {
87
- // return (
88
- // <ToggleIndicator {...props}>
89
- // <ToggleIndicatorFg viewBox="0 0 24 24">
90
- // <circle
91
- // r={r}
92
- // cx="12"
93
- // cy="12"
94
- // />
95
- // </ToggleIndicatorFg>
96
- // </ToggleIndicator>
97
- // );
98
- // };
@@ -1,123 +0,0 @@
1
- /**
2
- * @file
3
- *
4
- * About accessibility:
5
- * - minimum target size of 44px https://www.w3.org/TR/WCAG21/#target-size
6
- */ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- import { useId } from "react";
8
- import styled from "styled-components";
9
- import { stateFocus } from "../../styles/styled";
10
- export const toggleBase = `
11
- border: 1px solid var(--forms-border-color);
12
- `;
13
- export const toggleIndicatorBg = `
14
- display: inline-block;
15
- flex-shrink: 0;
16
- width: 100%;
17
- height: 100%;
18
- `;
19
- export const toggleIndicatorBgShape = `
20
- ${toggleIndicatorBg}
21
- fill: none;
22
- stroke-width: 2px;
23
- stroke: var(--forms-border-color);
24
- `;
25
- export const toggleIndicatorFg = `
26
- position: absolute;
27
- left: 0;
28
- width: 100%;
29
- height: 100%;
30
- fill: currentcolor;
31
- `;
32
- export const Toggle = styled.span`
33
- position: relative;
34
- display: inline-flex;
35
- align-items: center;
36
- justify-content: center;
37
- width: 2em;
38
- height: 2em;
39
- margin: 0 -0.3em; /* rtl */
40
- padding: 0.3em;
41
- `;
42
- export const ToggleLabel = styled.span`
43
- margin-left: 0.6em; /* rtl */
44
- `;
45
- export const ToggleLabelSub = styled.small`
46
- opacity: 0.7;
47
- font-size: 0.7em;
48
- `;
49
- export const ToggleIndicatorHolder = styled.span`
50
- position: relative;
51
- display: flex;
52
-
53
- input:focus ~ & {
54
- ${stateFocus}
55
- }
56
- `;
57
- export const ToggleIndicatorBgSquare = styled.svg`
58
- ${toggleIndicatorBgShape}
59
- `;
60
- export const ToggleIndicatorBgCircle = styled.svg`
61
- ${toggleIndicatorBgShape}
62
- `;
63
- export const ToggleIndicatorFg = styled.svg`
64
- ${toggleIndicatorFg}
65
- transform: scale(0);
66
- transition: transform 0.18s ease;
67
-
68
- input:checked + ${ToggleIndicatorHolder} & {
69
- transform: scale(1);
70
- }
71
- `;
72
- export const ToggleIndicatorSquared = (props)=>{
73
- return /*#__PURE__*/ _jsxs(ToggleIndicatorHolder, {
74
- children: [
75
- /*#__PURE__*/ _jsx(ToggleIndicatorBgSquare, {
76
- viewBox: "0 0 24 24",
77
- children: /*#__PURE__*/ _jsx("rect", {
78
- width: "24",
79
- height: "24"
80
- })
81
- }),
82
- /*#__PURE__*/ _jsx(ToggleIndicatorFg, {
83
- viewBox: "0 0 24 24",
84
- children: /*#__PURE__*/ _jsx("path", {
85
- d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
86
- })
87
- })
88
- ]
89
- });
90
- };
91
- export const ToggleIndicatorRounded = ({ r = 6 })=>{
92
- const id = useId();
93
- return /*#__PURE__*/ _jsxs(ToggleIndicatorHolder, {
94
- children: [
95
- /*#__PURE__*/ _jsxs(ToggleIndicatorBgCircle, {
96
- viewBox: "0 0 24 24",
97
- children: [
98
- /*#__PURE__*/ _jsx("circle", {
99
- cy: "12",
100
- cx: "12",
101
- r: "12",
102
- id: `r_${id}`,
103
- clipPath: `url(#c_${id})`
104
- }),
105
- /*#__PURE__*/ _jsx("clipPath", {
106
- id: `c_${id}`,
107
- children: /*#__PURE__*/ _jsx("use", {
108
- xlinkHref: `#r_${id}`
109
- })
110
- })
111
- ]
112
- }),
113
- /*#__PURE__*/ _jsx(ToggleIndicatorFg, {
114
- viewBox: "0 0 24 24",
115
- children: /*#__PURE__*/ _jsx("circle", {
116
- r: r,
117
- cx: "12",
118
- cy: "12"
119
- })
120
- })
121
- ]
122
- });
123
- };
@@ -1 +0,0 @@
1
- export * from "./Toggle";
@@ -1,201 +0,0 @@
1
- // import React, { useCallback, useId, useMemo } from "react";
2
- // import type { Option } from "@koine/react";
3
- // import type { FormControlElementProps } from "../FormControl";
4
- // export type UseToggleProps = FormControlElementProps<React.FC> & {
5
- // // defaultChecked?: boolean;
6
- // value?: boolean;
7
- // valueTrue?: string;
8
- // valueFalse?: string;
9
- // options?: Option[];
10
- // };
11
- // /**
12
- // * This hook is meant to power Checkboxes, Switches and checkbox-like Radios
13
- // * components, it works in fact in two modes:
14
- // *
15
- // * 1: behaviour as standard checkbox
16
- // * yup validation would simply look like:
17
- // *
18
- // * ```ts
19
- // * privacy: boolean().required(),
20
- // * ```
21
- // *
22
- // * 1b: to make the checkbox required (either with `true` or `false`):
23
- // * ```
24
- // * privacy: boolean().oneOf([true]).required()
25
- // * ```
26
- // *
27
- // * 2: beahviour as two radio for checkbox with custom true/false values as
28
- // * strings yup validation would look like:
29
- // *
30
- // * ```ts
31
- // * newsletter: string().oneOf(["yes", "no"]).required(),
32
- // * // add `.nullable()` if you do not provide a string `defaultValue`
33
- // *
34
- // * // to do not make it required and avoid triggering an error when the input is
35
- // * // untouched you need to set the default value of the input in the form
36
- // * // initialization's `defaultValues` as such:
37
- // *
38
- // * useForm({ defaultValues: { newsletter: "no" }})
39
- // * ```
40
- // *
41
- // * To enable this mode either pass the props `valueTrue` and `valueFalse` or
42
- // * an array of options with the shape of `Option`
43
- // */
44
- // export function useToggle(
45
- // props: UseToggleProps,
46
- // ref: React.ForwardedRef<HTMLInputElement>
47
- // ) {
48
- // const {
49
- // actions,
50
- // form: { watch, register },
51
- // name,
52
- // state,
53
- // strings: { label },
54
- // options,
55
- // value: propValue,
56
- // ...restProps
57
- // } = props;
58
- // let {
59
- // valueTrue,
60
- // valueFalse,
61
- // // defaultChecked,
62
- // // defaultValue,
63
- // // eslint-disable-next-line prefer-const
64
- // // ...remainingInputProps
65
- // } = restProps;
66
- // // use options data convention to pass on the true/false values
67
- // if (options) {
68
- // valueTrue = options
69
- // .filter((opt) => opt.value === "true")[0]
70
- // .label.toString();
71
- // valueFalse = options
72
- // .filter((opt) => opt.value === "false")[0]
73
- // .label.toString();
74
- // }
75
- // const id = useId();
76
- // const idTrue = `${id}-true`;
77
- // const idFalse = `${id}-false`;
78
- // const isRadio = !!(valueTrue && valueFalse);
79
- // // // manage default values for both toggle modes
80
- // // defaultChecked = isUndefined(defaultChecked) ? false : defaultChecked;
81
- // // // TODO: maybe throw an error if the defaultValue that arrives here is not
82
- // // // a valid value
83
- // // defaultValue =
84
- // // defaultValue === valueTrue || defaultValue === valueFalse
85
- // // ? defaultValue
86
- // // : valueFalse;
87
- // // get the value either from the uncontrolled watched input or from the given
88
- // // prop to control the component
89
- // let value = watch(name);
90
- // if (propValue) {
91
- // value = propValue;
92
- // }
93
- // /**
94
- // * Accessibility.
95
- // *
96
- // * Fake the spacebar keyboard behaviour on the radio mode of the checkbox.
97
- // * Without this *only* the arrow keys would change the checkbox state
98
- // */
99
- // const handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> =
100
- // useCallback(
101
- // (event) => {
102
- // if (event.key === " ") {
103
- // event.preventDefault();
104
- // event.stopPropagation();
105
- // const firstInput = event.target as HTMLInputElement;
106
- // const next = firstInput.nextElementSibling as HTMLInputElement;
107
- // const prev = firstInput.previousElementSibling as HTMLInputElement;
108
- // const secondInput = next?.tagName === "INPUT" ? next : prev;
109
- // let target = firstInput;
110
- // if (firstInput.checked) {
111
- // target = secondInput;
112
- // } else {
113
- // if (!secondInput.checked) {
114
- // target =
115
- // firstInput.value === valueTrue ? firstInput : secondInput;
116
- // }
117
- // }
118
- // if (target) target.click();
119
- // }
120
- // },
121
- // [valueTrue]
122
- // );
123
- // // collect all the return values that are dependent on the current value
124
- // // of the input
125
- // const valueDependentProps = useMemo(
126
- // () => ({
127
- // rootProps: {
128
- // htmlFor: isRadio
129
- // ? !value || value === valueFalse
130
- // ? idTrue
131
- // : idFalse
132
- // : id,
133
- // },
134
- // label: label ? label : value,
135
- // value,
136
- // }),
137
- // [value, valueFalse, isRadio, id, idTrue, idFalse, label]
138
- // );
139
- // const Inputs = useMemo(
140
- // () =>
141
- // isRadio ? (
142
- // <>
143
- // <input
144
- // className="peer sr-only"
145
- // id={idFalse}
146
- // {...register(name, {
147
- // onBlur: () => actions.setFocused(false),
148
- // })}
149
- // onFocus={() => actions.setFocused(true)}
150
- // // {...remainingInputProps}
151
- // onKeyDown={handleKeyDown}
152
- // type="radio"
153
- // value={valueFalse}
154
- // // defaultChecked={defaultValue === valueFalse}
155
- // />
156
- // <input
157
- // className="peer sr-only"
158
- // id={idTrue}
159
- // {...register(name, {
160
- // onBlur: () => actions.setFocused(false),
161
- // })}
162
- // onFocus={() => actions.setFocused(true)}
163
- // // {...remainingInputProps}
164
- // onKeyDown={handleKeyDown}
165
- // type="radio"
166
- // value={valueTrue}
167
- // // defaultChecked={defaultValue === valueTrue}
168
- // />
169
- // </>
170
- // ) : (
171
- // <input
172
- // className="peer sr-only"
173
- // id={id}
174
- // type="checkbox"
175
- // {...register(name, { onBlur: () => actions.setFocused(false) })}
176
- // onFocus={() => actions.setFocused(true)}
177
- // // {...remainingInputProps}
178
- // // defaultChecked={defaultChecked}
179
- // />
180
- // ),
181
- // [
182
- // name,
183
- // actions,
184
- // // remainingInputProps,
185
- // handleKeyDown,
186
- // isRadio,
187
- // idFalse,
188
- // idTrue,
189
- // valueFalse,
190
- // valueTrue,
191
- // id,
192
- // // defaultChecked,
193
- // // defaultValue,
194
- // ]
195
- // );
196
- // // console.log("useToggle: render", value);
197
- // return {
198
- // ...valueDependentProps,
199
- // Inputs,
200
- // };
201
- // }
@@ -1,163 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useCallback, useMemo } from "react";
3
- import { useWatch } from "react-hook-form";
4
- import { InputInvisible } from "../styles";
5
- /**
6
- * This hook is meant to power Checkboxes, Switches and checkbox-like Radios
7
- * components, it works in fact in two modes:
8
- *
9
- * 1: behaviour as standard checkbox
10
- * yup validation would simply look like:
11
- *
12
- * ```ts
13
- * privacy: boolean().required(),
14
- * // add `.nullable()` if you do not provide a boolean `defaultValue`
15
- * ```
16
- *
17
- * 2: beahviour as two radio for checkbox with custom true/false values as
18
- * strings yup validation would look like:
19
- *
20
- * ```ts
21
- * newsletter: string().oneOf(["yes", "no"]).required(),
22
- * // add `.nullable()` if you do not provide a string `defaultValue`
23
- *
24
- * // to do not make it required and avoid triggering an error when the input is
25
- * // untouched you need to set the default value of the input in the form
26
- * // initialization's `defaultValues` as such:
27
- *
28
- * useForm({ defaultValues: { newsletter: "no" }})
29
- * ```
30
- *
31
- * To enable this mode either pass the props `valueTrue` and `valueFalse` or
32
- * an array of options with the shape of `Option`
33
- */ export function useToggle(props, ref) {
34
- const { name, control, register, label, options, value: propValue, ...restProps } = props;
35
- let { id, valueTrue, valueFalse, // defaultChecked,
36
- // defaultValue,
37
- // eslint-disable-next-line prefer-const
38
- ...remainingInputProps } = restProps;
39
- // use options data convention to pass on the true/false values
40
- if (options) {
41
- valueTrue = options.filter((opt)=>opt.value === "true")[0].label.toString();
42
- valueFalse = options.filter((opt)=>opt.value === "false")[0].label.toString();
43
- }
44
- id = `switch-${name}`;
45
- const idTrue = `${id}-true`;
46
- const idFalse = `${id}-false`;
47
- const isRadio = !!(valueTrue && valueFalse);
48
- // // manage default values for both toggle modes
49
- // defaultChecked = isUndefined(defaultChecked) ? false : defaultChecked;
50
- // // TODO: maybe throw an error if the defaultValue that arrives here is not
51
- // // a valid value
52
- // defaultValue =
53
- // defaultValue === valueTrue || defaultValue === valueFalse
54
- // ? defaultValue
55
- // : valueFalse;
56
- // get the value either from the uncontrolled watched input or from the given
57
- // prop to control the component
58
- let value = useWatch({
59
- name,
60
- control
61
- });
62
- if (propValue) {
63
- value = propValue;
64
- }
65
- // get the input props needed by react-hook-form, first check if we have
66
- // a `register` function, then check if we have a `control` object or just
67
- // rely on the `name` prop and `ref`, they probably would be passed alongside
68
- // an `onChange` prop that is spreaded on the inputs
69
- const inputProps = useMemo(()=>{
70
- return register ? register(name) : control ? control.register(name) : {
71
- name,
72
- ref
73
- };
74
- }, [
75
- register,
76
- control,
77
- name,
78
- ref
79
- ]);
80
- /**
81
- * Accessibility.
82
- *
83
- * Fake the spacebar keyboard behaviour on the radio mode of the checkbox.
84
- * Without this *only* the arrow keys would change the checkbox state
85
- */ const handleKeyDown = useCallback((event)=>{
86
- if (event.key === " ") {
87
- event.preventDefault();
88
- event.stopPropagation();
89
- const firstInput = event.target;
90
- const next = firstInput.nextElementSibling;
91
- const prev = firstInput.previousElementSibling;
92
- const secondInput = next?.tagName === "INPUT" ? next : prev;
93
- let target = firstInput;
94
- if (firstInput.checked) {
95
- target = secondInput;
96
- } else {
97
- if (!secondInput.checked) {
98
- target = firstInput.value === valueTrue ? firstInput : secondInput;
99
- }
100
- }
101
- if (target) target.click();
102
- }
103
- }, [
104
- valueTrue
105
- ]);
106
- // collect all the return values that are dependent on the current value
107
- // of the input
108
- const valueDependentProps = useMemo(()=>({
109
- rootProps: {
110
- htmlFor: isRadio ? !value || value === valueFalse ? idTrue : idFalse : id
111
- },
112
- label: label ? label : value,
113
- value
114
- }), [
115
- value,
116
- valueFalse,
117
- isRadio,
118
- id,
119
- idTrue,
120
- idFalse,
121
- label
122
- ]);
123
- const Inputs = useMemo(()=>isRadio ? /*#__PURE__*/ _jsxs(_Fragment, {
124
- children: [
125
- /*#__PURE__*/ _jsx(InputInvisible, {
126
- id: idFalse,
127
- ...inputProps,
128
- ...remainingInputProps,
129
- onKeyDown: handleKeyDown,
130
- type: "radio",
131
- value: valueFalse
132
- }),
133
- /*#__PURE__*/ _jsx(InputInvisible, {
134
- id: idTrue,
135
- ...inputProps,
136
- ...remainingInputProps,
137
- onKeyDown: handleKeyDown,
138
- type: "radio",
139
- value: valueTrue
140
- })
141
- ]
142
- }) : /*#__PURE__*/ _jsx(InputInvisible, {
143
- id: id,
144
- type: "checkbox",
145
- ...inputProps,
146
- ...remainingInputProps
147
- }), [
148
- inputProps,
149
- remainingInputProps,
150
- handleKeyDown,
151
- isRadio,
152
- idFalse,
153
- idTrue,
154
- valueFalse,
155
- valueTrue,
156
- id
157
- ]);
158
- // console.log("useToggle: render", value);
159
- return {
160
- ...valueDependentProps,
161
- Inputs
162
- };
163
- }