@fangxinyan/lumina 0.1.6 → 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.
Files changed (201) hide show
  1. package/dist/{Accordion-GSBY5T5U.css → Accordion-3TQPKNN3.css} +8 -1
  2. package/dist/Accordion.cjs +2 -2
  3. package/dist/Accordion.d.cts +12 -0
  4. package/dist/Accordion.d.ts +12 -0
  5. package/dist/Accordion.js +1 -1
  6. package/dist/{Alert-LSKBYDRI.css → Alert-JJ7GB3UU.css} +11 -0
  7. package/dist/Alert.cjs +2 -2
  8. package/dist/Alert.d.cts +4 -0
  9. package/dist/Alert.d.ts +4 -0
  10. package/dist/Alert.js +1 -1
  11. package/dist/{Avatar-OXDSG5Q6.css → Avatar-R5A4AFKZ.css} +4 -0
  12. package/dist/Avatar.cjs +2 -2
  13. package/dist/Avatar.d.cts +2 -0
  14. package/dist/Avatar.d.ts +2 -0
  15. package/dist/Avatar.js +1 -1
  16. package/dist/{Button-5UI7QXGU.css → Button-SDQD25AG.css} +2 -0
  17. package/dist/Button.cjs +3 -3
  18. package/dist/Button.d.cts +2 -0
  19. package/dist/Button.d.ts +2 -0
  20. package/dist/Button.js +1 -1
  21. package/dist/Calendar.cjs +2 -2
  22. package/dist/Calendar.d.cts +8 -0
  23. package/dist/Calendar.d.ts +8 -0
  24. package/dist/Calendar.js +1 -1
  25. package/dist/{Card-2CHHFD4Y.css → Card-RG7ECXL2.css} +11 -0
  26. package/dist/Card.cjs +3 -3
  27. package/dist/Card.d.cts +2 -0
  28. package/dist/Card.d.ts +2 -0
  29. package/dist/Card.js +1 -1
  30. package/dist/{Divider-Z37INS5E.css → Divider-OEE4Q2KS.css} +31 -0
  31. package/dist/Divider.cjs +2 -2
  32. package/dist/Divider.d.cts +7 -0
  33. package/dist/Divider.d.ts +7 -0
  34. package/dist/Divider.js +1 -1
  35. package/dist/{Empty-VM23UNLQ.css → Empty-NQ72W3D7.css} +22 -0
  36. package/dist/Empty.cjs +4 -4
  37. package/dist/Empty.d.cts +42 -2
  38. package/dist/Empty.d.ts +42 -2
  39. package/dist/Empty.js +1 -1
  40. package/dist/Input-33CAH4O6.css +134 -0
  41. package/dist/Input.cjs +3 -3
  42. package/dist/Input.d.cts +17 -1
  43. package/dist/Input.d.ts +17 -1
  44. package/dist/Input.js +1 -1
  45. package/dist/Modal.cjs +3 -3
  46. package/dist/Modal.js +2 -2
  47. package/dist/{Pagination-6FFOI4NM.css → Pagination-YIRYJUXP.css} +33 -0
  48. package/dist/Pagination.cjs +5 -2
  49. package/dist/Pagination.d.cts +14 -0
  50. package/dist/Pagination.d.ts +14 -0
  51. package/dist/Pagination.js +4 -1
  52. package/dist/Select.cjs +3 -3
  53. package/dist/Select.js +2 -2
  54. package/dist/{Slider-RE4HZQKF.css → Slider-X4PVA65R.css} +51 -2
  55. package/dist/Slider.cjs +2 -2
  56. package/dist/Slider.d.cts +20 -5
  57. package/dist/Slider.d.ts +20 -5
  58. package/dist/Slider.js +1 -1
  59. package/dist/Switch-36KJNDXM.css +92 -0
  60. package/dist/Switch.cjs +2 -2
  61. package/dist/Switch.d.cts +4 -0
  62. package/dist/Switch.d.ts +4 -0
  63. package/dist/Switch.js +1 -1
  64. package/dist/Table-ADVN6LXP.css +295 -0
  65. package/dist/Table.cjs +7 -3
  66. package/dist/Table.d.cts +103 -7
  67. package/dist/Table.d.ts +103 -7
  68. package/dist/Table.js +5 -1
  69. package/dist/{Tabs-A27TSZOP.css → Tabs-RHK6XAFF.css} +7 -0
  70. package/dist/Tabs.cjs +3 -3
  71. package/dist/Tabs.d.cts +2 -0
  72. package/dist/Tabs.d.ts +2 -0
  73. package/dist/Tabs.js +1 -1
  74. package/dist/{Tag-EYOY3UWG.css → Tag-FGDY3W7E.css} +2 -0
  75. package/dist/Tag.cjs +3 -3
  76. package/dist/Tag.d.cts +5 -0
  77. package/dist/Tag.d.ts +5 -0
  78. package/dist/Tag.js +1 -1
  79. package/dist/chunk-437LB2V4.js +111 -0
  80. package/dist/chunk-437LB2V4.js.map +1 -0
  81. package/dist/chunk-4MR4GVTD.js +73 -0
  82. package/dist/chunk-4MR4GVTD.js.map +1 -0
  83. package/dist/{chunk-OXYFB2ZI.js → chunk-4U4OY5RA.js} +11 -5
  84. package/dist/chunk-4U4OY5RA.js.map +1 -0
  85. package/dist/chunk-55NTFU7Y.js +476 -0
  86. package/dist/chunk-55NTFU7Y.js.map +1 -0
  87. package/dist/{chunk-5EYI27B6.js → chunk-77BVQNAQ.js} +5 -3
  88. package/dist/chunk-77BVQNAQ.js.map +1 -0
  89. package/dist/{chunk-3QWHDCHJ.js → chunk-AJZKESHB.js} +13 -4
  90. package/dist/chunk-AJZKESHB.js.map +1 -0
  91. package/dist/{chunk-NZPJ7BUB.cjs → chunk-AXMEZGEG.cjs} +13 -4
  92. package/dist/chunk-AXMEZGEG.cjs.map +1 -0
  93. package/dist/{chunk-HTP6UEVR.js → chunk-BBPNQ44M.js} +22 -6
  94. package/dist/chunk-BBPNQ44M.js.map +1 -0
  95. package/dist/{chunk-QQXIWOI3.cjs → chunk-CCBHZYE6.cjs} +5 -5
  96. package/dist/{chunk-QQXIWOI3.cjs.map → chunk-CCBHZYE6.cjs.map} +1 -1
  97. package/dist/{chunk-KGYLUZOU.cjs → chunk-EPFYIR63.cjs} +5 -5
  98. package/dist/{chunk-KGYLUZOU.cjs.map → chunk-EPFYIR63.cjs.map} +1 -1
  99. package/dist/chunk-F7HW2PYR.cjs +119 -0
  100. package/dist/chunk-F7HW2PYR.cjs.map +1 -0
  101. package/dist/chunk-GIVMKGZN.js +39 -0
  102. package/dist/chunk-GIVMKGZN.js.map +1 -0
  103. package/dist/{chunk-FMG3ZPGK.js → chunk-H6FCIJOP.js} +5 -3
  104. package/dist/chunk-H6FCIJOP.js.map +1 -0
  105. package/dist/{chunk-ALFDP5WX.cjs → chunk-IDM6JJLP.cjs} +22 -6
  106. package/dist/chunk-IDM6JJLP.cjs.map +1 -0
  107. package/dist/chunk-IFERLHCL.cjs +499 -0
  108. package/dist/chunk-IFERLHCL.cjs.map +1 -0
  109. package/dist/{chunk-I2ERCHFV.cjs → chunk-JKLQOB2F.cjs} +11 -5
  110. package/dist/chunk-JKLQOB2F.cjs.map +1 -0
  111. package/dist/{chunk-IGHLSNXT.cjs → chunk-K7PVJLW4.cjs} +51 -4
  112. package/dist/chunk-K7PVJLW4.cjs.map +1 -0
  113. package/dist/chunk-LDENBYRC.cjs +210 -0
  114. package/dist/chunk-LDENBYRC.cjs.map +1 -0
  115. package/dist/{chunk-OOBSH7EL.js → chunk-LSLYY5FN.js} +3 -3
  116. package/dist/{chunk-OOBSH7EL.js.map → chunk-LSLYY5FN.js.map} +1 -1
  117. package/dist/chunk-NSUD5B22.js +187 -0
  118. package/dist/chunk-NSUD5B22.js.map +1 -0
  119. package/dist/{chunk-AAMYURWQ.cjs → chunk-OPTTHURA.cjs} +5 -3
  120. package/dist/chunk-OPTTHURA.cjs.map +1 -0
  121. package/dist/{chunk-F3NHM4GX.js → chunk-OYGFMXAA.js} +13 -4
  122. package/dist/chunk-OYGFMXAA.js.map +1 -0
  123. package/dist/chunk-PBBHUUXU.cjs +133 -0
  124. package/dist/chunk-PBBHUUXU.cjs.map +1 -0
  125. package/dist/chunk-RDLPX7RK.cjs +95 -0
  126. package/dist/chunk-RDLPX7RK.cjs.map +1 -0
  127. package/dist/{chunk-XFRP2MBR.js → chunk-TYQ5CN2C.js} +51 -4
  128. package/dist/chunk-TYQ5CN2C.js.map +1 -0
  129. package/dist/{chunk-7CKHWCEA.cjs → chunk-TZSWDH5T.cjs} +5 -3
  130. package/dist/chunk-TZSWDH5T.cjs.map +1 -0
  131. package/dist/{chunk-VMHNKD3N.cjs → chunk-URF6RBW6.cjs} +13 -4
  132. package/dist/chunk-URF6RBW6.cjs.map +1 -0
  133. package/dist/{chunk-G3UWXSNQ.js → chunk-V34OPWKZ.js} +5 -4
  134. package/dist/chunk-V34OPWKZ.js.map +1 -0
  135. package/dist/{chunk-ITGCHU3Y.cjs → chunk-VICGQC6G.cjs} +5 -4
  136. package/dist/chunk-VICGQC6G.cjs.map +1 -0
  137. package/dist/chunk-YEOARJKR.cjs +40 -0
  138. package/dist/chunk-YEOARJKR.cjs.map +1 -0
  139. package/dist/chunk-Z5X5AMLA.cjs +41 -0
  140. package/dist/chunk-Z5X5AMLA.cjs.map +1 -0
  141. package/dist/chunk-Z7P6QGMT.js +115 -0
  142. package/dist/chunk-Z7P6QGMT.js.map +1 -0
  143. package/dist/{chunk-OYH6A7IQ.js → chunk-ZVCMXDTP.js} +3 -3
  144. package/dist/{chunk-OYH6A7IQ.js.map → chunk-ZVCMXDTP.js.map} +1 -1
  145. package/dist/chunk-ZWP4LSS3.js +38 -0
  146. package/dist/chunk-ZWP4LSS3.js.map +1 -0
  147. package/dist/index.cjs +43 -43
  148. package/dist/index.cjs.map +1 -1
  149. package/dist/index.d.cts +4 -4
  150. package/dist/index.d.ts +4 -4
  151. package/dist/index.js +18 -18
  152. package/dist/index.js.map +1 -1
  153. package/dist/styles.css +455 -30
  154. package/package.json +1 -1
  155. package/dist/Input-Z526ARZP.css +0 -66
  156. package/dist/Switch-NP7KKJOX.css +0 -44
  157. package/dist/Table-ZDPGWLH3.css +0 -139
  158. package/dist/chunk-2VA2HSL4.cjs +0 -121
  159. package/dist/chunk-2VA2HSL4.cjs.map +0 -1
  160. package/dist/chunk-2W2AJUZW.js +0 -118
  161. package/dist/chunk-2W2AJUZW.js.map +0 -1
  162. package/dist/chunk-3QWHDCHJ.js.map +0 -1
  163. package/dist/chunk-4AA22BOG.js +0 -63
  164. package/dist/chunk-4AA22BOG.js.map +0 -1
  165. package/dist/chunk-5EYI27B6.js.map +0 -1
  166. package/dist/chunk-77NP67ML.cjs +0 -70
  167. package/dist/chunk-77NP67ML.cjs.map +0 -1
  168. package/dist/chunk-7CKHWCEA.cjs.map +0 -1
  169. package/dist/chunk-7NM5BRUX.js +0 -91
  170. package/dist/chunk-7NM5BRUX.js.map +0 -1
  171. package/dist/chunk-7UJI437T.js +0 -49
  172. package/dist/chunk-7UJI437T.js.map +0 -1
  173. package/dist/chunk-AAMYURWQ.cjs.map +0 -1
  174. package/dist/chunk-ALFDP5WX.cjs.map +0 -1
  175. package/dist/chunk-F3NHM4GX.js.map +0 -1
  176. package/dist/chunk-FMG3ZPGK.js.map +0 -1
  177. package/dist/chunk-G3UWXSNQ.js.map +0 -1
  178. package/dist/chunk-HTP6UEVR.js.map +0 -1
  179. package/dist/chunk-I2ERCHFV.cjs.map +0 -1
  180. package/dist/chunk-IBZAGURN.cjs +0 -71
  181. package/dist/chunk-IBZAGURN.cjs.map +0 -1
  182. package/dist/chunk-IGHLSNXT.cjs.map +0 -1
  183. package/dist/chunk-ITGCHU3Y.cjs.map +0 -1
  184. package/dist/chunk-JNFCTYJT.cjs +0 -31
  185. package/dist/chunk-JNFCTYJT.cjs.map +0 -1
  186. package/dist/chunk-JWFVSBVX.cjs +0 -30
  187. package/dist/chunk-JWFVSBVX.cjs.map +0 -1
  188. package/dist/chunk-K67KIKX4.cjs +0 -67
  189. package/dist/chunk-K67KIKX4.cjs.map +0 -1
  190. package/dist/chunk-M6OTFXZA.js +0 -48
  191. package/dist/chunk-M6OTFXZA.js.map +0 -1
  192. package/dist/chunk-NWJW5KLN.js +0 -29
  193. package/dist/chunk-NWJW5KLN.js.map +0 -1
  194. package/dist/chunk-NZPJ7BUB.cjs.map +0 -1
  195. package/dist/chunk-OXYFB2ZI.js.map +0 -1
  196. package/dist/chunk-QT7SJITQ.cjs +0 -114
  197. package/dist/chunk-QT7SJITQ.cjs.map +0 -1
  198. package/dist/chunk-VMHNKD3N.cjs.map +0 -1
  199. package/dist/chunk-VXITDXLW.js +0 -28
  200. package/dist/chunk-VXITDXLW.js.map +0 -1
  201. 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); }
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunk77NP67ML_cjs = require('./chunk-77NP67ML.cjs');
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 chunk77NP67ML_cjs.Accordion; }
10
+ get: function () { return chunkRDLPX7RK_cjs.Accordion; }
11
11
  });
