@koine/react 2.0.0-beta.1 → 2.0.0-beta.11

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 (501) hide show
  1. package/Alert/Alert.mjs +19 -7
  2. package/Alert/Alert.stories.mjs +18 -0
  3. package/Animations/Reveal.mjs +39 -13
  4. package/Animations/Underline.d.ts +1 -1
  5. package/Animations/Underline.mjs +14 -4
  6. package/Animations/useReveal.mjs +42 -40
  7. package/Autocomplete/AutocompleteDownshift.mjs +156 -157
  8. package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +351 -352
  9. package/Autocomplete/AutocompleteMui.d.ts +1 -1
  10. package/Autocomplete/AutocompleteMui.mjs +126 -89
  11. package/Autocomplete/AutocompleteReach.mjs +110 -111
  12. package/Autocomplete/components.d.ts +12 -16
  13. package/Autocomplete/components.mjs +76 -23
  14. package/Autocomplete/helpers.mjs +11 -5
  15. package/Autocomplete/index.mjs +4 -3
  16. package/Bg/BgColor.d.ts +2 -7
  17. package/Bg/BgColor.mjs +36 -15
  18. package/Bg/BgPhoto.mjs +66 -11
  19. package/Bg/BgSvg.mjs +17 -7
  20. package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  21. package/Breadcrumbs/Breadcrumbs.mjs +82 -18
  22. package/Buttons/Button.d.ts +1 -1
  23. package/Buttons/Button.mjs +73 -9
  24. package/Buttons/ButtonComposite.d.ts +1 -1
  25. package/Buttons/ButtonComposite.mjs +99 -22
  26. package/Buttons/ButtonFab.d.ts +1 -3
  27. package/Buttons/ButtonFab.mjs +6 -4
  28. package/Buttons/ButtonLink.d.ts +1 -1
  29. package/Buttons/ButtonLink.mjs +14 -7
  30. package/Buttons/IconButton.d.ts +1 -3
  31. package/Buttons/IconButton.mjs +18 -6
  32. package/Calendar/CalendarDaygridCell.d.ts +2 -2
  33. package/Calendar/CalendarDaygridCell.mjs +64 -26
  34. package/Calendar/CalendarDaygridNav.d.ts +1 -1
  35. package/Calendar/CalendarDaygridNav.mjs +41 -12
  36. package/Calendar/CalendarDaygridTable.d.ts +3 -3
  37. package/Calendar/CalendarDaygridTable.mjs +97 -30
  38. package/Calendar/CalendarLegend.d.ts +1 -1
  39. package/Calendar/CalendarLegend.mjs +20 -6
  40. package/Calendar/calendar-api-google.d.ts +1 -1
  41. package/Calendar/calendar-api-google.mjs +75 -105
  42. package/Calendar/types.mjs +1 -1
  43. package/Calendar/useCalendar.d.ts +2 -2
  44. package/Calendar/useCalendar.mjs +184 -142
  45. package/Calendar/utils.mjs +101 -94
  46. package/Carousel/Carousel.mjs +377 -378
  47. package/Carousel/CarouselCss.d.ts +3 -20
  48. package/Carousel/CarouselCss.mjs +38 -16
  49. package/Collapsable/Collapsable.mjs +1 -1
  50. package/Collapsable/CollapsableReach.mjs +1 -3
  51. package/Collapsable/index.mjs +1 -2
  52. package/Debug/Debug.mjs +20 -6
  53. package/Details/Details.d.ts +5 -5
  54. package/Details/Details.mjs +64 -37
  55. package/Details/Details.stories.mjs +21 -0
  56. package/Dialog/DialogMui.d.ts +10 -327
  57. package/Dialog/DialogMui.mjs +50 -25
  58. package/Dialog/DialogMui.stories.mjs +20 -0
  59. package/Dialog/css/bare.d.ts +9 -327
  60. package/Dialog/css/bare.mjs +15 -17
  61. package/Dialog/css/index.stories.mjs +75 -0
  62. package/Dialog/m/bare.d.ts +2 -398
  63. package/Dialog/m/bare.mjs +114 -51
  64. package/Dialog/m/basic.mjs +10 -10
  65. package/Dialog/m/index.mjs +4 -4
  66. package/Dialog/sc/bare.d.ts +27 -405
  67. package/Dialog/sc/bare.mjs +40 -29
  68. package/Dialog/sc/framer.d.ts +15 -422
  69. package/Dialog/sc/framer.mjs +9 -9
  70. package/Dialog/sc/framerMaterial.d.ts +15 -422
  71. package/Dialog/sc/framerMaterial.mjs +9 -9
  72. package/Dialog/sc/index.stories.mjs +48 -0
  73. package/Dialog/sc/material.d.ts +27 -405
  74. package/Dialog/sc/material.mjs +37 -17
  75. package/Dialog/tw/bare.d.ts +9 -327
  76. package/Dialog/tw/bare.mjs +15 -28
  77. package/Dialog/tw/elegant.d.ts +9 -327
  78. package/Dialog/tw/elegant.mjs +15 -17
  79. package/Dialog/tw/framer.d.ts +3 -354
  80. package/Dialog/tw/framer.mjs +9 -9
  81. package/Dialog/tw/framerMaterial.d.ts +3 -354
  82. package/Dialog/tw/framerMaterial.mjs +9 -9
  83. package/Dialog/tw/index.stories.mjs +83 -0
  84. package/Dialog/tw/material.d.ts +9 -327
  85. package/Dialog/tw/material.mjs +15 -17
  86. package/Editor/Editor--tiptap.d.ts +1 -1
  87. package/Editor/Editor--tiptap.mjs +45 -18
  88. package/Editor/components.d.ts +3 -5
  89. package/Editor/components.mjs +26 -8
  90. package/FaviconTags.mjs +64 -0
  91. package/Form/Form.mjs +81 -47
  92. package/Form/sc/bare.d.ts +11 -11
  93. package/Form/sc/bare.mjs +21 -12
  94. package/Forms/Checkbox/Checkbox.d.ts +4 -4
  95. package/Forms/Checkbox/Checkbox.mjs +29 -11
  96. package/Forms/Feedback/Feedback.mjs +11 -6
  97. package/Forms/Field/Field.d.ts +2 -4
  98. package/Forms/Field/Field.mjs +35 -16
  99. package/Forms/Field/FieldControl.mjs +39 -19
  100. package/Forms/Field/FieldHint.d.ts +1 -1
  101. package/Forms/Field/FieldHint.mjs +5 -3
  102. package/Forms/Input/Input.d.ts +5 -5
  103. package/Forms/Input/Input.mjs +30 -11
  104. package/Forms/InputGroup/InputGroup.d.ts +4 -4
  105. package/Forms/InputGroup/InputGroup.mjs +52 -10
  106. package/Forms/Label/Label.d.ts +1 -1
  107. package/Forms/Label/Label.mjs +23 -5
  108. package/Forms/Password/Password.d.ts +1 -1
  109. package/Forms/Password/Password.mjs +48 -12
  110. package/Forms/Radio/Radio.mjs +50 -18
  111. package/Forms/Switch/Switch.d.ts +2 -2
  112. package/Forms/Switch/Switch.mjs +52 -12
  113. package/Forms/Textarea/Textarea.d.ts +1 -1
  114. package/Forms/Textarea/Textarea.mjs +21 -7
  115. package/Forms/Textarea/TextareaRich.mjs +39 -19
  116. package/Forms/Toggle/Toggle-tailwind.mjs +0 -1
  117. package/Forms/Toggle/Toggle.d.ts +7 -7
  118. package/Forms/Toggle/Toggle.mjs +113 -21
  119. package/Forms/Toggle/useToggle-tailwind.mjs +0 -1
  120. package/Forms/Toggle/useToggle.mjs +86 -68
  121. package/Forms/antispam.mjs +19 -21
  122. package/Forms/helpers.mjs +25 -19
  123. package/Forms/styles.d.ts +3 -7
  124. package/Forms/styles.mjs +50 -18
  125. package/Gauge/Gauge.mjs +99 -100
  126. package/Grid/Grid.d.ts +7 -30
  127. package/Grid/Grid.mjs +54 -32
  128. package/Hamburger/Hamburger.mjs +64 -37
  129. package/Header/useHeader.mjs +23 -18
  130. package/Hidden/Hidden.d.ts +1 -1
  131. package/Hidden/Hidden.mjs +9 -9
  132. package/Img/sc/bare.d.ts +1 -1
  133. package/Img/sc/bare.mjs +31 -34
  134. package/Img/types.mjs +1 -1
  135. package/Link/Link.d.ts +1 -3
  136. package/Link/Link.mjs +1 -3
  137. package/Link/LinkBlank.d.ts +2 -5
  138. package/Link/LinkBlank.mjs +25 -10
  139. package/Menu/Menu.d.ts +1 -1
  140. package/Menu/Menu.mjs +10 -3
  141. package/Menu/MenuMui.mjs +1 -2
  142. package/MenuItem/MenuItem.d.ts +1 -4
  143. package/MenuItem/MenuItem.mjs +19 -3
  144. package/MenuItem/MenuItemMui.mjs +0 -1
  145. package/MenuItem/useMenuItem.mjs +45 -27
  146. package/Meta/Meta.mjs +5 -3
  147. package/NoJs/NoJs.mjs +7 -4
  148. package/Pagination/PaginationNav.d.ts +1 -1
  149. package/Pagination/PaginationNav.mjs +90 -29
  150. package/Pagination/PaginationResults.mjs +31 -8
  151. package/Pill/Pill.d.ts +4 -4
  152. package/Pill/Pill.mjs +36 -6
  153. package/Progress/ProgressCircular.mjs +48 -10
  154. package/Progress/ProgressLinear.mjs +39 -19
  155. package/Progress/ProgressOverlay.mjs +56 -16
  156. package/Rating/Rating.d.ts +5 -5
  157. package/Rating/Rating.mjs +118 -34
  158. package/Rating/index.mjs +37 -24
  159. package/Select/SelectDownshift.mjs +37 -38
  160. package/Select/components.d.ts +1 -1
  161. package/Select/components.mjs +21 -8
  162. package/Select/index.mjs +2 -3
  163. package/Sidebar/Sidebar.mjs +57 -17
  164. package/Spacing/Spacing.d.ts +1 -1
  165. package/Spacing/Spacing.mjs +27 -17
  166. package/Sticky/Sticky.mjs +218 -219
  167. package/Sticky/StickyCss.mjs +8 -4
  168. package/Sticky/index.mjs +1 -1
  169. package/Tabs/TabsMui.d.ts +9 -298
  170. package/Tabs/TabsMui.mjs +39 -27
  171. package/Tabs/TabsMui.stories.mjs +20 -0
  172. package/Tabs/sc/bare.mjs +1 -3
  173. package/Tabs/sc/index.stories.mjs +0 -0
  174. package/Tabs/tw/bare.d.ts +7 -296
  175. package/Tabs/tw/bare.mjs +11 -13
  176. package/Tabs/tw/index.stories.mjs +25 -0
  177. package/Tabs/tw/material.d.ts +7 -332
  178. package/Tabs/tw/material.mjs +11 -15
  179. package/Tabs/useTabs.mjs +24 -21
  180. package/Typography/CopyPasteVisible.d.ts +1 -1
  181. package/Typography/CopyPasteVisible.mjs +5 -3
  182. package/Typography/Native.d.ts +5 -5
  183. package/Typography/Native.mjs +45 -12
  184. package/Typography/ReadMore.mjs +100 -29
  185. package/Typography/TextLoop.mjs +75 -31
  186. package/Typography/TypeStairs.mjs +36 -24
  187. package/css/index.mjs +20 -21
  188. package/helpers/classed.mjs +21 -30
  189. package/helpers/classed.stories.mjs +121 -0
  190. package/helpers/createUseMediaQueryWidth.mjs +140 -140
  191. package/helpers/extend-component.mjs +7 -7
  192. package/helpers/mergeRefs.mjs +3 -4
  193. package/hooks/index.mjs +3 -3
  194. package/hooks/types.mjs +3 -1
  195. package/hooks/useAsyncFn.mjs +28 -26
  196. package/hooks/useDateLocale.mjs +22 -22
  197. package/hooks/useFirstMountState.mjs +2 -3
  198. package/hooks/useFixedOffset.mjs +23 -24
  199. package/hooks/useFocus.mjs +7 -5
  200. package/hooks/useInterval.mjs +15 -14
  201. package/hooks/useIsomorphicLayoutEffect.mjs +1 -4
  202. package/hooks/useKeyUp.mjs +9 -11
  203. package/hooks/useMeasure.mjs +74 -67
  204. package/hooks/useMountedState.mjs +5 -6
  205. package/hooks/useNavigateAway.mjs +26 -25
  206. package/hooks/usePrevious.mjs +9 -4
  207. package/hooks/usePreviousRef.mjs +2 -2
  208. package/hooks/useScrollPosition.mjs +28 -26
  209. package/hooks/useScrollThreshold.mjs +18 -13
  210. package/hooks/useScrollTo.mjs +6 -8
  211. package/hooks/useSmoothScroll.mjs +12 -16
  212. package/hooks/useSpinDelay.mjs +24 -22
  213. package/hooks/useTraceUpdate.mjs +8 -7
  214. package/hooks/useUpdateEffect.mjs +4 -5
  215. package/hooks/useWindowSize.mjs +13 -10
  216. package/index.mjs +4 -5
  217. package/m/MotionProvider.mjs +5 -4
  218. package/m/index.mjs +1 -2
  219. package/package.json +17 -18
  220. package/shared/index.mjs +35 -0
  221. package/styles/Body.d.ts +2 -2
  222. package/styles/Body.mjs +8 -5
  223. package/styles/Global.mjs +36 -5
  224. package/styles/index.mjs +5 -5
  225. package/styles/media.mjs +63 -68
  226. package/styles/spacing.mjs +26 -25
  227. package/styles/styled.mjs +23 -10
  228. package/styles/theme--vanilla.mjs +26 -19
  229. package/styles/theme.mjs +16 -19
  230. package/tw/index.mjs +20 -21
  231. package/twm/index.mjs +20 -21
  232. package/types.mjs +1 -1
  233. package/typings.d.ts +1 -0
  234. package/Alert/Alert.js +0 -14
  235. package/Alert/index.js +0 -4
  236. package/Alert/package.json +0 -6
  237. package/Animations/Reveal.js +0 -21
  238. package/Animations/Underline.js +0 -8
  239. package/Animations/index.js +0 -6
  240. package/Animations/package.json +0 -6
  241. package/Animations/useReveal.js +0 -75
  242. package/Autocomplete/AutocompleteDownshift.js +0 -161
  243. package/Autocomplete/AutocompleteDownshiftMultiselect.js +0 -356
  244. package/Autocomplete/AutocompleteMui.js +0 -180
  245. package/Autocomplete/AutocompleteReach.js +0 -115
  246. package/Autocomplete/components.js +0 -37
  247. package/Autocomplete/helpers.js +0 -34
  248. package/Autocomplete/index.js +0 -7
  249. package/Autocomplete/package.json +0 -6
  250. package/Bg/BgColor.js +0 -25
  251. package/Bg/BgPhoto.js +0 -20
  252. package/Bg/BgSvg.js +0 -16
  253. package/Bg/index.js +0 -6
  254. package/Bg/package.json +0 -6
  255. package/Breadcrumbs/Breadcrumbs.js +0 -31
  256. package/Breadcrumbs/index.js +0 -4
  257. package/Breadcrumbs/package.json +0 -6
  258. package/Buttons/Button.js +0 -17
  259. package/Buttons/ButtonComposite.js +0 -32
  260. package/Buttons/ButtonFab.js +0 -9
  261. package/Buttons/ButtonLink.js +0 -15
  262. package/Buttons/IconButton.js +0 -10
  263. package/Buttons/index.js +0 -8
  264. package/Buttons/package.json +0 -6
  265. package/Calendar/CalendarDaygridCell.js +0 -61
  266. package/Calendar/CalendarDaygridNav.js +0 -28
  267. package/Calendar/CalendarDaygridTable.js +0 -52
  268. package/Calendar/CalendarLegend.js +0 -19
  269. package/Calendar/calendar-api-google.js +0 -133
  270. package/Calendar/index.js +0 -9
  271. package/Calendar/package.json +0 -6
  272. package/Calendar/types.js +0 -2
  273. package/Calendar/useCalendar.js +0 -187
  274. package/Calendar/utils.js +0 -215
  275. package/Carousel/Carousel.js +0 -381
  276. package/Carousel/CarouselCss.js +0 -26
  277. package/Carousel/index.js +0 -4
  278. package/Carousel/package.json +0 -6
  279. package/Collapsable/Collapsable.js +0 -4
  280. package/Collapsable/CollapsableReach.js +0 -252
  281. package/Collapsable/index.js +0 -5
  282. package/Collapsable/package.json +0 -6
  283. package/Debug/Debug.js +0 -13
  284. package/Debug/index.js +0 -4
  285. package/Debug/package.json +0 -6
  286. package/Details/Details.js +0 -66
  287. package/Details/index.js +0 -4
  288. package/Details/package.json +0 -6
  289. package/Dialog/DialogMui.js +0 -83
  290. package/Dialog/css/bare.js +0 -24
  291. package/Dialog/index.js +0 -5
  292. package/Dialog/m/bare.js +0 -55
  293. package/Dialog/m/basic.js +0 -35
  294. package/Dialog/m/index.js +0 -8
  295. package/Dialog/m/package.json +0 -6
  296. package/Dialog/package.json +0 -6
  297. package/Dialog/sc/bare.js +0 -46
  298. package/Dialog/sc/framer.js +0 -19
  299. package/Dialog/sc/framerMaterial.js +0 -19
  300. package/Dialog/sc/material.js +0 -24
  301. package/Dialog/tw/bare.js +0 -45
  302. package/Dialog/tw/elegant.js +0 -23
  303. package/Dialog/tw/framer.js +0 -19
  304. package/Dialog/tw/framerMaterial.js +0 -19
  305. package/Dialog/tw/material.js +0 -23
  306. package/Editor/Editor--tiptap.js +0 -31
  307. package/Editor/components.js +0 -15
  308. package/Editor/index.js +0 -4
  309. package/Editor/package.json +0 -6
  310. package/FaviconTags/FaviconTags.js +0 -20
  311. package/FaviconTags/FaviconTags.mjs +0 -16
  312. package/FaviconTags/index.d.ts +0 -2
  313. package/FaviconTags/index.js +0 -7
  314. package/FaviconTags/index.mjs +0 -2
  315. package/FaviconTags/package.json +0 -6
  316. package/Form/Form.js +0 -65
  317. package/Form/index.js +0 -4
  318. package/Form/package.json +0 -6
  319. package/Form/sc/bare.js +0 -23
  320. package/Forms/Checkbox/Checkbox.js +0 -21
  321. package/Forms/Checkbox/index.js +0 -4
  322. package/Forms/Checkbox/package.json +0 -6
  323. package/Forms/Feedback/Feedback.js +0 -13
  324. package/Forms/Feedback/index.js +0 -4
  325. package/Forms/Feedback/package.json +0 -6
  326. package/Forms/Field/Field.js +0 -35
  327. package/Forms/Field/FieldControl.js +0 -51
  328. package/Forms/Field/FieldHint.js +0 -7
  329. package/Forms/Field/index.js +0 -5
  330. package/Forms/Field/package.json +0 -6
  331. package/Forms/Input/Input.js +0 -20
  332. package/Forms/Input/index.js +0 -4
  333. package/Forms/Input/package.json +0 -6
  334. package/Forms/InputGroup/InputGroup.js +0 -19
  335. package/Forms/InputGroup/index.js +0 -4
  336. package/Forms/InputGroup/package.json +0 -6
  337. package/Forms/Label/Label.js +0 -9
  338. package/Forms/Label/index.js +0 -4
  339. package/Forms/Label/package.json +0 -6
  340. package/Forms/Password/Password.js +0 -20
  341. package/Forms/Password/index.js +0 -4
  342. package/Forms/Password/package.json +0 -6
  343. package/Forms/Radio/Radio.js +0 -28
  344. package/Forms/Radio/index.js +0 -4
  345. package/Forms/Radio/package.json +0 -6
  346. package/Forms/Switch/Switch.js +0 -23
  347. package/Forms/Switch/index.js +0 -4
  348. package/Forms/Switch/package.json +0 -6
  349. package/Forms/Textarea/Textarea.js +0 -15
  350. package/Forms/Textarea/TextareaRich.js +0 -31
  351. package/Forms/Textarea/index.js +0 -5
  352. package/Forms/Textarea/package.json +0 -6
  353. package/Forms/Toggle/Toggle-tailwind.js +0 -99
  354. package/Forms/Toggle/Toggle.js +0 -36
  355. package/Forms/Toggle/index.js +0 -4
  356. package/Forms/Toggle/package.json +0 -6
  357. package/Forms/Toggle/useToggle-tailwind.js +0 -202
  358. package/Forms/Toggle/useToggle.js +0 -149
  359. package/Forms/antispam.js +0 -66
  360. package/Forms/helpers.js +0 -54
  361. package/Forms/index.js +0 -19
  362. package/Forms/package.json +0 -6
  363. package/Forms/styles.js +0 -32
  364. package/Gauge/Gauge.js +0 -106
  365. package/Grid/Grid.js +0 -56
  366. package/Grid/index.js +0 -4
  367. package/Grid/package.json +0 -6
  368. package/Hamburger/Hamburger.js +0 -56
  369. package/Hamburger/index.js +0 -4
  370. package/Hamburger/package.json +0 -6
  371. package/Header/index.js +0 -4
  372. package/Header/package.json +0 -6
  373. package/Header/useHeader.js +0 -35
  374. package/Hidden/Hidden.js +0 -13
  375. package/Hidden/index.js +0 -4
  376. package/Hidden/package.json +0 -6
  377. package/Img/index.js +0 -4
  378. package/Img/package.json +0 -6
  379. package/Img/sc/bare.js +0 -42
  380. package/Img/types.js +0 -2
  381. package/Link/Link.js +0 -7
  382. package/Link/LinkBlank.js +0 -21
  383. package/Link/index.js +0 -5
  384. package/Link/package.json +0 -6
  385. package/Menu/Menu.js +0 -7
  386. package/Menu/MenuMui.js +0 -165
  387. package/Menu/index.js +0 -4
  388. package/Menu/package.json +0 -6
  389. package/MenuItem/MenuItem.js +0 -7
  390. package/MenuItem/MenuItemMui.js +0 -32
  391. package/MenuItem/index.js +0 -4
  392. package/MenuItem/package.json +0 -6
  393. package/MenuItem/useMenuItem.js +0 -64
  394. package/Meta/Meta.js +0 -10
  395. package/Meta/index.js +0 -7
  396. package/Meta/package.json +0 -6
  397. package/NoJs/NoJs.js +0 -11
  398. package/NoJs/index.js +0 -7
  399. package/NoJs/package.json +0 -6
  400. package/Pagination/PaginationNav.js +0 -65
  401. package/Pagination/PaginationResults.js +0 -15
  402. package/Pagination/index.js +0 -5
  403. package/Pagination/package.json +0 -6
  404. package/Pill/Pill.js +0 -10
  405. package/Pill/index.js +0 -4
  406. package/Pill/package.json +0 -6
  407. package/Progress/ProgressCircular.js +0 -19
  408. package/Progress/ProgressLinear.js +0 -28
  409. package/Progress/ProgressOverlay.js +0 -28
  410. package/Progress/index.js +0 -6
  411. package/Progress/package.json +0 -6
  412. package/Rating/Rating.js +0 -75
  413. package/Rating/index.js +0 -57
  414. package/Rating/package.json +0 -6
  415. package/Select/SelectDownshift.js +0 -41
  416. package/Select/components.js +0 -15
  417. package/Select/index.js +0 -7
  418. package/Select/package.json +0 -6
  419. package/Sidebar/Sidebar.js +0 -27
  420. package/Sidebar/index.js +0 -4
  421. package/Sidebar/package.json +0 -6
  422. package/Spacing/Spacing.js +0 -49
  423. package/Spacing/index.js +0 -4
  424. package/Spacing/package.json +0 -6
  425. package/Sticky/Sticky.js +0 -222
  426. package/Sticky/StickyCss.js +0 -10
  427. package/Sticky/index.js +0 -5
  428. package/Sticky/package.json +0 -6
  429. package/Tabs/TabsMui.js +0 -52
  430. package/Tabs/index.js +0 -4
  431. package/Tabs/package.json +0 -6
  432. package/Tabs/sc/bare.js +0 -87
  433. package/Tabs/tw/bare.js +0 -20
  434. package/Tabs/tw/material.js +0 -21
  435. package/Tabs/useTabs.js +0 -47
  436. package/Typography/CopyPasteVisible.js +0 -7
  437. package/Typography/Native.js +0 -17
  438. package/Typography/ReadMore.js +0 -47
  439. package/Typography/TextLoop.js +0 -51
  440. package/Typography/TypeStairs.js +0 -52
  441. package/Typography/index.js +0 -8
  442. package/Typography/package.json +0 -6
  443. package/css/index.js +0 -36
  444. package/css/package.json +0 -6
  445. package/helpers/classed.js +0 -78
  446. package/helpers/createUseMediaQueryWidth.js +0 -183
  447. package/helpers/extend-component.js +0 -17
  448. package/helpers/index.js +0 -7
  449. package/helpers/mergeRefs.js +0 -17
  450. package/helpers/package.json +0 -6
  451. package/hooks/index.js +0 -44
  452. package/hooks/package.json +0 -6
  453. package/hooks/types.js +0 -2
  454. package/hooks/useAsyncFn.js +0 -41
  455. package/hooks/useDateLocale.js +0 -41
  456. package/hooks/useFirstMountState.js +0 -17
  457. package/hooks/useFixedOffset.js +0 -62
  458. package/hooks/useFocus.js +0 -16
  459. package/hooks/useInterval.js +0 -32
  460. package/hooks/useIsomorphicLayoutEffect.js +0 -13
  461. package/hooks/useKeyUp.js +0 -27
  462. package/hooks/useMeasure.js +0 -171
  463. package/hooks/useMountedState.js +0 -20
  464. package/hooks/useNavigateAway.js +0 -73
  465. package/hooks/usePrevious.js +0 -16
  466. package/hooks/usePreviousRef.js +0 -13
  467. package/hooks/useScrollPosition.js +0 -73
  468. package/hooks/useScrollThreshold.js +0 -33
  469. package/hooks/useScrollTo.js +0 -27
  470. package/hooks/useSmoothScroll.js +0 -44
  471. package/hooks/useSpinDelay.js +0 -54
  472. package/hooks/useTraceUpdate.js +0 -26
  473. package/hooks/useUpdateEffect.js +0 -19
  474. package/hooks/useWindowSize.js +0 -34
  475. package/index.js +0 -8
  476. package/m/MotionProvider.js +0 -43
  477. package/m/index.js +0 -9
  478. package/m/lite.js +0 -4
  479. package/m/max.js +0 -4
  480. package/m/package.json +0 -6
  481. package/sc/index.js +0 -37
  482. package/sc/package.json +0 -6
  483. package/scm/index.js +0 -36
  484. package/scm/package.json +0 -6
  485. package/shared/index.js +0 -11
  486. package/shared/package.json +0 -6
  487. package/styles/Body.js +0 -16
  488. package/styles/Global.js +0 -21
  489. package/styles/index.js +0 -41
  490. package/styles/media.js +0 -161
  491. package/styles/package.json +0 -6
  492. package/styles/spacing.js +0 -52
  493. package/styles/styled.js +0 -17
  494. package/styles/theme--vanilla.js +0 -64
  495. package/styles/theme.js +0 -45
  496. package/tw/index.js +0 -36
  497. package/tw/package.json +0 -6
  498. package/twm/index.js +0 -36
  499. package/twm/package.json +0 -6
  500. package/types.js +0 -2
  501. /package/{FaviconTags/FaviconTags.d.ts → FaviconTags.d.ts} +0 -0
