@fangxinyan/lumina 0.6.1 → 0.6.2

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 (246) hide show
  1. package/dist/Alert.cjs +3 -3
  2. package/dist/Alert.js +2 -2
  3. package/dist/AutoComplete.cjs +5 -4
  4. package/dist/AutoComplete.d.cts +1 -1
  5. package/dist/AutoComplete.d.ts +1 -1
  6. package/dist/AutoComplete.js +4 -3
  7. package/dist/Badge-DPGLV3D3.css +22 -0
  8. package/dist/Badge.cjs +10 -0
  9. package/dist/Badge.d.cts +18 -0
  10. package/dist/Badge.d.ts +18 -0
  11. package/dist/Badge.js +1 -0
  12. package/dist/Button.cjs +3 -7
  13. package/dist/Button.d.cts +5 -10
  14. package/dist/Button.d.ts +5 -10
  15. package/dist/Button.js +2 -2
  16. package/dist/Calendar.cjs +3 -3
  17. package/dist/Calendar.js +2 -2
  18. package/dist/{Card-RG7ECXL2.css → Card-6RMVIHWX.css} +7 -13
  19. package/dist/Card.cjs +2 -6
  20. package/dist/Card.d.cts +7 -11
  21. package/dist/Card.d.ts +7 -11
  22. package/dist/Card.js +1 -1
  23. package/dist/{Cascader-VSYEKQCG.css → Cascader-C2DFSMKJ.css} +64 -0
  24. package/dist/Cascader.cjs +5 -3
  25. package/dist/Cascader.d.cts +18 -2
  26. package/dist/Cascader.d.ts +18 -2
  27. package/dist/Cascader.js +4 -2
  28. package/dist/{Checkbox-SKJATVSN.css → Checkbox-U5EUDSYS.css} +5 -35
  29. package/dist/Checkbox.cjs +3 -7
  30. package/dist/Checkbox.d.cts +1 -18
  31. package/dist/Checkbox.d.ts +1 -18
  32. package/dist/Checkbox.js +2 -2
  33. package/dist/Collapse-66U5YJFY.css +53 -0
  34. package/dist/Collapse.cjs +11 -0
  35. package/dist/Collapse.d.cts +32 -0
  36. package/dist/Collapse.d.ts +32 -0
  37. package/dist/Collapse.js +2 -0
  38. package/dist/CommandPalette.cjs +5 -4
  39. package/dist/CommandPalette.js +4 -3
  40. package/dist/Drawer.cjs +3 -3
  41. package/dist/Drawer.js +2 -2
  42. package/dist/Empty-DC2LPORC.css +28 -0
  43. package/dist/Empty.cjs +2 -10
  44. package/dist/Empty.d.cts +1 -62
  45. package/dist/Empty.d.ts +1 -62
  46. package/dist/Empty.js +1 -1
  47. package/dist/Form.d.cts +1 -1
  48. package/dist/Form.d.ts +1 -1
  49. package/dist/Icon.cjs +179 -3
  50. package/dist/Icon.d.cts +96 -3
  51. package/dist/Icon.d.ts +96 -3
  52. package/dist/Icon.js +1 -1
  53. package/dist/Image.cjs +4 -4
  54. package/dist/Image.js +2 -2
  55. package/dist/{Input-33CAH4O6.css → Input-3G4ONWNU.css} +15 -42
  56. package/dist/Input.cjs +6 -5
  57. package/dist/Input.d.cts +19 -23
  58. package/dist/Input.d.ts +19 -23
  59. package/dist/Input.js +3 -2
  60. package/dist/InputNumber.cjs +5 -4
  61. package/dist/InputNumber.d.cts +1 -1
  62. package/dist/InputNumber.d.ts +1 -1
  63. package/dist/InputNumber.js +4 -3
  64. package/dist/Message-2MZ3LFPU.css +45 -0
  65. package/dist/Message.cjs +23 -0
  66. package/dist/Message.d.cts +54 -0
  67. package/dist/Message.d.ts +54 -0
  68. package/dist/Message.js +2 -0
  69. package/dist/{Modal-XSDMU4XJ.css → Modal-2QNDW4SO.css} +27 -0
  70. package/dist/Modal.cjs +4 -4
  71. package/dist/Modal.d.cts +28 -4
  72. package/dist/Modal.d.ts +28 -4
  73. package/dist/Modal.js +3 -3
  74. package/dist/Pagination.cjs +7 -5
  75. package/dist/Pagination.js +6 -4
  76. package/dist/Popover.cjs +2 -2
  77. package/dist/Popover.d.cts +11 -3
  78. package/dist/Popover.d.ts +11 -3
  79. package/dist/Popover.js +1 -1
  80. package/dist/Radio-GVFDPAZM.css +97 -0
  81. package/dist/Radio.cjs +14 -0
  82. package/dist/Radio.d.cts +36 -0
  83. package/dist/Radio.d.ts +36 -0
  84. package/dist/Radio.js +1 -0
  85. package/dist/{Select-J3CCVFJ7.css → Select-JVBQAZBG.css} +7 -23
  86. package/dist/Select.cjs +6 -4
  87. package/dist/Select.d.cts +25 -4
  88. package/dist/Select.d.ts +25 -4
  89. package/dist/Select.js +5 -3
  90. package/dist/Skeleton-CVWH2VWN.css +40 -0
  91. package/dist/Skeleton.cjs +10 -0
  92. package/dist/Skeleton.d.cts +30 -0
  93. package/dist/Skeleton.d.ts +30 -0
  94. package/dist/Skeleton.js +1 -0
  95. package/dist/Spin-3GJNMSIH.css +94 -0
  96. package/dist/Spin.cjs +10 -0
  97. package/dist/Spin.d.cts +20 -0
  98. package/dist/Spin.d.ts +20 -0
  99. package/dist/Spin.js +1 -0
  100. package/dist/{Table-2LPTOUIR.css → Table-ATJJQLKU.css} +0 -53
  101. package/dist/Table.cjs +9 -11
  102. package/dist/Table.d.cts +2 -21
  103. package/dist/Table.d.ts +2 -21
  104. package/dist/Table.js +8 -6
  105. package/dist/TablePro-3XVHYLSL.css +45 -0
  106. package/dist/TablePro.cjs +19 -0
  107. package/dist/TablePro.d.cts +21 -0
  108. package/dist/TablePro.d.ts +21 -0
  109. package/dist/TablePro.js +10 -0
  110. package/dist/{Tabs-RHK6XAFF.css → Tabs-BLSNI2T5.css} +0 -34
  111. package/dist/Tabs.cjs +2 -6
  112. package/dist/Tabs.d.cts +1 -16
  113. package/dist/Tabs.d.ts +1 -16
  114. package/dist/Tabs.js +1 -1
  115. package/dist/Tag-LB3OOJAO.css +29 -0
  116. package/dist/Tag.cjs +3 -7
  117. package/dist/Tag.d.cts +1 -11
  118. package/dist/Tag.d.ts +1 -11
  119. package/dist/Tag.js +2 -2
  120. package/dist/Textarea-YNET7IBH.css +54 -0
  121. package/dist/Textarea.cjs +15 -0
  122. package/dist/Textarea.d.cts +25 -0
  123. package/dist/Textarea.d.ts +25 -0
  124. package/dist/Textarea.js +2 -0
  125. package/dist/{Timeline-RHZAZKZ7.css → Timeline-3ZHOHPXT.css} +2 -2
  126. package/dist/Timeline.cjs +3 -3
  127. package/dist/Timeline.d.cts +1 -1
  128. package/dist/Timeline.d.ts +1 -1
  129. package/dist/Timeline.js +2 -2
  130. package/dist/Tooltip.cjs +2 -2
  131. package/dist/Tooltip.d.cts +17 -4
  132. package/dist/Tooltip.d.ts +17 -4
  133. package/dist/Tooltip.js +1 -1
  134. package/dist/Typography.cjs +7 -7
  135. package/dist/Typography.js +2 -2
  136. package/dist/{chunk-6Y5WRCPW.js → chunk-33NCTOEB.js} +1 -1
  137. package/dist/{chunk-Q2KG6SQK.cjs → chunk-35ZGBAA3.cjs} +3 -3
  138. package/dist/{chunk-Y3ZSG3SJ.cjs → chunk-3AS5B7MQ.cjs} +11 -30
  139. package/dist/{chunk-X2U7EKCS.cjs → chunk-3YJU3D5S.cjs} +28 -5
  140. package/dist/chunk-45VJGBGN.js +25 -0
  141. package/dist/{chunk-3D77MQHO.js → chunk-46VXFTEC.js} +3 -3
  142. package/dist/{chunk-OFGDUCT7.cjs → chunk-4WTU5P3O.cjs} +3 -3
  143. package/dist/{chunk-5A3RT4KD.js → chunk-5TKC6IEN.js} +4 -55
  144. package/dist/{chunk-62GU4OHH.cjs → chunk-5WAXZJG5.cjs} +12 -19
  145. package/dist/chunk-6ACKL3WH.cjs +138 -0
  146. package/dist/{chunk-32HBMXXV.cjs → chunk-6LZ54NPO.cjs} +70 -74
  147. package/dist/{chunk-UXH5PH3S.js → chunk-7NGMQIST.js} +2 -2
  148. package/dist/{chunk-R6BIF3FF.js → chunk-AWXCSX6J.js} +5 -23
  149. package/dist/chunk-AXZ7ELMA.js +41 -0
  150. package/dist/{chunk-G2XK57I7.cjs → chunk-B2KEZQ6S.cjs} +5 -5
  151. package/dist/chunk-CEJ7VBR6.js +283 -0
  152. package/dist/{chunk-WRDKOSSM.js → chunk-CHMCL7AV.js} +1 -1
  153. package/dist/{chunk-EBNRZRWY.cjs → chunk-CUXV6QNN.cjs} +5 -5
  154. package/dist/{chunk-ULOJ5UEY.js → chunk-CXWEOAVU.js} +1 -1
  155. package/dist/{chunk-TWGQZX2R.js → chunk-DQTSTJ6O.js} +3 -18
  156. package/dist/chunk-EIY7KEJ3.cjs +132 -0
  157. package/dist/{chunk-OI3CWXT3.js → chunk-EJBHR2P5.js} +3 -3
  158. package/dist/chunk-ELNT3CFO.js +64 -0
  159. package/dist/{chunk-TGHBKKSS.js → chunk-EQEJTN3V.js} +3 -43
  160. package/dist/chunk-F6RYCBQG.js +25 -0
  161. package/dist/{chunk-N57NXCNC.cjs → chunk-FBVVRTX2.cjs} +3 -44
  162. package/dist/chunk-FFZ6OMZI.js +110 -0
  163. package/dist/{chunk-73RQBWWW.js → chunk-FJNWUELL.js} +2 -2
  164. package/dist/chunk-GENABQYA.cjs +47 -0
  165. package/dist/chunk-GMN74OEY.cjs +63 -0
  166. package/dist/chunk-GNEZQMKH.js +218 -0
  167. package/dist/{chunk-Y47YTYQ3.cjs → chunk-HPFQXYKG.cjs} +159 -8
  168. package/dist/{chunk-4WRE4HQP.js → chunk-HWFM4MAT.js} +18 -6
  169. package/dist/{chunk-GY3BSHHS.cjs → chunk-HZSIUOCN.cjs} +2 -55
  170. package/dist/{chunk-YRZGXXWA.js → chunk-JD7A6VM3.js} +11 -17
  171. package/dist/chunk-K2KYM7LW.cjs +28 -0
  172. package/dist/{chunk-PWW64ZWO.cjs → chunk-KD4YYIIO.cjs} +1 -32
  173. package/dist/chunk-KGSADAOD.cjs +170 -0
  174. package/dist/{chunk-6ODY6MGL.cjs → chunk-MQV2XN4B.cjs} +5 -5
  175. package/dist/{chunk-OVZTG5CP.cjs → chunk-MT7UWY6T.cjs} +2 -2
  176. package/dist/chunk-MUXP7ASL.js +26 -0
  177. package/dist/{chunk-EEMWQX3C.cjs → chunk-NTS5L4NQ.cjs} +3 -3
  178. package/dist/{chunk-WBK6XIDJ.js → chunk-OBEKX4VR.js} +2 -32
  179. package/dist/chunk-OF3SGLZY.js +385 -0
  180. package/dist/chunk-ON4DEDMI.js +113 -0
  181. package/dist/chunk-OQBDU5I2.cjs +104 -0
  182. package/dist/{chunk-FIO65XYG.cjs → chunk-OYMJVU66.cjs} +48 -37
  183. package/dist/{chunk-5M26OVVY.js → chunk-PH3YECMF.js} +1 -1
  184. package/dist/chunk-Q5SZIU7Z.cjs +47 -0
  185. package/dist/chunk-QGHYQCF3.cjs +240 -0
  186. package/dist/chunk-QKQHZIF3.cjs +86 -0
  187. package/dist/{chunk-KYEY2LIB.cjs → chunk-SKMP2A5O.cjs} +3 -3
  188. package/dist/{chunk-IW5LW6XS.js → chunk-TEEFR2FD.js} +28 -5
  189. package/dist/{chunk-GOBWKQCX.cjs → chunk-TEG7NJHS.cjs} +3 -3
  190. package/dist/{chunk-2MNAZRWE.cjs → chunk-TJII7BQ2.cjs} +261 -2
  191. package/dist/{chunk-3TWNBJFI.cjs → chunk-TZJH5HBT.cjs} +6 -6
  192. package/dist/{chunk-D46EM4EN.js → chunk-UMDGS4BP.js} +1 -1
  193. package/dist/chunk-USQ43DJ5.js +147 -0
  194. package/dist/{chunk-G2K6ETP4.cjs → chunk-UUHFKIWP.cjs} +18 -6
  195. package/dist/chunk-WGZ2KJTZ.js +81 -0
  196. package/dist/{chunk-RPFMQZA5.js → chunk-WKKSAGYH.js} +39 -28
  197. package/dist/{chunk-54YLXXS2.js → chunk-XD3JGL5O.js} +2 -2
  198. package/dist/{chunk-DPNDHNKK.js → chunk-XTIN5545.js} +68 -72
  199. package/dist/{chunk-LZU33BX6.cjs → chunk-ZIP7F4UF.cjs} +4 -20
  200. package/dist/index.cjs +312 -122
  201. package/dist/index.d.cts +23 -17
  202. package/dist/index.d.ts +23 -17
  203. package/dist/index.js +34 -28
  204. package/dist/styles.css +313 -192
  205. package/docs/llms/badge.md +3 -3
  206. package/docs/llms/button.md +7 -38
  207. package/docs/llms/card.md +6 -12
  208. package/docs/llms/cascader.md +19 -0
  209. package/docs/llms/{accordion.md → collapse.md} +13 -11
  210. package/docs/llms/drawer.md +1 -1
  211. package/docs/llms/form.md +1 -1
  212. package/docs/llms/input.md +25 -16
  213. package/docs/llms/message.md +63 -0
  214. package/docs/llms/modal.md +30 -0
  215. package/docs/llms/popover.md +18 -1
  216. package/docs/llms/radio.md +37 -1
  217. package/docs/llms/select.md +20 -0
  218. package/docs/llms/spin.md +59 -0
  219. package/docs/llms/table.md +3 -3
  220. package/docs/llms/tooltip.md +16 -3
  221. package/docs/llms.md +5 -5
  222. package/package.json +17 -52
  223. package/dist/Accordion-REMDCQUD.css +0 -44
  224. package/dist/Accordion.cjs +0 -11
  225. package/dist/Accordion.d.cts +0 -33
  226. package/dist/Accordion.d.ts +0 -33
  227. package/dist/Accordion.js +0 -2
  228. package/dist/Empty-NQ72W3D7.css +0 -160
  229. package/dist/Tag-FGDY3W7E.css +0 -51
  230. package/dist/Toast-YSACW3EM.css +0 -45
  231. package/dist/Toast.cjs +0 -15
  232. package/dist/Toast.d.cts +0 -26
  233. package/dist/Toast.d.ts +0 -26
  234. package/dist/Toast.js +0 -2
  235. package/dist/chunk-3XTHKAEY.js +0 -39
  236. package/dist/chunk-DOMYUGJY.js +0 -132
  237. package/dist/chunk-HBWO3QKW.js +0 -74
  238. package/dist/chunk-JVS5ZALZ.js +0 -123
  239. package/dist/chunk-LIGHV4RC.cjs +0 -121
  240. package/dist/chunk-MCTIA6RZ.js +0 -99
  241. package/dist/chunk-NC4YUEXM.cjs +0 -145
  242. package/dist/chunk-NJ6B22YJ.js +0 -170
  243. package/dist/chunk-W64ARHLJ.cjs +0 -62
  244. package/dist/chunk-ZFW6OYAO.cjs +0 -100
  245. package/docs/llms/spinner.md +0 -58
  246. package/docs/llms/toast.md +0 -51