12
12
  //# sourceMappingURL=Accordion.cjs.map
13
13
  //# sourceMappingURL=Accordion.cjs.map
@@ -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;
@@ -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
@@ -1,4 +1,4 @@
1
- export { Accordion } from './chunk-M6OTFXZA.js';
1
+ export { Accordion } from './chunk-4MR4GVTD.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Accordion.js.map
4
4
  //# sourceMappingURL=Accordion.js.map
@@ -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 chunkJNFCTYJT_cjs = require('./chunk-JNFCTYJT.cjs');
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 chunkJNFCTYJT_cjs.Alert; }
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
@@ -1,4 +1,4 @@
1
- export { Alert } from './chunk-NWJW5KLN.js';
1
+ export { Alert } from './chunk-GIVMKGZN.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Alert.js.map
4
4
  //# sourceMappingURL=Alert.js.map
@@ -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 chunkJWFVSBVX_cjs = require('./chunk-JWFVSBVX.cjs');
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 chunkJWFVSBVX_cjs.Avatar; }
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
@@ -1,3 +1,3 @@
1
- export { Avatar } from './chunk-VXITDXLW.js';
1
+ export { Avatar } from './chunk-ZWP4LSS3.js';
2
2
  //# sourceMappingURL=Avatar.js.map
3
3
  //# sourceMappingURL=Avatar.js.map
