polpo 0.1.7 → 0.1.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 (395) hide show
  1. package/dist/components.cjs +3 -0
  2. package/dist/components.cjs.map +1 -0
  3. package/dist/components.css +2 -0
  4. package/dist/components.css.map +1 -0
  5. package/dist/components.d.cts +1866 -0
  6. package/dist/components.d.ts +1866 -0
  7. package/dist/components.js +3 -0
  8. package/dist/components.js.map +1 -0
  9. package/dist/{get-modal-position-drle0OjP.d.cts → get-modal-position-C5jQsaGx.d.cts} +1 -1
  10. package/dist/{get-modal-position-drle0OjP.d.ts → get-modal-position-C5jQsaGx.d.ts} +1 -1
  11. package/dist/helpers.cjs +1 -1
  12. package/dist/helpers.cjs.map +1 -1
  13. package/dist/helpers.d.cts +2 -2
  14. package/dist/helpers.d.ts +2 -2
  15. package/dist/helpers.js +1 -1
  16. package/dist/helpers.js.map +1 -1
  17. package/dist/hooks.cjs +1 -1
  18. package/dist/hooks.cjs.map +1 -1
  19. package/dist/hooks.d.cts +15 -13
  20. package/dist/hooks.d.ts +15 -13
  21. package/dist/hooks.js +1 -1
  22. package/dist/hooks.js.map +1 -1
  23. package/dist/layouts.cjs +3 -0
  24. package/dist/layouts.cjs.map +1 -0
  25. package/dist/layouts.css +2 -0
  26. package/dist/layouts.css.map +1 -0
  27. package/dist/{ui.d.cts → layouts.d.cts} +237 -2202
  28. package/dist/{ui.d.ts → layouts.d.ts} +237 -2202
  29. package/dist/layouts.js +3 -0
  30. package/dist/layouts.js.map +1 -0
  31. package/dist/types.cjs +3 -0
  32. package/dist/types.cjs.map +1 -0
  33. package/dist/types.d.cts +8 -0
  34. package/dist/types.d.ts +8 -0
  35. package/dist/types.js +2 -0
  36. package/dist/types.js.map +1 -0
  37. package/dist/{use-modal-transition-XQHye62R.d.cts → use-modal-transition-C0lyjvkD.d.ts} +4 -4
  38. package/dist/{use-modal-transition-DPZFWFFf.d.ts → use-modal-transition-C7DzbnY5.d.cts} +4 -4
  39. package/package.json +76 -76
  40. package/.eslintrc.cjs +0 -9
  41. package/.storybook/decorators.tsx +0 -61
  42. package/.storybook/main.ts +0 -47
  43. package/.storybook/manager-head.html +0 -2
  44. package/.storybook/manager.ts +0 -7
  45. package/.storybook/preview-head.html +0 -2
  46. package/.storybook/preview.ts +0 -38
  47. package/.storybook/theme.ts +0 -47
  48. package/.turbo/turbo-lint.log +0 -4
  49. package/README.md +0 -65
  50. package/dist/chunk-CF5MBMWG.js +0 -3
  51. package/dist/chunk-CF5MBMWG.js.map +0 -1
  52. package/dist/chunk-MAWW6AA7.js +0 -3
  53. package/dist/chunk-MAWW6AA7.js.map +0 -1
  54. package/dist/ui.cjs +0 -2279
  55. package/dist/ui.cjs.map +0 -1
  56. package/dist/ui.js +0 -2279
  57. package/dist/ui.js.map +0 -1
  58. package/src/components/accordion/accordion-item.stories.tsx +0 -128
  59. package/src/components/accordion/accordion-item.tsx +0 -119
  60. package/src/components/accordion/accordion.stories.tsx +0 -74
  61. package/src/components/accordion/accordion.style.ts +0 -42
  62. package/src/components/accordion/accordion.tsx +0 -74
  63. package/src/components/accordion/index.ts +0 -2
  64. package/src/components/buttons/button/button.stories.tsx +0 -103
  65. package/src/components/buttons/button/button.style.ts +0 -152
  66. package/src/components/buttons/button/button.tsx +0 -107
  67. package/src/components/buttons/button/index.ts +0 -1
  68. package/src/components/buttons/index.ts +0 -1
  69. package/src/components/cards/flip-card/flip-card.stories.tsx +0 -61
  70. package/src/components/cards/flip-card/flip-card.style.ts +0 -45
  71. package/src/components/cards/flip-card/flip-card.tsx +0 -55
  72. package/src/components/cards/flip-card/index.ts +0 -1
  73. package/src/components/cards/hover-card/hover-card.stories.tsx +0 -45
  74. package/src/components/cards/hover-card/hover-card.style.ts +0 -13
  75. package/src/components/cards/hover-card/hover-card.tsx +0 -71
  76. package/src/components/cards/hover-card/index.ts +0 -1
  77. package/src/components/cards/index.ts +0 -3
  78. package/src/components/cards/slide-card/index.ts +0 -1
  79. package/src/components/cards/slide-card/slide-card.stories.tsx +0 -47
  80. package/src/components/cards/slide-card/slide-card.tsx +0 -42
  81. package/src/components/cursor/cursor.stories.tsx +0 -36
  82. package/src/components/cursor/cursor.style.ts +0 -73
  83. package/src/components/cursor/cursor.tsx +0 -49
  84. package/src/components/cursor/index.ts +0 -1
  85. package/src/components/form/checkbox/checkbox.stories.tsx +0 -85
  86. package/src/components/form/checkbox/checkbox.style.ts +0 -109
  87. package/src/components/form/checkbox/checkbox.tsx +0 -120
  88. package/src/components/form/checkbox/index.ts +0 -1
  89. package/src/components/form/controller/controller.tsx +0 -42
  90. package/src/components/form/controller/index.ts +0 -1
  91. package/src/components/form/date-picker/date-picker.stories.tsx +0 -38
  92. package/src/components/form/date-picker/date-picker.tsx +0 -67
  93. package/src/components/form/date-picker/index.ts +0 -1
  94. package/src/components/form/field/field.stories.tsx +0 -52
  95. package/src/components/form/field/field.style.ts +0 -94
  96. package/src/components/form/field/field.tsx +0 -86
  97. package/src/components/form/field/field.types.ts +0 -34
  98. package/src/components/form/field/index.ts +0 -2
  99. package/src/components/form/form.stories.types.tsx +0 -50
  100. package/src/components/form/form.types.ts +0 -37
  101. package/src/components/form/index.ts +0 -14
  102. package/src/components/form/input/index.ts +0 -1
  103. package/src/components/form/input/input.stories.tsx +0 -41
  104. package/src/components/form/input/input.tsx +0 -73
  105. package/src/components/form/input-color/index.ts +0 -1
  106. package/src/components/form/input-color/input-color.stories.tsx +0 -46
  107. package/src/components/form/input-color/input-color.style.ts +0 -94
  108. package/src/components/form/input-color/input-color.tsx +0 -162
  109. package/src/components/form/input-file/index.ts +0 -1
  110. package/src/components/form/input-file/input-file.stories.tsx +0 -40
  111. package/src/components/form/input-file/input-file.style.ts +0 -143
  112. package/src/components/form/input-file/input-file.tsx +0 -214
  113. package/src/components/form/input-password/index.ts +0 -1
  114. package/src/components/form/input-password/input-password.stories.tsx +0 -37
  115. package/src/components/form/input-password/input-password.tsx +0 -83
  116. package/src/components/form/radio/index.ts +0 -1
  117. package/src/components/form/radio/radio.stories.tsx +0 -68
  118. package/src/components/form/radio/radio.style.ts +0 -79
  119. package/src/components/form/radio/radio.tsx +0 -106
  120. package/src/components/form/select/data.stories.json +0 -452
  121. package/src/components/form/select/index.ts +0 -1
  122. package/src/components/form/select/option.tsx +0 -101
  123. package/src/components/form/select/options.tsx +0 -161
  124. package/src/components/form/select/select.stories.tsx +0 -369
  125. package/src/components/form/select/select.style.ts +0 -116
  126. package/src/components/form/select/select.tsx +0 -312
  127. package/src/components/form/select/select.types.ts +0 -97
  128. package/src/components/form/slider/index.ts +0 -1
  129. package/src/components/form/slider/slider.stories.tsx +0 -40
  130. package/src/components/form/slider/slider.style.ts +0 -92
  131. package/src/components/form/slider/slider.tsx +0 -108
  132. package/src/components/form/switch/index.ts +0 -1
  133. package/src/components/form/switch/switch.stories.tsx +0 -88
  134. package/src/components/form/switch/switch.style.ts +0 -137
  135. package/src/components/form/switch/switch.tsx +0 -177
  136. package/src/components/form/textarea/index.ts +0 -1
  137. package/src/components/form/textarea/textarea.stories.tsx +0 -43
  138. package/src/components/form/textarea/textarea.style.ts +0 -7
  139. package/src/components/form/textarea/textarea.tsx +0 -76
  140. package/src/components/icon/icon.stories.tsx +0 -63
  141. package/src/components/icon/icon.tsx +0 -64
  142. package/src/components/icon/icons/index.ts +0 -18
  143. package/src/components/icon/icons/object.tsx +0 -482
  144. package/src/components/icon/icons/social.tsx +0 -88
  145. package/src/components/icon/icons/symbol.tsx +0 -776
  146. package/src/components/icon/index.ts +0 -5
  147. package/src/components/image/image.stories.tsx +0 -25
  148. package/src/components/image/image.tsx +0 -7
  149. package/src/components/image/index.ts +0 -1
  150. package/src/components/index.ts +0 -17
  151. package/src/components/infinity-scroll/index.ts +0 -1
  152. package/src/components/infinity-scroll/infinity-scroll.stories.tsx +0 -118
  153. package/src/components/infinity-scroll/infinity-scroll.style.ts +0 -30
  154. package/src/components/infinity-scroll/infinity-scroll.tsx +0 -53
  155. package/src/components/line/index.ts +0 -1
  156. package/src/components/line/line.stories.tsx +0 -66
  157. package/src/components/line/line.style.ts +0 -57
  158. package/src/components/line/line.tsx +0 -76
  159. package/src/components/loaders/icons/box-1.tsx +0 -31
  160. package/src/components/loaders/icons/box-2.tsx +0 -30
  161. package/src/components/loaders/icons/box-3.tsx +0 -66
  162. package/src/components/loaders/icons/clock-1.tsx +0 -25
  163. package/src/components/loaders/icons/clock-2.tsx +0 -58
  164. package/src/components/loaders/icons/dots-1.tsx +0 -194
  165. package/src/components/loaders/icons/dots-2.tsx +0 -15
  166. package/src/components/loaders/icons/dots-3.tsx +0 -38
  167. package/src/components/loaders/icons/dots-4.tsx +0 -90
  168. package/src/components/loaders/icons/dots-5.tsx +0 -30
  169. package/src/components/loaders/icons/dots-6.tsx +0 -72
  170. package/src/components/loaders/icons/dots-7.tsx +0 -51
  171. package/src/components/loaders/icons/dots-8.tsx +0 -42
  172. package/src/components/loaders/icons/dots-9.tsx +0 -27
  173. package/src/components/loaders/icons/lines-1.tsx +0 -96
  174. package/src/components/loaders/icons/lines-2.tsx +0 -48
  175. package/src/components/loaders/icons/pulse-1.tsx +0 -69
  176. package/src/components/loaders/icons/pulse-2.tsx +0 -69
  177. package/src/components/loaders/icons/pulse-3.tsx +0 -105
  178. package/src/components/loaders/icons/pulse-4.tsx +0 -105
  179. package/src/components/loaders/icons/pulse-5.tsx +0 -56
  180. package/src/components/loaders/icons/spinner-1.tsx +0 -162
  181. package/src/components/loaders/icons/spinner-2.tsx +0 -147
  182. package/src/components/loaders/icons/spinner-3.tsx +0 -35
  183. package/src/components/loaders/icons/spinner-4.tsx +0 -16
  184. package/src/components/loaders/index.ts +0 -1
  185. package/src/components/loaders/simple-loader/index.ts +0 -1
  186. package/src/components/loaders/simple-loader/simple-loader.stories.tsx +0 -42
  187. package/src/components/loaders/simple-loader/simple-loader.style.ts +0 -12
  188. package/src/components/loaders/simple-loader/simple-loader.tsx +0 -99
  189. package/src/components/modals/action-modal/action-modal.stories.tsx +0 -157
  190. package/src/components/modals/action-modal/action-modal.style.ts +0 -117
  191. package/src/components/modals/action-modal/action-modal.tsx +0 -148
  192. package/src/components/modals/action-modal/index.ts +0 -1
  193. package/src/components/modals/aside-modal/aside-modal.stories.tsx +0 -81
  194. package/src/components/modals/aside-modal/aside-modal.style.ts +0 -88
  195. package/src/components/modals/aside-modal/aside-modal.tsx +0 -64
  196. package/src/components/modals/aside-modal/index.ts +0 -1
  197. package/src/components/modals/confirmation-modal/confirmation-modal.stories.tsx +0 -62
  198. package/src/components/modals/confirmation-modal/confirmation-modal.style.ts +0 -17
  199. package/src/components/modals/confirmation-modal/confirmation-modal.tsx +0 -43
  200. package/src/components/modals/confirmation-modal/index.ts +0 -1
  201. package/src/components/modals/index.ts +0 -6
  202. package/src/components/modals/menu/index.ts +0 -1
  203. package/src/components/modals/menu/menu.stories.tsx +0 -79
  204. package/src/components/modals/menu/menu.style.ts +0 -103
  205. package/src/components/modals/menu/menu.tsx +0 -186
  206. package/src/components/modals/modal/backdrop.tsx +0 -70
  207. package/src/components/modals/modal/index.ts +0 -2
  208. package/src/components/modals/modal/modal.stories.tsx +0 -328
  209. package/src/components/modals/modal/modal.style.ts +0 -70
  210. package/src/components/modals/modal/modal.tsx +0 -106
  211. package/src/components/modals/portal/index.ts +0 -1
  212. package/src/components/modals/portal/portal.tsx +0 -21
  213. package/src/components/ripple/index.ts +0 -1
  214. package/src/components/ripple/ripple.stories.tsx +0 -38
  215. package/src/components/ripple/ripple.style.ts +0 -33
  216. package/src/components/ripple/ripple.tsx +0 -65
  217. package/src/components/smart-table/index.ts +0 -1
  218. package/src/components/smart-table/smart-table.column.tsx +0 -63
  219. package/src/components/smart-table/smart-table.helpers.tsx +0 -59
  220. package/src/components/smart-table/smart-table.hooks.ts +0 -27
  221. package/src/components/smart-table/smart-table.row.tsx +0 -29
  222. package/src/components/smart-table/smart-table.stories.tsx +0 -301
  223. package/src/components/smart-table/smart-table.style.ts +0 -102
  224. package/src/components/smart-table/smart-table.tsx +0 -112
  225. package/src/components/smart-table/smart-table.types.ts +0 -41
  226. package/src/components/tabs/index.ts +0 -1
  227. package/src/components/tabs/tabs-container.stories.tsx +0 -159
  228. package/src/components/tabs/tabs-list.tsx +0 -134
  229. package/src/components/tabs/tabs.stories.tsx +0 -68
  230. package/src/components/tabs/tabs.style.ts +0 -137
  231. package/src/components/tabs/tabs.tsx +0 -117
  232. package/src/components/tag/index.ts +0 -1
  233. package/src/components/tag/tag.stories.tsx +0 -48
  234. package/src/components/tag/tag.style.ts +0 -29
  235. package/src/components/tag/tag.tsx +0 -34
  236. package/src/components/tooltips/click-to-copy/click-to-copy.stories.tsx +0 -39
  237. package/src/components/tooltips/click-to-copy/click-to-copy.tsx +0 -41
  238. package/src/components/tooltips/click-to-copy/index.ts +0 -1
  239. package/src/components/tooltips/index.ts +0 -2
  240. package/src/components/tooltips/tooltip/index.ts +0 -1
  241. package/src/components/tooltips/tooltip/tooltip.stories.tsx +0 -38
  242. package/src/components/tooltips/tooltip/tooltip.style.ts +0 -93
  243. package/src/components/tooltips/tooltip/tooltip.tsx +0 -59
  244. package/src/components/typography/index.ts +0 -2
  245. package/src/components/typography/typography.constants.ts +0 -43
  246. package/src/components/typography/typography.stories.tsx +0 -108
  247. package/src/components/typography/typography.style.ts +0 -76
  248. package/src/components/typography/typography.tsx +0 -100
  249. package/src/contexts/fetch-context/fetch-context.tsx +0 -114
  250. package/src/contexts/fetch-context/index.ts +0 -1
  251. package/src/contexts/form-context/form-context.tsx +0 -43
  252. package/src/contexts/form-context/index.ts +0 -1
  253. package/src/contexts/index.ts +0 -3
  254. package/src/contexts/theme-context/index.ts +0 -3
  255. package/src/contexts/theme-context/theme-context.tsx +0 -158
  256. package/src/contexts/theme-context/theme.animations.ts +0 -269
  257. package/src/contexts/theme-context/theme.defaults.ts +0 -209
  258. package/src/contexts/theme-context/theme.style.ts +0 -78
  259. package/src/contexts/theme-context/themes.ts +0 -98
  260. package/src/core/http-client.d.ts +0 -11
  261. package/src/core/http-client.d.ts.map +0 -1
  262. package/src/core/http-client.ts +0 -49
  263. package/src/core/index.d.ts +0 -2
  264. package/src/core/index.d.ts.map +0 -1
  265. package/src/core/index.ts +0 -1
  266. package/src/core/variants/color.ts +0 -9
  267. package/src/core/variants/index.ts +0 -3
  268. package/src/core/variants/radius.ts +0 -27
  269. package/src/core/variants/size.ts +0 -19
  270. package/src/helpers/format-bytes.ts +0 -11
  271. package/src/helpers/format-dates.ts +0 -11
  272. package/src/helpers/get-modal-position-relative-to-screen.ts +0 -86
  273. package/src/helpers/get-modal-position.ts +0 -211
  274. package/src/helpers/index.ts +0 -5
  275. package/src/helpers/text/index.ts +0 -1
  276. package/src/helpers/text/to-capitalize.ts +0 -17
  277. package/src/hooks/index.ts +0 -29
  278. package/src/hooks/use-async.ts +0 -88
  279. package/src/hooks/use-classnames.ts +0 -13
  280. package/src/hooks/use-click-outside.ts +0 -32
  281. package/src/hooks/use-constant.ts +0 -3
  282. package/src/hooks/use-cookie.ts +0 -124
  283. package/src/hooks/use-debounce.ts +0 -15
  284. package/src/hooks/use-dimensions.ts +0 -19
  285. package/src/hooks/use-dom-container.ts +0 -35
  286. package/src/hooks/use-event-listener.ts +0 -71
  287. package/src/hooks/use-file-reader.ts +0 -69
  288. package/src/hooks/use-geolocation.ts +0 -63
  289. package/src/hooks/use-hover.ts +0 -17
  290. package/src/hooks/use-in-view.ts +0 -18
  291. package/src/hooks/use-input-handlers.ts +0 -49
  292. package/src/hooks/use-intersection-observer.ts +0 -19
  293. package/src/hooks/use-media-query.ts +0 -25
  294. package/src/hooks/use-modal-in-container.ts +0 -85
  295. package/src/hooks/use-modal-transition.ts +0 -64
  296. package/src/hooks/use-modal.ts +0 -21
  297. package/src/hooks/use-mouse-position.ts +0 -64
  298. package/src/hooks/use-online-status.ts +0 -12
  299. package/src/hooks/use-render-count.ts +0 -11
  300. package/src/hooks/use-resize-observer.ts +0 -18
  301. package/src/hooks/use-safe-dispatch.ts +0 -22
  302. package/src/hooks/use-scroll.ts +0 -31
  303. package/src/hooks/use-state-history.ts +0 -22
  304. package/src/hooks/use-toggle-values.ts +0 -14
  305. package/src/hooks/use-toggle.ts +0 -11
  306. package/src/hooks/use-viewport.ts +0 -38
  307. package/src/index.ts +0 -5
  308. package/src/layouts/flex/flex.tsx +0 -75
  309. package/src/layouts/flex/index.ts +0 -1
  310. package/src/layouts/grid/grid.tsx +0 -86
  311. package/src/layouts/grid/index.ts +0 -1
  312. package/src/layouts/index.ts +0 -3
  313. package/src/layouts/section-layout/index.ts +0 -1
  314. package/src/layouts/section-layout/section-layout.stories.tsx +0 -55
  315. package/src/layouts/section-layout/section-layout.style.ts +0 -21
  316. package/src/layouts/section-layout/section-layout.tsx +0 -46
  317. package/src/stories/GettingStarted.mdx +0 -62
  318. package/src/types/generics.ts +0 -68
  319. package/src/types/index.ts +0 -1
  320. package/svg/Name=airplane, Category=object.svg +0 -3
  321. package/svg/Name=arrow-circle, Category=symbol.svg +0 -3
  322. package/svg/Name=arrow-down, Category=symbol.svg +0 -3
  323. package/svg/Name=arrow-left, Category=symbol.svg +0 -3
  324. package/svg/Name=arrow-right, Category=symbol.svg +0 -3
  325. package/svg/Name=arrow-up, Category=symbol.svg +0 -3
  326. package/svg/Name=bell, Category=object.svg +0 -3
  327. package/svg/Name=bicycle, Category=object.svg +0 -3
  328. package/svg/Name=book-open, Category=object.svg +0 -3
  329. package/svg/Name=book-solid, Category=object.svg +0 -6
  330. package/svg/Name=box-shadow, Category=symbol.svg +0 -5
  331. package/svg/Name=calendar, Category=object.svg +0 -3
  332. package/svg/Name=camera, Category=object.svg +0 -3
  333. package/svg/Name=caret-down, Category=symbol.svg +0 -3
  334. package/svg/Name=caret-left, Category=symbol.svg +0 -3
  335. package/svg/Name=caret-right, Category=symbol.svg +0 -3
  336. package/svg/Name=caret-up, Category=symbol.svg +0 -3
  337. package/svg/Name=checkmark, Category=symbol.svg +0 -3
  338. package/svg/Name=clean-computer, Category=object.svg +0 -10
  339. package/svg/Name=codepen, Category=social.svg +0 -3
  340. package/svg/Name=creative, Category=symbol.svg +0 -5
  341. package/svg/Name=cross, Category=symbol.svg +0 -4
  342. package/svg/Name=crossed-flags, Category=object.svg +0 -4
  343. package/svg/Name=cv, Category=symbol.svg +0 -5
  344. package/svg/Name=design-ui, Category=symbol.svg +0 -9
  345. package/svg/Name=document, Category=object.svg +0 -3
  346. package/svg/Name=door-closed, Category=object.svg +0 -3
  347. package/svg/Name=door-open, Category=object.svg +0 -3
  348. package/svg/Name=double-caret-down, Category=symbol.svg +0 -4
  349. package/svg/Name=double-caret-left, Category=symbol.svg +0 -4
  350. package/svg/Name=double-caret-righ, Category=symbol.svg +0 -4
  351. package/svg/Name=double-caret-up, Category=symbol.svg +0 -4
  352. package/svg/Name=download, Category=symbol.svg +0 -5
  353. package/svg/Name=dropper, Category=object.svg +0 -5
  354. package/svg/Name=envelope, Category=object.svg +0 -3
  355. package/svg/Name=exclamation-close, Category=symbol.svg +0 -4
  356. package/svg/Name=exclamation-open, Category=symbol.svg +0 -4
  357. package/svg/Name=external-link, Category=symbol.svg +0 -3
  358. package/svg/Name=eye, Category=object.svg +0 -4
  359. package/svg/Name=eye-hidden, Category=object.svg +0 -7
  360. package/svg/Name=facebook, Category=social.svg +0 -3
  361. package/svg/Name=form, Category=symbol.svg +0 -8
  362. package/svg/Name=game-control, Category=object.svg +0 -3
  363. package/svg/Name=gear, Category=object.svg +0 -3
  364. package/svg/Name=github, Category=social.svg +0 -3
  365. package/svg/Name=house, Category=object.svg +0 -3
  366. package/svg/Name=hyphen, Category=symbol.svg +0 -3
  367. package/svg/Name=info, Category=symbol.svg +0 -3
  368. package/svg/Name=instagram, Category=social.svg +0 -3
  369. package/svg/Name=link, Category=symbol.svg +0 -5
  370. package/svg/Name=linkedin, Category=social.svg +0 -3
  371. package/svg/Name=magnifying-glass, Category=object.svg +0 -3
  372. package/svg/Name=message, Category=symbol.svg +0 -4
  373. package/svg/Name=moon, Category=object.svg +0 -5
  374. package/svg/Name=npm, Category=social.svg +0 -3
  375. package/svg/Name=order-list, Category=symbol.svg +0 -7
  376. package/svg/Name=pencil, Category=object.svg +0 -3
  377. package/svg/Name=pin-location, Category=symbol.svg +0 -3
  378. package/svg/Name=question-mark-close, Category=symbol.svg +0 -3
  379. package/svg/Name=question-mark-open, Category=symbol.svg +0 -3
  380. package/svg/Name=share, Category=symbol.svg +0 -5
  381. package/svg/Name=spinner, Category=symbol.svg +0 -9
  382. package/svg/Name=star, Category=object.svg +0 -3
  383. package/svg/Name=star-empty, Category=object.svg +0 -3
  384. package/svg/Name=sun, Category=object.svg +0 -11
  385. package/svg/Name=text-shadow, Category=symbol.svg +0 -4
  386. package/svg/Name=thinking, Category=symbol.svg +0 -3
  387. package/svg/Name=trash-can, Category=object.svg +0 -4
  388. package/svg/Name=upload, Category=symbol.svg +0 -5
  389. package/svg/Name=user, Category=symbol.svg +0 -4
  390. package/svg/Name=warning, Category=symbol.svg +0 -5
  391. package/svg/Name=whatsapp, Category=social.svg +0 -3
  392. package/svgconfig.json +0 -4
  393. package/tsconfig.json +0 -15
  394. package/tsup.config.cjs +0 -21
  395. package/vite.config.ts +0 -14
