@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
package/dist/Select.d.cts CHANGED
@@ -18,6 +18,13 @@ interface SelectOptionGroup<T extends string | number = string> {
18
18
  options: SelectOption<T>[];
19
19
  }
20
20
  type SelectItem<T extends string | number = string> = SelectOption<T> | SelectOptionGroup<T>;
21
+ type SelectFilterOption<T extends string | number = string> = boolean | ((input: string, option: SelectOption<T>) => boolean);
22
+ type SelectSingleChangeHandler<T extends string | number = string> = {
23
+ bivarianceHack(value: any): void;
24
+ }["bivarianceHack"];
25
+ type SelectMultiChangeHandler<T extends string | number = string> = {
26
+ bivarianceHack(value: T[]): void;
27
+ }["bivarianceHack"];
21
28
  interface BaseSelectProps<T extends string | number = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
22
29
  /** Flat or mixed (groups + options) item list. */
23
30
  options: SelectItem<T>[];
@@ -28,10 +35,18 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
28
35
  invalid?: boolean;
29
36
  /** Show a small × to clear the selection (single mode) or all selections (multi). */
30
37
  clearable?: boolean;
38
+ /** Alias for `clearable`. */
39
+ allowClear?: boolean | {
40
+ clearIcon?: React.ReactNode;
41
+ };
31
42
  /** Add a search input at the top of the menu. */
32
43
  searchable?: boolean;
44
+ /** Alias for `searchable`. */
45
+ showSearch?: boolean;
33
46
  /** Custom filter — defaults to label/text/value substring match. */
34
- filterOption?: (input: string, option: SelectOption<T>) => boolean;
47
+ filterOption?: SelectFilterOption<T>;
48
+ /** Field used by the default filter. */
49
+ optionFilterProp?: "label" | "value" | "text" | string;
35
50
  /** Show spinner instead of options. */
36
51
  loading?: boolean;
37
52
  /** Custom empty content when no options match. */
@@ -43,12 +58,16 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
43
58
  className?: string;
44
59
  /** Class for the popped-out menu. */
45
60
  menuClassName?: string;
61
+ /** Alias for `menuClassName`. */
62
+ popupClassName?: string;
63
+ /** Additional alias for `menuClassName`. */
64
+ dropdownClassName?: string;
46
65
  }
47
66
  interface SingleSelectProps<T extends string | number = string> extends BaseSelectProps<T> {
48
67
  multiple?: false;
49
68
  value?: T;
50
69
  defaultValue?: T;
51
- onChange?: (value: T) => void;
70
+ onChange?: SelectSingleChangeHandler<T>;
52
71
  /** Fired when user clears the selection via the × button. */
53
72
  onClear?: () => void;
54
73
  }
@@ -56,7 +75,9 @@ interface MultiSelectProps<T extends string | number = string> extends BaseSelec
56
75
  multiple: true;
57
76
  value?: T[];
58
77
  defaultValue?: T[];
59
- onChange?: (value: T[]) => void;
78
+ onChange?: SelectMultiChangeHandler<T>;
79
+ /** Fired when user clears all selections via the × button. */
80
+ onClear?: () => void;
60
81
  /** Max selected items shown as tags before collapsing to "+N". */
61
82
  maxTagCount?: number;
62
83
  }
