@fangxinyan/lumina 0.6.2 → 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 (141) 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 -5
  8. package/dist/AutoComplete.js +4 -4
  9. package/dist/Badge.d.cts +1 -0
  10. package/dist/Badge.d.ts +1 -0
  11. package/dist/{Button-SDQD25AG.css → Button-4Z3Q6KII.css} +56 -36
  12. package/dist/Button.cjs +3 -3
  13. package/dist/Button.d.cts +6 -5
  14. package/dist/Button.d.ts +6 -5
  15. package/dist/Button.js +2 -2
  16. package/dist/Calendar.cjs +3 -3
  17. package/dist/Calendar.js +2 -2
  18. package/dist/{Cascader-C2DFSMKJ.css → Cascader-3BLLA7EN.css} +13 -0
  19. package/dist/Cascader.cjs +5 -5
  20. package/dist/Cascader.d.cts +4 -2
  21. package/dist/Cascader.d.ts +4 -2
  22. package/dist/Cascader.js +4 -4
  23. package/dist/Checkbox.cjs +3 -3
  24. package/dist/Checkbox.js +2 -2
  25. package/dist/Collapse.cjs +3 -3
  26. package/dist/Collapse.js +2 -2
  27. package/dist/CommandPalette.cjs +5 -5
  28. package/dist/CommandPalette.js +4 -4
  29. package/dist/Drawer.cjs +3 -3
  30. package/dist/Drawer.js +2 -2
  31. package/dist/Icon.cjs +55 -47
  32. package/dist/Icon.d.cts +9 -1
  33. package/dist/Icon.d.ts +9 -1
  34. package/dist/Icon.js +1 -1
  35. package/dist/{Image-4MN34O6P.css → Image-MRYQCRQ5.css} +78 -0
  36. package/dist/Image.cjs +12 -4
  37. package/dist/Image.d.cts +79 -6
  38. package/dist/Image.d.ts +79 -6
  39. package/dist/Image.js +2 -2
  40. package/dist/{Input-3G4ONWNU.css → Input-HUBJ55OH.css} +10 -0
  41. package/dist/Input.cjs +5 -5
  42. package/dist/Input.d.cts +4 -3
  43. package/dist/Input.d.ts +4 -3
  44. package/dist/Input.js +3 -3
  45. package/dist/InputNumber.cjs +5 -5
  46. package/dist/InputNumber.js +4 -4
  47. package/dist/Message.cjs +6 -6
  48. package/dist/Message.js +2 -2
  49. package/dist/Modal.cjs +4 -4
  50. package/dist/Modal.d.cts +1 -0
  51. package/dist/Modal.d.ts +1 -0
  52. package/dist/Modal.js +3 -3
  53. package/dist/Pagination.cjs +7 -7
  54. package/dist/Pagination.js +6 -6
  55. package/dist/{Select-JVBQAZBG.css → Select-Z5VYPEEY.css} +26 -1
  56. package/dist/Select.cjs +6 -6
  57. package/dist/Select.d.cts +4 -3
  58. package/dist/Select.d.ts +4 -3
  59. package/dist/Select.js +5 -5
  60. package/dist/Table.cjs +9 -9
  61. package/dist/Table.js +8 -8
  62. package/dist/TablePro.cjs +10 -10
  63. package/dist/TablePro.js +9 -9
  64. package/dist/{Tag-LB3OOJAO.css → Tag-HDYCDPFS.css} +14 -1
  65. package/dist/Tag.cjs +3 -3
  66. package/dist/Tag.d.cts +4 -3
  67. package/dist/Tag.d.ts +4 -3
  68. package/dist/Tag.js +2 -2
  69. package/dist/Textarea.cjs +4 -4
  70. package/dist/Textarea.js +2 -2
  71. package/dist/Theme.cjs +14 -10
  72. package/dist/Theme.d.cts +29 -6
  73. package/dist/Theme.d.ts +29 -6
  74. package/dist/Theme.js +1 -1
  75. package/dist/Typography.cjs +7 -7
  76. package/dist/Typography.d.cts +1 -0
  77. package/dist/Typography.d.ts +1 -0
  78. package/dist/Typography.js +2 -2
  79. package/dist/{chunk-MT7UWY6T.cjs → chunk-2HQCUBA7.cjs} +2 -2
  80. package/dist/{chunk-OF3SGLZY.js → chunk-47VG2P34.js} +9 -1
  81. package/dist/{chunk-ZIP7F4UF.cjs → chunk-5DKRY67M.cjs} +4 -4
  82. package/dist/{chunk-DQTSTJ6O.js → chunk-5H5YP2TB.js} +3 -3
  83. package/dist/{chunk-QGHYQCF3.cjs → chunk-5MN3PMF4.cjs} +8 -8
  84. package/dist/{chunk-FBVVRTX2.cjs → chunk-6HMTV6P4.cjs} +2 -2
  85. package/dist/{chunk-RF2EY5JS.cjs → chunk-6ZXQJRAT.cjs} +153 -34
  86. package/dist/{chunk-4WTU5P3O.cjs → chunk-7AG524YZ.cjs} +3 -3
  87. package/dist/{chunk-CEJ7VBR6.js → chunk-7IYKKLV3.js} +2 -2
  88. package/dist/{chunk-FJNWUELL.js → chunk-AAGF7K3L.js} +1 -1
  89. package/dist/{chunk-AWXCSX6J.js → chunk-BPOOVO5T.js} +3 -3
  90. package/dist/{chunk-EJBHR2P5.js → chunk-BVQ77VRY.js} +2 -2
  91. package/dist/{chunk-7NGMQIST.js → chunk-CETNCRZ4.js} +2 -2
  92. package/dist/{chunk-K2KYM7LW.cjs → chunk-DG5VQ6BO.cjs} +2 -2
  93. package/dist/chunk-DWAN57G4.js +243 -0
  94. package/dist/{chunk-CXWEOAVU.js → chunk-ET6DYQVZ.js} +1 -1
  95. package/dist/{chunk-WKKSAGYH.js → chunk-FBYUZOZP.js} +7 -7
  96. package/dist/{chunk-EIY7KEJ3.cjs → chunk-FGW5GJ22.cjs} +2 -2
  97. package/dist/{chunk-33NCTOEB.js → chunk-FWPBORRB.js} +1 -1
  98. package/dist/{chunk-EQEJTN3V.js → chunk-GIZU3H6H.js} +1 -1
  99. package/dist/{chunk-HPFQXYKG.cjs → chunk-H4LGWZMH.cjs} +9 -9
  100. package/dist/{chunk-6LZ54NPO.cjs → chunk-HKF2V5MM.cjs} +33 -23
  101. package/dist/{chunk-WGZ2KJTZ.js → chunk-HLFH5HWR.js} +1 -1
  102. package/dist/{chunk-UMDGS4BP.js → chunk-I5WTQ5Y3.js} +4 -4
  103. package/dist/{chunk-MUXP7ASL.js → chunk-J2HZTJO6.js} +1 -1
  104. package/dist/{chunk-NN25YMOL.js → chunk-J5ZGYQZK.js} +153 -35
  105. package/dist/{chunk-CHMCL7AV.js → chunk-JCEHZ336.js} +1 -1
  106. package/dist/{chunk-FFZ6OMZI.js → chunk-JVUVOR6S.js} +1 -1
  107. package/dist/{chunk-ON4DEDMI.js → chunk-K5IGFBDR.js} +1 -1
  108. package/dist/{chunk-35ZGBAA3.cjs → chunk-K7FV7W6U.cjs} +5 -5
  109. package/dist/{chunk-XD3JGL5O.js → chunk-ME5BZ2WA.js} +1 -1
  110. package/dist/{chunk-OQBDU5I2.cjs → chunk-MPVCYU2K.cjs} +2 -2
  111. package/dist/{chunk-CUXV6QNN.cjs → chunk-P6EZG2R7.cjs} +5 -5
  112. package/dist/{chunk-SKMP2A5O.cjs → chunk-P6P4DGLF.cjs} +2 -2
  113. package/dist/{chunk-TEG7NJHS.cjs → chunk-PULGVK2I.cjs} +2 -2
  114. package/dist/{chunk-TZJH5HBT.cjs → chunk-QP3VCSRY.cjs} +5 -5
  115. package/dist/{chunk-MQV2XN4B.cjs → chunk-R2TEDH2F.cjs} +5 -5
  116. package/dist/{chunk-JD7A6VM3.js → chunk-SQGPSMSK.js} +5 -5
  117. package/dist/{chunk-GNEZQMKH.js → chunk-TGL5BGMR.js} +4 -4
  118. package/dist/{chunk-5WAXZJG5.cjs → chunk-TP567B3L.cjs} +5 -5
  119. package/dist/{chunk-XTIN5545.js → chunk-UKS23N3L.js} +31 -21
  120. package/dist/{chunk-TJII7BQ2.cjs → chunk-V272XR3F.cjs} +10 -0
  121. package/dist/chunk-VFFIE2VO.cjs +271 -0
  122. package/dist/{chunk-OYMJVU66.cjs → chunk-X5GCOMC3.cjs} +15 -15
  123. package/dist/{chunk-3AS5B7MQ.cjs → chunk-XSN4TLN5.cjs} +10 -10
  124. package/dist/{chunk-6ACKL3WH.cjs → chunk-ZKE73UQF.cjs} +3 -3
  125. package/dist/index.cjs +130 -110
  126. package/dist/index.d.cts +5 -5
  127. package/dist/index.d.ts +5 -5
  128. package/dist/index.js +24 -24
  129. package/dist/styles.css +202 -38
  130. package/docs/llms/alert.md +4 -3
  131. package/docs/llms/button.md +4 -3
  132. package/docs/llms/cascader.md +3 -0
  133. package/docs/llms/image.md +72 -1
  134. package/docs/llms/input.md +3 -2
  135. package/docs/llms/select.md +2 -2
  136. package/docs/llms/tag.md +3 -2
  137. package/docs/llms/theme.md +41 -4
  138. package/docs/llms.md +4 -4
  139. package/package.json +16 -1
  140. package/dist/chunk-B2KEZQ6S.cjs +0 -116
  141. package/dist/chunk-PH3YECMF.js +0 -90
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkOYMJVU66_cjs = require('./chunk-OYMJVU66.cjs');
4
- var chunkTJII7BQ2_cjs = require('./chunk-TJII7BQ2.cjs');
3
+ var chunkX5GCOMC3_cjs = require('./chunk-X5GCOMC3.cjs');
4
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
5
5
  require('./tokens-BIIUTPKN.css');