@@ -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 chunkAAMYURWQ_cjs = require('./chunk-AAMYURWQ.cjs');
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 chunkAAMYURWQ_cjs.Button; }
10
+ get: function () { return chunkOPTTHURA_cjs.Button; }
11
11
  });
12
12
  Object.defineProperty(exports, "IconButton", {
13
13
  enumerable: true,
14
- get: function () { return chunkAAMYURWQ_cjs.IconButton; }
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
@@ -1,4 +1,4 @@
1
- export { Button, IconButton } from './chunk-5EYI27B6.js';
1
+ export { Button, IconButton } from './chunk-77BVQNAQ.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Button.js.map
4
4
  //# sourceMappingURL=Button.js.map
package/dist/Calendar.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunk7CKHWCEA_cjs = require('./chunk-7CKHWCEA.cjs');
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 chunk7CKHWCEA_cjs.Calendar; }
10
+ get: function () { return chunkTZSWDH5T_cjs.Calendar; }
11
11
  });
12
12
  //# sourceMappingURL=Calendar.cjs.map
13
13
  //# sourceMappingURL=Calendar.cjs.map
@@ -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. */
@@ -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
@@ -1,4 +1,4 @@
1
- export { Calendar } from './chunk-FMG3ZPGK.js';
1
+ export { Calendar } from './chunk-H6FCIJOP.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Calendar.js.map
4
4
  //# sourceMappingURL=Calendar.js.map