@@ -1,43 +1,114 @@
1
- import { __assign, __makeTemplateObject, __rest } from "tslib";
2
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState, useRef, useMemo } from "react";
4
- import styled from "styled-components";
5
2
  import { m, useSpring } from "framer-motion";
3
+ import React, { useMemo, useRef, useState } from "react";
4
+ import styled from "styled-components";
6
5
  // import { CgArrowsExpandDownRight as IconExpand } from "react-icons/cg";
7
6
  import { useIsomorphicLayoutEffect } from "../hooks";
8
- var Root = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([""], [""])));
9
- var Content = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n & p:first-child {\n margin-top: 0;\n }\n"], ["\n & p:first-child {\n margin-top: 0;\n }\n"])));
10
- var BtnWrap = styled.span(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n transition: transform 0.18s ease-in-out;\n text-align: right;\n transform: translateY(", ");\n opacity: ", ";\n"], ["\n display: flex;\n justify-content: flex-end;\n transition: transform 0.18s ease-in-out;\n text-align: right;\n transform: translateY(", ");\n opacity: ", ";\n"])), function (p) { return (p.$expanded ? "0" : "-100%"); }, function (p) { return (p.$expanded ? 0 : 1); });
11
- var BtnFader = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n width: 30%;\n transition: transform 0.18s ease-in-out;\n background: linear-gradient(45deg, transparent 50%, ", " 70%);\n"], ["\n width: 30%;\n transition: transform 0.18s ease-in-out;\n background: linear-gradient(45deg, transparent 50%, ", " 70%);\n"])), function (p) { return p.$bg; });
12
- var Btn = styled.span(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n padding: 0 10px 0 10px;\n line-height: ", ";\n background: var(--bodyBg);\n color: var(--grey600);\n white-space: nowrap;\n font-size: ", "px;\n cursor: pointer;\n"], ["\n padding: 0 10px 0 10px;\n line-height: ", ";\n background: var(--bodyBg);\n color: var(--grey600);\n white-space: nowrap;\n font-size: ", "px;\n cursor: pointer;\n"])), function (p) { return (p.$lineHeight ? p.$lineHeight : "inherit"); }, function (p) { return p.$fontSize; });
13
- var BtnIcon = styled.span(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n display: inline-block;\n margin: 0 0 0 4px;\n transition: transform 0.18s ease-in-out;\n ", ";\n font-size: ", "px;\n"], ["\n display: inline-block;\n margin: 0 0 0 4px;\n transition: transform 0.18s ease-in-out;\n ", ";\n font-size: ", "px;\n"])), function (p) { return (p.$expanded ? "transform: rotate(180deg);" : ""); }, function (p) { return p.$fontSize; });
14
- export var ReadMore = function (_a) {
15
- var _b = _a.lines, lines = _b === void 0 ? 3 : _b, _c = _a.lineHeight, lineHeight = _c === void 0 ? 1.6 : _c, _d = _a.fontSize, fontSize = _d === void 0 ? 14 : _d, _e = _a.bg, bg = _e === void 0 ? "var(--bodyBg)" : _e, _f = _a.expand, expand = _f === void 0 ? "Expand" : _f, _g = _a.collapse, collapse = _g === void 0 ? "Collapse" : _g, props = __rest(_a, ["lines", "lineHeight", "fontSize", "bg", "expand", "collapse"]);
16
- var defaultMaxHeight = lines * (lineHeight * fontSize);
17
- var _h = useState(false), expanded = _h[0], setExpanded = _h[1];
18
- var _j = useState(defaultMaxHeight), maxHeight = _j[0], setMaxHeight = _j[1];
19
- var _k = useState(0), fullHeight = _k[0], setFullHeight = _k[1];
20
- var _l = useState(false), exceeds = _l[0], setExceeds = _l[1];
21
- var content = useRef(null);
22
- var height = useSpring(defaultMaxHeight);
23
- var styles = useMemo(function () { return (exceeds ? { height: height, overflow: "hidden" } : {}); }, [exceeds, height]);
24
- var handleExpandClick = function () {
25
- setExpanded(function (prevExpanded) { return !prevExpanded; });
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 ? {
51
+ height,
52
+ overflow: "hidden"
53
+ } : {}, [
54
+ exceeds,
55
+ height
56
+ ]);
57
+ const handleExpandClick = ()=>{
58
+ setExpanded((prevExpanded)=>!prevExpanded);
26
59
  };
27
- useIsomorphicLayoutEffect(function () {
60
+ useIsomorphicLayoutEffect(()=>{
28
61
  if (content.current) {
29
- var elementHeight = content.current.offsetHeight;
30
- var newExceeds = elementHeight > maxHeight;
62
+ const elementHeight = content.current.offsetHeight;
63
+ const newExceeds = elementHeight > maxHeight;
31
64
  if (!newExceeds) {
32
65
  setMaxHeight(elementHeight);
33
66
  }
34
67
  setExceeds(newExceeds);
35
68
  setFullHeight(elementHeight);
36
69
  }
37
- }, [content, maxHeight]);
38
- useIsomorphicLayoutEffect(function () {
70
+ }, [
71
+ content,
72
+ maxHeight
73
+ ]);
74
+ useIsomorphicLayoutEffect(()=>{
39
75
  height.set(expanded ? fullHeight : maxHeight);
40
- }, [expanded, height, fullHeight, maxHeight]);
41
- return (_jsxs(Root, { children: [_jsx(m.div, { style: styles, children: _jsx(Content, __assign({ 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 })] })] }))] }));
76
+ }, [
77
+ expanded,
78
+ height,
79
+ fullHeight,
80
+ maxHeight
81
+ ]);
82
+ return /*#__PURE__*/ _jsxs(Root, {
83
+ children: [
84
+ /*#__PURE__*/ _jsx(m.div, {
85
+ style: styles,
86
+ children: /*#__PURE__*/ _jsx(Content, {
87
+ ref: content,
88
+ ...props
89
+ })
90
+ }),
91
+ exceeds && /*#__PURE__*/ _jsxs(BtnWrap, {
92
+ $expanded: expanded,
93
+ children: [
94
+ /*#__PURE__*/ _jsx(BtnFader, {
95
+ $bg: bg
96
+ }),
97
+ /*#__PURE__*/ _jsxs(Btn, {
98
+ $fontSize: fontSize,
99
+ $lineHeight: lineHeight,
100
+ onClick: handleExpandClick,
101
+ "aria-expanded": expanded,
102
+ "aria-label": expanded ? collapse : expand,
103
+ children: [
104
+ expanded ? collapse : expand,
105
+ /*#__PURE__*/ _jsx(BtnIcon, {
106
+ $expanded: expanded
107
+ })
108
+ ]
109
+ })
110
+ ]
111
+ })
112
+ ]
113
+ });
42
114
  };
