wssf-kage-ui 0.1.2 → 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 (83) 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/Drawer/index.d.ts +57 -0
  5. package/dist/cjs/Drawer/index.js +203 -0
  6. package/dist/cjs/Drawer/style.less +215 -0
  7. package/dist/cjs/FloatButton/index.d.ts +54 -0
  8. package/dist/cjs/FloatButton/index.js +119 -0
  9. package/dist/cjs/FloatButton/style.less +266 -0
  10. package/dist/cjs/Message/index.d.ts +38 -0
  11. package/dist/cjs/Message/index.js +292 -0
  12. package/dist/cjs/Message/style.less +183 -0
  13. package/dist/cjs/Modal/index.d.ts +63 -0
  14. package/dist/cjs/Modal/index.js +254 -0
  15. package/dist/cjs/Modal/style.less +298 -0
  16. package/dist/cjs/Notification/index.d.ts +48 -0
  17. package/dist/cjs/Notification/index.js +340 -0
  18. package/dist/cjs/Notification/style.less +260 -0
  19. package/dist/cjs/Popconfirm/index.d.ts +58 -0
  20. package/dist/cjs/Popconfirm/index.js +393 -0
  21. package/dist/cjs/Popconfirm/style.less +417 -0
  22. package/dist/cjs/Progress/index.d.ts +43 -0
  23. package/dist/cjs/Progress/index.js +213 -0
  24. package/dist/cjs/Progress/style.less +206 -0
  25. package/dist/cjs/Result/index.d.ts +25 -0
  26. package/dist/cjs/Result/index.js +63 -0
  27. package/dist/cjs/Result/style.less +111 -0
  28. package/dist/cjs/Skeleton/index.d.ts +88 -0
  29. package/dist/cjs/Skeleton/index.js +207 -0
  30. package/dist/cjs/Skeleton/style.less +487 -0
  31. package/dist/cjs/Spin/index.d.ts +25 -0
  32. package/dist/cjs/Spin/index.js +98 -0
  33. package/dist/cjs/Spin/style.less +169 -0
  34. package/dist/cjs/Tree/index.d.ts +82 -0
  35. package/dist/cjs/Tree/index.js +226 -0
  36. package/dist/cjs/Tree/style.less +313 -0
  37. package/dist/cjs/Watermark/index.d.ts +41 -0
  38. package/dist/cjs/Watermark/index.js +353 -0
  39. package/dist/cjs/Watermark/style.less +31 -0
  40. package/dist/cjs/index.d.ts +27 -1
  41. package/dist/cjs/index.js +91 -0
  42. package/dist/esm/Alert/index.d.ts +37 -0
  43. package/dist/esm/Alert/index.js +121 -0
  44. package/dist/esm/Alert/style.less +248 -0
  45. package/dist/esm/Drawer/index.d.ts +57 -0
  46. package/dist/esm/Drawer/index.js +202 -0
  47. package/dist/esm/Drawer/style.less +215 -0
  48. package/dist/esm/FloatButton/index.d.ts +54 -0
  49. package/dist/esm/FloatButton/index.js +123 -0
  50. package/dist/esm/FloatButton/style.less +266 -0
  51. package/dist/esm/Message/index.d.ts +38 -0
  52. package/dist/esm/Message/index.js +294 -0
  53. package/dist/esm/Message/style.less +183 -0
  54. package/dist/esm/Modal/index.d.ts +63 -0
  55. package/dist/esm/Modal/index.js +251 -0
  56. package/dist/esm/Modal/style.less +298 -0
  57. package/dist/esm/Notification/index.d.ts +48 -0
  58. package/dist/esm/Notification/index.js +345 -0
  59. package/dist/esm/Notification/style.less +260 -0
  60. package/dist/esm/Popconfirm/index.d.ts +58 -0
  61. package/dist/esm/Popconfirm/index.js +389 -0
  62. package/dist/esm/Popconfirm/style.less +417 -0
  63. package/dist/esm/Progress/index.d.ts +43 -0
  64. package/dist/esm/Progress/index.js +208 -0
  65. package/dist/esm/Progress/style.less +206 -0
  66. package/dist/esm/Result/index.d.ts +25 -0
  67. package/dist/esm/Result/index.js +57 -0
  68. package/dist/esm/Result/style.less +111 -0
  69. package/dist/esm/Skeleton/index.d.ts +88 -0
  70. package/dist/esm/Skeleton/index.js +213 -0
  71. package/dist/esm/Skeleton/style.less +487 -0
  72. package/dist/esm/Spin/index.d.ts +25 -0
  73. package/dist/esm/Spin/index.js +95 -0
  74. package/dist/esm/Spin/style.less +169 -0
  75. package/dist/esm/Tree/index.d.ts +82 -0
  76. package/dist/esm/Tree/index.js +225 -0
  77. package/dist/esm/Tree/style.less +313 -0
  78. package/dist/esm/Watermark/index.d.ts +41 -0
  79. package/dist/esm/Watermark/index.js +349 -0
  80. package/dist/esm/Watermark/style.less +31 -0
  81. package/dist/esm/index.d.ts +27 -1
  82. package/dist/esm/index.js +14 -1
  83. package/package.json +1 -1
