bi-components-library 1.0.0

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.
@@ -0,0 +1,1557 @@
1
+ import fe, { useState as R, useRef as v, useMemo as me, useCallback as M, useEffect as J } from "react";
2
+ import { Button as X, Card as se, Modal as pe, Table as le, Flex as te, Spin as ge, Empty as ye, Select as ce, Form as re, Input as ue, Space as he, theme as be } from "antd";
3
+ import { createFromIconfontCN as we, LeftOutlined as xe, SearchOutlined as ve, ReloadOutlined as Re, SendOutlined as Te } from "@ant-design/icons";
4
+ var ne = { exports: {} }, Z = {};
5
+ /**
6
+ * @license React
7
+ * react-jsx-runtime.production.js
8
+ *
9
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
10
+ *
11
+ * This source code is licensed under the MIT license found in the
12
+ * LICENSE file in the root directory of this source tree.
13
+ */
14
+ var ae;
15
+ function Se() {
16
+ if (ae) return Z;
17
+ ae = 1;
18
+ var t = Symbol.for("react.transitional.element"), d = Symbol.for("react.fragment");
19
+ function i(c, s, u) {
20
+ var T = null;
21
+ if (u !== void 0 && (T = "" + u), s.key !== void 0 && (T = "" + s.key), "key" in s) {
22
+ u = {};
23
+ for (var p in s)
24
+ p !== "key" && (u[p] = s[p]);
25
+ } else u = s;
26
+ return s = u.ref, {
27
+ $$typeof: t,
28
+ type: c,
29
+ key: T,
30
+ ref: s !== void 0 ? s : null,
31
+ props: u
32
+ };
33
+ }
34
+ return Z.Fragment = d, Z.jsx = i, Z.jsxs = i, Z;
35
+ }
36
+ var ee = {};
37
+ /**
38
+ * @license React
39
+ * react-jsx-runtime.development.js
40
+ *
41
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
42
+ *
43
+ * This source code is licensed under the MIT license found in the
44
+ * LICENSE file in the root directory of this source tree.
45
+ */
46
+ var oe;
47
+ function _e() {
48
+ return oe || (oe = 1, process.env.NODE_ENV !== "production" && function() {
49
+ function t(e) {
50
+ if (e == null) return null;
51
+ if (typeof e == "function")
52
+ return e.$$typeof === z ? null : e.displayName || e.name || null;
53
+ if (typeof e == "string") return e;
54
+ switch (e) {
55
+ case E:
56
+ return "Fragment";
57
+ case S:
58
+ return "Profiler";
59
+ case I:
60
+ return "StrictMode";
61
+ case B:
62
+ return "Suspense";
63
+ case D:
64
+ return "SuspenseList";
65
+ case k:
66
+ return "Activity";
67
+ }
68
+ if (typeof e == "object")
69
+ switch (typeof e.tag == "number" && console.error(
70
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
71
+ ), e.$$typeof) {
72
+ case N:
73
+ return "Portal";
74
+ case j:
75
+ return (e.displayName || "Context") + ".Provider";
76
+ case _:
77
+ return (e._context.displayName || "Context") + ".Consumer";
78
+ case b:
79
+ var a = e.render;
80
+ return e = e.displayName, e || (e = a.displayName || a.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
81
+ case V:
82
+ return a = e.displayName || null, a !== null ? a : t(e.type) || "Memo";
83
+ case L:
84
+ a = e._payload, e = e._init;
85
+ try {
86
+ return t(e(a));
87
+ } catch {
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ function d(e) {
93
+ return "" + e;
94
+ }
95
+ function i(e) {
96
+ try {
97
+ d(e);
98
+ var a = !1;
99
+ } catch {
100
+ a = !0;
101
+ }
102
+ if (a) {
103
+ a = console;
104
+ var m = a.error, h = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
105
+ return m.call(
106
+ a,
107
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
108
+ h
109
+ ), d(e);
110
+ }
111
+ }
112
+ function c(e) {
113
+ if (e === E) return "<>";
114
+ if (typeof e == "object" && e !== null && e.$$typeof === L)
115
+ return "<...>";
116
+ try {
117
+ var a = t(e);
118
+ return a ? "<" + a + ">" : "<...>";
119
+ } catch {
120
+ return "<...>";
121
+ }
122
+ }
123
+ function s() {
124
+ var e = q.A;
125
+ return e === null ? null : e.getOwner();
126
+ }
127
+ function u() {
128
+ return Error("react-stack-top-frame");
129
+ }
130
+ function T(e) {
131
+ if (F.call(e, "key")) {
132
+ var a = Object.getOwnPropertyDescriptor(e, "key").get;
133
+ if (a && a.isReactWarning) return !1;
134
+ }
135
+ return e.key !== void 0;
136
+ }
137
+ function p(e, a) {
138
+ function m() {
139
+ o || (o = !0, console.error(
140
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
141
+ a
142
+ ));
143
+ }
144
+ m.isReactWarning = !0, Object.defineProperty(e, "key", {
145
+ get: m,
146
+ configurable: !0
147
+ });
148
+ }
149
+ function O() {
150
+ var e = t(this.type);
151
+ return y[e] || (y[e] = !0, console.error(
152
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
153
+ )), e = this.props.ref, e !== void 0 ? e : null;
154
+ }
155
+ function $(e, a, m, h, W, x, Q, l) {
156
+ return m = x.ref, e = {
157
+ $$typeof: g,
158
+ type: e,
159
+ key: a,
160
+ props: x,
161
+ _owner: W
162
+ }, (m !== void 0 ? m : null) !== null ? Object.defineProperty(e, "ref", {
163
+ enumerable: !1,
164
+ get: O
165
+ }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
166
+ configurable: !1,
167
+ enumerable: !1,
168
+ writable: !0,
169
+ value: 0
170
+ }), Object.defineProperty(e, "_debugInfo", {
171
+ configurable: !1,
172
+ enumerable: !1,
173
+ writable: !0,
174
+ value: null
175
+ }), Object.defineProperty(e, "_debugStack", {
176
+ configurable: !1,
177
+ enumerable: !1,
178
+ writable: !0,
179
+ value: Q
180
+ }), Object.defineProperty(e, "_debugTask", {
181
+ configurable: !1,
182
+ enumerable: !1,
183
+ writable: !0,
184
+ value: l
185
+ }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
186
+ }
187
+ function P(e, a, m, h, W, x, Q, l) {
188
+ var f = a.children;
189
+ if (f !== void 0)
190
+ if (h)
191
+ if (G(f)) {
192
+ for (h = 0; h < f.length; h++)
193
+ Y(f[h]);
194
+ Object.freeze && Object.freeze(f);
195
+ } else
196
+ console.error(
197
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
198
+ );
199
+ else Y(f);
200
+ if (F.call(a, "key")) {
201
+ f = t(e);
202
+ var A = Object.keys(a).filter(function(de) {
203
+ return de !== "key";
204
+ });
205
+ h = 0 < A.length ? "{key: someKey, " + A.join(": ..., ") + ": ...}" : "{key: someKey}", U[f + h] || (A = 0 < A.length ? "{" + A.join(": ..., ") + ": ...}" : "{}", console.error(
206
+ `A props object containing a "key" prop is being spread into JSX:
207
+ let props = %s;
208
+ <%s {...props} />
209
+ React keys must be passed directly to JSX without using spread:
210
+ let props = %s;
211
+ <%s key={someKey} {...props} />`,
212
+ h,
213
+ f,
214
+ A,
215
+ f
216
+ ), U[f + h] = !0);
217
+ }
218
+ if (f = null, m !== void 0 && (i(m), f = "" + m), T(a) && (i(a.key), f = "" + a.key), "key" in a) {
219
+ m = {};
220
+ for (var K in a)
221
+ K !== "key" && (m[K] = a[K]);
222
+ } else m = a;
223
+ return f && p(
224
+ m,
225
+ typeof e == "function" ? e.displayName || e.name || "Unknown" : e
226
+ ), $(
227
+ e,
228
+ f,
229
+ x,
230
+ W,
231
+ s(),
232
+ m,
233
+ Q,
234
+ l
235
+ );
236
+ }
237
+ function Y(e) {
238
+ typeof e == "object" && e !== null && e.$$typeof === g && e._store && (e._store.validated = 1);
239
+ }
240
+ var C = fe, g = Symbol.for("react.transitional.element"), N = Symbol.for("react.portal"), E = Symbol.for("react.fragment"), I = Symbol.for("react.strict_mode"), S = Symbol.for("react.profiler"), _ = Symbol.for("react.consumer"), j = Symbol.for("react.context"), b = Symbol.for("react.forward_ref"), B = Symbol.for("react.suspense"), D = Symbol.for("react.suspense_list"), V = Symbol.for("react.memo"), L = Symbol.for("react.lazy"), k = Symbol.for("react.activity"), z = Symbol.for("react.client.reference"), q = C.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, F = Object.prototype.hasOwnProperty, G = Array.isArray, r = console.createTask ? console.createTask : function() {
241
+ return null;
242
+ };
243
+ C = {
244
+ react_stack_bottom_frame: function(e) {
245
+ return e();
246
+ }
247
+ };
248
+ var o, y = {}, w = C.react_stack_bottom_frame.bind(
249
+ C,
250
+ u
251
+ )(), H = r(c(u)), U = {};
252
+ ee.Fragment = E, ee.jsx = function(e, a, m, h, W) {
253
+ var x = 1e4 > q.recentlyCreatedOwnerStacks++;
254
+ return P(
255
+ e,
256
+ a,
257
+ m,
258
+ !1,
259
+ h,
260
+ W,
261
+ x ? Error("react-stack-top-frame") : w,
262
+ x ? r(c(e)) : H
263
+ );
264
+ }, ee.jsxs = function(e, a, m, h, W) {
265
+ var x = 1e4 > q.recentlyCreatedOwnerStacks++;
266
+ return P(
267
+ e,
268
+ a,
269
+ m,
270
+ !0,
271
+ h,
272
+ W,
273
+ x ? Error("react-stack-top-frame") : w,
274
+ x ? r(c(e)) : H
275
+ );
276
+ };
277
+ }()), ee;
278
+ }
279
+ var ie;
280
+ function Ee() {
281
+ return ie || (ie = 1, process.env.NODE_ENV === "production" ? ne.exports = Se() : ne.exports = _e()), ne.exports;
282
+ }
283
+ var n = Ee();
284
+ const je = ({
285
+ variant: t = "primary",
286
+ loading: d = !1,
287
+ children: i,
288
+ ...c
289
+ }) => {
290
+ const s = (u) => {
291
+ switch (u) {
292
+ case "primary":
293
+ return "primary";
294
+ case "ghost":
295
+ return "default";
296
+ case "dashed":
297
+ return "dashed";
298
+ case "link":
299
+ return "link";
300
+ case "text":
301
+ return "text";
302
+ default:
303
+ return "primary";
304
+ }
305
+ };
306
+ return /* @__PURE__ */ n.jsx(
307
+ X,
308
+ {
309
+ ...c,
310
+ type: s(t),
311
+ loading: d,
312
+ ghost: t === "ghost",
313
+ children: i
314
+ }
315
+ );
316
+ };
317
+ je.__docgenInfo = {
318
+ displayName: "Button",
319
+ description: "基础按钮,用于触发操作",
320
+ props: {
321
+ variant: {
322
+ name: "variant",
323
+ required: !1,
324
+ description: "视觉风格",
325
+ type: { name: "ButtonVariant", raw: '"primary" | "ghost" | "dashed" | "link" | "text"' },
326
+ defaultValue: { value: '"primary"' }
327
+ },
328
+ loading: {
329
+ name: "loading",
330
+ required: !1,
331
+ description: "是否加载中",
332
+ type: { name: "boolean", raw: "boolean" },
333
+ defaultValue: { value: "false" }
334
+ },
335
+ children: {
336
+ name: "children",
337
+ required: !1,
338
+ description: "按钮内容",
339
+ type: { name: "ReactNode", raw: "React.ReactNode" }
340
+ },
341
+ size: {
342
+ name: "size",
343
+ required: !1,
344
+ description: "按钮大小",
345
+ type: { name: "ButtonSize", raw: '"small" | "middle" | "large"' }
346
+ },
347
+ disabled: {
348
+ name: "disabled",
349
+ required: !1,
350
+ description: "是否禁用",
351
+ type: { name: "boolean", raw: "boolean" }
352
+ },
353
+ onClick: {
354
+ name: "onClick",
355
+ required: !1,
356
+ description: "点击事件",
357
+ type: { name: "function", raw: "(event: MouseEvent) => void" }
358
+ }
359
+ }
360
+ };
361
+ const ke = ({
362
+ title: t,
363
+ children: d,
364
+ bordered: i = !0,
365
+ hoverable: c = !1,
366
+ size: s = "default",
367
+ ...u
368
+ }) => /* @__PURE__ */ n.jsx(
369
+ se,
370
+ {
371
+ ...u,
372
+ title: t,
373
+ bordered: i,
374
+ hoverable: c,
375
+ size: s,
376
+ children: d
377
+ }
378
+ );
379
+ ke.__docgenInfo = {
380
+ displayName: "Card",
381
+ description: "卡片容器,用于分组内容",
382
+ props: {
383
+ title: {
384
+ name: "title",
385
+ required: !1,
386
+ description: "标题",
387
+ type: { name: "ReactNode", raw: "React.ReactNode" }
388
+ },
389
+ children: {
390
+ name: "children",
391
+ required: !1,
392
+ description: "内容区域",
393
+ type: { name: "ReactNode", raw: "React.ReactNode" }
394
+ },
395
+ bordered: {
396
+ name: "bordered",
397
+ required: !1,
398
+ description: "是否显示边框",
399
+ type: { name: "boolean", raw: "boolean" },
400
+ defaultValue: { value: "true" }
401
+ },
402
+ hoverable: {
403
+ name: "hoverable",
404
+ required: !1,
405
+ description: "是否可悬停",
406
+ type: { name: "boolean", raw: "boolean" },
407
+ defaultValue: { value: "false" }
408
+ },
409
+ size: {
410
+ name: "size",
411
+ required: !1,
412
+ description: "卡片大小",
413
+ type: { name: "CardSize", raw: '"default" | "small"' },
414
+ defaultValue: { value: '"default"' }
415
+ },
416
+ loading: {
417
+ name: "loading",
418
+ required: !1,
419
+ description: "是否加载中",
420
+ type: { name: "boolean", raw: "boolean" }
421
+ },
422
+ actions: {
423
+ name: "actions",
424
+ required: !1,
425
+ description: "卡片操作组",
426
+ type: { name: "ReactNode[]", raw: "React.ReactNode[]" }
427
+ }
428
+ }
429
+ };
430
+ const qe = ({
431
+ showDefaultFooter: t = !0,
432
+ ...d
433
+ }) => {
434
+ const i = d.footer !== void 0 ? d.footer : t ? (c, { OkBtn: s, CancelBtn: u }) => /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
435
+ /* @__PURE__ */ n.jsx(s, {}),
436
+ /* @__PURE__ */ n.jsx(u, {})
437
+ ] }) : null;
438
+ return /* @__PURE__ */ n.jsx(
439
+ pe,
440
+ {
441
+ ...d,
442
+ footer: i
443
+ }
444
+ );
445
+ };
446
+ qe.__docgenInfo = {
447
+ displayName: "AppModal",
448
+ description: "应用级模态框组件,基于 Ant Design Modal 封装",
449
+ props: {
450
+ showDefaultFooter: {
451
+ name: "showDefaultFooter",
452
+ required: !1,
453
+ description: "是否显示默认的确定和取消按钮",
454
+ type: { name: "boolean", raw: "boolean" },
455
+ defaultValue: { value: "true" }
456
+ },
457
+ title: {
458
+ name: "title",
459
+ required: !1,
460
+ description: "模态框标题",
461
+ type: { name: "ReactNode", raw: "React.ReactNode" }
462
+ },
463
+ open: {
464
+ name: "open",
465
+ required: !1,
466
+ description: "是否显示模态框",
467
+ type: { name: "boolean", raw: "boolean" }
468
+ },
469
+ onCancel: {
470
+ name: "onCancel",
471
+ required: !1,
472
+ description: "取消按钮点击事件",
473
+ type: { name: "function", raw: "(e: React.MouseEvent<HTMLElement>) => void" }
474
+ },
475
+ onOk: {
476
+ name: "onOk",
477
+ required: !1,
478
+ description: "确定按钮点击事件",
479
+ type: { name: "function", raw: "(e: React.MouseEvent<HTMLElement>) => void" }
480
+ },
481
+ children: {
482
+ name: "children",
483
+ required: !1,
484
+ description: "模态框内容",
485
+ type: { name: "ReactNode", raw: "React.ReactNode" }
486
+ },
487
+ width: {
488
+ name: "width",
489
+ required: !1,
490
+ description: "模态框宽度",
491
+ type: { name: "string | number", raw: "string | number" }
492
+ },
493
+ centered: {
494
+ name: "centered",
495
+ required: !1,
496
+ description: "是否居中显示",
497
+ type: { name: "boolean", raw: "boolean" }
498
+ },
499
+ maskClosable: {
500
+ name: "maskClosable",
501
+ required: !1,
502
+ description: "点击蒙层是否允许关闭",
503
+ type: { name: "boolean", raw: "boolean" }
504
+ }
505
+ }
506
+ };
507
+ const Ce = ({
508
+ scrollX: t,
509
+ showPagination: d = !0,
510
+ defaultPageSize: i = 10,
511
+ ...c
512
+ }) => /* @__PURE__ */ n.jsx(
513
+ le,
514
+ {
515
+ ...c,
516
+ scroll: {
517
+ x: t || "max-content",
518
+ y: "50vh"
519
+ },
520
+ pagination: d ? {
521
+ hideOnSinglePage: !0,
522
+ showSizeChanger: !0,
523
+ showQuickJumper: !0,
524
+ defaultPageSize: i,
525
+ ...c.pagination
526
+ } : !1
527
+ }
528
+ );
529
+ Ce.__docgenInfo = {
530
+ displayName: "PageTable",
531
+ description: "页面级表格组件,高度铺满容器,自动滚动",
532
+ props: {
533
+ scrollX: {
534
+ name: "scrollX",
535
+ required: !1,
536
+ description: "水平滚动宽度",
537
+ type: { name: "number", raw: "number" }
538
+ },
539
+ showPagination: {
540
+ name: "showPagination",
541
+ required: !1,
542
+ description: "是否显示分页器",
543
+ type: { name: "boolean", raw: "boolean" },
544
+ defaultValue: { value: "true" }
545
+ },
546
+ defaultPageSize: {
547
+ name: "defaultPageSize",
548
+ required: !1,
549
+ description: "默认页面大小",
550
+ type: { name: "number", raw: "number" },
551
+ defaultValue: { value: "10" }
552
+ },
553
+ columns: {
554
+ name: "columns",
555
+ required: !1,
556
+ description: "表格列配置",
557
+ type: { name: "ColumnType[]", raw: "ColumnType<any>[]" }
558
+ },
559
+ dataSource: {
560
+ name: "dataSource",
561
+ required: !1,
562
+ description: "数据源",
563
+ type: { name: "any[]", raw: "any[]" }
564
+ },
565
+ loading: {
566
+ name: "loading",
567
+ required: !1,
568
+ description: "是否加载中",
569
+ type: { name: "boolean", raw: "boolean" }
570
+ },
571
+ rowKey: {
572
+ name: "rowKey",
573
+ required: !1,
574
+ description: "行数据的 Key",
575
+ type: { name: "string | function", raw: "string | ((record: any) => string)" }
576
+ }
577
+ }
578
+ };
579
+ const Ne = we({
580
+ scriptUrl: ["https://at.alicdn.com/t/c/font_4968458_eh91gfr4j9e.js"]
581
+ }), Ie = ({
582
+ name: t,
583
+ size: d,
584
+ color: i,
585
+ style: c,
586
+ ...s
587
+ }) => {
588
+ const u = {
589
+ fontSize: d,
590
+ color: i,
591
+ ...c
592
+ };
593
+ return /* @__PURE__ */ n.jsx(
594
+ Ne,
595
+ {
596
+ ...s,
597
+ type: t,
598
+ style: u
599
+ }
600
+ );
601
+ };
602
+ Ie.__docgenInfo = {
603
+ displayName: "XcIcon",
604
+ description: "自定义图标组件,基于 iconfont",
605
+ props: {
606
+ name: {
607
+ name: "name",
608
+ required: !0,
609
+ description: "图标名称",
610
+ type: { name: "string", raw: "string" }
611
+ },
612
+ size: {
613
+ name: "size",
614
+ required: !1,
615
+ description: "图标大小",
616
+ type: { name: "number | string", raw: "number | string" }
617
+ },
618
+ color: {
619
+ name: "color",
620
+ required: !1,
621
+ description: "图标颜色",
622
+ type: { name: "string", raw: "string" }
623
+ },
624
+ className: {
625
+ name: "className",
626
+ required: !1,
627
+ description: "自定义类名",
628
+ type: { name: "string", raw: "string" }
629
+ },
630
+ style: {
631
+ name: "style",
632
+ required: !1,
633
+ description: "自定义样式",
634
+ type: { name: "CSSProperties", raw: "React.CSSProperties" }
635
+ }
636
+ }
637
+ };
638
+ const Ae = ({
639
+ loading: t,
640
+ description: d = "暂无数据",
641
+ className: i,
642
+ emptyChildren: c,
643
+ loadingText: s,
644
+ emptyImage: u
645
+ }) => t ? /* @__PURE__ */ n.jsxs(
646
+ te,
647
+ {
648
+ className: `pt-10 w-full ${i || ""}`,
649
+ align: "center",
650
+ justify: "center",
651
+ vertical: !0,
652
+ children: [
653
+ /* @__PURE__ */ n.jsx(ge, { size: "large" }),
654
+ s && /* @__PURE__ */ n.jsx("div", { className: "mt-4 text-gray-500", children: s })
655
+ ]
656
+ }
657
+ ) : /* @__PURE__ */ n.jsx(
658
+ te,
659
+ {
660
+ className: `pt-10 w-full ${i || ""}`,
661
+ align: "center",
662
+ justify: "center",
663
+ children: /* @__PURE__ */ n.jsx(
664
+ ye,
665
+ {
666
+ image: u,
667
+ description: d,
668
+ imageStyle: { height: 180 },
669
+ children: c
670
+ }
671
+ )
672
+ }
673
+ );
674
+ Ae.__docgenInfo = {
675
+ displayName: "EmptyAndSpin",
676
+ description: "空状态和加载状态组合组件",
677
+ props: {
678
+ loading: {
679
+ name: "loading",
680
+ required: !0,
681
+ description: "是否加载中",
682
+ type: { name: "boolean", raw: "boolean" }
683
+ },
684
+ description: {
685
+ name: "description",
686
+ required: !1,
687
+ description: "空状态描述",
688
+ type: { name: "ReactNode", raw: "React.ReactNode" },
689
+ defaultValue: { value: '"暂无数据"' }
690
+ },
691
+ className: {
692
+ name: "className",
693
+ required: !1,
694
+ description: "自定义类名",
695
+ type: { name: "string", raw: "string" }
696
+ },
697
+ emptyChildren: {
698
+ name: "emptyChildren",
699
+ required: !1,
700
+ description: "空状态额外内容",
701
+ type: { name: "ReactNode", raw: "React.ReactNode" }
702
+ },
703
+ loadingText: {
704
+ name: "loadingText",
705
+ required: !1,
706
+ description: "加载中提示文字",
707
+ type: { name: "string", raw: "string" }
708
+ },
709
+ emptyImage: {
710
+ name: "emptyImage",
711
+ required: !1,
712
+ description: "空状态图片",
713
+ type: { name: "string", raw: "string" }
714
+ }
715
+ }
716
+ };
717
+ const Oe = ({
718
+ onClick: t,
719
+ showText: d = !1,
720
+ className: i,
721
+ size: c = "small",
722
+ type: s = "default"
723
+ }) => /* @__PURE__ */ n.jsx(
724
+ X,
725
+ {
726
+ size: c,
727
+ type: s,
728
+ icon: /* @__PURE__ */ n.jsx(xe, {}),
729
+ className: `cursor-pointer ${i || ""}`,
730
+ onClick: t,
731
+ children: d && "返回"
732
+ }
733
+ );
734
+ Oe.__docgenInfo = {
735
+ displayName: "BackButton",
736
+ description: "返回按钮组件",
737
+ props: {
738
+ onClick: {
739
+ name: "onClick",
740
+ required: !1,
741
+ description: "点击事件",
742
+ type: { name: "function", raw: "() => void" }
743
+ },
744
+ showText: {
745
+ name: "showText",
746
+ required: !1,
747
+ description: "是否显示文字",
748
+ type: { name: "boolean", raw: "boolean" },
749
+ defaultValue: { value: "false" }
750
+ },
751
+ className: {
752
+ name: "className",
753
+ required: !1,
754
+ description: "自定义类名",
755
+ type: { name: "string", raw: "string" }
756
+ },
757
+ size: {
758
+ name: "size",
759
+ required: !1,
760
+ description: "按钮大小",
761
+ type: { name: "ButtonSize", raw: '"small" | "middle" | "large"' },
762
+ defaultValue: { value: '"small"' }
763
+ },
764
+ type: {
765
+ name: "type",
766
+ required: !1,
767
+ description: "按钮类型",
768
+ type: { name: "ButtonType", raw: '"primary" | "default" | "dashed" | "link" | "text"' },
769
+ defaultValue: { value: '"default"' }
770
+ }
771
+ }
772
+ };
773
+ const Pe = ({
774
+ removePadding: t = !0,
775
+ className: d,
776
+ ...i
777
+ }) => {
778
+ const c = t ? `px-0 h-auto ${d || ""}` : d;
779
+ return /* @__PURE__ */ n.jsx(
780
+ X,
781
+ {
782
+ type: "link",
783
+ ...i,
784
+ className: c,
785
+ children: i.children
786
+ }
787
+ );
788
+ };
789
+ Pe.__docgenInfo = {
790
+ displayName: "LinkButton",
791
+ description: "链接样式按钮组件,适用于表格操作列",
792
+ props: {
793
+ removePadding: {
794
+ name: "removePadding",
795
+ required: !1,
796
+ description: "是否去除默认内边距",
797
+ type: { name: "boolean", raw: "boolean" },
798
+ defaultValue: { value: "true" }
799
+ },
800
+ children: {
801
+ name: "children",
802
+ required: !1,
803
+ description: "按钮内容",
804
+ type: { name: "ReactNode", raw: "React.ReactNode" }
805
+ },
806
+ onClick: {
807
+ name: "onClick",
808
+ required: !1,
809
+ description: "点击事件",
810
+ type: { name: "function", raw: "(event: React.MouseEvent<HTMLButtonElement>) => void" }
811
+ },
812
+ disabled: {
813
+ name: "disabled",
814
+ required: !1,
815
+ description: "是否禁用",
816
+ type: { name: "boolean", raw: "boolean" }
817
+ },
818
+ className: {
819
+ name: "className",
820
+ required: !1,
821
+ description: "自定义类名",
822
+ type: { name: "string", raw: "string" }
823
+ }
824
+ }
825
+ };
826
+ const { Option: Ve } = ce, ze = ({
827
+ columns: t,
828
+ request: d,
829
+ searchFields: i = [],
830
+ showSearch: c = !0,
831
+ showRefresh: s = !0,
832
+ defaultPageSize: u = 10,
833
+ pageSizeOptions: T = ["10", "20", "50", "100"],
834
+ autoLoad: p = !0,
835
+ externalParams: O = {},
836
+ ...$
837
+ }) => {
838
+ const [P, Y] = R([]), [C, g] = R(!1), [N, E] = R({
839
+ current: 1,
840
+ pageSize: u,
841
+ total: 0
842
+ }), [I, S] = R({}), [_, j] = R({}), [b] = re.useForm(), B = v(N);
843
+ B.current = N;
844
+ const D = v(O);
845
+ D.current = O;
846
+ const V = v(!1), L = me(() => t.map((r) => {
847
+ const { sortable: o, render: y, ...w } = r;
848
+ return {
849
+ ...w,
850
+ sorter: o ? !0 : void 0,
851
+ render: y || ((H) => H)
852
+ };
853
+ }), [t]), k = M(async (r = {}) => {
854
+ if (d) {
855
+ g(!0);
856
+ try {
857
+ const o = {
858
+ page: B.current.current,
859
+ pageSize: B.current.pageSize,
860
+ sortField: _.field,
861
+ sortOrder: _.order,
862
+ searchParams: { ...I, ...D.current },
863
+ ...r
864
+ }, y = await d(o);
865
+ y.success && (Y(y.data), E((w) => ({
866
+ ...w,
867
+ total: y.total,
868
+ current: o.page || w.current
869
+ })));
870
+ } catch (o) {
871
+ console.error("加载数据失败:", o);
872
+ } finally {
873
+ g(!1);
874
+ }
875
+ }
876
+ }, [d, _, I]), z = M((r) => {
877
+ S(r), E((o) => ({ ...o, current: 1 }));
878
+ }, []), q = M(() => {
879
+ b.resetFields(), S({}), E((r) => ({ ...r, current: 1 }));
880
+ }, [b]), F = M(() => {
881
+ k();
882
+ }, [k]), G = M((r, o, y) => {
883
+ const w = {
884
+ current: r.current || 1,
885
+ pageSize: r.pageSize || u,
886
+ total: r.total || 0
887
+ }, H = {
888
+ field: y?.field,
889
+ order: y?.order
890
+ };
891
+ E(w), j(H);
892
+ }, [u]);
893
+ return J(() => {
894
+ const r = Object.keys(O).length > 0;
895
+ (p && !V.current || r) && (k(), V.current = !0);
896
+ }, [p, O, k]), /* @__PURE__ */ n.jsxs("div", { children: [
897
+ c && i.length > 0 && /* @__PURE__ */ n.jsx(se, { size: "small", style: { marginBottom: 16 }, children: /* @__PURE__ */ n.jsxs(
898
+ re,
899
+ {
900
+ form: b,
901
+ layout: "inline",
902
+ onFinish: z,
903
+ initialValues: i.reduce((r, o) => (o.defaultValue !== void 0 && (r[o.key] = o.defaultValue), r), {}),
904
+ children: [
905
+ i.map((r) => /* @__PURE__ */ n.jsx(re.Item, { name: r.key, label: r.label, children: r.type === "input" ? /* @__PURE__ */ n.jsx(
906
+ ue,
907
+ {
908
+ placeholder: r.placeholder || `请输入${r.label}`,
909
+ style: { width: 200 }
910
+ }
911
+ ) : /* @__PURE__ */ n.jsx(
912
+ ce,
913
+ {
914
+ placeholder: r.placeholder || `请选择${r.label}`,
915
+ style: { width: 200 },
916
+ allowClear: !0,
917
+ children: r.options?.map((o) => /* @__PURE__ */ n.jsx(Ve, { value: o.value, children: o.label }, o.value))
918
+ }
919
+ ) }, r.key)),
920
+ /* @__PURE__ */ n.jsx(re.Item, { children: /* @__PURE__ */ n.jsxs(he, { children: [
921
+ /* @__PURE__ */ n.jsx(X, { type: "primary", htmlType: "submit", icon: /* @__PURE__ */ n.jsx(ve, {}), children: "查询" }),
922
+ /* @__PURE__ */ n.jsx(X, { onClick: q, children: "重置" }),
923
+ s && /* @__PURE__ */ n.jsx(X, { icon: /* @__PURE__ */ n.jsx(Re, {}), onClick: F, children: "刷新" })
924
+ ] }) })
925
+ ]
926
+ }
927
+ ) }),
928
+ /* @__PURE__ */ n.jsx(
929
+ le,
930
+ {
931
+ ...$,
932
+ columns: L,
933
+ dataSource: P,
934
+ loading: C,
935
+ pagination: {
936
+ ...N,
937
+ showSizeChanger: !0,
938
+ showQuickJumper: !0,
939
+ showTotal: (r, o) => `第 ${o[0]}-${o[1]} 条/共 ${r} 条`,
940
+ pageSizeOptions: T
941
+ },
942
+ onChange: G,
943
+ scroll: { x: "max-content", y: "50vh" }
944
+ }
945
+ )
946
+ ] });
947
+ };
948
+ ze.__docgenInfo = {
949
+ displayName: "AdvancedTable",
950
+ description: "高阶表格组件,支持异步请求、搜索、排序等功能",
951
+ props: {
952
+ columns: {
953
+ name: "columns",
954
+ required: !0,
955
+ description: "列配置",
956
+ type: { name: "AdvancedColumnType[]", raw: "AdvancedColumnType<any>[]" }
957
+ },
958
+ request: {
959
+ name: "request",
960
+ required: !1,
961
+ description: "异步请求函数",
962
+ type: { name: "function", raw: "(params: RequestParams) => Promise<RequestResponse>" }
963
+ },
964
+ searchFields: {
965
+ name: "searchFields",
966
+ required: !1,
967
+ description: "搜索字段配置",
968
+ type: { name: "SearchFieldConfig[]", raw: "SearchFieldConfig[]" },
969
+ defaultValue: { value: "[]" }
970
+ },
971
+ showSearch: {
972
+ name: "showSearch",
973
+ required: !1,
974
+ description: "是否显示搜索区域",
975
+ type: { name: "boolean", raw: "boolean" },
976
+ defaultValue: { value: "true" }
977
+ },
978
+ showRefresh: {
979
+ name: "showRefresh",
980
+ required: !1,
981
+ description: "是否显示刷新按钮",
982
+ type: { name: "boolean", raw: "boolean" },
983
+ defaultValue: { value: "true" }
984
+ },
985
+ defaultPageSize: {
986
+ name: "defaultPageSize",
987
+ required: !1,
988
+ description: "默认页面大小",
989
+ type: { name: "number", raw: "number" },
990
+ defaultValue: { value: "10" }
991
+ },
992
+ pageSizeOptions: {
993
+ name: "pageSizeOptions",
994
+ required: !1,
995
+ description: "页面大小选项",
996
+ type: { name: "string[]", raw: "string[]" },
997
+ defaultValue: { value: '["10", "20", "50", "100"]' }
998
+ },
999
+ autoLoad: {
1000
+ name: "autoLoad",
1001
+ required: !1,
1002
+ description: "是否自动加载",
1003
+ type: { name: "boolean", raw: "boolean" },
1004
+ defaultValue: { value: "true" }
1005
+ },
1006
+ externalParams: {
1007
+ name: "externalParams",
1008
+ required: !1,
1009
+ description: "外部请求参数",
1010
+ type: { name: "Record<string, any>", raw: "Record<string, any>" },
1011
+ defaultValue: { value: "{}" }
1012
+ }
1013
+ }
1014
+ };
1015
+ const Fe = ({
1016
+ texts: t = [],
1017
+ placeholder: d = "请输入内容",
1018
+ animationSpeed: i = 100,
1019
+ autoPlay: c = !0,
1020
+ value: s,
1021
+ onChange: u,
1022
+ ...T
1023
+ }) => {
1024
+ const [p, O] = R(""), [$, P] = R(0), [Y, C] = R(!1), [g, N] = R(!1), [E, I] = R(!1), S = v(void 0), _ = v(void 0), j = v(t), b = v($), B = v(g), D = v(p);
1025
+ J(() => {
1026
+ j.current = t, b.current = $, B.current = g, D.current = p;
1027
+ });
1028
+ const V = M((r, o) => {
1029
+ let y = 0;
1030
+ I(!0);
1031
+ const w = () => {
1032
+ y < r.length ? (O(r.slice(0, y + 1)), y++, _.current = window.setTimeout(w, i)) : (I(!1), o?.());
1033
+ };
1034
+ w();
1035
+ }, [i]), L = M((r) => {
1036
+ let o = D.current.length;
1037
+ const y = () => {
1038
+ o > 0 ? (O(D.current.slice(0, o - 1)), o--, _.current = window.setTimeout(y, i / 2)) : r?.();
1039
+ };
1040
+ y();
1041
+ }, [i]), k = M(() => {
1042
+ if (j.current.length === 0 || B.current) return;
1043
+ C(!0);
1044
+ const r = j.current[b.current];
1045
+ D.current ? L(() => {
1046
+ V(r, () => {
1047
+ S.current = window.setTimeout(() => {
1048
+ P((o) => (o + 1) % j.current.length), C(!1);
1049
+ }, 2e3);
1050
+ });
1051
+ }) : V(r, () => {
1052
+ S.current = window.setTimeout(() => {
1053
+ P((o) => (o + 1) % j.current.length), C(!1);
1054
+ }, 2e3);
1055
+ });
1056
+ }, [L, V]);
1057
+ J(() => (c && t.length > 0 && !g && k(), () => {
1058
+ S.current && window.clearTimeout(S.current), _.current && window.clearTimeout(_.current);
1059
+ }), [$, g, c, t.length, k]), J(() => {
1060
+ !Y && c && t.length > 0 && !g && k();
1061
+ }, [$, Y, c, t.length, g, k]);
1062
+ const z = (r) => {
1063
+ N(!0), S.current && window.clearTimeout(S.current), _.current && window.clearTimeout(_.current), C(!1), I(!1), T.onFocus?.(r);
1064
+ }, q = (r) => {
1065
+ N(!1), !s && t.length > 0 && (O(""), P(0)), T.onBlur?.(r);
1066
+ }, F = (r) => {
1067
+ u?.(r.target.value), T.onChange?.(r);
1068
+ }, G = () => g || s ? d : p || d;
1069
+ return /* @__PURE__ */ n.jsxs("div", { style: { position: "relative" }, children: [
1070
+ /* @__PURE__ */ n.jsx(
1071
+ ue,
1072
+ {
1073
+ ...T,
1074
+ value: s,
1075
+ onChange: F,
1076
+ onFocus: z,
1077
+ onBlur: q,
1078
+ placeholder: G(),
1079
+ style: {
1080
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1081
+ ...T.style,
1082
+ position: "relative",
1083
+ zIndex: 1
1084
+ }
1085
+ }
1086
+ ),
1087
+ !g && !s && p && /* @__PURE__ */ n.jsxs(
1088
+ "div",
1089
+ {
1090
+ style: {
1091
+ position: "absolute",
1092
+ top: 0,
1093
+ left: 0,
1094
+ right: 0,
1095
+ bottom: 0,
1096
+ display: "flex",
1097
+ alignItems: "center",
1098
+ paddingLeft: 11,
1099
+ paddingRight: 11,
1100
+ color: "#bfbfbf",
1101
+ pointerEvents: "none",
1102
+ zIndex: 2,
1103
+ fontSize: 14,
1104
+ fontFamily: "inherit"
1105
+ },
1106
+ children: [
1107
+ /* @__PURE__ */ n.jsx("span", { children: p }),
1108
+ E && /* @__PURE__ */ n.jsx(
1109
+ "span",
1110
+ {
1111
+ style: {
1112
+ display: "inline-block",
1113
+ width: 1,
1114
+ height: "1.2em",
1115
+ backgroundColor: "#1890ff",
1116
+ marginLeft: 2,
1117
+ animation: "blink 1s infinite"
1118
+ }
1119
+ }
1120
+ )
1121
+ ]
1122
+ }
1123
+ ),
1124
+ /* @__PURE__ */ n.jsx("style", { children: `
1125
+ @keyframes blink {
1126
+ 0%, 50% { opacity: 1; }
1127
+ 51%, 100% { opacity: 0; }
1128
+ }
1129
+ ` })
1130
+ ] });
1131
+ };
1132
+ Fe.__docgenInfo = {
1133
+ displayName: "DynamicInput",
1134
+ description: "动态文案输入框组件,支持流式文字动画效果",
1135
+ props: {
1136
+ texts: {
1137
+ name: "texts",
1138
+ required: !0,
1139
+ description: "动态展示的文案数组",
1140
+ type: { name: "string[]", raw: "string[]" }
1141
+ },
1142
+ placeholder: {
1143
+ name: "placeholder",
1144
+ required: !1,
1145
+ description: "输入框占位符",
1146
+ type: { name: "string", raw: "string" },
1147
+ defaultValue: { value: '"请输入内容"' }
1148
+ },
1149
+ animationSpeed: {
1150
+ name: "animationSpeed",
1151
+ required: !1,
1152
+ description: "动画速度(毫秒)",
1153
+ type: { name: "number", raw: "number" },
1154
+ defaultValue: { value: "100" }
1155
+ },
1156
+ autoPlay: {
1157
+ name: "autoPlay",
1158
+ required: !1,
1159
+ description: "是否自动播放动画",
1160
+ type: { name: "boolean", raw: "boolean" },
1161
+ defaultValue: { value: "true" }
1162
+ },
1163
+ value: {
1164
+ name: "value",
1165
+ required: !1,
1166
+ description: "输入框值",
1167
+ type: { name: "string", raw: "string" }
1168
+ },
1169
+ onChange: {
1170
+ name: "onChange",
1171
+ required: !1,
1172
+ description: "输入框变化回调",
1173
+ type: { name: "function", raw: "(value: string) => void" }
1174
+ }
1175
+ }
1176
+ };
1177
+ const Be = ({
1178
+ texts: t = [],
1179
+ // 动态文案数组,默认为空数组
1180
+ placeholder: d = "请输入内容",
1181
+ // 占位符文本
1182
+ animationSpeed: i = 100,
1183
+ // 打字机动画速度,毫秒
1184
+ autoPlay: c = !0,
1185
+ // 是否自动播放动画
1186
+ value: s = "",
1187
+ // 受控模式的值
1188
+ onChange: u,
1189
+ // 受控模式的变化回调
1190
+ onSubmit: T,
1191
+ // 提交回调
1192
+ maxLength: p = 500,
1193
+ // 最大字符数限制
1194
+ showCount: O = !0,
1195
+ // 是否显示字数统计
1196
+ submitText: $ = "发送",
1197
+ // 提交按钮文本
1198
+ disabled: P = !1,
1199
+ // 是否禁用组件
1200
+ rows: Y = 4,
1201
+ // 文本域行数
1202
+ style: C,
1203
+ // 自定义样式
1204
+ ...g
1205
+ // 其他原生属性
1206
+ }) => {
1207
+ const [N, E] = R(""), [I, S] = R(0), [_, j] = R(!1), [b, B] = R(!1), [D, V] = R(!1), [L, k] = R(s || ""), z = v(void 0), q = v(void 0), F = v(t), G = v(I), r = v(b), o = v(N), y = v(null);
1208
+ J(() => {
1209
+ F.current = t, G.current = I, r.current = b, o.current = N;
1210
+ });
1211
+ const w = M((l, f) => {
1212
+ let A = 0;
1213
+ V(!0);
1214
+ const K = () => {
1215
+ A < l.length ? (E(l.slice(0, A + 1)), A++, q.current = window.setTimeout(K, i)) : (V(!1), f?.());
1216
+ };
1217
+ K();
1218
+ }, [i]), H = M((l) => {
1219
+ let f = o.current.length;
1220
+ const A = () => {
1221
+ f > 0 ? (E(o.current.slice(0, f - 1)), f--, q.current = window.setTimeout(A, i / 2)) : l?.();
1222
+ };
1223
+ A();
1224
+ }, [i]), U = M(() => {
1225
+ if (F.current.length === 0 || r.current) return;
1226
+ j(!0);
1227
+ const l = F.current[G.current];
1228
+ o.current ? H(() => {
1229
+ w(l, () => {
1230
+ z.current = window.setTimeout(() => {
1231
+ S((f) => (f + 1) % F.current.length), j(!1);
1232
+ }, 2e3);
1233
+ });
1234
+ }) : w(l, () => {
1235
+ z.current = window.setTimeout(() => {
1236
+ S((f) => (f + 1) % F.current.length), j(!1);
1237
+ }, 2e3);
1238
+ });
1239
+ }, [H, w]);
1240
+ J(() => (c && t.length > 0 && !b && U(), () => {
1241
+ z.current && window.clearTimeout(z.current), q.current && window.clearTimeout(q.current);
1242
+ }), [I, b, c, t.length, U]), J(() => {
1243
+ !_ && c && t.length > 0 && !b && U();
1244
+ }, [I, _, c, t.length, b, U]);
1245
+ const e = (l) => {
1246
+ B(!0), z.current && window.clearTimeout(z.current), q.current && window.clearTimeout(q.current), j(!1), V(!1), g.onFocus?.(l);
1247
+ }, a = (l) => {
1248
+ B(!1), !s && t.length > 0 && (E(""), S(0)), g.onBlur?.(l);
1249
+ }, m = (l) => {
1250
+ const f = l.target.value;
1251
+ p && f.length > p || (u ? u(f) : k(f), g.onChange?.(l));
1252
+ }, h = () => {
1253
+ const l = u ? s : L;
1254
+ l.trim() && !P && (T?.(l), u || k(""));
1255
+ }, W = (l) => {
1256
+ (l.ctrlKey || l.metaKey) && l.key === "Enter" && (l.preventDefault(), h()), g.onKeyDown?.(l);
1257
+ }, x = u ? s : L, Q = P || !x.trim() || (p ? x.length > p : !1);
1258
+ return /* @__PURE__ */ n.jsxs("div", { style: { position: "relative", ...C }, children: [
1259
+ /* @__PURE__ */ n.jsxs("div", { style: { position: "relative" }, children: [
1260
+ /* @__PURE__ */ n.jsx(
1261
+ "textarea",
1262
+ {
1263
+ ref: y,
1264
+ value: u ? s : L,
1265
+ onChange: m,
1266
+ onFocus: (l) => {
1267
+ l.target.style.borderColor = "#1890ff", l.target.style.boxShadow = "0 0 0 2px rgba(24, 144, 255, 0.2)", e(l);
1268
+ },
1269
+ onBlur: (l) => {
1270
+ l.target.style.borderColor = "#d9d9d9", l.target.style.boxShadow = "none", a(l);
1271
+ },
1272
+ onKeyDown: W,
1273
+ placeholder: b || x ? d : "",
1274
+ maxLength: p,
1275
+ rows: Y,
1276
+ disabled: P,
1277
+ style: {
1278
+ width: "100%",
1279
+ minHeight: `${Y * 24 + 16}px`,
1280
+ padding: "8px 60px 8px 12px",
1281
+ // 右侧留出按钮空间
1282
+ border: "1px solid #d9d9d9",
1283
+ borderRadius: "6px",
1284
+ fontSize: "14px",
1285
+ lineHeight: "1.5",
1286
+ fontFamily: "inherit",
1287
+ resize: "vertical",
1288
+ outline: "none",
1289
+ transition: "border-color 0.3s, box-shadow 0.3s",
1290
+ backgroundColor: "#fff",
1291
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1292
+ ...g.style
1293
+ },
1294
+ ...g
1295
+ }
1296
+ ),
1297
+ !b && !x && N && /* @__PURE__ */ n.jsxs(
1298
+ "div",
1299
+ {
1300
+ style: {
1301
+ position: "absolute",
1302
+ top: 0,
1303
+ left: 0,
1304
+ right: 0,
1305
+ bottom: 0,
1306
+ display: "flex",
1307
+ alignItems: "flex-start",
1308
+ paddingTop: 8,
1309
+ paddingLeft: 12,
1310
+ paddingRight: 12,
1311
+ color: "#bfbfbf",
1312
+ pointerEvents: "none",
1313
+ zIndex: 2,
1314
+ fontSize: 14,
1315
+ fontFamily: "inherit",
1316
+ lineHeight: "1.5"
1317
+ },
1318
+ children: [
1319
+ /* @__PURE__ */ n.jsx("span", { children: N }),
1320
+ D && /* @__PURE__ */ n.jsx(
1321
+ "span",
1322
+ {
1323
+ style: {
1324
+ display: "inline-block",
1325
+ width: 1,
1326
+ height: "1.2em",
1327
+ backgroundColor: "#1890ff",
1328
+ marginLeft: 2,
1329
+ animation: "blink 1s infinite"
1330
+ }
1331
+ }
1332
+ )
1333
+ ]
1334
+ }
1335
+ ),
1336
+ /* @__PURE__ */ n.jsx(
1337
+ "div",
1338
+ {
1339
+ style: {
1340
+ position: "absolute",
1341
+ bottom: 8,
1342
+ right: 8,
1343
+ zIndex: 3
1344
+ },
1345
+ children: /* @__PURE__ */ n.jsx(
1346
+ X,
1347
+ {
1348
+ type: "primary",
1349
+ size: "small",
1350
+ icon: /* @__PURE__ */ n.jsx(Te, {}),
1351
+ onClick: h,
1352
+ disabled: Q,
1353
+ style: {
1354
+ borderRadius: 6,
1355
+ minWidth: 32,
1356
+ height: 32,
1357
+ display: "flex",
1358
+ alignItems: "center",
1359
+ justifyContent: "center"
1360
+ },
1361
+ children: $
1362
+ }
1363
+ )
1364
+ }
1365
+ )
1366
+ ] }),
1367
+ O && /* @__PURE__ */ n.jsxs(
1368
+ "div",
1369
+ {
1370
+ style: {
1371
+ marginTop: 4,
1372
+ textAlign: "right",
1373
+ fontSize: "12px",
1374
+ color: "#999"
1375
+ },
1376
+ children: [
1377
+ x.length,
1378
+ "/",
1379
+ p
1380
+ ]
1381
+ }
1382
+ ),
1383
+ /* @__PURE__ */ n.jsx("style", { children: `
1384
+ @keyframes blink {
1385
+ 0%, 50% { opacity: 1; }
1386
+ 51%, 100% { opacity: 0; }
1387
+ }
1388
+ ` })
1389
+ ] });
1390
+ };
1391
+ Be.__docgenInfo = {
1392
+ displayName: "DynamicTextArea",
1393
+ description: "动态文案文本域组件,支持流式文字动画效果",
1394
+ props: {
1395
+ texts: {
1396
+ name: "texts",
1397
+ required: !0,
1398
+ description: "动态展示的文案数组",
1399
+ type: { name: "string[]", raw: "string[]" }
1400
+ },
1401
+ placeholder: {
1402
+ name: "placeholder",
1403
+ required: !1,
1404
+ description: "输入框占位符",
1405
+ type: { name: "string", raw: "string" },
1406
+ defaultValue: { value: '"请输入内容"' }
1407
+ },
1408
+ animationSpeed: {
1409
+ name: "animationSpeed",
1410
+ required: !1,
1411
+ description: "动画速度(毫秒)",
1412
+ type: { name: "number", raw: "number" },
1413
+ defaultValue: { value: "100" }
1414
+ },
1415
+ autoPlay: {
1416
+ name: "autoPlay",
1417
+ required: !1,
1418
+ description: "是否自动播放动画",
1419
+ type: { name: "boolean", raw: "boolean" },
1420
+ defaultValue: { value: "true" }
1421
+ },
1422
+ value: {
1423
+ name: "value",
1424
+ required: !1,
1425
+ description: "输入框值",
1426
+ type: { name: "string", raw: "string" }
1427
+ },
1428
+ onChange: {
1429
+ name: "onChange",
1430
+ required: !1,
1431
+ description: "输入框变化回调",
1432
+ type: { name: "function", raw: "(value: string) => void" }
1433
+ },
1434
+ onSubmit: {
1435
+ name: "onSubmit",
1436
+ required: !1,
1437
+ description: "提交回调",
1438
+ type: { name: "function", raw: "(value: string) => void" }
1439
+ },
1440
+ maxLength: {
1441
+ name: "maxLength",
1442
+ required: !1,
1443
+ description: "最大输入字数",
1444
+ type: { name: "number", raw: "number" },
1445
+ defaultValue: { value: "500" }
1446
+ },
1447
+ showCount: {
1448
+ name: "showCount",
1449
+ required: !1,
1450
+ description: "是否显示字数统计",
1451
+ type: { name: "boolean", raw: "boolean" },
1452
+ defaultValue: { value: "true" }
1453
+ },
1454
+ submitText: {
1455
+ name: "submitText",
1456
+ required: !1,
1457
+ description: "提交按钮文本",
1458
+ type: { name: "string", raw: "string" },
1459
+ defaultValue: { value: '"发送"' }
1460
+ },
1461
+ disabled: {
1462
+ name: "disabled",
1463
+ required: !1,
1464
+ description: "是否禁用提交按钮",
1465
+ type: { name: "boolean", raw: "boolean" },
1466
+ defaultValue: { value: "false" }
1467
+ },
1468
+ rows: {
1469
+ name: "rows",
1470
+ required: !1,
1471
+ description: "文本域行数",
1472
+ type: { name: "number", raw: "number" },
1473
+ defaultValue: { value: "4" }
1474
+ }
1475
+ }
1476
+ };
1477
+ const $e = {
1478
+ algorithm: be.defaultAlgorithm,
1479
+ token: {
1480
+ // 主色
1481
+ colorPrimary: "#3b82f6",
1482
+ colorSuccess: "#10b981",
1483
+ colorWarning: "#f59e0b",
1484
+ colorError: "#ef4444",
1485
+ colorInfo: "#3b82f6",
1486
+ // 背景色
1487
+ colorBgBase: "#ffffff",
1488
+ colorBgContainer: "#ffffff",
1489
+ colorBgElevated: "#ffffff",
1490
+ colorBgLayout: "#f8fafc",
1491
+ // 文字色
1492
+ colorTextBase: "#1e293b",
1493
+ colorText: "#1e293b",
1494
+ colorTextSecondary: "#64748b",
1495
+ colorTextTertiary: "#94a3b8",
1496
+ colorTextQuaternary: "#cbd5e1",
1497
+ // 边框色
1498
+ colorBorder: "#e2e8f0",
1499
+ colorBorderSecondary: "#f1f5f9",
1500
+ // 阴影
1501
+ boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
1502
+ boxShadowSecondary: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
1503
+ // 圆角
1504
+ borderRadius: 8,
1505
+ borderRadiusLG: 12,
1506
+ borderRadiusSM: 6,
1507
+ // 字体
1508
+ fontFamily: "Inter, system-ui, Arial, sans-serif",
1509
+ fontSize: 14,
1510
+ fontSizeLG: 16,
1511
+ fontSizeSM: 12,
1512
+ // 间距
1513
+ padding: 16,
1514
+ paddingLG: 24,
1515
+ paddingSM: 12,
1516
+ paddingXS: 8,
1517
+ // 高度
1518
+ controlHeight: 32,
1519
+ controlHeightLG: 40,
1520
+ controlHeightSM: 24
1521
+ },
1522
+ components: {
1523
+ Button: {
1524
+ borderRadius: 8,
1525
+ controlHeight: 32,
1526
+ fontWeight: 500
1527
+ },
1528
+ Card: {
1529
+ borderRadiusLG: 12,
1530
+ boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)"
1531
+ },
1532
+ Input: {
1533
+ borderRadius: 8,
1534
+ controlHeight: 32
1535
+ },
1536
+ Table: {
1537
+ borderRadiusLG: 8,
1538
+ headerBg: "#f8fafc",
1539
+ headerColor: "#374151"
1540
+ }
1541
+ }
1542
+ };
1543
+ export {
1544
+ ze as AdvancedTable,
1545
+ qe as AppModal,
1546
+ Oe as BackButton,
1547
+ je as Button,
1548
+ ke as Card,
1549
+ Fe as DynamicInput,
1550
+ Be as DynamicTextArea,
1551
+ Ae as EmptyAndSpin,
1552
+ Pe as LinkButton,
1553
+ Ce as PageTable,
1554
+ Ie as XcIcon,
1555
+ $e as lightTheme
1556
+ };
1557
+ //# sourceMappingURL=index.es.js.map