asterui 0.12.2 → 0.12.4
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/dist/components/Kbd.d.ts +2 -1
- package/dist/components/Modal.d.ts +7 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +196 -201
- package/dist/index.js.map +1 -1
- package/dist/index100.js +11 -44
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +12 -10
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +7 -14
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +12 -7
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +29 -11
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +16 -29
- package/dist/index105.js.map +1 -1
- package/dist/index13.js +95 -35
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +153 -90
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +146 -154
- package/dist/index15.js.map +1 -1
- package/dist/index16.js +5 -150
- package/dist/index16.js.map +1 -1
- package/dist/index17.js +71 -5
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +17 -71
- package/dist/index18.js.map +1 -1
- package/dist/index19.js +96 -15
- package/dist/index19.js.map +1 -1
- package/dist/index20.js +105 -89
- package/dist/index20.js.map +1 -1
- package/dist/index21.js +177 -107
- package/dist/index21.js.map +1 -1
- package/dist/index22.js +107 -181
- package/dist/index22.js.map +1 -1
- package/dist/index23.js +19 -110
- package/dist/index23.js.map +1 -1
- package/dist/index24.js +41 -17
- package/dist/index24.js.map +1 -1
- package/dist/index25.js +32 -43
- package/dist/index25.js.map +1 -1
- package/dist/index26.js +41 -32
- package/dist/index26.js.map +1 -1
- package/dist/index27.js +12 -41
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +33 -12
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +63 -33
- package/dist/index29.js.map +1 -1
- package/dist/index30.js +77 -60
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +18 -80
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +217 -15
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +1078 -216
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +17 -1081
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +121 -17
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +37 -119
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +182 -31
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +97 -191
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +158 -93
- package/dist/index39.js.map +1 -1
- package/dist/index40.js +139 -155
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +15 -146
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +17 -15
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +21 -18
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +116 -18
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +10 -116
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +35 -13
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +34 -35
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +116 -10
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +174 -114
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +136 -165
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +11 -146
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +20 -10
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +14 -22
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +7 -14
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +268 -6
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +17 -266
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +122 -17
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +108 -120
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +167 -107
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +29 -167
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +120 -30
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +80 -116
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +19 -85
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +73 -19
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +54 -71
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +44 -56
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +49 -42
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +62 -52
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +101 -56
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +41 -107
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +68 -41
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +19 -66
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +43 -18
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +132 -44
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +50 -132
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +21 -51
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +31 -22
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +22 -31
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +327 -20
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +50 -323
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +40 -56
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +23 -40
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +93 -21
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +123 -88
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +154 -123
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +63 -159
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +35 -65
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +234 -35
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +31 -231
- package/dist/index89.js.map +1 -1
- package/dist/index90.js +210 -34
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +198 -195
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +241 -159
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +166 -283
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +253 -173
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +14 -258
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +31 -12
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +5 -32
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +13 -5
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +43 -11
- package/dist/index99.js.map +1 -1
- package/package.json +11 -5
- package/dist/components/Calendar.d.ts +0 -23
- package/dist/index.css +0 -1
- package/dist/index106.js +0 -21
- package/dist/index106.js.map +0 -1
- package/dist/index107.js +0 -177
- package/dist/index107.js.map +0 -1
- package/dist/index109.js +0 -10796
- package/dist/index109.js.map +0 -1
- package/dist/index110.js +0 -8
- package/dist/index110.js.map +0 -1
- package/dist/index111.js +0 -45
- package/dist/index111.js.map +0 -1
- package/dist/index112.js +0 -5
- package/dist/index112.js.map +0 -1
- package/dist/index113.js +0 -10
- package/dist/index113.js.map +0 -1
- package/dist/index114.js +0 -155
- package/dist/index114.js.map +0 -1
- package/dist/index115.js +0 -33
- package/dist/index115.js.map +0 -1
- package/dist/index116.js +0 -33
- package/dist/index116.js.map +0 -1
- package/dist/index117.js +0 -5
- package/dist/index117.js.map +0 -1
- package/dist/index118.js +0 -75
- package/dist/index118.js.map +0 -1
- package/dist/index119.js +0 -42
- package/dist/index119.js.map +0 -1
- package/dist/index120.js +0 -29
- package/dist/index120.js.map +0 -1
- package/dist/index121.js +0 -24
- package/dist/index121.js.map +0 -1
- package/dist/index122.js +0 -27
- package/dist/index122.js.map +0 -1
- package/dist/index123.js +0 -23
- package/dist/index123.js.map +0 -1
- package/dist/index124.js +0 -103
- package/dist/index124.js.map +0 -1
- package/dist/index125.js +0 -363
- package/dist/index125.js.map +0 -1
- package/dist/index126.js +0 -28
- package/dist/index126.js.map +0 -1
- package/dist/index127.js +0 -76
- package/dist/index127.js.map +0 -1
- package/dist/index128.js +0 -19
- package/dist/index128.js.map +0 -1
- package/dist/index129.js +0 -69
- package/dist/index129.js.map +0 -1
- package/dist/index130.js +0 -147
- package/dist/index130.js.map +0 -1
- package/dist/index131.js +0 -5
- package/dist/index131.js.map +0 -1
- package/dist/index132.js +0 -59
- package/dist/index132.js.map +0 -1
- package/dist/index133.js +0 -5
- package/dist/index133.js.map +0 -1
- package/dist/index134.js +0 -5
- package/dist/index134.js.map +0 -1
- package/dist/index135.js +0 -5
- package/dist/index135.js.map +0 -1
- package/dist/index136.js +0 -5
- package/dist/index136.js.map +0 -1
- package/dist/index137.js +0 -5
- package/dist/index137.js.map +0 -1
- package/dist/index138.js +0 -5
- package/dist/index138.js.map +0 -1
- package/dist/index139.js +0 -5
- package/dist/index139.js.map +0 -1
- package/dist/index140.js +0 -5
- package/dist/index140.js.map +0 -1
- package/dist/index141.js +0 -35
- package/dist/index141.js.map +0 -1
- package/dist/index142.js +0 -5
- package/dist/index142.js.map +0 -1
- package/dist/index143.js +0 -11
- package/dist/index143.js.map +0 -1
- package/dist/index144.js +0 -5
- package/dist/index144.js.map +0 -1
- package/dist/index145.js +0 -5
- package/dist/index145.js.map +0 -1
- package/dist/index146.js +0 -24
- package/dist/index146.js.map +0 -1
- package/dist/index147.js +0 -5
- package/dist/index147.js.map +0 -1
- package/dist/index148.js +0 -27
- package/dist/index148.js.map +0 -1
- package/dist/index149.js +0 -74
- package/dist/index149.js.map +0 -1
- package/dist/index150.js +0 -24
- package/dist/index150.js.map +0 -1
- package/dist/index151.js +0 -37
- package/dist/index151.js.map +0 -1
- package/dist/index152.js +0 -73
- package/dist/index152.js.map +0 -1
- package/dist/index153.js +0 -5
- package/dist/index153.js.map +0 -1
- package/dist/index154.js +0 -25
- package/dist/index154.js.map +0 -1
- package/dist/index155.js +0 -5
- package/dist/index155.js.map +0 -1
- package/dist/index156.js +0 -5
- package/dist/index156.js.map +0 -1
- package/dist/index157.js +0 -5
- package/dist/index157.js.map +0 -1
- package/dist/index158.js +0 -5
- package/dist/index158.js.map +0 -1
- package/dist/index159.js +0 -7
- package/dist/index159.js.map +0 -1
package/dist/index103.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import { useRef as
|
|
2
|
-
function f(
|
|
3
|
-
const
|
|
4
|
-
return
|
|
5
|
-
e
|
|
6
|
-
|
|
1
|
+
import { useState as u, useRef as v, useEffect as a } from "react";
|
|
2
|
+
function f() {
|
|
3
|
+
const [o, t] = u(!1), n = v(null);
|
|
4
|
+
return a(() => {
|
|
5
|
+
const e = n.current;
|
|
6
|
+
if (!e) return;
|
|
7
|
+
const r = () => t(!0), s = () => t(!1);
|
|
8
|
+
return e.addEventListener("mouseenter", r), e.addEventListener("mouseleave", s), () => {
|
|
9
|
+
e.removeEventListener("mouseenter", r), e.removeEventListener("mouseleave", s);
|
|
10
|
+
};
|
|
11
|
+
}, []), { ref: n, isHovered: o };
|
|
7
12
|
}
|
|
8
13
|
export {
|
|
9
|
-
f as
|
|
14
|
+
f as useHover
|
|
10
15
|
};
|
|
11
16
|
//# sourceMappingURL=index103.js.map
|
package/dist/index103.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index103.js","sources":["../src/hooks/
|
|
1
|
+
{"version":3,"file":"index103.js","sources":["../src/hooks/useHover.ts"],"sourcesContent":["import { useState, useRef, useEffect, type RefObject } from 'react'\n\nexport interface UseHoverReturn<T extends HTMLElement> {\n ref: RefObject<T | null>\n isHovered: boolean\n}\n\n/**\n * Hook that tracks hover state of an element.\n *\n * @returns Object with ref and isHovered state\n *\n * @example\n * const { ref, isHovered } = useHover<HTMLDivElement>()\n *\n * <div ref={ref} className={isHovered ? 'bg-blue-500' : 'bg-gray-500'}>\n * Hover me!\n * </div>\n */\nexport function useHover<T extends HTMLElement = HTMLElement>(): UseHoverReturn<T> {\n const [isHovered, setIsHovered] = useState(false)\n const ref = useRef<T>(null)\n\n useEffect(() => {\n const node = ref.current\n if (!node) return\n\n const handleMouseEnter = () => setIsHovered(true)\n const handleMouseLeave = () => setIsHovered(false)\n\n node.addEventListener('mouseenter', handleMouseEnter)\n node.addEventListener('mouseleave', handleMouseLeave)\n\n return () => {\n node.removeEventListener('mouseenter', handleMouseEnter)\n node.removeEventListener('mouseleave', handleMouseLeave)\n }\n }, [])\n\n return { ref, isHovered }\n}\n"],"names":["useHover","isHovered","setIsHovered","useState","ref","useRef","useEffect","node","handleMouseEnter","handleMouseLeave"],"mappings":";AAmBO,SAASA,IAAmE;AACjF,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1CC,IAAMC,EAAU,IAAI;AAE1B,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAOH,EAAI;AACjB,QAAI,CAACG,EAAM;AAEX,UAAMC,IAAmB,MAAMN,EAAa,EAAI,GAC1CO,IAAmB,MAAMP,EAAa,EAAK;AAEjD,WAAAK,EAAK,iBAAiB,cAAcC,CAAgB,GACpDD,EAAK,iBAAiB,cAAcE,CAAgB,GAE7C,MAAM;AACX,MAAAF,EAAK,oBAAoB,cAAcC,CAAgB,GACvDD,EAAK,oBAAoB,cAAcE,CAAgB;AAAA,IACzD;AAAA,EACF,GAAG,CAAA,CAAE,GAEE,EAAE,KAAAL,GAAK,WAAAH,EAAA;AAChB;"}
|
package/dist/index104.js
CHANGED
|
@@ -1,16 +1,34 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
function f
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { useState as v, useCallback as i, useEffect as l } from "react";
|
|
2
|
+
function c(n, f = {}) {
|
|
3
|
+
const { target: u, event: o = "keydown", preventDefault: r = !1 } = f, [a, d] = v(!1), t = i(
|
|
4
|
+
(e) => {
|
|
5
|
+
e.key === n && (r && e.preventDefault(), d(!0));
|
|
6
|
+
},
|
|
7
|
+
[n, r]
|
|
8
|
+
), s = i(
|
|
9
|
+
(e) => {
|
|
10
|
+
e.key === n && d(!1);
|
|
11
|
+
},
|
|
12
|
+
[n]
|
|
13
|
+
);
|
|
14
|
+
return l(() => {
|
|
15
|
+
const e = u ?? window;
|
|
16
|
+
return o === "keydown" ? (e.addEventListener("keydown", t), e.addEventListener("keyup", s)) : e.addEventListener("keyup", t), () => {
|
|
17
|
+
e.removeEventListener("keydown", t), e.removeEventListener("keyup", s);
|
|
10
18
|
};
|
|
11
|
-
}, [
|
|
19
|
+
}, [u, o, t, s]), a;
|
|
20
|
+
}
|
|
21
|
+
function y(n, f, u = {}) {
|
|
22
|
+
const { target: o, event: r = "keydown", preventDefault: a = !1 } = u;
|
|
23
|
+
l(() => {
|
|
24
|
+
const d = o ?? window, t = (s) => {
|
|
25
|
+
s.key === n && (a && s.preventDefault(), f(s));
|
|
26
|
+
};
|
|
27
|
+
return d.addEventListener(r, t), () => d.removeEventListener(r, t);
|
|
28
|
+
}, [o, n, f, r, a]);
|
|
12
29
|
}
|
|
13
30
|
export {
|
|
14
|
-
|
|
31
|
+
c as useKeyPress,
|
|
32
|
+
y as useKeyPressCallback
|
|
15
33
|
};
|
|
16
34
|
//# sourceMappingURL=index104.js.map
|
package/dist/index104.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index104.js","sources":["../src/hooks/
|
|
1
|
+
{"version":3,"file":"index104.js","sources":["../src/hooks/useKeyPress.ts"],"sourcesContent":["import { useState, useEffect, useCallback } from 'react'\n\nexport interface UseKeyPressOptions {\n /** Target element (default: window) */\n target?: HTMLElement | Window | null\n /** Event type: 'keydown' | 'keyup' (default: 'keydown') */\n event?: 'keydown' | 'keyup'\n /** Prevent default browser behavior */\n preventDefault?: boolean\n}\n\n/**\n * Hook that detects when a specific key is pressed.\n *\n * @param targetKey - Key to detect (e.g., 'Enter', 'Escape', 'a')\n * @param options - Configuration options\n * @returns Whether the key is currently pressed\n *\n * @example\n * const enterPressed = useKeyPress('Enter')\n * const escapePressed = useKeyPress('Escape')\n *\n * useEffect(() => {\n * if (escapePressed) closeModal()\n * }, [escapePressed])\n *\n * @example\n * // With callback for immediate action\n * useKeyPress('Escape', { preventDefault: true })\n */\nexport function useKeyPress(\n targetKey: string,\n options: UseKeyPressOptions = {}\n): boolean {\n const { target, event = 'keydown', preventDefault = false } = options\n const [keyPressed, setKeyPressed] = useState(false)\n\n const downHandler = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === targetKey) {\n if (preventDefault) e.preventDefault()\n setKeyPressed(true)\n }\n },\n [targetKey, preventDefault]\n )\n\n const upHandler = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === targetKey) {\n setKeyPressed(false)\n }\n },\n [targetKey]\n )\n\n useEffect(() => {\n const targetElement = target ?? window\n\n if (event === 'keydown') {\n targetElement.addEventListener('keydown', downHandler as EventListener)\n targetElement.addEventListener('keyup', upHandler as EventListener)\n } else {\n targetElement.addEventListener('keyup', downHandler as EventListener)\n }\n\n return () => {\n targetElement.removeEventListener('keydown', downHandler as EventListener)\n targetElement.removeEventListener('keyup', upHandler as EventListener)\n }\n }, [target, event, downHandler, upHandler])\n\n return keyPressed\n}\n\n/**\n * Hook that calls a callback when a specific key is pressed.\n *\n * @param targetKey - Key to detect\n * @param callback - Function to call when key is pressed\n * @param options - Configuration options\n *\n * @example\n * useKeyPressCallback('Escape', () => closeModal())\n * useKeyPressCallback('Enter', () => submitForm(), { preventDefault: true })\n */\nexport function useKeyPressCallback(\n targetKey: string,\n callback: (event: KeyboardEvent) => void,\n options: UseKeyPressOptions = {}\n): void {\n const { target, event = 'keydown', preventDefault = false } = options\n\n useEffect(() => {\n const targetElement = target ?? window\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === targetKey) {\n if (preventDefault) e.preventDefault()\n callback(e)\n }\n }\n\n targetElement.addEventListener(event, handler as EventListener)\n return () => targetElement.removeEventListener(event, handler as EventListener)\n }, [target, targetKey, callback, event, preventDefault])\n}\n"],"names":["useKeyPress","targetKey","options","target","event","preventDefault","keyPressed","setKeyPressed","useState","downHandler","useCallback","upHandler","useEffect","targetElement","useKeyPressCallback","callback","handler","e"],"mappings":";AA8BO,SAASA,EACdC,GACAC,IAA8B,IACrB;AACT,QAAM,EAAE,QAAAC,GAAQ,OAAAC,IAAQ,WAAW,gBAAAC,IAAiB,OAAUH,GACxD,CAACI,GAAYC,CAAa,IAAIC,EAAS,EAAK,GAE5CC,IAAcC;AAAA,IAClB,CAAC,MAAqB;AACpB,MAAI,EAAE,QAAQT,MACRI,OAAkB,eAAA,GACtBE,EAAc,EAAI;AAAA,IAEtB;AAAA,IACA,CAACN,GAAWI,CAAc;AAAA,EAAA,GAGtBM,IAAYD;AAAA,IAChB,CAAC,MAAqB;AACpB,MAAI,EAAE,QAAQT,KACZM,EAAc,EAAK;AAAA,IAEvB;AAAA,IACA,CAACN,CAAS;AAAA,EAAA;AAGZ,SAAAW,EAAU,MAAM;AACd,UAAMC,IAAgBV,KAAU;AAEhC,WAAIC,MAAU,aACZS,EAAc,iBAAiB,WAAWJ,CAA4B,GACtEI,EAAc,iBAAiB,SAASF,CAA0B,KAElEE,EAAc,iBAAiB,SAASJ,CAA4B,GAG/D,MAAM;AACX,MAAAI,EAAc,oBAAoB,WAAWJ,CAA4B,GACzEI,EAAc,oBAAoB,SAASF,CAA0B;AAAA,IACvE;AAAA,EACF,GAAG,CAACR,GAAQC,GAAOK,GAAaE,CAAS,CAAC,GAEnCL;AACT;AAaO,SAASQ,EACdb,GACAc,GACAb,IAA8B,CAAA,GACxB;AACN,QAAM,EAAE,QAAAC,GAAQ,OAAAC,IAAQ,WAAW,gBAAAC,IAAiB,OAAUH;AAE9D,EAAAU,EAAU,MAAM;AACd,UAAMC,IAAgBV,KAAU,QAE1Ba,IAAU,CAACC,MAAqB;AACpC,MAAIA,EAAE,QAAQhB,MACRI,OAAkB,eAAA,GACtBU,EAASE,CAAC;AAAA,IAEd;AAEA,WAAAJ,EAAc,iBAAiBT,GAAOY,CAAwB,GACvD,MAAMH,EAAc,oBAAoBT,GAAOY,CAAwB;AAAA,EAChF,GAAG,CAACb,GAAQF,GAAWc,GAAUX,GAAOC,CAAc,CAAC;AACzD;"}
|
package/dist/index105.js
CHANGED
|
@@ -1,34 +1,21 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
function
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return l(() => {
|
|
15
|
-
const e = u ?? window;
|
|
16
|
-
return o === "keydown" ? (e.addEventListener("keydown", t), e.addEventListener("keyup", s)) : e.addEventListener("keyup", t), () => {
|
|
17
|
-
e.removeEventListener("keydown", t), e.removeEventListener("keyup", s);
|
|
1
|
+
import { useState as t, useEffect as d } from "react";
|
|
2
|
+
function r() {
|
|
3
|
+
const [i, n] = t(() => typeof window > "u" ? { width: 0, height: 0 } : {
|
|
4
|
+
width: window.innerWidth,
|
|
5
|
+
height: window.innerHeight
|
|
6
|
+
});
|
|
7
|
+
return d(() => {
|
|
8
|
+
if (typeof window > "u") return;
|
|
9
|
+
const e = () => {
|
|
10
|
+
n({
|
|
11
|
+
width: window.innerWidth,
|
|
12
|
+
height: window.innerHeight
|
|
13
|
+
});
|
|
18
14
|
};
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
function y(n, f, u = {}) {
|
|
22
|
-
const { target: o, event: r = "keydown", preventDefault: a = !1 } = u;
|
|
23
|
-
l(() => {
|
|
24
|
-
const d = o ?? window, t = (s) => {
|
|
25
|
-
s.key === n && (a && s.preventDefault(), f(s));
|
|
26
|
-
};
|
|
27
|
-
return d.addEventListener(r, t), () => d.removeEventListener(r, t);
|
|
28
|
-
}, [o, n, f, r, a]);
|
|
15
|
+
return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
|
|
16
|
+
}, []), i;
|
|
29
17
|
}
|
|
30
18
|
export {
|
|
31
|
-
|
|
32
|
-
y as useKeyPressCallback
|
|
19
|
+
r as useWindowSize
|
|
33
20
|
};
|
|
34
21
|
//# sourceMappingURL=index105.js.map
|
package/dist/index105.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index105.js","sources":["../src/hooks/
|
|
1
|
+
{"version":3,"file":"index105.js","sources":["../src/hooks/useWindowSize.ts"],"sourcesContent":["import { useState, useEffect } from 'react'\n\nexport interface WindowSize {\n width: number\n height: number\n}\n\n/**\n * Hook that tracks window dimensions.\n * Updates on window resize.\n *\n * @returns Object with current width and height\n *\n * @example\n * const { width, height } = useWindowSize()\n *\n * return (\n * <div>\n * Window: {width} x {height}\n * {width < 768 && <MobileNav />}\n * </div>\n * )\n */\nexport function useWindowSize(): WindowSize {\n const [windowSize, setWindowSize] = useState<WindowSize>(() => {\n if (typeof window === 'undefined') {\n return { width: 0, height: 0 }\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n })\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n\n const handleResize = () => {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n })\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowSize\n}\n"],"names":["useWindowSize","windowSize","setWindowSize","useState","useEffect","handleResize"],"mappings":";AAuBO,SAASA,IAA4B;AAC1C,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAqB,MACnD,OAAO,SAAW,MACb,EAAE,OAAO,GAAG,QAAQ,EAAA,IAEtB;AAAA,IACL,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,EAAA,CAElB;AAED,SAAAC,EAAU,MAAM;AACd,QAAI,OAAO,SAAW,IAAa;AAEnC,UAAMC,IAAe,MAAM;AACzB,MAAAH,EAAc;AAAA,QACZ,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MAAA,CAChB;AAAA,IACH;AAEA,kBAAO,iBAAiB,UAAUG,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,EAChE,GAAG,CAAA,CAAE,GAEEJ;AACT;"}
|
package/dist/index13.js
CHANGED
|
@@ -1,38 +1,98 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
import { jsxs as e, jsx as s, Fragment as h } from "react/jsx-runtime";
|
|
2
|
+
function g({ children: r, hoverable: a = !1, className: d = "", style: c, ...o }) {
|
|
3
|
+
const n = [
|
|
4
|
+
"p-6 border border-base-content/10",
|
|
5
|
+
a && "cursor-pointer hover:shadow-md transition-shadow",
|
|
6
|
+
d
|
|
7
|
+
].filter(Boolean).join(" ");
|
|
8
|
+
return /* @__PURE__ */ s("div", { className: n, style: c, ...o, children: r });
|
|
9
|
+
}
|
|
10
|
+
function j({
|
|
11
|
+
children: r,
|
|
12
|
+
title: a,
|
|
13
|
+
cover: d,
|
|
14
|
+
actions: c,
|
|
15
|
+
className: o = "",
|
|
16
|
+
style: n,
|
|
17
|
+
size: m,
|
|
18
|
+
bordered: v = !0,
|
|
19
|
+
side: w = !1,
|
|
20
|
+
imageFull: x = !1,
|
|
21
|
+
actionsJustify: t = "end",
|
|
22
|
+
loading: b = !1,
|
|
23
|
+
hoverable: k = !1,
|
|
24
|
+
avatar: l,
|
|
25
|
+
description: i,
|
|
26
|
+
...f
|
|
27
|
+
}) {
|
|
28
|
+
const N = [
|
|
29
|
+
"card",
|
|
30
|
+
"bg-base-100",
|
|
31
|
+
m && {
|
|
32
|
+
xs: "card-xs",
|
|
33
|
+
sm: "card-sm",
|
|
34
|
+
md: "card-md",
|
|
35
|
+
lg: "card-lg",
|
|
36
|
+
xl: "card-xl"
|
|
37
|
+
}[m],
|
|
38
|
+
v && "border border-base-content/10 shadow-sm",
|
|
39
|
+
w && "card-side",
|
|
40
|
+
x && "image-full",
|
|
41
|
+
k && "transition-shadow hover:shadow-lg cursor-pointer",
|
|
42
|
+
o
|
|
43
|
+
].filter(Boolean).join(" "), u = {
|
|
44
|
+
start: "justify-start",
|
|
45
|
+
center: "justify-center",
|
|
46
|
+
end: "justify-end"
|
|
47
|
+
};
|
|
48
|
+
return b ? /* @__PURE__ */ e("div", { className: N, style: n, ...f, children: [
|
|
49
|
+
d && /* @__PURE__ */ s("figure", { children: /* @__PURE__ */ s("div", { className: "skeleton h-48 w-full rounded-none" }) }),
|
|
50
|
+
/* @__PURE__ */ e("div", { className: "card-body", children: [
|
|
51
|
+
(l || a) && /* @__PURE__ */ e("div", { className: "flex gap-4 mb-4", children: [
|
|
52
|
+
l && /* @__PURE__ */ s("div", { className: "skeleton w-12 h-12 rounded-full flex-shrink-0" }),
|
|
53
|
+
/* @__PURE__ */ e("div", { className: "flex-1 space-y-2", children: [
|
|
54
|
+
/* @__PURE__ */ s("div", { className: "skeleton h-6 w-2/3" }),
|
|
55
|
+
i && /* @__PURE__ */ s("div", { className: "skeleton h-4 w-full" })
|
|
56
|
+
] })
|
|
57
|
+
] }),
|
|
58
|
+
!l && !a && /* @__PURE__ */ e(h, { children: [
|
|
59
|
+
/* @__PURE__ */ s("div", { className: "skeleton h-6 w-2/3 mb-4" }),
|
|
60
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
61
|
+
/* @__PURE__ */ s("div", { className: "skeleton h-4 w-full" }),
|
|
62
|
+
/* @__PURE__ */ s("div", { className: "skeleton h-4 w-5/6" }),
|
|
63
|
+
/* @__PURE__ */ s("div", { className: "skeleton h-4 w-4/6" })
|
|
64
|
+
] })
|
|
65
|
+
] }),
|
|
66
|
+
c && /* @__PURE__ */ e("div", { className: `card-actions ${u[t]} mt-4`, children: [
|
|
67
|
+
/* @__PURE__ */ s("div", { className: "skeleton h-10 w-20" }),
|
|
68
|
+
/* @__PURE__ */ s("div", { className: "skeleton h-10 w-20" })
|
|
69
|
+
] })
|
|
70
|
+
] })
|
|
71
|
+
] }) : /* @__PURE__ */ e("div", { className: N, style: n, ...f, children: [
|
|
72
|
+
d && /* @__PURE__ */ s("figure", { children: d }),
|
|
73
|
+
/* @__PURE__ */ e("div", { className: "card-body", children: [
|
|
74
|
+
l || a && i ? /* @__PURE__ */ e(h, { children: [
|
|
75
|
+
/* @__PURE__ */ e("div", { className: "flex gap-4", children: [
|
|
76
|
+
l && /* @__PURE__ */ s("div", { className: "flex-shrink-0", children: l }),
|
|
77
|
+
/* @__PURE__ */ e("div", { className: "flex-1 min-w-0", children: [
|
|
78
|
+
a && /* @__PURE__ */ s("h2", { className: "card-title", children: a }),
|
|
79
|
+
i && /* @__PURE__ */ s("p", { className: "text-sm opacity-70 mt-1", children: i })
|
|
80
|
+
] })
|
|
81
|
+
] }),
|
|
82
|
+
r
|
|
83
|
+
] }) : /* @__PURE__ */ e(h, { children: [
|
|
84
|
+
a && /* @__PURE__ */ s("h2", { className: "card-title", children: a }),
|
|
85
|
+
r
|
|
86
|
+
] }),
|
|
87
|
+
c && /* @__PURE__ */ s("div", { className: `card-actions ${u[t]}`, children: c })
|
|
88
|
+
] })
|
|
89
|
+
] });
|
|
90
|
+
}
|
|
91
|
+
const B = Object.assign(j, {
|
|
92
|
+
Grid: g
|
|
93
|
+
});
|
|
32
94
|
export {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
k as en,
|
|
36
|
-
u as fr
|
|
95
|
+
B as Card,
|
|
96
|
+
B as default
|
|
37
97
|
};
|
|
38
98
|
//# sourceMappingURL=index13.js.map
|
package/dist/index13.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index13.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index13.js","sources":["../src/components/Card.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children: React.ReactNode\n title?: React.ReactNode\n cover?: React.ReactNode\n actions?: React.ReactNode\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n bordered?: boolean\n side?: boolean\n imageFull?: boolean\n actionsJustify?: 'start' | 'center' | 'end'\n loading?: boolean\n hoverable?: boolean\n // Meta props for avatar + description layout\n avatar?: React.ReactNode\n description?: React.ReactNode\n}\n\nexport interface CardGridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n hoverable?: boolean\n}\n\nfunction CardGrid({ children, hoverable = false, className = '', style, ...rest }: CardGridProps) {\n const classes = [\n 'p-6 border border-base-content/10',\n hoverable && 'cursor-pointer hover:shadow-md transition-shadow',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={classes} style={style} {...rest}>\n {children}\n </div>\n )\n}\n\nfunction CardRoot({\n children,\n title,\n cover,\n actions,\n className = '',\n style,\n size,\n bordered = true,\n side = false,\n imageFull = false,\n actionsJustify = 'end',\n loading = false,\n hoverable = false,\n avatar,\n description,\n ...rest\n}: CardProps) {\n const sizeClasses: Record<string, string> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n }\n\n const classes = [\n 'card',\n 'bg-base-100',\n size && sizeClasses[size],\n bordered && 'border border-base-content/10 shadow-sm',\n side && 'card-side',\n imageFull && 'image-full',\n hoverable && 'transition-shadow hover:shadow-lg cursor-pointer',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const justifyClasses: Record<string, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n }\n\n if (loading) {\n return (\n <div className={classes} style={style} {...rest}>\n {cover && (\n <figure>\n <div className=\"skeleton h-48 w-full rounded-none\" />\n </figure>\n )}\n <div className=\"card-body\">\n {(avatar || title) && (\n <div className=\"flex gap-4 mb-4\">\n {avatar && <div className=\"skeleton w-12 h-12 rounded-full flex-shrink-0\" />}\n <div className=\"flex-1 space-y-2\">\n <div className=\"skeleton h-6 w-2/3\" />\n {description && <div className=\"skeleton h-4 w-full\" />}\n </div>\n </div>\n )}\n {!avatar && !title && (\n <>\n <div className=\"skeleton h-6 w-2/3 mb-4\" />\n <div className=\"space-y-2\">\n <div className=\"skeleton h-4 w-full\" />\n <div className=\"skeleton h-4 w-5/6\" />\n <div className=\"skeleton h-4 w-4/6\" />\n </div>\n </>\n )}\n {actions && (\n <div className={`card-actions ${justifyClasses[actionsJustify]} mt-4`}>\n <div className=\"skeleton h-10 w-20\" />\n <div className=\"skeleton h-10 w-20\" />\n </div>\n )}\n </div>\n </div>\n )\n }\n\n // Render with avatar + title + description layout (meta style)\n const hasMetaLayout = avatar || (title && description)\n\n return (\n <div className={classes} style={style} {...rest}>\n {cover && <figure>{cover}</figure>}\n <div className=\"card-body\">\n {hasMetaLayout ? (\n <>\n <div className=\"flex gap-4\">\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {title && <h2 className=\"card-title\">{title}</h2>}\n {description && <p className=\"text-sm opacity-70 mt-1\">{description}</p>}\n </div>\n </div>\n {children}\n </>\n ) : (\n <>\n {title && <h2 className=\"card-title\">{title}</h2>}\n {children}\n </>\n )}\n {actions && <div className={`card-actions ${justifyClasses[actionsJustify]}`}>{actions}</div>}\n </div>\n </div>\n )\n}\n\nexport const Card = Object.assign(CardRoot, {\n Grid: CardGrid,\n})\n\nexport default Card\n"],"names":["CardGrid","children","hoverable","className","style","rest","classes","CardRoot","title","cover","actions","size","bordered","side","imageFull","actionsJustify","loading","avatar","description","justifyClasses","jsx","jsxs","Fragment","Card"],"mappings":"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"}
|
package/dist/index14.js
CHANGED
|
@@ -1,98 +1,161 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
className: o = "",
|
|
16
|
-
style: n,
|
|
17
|
-
size: m,
|
|
18
|
-
bordered: v = !0,
|
|
19
|
-
side: w = !1,
|
|
20
|
-
imageFull: x = !1,
|
|
21
|
-
actionsJustify: t = "end",
|
|
22
|
-
loading: b = !1,
|
|
23
|
-
hoverable: k = !1,
|
|
24
|
-
avatar: l,
|
|
25
|
-
description: i,
|
|
26
|
-
...f
|
|
1
|
+
import { jsxs as m, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useState as g, useRef as I, useId as j, useEffect as $, useCallback as E } from "react";
|
|
3
|
+
function T({
|
|
4
|
+
options: c,
|
|
5
|
+
value: b,
|
|
6
|
+
onChange: k,
|
|
7
|
+
placeholder: M = "Please select",
|
|
8
|
+
disabled: i = !1,
|
|
9
|
+
allowClear: S = !0,
|
|
10
|
+
expandTrigger: D = "click",
|
|
11
|
+
displayRender: w,
|
|
12
|
+
size: C = "md",
|
|
13
|
+
className: B = "",
|
|
14
|
+
...H
|
|
27
15
|
}) {
|
|
28
|
-
const N =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
16
|
+
const [r, d] = g(!1), [o, p] = g(b || []), [y, u] = g([]), x = I(null), W = j(), N = j();
|
|
17
|
+
$(() => {
|
|
18
|
+
b !== void 0 && p(b);
|
|
19
|
+
}, [b]), $(() => {
|
|
20
|
+
const e = (s) => {
|
|
21
|
+
x.current && !x.current.contains(s.target) && (d(!1), u([]));
|
|
22
|
+
};
|
|
23
|
+
if (r)
|
|
24
|
+
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
25
|
+
}, [r]);
|
|
26
|
+
const z = E((e, s) => {
|
|
27
|
+
if (e === 0) return c;
|
|
28
|
+
let t = c;
|
|
29
|
+
for (let l = 0; l < e; l++) {
|
|
30
|
+
const a = t.find((f) => f.value === s[l]);
|
|
31
|
+
if (!a?.children) return [];
|
|
32
|
+
t = a.children;
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
}, [c]), O = E((e) => {
|
|
36
|
+
const s = [];
|
|
37
|
+
let t = c;
|
|
38
|
+
for (const l of e) {
|
|
39
|
+
const a = t.find((f) => f.value === l);
|
|
40
|
+
if (!a) break;
|
|
41
|
+
s.push(a), t = a.children || [];
|
|
42
|
+
}
|
|
43
|
+
return s;
|
|
44
|
+
}, [c]), h = r && y.length > 0 ? y : o, v = [];
|
|
45
|
+
v.push(c);
|
|
46
|
+
for (let e = 0; e < h.length; e++) {
|
|
47
|
+
const s = z(e + 1, h);
|
|
48
|
+
s.length > 0 && v.push(s);
|
|
49
|
+
}
|
|
50
|
+
const K = (e, s) => {
|
|
51
|
+
if (e.disabled) return;
|
|
52
|
+
const t = [...h.slice(0, s), e.value];
|
|
53
|
+
e.children && e.children.length > 0 ? u(t) : (p(t), d(!1), u([]), k?.(t, O(t)));
|
|
54
|
+
}, A = (e, s) => {
|
|
55
|
+
if (D !== "hover" || e.disabled) return;
|
|
56
|
+
const t = [...h.slice(0, s), e.value];
|
|
57
|
+
u(t);
|
|
58
|
+
}, R = (e) => {
|
|
59
|
+
e.stopPropagation(), p([]), k?.([], []);
|
|
60
|
+
}, V = (e) => {
|
|
61
|
+
if (!i)
|
|
62
|
+
switch (e.key) {
|
|
63
|
+
case "Enter":
|
|
64
|
+
case " ":
|
|
65
|
+
e.preventDefault(), d(!r);
|
|
66
|
+
break;
|
|
67
|
+
case "Escape":
|
|
68
|
+
e.preventDefault(), d(!1), u([]);
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}, L = O(o), P = L.map((e) => e.label), q = w ? w(P, L) : P.join(" / "), F = {
|
|
72
|
+
xs: "input-xs text-xs",
|
|
73
|
+
sm: "input-sm text-sm",
|
|
74
|
+
md: "input-md",
|
|
75
|
+
lg: "input-lg text-lg"
|
|
76
|
+
}, G = {
|
|
77
|
+
xs: "text-xs",
|
|
78
|
+
sm: "text-sm",
|
|
79
|
+
md: "text-base",
|
|
80
|
+
lg: "text-lg"
|
|
47
81
|
};
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/* @__PURE__ */
|
|
63
|
-
/* @__PURE__ */
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
return /* @__PURE__ */ m("div", { ref: x, className: `relative inline-block w-full ${B}`, "data-state": r ? "open" : "closed", ...H, children: [
|
|
83
|
+
/* @__PURE__ */ m(
|
|
84
|
+
"div",
|
|
85
|
+
{
|
|
86
|
+
id: W,
|
|
87
|
+
role: "combobox",
|
|
88
|
+
"aria-expanded": r,
|
|
89
|
+
"aria-haspopup": "listbox",
|
|
90
|
+
"aria-controls": N,
|
|
91
|
+
tabIndex: i ? -1 : 0,
|
|
92
|
+
className: `input input-bordered w-full flex items-center justify-between cursor-pointer ${F[C]} ${i ? "input-disabled cursor-not-allowed" : ""} ${r ? "border-primary" : ""}`,
|
|
93
|
+
onClick: () => !i && d(!r),
|
|
94
|
+
onKeyDown: V,
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ n("span", { className: o.length === 0 ? "text-base-content/50" : "", children: o.length > 0 ? q : M }),
|
|
97
|
+
/* @__PURE__ */ m("div", { className: "flex items-center gap-1", children: [
|
|
98
|
+
S && o.length > 0 && !i && /* @__PURE__ */ n(
|
|
99
|
+
"button",
|
|
100
|
+
{
|
|
101
|
+
type: "button",
|
|
102
|
+
className: "btn btn-ghost btn-xs btn-circle",
|
|
103
|
+
onClick: R,
|
|
104
|
+
"aria-label": "Clear selection",
|
|
105
|
+
children: /* @__PURE__ */ n("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ n("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
|
|
106
|
+
}
|
|
107
|
+
),
|
|
108
|
+
/* @__PURE__ */ n(
|
|
109
|
+
"svg",
|
|
110
|
+
{
|
|
111
|
+
className: `w-4 h-4 transition-transform ${r ? "rotate-180" : ""}`,
|
|
112
|
+
fill: "none",
|
|
113
|
+
viewBox: "0 0 24 24",
|
|
114
|
+
stroke: "currentColor",
|
|
115
|
+
children: /* @__PURE__ */ n("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
|
|
116
|
+
}
|
|
117
|
+
)
|
|
80
118
|
] })
|
|
81
|
-
]
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
),
|
|
122
|
+
r && /* @__PURE__ */ n(
|
|
123
|
+
"div",
|
|
124
|
+
{
|
|
125
|
+
id: N,
|
|
126
|
+
className: `absolute z-50 mt-1 bg-base-100 border border-base-300 rounded-lg shadow-lg flex ${G[C]}`,
|
|
127
|
+
children: v.map((e, s) => /* @__PURE__ */ n(
|
|
128
|
+
"ul",
|
|
129
|
+
{
|
|
130
|
+
role: "listbox",
|
|
131
|
+
className: `min-w-[120px] max-h-[200px] overflow-y-auto py-1 ${s > 0 ? "border-l border-base-300" : ""}`,
|
|
132
|
+
children: e.map((t) => {
|
|
133
|
+
const l = o[s] === t.value, a = h[s] === t.value, f = t.children && t.children.length > 0;
|
|
134
|
+
return /* @__PURE__ */ m(
|
|
135
|
+
"li",
|
|
136
|
+
{
|
|
137
|
+
role: "option",
|
|
138
|
+
"aria-selected": l,
|
|
139
|
+
"aria-disabled": t.disabled,
|
|
140
|
+
className: `px-3 py-2 cursor-pointer flex items-center justify-between gap-2 ${t.disabled ? "text-base-content/30 cursor-not-allowed" : l ? "bg-primary text-primary-content" : a ? "bg-base-200" : "hover:bg-base-200"}`,
|
|
141
|
+
onClick: () => K(t, s),
|
|
142
|
+
onMouseEnter: () => A(t, s),
|
|
143
|
+
children: [
|
|
144
|
+
/* @__PURE__ */ n("span", { children: t.label }),
|
|
145
|
+
f && /* @__PURE__ */ n("svg", { className: "w-4 h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ n("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
t.value
|
|
149
|
+
);
|
|
150
|
+
})
|
|
151
|
+
},
|
|
152
|
+
s
|
|
153
|
+
))
|
|
154
|
+
}
|
|
155
|
+
)
|
|
89
156
|
] });
|
|
90
157
|
}
|
|
91
|
-
const B = Object.assign(j, {
|
|
92
|
-
Grid: g
|
|
93
|
-
});
|
|
94
158
|
export {
|
|
95
|
-
|
|
96
|
-
B as default
|
|
159
|
+
T as Cascader
|
|
97
160
|
};
|
|
98
161
|
//# sourceMappingURL=index14.js.map
|