@fangxinyan/lumina 0.6.1 → 0.6.3

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 (270) hide show
  1. package/README.md +2 -1
  2. package/dist/{Alert-JJ7GB3UU.css → Alert-QBKIDY5H.css} +7 -0
  3. package/dist/Alert.cjs +3 -3
  4. package/dist/Alert.d.cts +3 -2
  5. package/dist/Alert.d.ts +3 -2
  6. package/dist/Alert.js +2 -2
  7. package/dist/AutoComplete.cjs +5 -4
  8. package/dist/AutoComplete.d.cts +1 -1
  9. package/dist/AutoComplete.d.ts +1 -1
  10. package/dist/AutoComplete.js +4 -3
  11. package/dist/Badge-DPGLV3D3.css +22 -0
  12. package/dist/Badge.cjs +10 -0
  13. package/dist/Badge.d.cts +19 -0
  14. package/dist/Badge.d.ts +19 -0
  15. package/dist/Badge.js +1 -0
  16. package/dist/{Button-SDQD25AG.css → Button-4Z3Q6KII.css} +56 -36
  17. package/dist/Button.cjs +3 -7
  18. package/dist/Button.d.cts +11 -15
  19. package/dist/Button.d.ts +11 -15
  20. package/dist/Button.js +2 -2
  21. package/dist/Calendar.cjs +3 -3
  22. package/dist/Calendar.js +2 -2
  23. package/dist/{Card-RG7ECXL2.css → Card-6RMVIHWX.css} +7 -13
  24. package/dist/Card.cjs +2 -6
  25. package/dist/Card.d.cts +7 -11
  26. package/dist/Card.d.ts +7 -11
  27. package/dist/Card.js +1 -1
  28. package/dist/{Cascader-VSYEKQCG.css → Cascader-3BLLA7EN.css} +77 -0
  29. package/dist/Cascader.cjs +5 -3
  30. package/dist/Cascader.d.cts +22 -4
  31. package/dist/Cascader.d.ts +22 -4
  32. package/dist/Cascader.js +4 -2
  33. package/dist/{Checkbox-SKJATVSN.css → Checkbox-U5EUDSYS.css} +5 -35
  34. package/dist/Checkbox.cjs +3 -7
  35. package/dist/Checkbox.d.cts +1 -18
  36. package/dist/Checkbox.d.ts +1 -18
  37. package/dist/Checkbox.js +2 -2
  38. package/dist/Collapse-66U5YJFY.css +53 -0
  39. package/dist/Collapse.cjs +11 -0
  40. package/dist/Collapse.d.cts +32 -0
  41. package/dist/Collapse.d.ts +32 -0
  42. package/dist/Collapse.js +2 -0
  43. package/dist/CommandPalette.cjs +5 -4
  44. package/dist/CommandPalette.js +4 -3
  45. package/dist/Drawer.cjs +3 -3
  46. package/dist/Drawer.js +2 -2
  47. package/dist/Empty-DC2LPORC.css +28 -0
  48. package/dist/Empty.cjs +2 -10
  49. package/dist/Empty.d.cts +1 -62
  50. package/dist/Empty.d.ts +1 -62
  51. package/dist/Empty.js +1 -1
  52. package/dist/Form.d.cts +1 -1
  53. package/dist/Form.d.ts +1 -1
  54. package/dist/Icon.cjs +187 -3
  55. package/dist/Icon.d.cts +104 -3
  56. package/dist/Icon.d.ts +104 -3
  57. package/dist/Icon.js +1 -1
  58. package/dist/{Image-4MN34O6P.css → Image-MRYQCRQ5.css} +78 -0
  59. package/dist/Image.cjs +12 -4
  60. package/dist/Image.d.cts +79 -6
  61. package/dist/Image.d.ts +79 -6
  62. package/dist/Image.js +2 -2
  63. package/dist/{Input-33CAH4O6.css → Input-HUBJ55OH.css} +25 -42
  64. package/dist/Input.cjs +6 -5
  65. package/dist/Input.d.cts +23 -26
  66. package/dist/Input.d.ts +23 -26
  67. package/dist/Input.js +3 -2
  68. package/dist/InputNumber.cjs +5 -4
  69. package/dist/InputNumber.d.cts +1 -1
  70. package/dist/InputNumber.d.ts +1 -1
  71. package/dist/InputNumber.js +4 -3
  72. package/dist/Message-2MZ3LFPU.css +45 -0
  73. package/dist/Message.cjs +23 -0
  74. package/dist/Message.d.cts +54 -0
  75. package/dist/Message.d.ts +54 -0
  76. package/dist/Message.js +2 -0
  77. package/dist/{Modal-XSDMU4XJ.css → Modal-2QNDW4SO.css} +27 -0
  78. package/dist/Modal.cjs +4 -4
  79. package/dist/Modal.d.cts +29 -4
  80. package/dist/Modal.d.ts +29 -4
  81. package/dist/Modal.js +3 -3
  82. package/dist/Pagination.cjs +7 -5
  83. package/dist/Pagination.js +6 -4
  84. package/dist/Popover.cjs +2 -2
  85. package/dist/Popover.d.cts +11 -3
  86. package/dist/Popover.d.ts +11 -3
  87. package/dist/Popover.js +1 -1
  88. package/dist/Radio-GVFDPAZM.css +97 -0
  89. package/dist/Radio.cjs +14 -0
  90. package/dist/Radio.d.cts +36 -0
  91. package/dist/Radio.d.ts +36 -0
  92. package/dist/Radio.js +1 -0
  93. package/dist/{Select-J3CCVFJ7.css → Select-Z5VYPEEY.css} +33 -24
  94. package/dist/Select.cjs +6 -4
  95. package/dist/Select.d.cts +29 -7
  96. package/dist/Select.d.ts +29 -7
  97. package/dist/Select.js +5 -3
  98. package/dist/Skeleton-CVWH2VWN.css +40 -0
  99. package/dist/Skeleton.cjs +10 -0
  100. package/dist/Skeleton.d.cts +30 -0
  101. package/dist/Skeleton.d.ts +30 -0
  102. package/dist/Skeleton.js +1 -0
  103. package/dist/Spin-3GJNMSIH.css +94 -0
  104. package/dist/Spin.cjs +10 -0
  105. package/dist/Spin.d.cts +20 -0
  106. package/dist/Spin.d.ts +20 -0
  107. package/dist/Spin.js +1 -0
  108. package/dist/{Table-2LPTOUIR.css → Table-ATJJQLKU.css} +0 -53
  109. package/dist/Table.cjs +9 -11
  110. package/dist/Table.d.cts +2 -21
  111. package/dist/Table.d.ts +2 -21
  112. package/dist/Table.js +8 -6
  113. package/dist/TablePro-3XVHYLSL.css +45 -0
  114. package/dist/TablePro.cjs +19 -0
  115. package/dist/TablePro.d.cts +21 -0
  116. package/dist/TablePro.d.ts +21 -0
  117. package/dist/TablePro.js +10 -0
  118. package/dist/{Tabs-RHK6XAFF.css → Tabs-BLSNI2T5.css} +0 -34
  119. package/dist/Tabs.cjs +2 -6
  120. package/dist/Tabs.d.cts +1 -16
  121. package/dist/Tabs.d.ts +1 -16
  122. package/dist/Tabs.js +1 -1
  123. package/dist/Tag-HDYCDPFS.css +42 -0
  124. package/dist/Tag.cjs +3 -7
  125. package/dist/Tag.d.cts +5 -14
  126. package/dist/Tag.d.ts +5 -14
  127. package/dist/Tag.js +2 -2
  128. package/dist/Textarea-YNET7IBH.css +54 -0
  129. package/dist/Textarea.cjs +15 -0
  130. package/dist/Textarea.d.cts +25 -0
  131. package/dist/Textarea.d.ts +25 -0
  132. package/dist/Textarea.js +2 -0
  133. package/dist/Theme.cjs +14 -10
  134. package/dist/Theme.d.cts +29 -6
  135. package/dist/Theme.d.ts +29 -6
  136. package/dist/Theme.js +1 -1
  137. package/dist/{Timeline-RHZAZKZ7.css → Timeline-3ZHOHPXT.css} +2 -2
  138. package/dist/Timeline.cjs +3 -3
  139. package/dist/Timeline.d.cts +1 -1
  140. package/dist/Timeline.d.ts +1 -1
  141. package/dist/Timeline.js +2 -2
  142. package/dist/Tooltip.cjs +2 -2
  143. package/dist/Tooltip.d.cts +17 -4
  144. package/dist/Tooltip.d.ts +17 -4
  145. package/dist/Tooltip.js +1 -1
  146. package/dist/Typography.cjs +7 -7
  147. package/dist/Typography.d.cts +1 -0
  148. package/dist/Typography.d.ts +1 -0
  149. package/dist/Typography.js +2 -2
  150. package/dist/{chunk-OVZTG5CP.cjs → chunk-2HQCUBA7.cjs} +2 -2
  151. package/dist/{chunk-X2U7EKCS.cjs → chunk-3YJU3D5S.cjs} +28 -5
  152. package/dist/chunk-45VJGBGN.js +25 -0
  153. package/dist/{chunk-3D77MQHO.js → chunk-46VXFTEC.js} +3 -3
  154. package/dist/chunk-47VG2P34.js +393 -0
  155. package/dist/{chunk-LZU33BX6.cjs → chunk-5DKRY67M.cjs} +4 -20
  156. package/dist/{chunk-TWGQZX2R.js → chunk-5H5YP2TB.js} +4 -19
  157. package/dist/chunk-5MN3PMF4.cjs +240 -0
  158. package/dist/{chunk-5A3RT4KD.js → chunk-5TKC6IEN.js} +4 -55
  159. package/dist/{chunk-N57NXCNC.cjs → chunk-6HMTV6P4.cjs} +3 -44
  160. package/dist/{chunk-RF2EY5JS.cjs → chunk-6ZXQJRAT.cjs} +153 -34
  161. package/dist/{chunk-OFGDUCT7.cjs → chunk-7AG524YZ.cjs} +3 -3
  162. package/dist/chunk-7IYKKLV3.js +283 -0
  163. package/dist/{chunk-73RQBWWW.js → chunk-AAGF7K3L.js} +2 -2
  164. package/dist/chunk-AXZ7ELMA.js +41 -0
  165. package/dist/{chunk-R6BIF3FF.js → chunk-BPOOVO5T.js} +5 -23
  166. package/dist/{chunk-OI3CWXT3.js → chunk-BVQ77VRY.js} +3 -3
  167. package/dist/{chunk-UXH5PH3S.js → chunk-CETNCRZ4.js} +2 -2
  168. package/dist/chunk-DG5VQ6BO.cjs +28 -0
  169. package/dist/chunk-DWAN57G4.js +243 -0
  170. package/dist/chunk-ELNT3CFO.js +64 -0
  171. package/dist/{chunk-ULOJ5UEY.js → chunk-ET6DYQVZ.js} +1 -1
  172. package/dist/chunk-F6RYCBQG.js +25 -0
  173. package/dist/{chunk-RPFMQZA5.js → chunk-FBYUZOZP.js} +42 -31
  174. package/dist/chunk-FGW5GJ22.cjs +132 -0
  175. package/dist/{chunk-6Y5WRCPW.js → chunk-FWPBORRB.js} +1 -1
  176. package/dist/chunk-GENABQYA.cjs +47 -0
  177. package/dist/{chunk-TGHBKKSS.js → chunk-GIZU3H6H.js} +3 -43
  178. package/dist/chunk-GMN74OEY.cjs +63 -0
  179. package/dist/{chunk-Y47YTYQ3.cjs → chunk-H4LGWZMH.cjs} +159 -8
  180. package/dist/chunk-HKF2V5MM.cjs +214 -0
  181. package/dist/chunk-HLFH5HWR.js +81 -0
  182. package/dist/{chunk-4WRE4HQP.js → chunk-HWFM4MAT.js} +18 -6
  183. package/dist/{chunk-GY3BSHHS.cjs → chunk-HZSIUOCN.cjs} +2 -55
  184. package/dist/{chunk-D46EM4EN.js → chunk-I5WTQ5Y3.js} +4 -4
  185. package/dist/chunk-J2HZTJO6.js +26 -0
  186. package/dist/{chunk-NN25YMOL.js → chunk-J5ZGYQZK.js} +153 -35
  187. package/dist/{chunk-WRDKOSSM.js → chunk-JCEHZ336.js} +1 -1
  188. package/dist/chunk-JVUVOR6S.js +110 -0
  189. package/dist/chunk-K5IGFBDR.js +113 -0
  190. package/dist/{chunk-Q2KG6SQK.cjs → chunk-K7FV7W6U.cjs} +5 -5
  191. package/dist/{chunk-PWW64ZWO.cjs → chunk-KD4YYIIO.cjs} +1 -32
  192. package/dist/chunk-KGSADAOD.cjs +170 -0
  193. package/dist/{chunk-54YLXXS2.js → chunk-ME5BZ2WA.js} +2 -2
  194. package/dist/chunk-MPVCYU2K.cjs +104 -0
  195. package/dist/{chunk-EEMWQX3C.cjs → chunk-NTS5L4NQ.cjs} +3 -3
  196. package/dist/{chunk-WBK6XIDJ.js → chunk-OBEKX4VR.js} +2 -32
  197. package/dist/{chunk-EBNRZRWY.cjs → chunk-P6EZG2R7.cjs} +5 -5
  198. package/dist/{chunk-KYEY2LIB.cjs → chunk-P6P4DGLF.cjs} +3 -3
  199. package/dist/{chunk-GOBWKQCX.cjs → chunk-PULGVK2I.cjs} +3 -3
  200. package/dist/chunk-Q5SZIU7Z.cjs +47 -0
  201. package/dist/chunk-QKQHZIF3.cjs +86 -0
  202. package/dist/{chunk-3TWNBJFI.cjs → chunk-QP3VCSRY.cjs} +6 -6
  203. package/dist/{chunk-6ODY6MGL.cjs → chunk-R2TEDH2F.cjs} +5 -5
  204. package/dist/{chunk-YRZGXXWA.js → chunk-SQGPSMSK.js} +14 -20
  205. package/dist/{chunk-IW5LW6XS.js → chunk-TEEFR2FD.js} +28 -5
  206. package/dist/chunk-TGL5BGMR.js +218 -0
  207. package/dist/{chunk-62GU4OHH.cjs → chunk-TP567B3L.cjs} +13 -20
  208. package/dist/chunk-UKS23N3L.js +191 -0
  209. package/dist/chunk-USQ43DJ5.js +147 -0
  210. package/dist/{chunk-G2K6ETP4.cjs → chunk-UUHFKIWP.cjs} +18 -6
  211. package/dist/{chunk-2MNAZRWE.cjs → chunk-V272XR3F.cjs} +271 -2
  212. package/dist/chunk-VFFIE2VO.cjs +271 -0
  213. package/dist/{chunk-FIO65XYG.cjs → chunk-X5GCOMC3.cjs} +49 -38
  214. package/dist/{chunk-Y3ZSG3SJ.cjs → chunk-XSN4TLN5.cjs} +11 -30
  215. package/dist/chunk-ZKE73UQF.cjs +138 -0
  216. package/dist/index.cjs +342 -132
  217. package/dist/index.d.cts +26 -20
  218. package/dist/index.d.ts +26 -20
  219. package/dist/index.js +35 -29
  220. package/dist/styles.css +515 -230
  221. package/docs/llms/alert.md +4 -3
  222. package/docs/llms/badge.md +3 -3
  223. package/docs/llms/button.md +11 -41
  224. package/docs/llms/card.md +6 -12
  225. package/docs/llms/cascader.md +22 -0
  226. package/docs/llms/{accordion.md → collapse.md} +13 -11
  227. package/docs/llms/drawer.md +1 -1
  228. package/docs/llms/form.md +1 -1
  229. package/docs/llms/image.md +72 -1
  230. package/docs/llms/input.md +28 -18
  231. package/docs/llms/message.md +63 -0
  232. package/docs/llms/modal.md +30 -0
  233. package/docs/llms/popover.md +18 -1
  234. package/docs/llms/radio.md +37 -1
  235. package/docs/llms/select.md +22 -2
  236. package/docs/llms/spin.md +59 -0
  237. package/docs/llms/table.md +3 -3
  238. package/docs/llms/tag.md +3 -2
  239. package/docs/llms/theme.md +41 -4
  240. package/docs/llms/tooltip.md +16 -3
  241. package/docs/llms.md +8 -8
  242. package/package.json +32 -52
  243. package/dist/Accordion-REMDCQUD.css +0 -44
  244. package/dist/Accordion.cjs +0 -11
  245. package/dist/Accordion.d.cts +0 -33
  246. package/dist/Accordion.d.ts +0 -33
  247. package/dist/Accordion.js +0 -2
  248. package/dist/Empty-NQ72W3D7.css +0 -160
  249. package/dist/Tag-FGDY3W7E.css +0 -51
  250. package/dist/Toast-YSACW3EM.css +0 -45
  251. package/dist/Toast.cjs +0 -15
  252. package/dist/Toast.d.cts +0 -26
  253. package/dist/Toast.d.ts +0 -26
  254. package/dist/Toast.js +0 -2
  255. package/dist/chunk-32HBMXXV.cjs +0 -208
  256. package/dist/chunk-3XTHKAEY.js +0 -39
  257. package/dist/chunk-5M26OVVY.js +0 -90
  258. package/dist/chunk-DOMYUGJY.js +0 -132
  259. package/dist/chunk-DPNDHNKK.js +0 -185
  260. package/dist/chunk-G2XK57I7.cjs +0 -116
  261. package/dist/chunk-HBWO3QKW.js +0 -74
  262. package/dist/chunk-JVS5ZALZ.js +0 -123
  263. package/dist/chunk-LIGHV4RC.cjs +0 -121
  264. package/dist/chunk-MCTIA6RZ.js +0 -99
  265. package/dist/chunk-NC4YUEXM.cjs +0 -145
  266. package/dist/chunk-NJ6B22YJ.js +0 -170
  267. package/dist/chunk-W64ARHLJ.cjs +0 -62
  268. package/dist/chunk-ZFW6OYAO.cjs +0 -100
  269. package/docs/llms/spinner.md +0 -58
  270. package/docs/llms/toast.md +0 -51
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkLZU33BX6_cjs = require('./chunk-LZU33BX6.cjs');
3
+ var chunk5DKRY67M_cjs = require('./chunk-5DKRY67M.cjs');
4
4
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
5
- var chunk2MNAZRWE_cjs = require('./chunk-2MNAZRWE.cjs');
5
+ var chunkHKF2V5MM_cjs = require('./chunk-HKF2V5MM.cjs');
6
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
6
7
  require('./tokens-BIIUTPKN.css');