@@ -0,0 +1,21 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { TableProps } from './Table.cjs';
4
+
5
+ interface TableProProps<Row = any> extends Omit<TableProps<Row>, "title"> {
6
+ /** Toolbar slot — search input, filter, etc. */
7
+ toolbar?: React.ReactNode;
8
+ /** Right-aligned actions slot in toolbar. */
9
+ actions?: React.ReactNode;
10
+ /** Footer slot — usually <Pagination />. Optional now that `pagination` is built-in. */
11
+ footer?: React.ReactNode;
12
+ /** Title shown above the toolbar. */
13
+ title?: React.ReactNode;
14
+ }
15
+ /**
16
+ * `TablePro` — full-featured table card with toolbar, sortable/selectable rows,
17
+ * variants, and a footer slot for pagination.
18
+ */
19
+ declare function TablePro<Row extends Record<string, any> = any>({ toolbar, actions, footer, title, className, ...tableProps }: TableProProps<Row>): react_jsx_runtime.JSX.Element;
20
+
21
+ export { TablePro, type TableProProps };
@@ -0,0 +1,21 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { TableProps } from './Table.js';
4
+
5
+ interface TableProProps<Row = any> extends Omit<TableProps<Row>, "title"> {
6
+ /** Toolbar slot — search input, filter, etc. */
7
+ toolbar?: React.ReactNode;
8
+ /** Right-aligned actions slot in toolbar. */
9
+ actions?: React.ReactNode;
10
+ /** Footer slot — usually <Pagination />. Optional now that `pagination` is built-in. */
11
+ footer?: React.ReactNode;
12
+ /** Title shown above the toolbar. */
13
+ title?: React.ReactNode;
14
+ }
15
+ /**
16
+ * `TablePro` — full-featured table card with toolbar, sortable/selectable rows,
17
+ * variants, and a footer slot for pagination.
18
+ */
19
+ declare function TablePro<Row extends Record<string, any> = any>({ toolbar, actions, footer, title, className, ...tableProps }: TableProProps<Row>): react_jsx_runtime.JSX.Element;
20
+
21
+ export { TablePro, type TableProProps };
@@ -0,0 +1,10 @@
1
+ export { TablePro } from './chunk-MUXP7ASL.js';
2
+ import './chunk-AWXCSX6J.js';
3
+ import './chunk-7NGMQIST.js';
4
+ import './chunk-WKKSAGYH.js';
5
+ import './chunk-DQTSTJ6O.js';
6
+ import './chunk-EQEJTN3V.js';
7
+ import './chunk-DUFRASGO.js';
8
+ import './chunk-XTIN5545.js';
9
+ import './chunk-WGZ2KJTZ.js';
10
+ import './chunk-OF3SGLZY.js';
@@ -66,37 +66,3 @@
66
66
  .tabs.centered.underline .tabs-nav .tab { margin-right: 11px; margin-left: 11px; }