43
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -1,46 +1,90 @@
1
- import { __assign, __rest } from "tslib";
2
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AnimatePresence, m } from "framer-motion";
3
3
  import { useEffect, useRef, useState } from "react";
4
- import { m, AnimatePresence } from "framer-motion";
5
- export var TextLoopPiece = function (_a) {
6
- var _b = _a.text, text = _b === void 0 ? "" : _b, _c = _a.style, style = _c === void 0 ? {} : _c, _d = _a.className, className = _d === void 0 ? "" : _d, _e = _a.direction, direction = _e === void 0 ? "up" : _e, _f = _a.inline, inline = _f === void 0 ? true : _f, _g = _a.noOverflow, noOverflow = _g === void 0 ? true : _g, _h = _a.delay, delay = _h === void 0 ? 400 : _h;
7
- var placeholderRef = useRef(null);
8
- var _j = useState({ data: "", key: "" }), content = _j[0], setContent = _j[1];
9
- var _k = useState(inline ? 0 : "auto"), width = _k[0], setWidth = _k[1];
10
- useEffect(function () {
11
- var timeoutId = setTimeout(function () {
12
- if (!placeholderRef.current)
13
- return;
4
+ export const TextLoopPiece = ({ text = "", style = {}, className = "", direction = "up", inline = true, noOverflow = true, delay = 400 })=>{
5
+ const placeholderRef = useRef(null);
6
+ const [content, setContent] = useState({
7
+ data: "",
8
+ key: ""
9
+ });
10
+ const [width, setWidth] = useState(inline ? 0 : "auto");
11
+ useEffect(()=>{
12
+ const timeoutId = setTimeout(()=>{
13
+ if (!placeholderRef.current) return;
14
14
  placeholderRef.current.innerHTML = text + "";
15
- if (inline)
16
- setWidth(placeholderRef.current.offsetWidth);
17
- setContent({ data: text + "", key: new Date() + "" });
15
+ if (inline) setWidth(placeholderRef.current.offsetWidth);
16
+ setContent({
17
+ data: text + "",
18
+ key: new Date() + ""
19
+ });
18
20
  }, delay);
19
- return function () { return clearTimeout(timeoutId); };
20
- }, [text, delay, inline]);
21
- return (_jsxs("div", { className: className, style: __assign(__assign({}, style), { position: "relative", display: inline ? "inline-block" : "block", width: width, whiteSpace: inline ? "nowrap" : "normal" }), children: [_jsx("span", { ref: placeholderRef, style: { visibility: "hidden" } }), _jsx("div", { style: {
21
+ return ()=>clearTimeout(timeoutId);
22
+ }, [
23
+ text,
24
+ delay,
25
+ inline
26
+ ]);
27
+ return /*#__PURE__*/ _jsxs("div", {
28
+ className: className,
29
+ style: {
30
+ ...style,
31
+ position: "relative",
32
+ display: inline ? "inline-block" : "block",
33
+ width,
34
+ whiteSpace: inline ? "nowrap" : "normal"
35
+ },
36
+ children: [
37
+ /*#__PURE__*/ _jsx("span", {
38
+ ref: placeholderRef,
39
+ style: {
40
+ visibility: "hidden"
41
+ }
42
+ }),
43
+ /*#__PURE__*/ _jsx("div", {
44
+ style: {
22
45
  overflow: noOverflow ? "hidden" : "visible",
23
46
  display: "block",
24
47
  position: "absolute",
25
48
  top: 0,
26
49
  left: 0,
27
50
  height: "100%",
28
- width: "100%",
29
- }, children: _jsx(AnimatePresence, { children: _jsx(m.div, { style: { position: "absolute" }, initial: {
51
+ width: "100%"
52
+ },
53
+ children: /*#__PURE__*/ _jsx(AnimatePresence, {
54
+ children: /*#__PURE__*/ _jsx(m.div, {
55
+ style: {
56
+ position: "absolute"
57
+ },
58
+ initial: {
30
59
  opacity: 0,
31
- y: direction === "down" ? "-100%" : "100%",
32
- }, animate: { opacity: 1, y: 0 }, exit: {
60
+ y: direction === "down" ? "-100%" : "100%"
61
+ },
62
+ animate: {
63
+ opacity: 1,
64
+ y: 0
65
+ },
66
+ exit: {
33
67
  opacity: 0,
34
- y: direction === "down" ? "100%" : "-100%",
35
- }, children: content.data }, content.key) }) })] }));
68
+ y: direction === "down" ? "100%" : "-100%"
69
+ },
70
+ children: content.data
71
+ }, content.key)
72
+ })
73
+ })
74
+ ]
75
+ });
36
76
  };
37
- export var TextLoop = function (_a) {
38
- var texts = _a.texts, _b = _a.interval, interval = _b === void 0 ? 3000 : _b, props = __rest(_a, ["texts", "interval"]);
39
- var _c = useState(0), index = _c[0], setIndex = _c[1];
40
- useEffect(function () {
41
- var intervalId = setInterval(function () { return setIndex(function (index) { return index + 1; }); }, interval // every 3 seconds
77
+ export const TextLoop = ({ texts, interval = 3000, ...props })=>{
78
+ const [index, setIndex] = useState(0);
79
+ useEffect(()=>{
80
+ const intervalId = setInterval(()=>setIndex((index)=>index + 1), interval // every 3 seconds
42
81
  );
43
- return function () { return clearTimeout(intervalId); };
44
- }, [interval]);
45
- return _jsx(TextLoopPiece, __assign({}, props, { text: texts[index % texts.length] }));
82
+ return ()=>clearTimeout(intervalId);
83
+ }, [
84
+ interval
85
+ ]);
86
+ return /*#__PURE__*/ _jsx(TextLoopPiece, {
87
+ ...props,
88
+ text: texts[index % texts.length]
89
+ });
46
90
  };
@@ -1,31 +1,35 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- export var TypeStairs = forwardRef(function (_a, ref) {
4
- var children = _a.children, limit = _a.limit;
3
+ export const TypeStairs = /*#__PURE__*/ forwardRef(({ children, limit }, ref)=>{
5
4
  // split in rows or just use one row if there is no limit
6
- var rows = limit ? splitTextIntoRows(children, limit) : [children];
7
- return rows.length > 1 ? (_jsx(_Fragment, { children: rows.map(function (row, rowIndex) {
8
- return (_jsxs("span", { children: [renderRow(row, rowIndex, ref), rowIndex !== rows.length - 1 && _jsx("br", {})] }, "row-".concat(rowIndex)));
9
- }) })) : (renderRow(rows[0], 0, ref));
5
+ const rows = limit ? splitTextIntoRows(children, limit) : [
6
+ children
7
+ ];
8
+ return rows.length > 1 ? /*#__PURE__*/ _jsx(_Fragment, {
9
+ children: rows.map((row, rowIndex)=>{
10
+ return /*#__PURE__*/ _jsxs("span", {
11
+ children: [
12
+ renderRow(row, rowIndex, ref),
13
+ rowIndex !== rows.length - 1 && /*#__PURE__*/ _jsx("br", {})
14
+ ]
15
+ }, `row-${rowIndex}`);
16
+ })
17
+ }) : renderRow(rows[0], 0, ref);
10
18
  });
11
19
  /**
12
20
  * every number chars find a space and break, then restart the gradient weight
13
21
  * @see https://stackoverflow.com/a/25770787
14
- */
15
- function splitTextIntoRows(input, limit) {
16
- if (input === void 0) { input = ""; }
17
- if (limit === void 0) { limit = 18; }
18
- var rows = [];
19
- var arr = input.split(" ");
20
- var currow = arr[0];
21
- var rowlen = currow.length;
22
- for (var i = 1; i < arr.length; i++) {
23
- var word = arr[i];
22
+ */ function splitTextIntoRows(input = "", limit = 18) {
23
+ const rows = [];
24
+ const arr = input.split(" ");
25
+ let currow = arr[0];
26
+ let rowlen = currow.length;
27
+ for(let i = 1; i < arr.length; i++){
28
+ const word = arr[i];
24
29
  rowlen += word.length + 1;
25
30
  if (rowlen <= limit) {
26
31
  currow += " " + word;
27
- }
28
- else {
32
+ } else {
29
33
  rows.push(currow);
30
34
  currow = word;
31
35
  rowlen = word.length;
@@ -35,15 +39,23 @@ function splitTextIntoRows(input, limit) {
35
39
  return rows;
36
40
  }
37
41
  function renderRow(row, rowIndex, ref) {
38
- var letters = row.split("");
39
- var fontWeightIdx = 1;
42
+ const letters = row.split("");
43
+ let fontWeightIdx = 1;
40
44
  // const fontWeight = Math.min(fontWeightIdx * 100, 800);
41
- return (_jsx(_Fragment, { children: letters.map(function (letter, letterIndex) {
42
- var fontWeight = Math.min(fontWeightIdx * 100, 800);
45
+ return /*#__PURE__*/ _jsx(_Fragment, {
46
+ children: letters.map((letter, letterIndex)=>{
47
+ const fontWeight = Math.min(fontWeightIdx * 100, 800);
43
48
  // don't waste a fontWeight for a white space
44
49
  if (letter !== " ") {
45
50
  fontWeightIdx++;
46
51
  }
47
- return (_jsx("span", { style: { fontWeight: fontWeight }, ref: ref, children: letter }, "letter-".concat(rowIndex, "-").concat(letterIndex)));
48
- }) }));
52
+ return /*#__PURE__*/ _jsx("span", {
53
+ style: {
54
+ fontWeight
55
+ },
56
+ ref: ref,
57
+ children: letter
58
+ }, `letter-${rowIndex}-${letterIndex}`);
59
+ })
60
+ });
49
61
  }
package/css/index.mjs CHANGED
@@ -8,24 +8,23 @@ export * from "../shared";
8
8
  // export * from "../Carousel";
9
9
  // export * from "../Collapsable";
10
10
  // export * from "../Debug";
11
- export { KoineDialog } from "../Dialog/css/bare";
12
- // export * from "../Form";
13
- // export * from "../Forms";
14
- // export * from "../Grid";
15
- // export * from "../Hamburger";
16
- // export * from "../Header";
17
- // export * from "../Hidden";
18
- // export * from "../Img";
19
- // export * from "../Link";
20
- // export * from "../MenuItem";
21
- // export * from "../Pagination";
22
- // export * from "../Pill";
23
- // export * from "../Progress";
24
- // export * from "../Rating";
25
- // // export * from "../Select";
26
- // export * from "../Sidebar";
27
- // export * from "../Spacing";
28
- // export * from "../Sticky";
29
- // export * from "../styles";
30
- // export * from "../Tabs";
31
- // export * from "../Typography";
11
+ export { KoineDialog } from "../Dialog/css/bare"; // export * from "../Form";
12
+ // export * from "../Forms";
13
+ // export * from "../Grid";
14
+ // export * from "../Hamburger";
15
+ // export * from "../Header";
16
+ // export * from "../Hidden";
17
+ // export * from "../Img";
18
+ // export * from "../Link";
19
+ // export * from "../MenuItem";
20
+ // export * from "../Pagination";
21
+ // export * from "../Pill";
22
+ // export * from "../Progress";
23
+ // export * from "../Rating";
24
+ // // export * from "../Select";
25
+ // export * from "../Sidebar";
26
+ // export * from "../Spacing";
27
+ // export * from "../Sticky";
28
+ // export * from "../styles";
29
+ // export * from "../Tabs";
30
+ // export * from "../Typography";
@@ -1,5 +1,4 @@
1
- import { __assign } from "tslib";
2
- import { createElement, forwardRef } from "react";
1
+ import React, { createElement, forwardRef } from "react";
3
2
  /**
4
3
  * This utility allows to extend a component a là `styled-components` but for
5
4
  * a className based styling solution like Tailwind,
@@ -18,35 +17,24 @@ import { createElement, forwardRef } from "react";
18
17
  *
19
18
  * Discussions and Q/A:
20
19
  * - https://stackoverflow.com/q/73055695/1938970
21
- */
22
- export function classed(component) {
20
+ */ export function classed(component) {
23
21
  // @ts-expect-error nevermind for now...
24
- var type = component.type || component;
25
- return function (strings) {
26
- var args = [];
27
- for (var _i = 1; _i < arguments.length; _i++) {
28
- args[_i - 1] = arguments[_i];
29
- }
30
- var WrappedComponent = forwardRef(function (props, ref) {
31
- var _a;
32
- var argResolved = args
33
- .map(function (arg, index) {
34
- var result = "";
22
+ const type = component.type || component;
23
+ return function(strings, ...args) {
24
+ const WrappedComponent = /*#__PURE__*/ forwardRef(function(props, ref) {
25
+ const argResolved = args.map((arg, index)=>{
26
+ let result = "";
35
27
  if (typeof arg === "function") {
36
28
  result = arg(props);
37
- }
38
- else if (typeof arg !== "undefined") {
29
+ } else if (typeof arg !== "undefined") {
39
30
  result = arg.toString();
40
31
  }
41
32
  return strings[index] + result;
42
- })
43
- .join("");
44
- var isNativeHtmlElement = typeof type === "string";
45
- var propsToForward = isNativeHtmlElement
46
- ? {}
47
- : props;
33
+ }).join("");
34
+ const isNativeHtmlElement = typeof type === "string";
35
+ const propsToForward = isNativeHtmlElement ? {} : props;
48
36
  if (isNativeHtmlElement) {
49
- for (var key in props) {
37
+ for(const key in props){
50
38
  // like styled-components `transient` props
51
39
  if (!key.startsWith("$")) {
52
40
  // FIXME: for react 18 we need: @ts-expect-error
@@ -55,16 +43,19 @@ export function classed(component) {
55
43
  }
56
44
  }
57
45
  // get the tagged function string outcome
58
- var className = argResolved || strings[0];
46
+ let className = argResolved || strings[0];
59
47
  // check if we need to clean it or not from the optional structure `< class="..."`
60
- className = ((_a = className.match(/class="([^"]*)/)) === null || _a === void 0 ? void 0 : _a[1]) || className;
48
+ className = className.match(/class="([^"]*)/)?.[1] || className;
61
49
  // add the custom classes from props
62
- className += (props === null || props === void 0 ? void 0 : props.className) ? " " + (props === null || props === void 0 ? void 0 : props.className) : "";
63
- return createElement(type, __assign(__assign({}, propsToForward), {
50
+ className += props?.className ? " " + props?.className : "";
51
+ return /*#__PURE__*/ createElement(type, {
52
+ // ...props,
53
+ ...propsToForward,
64
54
  // only add ot props if it is not an empty string
65
- className: className || undefined,
55
+ className: className || undefined,
66
56
  // add ref to props
67
- ref: ref }));
57
+ ref
58
+ });
68
59
  });
69
60
  // FIXME: not sure if this is needed
70
61
  // WrappedComponent.displayName = type.toString();
@@ -0,0 +1,121 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-nocheck These are just wip experiments, we stick to just `./classed.tsx`
3
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
+ import React, { createElement } from "react";
5
+ import { classed } from "./classed";
6
+ const Classed = classed("div")`< class="bg-red-400 ${(p)=>p.test === "0a" ? "py-3" : "px-3"}`;
7
+ /**
8
+ * Adapted (removed `classnames` dependency) from:
9
+ * @see https://daily.dev/blog/my-tailwind-css-utility-function-for-creating-reusable-react-components-typescript-support
10
+ *
11
+ * See also [classname-hoc](https://www.npmjs.com/package/classname-hoc)
12
+ */ function classedOriginal(type, ...className) {
13
+ return function(props) {
14
+ return /*#__PURE__*/ createElement(type, {
15
+ ...props,
16
+ className: [
17
+ props?.className || ""
18
+ ].concat(className).join(" ")
19
+ });
20
+ };
21
+ }
22
+ const ClassedOriginal = classedOriginal("div", "bg-slate-800");
23
+ function classedBind(props) {
24
+ // @ts-expect-error no time now
25
+ const classNameImpl = props.className ? " " + props.className : "";
26
+ // return <this className={this.props.className + classNameImpl} {...props} />;
27
+ return /*#__PURE__*/ createElement(this.props.as || this.type, {
28
+ ...props,
29
+ className: this.props.className + classNameImpl
30
+ }, // @ts-expect-error no time now
31
+ props.children);
32
+ }
33
+ const ClassedBind = classedBind.bind(/*#__PURE__*/ _jsx("div", {
34
+ as: "h2",
35
+ className: "bg-slate-800"
36
+ }));
37
+ function classedDynamic(ComponentFn) {
38
+ return function(propsImplementation) {
39
+ const { props, type } = ComponentFn(propsImplementation);
40
+ const classNameDefault = props.className ? " " + props.className : "";
41
+ return /*#__PURE__*/ createElement(props.as || type, {
42
+ ...props,
43
+ ...propsImplementation,
44
+ className: propsImplementation?.className + classNameDefault
45
+ });
46
+ };
47
+ }
48
+ const ClassedDynamicIgnoringProps = classedDynamic(()=>/*#__PURE__*/ _jsx("div", {
49
+ as: "h2",
50
+ className: "bg-slate-800"
51
+ }));
52
+ const ClassedDynamicUsingProps = classedDynamic((p)=>{
53
+ return /*#__PURE__*/ _jsx("div", {
54
+ as: "h2",
55
+ className: `bg-slate-800 ${p?.test === "3" ? "py-3" : "px-3"}`
56
+ });
57
+ });
58
+ // type ExtractComponent<ComponentString extends string> =
59
+ // ComponentString extends `<${infer ComponentName} class="${infer ClassNames}`
60
+ // ? { name: ComponentName; className: ClassNames }
61
+ // : { error: "Cannot parse Component string" };
62
+ // type ExtractedComponent<T extends string> = ExtractComponent<T>;
63
+ function classedTaggedStatic(value = "") {
64
+ // @ts-expect-error we rely on correct implementation and assume it always matches
65
+ const componentName = value.match(/<(.*?)\s/)[1];
66
+ // @ts-expect-error we rely on correct implementation and assume it always matches
67
+ const classDefault = value.match(/class="(.+)/)[1];
68
+ return function(props) {
69
+ // @ts-expect-error no time now
70
+ const classCustom = props?.className ? " " + props?.className : "";
71
+ return /*#__PURE__*/ createElement(componentName, {
72
+ ...props,
73
+ className: classDefault + classCustom
74
+ });
75
+ }; /* as Component; */
76
+ }
77
+ const ClassedTaggedStatic = classedTaggedStatic(`<div class="bg-teal-400`);
78
+ export default {
79
+ // component: KoineDialog,
80
+ title: "Helpers/classed"
81
+ };
82
+ const Template = (args)=>{
83
+ return /*#__PURE__*/ _jsxs(_Fragment, {
84
+ children: [
85
+ /*#__PURE__*/ _jsx(Classed, {
86
+ className: "text-yellow-200",
87
+ test: "0a",
88
+ children: "Classed taller"
89
+ }),
90
+ /*#__PURE__*/ _jsx(Classed, {
91
+ className: "text-yellow-200",
92
+ test: "0b",
93
+ children: "Classed wider"
94
+ }),
95
+ /*#__PURE__*/ _jsx(ClassedOriginal, {
96
+ className: "text-white",
97
+ children: "ClassedOriginal"
98
+ }),
99
+ /*#__PURE__*/ _jsx(ClassedBind, {
100
+ className: "text-white",
101
+ children: "ClassedBind"
102
+ }),
103
+ /*#__PURE__*/ _jsx(ClassedDynamicIgnoringProps, {
104
+ className: "text-gray-300",
105
+ test: "2",
106
+ children: "ClassedDynamicIgnoringProps"
107
+ }),
108
+ /*#__PURE__*/ _jsx(ClassedDynamicUsingProps, {
109
+ className: "text-gray-600",
110
+ test: "3",
111
+ children: "ClassedDynamicUsingProps"
112
+ }),
113
+ /*#__PURE__*/ _jsx(ClassedTaggedStatic, {
114
+ className: "text-gray-600",
115
+ children: "ClassedTaggedStatic"
116
+ })
117
+ ]
118
+ });
119
+ };
120
+ export const Playground = Template.bind({});
121
+ Playground.args = {};