@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
package/scm/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/sc/framer";
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/scm/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,8 @@
1
+ export * from "../Calendar";
2
+ export * from "../Dialog";
3
+ export * from "../Favicon";
4
+ export * from "../helpers";
5
+ export * from "../hooks";
6
+ export * from "../Meta";
7
+ export * from "../NoJs";
8
+ export * from "../types";
@@ -0,0 +1,8 @@
1
+ export * from "../Calendar";
2
+ export * from "../Dialog";
3
+ export * from "../Favicon";
4
+ export * from "../helpers";
5
+ export * from "../hooks";
6
+ export * from "../Meta";
7
+ export * from "../NoJs";
8
+ export * from "../types";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/shared/index.js",
5
+ "types": "./index.d.ts"
6
+ }
package/styles/Body.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export declare const BodyRoot: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
2
- /**
3
- * If you have background graphics to overlap you might need to add:
4
- *
5
- * ```css
6
- * z-index: 1;
7
- * position: relative;
8
- * ```
9
- */
10
- export declare const BodyMain: import("styled-components").StyledComponent<"main", import("styled-components").DefaultTheme, {}, never>;
1
+ export declare const BodyRoot: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
2
+ /**
3
+ * If you have background graphics to overlap you might need to add:
4
+ *
5
+ * ```css
6
+ * z-index: 1;
7
+ * position: relative;
8
+ * ```
9
+ */
10
+ export declare const BodyMain: import("styled-components").StyledComponent<"main", import("styled-components").DefaultTheme, {}, never>;
package/styles/Body.js ADDED
@@ -0,0 +1,17 @@
1
+ import styled from "styled-components";
2
+ export const BodyRoot = styled.div `
3
+ display: flex;
4
+ flex-direction: column;
5
+ min-height: 100vh;
6
+ `;
7
+ /**
8
+ * If you have background graphics to overlap you might need to add:
9
+ *
10
+ * ```css
11
+ * z-index: 1;
12
+ * position: relative;
13
+ * ```
14
+ */
15
+ export const BodyMain = styled.main `
16
+ flex: 1;
17
+ `;
@@ -1,15 +1,15 @@
1
- /**
2
- * App global style
3
- *
4
- * For examples of what to do here take a look at [Bootstrap's reset](https://github.com/twbs/bootstrap/blob/main/scss/_reboot.scss)
5
- * and similar.
6
- *
7
- * What we do here:
8
- * - set the base font family on all possible elements including placeholders prevent Chrome showing a standard font when using the autofill feature
9
- * - @see https://stackoverflow.com/a/60987373/1938970
10
- * - set the base font size on all possible elements to prevent weird zooming on input fields on iPhone iOS devices.
11
- * - @see https://www.warrenchandler.com/2019/04/02/stop-iphones-from-zooming-in-on-form-fields/
12
- * - @see https://css-tricks.com/16px-or-larger-text-prevents-ios-form-zoom/
13
- */
14
- export declare const stylesGlobal = "\n body {\n margin: 0;\n padding: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n }\n\n body,\n button,\n input,\n textarea,\n select,\n select:-webkit-autofill::first-line,\n input:-webkit-autofill::first-line {\n font-family: var(--font), -apple-system, BlinkMacSystemFont, \"Segoe UI\",\n Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\",\n sans-serif;\n font-size: var(--fontSize);\n }\n\n html {\n box-sizing: border-box;\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n\n *,\n *:before,\n *:after {\n box-sizing: inherit;\n -webkit-tap-highlight-color: transparent;\n }\n";
15
- export declare const StylesGlobal: import("styled-components").GlobalStyleComponent<{}, import("styled-components").DefaultTheme>;
1
+ /**
2
+ * App global style
3
+ *
4
+ * For examples of what to do here take a look at [Bootstrap's reset](https://github.com/twbs/bootstrap/blob/main/scss/_reboot.scss)
5
+ * and similar.
6
+ *
7
+ * What we do here:
8
+ * - set the base font family on all possible elements including placeholders prevent Chrome showing a standard font when using the autofill feature
9
+ * - @see https://stackoverflow.com/a/60987373/1938970
10
+ * - set the base font size on all possible elements to prevent weird zooming on input fields on iPhone iOS devices.
11
+ * - @see https://www.warrenchandler.com/2019/04/02/stop-iphones-from-zooming-in-on-form-fields/
12
+ * - @see https://css-tricks.com/16px-or-larger-text-prevents-ios-form-zoom/
13
+ */
14
+ export declare const stylesGlobal = "\n body {\n margin: 0;\n padding: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n }\n\n body,\n button,\n input,\n textarea,\n select,\n select:-webkit-autofill::first-line,\n input:-webkit-autofill::first-line {\n font-family: var(--font), -apple-system, BlinkMacSystemFont, \"Segoe UI\",\n Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\",\n sans-serif;\n font-size: var(--fontSize);\n }\n\n html {\n box-sizing: border-box;\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n\n *,\n *:before,\n *:after {\n box-sizing: inherit;\n -webkit-tap-highlight-color: transparent;\n }\n";
15
+ export declare const StylesGlobal: import("styled-components").GlobalStyleComponent<{}, import("styled-components").DefaultTheme>;
@@ -0,0 +1,50 @@
1
+ import { createGlobalStyle } from "styled-components";
2
+ /**
3
+ * App global style
4
+ *
5
+ * For examples of what to do here take a look at [Bootstrap's reset](https://github.com/twbs/bootstrap/blob/main/scss/_reboot.scss)
6
+ * and similar.
7
+ *
8
+ * What we do here:
9
+ * - set the base font family on all possible elements including placeholders prevent Chrome showing a standard font when using the autofill feature
10
+ * - @see https://stackoverflow.com/a/60987373/1938970
11
+ * - set the base font size on all possible elements to prevent weird zooming on input fields on iPhone iOS devices.
12
+ * - @see https://www.warrenchandler.com/2019/04/02/stop-iphones-from-zooming-in-on-form-fields/
13
+ * - @see https://css-tricks.com/16px-or-larger-text-prevents-ios-form-zoom/
14
+ */
15
+ export const stylesGlobal = `
16
+ body {
17
+ margin: 0;
18
+ padding: 0;
19
+ overflow-x: hidden;
20
+ overflow-y: scroll;
21
+ }
22
+
23
+ body,
24
+ button,
25
+ input,
26
+ textarea,
27
+ select,
28
+ select:-webkit-autofill::first-line,
29
+ input:-webkit-autofill::first-line {
30
+ font-family: var(--font), -apple-system, BlinkMacSystemFont, "Segoe UI",
31
+ Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue",
32
+ sans-serif;
33
+ font-size: var(--fontSize);
34
+ }
35
+
36
+ html {
37
+ box-sizing: border-box;
38
+ @media (prefers-reduced-motion: no-preference) {
39
+ scroll-behavior: smooth;
40
+ }
41
+ }
42
+
43
+ *,
44
+ *:before,
45
+ *:after {
46
+ box-sizing: inherit;
47
+ -webkit-tap-highlight-color: transparent;
48
+ }
49
+ `;
50
+ export const StylesGlobal = createGlobalStyle `${stylesGlobal}`;
package/styles/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export * from "./Body";
2
- export * from "./Global";
3
- export * from "./media";
4
- export * from "./spacing";
5
- export * from "./styled";
6
- export * from "./theme";
7
- export * from "./theme--vanilla";
1
+ export * from "./Body";
2
+ export * from "./Global";
3
+ export * from "./media";
4
+ export * from "./spacing";
5
+ export * from "./styled";
6
+ export * from "./theme";
7
+ export * from "./theme--vanilla";
@@ -0,0 +1,7 @@
1
+ export * from "./Body";
2
+ export * from "./Global";
3
+ export * from "./media";
4
+ export * from "./spacing";
5
+ export * from "./styled";
6
+ export * from "./theme";
7
+ export * from "./theme--vanilla";
package/styles/media.d.ts CHANGED
@@ -1,67 +1,67 @@
1
- import { Breakpoint, Breakpoints } from "./theme";
2
- export declare const min: MediaQueryFunction, max: MediaQueryFunction, up: MediaQueryFunction, down: (br: Breakpoint) => string, between: (br1: Breakpoint, br2: Breakpoint) => string, only: (br: Breakpoint) => string;
3
- export declare type MediaDirection = "min" | "max";
4
- export declare type MediaQuery = `${MediaDirection}:${Breakpoint}`;
5
- export declare type MediaQueryFunction = {
6
- [Breakpoint in keyof Breakpoints]: string;
7
- } & {
8
- (breakpoint: Breakpoint): string;
9
- };
10
- export declare function useMedia(media: MediaQuery): boolean;
11
- /**
12
- * Generate media queries helpers
13
- *
14
- * Usage:
15
- * ```jsx
16
- * import { generateMediaQueries } from "@koine/react";
17
- *
18
- * export const breakpoints = {
19
- * xs: 0,
20
- * sm: 440,
21
- * md: 768,
22
- * lg: 1024,
23
- * xl: 1368,
24
- * xxl: 1690,
25
- * } as const;
26
- *
27
- * export const { min, max, up, down, between, only } = generateMediaQueries(breakpoints);
28
- * ```
29
- *
30
- * Consider the following syntaxes, using normal CSS is just slightly
31
- * longer but it aovid js imports, reduce the js overhead and improve CSS
32
- * highlighting in the editor.
33
- *
34
- * Even if we would reduce the function signature to the bare minimum the advantage
35
- * in terms of typing would not be much, also loosing in readability.
36
- *
37
- * ```css
38
- * // but unfortunately this does not work
39
- * @media (min-width: var(--b-sm)) {}
40
- * @media (min-width: 480px) {}
41
- *
42
- * ${media("min", "sm")} {}
43
- * ${mediaMin("sm")} {}
44
- * ${min.sm} {}
45
- * ${p => p.theme.min.sm}``
46
- * ```
47
- *
48
- * Related projects:
49
- * @see https://github.com/mg901/styled-breakpoints
50
- * @see https://github.com/morajabi/styled-media-query
51
- *
52
- * @see https://www.w3.org/TR/mediaqueries-5/#custom-mq The spec would allow for
53
- * something like this syntax
54
- *
55
- * ```css
56
- * @custom-media --narrow-window (max-width: 30em);
57
- * @media (--narrow-window) {}
58
- * ```
59
- */
60
- export declare function generateMediaQueries(breakpoints: Breakpoints): {
61
- min: MediaQueryFunction;
62
- max: MediaQueryFunction;
63
- up: MediaQueryFunction;
64
- down: (br: Breakpoint) => string;
65
- between: (br1: Breakpoint, br2: Breakpoint) => string;
66
- only: (br: Breakpoint) => string;
67
- };
1
+ import { Breakpoint, Breakpoints } from "./theme";
2
+ export declare const min: MediaQueryFunction, max: MediaQueryFunction, up: MediaQueryFunction, down: (br: Breakpoint) => string, between: (br1: Breakpoint, br2: Breakpoint) => string, only: (br: Breakpoint) => string;
3
+ export declare type MediaDirection = "min" | "max";
4
+ export declare type MediaQuery = `${MediaDirection}:${Breakpoint}`;
5
+ export declare type MediaQueryFunction = {
6
+ [Breakpoint in keyof Breakpoints]: string;
7
+ } & {
8
+ (breakpoint: Breakpoint): string;
9
+ };
10
+ export declare function useMedia(media: MediaQuery): boolean;
11
+ /**
12
+ * Generate media queries helpers
13
+ *
14
+ * Usage:
15
+ * ```jsx
16
+ * import { generateMediaQueries } from "@koine/react";
17
+ *
18
+ * export const breakpoints = {
19
+ * xs: 0,
20
+ * sm: 440,
21
+ * md: 768,
22
+ * lg: 1024,
23
+ * xl: 1368,
24
+ * xxl: 1690,
25
+ * } as const;
26
+ *
27
+ * export const { min, max, up, down, between, only } = generateMediaQueries(breakpoints);
28
+ * ```
29
+ *
30
+ * Consider the following syntaxes, using normal CSS is just slightly
31
+ * longer but it aovid js imports, reduce the js overhead and improve CSS
32
+ * highlighting in the editor.
33
+ *
34
+ * Even if we would reduce the function signature to the bare minimum the advantage
35
+ * in terms of typing would not be much, also loosing in readability.
36
+ *
37
+ * ```css
38
+ * // but unfortunately this does not work
39
+ * @media (min-width: var(--b-sm)) {}
40
+ * @media (min-width: 480px) {}
41
+ *
42
+ * ${media("min", "sm")} {}
43
+ * ${mediaMin("sm")} {}
44
+ * ${min.sm} {}
45
+ * ${p => p.theme.min.sm}``
46
+ * ```
47
+ *
48
+ * Related projects:
49
+ * @see https://github.com/mg901/styled-breakpoints
50
+ * @see https://github.com/morajabi/styled-media-query
51
+ *
52
+ * @see https://www.w3.org/TR/mediaqueries-5/#custom-mq The spec would allow for
53
+ * something like this syntax
54
+ *
55
+ * ```css
56
+ * @custom-media --narrow-window (max-width: 30em);
57
+ * @media (--narrow-window) {}
58
+ * ```
59
+ */
60
+ export declare function generateMediaQueries(breakpoints: Breakpoints): {
61
+ min: MediaQueryFunction;
62
+ max: MediaQueryFunction;
63
+ up: MediaQueryFunction;
64
+ down: (br: Breakpoint) => string;
65
+ between: (br1: Breakpoint, br2: Breakpoint) => string;
66
+ only: (br: Breakpoint) => string;
67
+ };
@@ -0,0 +1,150 @@
1
+ import { useState, useEffect } from "react";
2
+ import { useTheme, breakpoints } from "./theme";
3
+ export const { min, max, up, down, between, only } = generateMediaQueries(breakpoints);
4
+ export function useMedia(media) {
5
+ const { breakpoints } = useTheme();
6
+ const [matches, setMatches] = useState(false);
7
+ const [direction = "min", breakpoint] = media.split(":");
8
+ let px = breakpoints[breakpoint];
9
+ if (direction === "max") {
10
+ px = px - 0.02;
11
+ }
12
+ const query = `(${direction}-width: ${px}px)`;
13
+ useEffect(() => {
14
+ const mq = window.matchMedia(query);
15
+ const handleChange = (event) => {
16
+ setMatches(event.matches);
17
+ };
18
+ setMatches(mq.matches);
19
+ // Safari < 14 can't use addEventListener on a MediaQueryList
20
+ // https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList#Browser_compatibility
21
+ if (!mq.addEventListener) {
22
+ // Update the state whenever the media query match state changes
23
+ mq.addListener(handleChange);
24
+ // Clean up on unmount and if the query changes
25
+ return () => {
26
+ mq.removeListener(handleChange);
27
+ };
28
+ }
29
+ mq.addEventListener("change", handleChange);
30
+ return () => {
31
+ mq.removeEventListener("change", handleChange);
32
+ };
33
+ }, [query]);
34
+ return matches;
35
+ }
36
+ /**
37
+ * Generate media queries helpers
38
+ *
39
+ * Usage:
40
+ * ```jsx
41
+ * import { generateMediaQueries } from "@koine/react";
42
+ *
43
+ * export const breakpoints = {
44
+ * xs: 0,
45
+ * sm: 440,
46
+ * md: 768,
47
+ * lg: 1024,
48
+ * xl: 1368,
49
+ * xxl: 1690,
50
+ * } as const;
51
+ *
52
+ * export const { min, max, up, down, between, only } = generateMediaQueries(breakpoints);
53
+ * ```
54
+ *
55
+ * Consider the following syntaxes, using normal CSS is just slightly
56
+ * longer but it aovid js imports, reduce the js overhead and improve CSS
57
+ * highlighting in the editor.
58
+ *
59
+ * Even if we would reduce the function signature to the bare minimum the advantage
60
+ * in terms of typing would not be much, also loosing in readability.
61
+ *
62
+ * ```css
63
+ * // but unfortunately this does not work
64
+ * @media (min-width: var(--b-sm)) {}
65
+ * @media (min-width: 480px) {}
66
+ *
67
+ * ${media("min", "sm")} {}
68
+ * ${mediaMin("sm")} {}
69
+ * ${min.sm} {}
70
+ * ${p => p.theme.min.sm}``
71
+ * ```
72
+ *
73
+ * Related projects:
74
+ * @see https://github.com/mg901/styled-breakpoints
75
+ * @see https://github.com/morajabi/styled-media-query
76
+ *
77
+ * @see https://www.w3.org/TR/mediaqueries-5/#custom-mq The spec would allow for
78
+ * something like this syntax
79
+ *
80
+ * ```css
81
+ * @custom-media --narrow-window (max-width: 30em);
82
+ * @media (--narrow-window) {}
83
+ * ```
84
+ */
85
+ export function generateMediaQueries(breakpoints) {
86
+ const temp = Object.keys(breakpoints).map((key) => {
87
+ const br = key;
88
+ return [br, breakpoints[br]];
89
+ });
90
+ const sortedKeys = temp.sort((a, b) => a[1] - b[1]).map((item) => item[0]);
91
+ const getNext = (breakpoint) => {
92
+ const index = sortedKeys.indexOf(breakpoint);
93
+ return sortedKeys[index + 1];
94
+ };
95
+ /**
96
+ * It behaves the same as `@media (min-width: ${value}px)`
97
+ * where value is the given breakpoint value.
98
+ * For ease of use this can be used both as a function `min("md")` and as an
99
+ * object literal `min.md`.
100
+ */ // @ts-expect-error FIXME: at some point
101
+ const min = (br) => `@media (min-width: ${breakpoints[br]}px)`;
102
+ /**
103
+ * It behaves the same as `@media (max-width: ${value}px)`
104
+ * where value is the given breakpoint value.
105
+ * For ease of use this can be used both as a function `max("md")` and as an
106
+ * object literal `max.md`.
107
+ */ // @ts-expect-error FIXME: at some point
108
+ const max = (br) => `@media (max-width: ${breakpoints[br] - 0.02}px)`;
109
+ for (const br in breakpoints) {
110
+ const _br = br;
111
+ min[_br] = `@media (min-width: ${breakpoints[_br]}px)`;
112
+ max[_br] = `@media (max-width: ${breakpoints[_br] - 0.02}px)`;
113
+ }
114
+ /**
115
+ * It behaves the same as `min`
116
+ * @inheritdoc {max}
117
+ */
118
+ const up = min;
119
+ /**
120
+ * It behaves similarly to `max` but you will use the "next" breakpoint,
121
+ * specifying CSS that will apply from the given breakpoint and down.
122
+ */
123
+ const down = (br) => {
124
+ const brNext = getNext(br);
125
+ // TODO: if br does not exists otherwise throw Error
126
+ return brNext && `@media (max-width: ${breakpoints[brNext] - 0.02}px)`;
127
+ };
128
+ /**
129
+ * Media query between the two given breakpoints
130
+ */
131
+ const between = (br1, br2) => {
132
+ return `@media (min-width: ${breakpoints[br1]}px) and (max-width: ${breakpoints[br2] - 0.02}px)`;
133
+ };
134
+ /**
135
+ * Media query to apply from the given breakpoint until the next, just for its
136
+ * full range
137
+ */
138
+ const only = (br) => {
139
+ const brNext = getNext(br);
140
+ return brNext ? between(br, brNext) : min(br);
141
+ };
142
+ return {
143
+ min,
144
+ max,
145
+ up,
146
+ down,
147
+ between,
148
+ only,
149
+ };
150
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/styles/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -1,13 +1,13 @@
1
- import type { Theme } from "./theme";
2
- export declare type SpacingSize = "sm" | "md" | "lg";
3
- export declare type SpacingProperty = "padding" | "margin";
4
- /** @default 1 */
5
- export declare type SpacingFactor = number;
6
- export declare type SpacingDirection = "top" | "bottom";
7
- export declare type SpacingDirectionAxis = "vertical" | SpacingDirection;
8
- export declare type SpacingDevices = keyof Theme["devices"];
9
- export declare type SpacingArgs = Parameters<typeof spacing>;
10
- export declare function spacing(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, direction?: SpacingDirectionAxis, devices?: SpacingDevices[]): string;
11
- export declare function spacingTop(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, devices?: SpacingDevices[]): string;
12
- export declare function spacingBottom(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, devices?: SpacingDevices[]): string;
13
- export declare function spacingVertical(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, devices?: SpacingDevices[]): string;
1
+ import type { Theme } from "./theme";
2
+ export declare type SpacingSize = "sm" | "md" | "lg";
3
+ export declare type SpacingProperty = "padding" | "margin";
4
+ /** @default 1 */
5
+ export declare type SpacingFactor = number;
6
+ export declare type SpacingDirection = "top" | "bottom";
7
+ export declare type SpacingDirectionAxis = "vertical" | SpacingDirection;
8
+ export declare type SpacingDevices = keyof Theme["devices"];
9
+ export declare type SpacingArgs = Parameters<typeof spacing>;
10
+ export declare function spacing(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, direction?: SpacingDirectionAxis, devices?: SpacingDevices[]): string;
11
+ export declare function spacingTop(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, devices?: SpacingDevices[]): string;
12
+ export declare function spacingBottom(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, devices?: SpacingDevices[]): string;
13
+ export declare function spacingVertical(this: Theme, size?: SpacingSize, factor?: SpacingFactor, property?: SpacingProperty, devices?: SpacingDevices[]): string;
@@ -0,0 +1,46 @@
1
+ function _spacing(theme, size = "md", factor = 1, property = "padding", direction = "top", devices = ["mobile", "tablet", "desktop"]) {
2
+ const { breakpoints, devices: DEVICES, spaces: SPACES } = theme;
3
+ let css = "";
4
+ const prop = `${property}-${direction}`;
5
+ if (!devices.length || devices[0] === "mobile") {
6
+ css += `@media(max-width: ${breakpoints[DEVICES.mobile]}px){
7
+ ${prop}: ${SPACES["mobile"][size] * factor}px;
8
+ }`;
9
+ }
10
+ else {
11
+ for (let index = 0; index < devices.length; index++) {
12
+ const device = devices[index];
13
+ if (device === "mobile") {
14
+ css += `${prop}: ${SPACES[device][size] * factor}px;`;
15
+ }
16
+ else if (device === "tablet") {
17
+ css += `@media(min-width: ${breakpoints[DEVICES.tablet]}px){
18
+ ${prop}: ${SPACES["tablet"][size] * factor}px;
19
+ }`;
20
+ }
21
+ else if (device === "desktop") {
22
+ css += `@media(min-width: ${breakpoints[DEVICES.desktop]}px){
23
+ ${prop}: ${SPACES["desktop"][size] * factor}px;
24
+ }`;
25
+ }
26
+ }
27
+ }
28
+ return css;
29
+ }
30
+ export function spacing(size, factor, property, direction, devices) {
31
+ if (direction === "vertical") {
32
+ return (_spacing(this, size, factor, property, "top", devices) +
33
+ _spacing(this, size, factor, property, "bottom", devices));
34
+ }
35
+ return _spacing(this, size, factor, property, direction, devices);
36
+ }
37
+ export function spacingTop(size, factor, property, devices) {
38
+ return _spacing(this, size, factor, property, "top", devices);
39
+ }
40
+ export function spacingBottom(size, factor, property, devices) {
41
+ return _spacing(this, size, factor, property, "bottom", devices);
42
+ }
43
+ export function spacingVertical(size, factor, property, devices) {
44
+ return (_spacing(this, size, factor, property, "top", devices) +
45
+ _spacing(this, size, factor, property, "bottom", devices));
46
+ }
@@ -1,12 +1,12 @@
1
- import type { Theme } from "./theme";
2
- export declare function colStretch(this: Theme, direction: "left" | "right", color: keyof Readonly<Theme> | string): string;
3
- /** @see https://caniuse.com/?search=inset */
4
- export declare const inset0 = "top:0;left:0;right:0;bottom:0;";
5
- export declare const overlay: string;
6
- export declare const centered = "display: flex;align-items: center;justify-content: center;";
7
- export declare const ellipsis = "overflow: hidden;text-overflow: ellipsis;white-space: nowrap;";
8
- /**
9
- * @see import("@mui/utils").visuallyHidden https://github.com/mui-org/material-ui/blob/master/packages/mui-utils/src/visuallyHidden.ts
10
- */
11
- export declare const invisible = "border: 0;clip: rect(0 0 0 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;white-space: nowrap;width: 1px;";
12
- export declare const stateFocus = "outline: 0px;box-shadow: 0 0 0 0.2rem rgba(200, 200, 200, 0.25);";
1
+ import React from "react";
2
+ export declare function colStretch(direction: "left" | "right", bg: React.CSSProperties["background"]): string;
3
+ /** @see https://caniuse.com/?search=inset */
4
+ export declare const inset0 = "top:0;left:0;right:0;bottom:0;";
5
+ export declare const overlay: string;
6
+ export declare const centered = "display: flex;align-items: center;justify-content: center;";
7
+ export declare const ellipsis = "overflow: hidden;text-overflow: ellipsis;white-space: nowrap;";
8
+ /**
9
+ * @see import("@mui/utils").visuallyHidden https://github.com/mui-org/material-ui/blob/master/packages/mui-utils/src/visuallyHidden.ts
10
+ */
11
+ export declare const invisible = "border: 0;clip: rect(0 0 0 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;white-space: nowrap;width: 1px;";
12
+ export declare const stateFocus = "outline: 0px;box-shadow: 0 0 0 0.2rem rgba(200, 200, 200, 0.25);";
@@ -0,0 +1,27 @@
1
+ export function colStretch(direction, bg) {
2
+ return `
3
+ background: ${bg};
4
+ position: relative;
5
+
6
+ &:before{
7
+ z-index: -1;
8
+ content: '';
9
+ position: absolute;
10
+ right: ${direction === "left" ? "100%" : "-100vw"};
11
+ left: ${direction === "right" ? "100%" : "-100vw"};
12
+ top: 0;
13
+ bottom: 0;
14
+ background: ${bg};
15
+ }
16
+ `;
17
+ }
18
+ /** @see https://caniuse.com/?search=inset */
19
+ export const inset0 = `top:0;left:0;right:0;bottom:0;`;
20
+ export const overlay = `position: absolute;${inset0}`;
21
+ export const centered = `display: flex;align-items: center;justify-content: center;`;
22
+ export const ellipsis = `overflow: hidden;text-overflow: ellipsis;white-space: nowrap;`;
23
+ /**
24
+ * @see import("@mui/utils").visuallyHidden https://github.com/mui-org/material-ui/blob/master/packages/mui-utils/src/visuallyHidden.ts
25
+ */
26
+ export const invisible = `border: 0;clip: rect(0 0 0 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;white-space: nowrap;width: 1px;`;
27
+ export const stateFocus = `outline: 0px;box-shadow: 0 0 0 0.2rem rgba(200, 200, 200, 0.25);`;