67
67
 
68
68
  .tabs-content { padding: var(--gap-2) 0; }
69
-
70
- /* Segmented (owned by Tabs.tsx — Segmented is co-exported) */
71
- .segmented {
72
- display: inline-flex;
73
- padding: 4px;
74
- border-radius: var(--r-md);
75
- background: var(--bg);
76
- box-shadow: var(--neu-in-sm);
77
- gap: 2px;
78
- }
79
- .segmented .seg {
80
- padding: 6px 14px;
81
- height: 32px;
82
- display: inline-flex;
83
- align-items: center;
84
- gap: 6px;
85
- border: none;
86
- background: transparent;
87
- border-radius: calc(var(--r-md) - 4px);
88
- font-size: 12px;
89
- font-family: inherit;
90
- color: var(--fg-muted);
91
- cursor: pointer;
92
- transition: all var(--dur-fast) var(--ease);
93
- }
94
- .segmented .seg:hover { color: var(--fg); }
95
- .segmented .seg.active {
96
- color: var(--accent-ink);
97
- background: var(--bg);
98
- box-shadow: var(--neu-out-sm);
99
- font-weight: 600;
100
- }
101
- .segmented.sm .seg { height: 26px; padding: 4px 10px; font-size: 11px; }
102
- .segmented.lg .seg { height: 38px; padding: 8px 18px; font-size: 13px; }
package/dist/Tabs.cjs CHANGED
@@ -1,14 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkPWW64ZWO_cjs = require('./chunk-PWW64ZWO.cjs');
3
+ var chunkKD4YYIIO_cjs = require('./chunk-KD4YYIIO.cjs');
4
4
 
