@koine/react 2.0.0-beta.14 → 2.0.0-beta.16

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 (590) 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 +16 -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 +124 -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 +60 -66
  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 +9 -11
  82. package/Dialog/DialogMui.js +39 -0
  83. package/Dialog/css/bare.d.ts +9 -10
  84. package/Dialog/css/bare.js +21 -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 +4 -14
  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 +3 -4
  98. package/Dialog/sc/material.js +21 -0
  99. package/Dialog/tw/bare.d.ts +7 -22
  100. package/Dialog/tw/bare.js +29 -0
  101. package/Dialog/tw/elegant.d.ts +6 -7
  102. package/Dialog/tw/elegant.js +21 -0
  103. package/Dialog/tw/framer.d.ts +3 -4
  104. package/Dialog/tw/framer.js +16 -0
  105. package/Dialog/tw/framerMaterial.d.ts +2 -2
  106. package/Dialog/tw/framerMaterial.js +16 -0
  107. package/Dialog/tw/material.d.ts +6 -7
  108. package/Dialog/tw/material.js +21 -0
  109. package/Editor/Editor--tiptap.js +26 -0
  110. package/Editor/components.js +10 -0
  111. package/Editor/index.d.ts +1 -1
  112. package/Editor/index.js +1 -0
  113. package/FaviconTags.d.ts +0 -10
  114. package/FaviconTags.js +6 -0
  115. package/Form/Form.d.ts +1 -14
  116. package/Form/Form.js +60 -0
  117. package/Form/index.d.ts +1 -1
  118. package/Form/index.js +1 -0
  119. package/Form/sc/bare.d.ts +1 -2
  120. package/Form/sc/bare.js +20 -0
  121. package/Forms/Checkbox/Checkbox.d.ts +1 -5
  122. package/Forms/Checkbox/Checkbox.js +15 -0
  123. package/Forms/Checkbox/index.d.ts +1 -1
  124. package/Forms/Checkbox/index.js +1 -0
  125. package/Forms/Feedback/Feedback.js +9 -0
  126. package/Forms/Feedback/index.d.ts +1 -1
  127. package/Forms/Feedback/index.js +1 -0
  128. package/Forms/Field/Field.d.ts +1 -19
  129. package/Forms/Field/Field.js +25 -0
  130. package/Forms/Field/FieldControl.d.ts +2 -14
  131. package/Forms/Field/FieldControl.js +35 -0
  132. package/Forms/Field/FieldHint.js +4 -0
  133. package/Forms/Field/index.d.ts +2 -2
  134. package/Forms/Field/index.js +2 -0
  135. package/Forms/Input/Input.d.ts +1 -2
  136. package/Forms/Input/Input.js +16 -0
  137. package/Forms/Input/index.d.ts +1 -1
  138. package/Forms/Input/index.js +1 -0
  139. package/Forms/InputGroup/InputGroup.d.ts +1 -2
  140. package/Forms/InputGroup/InputGroup.js +15 -0
  141. package/Forms/InputGroup/index.d.ts +1 -1
  142. package/Forms/InputGroup/index.js +1 -0
  143. package/Forms/Label/Label.js +6 -0
  144. package/Forms/Label/index.d.ts +1 -1
  145. package/Forms/Label/index.js +1 -0
  146. package/Forms/Password/Password.d.ts +1 -2
  147. package/Forms/Password/Password.js +17 -0
  148. package/Forms/Password/index.d.ts +1 -1
  149. package/Forms/Password/index.js +1 -0
  150. package/Forms/Radio/Radio.d.ts +1 -2
  151. package/Forms/Radio/Radio.js +25 -0
  152. package/Forms/Radio/index.d.ts +1 -1
  153. package/Forms/Radio/index.js +1 -0
  154. package/Forms/Switch/Switch.d.ts +1 -5
  155. package/Forms/Switch/Switch.js +17 -0
  156. package/Forms/Switch/index.d.ts +1 -1
  157. package/Forms/Switch/index.js +1 -0
  158. package/Forms/Textarea/Textarea.d.ts +1 -2
  159. package/Forms/Textarea/Textarea.js +12 -0
  160. package/Forms/Textarea/TextareaRich.d.ts +1 -2
  161. package/Forms/Textarea/TextareaRich.js +26 -0
  162. package/Forms/Textarea/index.d.ts +2 -2
  163. package/Forms/Textarea/index.js +2 -0
  164. package/Forms/Toggle/Toggle-tailwind.js +1 -0
  165. package/Forms/Toggle/Toggle.d.ts +0 -1
  166. package/Forms/Toggle/Toggle.js +25 -0
  167. package/Forms/Toggle/index.d.ts +1 -1
  168. package/Forms/Toggle/index.js +1 -0
  169. package/Forms/Toggle/useToggle-tailwind.js +1 -0
  170. package/Forms/Toggle/useToggle.d.ts +1 -31
  171. package/Forms/Toggle/useToggle.js +85 -0
  172. package/Forms/antispam.d.ts +0 -20
  173. package/Forms/antispam.js +29 -0
  174. package/Forms/helpers.d.ts +0 -8
  175. package/Forms/helpers.js +35 -0
  176. package/Forms/index.d.ts +15 -15
  177. package/Forms/index.js +15 -0
  178. package/Forms/styles.d.ts +0 -6
  179. package/Forms/styles.js +19 -0
  180. package/Gauge/Gauge.d.ts +0 -1
  181. package/Gauge/Gauge.js +1 -0
  182. package/Grid/Grid.d.ts +1 -10
  183. package/Grid/Grid.js +52 -0
  184. package/Grid/index.d.ts +1 -1
  185. package/Grid/index.js +1 -0
  186. package/Hamburger/Hamburger.d.ts +0 -1
  187. package/Hamburger/Hamburger.js +47 -0
  188. package/Hamburger/index.d.ts +1 -1
  189. package/Hamburger/index.js +1 -0
  190. package/Header/index.d.ts +1 -1
  191. package/Header/index.js +1 -0
  192. package/Header/useHeader.d.ts +0 -4
  193. package/Header/useHeader.js +31 -0
  194. package/Hidden/Hidden.d.ts +1 -1
  195. package/Hidden/Hidden.js +10 -0
  196. package/Hidden/index.d.ts +1 -1
  197. package/Hidden/index.js +1 -0
  198. package/Img/index.d.ts +1 -1
  199. package/Img/index.js +1 -0
  200. package/Img/sc/bare.js +4 -0
  201. package/Img/types.js +1 -0
  202. package/Link/Link.js +4 -0
  203. package/Link/LinkBlank.js +15 -0
  204. package/Link/index.d.ts +2 -2
  205. package/Link/index.js +2 -0
  206. package/Menu/Menu.js +4 -0
  207. package/Menu/MenuMui.js +1 -0
  208. package/Menu/index.d.ts +1 -1
  209. package/Menu/index.js +1 -0
  210. package/MenuItem/MenuItem.js +4 -0
  211. package/MenuItem/MenuItemMui.js +1 -0
  212. package/MenuItem/index.d.ts +1 -1
  213. package/MenuItem/index.js +1 -0
  214. package/MenuItem/useMenuItem.js +42 -0
  215. package/Meta.d.ts +5 -0
  216. package/Meta.js +6 -0
  217. package/NoJs.js +7 -0
  218. package/Pagination/PaginationNav.d.ts +1 -9
  219. package/Pagination/PaginationNav.js +48 -0
  220. package/Pagination/PaginationResults.js +11 -0
  221. package/Pagination/index.d.ts +2 -2
  222. package/Pagination/index.js +2 -0
  223. package/Pill/Pill.js +7 -0
  224. package/Pill/index.d.ts +1 -1
  225. package/Pill/index.js +1 -0
  226. package/Progress/ProgressCircular.d.ts +1 -7
  227. package/Progress/ProgressCircular.js +12 -0
  228. package/Progress/ProgressLinear.d.ts +1 -8
  229. package/Progress/ProgressLinear.js +21 -0
  230. package/Progress/ProgressOverlay.js +23 -0
  231. package/Progress/index.d.ts +3 -3
  232. package/Progress/index.js +3 -0
  233. package/Rating/Rating.d.ts +0 -8
  234. package/Rating/Rating.js +43 -0
  235. package/Rating/index.d.ts +1 -4
  236. package/Rating/index.js +45 -0
  237. package/Select/SelectDownshift.d.ts +1 -1
  238. package/Select/SelectDownshift.js +1 -0
  239. package/Select/components.js +12 -0
  240. package/Select/index.d.ts +2 -2
  241. package/Select/index.js +1 -0
  242. package/Sidebar/Sidebar.js +23 -0
  243. package/Sidebar/index.d.ts +1 -1
  244. package/Sidebar/index.js +1 -0
  245. package/Spacing/Spacing.d.ts +1 -14
  246. package/Spacing/Spacing.js +32 -0
  247. package/Spacing/index.d.ts +1 -1
  248. package/Spacing/index.js +1 -0
  249. package/Sticky/Sticky.js +1 -0
  250. package/Sticky/StickyCss.js +6 -0
  251. package/Sticky/index.d.ts +1 -1
  252. package/Sticky/index.js +1 -0
  253. package/Tabs/TabsMui.d.ts +6 -7
  254. package/Tabs/TabsMui.js +30 -0
  255. package/Tabs/index.d.ts +1 -1
  256. package/Tabs/index.js +1 -0
  257. package/Tabs/sc/bare.d.ts +0 -5
  258. package/Tabs/sc/bare.js +1 -0
  259. package/Tabs/tw/bare.d.ts +5 -6
  260. package/Tabs/tw/bare.js +17 -0
  261. package/Tabs/tw/material.d.ts +2 -3
  262. package/Tabs/tw/material.js +19 -0
  263. package/Tabs/useTabs.d.ts +0 -22
  264. package/Tabs/useTabs.js +43 -0
  265. package/Typography/CopyPasteVisible.js +4 -0
  266. package/Typography/Native.js +14 -0
  267. package/Typography/ReadMore.d.ts +0 -2
  268. package/Typography/ReadMore.js +42 -0
  269. package/Typography/TextLoop.js +45 -0
  270. package/Typography/TypeStairs.js +42 -0
  271. package/Typography/index.d.ts +5 -5
  272. package/Typography/index.js +5 -0
  273. package/classed.d.ts +8 -0
  274. package/classed.js +43 -0
  275. package/{helpers/createUseMediaQueryWidth.d.ts → createUseMediaQueryWidth.d.ts} +1 -7
  276. package/createUseMediaQueryWidth.js +38 -0
  277. package/css/index.d.ts +1 -2
  278. package/css/index.js +1 -0
  279. package/{helpers/extend-component.d.ts → extendComponent.d.ts} +0 -11
  280. package/extendComponent.js +9 -0
  281. package/index.d.ts +25 -1
  282. package/index.js +24 -0
  283. package/m/MotionProvider.d.ts +0 -32
  284. package/m/MotionProvider.js +7 -0
  285. package/m/index.d.ts +1 -6
  286. package/m/index.js +1 -0
  287. package/{helpers/mergeRefs.mjs → mergeRefs.js} +4 -3
  288. package/package.json +609 -22
  289. package/sc/index.d.ts +29 -30
  290. package/sc/index.js +29 -0
  291. package/scm/index.d.ts +28 -29
  292. package/scm/index.js +28 -0
  293. package/shared/index.d.ts +7 -8
  294. package/shared/index.js +7 -0
  295. package/styles/Body.d.ts +0 -8
  296. package/styles/Body.js +5 -0
  297. package/styles/Global.d.ts +0 -13
  298. package/styles/Global.js +5 -0
  299. package/styles/index.d.ts +7 -7
  300. package/styles/index.js +7 -0
  301. package/styles/media.d.ts +1 -50
  302. package/styles/media.js +74 -0
  303. package/styles/spacing.d.ts +1 -2
  304. package/styles/spacing.js +45 -0
  305. package/styles/styled.d.ts +0 -4
  306. package/styles/styled.js +9 -0
  307. package/styles/theme--vanilla.js +46 -0
  308. package/styles/theme.d.ts +0 -29
  309. package/styles/theme.js +30 -0
  310. package/tw/index.d.ts +1 -2
  311. package/tw/index.js +1 -0
  312. package/twm/index.d.ts +1 -2
  313. package/twm/index.js +1 -0
  314. package/types.d.ts +3 -2
  315. package/types.js +1 -0
  316. package/{hooks/useAsyncFn.d.ts → useAsyncFn.d.ts} +1 -4
  317. package/useAsyncFn.js +33 -0
  318. package/useDateLocale.d.ts +2 -0
  319. package/useDateLocale.js +28 -0
  320. package/useFirstMountState.d.ts +2 -0
  321. package/useFirstMountState.js +10 -0
  322. package/useFixedOffset.d.ts +3 -0
  323. package/useFixedOffset.js +42 -0
  324. package/{hooks/useFocus.d.ts → useFocus.d.ts} +0 -3
  325. package/useFocus.js +9 -0
  326. package/useInterval.d.ts +2 -0
  327. package/useInterval.js +22 -0
  328. package/useIsomorphicLayoutEffect.d.ts +3 -0
  329. package/useIsomorphicLayoutEffect.js +6 -0
  330. package/useKeyUp.js +18 -0
  331. package/{hooks/useMeasure.d.ts → useMeasure.d.ts} +0 -5
  332. package/useMeasure.js +130 -0
  333. package/useMountedState.d.ts +2 -0
  334. package/useMountedState.js +13 -0
  335. package/useNavigateAway.d.ts +3 -0
  336. package/useNavigateAway.js +25 -0
  337. package/usePrevious.d.ts +2 -0
  338. package/usePrevious.js +9 -0
  339. package/{hooks/usePreviousRef.mjs → usePreviousRef.js} +2 -2
  340. package/{hooks/useScrollPosition.d.ts → useScrollPosition.d.ts} +0 -7
  341. package/useScrollPosition.js +61 -0
  342. package/useScrollThreshold.js +26 -0
  343. package/useScrollTo.js +22 -0
  344. package/{hooks/useSmoothScroll.d.ts → useSmoothScroll.d.ts} +0 -6
  345. package/useSmoothScroll.js +32 -0
  346. package/useSpinDelay.d.ts +2 -0
  347. package/useSpinDelay.js +38 -0
  348. package/{hooks/useTraceUpdate.d.ts → useTraceUpdate.d.ts} +0 -3
  349. package/useTraceUpdate.js +18 -0
  350. package/{hooks/useUpdateEffect.d.ts → useUpdateEffect.d.ts} +0 -3
  351. package/useUpdateEffect.js +11 -0
  352. package/useWindowSize.d.ts +3 -0
  353. package/useWindowSize.js +19 -0
  354. package/Alert/Alert.mjs +0 -22
  355. package/Alert/Alert.stories.mjs +0 -18
  356. package/Alert/index.mjs +0 -1
  357. package/Animations/Reveal.mjs +0 -43
  358. package/Animations/Underline.mjs +0 -15
  359. package/Animations/index.mjs +0 -3
  360. package/Animations/useReveal.mjs +0 -73
  361. package/Autocomplete/AutocompleteDownshift.mjs +0 -157
  362. package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
  363. package/Autocomplete/AutocompleteMui.mjs +0 -219
  364. package/Autocomplete/AutocompleteReach.mjs +0 -111
  365. package/Autocomplete/components.mjs +0 -87
  366. package/Autocomplete/helpers.mjs +0 -35
  367. package/Autocomplete/index.mjs +0 -4
  368. package/Bg/BgColor.mjs +0 -42
  369. package/Bg/BgPhoto.mjs +0 -71
  370. package/Bg/BgSvg.mjs +0 -22
  371. package/Bg/index.mjs +0 -3
  372. package/Breadcrumbs/Breadcrumbs.mjs +0 -91
  373. package/Breadcrumbs/index.mjs +0 -1
  374. package/Buttons/Button.mjs +0 -78
  375. package/Buttons/ButtonComposite.mjs +0 -105
  376. package/Buttons/ButtonFab.mjs +0 -8
  377. package/Buttons/ButtonLink.mjs +0 -18
  378. package/Buttons/IconButton.mjs +0 -19
  379. package/Buttons/index.mjs +0 -5
  380. package/Calendar/CalendarDaygridCell.mjs +0 -95
  381. package/Calendar/CalendarDaygridNav.mjs +0 -52
  382. package/Calendar/CalendarDaygridTable.mjs +0 -115
  383. package/Calendar/CalendarLegend.mjs +0 -29
  384. package/Calendar/calendar-api-google.mjs +0 -99
  385. package/Calendar/index.mjs +0 -6
  386. package/Calendar/types.mjs +0 -1
  387. package/Calendar/useCalendar.mjs +0 -225
  388. package/Calendar/utils.mjs +0 -209
  389. package/Carousel/Carousel.mjs +0 -377
  390. package/Carousel/CarouselCss.mjs +0 -44
  391. package/Carousel/index.mjs +0 -1
  392. package/Collapsable/Collapsable.mjs +0 -1
  393. package/Collapsable/CollapsableReach.mjs +0 -250
  394. package/Collapsable/index.mjs +0 -1
  395. package/Debug/Debug.mjs +0 -23
  396. package/Debug/index.mjs +0 -1
  397. package/Details/Details.mjs +0 -90
  398. package/Details/Details.stories.mjs +0 -21
  399. package/Details/index.mjs +0 -1
  400. package/Dialog/DialogMui.mjs +0 -105
  401. package/Dialog/DialogMui.stories.mjs +0 -20
  402. package/Dialog/css/bare.mjs +0 -19
  403. package/Dialog/css/index.stories.mjs +0 -75
  404. package/Dialog/index.mjs +0 -1
  405. package/Dialog/m/bare.mjs +0 -115
  406. package/Dialog/m/basic.mjs +0 -31
  407. package/Dialog/m/index.mjs +0 -4
  408. package/Dialog/sc/bare.mjs +0 -54
  409. package/Dialog/sc/framer.mjs +0 -16
  410. package/Dialog/sc/framerMaterial.mjs +0 -16
  411. package/Dialog/sc/index.stories.mjs +0 -48
  412. package/Dialog/sc/material.mjs +0 -41
  413. package/Dialog/tw/bare.mjs +0 -29
  414. package/Dialog/tw/elegant.mjs +0 -18
  415. package/Dialog/tw/framer.mjs +0 -16
  416. package/Dialog/tw/framerMaterial.mjs +0 -16
  417. package/Dialog/tw/index.stories.mjs +0 -83
  418. package/Dialog/tw/material.mjs +0 -18
  419. package/Editor/Editor--tiptap.mjs +0 -53
  420. package/Editor/components.mjs +0 -28
  421. package/Editor/index.mjs +0 -1
  422. package/FaviconTags.mjs +0 -64
  423. package/Form/Form.mjs +0 -95
  424. package/Form/index.mjs +0 -1
  425. package/Form/sc/bare.mjs +0 -29
  426. package/Forms/Checkbox/Checkbox.mjs +0 -36
  427. package/Forms/Checkbox/index.mjs +0 -1
  428. package/Forms/Feedback/Feedback.mjs +0 -14
  429. package/Forms/Feedback/index.mjs +0 -1
  430. package/Forms/Field/Field.mjs +0 -50
  431. package/Forms/Field/FieldControl.mjs +0 -67
  432. package/Forms/Field/FieldHint.mjs +0 -6
  433. package/Forms/Field/index.mjs +0 -2
  434. package/Forms/Input/Input.mjs +0 -36
  435. package/Forms/Input/index.mjs +0 -1
  436. package/Forms/InputGroup/InputGroup.mjs +0 -57
  437. package/Forms/InputGroup/index.mjs +0 -1
  438. package/Forms/Label/Label.mjs +0 -24
  439. package/Forms/Label/index.mjs +0 -1
  440. package/Forms/Password/Password.mjs +0 -53
  441. package/Forms/Password/index.mjs +0 -1
  442. package/Forms/Radio/Radio.mjs +0 -57
  443. package/Forms/Radio/index.mjs +0 -1
  444. package/Forms/Switch/Switch.mjs +0 -60
  445. package/Forms/Switch/index.mjs +0 -1
  446. package/Forms/Textarea/Textarea.mjs +0 -26
  447. package/Forms/Textarea/TextareaRich.mjs +0 -48
  448. package/Forms/Textarea/index.mjs +0 -2
  449. package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
  450. package/Forms/Toggle/Toggle.mjs +0 -123
  451. package/Forms/Toggle/index.mjs +0 -1
  452. package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
  453. package/Forms/Toggle/useToggle.mjs +0 -163
  454. package/Forms/antispam.mjs +0 -58
  455. package/Forms/helpers.mjs +0 -52
  456. package/Forms/index.mjs +0 -16
  457. package/Forms/styles.mjs +0 -61
  458. package/Gauge/Gauge.mjs +0 -101
  459. package/Grid/Grid.mjs +0 -75
  460. package/Grid/index.mjs +0 -1
  461. package/Hamburger/Hamburger.mjs +0 -79
  462. package/Hamburger/index.mjs +0 -1
  463. package/Header/index.mjs +0 -1
  464. package/Header/useHeader.mjs +0 -36
  465. package/Hidden/Hidden.mjs +0 -10
  466. package/Hidden/index.mjs +0 -1
  467. package/Img/index.mjs +0 -1
  468. package/Img/sc/bare.mjs +0 -36
  469. package/Img/types.mjs +0 -1
  470. package/Link/Link.mjs +0 -2
  471. package/Link/LinkBlank.mjs +0 -32
  472. package/Link/index.mjs +0 -2
  473. package/Menu/Menu.mjs +0 -11
  474. package/Menu/MenuMui.mjs +0 -164
  475. package/Menu/index.mjs +0 -1
  476. package/MenuItem/MenuItem.mjs +0 -20
  477. package/MenuItem/MenuItemMui.mjs +0 -31
  478. package/MenuItem/index.mjs +0 -1
  479. package/MenuItem/useMenuItem.mjs +0 -78
  480. package/Meta/Meta.d.ts +0 -15
  481. package/Meta/Meta.mjs +0 -8
  482. package/Meta/index.d.ts +0 -2
  483. package/Meta/index.mjs +0 -2
  484. package/NoJs/NoJs.mjs +0 -10
  485. package/NoJs/index.d.ts +0 -2
  486. package/NoJs/index.mjs +0 -2
  487. package/Pagination/PaginationNav.mjs +0 -122
  488. package/Pagination/PaginationResults.mjs +0 -34
  489. package/Pagination/index.mjs +0 -2
  490. package/Pill/Pill.mjs +0 -37
  491. package/Pill/index.mjs +0 -1
  492. package/Progress/ProgressCircular.mjs +0 -53
  493. package/Progress/ProgressLinear.mjs +0 -44
  494. package/Progress/ProgressOverlay.mjs +0 -64
  495. package/Progress/index.mjs +0 -3
  496. package/README.md +0 -1
  497. package/Rating/Rating.mjs +0 -154
  498. package/Rating/index.mjs +0 -62
  499. package/Select/SelectDownshift.mjs +0 -37
  500. package/Select/components.mjs +0 -25
  501. package/Select/index.mjs +0 -2
  502. package/Sidebar/Sidebar.mjs +0 -63
  503. package/Sidebar/index.mjs +0 -1
  504. package/Spacing/Spacing.mjs +0 -55
  505. package/Spacing/index.mjs +0 -1
  506. package/Sticky/Sticky.mjs +0 -218
  507. package/Sticky/StickyCss.mjs +0 -10
  508. package/Sticky/index.mjs +0 -1
  509. package/Tabs/TabsMui.mjs +0 -61
  510. package/Tabs/TabsMui.stories.mjs +0 -20
  511. package/Tabs/index.mjs +0 -1
  512. package/Tabs/sc/bare.mjs +0 -85
  513. package/Tabs/sc/index.stories.mjs +0 -0
  514. package/Tabs/tw/bare.mjs +0 -15
  515. package/Tabs/tw/index.stories.mjs +0 -25
  516. package/Tabs/tw/material.mjs +0 -14
  517. package/Tabs/useTabs.mjs +0 -46
  518. package/Typography/CopyPasteVisible.mjs +0 -6
  519. package/Typography/Native.mjs +0 -47
  520. package/Typography/ReadMore.mjs +0 -114
  521. package/Typography/TextLoop.mjs +0 -90
  522. package/Typography/TypeStairs.mjs +0 -61
  523. package/Typography/index.mjs +0 -5
  524. package/css/index.mjs +0 -30
  525. package/helpers/classed.d.ts +0 -27
  526. package/helpers/classed.mjs +0 -65
  527. package/helpers/classed.stories.mjs +0 -121
  528. package/helpers/createUseMediaQueryWidth.mjs +0 -178
  529. package/helpers/extend-component.mjs +0 -13
  530. package/helpers/index.d.ts +0 -4
  531. package/helpers/index.mjs +0 -4
  532. package/hooks/index.d.ts +0 -20
  533. package/hooks/index.mjs +0 -21
  534. package/hooks/types.d.ts +0 -8
  535. package/hooks/types.mjs +0 -3
  536. package/hooks/useAsyncFn.mjs +0 -39
  537. package/hooks/useDateLocale.d.ts +0 -8
  538. package/hooks/useDateLocale.mjs +0 -37
  539. package/hooks/useFirstMountState.d.ts +0 -5
  540. package/hooks/useFirstMountState.mjs +0 -12
  541. package/hooks/useFixedOffset.d.ts +0 -12
  542. package/hooks/useFixedOffset.mjs +0 -56
  543. package/hooks/useFocus.mjs +0 -14
  544. package/hooks/useInterval.d.ts +0 -7
  545. package/hooks/useInterval.mjs +0 -29
  546. package/hooks/useIsomorphicLayoutEffect.d.ts +0 -6
  547. package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
  548. package/hooks/useKeyUp.mjs +0 -21
  549. package/hooks/useMeasure.mjs +0 -174
  550. package/hooks/useMountedState.d.ts +0 -5
  551. package/hooks/useMountedState.mjs +0 -15
  552. package/hooks/useNavigateAway.d.ts +0 -32
  553. package/hooks/useNavigateAway.mjs +0 -69
  554. package/hooks/usePrevious.d.ts +0 -5
  555. package/hooks/usePrevious.mjs +0 -17
  556. package/hooks/useScrollPosition.mjs +0 -70
  557. package/hooks/useScrollThreshold.mjs +0 -33
  558. package/hooks/useScrollTo.mjs +0 -20
  559. package/hooks/useSmoothScroll.mjs +0 -35
  560. package/hooks/useSpinDelay.d.ts +0 -14
  561. package/hooks/useSpinDelay.mjs +0 -52
  562. package/hooks/useTraceUpdate.mjs +0 -23
  563. package/hooks/useUpdateEffect.mjs +0 -14
  564. package/hooks/useWindowSize.d.ts +0 -12
  565. package/hooks/useWindowSize.mjs +0 -32
  566. package/index.mjs +0 -4
  567. package/m/MotionProvider.mjs +0 -40
  568. package/m/index.mjs +0 -5
  569. package/sc/index.mjs +0 -31
  570. package/scm/index.mjs +0 -31
  571. package/shared/index.mjs +0 -43
  572. package/styles/Body.mjs +0 -16
  573. package/styles/Global.mjs +0 -49
  574. package/styles/index.mjs +0 -7
  575. package/styles/media.mjs +0 -151
  576. package/styles/spacing.mjs +0 -46
  577. package/styles/styled.mjs +0 -26
  578. package/styles/theme--vanilla.mjs +0 -65
  579. package/styles/theme.mjs +0 -38
  580. package/tw/index.mjs +0 -30
  581. package/twm/index.mjs +0 -30
  582. package/types.mjs +0 -1
  583. /package/{NoJs/NoJs.d.ts → NoJs.d.ts} +0 -0
  584. /package/m/{lite.mjs → lite.js} +0 -0
  585. /package/m/{max.mjs → max.js} +0 -0
  586. /package/{helpers/mergeRefs.d.ts → mergeRefs.d.ts} +0 -0
  587. /package/{hooks/useKeyUp.d.ts → useKeyUp.d.ts} +0 -0
  588. /package/{hooks/usePreviousRef.d.ts → usePreviousRef.d.ts} +0 -0
  589. /package/{hooks/useScrollThreshold.d.ts → useScrollThreshold.d.ts} +0 -0
  590. /package/{hooks/useScrollTo.d.ts → useScrollTo.d.ts} +0 -0