6
6
  require('./shared-NJHRNLRH.css');
7
7
  require('./Pagination-YIRYJUXP.css');
@@ -98,7 +98,7 @@ var Pagination = React__namespace.forwardRef(({
98
98
  className: `pg ${cur === 1 ? "disabled" : ""}`,
99
99
  onClick: () => cur > 1 && go(cur - 1),
100
100
  "aria-label": "Previous",
101
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "chevLeft", size: 12 })
101
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevLeft", size: 12 })
102
102
  }
103
103
  ),
104
104
  range().map(
@@ -120,11 +120,11 @@ var Pagination = React__namespace.forwardRef(({
120
120
  className: `pg ${cur === pages ? "disabled" : ""}`,
121
121
  onClick: () => cur < pages && go(cur + 1),
122
122
  "aria-label": "Next",
123
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "chevRight", size: 12 })
123
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevRight", size: 12 })
124
124
  }
125
125
  ),
126
126
  showSizeChanger && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pg-size-changer", children: /* @__PURE__ */ jsxRuntime.jsx(
127
- chunkOYMJVU66_cjs.Select,
127
+ chunkX5GCOMC3_cjs.Select,
128
128
  {
129
129
  value: pageSize,
130
130
  size: "sm",
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
4
- var chunk6LZ54NPO_cjs = require('./chunk-6LZ54NPO.cjs');
4
+ var chunkHKF2V5MM_cjs = require('./chunk-HKF2V5MM.cjs');
5
5
  require('./tokens-BIIUTPKN.css');
6
6
  require('./shared-NJHRNLRH.css');
7
7
  require('./AutoComplete-P5KZMZO5.css');
@@ -168,7 +168,7 @@ var AutoComplete = React__namespace.forwardRef(
168
168
  ) : null;
169
169
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: triggerRef, className: `autocomplete ${className}`, children: [
170
170
  /* @__PURE__ */ jsxRuntime.jsx(
171
- chunk6LZ54NPO_cjs.Input,
171
+ chunkHKF2V5MM_cjs.Input,
172
172
  {
173
173
  ref,
174
174
  ...rest,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk6LZ54NPO_cjs = require('./chunk-6LZ54NPO.cjs');
3
+ var chunkHKF2V5MM_cjs = require('./chunk-HKF2V5MM.cjs');
4
4
  require('./tokens-BIIUTPKN.css');
5
5
  require('./shared-NJHRNLRH.css');
6
6
  require('./CommandPalette-T45DBMPY.css');
@@ -149,7 +149,7 @@ var CommandPalette = React__namespace.forwardRef(({
149
149
  ...rest,
150
150
  children: [
151
151
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "cmdp-search", children: /* @__PURE__ */ jsxRuntime.jsx(
152
- chunk6LZ54NPO_cjs.Input,
152
+ chunkHKF2V5MM_cjs.Input,
153
153
  {
154
154
  ref: inputRef,
155
155
  size: "lg",
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunk6LZ54NPO_cjs = require('./chunk-6LZ54NPO.cjs');
4
- var chunkTJII7BQ2_cjs = require('./chunk-TJII7BQ2.cjs');
3
+ var chunkHKF2V5MM_cjs = require('./chunk-HKF2V5MM.cjs');
4
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
5
5
  require('./tokens-BIIUTPKN.css');
6
6
  require('./shared-NJHRNLRH.css');
7
7
  require('./InputNumber-VXQIWLQC.css');
@@ -117,7 +117,7 @@ var InputNumber = React__namespace.forwardRef(
117
117
  disabled: upDisabled,
118
118
  onMouseDown: (e) => e.preventDefault(),
119
119
  onClick: () => increment(step),
120
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "chevUp", size: 10, stroke: 2.5 })
120
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevUp", size: 10, stroke: 2.5 })
121
121
  }
122
122
  ),
123
123
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -129,7 +129,7 @@ var InputNumber = React__namespace.forwardRef(
129
129
  disabled: downDisabled,
130
130
  onMouseDown: (e) => e.preventDefault(),
131
131
  onClick: () => increment(-step),
132
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "chevDown", size: 10, stroke: 2.5 })
132
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevDown", size: 10, stroke: 2.5 })
133
133
  }
134
134
  )
135
135
  ] }) : null;
@@ -138,7 +138,7 @@ var InputNumber = React__namespace.forwardRef(
138
138
  stepperSuffix
139
139
  ] }) : stepperSuffix ?? suffix;