5
5
 
6
6
 
7
- Object.defineProperty(exports, "Segmented", {
8
- enumerable: true,
9
- get: function () { return chunkPWW64ZWO_cjs.Segmented; }
10
- });
11
7
  Object.defineProperty(exports, "Tabs", {
12
8
  enumerable: true,
13
- get: function () { return chunkPWW64ZWO_cjs.Tabs; }
9
+ get: function () { return chunkKD4YYIIO_cjs.Tabs; }
14
10
  });
package/dist/Tabs.d.cts CHANGED
@@ -18,20 +18,5 @@ interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange
18
18
  }
19
19
  /** `Tabs` — switchable sections. */
20
20
  declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
21
- interface SegmentedProps<T extends string = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
22
- options: {
23
- value: T;
24
- label: React.ReactNode;
25
- disabled?: boolean;
26
- }[];
27
- value?: T;
28
- defaultValue?: T;
29
- onChange?: (value: T) => void;
30
- size?: "sm" | "md";
31
- className?: string;
32
- }
33
- type SegmentedComponent = <T extends string = string>(props: SegmentedProps<T> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
34
- /** `Segmented` — exclusive choice chip row. */
35
- declare const Segmented: SegmentedComponent;
36
21
 
37
- export { Segmented, type SegmentedProps, type TabItem, Tabs, type TabsProps };
22
+ export { type TabItem, Tabs, type TabsProps };
package/dist/Tabs.d.ts CHANGED
@@ -18,20 +18,5 @@ interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange
18
18
  }