@@ -68,4 +89,4 @@ type SelectComponent = {
68
89
  /** `Select` — neumorphic dropdown. Set `multiple` for tag-style multi-select. */
69
90
  declare const Select: SelectComponent;
70
91
 
71
- export { type MultiSelectProps, Select, type SelectItem, type SelectOption, type SelectOptionGroup, type SelectProps, type SingleSelectProps };
92
+ export { type MultiSelectProps, Select, type SelectFilterOption, type SelectItem, type SelectMultiChangeHandler, type SelectOption, type SelectOptionGroup, type SelectProps, type SelectSingleChangeHandler, type SingleSelectProps };
package/dist/Select.d.ts CHANGED
@@ -18,6 +18,13 @@ interface SelectOptionGroup<T extends string | number = string> {
18
18
  options: SelectOption<T>[];
19
19
  }
20
20
  type SelectItem<T extends string | number = string> = SelectOption<T> | SelectOptionGroup<T>;
21
+ type SelectFilterOption<T extends string | number = string> = boolean | ((input: string, option: SelectOption<T>) => boolean);
22
+ type SelectSingleChangeHandler<T extends string | number = string> = {
23
+ bivarianceHack(value: any): void;
24
+ }["bivarianceHack"];
25
+ type SelectMultiChangeHandler<T extends string | number = string> = {
26
+ bivarianceHack(value: T[]): void;
27
+ }["bivarianceHack"];
21
28
  interface BaseSelectProps<T extends string | number = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
22
29
  /** Flat or mixed (groups + options) item list. */
23
30
  options: SelectItem<T>[];
@@ -28,10 +35,18 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
28
35
  invalid?: boolean;
29
36
  /** Show a small × to clear the selection (single mode) or all selections (multi). */
30
37
  clearable?: boolean;
38
+ /** Alias for `clearable`. */
39
+ allowClear?: boolean | {
40
+ clearIcon?: React.ReactNode;
41
+ };
31
42
  /** Add a search input at the top of the menu. */
32
43
  searchable?: boolean;
44
+ /** Alias for `searchable`. */
45
+ showSearch?: boolean;
33
46
  /** Custom filter — defaults to label/text/value substring match. */
34
- filterOption?: (input: string, option: SelectOption<T>) => boolean;
47
+ filterOption?: SelectFilterOption<T>;
48
+ /** Field used by the default filter. */
49
+ optionFilterProp?: "label" | "value" | "text" | string;
35
50
  /** Show spinner instead of options. */
36
51
  loading?: boolean;
37
52
  /** Custom empty content when no options match. */
@@ -43,12 +58,16 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
43
58
  className?: string;
44
59
  /** Class for the popped-out menu. */
45
60
  menuClassName?: string;
61
+ /** Alias for `menuClassName`. */
62
+ popupClassName?: string;
63
+ /** Additional alias for `menuClassName`. */
64
+ dropdownClassName?: string;
46
65
  }
47
66
  interface SingleSelectProps<T extends string | number = string> extends BaseSelectProps<T> {
48
67
  multiple?: false;
49
68
  value?: T;
50
69
  defaultValue?: T;
51
- onChange?: (value: T) => void;
70
+ onChange?: SelectSingleChangeHandler<T>;
52
71
  /** Fired when user clears the selection via the × button. */
53
72
  onClear?: () => void;
54
73
  }
@@ -56,7 +75,9 @@ interface MultiSelectProps<T extends string | number = string> extends BaseSelec
56
75
  multiple: true;
57
76
  value?: T[];
58
77
  defaultValue?: T[];
59
- onChange?: (value: T[]) => void;
78
+ onChange?: SelectMultiChangeHandler<T>;
79
+ /** Fired when user clears all selections via the × button. */
80
+ onClear?: () => void;
60
81
  /** Max selected items shown as tags before collapsing to "+N". */
61
82
  maxTagCount?: number;
62
83
  }