@@ -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 chunkI2ERCHFV_cjs = require('./chunk-I2ERCHFV.cjs');
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 chunkI2ERCHFV_cjs.Card; }
9
+ get: function () { return chunkJKLQOB2F_cjs.Card; }
10
10
  });
11
11
  Object.defineProperty(exports, "Panel", {
12
12
  enumerable: true,
13
- get: function () { return chunkI2ERCHFV_cjs.Panel; }
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
@@ -1,3 +1,3 @@
1
- export { Card, Panel } from './chunk-OXYFB2ZI.js';
1
+ export { Card, Panel } from './chunk-4U4OY5RA.js';
2
2
  //# sourceMappingURL=Card.js.map
3
3
  //# sourceMappingURL=Card.js.map
@@ -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 chunkNZPJ7BUB_cjs = require('./chunk-NZPJ7BUB.cjs');
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 chunkNZPJ7BUB_cjs.Divider; }
9
+ get: function () { return chunkAXMEZGEG_cjs.Divider; }
10
10
  });
11
11
  //# sourceMappingURL=Divider.cjs.map
12
12
  //# sourceMappingURL=Divider.cjs.map
@@ -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
@@ -1,3 +1,3 @@
1
- export { Divider } from './chunk-F3NHM4GX.js';
1
+ export { Divider } from './chunk-OYGFMXAA.js';
2
2
  //# sourceMappingURL=Divider.js.map