19
19
  /** `Tabs` — switchable sections. */
20
20
  declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
21
- interface SegmentedProps<T extends string = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
22
- options: {
23
- value: T;
24
- label: React.ReactNode;
25
- disabled?: boolean;
26
- }[];
27
- value?: T;
28
- defaultValue?: T;
29
- onChange?: (value: T) => void;
30
- size?: "sm" | "md";
31
- className?: string;
32
- }
33
- type SegmentedComponent = <T extends string = string>(props: SegmentedProps<T> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
34
- /** `Segmented` — exclusive choice chip row. */
35
- declare const Segmented: SegmentedComponent;
36
21
 
37
- export { Segmented, type SegmentedProps, type TabItem, Tabs, type TabsProps };
22
+ export { type TabItem, Tabs, type TabsProps };
package/dist/Tabs.js CHANGED
@@ -1 +1 @@
1
- export { Segmented, Tabs } from './chunk-WBK6XIDJ.js';
1
+ export { Tabs } from './chunk-OBEKX4VR.js';
@@ -0,0 +1,29 @@
1
+ /* ============ Tag ============ */
2
+ .tag {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: 6px;
6
+ height: 24px;
7
+ padding: 0 10px;
8
+ border-radius: var(--r-pill);
9
+ font-size: 11px;
10
+ font-weight: 500;
11
+ background: var(--bg);
12
+ box-shadow: var(--neu-flat);
13
+ color: var(--fg-muted);
14
+ }
15
+ .tag.accent { color: var(--accent-ink); }
16
+ .tag.info { color: var(--info); }
17
+ .tag.success { color: var(--success); }
18
+ .tag.warning { color: var(--warning); }
19
+ .tag.danger { color: var(--danger); }
20
+ .tag.solid { background: var(--accent); color: var(--bg); box-shadow: 0 2px 6px var(--accent-glow); }
21
+ .tag.solid.info { background: var(--info); color: var(--bg); box-shadow: 0 2px 6px color-mix(in oklch, var(--info) 35%, transparent); }
22
+ .tag.solid.success { background: var(--success); color: var(--bg); box-shadow: 0 2px 6px color-mix(in oklch, var(--success) 35%, transparent); }
23
+ .tag.solid.warning { background: var(--warning); color: var(--bg); box-shadow: 0 2px 6px color-mix(in oklch, var(--warning) 35%, transparent); }
24
+ .tag.solid.danger { background: var(--danger); color: var(--bg); box-shadow: 0 2px 6px color-mix(in oklch, var(--danger) 35%, transparent); }
25
+ .tag.borderless { background: transparent; box-shadow: none; }
26
+ .tag .dot { width: 6px; height: 6px; border-radius: 999px; background: currentColor; }
27
+ .tag .tag-ico { color: currentColor; display: inline-flex; }
28
+ .tag .x { cursor: pointer; color: var(--fg-subtle); margin-left: 2px; display: inline-flex; }
29
+ .tag .x:hover { color: var(--fg); }
package/dist/Tag.cjs CHANGED
@@ -1,15 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkLZU33BX6_cjs = require('./chunk-LZU33BX6.cjs');
4
- require('./chunk-2MNAZRWE.cjs');
3
+ var chunkZIP7F4UF_cjs = require('./chunk-ZIP7F4UF.cjs');
4
+ require('./chunk-TJII7BQ2.cjs');
5
5
 
6
6
 
7
7
 
8
- Object.defineProperty(exports, "Badge", {
9
- enumerable: true,
10
- get: function () { return chunkLZU33BX6_cjs.Badge; }
11
- });
12
8
  Object.defineProperty(exports, "Tag", {
13
9
  enumerable: true,
14
- get: function () { return chunkLZU33BX6_cjs.Tag; }
10
+ get: function () { return chunkZIP7F4UF_cjs.Tag; }
15
11
  });
package/dist/Tag.d.cts CHANGED
@@ -18,15 +18,5 @@ interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {
18
18
  }
19
19
  /** `Tag` — small label/pill. */
20
20
  declare const Tag: React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLSpanElement>>;
21
- interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
22
- /** Numeric count — renders as "99+" if > 99. */
23
- count?: number;
24
- /** Show a tiny dot instead of a number. */
25
- dot?: boolean;
26
- tone?: TagTone;
27
- children?: React.ReactNode;
28
- }
29
- /** `Badge` — notification dot / count. Wrap around another element. */
30
- declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
31
21
 