@@ -68,4 +89,4 @@ type SelectComponent = {
68
89
  /** `Select` — neumorphic dropdown. Set `multiple` for tag-style multi-select. */
69
90
  declare const Select: SelectComponent;
70
91
 
71
- export { type MultiSelectProps, Select, type SelectItem, type SelectOption, type SelectOptionGroup, type SelectProps, type SingleSelectProps };
92
+ export { type MultiSelectProps, Select, type SelectFilterOption, type SelectItem, type SelectMultiChangeHandler, type SelectOption, type SelectOptionGroup, type SelectProps, type SelectSingleChangeHandler, type SingleSelectProps };
package/dist/Select.js CHANGED
@@ -1,4 +1,6 @@
1
- export { Select } from './chunk-RPFMQZA5.js';
2
- import './chunk-TWGQZX2R.js';
1
+ export { Select } from './chunk-WKKSAGYH.js';
2
+ import './chunk-DQTSTJ6O.js';
3
3
  import './chunk-DUFRASGO.js';
4
- import './chunk-NJ6B22YJ.js';
4
+ import './chunk-XTIN5545.js';
5
+ import './chunk-WGZ2KJTZ.js';
6
+ import './chunk-OF3SGLZY.js';
@@ -0,0 +1,40 @@
1
+ /* ============ Skeleton ============ */
2
+ .skeleton {
3
+ display: block;
4
+ background: color-mix(in oklch, var(--accent-soft) 55%, var(--bg-sunken));
5
+ border-radius: var(--r-sm);
6
+ }
7
+ .skeleton.wave {
8
+ background: linear-gradient(90deg,
9
+ color-mix(in oklch, var(--accent-soft) 35%, var(--bg-sunken)),
10
+ color-mix(in oklch, var(--accent-soft) 75%, var(--bg-sunken)),
11
+ color-mix(in oklch, var(--accent-soft) 35%, var(--bg-sunken)));
12
+ background-size: 200% 100%;
13
+ animation: skel-wave 1.4s ease-in-out infinite;
14
+ }
15
+ .skeleton.pulse { animation: skel-pulse 1.4s ease-in-out infinite; }
16
+ .skeleton.none { animation: none; }
17
+ .skeleton.circle { border-radius: 999px; }
18
+ @keyframes skel-wave { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
19
+ @keyframes skel-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
20
+
21
+ .skeleton-box {
22
+ display: flex;
23
+ align-items: flex-start;
24
+ gap: 16px;
25
+ width: 100%;
26
+ }
27
+ .skeleton-content {
28
+ flex: 1;
29
+ min-width: 0;
30
+ display: flex;
31
+ flex-direction: column;
32
+ gap: 12px;
33
+ }
34
+ .skeleton-box .skeleton-title {
35
+ display: block;
36
+ margin-bottom: 4px;
37
+ }
38
+ .skeleton-box .skeleton-row {
39
+ display: block;
40
+ }
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var chunkHZSIUOCN_cjs = require('./chunk-HZSIUOCN.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Skeleton", {
8
+ enumerable: true,
9
+ get: function () { return chunkHZSIUOCN_cjs.Skeleton; }
10
+ });
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+
3
+ interface SkeletonAvatarConfig {
4
+ shape?: "circle" | "square";
5
+ size?: "sm" | "md" | "lg";
6
+ }
7
+ interface SkeletonTitleConfig {
8
+ width?: number | string;
9
+ }
10
+ interface SkeletonParagraphConfig {
11
+ rows?: number;
12
+ width?: (number | string)[];
13
+ }
14
+ interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLElement>, "title"> {
15
+ width?: number | string;
16
+ height?: number | string;
17
+ circle?: boolean;
18
+ /** `wave` is a shimmer sweep; `pulse` fades opacity; `none` disables animation. */
19
+ animation?: "wave" | "pulse" | "none";
20
+ avatar?: boolean | SkeletonAvatarConfig;
21
+ title?: boolean | SkeletonTitleConfig;
22
+ paragraph?: boolean | SkeletonParagraphConfig;
23
+ className?: string;
24
+ }
25
+ /**
26
+ * `Skeleton` — content placeholder during loading.
27
+ */
28
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLElement>>;
29
+
30
+ export { Skeleton, type SkeletonAvatarConfig, type SkeletonParagraphConfig, type SkeletonProps, type SkeletonTitleConfig };
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+
3
+ interface SkeletonAvatarConfig {
4
+ shape?: "circle" | "square";
5
+ size?: "sm" | "md" | "lg";
6
+ }
7
+ interface SkeletonTitleConfig {
8
+ width?: number | string;
9
+ }
10
+ interface SkeletonParagraphConfig {
11
+ rows?: number;
12
+ width?: (number | string)[];
13
+ }
14
+ interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLElement>, "title"> {
15
+ width?: number | string;
16
+ height?: number | string;
17
+ circle?: boolean;
18
+ /** `wave` is a shimmer sweep; `pulse` fades opacity; `none` disables animation. */
19
+ animation?: "wave" | "pulse" | "none";
20
+ avatar?: boolean | SkeletonAvatarConfig;
21
+ title?: boolean | SkeletonTitleConfig;
22
+ paragraph?: boolean | SkeletonParagraphConfig;
23
+ className?: string;
24
+ }
25
+ /**
26
+ * `Skeleton` — content placeholder during loading.
27
+ */
28
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLElement>>;
29
+
30
+ export { Skeleton, type SkeletonAvatarConfig, type SkeletonParagraphConfig, type SkeletonProps, type SkeletonTitleConfig };
@@ -0,0 +1 @@
1
+ export { Skeleton } from './chunk-5TKC6IEN.js';
@@ -0,0 +1,94 @@
1
+ /* ============ Spin ============ */
2
+ .spin {
3
+ width: 14px;
4
+ height: 14px;
5
+ border-radius: 999px;
6
+ border: 2px solid currentColor;
7
+ border-right-color: transparent;
8
+ animation: spin 0.8s linear infinite;
9
+ display: inline-block;
10
+ }
11
+
12
+ .spin.accent { color: var(--accent); }
13
+ .spin.success { color: var(--success); }
14
+ .spin.warning { color: var(--warning); }
15
+ .spin.danger { color: var(--danger); }
16
+
17
+ .spin.ring {
18
+ position: relative;
19
+ display: inline-block;
20
+ border: none;
21
+ border-radius: 50%;
22
+ background: var(--bg);
23
+ box-shadow: var(--neu-in-sm);
24
+ animation: none;
25
+ }
26
+
27
+ .spin.ring::before {
28
+ content: "";
29
+ position: absolute;
30
+ inset: 0;
31
+ border-radius: inherit;
32
+ background: conic-gradient(from 0deg,
33
+ transparent 0deg,
34
+ color-mix(in oklch, currentColor 30%, transparent) 40deg,
35
+ color-mix(in oklch, currentColor 70%, transparent) 100deg,
36
+ currentColor 220deg,
37
+ currentColor 340deg,
38
+ transparent 360deg);
39
+ -webkit-mask: radial-gradient(circle, transparent 60%, currentColor 61%);
40
+ mask: radial-gradient(circle, transparent 60%, currentColor 61%);
41
+ animation: spin 0.9s linear infinite;
42
+ }
43
+
44
+ .spin.ring.accent::before,
45
+ .spin.ring.success::before,
46
+ .spin.ring.warning::before,
47
+ .spin.ring.danger::before {
48
+ filter: drop-shadow(0 0 4px color-mix(in oklch, currentColor 50%, transparent));
49
+ }
50
+
51
+ .spin.dots {
52
+ display: inline-flex;
53
+ align-items: center;
54
+ gap: 0.34em;
55
+ border: none;
56
+ background: none;
57
+ box-shadow: none;
58
+ width: auto;
59
+ height: auto;
60
+ animation: none;
61
+ line-height: 1;
62
+ }
63
+
64
+ .spin.dots i {
65
+ width: 0.4em;
66
+ height: 0.4em;
67
+ border-radius: 999px;
68
+ background: radial-gradient(circle at 32% 28%,
69
+ color-mix(in oklch, currentColor 40%, var(--bg)),
70
+ currentColor 62%,
71
+ color-mix(in oklch, currentColor 82%, var(--fg)) 100%);
72
+ box-shadow:
73
+ 0 0.06em 0.14em color-mix(in oklch, currentColor 45%, transparent),
74
+ 0 0 0.35em color-mix(in oklch, currentColor 50%, transparent);
75
+ display: inline-block;
76
+ animation: spin-dot-bounce 1.2s ease-in-out infinite;
77
+ }
78
+
79
+ .spin.dots i:nth-child(2) { animation-delay: 0.15s; }
80
+ .spin.dots i:nth-child(3) { animation-delay: 0.3s; }
81
+
82
+ @keyframes spin-dot-bounce {
83
+ 0%, 80%, 100% { transform: translateY(0); opacity: 0.5; }
84
+ 40% { transform: translateY(-30%); opacity: 1; }
85
+ }
86
+
87
+ .spin-wrap {
88
+ display: inline-flex;
89
+ align-items: center;
90
+ gap: 8px;
91
+ color: var(--fg-muted);
92
+ }
93
+
94
+ .spin-label { font-size: 12px; }
package/dist/Spin.cjs ADDED
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var chunkQKQHZIF3_cjs = require('./chunk-QKQHZIF3.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Spin", {
8
+ enumerable: true,
9
+ get: function () { return chunkQKQHZIF3_cjs.Spin; }
10
+ });
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+
3
+ type SpinSize = "small" | "default" | "large" | number;
4
+ interface SpinProps extends React.HTMLAttributes<HTMLSpanElement> {
5
+ size?: SpinSize;
6
+ tone?: "accent" | "success" | "warning" | "danger" | "current";
7
+ /** Text rendered next to the indicator. */
8
+ tip?: React.ReactNode;
9
+ /** Same as `tip`; useful when a `label` prop reads better at call sites. */
10
+ label?: React.ReactNode;
11
+ /** `ring` is the default border spinner; `dots` is a three-dot bounce. */
12
+ variant?: "ring" | "dots";
13
+ /** Hide the indicator while preserving wrapper rendering. */
14
+ spinning?: boolean;
15
+ className?: string;
16
+ }
17
+ /** `Spin` — loading indicator. */
18
+ declare const Spin: React.ForwardRefExoticComponent<SpinProps & React.RefAttributes<HTMLSpanElement>>;
19
+
20
+ export { Spin, type SpinProps, type SpinSize };
package/dist/Spin.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+
3
+ type SpinSize = "small" | "default" | "large" | number;
4
+ interface SpinProps extends React.HTMLAttributes<HTMLSpanElement> {
5
+ size?: SpinSize;
6
+ tone?: "accent" | "success" | "warning" | "danger" | "current";
7
+ /** Text rendered next to the indicator. */
8
+ tip?: React.ReactNode;
9
+ /** Same as `tip`; useful when a `label` prop reads better at call sites. */
10
+ label?: React.ReactNode;
11
+ /** `ring` is the default border spinner; `dots` is a three-dot bounce. */
12
+ variant?: "ring" | "dots";
13
+ /** Hide the indicator while preserving wrapper rendering. */
14
+ spinning?: boolean;
15
+ className?: string;
16
+ }
17
+ /** `Spin` — loading indicator. */
18
+ declare const Spin: React.ForwardRefExoticComponent<SpinProps & React.RefAttributes<HTMLSpanElement>>;
19
+
20
+ export { Spin, type SpinProps, type SpinSize };
package/dist/Spin.js ADDED
@@ -0,0 +1 @@
1
+ export { Spin } from './chunk-ELNT3CFO.js';
@@ -1,10 +1,4 @@
1
1
  /* ============ Table ============ */
