@fangxinyan/lumina 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/LICENSE +15 -0
- package/README.md +110 -0
- package/dist/Accordion-GSBY5T5U.css +38 -0
- package/dist/Accordion.cjs +13 -0
- package/dist/Accordion.cjs.map +1 -0
- package/dist/Accordion.d.cts +21 -0
- package/dist/Accordion.d.ts +21 -0
- package/dist/Accordion.js +4 -0
- package/dist/Accordion.js.map +1 -0
- package/dist/Alert-LSKBYDRI.css +35 -0
- package/dist/Alert.cjs +13 -0
- package/dist/Alert.cjs.map +1 -0
- package/dist/Alert.d.cts +17 -0
- package/dist/Alert.d.ts +17 -0
- package/dist/Alert.js +4 -0
- package/dist/Alert.js.map +1 -0
- package/dist/AppShell-RCALXUCZ.css +162 -0
- package/dist/AppShell.cjs +24 -0
- package/dist/AppShell.cjs.map +1 -0
- package/dist/AppShell.d.cts +68 -0
- package/dist/AppShell.d.ts +68 -0
- package/dist/AppShell.js +3 -0
- package/dist/AppShell.js.map +1 -0
- package/dist/Avatar-OXDSG5Q6.css +36 -0
- package/dist/Avatar.cjs +12 -0
- package/dist/Avatar.cjs.map +1 -0
- package/dist/Avatar.d.cts +15 -0
- package/dist/Avatar.d.ts +15 -0
- package/dist/Avatar.js +3 -0
- package/dist/Avatar.js.map +1 -0
- package/dist/Button-5UI7QXGU.css +96 -0
- package/dist/Button.cjs +17 -0
- package/dist/Button.cjs.map +1 -0
- package/dist/Button.d.cts +41 -0
- package/dist/Button.d.ts +41 -0
- package/dist/Button.js +4 -0
- package/dist/Button.js.map +1 -0
- package/dist/Calendar-LHZELUDL.css +65 -0
- package/dist/Calendar.cjs +13 -0
- package/dist/Calendar.cjs.map +1 -0
- package/dist/Calendar.d.cts +16 -0
- package/dist/Calendar.d.ts +16 -0
- package/dist/Calendar.js +4 -0
- package/dist/Calendar.js.map +1 -0
- package/dist/Card-2CHHFD4Y.css +28 -0
- package/dist/Card.cjs +16 -0
- package/dist/Card.cjs.map +1 -0
- package/dist/Card.d.cts +25 -0
- package/dist/Card.d.ts +25 -0
- package/dist/Card.js +3 -0
- package/dist/Card.js.map +1 -0
- package/dist/Cascader-TO2QMSLJ.css +76 -0
- package/dist/Cascader.cjs +13 -0
- package/dist/Cascader.cjs.map +1 -0
- package/dist/Cascader.d.cts +23 -0
- package/dist/Cascader.d.ts +23 -0
- package/dist/Cascader.js +4 -0
- package/dist/Cascader.js.map +1 -0
- package/dist/Checkbox-SKJATVSN.css +72 -0
- package/dist/Checkbox.cjs +17 -0
- package/dist/Checkbox.cjs.map +1 -0
- package/dist/Checkbox.d.cts +33 -0
- package/dist/Checkbox.d.ts +33 -0
- package/dist/Checkbox.js +4 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/Divider-Z37INS5E.css +49 -0
- package/dist/Divider.cjs +12 -0
- package/dist/Divider.cjs.map +1 -0
- package/dist/Divider.d.cts +12 -0
- package/dist/Divider.d.ts +12 -0
- package/dist/Divider.js +3 -0
- package/dist/Divider.js.map +1 -0
- package/dist/Empty-VM23UNLQ.css +138 -0
- package/dist/Empty.cjs +20 -0
- package/dist/Empty.cjs.map +1 -0
- package/dist/Empty.d.cts +37 -0
- package/dist/Empty.d.ts +37 -0
- package/dist/Empty.js +3 -0
- package/dist/Empty.js.map +1 -0
- package/dist/Icon.cjs +16 -0
- package/dist/Icon.cjs.map +1 -0
- package/dist/Icon.d.cts +21 -0
- package/dist/Icon.d.ts +21 -0
- package/dist/Icon.js +3 -0
- package/dist/Icon.js.map +1 -0
- package/dist/Image-WYWORJT4.css +106 -0
- package/dist/Image.cjs +17 -0
- package/dist/Image.cjs.map +1 -0
- package/dist/Image.d.cts +30 -0
- package/dist/Image.d.ts +30 -0
- package/dist/Image.js +4 -0
- package/dist/Image.js.map +1 -0
- package/dist/Input-Z526ARZP.css +66 -0
- package/dist/Input.cjs +17 -0
- package/dist/Input.cjs.map +1 -0
- package/dist/Input.d.cts +36 -0
- package/dist/Input.d.ts +36 -0
- package/dist/Input.js +4 -0
- package/dist/Input.js.map +1 -0
- package/dist/List-W5BW4D2P.css +26 -0
- package/dist/List.cjs +12 -0
- package/dist/List.cjs.map +1 -0
- package/dist/List.d.cts +20 -0
- package/dist/List.d.ts +20 -0
- package/dist/List.js +3 -0
- package/dist/List.js.map +1 -0
- package/dist/Modal-AYKNIWWQ.css +79 -0
- package/dist/Modal.cjs +18 -0
- package/dist/Modal.cjs.map +1 -0
- package/dist/Modal.d.cts +27 -0
- package/dist/Modal.d.ts +27 -0
- package/dist/Modal.js +5 -0
- package/dist/Modal.js.map +1 -0
- package/dist/Pagination-6FFOI4NM.css +35 -0
- package/dist/Pagination.cjs +13 -0
- package/dist/Pagination.cjs.map +1 -0
- package/dist/Pagination.d.cts +19 -0
- package/dist/Pagination.d.ts +19 -0
- package/dist/Pagination.js +4 -0
- package/dist/Pagination.js.map +1 -0
- package/dist/Popover-WXEVUYBG.css +15 -0
- package/dist/Popover.cjs +12 -0
- package/dist/Popover.cjs.map +1 -0
- package/dist/Popover.d.cts +16 -0
- package/dist/Popover.d.ts +16 -0
- package/dist/Popover.js +3 -0
- package/dist/Popover.js.map +1 -0
- package/dist/Progress-IXRSO5TW.css +63 -0
- package/dist/Progress.cjs +16 -0
- package/dist/Progress.cjs.map +1 -0
- package/dist/Progress.d.cts +26 -0
- package/dist/Progress.d.ts +26 -0
- package/dist/Progress.js +3 -0
- package/dist/Progress.js.map +1 -0
- package/dist/Select-DDJJBQEL.css +263 -0
- package/dist/Select.cjs +14 -0
- package/dist/Select.cjs.map +1 -0
- package/dist/Select.d.cts +68 -0
- package/dist/Select.d.ts +68 -0
- package/dist/Select.js +5 -0
- package/dist/Select.js.map +1 -0
- package/dist/Slider-RE4HZQKF.css +59 -0
- package/dist/Slider.cjs +12 -0
- package/dist/Slider.cjs.map +1 -0
- package/dist/Slider.d.cts +18 -0
- package/dist/Slider.d.ts +18 -0
- package/dist/Slider.js +3 -0
- package/dist/Slider.js.map +1 -0
- package/dist/Switch-NP7KKJOX.css +44 -0
- package/dist/Switch.cjs +12 -0
- package/dist/Switch.cjs.map +1 -0
- package/dist/Switch.d.cts +18 -0
- package/dist/Switch.d.ts +18 -0
- package/dist/Switch.js +3 -0
- package/dist/Switch.js.map +1 -0
- package/dist/Table-ZDPGWLH3.css +139 -0
- package/dist/Table.cjs +18 -0
- package/dist/Table.cjs.map +1 -0
- package/dist/Table.d.cts +57 -0
- package/dist/Table.d.ts +57 -0
- package/dist/Table.js +5 -0
- package/dist/Table.js.map +1 -0
- package/dist/Tabs-A27TSZOP.css +95 -0
- package/dist/Tabs.cjs +16 -0
- package/dist/Tabs.cjs.map +1 -0
- package/dist/Tabs.d.cts +35 -0
- package/dist/Tabs.d.ts +35 -0
- package/dist/Tabs.js +3 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tag-EYOY3UWG.css +49 -0
- package/dist/Tag.cjs +17 -0
- package/dist/Tag.cjs.map +1 -0
- package/dist/Tag.d.cts +27 -0
- package/dist/Tag.d.ts +27 -0
- package/dist/Tag.js +4 -0
- package/dist/Tag.js.map +1 -0
- package/dist/Theme.cjs +44 -0
- package/dist/Theme.cjs.map +1 -0
- package/dist/Theme.d.cts +127 -0
- package/dist/Theme.d.ts +127 -0
- package/dist/Theme.js +3 -0
- package/dist/Theme.js.map +1 -0
- package/dist/Toast-ERHDN3WG.css +45 -0
- package/dist/Toast.cjs +17 -0
- package/dist/Toast.cjs.map +1 -0
- package/dist/Toast.d.cts +26 -0
- package/dist/Toast.d.ts +26 -0
- package/dist/Toast.js +4 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Tooltip-RT4BOVTD.css +23 -0
- package/dist/Tooltip.cjs +12 -0
- package/dist/Tooltip.cjs.map +1 -0
- package/dist/Tooltip.d.cts +13 -0
- package/dist/Tooltip.d.ts +13 -0
- package/dist/Tooltip.js +3 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/chunk-2VA2HSL4.cjs +121 -0
- package/dist/chunk-2VA2HSL4.cjs.map +1 -0
- package/dist/chunk-2W2AJUZW.js +118 -0
- package/dist/chunk-2W2AJUZW.js.map +1 -0
- package/dist/chunk-3QWHDCHJ.js +53 -0
- package/dist/chunk-3QWHDCHJ.js.map +1 -0
- package/dist/chunk-3WAFIUDQ.js +85 -0
- package/dist/chunk-3WAFIUDQ.js.map +1 -0
- package/dist/chunk-4AA22BOG.js +63 -0
- package/dist/chunk-4AA22BOG.js.map +1 -0
- package/dist/chunk-4GT5TOHP.js +18 -0
- package/dist/chunk-4GT5TOHP.js.map +1 -0
- package/dist/chunk-5EYI27B6.js +64 -0
- package/dist/chunk-5EYI27B6.js.map +1 -0
- package/dist/chunk-6YVW3VYL.js +51 -0
- package/dist/chunk-6YVW3VYL.js.map +1 -0
- package/dist/chunk-77NP67ML.cjs +70 -0
- package/dist/chunk-77NP67ML.cjs.map +1 -0
- package/dist/chunk-7CKHWCEA.cjs +110 -0
- package/dist/chunk-7CKHWCEA.cjs.map +1 -0
- package/dist/chunk-7H453VPW.cjs +20 -0
- package/dist/chunk-7H453VPW.cjs.map +1 -0
- package/dist/chunk-7NM5BRUX.js +91 -0
- package/dist/chunk-7NM5BRUX.js.map +1 -0
- package/dist/chunk-7U6I44RV.cjs +283 -0
- package/dist/chunk-7U6I44RV.cjs.map +1 -0
- package/dist/chunk-AAMYURWQ.cjs +87 -0
- package/dist/chunk-AAMYURWQ.cjs.map +1 -0
- package/dist/chunk-ALFDP5WX.cjs +70 -0
- package/dist/chunk-ALFDP5WX.cjs.map +1 -0
- package/dist/chunk-C5TGQ7CV.cjs +114 -0
- package/dist/chunk-C5TGQ7CV.cjs.map +1 -0
- package/dist/chunk-F3NHM4GX.js +20 -0
- package/dist/chunk-F3NHM4GX.js.map +1 -0
- package/dist/chunk-FI7QO3I5.cjs +90 -0
- package/dist/chunk-FI7QO3I5.cjs.map +1 -0
- package/dist/chunk-FMG3ZPGK.js +88 -0
- package/dist/chunk-FMG3ZPGK.js.map +1 -0
- package/dist/chunk-G3UWXSNQ.js +71 -0
- package/dist/chunk-G3UWXSNQ.js.map +1 -0
- package/dist/chunk-GEYMWUW6.js +146 -0
- package/dist/chunk-GEYMWUW6.js.map +1 -0
- package/dist/chunk-HTP6UEVR.js +48 -0
- package/dist/chunk-HTP6UEVR.js.map +1 -0
- package/dist/chunk-I2ERCHFV.cjs +58 -0
- package/dist/chunk-I2ERCHFV.cjs.map +1 -0
- package/dist/chunk-I7SSCSFH.js +253 -0
- package/dist/chunk-I7SSCSFH.js.map +1 -0
- package/dist/chunk-IGHLSNXT.cjs +109 -0
- package/dist/chunk-IGHLSNXT.cjs.map +1 -0
- package/dist/chunk-IKI5CS4L.cjs +91 -0
- package/dist/chunk-IKI5CS4L.cjs.map +1 -0
- package/dist/chunk-ITGCHU3Y.cjs +94 -0
- package/dist/chunk-ITGCHU3Y.cjs.map +1 -0
- package/dist/chunk-JNFCTYJT.cjs +31 -0
- package/dist/chunk-JNFCTYJT.cjs.map +1 -0
- package/dist/chunk-JWFVSBVX.cjs +30 -0
- package/dist/chunk-JWFVSBVX.cjs.map +1 -0
- package/dist/chunk-K5MHL732.js +81 -0
- package/dist/chunk-K5MHL732.js.map +1 -0
- package/dist/chunk-K67KIKX4.cjs +67 -0
- package/dist/chunk-K67KIKX4.cjs.map +1 -0
- package/dist/chunk-KF4MCHZL.cjs +105 -0
- package/dist/chunk-KF4MCHZL.cjs.map +1 -0
- package/dist/chunk-M6CGYGEO.js +91 -0
- package/dist/chunk-M6CGYGEO.js.map +1 -0
- package/dist/chunk-M6OTFXZA.js +48 -0
- package/dist/chunk-M6OTFXZA.js.map +1 -0
- package/dist/chunk-NWJW5KLN.js +29 -0
- package/dist/chunk-NWJW5KLN.js.map +1 -0
- package/dist/chunk-NXOAYNG2.cjs +52 -0
- package/dist/chunk-NXOAYNG2.cjs.map +1 -0
- package/dist/chunk-NZPJ7BUB.cjs +22 -0
- package/dist/chunk-NZPJ7BUB.cjs.map +1 -0
- package/dist/chunk-OUJBCNWD.js +52 -0
- package/dist/chunk-OUJBCNWD.js.map +1 -0
- package/dist/chunk-OXYFB2ZI.js +35 -0
- package/dist/chunk-OXYFB2ZI.js.map +1 -0
- package/dist/chunk-Q33V7MSK.js +79 -0
- package/dist/chunk-Q33V7MSK.js.map +1 -0
- package/dist/chunk-QESLHLTG.cjs +107 -0
- package/dist/chunk-QESLHLTG.cjs.map +1 -0
- package/dist/chunk-QPZZNSRB.js +65 -0
- package/dist/chunk-QPZZNSRB.js.map +1 -0
- package/dist/chunk-QT7SJITQ.cjs +114 -0
- package/dist/chunk-QT7SJITQ.cjs.map +1 -0
- package/dist/chunk-RMD6KQ4H.cjs +56 -0
- package/dist/chunk-RMD6KQ4H.cjs.map +1 -0
- package/dist/chunk-T5AH4FCV.js +280 -0
- package/dist/chunk-T5AH4FCV.js.map +1 -0
- package/dist/chunk-U6ODMPTI.cjs +74 -0
- package/dist/chunk-U6ODMPTI.cjs.map +1 -0
- package/dist/chunk-V2ZUOEXM.cjs +73 -0
- package/dist/chunk-V2ZUOEXM.cjs.map +1 -0
- package/dist/chunk-VJN637MT.js +49 -0
- package/dist/chunk-VJN637MT.js.map +1 -0
- package/dist/chunk-VMHNKD3N.cjs +56 -0
- package/dist/chunk-VMHNKD3N.cjs.map +1 -0
- package/dist/chunk-VXITDXLW.js +28 -0
- package/dist/chunk-VXITDXLW.js.map +1 -0
- package/dist/chunk-XFRP2MBR.js +87 -0
- package/dist/chunk-XFRP2MBR.js.map +1 -0
- package/dist/chunk-XRZ5OKZH.js +101 -0
- package/dist/chunk-XRZ5OKZH.js.map +1 -0
- package/dist/chunk-Y6FVCCUE.js +34 -0
- package/dist/chunk-Y6FVCCUE.js.map +1 -0
- package/dist/chunk-YVO7XO4W.cjs +149 -0
- package/dist/chunk-YVO7XO4W.cjs.map +1 -0
- package/dist/chunk-ZMDVK2U3.cjs +302 -0
- package/dist/chunk-ZMDVK2U3.cjs.map +1 -0
- package/dist/chunk-ZXM247EM.cjs +123 -0
- package/dist/chunk-ZXM247EM.cjs.map +1 -0
- package/dist/index.cjs +249 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +35 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/shared-NJHRNLRH.css +4 -0
- package/dist/styles.css +2068 -0
- package/dist/tokens-HWQ7KWPG.css +153 -0
- package/dist/tokens.css +153 -0
- package/package.json +77 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* ============ Avatar ============ */
|
|
2
|
+
.avatar {
|
|
3
|
+
--size: 40px;
|
|
4
|
+
width: var(--size); height: var(--size);
|
|
5
|
+
border-radius: 999px;
|
|
6
|
+
background: var(--bg);
|
|
7
|
+
box-shadow: var(--neu-out-sm);
|
|
8
|
+
display: grid; place-items: center;
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
color: var(--accent-ink);
|
|
11
|
+
font-weight: 600;
|
|
12
|
+
font-size: calc(var(--size) / 2.6);
|
|
13
|
+
position: relative;
|
|
14
|
+
flex-shrink: 0;
|
|
15
|
+
}
|
|
16
|
+
.avatar.sm { --size: 28px; }
|
|
17
|
+
.avatar.lg { --size: 56px; }
|
|
18
|
+
.avatar.xl { --size: 80px; }
|
|
19
|
+
.avatar img { width: 100%; height: 100%; object-fit: cover; }
|
|
20
|
+
.avatar-status {
|
|
21
|
+
position: absolute;
|
|
22
|
+
bottom: 0; right: 0;
|
|
23
|
+
width: 25%; height: 25%;
|
|
24
|
+
min-width: 8px; min-height: 8px;
|
|
25
|
+
border-radius: 999px;
|
|
26
|
+
background: var(--success);
|
|
27
|
+
box-shadow: 0 0 0 2px var(--bg);
|
|
28
|
+
}
|
|
29
|
+
.avatar-status.online { background: var(--success); }
|
|
30
|
+
.avatar-status.busy { background: var(--danger); }
|
|
31
|
+
.avatar-status.away { background: var(--warning); }
|
|
32
|
+
.avatar-status.offline { background: var(--fg-subtle); }
|
|
33
|
+
|
|
34
|
+
.avatar-group { display: inline-flex; }
|
|
35
|
+
.avatar-group .avatar { border: 3px solid var(--bg); box-sizing: content-box; }
|
|
36
|
+
.avatar-group .avatar + .avatar { margin-left: -12px; }
|
package/dist/Avatar.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkJWFVSBVX_cjs = require('./chunk-JWFVSBVX.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "Avatar", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkJWFVSBVX_cjs.Avatar; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=Avatar.cjs.map
|
|
12
|
+
//# sourceMappingURL=Avatar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Avatar.cjs"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
4
|
+
src?: string;
|
|
5
|
+
alt?: string;
|
|
6
|
+
/** Initials if no image. Auto-derived from `alt` if omitted. */
|
|
7
|
+
initials?: string;
|
|
8
|
+
size?: number | "sm" | "md" | "lg" | "xl";
|
|
9
|
+
/** Status dot. */
|
|
10
|
+
status?: "online" | "busy" | "away" | "offline";
|
|
11
|
+
}
|
|
12
|
+
/** `Avatar` — user image or initials chip. */
|
|
13
|
+
declare const Avatar: React.FC<AvatarProps>;
|
|
14
|
+
|
|
15
|
+
export { Avatar, type AvatarProps };
|
package/dist/Avatar.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
4
|
+
src?: string;
|
|
5
|
+
alt?: string;
|
|
6
|
+
/** Initials if no image. Auto-derived from `alt` if omitted. */
|
|
7
|
+
initials?: string;
|
|
8
|
+
size?: number | "sm" | "md" | "lg" | "xl";
|
|
9
|
+
/** Status dot. */
|
|
10
|
+
status?: "online" | "busy" | "away" | "offline";
|
|
11
|
+
}
|
|
12
|
+
/** `Avatar` — user image or initials chip. */
|
|
13
|
+
declare const Avatar: React.FC<AvatarProps>;
|
|
14
|
+
|
|
15
|
+
export { Avatar, type AvatarProps };
|
package/dist/Avatar.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Avatar.js"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/* ============ Button ============ */
|
|
2
|
+
.btn {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
gap: 8px;
|
|
7
|
+
height: var(--ctrl-h);
|
|
8
|
+
padding: 0 var(--ctrl-pad-x);
|
|
9
|
+
border: none;
|
|
10
|
+
border-radius: var(--r-md);
|
|
11
|
+
font-size: 13px;
|
|
12
|
+
font-weight: 500;
|
|
13
|
+
font-family: inherit;
|
|
14
|
+
color: var(--fg);
|
|
15
|
+
background: var(--bg);
|
|
16
|
+
box-shadow: var(--neu-out-sm);
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
user-select: none;
|
|
19
|
+
white-space: nowrap;
|
|
20
|
+
flex-shrink: 0;
|
|
21
|
+
transition: all var(--dur-fast) var(--ease);
|
|
22
|
+
}
|
|
23
|
+
.btn > svg { flex-shrink: 0; }
|
|
24
|
+
.btn.icon {
|
|
25
|
+
flex-shrink: 0;
|
|
26
|
+
overflow: visible;
|
|
27
|
+
}
|
|
28
|
+
.btn:hover { color: var(--accent-ink); }
|
|
29
|
+
.btn:active, .btn.pressed {
|
|
30
|
+
box-shadow: var(--neu-in-sm);
|
|
31
|
+
color: var(--accent-ink);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.btn.primary {
|
|
35
|
+
color: var(--accent-ink);
|
|
36
|
+
background:
|
|
37
|
+
linear-gradient(145deg,
|
|
38
|
+
color-mix(in oklch, var(--accent-soft) 80%, var(--shadow-light)),
|
|
39
|
+
color-mix(in oklch, var(--accent-soft) 92%, var(--bg)));
|
|
40
|
+
box-shadow:
|
|
41
|
+
var(--neu-out-sm),
|
|
42
|
+
inset 1px 1px 0 color-mix(in oklch, var(--shadow-light) 60%, transparent),
|
|
43
|
+
inset -1px -1px 0 color-mix(in oklch, var(--accent) 15%, transparent);
|
|
44
|
+
font-weight: 600;
|
|
45
|
+
}
|
|
46
|
+
.btn.primary:hover {
|
|
47
|
+
background:
|
|
48
|
+
linear-gradient(145deg,
|
|
49
|
+
color-mix(in oklch, var(--accent-soft) 70%, var(--shadow-light)),
|
|
50
|
+
color-mix(in oklch, var(--accent) 18%, var(--accent-soft)));
|
|
51
|
+
box-shadow:
|
|
52
|
+
var(--neu-out-sm),
|
|
53
|
+
inset 1px 1px 0 color-mix(in oklch, var(--shadow-light) 70%, transparent),
|
|
54
|
+
inset -1px -1px 0 color-mix(in oklch, var(--accent) 20%, transparent),
|
|
55
|
+
0 0 16px -6px var(--accent-glow);
|
|
56
|
+
}
|
|
57
|
+
.btn.primary:active, .btn.primary.pressed {
|
|
58
|
+
box-shadow:
|
|
59
|
+
inset 2px 2px 4px color-mix(in oklch, var(--accent) 25%, var(--shadow-dark)),
|
|
60
|
+
inset -1px -1px 2px var(--shadow-light);
|
|
61
|
+
transform: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.btn.ghost {
|
|
65
|
+
background: transparent;
|
|
66
|
+
box-shadow: none;
|
|
67
|
+
color: var(--fg-muted);
|
|
68
|
+
}
|
|
69
|
+
.btn.ghost:hover { background: var(--bg); box-shadow: var(--neu-flat); color: var(--fg); }
|
|
70
|
+
|
|
71
|
+
.btn.danger { color: var(--danger); }
|
|
72
|
+
.btn.danger:hover { color: var(--danger); }
|
|
73
|
+
|
|
74
|
+
.btn.icon { width: var(--ctrl-h); padding: 0; }
|
|
75
|
+
.btn.sm { height: 30px; padding: 0 12px; font-size: 12px; border-radius: var(--r-sm); }
|
|
76
|
+
.btn.sm.icon { width: 30px; padding: 0; }
|
|
77
|
+
.btn.lg { height: 52px; padding: 0 24px; font-size: 15px; border-radius: var(--r-lg); }
|
|
78
|
+
.btn.lg.icon { width: 52px; padding: 0; }
|
|
79
|
+
|
|
80
|
+
.btn[disabled], .btn.disabled, .btn:disabled {
|
|
81
|
+
color: var(--fg-subtle);
|
|
82
|
+
cursor: not-allowed;
|
|
83
|
+
box-shadow: var(--neu-flat);
|
|
84
|
+
transform: none;
|
|
85
|
+
}
|
|
86
|
+
.btn[disabled]:hover, .btn:disabled:hover, .btn.disabled:hover { transform: none; color: var(--fg-subtle); background: var(--bg); }
|
|
87
|
+
|
|
88
|
+
.btn.loading { cursor: wait; }
|
|
89
|
+
.btn .spinner {
|
|
90
|
+
width: 14px; height: 14px;
|
|
91
|
+
border-radius: 999px;
|
|
92
|
+
border: 2px solid currentColor;
|
|
93
|
+
border-right-color: transparent;
|
|
94
|
+
animation: spin 0.8s linear infinite;
|
|
95
|
+
display: inline-block;
|
|
96
|
+
}
|
package/dist/Button.cjs
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkAAMYURWQ_cjs = require('./chunk-AAMYURWQ.cjs');
|
|
4
|
+
require('./chunk-YVO7XO4W.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "Button", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkAAMYURWQ_cjs.Button; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "IconButton", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkAAMYURWQ_cjs.IconButton; }
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=Button.cjs.map
|
|
17
|
+
//# sourceMappingURL=Button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Button.cjs"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IconName } from './Icon.cjs';
|
|
3
|
+
|
|
4
|
+
type ButtonVariant = "default" | "primary" | "ghost" | "danger";
|
|
5
|
+
type ButtonSize = "sm" | "md" | "lg";
|
|
6
|
+
interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type"> {
|
|
7
|
+
/** Visual variant. `primary` uses the accent color; `ghost` is borderless; `danger` is red. */
|
|
8
|
+
variant?: ButtonVariant;
|
|
9
|
+
/** Control height preset. */
|
|
10
|
+
size?: ButtonSize;
|
|
11
|
+
/** Leading icon. */
|
|
12
|
+
icon?: IconName;
|
|
13
|
+
/** Trailing icon. */
|
|
14
|
+
trailingIcon?: IconName;
|
|
15
|
+
/** Show spinner + disable interaction. */
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
/** Button type attribute. Defaults to "button" to avoid accidental form submits. */
|
|
18
|
+
type?: "button" | "submit" | "reset";
|
|
19
|
+
/** Extra class names. */
|
|
20
|
+
className?: string;
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* `Button` — the primary action surface.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* <Button variant="primary" icon="plus">新建</Button>
|
|
28
|
+
* <Button variant="ghost" loading>保存</Button>
|
|
29
|
+
*/
|
|
30
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
31
|
+
interface IconButtonProps extends Omit<ButtonProps, "icon" | "children"> {
|
|
32
|
+
icon: IconName;
|
|
33
|
+
tip?: string;
|
|
34
|
+
"aria-label"?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* `IconButton` — square button containing just an icon. Pair with a tooltip.
|
|
38
|
+
*/
|
|
39
|
+
declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
40
|
+
|
|
41
|
+
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant, IconButton, type IconButtonProps };
|
package/dist/Button.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IconName } from './Icon.js';
|
|
3
|
+
|
|
4
|
+
type ButtonVariant = "default" | "primary" | "ghost" | "danger";
|
|
5
|
+
type ButtonSize = "sm" | "md" | "lg";
|
|
6
|
+
interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type"> {
|
|
7
|
+
/** Visual variant. `primary` uses the accent color; `ghost` is borderless; `danger` is red. */
|
|
8
|
+
variant?: ButtonVariant;
|
|
9
|
+
/** Control height preset. */
|
|
10
|
+
size?: ButtonSize;
|
|
11
|
+
/** Leading icon. */
|
|
12
|
+
icon?: IconName;
|
|
13
|
+
/** Trailing icon. */
|
|
14
|
+
trailingIcon?: IconName;
|
|
15
|
+
/** Show spinner + disable interaction. */
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
/** Button type attribute. Defaults to "button" to avoid accidental form submits. */
|
|
18
|
+
type?: "button" | "submit" | "reset";
|
|
19
|
+
/** Extra class names. */
|
|
20
|
+
className?: string;
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* `Button` — the primary action surface.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* <Button variant="primary" icon="plus">新建</Button>
|
|
28
|
+
* <Button variant="ghost" loading>保存</Button>
|
|
29
|
+
*/
|
|
30
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
31
|
+
interface IconButtonProps extends Omit<ButtonProps, "icon" | "children"> {
|
|
32
|
+
icon: IconName;
|
|
33
|
+
tip?: string;
|
|
34
|
+
"aria-label"?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* `IconButton` — square button containing just an icon. Pair with a tooltip.
|
|
38
|
+
*/
|
|
39
|
+
declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
40
|
+
|
|
41
|
+
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant, IconButton, type IconButtonProps };
|
package/dist/Button.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Button.js"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/* ============ Calendar ============ */
|
|
2
|
+
.calendar {
|
|
3
|
+
background: var(--bg);
|
|
4
|
+
border-radius: var(--r-lg);
|
|
5
|
+
padding: var(--gap-4);
|
|
6
|
+
box-shadow: var(--neu-out);
|
|
7
|
+
width: 320px;
|
|
8
|
+
}
|
|
9
|
+
.calendar-head {
|
|
10
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
11
|
+
padding: 4px 4px 14px;
|
|
12
|
+
}
|
|
13
|
+
.calendar-title {
|
|
14
|
+
font-size: 14px; font-weight: 600;
|
|
15
|
+
display: inline-flex; align-items: center; gap: 8px;
|
|
16
|
+
cursor: pointer; padding: 6px 10px; border-radius: var(--r-sm);
|
|
17
|
+
border: none; background: transparent; color: var(--fg);
|
|
18
|
+
font-family: inherit;
|
|
19
|
+
transition: all var(--dur-fast) var(--ease);
|
|
20
|
+
}
|
|
21
|
+
.calendar-title:hover { background: var(--bg); box-shadow: var(--neu-flat); }
|
|
22
|
+
.calendar-grid {
|
|
23
|
+
display: grid;
|
|
24
|
+
grid-template-columns: repeat(7, 1fr);
|
|
25
|
+
gap: 2px;
|
|
26
|
+
}
|
|
27
|
+
.calendar-dow {
|
|
28
|
+
text-align: center;
|
|
29
|
+
font-size: 10px;
|
|
30
|
+
font-weight: 600;
|
|
31
|
+
color: var(--fg-subtle);
|
|
32
|
+
text-transform: uppercase;
|
|
33
|
+
letter-spacing: 0.06em;
|
|
34
|
+
padding: 8px 0;
|
|
35
|
+
}
|
|
36
|
+
.calendar-cell {
|
|
37
|
+
position: relative;
|
|
38
|
+
aspect-ratio: 1;
|
|
39
|
+
display: grid; place-items: center;
|
|
40
|
+
font-size: 12px;
|
|
41
|
+
color: var(--fg);
|
|
42
|
+
border-radius: var(--r-sm);
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
border: none;
|
|
45
|
+
background: transparent;
|
|
46
|
+
font-family: inherit;
|
|
47
|
+
transition: all var(--dur-fast) var(--ease);
|
|
48
|
+
}
|
|
49
|
+
.calendar-cell.out { color: var(--fg-subtle); opacity: 0.5; }
|
|
50
|
+
.calendar-cell:hover { background: var(--bg); box-shadow: var(--neu-flat); }
|
|
51
|
+
.calendar-cell.today { font-weight: 700; color: var(--accent-ink); }
|
|
52
|
+
.calendar-cell.today::after {
|
|
53
|
+
content: ""; position: absolute; bottom: 4px; left: 50%;
|
|
54
|
+
width: 4px; height: 4px; border-radius: 999px;
|
|
55
|
+
background: var(--accent);
|
|
56
|
+
transform: translateX(-50%);
|
|
57
|
+
}
|
|
58
|
+
.calendar-cell.selected {
|
|
59
|
+
background: var(--bg);
|
|
60
|
+
box-shadow: var(--neu-in-sm);
|
|
61
|
+
color: var(--accent-ink);
|
|
62
|
+
font-weight: 600;
|
|
63
|
+
}
|
|
64
|
+
.calendar-cell.disabled { color: var(--fg-subtle); opacity: 0.4; cursor: not-allowed; }
|
|
65
|
+
.calendar-cell.disabled:hover { background: transparent; box-shadow: none; }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk7CKHWCEA_cjs = require('./chunk-7CKHWCEA.cjs');
|
|
4
|
+
require('./chunk-YVO7XO4W.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "Calendar", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunk7CKHWCEA_cjs.Calendar; }
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=Calendar.cjs.map
|
|
13
|
+
//# sourceMappingURL=Calendar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Calendar.cjs"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface CalendarProps {
|
|
4
|
+
value?: Date;
|
|
5
|
+
defaultValue?: Date;
|
|
6
|
+
onChange?: (date: Date) => void;
|
|
7
|
+
/** Min selectable date. */
|
|
8
|
+
min?: Date;
|
|
9
|
+
/** Max selectable date. */
|
|
10
|
+
max?: Date;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/** `Calendar` — month-view date picker. */
|
|
14
|
+
declare const Calendar: React.FC<CalendarProps>;
|
|
15
|
+
|
|
16
|
+
export { Calendar, type CalendarProps };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface CalendarProps {
|
|
4
|
+
value?: Date;
|
|
5
|
+
defaultValue?: Date;
|
|
6
|
+
onChange?: (date: Date) => void;
|
|
7
|
+
/** Min selectable date. */
|
|
8
|
+
min?: Date;
|
|
9
|
+
/** Max selectable date. */
|
|
10
|
+
max?: Date;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/** `Calendar` — month-view date picker. */
|
|
14
|
+
declare const Calendar: React.FC<CalendarProps>;
|
|
15
|
+
|
|
16
|
+
export { Calendar, type CalendarProps };
|
package/dist/Calendar.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Calendar.js"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* ============ Card & Panel ============ */
|
|
2
|
+
.card {
|
|
3
|
+
background: var(--bg);
|
|
4
|
+
border-radius: var(--r-lg);
|
|
5
|
+
box-shadow: var(--neu-out);
|
|
6
|
+
padding: var(--gap-5);
|
|
7
|
+
}
|
|
8
|
+
.card.flat { box-shadow: var(--neu-flat); }
|
|
9
|
+
.card.sunken { box-shadow: var(--neu-in); }
|
|
10
|
+
.card.pad-none { padding: 0; }
|
|
11
|
+
.card.pad-sm { padding: var(--gap-3); }
|
|
12
|
+
.card.pad-lg { padding: var(--gap-6); }
|
|
13
|
+
|
|
14
|
+
.panel {
|
|
15
|
+
background: var(--bg);
|
|
16
|
+
border-radius: var(--r-lg);
|
|
17
|
+
box-shadow: var(--neu-out);
|
|
18
|
+
padding: var(--gap-5);
|
|
19
|
+
}
|
|
20
|
+
.panel-head {
|
|
21
|
+
display: flex; align-items: flex-start; justify-content: space-between;
|
|
22
|
+
gap: var(--gap-3); margin-bottom: var(--gap-4);
|
|
23
|
+
}
|
|
24
|
+
.panel-titles { display: flex; flex-direction: column; gap: 2px; }
|
|
25
|
+
.panel-title { font-size: 15px; font-weight: 600; }
|
|
26
|
+
.panel-desc { font-size: 12px; color: var(--fg-muted); }
|
|
27
|
+
.panel-actions { display: flex; gap: 6px; }
|
|
28
|
+
.panel-body { font-size: 13px; }
|
package/dist/Card.cjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkI2ERCHFV_cjs = require('./chunk-I2ERCHFV.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "Card", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkI2ERCHFV_cjs.Card; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "Panel", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkI2ERCHFV_cjs.Panel; }
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=Card.cjs.map
|
|
16
|
+
//# sourceMappingURL=Card.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Card.cjs"}
|
package/dist/Card.d.cts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Visual variant. `raised` protrudes; `sunken` recesses; `flat` is subtle. */
|
|
5
|
+
variant?: "raised" | "sunken" | "flat";
|
|
6
|
+
/** Inner padding. */
|
|
7
|
+
padding?: "none" | "sm" | "md" | "lg";
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* `Card` — neumorphic surface container. Use to group related content.
|
|
12
|
+
*/
|
|
13
|
+
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
interface PanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
15
|
+
title?: React.ReactNode;
|
|
16
|
+
description?: React.ReactNode;
|
|
17
|
+
actions?: React.ReactNode;
|
|
18
|
+
children?: React.ReactNode;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* `Panel` — a titled `Card` with optional actions row.
|
|
22
|
+
*/
|
|
23
|
+
declare const Panel: React.FC<PanelProps>;
|
|
24
|
+
|
|
25
|
+
export { Card, type CardProps, Panel, type PanelProps };
|
package/dist/Card.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Visual variant. `raised` protrudes; `sunken` recesses; `flat` is subtle. */
|
|
5
|
+
variant?: "raised" | "sunken" | "flat";
|
|
6
|
+
/** Inner padding. */
|
|
7
|
+
padding?: "none" | "sm" | "md" | "lg";
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* `Card` — neumorphic surface container. Use to group related content.
|
|
12
|
+
*/
|
|
13
|
+
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
interface PanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
15
|
+
title?: React.ReactNode;
|
|
16
|
+
description?: React.ReactNode;
|
|
17
|
+
actions?: React.ReactNode;
|
|
18
|
+
children?: React.ReactNode;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* `Panel` — a titled `Card` with optional actions row.
|
|
22
|
+
*/
|
|
23
|
+
declare const Panel: React.FC<PanelProps>;
|
|
24
|
+
|
|
25
|
+
export { Card, type CardProps, Panel, type PanelProps };
|
package/dist/Card.js
ADDED
package/dist/Card.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Card.js"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* ============ Cascader ============ */
|
|
2
|
+
.cascader {
|
|
3
|
+
position: relative;
|
|
4
|
+
display: inline-block;
|
|
5
|
+
min-width: 240px;
|
|
6
|
+
width: 100%;
|
|
7
|
+
}
|
|
8
|
+
.cascader-trigger {
|
|
9
|
+
width: 100%;
|
|
10
|
+
height: var(--ctrl-h);
|
|
11
|
+
padding: 0 36px 0 var(--ctrl-pad-x);
|
|
12
|
+
border-radius: var(--r-md);
|
|
13
|
+
background: var(--bg);
|
|
14
|
+
box-shadow: var(--neu-out-sm);
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
font-size: 13px;
|
|
18
|
+
font-family: inherit;
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
position: relative;
|
|
21
|
+
border: none;
|
|
22
|
+
color: var(--fg);
|
|
23
|
+
text-align: left;
|
|
24
|
+
}
|
|
25
|
+
.cascader-trigger.placeholder { color: var(--fg-subtle); }
|
|
26
|
+
.cascader.open .cascader-trigger { box-shadow: var(--neu-in-sm); color: var(--accent-ink); }
|
|
27
|
+
.cascader-panel {
|
|
28
|
+
position: absolute;
|
|
29
|
+
top: calc(100% + 8px);
|
|
30
|
+
left: 0;
|
|
31
|
+
z-index: 50;
|
|
32
|
+
display: flex;
|
|
33
|
+
background: var(--bg);
|
|
34
|
+
border-radius: var(--r-md);
|
|
35
|
+
box-shadow: var(--neu-out-lg);
|
|
36
|
+
padding: 6px;
|
|
37
|
+
animation: menuIn var(--dur) var(--ease);
|
|
38
|
+
gap: 4px;
|
|
39
|
+
}
|
|
40
|
+
.cascader-col {
|
|
41
|
+
min-width: 160px;
|
|
42
|
+
max-height: 280px;
|
|
43
|
+
overflow-y: auto;
|
|
44
|
+
padding: 4px;
|
|
45
|
+
border-radius: var(--r-sm);
|
|
46
|
+
}
|
|
47
|
+
.cascader-col + .cascader-col {
|
|
48
|
+
border-left: 1px solid var(--divider);
|
|
49
|
+
margin-left: 2px;
|
|
50
|
+
padding-left: 6px;
|
|
51
|
+
}
|
|
52
|
+
.cascader-item {
|
|
53
|
+
padding: 8px 10px;
|
|
54
|
+
border-radius: var(--r-sm);
|
|
55
|
+
font-size: 13px;
|
|
56
|
+
color: var(--fg);
|
|
57
|
+
cursor: pointer;
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
gap: 8px;
|
|
61
|
+
transition: all var(--dur-fast) var(--ease);
|
|
62
|
+
border: none;
|
|
63
|
+
background: transparent;
|
|
64
|
+
font-family: inherit;
|
|
65
|
+
width: 100%;
|
|
66
|
+
text-align: left;
|
|
67
|
+
}
|
|
68
|
+
.cascader-item:hover { background: var(--bg); box-shadow: var(--neu-flat); color: var(--accent-ink); }
|
|
69
|
+
.cascader-item.active {
|
|
70
|
+
background: var(--bg);
|
|
71
|
+
box-shadow: var(--neu-in-sm);
|
|
72
|
+
color: var(--accent-ink);
|
|
73
|
+
font-weight: 500;
|
|
74
|
+
}
|
|
75
|
+
.cascader-item .chev { margin-left: auto; color: var(--fg-subtle); display: inline-flex; }
|
|
76
|
+
.cascader-item.active .chev { color: var(--accent); }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkZXM247EM_cjs = require('./chunk-ZXM247EM.cjs');
|
|
4
|
+
require('./chunk-YVO7XO4W.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "Cascader", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkZXM247EM_cjs.Cascader; }
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=Cascader.cjs.map
|
|
13
|
+
//# sourceMappingURL=Cascader.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Cascader.cjs"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IconName } from './Icon.cjs';
|
|
3
|
+
|
|
4
|
+
interface CascaderOption {
|
|
5
|
+
value: string;
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
icon?: IconName;
|
|
8
|
+
children?: CascaderOption[];
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface CascaderProps {
|
|
12
|
+
options: CascaderOption[];
|
|
13
|
+
value?: string[];
|
|
14
|
+
defaultValue?: string[];
|
|
15
|
+
onChange?: (path: string[]) => void;
|
|
16
|
+
placeholder?: string;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
/** `Cascader` — multi-column hierarchical selector. */
|
|
21
|
+
declare const Cascader: React.FC<CascaderProps>;
|
|
22
|
+
|
|
23
|
+
export { Cascader, type CascaderOption, type CascaderProps };
|