32
- export { Badge, type BadgeProps, Tag, type TagProps, type TagTone };
22
+ export { Tag, type TagProps, type TagTone };
package/dist/Tag.d.ts CHANGED
@@ -18,15 +18,5 @@ interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {
18
18
  }
19
19
  /** `Tag` — small label/pill. */
20
20
  declare const Tag: React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLSpanElement>>;
21
- interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
22
- /** Numeric count — renders as "99+" if > 99. */
23
- count?: number;
24
- /** Show a tiny dot instead of a number. */
25
- dot?: boolean;
26
- tone?: TagTone;
27
- children?: React.ReactNode;
28
- }
29
- /** `Badge` — notification dot / count. Wrap around another element. */
30
- declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
31
21
 
32
- export { Badge, type BadgeProps, Tag, type TagProps, type TagTone };
22
+ export { Tag, type TagProps, type TagTone };
package/dist/Tag.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Badge, Tag } from './chunk-TWGQZX2R.js';
2
- import './chunk-NJ6B22YJ.js';
1
+ export { Tag } from './chunk-DQTSTJ6O.js';
2
+ import './chunk-OF3SGLZY.js';
@@ -0,0 +1,54 @@
1
+ /* ============ Textarea ============ */
2
+ .textarea-shell {
3
+ display: inline-flex;
4
+ flex-direction: column;
5
+ gap: 4px;
6
+ width: 100%;
7
+ }
8
+ .textarea-count {
9
+ font-size: 11px;
10
+ color: var(--fg-subtle);
11
+ font-variant-numeric: tabular-nums;
12
+ text-align: right;
13
+ }
14
+
15
+ .textarea-wrap { position: relative; width: 100%; }
16
+ .textarea-wrap .textarea-clear {
17
+ position: absolute;
18
+ top: 10px;
19
+ right: 10px;
20
+ display: inline-flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ width: 18px;
24
+ height: 18px;
25
+ border-radius: 999px;
26
+ color: var(--fg-subtle);
27
+ background: transparent;
28
+ cursor: pointer;
29
+ transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
30
+ }
31
+ .textarea-wrap .textarea-clear:hover {
32
+ color: var(--fg);
33
+ background: var(--bg-sunken);
34
+ }
35
+
36
+ .textarea {
37
+ width: 100%;
38
+ min-height: 96px;
39
+ padding: 12px 14px;
40
+ border: none;
41
+ border-radius: var(--r-md);
42
+ background: var(--bg);
43
+ box-shadow: var(--neu-in-sm);
44
+ color: var(--fg);
45
+ font-size: 13px;
46
+ font-family: inherit;
47
+ line-height: 1.55;
48
+ resize: vertical;
49
+ outline: none;
50
+ transition: box-shadow var(--dur) var(--ease);
51
+ }
52
+ .textarea:focus { box-shadow: var(--neu-in-sm), 0 0 0 2px var(--accent-glow); }
53
+ .textarea.invalid { box-shadow: var(--neu-in-sm), 0 0 0 2px color-mix(in oklch, var(--danger) 30%, transparent); }
54
+ .textarea::placeholder { color: var(--fg-subtle); }
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkOQBDU5I2_cjs = require('./chunk-OQBDU5I2.cjs');
4
+ require('./chunk-TJII7BQ2.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "TextArea", {
9
+ enumerable: true,
10
+ get: function () { return chunkOQBDU5I2_cjs.TextArea; }
11
+ });
12
+ Object.defineProperty(exports, "Textarea", {
13
+ enumerable: true,
14
+ get: function () { return chunkOQBDU5I2_cjs.Textarea; }
15
+ });
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+
3
+ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "onChange" | "value" | "defaultValue"> {
4
+ value?: string;
5
+ defaultValue?: string;
6
+ /** Native textarea change event. */
7
+ onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
8
+ /** Convenience value callback for Lumina-style code. */
9
+ onValueChange?: (value: string, event: React.ChangeEvent<HTMLTextAreaElement>) => void;
10
+ invalid?: boolean;
11
+ /** Show a × button in the top-right corner to clear the value. */
12
+ allowClear?: boolean;
13
+ /** Max length — forwarded to the native textarea. */
14
+ maxLength?: number;
15
+ /** Render a "N / max" counter beneath the textarea. */
16
+ showCount?: boolean;
17
+ className?: string;
18
+ }
19
+ /**
20
+ * `Textarea` — multi-line text input with a neumorphic groove.
21
+ */
22
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
23
+ declare const TextArea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
24
+
25
+ export { TextArea, Textarea, type TextareaProps };
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+
3
+ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "onChange" | "value" | "defaultValue"> {
4
+ value?: string;
5
+ defaultValue?: string;
6
+ /** Native textarea change event. */
7
+ onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
8
+ /** Convenience value callback for Lumina-style code. */
9
+ onValueChange?: (value: string, event: React.ChangeEvent<HTMLTextAreaElement>) => void;
10
+ invalid?: boolean;
11
+ /** Show a × button in the top-right corner to clear the value. */
12
+ allowClear?: boolean;
13
+ /** Max length — forwarded to the native textarea. */
14
+ maxLength?: number;
15
+ /** Render a "N / max" counter beneath the textarea. */
16
+ showCount?: boolean;
17
+ className?: string;
18
+ }
19
+ /**
20
+ * `Textarea` — multi-line text input with a neumorphic groove.
21
+ */
22
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
23
+ declare const TextArea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
24
+
25
+ export { TextArea, Textarea, type TextareaProps };
@@ -0,0 +1,2 @@
1
+ export { TextArea, Textarea } from './chunk-WGZ2KJTZ.js';
2
+ import './chunk-OF3SGLZY.js';
@@ -88,7 +88,7 @@
88
88
  .timeline-item-dot.info { background: var(--info); }