7
8
  require('./shared-NJHRNLRH.css');
8
- require('./Select-J3CCVFJ7.css');
9
+ require('./Select-Z5VYPEEY.css');
9
10
  var React = require('react');
10
11
  var reactDom = require('react-dom');
11
12
  var jsxRuntime = require('react/jsx-runtime');
@@ -32,9 +33,10 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
33
 
33
34
  var isGroup = (it) => Array.isArray(it.options);
34
35
  var flatten = (items) => items.flatMap((it) => isGroup(it) ? it.options : [it]);
35
- var defaultFilter = (input, opt) => {
36
+ var defaultFilter = (input, opt, optionFilterProp) => {
36
37
  const q = input.toLowerCase();
37
- const txt = opt.text ?? (typeof opt.label === "string" ? opt.label : String(opt.value));
38
+ const propValue = optionFilterProp ? opt[optionFilterProp] : void 0;
39
+ const txt = propValue != null ? String(propValue) : opt.text ?? (typeof opt.label === "string" ? opt.label : String(opt.value));
38
40
  return txt.toLowerCase().includes(q);
39
41
  };
40
42
  var SelectInner = (props, forwardedRef) => {
@@ -45,8 +47,11 @@ var SelectInner = (props, forwardedRef) => {
45
47
  size = "md",
46
48
  invalid,
47
49
  clearable,
50
+ allowClear,
48
51
  searchable,
52
+ showSearch,
49
53
  filterOption,
54
+ optionFilterProp,
50
55
  loading,
51
56
  emptyContent,
52
57
  open: openProp,
@@ -54,6 +59,8 @@ var SelectInner = (props, forwardedRef) => {
54
59
  onOpenChange,
55
60
  className = "",
56
61
  menuClassName = "",
62
+ popupClassName = "",
63
+ dropdownClassName = "",
57
64
  onKeyDown: onRootKeyDown,
58
65
  multiple,
59
66
  value: _value,
@@ -64,6 +71,9 @@ var SelectInner = (props, forwardedRef) => {
64
71
  ...rest
65
72
  } = props;
66
73
  const isMulti = multiple === true;
74
+ const mergedClearable = clearable ?? !!allowClear;
75
+ const mergedSearchable = searchable ?? !!showSearch;
76
+ const mergedMenuClassName = [menuClassName, popupClassName, dropdownClassName].filter(Boolean).join(" ");
67
77
  const [innerSingle, setInnerSingle] = React__namespace.useState(
68
78
  !isMulti ? props.defaultValue : void 0
69
79
  );
@@ -111,17 +121,18 @@ var SelectInner = (props, forwardedRef) => {
111
121
  return () => document.removeEventListener("mousedown", h);
112
122
  }, [open]);
113
123
  React__namespace.useEffect(() => {
114
- if (open && searchable) {
124
+ if (open && mergedSearchable) {
115
125
  requestAnimationFrame(() => searchRef.current?.focus());
116
126
  }
117
127
  if (!open) setActiveIdx(-1);
118
- }, [open, searchable]);
128
+ }, [open, mergedSearchable]);
119
129
  const allFlat = React__namespace.useMemo(() => flatten(options), [options]);
120
130
  const filteredFlat = React__namespace.useMemo(() => {
121
131
  if (!query.trim()) return allFlat;
122
- const f = filterOption ?? defaultFilter;
132
+ if (filterOption === false) return allFlat;
133
+ const f = typeof filterOption === "function" ? filterOption : (input, option) => defaultFilter(input, option, optionFilterProp);
123
134
  return allFlat.filter((o) => f(query, o));
124
- }, [allFlat, query, filterOption]);
135
+ }, [allFlat, query, filterOption, optionFilterProp]);
125
136
  const filteredItems = React__namespace.useMemo(() => {
126
137
  if (!query.trim()) return options;
127
138
  return options.map((it) => {
@@ -153,8 +164,10 @@ var SelectInner = (props, forwardedRef) => {
153
164
  if (isMulti) {
154
165
  if (!multiControlled) setInnerMulti([]);
155
166
  props.onChange?.([]);
167
+ props.onClear?.();
156
168
  } else {
157
169
  if (!singleControlled) setInnerSingle(void 0);
170
+ props.onChange?.(void 0);
158
171
  props.onClear?.();
159
172
  }
160
173
  };
@@ -203,7 +216,7 @@ var SelectInner = (props, forwardedRef) => {
203
216
  }
204
217
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "select-tags", children: [
205
218
  shown.map((o) => /* @__PURE__ */ jsxRuntime.jsx(
206
- chunkLZU33BX6_cjs.Tag,
219
+ chunk5DKRY67M_cjs.Tag,
207
220
  {
208
221
  tone: "accent",
209
222
  removable: !disabled,
@@ -218,7 +231,7 @@ var SelectInner = (props, forwardedRef) => {
218
231
  },
219
232
  String(o.value)
220
233
  )),
221
- overflow > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkLZU33BX6_cjs.Tag, { tone: "neutral", children: [
234
+ overflow > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunk5DKRY67M_cjs.Tag, { tone: "neutral", children: [
222
235
  "+",
223
236
  overflow
224
237
  ] })
@@ -227,12 +240,12 @@ var SelectInner = (props, forwardedRef) => {
227
240
  const current = allFlat.find((o) => o.value === singleValue);
228
241
  if (!current) return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "placeholder", children: placeholder });
229
242
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "select-value", children: [
230
- current.icon && /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: current.icon, size: 14 }),
231
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: current.label })
243
+ chunkV272XR3F_cjs.renderIconSlot(current.icon, { size: 14, className: "select-icon" }),
244
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "select-value-label", children: current.label })
232
245
  ] });