140
140
  return /* @__PURE__ */ jsxRuntime.jsx(
141
- chunk6LZ54NPO_cjs.Input,
141
+ chunkHKF2V5MM_cjs.Input,
142
142
  {
143
143
  ref,
144
144
  id,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkTJII7BQ2_cjs = require('./chunk-TJII7BQ2.cjs');
3
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
4
4
  require('./tokens-BIIUTPKN.css');
5
5
  require('./shared-NJHRNLRH.css');
6
6
  require('./Typography-NKPWTJCV.css');
@@ -74,8 +74,8 @@ var CopyAction = ({ config, fallbackText }) => {
74
74
  timerRef.current = window.setTimeout(() => setCopied(false), 2400);
75
75
  };
76
76
  const [defIcon, doneIcon] = config.icon ?? [
77
- /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "copy", size: 12 }, "def"),
78
- /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "check", size: 12 }, "done")
77
+ /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "copy", size: 12 }, "def"),
78
+ /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "check", size: 12 }, "done")
79
79
  ];
80
80
  const tipText = config.tooltips === false ? void 0 : Array.isArray(config.tooltips) ? copied ? config.tooltips[1] : config.tooltips[0] : copied ? "\u5DF2\u590D\u5236" : "\u590D\u5236";
81
81
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -213,7 +213,7 @@ function useTypographyBody(props) {
213
213
  }