89
89
  .timeline-item-dot.muted { background: var(--fg-subtle); }
90
90
 
91
- /* Pending dot: clear default fill, Spinner handles its own visuals */
91
+ /* Pending dot: clear default fill, Spin handles its own visuals */
92
92
  .timeline-item-dot.pending {
93
93
  background: transparent;
94
94
  box-shadow: none;
@@ -125,7 +125,7 @@
125
125
  color: var(--fg-muted);
126
126
  }
127
127
 
128
- /* When dot has custom content (Spinner / Icon), expand to fit */
128
+ /* When dot has custom content (Spin / Icon), expand to fit */
129
129
  .timeline-item-dot:has(> *) {
130
130
  width: auto;
131
131
  height: auto;
package/dist/Timeline.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkEEMWQX3C_cjs = require('./chunk-EEMWQX3C.cjs');
4
- require('./chunk-GY3BSHHS.cjs');
3
+ var chunkNTS5L4NQ_cjs = require('./chunk-NTS5L4NQ.cjs');
4
+ require('./chunk-QKQHZIF3.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Timeline", {
9
9
  enumerable: true,
10
- get: function () { return chunkEEMWQX3C_cjs.Timeline; }
10
+ get: function () { return chunkNTS5L4NQ_cjs.Timeline; }
11
11
  });
@@ -17,7 +17,7 @@ interface TimelineProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "chil
17
17
  items: TimelineItemConfig[];
18
18
  /**
19
19
  * Show a pending (loading) item at the end.
20
- * `true` renders a default spinner; a ReactNode renders custom content.
20
+ * `true` renders a default Spin indicator; a ReactNode renders custom content.
21
21
  */
22
22
  pending?: boolean | React.ReactNode;
23
23
  /** Text shown as the pending item's content */
@@ -17,7 +17,7 @@ interface TimelineProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "chil
17
17
  items: TimelineItemConfig[];
18
18
  /**
19
19
  * Show a pending (loading) item at the end.
20
- * `true` renders a default spinner; a ReactNode renders custom content.
20
+ * `true` renders a default Spin indicator; a ReactNode renders custom content.
21
21
  */
22
22
  pending?: boolean | React.ReactNode;
23
23
  /** Text shown as the pending item's content */
package/dist/Timeline.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Timeline } from './chunk-3D77MQHO.js';
2
- import './chunk-5A3RT4KD.js';
1
+ export { Timeline } from './chunk-46VXFTEC.js';
2
+ import './chunk-ELNT3CFO.js';
package/dist/Tooltip.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkX2U7EKCS_cjs = require('./chunk-X2U7EKCS.cjs');
3
+ var chunk3YJU3D5S_cjs = require('./chunk-3YJU3D5S.cjs');
4
4
  require('./chunk-YB3IWIOJ.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Tooltip", {
9
9
  enumerable: true,
10
- get: function () { return chunkX2U7EKCS_cjs.Tooltip; }
10
+ get: function () { return chunk3YJU3D5S_cjs.Tooltip; }
11
11
  });
@@ -1,13 +1,26 @@
1
1
  import * as React from 'react';
2
2
 
3
- interface TooltipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children" | "content"> {
4
- content: React.ReactNode;
5
- placement?: "top" | "bottom" | "left" | "right";
3
+ type TooltipPlacement = "top" | "bottom" | "left" | "right" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
4
+ interface TooltipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children" | "content" | "title"> {
5
+ content?: React.ReactNode;
6
+ /** Alias for `content`. */
7
+ title?: React.ReactNode;
8
+ placement?: TooltipPlacement;
6
9
  children: React.ReactElement;
7
10
  delay?: number;
8
11
  disabled?: boolean;
12
+ open?: boolean;
13
+ defaultOpen?: boolean;
14
+ onOpenChange?: (open: boolean) => void;
15
+ /** Controlled visibility alias. */
16
+ visible?: boolean;
17
+ onVisibleChange?: (visible: boolean) => void;
18
+ /** Class for the popped-out bubble. */
19
+ overlayClassName?: string;
20
+ /** Alias used by some popup APIs. */
21
+ popupClassName?: string;
9
22
  }
10
23
  /** `Tooltip` — hover/focus text bubble. */
11
24
  declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLSpanElement>>;