3
3
  //# sourceMappingURL=Divider.js.map
@@ -136,3 +136,25 @@
136
136
  .skeleton.circle { border-radius: 999px; }
137
137
  @keyframes skel-wave { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
138
138
  @keyframes skel-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
139
+
140
+ /* Composite skeleton — avatar + title + paragraph layout */
141
+ .skeleton-box {
142
+ display: flex;
143
+ align-items: flex-start;
144
+ gap: 16px;
145
+ width: 100%;
146
+ }
147
+ .skeleton-content {
148
+ flex: 1;
149
+ min-width: 0;
150
+ display: flex;
151
+ flex-direction: column;
152
+ gap: 12px;
153
+ }
154
+ .skeleton-box .skeleton-title {
155
+ display: block;
156
+ margin-bottom: 4px;
157
+ }
158
+ .skeleton-box .skeleton-row {
159
+ display: block;
160
+ }
package/dist/Empty.cjs CHANGED
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunkK67KIKX4_cjs = require('./chunk-K67KIKX4.cjs');
3
+ var chunkF7HW2PYR_cjs = require('./chunk-F7HW2PYR.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Empty", {
8
8
  enumerable: true,
9
- get: function () { return chunkK67KIKX4_cjs.Empty; }
9
+ get: function () { return chunkF7HW2PYR_cjs.Empty; }
10
10
  });
