@fangxinyan/lumina 0.1.5 → 0.2.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/dist/{Accordion-GSBY5T5U.css → Accordion-3TQPKNN3.css} +8 -1
- package/dist/Accordion.cjs +2 -2
- package/dist/Accordion.d.cts +12 -0
- package/dist/Accordion.d.ts +12 -0
- package/dist/Accordion.js +1 -1
- package/dist/{Alert-LSKBYDRI.css → Alert-JJ7GB3UU.css} +11 -0
- package/dist/Alert.cjs +2 -2
- package/dist/Alert.d.cts +4 -0
- package/dist/Alert.d.ts +4 -0
- package/dist/Alert.js +1 -1
- package/dist/{Avatar-OXDSG5Q6.css → Avatar-R5A4AFKZ.css} +4 -0
- package/dist/Avatar.cjs +2 -2
- package/dist/Avatar.d.cts +2 -0
- package/dist/Avatar.d.ts +2 -0
- package/dist/Avatar.js +1 -1
- package/dist/{Button-5UI7QXGU.css → Button-SDQD25AG.css} +2 -0
- package/dist/Button.cjs +3 -3
- package/dist/Button.d.cts +2 -0
- package/dist/Button.d.ts +2 -0
- package/dist/Button.js +1 -1
- package/dist/Calendar.cjs +2 -2
- package/dist/Calendar.d.cts +8 -0
- package/dist/Calendar.d.ts +8 -0
- package/dist/Calendar.js +1 -1
- package/dist/{Card-2CHHFD4Y.css → Card-RG7ECXL2.css} +11 -0
- package/dist/Card.cjs +3 -3
- package/dist/Card.d.cts +2 -0
- package/dist/Card.d.ts +2 -0
- package/dist/Card.js +1 -1
- package/dist/{Divider-Z37INS5E.css → Divider-OEE4Q2KS.css} +31 -0
- package/dist/Divider.cjs +2 -2
- package/dist/Divider.d.cts +7 -0
- package/dist/Divider.d.ts +7 -0
- package/dist/Divider.js +1 -1
- package/dist/Drawer-IPGB4CXH.css +101 -0
- package/dist/Drawer.cjs +13 -0
- package/dist/Drawer.cjs.map +1 -0
- package/dist/Drawer.d.cts +45 -0
- package/dist/Drawer.d.ts +45 -0
- package/dist/Drawer.js +4 -0
- package/dist/Drawer.js.map +1 -0
- package/dist/{Empty-VM23UNLQ.css → Empty-NQ72W3D7.css} +22 -0
- package/dist/Empty.cjs +4 -4
- package/dist/Empty.d.cts +42 -2
- package/dist/Empty.d.ts +42 -2
- package/dist/Empty.js +1 -1
- package/dist/Input-33CAH4O6.css +134 -0
- package/dist/Input.cjs +3 -3
- package/dist/Input.d.cts +17 -1
- package/dist/Input.d.ts +17 -1
- package/dist/Input.js +1 -1
- package/dist/Modal-N4YVLEWW.css +72 -0
- package/dist/Modal.cjs +3 -7
- package/dist/Modal.d.cts +37 -8
- package/dist/Modal.d.ts +37 -8
- package/dist/Modal.js +2 -2
- package/dist/{Pagination-6FFOI4NM.css → Pagination-YIRYJUXP.css} +33 -0
- package/dist/Pagination.cjs +5 -2
- package/dist/Pagination.d.cts +14 -0
- package/dist/Pagination.d.ts +14 -0
- package/dist/Pagination.js +4 -1
- package/dist/Select.cjs +3 -3
- package/dist/Select.js +2 -2
- package/dist/{Slider-RE4HZQKF.css → Slider-X4PVA65R.css} +51 -2
- package/dist/Slider.cjs +2 -2
- package/dist/Slider.d.cts +20 -5
- package/dist/Slider.d.ts +20 -5
- package/dist/Slider.js +1 -1
- package/dist/Switch-36KJNDXM.css +92 -0
- package/dist/Switch.cjs +2 -2
- package/dist/Switch.d.cts +4 -0
- package/dist/Switch.d.ts +4 -0
- package/dist/Switch.js +1 -1
- package/dist/Table-ADVN6LXP.css +295 -0
- package/dist/Table.cjs +7 -3
- package/dist/Table.d.cts +103 -7
- package/dist/Table.d.ts +103 -7
- package/dist/Table.js +5 -1
- package/dist/{Tabs-A27TSZOP.css → Tabs-RHK6XAFF.css} +7 -0
- package/dist/Tabs.cjs +3 -3
- package/dist/Tabs.d.cts +2 -0
- package/dist/Tabs.d.ts +2 -0
- package/dist/Tabs.js +1 -1
- package/dist/{Tag-EYOY3UWG.css → Tag-FGDY3W7E.css} +2 -0
- package/dist/Tag.cjs +3 -3
- package/dist/Tag.d.cts +5 -0
- package/dist/Tag.d.ts +5 -0
- package/dist/Tag.js +1 -1
- package/dist/chunk-437LB2V4.js +111 -0
- package/dist/chunk-437LB2V4.js.map +1 -0
- package/dist/chunk-4MR4GVTD.js +73 -0
- package/dist/chunk-4MR4GVTD.js.map +1 -0
- package/dist/{chunk-OXYFB2ZI.js → chunk-4U4OY5RA.js} +11 -5
- package/dist/chunk-4U4OY5RA.js.map +1 -0
- package/dist/chunk-55NTFU7Y.js +476 -0
- package/dist/chunk-55NTFU7Y.js.map +1 -0
- package/dist/{chunk-5EYI27B6.js → chunk-77BVQNAQ.js} +5 -3
- package/dist/chunk-77BVQNAQ.js.map +1 -0
- package/dist/chunk-AEJJGUEN.cjs +127 -0
- package/dist/chunk-AEJJGUEN.cjs.map +1 -0
- package/dist/{chunk-3QWHDCHJ.js → chunk-AJZKESHB.js} +13 -4
- package/dist/chunk-AJZKESHB.js.map +1 -0
- package/dist/{chunk-NZPJ7BUB.cjs → chunk-AXMEZGEG.cjs} +13 -4
- package/dist/chunk-AXMEZGEG.cjs.map +1 -0
- package/dist/{chunk-HTP6UEVR.js → chunk-BBPNQ44M.js} +22 -6
- package/dist/chunk-BBPNQ44M.js.map +1 -0
- package/dist/chunk-CCBHZYE6.cjs +150 -0
- package/dist/chunk-CCBHZYE6.cjs.map +1 -0
- package/dist/{chunk-KGYLUZOU.cjs → chunk-EPFYIR63.cjs} +5 -5
- package/dist/{chunk-KGYLUZOU.cjs.map → chunk-EPFYIR63.cjs.map} +1 -1
- package/dist/chunk-F7HW2PYR.cjs +119 -0
- package/dist/chunk-F7HW2PYR.cjs.map +1 -0
- package/dist/chunk-GIVMKGZN.js +39 -0
- package/dist/chunk-GIVMKGZN.js.map +1 -0
- package/dist/{chunk-FMG3ZPGK.js → chunk-H6FCIJOP.js} +5 -3
- package/dist/chunk-H6FCIJOP.js.map +1 -0
- package/dist/{chunk-ALFDP5WX.cjs → chunk-IDM6JJLP.cjs} +22 -6
- package/dist/chunk-IDM6JJLP.cjs.map +1 -0
- package/dist/chunk-IFERLHCL.cjs +499 -0
- package/dist/chunk-IFERLHCL.cjs.map +1 -0
- package/dist/chunk-IWVKITPN.js +102 -0
- package/dist/chunk-IWVKITPN.js.map +1 -0
- package/dist/{chunk-I2ERCHFV.cjs → chunk-JKLQOB2F.cjs} +11 -5
- package/dist/chunk-JKLQOB2F.cjs.map +1 -0
- package/dist/{chunk-IGHLSNXT.cjs → chunk-K7PVJLW4.cjs} +51 -4
- package/dist/chunk-K7PVJLW4.cjs.map +1 -0
- package/dist/chunk-LDENBYRC.cjs +210 -0
- package/dist/chunk-LDENBYRC.cjs.map +1 -0
- package/dist/chunk-LSLYY5FN.js +125 -0
- package/dist/chunk-LSLYY5FN.js.map +1 -0
- package/dist/chunk-NSUD5B22.js +187 -0
- package/dist/chunk-NSUD5B22.js.map +1 -0
- package/dist/{chunk-AAMYURWQ.cjs → chunk-OPTTHURA.cjs} +5 -3
- package/dist/chunk-OPTTHURA.cjs.map +1 -0
- package/dist/{chunk-F3NHM4GX.js → chunk-OYGFMXAA.js} +13 -4
- package/dist/chunk-OYGFMXAA.js.map +1 -0
- package/dist/chunk-PBBHUUXU.cjs +133 -0
- package/dist/chunk-PBBHUUXU.cjs.map +1 -0
- package/dist/chunk-RDLPX7RK.cjs +95 -0
- package/dist/chunk-RDLPX7RK.cjs.map +1 -0
- package/dist/{chunk-XFRP2MBR.js → chunk-TYQ5CN2C.js} +51 -4
- package/dist/chunk-TYQ5CN2C.js.map +1 -0
- package/dist/{chunk-7CKHWCEA.cjs → chunk-TZSWDH5T.cjs} +5 -3
- package/dist/chunk-TZSWDH5T.cjs.map +1 -0
- package/dist/{chunk-VMHNKD3N.cjs → chunk-URF6RBW6.cjs} +13 -4
- package/dist/chunk-URF6RBW6.cjs.map +1 -0
- package/dist/{chunk-G3UWXSNQ.js → chunk-V34OPWKZ.js} +5 -4
- package/dist/chunk-V34OPWKZ.js.map +1 -0
- package/dist/{chunk-ITGCHU3Y.cjs → chunk-VICGQC6G.cjs} +5 -4
- package/dist/chunk-VICGQC6G.cjs.map +1 -0
- package/dist/chunk-YEOARJKR.cjs +40 -0
- package/dist/chunk-YEOARJKR.cjs.map +1 -0
- package/dist/chunk-Z5X5AMLA.cjs +41 -0
- package/dist/chunk-Z5X5AMLA.cjs.map +1 -0
- package/dist/chunk-Z7P6QGMT.js +115 -0
- package/dist/chunk-Z7P6QGMT.js.map +1 -0
- package/dist/{chunk-OYH6A7IQ.js → chunk-ZVCMXDTP.js} +3 -3
- package/dist/{chunk-OYH6A7IQ.js.map → chunk-ZVCMXDTP.js.map} +1 -1
- package/dist/chunk-ZWP4LSS3.js +38 -0
- package/dist/chunk-ZWP4LSS3.js.map +1 -0
- package/dist/index.cjs +57 -56
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +19 -18
- package/dist/index.js.map +1 -1
- package/dist/styles.css +566 -50
- package/package.json +1 -1
- package/dist/Input-Z526ARZP.css +0 -66
- package/dist/Modal-AYKNIWWQ.css +0 -79
- package/dist/Switch-NP7KKJOX.css +0 -44
- package/dist/Table-ZDPGWLH3.css +0 -139
- package/dist/chunk-2VA2HSL4.cjs +0 -121
- package/dist/chunk-2VA2HSL4.cjs.map +0 -1
- package/dist/chunk-2W2AJUZW.js +0 -118
- package/dist/chunk-2W2AJUZW.js.map +0 -1
- package/dist/chunk-3QWHDCHJ.js.map +0 -1
- package/dist/chunk-4AA22BOG.js +0 -63
- package/dist/chunk-4AA22BOG.js.map +0 -1
- package/dist/chunk-5EYI27B6.js.map +0 -1
- package/dist/chunk-77NP67ML.cjs +0 -70
- package/dist/chunk-77NP67ML.cjs.map +0 -1
- package/dist/chunk-7CKHWCEA.cjs.map +0 -1
- package/dist/chunk-7NM5BRUX.js +0 -91
- package/dist/chunk-7NM5BRUX.js.map +0 -1
- package/dist/chunk-7UJI437T.js +0 -49
- package/dist/chunk-7UJI437T.js.map +0 -1
- package/dist/chunk-AAMYURWQ.cjs.map +0 -1
- package/dist/chunk-ALFDP5WX.cjs.map +0 -1
- package/dist/chunk-F3NHM4GX.js.map +0 -1
- package/dist/chunk-FMG3ZPGK.js.map +0 -1
- package/dist/chunk-G3UWXSNQ.js.map +0 -1
- package/dist/chunk-HTP6UEVR.js.map +0 -1
- package/dist/chunk-I2ERCHFV.cjs.map +0 -1
- package/dist/chunk-IBZAGURN.cjs +0 -71
- package/dist/chunk-IBZAGURN.cjs.map +0 -1
- package/dist/chunk-IGHLSNXT.cjs.map +0 -1
- package/dist/chunk-ITGCHU3Y.cjs.map +0 -1
- package/dist/chunk-JNFCTYJT.cjs +0 -31
- package/dist/chunk-JNFCTYJT.cjs.map +0 -1
- package/dist/chunk-JWFVSBVX.cjs +0 -30
- package/dist/chunk-JWFVSBVX.cjs.map +0 -1
- package/dist/chunk-K67KIKX4.cjs +0 -67
- package/dist/chunk-K67KIKX4.cjs.map +0 -1
- package/dist/chunk-KF4MCHZL.cjs +0 -105
- package/dist/chunk-KF4MCHZL.cjs.map +0 -1
- package/dist/chunk-M6OTFXZA.js +0 -48
- package/dist/chunk-M6OTFXZA.js.map +0 -1
- package/dist/chunk-NWJW5KLN.js +0 -29
- package/dist/chunk-NWJW5KLN.js.map +0 -1
- package/dist/chunk-NZPJ7BUB.cjs.map +0 -1
- package/dist/chunk-OXYFB2ZI.js.map +0 -1
- package/dist/chunk-Q33V7MSK.js +0 -79
- package/dist/chunk-Q33V7MSK.js.map +0 -1
- package/dist/chunk-QT7SJITQ.cjs +0 -114
- package/dist/chunk-QT7SJITQ.cjs.map +0 -1
- package/dist/chunk-VMHNKD3N.cjs.map +0 -1
- package/dist/chunk-VXITDXLW.js +0 -28
- package/dist/chunk-VXITDXLW.js.map +0 -1
- package/dist/chunk-XFRP2MBR.js.map +0 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
box-shadow: var(--neu-out-sm);
|
|
7
7
|
overflow: hidden;
|
|
8
8
|
}
|
|
9
|
+
.accordion-item.disabled { opacity: 0.5; }
|
|
9
10
|
.accordion-head {
|
|
10
11
|
width: 100%;
|
|
11
12
|
border: none;
|
|
@@ -21,6 +22,8 @@
|
|
|
21
22
|
color: var(--fg);
|
|
22
23
|
text-align: left;
|
|
23
24
|
}
|
|
25
|
+
.accordion-item.disabled .accordion-head { cursor: not-allowed; }
|
|
26
|
+
.accordion-item.icon-only .accordion-head:not(:disabled) { cursor: default; }
|
|
24
27
|
.accordion-body {
|
|
25
28
|
max-height: 0;
|
|
26
29
|
overflow: hidden;
|
|
@@ -31,8 +34,12 @@
|
|
|
31
34
|
.accordion-item.open .accordion-body { max-height: 320px; }
|
|
32
35
|
.accordion-body-inner { padding: 0 18px 16px; }
|
|
33
36
|
.accordion-chev {
|
|
34
|
-
transition: transform var(--dur) var(--ease);
|
|
37
|
+
transition: transform var(--dur) var(--ease), color var(--dur) var(--ease);
|
|
35
38
|
color: var(--fg-subtle);
|
|
36
39
|
display: inline-flex;
|
|
40
|
+
border-radius: 6px;
|
|
41
|
+
padding: 2px;
|
|
37
42
|
}
|
|
43
|
+
.accordion-chev.clickable { cursor: pointer; }
|
|
44
|
+
.accordion-chev.clickable:hover { color: var(--fg); background: var(--bg); box-shadow: var(--neu-flat); }
|
|
38
45
|
.accordion-item.open .accordion-chev { transform: rotate(180deg); color: var(--accent); }
|
package/dist/Accordion.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkRDLPX7RK_cjs = require('./chunk-RDLPX7RK.cjs');
|
|
4
4
|
require('./chunk-YVO7XO4W.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "Accordion", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkRDLPX7RK_cjs.Accordion; }
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=Accordion.cjs.map
|
|
13
13
|
//# sourceMappingURL=Accordion.cjs.map
|
package/dist/Accordion.d.cts
CHANGED
|
@@ -10,6 +10,18 @@ interface AccordionProps {
|
|
|
10
10
|
items: AccordionItem[];
|
|
11
11
|
/** If true, multiple sections can be open at once. */
|
|
12
12
|
multiple?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Accordion mode — at most one item open at a time. Takes precedence over `multiple`
|
|
15
|
+
* when both are set.
|
|
16
|
+
*/
|
|
17
|
+
accordion?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* What triggers expansion.
|
|
20
|
+
* - `"header"` (default): clicking anywhere on the header toggles.
|
|
21
|
+
* - `"icon"`: only the chevron icon is clickable.
|
|
22
|
+
* - `"disabled"`: the panel cannot be toggled.
|
|
23
|
+
*/
|
|
24
|
+
collapsible?: "header" | "icon" | "disabled";
|
|
13
25
|
activeKeys?: string[];
|
|
14
26
|
defaultActiveKeys?: string[];
|
|
15
27
|
onChange?: (keys: string[]) => void;
|
package/dist/Accordion.d.ts
CHANGED
|
@@ -10,6 +10,18 @@ interface AccordionProps {
|
|
|
10
10
|
items: AccordionItem[];
|
|
11
11
|
/** If true, multiple sections can be open at once. */
|
|
12
12
|
multiple?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Accordion mode — at most one item open at a time. Takes precedence over `multiple`
|
|
15
|
+
* when both are set.
|
|
16
|
+
*/
|
|
17
|
+
accordion?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* What triggers expansion.
|
|
20
|
+
* - `"header"` (default): clicking anywhere on the header toggles.
|
|
21
|
+
* - `"icon"`: only the chevron icon is clickable.
|
|
22
|
+
* - `"disabled"`: the panel cannot be toggled.
|
|
23
|
+
*/
|
|
24
|
+
collapsible?: "header" | "icon" | "disabled";
|
|
13
25
|
activeKeys?: string[];
|
|
14
26
|
defaultActiveKeys?: string[];
|
|
15
27
|
onChange?: (keys: string[]) => void;
|
package/dist/Accordion.js
CHANGED
|
@@ -24,6 +24,17 @@
|
|
|
24
24
|
.alert-desc { font-size: 12px; color: var(--fg-muted); line-height: 1.55; }
|
|
25
25
|
.alert.no-title { align-items: center; }
|
|
26
26
|
.alert.no-title .alert-ico { margin-top: 0; }
|
|
27
|
+
.alert.no-icon { gap: 0; }
|
|
28
|
+
|
|
29
|
+
.alert-action {
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
gap: 6px;
|
|
33
|
+
flex-shrink: 0;
|
|
34
|
+
margin-left: 4px;
|
|
35
|
+
}
|
|
36
|
+
.alert:has(.alert-close) .alert-action { margin-right: 26px; }
|
|
37
|
+
|
|
27
38
|
.alert-close {
|
|
28
39
|
position: absolute; top: 10px; right: 10px;
|
|
29
40
|
width: 22px; height: 22px; border-radius: 7px;
|
package/dist/Alert.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkZ5X5AMLA_cjs = require('./chunk-Z5X5AMLA.cjs');
|
|
4
4
|
require('./chunk-YVO7XO4W.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "Alert", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkZ5X5AMLA_cjs.Alert; }
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=Alert.cjs.map
|
|
13
13
|
//# sourceMappingURL=Alert.cjs.map
|
package/dist/Alert.d.cts
CHANGED
|
@@ -7,8 +7,12 @@ interface AlertProps {
|
|
|
7
7
|
title?: React.ReactNode;
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
icon?: IconName;
|
|
10
|
+
/** Controls the leading semantic icon. Defaults to `true`. */
|
|
11
|
+
showIcon?: boolean;
|
|
10
12
|
closable?: boolean;
|
|
11
13
|
onClose?: () => void;
|
|
14
|
+
/** Right-side action area, rendered after the content and before the close button. */
|
|
15
|
+
action?: React.ReactNode;
|
|
12
16
|
className?: string;
|
|
13
17
|
}
|
|
14
18
|
/** `Alert` — inline contextual message. */
|
package/dist/Alert.d.ts
CHANGED
|
@@ -7,8 +7,12 @@ interface AlertProps {
|
|
|
7
7
|
title?: React.ReactNode;
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
icon?: IconName;
|
|
10
|
+
/** Controls the leading semantic icon. Defaults to `true`. */
|
|
11
|
+
showIcon?: boolean;
|
|
10
12
|
closable?: boolean;
|
|
11
13
|
onClose?: () => void;
|
|
14
|
+
/** Right-side action area, rendered after the content and before the close button. */
|
|
15
|
+
action?: React.ReactNode;
|
|
12
16
|
className?: string;
|
|
13
17
|
}
|
|
14
18
|
/** `Alert` — inline contextual message. */
|
package/dist/Alert.js
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
.avatar.sm { --size: 28px; }
|
|
17
17
|
.avatar.lg { --size: 56px; }
|
|
18
18
|
.avatar.xl { --size: 80px; }
|
|
19
|
+
.avatar.square { border-radius: var(--r-md); }
|
|
20
|
+
.avatar.square.sm { border-radius: var(--r-sm); }
|
|
21
|
+
.avatar.square.lg,
|
|
22
|
+
.avatar.square.xl { border-radius: var(--r-lg); }
|
|
19
23
|
.avatar img { width: 100%; height: 100%; object-fit: cover; }
|
|
20
24
|
.avatar-status {
|
|
21
25
|
position: absolute;
|
package/dist/Avatar.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYEOARJKR_cjs = require('./chunk-YEOARJKR.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "Avatar", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkYEOARJKR_cjs.Avatar; }
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=Avatar.cjs.map
|
|
12
12
|
//# sourceMappingURL=Avatar.cjs.map
|
package/dist/Avatar.d.cts
CHANGED
|
@@ -6,6 +6,8 @@ interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "childr
|
|
|
6
6
|
/** Initials if no image. Auto-derived from `alt` if omitted. */
|
|
7
7
|
initials?: string;
|
|
8
8
|
size?: number | "sm" | "md" | "lg" | "xl";
|
|
9
|
+
/** Shape — circular (default) or rounded-square. */
|
|
10
|
+
shape?: "circle" | "square";
|
|
9
11
|
/** Status dot. */
|
|
10
12
|
status?: "online" | "busy" | "away" | "offline";
|
|
11
13
|
}
|
package/dist/Avatar.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "childr
|
|
|
6
6
|
/** Initials if no image. Auto-derived from `alt` if omitted. */
|
|
7
7
|
initials?: string;
|
|
8
8
|
size?: number | "sm" | "md" | "lg" | "xl";
|
|
9
|
+
/** Shape — circular (default) or rounded-square. */
|
|
10
|
+
shape?: "circle" | "square";
|
|
9
11
|
/** Status dot. */
|
|
10
12
|
status?: "online" | "busy" | "away" | "offline";
|
|
11
13
|
}
|
package/dist/Avatar.js
CHANGED
|
@@ -77,6 +77,8 @@
|
|
|
77
77
|
.btn.lg { height: 52px; padding: 0 24px; font-size: 15px; border-radius: var(--r-lg); }
|
|
78
78
|
.btn.lg.icon { width: 52px; padding: 0; }
|
|
79
79
|
|
|
80
|
+
.btn.block { width: 100%; flex-shrink: 1; }
|
|
81
|
+
|
|
80
82
|
.btn[disabled], .btn.disabled, .btn:disabled {
|
|
81
83
|
color: var(--fg-subtle);
|
|
82
84
|
cursor: not-allowed;
|
package/dist/Button.cjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkOPTTHURA_cjs = require('./chunk-OPTTHURA.cjs');
|
|
4
4
|
require('./chunk-YVO7XO4W.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "Button", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkOPTTHURA_cjs.Button; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "IconButton", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkOPTTHURA_cjs.IconButton; }
|
|
15
15
|
});
|
|
16
16
|
//# sourceMappingURL=Button.cjs.map
|
|
17
17
|
//# sourceMappingURL=Button.cjs.map
|
package/dist/Button.d.cts
CHANGED
|
@@ -14,6 +14,8 @@ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>
|
|
|
14
14
|
trailingIcon?: IconName;
|
|
15
15
|
/** Show spinner + disable interaction. */
|
|
16
16
|
loading?: boolean;
|
|
17
|
+
/** Make the button fill the container's width. */
|
|
18
|
+
block?: boolean;
|
|
17
19
|
/** Button type attribute. Defaults to "button" to avoid accidental form submits. */
|
|
18
20
|
type?: "button" | "submit" | "reset";
|
|
19
21
|
/** Extra class names. */
|
package/dist/Button.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>
|
|
|
14
14
|
trailingIcon?: IconName;
|
|
15
15
|
/** Show spinner + disable interaction. */
|
|
16
16
|
loading?: boolean;
|
|
17
|
+
/** Make the button fill the container's width. */
|
|
18
|
+
block?: boolean;
|
|
17
19
|
/** Button type attribute. Defaults to "button" to avoid accidental form submits. */
|
|
18
20
|
type?: "button" | "submit" | "reset";
|
|
19
21
|
/** Extra class names. */
|
package/dist/Button.js
CHANGED
package/dist/Calendar.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTZSWDH5T_cjs = require('./chunk-TZSWDH5T.cjs');
|
|
4
4
|
require('./chunk-YVO7XO4W.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "Calendar", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkTZSWDH5T_cjs.Calendar; }
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=Calendar.cjs.map
|
|
13
13
|
//# sourceMappingURL=Calendar.cjs.map
|
package/dist/Calendar.d.cts
CHANGED
|
@@ -8,6 +8,14 @@ interface CalendarProps {
|
|
|
8
8
|
min?: Date;
|
|
9
9
|
/** Max selectable date. */
|
|
10
10
|
max?: Date;
|
|
11
|
+
/**
|
|
12
|
+
* Predicate that marks an individual cell as disabled. Disabled cells are
|
|
13
|
+
* greyed out, not clickable, and do not fire `onChange`.
|
|
14
|
+
* @example
|
|
15
|
+
* // disable weekends
|
|
16
|
+
* disabledDate={(d) => d.getDay() === 0 || d.getDay() === 6}
|
|
17
|
+
*/
|
|
18
|
+
disabledDate?: (date: Date) => boolean;
|
|
11
19
|
className?: string;
|
|
12
20
|
}
|
|
13
21
|
/** `Calendar` — month-view date picker. */
|
package/dist/Calendar.d.ts
CHANGED
|
@@ -8,6 +8,14 @@ interface CalendarProps {
|
|
|
8
8
|
min?: Date;
|
|
9
9
|
/** Max selectable date. */
|
|
10
10
|
max?: Date;
|
|
11
|
+
/**
|
|
12
|
+
* Predicate that marks an individual cell as disabled. Disabled cells are
|
|
13
|
+
* greyed out, not clickable, and do not fire `onChange`.
|
|
14
|
+
* @example
|
|
15
|
+
* // disable weekends
|
|
16
|
+
* disabledDate={(d) => d.getDay() === 0 || d.getDay() === 6}
|
|
17
|
+
*/
|
|
18
|
+
disabledDate?: (date: Date) => boolean;
|
|
11
19
|
className?: string;
|
|
12
20
|
}
|
|
13
21
|
/** `Calendar` — month-view date picker. */
|
package/dist/Calendar.js
CHANGED
|
@@ -11,6 +11,17 @@
|
|
|
11
11
|
.card.pad-sm { padding: var(--gap-3); }
|
|
12
12
|
.card.pad-lg { padding: var(--gap-6); }
|
|
13
13
|
|
|
14
|
+
.card.hoverable {
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
|
|
17
|
+
}
|
|
18
|
+
.card.hoverable:hover {
|
|
19
|
+
transform: translateY(-3px);
|
|
20
|
+
box-shadow: var(--neu-out-lg);
|
|
21
|
+
}
|
|
22
|
+
.card.hoverable.flat:hover { box-shadow: var(--neu-out-sm); }
|
|
23
|
+
.card.hoverable.sunken:hover { box-shadow: var(--neu-out); }
|
|
24
|
+
|
|
14
25
|
.panel {
|
|
15
26
|
background: var(--bg);
|
|
16
27
|
border-radius: var(--r-lg);
|
package/dist/Card.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJKLQOB2F_cjs = require('./chunk-JKLQOB2F.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "Card", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkJKLQOB2F_cjs.Card; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "Panel", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkJKLQOB2F_cjs.Panel; }
|
|
14
14
|
});
|
|
15
15
|
//# sourceMappingURL=Card.cjs.map
|
|
16
16
|
//# sourceMappingURL=Card.cjs.map
|
package/dist/Card.d.cts
CHANGED
|
@@ -5,6 +5,8 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
5
5
|
variant?: "raised" | "sunken" | "flat";
|
|
6
6
|
/** Inner padding. */
|
|
7
7
|
padding?: "none" | "sm" | "md" | "lg";
|
|
8
|
+
/** When true, the card raises and lifts on hover. */
|
|
9
|
+
hoverable?: boolean;
|
|
8
10
|
children?: React.ReactNode;
|
|
9
11
|
}
|
|
10
12
|
/**
|
package/dist/Card.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
5
5
|
variant?: "raised" | "sunken" | "flat";
|
|
6
6
|
/** Inner padding. */
|
|
7
7
|
padding?: "none" | "sm" | "md" | "lg";
|
|
8
|
+
/** When true, the card raises and lifts on hover. */
|
|
9
|
+
hoverable?: boolean;
|
|
8
10
|
children?: React.ReactNode;
|
|
9
11
|
}
|
|
10
12
|
/**
|
package/dist/Card.js
CHANGED
|
@@ -24,6 +24,30 @@
|
|
|
24
24
|
.divider.sunken:has(.divider-label) { background: transparent; box-shadow: none; }
|
|
25
25
|
.divider.sunken:has(.divider-label)::before,
|
|
26
26
|
.divider.sunken:has(.divider-label)::after { height: 2px; background: transparent; box-shadow: var(--neu-in-sm); }
|
|
27
|
+
|
|
28
|
+
/* ---- Dashed variant ---- */
|
|
29
|
+
.divider.dashed {
|
|
30
|
+
background: transparent;
|
|
31
|
+
box-shadow: none;
|
|
32
|
+
border-top: 1px dashed var(--divider);
|
|
33
|
+
border-radius: 0;
|
|
34
|
+
height: 0;
|
|
35
|
+
}
|
|
36
|
+
.divider.dashed.vertical {
|
|
37
|
+
width: 0;
|
|
38
|
+
border-top: none;
|
|
39
|
+
border-left: 1px dashed var(--divider);
|
|
40
|
+
}
|
|
41
|
+
.divider.dashed:has(.divider-label) { border-top: none; }
|
|
42
|
+
.divider.dashed:has(.divider-label)::before,
|
|
43
|
+
.divider.dashed:has(.divider-label)::after {
|
|
44
|
+
background: transparent;
|
|
45
|
+
box-shadow: none;
|
|
46
|
+
border-top: 1px dashed var(--divider);
|
|
47
|
+
height: 0;
|
|
48
|
+
border-radius: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
27
51
|
.divider-label {
|
|
28
52
|
display: flex; align-items: center; gap: 12px;
|
|
29
53
|
height: auto; background: transparent; box-shadow: none;
|
|
@@ -47,3 +71,10 @@
|
|
|
47
71
|
border-radius: 999px;
|
|
48
72
|
box-shadow: 0 1px 0 var(--shadow-light);
|
|
49
73
|
}
|
|
74
|
+
|
|
75
|
+
/* ---- Label orientation ---- */
|
|
76
|
+
.divider.orient-left::before { flex: 0 0 var(--gap-4); }
|
|
77
|
+
.divider.orient-left::after { flex: 1; }
|
|
78
|
+
.divider.orient-right::before { flex: 1; }
|
|
79
|
+
.divider.orient-right::after { flex: 0 0 var(--gap-4); }
|
|
80
|
+
/* center is default (both flex: 1) */
|
package/dist/Divider.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkAXMEZGEG_cjs = require('./chunk-AXMEZGEG.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "Divider", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkAXMEZGEG_cjs.Divider; }
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=Divider.cjs.map
|
|
12
12
|
//# sourceMappingURL=Divider.cjs.map
|
package/dist/Divider.d.cts
CHANGED
|
@@ -5,6 +5,13 @@ interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
5
5
|
label?: React.ReactNode;
|
|
6
6
|
/** Use recessed groove styling. */
|
|
7
7
|
sunken?: boolean;
|
|
8
|
+
/** Render as dashed lines instead of solid. */
|
|
9
|
+
dashed?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Label position for horizontal dividers. Defaults to `"center"`.
|
|
12
|
+
* Ignored when there is no `label`.
|
|
13
|
+
*/
|
|
14
|
+
orientation?: "left" | "center" | "right";
|
|
8
15
|
}
|
|
9
16
|
/** `Divider` — visual separator, horizontal or vertical. */
|
|
10
17
|
declare const Divider: React.FC<DividerProps>;
|
package/dist/Divider.d.ts
CHANGED
|
@@ -5,6 +5,13 @@ interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
5
5
|
label?: React.ReactNode;
|
|
6
6
|
/** Use recessed groove styling. */
|
|
7
7
|
sunken?: boolean;
|
|
8
|
+
/** Render as dashed lines instead of solid. */
|
|
9
|
+
dashed?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Label position for horizontal dividers. Defaults to `"center"`.
|
|
12
|
+
* Ignored when there is no `label`.
|
|
13
|
+
*/
|
|
14
|
+
orientation?: "left" | "center" | "right";
|
|
8
15
|
}
|
|
9
16
|
/** `Divider` — visual separator, horizontal or vertical. */
|
|
10
17
|
declare const Divider: React.FC<DividerProps>;
|
package/dist/Divider.js
CHANGED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/* ============ Drawer ============ */
|
|
2
|
+
.drawer-overlay {
|
|
3
|
+
position: fixed;
|
|
4
|
+
inset: 0;
|
|
5
|
+
background: color-mix(in oklch, var(--bg-sunken) 50%, transparent);
|
|
6
|
+
backdrop-filter: blur(4px);
|
|
7
|
+
z-index: 150;
|
|
8
|
+
animation: fadeIn var(--dur) var(--ease);
|
|
9
|
+
}
|
|
10
|
+
.drawer-overlay.hidden {
|
|
11
|
+
display: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.drawer {
|
|
15
|
+
position: fixed;
|
|
16
|
+
background: var(--bg);
|
|
17
|
+
padding: var(--gap-5);
|
|
18
|
+
z-index: 151;
|
|
19
|
+
overflow-y: auto;
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
}
|
|
23
|
+
.drawer.hidden {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.drawer.right {
|
|
28
|
+
top: 0; right: 0; bottom: 0;
|
|
29
|
+
width: min(420px, 92vw);
|
|
30
|
+
animation: drawerInRight var(--dur-slow) var(--ease);
|
|
31
|
+
box-shadow: -24px 0 60px -20px rgba(40, 55, 80, 0.25);
|
|
32
|
+
}
|
|
33
|
+
.drawer.left {
|
|
34
|
+
top: 0; left: 0; bottom: 0;
|
|
35
|
+
width: min(420px, 92vw);
|
|
36
|
+
animation: drawerInLeft var(--dur-slow) var(--ease);
|
|
37
|
+
box-shadow: 24px 0 60px -20px rgba(40, 55, 80, 0.25);
|
|
38
|
+
}
|
|
39
|
+
.drawer.top {
|
|
40
|
+
top: 0; left: 0; right: 0;
|
|
41
|
+
height: min(320px, 80vh);
|
|
42
|
+
animation: drawerInTop var(--dur-slow) var(--ease);
|
|
43
|
+
box-shadow: 0 24px 60px -20px rgba(40, 55, 80, 0.25);
|
|
44
|
+
}
|
|
45
|
+
.drawer.bottom {
|
|
46
|
+
bottom: 0; left: 0; right: 0;
|
|
47
|
+
height: min(320px, 80vh);
|
|
48
|
+
animation: drawerInBottom var(--dur-slow) var(--ease);
|
|
49
|
+
box-shadow: 0 -24px 60px -20px rgba(40, 55, 80, 0.25);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@keyframes drawerInRight { from { transform: translateX( 20px); opacity: 0; } }
|
|
53
|
+
@keyframes drawerInLeft { from { transform: translateX(-20px); opacity: 0; } }
|
|
54
|
+
@keyframes drawerInTop { from { transform: translateY(-20px); opacity: 0; } }
|
|
55
|
+
@keyframes drawerInBottom { from { transform: translateY( 20px); opacity: 0; } }
|
|
56
|
+
|
|
57
|
+
.drawer-head {
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
justify-content: space-between;
|
|
61
|
+
gap: var(--gap-3);
|
|
62
|
+
margin-bottom: var(--gap-4);
|
|
63
|
+
padding-bottom: var(--gap-4);
|
|
64
|
+
border-bottom: 1px solid var(--divider);
|
|
65
|
+
}
|
|
66
|
+
.drawer-head-right {
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
gap: var(--gap-3);
|
|
70
|
+
}
|
|
71
|
+
.drawer-title {
|
|
72
|
+
font-size: 16px;
|
|
73
|
+
font-weight: 600;
|
|
74
|
+
}
|
|
75
|
+
.drawer-close {
|
|
76
|
+
width: 28px; height: 28px;
|
|
77
|
+
border: none;
|
|
78
|
+
background: transparent;
|
|
79
|
+
border-radius: var(--r-sm);
|
|
80
|
+
display: grid;
|
|
81
|
+
place-items: center;
|
|
82
|
+
color: var(--fg-subtle);
|
|
83
|
+
cursor: pointer;
|
|
84
|
+
transition: all var(--dur-fast) var(--ease);
|
|
85
|
+
}
|
|
86
|
+
.drawer-close:hover {
|
|
87
|
+
color: var(--fg);
|
|
88
|
+
background: var(--bg);
|
|
89
|
+
box-shadow: var(--neu-flat);
|
|
90
|
+
}
|
|
91
|
+
.drawer-body {
|
|
92
|
+
flex: 1;
|
|
93
|
+
}
|
|
94
|
+
.drawer-foot {
|
|
95
|
+
display: flex;
|
|
96
|
+
gap: 10px;
|
|
97
|
+
justify-content: flex-end;
|
|
98
|
+
margin-top: var(--gap-4);
|
|
99
|
+
padding-top: var(--gap-4);
|
|
100
|
+
border-top: 1px solid var(--divider);
|
|
101
|
+
}
|
package/dist/Drawer.cjs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkAEJJGUEN_cjs = require('./chunk-AEJJGUEN.cjs');
|
|
4
|
+
require('./chunk-YVO7XO4W.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "Drawer", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkAEJJGUEN_cjs.Drawer; }
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=Drawer.cjs.map
|
|
13
|
+
//# sourceMappingURL=Drawer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Drawer.cjs"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface DrawerProps {
|
|
4
|
+
/** Whether the drawer is visible. */
|
|
5
|
+
open: boolean;
|
|
6
|
+
/** Close callback (triggered by mask click / close button / Esc). */
|
|
7
|
+
onClose?: () => void;
|
|
8
|
+
/** Which edge the drawer slides from. */
|
|
9
|
+
placement?: "left" | "right" | "top" | "bottom";
|
|
10
|
+
/** Width (for left/right) or height (for top/bottom). Number → px. */
|
|
11
|
+
size?: number | string;
|
|
12
|
+
/** Header title. */
|
|
13
|
+
title?: React.ReactNode;
|
|
14
|
+
/** Extra content rendered to the right of the title (e.g. action buttons). */
|
|
15
|
+
extra?: React.ReactNode;
|
|
16
|
+
/** Footer content. */
|
|
17
|
+
footer?: React.ReactNode;
|
|
18
|
+
/** Drawer body. */
|
|
19
|
+
children?: React.ReactNode;
|
|
20
|
+
/** Render the mask overlay. Default true. Set `false` for a non-blocking drawer. */
|
|
21
|
+
mask?: boolean;
|
|
22
|
+
/** Close when clicking the mask. Default true. Ignored when `mask` is false. */
|
|
23
|
+
maskClosable?: boolean;
|
|
24
|
+
/** Close on Escape key. Default true. */
|
|
25
|
+
keyboard?: boolean;
|
|
26
|
+
/** Show the close (×) button in the header. Default true. */
|
|
27
|
+
closable?: boolean;
|
|
28
|
+
/** Override the close icon node. */
|
|
29
|
+
closeIcon?: React.ReactNode;
|
|
30
|
+
/**
|
|
31
|
+
* When true the drawer's children are unmounted every time it closes.
|
|
32
|
+
* Default `false` — children stay mounted across open/close cycles so
|
|
33
|
+
* internal state (form fields, scroll position) is preserved.
|
|
34
|
+
*/
|
|
35
|
+
destroyOnClose?: boolean;
|
|
36
|
+
/** Fires after the open/close animation finishes. */
|
|
37
|
+
afterOpenChange?: (open: boolean) => void;
|
|
38
|
+
/** Stack index for nested drawers. */
|
|
39
|
+
zIndex?: number;
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
/** `Drawer` — slide-in panel from an edge. */
|
|
43
|
+
declare const Drawer: React.FC<DrawerProps>;
|
|
44
|
+
|
|
45
|
+
export { Drawer, type DrawerProps };
|