@@ -1,69 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- import { formatBytes } from '@polpo/helpers';
4
-
5
- export enum FileTypeEnum {
6
- PNG = 'image/png',
7
- PDF = 'application/pdf',
8
- }
9
-
10
- export type FileResolvedT = {
11
- name: string;
12
- size: number;
13
- formatSize: string;
14
- type: FileTypeEnum;
15
- url: FileReader['result'];
16
- };
17
-
18
- export const useFileReader = (inputFiles: Array<File>) => {
19
- const [files, setFiles] = useState<Array<FileResolvedT>>([]);
20
-
21
- useEffect(() => {
22
- const fileReaders: Array<FileReader> = [];
23
- let isCancel = false;
24
-
25
- if (!Array.isArray(inputFiles) || inputFiles.length === 0) {
26
- setFiles([]);
27
- } else {
28
- const promises = inputFiles.map(file => {
29
- return new Promise<FileResolvedT>((resolve, reject) => {
30
- const fileReader = new FileReader();
31
- fileReaders.push(fileReader);
32
- fileReader.onload = (e: ProgressEvent<FileReader>) => {
33
- if (e.target?.result) {
34
- resolve({
35
- name: file.name,
36
- size: file.size,
37
- formatSize: formatBytes(file.size),
38
- type: file.type as FileTypeEnum,
39
- url: e.target.result,
40
- });
41
- }
42
- };
43
- fileReader.onabort = () => {
44
- reject(new Error('File reading aborted'));
45
- };
46
- fileReader.onerror = () => {
47
- reject(new Error('Failed to read file'));
48
- };
49
- fileReader.readAsDataURL(file);
50
- });
51
- });
52
-
53
- Promise.all(promises).then(files => {
54
- if (!isCancel) {
55
- setFiles(files);
56
- }
57
- });
58
- }
59
-
60
- return () => {
61
- isCancel = true;
62
- fileReaders.forEach(fileReader => {
63
- fileReader.abort();
64
- });
65
- };
66
- }, [inputFiles]);
67
-
68
- return files;
69
- };
@@ -1,63 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react';
2
-
3
- type GeolocationData = GeolocationPosition['coords'] & {
4
- timestamp: GeolocationPosition['timestamp'];
5
- };
6
-
7
- interface GeolocationError {
8
- code: number;
9
- message: string;
10
- }
11
-
12
- type UseGeolocationReturn = {
13
- data: GeolocationData | null;
14
- error: GeolocationError | null;
15
- isLoading: boolean;
16
- };
17
-
18
- export const useGeolocation = (): UseGeolocationReturn => {
19
- const [data, setData] = useState<GeolocationData | null>(null);
20
- const [error, setError] = useState<GeolocationError | null>(null);
21
- const [isLoading, setIsLoading] = useState<boolean>(true);
22
- const watchIdRef = useRef<number | null>(null);
23
-
24
- useEffect(() => {
25
- if (!navigator.geolocation) {
26
- setError({
27
- code: 0,
28
- message: 'Geolocation is not supported by your browser.',
29
- });
30
- setIsLoading(false);
31
-
32
- return;
33
- }
34
-
35
- const handleSuccess = (position: GeolocationPosition) => {
36
- setData({
37
- ...position.coords,
38
- timestamp: position.timestamp,
39
- });
40
- setIsLoading(false);
41
- };
42
-
43
- const handleError = (geolocationError: GeolocationPositionError) => {
44
- setError({
45
- code: geolocationError.code,
46
- message: geolocationError.message,
47
- });
48
- setIsLoading(false);
49
- };
50
-
51
- navigator.geolocation.getCurrentPosition(handleSuccess, handleError);
52
-
53
- watchIdRef.current = navigator.geolocation.watchPosition(handleSuccess, handleError);
54
-
55
- return () => {
56
- if (watchIdRef.current !== null) {
57
- navigator.geolocation.clearWatch(watchIdRef.current);
58
- }
59
- };
60
- }, []);
61
-
62
- return { data, error, isLoading };
63
- };
@@ -1,17 +0,0 @@
1
- import { useCallback, useRef, useState } from 'react';
2
-
3
- import { useEventListener } from './use-event-listener';
4
-
5
- export const useHover = () => {
6
- const [isHovered, setIsHovered] = useState(false);
7
- const ref = useRef<HTMLElement>(null);
8
-
9
- const handleMouseEnter = useCallback(() => setIsHovered(true), []);
10
-
11
- const handleMouseLeave = useCallback(() => setIsHovered(false), []);
12
-
13
- useEventListener('mouseenter', handleMouseEnter, ref);
14
- useEventListener('mouseleave', handleMouseLeave, ref);
15
-
16
- return isHovered;
17
- };
@@ -1,18 +0,0 @@
1
- import { useRef, useState } from 'react';
2
-
3
- import { useIntersectionObserver } from './use-intersection-observer';
4
-
5
- export const useInView = (initOptions: IntersectionObserverInit = {}) => {
6
- const [inView, setInView] = useState(false);
7
- const ref = useRef<Element>(null);
8
-
9
- useIntersectionObserver(
10
- ref,
11
- ([entry]) => {
12
- setInView(entry.isIntersecting);
13
- },
14
- initOptions,
15
- );
16
-
17
- return { ref, inView };
18
- };
@@ -1,49 +0,0 @@
1
- import React, { useCallback, useState } from 'react';
2
-
3
- type InputTypes = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
4
-
5
- type UseInputHandlersProps<T extends InputTypes> = {
6
- onBlur?: (e: React.FocusEvent<T>) => void;
7
- onFocus?: (e: React.FocusEvent<T>) => void;
8
- onChange?: (e: React.ChangeEvent<T>) => void;
9
- };
10
-
11
- export const useInputHandlers = <T extends InputTypes>({
12
- onBlur,
13
- onFocus,
14
- onChange,
15
- }: UseInputHandlersProps<T> = {}) => {
16
- const [isFocus, setIsFocus] = useState(false);
17
-
18
- const handleFocus = useCallback(
19
- (e: React.FocusEvent<T>) => {
20
- setIsFocus(true);
21
- onFocus && onFocus(e);
22
- },
23
- [onFocus],
24
- );
25
-
26
- const handleBlur = useCallback(
27
- (e: React.FocusEvent<T>) => {
28
- setIsFocus(false);
29
- onBlur && onBlur(e);
30
- },
31
- [onBlur],
32
- );
33
-
34
- const handleChange = useCallback(
35
- (e: React.ChangeEvent<T>) => {
36
- onChange && onChange(e);
37
- },
38
- [onChange],
39
- );
40
-
41
- return {
42
- isFocus,
43
- handlers: {
44
- onFocus: handleFocus,
45
- onBlur: handleBlur,
46
- onChange: handleChange,
47
- },
48
- };
49
- };
@@ -1,19 +0,0 @@
1
- import { RefObject, useEffect } from 'react';
2
-
3
- export const useIntersectionObserver = <T extends Element>(
4
- ref: RefObject<T> | Array<RefObject<T>>,
5
- callback: IntersectionObserverCallback,
6
- initOptions: IntersectionObserverInit = {},
7
- ) => {
8
- useEffect(() => {
9
- const refs = Array.isArray(ref) ? ref : [ref];
10
-
11
- const observer = new IntersectionObserver(callback, initOptions);
12
-
13
- refs.forEach(r => r.current && observer.observe(r.current));
14
-
15
- return () => {
16
- observer.disconnect();
17
- };
18
- }, [callback, initOptions, ref]);
19
- };
@@ -1,25 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- export const useMediaQuery = (query: string): boolean => {
4
- const [matches, setMatches] = useState(false);
5
-
6
- useEffect(() => {
7
- const media = window.matchMedia(query);
8
-
9
- if (media.matches !== matches) {
10
- setMatches(media.matches);
11
- }
12
-
13
- const listener = () => {
14
- setMatches(media.matches);
15
- };
16
-
17
- media.addEventListener('change', listener);
18
-
19
- return () => {
20
- media.removeEventListener('change', listener);
21
- };
22
- }, [matches, query]);
23
-
24
- return matches;
25
- };
@@ -1,85 +0,0 @@
1
- import { RefObject, useCallback, useLayoutEffect, useRef } from 'react';
2
-
3
- import { useEventListener } from './use-event-listener';
4
- import { useResizeObserver } from './use-resize-observer';
5
-
6
- import {
7
- getModalPositionRelativeToContainer,
8
- getModalPositionRelativeToScreen,
9
- PositionContainer,
10
- PositionObject,
11
- } from '@polpo/helpers';
12
-
13
- const convertDOMRectToPosition = (rect: DOMRectReadOnly): PositionObject => ({
14
- x: rect.x,
15
- y: rect.y,
16
- w: rect.width,
17
- h: rect.height,
18
- top: rect.top,
19
- left: rect.left,
20
- });
21
-
22
- export type UseModalInContainerParams<
23
- Container extends HTMLElement = HTMLElement,
24
- Modal extends HTMLElement = Container,
25
- > = {
26
- windowOffset?: number;
27
- offset?: number;
28
- position?: `${PositionContainer}`;
29
- modalRef: RefObject<Modal>;
30
- containerRef?: RefObject<Container>;
31
- isOpen: boolean;
32
- };
33
-
34
- export const useModalInContainer = <
35
- Container extends HTMLElement = HTMLElement,
36
- Modal extends HTMLElement = Container,
37
- >({
38
- offset = 0,
39
- windowOffset = 0,
40
- position = PositionContainer.BOTTOM,
41
- modalRef,
42
- containerRef,
43
- isOpen,
44
- }: UseModalInContainerParams<Container, Modal>) => {
45
- const containerTemporalRef = useRef<Container>(null);
46
-
47
- const getPosition = useCallback(
48
- (modalRef: RefObject<Modal>, containerRef: RefObject<Container>) => {
49
- const modal = modalRef.current?.getClientRects()[0];
50
- const container = containerRef.current?.getClientRects()[0];
51
-
52
- if (!modal) {
53
- return;
54
- }
55
-
56
- const modalStyle: Record<string, string> = !container
57
- ? getModalPositionRelativeToScreen({ position: position as PositionContainer, windowOffset })
58
- : getModalPositionRelativeToContainer({
59
- c: convertDOMRectToPosition(container),
60
- m: convertDOMRectToPosition(modal),
61
- offset,
62
- windowOffset,
63
- position: position as PositionContainer,
64
- });
65
-
66
- Object.keys(modalStyle).forEach(key => {
67
- modalRef.current?.style.setProperty(key, modalStyle[key]);
68
- });
69
- },
70
- [position, windowOffset, offset],
71
- );
72
-
73
- const callback = useCallback(() => {
74
- if (isOpen) {
75
- getPosition(modalRef, containerRef ?? containerTemporalRef);
76
- }
77
- }, [getPosition, isOpen, containerRef, modalRef]);
78
-
79
- useLayoutEffect(callback, [callback]);
80
-
81
- useResizeObserver<Container>(containerRef ?? containerTemporalRef, callback);
82
- useResizeObserver<Modal>(modalRef, callback);
83
- useEventListener('resize', callback);
84
- useEventListener('scroll', callback, modalRef);
85
- };
@@ -1,64 +0,0 @@
1
- import React, { useCallback, useEffect, useLayoutEffect, useMemo } from 'react';
2
-
3
- export enum ModalState {
4
- OPENING = 'OPENING',
5
- OPEN = 'OPEN',
6
- CLOSING = 'CLOSING',
7
- CLOSED = 'CLOSED',
8
- }
9
-
10
- export type UseModalTransitionParams = {
11
- transitionDuration?: number;
12
- isOpen: boolean;
13
- };
14
-
15
- export const useModalTransition = ({ transitionDuration = 0, isOpen }: UseModalTransitionParams) => {
16
- const [modalState, setModalState] = React.useState<ModalState>(ModalState.CLOSED);
17
-
18
- const isVisible = useMemo(() => {
19
- return modalState !== ModalState.CLOSED;
20
- }, [modalState]);
21
-
22
- useEffect(() => {
23
- document.documentElement.style.overflow = isVisible ? 'hidden' : 'auto';
24
- }, [isVisible]);
25
-
26
- const closeModal = useCallback(() => {
27
- if ([ModalState.OPENING, ModalState.OPEN].includes(modalState)) {
28
- if (transitionDuration > 0) {
29
- setModalState(ModalState.CLOSING);
30
- setTimeout(() => {
31
- setModalState(ModalState.CLOSED);
32
- }, transitionDuration);
33
- } else {
34
- setModalState(ModalState.CLOSED);
35
- }
36
- }
37
- }, [modalState, transitionDuration]);
38
-
39
- const openModal = useCallback(() => {
40
- if ([ModalState.CLOSING, ModalState.CLOSED].includes(modalState)) {
41
- if (transitionDuration > 0) {
42
- setModalState(ModalState.OPENING);
43
- setTimeout(() => {
44
- setModalState(ModalState.OPEN);
45
- }, transitionDuration);
46
- } else {
47
- setModalState(ModalState.OPEN);
48
- }
49
- }
50
- }, [modalState, transitionDuration]);
51
-
52
- useLayoutEffect(() => {
53
- if (modalState === ModalState.CLOSED && isOpen) {
54
- openModal();
55
- } else if (modalState === ModalState.OPEN && !isOpen) {
56
- closeModal();
57
- }
58
- }, [isOpen, openModal, closeModal, modalState]);
59
-
60
- return {
61
- isVisible,
62
- modalState,
63
- };
64
- };
@@ -1,21 +0,0 @@
1
- import { useRef, useState } from 'react';
2
-
3
- export const useModal = <T extends HTMLElement>() => {
4
- const containerRef = useRef<T>(null);
5
- const [isOpen, setIsOpen] = useState(false);
6
-
7
- const openModal = () => {
8
- setIsOpen(true);
9
- };
10
-
11
- const closeModal = () => {
12
- setIsOpen(false);
13
- };
14
-
15
- return {
16
- containerRef,
17
- isOpen,
18
- openModal,
19
- closeModal,
20
- };
21
- };
@@ -1,64 +0,0 @@
1
- import React, { useRef, useState } from 'react';
2
-
3
- import { useEventListener } from './use-event-listener';
4
-
5
- type MousePosition = {
6
- x: null | number;
7
- y: null | number;
8
- elementX: number | null;
9
- elementY: number | null;
10
- elementPositionX: number | null;
11
- elementPositionY: number | null;
12
- };
13
-
14
- const getMousePosition = (domRect: DOMRect, e: MouseEvent) => {
15
- const { left, top } = domRect;
16
- const containerPositionX = left + window.scrollX;
17
- const containerPositionY = top + window.scrollY;
18
- const containerX = e.pageX - containerPositionX;
19
- const containerY = e.pageY - containerPositionY;
20
-
21
- return {
22
- x: e.pageX,
23
- y: e.pageY,
24
- elementX: containerX,
25
- elementY: containerY,
26
- elementPositionX: containerPositionX,
27
- elementPositionY: containerPositionY,
28
- };
29
- };
30
-
31
- export const useMousePosition = (containerRef?: React.RefObject<HTMLElement | SVGElement | null>) => {
32
- const ref = useRef<HTMLElement>(null);
33
- const [position, setPosition] = useState<MousePosition>({
34
- x: null,
35
- y: null,
36
- elementX: null,
37
- elementY: null,
38
- elementPositionX: null,
39
- elementPositionY: null,
40
- });
41
-
42
- const mouseMove = (e: MouseEvent) => {
43
- const { clientX, clientY } = e;
44
- setPosition(prev => ({ ...prev, x: clientX, y: clientY }));
45
-
46
- if (containerRef?.current instanceof Element) {
47
- const newState = getMousePosition(containerRef.current.getBoundingClientRect(), e);
48
- setPosition(prev => ({
49
- ...prev,
50
- ...newState,
51
- }));
52
- } else if (ref.current instanceof Element) {
53
- const newState = getMousePosition(ref.current.getBoundingClientRect(), e);
54
- setPosition(prev => ({
55
- ...prev,
56
- ...newState,
57
- }));
58
- }
59
- };
60
-
61
- useEventListener('mousemove', mouseMove);
62
-
63
- return { ...position, ref };
64
- };
@@ -1,12 +0,0 @@
1
- import { useState } from 'react';
2
-
3
- import { useEventListener } from './use-event-listener';
4
-
5
- export const useOnlineStatus = () => {
6
- const [online, setOnline] = useState(navigator.onLine);
7
-
8
- useEventListener('online', () => setOnline(navigator.onLine));
9
- useEventListener('offline', () => setOnline(navigator.onLine));
10
-
11
- return online;
12
- };
@@ -1,11 +0,0 @@
1
- import { useEffect, useRef } from 'react';
2
-
3
- export const useRenderCount = () => {
4
- const count = useRef(1);
5
-
6
- useEffect(() => {
7
- count.current++;
8
- });
9
-
10
- return count.current;
11
- };
@@ -1,18 +0,0 @@
1
- import { RefObject, useEffect } from 'react';
2
-
3
- export const useResizeObserver = <T extends Element>(
4
- ref: RefObject<T> | Array<RefObject<T>>,
5
- callback: ResizeObserverCallback,
6
- ) => {
7
- useEffect(() => {
8
- const refs = Array.isArray(ref) ? ref : [ref];
9
-
10
- const observer = new ResizeObserver(callback);
11
-
12
- refs.forEach(r => r.current && observer.observe(r.current));
13
-
14
- return () => {
15
- observer.disconnect();
16
- };
17
- }, [ref, callback]);
18
- };
@@ -1,22 +0,0 @@
1
- import React, { useCallback, useLayoutEffect, useRef } from 'react';
2
-
3
- export const useSafeDispatch = <T>(dispatch: React.Dispatch<T>): ((action: T) => void) => {
4
- const mounted = useRef(false);
5
-
6
- useLayoutEffect(() => {
7
- mounted.current = true;
8
-
9
- return () => {
10
- mounted.current = false;
11
- };
12
- }, []);
13
-
14
- return useCallback(
15
- (...args: Parameters<React.Dispatch<T>>) => {
16
- if (mounted.current) {
17
- dispatch(...args);
18
- }
19
- },
20
- [dispatch],
21
- );
22
- };
@@ -1,31 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react';
2
-
3
- export const useScroll = () => {
4
- const ref = useRef<HTMLElement>(null);
5
- const [position, setPosition] = useState([0, 0]);
6
-
7
- useEffect(() => {
8
- const element = ref.current;
9
-
10
- const handleScroll = () => {
11
- if (!element) return;
12
-
13
- setPosition([element.scrollLeft, element.scrollTop]);
14
- };
15
-
16
- if (element) {
17
- element.addEventListener('scroll', handleScroll);
18
- }
19
-
20
- return () => {
21
- if (element) {
22
- element.removeEventListener('scroll', handleScroll);
23
- }
24
- };
25
- }, []);
26
-
27
- return {
28
- ref,
29
- position,
30
- };
31
- };
@@ -1,22 +0,0 @@
1
- import { Dispatch, SetStateAction, useEffect, useState } from 'react';
2
-
3
- function useStateHistory<T>(initialState: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Array<T>];
4
-
5
- function useStateHistory<T = undefined>(): [T | undefined, Dispatch<SetStateAction<T | undefined>>, Array<T>];
6
-
7
- function useStateHistory<T = undefined>(
8
- initialState?: T | (() => T) | undefined,
9
- ): [T | undefined, Dispatch<SetStateAction<T | undefined>>, Array<T>] {
10
- const [state, setState] = useState<T | undefined>(initialState);
11
- const [history, setHistory] = useState<Array<T>>([]);
12
-
13
- useEffect(() => {
14
- if (state !== undefined) {
15
- setHistory(prevHistory => [...prevHistory, state]);
16
- }
17
- }, [state]);
18
-
19
- return [state, setState, history];
20
- }
21
-
22
- export { useStateHistory };
@@ -1,14 +0,0 @@
1
- import { useCallback, useState } from 'react';
2
-
3
- export const useToggleValues = <T>(values: Array<T>, defaultIndex: number = 0): [T, (index?: number) => void] => {
4
- const [index, setIndex] = useState(defaultIndex);
5
-
6
- const toggle = useCallback(
7
- (index?: number) => {
8
- setIndex(index !== undefined ? index : prev => (prev + 1) % values.length);
9
- },
10
- [values.length],
11
- );
12
-
13
- return [values[index], toggle];
14
- };
@@ -1,11 +0,0 @@
1
- import { useCallback, useState } from 'react';
2
-
3
- export const useToggle = (defaultValue: boolean = false) => {
4
- const [value, setValue] = useState<boolean>(defaultValue);
5
-
6
- const toggle = useCallback(() => {
7
- setValue(prev => !prev);
8
- }, []);
9
-
10
- return [value, toggle, setValue];
11
- };
@@ -1,38 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- import { useEventListener } from './use-event-listener';
4
-
5
- enum ScreenOrientation {
6
- PORTRAIT = 'portrait',
7
- LANDSCAPE = 'landscape',
8
- }
9
-
10
- type UseViewportData = {
11
- width: number;
12
- height: number;
13
- orientation: ScreenOrientation;
14
- };
15
-
16
- export const useViewport = (): UseViewportData => {
17
- const getData = (): UseViewportData => {
18
- const { innerWidth, innerHeight } = window;
19
-
20
- return {
21
- width: innerWidth,
22
- height: innerHeight,
23
- orientation: innerWidth > innerHeight ? ScreenOrientation.LANDSCAPE : ScreenOrientation.PORTRAIT,
24
- };
25
- };
26
-
27
- const [data, setData] = useState<UseViewportData>(getData);
28
-
29
- useEventListener('resize', () => {
30
- setData(getData());
31
- });
32
-
33
- useEffect(() => {
34
- setData(getData());
35
- }, []);
36
-
37
- return data;
38
- };