12
25
 
13
- export { Tooltip, type TooltipProps };
26
+ export { Tooltip, type TooltipPlacement, type TooltipProps };
package/dist/Tooltip.d.ts CHANGED
@@ -1,13 +1,26 @@
1
1
  import * as React from 'react';
2
2
 
3
- interface TooltipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children" | "content"> {
4
- content: React.ReactNode;
5
- placement?: "top" | "bottom" | "left" | "right";
3
+ type TooltipPlacement = "top" | "bottom" | "left" | "right" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
4
+ interface TooltipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children" | "content" | "title"> {
5
+ content?: React.ReactNode;
6
+ /** Alias for `content`. */
7
+ title?: React.ReactNode;
8
+ placement?: TooltipPlacement;
6
9
  children: React.ReactElement;
7
10
  delay?: number;
8
11
  disabled?: boolean;
12
+ open?: boolean;
13
+ defaultOpen?: boolean;
14
+ onOpenChange?: (open: boolean) => void;
15
+ /** Controlled visibility alias. */
16
+ visible?: boolean;
17
+ onVisibleChange?: (visible: boolean) => void;
18
+ /** Class for the popped-out bubble. */
19
+ overlayClassName?: string;
20
+ /** Alias used by some popup APIs. */
21
+ popupClassName?: string;
9
22
  }
10
23
  /** `Tooltip` — hover/focus text bubble. */
11
24
  declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLSpanElement>>;
12
25
 
13
- export { Tooltip, type TooltipProps };
26
+ export { Tooltip, type TooltipPlacement, type TooltipProps };
package/dist/Tooltip.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Tooltip } from './chunk-IW5LW6XS.js';
1
+ export { Tooltip } from './chunk-TEEFR2FD.js';
2
2
  import './chunk-DUFRASGO.js';
@@ -1,27 +1,27 @@
1
1
  'use strict';
2
2
 
3
- var chunk6ODY6MGL_cjs = require('./chunk-6ODY6MGL.cjs');
4
- require('./chunk-2MNAZRWE.cjs');
3
+ var chunkMQV2XN4B_cjs = require('./chunk-MQV2XN4B.cjs');
4
+ require('./chunk-TJII7BQ2.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Link", {
9
9
  enumerable: true,
10
- get: function () { return chunk6ODY6MGL_cjs.Link; }
10
+ get: function () { return chunkMQV2XN4B_cjs.Link; }
11
11
  });
12
12
  Object.defineProperty(exports, "Paragraph", {
13
13
  enumerable: true,
14
- get: function () { return chunk6ODY6MGL_cjs.Paragraph; }
14
+ get: function () { return chunkMQV2XN4B_cjs.Paragraph; }
15
15
  });
16
16
  Object.defineProperty(exports, "Text", {
17
17
  enumerable: true,
18
- get: function () { return chunk6ODY6MGL_cjs.Text; }
18
+ get: function () { return chunkMQV2XN4B_cjs.Text; }
19
19
  });
20
20
  Object.defineProperty(exports, "Title", {
21
21
  enumerable: true,
22
- get: function () { return chunk6ODY6MGL_cjs.Title; }
22
+ get: function () { return chunkMQV2XN4B_cjs.Title; }
23
23
  });
24
24
  Object.defineProperty(exports, "Typography", {
25
25
  enumerable: true,
26
- get: function () { return chunk6ODY6MGL_cjs.Typography; }
26
+ get: function () { return chunkMQV2XN4B_cjs.Typography; }
27
27
  });
@@ -1,2 +1,2 @@
1
- export { Link, Paragraph, Text, Title, Typography } from './chunk-ULOJ5UEY.js';
2
- import './chunk-NJ6B22YJ.js';
1
+ export { Link, Paragraph, Text, Title, Typography } from './chunk-CXWEOAVU.js';
2
+ import './chunk-OF3SGLZY.js';
@@ -1,4 +1,4 @@
1
- import { Icon } from './chunk-NJ6B22YJ.js';
1
+ import { Icon } from './chunk-OF3SGLZY.js';
2
2
  import './tokens-BIIUTPKN.css';
3
3
  import './shared-NJHRNLRH.css';
4
4
  import './Calendar-LHZELUDL.css';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2MNAZRWE_cjs = require('./chunk-2MNAZRWE.cjs');
3
+ var chunkTJII7BQ2_cjs = require('./chunk-TJII7BQ2.cjs');
4
4
  require('./tokens-BIIUTPKN.css');
5
5
  require('./shared-NJHRNLRH.css');
6
6
  require('./Alert-JJ7GB3UU.css');
@@ -48,13 +48,13 @@ var Alert = React__namespace.forwardRef(({
48
48
  role: "alert",
49
49
  ...rest,
50
50
  children: [
51
- showIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "alert-ico", children: /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: iconName, size: 14 }) }),
51
+ showIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "alert-ico", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: iconName, size: 14 }) }),
52
52
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "alert-body", children: [
53
53
  title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "alert-title", children: title }),
54
54
  children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "alert-desc", children })
55
55
  ] }),
56
56
  action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "alert-action", children: action }),
57
- closable && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "alert-close", onClick: onClose, "aria-label": "Dismiss", children: /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "x", size: 12 }) })
57
+ closable && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "alert-close", onClick: onClose, "aria-label": "Dismiss", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "x", size: 12 }) })
58
58
  ]
59
59
  }
60
60
  );