wssf-kage-ui 0.1.1 → 0.1.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 (257) hide show
  1. package/dist/cjs/Alert/index.d.ts +37 -0
  2. package/dist/cjs/Alert/index.js +124 -0
  3. package/dist/cjs/Alert/style.less +248 -0
  4. package/dist/cjs/Avatar/index.d.ts +47 -0
  5. package/dist/cjs/Avatar/index.js +147 -0
  6. package/dist/cjs/Avatar/style.less +193 -0
  7. package/dist/cjs/Badge/index.d.ts +48 -0
  8. package/dist/cjs/Badge/index.js +141 -0
  9. package/dist/cjs/Badge/style.less +237 -0
  10. package/dist/cjs/Calendar/index.d.ts +33 -0
  11. package/dist/cjs/Calendar/index.js +296 -0
  12. package/dist/cjs/Calendar/style.less +384 -0
  13. package/dist/cjs/Card/index.d.ts +68 -0
  14. package/dist/cjs/Card/index.js +155 -0
  15. package/dist/cjs/Card/style.less +356 -0
  16. package/dist/cjs/Carousel/index.d.ts +33 -0
  17. package/dist/cjs/Carousel/index.js +169 -0
  18. package/dist/cjs/Carousel/style.less +232 -0
  19. package/dist/cjs/Collapse/index.d.ts +55 -0
  20. package/dist/cjs/Collapse/index.js +191 -0
  21. package/dist/cjs/Collapse/style.less +217 -0
  22. package/dist/cjs/Descriptions/index.d.ts +54 -0
  23. package/dist/cjs/Descriptions/index.js +181 -0
  24. package/dist/cjs/Descriptions/style.less +259 -0
  25. package/dist/cjs/Drawer/index.d.ts +57 -0
  26. package/dist/cjs/Drawer/index.js +203 -0
  27. package/dist/cjs/Drawer/style.less +215 -0
  28. package/dist/cjs/Empty/index.d.ts +21 -0
  29. package/dist/cjs/Empty/index.js +115 -0
  30. package/dist/cjs/Empty/style.less +103 -0
  31. package/dist/cjs/FloatButton/index.d.ts +54 -0
  32. package/dist/cjs/FloatButton/index.js +119 -0
  33. package/dist/cjs/FloatButton/style.less +266 -0
  34. package/dist/cjs/Image/index.d.ts +30 -0
  35. package/dist/cjs/Image/index.js +153 -0
  36. package/dist/cjs/Image/style.less +156 -0
  37. package/dist/cjs/Input/index.d.ts +24 -0
  38. package/dist/cjs/Input/index.js +158 -0
  39. package/dist/cjs/Input/style.less +276 -0
  40. package/dist/cjs/InputNumber/index.d.ts +47 -0
  41. package/dist/cjs/InputNumber/index.js +323 -0
  42. package/dist/cjs/InputNumber/style.less +392 -0
  43. package/dist/cjs/Mentions/index.d.ts +57 -0
  44. package/dist/cjs/Mentions/index.js +378 -0
  45. package/dist/cjs/Mentions/style.less +297 -0
  46. package/dist/cjs/Message/index.d.ts +38 -0
  47. package/dist/cjs/Message/index.js +292 -0
  48. package/dist/cjs/Message/style.less +183 -0
  49. package/dist/cjs/Modal/index.d.ts +63 -0
  50. package/dist/cjs/Modal/index.js +254 -0
  51. package/dist/cjs/Modal/style.less +298 -0
  52. package/dist/cjs/Notification/index.d.ts +48 -0
  53. package/dist/cjs/Notification/index.js +340 -0
  54. package/dist/cjs/Notification/style.less +260 -0
  55. package/dist/cjs/Popconfirm/index.d.ts +58 -0
  56. package/dist/cjs/Popconfirm/index.js +393 -0
  57. package/dist/cjs/Popconfirm/style.less +417 -0
  58. package/dist/cjs/Popover/index.d.ts +30 -0
  59. package/dist/cjs/Popover/index.js +131 -0
  60. package/dist/cjs/Popover/style.less +279 -0
  61. package/dist/cjs/Progress/index.d.ts +43 -0
  62. package/dist/cjs/Progress/index.js +213 -0
  63. package/dist/cjs/Progress/style.less +206 -0
  64. package/dist/cjs/QRCode/index.d.ts +30 -0
  65. package/dist/cjs/QRCode/index.js +167 -0
  66. package/dist/cjs/QRCode/style.less +201 -0
  67. package/dist/cjs/Radio/index.d.ts +70 -0
  68. package/dist/cjs/Radio/index.js +199 -0
  69. package/dist/cjs/Radio/style.less +326 -0
  70. package/dist/cjs/Rate/index.d.ts +37 -0
  71. package/dist/cjs/Rate/index.js +151 -0
  72. package/dist/cjs/Rate/style.less +170 -0
  73. package/dist/cjs/Result/index.d.ts +25 -0
  74. package/dist/cjs/Result/index.js +63 -0
  75. package/dist/cjs/Result/style.less +111 -0
  76. package/dist/cjs/Segmented/index.d.ts +31 -0
  77. package/dist/cjs/Segmented/index.js +121 -0
  78. package/dist/cjs/Segmented/style.less +167 -0
  79. package/dist/cjs/Select/index.d.ts +67 -0
  80. package/dist/cjs/Select/index.js +403 -0
  81. package/dist/cjs/Select/style.less +523 -0
  82. package/dist/cjs/Skeleton/index.d.ts +88 -0
  83. package/dist/cjs/Skeleton/index.js +207 -0
  84. package/dist/cjs/Skeleton/style.less +487 -0
  85. package/dist/cjs/Slider/index.d.ts +41 -0
  86. package/dist/cjs/Slider/index.js +325 -0
  87. package/dist/cjs/Slider/style.less +287 -0
  88. package/dist/cjs/Spin/index.d.ts +25 -0
  89. package/dist/cjs/Spin/index.js +98 -0
  90. package/dist/cjs/Spin/style.less +169 -0
  91. package/dist/cjs/Statistic/index.d.ts +26 -0
  92. package/dist/cjs/Statistic/index.js +71 -0
  93. package/dist/cjs/Statistic/style.less +94 -0
  94. package/dist/cjs/Switch/index.d.ts +28 -0
  95. package/dist/cjs/Switch/index.js +71 -0
  96. package/dist/cjs/Switch/style.less +212 -0
  97. package/dist/cjs/Table/index.d.ts +188 -0
  98. package/dist/cjs/Table/index.js +787 -0
  99. package/dist/cjs/Table/style.less +663 -0
  100. package/dist/cjs/Tag/index.d.ts +51 -0
  101. package/dist/cjs/Tag/index.js +142 -0
  102. package/dist/cjs/Tag/style.less +356 -0
  103. package/dist/cjs/TimePicker/index.d.ts +51 -0
  104. package/dist/cjs/TimePicker/index.js +332 -0
  105. package/dist/cjs/TimePicker/style.less +384 -0
  106. package/dist/cjs/Timeline/index.d.ts +47 -0
  107. package/dist/cjs/Timeline/index.js +127 -0
  108. package/dist/cjs/Timeline/style.less +265 -0
  109. package/dist/cjs/Tooltip/index.d.ts +53 -0
  110. package/dist/cjs/Tooltip/index.js +468 -0
  111. package/dist/cjs/Tooltip/style.less +237 -0
  112. package/dist/cjs/Transfer/index.d.ts +52 -0
  113. package/dist/cjs/Transfer/index.js +344 -0
  114. package/dist/cjs/Transfer/style.less +331 -0
  115. package/dist/cjs/Tree/index.d.ts +82 -0
  116. package/dist/cjs/Tree/index.js +226 -0
  117. package/dist/cjs/Tree/style.less +313 -0
  118. package/dist/cjs/TreeSelect/index.d.ts +54 -0
  119. package/dist/cjs/TreeSelect/index.js +373 -0
  120. package/dist/cjs/TreeSelect/style.less +471 -0
  121. package/dist/cjs/Upload/index.d.ts +65 -0
  122. package/dist/cjs/Upload/index.js +517 -0
  123. package/dist/cjs/Upload/style.less +424 -0
  124. package/dist/cjs/Watermark/index.d.ts +41 -0
  125. package/dist/cjs/Watermark/index.js +353 -0
  126. package/dist/cjs/Watermark/style.less +31 -0
  127. package/dist/cjs/index.d.ts +84 -0
  128. package/dist/cjs/index.js +318 -0
  129. package/dist/esm/Alert/index.d.ts +37 -0
  130. package/dist/esm/Alert/index.js +121 -0
  131. package/dist/esm/Alert/style.less +248 -0
  132. package/dist/esm/Avatar/index.d.ts +47 -0
  133. package/dist/esm/Avatar/index.js +142 -0
  134. package/dist/esm/Avatar/style.less +193 -0
  135. package/dist/esm/Badge/index.d.ts +48 -0
  136. package/dist/esm/Badge/index.js +137 -0
  137. package/dist/esm/Badge/style.less +237 -0
  138. package/dist/esm/Calendar/index.d.ts +33 -0
  139. package/dist/esm/Calendar/index.js +291 -0
  140. package/dist/esm/Calendar/style.less +384 -0
  141. package/dist/esm/Card/index.d.ts +68 -0
  142. package/dist/esm/Card/index.js +149 -0
  143. package/dist/esm/Card/style.less +356 -0
  144. package/dist/esm/Carousel/index.d.ts +33 -0
  145. package/dist/esm/Carousel/index.js +163 -0
  146. package/dist/esm/Carousel/style.less +232 -0
  147. package/dist/esm/Collapse/index.d.ts +55 -0
  148. package/dist/esm/Collapse/index.js +187 -0
  149. package/dist/esm/Collapse/style.less +217 -0
  150. package/dist/esm/Descriptions/index.d.ts +54 -0
  151. package/dist/esm/Descriptions/index.js +179 -0
  152. package/dist/esm/Descriptions/style.less +259 -0
  153. package/dist/esm/Drawer/index.d.ts +57 -0
  154. package/dist/esm/Drawer/index.js +202 -0
  155. package/dist/esm/Drawer/style.less +215 -0
  156. package/dist/esm/Empty/index.d.ts +21 -0
  157. package/dist/esm/Empty/index.js +109 -0
  158. package/dist/esm/Empty/style.less +103 -0
  159. package/dist/esm/FloatButton/index.d.ts +54 -0
  160. package/dist/esm/FloatButton/index.js +123 -0
  161. package/dist/esm/FloatButton/style.less +266 -0
  162. package/dist/esm/Image/index.d.ts +30 -0
  163. package/dist/esm/Image/index.js +149 -0
  164. package/dist/esm/Image/style.less +156 -0
  165. package/dist/esm/Input/index.d.ts +24 -0
  166. package/dist/esm/Input/index.js +151 -0
  167. package/dist/esm/Input/style.less +276 -0
  168. package/dist/esm/InputNumber/index.d.ts +47 -0
  169. package/dist/esm/InputNumber/index.js +316 -0
  170. package/dist/esm/InputNumber/style.less +392 -0
  171. package/dist/esm/Mentions/index.d.ts +57 -0
  172. package/dist/esm/Mentions/index.js +374 -0
  173. package/dist/esm/Mentions/style.less +297 -0
  174. package/dist/esm/Message/index.d.ts +38 -0
  175. package/dist/esm/Message/index.js +294 -0
  176. package/dist/esm/Message/style.less +183 -0
  177. package/dist/esm/Modal/index.d.ts +63 -0
  178. package/dist/esm/Modal/index.js +251 -0
  179. package/dist/esm/Modal/style.less +298 -0
  180. package/dist/esm/Notification/index.d.ts +48 -0
  181. package/dist/esm/Notification/index.js +345 -0
  182. package/dist/esm/Notification/style.less +260 -0
  183. package/dist/esm/Popconfirm/index.d.ts +58 -0
  184. package/dist/esm/Popconfirm/index.js +389 -0
  185. package/dist/esm/Popconfirm/style.less +417 -0
  186. package/dist/esm/Popover/index.d.ts +30 -0
  187. package/dist/esm/Popover/index.js +126 -0
  188. package/dist/esm/Popover/style.less +279 -0
  189. package/dist/esm/Progress/index.d.ts +43 -0
  190. package/dist/esm/Progress/index.js +208 -0
  191. package/dist/esm/Progress/style.less +206 -0
  192. package/dist/esm/QRCode/index.d.ts +30 -0
  193. package/dist/esm/QRCode/index.js +158 -0
  194. package/dist/esm/QRCode/style.less +201 -0
  195. package/dist/esm/Radio/index.d.ts +70 -0
  196. package/dist/esm/Radio/index.js +193 -0
  197. package/dist/esm/Radio/style.less +326 -0
  198. package/dist/esm/Rate/index.d.ts +37 -0
  199. package/dist/esm/Rate/index.js +143 -0
  200. package/dist/esm/Rate/style.less +170 -0
  201. package/dist/esm/Result/index.d.ts +25 -0
  202. package/dist/esm/Result/index.js +57 -0
  203. package/dist/esm/Result/style.less +111 -0
  204. package/dist/esm/Segmented/index.d.ts +31 -0
  205. package/dist/esm/Segmented/index.js +113 -0
  206. package/dist/esm/Segmented/style.less +167 -0
  207. package/dist/esm/Select/index.d.ts +67 -0
  208. package/dist/esm/Select/index.js +398 -0
  209. package/dist/esm/Select/style.less +523 -0
  210. package/dist/esm/Skeleton/index.d.ts +88 -0
  211. package/dist/esm/Skeleton/index.js +213 -0
  212. package/dist/esm/Skeleton/style.less +487 -0
  213. package/dist/esm/Slider/index.d.ts +41 -0
  214. package/dist/esm/Slider/index.js +318 -0
  215. package/dist/esm/Slider/style.less +287 -0
  216. package/dist/esm/Spin/index.d.ts +25 -0
  217. package/dist/esm/Spin/index.js +95 -0
  218. package/dist/esm/Spin/style.less +169 -0
  219. package/dist/esm/Statistic/index.d.ts +26 -0
  220. package/dist/esm/Statistic/index.js +65 -0
  221. package/dist/esm/Statistic/style.less +94 -0
  222. package/dist/esm/Switch/index.d.ts +28 -0
  223. package/dist/esm/Switch/index.js +63 -0
  224. package/dist/esm/Switch/style.less +212 -0
  225. package/dist/esm/Table/index.d.ts +188 -0
  226. package/dist/esm/Table/index.js +797 -0
  227. package/dist/esm/Table/style.less +663 -0
  228. package/dist/esm/Tag/index.d.ts +51 -0
  229. package/dist/esm/Tag/index.js +144 -0
  230. package/dist/esm/Tag/style.less +356 -0
  231. package/dist/esm/TimePicker/index.d.ts +51 -0
  232. package/dist/esm/TimePicker/index.js +327 -0
  233. package/dist/esm/TimePicker/style.less +384 -0
  234. package/dist/esm/Timeline/index.d.ts +47 -0
  235. package/dist/esm/Timeline/index.js +130 -0
  236. package/dist/esm/Timeline/style.less +265 -0
  237. package/dist/esm/Tooltip/index.d.ts +53 -0
  238. package/dist/esm/Tooltip/index.js +471 -0
  239. package/dist/esm/Tooltip/style.less +237 -0
  240. package/dist/esm/Transfer/index.d.ts +52 -0
  241. package/dist/esm/Transfer/index.js +340 -0
  242. package/dist/esm/Transfer/style.less +331 -0
  243. package/dist/esm/Tree/index.d.ts +82 -0
  244. package/dist/esm/Tree/index.js +225 -0
  245. package/dist/esm/Tree/style.less +313 -0
  246. package/dist/esm/TreeSelect/index.d.ts +54 -0
  247. package/dist/esm/TreeSelect/index.js +369 -0
  248. package/dist/esm/TreeSelect/style.less +471 -0
  249. package/dist/esm/Upload/index.d.ts +65 -0
  250. package/dist/esm/Upload/index.js +513 -0
  251. package/dist/esm/Upload/style.less +424 -0
  252. package/dist/esm/Watermark/index.d.ts +41 -0
  253. package/dist/esm/Watermark/index.js +349 -0
  254. package/dist/esm/Watermark/style.less +31 -0
  255. package/dist/esm/index.d.ts +84 -0
  256. package/dist/esm/index.js +43 -1
  257. package/package.json +6 -3