214
214
  },
215
215
  className: "typo-action typo-edit",
216
- children: editConf.icon ?? /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: "edit", size: 12 })
216
+ children: editConf.icon ?? /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "edit", size: 12 })
217
217
  }
218
218
  );
219
219
  }
@@ -473,7 +473,7 @@ var Link = React__namespace.forwardRef(
473
473
  ...anchorRest,
474
474
  children: [
475
475
  body.inner,
476
- external && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-link-ext", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: externalIcon, size: 12 }) }),
476
+ external && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-link-ext", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: externalIcon, size: 12 }) }),
477
477
  body.expandNode,
478
478
  body.copyNode,
479
479
  body.editIconNode
@@ -1,7 +1,7 @@
1
- import { Icon } from './chunk-OF3SGLZY.js';
1
+ import { renderIconSlot } from './chunk-47VG2P34.js';
2
2
  import './tokens-BIIUTPKN.css';
3
3
  import './shared-NJHRNLRH.css';
4
- import './Button-SDQD25AG.css';
4
+ import './Button-4Z3Q6KII.css';
5
5
  import * as React from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
 
@@ -42,12 +42,12 @@ var Button = React.forwardRef(
42
42
  className: cls,
43
43
  disabled: disabled || loading,
44
44
  title: tip,
45
- "aria-label": ariaLabel ?? (onlyIcon ? tip ?? icon : void 0),
45
+ "aria-label": ariaLabel ?? (onlyIcon ? tip ?? (typeof icon === "string" ? icon : void 0) : void 0),
46
46
  ...rest,
47
47
  children: [
48
- loading ? /* @__PURE__ */ jsx("span", { className: "spinner", "aria-hidden": true }) : icon ? /* @__PURE__ */ jsx(Icon, { name: icon, size: 15 }) : null,
48
+ loading ? /* @__PURE__ */ jsx("span", { className: "spinner", "aria-hidden": true }) : renderIconSlot(icon, { size: 15, className: "btn-icon-slot" }),
49
49
  content,
50
- trailingIcon && /* @__PURE__ */ jsx(Icon, { name: trailingIcon, size: 15 })
50
+ renderIconSlot(trailingIcon, { size: 15, className: "btn-icon-slot" })
51
51
  ]
52
52
  }
53
53
  );
@@ -1,9 +1,9 @@
1
1
  import { useFloating } from './chunk-DUFRASGO.js';
2
- import { Input } from './chunk-XTIN5545.js';
3
- import { Icon } from './chunk-OF3SGLZY.js';
2
+ import { Input } from './chunk-UKS23N3L.js';
3
+ import { Icon, renderIconSlot } from './chunk-47VG2P34.js';
4
4
  import './tokens-BIIUTPKN.css';
5
5
  import './shared-NJHRNLRH.css';
6
- import './Cascader-C2DFSMKJ.css';
6
+ import './Cascader-3BLLA7EN.css';
7
7
  import * as React from 'react';
8
8
  import { createPortal } from 'react-dom';
9
9
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -200,7 +200,7 @@ var Cascader = React.forwardRef(({
200
200
  disabled: o.disabled,
201
201
  onClick: () => pick(depth, o.value, hasChildren),
202
202
  children: [
203
- o.icon && /* @__PURE__ */ jsx(Icon, { name: o.icon, size: 13 }),
203
+ renderIconSlot(o.icon, { size: 13, className: "cascader-icon" }),
204
204
  /* @__PURE__ */ jsx("span", { children: o.label }),
205
205
  hasChildren && /* @__PURE__ */ jsx("span", { className: "chev", children: /* @__PURE__ */ jsx(Icon, { name: "chevRight", size: 12 }) })
206
206
  ]
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkTJII7BQ2_cjs = require('./chunk-TJII7BQ2.cjs');
3
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
4
4
  require('./tokens-BIIUTPKN.css');
5
5
  require('./shared-NJHRNLRH.css');
6
- require('./Button-SDQD25AG.css');
6
+ require('./Button-4Z3Q6KII.css');
7
7
  var React = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
@@ -64,12 +64,12 @@ var Button = React__namespace.forwardRef(
64
64
  className: cls,
65
65
  disabled: disabled || loading,
66
66
  title: tip,
67
- "aria-label": ariaLabel ?? (onlyIcon ? tip ?? icon : void 0),
67
+ "aria-label": ariaLabel ?? (onlyIcon ? tip ?? (typeof icon === "string" ? icon : void 0) : void 0),
68
68
  ...rest,
69
69
  children: [
70
- loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner", "aria-hidden": true }) : icon ? /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: icon, size: 15 }) : null,
70
+ loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner", "aria-hidden": true }) : chunkV272XR3F_cjs.renderIconSlot(icon, { size: 15, className: "btn-icon-slot" }),
71
71
  content,
72
- trailingIcon && /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: trailingIcon, size: 15 })
72
+ chunkV272XR3F_cjs.renderIconSlot(trailingIcon, { size: 15, className: "btn-icon-slot" })
73
73
  ]
74
74
  }
75
75
  );
@@ -1,8 +1,8 @@
1
- import { Textarea } from './chunk-WGZ2KJTZ.js';
2
- import { Icon } from './chunk-OF3SGLZY.js';
1
+ import { Textarea } from './chunk-HLFH5HWR.js';
2
+ import { Icon, isIconName, renderIconSlot } from './chunk-47VG2P34.js';
3
3
  import './tokens-BIIUTPKN.css';
4
4
  import './shared-NJHRNLRH.css';
5
- import './Input-3G4ONWNU.css';
5
+ import './Input-HUBJ55OH.css';
6
6
  import * as React from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
 
@@ -51,6 +51,32 @@ var InputBase = React.forwardRef(
51
51
  e.stopPropagation();
52
52
  if (!disabled) handler(e);
53
53
  } : void 0;
54
+ const renderAffixIcon = (icon, side, handler) => {
55
+ if (icon == null || icon === false) return null;
56
+ const className2 = `${side}${handler ? " interactive" : ""}`;
57
+ if (isIconName(icon)) {
58
+ return /* @__PURE__ */ jsx(
59
+ Icon,
60
+ {
61
+ name: icon,
62
+ size: 14,
63
+ className: className2,
64
+ onClick: handleIconClick(handler)
65
+ }
66
+ );
67
+ }
68
+ return /* @__PURE__ */ jsx(
69
+ "span",
70
+ {
71
+ className: className2,
72
+ onClick: handler ? (e) => {
73
+ e.stopPropagation();
74
+ if (!disabled) handler(e);
75
+ } : void 0,
76
+ children: renderIconSlot(icon)
77
+ }
78
+ );
79
+ };
54
80
  const handleChange = (e) => {
55
81
  if (!isControlled) setInner(e.target.value);
56
82
  onChange?.(e);
@@ -72,15 +98,7 @@ var InputBase = React.forwardRef(
72
98
  const showClear = !!allowClear && !!currentValue && !disabled;
73
99
  const count = currentValue ? currentValue.length : 0;
74
100
  const inputElement = /* @__PURE__ */ jsxs("div", { className: wrapCls, children: [
75
- leadingIcon && /* @__PURE__ */ jsx(
76
- Icon,
77
- {
78
- name: leadingIcon,
79
- size: 14,
80
- className: `lead${onLeadingIconClick ? " interactive" : ""}`,
81
- onClick: handleIconClick(onLeadingIconClick)
82
- }
83
- ),
101
+ renderAffixIcon(leadingIcon, "lead", onLeadingIconClick),
84
102
  prefix && /* @__PURE__ */ jsx("span", { className: "input-affix prefix", children: prefix }),
85
103
  /* @__PURE__ */ jsx(
86
104
  "input",
@@ -109,15 +127,7 @@ var InputBase = React.forwardRef(
109
127
  children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 12 })
110
128
  }
111
129
  ),
112
- trailingIcon && /* @__PURE__ */ jsx(
113
- Icon,
114
- {
115
- name: trailingIcon,
116
- size: 14,
117
- className: `trail${onTrailingIconClick ? " interactive" : ""}`,
118
- onClick: handleIconClick(onTrailingIconClick)
119
- }
120
- )
130
+ renderAffixIcon(trailingIcon, "trail", onTrailingIconClick)
121
131
  ] });
122
132
  if (!showCount) return inputElement;
123
133
  return /* @__PURE__ */ jsxs("div", { className: "input-shell", children: [
@@ -277,6 +277,14 @@ var Icon = React__namespace.forwardRef(
277
277
  )
278
278
  );
279
279
  Icon.displayName = "Icon";
280
+ var isIconName = (value) => typeof value === "string" && Object.prototype.hasOwnProperty.call(paths, value);
281
+ var renderIconSlot = (icon, { size = 14, className } = {}) => {
282
+ if (icon == null || icon === false) return null;
283
+ if (isIconName(icon)) {
284
+ return /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon, size, className });
285
+ }
286
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className, children: icon });
287
+ };
280
288
  var ICON_NAMES = Object.keys(paths);