@@ -0,0 +1,393 @@
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.Popconfirm = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _reactDom = require("react-dom");
10
+ require("./style.less");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ 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); }
13
+ 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; }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
18
+ 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); }
19
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
+ 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."); }
21
+ 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); }
22
+ 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; }
23
+ 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; } }
24
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // ============ Popconfirm Props ============
25
+ // ============ Popconfirm Component ============
26
+ var Popconfirm = exports.Popconfirm = function Popconfirm(_ref) {
27
+ var title = _ref.title,
28
+ description = _ref.description,
29
+ _ref$trigger = _ref.trigger,
30
+ trigger = _ref$trigger === void 0 ? 'click' : _ref$trigger,
31
+ _ref$placement = _ref.placement,
32
+ placement = _ref$placement === void 0 ? 'top' : _ref$placement,
33
+ _ref$arrow = _ref.arrow,
34
+ arrow = _ref$arrow === void 0 ? true : _ref$arrow,
35
+ controlledOpen = _ref.open,
36
+ _ref$defaultOpen = _ref.defaultOpen,
37
+ defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
38
+ onOpenChange = _ref.onOpenChange,
39
+ onConfirm = _ref.onConfirm,
40
+ onCancel = _ref.onCancel,
41
+ _ref$okText = _ref.okText,
42
+ okText = _ref$okText === void 0 ? '确定' : _ref$okText,
43
+ _ref$cancelText = _ref.cancelText,
44
+ cancelText = _ref$cancelText === void 0 ? '取消' : _ref$cancelText,
45
+ _ref$okType = _ref.okType,
46
+ okType = _ref$okType === void 0 ? 'primary' : _ref$okType,
47
+ okButtonProps = _ref.okButtonProps,
48
+ cancelButtonProps = _ref.cancelButtonProps,
49
+ icon = _ref.icon,
50
+ _ref$showCancel = _ref.showCancel,
51
+ showCancel = _ref$showCancel === void 0 ? true : _ref$showCancel,
52
+ _ref$className = _ref.className,
53
+ className = _ref$className === void 0 ? '' : _ref$className,
54
+ style = _ref.style,
55
+ children = _ref.children,
56
+ _ref$disabled = _ref.disabled,
57
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled;
58
+ var _useState = (0, _react.useState)(defaultOpen),
59
+ _useState2 = _slicedToArray(_useState, 2),
60
+ internalOpen = _useState2[0],
61
+ setInternalOpen = _useState2[1];
62
+ var triggerRef = (0, _react.useRef)(null);
63
+ var popconfirmRef = (0, _react.useRef)(null);
64
+ var timerRef = (0, _react.useRef)();
65
+ var isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen;
66
+ var updateOpen = (0, _react.useCallback)(function (newOpen) {
67
+ if (controlledOpen === undefined) {
68
+ setInternalOpen(newOpen);
69
+ }
70
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(newOpen);
71
+ }, [controlledOpen, onOpenChange]);
72
+ var show = (0, _react.useCallback)(function () {
73
+ if (disabled) return;
74
+ if (timerRef.current) {
75
+ clearTimeout(timerRef.current);
76
+ timerRef.current = undefined;
77
+ }
78
+ updateOpen(true);
79
+ }, [disabled, updateOpen]);
80
+ var hide = (0, _react.useCallback)(function () {
81
+ if (timerRef.current) {
82
+ clearTimeout(timerRef.current);
83
+ }
84
+ timerRef.current = setTimeout(function () {
85
+ updateOpen(false);
86
+ timerRef.current = undefined;
87
+ }, 100);
88
+ }, [updateOpen]);
89
+ var toggle = (0, _react.useCallback)(function () {
90
+ if (disabled) return;
91
+ updateOpen(!isOpen);
92
+ }, [disabled, isOpen, updateOpen]);
93
+
94
+ // 处理确认
95
+ var handleConfirm = (0, _react.useCallback)(function (e) {
96
+ onConfirm === null || onConfirm === void 0 || onConfirm(e);
97
+ if (!e.defaultPrevented) {
98
+ updateOpen(false);
99
+ }
100
+ }, [onConfirm, updateOpen]);
101
+
102
+ // 处理取消
103
+ var handleCancel = (0, _react.useCallback)(function (e) {
104
+ onCancel === null || onCancel === void 0 || onCancel(e);
105
+ if (!e.defaultPrevented) {
106
+ updateOpen(false);
107
+ }
108
+ }, [onCancel, updateOpen]);
109
+
110
+ // 点击外部关闭
111
+ (0, _react.useEffect)(function () {
112
+ if (trigger === 'click' && isOpen) {
113
+ var handleClickOutside = function handleClickOutside(e) {
114
+ if (triggerRef.current && !triggerRef.current.contains(e.target) && popconfirmRef.current && !popconfirmRef.current.contains(e.target)) {
115
+ updateOpen(false);
116
+ }
117
+ };
118
+ document.addEventListener('mousedown', handleClickOutside);
119
+ return function () {
120
+ document.removeEventListener('mousedown', handleClickOutside);
121
+ };
122
+ }
123
+ }, [trigger, isOpen, updateOpen]);
124
+
125
+ // 计算位置(使用 fixed 定位,直接使用 getBoundingClientRect 的值)
126
+ var getPosition = (0, _react.useCallback)(function () {
127
+ if (!triggerRef.current || !popconfirmRef.current) {
128
+ return {
129
+ top: 0,
130
+ left: 0
131
+ };
132
+ }
133
+ var triggerRect = triggerRef.current.getBoundingClientRect();
134
+ var popconfirmRect = popconfirmRef.current.getBoundingClientRect();
135
+ var viewportWidth = window.innerWidth;
136
+ var viewportHeight = window.innerHeight;
137
+ var top = 0;
138
+ var left = 0;
139
+ var gap = arrow ? 12 : 8;
140
+ var padding = 8; // 距离视口边缘的最小距离
141
+
142
+ switch (placement) {
143
+ case 'top':
144
+ top = triggerRect.top - popconfirmRect.height - gap;
145
+ left = triggerRect.left + (triggerRect.width - popconfirmRect.width) / 2;
146
+ // 确保不超出视口
147
+ if (left < padding) left = padding;
148
+ if (left + popconfirmRect.width > viewportWidth - padding) {
149
+ left = viewportWidth - popconfirmRect.width - padding;
150
+ }
151
+ break;
152
+ case 'topLeft':
153
+ top = triggerRect.top - popconfirmRect.height - gap;
154
+ left = triggerRect.left;
155
+ if (left < padding) left = padding;
156
+ break;
157
+ case 'topRight':
158
+ top = triggerRect.top - popconfirmRect.height - gap;
159
+ left = triggerRect.right - popconfirmRect.width;
160
+ if (left + popconfirmRect.width > viewportWidth - padding) {
161
+ left = viewportWidth - popconfirmRect.width - padding;
162
+ }
163
+ break;
164
+ case 'bottom':
165
+ top = triggerRect.bottom + gap;
166
+ left = triggerRect.left + (triggerRect.width - popconfirmRect.width) / 2;
167
+ // 确保不超出视口
168
+ if (left < padding) left = padding;
169
+ if (left + popconfirmRect.width > viewportWidth - padding) {
170
+ left = viewportWidth - popconfirmRect.width - padding;
171
+ }
172
+ break;
173
+ case 'bottomLeft':
174
+ top = triggerRect.bottom + gap;
175
+ left = triggerRect.left;
176
+ if (left < padding) left = padding;
177
+ break;
178
+ case 'bottomRight':
179
+ top = triggerRect.bottom + gap;
180
+ left = triggerRect.right - popconfirmRect.width;
181
+ if (left + popconfirmRect.width > viewportWidth - padding) {
182
+ left = viewportWidth - popconfirmRect.width - padding;
183
+ }
184
+ break;
185
+ case 'left':
186
+ top = triggerRect.top + (triggerRect.height - popconfirmRect.height) / 2;
187
+ left = triggerRect.left - popconfirmRect.width - gap;
188
+ // 确保不超出视口
189
+ if (top < padding) top = padding;
190
+ if (top + popconfirmRect.height > viewportHeight - padding) {
191
+ top = viewportHeight - popconfirmRect.height - padding;
192
+ }
193
+ break;
194
+ case 'leftTop':
195
+ top = triggerRect.top;
196
+ left = triggerRect.left - popconfirmRect.width - gap;
197
+ if (top < padding) top = padding;
198
+ break;
199
+ case 'leftBottom':
200
+ top = triggerRect.bottom - popconfirmRect.height;
201
+ left = triggerRect.left - popconfirmRect.width - gap;
202
+ if (top + popconfirmRect.height > viewportHeight - padding) {
203
+ top = viewportHeight - popconfirmRect.height - padding;
204
+ }
205
+ break;
206
+ case 'right':
207
+ top = triggerRect.top + (triggerRect.height - popconfirmRect.height) / 2;
208
+ left = triggerRect.right + gap;
209
+ // 确保不超出视口
210
+ if (top < padding) top = padding;
211
+ if (top + popconfirmRect.height > viewportHeight - padding) {
212
+ top = viewportHeight - popconfirmRect.height - padding;
213
+ }
214
+ break;
215
+ case 'rightTop':
216
+ top = triggerRect.top;
217
+ left = triggerRect.right + gap;
218
+ if (top < padding) top = padding;
219
+ break;
220
+ case 'rightBottom':
221
+ top = triggerRect.bottom - popconfirmRect.height;
222
+ left = triggerRect.right + gap;
223
+ if (top + popconfirmRect.height > viewportHeight - padding) {
224
+ top = viewportHeight - popconfirmRect.height - padding;
225
+ }
226
+ break;
227
+ }
228
+ return {
229
+ top: top,
230
+ left: left
231
+ };
232
+ }, [placement, arrow]);
233
+ var _useState3 = (0, _react.useState)({
234
+ top: 0,
235
+ left: 0
236
+ }),
237
+ _useState4 = _slicedToArray(_useState3, 2),
238
+ position = _useState4[0],
239
+ setPosition = _useState4[1];
240
+ var _useState5 = (0, _react.useState)(false),
241
+ _useState6 = _slicedToArray(_useState5, 2),
242
+ positionCalculated = _useState6[0],
243
+ setPositionCalculated = _useState6[1];
244
+ (0, _react.useEffect)(function () {
245
+ if (isOpen) {
246
+ setPositionCalculated(false);
247
+ // 使用 requestAnimationFrame 确保 DOM 已渲染
248
+ var updatePosition = function updatePosition() {
249
+ if (triggerRef.current && popconfirmRef.current) {
250
+ setPosition(getPosition());
251
+ setPositionCalculated(true);
252
+ }
253
+ };
254
+
255
+ // 延迟更新位置,确保元素已渲染
256
+ requestAnimationFrame(function () {
257
+ requestAnimationFrame(function () {
258
+ updatePosition();
259
+ });
260
+ });
261
+ window.addEventListener('scroll', updatePosition, true);
262
+ window.addEventListener('resize', updatePosition);
263
+ return function () {
264
+ window.removeEventListener('scroll', updatePosition, true);
265
+ window.removeEventListener('resize', updatePosition);
266
+ };
267
+ } else {
268
+ setPositionCalculated(false);
269
+ }
270
+ }, [isOpen, getPosition]);
271
+ var triggerProps = {};
272
+ // 只有 click 触发才绑定到 children 上
273
+ if (trigger === 'click') {
274
+ triggerProps.onClick = toggle;
275
+ }
276
+ var classNames = ['kage-popconfirm-wrapper', disabled && 'kage-popconfirm-wrapper-disabled', className].filter(Boolean).join(' ');
277
+ var popconfirmClassNames = ['kage-popconfirm', "kage-popconfirm-placement-".concat(placement), arrow && 'kage-popconfirm-arrow', isOpen && 'kage-popconfirm-open'].filter(Boolean).join(' ');
278
+
279
+ // 渲染触发元素
280
+ var renderTrigger = function renderTrigger() {
281
+ if (!children) return null;
282
+ if ( /*#__PURE__*/(0, _react.isValidElement)(children)) {
283
+ var _children$props;
284
+ return /*#__PURE__*/(0, _react.cloneElement)(children, _objectSpread(_objectSpread({}, triggerProps), {}, {
285
+ disabled: disabled || ((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.disabled)
286
+ }));
287
+ }
288
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", _objectSpread(_objectSpread({}, triggerProps), {}, {
289
+ style: {
290
+ display: 'inline-block'
291
+ },
292
+ children: children
293
+ }));
294
+ };
295
+
296
+ // 默认图标
297
+ var defaultIcon = icon !== undefined ? icon : '⚠';
298
+
299
+ // Popconfirm 的鼠标事件(用于 hover 触发)
300
+ var popconfirmProps = {};
301
+ if (trigger === 'hover') {
302
+ popconfirmProps.onMouseEnter = function () {
303
+ if (timerRef.current) {
304
+ clearTimeout(timerRef.current);
305
+ timerRef.current = undefined;
306
+ }
307
+ };
308
+ popconfirmProps.onMouseLeave = hide;
309
+ }
310
+ var popconfirmNode = isOpen ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({
311
+ ref: popconfirmRef,
312
+ className: popconfirmClassNames,
313
+ style: {
314
+ position: 'fixed',
315
+ top: positionCalculated ? "".concat(position.top, "px") : '-9999px',
316
+ left: positionCalculated ? "".concat(position.left, "px") : '-9999px',
317
+ zIndex: 1050,
318
+ visibility: positionCalculated ? 'visible' : 'hidden'
319
+ }
320
+ }, popconfirmProps), {}, {
321
+ children: [arrow && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
322
+ className: "kage-popconfirm-arrow"
323
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
324
+ className: "kage-popconfirm-inner",
325
+ children: [defaultIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
326
+ className: "kage-popconfirm-icon",
327
+ children: defaultIcon
328
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
329
+ className: "kage-popconfirm-content",
330
+ children: [title && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
331
+ className: "kage-popconfirm-title",
332
+ children: title
333
+ }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
334
+ className: "kage-popconfirm-description",
335
+ children: description
336
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
337
+ className: "kage-popconfirm-buttons",
338
+ children: [showCancel && /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
339
+ type: "button",
340
+ className: "kage-popconfirm-cancel-btn",
341
+ onClick: handleCancel,
342
+ disabled: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.disabled,
343
+ children: cancelText
344
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
345
+ type: "button",
346
+ className: "kage-popconfirm-ok-btn kage-popconfirm-ok-btn-".concat(okType),
347
+ onClick: handleConfirm,
348
+ disabled: (okButtonProps === null || okButtonProps === void 0 ? void 0 : okButtonProps.disabled) || (okButtonProps === null || okButtonProps === void 0 ? void 0 : okButtonProps.loading),
349
+ children: okButtonProps !== null && okButtonProps !== void 0 && okButtonProps.loading ? '加载中...' : okText
350
+ })]
351
+ })]
352
+ })]
353
+ })]
354
+ })) : null;
355
+
356
+ // 在 wrapper 上绑定事件(用于 hover 和 focus 触发)
357
+ var wrapperProps = {};
358
+ if (trigger === 'hover') {
359
+ wrapperProps.onMouseEnter = function (e) {
360
+ e.stopPropagation();
361
+ show();
362
+ };
363
+ wrapperProps.onMouseLeave = function (e) {
364
+ e.stopPropagation();
365
+ hide();
366
+ };
367
+ } else if (trigger === 'focus') {
368
+ wrapperProps.onFocus = function (e) {
369
+ e.stopPropagation();
370
+ show();
371
+ };
372
+ wrapperProps.onBlur = function (e) {
373
+ e.stopPropagation();
374
+ // 延迟检查,确保焦点没有移动到 Popconfirm 内部
375
+ setTimeout(function () {
376
+ if (popconfirmRef.current && !popconfirmRef.current.contains(document.activeElement)) {
377
+ hide();
378
+ }
379
+ }, 0);
380
+ };
381
+ wrapperProps.tabIndex = 0;
382
+ }
383
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
384
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({
385
+ className: classNames,
386
+ style: style,
387
+ ref: triggerRef
388
+ }, wrapperProps), {}, {
389
+ children: renderTrigger()
390
+ })), /*#__PURE__*/(0, _reactDom.createPortal)(popconfirmNode, document.body)]
391
+ });
392
+ };
393
+ var _default = exports.default = Popconfirm;