@@ -0,0 +1,37 @@
1
+ import React, { ReactNode, CSSProperties } from 'react';
2
+ import './style.less';
3
+ /** Alert 类型 */
4
+ export type AlertType = 'success' | 'info' | 'warning' | 'error';
5
+ /** Alert 属性 */
6
+ export interface AlertProps {
7
+ /** 警告提示内容 */
8
+ message?: ReactNode;
9
+ /** 警告提示的辅助性文字介绍 */
10
+ description?: ReactNode;
11
+ /** 指定警告的样式类型 */
12
+ type?: AlertType;
13
+ /** 是否显示辅助图标 */
14
+ showIcon?: boolean;
15
+ /** 自定义图标 */
16
+ icon?: ReactNode;
17
+ /** 自定义关闭按钮 */
18
+ closeIcon?: ReactNode;
19
+ /** 是否显示关闭按钮 */
20
+ closable?: boolean;
21
+ /** 关闭时触发的回调函数 */
22
+ onClose?: (e: React.MouseEvent<HTMLButtonElement>) => void;
23
+ /** 关闭动画结束后触发的回调函数 */
24
+ afterClose?: () => void;
25
+ /** 自定义操作项 */
26
+ action?: ReactNode;
27
+ /** 自定义类名 */
28
+ className?: string;
29
+ /** 自定义样式 */
30
+ style?: CSSProperties;
31
+ /** 是否用图标和标题换行 */
32
+ banner?: boolean;
33
+ /** 子元素 */
34
+ children?: ReactNode;
35
+ }
36
+ export declare const Alert: React.FC<AlertProps>;
37
+ export default Alert;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Alert = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ require("./style.less");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // ============ 类型定义 ============
19
+ /** Alert 类型 */ /** Alert 属性 */
20
+ // ============ 默认图标 ============
21
+ var defaultIcons = {
22
+ success: '✓',
23
+ info: 'ℹ',
24
+ warning: '⚠',
25
+ error: '✕'
26
+ };
27
+
28
+ // ============ Alert 组件 ============
29
+ var Alert = exports.Alert = function Alert(_ref) {
30
+ var message = _ref.message,
31
+ description = _ref.description,
32
+ _ref$type = _ref.type,
33
+ type = _ref$type === void 0 ? 'info' : _ref$type,
34
+ _ref$showIcon = _ref.showIcon,
35
+ showIcon = _ref$showIcon === void 0 ? false : _ref$showIcon,
36
+ icon = _ref.icon,
37
+ closeIcon = _ref.closeIcon,
38
+ _ref$closable = _ref.closable,
39
+ closable = _ref$closable === void 0 ? false : _ref$closable,
40
+ onClose = _ref.onClose,
41
+ afterClose = _ref.afterClose,
42
+ action = _ref.action,
43
+ _ref$className = _ref.className,
44
+ className = _ref$className === void 0 ? '' : _ref$className,
45
+ style = _ref.style,
46
+ _ref$banner = _ref.banner,
47
+ banner = _ref$banner === void 0 ? false : _ref$banner,
48
+ children = _ref.children;
49
+ var _useState = (0, _react.useState)(true),
50
+ _useState2 = _slicedToArray(_useState, 2),
51
+ visible = _useState2[0],
52
+ setVisible = _useState2[1];
53
+ var _useState3 = (0, _react.useState)(false),
54
+ _useState4 = _slicedToArray(_useState3, 2),
55
+ closing = _useState4[0],
56
+ setClosing = _useState4[1];
57
+
58
+ // 处理关闭
59
+ var handleClose = function handleClose(e) {
60
+ e.stopPropagation();
61
+ onClose === null || onClose === void 0 || onClose(e);
62
+ if (!e.defaultPrevented) {
63
+ setClosing(true);
64
+ setTimeout(function () {
65
+ setVisible(false);
66
+ afterClose === null || afterClose === void 0 || afterClose();
67
+ }, 300); // 等待动画完成
68
+ }
69
+ };
70
+ if (!visible) {
71
+ return null;
72
+ }
73
+ var classNames = ['kage-alert', "kage-alert-".concat(type), showIcon && 'kage-alert-with-icon', closable && 'kage-alert-closable', banner && 'kage-alert-banner', closing && 'kage-alert-closing', className].filter(Boolean).join(' ');
74
+
75
+ // 渲染图标
76
+ var renderIcon = function renderIcon() {
77
+ if (!showIcon && !icon) return null;
78
+ var iconNode = icon || defaultIcons[type];
79
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
80
+ className: "kage-alert-icon",
81
+ children: iconNode
82
+ });
83
+ };
84
+
85
+ // 渲染关闭按钮
86
+ var renderCloseIcon = function renderCloseIcon() {
87
+ if (!closable) return null;
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
89
+ type: "button",
90
+ className: "kage-alert-close-icon",
91
+ onClick: handleClose,
92
+ "aria-label": "\u5173\u95ED",
93
+ children: closeIcon || '×'
94
+ });
95
+ };
96
+
97
+ // 渲染操作按钮
98
+ var renderAction = function renderAction() {
99
+ if (!action) return null;
100
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
101
+ className: "kage-alert-action",
102
+ children: action
103
+ });
104
+ };
105
+
106
+ // 使用 children 或 message
107
+ var content = children || message;
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
109
+ className: classNames,
110
+ style: style,
111
+ role: "alert",
112
+ children: [renderIcon(), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
113
+ className: "kage-alert-content",
114
+ children: [content && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
115
+ className: "kage-alert-message",
116
+ children: content
117
+ }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
118
+ className: "kage-alert-description",
119
+ children: description
120
+ })]
121
+ }), renderAction(), renderCloseIcon()]
122
+ });
123
+ };
124
+ var _default = exports.default = Alert;
@@ -0,0 +1,248 @@
1
+ // Alert 警告提示样式
2
+
3
+ @prefix: kage-alert;
4
+
5
+ // 颜色变量
6
+ @alert-success-bg: #f6ffed;
7
+ @alert-success-border: #b7eb8f;
8
+ @alert-success-icon: #52c41a;
9
+ @alert-info-bg: #e6f7ff;
10
+ @alert-info-border: #91d5ff;
11
+ @alert-info-icon: #1890ff;
12
+ @alert-warning-bg: #fffbe6;
13
+ @alert-warning-border: #ffe58f;
14
+ @alert-warning-icon: #faad14;
15
+ @alert-error-bg: #fff2f0;
16
+ @alert-error-border: #ffccc7;
17
+ @alert-error-icon: #ff4d4f;
18
+
19
+ // ============ 主容器 ============
20
+ .@{prefix} {
21
+ position: relative;
22
+ display: flex;
23
+ align-items: flex-start;
24
+ padding: 8px 15px;
25
+ margin-bottom: 16px;
26
+ font-size: 14px;
27
+ line-height: 1.5715;
28
+ border: 1px solid;
29
+ border-radius: 6px;
30
+ transition: all 0.3s;
31
+
32
+ * {
33
+ box-sizing: border-box;
34
+ }
35
+ }
36
+
37
+ // ============ 不同类型 ============
38
+ .@{prefix}-success {
39
+ background-color: @alert-success-bg;
40
+ border-color: @alert-success-border;
41
+ color: rgba(0, 0, 0, 0.85);
42
+
43
+ .@{prefix}-icon {
44
+ color: @alert-success-icon;
45
+ }
46
+ }
47
+
48
+ .@{prefix}-info {
49
+ background-color: @alert-info-bg;
50
+ border-color: @alert-info-border;
51
+ color: rgba(0, 0, 0, 0.85);
52
+
53
+ .@{prefix}-icon {
54
+ color: @alert-info-icon;
55
+ }
56
+ }
57
+
58
+ .@{prefix}-warning {
59
+ background-color: @alert-warning-bg;
60
+ border-color: @alert-warning-border;
61
+ color: rgba(0, 0, 0, 0.85);
62
+
63
+ .@{prefix}-icon {
64
+ color: @alert-warning-icon;
65
+ }
66
+ }
67
+
68
+ .@{prefix}-error {
69
+ background-color: @alert-error-bg;
70
+ border-color: @alert-error-border;
71
+ color: rgba(0, 0, 0, 0.85);
72
+
73
+ .@{prefix}-icon {
74
+ color: @alert-error-icon;
75
+ }
76
+ }
77
+
78
+ // ============ 图标 ============
79
+ .@{prefix}-icon {
80
+ display: flex;
81
+ align-items: center;
82
+ margin-right: 8px;
83
+ font-size: 16px;
84
+ line-height: 1;
85
+ flex-shrink: 0;
86
+ }
87
+
88
+ .@{prefix}-with-icon {
89
+ padding-left: 37px;
90
+
91
+ .@{prefix}-icon {
92
+ position: absolute;
93
+ top: 8px;
94
+ left: 15px;
95
+ }
96
+ }
97
+
98
+ // ============ 内容区域 ============
99
+ .@{prefix}-content {
100
+ flex: 1;
101
+ min-width: 0;
102
+ }
103
+
104
+ .@{prefix}-message {
105
+ margin-bottom: 4px;
106
+ font-size: 14px;
107
+ font-weight: 500;
108
+ line-height: 1.5715;
109
+ color: rgba(0, 0, 0, 0.85);
110
+ }
111
+
112
+ .@{prefix}-description {
113
+ font-size: 14px;
114
+ line-height: 1.5715;
115
+ color: rgba(0, 0, 0, 0.65);
116
+ }
117
+
118
+ // ============ 操作按钮 ============
119
+ .@{prefix}-action {
120
+ margin-left: 8px;
121
+ flex-shrink: 0;
122
+ }
123
+
124
+ // ============ 关闭按钮 ============
125
+ .@{prefix}-close-icon {
126
+ position: absolute;
127
+ top: 8px;
128
+ right: 15px;
129
+ padding: 0;
130
+ margin: 0;
131
+ color: rgba(0, 0, 0, 0.45);
132
+ font-size: 12px;
133
+ line-height: 1;
134
+ text-align: center;
135
+ background: transparent;
136
+ border: none;
137
+ border-radius: 2px;
138
+ cursor: pointer;
139
+ transition: all 0.2s;
140
+ flex-shrink: 0;
141
+
142
+ &:hover {
143
+ color: rgba(0, 0, 0, 0.85);
144
+ background-color: rgba(0, 0, 0, 0.06);
145
+ }
146
+
147
+ &:active {
148
+ background-color: rgba(0, 0, 0, 0.1);
149
+ }
150
+ }
151
+
152
+ .@{prefix}-closable {
153
+ padding-right: 30px;
154
+ }
155
+
156
+ // ============ Banner 模式 ============
157
+ .@{prefix}-banner {
158
+ border-radius: 0;
159
+ border-left: none;
160
+ border-right: none;
161
+ margin-bottom: 0;
162
+ }
163
+
164
+ // ============ 关闭动画 ============
165
+ .@{prefix}-closing {
166
+ opacity: 0;
167
+ transform: scale(0.95);
168
+ margin-bottom: 0;
169
+ padding-top: 0;
170
+ padding-bottom: 0;
171
+ height: 0;
172
+ overflow: hidden;
173
+ }
174
+
175
+ // ============ 暗色模式适配 ============
176
+ [data-theme='dark'],
177
+ [data-prefers-color-scheme='dark'],
178
+ [data-prefers-color='dark'],
179
+ html.dark,
180
+ body.dark,
181
+ .dark {
182
+ .@{prefix} {
183
+ background-color: #1f1f1f;
184
+ color: rgba(255, 255, 255, 0.85);
185
+ }
186
+
187
+ .@{prefix}-success {
188
+ background-color: rgba(82, 196, 26, 0.1);
189
+ border-color: rgba(82, 196, 26, 0.3);
190
+ color: rgba(255, 255, 255, 0.85);
191
+
192
+ .@{prefix}-icon {
193
+ color: #52c41a;
194
+ }
195
+ }
196
+
197
+ .@{prefix}-info {
198
+ background-color: rgba(24, 144, 255, 0.1);
199
+ border-color: rgba(24, 144, 255, 0.3);
200
+ color: rgba(255, 255, 255, 0.85);
201
+
202
+ .@{prefix}-icon {
203
+ color: #1890ff;
204
+ }
205
+ }
206
+
207
+ .@{prefix}-warning {
208
+ background-color: rgba(250, 173, 20, 0.1);
209
+ border-color: rgba(250, 173, 20, 0.3);
210
+ color: rgba(255, 255, 255, 0.85);
211
+
212
+ .@{prefix}-icon {
213
+ color: #faad14;
214
+ }
215
+ }
216
+
217
+ .@{prefix}-error {
218
+ background-color: rgba(255, 77, 79, 0.1);
219
+ border-color: rgba(255, 77, 79, 0.3);
220
+ color: rgba(255, 255, 255, 0.85);
221
+
222
+ .@{prefix}-icon {
223
+ color: #ff4d4f;
224
+ }
225
+ }
226
+
227
+ .@{prefix}-message {
228
+ color: rgba(255, 255, 255, 0.85);
229
+ }
230
+
231
+ .@{prefix}-description {
232
+ color: rgba(255, 255, 255, 0.65);
233
+ }
234
+
235
+ .@{prefix}-close-icon {
236
+ color: rgba(255, 255, 255, 0.45);
237
+
238
+ &:hover {
239
+ color: rgba(255, 255, 255, 0.85);
240
+ background-color: rgba(255, 255, 255, 0.08);
241
+ }
242
+
243
+ &:active {
244
+ background-color: rgba(255, 255, 255, 0.12);
245
+ }
246
+ }
247
+ }
248
+
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import './style.less';
3
+ export type AvatarSize = number | 'large' | 'default' | 'small';
4
+ export type AvatarShape = 'circle' | 'square';
5
+ export interface AvatarProps {
6
+ /** 头像的图片地址 */
7
+ src?: string;
8
+ /** 图片无法显示时的替代文本 */
9
+ alt?: string;
10
+ /** 头像的图标 */
11
+ icon?: React.ReactNode;
12
+ /** 头像的形状 */
13
+ shape?: AvatarShape;
14
+ /** 头像的大小 */
15
+ size?: AvatarSize;
16
+ /** 图片加载失败的事件 */
17
+ onError?: () => boolean;
18
+ /** 自定义类名 */
19
+ className?: string;
20
+ /** 自定义样式 */
21
+ style?: React.CSSProperties;
22
+ /** 文本内容 */
23
+ children?: React.ReactNode;
24
+ }
25
+ export declare const Avatar: React.FC<AvatarProps>;
26
+ export interface AvatarGroupProps {
27
+ /** 头像列表 */
28
+ children: React.ReactNode;
29
+ /** 最多显示的头像数量 */
30
+ maxCount?: number;
31
+ /** 多余头像的提示 */
32
+ maxPopoverPlacement?: 'top' | 'bottom';
33
+ /** 多余头像样式 */
34
+ maxStyle?: React.CSSProperties;
35
+ /** 头像的大小 */
36
+ size?: AvatarSize;
37
+ /** 自定义类名 */
38
+ className?: string;
39
+ /** 自定义样式 */
40
+ style?: React.CSSProperties;
41
+ }
42
+ declare const AvatarGroup: React.FC<AvatarGroupProps>;
43
+ export interface AvatarComponent extends React.FC<AvatarProps> {
44
+ Group: typeof AvatarGroup;
45
+ }
46
+ declare const AvatarWithGroup: AvatarComponent;
47
+ export default AvatarWithGroup;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Avatar = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ require("./style.less");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
22
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
23
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // ============ Avatar Props ============
24
+ // ============ Avatar Component ============
25
+ var Avatar = exports.Avatar = function Avatar(_ref) {
26
+ var src = _ref.src,
27
+ alt = _ref.alt,
28
+ icon = _ref.icon,
29
+ _ref$shape = _ref.shape,
30
+ shape = _ref$shape === void 0 ? 'circle' : _ref$shape,
31
+ _ref$size = _ref.size,
32
+ size = _ref$size === void 0 ? 'default' : _ref$size,
33
+ onError = _ref.onError,
34
+ _ref$className = _ref.className,
35
+ className = _ref$className === void 0 ? '' : _ref$className,
36
+ style = _ref.style,
37
+ children = _ref.children;
38
+ var _useState = (0, _react.useState)(false),
39
+ _useState2 = _slicedToArray(_useState, 2),
40
+ isImgError = _useState2[0],
41
+ setIsImgError = _useState2[1];
42
+ var handleImgError = (0, _react.useCallback)(function () {
43
+ var errorHandled = onError === null || onError === void 0 ? void 0 : onError();
44
+ if (errorHandled !== false) {
45
+ setIsImgError(true);
46
+ }
47
+ }, [onError]);
48
+
49
+ // 计算尺寸
50
+ var sizeStyle = {};
51
+ if (typeof size === 'number') {
52
+ sizeStyle.width = size;
53
+ sizeStyle.height = size;
54
+ sizeStyle.fontSize = size / 2;
55
+ sizeStyle.lineHeight = "".concat(size, "px");
56
+ }
57
+ var classNames = ['kage-avatar', "kage-avatar-".concat(shape), typeof size === 'string' ? "kage-avatar-".concat(size) : '', !src && !icon && children ? 'kage-avatar-text' : '', src && !isImgError ? 'kage-avatar-image' : '', icon ? 'kage-avatar-icon' : '', className].filter(Boolean).join(' ');
58
+ var mergedStyle = _objectSpread(_objectSpread({}, sizeStyle), style);
59
+
60
+ // 渲染头像内容
61
+ var renderAvatar = function renderAvatar() {
62
+ // 优先显示图片
63
+ if (src && !isImgError) {
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
65
+ src: src,
66
+ alt: alt,
67
+ onError: handleImgError
68
+ });
69
+ }
70
+
71
+ // 其次显示图标
72
+ if (icon) {
73
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
74
+ className: "kage-avatar-icon-content",
75
+ children: icon
76
+ });
77
+ }
78
+
79
+ // 最后显示文本
80
+ if (children) {
81
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
82
+ className: "kage-avatar-text-content",
83
+ children: children
84
+ });
85
+ }
86
+
87
+ // 默认显示用户图标
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
89
+ className: "kage-avatar-icon-content",
90
+ children: "\uD83D\uDC64"
91
+ });
92
+ };
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
94
+ className: classNames,
95
+ style: mergedStyle,
96
+ children: renderAvatar()
97
+ });
98
+ };
99
+
100
+ // ============ Avatar.Group Props ============
101
+
102
+ // ============ Avatar.Group Component ============
103
+ var AvatarGroup = function AvatarGroup(_ref2) {
104
+ var children = _ref2.children,
105
+ maxCount = _ref2.maxCount,
106
+ _ref2$maxPopoverPlace = _ref2.maxPopoverPlacement,
107
+ maxPopoverPlacement = _ref2$maxPopoverPlace === void 0 ? 'top' : _ref2$maxPopoverPlace,
108
+ maxStyle = _ref2.maxStyle,
109
+ size = _ref2.size,
110
+ _ref2$className = _ref2.className,
111
+ className = _ref2$className === void 0 ? '' : _ref2$className,
112
+ style = _ref2.style;
113
+ var childrenArray = _react.default.Children.toArray(children);
114
+ var numOfChildren = childrenArray.length;
115
+
116
+ // 如果没有设置 maxCount 或者子元素数量小于等于 maxCount,直接显示所有
117
+ var visibleChildren = maxCount && numOfChildren > maxCount ? childrenArray.slice(0, maxCount) : childrenArray;
118
+ var excessCount = maxCount && numOfChildren > maxCount ? numOfChildren - maxCount : 0;
119
+
120
+ // 为子元素添加 size 属性
121
+ var childrenWithSize = visibleChildren.map(function (child, index) {
122
+ if ( /*#__PURE__*/_react.default.isValidElement(child)) {
123
+ return /*#__PURE__*/_react.default.cloneElement(child, {
124
+ size: child.props.size || size,
125
+ key: index
126
+ });
127
+ }
128
+ return child;
129
+ });
130
+ var classNames = ['kage-avatar-group', className].filter(Boolean).join(' ');
131
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
132
+ className: classNames,
133
+ style: style,
134
+ children: [childrenWithSize, excessCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(Avatar, {
135
+ size: size,
136
+ className: "kage-avatar-group-excess",
137
+ style: maxStyle,
138
+ children: ["+", excessCount]
139
+ })]
140
+ });
141
+ };
142
+
143
+ // 将 Group 组件附加到 Avatar 上
144
+ Avatar.displayName = 'Avatar';
145
+ var AvatarWithGroup = Avatar;
146
+ AvatarWithGroup.Group = AvatarGroup;
147
+ var _default = exports.default = AvatarWithGroup;