2
- .table-card {
3
- border-radius: var(--r-lg);
4
- background: var(--bg);
5
- box-shadow: var(--neu-out-sm);
6
- overflow: hidden;
7
- }
8
2
  .table-wrap {
9
3
  border-radius: var(--r-lg);
10
4
  background: var(--bg);
@@ -246,50 +240,3 @@
246
240
  .table-pagination {
247
241
  margin-top: 12px;
248
242
  }
249
-
250
- /* Pro: card-wrap with toolbar + table + footer */
251
- .table-card {
252
- border-radius: var(--r-lg);
253
- background: var(--bg);
254
- box-shadow: var(--neu-out-sm);
255
- overflow: hidden;
256
- }
257
- .table-card .table-wrap { background: transparent; box-shadow: none; border-radius: 0; }
258
- .table-card .table-wrap.joined { border-radius: 0; }
259
- /* When TablePro hosts the built-in pagination, seat it inside the card. */
260
- .table-card .table-pagination {
261
- margin-top: 0;
262
- padding: 6px 16px;
263
- border-top: 1px solid var(--divider);
264
- background: color-mix(in oklch, var(--bg-sunken) 30%, transparent);
265
- }
266
- .table-toolbar {
267
- display: flex;
268
- align-items: center;
269
- gap: var(--gap-3);
270
- padding: 14px 16px;
271
- border-bottom: 1px solid var(--divider);
272
- }
273
- .table-toolbar .table-title {
274
- font-size: 14px;
275
- font-weight: 600;
276
- margin-right: 8px;
277
- }
278
- .table-toolbar-main {
279
- flex: 1;
280
- display: flex;
281
- align-items: center;
282
- gap: 10px;
283
- min-width: 0;
284
- }
285
- .table-toolbar-actions {
286
- display: flex;
287
- align-items: center;
288
- gap: 8px;
289
- flex-shrink: 0;
290
- }
291
- .table-footer {
292
- padding: 10px 16px;
293
- border-top: 1px solid var(--divider);
294
- background: color-mix(in oklch, var(--bg-sunken) 30%, transparent);
295
- }
package/dist/Table.cjs CHANGED
@@ -1,20 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var chunkY3ZSG3SJ_cjs = require('./chunk-Y3ZSG3SJ.cjs');
4
- require('./chunk-EBNRZRWY.cjs');
5
- require('./chunk-FIO65XYG.cjs');
6
- require('./chunk-LZU33BX6.cjs');
7
- require('./chunk-N57NXCNC.cjs');
3
+ var chunk3AS5B7MQ_cjs = require('./chunk-3AS5B7MQ.cjs');
4
+ require('./chunk-CUXV6QNN.cjs');
5
+ require('./chunk-OYMJVU66.cjs');
6
+ require('./chunk-ZIP7F4UF.cjs');
7
+ require('./chunk-FBVVRTX2.cjs');
8
8
  require('./chunk-YB3IWIOJ.cjs');
9
- require('./chunk-2MNAZRWE.cjs');
9
+ require('./chunk-6LZ54NPO.cjs');
10
+ require('./chunk-OQBDU5I2.cjs');
11
+ require('./chunk-TJII7BQ2.cjs');
10
12
 
11
13
 
12
14
 
13
15
  Object.defineProperty(exports, "Table", {
14
16
  enumerable: true,
15
- get: function () { return chunkY3ZSG3SJ_cjs.Table; }
16
- });
17
- Object.defineProperty(exports, "TablePro", {
18
- enumerable: true,
19
- get: function () { return chunkY3ZSG3SJ_cjs.TablePro; }
17
+ get: function () { return chunk3AS5B7MQ_cjs.Table; }
20
18
  });
package/dist/Table.d.cts CHANGED
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as React from 'react';
3
2
 
4
3
  type RowKey = string | number;
@@ -98,7 +97,7 @@ interface TableProps<Row = any> extends Omit<React.HTMLAttributes<HTMLDivElement
98
97
  sortDir?: "asc" | "desc";
99
98
  onSort?: (key: string) => void;
100
99
  /**
101
- * Row selection config — preferred API (antd-style).
100
+ * Row selection config — preferred API.
102
101
  * When provided, takes precedence over `selectable` / `selected` / `onSelect`.
103
102
  */
104
103
  rowSelection?: RowSelectionConfig<Row>;
@@ -132,23 +131,5 @@ interface TableProps<Row = any> extends Omit<React.HTMLAttributes<HTMLDivElement
132
131
  type TableComponent = <Row extends Record<string, any> = any>(props: TableProps<Row> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
133
132
  /** `Table` — neumorphic data table with sorting, selection and visual variants. */
134
133
  declare const Table: TableComponent;
135
- interface TableProProps<Row = any> extends Omit<TableProps<Row>, "title"> {
136
- /** Toolbar slot — search input, filter, etc. */
137
- toolbar?: React.ReactNode;
138
- /** Right-aligned actions slot in toolbar. */
139
- actions?: React.ReactNode;
140
- /** Footer slot — usually <Pagination />. Optional now that `pagination` is built-in. */
141
- footer?: React.ReactNode;
142
- /** Title shown above the toolbar. */
143
- title?: React.ReactNode;
144
- }
145
- /**
146
- * `TablePro` — full-featured table card with toolbar, sortable/selectable rows,
147
- * variants, and a footer slot for pagination.
148
- *
149
- * Prefer the built-in `pagination` prop over rendering a `<Pagination />` in the
150
- * `footer` slot; `footer` still works for custom footers.
151
- */
152
- declare function TablePro<Row extends Record<string, any> = any>({ toolbar, actions, footer, title, className, ...tableProps }: TableProProps<Row>): react_jsx_runtime.JSX.Element;
153
134
 
154
- export { type ExpandableConfig, type PaginationConfig, type RowKey, type RowSelectionConfig, Table, type TableColumn, type TableColumnFilterItem, TablePro, type TableProProps, type TableProps, type TableScrollConfig, type TableVariant };
135
+ export { type ExpandableConfig, type PaginationConfig, type RowKey, type RowSelectionConfig, Table, type TableColumn, type TableColumnFilterItem, type TableProps, type TableScrollConfig, type TableVariant };
package/dist/Table.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as React from 'react';
3
2
 
4
3
  type RowKey = string | number;
@@ -98,7 +97,7 @@ interface TableProps<Row = any> extends Omit<React.HTMLAttributes<HTMLDivElement
98
97
  sortDir?: "asc" | "desc";
99
98
  onSort?: (key: string) => void;
100
99
  /**
101
- * Row selection config — preferred API (antd-style).
100
+ * Row selection config — preferred API.
102
101
  * When provided, takes precedence over `selectable` / `selected` / `onSelect`.
103
102
  */
104
103
  rowSelection?: RowSelectionConfig<Row>;
@@ -132,23 +131,5 @@ interface TableProps<Row = any> extends Omit<React.HTMLAttributes<HTMLDivElement
132
131
  type TableComponent = <Row extends Record<string, any> = any>(props: TableProps<Row> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
133
132
  /** `Table` — neumorphic data table with sorting, selection and visual variants. */
134
133
  declare const Table: TableComponent;
135
- interface TableProProps<Row = any> extends Omit<TableProps<Row>, "title"> {
136
- /** Toolbar slot — search input, filter, etc. */
137
- toolbar?: React.ReactNode;
138
- /** Right-aligned actions slot in toolbar. */
139
- actions?: React.ReactNode;
140
- /** Footer slot — usually <Pagination />. Optional now that `pagination` is built-in. */
141
- footer?: React.ReactNode;
142
- /** Title shown above the toolbar. */
143
- title?: React.ReactNode;
144
- }
145
- /**
146
- * `TablePro` — full-featured table card with toolbar, sortable/selectable rows,
147
- * variants, and a footer slot for pagination.
148
- *
149
- * Prefer the built-in `pagination` prop over rendering a `<Pagination />` in the
150
- * `footer` slot; `footer` still works for custom footers.
151
- */
152
- declare function TablePro<Row extends Record<string, any> = any>({ toolbar, actions, footer, title, className, ...tableProps }: TableProProps<Row>): react_jsx_runtime.JSX.Element;
153
134
 
154
- export { type ExpandableConfig, type PaginationConfig, type RowKey, type RowSelectionConfig, Table, type TableColumn, type TableColumnFilterItem, TablePro, type TableProProps, type TableProps, type TableScrollConfig, type TableVariant };
135
+ export { type ExpandableConfig, type PaginationConfig, type RowKey, type RowSelectionConfig, Table, type TableColumn, type TableColumnFilterItem, type TableProps, type TableScrollConfig, type TableVariant };
package/dist/Table.js CHANGED
@@ -1,7 +1,9 @@
1
- export { Table, TablePro } from './chunk-R6BIF3FF.js';
2
- import './chunk-UXH5PH3S.js';
3
- import './chunk-RPFMQZA5.js';
4
- import './chunk-TWGQZX2R.js';
5
- import './chunk-TGHBKKSS.js';
1
+ export { Table } from './chunk-AWXCSX6J.js';
2
+ import './chunk-7NGMQIST.js';
3
+ import './chunk-WKKSAGYH.js';
4
+ import './chunk-DQTSTJ6O.js';
5
+ import './chunk-EQEJTN3V.js';
6
6
  import './chunk-DUFRASGO.js';
7
- import './chunk-NJ6B22YJ.js';
7
+ import './chunk-XTIN5545.js';
8
+ import './chunk-WGZ2KJTZ.js';
9
+ import './chunk-OF3SGLZY.js';
@@ -0,0 +1,45 @@
1
+ /* ============ TablePro ============ */
2
+ .table-card {
3
+ border-radius: var(--r-lg);
4
+ background: var(--bg);
5
+ box-shadow: var(--neu-out-sm);
6
+ overflow: hidden;
7
+ }
8
+ .table-card .table-wrap { background: transparent; box-shadow: none; border-radius: 0; }
9
+ .table-card .table-wrap.joined { border-radius: 0; }
10
+ .table-card .table-pagination {
11
+ margin-top: 0;
12
+ padding: 6px 16px;
13
+ border-top: 1px solid var(--divider);
14
+ background: color-mix(in oklch, var(--bg-sunken) 30%, transparent);
15
+ }
16
+ .table-toolbar {
17
+ display: flex;
18
+ align-items: center;
19
+ gap: var(--gap-3);
20
+ padding: 14px 16px;
21
+ border-bottom: 1px solid var(--divider);
22
+ }
23
+ .table-toolbar .table-title {
24
+ font-size: 14px;
25
+ font-weight: 600;
26
+ margin-right: 8px;
27
+ }
28
+ .table-toolbar-main {
29
+ flex: 1;
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 10px;
33
+ min-width: 0;
34
+ }
35
+ .table-toolbar-actions {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: 8px;
39
+ flex-shrink: 0;
40
+ }
41
+ .table-footer {
42
+ padding: 10px 16px;
43
+ border-top: 1px solid var(--divider);
44
+ background: color-mix(in oklch, var(--bg-sunken) 30%, transparent);
45
+ }
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var chunkK2KYM7LW_cjs = require('./chunk-K2KYM7LW.cjs');
4
+ require('./chunk-3AS5B7MQ.cjs');
5
+ require('./chunk-CUXV6QNN.cjs');
6
+ require('./chunk-OYMJVU66.cjs');
7
+ require('./chunk-ZIP7F4UF.cjs');
8
+ require('./chunk-FBVVRTX2.cjs');
9
+ require('./chunk-YB3IWIOJ.cjs');
10
+ require('./chunk-6LZ54NPO.cjs');
11
+ require('./chunk-OQBDU5I2.cjs');
12
+ require('./chunk-TJII7BQ2.cjs');
13
+
14
+
15
+
16
+ Object.defineProperty(exports, "TablePro", {
17
+ enumerable: true,
18
+ get: function () { return chunkK2KYM7LW_cjs.TablePro; }
19
+ });