281
289
  var NAMED_ICON_MAP = {
282
290
  AimOutlined: "aim",
@@ -449,4 +457,6 @@ exports.ThunderboltOutlined = ThunderboltOutlined;
449
457
  exports.TranslationOutlined = TranslationOutlined;
450
458
  exports.UnorderedListOutlined = UnorderedListOutlined;
451
459
  exports.UserOutlined = UserOutlined;
460
+ exports.isIconName = isIconName;
461
+ exports.renderIconSlot = renderIconSlot;
452
462
  exports.resolveIconName = resolveIconName;
@@ -0,0 +1,271 @@
1
+ 'use strict';
2
+
3
+ var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
4
+ require('./tokens-BIIUTPKN.css');
5
+ require('./shared-NJHRNLRH.css');
6
+ require('./Image-MRYQCRQ5.css');
7
+ var React = require('react');
8
+ var ReactDOM = require('react-dom');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
+ var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
33
+
34
+ var Image = React__namespace.forwardRef(({
35
+ src,
36
+ alt,
37
+ width = 200,
38
+ height,
39
+ variant = "framed",
40
+ frame,
41
+ padding,
42
+ objectFit,
43
+ objectPosition,
44
+ preview,
45
+ hover = true,
46
+ placeholder,
47
+ imgProps,
48
+ className = "",
49
+ style,
50
+ ...rest
51
+ }, ref) => {
52
+ const [loaded, setLoaded] = React__namespace.useState(false);
53
+ const [err, setErr] = React__namespace.useState(false);
54
+ const [open, setOpen] = React__namespace.useState(false);
55
+ const visualFrame = frame ?? variant === "framed";
56
+ const resolvedHeight = height ?? (variant === "icon" ? width : 140);
57
+ const resolvedPadding = padding ?? (visualFrame ? void 0 : 0);
58
+ const resolvedObjectFit = objectFit ?? (variant === "icon" ? "contain" : "cover");
59
+ const canPreview = (preview ?? variant === "framed") && loaded && !err;
60
+ const {
61
+ className: imgClassName = "",
62
+ style: imgStyle,
63
+ onLoad,
64
+ onError,
65
+ ...imageRest
66
+ } = imgProps ?? {};
67
+ React__namespace.useEffect(() => {
68
+ setLoaded(false);
69
+ setErr(false);
70
+ setOpen(false);
71
+ }, [src]);
72
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
73
+ /* @__PURE__ */ jsxRuntime.jsx(
74
+ "div",
75
+ {
76
+ ref,
77
+ className: `n-image ${variant} ${visualFrame ? "framed" : "unframed"} ${hover ? "hover" : ""} ${canPreview ? "clickable" : ""} ${className}`,
78
+ style: { width, ...resolvedPadding !== void 0 ? { padding: resolvedPadding } : {}, ...style },
79
+ onClick: () => canPreview && setOpen(true),
80
+ ...rest,
81
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "n-image-frame", style: { width: "100%", height: resolvedHeight }, children: [
82
+ !err && src && /* @__PURE__ */ jsxRuntime.jsx(
83
+ "img",
84
+ {
85
+ ...imageRest,
86
+ src,
87
+ alt,
88
+ className: imgClassName,
89
+ style: { objectFit: resolvedObjectFit, objectPosition, ...imgStyle },
90
+ onLoad: (event) => {
91
+ setLoaded(true);
92
+ onLoad?.(event);
93
+ },
94
+ onError: (event) => {
95
+ setErr(true);
96
+ onError?.(event);
97
+ }
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `n-image-placeholder ${loaded && !err ? "loaded" : ""}`, children: placeholder ?? /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "image", size: 28 }) }),
101
+ canPreview && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "image-hint", children: [
103
+ /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "eye", size: 14 }),
104
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u70B9\u51FB\u67E5\u770B" })
105
+ ] }),
106
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "image-actions", onClick: (e) => e.stopPropagation(), children: [
107
+ /* @__PURE__ */ jsxRuntime.jsx(
108
+ "button",
109
+ {
110
+ type: "button",
111
+ className: "ia-btn",
112
+ onClick: () => setOpen(true),
113
+ "aria-label": "\u9884\u89C8",
114
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "eye", size: 13 })
115
+ }
116
+ ),
117
+ src && /* @__PURE__ */ jsxRuntime.jsx("a", { className: "ia-btn", href: src, download: true, "aria-label": "\u4E0B\u8F7D", children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "download", size: 13 }) })
118
+ ] })
119
+ ] })
120
+ ] })
121
+ }
122
+ ),
123
+ open && typeof document !== "undefined" && ReactDOM__default.default.createPortal(
124
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "image-preview-overlay", onClick: () => setOpen(false), children: /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt, onClick: (e) => e.stopPropagation() }) }),
125
+ document.body
126
+ )
127
+ ] });
128
+ });
129
+ Image.displayName = "Image";
130
+ var ImageGrid = React__namespace.forwardRef(({
131
+ images,
132
+ columns,
133
+ itemHeight = 130,
134
+ minItemWidth = 160,
135
+ gap = 14,
136
+ imageProps,
137
+ className = "",
138
+ style,
139
+ ...rest
140
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
141
+ "div",
142
+ {
143
+ ref,
144
+ className,
145
+ style: {
146
+ display: "grid",
147
+ gap,
148
+ gridTemplateColumns: columns ? `repeat(${columns}, 1fr)` : `repeat(auto-fill, minmax(${typeof minItemWidth === "number" ? `${minItemWidth}px` : minItemWidth}, 1fr))`,
149
+ ...style
150
+ },
151
+ ...rest,
152
+ children: images.map((img, i) => /* @__PURE__ */ jsxRuntime.jsx(
153
+ Image,
154
+ {
155
+ ...imageProps,
156
+ ...img,
157
+ src: img.src,
158
+ alt: img.alt,
159
+ width: img.width ?? "100%",
160
+ height: img.height ?? itemHeight
161
+ },
162
+ i
163
+ ))
164
+ }
165
+ ));
166
+ ImageGrid.displayName = "ImageGrid";
167
+ var SpriteImage = React__namespace.forwardRef(({
168
+ src,
169
+ sprite,
170
+ alt,
171
+ width,
172
+ height,
173
+ scale = 1,
174
+ backgroundSize,
175
+ variant = "icon",
176
+ frame,
177
+ padding,
178
+ className = "",
179
+ style,
180
+ ...rest
181
+ }, ref) => {
182
+ const visualFrame = frame ?? variant === "framed";
183
+ const resolvedWidth = width ?? sprite.width * scale;
184
+ const resolvedHeight = height ?? sprite.height * scale;
185
+ const resolvedPadding = padding ?? (visualFrame ? void 0 : 0);
186
+ return /* @__PURE__ */ jsxRuntime.jsx(
187
+ "div",
188
+ {
189
+ ref,
190
+ className: `n-sprite-image ${variant} ${visualFrame ? "framed" : "unframed"} ${className}`,
191
+ role: alt ? "img" : void 0,
192
+ "aria-label": alt || void 0,
193
+ "aria-hidden": alt === "" ? true : void 0,
194
+ style: { width: resolvedWidth, ...resolvedPadding !== void 0 ? { padding: resolvedPadding } : {}, ...style },
195
+ ...rest,
196
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "n-sprite-image-frame", style: { height: resolvedHeight }, children: /* @__PURE__ */ jsxRuntime.jsx(
197
+ "span",
198
+ {
199
+ className: "n-sprite-image-sprite",
200
+ style: {
201
+ width: sprite.width,
202
+ height: sprite.height,
203
+ backgroundImage: `url(${JSON.stringify(src)})`,
204
+ backgroundPosition: `${-sprite.x}px ${-sprite.y}px`,
205
+ backgroundSize,
206
+ transform: scale !== 1 ? `scale(${scale})` : void 0
207
+ }
208
+ }
209
+ ) })
210
+ }
211
+ );
212
+ });
213
+ SpriteImage.displayName = "SpriteImage";
214
+ var insetStyle = (inset) => {
215
+ if (inset == null) return { inset: 0 };
216
+ if (typeof inset === "number" || typeof inset === "string") return { inset };
217
+ return inset;
218
+ };
219
+ var LayeredImage = React__namespace.forwardRef(({
220
+ layers,
221
+ width = 64,
222
+ height = 64,
223
+ variant = "icon",
224
+ frame,
225
+ padding,
226
+ className = "",
227
+ style,
228
+ ...rest
229
+ }, ref) => {
230
+ const visualFrame = frame ?? variant === "framed";
231
+ const resolvedPadding = padding ?? (visualFrame ? void 0 : 0);
232
+ return /* @__PURE__ */ jsxRuntime.jsx(
233
+ "div",
234
+ {
235
+ ref,
236
+ className: `n-layered-image ${variant} ${visualFrame ? "framed" : "unframed"} ${className}`,
237
+ style: { width, ...resolvedPadding !== void 0 ? { padding: resolvedPadding } : {}, ...style },
238
+ ...rest,
239
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "n-layered-image-frame", style: { height }, children: layers.map(({ src: layerSrc, alt: layerAlt = "", fit = "contain", inset, zIndex, className: layerClassName = "", style: layerStyle, ...layerRest }, index) => /* @__PURE__ */ jsxRuntime.jsx(
240
+ "span",
241
+ {
242
+ className: "n-layered-image-layer",
243
+ style: {
244
+ zIndex,
245
+ ...insetStyle(inset)
246
+ },
247
+ children: /* @__PURE__ */ jsxRuntime.jsx(
248
+ "img",
249
+ {
250
+ ...layerRest,
251
+ src: layerSrc,
252
+ alt: layerAlt,
253
+ className: layerClassName,
254
+ style: {
255
+ objectFit: fit,
256
+ ...layerStyle
257
+ }
258
+ }
259
+ )
260
+ },
261
+ `${layerSrc}-${index}`
262
+ )) })
263
+ }
264
+ );
265
+ });
266
+ LayeredImage.displayName = "LayeredImage";
267
+
268
+ exports.Image = Image;
269
+ exports.ImageGrid = ImageGrid;
270
+ exports.LayeredImage = LayeredImage;
271
+ exports.SpriteImage = SpriteImage;