@koine/react 2.0.0-beta.14 → 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,90 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AnimatePresence, m } from "framer-motion";
3
- import { useEffect, useRef, useState } from "react";
4
- export const TextLoopPiece = ({ text = "", style = {}, className = "", direction = "up", inline = true, noOverflow = true, delay = 400 })=>{
5
- const placeholderRef = useRef(null);
6
- const [content, setContent] = useState({
7
- data: "",
8
- key: ""
9
- });
10
- const [width, setWidth] = useState(inline ? 0 : "auto");
11
- useEffect(()=>{
12
- const timeoutId = setTimeout(()=>{
13
- if (!placeholderRef.current) return;
14
- placeholderRef.current.innerHTML = text + "";
15
- if (inline) setWidth(placeholderRef.current.offsetWidth);
16
- setContent({
17
- data: text + "",
18
- key: new Date() + ""
19
- });
20
- }, delay);
21
- return ()=>clearTimeout(timeoutId);
22
- }, [
23
- text,
24
- delay,
25
- inline
26
- ]);
27
- return /*#__PURE__*/ _jsxs("div", {
28
- className: className,
29
- style: {
30
- ...style,
31
- position: "relative",
32
- display: inline ? "inline-block" : "block",
33
- width,
34
- whiteSpace: inline ? "nowrap" : "normal"
35
- },
36
- children: [
37
- /*#__PURE__*/ _jsx("span", {
38
- ref: placeholderRef,
39
- style: {
40
- visibility: "hidden"
41
- }
42
- }),
43
- /*#__PURE__*/ _jsx("div", {
44
- style: {
45
- overflow: noOverflow ? "hidden" : "visible",
46
- display: "block",
47
- position: "absolute",
48
- top: 0,
49
- left: 0,
50
- height: "100%",
51
- width: "100%"
52
- },
53
- children: /*#__PURE__*/ _jsx(AnimatePresence, {
54
- children: /*#__PURE__*/ _jsx(m.div, {
55
- style: {
56
- position: "absolute"
57
- },
58
- initial: {
59
- opacity: 0,
60
- y: direction === "down" ? "-100%" : "100%"
61
- },
62
- animate: {
63
- opacity: 1,
64
- y: 0
65
- },
66
- exit: {
67
- opacity: 0,
68
- y: direction === "down" ? "100%" : "-100%"
69
- },
70
- children: content.data
71
- }, content.key)
72
- })
73
- })
74
- ]
75
- });
76
- };
77
- export const TextLoop = ({ texts, interval = 3000, ...props })=>{
78
- const [index, setIndex] = useState(0);
79
- useEffect(()=>{
80
- const intervalId = setInterval(()=>setIndex((index)=>index + 1), interval // every 3 seconds
81
- );
82
- return ()=>clearTimeout(intervalId);
83
- }, [
84
- interval
85
- ]);
86
- return /*#__PURE__*/ _jsx(TextLoopPiece, {
87
- ...props,
88
- text: texts[index % texts.length]
89
- });
90
- };
@@ -1,61 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
- export const TypeStairs = /*#__PURE__*/ forwardRef(({ children, limit }, ref)=>{
4
- // split in rows or just use one row if there is no limit
5
- const rows = limit ? splitTextIntoRows(children, limit) : [
6
- children
7
- ];
8
- return rows.length > 1 ? /*#__PURE__*/ _jsx(_Fragment, {
9
- children: rows.map((row, rowIndex)=>{
10
- return /*#__PURE__*/ _jsxs("span", {
11
- children: [
12
- renderRow(row, rowIndex, ref),
13
- rowIndex !== rows.length - 1 && /*#__PURE__*/ _jsx("br", {})
14
- ]
15
- }, `row-${rowIndex}`);
16
- })
17
- }) : renderRow(rows[0], 0, ref);
18
- });
19
- /**
20
- * every number chars find a space and break, then restart the gradient weight
21
- * @see https://stackoverflow.com/a/25770787
22
- */ function splitTextIntoRows(input = "", limit = 18) {
23
- const rows = [];
24
- const arr = input.split(" ");
25
- let currow = arr[0];
26
- let rowlen = currow.length;
27
- for(let i = 1; i < arr.length; i++){
28
- const word = arr[i];
29
- rowlen += word.length + 1;
30
- if (rowlen <= limit) {
31
- currow += " " + word;
32
- } else {
33
- rows.push(currow);
34
- currow = word;
35
- rowlen = word.length;
36
- }
37
- }
38
- rows.push(currow);
39
- return rows;
40
- }
41
- function renderRow(row, rowIndex, ref) {
42
- const letters = row.split("");
43
- let fontWeightIdx = 1;
44
- // const fontWeight = Math.min(fontWeightIdx * 100, 800);
45
- return /*#__PURE__*/ _jsx(_Fragment, {
46
- children: letters.map((letter, letterIndex)=>{
47
- const fontWeight = Math.min(fontWeightIdx * 100, 800);
48
- // don't waste a fontWeight for a white space
49
- if (letter !== " ") {
50
- fontWeightIdx++;
51
- }
52
- return /*#__PURE__*/ _jsx("span", {
53
- style: {
54
- fontWeight
55
- },
56
- ref: ref,
57
- children: letter
58
- }, `letter-${rowIndex}-${letterIndex}`);
59
- })
60
- });
61
- }
@@ -1,5 +0,0 @@
1
- export * from "./CopyPasteVisible";
2
- export * from "./Native";
3
- export * from "./ReadMore";
4
- export * from "./TextLoop";
5
- export * from "./TypeStairs";
package/css/index.mjs DELETED
@@ -1,30 +0,0 @@
1
- export * from "../shared";
2
- // export * from "../Alert";
3
- // export * from "../Animations";
4
- // export * from "../Autocomplete";
5
- // export * from "../Bg";
6
- // export * from "../Breadcrumbs";
7
- // export * from "../Buttons";
8
- // export * from "../Carousel";
9
- // export * from "../Collapsable";
10
- // export * from "../Debug";
11
- export { KoineDialog } from "../Dialog/css/bare"; // export * from "../Form";
12
- // export * from "../Forms";
13
- // export * from "../Grid";
14
- // export * from "../Hamburger";
15
- // export * from "../Header";
16
- // export * from "../Hidden";
17
- // export * from "../Img";
18
- // export * from "../Link";
19
- // export * from "../MenuItem";
20
- // export * from "../Pagination";
21
- // export * from "../Pill";
22
- // export * from "../Progress";
23
- // export * from "../Rating";
24
- // // export * from "../Select";
25
- // export * from "../Sidebar";
26
- // export * from "../Spacing";
27
- // export * from "../Sticky";
28
- // export * from "../styles";
29
- // export * from "../Tabs";
30
- // export * from "../Typography";
@@ -1,65 +0,0 @@
1
- import React, { createElement, forwardRef } from "react";
2
- /**
3
- * This utility allows to extend a component a là `styled-components` but for
4
- * a className based styling solution like Tailwind,
5
- *
6
- * It also plays nicely with tailwind intellisense:
7
- * - https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssclassattributes
8
- *
9
- * For references about tagged functions:
10
- * - https://javascript.plainenglish.io/how-css-in-js-libraries-work-da4145b1b6c7
11
- * - https://makersden.io/blog/reverse-engineering-styled-components
12
- * - https://typesafe.blog/article/the-logic-behind-javascript-tag-functions
13
- * - https://flaming.codes/posts/typescript-and-javascript-tagged-template-strings
14
- *
15
- * Similar projects:
16
- * - https://reactjsexample.com/style-radix-ui-components-with-tailwindcss/
17
- *
18
- * Discussions and Q/A:
19
- * - https://stackoverflow.com/q/73055695/1938970
20
- */ export function classed(component) {
21
- // @ts-expect-error nevermind for now...
22
- const type = component.type || component;
23
- return function(strings, ...args) {
24
- const WrappedComponent = /*#__PURE__*/ forwardRef(function(props, ref) {
25
- const argResolved = args.map((arg, index)=>{
26
- let result = "";
27
- if (typeof arg === "function") {
28
- result = arg(props);
29
- } else if (typeof arg !== "undefined") {
30
- result = arg.toString();
31
- }
32
- return strings[index] + result;
33
- }).join("");
34
- const isNativeHtmlElement = typeof type === "string";
35
- const propsToForward = isNativeHtmlElement ? {} : props;
36
- if (isNativeHtmlElement) {
37
- for(const key in props){
38
- // like styled-components `transient` props
39
- if (!key.startsWith("$")) {
40
- // FIXME: for react 18 we need: @ts-expect-error
41
- propsToForward[key] = props[key];
42
- }
43
- }
44
- }
45
- // get the tagged function string outcome
46
- let className = argResolved || strings[0];
47
- // check if we need to clean it or not from the optional structure `< class="..."`
48
- className = className.match(/class="([^"]*)/)?.[1] || className;
49
- // add the custom classes from props
50
- className += props?.className ? " " + props?.className : "";
51
- return /*#__PURE__*/ createElement(type, {
52
- // ...props,
53
- ...propsToForward,
54
- // only add ot props if it is not an empty string
55
- className: className || undefined,
56
- // add ref to props
57
- ref
58
- });
59
- });
60
- // FIXME: not sure if this is needed
61
- // WrappedComponent.displayName = type.toString();
62
- return WrappedComponent; // as unknown as React.ReactElement<typeof props>;
63
- };
64
- }
65
- export default classed;
@@ -1,121 +0,0 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-nocheck These are just wip experiments, we stick to just `./classed.tsx`
3
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
- import React, { createElement } from "react";
5
- import { classed } from "./classed";
6
- const Classed = classed("div")`< class="bg-red-400 ${(p)=>p.test === "0a" ? "py-3" : "px-3"}`;
7
- /**
8
- * Adapted (removed `classnames` dependency) from:
9
- * @see https://daily.dev/blog/my-tailwind-css-utility-function-for-creating-reusable-react-components-typescript-support
10
- *
11
- * See also [classname-hoc](https://www.npmjs.com/package/classname-hoc)
12
- */ function classedOriginal(type, ...className) {
13
- return function(props) {
14
- return /*#__PURE__*/ createElement(type, {
15
- ...props,
16
- className: [
17
- props?.className || ""
18
- ].concat(className).join(" ")
19
- });
20
- };
21
- }
22
- const ClassedOriginal = classedOriginal("div", "bg-slate-800");
23
- function classedBind(props) {
24
- // @ts-expect-error no time now
25
- const classNameImpl = props.className ? " " + props.className : "";
26
- // return <this className={this.props.className + classNameImpl} {...props} />;
27
- return /*#__PURE__*/ createElement(this.props.as || this.type, {
28
- ...props,
29
- className: this.props.className + classNameImpl
30
- }, // @ts-expect-error no time now
31
- props.children);
32
- }
33
- const ClassedBind = classedBind.bind(/*#__PURE__*/ _jsx("div", {
34
- as: "h2",
35
- className: "bg-slate-800"
36
- }));
37
- function classedDynamic(ComponentFn) {
38
- return function(propsImplementation) {
39
- const { props, type } = ComponentFn(propsImplementation);
40
- const classNameDefault = props.className ? " " + props.className : "";
41
- return /*#__PURE__*/ createElement(props.as || type, {
42
- ...props,
43
- ...propsImplementation,
44
- className: propsImplementation?.className + classNameDefault
45
- });
46
- };
47
- }
48
- const ClassedDynamicIgnoringProps = classedDynamic(()=>/*#__PURE__*/ _jsx("div", {
49
- as: "h2",
50
- className: "bg-slate-800"
51
- }));
52
- const ClassedDynamicUsingProps = classedDynamic((p)=>{
53
- return /*#__PURE__*/ _jsx("div", {
54
- as: "h2",
55
- className: `bg-slate-800 ${p?.test === "3" ? "py-3" : "px-3"}`
56
- });
57
- });
58
- // type ExtractComponent<ComponentString extends string> =
59
- // ComponentString extends `<${infer ComponentName} class="${infer ClassNames}`
60
- // ? { name: ComponentName; className: ClassNames }
61
- // : { error: "Cannot parse Component string" };
62
- // type ExtractedComponent<T extends string> = ExtractComponent<T>;
63
- function classedTaggedStatic(value = "") {
64
- // @ts-expect-error we rely on correct implementation and assume it always matches
65
- const componentName = value.match(/<(.*?)\s/)[1];
66
- // @ts-expect-error we rely on correct implementation and assume it always matches
67
- const classDefault = value.match(/class="(.+)/)[1];
68
- return function(props) {
69
- // @ts-expect-error no time now
70
- const classCustom = props?.className ? " " + props?.className : "";
71
- return /*#__PURE__*/ createElement(componentName, {
72
- ...props,
73
- className: classDefault + classCustom
74
- });
75
- }; /* as Component; */
76
- }
77
- const ClassedTaggedStatic = classedTaggedStatic(`<div class="bg-teal-400`);
78
- export default {
79
- // component: KoineDialog,
80
- title: "Helpers/classed"
81
- };
82
- const Template = (args)=>{
83
- return /*#__PURE__*/ _jsxs(_Fragment, {
84
- children: [
85
- /*#__PURE__*/ _jsx(Classed, {
86
- className: "text-yellow-200",
87
- test: "0a",
88
- children: "Classed taller"
89
- }),
90
- /*#__PURE__*/ _jsx(Classed, {
91
- className: "text-yellow-200",
92
- test: "0b",
93
- children: "Classed wider"
94
- }),
95
- /*#__PURE__*/ _jsx(ClassedOriginal, {
96
- className: "text-white",
97
- children: "ClassedOriginal"
98
- }),
99
- /*#__PURE__*/ _jsx(ClassedBind, {
100
- className: "text-white",
101
- children: "ClassedBind"
102
- }),
103
- /*#__PURE__*/ _jsx(ClassedDynamicIgnoringProps, {
104
- className: "text-gray-300",
105
- test: "2",
106
- children: "ClassedDynamicIgnoringProps"
107
- }),
108
- /*#__PURE__*/ _jsx(ClassedDynamicUsingProps, {
109
- className: "text-gray-600",
110
- test: "3",
111
- children: "ClassedDynamicUsingProps"
112
- }),
113
- /*#__PURE__*/ _jsx(ClassedTaggedStatic, {
114
- className: "text-gray-600",
115
- children: "ClassedTaggedStatic"
116
- })
117
- ]
118
- });
119
- };
120
- export const Playground = Template.bind({});
121
- Playground.args = {};
@@ -1,178 +0,0 @@
1
- import { useState } from "react";
2
- import getMediaQueryWidthResolvers from "@koine/utils/getMediaQueryWidthResolvers";
3
- import isUndefined from "@koine/utils/isUndefined";
4
- import useIsomorphicLayoutEffect from "../hooks/useIsomorphicLayoutEffect";
5
- /**
6
- * Use `null` instead of `false` as default value, @see https://observablehq.com/@werehamster/avoiding-hydration-mismatch-when-using-react-hooks
7
- *
8
- * @param customBreakpoints
9
- * @returns
10
- */ export function createUseMediaQueryWidth(customBreakpoints) {
11
- const queryResolvers = getMediaQueryWidthResolvers(customBreakpoints);
12
- return function useMediaQueryWidth(media, serverValue) {
13
- const definition = media.substring(1);
14
- let [rule, ruleBreakpoint] = definition.split("-");
15
- if (isUndefined(ruleBreakpoint)) {
16
- ruleBreakpoint = rule;
17
- }
18
- if (isUndefined(rule)) {
19
- rule = "min";
20
- }
21
- // with the hook creator approach these breakpoint types cannot be deduced
22
- // const [br1, br2] = ruleBreakpoint.split("-") as Split<
23
- // typeof ruleBreakpoint,
24
- // "-"
25
- // >;
26
- const [br1, br2] = ruleBreakpoint.split("_");
27
- const query = queryResolvers[rule](br1, br2);
28
- const [matches, setMatches] = useState(isUndefined(serverValue) ? null : serverValue);
29
- useIsomorphicLayoutEffect(()=>{
30
- const mq = window.matchMedia(query);
31
- const handleChange = (event)=>{
32
- setMatches(event.matches);
33
- };
34
- setMatches(mq.matches);
35
- // Safari < 14 can't use addEventListener on a MediaQueryList
36
- // https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList#Browser_compatibility
37
- if (!mq.addEventListener) {
38
- // Update the state whenever the media query match state changes
39
- mq.addListener(handleChange);
40
- // Clean up on unmount and if the query changes
41
- return ()=>{
42
- mq.removeListener(handleChange);
43
- };
44
- }
45
- mq.addEventListener("change", handleChange);
46
- return ()=>{
47
- mq.removeEventListener("change", handleChange);
48
- };
49
- }, [
50
- query
51
- ]);
52
- return matches;
53
- };
54
- }
55
- export default createUseMediaQueryWidth; //// without creator it would be:
56
- //// ---------------------------------------------------------------------------
57
- // import { useState, useIsomorphicLayoutEffect, useMemo } from "react";
58
- // import type { Split } from "@koine/utils";
59
- // import isBrowser from "@koine/utils/isBrowser";
60
- // import { breakpoints as themeBreakpoints } from "@/config/theme/breakpoints";
61
- // import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect"
62
- // type Breakpoint = "xs" | "sm" | "md" | "lg" | "xl";
63
- // type Breakpoints = Record<Breakpoint, number>;
64
- // type MediaQuery =
65
- // | `max:${Breakpoint}`
66
- // | `min:${Breakpoint}`
67
- // | `down:${Breakpoint}`
68
- // | `up:${Breakpoint}`
69
- // | `between:${Breakpoint}-${Breakpoint}`
70
- // | `only:${Breakpoint}`;
71
- // const breakpoints: Breakpoints = {
72
- // xs: 0,
73
- // ...themeBreakpoints,
74
- // };
75
- // const sortedBreakpointsNames = (
76
- // Object.keys(breakpoints).map((key) => {
77
- // const br = key as keyof typeof breakpoints;
78
- // return [br, breakpoints[br]];
79
- // }) as [Breakpoint, number][]
80
- // )
81
- // .sort((a, b) => a[1] - b[1])
82
- // .map((item) => item[0]);
83
- // const getNextBreakpoint = (breakpoint: Breakpoint) => {
84
- // const index = sortedBreakpointsNames.indexOf(breakpoint);
85
- // return sortedBreakpointsNames[index + 1];
86
- // };
87
- // /**
88
- // * It behaves the same as `(min-width: ${value}px)`
89
- // * where value is the given breakpoint value.
90
- // * For ease of use this can be used both as a function `min("md")` and as an
91
- // * object literal `min.md`.
92
- // */
93
- // const min = (br: Breakpoint) => `(min-width: ${breakpoints[br]}px)`;
94
- // /**
95
- // * It behaves the same as `(max-width: ${value}px)`
96
- // * where value is the given breakpoint value.
97
- // * For ease of use this can be used both as a function `max("md")` and as an
98
- // * object literal `max.md`.
99
- // */
100
- // const max = (br: Breakpoint) => `(max-width: ${breakpoints[br] - 0.02}px)`;
101
- // /**
102
- // * It behaves the same as `min`
103
- // * @inheritdoc {max}
104
- // */
105
- // const up = min;
106
- // /**
107
- // * It behaves similarly to `max` but you will use the "next" breakpoint,
108
- // * specifying CSS that will apply from the given breakpoint and down.
109
- // */
110
- // const down = (br: Breakpoint) => {
111
- // const brNext = getNextBreakpoint(br);
112
- // // TODO: if br does not exists otherwise throw Error
113
- // return brNext && `(max-width: ${breakpoints[brNext] - 0.02}px)`;
114
- // };
115
- // /**
116
- // * Media query between the two given breakpoints
117
- // */
118
- // const between = (br1: Breakpoint, br2?: Breakpoint) => {
119
- // return br2
120
- // ? `(min-width: ${breakpoints[br1]}px) and (max-width: ${
121
- // breakpoints[br2] - 0.02
122
- // }px)`
123
- // : min(br1);
124
- // };
125
- // /**
126
- // * Media query to apply from the given breakpoint until the next, just for its
127
- // * full range
128
- // */
129
- // const only = (br: Breakpoint) => {
130
- // const brNext = getNextBreakpoint(br);
131
- // return brNext ? between(br, brNext) : min(br);
132
- // };
133
- // const queryResolvers = {
134
- // max,
135
- // min,
136
- // down,
137
- // up,
138
- // between,
139
- // only,
140
- // };
141
- // export function useMqWidth(media: MediaQuery) {
142
- // const [rule = "min", ruleBreakpoint] = media.split(":") as Split<
143
- // MediaQuery,
144
- // ":"
145
- // >;
146
- // const [br1, br2] = ruleBreakpoint.split("-") as Split<
147
- // typeof ruleBreakpoint,
148
- // "-"
149
- // >;
150
- // const query = queryResolvers[rule](br1, br2);
151
- // const mq = useMemo(
152
- // () => (isBrowser ? window.matchMedia(query) : { matches: false }),
153
- // [query]
154
- // );
155
- // const [matches, setMatches] = useState(mq.matches);
156
- // useIsomorphicLayoutEffect(() => {
157
- // const mq = window.matchMedia(query);
158
- // const handleChange = (event: MediaQueryListEvent) => {
159
- // setMatches(event.matches);
160
- // };
161
- // setMatches(mq.matches);
162
- // // Safari < 14 can't use addEventListener on a MediaQueryList
163
- // // https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList#Browser_compatibility
164
- // if (!mq.addEventListener) {
165
- // // Update the state whenever the media query match state changes
166
- // mq.addListener(handleChange);
167
- // // Clean up on unmount and if the query changes
168
- // return () => {
169
- // mq.removeListener(handleChange);
170
- // };
171
- // }
172
- // mq.addEventListener("change", handleChange);
173
- // return () => {
174
- // mq.removeEventListener("change", handleChange);
175
- // };
176
- // }, [query]);
177
- // return matches;
178
- // }
@@ -1,13 +0,0 @@
1
- import React, { createElement } from "react";
2
- export const extendComponent = (component, defaultProps)=>{
3
- // FIXME: check if we need to forwardRef or not
4
- const NewComponent = (props)=>createElement(component, props);
5
- // const NewComponent = forwardRef<React.ComponentProps<Component>, Component>(
6
- // (props, ref) => createElement(component, { ...props, ref })
7
- // );
8
- return Object.assign(NewComponent, {
9
- ...defaultProps,
10
- defaultProps
11
- });
12
- };
13
- export default extendComponent;
package/helpers/index.mjs DELETED
@@ -1,4 +0,0 @@
1
- export * from "./classed";
2
- export * from "./createUseMediaQueryWidth";
3
- export * from "./extend-component";
4
- export * from "./mergeRefs";
package/hooks/index.mjs DELETED
@@ -1,21 +0,0 @@
1
- export { useAsyncFn } from "./useAsyncFn";
2
- export { useDateLocale } from "./useDateLocale";
3
- export { useFirstMountState } from "./useFirstMountState";
4
- export { useFixedOffset } from "./useFixedOffset";
5
- export { useFocus } from "./useFocus";
6
- export { useInterval } from "./useInterval";
7
- export { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
8
- export { useKeyUp } from "./useKeyUp";
9
- export { useMeasure } from "./useMeasure";
10
- export { useMountedState } from "./useMountedState";
11
- export { useNavigateAway } from "./useNavigateAway";
12
- export { usePrevious } from "./usePrevious";
13
- export { usePreviousRef } from "./usePreviousRef";
14
- export { useScrollPosition } from "./useScrollPosition";
15
- export { useScrollThreshold } from "./useScrollThreshold";
16
- // export { useScrollTo } from "./useScrollTo";
17
- export { useSmoothScroll } from "./useSmoothScroll";
18
- export { useSpinDelay } from "./useSpinDelay";
19
- export { useTraceUpdate } from "./useTraceUpdate";
20
- export { useUpdateEffect } from "./useUpdateEffect";
21
- export { useWindowSize } from "./useWindowSize";
package/hooks/types.mjs DELETED
@@ -1,3 +0,0 @@
1
- /**
2
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/misc/types.ts)
3
- */ export { };
@@ -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;