minimal-shared 0.0.2 → 0.0.3
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/README.md +1 -1
- package/dist/hooks/index.d.ts +2 -4
- package/dist/hooks/index.js +0 -2
- package/dist/hooks/use-back-to-top/use-back-to-top.js +1 -64
- package/dist/hooks/use-boolean/use-boolean.js +1 -24
- package/dist/hooks/use-client-rect/use-client-rect.js +1 -47
- package/dist/hooks/use-cookies/index.d.ts +1 -1
- package/dist/hooks/use-cookies/use-cookies.d.ts +11 -10
- package/dist/hooks/use-cookies/use-cookies.js +1 -110
- package/dist/hooks/use-copy-to-clipboard/use-copy-to-clipboard.js +1 -27
- package/dist/hooks/use-countdown-date/use-countdown-date.js +1 -41
- package/dist/hooks/use-countdown-seconds/use-countdown-seconds.js +1 -36
- package/dist/hooks/use-debounce/use-debounce.js +1 -17
- package/dist/hooks/use-double-click/use-double-click.js +1 -33
- package/dist/hooks/use-is-client/use-is-client.js +1 -12
- package/dist/hooks/use-local-storage/index.d.ts +1 -1
- package/dist/hooks/use-local-storage/use-local-storage.d.ts +11 -10
- package/dist/hooks/use-local-storage/use-local-storage.js +1 -113
- package/dist/hooks/use-multi-select/use-multi-select.js +1 -36
- package/dist/hooks/use-popover/use-popover.js +1 -21
- package/dist/hooks/use-popover-hover/use-popover-hover.js +1 -24
- package/dist/hooks/use-scroll-offset-top/use-scroll-offset-top.js +1 -29
- package/dist/hooks/use-set-state/use-set-state.d.ts +5 -5
- package/dist/hooks/use-set-state/use-set-state.js +1 -26
- package/dist/hooks/use-tabs/use-tabs.js +1 -16
- package/dist/index.d.ts +4 -6
- package/dist/utils/active-link/active-link.js +1 -43
- package/dist/utils/classes/classes.js +1 -14
- package/dist/utils/color/color.js +2 -40
- package/dist/utils/cookies/cookies.js +1 -46
- package/dist/utils/font/font.js +1 -20
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/local-storage/index.d.ts +1 -1
- package/dist/utils/local-storage/local-storage.d.ts +2 -14
- package/dist/utils/local-storage/local-storage.js +1 -51
- package/dist/utils/object/object.js +1 -10
- package/dist/utils/url/index.d.ts +1 -1
- package/dist/utils/url/url.d.ts +9 -1
- package/dist/utils/url/url.js +1 -28
- package/dist/utils/uuidv4/uuidv4.js +1 -11
- package/package.json +6 -2
- package/dist/hooks/use-event-listener/index.d.ts +0 -2
- package/dist/hooks/use-event-listener/index.js +0 -1
- package/dist/hooks/use-event-listener/use-event-listener.d.ts +0 -7
- package/dist/hooks/use-event-listener/use-event-listener.js +0 -23
- package/dist/hooks/use-text-input/index.d.ts +0 -2
- package/dist/hooks/use-text-input/index.js +0 -1
- package/dist/hooks/use-text-input/use-text-input.d.ts +0 -16
- package/dist/hooks/use-text-input/use-text-input.js +0 -16
package/dist/utils/url/url.d.ts
CHANGED
@@ -20,6 +20,14 @@ declare const hasParams: (url: string) => boolean;
|
|
20
20
|
* console.log(cleanPathname); // '/dashboard/calendar'
|
21
21
|
*/
|
22
22
|
declare function removeLastSlash(pathname: string): string;
|
23
|
+
/**
|
24
|
+
* Checks if two URLs have the same path.
|
25
|
+
*
|
26
|
+
* @param {string} targetUrl - The target URL to compare.
|
27
|
+
* @param {string} pathname - The pathname to compare.
|
28
|
+
* @returns {boolean} - True if the paths are equal, false otherwise.
|
29
|
+
*/
|
30
|
+
declare function isEqualPath(targetUrl: string, pathname: string): boolean;
|
23
31
|
/**
|
24
32
|
* Removes query parameters from a URL.
|
25
33
|
*
|
@@ -43,4 +51,4 @@ declare function removeParams(url: string): string;
|
|
43
51
|
*/
|
44
52
|
declare function isExternalLink(url: string): boolean;
|
45
53
|
|
46
|
-
export { hasParams, isExternalLink, removeLastSlash, removeParams };
|
54
|
+
export { hasParams, isEqualPath, isExternalLink, removeLastSlash, removeParams };
|
package/dist/utils/url/url.js
CHANGED
@@ -1,28 +1 @@
|
|
1
|
-
|
2
|
-
var hasParams = (url) => {
|
3
|
-
const queryString = url.split("?")[1];
|
4
|
-
return queryString ? new URLSearchParams(queryString).toString().length > 0 : false;
|
5
|
-
};
|
6
|
-
function removeLastSlash(pathname) {
|
7
|
-
if (pathname !== "/" && pathname.endsWith("/")) {
|
8
|
-
return pathname.slice(0, -1);
|
9
|
-
}
|
10
|
-
return pathname;
|
11
|
-
}
|
12
|
-
function removeParams(url) {
|
13
|
-
try {
|
14
|
-
const urlObj = new URL(url, window.location.origin);
|
15
|
-
return removeLastSlash(urlObj.pathname);
|
16
|
-
} catch {
|
17
|
-
return url;
|
18
|
-
}
|
19
|
-
}
|
20
|
-
function isExternalLink(url) {
|
21
|
-
return url.startsWith("http");
|
22
|
-
}
|
23
|
-
export {
|
24
|
-
hasParams,
|
25
|
-
isExternalLink,
|
26
|
-
removeLastSlash,
|
27
|
-
removeParams
|
28
|
-
};
|
1
|
+
var e=t=>{let r=t.split("?")[1];return r?new URLSearchParams(r).toString().length>0:!1};function n(t){return t!=="/"&&t.endsWith("/")?t.slice(0,-1):t}function i(t,r){return n(t)===n(r)}function o(t){try{let r=new URL(t,window.location.origin);return n(r.pathname)}catch{return t}}function s(t){return t.startsWith("http")}export{e as hasParams,i as isEqualPath,s as isExternalLink,n as removeLastSlash,o as removeParams};
|
@@ -1,11 +1 @@
|
|
1
|
-
|
2
|
-
function uuidv4() {
|
3
|
-
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
4
|
-
const r = Math.random() * 16 | 0;
|
5
|
-
const v = c === "x" ? r : r & 3 | 8;
|
6
|
-
return v.toString(16);
|
7
|
-
});
|
8
|
-
}
|
9
|
-
export {
|
10
|
-
uuidv4
|
11
|
-
};
|
1
|
+
function n(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let x=Math.random()*16|0;return(r==="x"?x:x&3|8).toString(16)})}export{n as uuidv4};
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "minimal-shared",
|
3
3
|
"author": "Minimals",
|
4
|
-
"version": "0.0.
|
4
|
+
"version": "0.0.3",
|
5
5
|
"description": "Shared hooks and utils used by Mnimal UI and Zone UI.",
|
6
6
|
"keywords": [
|
7
7
|
"typescript",
|
@@ -9,6 +9,10 @@
|
|
9
9
|
"hooks",
|
10
10
|
"utils"
|
11
11
|
],
|
12
|
+
"repository": {
|
13
|
+
"type": "git",
|
14
|
+
"url": "https://github.com/minimal-ui-kit/minimal-shared"
|
15
|
+
},
|
12
16
|
"license": "MIT",
|
13
17
|
"sideEffects": false,
|
14
18
|
"type": "module",
|
@@ -50,7 +54,7 @@
|
|
50
54
|
},
|
51
55
|
"scripts": {
|
52
56
|
"dev": "NODE_OPTIONS='--max-old-space-size=16384' tsup --watch",
|
53
|
-
"build": "NODE_OPTIONS='--max-old-space-size=16384' tsup",
|
57
|
+
"build": "pnpm test && NODE_OPTIONS='--max-old-space-size=16384' tsup",
|
54
58
|
"test": "vitest run",
|
55
59
|
"test:watch": "vitest",
|
56
60
|
"lint": "eslint \"**/*.{js,jsx,ts,tsx}\"",
|
@@ -1 +0,0 @@
|
|
1
|
-
export * from './use-event-listener';
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import { RefObject } from 'react';
|
2
|
-
|
3
|
-
declare function useEventListener<K extends keyof WindowEventMap>(eventName: K, handler: (event: WindowEventMap[K]) => void, element?: undefined, options?: boolean | AddEventListenerOptions): void;
|
4
|
-
declare function useEventListener<K extends keyof HTMLElementEventMap, T extends HTMLElement = HTMLDivElement>(eventName: K, handler: (event: HTMLElementEventMap[K]) => void, element: RefObject<T>, options?: boolean | AddEventListenerOptions): void;
|
5
|
-
declare function useEventListener<K extends keyof DocumentEventMap>(eventName: K, handler: (event: DocumentEventMap[K]) => void, element: RefObject<Document>, options?: boolean | AddEventListenerOptions): void;
|
6
|
-
|
7
|
-
export { useEventListener };
|
@@ -1,23 +0,0 @@
|
|
1
|
-
// src/hooks/use-event-listener/use-event-listener.ts
|
2
|
-
import { useRef, useEffect, useLayoutEffect } from "react";
|
3
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
4
|
-
function useEventListener(eventName, handler, element, options) {
|
5
|
-
const savedHandler = useRef(handler);
|
6
|
-
useIsomorphicLayoutEffect(() => {
|
7
|
-
savedHandler.current = handler;
|
8
|
-
}, [handler]);
|
9
|
-
useEffect(() => {
|
10
|
-
const targetElement = element?.current || window;
|
11
|
-
if (!(targetElement && targetElement.addEventListener)) {
|
12
|
-
return;
|
13
|
-
}
|
14
|
-
const eventListener = (event) => savedHandler.current(event);
|
15
|
-
targetElement.addEventListener(eventName, eventListener, options);
|
16
|
-
return () => {
|
17
|
-
targetElement.removeEventListener(eventName, eventListener);
|
18
|
-
};
|
19
|
-
}, [eventName, element, options]);
|
20
|
-
}
|
21
|
-
export {
|
22
|
-
useEventListener
|
23
|
-
};
|
@@ -1 +0,0 @@
|
|
1
|
-
export * from './use-text-input';
|
@@ -1,16 +0,0 @@
|
|
1
|
-
import { Dispatch, SetStateAction } from 'react';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Custom hook to manage text input state.
|
5
|
-
*
|
6
|
-
* @param {string} [defaultValue=''] - The default value for the input.
|
7
|
-
* @returns {UseTextInputReturn} The current value, change handler, and setValue function.
|
8
|
-
*/
|
9
|
-
type UseTextInputReturn = {
|
10
|
-
value: string;
|
11
|
-
setValue: Dispatch<SetStateAction<string>>;
|
12
|
-
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
13
|
-
};
|
14
|
-
declare function useTextInput(defaultValue?: string): UseTextInputReturn;
|
15
|
-
|
16
|
-
export { type UseTextInputReturn, useTextInput };
|
@@ -1,16 +0,0 @@
|
|
1
|
-
// src/hooks/use-text-input/use-text-input.ts
|
2
|
-
import { useState, useCallback } from "react";
|
3
|
-
function useTextInput(defaultValue = "") {
|
4
|
-
const [value, setValue] = useState(defaultValue);
|
5
|
-
const onChange = useCallback((event) => {
|
6
|
-
setValue(event.target.value);
|
7
|
-
}, []);
|
8
|
-
return {
|
9
|
-
value,
|
10
|
-
setValue,
|
11
|
-
onChange
|
12
|
-
};
|
13
|
-
}
|
14
|
-
export {
|
15
|
-
useTextInput
|
16
|
-
};
|