@koine/react 1.0.4 → 1.0.9

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 (596) hide show
  1. package/Alert/Alert.d.ts +5 -5
  2. package/Alert/Alert.js +16 -0
  3. package/Alert/index.d.ts +1 -1
  4. package/Alert/index.js +1 -0
  5. package/Alert/package.json +6 -0
  6. package/Animations/Reveal.d.ts +4 -4
  7. package/Animations/Reveal.js +15 -0
  8. package/Animations/Underline.d.ts +1 -1
  9. package/Animations/Underline.js +15 -0
  10. package/Animations/index.d.ts +3 -3
  11. package/Animations/index.js +3 -0
  12. package/Animations/package.json +6 -0
  13. package/Animations/useReveal.d.ts +33 -34
  14. package/Animations/useReveal.js +70 -0
  15. package/Autocomplete/AutocompleteDownshift.d.ts +1 -1
  16. package/Autocomplete/AutocompleteDownshift.js +158 -0
  17. package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +1 -1
  18. package/Autocomplete/AutocompleteDownshiftMultiselect.js +353 -0
  19. package/Autocomplete/AutocompleteMui.d.ts +47 -47
  20. package/Autocomplete/AutocompleteMui.js +177 -0
  21. package/Autocomplete/AutocompleteReach.d.ts +1 -1
  22. package/Autocomplete/AutocompleteReach.js +112 -0
  23. package/Autocomplete/components.d.ts +21 -21
  24. package/Autocomplete/components.js +89 -0
  25. package/Autocomplete/helpers.d.ts +3 -3
  26. package/Autocomplete/helpers.js +28 -0
  27. package/Autocomplete/index.d.ts +2 -2
  28. package/Autocomplete/index.js +3 -0
  29. package/Autocomplete/package.json +6 -0
  30. package/Bg/BgColor.d.ts +36 -36
  31. package/Bg/BgColor.js +31 -0
  32. package/Bg/BgPhoto.d.ts +13 -14
  33. package/Bg/BgPhoto.js +59 -0
  34. package/Bg/BgSvg.d.ts +7 -8
  35. package/Bg/BgSvg.js +15 -0
  36. package/Bg/index.d.ts +3 -3
  37. package/Bg/index.js +3 -0
  38. package/Bg/package.json +6 -0
  39. package/Breadcrumbs/Breadcrumbs.d.ts +13 -14
  40. package/Breadcrumbs/Breadcrumbs.js +67 -0
  41. package/Breadcrumbs/index.d.ts +1 -1
  42. package/Breadcrumbs/index.js +1 -0
  43. package/Breadcrumbs/package.json +6 -0
  44. package/Buttons/Button.d.ts +18 -18
  45. package/Buttons/Button.js +79 -0
  46. package/Buttons/ButtonComposite.d.ts +23 -23
  47. package/Buttons/ButtonComposite.js +49 -0
  48. package/Buttons/ButtonFab.d.ts +7 -7
  49. package/Buttons/ButtonFab.js +8 -0
  50. package/Buttons/ButtonLink.d.ts +8 -9
  51. package/Buttons/ButtonLink.js +10 -0
  52. package/Buttons/IconButton.d.ts +11 -11
  53. package/Buttons/IconButton.js +19 -0
  54. package/Buttons/index.d.ts +5 -5
  55. package/Buttons/index.js +5 -0
  56. package/Buttons/package.json +6 -0
  57. package/Calendar/CalendarDaygridCell.d.ts +36 -36
  58. package/Calendar/CalendarDaygridCell.js +51 -0
  59. package/Calendar/CalendarDaygridNav.d.ts +27 -28
  60. package/Calendar/CalendarDaygridNav.js +22 -0
  61. package/Calendar/CalendarDaygridTable.d.ts +25 -26
  62. package/Calendar/CalendarDaygridTable.js +55 -0
  63. package/Calendar/CalendarLegend.d.ts +19 -19
  64. package/Calendar/CalendarLegend.js +11 -0
  65. package/Calendar/calendar-api-google.d.ts +18 -18
  66. package/Calendar/calendar-api-google.js +94 -0
  67. package/Calendar/index.d.ts +6 -6
  68. package/Calendar/index.js +6 -0
  69. package/Calendar/package.json +6 -0
  70. package/Calendar/types.d.ts +81 -81
  71. package/Calendar/types.js +1 -0
  72. package/Calendar/useCalendar.d.ts +49 -50
  73. package/Calendar/useCalendar.js +182 -0
  74. package/Calendar/utils.d.ts +11 -11
  75. package/Calendar/utils.js +203 -0
  76. package/Carousel/Carousel.d.ts +1 -1
  77. package/Carousel/Carousel.js +378 -0
  78. package/Carousel/CarouselCss.d.ts +47 -47
  79. package/Carousel/CarouselCss.js +36 -0
  80. package/Carousel/index.d.ts +1 -1
  81. package/Carousel/index.js +1 -0
  82. package/Carousel/package.json +6 -0
  83. package/Collapsable/Collapsable.d.ts +1 -60
  84. package/Collapsable/Collapsable.js +1 -0
  85. package/Collapsable/CollapsableReach.d.ts +66 -0
  86. package/Collapsable/CollapsableReach.js +135 -0
  87. package/Collapsable/index.d.ts +1 -1
  88. package/Collapsable/index.js +1 -0
  89. package/Collapsable/package.json +6 -0
  90. package/Debug/Debug.d.ts +4 -5
  91. package/Debug/Debug.js +21 -0
  92. package/Debug/index.d.ts +1 -1
  93. package/Debug/index.js +1 -0
  94. package/Debug/package.json +6 -0
  95. package/Dialog/DialogMui.d.ts +139 -0
  96. package/Dialog/DialogMui.js +78 -0
  97. package/Dialog/css/bare.d.ts +145 -0
  98. package/Dialog/css/bare.js +19 -0
  99. package/Dialog/index.d.ts +2 -1
  100. package/Dialog/index.js +1 -0
  101. package/Dialog/m/bare.d.ts +56 -0
  102. package/Dialog/m/bare.js +48 -0
  103. package/Dialog/m/basic.d.ts +4 -0
  104. package/Dialog/m/basic.js +31 -0
  105. package/Dialog/m/index.d.ts +2 -0
  106. package/Dialog/m/index.js +4 -0
  107. package/Dialog/m/package.json +6 -0
  108. package/Dialog/package.json +6 -0
  109. package/Dialog/sc/bare.d.ts +105 -0
  110. package/Dialog/sc/bare.js +61 -0
  111. package/Dialog/sc/framer.d.ts +80 -0
  112. package/Dialog/sc/framer.js +16 -0
  113. package/Dialog/sc/framerMaterial.d.ts +79 -0
  114. package/Dialog/sc/framerMaterial.js +16 -0
  115. package/Dialog/sc/material.d.ts +94 -0
  116. package/Dialog/sc/material.js +41 -0
  117. package/Dialog/tw/bare.d.ts +196 -0
  118. package/Dialog/tw/bare.js +36 -0
  119. package/Dialog/tw/elegant.d.ts +244 -0
  120. package/Dialog/tw/elegant.js +18 -0
  121. package/Dialog/tw/framer.d.ts +112 -0
  122. package/Dialog/tw/framer.js +16 -0
  123. package/Dialog/tw/framerMaterial.d.ts +167 -0
  124. package/Dialog/tw/framerMaterial.js +16 -0
  125. package/Dialog/tw/material.d.ts +244 -0
  126. package/Dialog/tw/material.js +18 -0
  127. package/Editor/Editor--tiptap.d.ts +9 -10
  128. package/Editor/Editor--tiptap.js +23 -0
  129. package/Editor/components.d.ts +7 -8
  130. package/Editor/components.js +28 -0
  131. package/Editor/index.d.ts +1 -1
  132. package/Editor/index.js +1 -0
  133. package/Editor/package.json +6 -0
  134. package/Favicon/FaviconTags.d.ts +18 -19
  135. package/Favicon/FaviconTags.js +14 -0
  136. package/Favicon/index.d.ts +1 -1
  137. package/Favicon/index.js +1 -0
  138. package/Favicon/package.json +6 -0
  139. package/Forms/Checkbox/Checkbox.d.ts +11 -11
  140. package/Forms/Checkbox/Checkbox.js +24 -0
  141. package/Forms/Checkbox/index.d.ts +1 -1
  142. package/Forms/Checkbox/index.js +1 -0
  143. package/Forms/Checkbox/package.json +6 -0
  144. package/Forms/Feedback/Feedback.d.ts +5 -5
  145. package/Forms/Feedback/Feedback.js +10 -0
  146. package/Forms/Feedback/index.d.ts +1 -1
  147. package/Forms/Feedback/index.js +1 -0
  148. package/Forms/Feedback/package.json +6 -0
  149. package/Forms/Field/Field.d.ts +15 -16
  150. package/Forms/Field/Field.js +59 -0
  151. package/Forms/Field/FieldControl.d.ts +26 -26
  152. package/Forms/Field/FieldControl.js +43 -0
  153. package/Forms/Field/FieldHint.d.ts +1 -1
  154. package/Forms/Field/FieldHint.js +6 -0
  155. package/Forms/Field/index.d.ts +2 -2
  156. package/Forms/Field/index.js +2 -0
  157. package/Forms/Field/package.json +6 -0
  158. package/Forms/Form/Form.d.ts +31 -31
  159. package/Forms/Form/Form.js +62 -0
  160. package/Forms/Form/index.d.ts +1 -1
  161. package/Forms/Form/index.js +1 -0
  162. package/Forms/Form/package.json +6 -0
  163. package/Forms/Input/Input.d.ts +9 -9
  164. package/Forms/Input/Input.js +23 -0
  165. package/Forms/Input/index.d.ts +1 -1
  166. package/Forms/Input/index.js +1 -0
  167. package/Forms/Input/package.json +6 -0
  168. package/Forms/InputGroup/InputGroup.d.ts +13 -13
  169. package/Forms/InputGroup/InputGroup.js +42 -0
  170. package/Forms/InputGroup/index.d.ts +1 -1
  171. package/Forms/InputGroup/index.js +1 -0
  172. package/Forms/InputGroup/package.json +6 -0
  173. package/Forms/Label/Label.d.ts +3 -3
  174. package/Forms/Label/Label.js +24 -0
  175. package/Forms/Label/index.d.ts +1 -1
  176. package/Forms/Label/index.js +1 -0
  177. package/Forms/Label/package.json +6 -0
  178. package/Forms/Password/Password.d.ts +5 -5
  179. package/Forms/Password/Password.js +30 -0
  180. package/Forms/Password/index.d.ts +1 -1
  181. package/Forms/Password/index.js +1 -0
  182. package/Forms/Password/package.json +6 -0
  183. package/Forms/Radio/Radio.d.ts +12 -12
  184. package/Forms/Radio/Radio.js +28 -0
  185. package/Forms/Radio/index.d.ts +1 -1
  186. package/Forms/Radio/index.js +1 -0
  187. package/Forms/Radio/package.json +6 -0
  188. package/Forms/Switch/Switch.d.ts +9 -9
  189. package/Forms/Switch/Switch.js +50 -0
  190. package/Forms/Switch/index.d.ts +1 -1
  191. package/Forms/Switch/index.js +1 -0
  192. package/Forms/Switch/package.json +6 -0
  193. package/Forms/Textarea/Textarea.d.ts +5 -5
  194. package/Forms/Textarea/Textarea.js +13 -0
  195. package/Forms/Textarea/TextareaRich.d.ts +6 -6
  196. package/Forms/Textarea/TextareaRich.js +42 -0
  197. package/Forms/Textarea/index.d.ts +2 -2
  198. package/Forms/Textarea/index.js +2 -0
  199. package/Forms/Textarea/package.json +6 -0
  200. package/Forms/Toggle/Toggle.d.ts +19 -26
  201. package/Forms/Toggle/Toggle.js +79 -0
  202. package/Forms/Toggle/index.d.ts +1 -1
  203. package/Forms/Toggle/index.js +1 -0
  204. package/Forms/Toggle/package.json +6 -0
  205. package/Forms/Toggle/useToggle.d.ts +46 -46
  206. package/Forms/Toggle/useToggle.js +145 -0
  207. package/Forms/antispam.d.ts +24 -24
  208. package/Forms/antispam.js +56 -0
  209. package/Forms/helpers.d.ts +26 -26
  210. package/Forms/helpers.js +44 -0
  211. package/Forms/index.d.ts +16 -16
  212. package/Forms/index.js +17 -0
  213. package/Forms/package.json +6 -0
  214. package/Forms/styles.d.ts +19 -20
  215. package/Forms/styles.js +60 -0
  216. package/Gauge/Gauge.d.ts +5 -5
  217. package/Gauge/Gauge.js +102 -0
  218. package/Grid/Grid.d.ts +64 -60
  219. package/Grid/Grid.js +79 -0
  220. package/Grid/index.d.ts +1 -1
  221. package/Grid/index.js +1 -0
  222. package/Grid/package.json +6 -0
  223. package/Hamburger/Hamburger.d.ts +6 -6
  224. package/Hamburger/Hamburger.js +64 -0
  225. package/Hamburger/index.d.ts +1 -1
  226. package/Hamburger/index.js +1 -0
  227. package/Hamburger/package.json +6 -0
  228. package/Header/index.d.ts +1 -1
  229. package/Header/index.js +1 -0
  230. package/Header/package.json +6 -0
  231. package/Header/useHeader.d.ts +24 -20
  232. package/Header/useHeader.js +30 -0
  233. package/Hidden/Hidden.d.ts +6 -6
  234. package/Hidden/Hidden.js +14 -0
  235. package/Hidden/index.d.ts +1 -1
  236. package/Hidden/index.js +1 -0
  237. package/Hidden/package.json +6 -0
  238. package/Img/index.d.ts +1 -1
  239. package/Img/index.js +1 -0
  240. package/Img/package.json +6 -0
  241. package/Img/sc/bare.d.ts +2 -0
  242. package/Img/sc/bare.js +37 -0
  243. package/Img/types.d.ts +9 -0
  244. package/Img/types.js +1 -0
  245. package/Link/Link.d.ts +5 -5
  246. package/Link/Link.js +2 -0
  247. package/Link/LinkBlank.d.ts +8 -8
  248. package/Link/LinkBlank.js +26 -0
  249. package/Link/index.d.ts +2 -2
  250. package/Link/index.js +2 -0
  251. package/Link/package.json +6 -0
  252. package/Menu/Menu.d.ts +1 -1
  253. package/Menu/Menu.js +11 -0
  254. package/Menu/index.d.ts +1 -1
  255. package/Menu/index.js +1 -0
  256. package/Menu/package.json +6 -0
  257. package/MenuItem/MenuItem.d.ts +4 -4
  258. package/MenuItem/MenuItem.js +20 -0
  259. package/MenuItem/index.d.ts +1 -1
  260. package/MenuItem/index.js +1 -0
  261. package/MenuItem/package.json +6 -0
  262. package/Meta/Meta.d.ts +14 -15
  263. package/Meta/Meta.js +4 -0
  264. package/Meta/index.d.ts +1 -1
  265. package/Meta/index.js +1 -0
  266. package/Meta/package.json +6 -0
  267. package/NoJs/NoJs.d.ts +2 -3
  268. package/NoJs/NoJs.js +6 -0
  269. package/NoJs/index.d.ts +1 -1
  270. package/NoJs/index.js +1 -0
  271. package/NoJs/package.json +6 -0
  272. package/Pagination/PaginationNav.d.ts +22 -23
  273. package/Pagination/PaginationNav.js +83 -0
  274. package/Pagination/PaginationResults.d.ts +3 -3
  275. package/Pagination/PaginationResults.js +10 -0
  276. package/Pagination/index.d.ts +2 -2
  277. package/Pagination/index.js +2 -0
  278. package/Pagination/package.json +6 -0
  279. package/Pill/Pill.d.ts +5 -5
  280. package/Pill/Pill.js +37 -0
  281. package/Pill/index.d.ts +1 -1
  282. package/Pill/index.js +1 -0
  283. package/Pill/package.json +6 -0
  284. package/Progress/ProgressCircular.d.ts +19 -20
  285. package/Progress/ProgressCircular.js +36 -0
  286. package/Progress/ProgressLinear.d.ts +22 -23
  287. package/Progress/ProgressLinear.js +32 -0
  288. package/Progress/ProgressOverlay.d.ts +4 -5
  289. package/Progress/ProgressOverlay.js +40 -0
  290. package/Progress/index.d.ts +3 -3
  291. package/Progress/index.js +3 -0
  292. package/Progress/package.json +6 -0
  293. package/README.md +0 -0
  294. package/Rating/Rating.d.ts +35 -35
  295. package/Rating/Rating.js +90 -0
  296. package/Rating/index.d.ts +11 -11
  297. package/Rating/index.js +45 -0
  298. package/Rating/package.json +6 -0
  299. package/Select/SelectDownshift.d.ts +5 -5
  300. package/Select/SelectDownshift.js +38 -0
  301. package/Select/components.d.ts +6 -6
  302. package/Select/components.js +18 -0
  303. package/Select/index.d.ts +2 -2
  304. package/Select/index.js +3 -0
  305. package/Select/package.json +6 -0
  306. package/Sidebar/Sidebar.d.ts +3 -3
  307. package/Sidebar/Sidebar.js +48 -0
  308. package/Sidebar/index.d.ts +1 -1
  309. package/Sidebar/index.js +1 -0
  310. package/Sidebar/package.json +6 -0
  311. package/Spacing/Spacing.d.ts +30 -30
  312. package/Spacing/Spacing.js +45 -0
  313. package/Spacing/index.d.ts +1 -1
  314. package/Spacing/index.js +1 -0
  315. package/Spacing/package.json +6 -0
  316. package/Sticky/Sticky.d.ts +2 -2
  317. package/Sticky/Sticky.js +219 -0
  318. package/Sticky/StickyCss.d.ts +5 -5
  319. package/Sticky/StickyCss.js +4 -0
  320. package/Sticky/index.d.ts +1 -1
  321. package/Sticky/index.js +1 -0
  322. package/Sticky/package.json +6 -0
  323. package/Tabs/Tabs.d.ts +27 -25
  324. package/Tabs/Tabs.js +62 -0
  325. package/Tabs/index.d.ts +1 -1
  326. package/Tabs/index.js +1 -0
  327. package/Tabs/package.json +6 -0
  328. package/Typography/CopyPasteVisible.d.ts +1 -1
  329. package/Typography/CopyPasteVisible.js +6 -0
  330. package/Typography/Native.d.ts +10 -10
  331. package/Typography/Native.js +47 -0
  332. package/Typography/ReadMore.d.ts +12 -12
  333. package/Typography/ReadMore.js +69 -0
  334. package/Typography/TextLoop.d.ts +16 -16
  335. package/Typography/TextLoop.js +49 -0
  336. package/Typography/TypeStairs.d.ts +6 -6
  337. package/Typography/TypeStairs.js +46 -0
  338. package/Typography/index.d.ts +5 -5
  339. package/Typography/index.js +5 -0
  340. package/Typography/package.json +6 -0
  341. package/css/index.d.ts +2 -0
  342. package/css/index.js +30 -0
  343. package/css/package.json +6 -0
  344. package/helpers/classed.d.ts +22 -0
  345. package/helpers/classed.js +64 -0
  346. package/helpers/extend-component.d.ts +28 -0
  347. package/helpers/extend-component.js +12 -0
  348. package/helpers/index.d.ts +3 -1
  349. package/helpers/index.js +2 -0
  350. package/helpers/package.json +6 -0
  351. package/hooks/index.d.ts +6 -5
  352. package/hooks/index.js +7 -0
  353. package/hooks/package.json +6 -0
  354. package/hooks/useDateLocale.d.ts +7 -7
  355. package/hooks/useDateLocale.js +29 -0
  356. package/hooks/useFocus.d.ts +4 -5
  357. package/hooks/useFocus.js +11 -0
  358. package/hooks/usePrevious.d.ts +1 -1
  359. package/hooks/usePrevious.js +8 -0
  360. package/hooks/useScrollPosition.d.ts +15 -0
  361. package/hooks/useScrollPosition.js +75 -0
  362. package/hooks/useScrollTo.d.ts +1 -0
  363. package/hooks/useScrollTo.js +19 -0
  364. package/hooks/useTraceUpdate.d.ts +4 -4
  365. package/hooks/useTraceUpdate.js +20 -0
  366. package/hooks/useWindowSize.d.ts +1 -1
  367. package/hooks/useWindowSize.js +13 -0
  368. package/index.d.ts +1 -35
  369. package/index.js +5 -0
  370. package/m/MotionProvider.d.ts +37 -0
  371. package/m/MotionProvider.js +37 -0
  372. package/m/index.d.ts +6 -0
  373. package/m/index.js +6 -0
  374. package/m/lite.d.ts +2 -0
  375. package/m/lite.js +2 -0
  376. package/m/max.d.ts +2 -0
  377. package/m/max.js +2 -0
  378. package/m/package.json +6 -0
  379. package/node/Alert/Alert.js +21 -0
  380. package/node/Alert/index.js +4 -0
  381. package/node/Animations/Reveal.js +19 -0
  382. package/node/Animations/Underline.js +19 -0
  383. package/node/Animations/index.js +6 -0
  384. package/node/Animations/useReveal.js +74 -0
  385. package/node/Autocomplete/AutocompleteDownshift.js +161 -0
  386. package/node/Autocomplete/AutocompleteDownshiftMultiselect.js +356 -0
  387. package/node/Autocomplete/AutocompleteMui.js +175 -0
  388. package/node/Autocomplete/AutocompleteReach.js +115 -0
  389. package/node/Autocomplete/components.js +93 -0
  390. package/node/Autocomplete/helpers.js +32 -0
  391. package/node/Autocomplete/index.js +7 -0
  392. package/node/Bg/BgColor.js +36 -0
  393. package/node/Bg/BgPhoto.js +64 -0
  394. package/node/Bg/BgSvg.js +20 -0
  395. package/node/Bg/index.js +6 -0
  396. package/node/Breadcrumbs/Breadcrumbs.js +72 -0
  397. package/node/Breadcrumbs/index.js +4 -0
  398. package/node/Buttons/Button.js +83 -0
  399. package/node/Buttons/ButtonComposite.js +54 -0
  400. package/node/Buttons/ButtonFab.js +12 -0
  401. package/node/Buttons/ButtonLink.js +15 -0
  402. package/node/Buttons/IconButton.js +23 -0
  403. package/node/Buttons/index.js +8 -0
  404. package/node/Calendar/CalendarDaygridCell.js +55 -0
  405. package/node/Calendar/CalendarDaygridNav.js +27 -0
  406. package/node/Calendar/CalendarDaygridTable.js +60 -0
  407. package/node/Calendar/CalendarLegend.js +15 -0
  408. package/node/Calendar/calendar-api-google.js +99 -0
  409. package/node/Calendar/index.js +9 -0
  410. package/node/Calendar/types.js +2 -0
  411. package/node/Calendar/useCalendar.js +186 -0
  412. package/node/Calendar/utils.js +217 -0
  413. package/node/Carousel/Carousel.js +381 -0
  414. package/node/Carousel/CarouselCss.js +41 -0
  415. package/node/Carousel/index.js +4 -0
  416. package/node/Collapsable/Collapsable.js +4 -0
  417. package/node/Collapsable/CollapsableReach.js +141 -0
  418. package/node/Collapsable/index.js +4 -0
  419. package/node/Debug/Debug.js +26 -0
  420. package/node/Debug/index.js +4 -0
  421. package/node/Dialog/DialogMui.js +82 -0
  422. package/node/Dialog/css/bare.js +23 -0
  423. package/node/Dialog/index.js +5 -0
  424. package/node/Dialog/m/bare.js +51 -0
  425. package/node/Dialog/m/basic.js +35 -0
  426. package/node/Dialog/m/index.js +8 -0
  427. package/node/Dialog/sc/bare.js +65 -0
  428. package/node/Dialog/sc/framer.js +19 -0
  429. package/node/Dialog/sc/framerMaterial.js +19 -0
  430. package/node/Dialog/sc/material.js +45 -0
  431. package/node/Dialog/tw/bare.js +40 -0
  432. package/node/Dialog/tw/elegant.js +21 -0
  433. package/node/Dialog/tw/framer.js +19 -0
  434. package/node/Dialog/tw/framerMaterial.js +19 -0
  435. package/node/Dialog/tw/material.js +21 -0
  436. package/node/Editor/Editor--tiptap.js +29 -0
  437. package/node/Editor/components.js +34 -0
  438. package/node/Editor/index.js +4 -0
  439. package/node/Favicon/FaviconTags.js +18 -0
  440. package/node/Favicon/index.js +4 -0
  441. package/node/Forms/Checkbox/Checkbox.js +28 -0
  442. package/node/Forms/Checkbox/index.js +4 -0
  443. package/node/Forms/Feedback/Feedback.js +15 -0
  444. package/node/Forms/Feedback/index.js +4 -0
  445. package/node/Forms/Field/Field.js +64 -0
  446. package/node/Forms/Field/FieldControl.js +47 -0
  447. package/node/Forms/Field/FieldHint.js +10 -0
  448. package/node/Forms/Field/index.js +5 -0
  449. package/node/Forms/Form/Form.js +67 -0
  450. package/node/Forms/Form/index.js +4 -0
  451. package/node/Forms/Input/Input.js +27 -0
  452. package/node/Forms/Input/index.js +4 -0
  453. package/node/Forms/InputGroup/InputGroup.js +47 -0
  454. package/node/Forms/InputGroup/index.js +4 -0
  455. package/node/Forms/Label/Label.js +28 -0
  456. package/node/Forms/Label/index.js +4 -0
  457. package/node/Forms/Password/Password.js +34 -0
  458. package/node/Forms/Password/index.js +4 -0
  459. package/node/Forms/Radio/Radio.js +32 -0
  460. package/node/Forms/Radio/index.js +4 -0
  461. package/node/Forms/Switch/Switch.js +54 -0
  462. package/node/Forms/Switch/index.js +4 -0
  463. package/node/Forms/Textarea/Textarea.js +17 -0
  464. package/node/Forms/Textarea/TextareaRich.js +46 -0
  465. package/node/Forms/Textarea/index.js +5 -0
  466. package/node/Forms/Toggle/Toggle.js +85 -0
  467. package/node/Forms/Toggle/index.js +4 -0
  468. package/node/Forms/Toggle/useToggle.js +149 -0
  469. package/node/Forms/antispam.js +61 -0
  470. package/node/Forms/helpers.js +51 -0
  471. package/node/Forms/index.js +20 -0
  472. package/node/Forms/styles.js +64 -0
  473. package/node/Gauge/Gauge.js +106 -0
  474. package/node/Grid/Grid.js +83 -0
  475. package/node/Grid/index.js +4 -0
  476. package/node/Hamburger/Hamburger.js +69 -0
  477. package/node/Hamburger/index.js +4 -0
  478. package/node/Header/index.js +4 -0
  479. package/node/Header/useHeader.js +34 -0
  480. package/node/Hidden/Hidden.js +18 -0
  481. package/node/Hidden/index.js +4 -0
  482. package/node/Img/index.js +4 -0
  483. package/node/Img/sc/bare.js +41 -0
  484. package/node/Img/types.js +2 -0
  485. package/node/Link/Link.js +6 -0
  486. package/node/Link/LinkBlank.js +31 -0
  487. package/node/Link/index.js +5 -0
  488. package/node/Menu/Menu.js +15 -0
  489. package/node/Menu/index.js +4 -0
  490. package/node/MenuItem/MenuItem.js +24 -0
  491. package/node/MenuItem/index.js +4 -0
  492. package/node/Meta/Meta.js +8 -0
  493. package/node/Meta/index.js +4 -0
  494. package/node/NoJs/NoJs.js +10 -0
  495. package/node/NoJs/index.js +4 -0
  496. package/node/Pagination/PaginationNav.js +88 -0
  497. package/node/Pagination/PaginationResults.js +15 -0
  498. package/node/Pagination/index.js +5 -0
  499. package/node/Pill/Pill.js +41 -0
  500. package/node/Pill/index.js +4 -0
  501. package/node/Progress/ProgressCircular.js +41 -0
  502. package/node/Progress/ProgressLinear.js +37 -0
  503. package/node/Progress/ProgressOverlay.js +45 -0
  504. package/node/Progress/index.js +6 -0
  505. package/node/Rating/Rating.js +96 -0
  506. package/node/Rating/index.js +53 -0
  507. package/node/Select/SelectDownshift.js +41 -0
  508. package/node/Select/components.js +22 -0
  509. package/node/Select/index.js +7 -0
  510. package/node/Sidebar/Sidebar.js +53 -0
  511. package/node/Sidebar/index.js +4 -0
  512. package/node/Spacing/Spacing.js +50 -0
  513. package/node/Spacing/index.js +4 -0
  514. package/node/Sticky/Sticky.js +222 -0
  515. package/node/Sticky/StickyCss.js +8 -0
  516. package/node/Sticky/index.js +4 -0
  517. package/node/Tabs/Tabs.js +67 -0
  518. package/node/Tabs/index.js +4 -0
  519. package/node/Typography/CopyPasteVisible.js +10 -0
  520. package/node/Typography/Native.js +51 -0
  521. package/node/Typography/ReadMore.js +74 -0
  522. package/node/Typography/TextLoop.js +54 -0
  523. package/node/Typography/TypeStairs.js +49 -0
  524. package/node/Typography/index.js +8 -0
  525. package/node/css/index.js +35 -0
  526. package/node/helpers/classed.js +68 -0
  527. package/node/helpers/extend-component.js +16 -0
  528. package/node/helpers/index.js +5 -0
  529. package/node/hooks/index.js +10 -0
  530. package/node/hooks/useDateLocale.js +56 -0
  531. package/node/hooks/useFocus.js +15 -0
  532. package/node/hooks/usePrevious.js +12 -0
  533. package/node/hooks/useScrollPosition.js +80 -0
  534. package/node/hooks/useScrollTo.js +23 -0
  535. package/node/hooks/useTraceUpdate.js +24 -0
  536. package/node/hooks/useWindowSize.js +17 -0
  537. package/node/index.js +8 -0
  538. package/node/m/MotionProvider.js +41 -0
  539. package/node/m/index.js +9 -0
  540. package/node/m/lite.js +4 -0
  541. package/node/m/max.js +4 -0
  542. package/node/sc/index.js +35 -0
  543. package/node/scm/index.js +35 -0
  544. package/node/shared/index.js +11 -0
  545. package/node/styles/Body.js +21 -0
  546. package/node/styles/Global.js +53 -0
  547. package/node/styles/index.js +10 -0
  548. package/node/styles/media.js +156 -0
  549. package/node/styles/spacing.js +53 -0
  550. package/node/styles/styled.js +31 -0
  551. package/node/styles/theme--vanilla.js +59 -0
  552. package/node/styles/theme.js +45 -0
  553. package/node/tw/index.js +35 -0
  554. package/node/twm/index.js +35 -0
  555. package/node/types.js +2 -0
  556. package/package.json +9 -22
  557. package/sc/index.d.ts +29 -0
  558. package/sc/index.js +30 -0
  559. package/sc/package.json +6 -0
  560. package/scm/index.d.ts +29 -0
  561. package/scm/index.js +30 -0
  562. package/scm/package.json +6 -0
  563. package/shared/index.d.ts +8 -0
  564. package/shared/index.js +8 -0
  565. package/shared/package.json +6 -0
  566. package/styles/Body.d.ts +10 -10
  567. package/styles/Body.js +17 -0
  568. package/styles/Global.d.ts +15 -15
  569. package/styles/Global.js +50 -0
  570. package/styles/index.d.ts +7 -7
  571. package/styles/index.js +7 -0
  572. package/styles/media.d.ts +67 -67
  573. package/styles/media.js +150 -0
  574. package/styles/package.json +6 -0
  575. package/styles/spacing.d.ts +13 -13
  576. package/styles/spacing.js +46 -0
  577. package/styles/styled.d.ts +12 -12
  578. package/styles/styled.js +27 -0
  579. package/styles/theme--vanilla.d.ts +18 -18
  580. package/styles/theme--vanilla.js +53 -0
  581. package/styles/theme.d.ts +82 -89
  582. package/styles/theme.js +41 -0
  583. package/tw/index.d.ts +2 -0
  584. package/tw/index.js +30 -0
  585. package/tw/package.json +6 -0
  586. package/twm/index.d.ts +2 -0
  587. package/twm/index.js +30 -0
  588. package/twm/package.json +6 -0
  589. package/types.d.ts +10 -11
  590. package/types.js +1 -0
  591. package/typings.d.ts +21 -0
  592. package/Dialog/Dialog.d.ts +0 -23
  593. package/Img/Img.d.ts +0 -11
  594. package/index.esm.js +0 -9456
  595. package/index.umd.js +0 -9667
  596. package/styles/classed.d.ts +0 -4
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useRef, useMemo } from "react";
3
+ import styled from "styled-components";
4
+ import { useIsomorphicLayoutEffect } from "react-use";
5
+ import { m, useSpring } from "framer-motion";
6
+ // import { CgArrowsExpandDownRight as IconExpand } from "react-icons/cg";
7
+ const Root = styled.div ``;
8
+ const Content = styled.div `
9
+ & p:first-child {
10
+ margin-top: 0;
11
+ }
12
+ `;
13
+ const BtnWrap = styled.span `
14
+ display: flex;
15
+ justify-content: flex-end;
16
+ transition: transform 0.18s ease-in-out;
17
+ text-align: right;
18
+ transform: translateY(${(p) => (p.$expanded ? "0" : "-100%")});
19
+ opacity: ${(p) => (p.$expanded ? 0 : 1)};
20
+ `;
21
+ const BtnFader = styled.div `
22
+ width: 30%;
23
+ transition: transform 0.18s ease-in-out;
24
+ background: linear-gradient(45deg, transparent 50%, ${(p) => p.$bg} 70%);
25
+ `;
26
+ const Btn = styled.span `
27
+ padding: 0 10px 0 10px;
28
+ line-height: ${(p) => (p.$lineHeight ? p.$lineHeight : "inherit")};
29
+ background: var(--bodyBg);
30
+ color: var(--grey600);
31
+ white-space: nowrap;
32
+ font-size: ${(p) => p.$fontSize}px;
33
+ cursor: pointer;
34
+ `;
35
+ const BtnIcon = styled.span `
36
+ display: inline-block;
37
+ margin: 0 0 0 4px;
38
+ transition: transform 0.18s ease-in-out;
39
+ ${(p) => (p.$expanded ? "transform: rotate(180deg);" : "")};
40
+ font-size: ${(p) => p.$fontSize}px;
41
+ `;
42
+ export const ReadMore = ({ lines = 3, lineHeight = 1.6, fontSize = 14, bg = "var(--bodyBg)", expand = "Expand", collapse = "Collapse", ...props }) => {
43
+ const defaultMaxHeight = lines * (lineHeight * fontSize);
44
+ const [expanded, setExpanded] = useState(false);
45
+ const [maxHeight, setMaxHeight] = useState(defaultMaxHeight);
46
+ const [fullHeight, setFullHeight] = useState(0);
47
+ const [exceeds, setExceeds] = useState(false);
48
+ const content = useRef(null);
49
+ const height = useSpring(defaultMaxHeight);
50
+ const styles = useMemo(() => (exceeds ? { height, overflow: "hidden" } : {}), [exceeds, height]);
51
+ const handleExpandClick = () => {
52
+ setExpanded((prevExpanded) => !prevExpanded);
53
+ };
54
+ useIsomorphicLayoutEffect(() => {
55
+ if (content.current) {
56
+ const elementHeight = content.current.offsetHeight;
57
+ const newExceeds = elementHeight > maxHeight;
58
+ if (!newExceeds) {
59
+ setMaxHeight(elementHeight);
60
+ }
61
+ setExceeds(newExceeds);
62
+ setFullHeight(elementHeight);
63
+ }
64
+ }, [content, maxHeight]);
65
+ useIsomorphicLayoutEffect(() => {
66
+ height.set(expanded ? fullHeight : maxHeight);
67
+ }, [expanded, height, fullHeight, maxHeight]);
68
+ return (_jsxs(Root, { children: [_jsx(m.div, { style: styles, children: _jsx(Content, { ref: content, ...props }) }), exceeds && (_jsxs(BtnWrap, { "$expanded": expanded, children: [_jsx(BtnFader, { "$bg": bg }), _jsxs(Btn, { "$fontSize": fontSize, "$lineHeight": lineHeight, onClick: handleExpandClick, "aria-expanded": expanded, "aria-label": expanded ? collapse : expand, children: [expanded ? collapse : expand, _jsx(BtnIcon, { "$expanded": expanded })] })] }))] }));
69
+ };
@@ -1,16 +1,16 @@
1
- /// <reference types="react" />
2
- export declare type TextLoopPieceProps = {
3
- text: string | number;
4
- direction?: "up" | "down";
5
- inline?: boolean;
6
- noOverflow?: boolean;
7
- delay?: number;
8
- className?: string;
9
- style?: React.CSSProperties;
10
- };
11
- export declare const TextLoopPiece: React.FC<TextLoopPieceProps>;
12
- export declare type TextLoopPrpps = Omit<TextLoopPieceProps, "text"> & {
13
- texts: string[];
14
- interval?: number;
15
- };
16
- export declare const TextLoop: ({ texts, interval, ...props }: TextLoopPrpps) => JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare type TextLoopPieceProps = React.PropsWithChildren<{
3
+ text: string | number;
4
+ direction?: "up" | "down";
5
+ inline?: boolean;
6
+ noOverflow?: boolean;
7
+ delay?: number;
8
+ className?: string;
9
+ style?: React.CSSProperties;
10
+ }>;
11
+ export declare const TextLoopPiece: ({ text, style, className, direction, inline, noOverflow, delay, }: TextLoopPieceProps) => JSX.Element;
12
+ export declare type TextLoopPrpps = Omit<TextLoopPieceProps, "text"> & {
13
+ texts: string[];
14
+ interval?: number;
15
+ };
16
+ export declare const TextLoop: ({ texts, interval, ...props }: TextLoopPrpps) => JSX.Element;
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { m, AnimatePresence } from "framer-motion";
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({ data: "", key: "" });
7
+ const [width, setWidth] = useState(inline ? 0 : "auto");
8
+ useEffect(() => {
9
+ const timeoutId = setTimeout(() => {
10
+ if (!placeholderRef.current)
11
+ return;
12
+ placeholderRef.current.innerHTML = text + "";
13
+ if (inline)
14
+ setWidth(placeholderRef.current.offsetWidth);
15
+ setContent({ data: text + "", key: new Date() + "" });
16
+ }, delay);
17
+ return () => clearTimeout(timeoutId);
18
+ }, [text, delay, inline]);
19
+ return (_jsxs("div", { className: className, style: {
20
+ ...style,
21
+ position: "relative",
22
+ display: inline ? "inline-block" : "block",
23
+ width,
24
+ whiteSpace: inline ? "nowrap" : "normal",
25
+ }, children: [_jsx("span", { ref: placeholderRef, style: { visibility: "hidden" } }), _jsx("div", { style: {
26
+ overflow: noOverflow ? "hidden" : "visible",
27
+ display: "block",
28
+ position: "absolute",
29
+ top: 0,
30
+ left: 0,
31
+ height: "100%",
32
+ width: "100%",
33
+ }, children: _jsx(AnimatePresence, { children: _jsx(m.div, { style: { position: "absolute" }, initial: {
34
+ opacity: 0,
35
+ y: direction === "down" ? "-100%" : "100%",
36
+ }, animate: { opacity: 1, y: 0 }, exit: {
37
+ opacity: 0,
38
+ y: direction === "down" ? "100%" : "-100%",
39
+ }, children: content.data }, content.key) }) })] }));
40
+ };
41
+ export const TextLoop = ({ texts, interval = 3000, ...props }) => {
42
+ const [index, setIndex] = useState(0);
43
+ useEffect(() => {
44
+ const intervalId = setInterval(() => setIndex((index) => index + 1), interval // every 3 seconds
45
+ );
46
+ return () => clearTimeout(intervalId);
47
+ }, [interval]);
48
+ return _jsx(TextLoopPiece, { ...props, text: texts[index % texts.length] });
49
+ };
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
2
- export declare type TypeStairsProps = {
3
- children: string;
4
- limit?: number;
5
- };
6
- export declare const TypeStairs: import("react").ForwardRefExoticComponent<TypeStairsProps & import("react").RefAttributes<unknown>>;
1
+ /// <reference types="react" />
2
+ export declare type TypeStairsProps = {
3
+ children: string;
4
+ limit?: number;
5
+ };
6
+ export declare const TypeStairs: import("react").ForwardRefExoticComponent<TypeStairsProps & import("react").RefAttributes<unknown>>;
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ export const TypeStairs = 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) : [children];
6
+ return rows.length > 1 ? (_jsx(_Fragment, { children: rows.map((row, rowIndex) => {
7
+ return (_jsxs("span", { children: [renderRow(row, rowIndex, ref), rowIndex !== rows.length - 1 && _jsx("br", {})] }, `row-${rowIndex}`));
8
+ }) })) : (renderRow(rows[0], 0, ref));
9
+ });
10
+ /**
11
+ * every number chars find a space and break, then restart the gradient weight
12
+ * @see https://stackoverflow.com/a/25770787
13
+ */
14
+ function splitTextIntoRows(input = "", limit = 18) {
15
+ const rows = [];
16
+ const arr = input.split(" ");
17
+ let currow = arr[0];
18
+ let rowlen = currow.length;
19
+ for (let i = 1; i < arr.length; i++) {
20
+ const word = arr[i];
21
+ rowlen += word.length + 1;
22
+ if (rowlen <= limit) {
23
+ currow += " " + word;
24
+ }
25
+ else {
26
+ rows.push(currow);
27
+ currow = word;
28
+ rowlen = word.length;
29
+ }
30
+ }
31
+ rows.push(currow);
32
+ return rows;
33
+ }
34
+ function renderRow(row, rowIndex, ref) {
35
+ const letters = row.split("");
36
+ let fontWeightIdx = 1;
37
+ // const fontWeight = Math.min(fontWeightIdx * 100, 800);
38
+ return (_jsx(_Fragment, { children: letters.map((letter, letterIndex) => {
39
+ const fontWeight = Math.min(fontWeightIdx * 100, 800);
40
+ // don't waste a fontWeight for a white space
41
+ if (letter !== " ") {
42
+ fontWeightIdx++;
43
+ }
44
+ return (_jsx("span", { style: { fontWeight }, ref: ref, children: letter }, `letter-${rowIndex}-${letterIndex}`));
45
+ }) }));
46
+ }
@@ -1,5 +1,5 @@
1
- export * from "./CopyPasteVisible";
2
- export * from "./Native";
3
- export * from "./ReadMore";
4
- export * from "./TextLoop";
5
- export * from "./TypeStairs";
1
+ export * from "./CopyPasteVisible";
2
+ export * from "./Native";
3
+ export * from "./ReadMore";
4
+ export * from "./TextLoop";
5
+ export * from "./TypeStairs";
@@ -0,0 +1,5 @@
1
+ export * from "./CopyPasteVisible";
2
+ export * from "./Native";
3
+ export * from "./ReadMore";
4
+ export * from "./TextLoop";
5
+ export * from "./TypeStairs";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/Typography/index.js",
5
+ "types": "./index.d.ts"
6
+ }
package/css/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from "../shared";
2
+ export { KoineDialog } from "../Dialog/css/bare";
package/css/index.js ADDED
@@ -0,0 +1,30 @@
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";
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";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/css/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ declare type ClassedAugmentedProps<Props> = Props & {
3
+ className?: string;
4
+ ref?: React.Ref<any>;
5
+ };
6
+ declare type ClassedFinalProps<Props, Component> = Component extends React.ReactHTML ? React.HTMLProps<Component> & ClassedAugmentedProps<Props> : ClassedAugmentedProps<Props>;
7
+ /**
8
+ * This utility allows to extend a component a là `styled-components` but for
9
+ * a className based styling solution like Tailwind,
10
+ *
11
+ * It also plays nicely with tailwind intellisense @see:
12
+ *
13
+ * - https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssclassattributes
14
+ *
15
+ * For references about tagged functions:
16
+ * - https://javascript.plainenglish.io/how-css-in-js-libraries-work-da4145b1b6c7
17
+ * - https://makersden.io/blog/reverse-engineering-styled-components
18
+ * - https://typesafe.blog/article/the-logic-behind-javascript-tag-functions
19
+ * - https://flaming.codes/posts/typescript-and-javascript-tagged-template-strings
20
+ */
21
+ export declare function classed<Props, Component extends React.ElementType = any>(component: Component): (strings: TemplateStringsArray, ...args: string[] | ((props: Props) => string)[]) => React.ForwardRefExoticComponent<React.PropsWithoutRef<ClassedFinalProps<Props, Component>> & React.RefAttributes<Component>>;
22
+ export {};
@@ -0,0 +1,64 @@
1
+ import { 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 @see:
7
+ *
8
+ * - https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssclassattributes
9
+ *
10
+ * For references about tagged functions:
11
+ * - https://javascript.plainenglish.io/how-css-in-js-libraries-work-da4145b1b6c7
12
+ * - https://makersden.io/blog/reverse-engineering-styled-components
13
+ * - https://typesafe.blog/article/the-logic-behind-javascript-tag-functions
14
+ * - https://flaming.codes/posts/typescript-and-javascript-tagged-template-strings
15
+ */
16
+ export function classed(component) {
17
+ // @ts-expect-error nevermind for now...
18
+ const type = component.type || component;
19
+ return function (strings, ...args) {
20
+ const WrappedComponent = forwardRef(function (props, ref) {
21
+ const argResolved = args
22
+ .map((arg, index) => {
23
+ let result = "";
24
+ if (typeof arg === "function") {
25
+ result = arg(props);
26
+ }
27
+ else if (typeof arg !== "undefined") {
28
+ result = arg.toString();
29
+ }
30
+ return strings[index] + result;
31
+ })
32
+ .join("");
33
+ const isNativeHtmlElement = typeof type === "string";
34
+ const propsToForward = isNativeHtmlElement
35
+ ? {}
36
+ : props;
37
+ if (isNativeHtmlElement) {
38
+ for (const key in props) {
39
+ // like styled-components `transient` props
40
+ if (!key.startsWith("$")) {
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 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
+ }
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ export declare type ExtendableComponent<Props = any> = React.ForwardRefExoticComponent<Props> | React.ExoticComponent<Props> | React.FC<Props> | ((props: Props) => JSX.Element);
3
+ export declare const extendComponent: <Component extends ExtendableComponent<any>, DefaultProps extends {}>(component: Component, defaultProps: DefaultProps) => ((props: React.ComponentProps<Component>) => React.FunctionComponentElement<any>) & DefaultProps & {
4
+ defaultProps: DefaultProps;
5
+ };
6
+ export interface OverridableComponents {
7
+ [key: string]: {
8
+ type: React.ElementType;
9
+ props: any;
10
+ motionable?: boolean;
11
+ };
12
+ }
13
+ /**
14
+ * Type to define a component that has overridable components.
15
+ *
16
+ * Each of them can define its:
17
+ * - `type`: either as a native HTMLElement (the props for that element will be
18
+ * automatically inferred) or as a custom React component
19
+ * - `props`: any additional custom props
20
+ * - `motionable`: if that component has a possible implementation with `framer-motion`,
21
+ * in that case we remove some HTMLAttributes props which collides with
22
+ * `MotionProps` from framer.
23
+ */
24
+ export declare type WithComponents<Props, Components extends OverridableComponents> = Props & {
25
+ [Name in keyof Components]: NonNullable<Components[Name]["type"] extends keyof JSX.IntrinsicElements ? React.ElementType<Components[Name]["motionable"] extends true ? Omit<React.ComponentPropsWithoutRef<Components[Name]["type"]>, HtmlAttributesCollidingWithMotionProps> & Components[Name]["props"] : React.ComponentPropsWithoutRef<Components[Name]["type"]> & Components[Name]["props"]> : Components[Name]["type"]>;
26
+ };
27
+ declare type HtmlAttributesCollidingWithMotionProps = "style" | "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart" | "onAnimationEnd";
28
+ export {};
@@ -0,0 +1,12 @@
1
+ import { 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
+ };
@@ -1 +1,3 @@
1
- export declare function useScrollTo(id?: string, offset?: number): void;
1
+ export * from "./classed";
2
+ export * from "./extend-component";
3
+ export { type Simplify } from "type-fest";
@@ -0,0 +1,2 @@
1
+ export * from "./classed";
2
+ export * from "./extend-component";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/helpers/index.js",
5
+ "types": "./index.d.ts"
6
+ }
package/hooks/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export * from "./useFocus";
2
- export * from "./usePrevious";
3
- export * from "./useDateLocale";
4
- export * from "./useTraceUpdate";
5
- export * from "./useWindowSize";
1
+ export * from "./useDateLocale";
2
+ export * from "./useFocus";
3
+ export * from "./usePrevious";
4
+ export * from "./useScrollPosition";
5
+ export * from "./useTraceUpdate";
6
+ export * from "./useWindowSize";
package/hooks/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "./useDateLocale";
2
+ export * from "./useFocus";
3
+ export * from "./usePrevious";
4
+ export * from "./useScrollPosition";
5
+ // export * from "./useScrollTo";
6
+ export * from "./useTraceUpdate";
7
+ export * from "./useWindowSize";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/hooks/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -1,7 +1,7 @@
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;
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;
@@ -0,0 +1,29 @@
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
+ */
8
+ export function useDateLocale(locale, defaultLocale = "en") {
9
+ const [data, setData] = useState();
10
+ const [current, setCurrent] = useState(defaultLocale);
11
+ // const [ready, setReady] = useState(false);
12
+ // If the user changes the locale listen to the change and import the locale that is now required.
13
+ useEffect(() => {
14
+ const importLocaleFile = async () => {
15
+ // This webpack option stops all of the date-fns files being imported and chunked.
16
+ const localeToSet = await import(
17
+ /* webpackMode: "lazy", webpackChunkName: "df-[index]", webpackExclude: /_lib/ */
18
+ `date-fns/locale/${locale}/index.js`);
19
+ setCurrent(locale || current);
20
+ setData(localeToSet.default);
21
+ // setReady(true);
22
+ };
23
+ // If the locale has not yet been loaded.
24
+ if (locale !== current) {
25
+ importLocaleFile();
26
+ }
27
+ }, [locale, current]);
28
+ return data;
29
+ }
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
- /**
3
- * @see https://stackoverflow.com/a/54159564/1938970
4
- */
5
- export declare const useFocus: () => (import("react").RefObject<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> | (() => void))[];
1
+ /**
2
+ * @see https://stackoverflow.com/a/54159564/1938970
3
+ */
4
+ export declare const useFocus: () => (import("react").RefObject<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> | (() => void))[];
@@ -0,0 +1,11 @@
1
+ import { useRef } from "react";
2
+ /**
3
+ * @see https://stackoverflow.com/a/54159564/1938970
4
+ */
5
+ export const useFocus = () => {
6
+ const element = useRef(null);
7
+ const setFocus = () => {
8
+ element.current && element.current.focus();
9
+ };
10
+ return [element, setFocus];
11
+ };
@@ -1 +1 @@
1
- export declare function usePrevious<T>(value: T): T | undefined;
1
+ export declare function usePrevious<T>(value: T): T | undefined;
@@ -0,0 +1,8 @@
1
+ import { useEffect, useRef } from "react";
2
+ export function usePrevious(value) {
3
+ const ref = useRef();
4
+ useEffect(() => {
5
+ ref.current = value;
6
+ });
7
+ return ref.current;
8
+ }
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ declare type Position = {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ declare type ElementRef = React.MutableRefObject<HTMLElement | undefined>;
7
+ /**
8
+ * @borrows [@n8tb1t/use-scroll-position@2.0.3](https://github.com/n8tb1t/use-scroll-position) by `n8tb1t <n8tb1t@gmail.com>`
9
+ *
10
+ * We've just:
11
+ * - reused internal helper functions
12
+ * - compacted object arguments in functions as plain argument list to improve compression
13
+ */
14
+ export declare const useScrollPosition: (effect: (currentPosition: Position, prevPosition: Position) => void, deps?: import("react").DependencyList, element?: ElementRef | undefined, useWindow?: boolean | undefined, wait?: number | undefined, boundingElement?: ElementRef | undefined) => void;
15
+ export {};
@@ -0,0 +1,75 @@
1
+ import { useRef } from "react";
2
+ import useIsomorphicLayoutEffect from "react-use/esm/useIsomorphicLayoutEffect";
3
+ import { isBrowser } from "@koine/utils";
4
+ const zeroPosition = { x: 0, y: 0 };
5
+ const getClientRect = (element) => element?.getBoundingClientRect();
6
+ const getScrollPosition = (element, useWindow, boundingElement) => {
7
+ if (!isBrowser) {
8
+ return zeroPosition;
9
+ }
10
+ if (useWindow) {
11
+ return { x: window.scrollX, y: window.scrollY };
12
+ }
13
+ const targetPosition = getClientRect(element?.current || document.body);
14
+ const containerPosition = getClientRect(boundingElement?.current);
15
+ if (!targetPosition) {
16
+ return zeroPosition;
17
+ }
18
+ return containerPosition
19
+ ? {
20
+ x: (containerPosition.x || 0) - (targetPosition.x || 0),
21
+ y: (containerPosition.y || 0) - (targetPosition.y || 0),
22
+ }
23
+ : { x: targetPosition.left, y: targetPosition.top };
24
+ };
25
+ /**
26
+ * @borrows [@n8tb1t/use-scroll-position@2.0.3](https://github.com/n8tb1t/use-scroll-position) by `n8tb1t <n8tb1t@gmail.com>`
27
+ *
28
+ * We've just:
29
+ * - reused internal helper functions
30
+ * - compacted object arguments in functions as plain argument list to improve compression
31
+ */
32
+ export const useScrollPosition = (effect, deps = [], element, useWindow, wait, boundingElement) => {
33
+ const position = useRef(getScrollPosition(null, useWindow, boundingElement));
34
+ let throttleTimeout = null;
35
+ const callBack = () => {
36
+ const current = getScrollPosition(element, useWindow, boundingElement);
37
+ effect(current, position.current);
38
+ position.current = current;
39
+ throttleTimeout = null;
40
+ };
41
+ useIsomorphicLayoutEffect(() => {
42
+ if (!isBrowser) {
43
+ return undefined;
44
+ }
45
+ const handleScroll = () => {
46
+ if (wait) {
47
+ if (throttleTimeout === null) {
48
+ throttleTimeout = window.setTimeout(callBack, wait);
49
+ }
50
+ }
51
+ else {
52
+ callBack();
53
+ }
54
+ };
55
+ if (boundingElement) {
56
+ boundingElement.current?.addEventListener("scroll", handleScroll, {
57
+ passive: true,
58
+ });
59
+ }
60
+ else {
61
+ window.addEventListener("scroll", handleScroll, { passive: true });
62
+ }
63
+ return () => {
64
+ if (boundingElement) {
65
+ boundingElement.current?.removeEventListener("scroll", handleScroll);
66
+ }
67
+ else {
68
+ window.removeEventListener("scroll", handleScroll);
69
+ }
70
+ if (throttleTimeout) {
71
+ clearTimeout(throttleTimeout);
72
+ }
73
+ };
74
+ }, deps);
75
+ };
@@ -0,0 +1 @@
1
+ export declare function useScrollTo(id?: string, offset?: number): void;