11
11
  Object.defineProperty(exports, "Skeleton", {
12
12
  enumerable: true,
13
- get: function () { return chunkK67KIKX4_cjs.Skeleton; }
13
+ get: function () { return chunkF7HW2PYR_cjs.Skeleton; }
14
14
  });
15
15
  Object.defineProperty(exports, "Spinner", {
16
16
  enumerable: true,
17
- get: function () { return chunkK67KIKX4_cjs.Spinner; }
17
+ get: function () { return chunkF7HW2PYR_cjs.Spinner; }
18
18
  });
19
19
  //# sourceMappingURL=Empty.cjs.map
20
20
  //# sourceMappingURL=Empty.cjs.map
package/dist/Empty.d.cts CHANGED
@@ -23,15 +23,55 @@ interface SpinnerProps {
23
23
  }
24
24
  /** `Spinner` — loading indicator. */
25
25
  declare const Spinner: React.FC<SpinnerProps>;
26
+ interface SkeletonAvatarConfig {
27
+ shape?: "circle" | "square";
28
+ size?: "sm" | "md" | "lg";
29
+ }
30
+ interface SkeletonTitleConfig {
31
+ width?: number | string;
32
+ }
33
+ interface SkeletonParagraphConfig {
34
+ rows?: number;
35
+ width?: (number | string)[];
36
+ }
26
37
  interface SkeletonProps {
27
38
  width?: number | string;
28
39
  height?: number | string;
29
40
  circle?: boolean;
30
41
  /** `wave` is a shimmer sweep; `pulse` fades opacity; `none` disables animation. */
31
42
  animation?: "wave" | "pulse" | "none";
43
+ /**
44
+ * Render an avatar skeleton on the left. `true` gives the defaults (circle, md).
45
+ * @example avatar
46
+ * @example avatar={{ shape: "square", size: "lg" }}
47
+ */
48
+ avatar?: boolean | SkeletonAvatarConfig;
49
+ /**
50
+ * Render a title line skeleton. Defaults to `true` whenever the composite layout is active
51
+ * (any of `avatar` / `paragraph` / `title` is set).
52
+ */
53
+ title?: boolean | SkeletonTitleConfig;
54
+ /**
55
+ * Render N paragraph lines. `true` gives 3 rows; passing `width` arrays lets you
56
+ * control per-row widths (last row defaults to 60%).
57
+ */
58
+ paragraph?: boolean | SkeletonParagraphConfig;
32
59
  className?: string;
33
60
  }
34
- /** `Skeleton` — content placeholder during loading. */
61
+ /**
62
+ * `Skeleton` — content placeholder during loading.
63
+ *
64
+ * Two modes:
65
+ * - **Primitive** (no composite prop set): renders a single block using `width` / `height` / `circle`.
66
+ * - **Composite** (`avatar` / `title` / `paragraph`): renders the Ant-Design-style avatar + title + paragraph layout.
67
+ *
68
+ * @example
69
+ * // primitive
70
+ * <Skeleton height={14} width="60%" />
71
+ * @example
72
+ * // composite
73
+ * <Skeleton avatar title paragraph={{ rows: 4 }} />
74
+ */
35
75
  declare const Skeleton: React.FC<SkeletonProps>;
36
76
 
37
- export { Empty, type EmptyProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps };
77
+ export { Empty, type EmptyProps, Skeleton, type SkeletonAvatarConfig, type SkeletonParagraphConfig, type SkeletonProps, type SkeletonTitleConfig, Spinner, type SpinnerProps };