233
246
  };
234
247
  const hasSelection = isMulti ? (multiValue?.length ?? 0) > 0 : singleValue !== void 0;
235
- const showClear = clearable && hasSelection && !disabled;
248
+ const showClear = mergedClearable && hasSelection && !disabled;
236
249
  let renderIdx = -1;
237
250
  const renderOption = (o) => {
238
251
  renderIdx += 1;
@@ -250,13 +263,13 @@ var SelectInner = (props, forwardedRef) => {
250
263
  onMouseEnter: () => setActiveIdx(idx),
251
264
  onClick: () => isMulti ? toggleMulti(o) : pickSingle(o),
252
265
  children: [
253
- isMulti && /* @__PURE__ */ jsxRuntime.jsx("span", { className: `menu-check ${sel ? "on" : ""}`, "aria-hidden": true, children: sel && /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "check", size: 11, stroke: 3 }) }),
254
- o.icon && /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: o.icon, size: 14 }),
266
+ isMulti && /* @__PURE__ */ jsxRuntime.jsx("span", { className: `menu-check ${sel ? "on" : ""}`, "aria-hidden": true, children: sel && /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "check", size: 11, stroke: 3 }) }),
267
+ chunkV272XR3F_cjs.renderIconSlot(o.icon, { size: 14, className: "menu-item-icon" }),
255
268
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "menu-item-body", children: [
256
269
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "menu-item-label", children: o.label }),
257
270
  o.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "menu-item-desc", children: o.description })
