polpo 0.1.0
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.
- package/.eslintrc.cjs +9 -0
- package/.storybook/decorators.tsx +61 -0
- package/.storybook/main.ts +47 -0
- package/.storybook/manager-head.html +2 -0
- package/.storybook/manager.ts +7 -0
- package/.storybook/preview-head.html +2 -0
- package/.storybook/preview.ts +38 -0
- package/.storybook/theme.ts +47 -0
- package/.turbo/daemon/f5c5c8fb195b01d0-turbo.log.2024-05-26 +0 -0
- package/.turbo/turbo-build$colon$watch.log +96 -0
- package/.turbo/turbo-build-storybook.log +0 -0
- package/.turbo/turbo-build.log +77 -0
- package/.turbo/turbo-lint$colon$fix.log +2 -0
- package/.turbo/turbo-lint.log +4 -0
- package/README.md +68 -0
- package/dist/chunk-M4KRSYE7.js +3 -0
- package/dist/chunk-M4KRSYE7.js.map +1 -0
- package/dist/chunk-U5XSMSKZ.js +3 -0
- package/dist/chunk-U5XSMSKZ.js.map +1 -0
- package/dist/get-modal-position-DPftPoU2.d.cts +28 -0
- package/dist/get-modal-position-DPftPoU2.d.ts +28 -0
- package/dist/helpers.cjs +3 -0
- package/dist/helpers.cjs.map +1 -0
- package/dist/helpers.d.cts +15 -0
- package/dist/helpers.d.ts +15 -0
- package/dist/helpers.js +3 -0
- package/dist/helpers.js.map +1 -0
- package/dist/hooks.cjs +3 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.cts +121 -0
- package/dist/hooks.d.ts +121 -0
- package/dist/hooks.js +3 -0
- package/dist/hooks.js.map +1 -0
- package/dist/ui.cjs +1987 -0
- package/dist/ui.cjs.map +1 -0
- package/dist/ui.d.cts +3932 -0
- package/dist/ui.d.ts +3932 -0
- package/dist/ui.js +1987 -0
- package/dist/ui.js.map +1 -0
- package/package.json +98 -0
- package/src/components/accordion/accordion-item.stories.tsx +128 -0
- package/src/components/accordion/accordion-item.tsx +119 -0
- package/src/components/accordion/accordion.stories.tsx +74 -0
- package/src/components/accordion/accordion.style.ts +42 -0
- package/src/components/accordion/accordion.tsx +56 -0
- package/src/components/accordion/index.ts +2 -0
- package/src/components/buttons/button/button.stories.tsx +103 -0
- package/src/components/buttons/button/button.style.ts +147 -0
- package/src/components/buttons/button/button.tsx +119 -0
- package/src/components/buttons/button/index.ts +1 -0
- package/src/components/buttons/index.ts +1 -0
- package/src/components/cards/flip-card/flip-card.stories.tsx +61 -0
- package/src/components/cards/flip-card/flip-card.style.ts +45 -0
- package/src/components/cards/flip-card/flip-card.tsx +55 -0
- package/src/components/cards/flip-card/index.ts +1 -0
- package/src/components/cards/hover-card/hover-card.stories.tsx +45 -0
- package/src/components/cards/hover-card/hover-card.style.ts +13 -0
- package/src/components/cards/hover-card/hover-card.tsx +71 -0
- package/src/components/cards/hover-card/index.ts +1 -0
- package/src/components/cards/index.ts +3 -0
- package/src/components/cards/slide-card/index.ts +1 -0
- package/src/components/cards/slide-card/slide-card.stories.tsx +47 -0
- package/src/components/cards/slide-card/slide-card.tsx +42 -0
- package/src/components/form/checkbox/checkbox.stories.tsx +34 -0
- package/src/components/form/checkbox/checkbox.style.ts +75 -0
- package/src/components/form/checkbox/checkbox.tsx +76 -0
- package/src/components/form/checkbox/index.ts +1 -0
- package/src/components/form/controller/controller.tsx +42 -0
- package/src/components/form/controller/index.ts +1 -0
- package/src/components/form/date-picker/date-picker.stories.tsx +38 -0
- package/src/components/form/date-picker/date-picker.tsx +67 -0
- package/src/components/form/date-picker/index.ts +1 -0
- package/src/components/form/field/field.stories.tsx +49 -0
- package/src/components/form/field/field.style.ts +79 -0
- package/src/components/form/field/field.tsx +83 -0
- package/src/components/form/field/field.types.ts +28 -0
- package/src/components/form/field/index.ts +2 -0
- package/src/components/form/form.stories.types.tsx +50 -0
- package/src/components/form/form.types.ts +37 -0
- package/src/components/form/index.ts +14 -0
- package/src/components/form/input/index.ts +1 -0
- package/src/components/form/input/input.stories.tsx +41 -0
- package/src/components/form/input/input.tsx +73 -0
- package/src/components/form/input-color/index.ts +1 -0
- package/src/components/form/input-color/input-color.stories.tsx +46 -0
- package/src/components/form/input-color/input-color.style.ts +93 -0
- package/src/components/form/input-color/input-color.tsx +159 -0
- package/src/components/form/input-file/index.ts +1 -0
- package/src/components/form/input-file/input-file.stories.tsx +40 -0
- package/src/components/form/input-file/input-file.style.ts +143 -0
- package/src/components/form/input-file/input-file.tsx +214 -0
- package/src/components/form/input-password/index.ts +1 -0
- package/src/components/form/input-password/input-password.stories.tsx +37 -0
- package/src/components/form/input-password/input-password.tsx +83 -0
- package/src/components/form/radio/index.ts +1 -0
- package/src/components/form/radio/radio.stories.tsx +43 -0
- package/src/components/form/radio/radio.style.ts +58 -0
- package/src/components/form/radio/radio.tsx +76 -0
- package/src/components/form/select/index.ts +1 -0
- package/src/components/form/select/options.tsx +140 -0
- package/src/components/form/select/select-option.tsx +84 -0
- package/src/components/form/select/select.stories.tsx +89 -0
- package/src/components/form/select/select.style.ts +164 -0
- package/src/components/form/select/select.tsx +327 -0
- package/src/components/form/select/select.types.ts +93 -0
- package/src/components/form/slider/index.ts +1 -0
- package/src/components/form/slider/slider.stories.tsx +40 -0
- package/src/components/form/slider/slider.style.ts +90 -0
- package/src/components/form/slider/slider.tsx +108 -0
- package/src/components/form/switch/index.ts +1 -0
- package/src/components/form/switch/switch.stories.tsx +38 -0
- package/src/components/form/switch/switch.style.ts +120 -0
- package/src/components/form/switch/switch.tsx +111 -0
- package/src/components/form/textarea/index.ts +1 -0
- package/src/components/form/textarea/textarea.stories.tsx +43 -0
- package/src/components/form/textarea/textarea.style.ts +7 -0
- package/src/components/form/textarea/textarea.tsx +76 -0
- package/src/components/icon/icon.stories.tsx +63 -0
- package/src/components/icon/icon.tsx +64 -0
- package/src/components/icon/icons/index.ts +18 -0
- package/src/components/icon/icons/object.tsx +482 -0
- package/src/components/icon/icons/social.tsx +72 -0
- package/src/components/icon/icons/symbol.tsx +776 -0
- package/src/components/icon/index.ts +5 -0
- package/src/components/image/image.stories.tsx +25 -0
- package/src/components/image/image.tsx +7 -0
- package/src/components/image/index.ts +1 -0
- package/src/components/index.ts +16 -0
- package/src/components/infinity-scroll/index.ts +1 -0
- package/src/components/infinity-scroll/infinity-scroll.stories.tsx +75 -0
- package/src/components/infinity-scroll/infinity-scroll.style.ts +30 -0
- package/src/components/infinity-scroll/infinity-scroll.tsx +56 -0
- package/src/components/line/index.ts +1 -0
- package/src/components/line/line.stories.tsx +67 -0
- package/src/components/line/line.style.ts +57 -0
- package/src/components/line/line.tsx +76 -0
- package/src/components/loaders/index.ts +1 -0
- package/src/components/loaders/simple-loader/index.ts +1 -0
- package/src/components/loaders/simple-loader/simple-loader.stories.tsx +21 -0
- package/src/components/loaders/simple-loader/simple-loader.style.ts +13 -0
- package/src/components/loaders/simple-loader/simple-loader.tsx +15 -0
- package/src/components/modals/action-modal/action-modal.stories.tsx +134 -0
- package/src/components/modals/action-modal/action-modal.style.ts +129 -0
- package/src/components/modals/action-modal/action-modal.tsx +150 -0
- package/src/components/modals/action-modal/index.ts +1 -0
- package/src/components/modals/aside-modal/aside-modal.stories.tsx +82 -0
- package/src/components/modals/aside-modal/aside-modal.style.ts +108 -0
- package/src/components/modals/aside-modal/aside-modal.tsx +66 -0
- package/src/components/modals/aside-modal/index.ts +1 -0
- package/src/components/modals/confirmation-modal/confirmation-modal.stories.tsx +50 -0
- package/src/components/modals/confirmation-modal/confirmation-modal.style.ts +17 -0
- package/src/components/modals/confirmation-modal/confirmation-modal.tsx +43 -0
- package/src/components/modals/confirmation-modal/index.ts +1 -0
- package/src/components/modals/index.ts +4 -0
- package/src/components/modals/modal/index.ts +1 -0
- package/src/components/modals/modal/modal.style.ts +10 -0
- package/src/components/modals/modal/modal.tsx +132 -0
- package/src/components/ripple/index.ts +1 -0
- package/src/components/ripple/ripple.stories.tsx +38 -0
- package/src/components/ripple/ripple.style.ts +33 -0
- package/src/components/ripple/ripple.tsx +63 -0
- package/src/components/smart-table/index.ts +1 -0
- package/src/components/smart-table/smart-table.column.tsx +63 -0
- package/src/components/smart-table/smart-table.helpers.tsx +59 -0
- package/src/components/smart-table/smart-table.hooks.ts +27 -0
- package/src/components/smart-table/smart-table.row.tsx +29 -0
- package/src/components/smart-table/smart-table.stories.tsx +301 -0
- package/src/components/smart-table/smart-table.style.ts +102 -0
- package/src/components/smart-table/smart-table.tsx +112 -0
- package/src/components/smart-table/smart-table.types.ts +41 -0
- package/src/components/tabs/index.ts +1 -0
- package/src/components/tabs/tabs-container.stories.tsx +159 -0
- package/src/components/tabs/tabs-list.tsx +131 -0
- package/src/components/tabs/tabs.stories.tsx +68 -0
- package/src/components/tabs/tabs.style.ts +132 -0
- package/src/components/tabs/tabs.tsx +117 -0
- package/src/components/tag/index.ts +1 -0
- package/src/components/tag/tag.stories.tsx +49 -0
- package/src/components/tag/tag.style.ts +24 -0
- package/src/components/tag/tag.tsx +44 -0
- package/src/components/tooltips/click-to-copy/click-to-copy.stories.tsx +39 -0
- package/src/components/tooltips/click-to-copy/click-to-copy.tsx +41 -0
- package/src/components/tooltips/click-to-copy/index.ts +1 -0
- package/src/components/tooltips/index.ts +2 -0
- package/src/components/tooltips/tooltip/index.ts +1 -0
- package/src/components/tooltips/tooltip/tooltip.stories.tsx +35 -0
- package/src/components/tooltips/tooltip/tooltip.style.ts +62 -0
- package/src/components/tooltips/tooltip/tooltip.tsx +45 -0
- package/src/components/typography/index.ts +2 -0
- package/src/components/typography/typography.constants.ts +43 -0
- package/src/components/typography/typography.stories.tsx +106 -0
- package/src/components/typography/typography.style.ts +76 -0
- package/src/components/typography/typography.tsx +79 -0
- package/src/contexts/fetch-context/fetch-context.tsx +114 -0
- package/src/contexts/fetch-context/index.ts +1 -0
- package/src/contexts/form-context/form-context.tsx +43 -0
- package/src/contexts/form-context/index.ts +1 -0
- package/src/contexts/index.ts +3 -0
- package/src/contexts/theme-context/index.ts +3 -0
- package/src/contexts/theme-context/theme-context.tsx +158 -0
- package/src/contexts/theme-context/theme.animations.ts +180 -0
- package/src/contexts/theme-context/theme.defaults.ts +205 -0
- package/src/contexts/theme-context/theme.style.ts +78 -0
- package/src/contexts/theme-context/themes.ts +96 -0
- package/src/core/http-client.d.ts +11 -0
- package/src/core/http-client.d.ts.map +1 -0
- package/src/core/http-client.ts +47 -0
- package/src/core/index.d.ts +2 -0
- package/src/core/index.d.ts.map +1 -0
- package/src/core/index.ts +1 -0
- package/src/core/variants/color.ts +36 -0
- package/src/core/variants/index.ts +3 -0
- package/src/core/variants/radius.ts +56 -0
- package/src/core/variants/size.ts +44 -0
- package/src/helpers/format-bytes.ts +11 -0
- package/src/helpers/format-dates.ts +11 -0
- package/src/helpers/get-modal-position.ts +66 -0
- package/src/helpers/index.ts +4 -0
- package/src/helpers/text/index.ts +1 -0
- package/src/helpers/text/to-capitalize.ts +17 -0
- package/src/hooks/index.ts +23 -0
- package/src/hooks/use-async.ts +88 -0
- package/src/hooks/use-classnames.ts +13 -0
- package/src/hooks/use-constant.ts +3 -0
- package/src/hooks/use-debounce.ts +15 -0
- package/src/hooks/use-dimensions.ts +22 -0
- package/src/hooks/use-event-listener.ts +71 -0
- package/src/hooks/use-file-reader.ts +69 -0
- package/src/hooks/use-hover.ts +17 -0
- package/src/hooks/use-in-view.ts +20 -0
- package/src/hooks/use-input-handlers.ts +49 -0
- package/src/hooks/use-media-query.ts +25 -0
- package/src/hooks/use-modal-in-container.ts +94 -0
- package/src/hooks/use-mouse-position.ts +16 -0
- package/src/hooks/use-observer.ts +18 -0
- package/src/hooks/use-on-click-outside-ref.ts +17 -0
- package/src/hooks/use-online-status.ts +12 -0
- package/src/hooks/use-render-count.ts +11 -0
- package/src/hooks/use-safe-dispatch.ts +22 -0
- package/src/hooks/use-scroll.ts +31 -0
- package/src/hooks/use-state-history.ts +22 -0
- package/src/hooks/use-toggle-values.ts +14 -0
- package/src/hooks/use-toggle.ts +11 -0
- package/src/hooks/use-viewport.ts +38 -0
- package/src/index.ts +5 -0
- package/src/layouts/flex/flex.tsx +75 -0
- package/src/layouts/flex/index.ts +1 -0
- package/src/layouts/grid/grid.tsx +86 -0
- package/src/layouts/grid/index.ts +1 -0
- package/src/layouts/index.ts +3 -0
- package/src/layouts/section-layout/index.ts +1 -0
- package/src/layouts/section-layout/section-layout.stories.tsx +55 -0
- package/src/layouts/section-layout/section-layout.style.ts +21 -0
- package/src/layouts/section-layout/section-layout.tsx +46 -0
- package/src/stories/GettingStarted.mdx +66 -0
- package/src/types/generics.ts +68 -0
- package/src/types/index.ts +1 -0
- package/svg/Name=airplane, Category=object.svg +3 -0
- package/svg/Name=arrow-circle, Category=symbol.svg +3 -0
- package/svg/Name=arrow-down, Category=symbol.svg +3 -0
- package/svg/Name=arrow-left, Category=symbol.svg +3 -0
- package/svg/Name=arrow-right, Category=symbol.svg +3 -0
- package/svg/Name=arrow-up, Category=symbol.svg +3 -0
- package/svg/Name=bell, Category=object.svg +3 -0
- package/svg/Name=bicycle, Category=object.svg +3 -0
- package/svg/Name=book-open, Category=object.svg +3 -0
- package/svg/Name=book-solid, Category=object.svg +6 -0
- package/svg/Name=box-shadow, Category=symbol.svg +5 -0
- package/svg/Name=calendar, Category=object.svg +3 -0
- package/svg/Name=camera, Category=object.svg +3 -0
- package/svg/Name=caret-down, Category=symbol.svg +3 -0
- package/svg/Name=caret-left, Category=symbol.svg +3 -0
- package/svg/Name=caret-right, Category=symbol.svg +3 -0
- package/svg/Name=caret-up, Category=symbol.svg +3 -0
- package/svg/Name=checkmark, Category=symbol.svg +3 -0
- package/svg/Name=clean-computer, Category=object.svg +10 -0
- package/svg/Name=codepen, Category=social.svg +3 -0
- package/svg/Name=creative, Category=symbol.svg +5 -0
- package/svg/Name=cross, Category=symbol.svg +4 -0
- package/svg/Name=crossed-flags, Category=object.svg +4 -0
- package/svg/Name=cv, Category=symbol.svg +5 -0
- package/svg/Name=design-ui, Category=symbol.svg +9 -0
- package/svg/Name=document, Category=object.svg +3 -0
- package/svg/Name=door-closed, Category=object.svg +3 -0
- package/svg/Name=door-open, Category=object.svg +3 -0
- package/svg/Name=double-caret-down, Category=symbol.svg +4 -0
- package/svg/Name=double-caret-left, Category=symbol.svg +4 -0
- package/svg/Name=double-caret-righ, Category=symbol.svg +4 -0
- package/svg/Name=double-caret-up, Category=symbol.svg +4 -0
- package/svg/Name=download, Category=symbol.svg +5 -0
- package/svg/Name=dropper, Category=object.svg +5 -0
- package/svg/Name=envelope, Category=object.svg +3 -0
- package/svg/Name=exclamation-close, Category=symbol.svg +4 -0
- package/svg/Name=exclamation-open, Category=symbol.svg +4 -0
- package/svg/Name=external-link, Category=symbol.svg +3 -0
- package/svg/Name=eye, Category=object.svg +4 -0
- package/svg/Name=eye-hidden, Category=object.svg +7 -0
- package/svg/Name=facebook, Category=social.svg +3 -0
- package/svg/Name=form, Category=symbol.svg +8 -0
- package/svg/Name=game-control, Category=object.svg +3 -0
- package/svg/Name=gear, Category=object.svg +3 -0
- package/svg/Name=github, Category=social.svg +3 -0
- package/svg/Name=house, Category=object.svg +3 -0
- package/svg/Name=hyphen, Category=symbol.svg +3 -0
- package/svg/Name=info, Category=symbol.svg +3 -0
- package/svg/Name=instagram, Category=social.svg +3 -0
- package/svg/Name=link, Category=symbol.svg +5 -0
- package/svg/Name=linkedin, Category=social.svg +3 -0
- package/svg/Name=magnifying-glass, Category=object.svg +3 -0
- package/svg/Name=message, Category=symbol.svg +4 -0
- package/svg/Name=moon, Category=object.svg +5 -0
- package/svg/Name=order-list, Category=symbol.svg +7 -0
- package/svg/Name=pencil, Category=object.svg +3 -0
- package/svg/Name=pin-location, Category=symbol.svg +3 -0
- package/svg/Name=question-mark-close, Category=symbol.svg +3 -0
- package/svg/Name=question-mark-open, Category=symbol.svg +3 -0
- package/svg/Name=share, Category=symbol.svg +5 -0
- package/svg/Name=spinner, Category=symbol.svg +9 -0
- package/svg/Name=star, Category=object.svg +3 -0
- package/svg/Name=star-empty, Category=object.svg +3 -0
- package/svg/Name=sun, Category=object.svg +11 -0
- package/svg/Name=text-shadow, Category=symbol.svg +4 -0
- package/svg/Name=thinking, Category=symbol.svg +3 -0
- package/svg/Name=trash-can, Category=object.svg +4 -0
- package/svg/Name=upload, Category=symbol.svg +5 -0
- package/svg/Name=user, Category=symbol.svg +4 -0
- package/svg/Name=warning, Category=symbol.svg +5 -0
- package/svg/Name=whatsapp, Category=social.svg +3 -0
- package/svgconfig.json +4 -0
- package/tsconfig.json +14 -0
- package/tsup.config.cjs +21 -0
- package/vite.config.ts +13 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare enum POSITION {
|
|
2
|
+
top = "top",
|
|
3
|
+
left = "left",
|
|
4
|
+
right = "right",
|
|
5
|
+
bottom = "bottom"
|
|
6
|
+
}
|
|
7
|
+
type PositionObject = {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
top: number;
|
|
11
|
+
left: number;
|
|
12
|
+
w: number;
|
|
13
|
+
h: number;
|
|
14
|
+
};
|
|
15
|
+
type GetModalPositionParams = {
|
|
16
|
+
c: PositionObject;
|
|
17
|
+
m: PositionObject;
|
|
18
|
+
offset: number;
|
|
19
|
+
windowOffset: number;
|
|
20
|
+
position?: `${POSITION}`;
|
|
21
|
+
distancePercentage?: number;
|
|
22
|
+
};
|
|
23
|
+
declare const getModalPosition: ({ c, m, offset, windowOffset, position, distancePercentage, }: GetModalPositionParams) => {
|
|
24
|
+
left: number;
|
|
25
|
+
top: number;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { type GetModalPositionParams as G, POSITION as P, type PositionObject as a, getModalPosition as g };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare enum POSITION {
|
|
2
|
+
top = "top",
|
|
3
|
+
left = "left",
|
|
4
|
+
right = "right",
|
|
5
|
+
bottom = "bottom"
|
|
6
|
+
}
|
|
7
|
+
type PositionObject = {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
top: number;
|
|
11
|
+
left: number;
|
|
12
|
+
w: number;
|
|
13
|
+
h: number;
|
|
14
|
+
};
|
|
15
|
+
type GetModalPositionParams = {
|
|
16
|
+
c: PositionObject;
|
|
17
|
+
m: PositionObject;
|
|
18
|
+
offset: number;
|
|
19
|
+
windowOffset: number;
|
|
20
|
+
position?: `${POSITION}`;
|
|
21
|
+
distancePercentage?: number;
|
|
22
|
+
};
|
|
23
|
+
declare const getModalPosition: ({ c, m, offset, windowOffset, position, distancePercentage, }: GetModalPositionParams) => {
|
|
24
|
+
left: number;
|
|
25
|
+
top: number;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { type GetModalPositionParams as G, POSITION as P, type PositionObject as a, getModalPosition as g };
|
package/dist/helpers.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";var l=Object.create;var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var f=(t,o)=>{for(var r in o)p(t,r,{get:o[r],enumerable:!0})},m=(t,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of b(o))!M.call(t,e)&&e!==r&&p(t,e,{get:()=>o[e],enumerable:!(n=u(o,e))||n.enumerable});return t};var g=(t,o,r)=>(r=t!=null?l(x(t)):{},m(o||!t||!t.__esModule?p(r,"default",{value:t,enumerable:!0}):r,t)),B=t=>m(p({},"__esModule",{value:!0}),t);var k={};f(k,{POSITION:()=>w,formatBytes:()=>y,formatDate:()=>P,getModalPosition:()=>d,timeBetween:()=>Y,toCapitalize:()=>j});module.exports=B(k);var y=(t,o=2)=>{if(t===0)return"0 Bytes";let r=1e3,n=o<0?0:o,e=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],a=Math.floor(Math.log(t)/Math.log(r));return parseFloat((t/Math.pow(r,a)).toFixed(n))+" "+e[a]};var h=g(require("moment/moment"),1),P=t=>Date.parse(t)?(0,h.default)(t,"YYYY-MM-DD").format("MMM YYYY"):t,Y=(t,o)=>{let r=(0,h.default)(t);return Date.parse(o)?(0,h.default)(o).from(r,!0):r.fromNow()};var w=(e=>(e.top="top",e.left="left",e.right="right",e.bottom="bottom",e))(w||{}),d=({c:t,m:o,offset:r,windowOffset:n,position:e,distancePercentage:a=50})=>{let i=t.y+t.h+r,s=t.x-(o.w-t.w);switch(e){case"top":i=t.y-o.h-r,s=t.x-(o.w-t.w)*(a/100);break;case"bottom":i=t.y+t.h+r,s=t.x-(o.w-t.w)*(a/100);break;case"left":i=t.y-(o.h-t.h)*(a/100),s=t.x-o.w-r;break;case"right":i=t.y-(o.h-t.h)*(a/100),s=t.x+t.w+r;break}return{left:s+o.w+n>window.innerWidth?t.left-(s+o.w-window.innerWidth)-n:s,top:i+o.h+n>window.innerHeight?t.top-(i+o.h-window.innerHeight)-n:i}};var j=(t,o={})=>{let{separator:r=" ",variant:n="each-word",join:e=r}=o;return n==="first-word"?t[0].toUpperCase()+t.slice(1):t.split(r).map(i=>i[0].toUpperCase()+i.slice(1)).join(e)};0&&(module.exports={POSITION,formatBytes,formatDate,getModalPosition,timeBetween,toCapitalize});
|
|
3
|
+
//# sourceMappingURL=helpers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers/index.ts","../src/helpers/format-bytes.ts","../src/helpers/format-dates.ts","../src/helpers/get-modal-position.ts","../src/helpers/text/to-capitalize.ts"],"sourcesContent":["export * from './format-bytes';\nexport * from './format-dates';\nexport * from './get-modal-position';\nexport * from './text';\n","export const formatBytes = (bytes: number, decimals = 2) => {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1000;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n};\n","import moment from 'moment/moment';\n\nexport const formatDate = (date: string) => {\n return Date.parse(date) ? moment(date, 'YYYY-MM-DD').format('MMM YYYY') : date;\n};\n\nexport const timeBetween = (date_start: string, date_end: string) => {\n const momentStart = moment(date_start);\n\n return Date.parse(date_end) ? moment(date_end).from(momentStart, true) : momentStart.fromNow();\n};\n","export enum POSITION {\n top = 'top',\n left = 'left',\n right = 'right',\n bottom = 'bottom',\n}\n\nexport type PositionObject = {\n x: number;\n y: number;\n top: number;\n left: number;\n w: number;\n h: number;\n};\n\nexport type GetModalPositionParams = {\n c: PositionObject;\n m: PositionObject;\n offset: number;\n windowOffset: number;\n position?: `${POSITION}`;\n distancePercentage?: number;\n};\n\nexport const getModalPosition = ({\n c,\n m,\n offset,\n windowOffset,\n position,\n distancePercentage = 50,\n}: GetModalPositionParams) => {\n // Default bottom\n let top = c.y + c.h + offset;\n let left = c.x - (m.w - c.w);\n\n switch (position) {\n case POSITION.top:\n top = c.y - m.h - offset;\n left = c.x - (m.w - c.w) * (distancePercentage / 100);\n\n break;\n case POSITION.bottom:\n top = c.y + c.h + offset;\n left = c.x - (m.w - c.w) * (distancePercentage / 100);\n\n break;\n case POSITION.left:\n top = c.y - (m.h - c.h) * (distancePercentage / 100);\n left = c.x - m.w - offset;\n\n break;\n case POSITION.right:\n top = c.y - (m.h - c.h) * (distancePercentage / 100);\n left = c.x + c.w + offset;\n\n break;\n }\n\n return {\n left:\n left + m.w + windowOffset > window.innerWidth ? c.left - (left + m.w - window.innerWidth) - windowOffset : left,\n top: top + m.h + windowOffset > window.innerHeight ? c.top - (top + m.h - window.innerHeight) - windowOffset : top,\n };\n};\n","export type ToCapitalizeOptions = Partial<{\n separator: string;\n join: string;\n variant: 'first-word' | 'each-word';\n}>;\n\nexport const toCapitalize = (text: string, options: ToCapitalizeOptions = {}) => {\n const { separator = ' ', variant = 'each-word', join = separator } = options;\n\n if (variant === 'first-word') {\n return text[0].toUpperCase() + text.slice(1);\n }\n\n const words = text.split(separator);\n\n return words.map(word => word[0].toUpperCase() + word.slice(1)).join(join);\n};\n"],"mappings":";0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,gBAAAC,EAAA,eAAAC,EAAA,qBAAAC,EAAA,gBAAAC,EAAA,iBAAAC,IAAA,eAAAC,EAAAR,GCAO,IAAMS,EAAc,CAACC,EAAeC,EAAW,IAAM,CAC1D,GAAID,IAAU,EAAG,MAAO,UAExB,IAAME,EAAI,IACJC,EAAKF,EAAW,EAAI,EAAIA,EACxBG,EAAQ,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAEhEC,EAAI,KAAK,MAAM,KAAK,IAAIL,CAAK,EAAI,KAAK,IAAIE,CAAC,CAAC,EAElD,OAAO,YAAYF,EAAQ,KAAK,IAAIE,EAAGG,CAAC,GAAG,QAAQF,CAAE,CAAC,EAAI,IAAMC,EAAMC,CAAC,CACzE,ECVA,IAAAC,EAAmB,8BAENC,EAAcC,GAClB,KAAK,MAAMA,CAAI,KAAI,EAAAC,SAAOD,EAAM,YAAY,EAAE,OAAO,UAAU,EAAIA,EAG/DE,EAAc,CAACC,EAAoBC,IAAqB,CACnE,IAAMC,KAAc,EAAAJ,SAAOE,CAAU,EAErC,OAAO,KAAK,MAAMC,CAAQ,KAAI,EAAAH,SAAOG,CAAQ,EAAE,KAAKC,EAAa,EAAI,EAAIA,EAAY,QAAQ,CAC/F,ECVO,IAAKC,OACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAJCA,OAAA,IAyBCC,EAAmB,CAAC,CAC/B,EAAAC,EACA,EAAAC,EACA,OAAAC,EACA,aAAAC,EACA,SAAAC,EACA,mBAAAC,EAAqB,EACvB,IAA8B,CAE5B,IAAIC,EAAMN,EAAE,EAAIA,EAAE,EAAIE,EAClBK,EAAOP,EAAE,GAAKC,EAAE,EAAID,EAAE,GAE1B,OAAQI,EAAU,CAChB,IAAK,MACHE,EAAMN,EAAE,EAAIC,EAAE,EAAIC,EAClBK,EAAOP,EAAE,GAAKC,EAAE,EAAID,EAAE,IAAMK,EAAqB,KAEjD,MACF,IAAK,SACHC,EAAMN,EAAE,EAAIA,EAAE,EAAIE,EAClBK,EAAOP,EAAE,GAAKC,EAAE,EAAID,EAAE,IAAMK,EAAqB,KAEjD,MACF,IAAK,OACHC,EAAMN,EAAE,GAAKC,EAAE,EAAID,EAAE,IAAMK,EAAqB,KAChDE,EAAOP,EAAE,EAAIC,EAAE,EAAIC,EAEnB,MACF,IAAK,QACHI,EAAMN,EAAE,GAAKC,EAAE,EAAID,EAAE,IAAMK,EAAqB,KAChDE,EAAOP,EAAE,EAAIA,EAAE,EAAIE,EAEnB,KACJ,CAEA,MAAO,CACL,KACEK,EAAON,EAAE,EAAIE,EAAe,OAAO,WAAaH,EAAE,MAAQO,EAAON,EAAE,EAAI,OAAO,YAAcE,EAAeI,EAC7G,IAAKD,EAAML,EAAE,EAAIE,EAAe,OAAO,YAAcH,EAAE,KAAOM,EAAML,EAAE,EAAI,OAAO,aAAeE,EAAeG,CACjH,CACF,EC3DO,IAAME,EAAe,CAACC,EAAcC,EAA+B,CAAC,IAAM,CAC/E,GAAM,CAAE,UAAAC,EAAY,IAAK,QAAAC,EAAU,YAAa,KAAAC,EAAOF,CAAU,EAAID,EAErE,OAAIE,IAAY,aACPH,EAAK,CAAC,EAAE,YAAY,EAAIA,EAAK,MAAM,CAAC,EAG/BA,EAAK,MAAME,CAAS,EAErB,IAAIG,GAAQA,EAAK,CAAC,EAAE,YAAY,EAAIA,EAAK,MAAM,CAAC,CAAC,EAAE,KAAKD,CAAI,CAC3E","names":["helpers_exports","__export","POSITION","formatBytes","formatDate","getModalPosition","timeBetween","toCapitalize","__toCommonJS","formatBytes","bytes","decimals","k","dm","sizes","i","import_moment","formatDate","date","moment","timeBetween","date_start","date_end","momentStart","POSITION","getModalPosition","c","m","offset","windowOffset","position","distancePercentage","top","left","toCapitalize","text","options","separator","variant","join","word"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { G as GetModalPositionParams, P as POSITION, a as PositionObject, g as getModalPosition } from './get-modal-position-DPftPoU2.cjs';
|
|
2
|
+
|
|
3
|
+
declare const formatBytes: (bytes: number, decimals?: number) => string;
|
|
4
|
+
|
|
5
|
+
declare const formatDate: (date: string) => string;
|
|
6
|
+
declare const timeBetween: (date_start: string, date_end: string) => string;
|
|
7
|
+
|
|
8
|
+
type ToCapitalizeOptions = Partial<{
|
|
9
|
+
separator: string;
|
|
10
|
+
join: string;
|
|
11
|
+
variant: 'first-word' | 'each-word';
|
|
12
|
+
}>;
|
|
13
|
+
declare const toCapitalize: (text: string, options?: ToCapitalizeOptions) => string;
|
|
14
|
+
|
|
15
|
+
export { type ToCapitalizeOptions, formatBytes, formatDate, timeBetween, toCapitalize };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { G as GetModalPositionParams, P as POSITION, a as PositionObject, g as getModalPosition } from './get-modal-position-DPftPoU2.js';
|
|
2
|
+
|
|
3
|
+
declare const formatBytes: (bytes: number, decimals?: number) => string;
|
|
4
|
+
|
|
5
|
+
declare const formatDate: (date: string) => string;
|
|
6
|
+
declare const timeBetween: (date_start: string, date_end: string) => string;
|
|
7
|
+
|
|
8
|
+
type ToCapitalizeOptions = Partial<{
|
|
9
|
+
separator: string;
|
|
10
|
+
join: string;
|
|
11
|
+
variant: 'first-word' | 'each-word';
|
|
12
|
+
}>;
|
|
13
|
+
declare const toCapitalize: (text: string, options?: ToCapitalizeOptions) => string;
|
|
14
|
+
|
|
15
|
+
export { type ToCapitalizeOptions, formatBytes, formatDate, timeBetween, toCapitalize };
|
package/dist/helpers.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/hooks.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";var O=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var X=(e,t)=>{for(var n in t)O(e,n,{get:t[n],enumerable:!0})},Z=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of J(t))!K.call(e,r)&&r!==n&&O(e,r,{get:()=>t[r],enumerable:!(o=$(t,r))||o.enumerable});return e};var _=e=>Z(O({},"__esModule",{value:!0}),e);var ye={};X(ye,{FileTypeEnum:()=>z,useAsync:()=>ee,useClassNames:()=>te,useConstant:()=>ne,useDebounce:()=>oe,useDimensions:()=>re,useEventListener:()=>u,useFileReader:()=>se,useInView:()=>ie,useInputHandlers:()=>ae,useMediaQuery:()=>ue,useModalInContainer:()=>ce,useMousePosition:()=>me,useObserver:()=>T,useOnClickOutsideRef:()=>N,useOnlineStatus:()=>le,useRenderCount:()=>de,useSafeDispatch:()=>D,useScroll:()=>fe,useStateHistory:()=>pe,useToggle:()=>Ee,useToggleValues:()=>ve,useViewport:()=>Te});module.exports=_(ye);var d=require("react");var E=require("react"),D=e=>{let t=(0,E.useRef)(!1);return(0,E.useLayoutEffect)(()=>(t.current=!0,()=>{t.current=!1}),[]),(0,E.useCallback)((...n)=>{t.current&&e(...n)},[e])};var q=(e,t)=>{switch(t.type){case"pending":return{status:"pending",data:null,error:null};case"resolved":return{status:"resolved",data:t.data,error:null};case"rejected":return{status:"rejected",data:null,error:t.error};default:throw new Error(`Unhandled action: ${JSON.stringify(t)}`)}},ee=e=>{let[t,n]=(0,d.useReducer)(q,{status:"idle",data:null,error:null,...e}),o=D(n),r=(0,d.useCallback)(a=>{o({type:"pending"}),a.then(c=>{o({type:"resolved",data:c})},c=>{o({type:"rejected",error:c})})},[o]),s=(0,d.useCallback)(a=>o({type:"resolved",data:a}),[o]),i=(0,d.useCallback)(a=>o({type:"rejected",error:a}),[o]);return(0,d.useMemo)(()=>({setData:s,setError:i,run:r,...t}),[t,r,s,i])};var j=require("react"),te=e=>(0,j.useMemo)(()=>Object.entries(e).reduce((t,[n,o])=>o?[...t,n]:t,[]).join(" "),[e]);var I=require("react"),ne=e=>(0,I.useState)(e)[0];var M=require("react"),oe=(e,t=500)=>{let[n,o]=(0,M.useState)(e);return(0,M.useEffect)(()=>{let r=setTimeout(()=>o(e),t);return()=>{clearTimeout(r)}},[e,t]),n};var R=require("react");var v=require("react");function u(e,t,n,o){let r=(0,v.useRef)(t);(0,v.useEffect)(()=>{r.current=t},[t]),(0,v.useLayoutEffect)(()=>{let s=n?.current??window;if(!(s&&s.addEventListener))return;let i=a=>r.current(a);return s.addEventListener(e,i,o),()=>{s.removeEventListener(e,i,o)}},[e,n,o])}var F=require("react"),T=(e,t)=>{(0,F.useEffect)(()=>{let n=null;return t&&e.current&&(n=new ResizeObserver(t),n.observe(e.current)),()=>{n&&n.disconnect()}},[e,t])};var re=e=>{let[t,n]=(0,R.useState)({width:0,height:0}),o=()=>{n({width:e.current?.offsetWidth??0,height:e.current?.offsetHeight??0})};return u("resize",o),T(e,o),(0,R.useEffect)(o,[e]),t};var g=require("react");var V=(e,t=2)=>{if(e===0)return"0 Bytes";let n=1e3,o=t<0?0:t,r=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],s=Math.floor(Math.log(e)/Math.log(n));return parseFloat((e/Math.pow(n,s)).toFixed(o))+" "+r[s]};var B=({c:e,m:t,offset:n,windowOffset:o,position:r,distancePercentage:s=50})=>{let i=e.y+e.h+n,a=e.x-(t.w-e.w);switch(r){case"top":i=e.y-t.h-n,a=e.x-(t.w-e.w)*(s/100);break;case"bottom":i=e.y+e.h+n,a=e.x-(t.w-e.w)*(s/100);break;case"left":i=e.y-(t.h-e.h)*(s/100),a=e.x-t.w-n;break;case"right":i=e.y-(t.h-e.h)*(s/100),a=e.x+e.w+n;break}return{left:a+t.w+o>window.innerWidth?e.left-(a+t.w-window.innerWidth)-o:a,top:i+t.h+o>window.innerHeight?e.top-(i+t.h-window.innerHeight)-o:i}};var z=(n=>(n.PNG="image/png",n.PDF="application/pdf",n))(z||{}),se=e=>{let[t,n]=(0,g.useState)([]);return(0,g.useEffect)(()=>{let o=[],r=!1;if(!Array.isArray(e)||e.length===0)n([]);else{let s=e.map(i=>new Promise((a,c)=>{let l=new FileReader;o.push(l),l.onload=f=>{f.target?.result&&a({name:i.name,size:i.size,formatSize:V(i.size),type:i.type,url:f.target.result})},l.onabort=()=>{c(new Error("File reading aborted"))},l.onerror=()=>{c(new Error("Failed to read file"))},l.readAsDataURL(i)}));Promise.all(s).then(i=>{r||n(i)})}return()=>{r=!0,o.forEach(s=>{s.abort()})}},[e]),t};var y=require("react"),ie=(e={})=>{let[t,n]=(0,y.useState)(!1),o=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let r=new IntersectionObserver(([s])=>{n(s.isIntersecting)},e);return o.current&&r.observe(o.current),()=>{r.disconnect()}},[e]),{ref:o,inView:t}};var x=require("react"),ae=({onBlur:e,onFocus:t,onChange:n}={})=>{let[o,r]=(0,x.useState)(!1),s=(0,x.useCallback)(c=>{r(!0),t&&t(c)},[t]),i=(0,x.useCallback)(c=>{r(!1),e&&e(c)},[e]),a=(0,x.useCallback)(c=>{n&&n(c)},[n]);return{isFocus:o,handlers:{onFocus:s,onBlur:i,onChange:a}}};var w=require("react"),ue=e=>{let[t,n]=(0,w.useState)(!1);return(0,w.useEffect)(()=>{let o=window.matchMedia(e);o.matches!==t&&n(o.matches);let r=()=>{n(o.matches)};return o.addEventListener("change",r),()=>{o.removeEventListener("change",r)}},[t,e]),t};var m=require("react");var N=(e,t)=>{u("keydown",n=>{n.key==="Escape"&&t()}),u("mousedown",n=>{e.current&&!e.current.contains(n.target)&&t()})};var W=e=>({x:e.x,y:e.y,w:e.width,h:e.height,top:e.top,left:e.left}),ce=({closeOnClickOutside:e=!0,offset:t=5,windowOffset:n=10,position:o,distancePercentage:r=50}={})=>{let[s,i]=(0,m.useState)(!1),[a,c]=(0,m.useState)({}),l=(0,m.useRef)(null),f=(0,m.useRef)(null);(0,m.useEffect)(()=>{e&&(document.documentElement.style.overflow=s?"hidden":"auto")},[s,e]),N(l,()=>{s&&e&&i(!1)});let H=(0,m.useCallback)(G=>{let k=G.current?.getClientRects()[0],C=f.current?.getClientRects()[0];if(!C||!k){c({});return}let Y=B({c:W(C),m:W(k),distancePercentage:r,windowOffset:n,position:o,offset:t});c(Y)},[r,n,o,t]),p=(0,m.useCallback)(()=>{s&&H(l)},[H,s]);return(0,m.useLayoutEffect)(p,[p]),T(f,p),T(l,p),u("resize",p),u("scroll",p,l),{isVisible:s,setIsVisible:i,modalStyle:a,containerRef:f,modalRef:l}};var Q=require("react");var me=()=>{let[{x:e,y:t},n]=(0,Q.useState)({x:0,y:0});return u("mousemove",r=>{let{clientX:s,clientY:i}=r;n({x:s,y:i})}),[e,t]};var U=require("react");var le=()=>{let[e,t]=(0,U.useState)(navigator.onLine);return u("online",()=>t(navigator.onLine)),u("offline",()=>t(navigator.onLine)),e};var L=require("react"),de=()=>{let e=(0,L.useRef)(1);return(0,L.useEffect)(()=>{e.current++}),e.current};var h=require("react"),fe=()=>{let e=(0,h.useRef)(null),[t,n]=(0,h.useState)([0,0]);return(0,h.useEffect)(()=>{let o=e.current,r=()=>{o&&n([o.scrollLeft,o.scrollTop])};return o&&o.addEventListener("scroll",r),()=>{o&&o.removeEventListener("scroll",r)}},[]),{ref:e,position:t}};var b=require("react");function pe(e){let[t,n]=(0,b.useState)(e),[o,r]=(0,b.useState)([]);return(0,b.useEffect)(()=>{t!==void 0&&r(s=>[...s,t])},[t]),[t,n,o]}var S=require("react"),Ee=(e=!1)=>{let[t,n]=(0,S.useState)(e),o=(0,S.useCallback)(()=>{n(r=>!r)},[]);return[t,o,n]};var A=require("react"),ve=(e,t=0)=>{let[n,o]=(0,A.useState)(t),r=(0,A.useCallback)(s=>{o(s!==void 0?s:i=>(i+1)%e.length)},[e.length]);return[e[n],r]};var P=require("react");var Te=()=>{let e=()=>{let{innerWidth:o,innerHeight:r}=window;return{width:o,height:r,orientation:o>r?"landscape":"portrait"}},[t,n]=(0,P.useState)(e);return u("resize",()=>{n(e())}),(0,P.useEffect)(()=>{n(e())},[]),t};0&&(module.exports={FileTypeEnum,useAsync,useClassNames,useConstant,useDebounce,useDimensions,useEventListener,useFileReader,useInView,useInputHandlers,useMediaQuery,useModalInContainer,useMousePosition,useObserver,useOnClickOutsideRef,useOnlineStatus,useRenderCount,useSafeDispatch,useScroll,useStateHistory,useToggle,useToggleValues,useViewport});
|
|
3
|
+
//# sourceMappingURL=hooks.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/index.ts","../src/hooks/use-async.ts","../src/hooks/use-safe-dispatch.ts","../src/hooks/use-classnames.ts","../src/hooks/use-constant.ts","../src/hooks/use-debounce.ts","../src/hooks/use-dimensions.ts","../src/hooks/use-event-listener.ts","../src/hooks/use-observer.ts","../src/hooks/use-file-reader.ts","../src/helpers/format-bytes.ts","../src/helpers/get-modal-position.ts","../src/hooks/use-in-view.ts","../src/hooks/use-input-handlers.ts","../src/hooks/use-media-query.ts","../src/hooks/use-modal-in-container.ts","../src/hooks/use-on-click-outside-ref.ts","../src/hooks/use-mouse-position.ts","../src/hooks/use-online-status.ts","../src/hooks/use-render-count.ts","../src/hooks/use-scroll.ts","../src/hooks/use-state-history.ts","../src/hooks/use-toggle.ts","../src/hooks/use-toggle-values.ts","../src/hooks/use-viewport.ts"],"sourcesContent":["export * from './use-async';\nexport * from './use-async';\nexport * from './use-classnames';\nexport * from './use-constant';\nexport * from './use-debounce';\nexport * from './use-dimensions';\nexport * from './use-event-listener';\nexport * from './use-file-reader';\nexport * from './use-in-view';\nexport * from './use-input-handlers';\nexport * from './use-media-query';\nexport * from './use-modal-in-container';\nexport * from './use-mouse-position';\nexport * from './use-observer';\nexport * from './use-on-click-outside-ref';\nexport * from './use-online-status';\nexport * from './use-render-count';\nexport * from './use-safe-dispatch';\nexport * from './use-scroll';\nexport * from './use-state-history';\nexport * from './use-toggle';\nexport * from './use-toggle-values';\nexport * from './use-viewport';\n","import React, { useCallback, useMemo, useReducer } from 'react';\n\nimport { useSafeDispatch } from './use-safe-dispatch';\n\ntype AsyncState<T> =\n | {\n status: 'idle' | 'pending';\n data?: null;\n error?: null;\n }\n | {\n status: 'resolved';\n data: T;\n error: null;\n }\n | {\n status: 'rejected';\n data: null;\n error: Error;\n };\n\ntype AsyncAction<T> =\n | { type: 'reset' }\n | { type: 'pending' }\n | { type: 'resolved'; data: T }\n | { type: 'rejected'; error: Error };\n\nconst asyncReducer = <T>(_state: AsyncState<T>, action: AsyncAction<T>): AsyncState<T> => {\n switch (action.type) {\n case 'pending': {\n return { status: 'pending' as const, data: null, error: null };\n }\n case 'resolved': {\n return { status: 'resolved' as const, data: action.data, error: null };\n }\n case 'rejected': {\n return { status: 'rejected' as const, data: null, error: action.error };\n }\n default: {\n throw new Error(`Unhandled action: ${JSON.stringify(action)}`);\n }\n }\n};\n\nexport const useAsync = <T>(\n initialState?: AsyncState<T>,\n): AsyncState<T> & {\n setData: (data: T) => void;\n setError: (error: Error) => void;\n run: (promise: Promise<T>) => void;\n} => {\n const [asyncState, unsafeDispatch] = useReducer<React.Reducer<AsyncState<T>, AsyncAction<T>>>(asyncReducer, {\n status: 'idle',\n data: null,\n error: null,\n ...initialState,\n });\n const dispatch = useSafeDispatch(unsafeDispatch);\n\n const run = useCallback(\n (promise: Promise<T>) => {\n dispatch({ type: 'pending' });\n promise.then(\n data => {\n dispatch({ type: 'resolved', data });\n },\n (error: Error) => {\n dispatch({ type: 'rejected', error });\n },\n );\n },\n [dispatch],\n );\n\n const setData = useCallback((data: T) => dispatch({ type: 'resolved', data }), [dispatch]);\n\n const setError = useCallback((error: Error) => dispatch({ type: 'rejected', error }), [dispatch]);\n\n return useMemo(\n () => ({\n setData,\n setError,\n run,\n ...asyncState,\n }),\n [asyncState, run, setData, setError],\n );\n};\n","import React, { useCallback, useLayoutEffect, useRef } from 'react';\n\nexport const useSafeDispatch = <T>(dispatch: React.Dispatch<T>): ((action: T) => void) => {\n const mounted = useRef(false);\n\n useLayoutEffect(() => {\n mounted.current = true;\n\n return () => {\n mounted.current = false;\n };\n }, []);\n\n return useCallback(\n (...args: Parameters<React.Dispatch<T>>) => {\n if (mounted.current) {\n dispatch(...args);\n }\n },\n [dispatch],\n );\n};\n","import { useMemo } from 'react';\n\nexport const useClassNames = (classes: Record<string, boolean>): string =>\n useMemo<string>(\n () =>\n Object.entries(classes)\n .reduce<Array<string>>(\n (compiledClassNames, [classname, value]) => (value ? [...compiledClassNames, classname] : compiledClassNames),\n [],\n )\n .join(' '),\n [classes],\n );\n","import { useState } from 'react';\n\nexport const useConstant = <T>(initializer: T | (() => T)): T => useState(initializer)[0];\n","import { useEffect, useState } from 'react';\n\nexport const useDebounce = <T>(value: T, delay: number = 500): T => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { useEventListener } from './use-event-listener';\nimport { useObserver } from './use-observer';\n\nexport const useDimensions = (ref: React.RefObject<HTMLElement>) => {\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 });\n\n const getSize = () => {\n setDimensions({\n width: ref.current?.offsetWidth ?? 0,\n height: ref.current?.offsetHeight ?? 0,\n });\n };\n\n useEventListener('resize', getSize);\n useObserver(ref, getSize);\n\n useEffect(getSize, [ref]);\n\n return dimensions;\n};\n","import { RefObject, useEffect, useLayoutEffect, useRef } from 'react';\n\nfunction useEventListener<EventName extends keyof MediaQueryListEventMap>(\n eventName: EventName,\n callback: (event: MediaQueryListEventMap[EventName]) => void,\n element: RefObject<MediaQueryList>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\nfunction useEventListener<EventName extends keyof WindowEventMap>(\n eventName: EventName,\n callback: (event: WindowEventMap[EventName]) => void,\n element?: undefined,\n options?: boolean | AddEventListenerOptions,\n): void;\n\nfunction useEventListener<EventName extends keyof HTMLElementEventMap, ElementRef extends HTMLElement = HTMLDivElement>(\n eventName: EventName,\n callback: (event: HTMLElementEventMap[EventName]) => void,\n element: RefObject<ElementRef>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\nfunction useEventListener<EventName extends keyof DocumentEventMap>(\n eventName: EventName,\n callback: (event: DocumentEventMap[EventName]) => void,\n element: RefObject<Document>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\nfunction useEventListener<\n MediaQueryEventName extends keyof MediaQueryListEventMap,\n WindowEventName extends keyof WindowEventMap,\n ElementEventName extends keyof HTMLElementEventMap,\n DocumentEventName extends keyof DocumentEventMap,\n ElementRef extends HTMLElement | MediaQueryList | Document | Window | void = void,\n>(\n eventName: WindowEventName | DocumentEventName | ElementEventName | MediaQueryEventName,\n callback: (\n event:\n | MediaQueryListEventMap[MediaQueryEventName]\n | WindowEventMap[WindowEventName]\n | HTMLElementEventMap[ElementEventName]\n | DocumentEventMap[DocumentEventName]\n | Event,\n ) => void,\n element?: RefObject<ElementRef>,\n options?: boolean | AddEventListenerOptions,\n) {\n const callbackRef = useRef<EventListener>(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useLayoutEffect(() => {\n const targetElement = element?.current ?? window;\n\n if (!(targetElement && targetElement.addEventListener)) return;\n\n const listener: typeof callback = event => callbackRef.current(event);\n\n targetElement.addEventListener(eventName, listener, options);\n\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\n\nexport { useEventListener };\n","import { useEffect } from 'react';\n\nexport const useObserver = <T extends HTMLElement>(ref: React.RefObject<T>, callback: () => void) => {\n useEffect(() => {\n let observer = null;\n\n if (callback && ref.current) {\n observer = new ResizeObserver(callback);\n observer.observe(ref.current);\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n };\n }, [ref, callback]);\n};\n","import { useEffect, useState } from 'react';\n\nimport { formatBytes } from '@polpo/helpers';\n\nexport enum FileTypeEnum {\n PNG = 'image/png',\n PDF = 'application/pdf',\n}\n\nexport type FileResolvedT = {\n name: string;\n size: number;\n formatSize: string;\n type: FileTypeEnum;\n url: FileReader['result'];\n};\n\nexport const useFileReader = (inputFiles: Array<File>) => {\n const [files, setFiles] = useState<Array<FileResolvedT>>([]);\n\n useEffect(() => {\n const fileReaders: Array<FileReader> = [];\n let isCancel = false;\n\n if (!Array.isArray(inputFiles) || inputFiles.length === 0) {\n setFiles([]);\n } else {\n const promises = inputFiles.map(file => {\n return new Promise<FileResolvedT>((resolve, reject) => {\n const fileReader = new FileReader();\n fileReaders.push(fileReader);\n fileReader.onload = (e: ProgressEvent<FileReader>) => {\n if (e.target?.result) {\n resolve({\n name: file.name,\n size: file.size,\n formatSize: formatBytes(file.size),\n type: file.type as FileTypeEnum,\n url: e.target.result,\n });\n }\n };\n fileReader.onabort = () => {\n reject(new Error('File reading aborted'));\n };\n fileReader.onerror = () => {\n reject(new Error('Failed to read file'));\n };\n fileReader.readAsDataURL(file);\n });\n });\n\n Promise.all(promises).then(files => {\n if (!isCancel) {\n setFiles(files);\n }\n });\n }\n\n return () => {\n isCancel = true;\n fileReaders.forEach(fileReader => {\n fileReader.abort();\n });\n };\n }, [inputFiles]);\n\n return files;\n};\n","export const formatBytes = (bytes: number, decimals = 2) => {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1000;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n};\n","export enum POSITION {\n top = 'top',\n left = 'left',\n right = 'right',\n bottom = 'bottom',\n}\n\nexport type PositionObject = {\n x: number;\n y: number;\n top: number;\n left: number;\n w: number;\n h: number;\n};\n\nexport type GetModalPositionParams = {\n c: PositionObject;\n m: PositionObject;\n offset: number;\n windowOffset: number;\n position?: `${POSITION}`;\n distancePercentage?: number;\n};\n\nexport const getModalPosition = ({\n c,\n m,\n offset,\n windowOffset,\n position,\n distancePercentage = 50,\n}: GetModalPositionParams) => {\n // Default bottom\n let top = c.y + c.h + offset;\n let left = c.x - (m.w - c.w);\n\n switch (position) {\n case POSITION.top:\n top = c.y - m.h - offset;\n left = c.x - (m.w - c.w) * (distancePercentage / 100);\n\n break;\n case POSITION.bottom:\n top = c.y + c.h + offset;\n left = c.x - (m.w - c.w) * (distancePercentage / 100);\n\n break;\n case POSITION.left:\n top = c.y - (m.h - c.h) * (distancePercentage / 100);\n left = c.x - m.w - offset;\n\n break;\n case POSITION.right:\n top = c.y - (m.h - c.h) * (distancePercentage / 100);\n left = c.x + c.w + offset;\n\n break;\n }\n\n return {\n left:\n left + m.w + windowOffset > window.innerWidth ? c.left - (left + m.w - window.innerWidth) - windowOffset : left,\n top: top + m.h + windowOffset > window.innerHeight ? c.top - (top + m.h - window.innerHeight) - windowOffset : top,\n };\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport const useInView = (initOptions: IntersectionObserverInit = {}) => {\n const [inView, setInView] = useState(false);\n const ref = useRef<Element>(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(([entry]) => {\n setInView(entry.isIntersecting);\n }, initOptions);\n\n ref.current && observer.observe(ref.current);\n\n return () => {\n observer.disconnect();\n };\n }, [initOptions]);\n\n return { ref, inView };\n};\n","import React, { useCallback, useState } from 'react';\n\ntype InputTypes = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\n\ntype UseInputHandlersProps<T extends InputTypes> = {\n onBlur?: (e: React.FocusEvent<T>) => void;\n onFocus?: (e: React.FocusEvent<T>) => void;\n onChange?: (e: React.ChangeEvent<T>) => void;\n};\n\nexport const useInputHandlers = <T extends InputTypes>({\n onBlur,\n onFocus,\n onChange,\n}: UseInputHandlersProps<T> = {}) => {\n const [isFocus, setIsFocus] = useState(false);\n\n const handleFocus = useCallback(\n (e: React.FocusEvent<T>) => {\n setIsFocus(true);\n onFocus && onFocus(e);\n },\n [onFocus],\n );\n\n const handleBlur = useCallback(\n (e: React.FocusEvent<T>) => {\n setIsFocus(false);\n onBlur && onBlur(e);\n },\n [onBlur],\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<T>) => {\n onChange && onChange(e);\n },\n [onChange],\n );\n\n return {\n isFocus,\n handlers: {\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n },\n };\n};\n","import { useEffect, useState } from 'react';\n\nexport const useMediaQuery = (query: string): boolean => {\n const [matches, setMatches] = useState(false);\n\n useEffect(() => {\n const media = window.matchMedia(query);\n\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n\n const listener = () => {\n setMatches(media.matches);\n };\n\n media.addEventListener('change', listener);\n\n return () => {\n media.removeEventListener('change', listener);\n };\n }, [matches, query]);\n\n return matches;\n};\n","import React, { RefObject, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { useEventListener } from './use-event-listener';\nimport { useObserver } from './use-observer';\nimport { useOnClickOutsideRef } from './use-on-click-outside-ref';\n\nimport { getModalPosition, GetModalPositionParams, PositionObject } from '@polpo/helpers';\n\nconst convertDOMRectToPosition = (rect: DOMRectReadOnly): PositionObject => ({\n x: rect.x,\n y: rect.y,\n w: rect.width,\n h: rect.height,\n top: rect.top,\n left: rect.left,\n});\n\ntype useModalInContainerParams = Partial<\n Pick<GetModalPositionParams, 'position' | 'distancePercentage' | 'offset' | 'windowOffset'>\n> & {\n closeOnClickOutside?: boolean;\n};\n\nexport const useModalInContainer = <Container extends HTMLElement, Modal extends HTMLElement = Container>({\n closeOnClickOutside = true,\n offset = 5,\n windowOffset = 10,\n position,\n distancePercentage = 50,\n}: useModalInContainerParams = {}) => {\n const [isVisible, setIsVisible] = useState<boolean>(false);\n const [modalStyle, setModalStyle] = useState<React.CSSProperties>({});\n\n const modalRef = useRef<Modal>(null);\n const containerRef = useRef<Container>(null);\n\n useEffect(() => {\n if (closeOnClickOutside) {\n document.documentElement.style.overflow = isVisible ? 'hidden' : 'auto';\n }\n }, [isVisible, closeOnClickOutside]);\n\n useOnClickOutsideRef<Modal>(modalRef, () => {\n if (isVisible && closeOnClickOutside) {\n setIsVisible(false);\n }\n });\n\n const getPosition = useCallback(\n (modalRef: RefObject<HTMLElement>) => {\n const modal = modalRef.current?.getClientRects()[0];\n const container = containerRef.current?.getClientRects()[0];\n\n if (!container || !modal) {\n setModalStyle({});\n\n return;\n }\n\n const nextStyles = getModalPosition({\n c: convertDOMRectToPosition(container),\n m: convertDOMRectToPosition(modal),\n distancePercentage,\n windowOffset,\n position,\n offset,\n });\n\n setModalStyle(nextStyles);\n },\n [distancePercentage, windowOffset, position, offset],\n );\n\n const callback = useCallback(() => {\n if (isVisible) {\n getPosition(modalRef);\n }\n }, [getPosition, isVisible]);\n\n useLayoutEffect(callback, [callback]);\n\n useObserver<Container>(containerRef, callback);\n useObserver<Modal>(modalRef, callback);\n useEventListener('resize', callback);\n useEventListener('scroll', callback, modalRef);\n\n return {\n isVisible,\n setIsVisible,\n modalStyle,\n containerRef,\n modalRef,\n };\n};\n","import { RefObject } from 'react';\n\nimport { useEventListener } from './use-event-listener';\n\nexport const useOnClickOutsideRef = <T extends HTMLElement>(containerRef: RefObject<T>, callback: () => void) => {\n useEventListener('keydown', e => {\n if (e.key === 'Escape') {\n callback();\n }\n });\n\n useEventListener('mousedown', event => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n callback();\n }\n });\n};\n","import React, { useState } from 'react';\n\nimport { useEventListener } from './use-event-listener';\n\nexport const useMousePosition = () => {\n const [{ x, y }, setPosition] = useState({ x: 0, y: 0 });\n\n const mouseMove = (e: React.MouseEvent) => {\n const { clientX, clientY } = e;\n setPosition({ x: clientX, y: clientY });\n };\n\n useEventListener('mousemove', mouseMove as unknown as EventListener);\n\n return [x, y];\n};\n","import { useState } from 'react';\n\nimport { useEventListener } from './use-event-listener';\n\nexport const useOnlineStatus = () => {\n const [online, setOnline] = useState(navigator.onLine);\n\n useEventListener('online', () => setOnline(navigator.onLine));\n useEventListener('offline', () => setOnline(navigator.onLine));\n\n return online;\n};\n","import { useEffect, useRef } from 'react';\n\nexport const useRenderCount = () => {\n const count = useRef(1);\n\n useEffect(() => {\n count.current++;\n });\n\n return count.current;\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport const useScroll = () => {\n const ref = useRef<HTMLElement>(null);\n const [position, setPosition] = useState([0, 0]);\n\n useEffect(() => {\n const element = ref.current;\n\n const handleScroll = () => {\n if (!element) return;\n\n setPosition([element.scrollLeft, element.scrollTop]);\n };\n\n if (element) {\n element.addEventListener('scroll', handleScroll);\n }\n\n return () => {\n if (element) {\n element.removeEventListener('scroll', handleScroll);\n }\n };\n }, []);\n\n return {\n ref,\n position,\n };\n};\n","import { Dispatch, SetStateAction, useEffect, useState } from 'react';\n\nfunction useStateHistory<T>(initialState: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Array<T>];\n\nfunction useStateHistory<T = undefined>(): [T | undefined, Dispatch<SetStateAction<T | undefined>>, Array<T>];\n\nfunction useStateHistory<T = undefined>(\n initialState?: T | (() => T) | undefined,\n): [T | undefined, Dispatch<SetStateAction<T | undefined>>, Array<T>] {\n const [state, setState] = useState<T | undefined>(initialState);\n const [history, setHistory] = useState<Array<T>>([]);\n\n useEffect(() => {\n if (state !== undefined) {\n setHistory(prevHistory => [...prevHistory, state]);\n }\n }, [state]);\n\n return [state, setState, history];\n}\n\nexport { useStateHistory };\n","import { useCallback, useState } from 'react';\n\nexport const useToggle = (defaultValue: boolean = false) => {\n const [value, setValue] = useState<boolean>(defaultValue);\n\n const toggle = useCallback(() => {\n setValue(prev => !prev);\n }, []);\n\n return [value, toggle, setValue];\n};\n","import { useCallback, useState } from 'react';\n\nexport const useToggleValues = <T>(values: Array<T>, defaultIndex: number = 0): [T, (index?: number) => void] => {\n const [index, setIndex] = useState(defaultIndex);\n\n const toggle = useCallback(\n (index?: number) => {\n setIndex(index !== undefined ? index : prev => (prev + 1) % values.length);\n },\n [values.length],\n );\n\n return [values[index], toggle];\n};\n","import { useEffect, useState } from 'react';\n\nimport { useEventListener } from './use-event-listener';\n\nenum ScreenOrientation {\n PORTRAIT = 'portrait',\n LANDSCAPE = 'landscape',\n}\n\ntype UseViewportData = {\n width: number;\n height: number;\n orientation: ScreenOrientation;\n};\n\nexport const useViewport = (): UseViewportData => {\n const getData = (): UseViewportData => {\n const { innerWidth, innerHeight } = window;\n\n return {\n width: innerWidth,\n height: innerHeight,\n orientation: innerWidth > innerHeight ? ScreenOrientation.LANDSCAPE : ScreenOrientation.PORTRAIT,\n };\n };\n\n const [data, setData] = useState<UseViewportData>(getData);\n\n useEventListener('resize', () => {\n setData(getData());\n });\n\n useEffect(() => {\n setData(getData());\n }, []);\n\n return data;\n};\n"],"mappings":"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","names":["hooks_exports","__export","FileTypeEnum","useAsync","useClassNames","useConstant","useDebounce","useDimensions","useEventListener","useFileReader","useInView","useInputHandlers","useMediaQuery","useModalInContainer","useMousePosition","useObserver","useOnClickOutsideRef","useOnlineStatus","useRenderCount","useSafeDispatch","useScroll","useStateHistory","useToggle","useToggleValues","useViewport","__toCommonJS","import_react","import_react","useSafeDispatch","dispatch","mounted","args","asyncReducer","_state","action","useAsync","initialState","asyncState","unsafeDispatch","dispatch","useSafeDispatch","run","promise","data","error","setData","setError","import_react","useClassNames","classes","compiledClassNames","classname","value","import_react","useConstant","initializer","import_react","useDebounce","value","delay","debouncedValue","setDebouncedValue","timer","import_react","import_react","useEventListener","eventName","callback","element","options","callbackRef","targetElement","listener","event","import_react","useObserver","ref","callback","observer","useDimensions","ref","dimensions","setDimensions","getSize","useEventListener","useObserver","import_react","formatBytes","bytes","decimals","k","dm","sizes","i","getModalPosition","c","m","offset","windowOffset","position","distancePercentage","top","left","FileTypeEnum","useFileReader","inputFiles","files","setFiles","fileReaders","isCancel","promises","file","resolve","reject","fileReader","e","formatBytes","import_react","useInView","initOptions","inView","setInView","ref","observer","entry","import_react","useInputHandlers","onBlur","onFocus","onChange","isFocus","setIsFocus","handleFocus","e","handleBlur","handleChange","import_react","useMediaQuery","query","matches","setMatches","media","listener","import_react","useOnClickOutsideRef","containerRef","callback","useEventListener","e","event","convertDOMRectToPosition","rect","useModalInContainer","closeOnClickOutside","offset","windowOffset","position","distancePercentage","isVisible","setIsVisible","modalStyle","setModalStyle","modalRef","containerRef","useOnClickOutsideRef","getPosition","modal","container","nextStyles","getModalPosition","callback","useObserver","useEventListener","import_react","useMousePosition","x","y","setPosition","useEventListener","e","clientX","clientY","import_react","useOnlineStatus","online","setOnline","useEventListener","import_react","useRenderCount","count","import_react","useScroll","ref","position","setPosition","element","handleScroll","import_react","useStateHistory","initialState","state","setState","history","setHistory","prevHistory","import_react","useToggle","defaultValue","value","setValue","toggle","prev","import_react","useToggleValues","values","defaultIndex","index","setIndex","toggle","prev","import_react","useViewport","getData","innerWidth","innerHeight","data","setData","useEventListener"]}
|
package/dist/hooks.d.cts
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import React__default, { RefObject, Dispatch, SetStateAction } from 'react';
|
|
3
|
+
import { G as GetModalPositionParams } from './get-modal-position-DPftPoU2.cjs';
|
|
4
|
+
|
|
5
|
+
type AsyncState<T> = {
|
|
6
|
+
status: 'idle' | 'pending';
|
|
7
|
+
data?: null;
|
|
8
|
+
error?: null;
|
|
9
|
+
} | {
|
|
10
|
+
status: 'resolved';
|
|
11
|
+
data: T;
|
|
12
|
+
error: null;
|
|
13
|
+
} | {
|
|
14
|
+
status: 'rejected';
|
|
15
|
+
data: null;
|
|
16
|
+
error: Error;
|
|
17
|
+
};
|
|
18
|
+
declare const useAsync: <T>(initialState?: AsyncState<T>) => AsyncState<T> & {
|
|
19
|
+
setData: (data: T) => void;
|
|
20
|
+
setError: (error: Error) => void;
|
|
21
|
+
run: (promise: Promise<T>) => void;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
declare const useClassNames: (classes: Record<string, boolean>) => string;
|
|
25
|
+
|
|
26
|
+
declare const useConstant: <T>(initializer: T | (() => T)) => T;
|
|
27
|
+
|
|
28
|
+
declare const useDebounce: <T>(value: T, delay?: number) => T;
|
|
29
|
+
|
|
30
|
+
declare const useDimensions: (ref: React__default.RefObject<HTMLElement>) => {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
declare function useEventListener<EventName extends keyof MediaQueryListEventMap>(eventName: EventName, callback: (event: MediaQueryListEventMap[EventName]) => void, element: RefObject<MediaQueryList>, options?: boolean | AddEventListenerOptions): void;
|
|
36
|
+
declare function useEventListener<EventName extends keyof WindowEventMap>(eventName: EventName, callback: (event: WindowEventMap[EventName]) => void, element?: undefined, options?: boolean | AddEventListenerOptions): void;
|
|
37
|
+
declare function useEventListener<EventName extends keyof HTMLElementEventMap, ElementRef extends HTMLElement = HTMLDivElement>(eventName: EventName, callback: (event: HTMLElementEventMap[EventName]) => void, element: RefObject<ElementRef>, options?: boolean | AddEventListenerOptions): void;
|
|
38
|
+
declare function useEventListener<EventName extends keyof DocumentEventMap>(eventName: EventName, callback: (event: DocumentEventMap[EventName]) => void, element: RefObject<Document>, options?: boolean | AddEventListenerOptions): void;
|
|
39
|
+
|
|
40
|
+
declare enum FileTypeEnum {
|
|
41
|
+
PNG = "image/png",
|
|
42
|
+
PDF = "application/pdf"
|
|
43
|
+
}
|
|
44
|
+
type FileResolvedT = {
|
|
45
|
+
name: string;
|
|
46
|
+
size: number;
|
|
47
|
+
formatSize: string;
|
|
48
|
+
type: FileTypeEnum;
|
|
49
|
+
url: FileReader['result'];
|
|
50
|
+
};
|
|
51
|
+
declare const useFileReader: (inputFiles: Array<File>) => FileResolvedT[];
|
|
52
|
+
|
|
53
|
+
declare const useInView: (initOptions?: IntersectionObserverInit) => {
|
|
54
|
+
ref: React$1.RefObject<Element>;
|
|
55
|
+
inView: boolean;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type InputTypes = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
59
|
+
type UseInputHandlersProps<T extends InputTypes> = {
|
|
60
|
+
onBlur?: (e: React__default.FocusEvent<T>) => void;
|
|
61
|
+
onFocus?: (e: React__default.FocusEvent<T>) => void;
|
|
62
|
+
onChange?: (e: React__default.ChangeEvent<T>) => void;
|
|
63
|
+
};
|
|
64
|
+
declare const useInputHandlers: <T extends InputTypes>({ onBlur, onFocus, onChange, }?: UseInputHandlersProps<T>) => {
|
|
65
|
+
isFocus: boolean;
|
|
66
|
+
handlers: {
|
|
67
|
+
onFocus: (e: React__default.FocusEvent<T>) => void;
|
|
68
|
+
onBlur: (e: React__default.FocusEvent<T>) => void;
|
|
69
|
+
onChange: (e: React__default.ChangeEvent<T>) => void;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
declare const useMediaQuery: (query: string) => boolean;
|
|
74
|
+
|
|
75
|
+
type useModalInContainerParams = Partial<Pick<GetModalPositionParams, 'position' | 'distancePercentage' | 'offset' | 'windowOffset'>> & {
|
|
76
|
+
closeOnClickOutside?: boolean;
|
|
77
|
+
};
|
|
78
|
+
declare const useModalInContainer: <Container extends HTMLElement, Modal extends HTMLElement = Container>({ closeOnClickOutside, offset, windowOffset, position, distancePercentage, }?: useModalInContainerParams) => {
|
|
79
|
+
isVisible: boolean;
|
|
80
|
+
setIsVisible: React__default.Dispatch<React__default.SetStateAction<boolean>>;
|
|
81
|
+
modalStyle: React__default.CSSProperties;
|
|
82
|
+
containerRef: React__default.RefObject<Container>;
|
|
83
|
+
modalRef: React__default.RefObject<Modal>;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
declare const useMousePosition: () => number[];
|
|
87
|
+
|
|
88
|
+
declare const useObserver: <T extends HTMLElement>(ref: React.RefObject<T>, callback: () => void) => void;
|
|
89
|
+
|
|
90
|
+
declare const useOnClickOutsideRef: <T extends HTMLElement>(containerRef: RefObject<T>, callback: () => void) => void;
|
|
91
|
+
|
|
92
|
+
declare const useOnlineStatus: () => boolean;
|
|
93
|
+
|
|
94
|
+
declare const useRenderCount: () => number;
|
|
95
|
+
|
|
96
|
+
declare const useSafeDispatch: <T>(dispatch: React__default.Dispatch<T>) => ((action: T) => void);
|
|
97
|
+
|
|
98
|
+
declare const useScroll: () => {
|
|
99
|
+
ref: React$1.RefObject<HTMLElement>;
|
|
100
|
+
position: number[];
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
declare function useStateHistory<T>(initialState: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Array<T>];
|
|
104
|
+
declare function useStateHistory<T = undefined>(): [T | undefined, Dispatch<SetStateAction<T | undefined>>, Array<T>];
|
|
105
|
+
|
|
106
|
+
declare const useToggle: (defaultValue?: boolean) => (boolean | React$1.Dispatch<React$1.SetStateAction<boolean>>)[];
|
|
107
|
+
|
|
108
|
+
declare const useToggleValues: <T>(values: Array<T>, defaultIndex?: number) => [T, (index?: number) => void];
|
|
109
|
+
|
|
110
|
+
declare enum ScreenOrientation {
|
|
111
|
+
PORTRAIT = "portrait",
|
|
112
|
+
LANDSCAPE = "landscape"
|
|
113
|
+
}
|
|
114
|
+
type UseViewportData = {
|
|
115
|
+
width: number;
|
|
116
|
+
height: number;
|
|
117
|
+
orientation: ScreenOrientation;
|
|
118
|
+
};
|
|
119
|
+
declare const useViewport: () => UseViewportData;
|
|
120
|
+
|
|
121
|
+
export { type FileResolvedT, FileTypeEnum, useAsync, useClassNames, useConstant, useDebounce, useDimensions, useEventListener, useFileReader, useInView, useInputHandlers, useMediaQuery, useModalInContainer, useMousePosition, useObserver, useOnClickOutsideRef, useOnlineStatus, useRenderCount, useSafeDispatch, useScroll, useStateHistory, useToggle, useToggleValues, useViewport };
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import React__default, { RefObject, Dispatch, SetStateAction } from 'react';
|
|
3
|
+
import { G as GetModalPositionParams } from './get-modal-position-DPftPoU2.js';
|
|
4
|
+
|
|
5
|
+
type AsyncState<T> = {
|
|
6
|
+
status: 'idle' | 'pending';
|
|
7
|
+
data?: null;
|
|
8
|
+
error?: null;
|
|
9
|
+
} | {
|
|
10
|
+
status: 'resolved';
|
|
11
|
+
data: T;
|
|
12
|
+
error: null;
|
|
13
|
+
} | {
|
|
14
|
+
status: 'rejected';
|
|
15
|
+
data: null;
|
|
16
|
+
error: Error;
|
|
17
|
+
};
|
|
18
|
+
declare const useAsync: <T>(initialState?: AsyncState<T>) => AsyncState<T> & {
|
|
19
|
+
setData: (data: T) => void;
|
|
20
|
+
setError: (error: Error) => void;
|
|
21
|
+
run: (promise: Promise<T>) => void;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
declare const useClassNames: (classes: Record<string, boolean>) => string;
|
|
25
|
+
|
|
26
|
+
declare const useConstant: <T>(initializer: T | (() => T)) => T;
|
|
27
|
+
|
|
28
|
+
declare const useDebounce: <T>(value: T, delay?: number) => T;
|
|
29
|
+
|
|
30
|
+
declare const useDimensions: (ref: React__default.RefObject<HTMLElement>) => {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
declare function useEventListener<EventName extends keyof MediaQueryListEventMap>(eventName: EventName, callback: (event: MediaQueryListEventMap[EventName]) => void, element: RefObject<MediaQueryList>, options?: boolean | AddEventListenerOptions): void;
|
|
36
|
+
declare function useEventListener<EventName extends keyof WindowEventMap>(eventName: EventName, callback: (event: WindowEventMap[EventName]) => void, element?: undefined, options?: boolean | AddEventListenerOptions): void;
|
|
37
|
+
declare function useEventListener<EventName extends keyof HTMLElementEventMap, ElementRef extends HTMLElement = HTMLDivElement>(eventName: EventName, callback: (event: HTMLElementEventMap[EventName]) => void, element: RefObject<ElementRef>, options?: boolean | AddEventListenerOptions): void;
|
|
38
|
+
declare function useEventListener<EventName extends keyof DocumentEventMap>(eventName: EventName, callback: (event: DocumentEventMap[EventName]) => void, element: RefObject<Document>, options?: boolean | AddEventListenerOptions): void;
|
|
39
|
+
|
|
40
|
+
declare enum FileTypeEnum {
|
|
41
|
+
PNG = "image/png",
|
|
42
|
+
PDF = "application/pdf"
|
|
43
|
+
}
|
|
44
|
+
type FileResolvedT = {
|
|
45
|
+
name: string;
|
|
46
|
+
size: number;
|
|
47
|
+
formatSize: string;
|
|
48
|
+
type: FileTypeEnum;
|
|
49
|
+
url: FileReader['result'];
|
|
50
|
+
};
|
|
51
|
+
declare const useFileReader: (inputFiles: Array<File>) => FileResolvedT[];
|
|
52
|
+
|
|
53
|
+
declare const useInView: (initOptions?: IntersectionObserverInit) => {
|
|
54
|
+
ref: React$1.RefObject<Element>;
|
|
55
|
+
inView: boolean;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type InputTypes = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
59
|
+
type UseInputHandlersProps<T extends InputTypes> = {
|
|
60
|
+
onBlur?: (e: React__default.FocusEvent<T>) => void;
|
|
61
|
+
onFocus?: (e: React__default.FocusEvent<T>) => void;
|
|
62
|
+
onChange?: (e: React__default.ChangeEvent<T>) => void;
|
|
63
|
+
};
|
|
64
|
+
declare const useInputHandlers: <T extends InputTypes>({ onBlur, onFocus, onChange, }?: UseInputHandlersProps<T>) => {
|
|
65
|
+
isFocus: boolean;
|
|
66
|
+
handlers: {
|
|
67
|
+
onFocus: (e: React__default.FocusEvent<T>) => void;
|
|
68
|
+
onBlur: (e: React__default.FocusEvent<T>) => void;
|
|
69
|
+
onChange: (e: React__default.ChangeEvent<T>) => void;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
declare const useMediaQuery: (query: string) => boolean;
|
|
74
|
+
|
|
75
|
+
type useModalInContainerParams = Partial<Pick<GetModalPositionParams, 'position' | 'distancePercentage' | 'offset' | 'windowOffset'>> & {
|
|
76
|
+
closeOnClickOutside?: boolean;
|
|
77
|
+
};
|
|
78
|
+
declare const useModalInContainer: <Container extends HTMLElement, Modal extends HTMLElement = Container>({ closeOnClickOutside, offset, windowOffset, position, distancePercentage, }?: useModalInContainerParams) => {
|
|
79
|
+
isVisible: boolean;
|
|
80
|
+
setIsVisible: React__default.Dispatch<React__default.SetStateAction<boolean>>;
|
|
81
|
+
modalStyle: React__default.CSSProperties;
|
|
82
|
+
containerRef: React__default.RefObject<Container>;
|
|
83
|
+
modalRef: React__default.RefObject<Modal>;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
declare const useMousePosition: () => number[];
|
|
87
|
+
|
|
88
|
+
declare const useObserver: <T extends HTMLElement>(ref: React.RefObject<T>, callback: () => void) => void;
|
|
89
|
+
|
|
90
|
+
declare const useOnClickOutsideRef: <T extends HTMLElement>(containerRef: RefObject<T>, callback: () => void) => void;
|
|
91
|
+
|
|
92
|
+
declare const useOnlineStatus: () => boolean;
|
|
93
|
+
|
|
94
|
+
declare const useRenderCount: () => number;
|
|
95
|
+
|
|
96
|
+
declare const useSafeDispatch: <T>(dispatch: React__default.Dispatch<T>) => ((action: T) => void);
|
|
97
|
+
|
|
98
|
+
declare const useScroll: () => {
|
|
99
|
+
ref: React$1.RefObject<HTMLElement>;
|
|
100
|
+
position: number[];
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
declare function useStateHistory<T>(initialState: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Array<T>];
|
|
104
|
+
declare function useStateHistory<T = undefined>(): [T | undefined, Dispatch<SetStateAction<T | undefined>>, Array<T>];
|
|
105
|
+
|
|
106
|
+
declare const useToggle: (defaultValue?: boolean) => (boolean | React$1.Dispatch<React$1.SetStateAction<boolean>>)[];
|
|
107
|
+
|
|
108
|
+
declare const useToggleValues: <T>(values: Array<T>, defaultIndex?: number) => [T, (index?: number) => void];
|
|
109
|
+
|
|
110
|
+
declare enum ScreenOrientation {
|
|
111
|
+
PORTRAIT = "portrait",
|
|
112
|
+
LANDSCAPE = "landscape"
|
|
113
|
+
}
|
|
114
|
+
type UseViewportData = {
|
|
115
|
+
width: number;
|
|
116
|
+
height: number;
|
|
117
|
+
orientation: ScreenOrientation;
|
|
118
|
+
};
|
|
119
|
+
declare const useViewport: () => UseViewportData;
|
|
120
|
+
|
|
121
|
+
export { type FileResolvedT, FileTypeEnum, useAsync, useClassNames, useConstant, useDebounce, useDimensions, useEventListener, useFileReader, useInView, useInputHandlers, useMediaQuery, useModalInContainer, useMousePosition, useObserver, useOnClickOutsideRef, useOnlineStatus, useRenderCount, useSafeDispatch, useScroll, useStateHistory, useToggle, useToggleValues, useViewport };
|
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"./chunk-U5XSMSKZ.js";import"./chunk-M4KRSYE7.js";export{i as FileTypeEnum,b as useAsync,c as useClassNames,d as useConstant,e as useDebounce,h as useDimensions,f as useEventListener,j as useFileReader,k as useInView,l as useInputHandlers,m as useMediaQuery,o as useModalInContainer,p as useMousePosition,g as useObserver,n as useOnClickOutsideRef,q as useOnlineStatus,r as useRenderCount,a as useSafeDispatch,s as useScroll,t as useStateHistory,u as useToggle,v as useToggleValues,w as useViewport};
|
|
3
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|