@@ -1,39 +0,0 @@
1
- import React, { useCallback, useRef, useState } from "react";
2
- import { useMountedState } from "./useMountedState";
3
- /**
4
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useAsyncFn.ts)
5
- */ export function useAsyncFn(fn, deps = [], initialState = {
6
- loading: false
7
- }) {
8
- const lastCallId = useRef(0);
9
- const isMounted = useMountedState();
10
- const [state, set] = useState(initialState);
11
- const callback = useCallback((...args)=>{
12
- const callId = ++lastCallId.current;
13
- if (!state.loading) {
14
- set((prevState)=>({
15
- ...prevState,
16
- loading: true
17
- }));
18
- }
19
- return fn(...args).then((value)=>{
20
- isMounted() && callId === lastCallId.current && set({
21
- value,
22
- loading: false
23
- });
24
- return value;
25
- }, (error)=>{
26
- isMounted() && callId === lastCallId.current && set({
27
- error,
28
- loading: false
29
- });
30
- return error;
31
- });
32
- // eslint-disable-next-line react-hooks/exhaustive-deps
33
- }, deps);
34
- return [
35
- state,
36
- callback
37
- ];
38
- }
39
- export default useAsyncFn;
@@ -1,8 +0,0 @@
1
- /**
2
- * Dynamically import the date-fns correct locale
3
- *
4
- * Inspired by:
5
- * @see https://robertmarshall.dev/blog/dynamically-import-datefns-locale-mui-datepicker-localization/
6
- */
7
- export declare function useDateLocale(locale?: string, defaultLocale?: string): globalThis.Locale | undefined;
8
- export default useDateLocale;
@@ -1,37 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- /**
3
- * Dynamically import the date-fns correct locale
4
- *
5
- * Inspired by:
6
- * @see https://robertmarshall.dev/blog/dynamically-import-datefns-locale-mui-datepicker-localization/
7
- */ export function useDateLocale(locale, defaultLocale = "en") {
8
- const [data, setData] = useState();
9
- const [current, setCurrent] = useState(defaultLocale);
10
- // const [ready, setReady] = useState(false);
11
- // If the user changes the locale listen to the change and import the locale that is now required.
12
- useEffect(()=>{
13
- const importLocaleFile = async ()=>{
14
- // This webpack option stops all of the date-fns files being imported and chunked.
15
- // NB: this makes unnecessary numerous webpack chunks in applications
16
- // that do not even use this hook, so we comment out the webpack dynamic
17
- // import and its magic comment
18
- // const localeToSet = await import(
19
- // /FIXME: * webpackMode: "lazy", webpackChunkName: "df-[index]", webpackExclude: /_lib/ */
20
- // `date-fns/locale/${locale}/index.js`,
21
- // );
22
- const localeToSet = await import(`date-fns/locale/en-US/index.js`);
23
- setCurrent(locale || current);
24
- setData(localeToSet.default);
25
- // setReady(true);
26
- };
27
- // If the locale has not yet been loaded.
28
- if (locale !== current) {
29
- importLocaleFile();
30
- }
31
- }, [
32
- locale,
33
- current
34
- ]);
35
- return data;
36
- }
37
- export default useDateLocale;
@@ -1,5 +0,0 @@
1
- /**
2
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useFirstMountState.ts)
3
- */
4
- export declare function useFirstMountState(): boolean;
5
- export default useFirstMountState;
@@ -1,12 +0,0 @@
1
- import { useRef } from "react";
2
- /**
3
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useFirstMountState.ts)
4
- */ export function useFirstMountState() {
5
- const isFirst = useRef(true);
6
- if (isFirst.current) {
7
- isFirst.current = false;
8
- return true;
9
- }
10
- return isFirst.current;
11
- }
12
- export default useFirstMountState;
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- /**
3
- * # Use fixed offset
4
- *
5
- * Maybe use [ResizeObserver polyfill](https://github.com/juggle/resize-observer)
6
- *
7
- * @see https://web.dev/resize-observer/
8
- *
9
- * @param selector By default `[data-fixed]`: anyhting with the data attribute `data-fixed`
10
- */
11
- export declare function useFixedOffset(selector?: string): import("react").MutableRefObject<number>;
12
- export default useFixedOffset;
@@ -1,56 +0,0 @@
1
- import { useRef } from "react";
2
- import debounce from "@koine/utils/debounce";
3
- import $each from "@koine/dom/$each";
4
- import calculateFixedOffset from "@koine/dom/calculateFixedOffset";
5
- import injectCss from "@koine/dom/injectCss";
6
- import listenResizeDebounced from "@koine/dom/listenResizeDebounced";
7
- import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect";
8
- const inject = (value)=>{
9
- injectCss("useFixedOffset", `html{scroll-padding-top: ${value}px}`);
10
- };
11
- /**
12
- * # Use fixed offset
13
- *
14
- * Maybe use [ResizeObserver polyfill](https://github.com/juggle/resize-observer)
15
- *
16
- * @see https://web.dev/resize-observer/
17
- *
18
- * @param selector By default `[data-fixed]`: anyhting with the data attribute `data-fixed`
19
- */ export function useFixedOffset(selector) {
20
- const fixedOffset = useRef(0);
21
- useIsomorphicLayoutEffect(()=>{
22
- const update = ()=>{
23
- const newFixedOffset = calculateFixedOffset();
24
- fixedOffset.current = newFixedOffset;
25
- // inject this CSS make the hashed deeplinks position the scroll at the
26
- // right offset
27
- inject(newFixedOffset);
28
- };
29
- update();
30
- if (ResizeObserver) {
31
- // const elements = $$("[data-fixed]");
32
- const observer = new ResizeObserver((entries)=>{
33
- let newFixedOffset = 0;
34
- entries.forEach((entry)=>{
35
- newFixedOffset += entry.contentRect.height;
36
- });
37
- fixedOffset.current = newFixedOffset;
38
- const updateOnResize = debounce(()=>inject(newFixedOffset), 400, true);
39
- updateOnResize();
40
- });
41
- $each(selector || "[data-fixed]", ($el)=>{
42
- if (observer) observer.observe($el);
43
- });
44
- return ()=>{
45
- observer?.disconnect();
46
- };
47
- } else {
48
- const listener = listenResizeDebounced(0, update);
49
- return listener;
50
- }
51
- }, [
52
- selector
53
- ]);
54
- return fixedOffset;
55
- }
56
- export default useFixedOffset;
@@ -1,14 +0,0 @@
1
- import { useRef } from "react";
2
- /**
3
- * @see https://stackoverflow.com/a/54159564/1938970
4
- */ export const useFocus = ()=>{
5
- const elementRef = useRef(null);
6
- const setFocus = ()=>{
7
- elementRef.current && elementRef.current.focus();
8
- };
9
- return [
10
- elementRef,
11
- setFocus
12
- ];
13
- };
14
- export default useFocus;
@@ -1,7 +0,0 @@
1
- /**
2
- * @borrows [dan abramov](https://overreacted.io/making-setinterval-declarative-with-react-hooks/)
3
- *
4
- * We just add `deps` array argument and typescript support
5
- */
6
- export declare function useInterval<T extends () => unknown>(callback: T, delay: number, deps?: unknown[]): void;
7
- export default useInterval;
@@ -1,29 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
- import noop from "@koine/utils/noop";
3
- /**
4
- * @borrows [dan abramov](https://overreacted.io/making-setinterval-declarative-with-react-hooks/)
5
- *
6
- * We just add `deps` array argument and typescript support
7
- */ export function useInterval(callback, delay, deps = []) {
8
- const savedCallback = useRef();
9
- useEffect(()=>{
10
- savedCallback.current = callback;
11
- // eslint-disable-next-line react-hooks/exhaustive-deps
12
- }, [
13
- callback,
14
- ...deps
15
- ]);
16
- useEffect(()=>{
17
- function tick() {
18
- if (savedCallback.current) savedCallback.current();
19
- }
20
- if (delay !== null) {
21
- const id = setInterval(tick, delay);
22
- return ()=>clearInterval(id);
23
- }
24
- return noop;
25
- }, [
26
- delay
27
- ]);
28
- }
29
- export default useInterval;
@@ -1,6 +0,0 @@
1
- import { useEffect } from "react";
2
- /**
3
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts)
4
- */
5
- export declare const useIsomorphicLayoutEffect: typeof useEffect;
6
- export default useIsomorphicLayoutEffect;
@@ -1,6 +0,0 @@
1
- import { useEffect, useLayoutEffect } from "react";
2
- import isBrowser from "@koine/utils/isBrowser";
3
- /**
4
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts)
5
- */ export const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
6
- export default useIsomorphicLayoutEffect;
@@ -1,21 +0,0 @@
1
- import { useEffect } from "react";
2
- import on from "@koine/dom/on";
3
- export function useKeyUp(callback, deps = []) {
4
- useEffect(()=>{
5
- const listener = on(window, "keyup", (event)=>{
6
- // const { key } = event;
7
- // be sure we do not intercept keys combinations maybe used for other
8
- // actions like native browser navigation shortcuts
9
- // @see https://stackoverflow.com/a/37559790/1938970
10
- if (!event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey) {
11
- callback(event);
12
- }
13
- });
14
- return listener;
15
- // eslint-disable-next-line react-hooks/exhaustive-deps
16
- }, [
17
- callback,
18
- ...deps
19
- ]);
20
- }
21
- export default useKeyUp;
@@ -1,174 +0,0 @@
1
- import { useEffect, useMemo, useRef, useState } from "react";
2
- import debounce from "@koine/utils/debounce";
3
- import noop from "@koine/utils/noop";
4
- import listenResizeDebounced from "@koine/dom/listenResizeDebounced";
5
- import listenScrollDebounced from "@koine/dom/listenScrollDebounced";
6
- import off from "@koine/dom/off";
7
- import on from "@koine/dom/on";
8
- let observer;
9
- // Returns a list of scroll offsets
10
- function findScrollContainers(element) {
11
- const result = [];
12
- if (!element || element === document.body) return result;
13
- const { overflow, overflowX, overflowY } = window.getComputedStyle(element);
14
- if ([
15
- overflow,
16
- overflowX,
17
- overflowY
18
- ].some((prop)=>prop === "auto" || prop === "scroll")) result.push(element);
19
- return [
20
- ...result,
21
- ...findScrollContainers(element.parentElement)
22
- ];
23
- }
24
- const keys = [
25
- "x",
26
- "y",
27
- "top",
28
- "bottom",
29
- "left",
30
- "right",
31
- "width",
32
- "height"
33
- ];
34
- const areBoundsEqual = (a, b)=>keys.every((key)=>a[key] === b[key]);
35
- /**
36
- * Use measure hook
37
- *
38
- * @borrows [pmndrs/react-use-measure](https://github.com/pmndrs/react-use-measure)
39
- */ export function useMeasure(options) {
40
- const { scroll = false } = options || {};
41
- const [bounds, setBounds] = useState({
42
- left: 0,
43
- top: 0,
44
- width: 0,
45
- height: 0,
46
- bottom: 0,
47
- right: 0,
48
- x: 0,
49
- y: 0
50
- });
51
- // keep all state in a ref
52
- const state = useRef([
53
- // element
54
- null,
55
- // scrollContainers
56
- null,
57
- // resizeObserver
58
- null,
59
- // lastBounds
60
- bounds
61
- ]);
62
- // make sure to update state only as long as the component is truly mounted
63
- const mounted = useRef(false);
64
- useEffect(()=>{
65
- mounted.current = true;
66
- return ()=>void (mounted.current = false);
67
- }, []);
68
- // memoize handlers, so event-listeners know when they should update
69
- const [forceRefresh /* resizeChange */ , , scrollChange] = useMemo(()=>{
70
- const callback = (..._args)=>{
71
- const [element, , , lastBounds] = state.current;
72
- if (!element) return;
73
- const size = element.getBoundingClientRect();
74
- // if (element instanceof HTMLElement && offsetSize) {
75
- // size.height = element.offsetHeight;
76
- // size.width = element.offsetWidth;
77
- // }
78
- Object.freeze(size);
79
- if (mounted.current && !areBoundsEqual(lastBounds, size)) {
80
- state.current[3] = size;
81
- setBounds(size);
82
- }
83
- };
84
- const debouncedCallback = debounce(callback);
85
- return [
86
- callback,
87
- debouncedCallback,
88
- debouncedCallback
89
- ];
90
- }, [
91
- setBounds /* , offsetSize */
92
- ]);
93
- // cleanup current scroll-listeners / observers
94
- function removeListeners() {
95
- const [, scrollContainers, resizeObserver] = state.current;
96
- if (scrollContainers) {
97
- scrollContainers.forEach((element)=>off(element, "scroll", scrollChange));
98
- state.current[1] = null;
99
- }
100
- if (resizeObserver) {
101
- resizeObserver.disconnect();
102
- state.current[2] = null;
103
- }
104
- }
105
- // add scroll-listeners / observers
106
- function addListeners() {
107
- const [element, scrollContainers] = state.current;
108
- if (!element) return;
109
- if (!observer && ResizeObserver) {
110
- observer = new ResizeObserver(scrollChange);
111
- state.current[2] = observer;
112
- observer.observe(element);
113
- if (scroll && scrollContainers) {
114
- scrollContainers.forEach((scrollContainer)=>on(scrollContainer, "scroll", scrollChange, {
115
- capture: true,
116
- passive: true
117
- }));
118
- }
119
- }
120
- }
121
- // the ref we expose to the user
122
- const ref = (node)=>{
123
- if (!node || node === state.current[0]) return;
124
- removeListeners();
125
- state.current[0] = node;
126
- state.current[1] = findScrollContainers(node);
127
- addListeners();
128
- };
129
- // add general event listeners
130
- // useOnWindowScroll(forceRefresh, Boolean(scroll));
131
- // useOnWindowResize(() => {
132
- // debugger;
133
- // forceRefresh();
134
- // });
135
- useEffect(()=>{
136
- if (scroll) {
137
- const listener = listenScrollDebounced(0, forceRefresh, 100);
138
- return listener;
139
- }
140
- return noop;
141
- }, [
142
- scroll,
143
- forceRefresh
144
- ]);
145
- useEffect(()=>{
146
- // const listener = listenResizeDebounced(onWindowResize);
147
- // return listener;
148
- const listener = listenResizeDebounced(0, forceRefresh, 100);
149
- return listener;
150
- }, [
151
- forceRefresh
152
- ]);
153
- // respond to changes that are relevant for the listeners
154
- useEffect(()=>{
155
- removeListeners();
156
- addListeners();
157
- // eslint-disable-next-line react-hooks/exhaustive-deps
158
- }, [
159
- scroll /* , scrollChange, resizeChange */
160
- ]);
161
- useEffect(()=>{
162
- // operate on mount, @kuus on the original version there is no call on mount?
163
- forceRefresh();
164
- // remove all listeners when the components unmounts
165
- return removeListeners;
166
- // eslint-disable-next-line react-hooks/exhaustive-deps
167
- }, []);
168
- return [
169
- ref,
170
- bounds,
171
- forceRefresh
172
- ];
173
- }
174
- export default useMeasure;
@@ -1,5 +0,0 @@
1
- /**
2
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useMountedState.ts)
3
- */
4
- export declare function useMountedState(): () => boolean;
5
- export default useMountedState;
@@ -1,15 +0,0 @@
1
- import { useCallback, useEffect, useRef } from "react";
2
- /**
3
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useMountedState.ts)
4
- */ export function useMountedState() {
5
- const mountedRef = useRef(false);
6
- const get = useCallback(()=>mountedRef.current, []);
7
- useEffect(()=>{
8
- mountedRef.current = true;
9
- return ()=>{
10
- mountedRef.current = false;
11
- };
12
- }, []);
13
- return get;
14
- }
15
- export default useMountedState;
@@ -1,32 +0,0 @@
1
- /**
2
- * @return A custom error message (most browser will ignore it), or just a
3
- * boolean to signal whether we want to prompt the user
4
- *
5
- * We might instead return an array with the above as first element and two
6
- * callbacks, but the callback technique is too cumbersome and unreliable
7
- * probably:
8
- * 2) A callback on confirmed leaving
9
- * 3) A callback on cancel, user stays on page
10
- */
11
- export type UseNavigateAwayHandler = (event: BeforeUnloadEvent) => string | boolean;
12
- /**
13
- * @resources
14
- *
15
- * About browser's specs see:
16
- * - https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event
17
- * - https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5
18
- * - https://stackoverflow.com/questions/58009424/pagehide-event-on-google-chrome
19
- *
20
- * About react see:
21
- * - https://github.com/jacobbuck/react-beforeunload
22
- * - https://github.com/dioscarey/react-beforeunload-component
23
- *
24
- * About next.js see:
25
- * - https://github.com/vercel/next.js/issues/2476
26
- * - https://github.com/vercel/next.js/issues/2694
27
- *
28
- * For the callback technique see:
29
- * - https://stackoverflow.com/a/11835394/1938970
30
- */
31
- export declare const useNavigateAway: (handler: UseNavigateAwayHandler) => void;
32
- export default useNavigateAway;
@@ -1,69 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
- import on from "@koine/dom/on";
3
- // type UseNavigateAwayPagehideHandler = (event: PageTransitionEvent) => unknown;
4
- /**
5
- * @resources
6
- *
7
- * About browser's specs see:
8
- * - https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event
9
- * - https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5
10
- * - https://stackoverflow.com/questions/58009424/pagehide-event-on-google-chrome
11
- *
12
- * About react see:
13
- * - https://github.com/jacobbuck/react-beforeunload
14
- * - https://github.com/dioscarey/react-beforeunload-component
15
- *
16
- * About next.js see:
17
- * - https://github.com/vercel/next.js/issues/2476
18
- * - https://github.com/vercel/next.js/issues/2694
19
- *
20
- * For the callback technique see:
21
- * - https://stackoverflow.com/a/11835394/1938970
22
- */ export const useNavigateAway = (handler)=>{
23
- const beforeUnloadHandlerRef = useRef();
24
- // const pagehideHandlerRef = useRef<UseNavigateAwayPagehideHandler | undefined>();
25
- useEffect(()=>{
26
- beforeUnloadHandlerRef.current = (event)=>{
27
- const customMessageOrCondition = handler(event);
28
- if (customMessageOrCondition) {
29
- event.preventDefault();
30
- }
31
- // Handle legacy `event.returnValue` property
32
- // https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
33
- if (typeof customMessageOrCondition === "string") {
34
- return event.returnValue = customMessageOrCondition;
35
- }
36
- // Chrome doesn't support `event.preventDefault()` on `BeforeUnloadEvent`,
37
- // instead it requires `event.returnValue` to be set
38
- // https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#browser_compatibility
39
- if (event.defaultPrevented) {
40
- return event.returnValue = "";
41
- }
42
- return;
43
- };
44
- // pagehideHandlerRef.current = (event) => {
45
- // const returnValue = handler?.(event);
46
- // if (event.persisted) {
47
- // // If the event's persisted property is `true` the page is about
48
- // // to enter the Back-Forward Cache, which is also in the frozen state.
49
- // } else {
50
- // // If the event's persisted property is not `true` the page is
51
- // // about to be unloaded.
52
- // }
53
- // };
54
- }, [
55
- handler
56
- ]);
57
- useEffect(()=>{
58
- const listenerBeforeunload = on(window, "beforeunload", (event)=>beforeUnloadHandlerRef.current?.(event));
59
- // const listenerPagehide = on(window, "pagehide", (event) =>
60
- // pagehideHandlerRef.current?.(event)
61
- // );
62
- return listenerBeforeunload;
63
- // return () => {
64
- // listenerBeforeunload();
65
- // // listenerPagehide();
66
- // };
67
- }, []);
68
- };
69
- export default useNavigateAway;
@@ -1,5 +0,0 @@
1
- /**
2
- * @borrows [samselikoff/animated-carousel](https://github.com/samselikoff/2022-06-02-animated-carousel/blob/main/pages/final.jsx)
3
- */
4
- export declare function usePrevious<T>(state: T, defaulValue: T): T;
5
- export default usePrevious;
@@ -1,17 +0,0 @@
1
- import { useState } from "react";
2
- /**
3
- * @borrows [samselikoff/animated-carousel](https://github.com/samselikoff/2022-06-02-animated-carousel/blob/main/pages/final.jsx)
4
- */ export function usePrevious(state, defaulValue) {
5
- const [tuple, setTuple] = useState([
6
- state,
7
- defaulValue
8
- ]);
9
- if (tuple[1] !== state) {
10
- setTuple([
11
- tuple[1],
12
- state
13
- ]);
14
- }
15
- return tuple[0];
16
- }
17
- export default usePrevious;
@@ -1,70 +0,0 @@
1
- import { useRef } from "react";
2
- import isBrowser from "@koine/utils/isBrowser";
3
- import listenScroll from "@koine/dom/listenScroll";
4
- import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect";
5
- const zeroPosition = {
6
- x: 0,
7
- y: 0
8
- };
9
- const getClientRect = (element)=>element?.getBoundingClientRect();
10
- const getScrollPosition = (element, boundingElement)=>{
11
- if (!isBrowser) {
12
- return zeroPosition;
13
- }
14
- if (!boundingElement) {
15
- return {
16
- x: window.scrollX,
17
- y: window.scrollY
18
- };
19
- }
20
- const targetPosition = getClientRect(element?.current || document.body);
21
- const containerPosition = getClientRect(boundingElement.current);
22
- if (!targetPosition) {
23
- return zeroPosition;
24
- }
25
- return containerPosition ? {
26
- x: (containerPosition.x || 0) - (targetPosition.x || 0),
27
- y: (containerPosition.y || 0) - (targetPosition.y || 0)
28
- } : {
29
- x: targetPosition.left,
30
- y: targetPosition.top
31
- };
32
- };
33
- /**
34
- * @borrows [@n8tb1t/use-scroll-position@2.0.3](https://github.com/n8tb1t/use-scroll-position) by `n8tb1t <n8tb1t@gmail.com>`
35
- *
36
- * We've just:
37
- * - reused internal helper functions
38
- * - compacted object arguments in functions as plain argument list to improve compression
39
- */ export const useScrollPosition = (effect, deps = [], element, boundingElement, wait)=>{
40
- const position = useRef(getScrollPosition(null, boundingElement));
41
- let throttleTimeout = null;
42
- const callBack = ()=>{
43
- const current = getScrollPosition(element, boundingElement);
44
- effect(current, position.current);
45
- position.current = current;
46
- throttleTimeout = null;
47
- };
48
- useIsomorphicLayoutEffect(()=>{
49
- if (!isBrowser) {
50
- return undefined;
51
- }
52
- const handleScroll = ()=>{
53
- if (wait) {
54
- if (throttleTimeout === null) {
55
- throttleTimeout = window.setTimeout(callBack, wait);
56
- }
57
- } else {
58
- callBack();
59
- }
60
- };
61
- const listener = listenScroll(handleScroll, boundingElement?.current);
62
- return ()=>{
63
- listener();
64
- if (throttleTimeout) {
65
- clearTimeout(throttleTimeout);
66
- }
67
- };
68
- }, deps);
69
- };
70
- export default useScrollPosition;