258
271
  ] }),
259
- !isMulti && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tick", children: /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "check", size: 12, stroke: 3 }) })
272
+ !isMulti && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tick", children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "check", size: 12, stroke: 3 }) })
260
273
  ]
261
274
  },
262
275
  String(o.value)
@@ -283,8 +296,8 @@ var SelectInner = (props, forwardedRef) => {
283
296
  onClick: () => !disabled && setOpen(!open),
284
297
  children: [
285
298
  renderTrigger(),
286
- showClear && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "select-clear", role: "button", "aria-label": "Clear", onClick: clearAll, children: /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "x", size: 12 }) }),
287
- /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "chevDown", size: 14, className: "select-caret" })
299
+ showClear && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "select-clear", role: "button", "aria-label": "Clear", onClick: clearAll, children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "x", size: 12 }) }),
300
+ /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevDown", size: 14, className: "select-caret" })
288
301
  ]
289
302
  }
290
303
  ),
@@ -293,35 +306,33 @@ var SelectInner = (props, forwardedRef) => {
293
306
  "div",
294
307
  {
295
308
  ref: menuRef,
296
- className: `menu ${menuClassName}`,
309
+ className: `menu ${mergedMenuClassName}`,
297
310
  role: "listbox",
298
311
  "aria-multiselectable": isMulti || void 0,
299
312
  style: floatingStyle,
300
313
  children: [
301
- searchable && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "menu-search", children: [
302
- /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "search", size: 13 }),
303
- /* @__PURE__ */ jsxRuntime.jsx(
304
- "input",
305
- {
306
- ref: searchRef,
307
- type: "text",
308
- value: query,
309
- placeholder: "\u641C\u7D22...",
310
- onChange: (e) => setQuery(e.target.value),
311
- onKeyDown: (e) => {
312
- if (e.key === "Escape" || e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Enter") {
313
- e.preventDefault();
314
- onKeyDown(e);
315
- }
314
+ mergedSearchable && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "menu-search", children: /* @__PURE__ */ jsxRuntime.jsx(
315
+ chunkHKF2V5MM_cjs.Input,
316
+ {
317
+ ref: searchRef,
318
+ size: "sm",
319
+ leadingIcon: "search",
320
+ value: query,
321
+ placeholder: "\u641C\u7D22...",
322
+ onValueChange: setQuery,
323
+ onKeyDown: (e) => {
324
+ if (e.key === "Escape" || e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Enter") {
325
+ e.preventDefault();
326
+ onKeyDown(e);
316
327
  }
317
328
  }
318
- )
319
- ] }),
329
+ }
330
+ ) }),
320
331
  loading ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "menu-state", children: [
321
332
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "menu-state-ico", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner" }) }),
322
333
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u52A0\u8F7D\u4E2D..." })
323
334
  ] }) : filteredItems.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "menu-state", children: [
324
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "menu-state-ico", children: /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "search", size: 16 }) }),
335
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "menu-state-ico", children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "search", size: 16 }) }),
325
336
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: emptyContent ?? "\u6682\u65E0\u5339\u914D\u9879" })
326
337
  ] }) : filteredItems.map(
327
338
  (it, gi) => isGroup(it) ? /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkEBNRZRWY_cjs = require('./chunk-EBNRZRWY.cjs');
4
- var chunkN57NXCNC_cjs = require('./chunk-N57NXCNC.cjs');
3
+ var chunkP6EZG2R7_cjs = require('./chunk-P6EZG2R7.cjs');
4
+ var chunk6HMTV6P4_cjs = require('./chunk-6HMTV6P4.cjs');
5
5
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
6
- var chunk2MNAZRWE_cjs = require('./chunk-2MNAZRWE.cjs');
6
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
7
7
  require('./tokens-BIIUTPKN.css');
8
8
  require('./shared-NJHRNLRH.css');
9
- require('./Table-2LPTOUIR.css');
9
+ require('./Table-ATJJQLKU.css');
10
10
  var React = require('react');
11
11
  var reactDom = require('react-dom');
12
12
  var jsxRuntime = require('react/jsx-runtime');
@@ -251,7 +251,7 @@ var TableInner = ({
251
251
  /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
252
252
  showExpandCol && /* @__PURE__ */ jsxRuntime.jsx("th", { className: "row-expand", style: { width: 40 } }),
253
253
  showSelCol && /* @__PURE__ */ jsxRuntime.jsx("th", { className: "row-check", style: { width: 44 }, children: selectionType === "checkbox" && /* @__PURE__ */ jsxRuntime.jsx(
254
- chunkN57NXCNC_cjs.Checkbox,
254
+ chunk6HMTV6P4_cjs.Checkbox,
255
255
  {
256
256
  checked: allSelectedOnPage,
257
257
  indeterminate: someSelectedOnPage,
@@ -271,7 +271,7 @@ var TableInner = ({
271
271
  children: [
272
272
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "th-label", children: c.title }),
273
273
  c.sortable && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sort-ind", children: /* @__PURE__ */ jsxRuntime.jsx(
274
- chunk2MNAZRWE_cjs.Icon,
274
+ chunkV272XR3F_cjs.Icon,
275
275
  {
276
276
  name: sorted ? sortDir === "asc" ? "chevUp" : "chevDown" : "chevDown",
277
277
  size: 10
@@ -324,7 +324,7 @@ var TableInner = ({
324
324
  e.stopPropagation();
325
325
  toggleExpand(row, k);
326
326
  },
327
- children: /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "chevRight", size: 12 })
327
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevRight", size: 12 })
328
328
  }
329
329
  )
330
330
  }
@@ -351,7 +351,7 @@ var TableInner = ({
351
351
  }
352
352
  }
353
353
  ) : /* @__PURE__ */ jsxRuntime.jsx(
354
- chunkN57NXCNC_cjs.Checkbox,
354
+ chunk6HMTV6P4_cjs.Checkbox,
355
355
  {
356
356
  checked: isSel,
357
357
  disabled: selProps?.disabled,
@@ -376,7 +376,7 @@ var TableInner = ({
376
376
  }
377
377
  ),
378
378
  pagEnabled && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-pagination", children: /* @__PURE__ */ jsxRuntime.jsx(
379
- chunkEBNRZRWY_cjs.Pagination,
379
+ chunkP6EZG2R7_cjs.Pagination,
380
380
  {
381
381
  total: totalCount,
382
382
  pageSize: curPageSize,
@@ -431,7 +431,7 @@ function ColumnFilterButton({
431
431
  e.stopPropagation();
432
432
  setOpen((o) => !o);
433
433
  },
434
- children: /* @__PURE__ */ jsxRuntime.jsx(chunk2MNAZRWE_cjs.Icon, { name: "filter", size: 10 })
434
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "filter", size: 10 })
435
435
  }
436
436
  ),
437
437
  open && typeof document !== "undefined" && reactDom.createPortal(
@@ -445,7 +445,7 @@ function ColumnFilterButton({
445
445
  children: [
446
446
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-filter-options", children: (column.filters ?? []).map((f) => /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "table-filter-item", children: [
447
447
  /* @__PURE__ */ jsxRuntime.jsx(
448
- chunkN57NXCNC_cjs.Checkbox,
448
+ chunk6HMTV6P4_cjs.Checkbox,
449
449
  {
450
450
  checked: draft.includes(f.value),
451
451
  onChange: () => toggle(f.value)
@@ -487,24 +487,5 @@ function ColumnFilterButton({
487
487
  )
488
488
  ] });
489
489
  }
490
- function TablePro({
491
- toolbar,
492
- actions,
493
- footer,
494
- title,
495
- className = "",
496
- ...tableProps
497
- }) {
498
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `table-card ${className}`, children: [
499
- (title || toolbar || actions) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "table-toolbar", children: [
500
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-title", children: title }),
501
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-toolbar-main", children: toolbar }),
502
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-toolbar-actions", children: actions })
503
- ] }),
504
- /* @__PURE__ */ jsxRuntime.jsx(Table, { ...tableProps, className: "joined" }),
505
- footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-footer", children: footer })
506
- ] });
507
- }
508
490
 
509
491
  exports.Table = Table;
510
- exports.TablePro = TablePro;
@@ -0,0 +1,138 @@
1
+ 'use strict';
2
+
3
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
4
+ require('./tokens-BIIUTPKN.css');
5
+ require('./shared-NJHRNLRH.css');
6
+ require('./Message-2MZ3LFPU.css');
7
+ var React = require('react');
8
+ var reactDom = require('react-dom');
9
+ var client = require('react-dom/client');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
+
32
+ var listeners = /* @__PURE__ */ new Set();
33
+ var items = [];
34
+ var uid = 0;
35
+ var autoMounted = false;
36
+ function emit() {
37
+ if (listeners.size === 0 && !autoMounted && typeof document !== "undefined") {
38
+ autoMounted = true;
39
+ const div = document.createElement("div");
40
+ document.body.appendChild(div);
41
+ client.createRoot(div).render(React__namespace.createElement(MessageContainer));
42
+ }
43
+ listeners.forEach((l) => l(items));
44
+ }
45
+ var normalizeConfig = (type, content, durationOrTitle, onClose) => {
46
+ if (content && typeof content === "object" && !React__namespace.isValidElement(content) && ("content" in content || "message" in content || "type" in content)) {
47
+ return { type, ...content };
48
+ }
49
+ const node = content;
50
+ if (typeof durationOrTitle === "number") {
51
+ return { type, content: node, duration: durationOrTitle, onClose };
52
+ }
53
+ return { type, content: node, title: durationOrTitle };
54
+ };
55
+ var message = {
56
+ open(config) {
57
+ const id = ++uid;
58
+ const next = {
59
+ id,
60
+ key: config.key,
61
+ type: config.type ?? "info",
62
+ title: config.title,
63
+ content: config.content ?? config.message,
64
+ duration: config.duration ?? 3200,
65
+ onClose: config.onClose
66
+ };
67
+ if (config.key != null) {
68
+ const existing = items.findIndex((item) => item.key === config.key);
69
+ if (existing >= 0) {
70
+ items = items.map((item, idx) => idx === existing ? { ...next, id: item.id } : item);
71
+ emit();
72
+ return items[existing]?.id ?? id;
73
+ }
74
+ }
75
+ items = [...items, next];
76
+ emit();
77
+ if (next.duration > 0 && typeof window !== "undefined") {
78
+ window.setTimeout(() => message.dismiss(config.key ?? id), next.duration);
79
+ }
80
+ return id;
81
+ },
82
+ show(config) {
83
+ return message.open(config);
84
+ },
85
+ info: (content, durationOrTitle, onClose) => message.open(normalizeConfig("info", content, durationOrTitle, onClose)),
86
+ success: (content, durationOrTitle, onClose) => message.open(normalizeConfig("success", content, durationOrTitle, onClose)),
87
+ warning: (content, durationOrTitle, onClose) => message.open(normalizeConfig("warning", content, durationOrTitle, onClose)),
88
+ warn: (content, durationOrTitle, onClose) => message.open(normalizeConfig("warning", content, durationOrTitle, onClose)),
89
+ error: (content, durationOrTitle, onClose) => message.open(normalizeConfig("error", content, durationOrTitle, onClose)),
90
+ dismiss(idOrKey) {
91
+ const removed = items.filter((i) => i.id === idOrKey || i.key === idOrKey);
92
+ items = items.filter((i) => i.id !== idOrKey && i.key !== idOrKey);
93
+ removed.forEach((item) => item.onClose?.());
94
+ emit();
95
+ },
96
+ destroy(idOrKey) {
97
+ if (idOrKey == null) message.clear();
98
+ else message.dismiss(idOrKey);
99
+ },
100
+ clear() {
101
+ const removed = items;
102
+ items = [];
103
+ removed.forEach((item) => item.onClose?.());
104
+ emit();
105
+ }
106
+ };
107
+ var MessageContainer = React__namespace.forwardRef(({ placement = "top-right", className = "", ...rest }, ref) => {
108
+ const [list, setList] = React__namespace.useState(items);
109
+ React__namespace.useEffect(() => {
110
+ listeners.add(setList);
111
+ return () => {
112
+ listeners.delete(setList);
113
+ };
114
+ }, []);
115
+ if (typeof document === "undefined") return null;
116
+ return reactDom.createPortal(
117
+ /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: `message-container ${placement} ${className}`, ...rest, children: list.map((t) => {
118
+ const iconName = t.type === "success" ? "check2" : t.type === "warning" || t.type === "error" ? "alert" : "info";
119
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `message ${t.type}`, role: "status", children: [
120
+ /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: iconName, size: 18, className: "message-icon" }),
121
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "message-body", children: [
122
+ t.title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "message-title", children: t.title }),
123
+ t.content && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "message-content", children: t.content })
124
+ ] }),
125
+ /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "message-close", onClick: () => message.dismiss(t.key ?? t.id), "aria-label": "Dismiss", children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "x", size: 14 }) })
126
+ ] }, t.id);
127
+ }) }),
128
+ document.body
129
+ );
130
+ });
131
+ MessageContainer.displayName = "MessageContainer";
132
+ var toast = message;
133
+ var ToastContainer = MessageContainer;
134
+
135
+ exports.MessageContainer = MessageContainer;
136
+ exports.ToastContainer = ToastContainer;
137
+ exports.message = message;
138
+ exports.toast = toast;