kb-ui-vue 0.2.0 → 0.3.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.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { Fragment as e, Teleport as t, computed as n, createApp as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, inject as d, nextTick as f, normalizeClass as p, normalizeStyle as m, onBeforeUnmount as h, onMounted as g, openBlock as _, provide as v, reactive as y, ref as b, renderList as x, renderSlot as S, resolveComponent as C, toDisplayString as w, unref as T, useId as E, useSlots as D, watch as O, withKeys as k, withModifiers as A } from "vue";
1
+ import { Fragment as e, Teleport as t, computed as n, createApp as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, inject as d, nextTick as f, normalizeClass as p, normalizeStyle as m, onBeforeUnmount as h, onMounted as g, openBlock as _, provide as v, reactive as y, ref as b, renderList as x, renderSlot as S, toDisplayString as C, unref as w, useId as T, useSlots as E, watch as D, watchEffect as O, withCtx as k, withKeys as A, withModifiers as j } from "vue";
2
2
  //#region src/components/Button/Button.vue?vue&type=script&setup=true&lang.ts
3
- var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
3
+ var M = ["type", "disabled"], N = /* @__PURE__ */ u({
4
4
  name: "KbButton",
5
5
  __name: "Button",
6
6
  props: {
@@ -37,9 +37,9 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
37
37
  class: p(r.value),
38
38
  disabled: e.disabled,
39
39
  onClick: n[0] ||= (e) => t.$emit("click", e)
40
- }, [S(t.$slots, "default")], 10, ee));
40
+ }, [S(t.$slots, "default")], 10, M));
41
41
  }
42
- }), M = ["width", "height"], te = ["d"], N = /* @__PURE__ */ u({
42
+ }), P = ["width", "height"], F = ["d"], I = /* @__PURE__ */ u({
43
43
  name: "KbIcon",
44
44
  __name: "Icon",
45
45
  props: {
@@ -77,9 +77,9 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
77
77
  }, [i.value ? (_(), o("path", {
78
78
  key: 0,
79
79
  d: i.value
80
- }, null, 8, te)) : a("", !0)], 12, M));
80
+ }, null, 8, F)) : a("", !0)], 12, P));
81
81
  }
82
- }), ne = /* @__PURE__ */ u({
82
+ }), L = /* @__PURE__ */ u({
83
83
  name: "KbTag",
84
84
  __name: "Tag",
85
85
  props: {
@@ -110,7 +110,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
110
110
  onClick: n[0] ||= (e) => t.$emit("close")
111
111
  }, " × ")) : a("", !0)], 2));
112
112
  }
113
- }), re = /* @__PURE__ */ u({
113
+ }), R = /* @__PURE__ */ u({
114
114
  name: "KbSpace",
115
115
  __name: "Space",
116
116
  props: {
@@ -138,10 +138,10 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
138
138
  style: m(a.value)
139
139
  }, [S(e.$slots, "default")], 6));
140
140
  }
141
- }), ie = {
141
+ }), z = {
142
142
  key: 0,
143
143
  class: "kb-divider__text"
144
- }, ae = /* @__PURE__ */ u({
144
+ }, B = /* @__PURE__ */ u({
145
145
  name: "KbDivider",
146
146
  __name: "Divider",
147
147
  props: {
@@ -157,9 +157,9 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
157
157
  return (t, n) => (_(), o("div", {
158
158
  class: p(r.value),
159
159
  role: "separator"
160
- }, [e.direction === "horizontal" && t.$slots.default ? (_(), o("span", ie, [S(t.$slots, "default")])) : a("", !0)], 2));
160
+ }, [e.direction === "horizontal" && t.$slots.default ? (_(), o("span", z, [S(t.$slots, "default")])) : a("", !0)], 2));
161
161
  }
162
- }), oe = Symbol("kbRowGutter"), P = /* @__PURE__ */ u({
162
+ }), V = Symbol("kbRowGutter"), H = /* @__PURE__ */ u({
163
163
  name: "KbRow",
164
164
  __name: "Row",
165
165
  props: {
@@ -169,7 +169,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
169
169
  },
170
170
  setup(e) {
171
171
  let t = e;
172
- v(oe, n(() => t.gutter));
172
+ v(V, n(() => t.gutter));
173
173
  let r = n(() => [
174
174
  "kb-row",
175
175
  `kb-row--${t.justify}`,
@@ -187,7 +187,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
187
187
  style: m(i.value)
188
188
  }, [S(e.$slots, "default")], 6));
189
189
  }
190
- }), F = /* @__PURE__ */ u({
190
+ }), U = /* @__PURE__ */ u({
191
191
  name: "KbCol",
192
192
  __name: "Col",
193
193
  props: {
@@ -195,7 +195,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
195
195
  offset: { default: 0 }
196
196
  },
197
197
  setup(e) {
198
- let t = e, r = d(oe, n(() => 0)), i = n(() => [
198
+ let t = e, r = d(V, n(() => 0)), i = n(() => [
199
199
  "kb-col",
200
200
  `kb-col-${t.span}`,
201
201
  t.offset ? `kb-col-offset-${t.offset}` : ""
@@ -212,13 +212,13 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
212
212
  style: m(a.value)
213
213
  }, [S(e.$slots, "default")], 6));
214
214
  }
215
- }), se = [
215
+ }), W = [
216
216
  "type",
217
217
  "value",
218
218
  "placeholder",
219
219
  "disabled",
220
220
  "readonly"
221
- ], I = /* @__PURE__ */ u({
221
+ ], G = /* @__PURE__ */ u({
222
222
  name: "KbInput",
223
223
  __name: "Input",
224
224
  props: {
@@ -277,7 +277,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
277
277
  onBlur: n[1] ||= (e) => {
278
278
  c.value = !1, t.$emit("blur", e);
279
279
  }
280
- }, null, 40, se), e.clearable && e.modelValue && !e.disabled ? (_(), o("button", {
280
+ }, null, 40, W), e.clearable && e.modelValue && !e.disabled ? (_(), o("button", {
281
281
  key: 0,
282
282
  class: "kb-input__clear",
283
283
  type: "button",
@@ -285,10 +285,10 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
285
285
  onClick: n[2] ||= (e) => i("update:modelValue", "")
286
286
  }, " × ")) : a("", !0)], 2));
287
287
  }
288
- }), ce = ["checked", "disabled"], le = {
288
+ }), ee = ["checked", "disabled"], K = {
289
289
  key: 0,
290
290
  class: "kb-checkbox__label"
291
- }, L = /* @__PURE__ */ u({
291
+ }, q = /* @__PURE__ */ u({
292
292
  name: "KbCheckbox",
293
293
  __name: "Checkbox",
294
294
  props: {
@@ -300,31 +300,42 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
300
300
  type: Boolean,
301
301
  default: !1
302
302
  },
303
- label: {}
303
+ label: {},
304
+ indeterminate: {
305
+ type: Boolean,
306
+ default: !1
307
+ }
304
308
  },
305
309
  emits: ["update:modelValue", "change"],
306
310
  setup(e, { emit: t }) {
307
- let r = e, i = t, l = n(() => ["kb-checkbox", {
311
+ let r = e, i = t, l = b(null);
312
+ O(() => {
313
+ l.value && (l.value.indeterminate = r.indeterminate);
314
+ }, { flush: "sync" });
315
+ let u = n(() => ["kb-checkbox", {
308
316
  "kb-checkbox--checked": r.modelValue,
309
- "kb-checkbox--disabled": r.disabled
317
+ "kb-checkbox--disabled": r.disabled,
318
+ "kb-checkbox--indeterminate": r.indeterminate
310
319
  }]);
311
- function u(e) {
320
+ function d(e) {
312
321
  let t = e.target.checked;
313
322
  i("update:modelValue", t), i("change", t);
314
323
  }
315
- return (t, n) => (_(), o("label", { class: p(l.value) }, [
324
+ return (t, n) => (_(), o("label", { class: p(u.value) }, [
316
325
  s("input", {
326
+ ref_key: "inputRef",
327
+ ref: l,
317
328
  class: "kb-checkbox__input",
318
329
  type: "checkbox",
319
330
  checked: e.modelValue,
320
331
  disabled: e.disabled,
321
- onChange: u
322
- }, null, 40, ce),
332
+ onChange: d
333
+ }, null, 40, ee),
323
334
  n[0] ||= s("span", { class: "kb-checkbox__inner" }, null, -1),
324
- e.label || t.$slots.default ? (_(), o("span", le, [S(t.$slots, "default", {}, () => [c(w(e.label), 1)])])) : a("", !0)
335
+ e.label || t.$slots.default ? (_(), o("span", K, [S(t.$slots, "default", {}, () => [c(C(e.label), 1)])])) : a("", !0)
325
336
  ], 2));
326
337
  }
327
- }), ue = ["checked", "disabled"], de = { class: "kb-radio__label" }, R = /* @__PURE__ */ u({
338
+ }), J = ["checked", "disabled"], te = { class: "kb-radio__label" }, Y = /* @__PURE__ */ u({
328
339
  name: "KbRadio",
329
340
  __name: "Radio",
330
341
  props: {
@@ -362,12 +373,12 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
362
373
  checked: e.modelValue === e.value,
363
374
  disabled: e.disabled,
364
375
  onChange: c
365
- }, null, 40, ue),
376
+ }, null, 40, J),
366
377
  n[0] ||= s("span", { class: "kb-radio__inner" }, null, -1),
367
- s("span", de, [S(t.$slots, "default")])
378
+ s("span", te, [S(t.$slots, "default")])
368
379
  ], 2));
369
380
  }
370
- }), fe = ["aria-checked", "disabled"], z = /* @__PURE__ */ u({
381
+ }), ne = ["aria-checked", "disabled"], re = /* @__PURE__ */ u({
371
382
  name: "KbSwitch",
372
383
  __name: "Switch",
373
384
  props: {
@@ -398,14 +409,14 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
398
409
  "aria-checked": e.modelValue,
399
410
  disabled: e.disabled,
400
411
  onClick: c
401
- }, [...n[0] ||= [s("span", { class: "kb-switch__dot" }, null, -1)]], 10, fe));
412
+ }, [...n[0] ||= [s("span", { class: "kb-switch__dot" }, null, -1)]], 10, ne));
402
413
  }
403
- }), pe = ["aria-expanded", "aria-activedescendant"], me = [
414
+ }), ie = ["aria-expanded", "aria-activedescendant"], ae = [
404
415
  "id",
405
416
  "aria-selected",
406
417
  "aria-disabled",
407
418
  "onClick"
408
- ], B = /* @__PURE__ */ u({
419
+ ], oe = /* @__PURE__ */ u({
409
420
  name: "KbSelect",
410
421
  __name: "Select",
411
422
  props: {
@@ -420,7 +431,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
420
431
  },
421
432
  emits: ["update:modelValue", "change"],
422
433
  setup(t, { emit: r }) {
423
- let i = t, c = r, l = b(!1), u = b(null), d = `kb-select-${Math.random().toString(36).slice(2, 8)}`, m = b(-1), v = n(() => i.options.find((e) => e.value === i.modelValue)?.label ?? ""), y = n(() => i.options.reduce((e, t, n) => (t.disabled || e.push(n), e), [])), S = n(() => l.value && m.value >= 0 ? `${d}-opt-${m.value}` : void 0), C = n(() => [
434
+ let i = t, c = r, l = b(!1), u = b(null), d = `kb-select-${Math.random().toString(36).slice(2, 8)}`, m = b(-1), v = n(() => i.options.find((e) => e.value === i.modelValue)?.label ?? ""), y = n(() => i.options.reduce((e, t, n) => (t.disabled || e.push(n), e), [])), S = n(() => l.value && m.value >= 0 ? `${d}-opt-${m.value}` : void 0), w = n(() => [
424
435
  "kb-select",
425
436
  `kb-select--${i.size}`,
426
437
  {
@@ -456,15 +467,15 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
456
467
  let t = y.value;
457
468
  t.length && (m.value = e ? t[t.length - 1] : t[0], T());
458
469
  }
459
- function ee() {
470
+ function j() {
460
471
  let e = i.options[m.value];
461
- e && M(e);
472
+ e && N(e);
462
473
  }
463
- function j(e) {
474
+ function M(e) {
464
475
  if (!i.disabled) switch (e.key) {
465
476
  case "Enter":
466
477
  case " ":
467
- e.preventDefault(), l.value ? ee() : E("selected");
478
+ e.preventDefault(), l.value ? j() : E("selected");
468
479
  break;
469
480
  case "ArrowDown":
470
481
  e.preventDefault(), l.value ? k(1) : E("selected");
@@ -484,16 +495,16 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
484
495
  case "Tab": D();
485
496
  }
486
497
  }
487
- function M(e) {
498
+ function N(e) {
488
499
  e.disabled || (c("update:modelValue", e.value), c("change", e.value), D());
489
500
  }
490
- function te(e) {
501
+ function P(e) {
491
502
  u.value && !u.value.contains(e.target) && D();
492
503
  }
493
- return g(() => document.addEventListener("click", te)), h(() => document.removeEventListener("click", te)), (n, r) => (_(), o("div", {
504
+ return g(() => document.addEventListener("click", P)), h(() => document.removeEventListener("click", P)), (n, r) => (_(), o("div", {
494
505
  ref_key: "triggerEl",
495
506
  ref: u,
496
- class: p(C.value)
507
+ class: p(w.value)
497
508
  }, [s("div", {
498
509
  class: "kb-select__trigger",
499
510
  role: "combobox",
@@ -503,11 +514,11 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
503
514
  "aria-controls": d,
504
515
  "aria-activedescendant": S.value,
505
516
  onClick: O,
506
- onKeydown: j
507
- }, [s("span", { class: p(["kb-select__value", { "kb-select__placeholder": !v.value }]) }, w(v.value || t.placeholder), 3), r[0] ||= s("span", {
517
+ onKeydown: M
518
+ }, [s("span", { class: p(["kb-select__value", { "kb-select__placeholder": !v.value }]) }, C(v.value || t.placeholder), 3), r[0] ||= s("span", {
508
519
  class: "kb-select__arrow",
509
520
  "aria-hidden": "true"
510
- }, "▾", -1)], 40, pe), l.value ? (_(), o("div", {
521
+ }, "▾", -1)], 40, ie), l.value ? (_(), o("div", {
511
522
  key: 0,
512
523
  id: d,
513
524
  class: "kb-select__panel",
@@ -523,10 +534,10 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
523
534
  role: "option",
524
535
  "aria-selected": e.value === t.modelValue,
525
536
  "aria-disabled": e.disabled || void 0,
526
- onClick: (t) => M(e)
527
- }, w(e.label), 11, me))), 128))])) : a("", !0)], 2));
537
+ onClick: (t) => N(e)
538
+ }, C(e.label), 11, ae))), 128))])) : a("", !0)], 2));
528
539
  }
529
- }), V = /* @__PURE__ */ u({
540
+ }), se = /* @__PURE__ */ u({
530
541
  name: "KbTooltip",
531
542
  __name: "Tooltip",
532
543
  props: {
@@ -558,15 +569,15 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
558
569
  key: 0,
559
570
  class: p(i.value),
560
571
  role: "tooltip"
561
- }, w(e.content), 3)) : a("", !0)], 32));
572
+ }, C(e.content), 3)) : a("", !0)], 32));
562
573
  }
563
- }), he = ["aria-label"], ge = {
574
+ }), ce = ["aria-label"], le = {
564
575
  key: 0,
565
576
  class: "kb-dialog__header"
566
- }, _e = { class: "kb-dialog__body" }, ve = {
577
+ }, ue = { class: "kb-dialog__body" }, de = {
567
578
  key: 1,
568
579
  class: "kb-dialog__footer"
569
- }, H = /* @__PURE__ */ u({
580
+ }, fe = /* @__PURE__ */ u({
570
581
  name: "KbDialog",
571
582
  __name: "Dialog",
572
583
  props: {
@@ -594,7 +605,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
594
605
  function y() {
595
606
  c.closeOnClickOverlay && v();
596
607
  }
597
- O(() => c.modelValue, (e) => {
608
+ D(() => c.modelValue, (e) => {
598
609
  e ? (d.value = document.activeElement, f(() => u.value?.focus())) : d.value?.isConnected && d.value.focus();
599
610
  });
600
611
  function x(e) {
@@ -603,7 +614,7 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
603
614
  return g(() => document.addEventListener("keydown", x)), h(() => document.removeEventListener("keydown", x)), (n, r) => (_(), i(t, { to: "body" }, [e.modelValue ? (_(), o("div", {
604
615
  key: 0,
605
616
  class: "kb-dialog-overlay",
606
- onClick: A(y, ["self"])
617
+ onClick: j(y, ["self"])
607
618
  }, [s("div", {
608
619
  ref_key: "dialogRef",
609
620
  ref: u,
@@ -614,12 +625,12 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
614
625
  "aria-label": e.title || "对话框",
615
626
  tabindex: "-1"
616
627
  }, [
617
- e.title ? (_(), o("header", ge, w(e.title), 1)) : a("", !0),
618
- s("div", _e, [S(n.$slots, "default")]),
619
- n.$slots.footer ? (_(), o("footer", ve, [S(n.$slots, "footer")])) : a("", !0)
620
- ], 12, he)])) : a("", !0)]));
628
+ e.title ? (_(), o("header", le, C(e.title), 1)) : a("", !0),
629
+ s("div", ue, [S(n.$slots, "default")]),
630
+ n.$slots.footer ? (_(), o("footer", de, [S(n.$slots, "footer")])) : a("", !0)
631
+ ], 12, ce)])) : a("", !0)]));
621
632
  }
622
- }), ye = { class: "kb-message__content" }, be = /* @__PURE__ */ u({
633
+ }), pe = { class: "kb-message__content" }, me = /* @__PURE__ */ u({
623
634
  name: "KbMessage",
624
635
  __name: "Message",
625
636
  props: {
@@ -636,43 +647,104 @@ var ee = ["type", "disabled"], j = /* @__PURE__ */ u({
636
647
  return (t, n) => (_(), o("div", {
637
648
  class: p(["kb-message", `kb-message--${e.type}`]),
638
649
  role: "status"
639
- }, [l(T(N), {
650
+ }, [l(w(I), {
640
651
  name: i.value,
641
652
  size: 16
642
- }, null, 8, ["name"]), s("span", ye, w(e.content), 1)], 2));
653
+ }, null, 8, ["name"]), s("span", pe, C(e.content), 1)], 2));
643
654
  }
644
- }), U = null;
645
- function xe(e) {
646
- (!U || !U.isConnected) && (U = document.createElement("div"), document.body.appendChild(U));
655
+ }), X = null;
656
+ function he(e) {
657
+ (!X || !X.isConnected) && (X = document.createElement("div"), document.body.appendChild(X));
647
658
  let t = document.createElement("div");
648
- U.appendChild(t);
649
- let n = r(be, {
659
+ X.appendChild(t);
660
+ let n = r(me, {
650
661
  type: e.type ?? "info",
651
662
  content: e.content
652
663
  });
653
664
  n.mount(t);
654
665
  let i = !1, a = () => {
655
- i || (i = !0, n.unmount(), t.remove(), U && U.childElementCount === 0 && (U.remove(), U = null));
666
+ i || (i = !0, n.unmount(), t.remove(), X && X.childElementCount === 0 && (X.remove(), X = null));
656
667
  }, o = e.duration ?? 3e3;
657
668
  return o > 0 && setTimeout(a, o), a;
658
669
  }
659
- function W(e) {
660
- return (t, n) => xe({
670
+ function Z(e) {
671
+ return (t, n) => he({
661
672
  type: e,
662
673
  content: t,
663
674
  duration: n
664
675
  });
665
676
  }
666
- var Se = {
667
- success: W("success"),
668
- error: W("error"),
669
- info: W("info"),
670
- warning: W("warning"),
671
- show: (e, t) => xe({
677
+ var ge = {
678
+ success: Z("success"),
679
+ error: Z("error"),
680
+ info: Z("info"),
681
+ warning: Z("warning"),
682
+ show: (e, t) => he({
672
683
  content: e,
673
684
  ...t
674
685
  })
675
- }, G = /* @__PURE__ */ u({
686
+ }, _e = {
687
+ class: "kb-pagination",
688
+ "aria-label": "Pagination"
689
+ }, ve = { class: "kb-pagination__total" }, ye = ["disabled"], be = ["onClick"], xe = {
690
+ key: 1,
691
+ class: "kb-pagination__more"
692
+ }, Se = ["disabled"], Q = /* @__PURE__ */ u({
693
+ name: "KbPagination",
694
+ __name: "Pagination",
695
+ props: {
696
+ total: {},
697
+ pageSize: { default: 10 },
698
+ currentPage: { default: 1 },
699
+ pagerCount: { default: 7 }
700
+ },
701
+ emits: ["update:currentPage"],
702
+ setup(t, { emit: r }) {
703
+ let i = t, a = r, c = n(() => Math.max(1, Math.ceil(i.total / i.pageSize))), l = n(() => Math.min(i.currentPage, c.value)), u = n(() => {
704
+ let e = c.value;
705
+ if (e <= i.pagerCount) return Array.from({ length: e }, (e, t) => t + 1);
706
+ let t = Math.floor(i.pagerCount / 2), n = Math.max(1, l.value - t), r = Math.min(e, n + i.pagerCount - 1);
707
+ n = Math.max(1, r - i.pagerCount + 1);
708
+ let a = [];
709
+ n > 1 && (a.push(1), n > 2 && a.push("prev-more"));
710
+ for (let e = n; e <= r; e++) a.push(e);
711
+ return r < e && (r < e - 1 && a.push("next-more"), a.push(e)), a;
712
+ });
713
+ function d(e) {
714
+ let t = Math.min(c.value, Math.max(1, e));
715
+ t !== l.value && a("update:currentPage", t);
716
+ }
717
+ function f(e) {
718
+ d(e === "prev" ? l.value - 1 : l.value + 1);
719
+ }
720
+ return (n, r) => (_(), o("nav", _e, [
721
+ s("span", ve, "共 " + C(t.total) + " 条", 1),
722
+ s("button", {
723
+ class: "kb-pagination__prev",
724
+ type: "button",
725
+ disabled: l.value <= 1,
726
+ "aria-label": "上一页",
727
+ onClick: r[0] ||= (e) => f("prev")
728
+ }, " ‹ ", 8, ye),
729
+ (_(!0), o(e, null, x(u.value, (t, n) => (_(), o(e, { key: n }, [typeof t == "number" ? (_(), o("button", {
730
+ key: 0,
731
+ class: p(["kb-pagination__item", { "kb-pagination__item--active": t === l.value }]),
732
+ type: "button",
733
+ onClick: (e) => d(t)
734
+ }, C(t), 11, be)) : (_(), o("span", xe, "…"))], 64))), 128)),
735
+ s("button", {
736
+ class: "kb-pagination__next",
737
+ type: "button",
738
+ disabled: l.value >= c.value,
739
+ "aria-label": "下一页",
740
+ onClick: r[1] ||= (e) => f("next")
741
+ }, " › ", 8, Se)
742
+ ]));
743
+ }
744
+ }), Ce = ["onClick"], we = { key: 0 }, Te = ["colspan"], Ee = {
745
+ key: 0,
746
+ class: "kb-table__pagination"
747
+ }, De = 44, Oe = /* @__PURE__ */ u({
676
748
  name: "KbTable",
677
749
  __name: "Table",
678
750
  props: {
@@ -686,30 +758,160 @@ var Se = {
686
758
  type: Boolean,
687
759
  default: !1
688
760
  },
689
- rowKey: { default: void 0 }
761
+ size: { default: "default" },
762
+ rowKey: { default: void 0 },
763
+ pageSize: { default: 0 },
764
+ currentPage: { default: 1 },
765
+ total: { default: void 0 },
766
+ selection: {
767
+ type: Boolean,
768
+ default: !1
769
+ },
770
+ selectedKeys: { default: () => [] },
771
+ emptyText: { default: "暂无数据" }
690
772
  },
691
- setup(t) {
692
- let r = t;
693
- function i(e, t) {
694
- return r.rowKey ? String(e[r.rowKey]) : String(t);
695
- }
696
- let a = n(() => ["kb-table", {
697
- "kb-table--stripe": r.stripe,
698
- "kb-table--border": r.border
699
- }]);
700
- function l(e) {
701
- if (e.width) return { width: typeof e.width == "number" ? `${e.width}px` : e.width };
773
+ emits: [
774
+ "update:currentPage",
775
+ "sort-change",
776
+ "update:selectedKeys",
777
+ "selection-change"
778
+ ],
779
+ setup(t, { emit: r }) {
780
+ let i = t, u = r, d = b(""), f = b(null), h = n(() => i.columns.find((e) => e.prop === d.value));
781
+ function g(e) {
782
+ e.sortable && (d.value === e.prop ? (f.value = f.value === "asc" ? "desc" : f.value === "desc" ? null : "asc", f.value === null && (d.value = "")) : (d.value = e.prop, f.value = "asc"), u("sort-change", d.value, f.value));
702
783
  }
703
- return (n, r) => (_(), o("table", { class: p(a.value) }, [s("thead", null, [s("tr", null, [(_(!0), o(e, null, x(t.columns, (e) => (_(), o("th", {
784
+ function v(e) {
785
+ return !e.sortable || d.value !== e.prop ? "" : f.value === "asc" ? " ↑" : " ↓";
786
+ }
787
+ let y = n(() => {
788
+ let e = [...i.data];
789
+ if (!d.value || !f.value || h.value?.sortable === "custom") return e;
790
+ let t = d.value, n = f.value;
791
+ return e.sort((e, r) => {
792
+ let i = e[t] ?? "", a = r[t] ?? "", o = String(i).localeCompare(String(a), void 0, { numeric: !0 });
793
+ return n === "asc" ? o : -o;
794
+ }), e;
795
+ });
796
+ function T(e, t) {
797
+ if (!i.rowKey) return t;
798
+ let n = e[i.rowKey];
799
+ return typeof n == "string" || typeof n == "number" ? n : t;
800
+ }
801
+ let E = n(() => y.value.map((e, t) => ({
802
+ row: e,
803
+ index: t,
804
+ key: T(e, t)
805
+ }))), D = n(() => i.total !== void 0), O = n(() => i.total ?? E.value.length), k = n(() => i.pageSize > 0 ? Math.max(1, Math.ceil(O.value / i.pageSize)) : 1), A = n(() => Math.min(Math.max(1, i.currentPage), k.value)), j = n(() => {
806
+ if (D.value || i.pageSize <= 0) return E.value;
807
+ let e = (A.value - 1) * i.pageSize;
808
+ return E.value.slice(e, e + i.pageSize);
809
+ }), M = n(() => i.columns.length + +!!i.selection), N = n(() => new Set((i.selectedKeys ?? []).map((e) => String(e))));
810
+ function P(e) {
811
+ return N.value.has(String(e));
812
+ }
813
+ let F = n(() => j.value.filter((e) => P(e.key))), I = n(() => j.value.length > 0 && F.value.length === j.value.length), L = n(() => F.value.length > 0 && !I.value);
814
+ function R(e) {
815
+ u("update:selectedKeys", e), u("selection-change", e);
816
+ }
817
+ function z(e) {
818
+ let t = (i.selectedKeys ?? []).filter((t) => String(t) !== String(e));
819
+ P(e) || t.push(e), R(t);
820
+ }
821
+ function B() {
822
+ let e = j.value.map((e) => e.key);
823
+ if (I.value) {
824
+ R((i.selectedKeys ?? []).filter((t) => !e.some((e) => String(e) === String(t))));
825
+ return;
826
+ }
827
+ let t = [...i.selectedKeys ?? []];
828
+ e.forEach((e) => {
829
+ t.some((t) => String(t) === String(e)) || t.push(e);
830
+ }), R(t);
831
+ }
832
+ function V(e) {
833
+ return typeof e.width == "number" ? e.width : typeof e.width == "string" && e.width.endsWith("px") ? Number.parseFloat(e.width) : 0;
834
+ }
835
+ let H = n(() => i.columns.some((e) => e.fixed)), U = n(() => {
836
+ let e = /* @__PURE__ */ new Map(), t = i.selection ? De : 0;
837
+ for (let n of i.columns) n.fixed === "left" && (e.set(n.prop, t), t += V(n));
838
+ return e;
839
+ }), W = n(() => {
840
+ let e = /* @__PURE__ */ new Map(), t = 0;
841
+ for (let n = i.columns.length - 1; n >= 0; --n) {
842
+ let r = i.columns[n];
843
+ r.fixed === "right" && (e.set(r.prop, t), t += V(r));
844
+ }
845
+ return e;
846
+ }), G = n(() => [...i.columns].reverse().find((e) => e.fixed === "left")?.prop), ee = n(() => i.columns.find((e) => e.fixed === "right")?.prop);
847
+ function K(e) {
848
+ let t = {};
849
+ return e.width && (t.width = typeof e.width == "number" ? `${e.width}px` : e.width), e.align && (t.textAlign = e.align), e.fixed === "left" && (t.left = `${U.value.get(e.prop) ?? 0}px`), e.fixed === "right" && (t.right = `${W.value.get(e.prop) ?? 0}px`), t;
850
+ }
851
+ function J(e) {
852
+ return [
853
+ e.fixed === "left" && "kb-table__cell--fixed-left",
854
+ e.fixed === "right" && "kb-table__cell--fixed-right",
855
+ e.fixed === "left" && e.prop === G.value && "kb-table__cell--fixed-left-last",
856
+ e.fixed === "right" && e.prop === ee.value && "kb-table__cell--fixed-right-first"
857
+ ];
858
+ }
859
+ let te = n(() => ["kb-table", {
860
+ "kb-table--stripe": i.stripe,
861
+ "kb-table--border": i.border,
862
+ "kb-table--small": i.size === "small",
863
+ "kb-table--large": i.size === "large",
864
+ "kb-table--fixed-cols": H.value
865
+ }]), Y = {
866
+ width: `${De}px`,
867
+ left: "0px"
868
+ };
869
+ return (n, r) => (_(), o("div", { class: p(["kb-table__wrapper", { "kb-table__wrapper--scroll": H.value }]) }, [s("table", { class: p(te.value) }, [s("thead", null, [s("tr", null, [t.selection ? (_(), o("th", {
870
+ key: 0,
871
+ class: "kb-table__cell--selection kb-table__cell--fixed-left kb-table__cell--fixed-left-last",
872
+ style: Y
873
+ }, [l(w(q), {
874
+ "model-value": I.value,
875
+ indeterminate: L.value,
876
+ "onUpdate:modelValue": B
877
+ }, null, 8, ["model-value", "indeterminate"])])) : a("", !0), (_(!0), o(e, null, x(t.columns, (e) => (_(), o("th", {
878
+ key: e.prop,
879
+ style: m(K(e)),
880
+ class: p([{ "kb-table__th--sortable": !!e.sortable }, J(e)]),
881
+ onClick: (t) => g(e)
882
+ }, C(e.label) + C(v(e)), 15, Ce))), 128))])]), s("tbody", null, [(_(!0), o(e, null, x(j.value, (r) => (_(), o("tr", {
883
+ key: r.key,
884
+ class: p({ "kb-table__row--selected": t.selection && P(r.key) })
885
+ }, [t.selection ? (_(), o("td", {
886
+ key: 0,
887
+ class: "kb-table__cell--selection kb-table__cell--fixed-left",
888
+ style: Y
889
+ }, [l(w(q), {
890
+ "model-value": P(r.key),
891
+ "onUpdate:modelValue": (e) => z(r.key)
892
+ }, null, 8, ["model-value", "onUpdate:modelValue"])])) : a("", !0), (_(!0), o(e, null, x(t.columns, (e) => (_(), o("td", {
704
893
  key: e.prop,
705
- style: m(l(e))
706
- }, w(e.label), 5))), 128))])]), s("tbody", null, [(_(!0), o(e, null, x(t.data, (r, a) => (_(), o("tr", { key: i(r, a) }, [(_(!0), o(e, null, x(t.columns, (e) => (_(), o("td", { key: e.prop }, [S(n.$slots, "cell", {
707
- row: r,
894
+ style: m(K(e)),
895
+ class: p(J(e))
896
+ }, [S(n.$slots, "cell", {
897
+ row: r.row,
708
898
  column: e,
709
- index: a
710
- }, () => [c(w(r[e.prop]), 1)])]))), 128))]))), 128))])], 2));
899
+ index: r.index
900
+ }, () => [c(C(r.row[e.prop]), 1)])], 6))), 128))], 2))), 128)), j.value.length === 0 ? (_(), o("tr", we, [s("td", {
901
+ class: "kb-table__empty",
902
+ colspan: M.value
903
+ }, C(t.emptyText), 9, Te)])) : a("", !0)])], 2), t.pageSize > 0 && k.value > 1 ? (_(), o("div", Ee, [l(w(Q), {
904
+ total: O.value,
905
+ "page-size": t.pageSize,
906
+ "current-page": A.value,
907
+ "onUpdate:currentPage": r[0] ||= (e) => u("update:currentPage", e)
908
+ }, null, 8, [
909
+ "total",
910
+ "page-size",
911
+ "current-page"
912
+ ])])) : a("", !0)], 2));
711
913
  }
712
- }), K = /* @__PURE__ */ u({
914
+ }), ke = /* @__PURE__ */ u({
713
915
  name: "KbBadge",
714
916
  __name: "Badge",
715
917
  props: {
@@ -722,7 +924,7 @@ var Se = {
722
924
  color: { default: void 0 }
723
925
  },
724
926
  setup(e) {
725
- let t = e, r = D(), i = n(() => !!r.default), a = n(() => {
927
+ let t = e, r = E(), i = n(() => !!r.default), a = n(() => {
726
928
  if (t.dot) return "";
727
929
  let e = Number(t.content);
728
930
  return !Number.isNaN(e) && e > t.max ? `${t.max}+` : String(t.content);
@@ -730,12 +932,12 @@ var Se = {
730
932
  return (t, n) => (_(), o("span", { class: p(c.value) }, [S(t.$slots, "default"), s("span", {
731
933
  class: p(["kb-badge__content", { "kb-badge__content--dot": e.dot }]),
732
934
  style: m(l.value)
733
- }, w(a.value), 7)], 2));
935
+ }, C(a.value), 7)], 2));
734
936
  }
735
- }), Ce = ["src", "alt"], we = {
937
+ }), Ae = ["src", "alt"], je = {
736
938
  key: 1,
737
939
  class: "kb-avatar__fallback"
738
- }, q = /* @__PURE__ */ u({
940
+ }, Me = /* @__PURE__ */ u({
739
941
  name: "KbAvatar",
740
942
  __name: "Avatar",
741
943
  props: {
@@ -777,17 +979,17 @@ var Se = {
777
979
  class: "kb-avatar__img",
778
980
  src: e.src,
779
981
  alt: e.alt
780
- }, null, 8, Ce)) : l.value ? (_(), o("span", we, w(e.fallback), 1)) : (_(), i(T(N), {
982
+ }, null, 8, Ae)) : l.value ? (_(), o("span", je, C(e.fallback), 1)) : (_(), i(w(I), {
781
983
  key: 2,
782
984
  class: "kb-avatar__icon",
783
985
  name: "menu",
784
986
  size: "50%"
785
987
  }))], 6));
786
988
  }
787
- }), Te = { class: "kb-progress" }, Ee = { class: "kb-progress__track" }, De = {
989
+ }), Ne = { class: "kb-progress" }, Pe = { class: "kb-progress__track" }, Fe = {
788
990
  key: 0,
789
991
  class: "kb-progress__text"
790
- }, J = /* @__PURE__ */ u({
992
+ }, Ie = /* @__PURE__ */ u({
791
993
  name: "KbProgress",
792
994
  __name: "Progress",
793
995
  props: {
@@ -806,18 +1008,18 @@ var Se = {
806
1008
  height: `${t.strokeWidth}px`,
807
1009
  ...t.color ? { background: t.color } : {}
808
1010
  }));
809
- return (t, n) => (_(), o("div", Te, [s("div", Ee, [s("div", {
1011
+ return (t, n) => (_(), o("div", Ne, [s("div", Pe, [s("div", {
810
1012
  class: p(i.value),
811
1013
  style: m(c.value)
812
- }, null, 6)]), e.showText ? (_(), o("span", De, w(r.value) + "%", 1)) : a("", !0)]));
1014
+ }, null, 6)]), e.showText ? (_(), o("span", Fe, C(r.value) + "%", 1)) : a("", !0)]));
813
1015
  }
814
- }), Oe = {
1016
+ }), Le = {
815
1017
  key: 0,
816
1018
  class: "kb-card__header"
817
- }, ke = { class: "kb-card__body" }, Ae = {
1019
+ }, Re = { class: "kb-card__body" }, ze = {
818
1020
  key: 1,
819
1021
  class: "kb-card__footer"
820
- }, Y = /* @__PURE__ */ u({
1022
+ }, Be = /* @__PURE__ */ u({
821
1023
  name: "KbCard",
822
1024
  __name: "Card",
823
1025
  props: {
@@ -827,18 +1029,18 @@ var Se = {
827
1029
  setup(e) {
828
1030
  let t = e, r = n(() => ["kb-card", `kb-card--shadow-${t.shadow}`]);
829
1031
  return (t, n) => (_(), o("div", { class: p(r.value) }, [
830
- e.title ? (_(), o("header", Oe, w(e.title), 1)) : a("", !0),
831
- s("div", ke, [S(t.$slots, "default")]),
832
- t.$slots.footer ? (_(), o("footer", Ae, [S(t.$slots, "footer")])) : a("", !0)
1032
+ e.title ? (_(), o("header", Le, C(e.title), 1)) : a("", !0),
1033
+ s("div", Re, [S(t.$slots, "default")]),
1034
+ t.$slots.footer ? (_(), o("footer", ze, [S(t.$slots, "footer")])) : a("", !0)
833
1035
  ], 2));
834
1036
  }
835
- }), je = { class: "kb-alert__main" }, Me = {
1037
+ }), Ve = { class: "kb-alert__main" }, He = {
836
1038
  key: 0,
837
1039
  class: "kb-alert__title"
838
- }, Ne = {
1040
+ }, Ue = {
839
1041
  key: 1,
840
1042
  class: "kb-alert__content"
841
- }, Pe = /* @__PURE__ */ u({
1043
+ }, We = /* @__PURE__ */ u({
842
1044
  name: "KbAlert",
843
1045
  __name: "Alert",
844
1046
  props: {
@@ -872,13 +1074,13 @@ var Se = {
872
1074
  class: p(l.value),
873
1075
  role: "alert"
874
1076
  }, [
875
- e.showIcon ? (_(), i(T(N), {
1077
+ e.showIcon ? (_(), i(w(I), {
876
1078
  key: 0,
877
1079
  name: c[e.type],
878
1080
  size: 18,
879
1081
  class: "kb-alert__icon"
880
1082
  }, null, 8, ["name"])) : a("", !0),
881
- s("div", je, [e.title ? (_(), o("div", Me, w(e.title), 1)) : a("", !0), t.$slots.default ? (_(), o("div", Ne, [S(t.$slots, "default")])) : a("", !0)]),
1083
+ s("div", Ve, [e.title ? (_(), o("div", He, C(e.title), 1)) : a("", !0), t.$slots.default ? (_(), o("div", Ue, [S(t.$slots, "default")])) : a("", !0)]),
882
1084
  e.closable ? (_(), o("button", {
883
1085
  key: 1,
884
1086
  class: "kb-alert__close",
@@ -888,7 +1090,7 @@ var Se = {
888
1090
  }, " × ")) : a("", !0)
889
1091
  ], 2)) : a("", !0);
890
1092
  }
891
- }), Fe = /* @__PURE__ */ u({
1093
+ }), Ge = /* @__PURE__ */ u({
892
1094
  name: "KbSkeleton",
893
1095
  __name: "Skeleton",
894
1096
  props: {
@@ -908,30 +1110,30 @@ var Se = {
908
1110
  class: "kb-skeleton__item"
909
1111
  }))), 128))], 2));
910
1112
  }
911
- }), Ie = { class: "kb-empty" }, Le = { class: "kb-empty__image" }, Re = { class: "kb-empty__description" }, ze = {
1113
+ }), Ke = { class: "kb-empty" }, qe = { class: "kb-empty__image" }, Je = { class: "kb-empty__description" }, Ye = {
912
1114
  key: 0,
913
1115
  class: "kb-empty__action"
914
- }, Be = /* @__PURE__ */ u({
1116
+ }, Xe = /* @__PURE__ */ u({
915
1117
  name: "KbEmpty",
916
1118
  __name: "Empty",
917
1119
  props: { description: { default: "暂无数据" } },
918
1120
  setup(e) {
919
- return (t, n) => (_(), o("div", Ie, [
920
- s("div", Le, [S(t.$slots, "image", {}, () => [l(T(N), {
1121
+ return (t, n) => (_(), o("div", Ke, [
1122
+ s("div", qe, [S(t.$slots, "image", {}, () => [l(w(I), {
921
1123
  name: "menu",
922
1124
  size: 48
923
1125
  })])]),
924
- s("p", Re, w(e.description), 1),
925
- t.$slots.action ? (_(), o("div", ze, [S(t.$slots, "action")])) : a("", !0)
1126
+ s("p", Je, C(e.description), 1),
1127
+ t.$slots.action ? (_(), o("div", Ye, [S(t.$slots, "action")])) : a("", !0)
926
1128
  ]));
927
1129
  }
928
- }), Ve = {
1130
+ }), Ze = {
929
1131
  class: "kb-breadcrumb",
930
1132
  "aria-label": "Breadcrumb"
931
- }, He = ["href"], Ue = { key: 1 }, We = {
1133
+ }, Qe = ["href"], $e = { key: 1 }, et = {
932
1134
  key: 0,
933
1135
  class: "kb-breadcrumb__separator"
934
- }, Ge = /* @__PURE__ */ u({
1136
+ }, tt = /* @__PURE__ */ u({
935
1137
  name: "KbBreadcrumb",
936
1138
  __name: "Breadcrumb",
937
1139
  props: {
@@ -940,15 +1142,15 @@ var Se = {
940
1142
  },
941
1143
  setup(t) {
942
1144
  let r = t, i = n(() => r.items);
943
- return (n, r) => (_(), o("nav", Ve, [(_(!0), o(e, null, x(i.value, (n, r) => (_(), o(e, { key: r }, [s("span", { class: p(["kb-breadcrumb__item", { "kb-breadcrumb__item--current": r === i.value.length - 1 }]) }, [n.href && r < i.value.length - 1 ? (_(), o("a", {
1145
+ return (n, r) => (_(), o("nav", Ze, [(_(!0), o(e, null, x(i.value, (n, r) => (_(), o(e, { key: r }, [s("span", { class: p(["kb-breadcrumb__item", { "kb-breadcrumb__item--current": r === i.value.length - 1 }]) }, [n.href && r < i.value.length - 1 ? (_(), o("a", {
944
1146
  key: 0,
945
1147
  href: n.href
946
- }, w(n.label), 9, He)) : (_(), o("span", Ue, w(n.label), 1))], 2), r < i.value.length - 1 ? (_(), o("span", We, w(t.separator), 1)) : a("", !0)], 64))), 128))]));
1148
+ }, C(n.label), 9, Qe)) : (_(), o("span", $e, C(n.label), 1))], 2), r < i.value.length - 1 ? (_(), o("span", et, C(t.separator), 1)) : a("", !0)], 64))), 128))]));
947
1149
  }
948
- }), Ke = { class: "kb-collapse" }, qe = ["onClick", "onKeydown"], Je = { class: "kb-collapse__title" }, Ye = {
1150
+ }), nt = { class: "kb-collapse" }, rt = ["onClick", "onKeydown"], it = { class: "kb-collapse__title" }, at = {
949
1151
  key: 0,
950
1152
  class: "kb-collapse__content"
951
- }, Xe = /* @__PURE__ */ u({
1153
+ }, ot = /* @__PURE__ */ u({
952
1154
  name: "KbCollapse",
953
1155
  __name: "Collapse",
954
1156
  props: {
@@ -962,7 +1164,7 @@ var Se = {
962
1164
  emits: ["update:modelValue"],
963
1165
  setup(t, { emit: r }) {
964
1166
  let i = t, l = r, u = b([]);
965
- O(() => i.modelValue, (e) => {
1167
+ D(() => i.modelValue, (e) => {
966
1168
  JSON.stringify(e) !== JSON.stringify(u.value) && (u.value = [...e]);
967
1169
  }, { immediate: !0 });
968
1170
  let d = n(() => u.value);
@@ -974,7 +1176,7 @@ var Se = {
974
1176
  let n = String(e), r;
975
1177
  r = i.accordion ? f(e) ? [] : [n] : f(e) ? d.value.filter((e) => e !== n) : [...d.value, n], l("update:modelValue", r), u.value = r;
976
1178
  }
977
- return (n, r) => (_(), o("div", Ke, [(_(!0), o(e, null, x(t.items, (e, t) => (_(), o("div", {
1179
+ return (n, r) => (_(), o("div", nt, [(_(!0), o(e, null, x(t.items, (e, t) => (_(), o("div", {
978
1180
  key: t,
979
1181
  class: "kb-collapse__panel"
980
1182
  }, [s("div", {
@@ -982,10 +1184,10 @@ var Se = {
982
1184
  role: "button",
983
1185
  tabindex: "0",
984
1186
  onClick: (n) => m(t, e),
985
- onKeydown: k((n) => m(t, e), ["enter"])
986
- }, [s("span", Je, w(e.title), 1), s("span", { class: p(["kb-collapse__arrow", { "kb-collapse__arrow--open": f(t) }]) }, "▾", 2)], 42, qe), f(t) ? (_(), o("div", Ye, [S(n.$slots, `item-${t}`, { item: e }, () => [c(w(e.content), 1)])])) : a("", !0)]))), 128))]));
1187
+ onKeydown: A((n) => m(t, e), ["enter"])
1188
+ }, [s("span", it, C(e.title), 1), s("span", { class: p(["kb-collapse__arrow", { "kb-collapse__arrow--open": f(t) }]) }, "▾", 2)], 42, rt), f(t) ? (_(), o("div", at, [S(n.$slots, `item-${t}`, { item: e }, () => [c(C(e.content), 1)])])) : a("", !0)]))), 128))]));
987
1189
  }
988
- }), Ze = { class: "kb-tabs" }, Qe = { class: "kb-tabs__nav" }, $e = ["aria-selected", "onClick"], et = { class: "kb-tabs__panel" }, tt = /* @__PURE__ */ u({
1190
+ }), st = { class: "kb-tabs" }, ct = { class: "kb-tabs__nav" }, lt = ["aria-selected", "onClick"], ut = { class: "kb-tabs__panel" }, dt = /* @__PURE__ */ u({
989
1191
  name: "KbTabs",
990
1192
  __name: "Tabs",
991
1193
  props: {
@@ -998,7 +1200,7 @@ var Se = {
998
1200
  function l(e) {
999
1201
  e.disabled || a("update:modelValue", e.name);
1000
1202
  }
1001
- return (n, r) => (_(), o("div", Ze, [s("div", Qe, [(_(!0), o(e, null, x(t.tabs, (e) => (_(), o("div", {
1203
+ return (n, r) => (_(), o("div", st, [s("div", ct, [(_(!0), o(e, null, x(t.tabs, (e) => (_(), o("div", {
1002
1204
  key: e.name,
1003
1205
  class: p(["kb-tabs__tab", {
1004
1206
  "kb-tabs__tab--active": e.name === c.value,
@@ -1007,71 +1209,13 @@ var Se = {
1007
1209
  role: "tab",
1008
1210
  "aria-selected": e.name === c.value,
1009
1211
  onClick: (t) => l(e)
1010
- }, w(e.label), 11, $e))), 128))]), s("div", et, [S(n.$slots, "default")])]));
1212
+ }, C(e.label), 11, lt))), 128))]), s("div", ut, [S(n.$slots, "default")])]));
1011
1213
  }
1012
- }), nt = {
1013
- class: "kb-pagination",
1014
- "aria-label": "Pagination"
1015
- }, rt = { class: "kb-pagination__total" }, it = ["disabled"], at = ["onClick"], ot = {
1016
- key: 1,
1017
- class: "kb-pagination__more"
1018
- }, st = ["disabled"], ct = /* @__PURE__ */ u({
1019
- name: "KbPagination",
1020
- __name: "Pagination",
1021
- props: {
1022
- total: {},
1023
- pageSize: { default: 10 },
1024
- currentPage: { default: 1 },
1025
- pagerCount: { default: 7 }
1026
- },
1027
- emits: ["update:currentPage"],
1028
- setup(t, { emit: r }) {
1029
- let i = t, a = r, c = n(() => Math.max(1, Math.ceil(i.total / i.pageSize))), l = n(() => Math.min(i.currentPage, c.value)), u = n(() => {
1030
- let e = c.value;
1031
- if (e <= i.pagerCount) return Array.from({ length: e }, (e, t) => t + 1);
1032
- let t = Math.floor(i.pagerCount / 2), n = Math.max(1, l.value - t), r = Math.min(e, n + i.pagerCount - 1);
1033
- n = Math.max(1, r - i.pagerCount + 1);
1034
- let a = [];
1035
- n > 1 && (a.push(1), n > 2 && a.push("prev-more"));
1036
- for (let e = n; e <= r; e++) a.push(e);
1037
- return r < e && (r < e - 1 && a.push("next-more"), a.push(e)), a;
1038
- });
1039
- function d(e) {
1040
- let t = Math.min(c.value, Math.max(1, e));
1041
- t !== l.value && a("update:currentPage", t);
1042
- }
1043
- function f(e) {
1044
- d(e === "prev" ? l.value - 1 : l.value + 1);
1045
- }
1046
- return (n, r) => (_(), o("nav", nt, [
1047
- s("span", rt, "共 " + w(t.total) + " 条", 1),
1048
- s("button", {
1049
- class: "kb-pagination__prev",
1050
- type: "button",
1051
- disabled: l.value <= 1,
1052
- "aria-label": "上一页",
1053
- onClick: r[0] ||= (e) => f("prev")
1054
- }, " ‹ ", 8, it),
1055
- (_(!0), o(e, null, x(u.value, (t, n) => (_(), o(e, { key: n }, [typeof t == "number" ? (_(), o("button", {
1056
- key: 0,
1057
- class: p(["kb-pagination__item", { "kb-pagination__item--active": t === l.value }]),
1058
- type: "button",
1059
- onClick: (e) => d(t)
1060
- }, w(t), 11, at)) : (_(), o("span", ot, "…"))], 64))), 128)),
1061
- s("button", {
1062
- class: "kb-pagination__next",
1063
- type: "button",
1064
- disabled: l.value >= c.value,
1065
- "aria-label": "下一页",
1066
- onClick: r[1] ||= (e) => f("next")
1067
- }, " › ", 8, st)
1068
- ]));
1069
- }
1070
- }), lt = ["aria-activedescendant"], ut = [
1214
+ }), ft = ["aria-activedescendant"], pt = [
1071
1215
  "id",
1072
1216
  "aria-disabled",
1073
1217
  "onClick"
1074
- ], dt = /* @__PURE__ */ u({
1218
+ ], mt = /* @__PURE__ */ u({
1075
1219
  name: "KbDropdown",
1076
1220
  __name: "Dropdown",
1077
1221
  props: {
@@ -1090,7 +1234,7 @@ var Se = {
1090
1234
  function y() {
1091
1235
  c.value ? v() : m();
1092
1236
  }
1093
- function C() {
1237
+ function w() {
1094
1238
  i.trigger === "hover" && m();
1095
1239
  }
1096
1240
  function T() {
@@ -1129,7 +1273,7 @@ var Se = {
1129
1273
  ref_key: "rootEl",
1130
1274
  ref: l,
1131
1275
  class: "kb-dropdown",
1132
- onMouseenter: C,
1276
+ onMouseenter: w,
1133
1277
  onMouseleave: T,
1134
1278
  onClick: y,
1135
1279
  onKeydown: O
@@ -1150,12 +1294,12 @@ var Se = {
1150
1294
  role: "menuitem",
1151
1295
  "aria-disabled": e.disabled || void 0,
1152
1296
  onClick: (t) => E(e)
1153
- }, w(e.label), 11, ut))), 128))], 8, lt)) : a("", !0)], 544));
1297
+ }, C(e.label), 11, pt))), 128))], 8, ft)) : a("", !0)], 544));
1154
1298
  }
1155
- }), ft = { class: "kb-drawer__header" }, pt = { class: "kb-drawer__body" }, mt = {
1299
+ }), ht = { class: "kb-drawer__header" }, gt = { class: "kb-drawer__body" }, _t = {
1156
1300
  key: 0,
1157
1301
  class: "kb-drawer__footer"
1158
- }, ht = /* @__PURE__ */ u({
1302
+ }, vt = /* @__PURE__ */ u({
1159
1303
  name: "KbDrawer",
1160
1304
  __name: "Drawer",
1161
1305
  props: {
@@ -1176,31 +1320,31 @@ var Se = {
1176
1320
  return (n, r) => (_(), i(t, { to: "body" }, [e.modelValue ? (_(), o("div", {
1177
1321
  key: 0,
1178
1322
  class: "kb-drawer-overlay",
1179
- onClick: A(d, ["self"])
1323
+ onClick: j(d, ["self"])
1180
1324
  }, [s("div", {
1181
1325
  class: p(["kb-drawer", `kb-drawer--${e.direction}`]),
1182
1326
  style: m(u.value),
1183
1327
  role: "dialog",
1184
1328
  "aria-modal": "true"
1185
1329
  }, [
1186
- s("header", ft, [s("span", null, w(e.title), 1), s("button", {
1330
+ s("header", ht, [s("span", null, C(e.title), 1), s("button", {
1187
1331
  class: "kb-drawer__close",
1188
1332
  type: "button",
1189
1333
  "aria-label": "close",
1190
1334
  onClick: d
1191
1335
  }, "×")]),
1192
- s("div", pt, [S(n.$slots, "default")]),
1193
- n.$slots.footer ? (_(), o("footer", mt, [S(n.$slots, "footer")])) : a("", !0)
1336
+ s("div", gt, [S(n.$slots, "default")]),
1337
+ n.$slots.footer ? (_(), o("footer", _t, [S(n.$slots, "footer")])) : a("", !0)
1194
1338
  ], 6)])) : a("", !0)]));
1195
1339
  }
1196
- }), gt = [
1340
+ }), yt = [
1197
1341
  "tabindex",
1198
1342
  "aria-expanded",
1199
1343
  "aria-describedby"
1200
- ], _t = ["role"], vt = {
1344
+ ], bt = ["role"], xt = {
1201
1345
  key: 0,
1202
1346
  class: "kb-popover__title"
1203
- }, yt = { class: "kb-popover__content" }, bt = /* @__PURE__ */ u({
1347
+ }, St = { class: "kb-popover__content" }, Ct = /* @__PURE__ */ u({
1204
1348
  name: "KbPopover",
1205
1349
  __name: "Popover",
1206
1350
  props: {
@@ -1233,12 +1377,12 @@ var Se = {
1233
1377
  class: p(["kb-popover__panel", `kb-popover__panel--${e.placement}`]),
1234
1378
  role: e.trigger === "click" ? "dialog" : "tooltip"
1235
1379
  }, [
1236
- e.title ? (_(), o("div", vt, w(e.title), 1)) : a("", !0),
1237
- s("div", yt, w(e.content), 1),
1380
+ e.title ? (_(), o("div", xt, C(e.title), 1)) : a("", !0),
1381
+ s("div", St, C(e.content), 1),
1238
1382
  S(t.$slots, "extra")
1239
- ], 10, _t)) : a("", !0)], 40, gt));
1383
+ ], 10, bt)) : a("", !0)], 40, yt));
1240
1384
  }
1241
- }), xt = { class: "kb-rate" }, St = ["aria-checked", "onClick"], Ct = /* @__PURE__ */ u({
1385
+ }), wt = { class: "kb-rate" }, Tt = ["aria-checked", "onClick"], Et = /* @__PURE__ */ u({
1242
1386
  name: "KbRate",
1243
1387
  __name: "Rate",
1244
1388
  props: {
@@ -1255,19 +1399,19 @@ var Se = {
1255
1399
  function c(e) {
1256
1400
  i.disabled || a("update:modelValue", e);
1257
1401
  }
1258
- return (n, r) => (_(), o("div", xt, [(_(!0), o(e, null, x(s.value, (e) => (_(), o("span", {
1402
+ return (n, r) => (_(), o("div", wt, [(_(!0), o(e, null, x(s.value, (e) => (_(), o("span", {
1259
1403
  key: e,
1260
1404
  class: p(["kb-rate__star", { "kb-rate__star--active": e <= t.modelValue }]),
1261
1405
  role: "radio",
1262
1406
  "aria-checked": e <= t.modelValue,
1263
1407
  onClick: (t) => c(e)
1264
- }, " ★ ", 10, St))), 128))]));
1408
+ }, " ★ ", 10, Tt))), 128))]));
1265
1409
  }
1266
- }), wt = [
1410
+ }), Dt = [
1267
1411
  "aria-valuemin",
1268
1412
  "aria-valuemax",
1269
1413
  "aria-valuenow"
1270
- ], Tt = { class: "kb-slider__track" }, Et = /* @__PURE__ */ u({
1414
+ ], Ot = { class: "kb-slider__track" }, kt = /* @__PURE__ */ u({
1271
1415
  name: "KbSlider",
1272
1416
  __name: "Slider",
1273
1417
  props: {
@@ -1295,21 +1439,21 @@ var Se = {
1295
1439
  "aria-valuemax": e.max,
1296
1440
  "aria-valuenow": a.value,
1297
1441
  onClick: l
1298
- }, [s("div", Tt, [s("div", {
1442
+ }, [s("div", Ot, [s("div", {
1299
1443
  class: "kb-slider__fill",
1300
1444
  style: m({ width: `${c.value}%` })
1301
1445
  }, null, 4), s("div", {
1302
1446
  class: "kb-slider__handle",
1303
1447
  style: m({ left: `${c.value}%` })
1304
- }, null, 4)])], 10, wt));
1448
+ }, null, 4)])], 10, Dt));
1305
1449
  }
1306
- }), Dt = { class: "kb-result" }, Ot = { class: "kb-result__title" }, kt = {
1450
+ }), At = { class: "kb-result" }, jt = { class: "kb-result__title" }, Mt = {
1307
1451
  key: 0,
1308
1452
  class: "kb-result__description"
1309
- }, At = {
1453
+ }, Nt = {
1310
1454
  key: 1,
1311
1455
  class: "kb-result__action"
1312
- }, jt = /* @__PURE__ */ u({
1456
+ }, Pt = /* @__PURE__ */ u({
1313
1457
  name: "KbResult",
1314
1458
  __name: "Result",
1315
1459
  props: {
@@ -1324,27 +1468,27 @@ var Se = {
1324
1468
  warning: "warning",
1325
1469
  info: "info"
1326
1470
  }, i = n(() => ["kb-result__icon", `kb-result__icon--${t.status}`]);
1327
- return (t, n) => (_(), o("div", Dt, [
1328
- l(T(N), {
1471
+ return (t, n) => (_(), o("div", At, [
1472
+ l(w(I), {
1329
1473
  name: r[e.status],
1330
1474
  size: 64,
1331
1475
  class: p(i.value)
1332
1476
  }, null, 8, ["name", "class"]),
1333
- s("h3", Ot, w(e.title), 1),
1334
- e.description ? (_(), o("p", kt, w(e.description), 1)) : a("", !0),
1335
- t.$slots.action ? (_(), o("div", At, [S(t.$slots, "action")])) : a("", !0)
1477
+ s("h3", jt, C(e.title), 1),
1478
+ e.description ? (_(), o("p", Mt, C(e.description), 1)) : a("", !0),
1479
+ t.$slots.action ? (_(), o("div", Nt, [S(t.$slots, "action")])) : a("", !0)
1336
1480
  ]));
1337
1481
  }
1338
- }), Mt = { class: "kb-statistic" }, Nt = { class: "kb-statistic__title" }, Pt = { class: "kb-statistic__value" }, Ft = {
1482
+ }), Ft = { class: "kb-statistic" }, It = { class: "kb-statistic__title" }, Lt = { class: "kb-statistic__value" }, Rt = {
1339
1483
  key: 0,
1340
1484
  class: "kb-statistic__prefix"
1341
- }, It = {
1485
+ }, zt = {
1342
1486
  key: 1,
1343
1487
  class: "kb-statistic__suffix"
1344
- }, Lt = {
1488
+ }, Bt = {
1345
1489
  key: 0,
1346
1490
  class: "kb-statistic__extra"
1347
- }, Rt = /* @__PURE__ */ u({
1491
+ }, Vt = /* @__PURE__ */ u({
1348
1492
  name: "KbStatistic",
1349
1493
  __name: "Statistic",
1350
1494
  props: {
@@ -1365,26 +1509,26 @@ var Se = {
1365
1509
  let [n, r] = e.split(".");
1366
1510
  return `${n.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}${r ? `.${r}` : ""}`;
1367
1511
  });
1368
- return (t, n) => (_(), o("div", Mt, [
1369
- s("div", Nt, w(e.title), 1),
1370
- s("div", Pt, [
1371
- e.prefix ? (_(), o("span", Ft, w(e.prefix), 1)) : a("", !0),
1372
- c(" " + w(r.value) + " ", 1),
1373
- e.suffix ? (_(), o("span", It, w(e.suffix), 1)) : a("", !0)
1512
+ return (t, n) => (_(), o("div", Ft, [
1513
+ s("div", It, C(e.title), 1),
1514
+ s("div", Lt, [
1515
+ e.prefix ? (_(), o("span", Rt, C(e.prefix), 1)) : a("", !0),
1516
+ c(" " + C(r.value) + " ", 1),
1517
+ e.suffix ? (_(), o("span", zt, C(e.suffix), 1)) : a("", !0)
1374
1518
  ]),
1375
- t.$slots.default ? (_(), o("div", Lt, [S(t.$slots, "default")])) : a("", !0)
1519
+ t.$slots.default ? (_(), o("div", Bt, [S(t.$slots, "default")])) : a("", !0)
1376
1520
  ]));
1377
1521
  }
1378
- }), zt = {
1522
+ }), Ht = {
1379
1523
  class: "kb-steps",
1380
1524
  role: "list"
1381
- }, Bt = ["aria-current"], Vt = { class: "kb-steps__head" }, Ht = { class: "kb-steps__circle" }, Ut = { key: 1 }, Wt = {
1525
+ }, Ut = ["aria-current"], Wt = { class: "kb-steps__head" }, Gt = { class: "kb-steps__circle" }, Kt = { key: 1 }, qt = {
1382
1526
  key: 0,
1383
1527
  class: "kb-steps__line"
1384
- }, Gt = { class: "kb-steps__body" }, Kt = { class: "kb-steps__title" }, qt = {
1528
+ }, Jt = { class: "kb-steps__body" }, Yt = { class: "kb-steps__title" }, Xt = {
1385
1529
  key: 0,
1386
1530
  class: "kb-steps__description"
1387
- }, Jt = /* @__PURE__ */ u({
1531
+ }, Zt = /* @__PURE__ */ u({
1388
1532
  name: "KbSteps",
1389
1533
  __name: "Steps",
1390
1534
  props: {
@@ -1393,41 +1537,41 @@ var Se = {
1393
1537
  },
1394
1538
  setup(t) {
1395
1539
  let r = t, c = n(() => (e) => e < r.active ? "done" : e === r.active ? "active" : "wait");
1396
- return (n, r) => (_(), o("div", zt, [(_(!0), o(e, null, x(t.steps, (e, n) => (_(), o("div", {
1540
+ return (n, r) => (_(), o("div", Ht, [(_(!0), o(e, null, x(t.steps, (e, n) => (_(), o("div", {
1397
1541
  key: n,
1398
1542
  class: p(["kb-steps__item", `kb-steps__item--${c.value(n)}`]),
1399
1543
  role: "listitem",
1400
1544
  "aria-current": n === t.active ? "step" : void 0
1401
- }, [s("div", Vt, [s("span", Ht, [c.value(n) === "done" ? (_(), i(T(N), {
1545
+ }, [s("div", Wt, [s("span", Gt, [c.value(n) === "done" ? (_(), i(w(I), {
1402
1546
  key: 0,
1403
1547
  name: "check",
1404
1548
  size: 12
1405
- })) : (_(), o("span", Ut, w(n + 1), 1))]), n < t.steps.length - 1 ? (_(), o("span", Wt)) : a("", !0)]), s("div", Gt, [s("div", Kt, w(e.title), 1), e.description ? (_(), o("div", qt, w(e.description), 1)) : a("", !0)])], 10, Bt))), 128))]));
1549
+ })) : (_(), o("span", Kt, C(n + 1), 1))]), n < t.steps.length - 1 ? (_(), o("span", qt)) : a("", !0)]), s("div", Jt, [s("div", Yt, C(e.title), 1), e.description ? (_(), o("div", Xt, C(e.description), 1)) : a("", !0)])], 10, Ut))), 128))]));
1406
1550
  }
1407
- }), Yt = {
1551
+ }), Qt = {
1408
1552
  class: "kb-timeline",
1409
1553
  role: "list"
1410
- }, Xt = { class: "kb-timeline__node" }, Zt = {
1554
+ }, $t = { class: "kb-timeline__node" }, en = {
1411
1555
  key: 0,
1412
1556
  class: "kb-timeline__tail"
1413
- }, Qt = { class: "kb-timeline__main" }, $t = { class: "kb-timeline__content" }, en = {
1557
+ }, tn = { class: "kb-timeline__main" }, nn = { class: "kb-timeline__content" }, rn = {
1414
1558
  key: 0,
1415
1559
  class: "kb-timeline__time"
1416
- }, tn = /* @__PURE__ */ u({
1560
+ }, an = /* @__PURE__ */ u({
1417
1561
  name: "KbTimeline",
1418
1562
  __name: "Timeline",
1419
1563
  props: { items: { default: () => [] } },
1420
1564
  setup(t) {
1421
- return (n, r) => (_(), o("div", Yt, [(_(!0), o(e, null, x(t.items, (e, n) => (_(), o("div", {
1565
+ return (n, r) => (_(), o("div", Qt, [(_(!0), o(e, null, x(t.items, (e, n) => (_(), o("div", {
1422
1566
  key: n,
1423
1567
  class: "kb-timeline__item",
1424
1568
  role: "listitem"
1425
- }, [s("div", Xt, [s("span", { class: p(["kb-timeline__dot", `kb-timeline__dot--${e.type ?? "default"}`]) }, null, 2), n < t.items.length - 1 ? (_(), o("span", Zt)) : a("", !0)]), s("div", Qt, [s("div", $t, w(e.content), 1), e.time ? (_(), o("div", en, w(e.time), 1)) : a("", !0)])]))), 128))]));
1569
+ }, [s("div", $t, [s("span", { class: p(["kb-timeline__dot", `kb-timeline__dot--${e.type ?? "default"}`]) }, null, 2), n < t.items.length - 1 ? (_(), o("span", en)) : a("", !0)]), s("div", tn, [s("div", nn, C(e.content), 1), e.time ? (_(), o("div", rn, C(e.time), 1)) : a("", !0)])]))), 128))]));
1426
1570
  }
1427
- }), nn = { class: "kb-notification__main" }, rn = { class: "kb-notification__title" }, an = {
1571
+ }), on = { class: "kb-notification__main" }, sn = { class: "kb-notification__title" }, cn = {
1428
1572
  key: 0,
1429
1573
  class: "kb-notification__message"
1430
- }, on = /* @__PURE__ */ u({
1574
+ }, ln = /* @__PURE__ */ u({
1431
1575
  name: "KbNotification",
1432
1576
  __name: "Notification",
1433
1577
  props: {
@@ -1445,40 +1589,40 @@ var Se = {
1445
1589
  return (t, n) => (_(), o("div", {
1446
1590
  class: p(["kb-notification", `kb-notification--${e.type}`]),
1447
1591
  role: "alert"
1448
- }, [l(T(N), {
1592
+ }, [l(w(I), {
1449
1593
  name: i.value,
1450
1594
  size: 20,
1451
1595
  class: "kb-notification__icon"
1452
- }, null, 8, ["name"]), s("div", nn, [s("div", rn, w(e.title), 1), e.message ? (_(), o("div", an, w(e.message), 1)) : a("", !0)])], 2));
1596
+ }, null, 8, ["name"]), s("div", on, [s("div", sn, C(e.title), 1), e.message ? (_(), o("div", cn, C(e.message), 1)) : a("", !0)])], 2));
1453
1597
  }
1454
- }), X = null;
1455
- function sn(e) {
1456
- (!X || !X.isConnected) && (X = document.createElement("div"), X.className = "kb-notification-container", document.body.appendChild(X));
1598
+ }), $ = null;
1599
+ function un(e) {
1600
+ (!$ || !$.isConnected) && ($ = document.createElement("div"), $.className = "kb-notification-container", document.body.appendChild($));
1457
1601
  let t = document.createElement("div");
1458
- X.appendChild(t);
1459
- let n = r(on, {
1602
+ $.appendChild(t);
1603
+ let n = r(ln, {
1460
1604
  type: e.type ?? "info",
1461
1605
  title: e.title,
1462
1606
  message: e.message ?? ""
1463
1607
  });
1464
1608
  n.mount(t);
1465
1609
  let i = !1, a = () => {
1466
- i || (i = !0, n.unmount(), t.remove(), X && X.childElementCount === 0 && (X.remove(), X = null));
1610
+ i || (i = !0, n.unmount(), t.remove(), $ && $.childElementCount === 0 && ($.remove(), $ = null));
1467
1611
  }, o = e.duration ?? 4500;
1468
1612
  return o > 0 && setTimeout(a, o), a;
1469
1613
  }
1470
- function Z(e) {
1471
- return (t) => sn({
1614
+ function dn(e) {
1615
+ return (t) => un({
1472
1616
  ...t,
1473
1617
  type: e
1474
1618
  });
1475
1619
  }
1476
- var cn = {
1477
- success: Z("success"),
1478
- error: Z("error"),
1479
- info: Z("info"),
1480
- warning: Z("warning")
1481
- }, ln = ["disabled"], un = ["value", "disabled"], dn = ["disabled"], fn = /* @__PURE__ */ u({
1620
+ var fn = {
1621
+ success: dn("success"),
1622
+ error: dn("error"),
1623
+ info: dn("info"),
1624
+ warning: dn("warning")
1625
+ }, pn = ["disabled"], mn = ["value", "disabled"], hn = ["disabled"], gn = /* @__PURE__ */ u({
1482
1626
  name: "KbInputNumber",
1483
1627
  __name: "InputNumber",
1484
1628
  props: {
@@ -1513,32 +1657,32 @@ var cn = {
1513
1657
  type: "button",
1514
1658
  disabled: e.disabled || e.min !== void 0 && e.modelValue <= e.min,
1515
1659
  onClick: n[0] ||= (e) => l(-1)
1516
- }, " − ", 8, ln),
1660
+ }, " − ", 8, pn),
1517
1661
  s("input", {
1518
1662
  class: "kb-input-number__input",
1519
1663
  value: a.value,
1520
1664
  type: "number",
1521
1665
  disabled: e.disabled,
1522
1666
  onInput: u
1523
- }, null, 40, un),
1667
+ }, null, 40, mn),
1524
1668
  s("button", {
1525
1669
  class: "kb-input-number__step kb-input-number__step--up",
1526
1670
  type: "button",
1527
1671
  disabled: e.disabled || e.max !== void 0 && e.modelValue >= e.max,
1528
1672
  onClick: n[1] ||= (e) => l(1)
1529
- }, " + ", 8, dn)
1673
+ }, " + ", 8, hn)
1530
1674
  ], 2));
1531
1675
  }
1532
- }), pn = [
1676
+ }), _n = [
1533
1677
  "value",
1534
1678
  "placeholder",
1535
1679
  "rows",
1536
1680
  "maxlength",
1537
1681
  "disabled"
1538
- ], mn = {
1682
+ ], vn = {
1539
1683
  key: 0,
1540
1684
  class: "kb-textarea__count"
1541
- }, hn = /* @__PURE__ */ u({
1685
+ }, yn = /* @__PURE__ */ u({
1542
1686
  name: "KbTextarea",
1543
1687
  __name: "Textarea",
1544
1688
  props: {
@@ -1565,9 +1709,9 @@ var cn = {
1565
1709
  maxlength: e.maxlength,
1566
1710
  disabled: e.disabled,
1567
1711
  onInput: u
1568
- }, null, 40, pn), l.value ? (_(), o("div", mn, w(c.value) + "/" + w(e.maxlength), 1)) : a("", !0)], 2));
1712
+ }, null, 40, _n), l.value ? (_(), o("div", vn, C(c.value) + "/" + C(e.maxlength), 1)) : a("", !0)], 2));
1569
1713
  }
1570
- }), gn = { class: "kb-search" }, _n = ["value", "placeholder"], vn = /* @__PURE__ */ u({
1714
+ }), bn = { class: "kb-search" }, xn = ["value", "placeholder"], Sn = /* @__PURE__ */ u({
1571
1715
  name: "KbSearch",
1572
1716
  __name: "Search",
1573
1717
  props: {
@@ -1584,8 +1728,8 @@ var cn = {
1584
1728
  function a() {
1585
1729
  r("search", n.modelValue);
1586
1730
  }
1587
- return (t, n) => (_(), o("div", gn, [
1588
- l(T(N), {
1731
+ return (t, n) => (_(), o("div", bn, [
1732
+ l(w(I), {
1589
1733
  name: "search",
1590
1734
  size: 16,
1591
1735
  class: "kb-search__icon"
@@ -1595,8 +1739,8 @@ var cn = {
1595
1739
  value: e.modelValue,
1596
1740
  placeholder: e.placeholder,
1597
1741
  onInput: i,
1598
- onKeyup: k(a, ["enter"])
1599
- }, null, 40, _n),
1742
+ onKeyup: A(a, ["enter"])
1743
+ }, null, 40, xn),
1600
1744
  s("button", {
1601
1745
  class: "kb-search__button",
1602
1746
  type: "button",
@@ -1604,7 +1748,7 @@ var cn = {
1604
1748
  }, "搜索")
1605
1749
  ]));
1606
1750
  }
1607
- }), yn = { class: "kb-segmented" }, bn = ["aria-selected", "onClick"], xn = /* @__PURE__ */ u({
1751
+ }), Cn = { class: "kb-segmented" }, wn = ["aria-selected", "onClick"], Tn = /* @__PURE__ */ u({
1608
1752
  name: "KbSegmented",
1609
1753
  __name: "Segmented",
1610
1754
  props: {
@@ -1617,7 +1761,7 @@ var cn = {
1617
1761
  function i(e) {
1618
1762
  e.disabled || r("update:modelValue", e.value);
1619
1763
  }
1620
- return (n, r) => (_(), o("div", yn, [(_(!0), o(e, null, x(t.options, (e) => (_(), o("div", {
1764
+ return (n, r) => (_(), o("div", Cn, [(_(!0), o(e, null, x(t.options, (e) => (_(), o("div", {
1621
1765
  key: e.value,
1622
1766
  class: p(["kb-segmented__item", {
1623
1767
  "kb-segmented__item--active": e.value === t.modelValue,
@@ -1626,9 +1770,9 @@ var cn = {
1626
1770
  role: "tab",
1627
1771
  "aria-selected": e.value === t.modelValue,
1628
1772
  onClick: (t) => i(e)
1629
- }, w(e.label), 11, bn))), 128))]));
1773
+ }, C(e.label), 11, wn))), 128))]));
1630
1774
  }
1631
- }), Sn = { class: "kb-watermark" }, Cn = { class: "kb-watermark__content" }, wn = /* @__PURE__ */ u({
1775
+ }), En = { class: "kb-watermark" }, Dn = { class: "kb-watermark__content" }, On = /* @__PURE__ */ u({
1632
1776
  name: "KbWatermark",
1633
1777
  __name: "Watermark",
1634
1778
  props: {
@@ -1644,13 +1788,13 @@ var cn = {
1644
1788
  "--kb-watermark-rotate": `${t.rotate}deg`,
1645
1789
  backgroundImage: `url("data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="200" height="140"><text x="100" y="70" fill="${t.color}" font-size="${t.fontSize}" text-anchor="middle" transform="rotate(${t.rotate} 100 70)">${t.text}</text></svg>`)}")`
1646
1790
  }));
1647
- return (e, t) => (_(), o("div", Sn, [s("div", {
1791
+ return (e, t) => (_(), o("div", En, [s("div", {
1648
1792
  class: "kb-watermark__layer",
1649
1793
  style: m(r.value),
1650
1794
  "aria-hidden": "true"
1651
- }, null, 4), s("div", Cn, [S(e.$slots, "default")])]));
1795
+ }, null, 4), s("div", Dn, [S(e.$slots, "default")])]));
1652
1796
  }
1653
- }), Tn = ["aria-expanded"], En = { class: "kb-popconfirm__title" }, Dn = { class: "kb-popconfirm__actions" }, On = /* @__PURE__ */ u({
1797
+ }), kn = ["aria-expanded"], An = { class: "kb-popconfirm__title" }, jn = { class: "kb-popconfirm__actions" }, Mn = /* @__PURE__ */ u({
1654
1798
  name: "KbPopconfirm",
1655
1799
  __name: "Popconfirm",
1656
1800
  props: {
@@ -1685,21 +1829,21 @@ var cn = {
1685
1829
  class: "kb-popconfirm__panel",
1686
1830
  role: "dialog",
1687
1831
  "aria-modal": "false",
1688
- onClick: n[0] ||= A(() => {}, ["stop"])
1689
- }, [s("div", En, w(e.title), 1), s("div", Dn, [s("button", {
1832
+ onClick: n[0] ||= j(() => {}, ["stop"])
1833
+ }, [s("div", An, C(e.title), 1), s("div", jn, [s("button", {
1690
1834
  class: "kb-popconfirm__cancel",
1691
1835
  type: "button",
1692
1836
  onClick: l
1693
- }, w(e.cancelText), 1), s("button", {
1837
+ }, C(e.cancelText), 1), s("button", {
1694
1838
  class: "kb-popconfirm__ok",
1695
1839
  type: "button",
1696
1840
  onClick: c
1697
- }, w(e.confirmText), 1)])])) : a("", !0)], 40, Tn));
1841
+ }, C(e.confirmText), 1)])])) : a("", !0)], 40, kn));
1698
1842
  }
1699
- }), kn = { class: "kb-carousel__content" }, An = { class: "kb-carousel__title" }, jn = {
1843
+ }), Nn = { class: "kb-carousel__content" }, Pn = { class: "kb-carousel__title" }, Fn = {
1700
1844
  key: 0,
1701
1845
  class: "kb-carousel__description"
1702
- }, Mn = { class: "kb-carousel__dots" }, Nn = ["aria-label", "onClick"], Pn = /* @__PURE__ */ u({
1846
+ }, In = { class: "kb-carousel__dots" }, Ln = ["aria-label", "onClick"], Rn = /* @__PURE__ */ u({
1703
1847
  name: "KbCarousel",
1704
1848
  __name: "Carousel",
1705
1849
  props: {
@@ -1725,7 +1869,7 @@ var cn = {
1725
1869
  (_(!0), o(e, null, x(t.items, (e, t) => (_(), o("div", {
1726
1870
  key: t,
1727
1871
  class: p(["kb-carousel__item", { "kb-carousel__item--active": t === i.value }])
1728
- }, [s("div", kn, [s("div", An, w(e.title), 1), e.description ? (_(), o("div", jn, w(e.description), 1)) : a("", !0)])], 2))), 128)),
1872
+ }, [s("div", Nn, [s("div", Pn, C(e.title), 1), e.description ? (_(), o("div", Fn, C(e.description), 1)) : a("", !0)])], 2))), 128)),
1729
1873
  s("button", {
1730
1874
  class: "kb-carousel__prev",
1731
1875
  type: "button",
@@ -1738,19 +1882,19 @@ var cn = {
1738
1882
  "aria-label": "下一张",
1739
1883
  onClick: u
1740
1884
  }, "›"),
1741
- s("div", Mn, [(_(!0), o(e, null, x(t.items, (e, t) => (_(), o("button", {
1885
+ s("div", In, [(_(!0), o(e, null, x(t.items, (e, t) => (_(), o("button", {
1742
1886
  key: t,
1743
1887
  class: p(["kb-carousel__dot", { "kb-carousel__dot--active": t === i.value }]),
1744
1888
  type: "button",
1745
1889
  "aria-label": `第 ${t + 1} 张`,
1746
1890
  onClick: (e) => l(t)
1747
- }, null, 10, Nn))), 128))])
1891
+ }, null, 10, Ln))), 128))])
1748
1892
  ], 4));
1749
1893
  }
1750
- }), Fn = {
1894
+ }), zn = {
1751
1895
  key: 0,
1752
1896
  class: "kb-descriptions__title"
1753
- }, In = { class: "kb-descriptions__label" }, Ln = { class: "kb-descriptions__value" }, Rn = /* @__PURE__ */ u({
1897
+ }, Bn = { class: "kb-descriptions__label" }, Vn = { class: "kb-descriptions__value" }, Hn = /* @__PURE__ */ u({
1754
1898
  name: "KbDescriptions",
1755
1899
  __name: "Descriptions",
1756
1900
  props: {
@@ -1764,18 +1908,22 @@ var cn = {
1764
1908
  },
1765
1909
  setup(t) {
1766
1910
  let r = t, i = n(() => ({ gridTemplateColumns: `repeat(${r.column}, 1fr)` })), c = n(() => ["kb-descriptions", { "kb-descriptions--border": r.border }]);
1767
- return (n, r) => (_(), o("div", { class: p(c.value) }, [t.title ? (_(), o("div", Fn, w(t.title), 1)) : a("", !0), s("div", {
1911
+ return (n, r) => (_(), o("div", { class: p(c.value) }, [t.title ? (_(), o("div", zn, C(t.title), 1)) : a("", !0), s("div", {
1768
1912
  class: "kb-descriptions__grid",
1769
1913
  style: m(i.value)
1770
1914
  }, [(_(!0), o(e, null, x(t.items, (e, t) => (_(), o("div", {
1771
1915
  key: t,
1772
1916
  class: "kb-descriptions__item"
1773
- }, [s("div", In, w(e.label), 1), s("div", Ln, w(e.value), 1)]))), 128))], 4)], 2));
1917
+ }, [s("div", Bn, C(e.label), 1), s("div", Vn, C(e.value), 1)]))), 128))], 4)], 2));
1774
1918
  }
1775
- }), zn = { class: "kb-calendar" }, Bn = { class: "kb-calendar__header" }, Vn = { class: "kb-calendar__title" }, Hn = { class: "kb-calendar__week" }, Un = { class: "kb-calendar__grid" }, Wn = ["onClick"], Q = /* @__PURE__ */ u({
1919
+ }), Un = { class: "kb-calendar" }, Wn = { class: "kb-calendar__header" }, Gn = { class: "kb-calendar__title" }, Kn = { class: "kb-calendar__week" }, qn = { class: "kb-calendar__grid" }, Jn = ["onClick"], Yn = /* @__PURE__ */ u({
1776
1920
  name: "KbCalendar",
1777
1921
  __name: "Calendar",
1778
- props: { modelValue: { default: "" } },
1922
+ props: {
1923
+ modelValue: { default: "" },
1924
+ range: { default: null },
1925
+ marked: { default: () => [] }
1926
+ },
1779
1927
  emits: ["update:modelValue"],
1780
1928
  setup(t, { emit: r }) {
1781
1929
  let i = t, a = r, c = [
@@ -1786,23 +1934,27 @@ var cn = {
1786
1934
  "五",
1787
1935
  "六",
1788
1936
  "日"
1789
- ], l = n(() => i.modelValue ? new Date(i.modelValue) : /* @__PURE__ */ new Date()), u = b(l.value.getFullYear()), d = b(l.value.getMonth()), f = n(() => `${u.value} 年 ${d.value + 1} 月`), m = n(() => {
1790
- let e = (new Date(u.value, d.value, 1).getDay() + 6) % 7, t = new Date(u.value, d.value, 1 - e), n = [];
1937
+ ], l = n(() => i.modelValue ? new Date(i.modelValue) : /* @__PURE__ */ new Date()), u = b(l.value.getFullYear()), d = b(l.value.getMonth()), f = n(() => `${u.value} 年 ${d.value + 1} 月`);
1938
+ function m(e) {
1939
+ return `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
1940
+ }
1941
+ let h = n(() => {
1942
+ let e = (new Date(u.value, d.value, 1).getDay() + 6) % 7, t = new Date(u.value, d.value, 1 - e), n = i.range?.[0] ?? "", r = i.range?.[1] ?? "", a = [];
1791
1943
  for (let e = 0; e < 42; e++) {
1792
- let r = new Date(t.getFullYear(), t.getMonth(), t.getDate() + e);
1793
- n.push({
1794
- date: r,
1795
- inMonth: r.getMonth() === d.value,
1796
- isSelected: r.getFullYear() === l.value.getFullYear() && r.getMonth() === l.value.getMonth() && r.getDate() === l.value.getDate()
1944
+ let o = new Date(t.getFullYear(), t.getMonth(), t.getDate() + e), s = m(o);
1945
+ a.push({
1946
+ date: o,
1947
+ inMonth: o.getMonth() === d.value,
1948
+ isSelected: o.getFullYear() === l.value.getFullYear() && o.getMonth() === l.value.getMonth() && o.getDate() === l.value.getDate(),
1949
+ inRange: !!(n && r && s > n && s < r),
1950
+ isRangeEnd: !!(r && s === r),
1951
+ isMarked: i.marked.includes(s)
1797
1952
  });
1798
1953
  }
1799
- return n;
1954
+ return a;
1800
1955
  });
1801
- function h(e) {
1802
- return `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
1803
- }
1804
1956
  function g(e) {
1805
- a("update:modelValue", h(e.date));
1957
+ a("update:modelValue", m(e.date));
1806
1958
  }
1807
1959
  function v() {
1808
1960
  d.value === 0 ? (u.value--, d.value = 11) : d.value--;
@@ -1810,15 +1962,15 @@ var cn = {
1810
1962
  function y() {
1811
1963
  d.value === 11 ? (u.value++, d.value = 0) : d.value++;
1812
1964
  }
1813
- return (t, n) => (_(), o("div", zn, [
1814
- s("div", Bn, [
1965
+ return (t, n) => (_(), o("div", Un, [
1966
+ s("div", Wn, [
1815
1967
  s("button", {
1816
1968
  class: "kb-calendar__nav",
1817
1969
  type: "button",
1818
1970
  "aria-label": "上一月",
1819
1971
  onClick: v
1820
1972
  }, "‹"),
1821
- s("span", Vn, w(f.value), 1),
1973
+ s("span", Gn, C(f.value), 1),
1822
1974
  s("button", {
1823
1975
  class: "kb-calendar__nav",
1824
1976
  type: "button",
@@ -1826,28 +1978,30 @@ var cn = {
1826
1978
  onClick: y
1827
1979
  }, "›")
1828
1980
  ]),
1829
- s("div", Hn, [(_(), o(e, null, x(c, (e) => s("span", {
1981
+ s("div", Kn, [(_(), o(e, null, x(c, (e) => s("span", {
1830
1982
  key: e,
1831
1983
  class: "kb-calendar__week-label"
1832
- }, w(e), 1)), 64))]),
1833
- s("div", Un, [(_(!0), o(e, null, x(m.value, (e, t) => (_(), o("button", {
1984
+ }, C(e), 1)), 64))]),
1985
+ s("div", qn, [(_(!0), o(e, null, x(h.value, (e, t) => (_(), o("button", {
1834
1986
  key: t,
1835
1987
  class: p(["kb-calendar__day", {
1836
1988
  "kb-calendar__day--outside": !e.inMonth,
1837
- "kb-calendar__day--active": e.isSelected
1989
+ "kb-calendar__day--active": e.isSelected || e.isMarked,
1990
+ "kb-calendar__day--in-range": e.inRange,
1991
+ "kb-calendar__day--range-end": e.isRangeEnd
1838
1992
  }]),
1839
1993
  type: "button",
1840
1994
  onClick: (t) => g(e)
1841
- }, w(e.date.getDate()), 11, Wn))), 128))])
1995
+ }, C(e.date.getDate()), 11, Jn))), 128))])
1842
1996
  ]));
1843
1997
  }
1844
- }), Gn = {
1998
+ }), Xn = {
1845
1999
  class: "kb-loading",
1846
2000
  role: "status"
1847
- }, Kn = {
2001
+ }, Zn = {
1848
2002
  key: 0,
1849
2003
  class: "kb-loading__text"
1850
- }, qn = /* @__PURE__ */ u({
2004
+ }, Qn = /* @__PURE__ */ u({
1851
2005
  name: "KbLoading",
1852
2006
  __name: "Loading",
1853
2007
  props: {
@@ -1860,12 +2014,12 @@ var cn = {
1860
2014
  height: `${t.size}px`,
1861
2015
  borderWidth: `${Math.max(2, t.size / 8)}px`
1862
2016
  }));
1863
- return (t, n) => (_(), o("div", Gn, [s("span", {
2017
+ return (t, n) => (_(), o("div", Xn, [s("span", {
1864
2018
  class: "kb-loading__spinner",
1865
2019
  style: m(r.value)
1866
- }, null, 4), e.text ? (_(), o("span", Kn, w(e.text), 1)) : a("", !0)]));
2020
+ }, null, 4), e.text ? (_(), o("span", Zn, C(e.text), 1)) : a("", !0)]));
1867
2021
  }
1868
- }), Jn = /* @__PURE__ */ u({
2022
+ }), $n = /* @__PURE__ */ u({
1869
2023
  name: "KbForm",
1870
2024
  __name: "Form",
1871
2025
  props: {
@@ -1905,13 +2059,13 @@ var cn = {
1905
2059
  }), (e, t) => (_(), o("form", {
1906
2060
  class: p(l.value),
1907
2061
  role: "form",
1908
- onSubmit: t[0] ||= A(() => {}, ["prevent"])
2062
+ onSubmit: t[0] ||= j(() => {}, ["prevent"])
1909
2063
  }, [S(e.$slots, "default")], 34));
1910
2064
  }
1911
- }), Yn = ["id"], Xn = ["role", "aria-labelledby"], Zn = {
2065
+ }), er = ["id"], tr = ["role", "aria-labelledby"], nr = {
1912
2066
  key: 0,
1913
2067
  class: "kb-form-item__error"
1914
- }, Qn = /* @__PURE__ */ u({
2068
+ }, rr = /* @__PURE__ */ u({
1915
2069
  name: "KbFormItem",
1916
2070
  __name: "FormItem",
1917
2071
  props: {
@@ -1919,60 +2073,114 @@ var cn = {
1919
2073
  prop: { default: "" }
1920
2074
  },
1921
2075
  setup(e) {
1922
- let t = e, r = d("kbFormContext", null), i = E(), c = n(() => r && t.prop ? r.errors[t.prop] : null), l = n(() => ["kb-form-item", { "kb-form-item--error": c.value }]);
2076
+ let t = e, r = d("kbFormContext", null), i = T(), c = n(() => r && t.prop ? r.errors[t.prop] : null), l = n(() => ["kb-form-item", { "kb-form-item--error": c.value }]);
1923
2077
  return (t, n) => (_(), o("div", { class: p(l.value) }, [e.label ? (_(), o("label", {
1924
2078
  key: 0,
1925
- id: `label-${T(i)}`,
2079
+ id: `label-${w(i)}`,
1926
2080
  class: "kb-form-item__label"
1927
- }, w(e.label), 9, Yn)) : a("", !0), s("div", {
2081
+ }, C(e.label), 9, er)) : a("", !0), s("div", {
1928
2082
  role: e.label ? "group" : void 0,
1929
- "aria-labelledby": e.label ? `label-${T(i)}` : void 0,
2083
+ "aria-labelledby": e.label ? `label-${w(i)}` : void 0,
1930
2084
  class: "kb-form-item__content"
1931
- }, [S(t.$slots, "default"), c.value ? (_(), o("div", Zn, w(c.value), 1)) : a("", !0)], 8, Xn)], 2));
2085
+ }, [S(t.$slots, "default"), c.value ? (_(), o("div", nr, C(c.value), 1)) : a("", !0)], 8, tr)], 2));
1932
2086
  }
1933
- }), $n = { class: "kb-datepicker" }, er = ["value", "placeholder"], tr = {
1934
- key: 0,
2087
+ }), ir = { class: "kb-datepicker" }, ar = [
2088
+ "value",
2089
+ "placeholder",
2090
+ "disabled"
2091
+ ], or = {
2092
+ key: 1,
1935
2093
  class: "kb-datepicker__panel"
1936
- }, nr = /* @__PURE__ */ u({
2094
+ }, sr = /* @__PURE__ */ u({
1937
2095
  name: "KbDatePicker",
1938
2096
  __name: "DatePicker",
1939
2097
  props: {
1940
2098
  modelValue: { default: "" },
1941
- placeholder: { default: "选择日期" }
2099
+ mode: { default: "single" },
2100
+ placeholder: { default: "" },
2101
+ separator: { default: " 至 " },
2102
+ disabled: {
2103
+ type: Boolean,
2104
+ default: !1
2105
+ },
2106
+ clearable: {
2107
+ type: Boolean,
2108
+ default: !1
2109
+ }
1942
2110
  },
1943
2111
  emits: ["update:modelValue"],
1944
2112
  setup(e, { emit: t }) {
1945
- let n = t, r = b(!1);
1946
- function i() {
1947
- r.value = !r.value;
2113
+ let r = e, i = t, c = b(!1), u = b(""), d = n(() => r.mode === "range"), f = n(() => r.mode === "multiple"), m = n(() => Array.isArray(r.modelValue) ? [...r.modelValue] : r.modelValue ? [r.modelValue] : []), h = n(() => m.value[0] ?? ""), g = n(() => !d.value || m.value.length < 2 ? null : [m.value[0], m.value[1]]), v = n(() => {
2114
+ let e = m.value;
2115
+ return d.value ? e.length ? e.length === 1 ? `${e[0]}${r.separator}` : `${e[0]}${r.separator}${e[1]}` : "" : f.value ? e.length ? `已选 ${e.length} 个日期` : "" : e[0] ?? "";
2116
+ }), y = n(() => r.placeholder ? r.placeholder : d.value ? "选择日期范围" : f.value ? "选择日期(可多选)" : "选择日期"), x = n(() => m.value.length > 0);
2117
+ function S() {
2118
+ r.disabled || (c.value = !c.value, c.value && (u.value = d.value && m.value.length === 1 ? m.value[0] : ""));
1948
2119
  }
1949
- function c(e) {
1950
- n("update:modelValue", e), r.value = !1;
2120
+ function C() {
2121
+ i("update:modelValue", d.value || f.value ? [] : ""), u.value = "", c.value = !1;
1951
2122
  }
1952
- return (t, n) => (_(), o("div", $n, [s("input", {
1953
- class: "kb-datepicker__input",
1954
- value: e.modelValue,
1955
- placeholder: e.placeholder,
1956
- readonly: "",
1957
- onClick: i
1958
- }, null, 8, er), r.value ? (_(), o("div", tr, [l(T(Q), {
1959
- "model-value": e.modelValue,
1960
- "onUpdate:modelValue": c
1961
- }, null, 8, ["model-value"])])) : a("", !0)]));
2123
+ function T(e) {
2124
+ if (f.value) {
2125
+ let t = m.value.includes(e) ? m.value.filter((t) => t !== e) : [...m.value, e].sort();
2126
+ i("update:modelValue", t);
2127
+ return;
2128
+ }
2129
+ if (d.value) {
2130
+ if (!u.value) {
2131
+ u.value = e, i("update:modelValue", [e]);
2132
+ return;
2133
+ }
2134
+ let [t, n] = u.value <= e ? [u.value, e] : [e, u.value];
2135
+ u.value = "", i("update:modelValue", [t, n]), c.value = !1;
2136
+ return;
2137
+ }
2138
+ i("update:modelValue", e), c.value = !1;
2139
+ }
2140
+ return (t, n) => (_(), o("div", ir, [
2141
+ s("input", {
2142
+ class: p(["kb-datepicker__input", {
2143
+ "kb-datepicker__input--wide": e.mode === "range",
2144
+ "kb-datepicker__input--disabled": e.disabled
2145
+ }]),
2146
+ value: v.value,
2147
+ placeholder: y.value,
2148
+ disabled: e.disabled,
2149
+ readonly: "",
2150
+ onClick: S
2151
+ }, null, 10, ar),
2152
+ e.clearable && x.value ? (_(), o("button", {
2153
+ key: 0,
2154
+ class: "kb-datepicker__clear",
2155
+ type: "button",
2156
+ "aria-label": "清空",
2157
+ onClick: C
2158
+ }, " × ")) : a("", !0),
2159
+ c.value ? (_(), o("div", or, [l(w(Yn), {
2160
+ "model-value": h.value,
2161
+ range: g.value,
2162
+ marked: f.value ? m.value : [],
2163
+ "onUpdate:modelValue": T
2164
+ }, null, 8, [
2165
+ "model-value",
2166
+ "range",
2167
+ "marked"
2168
+ ])])) : a("", !0)
2169
+ ]));
1962
2170
  }
1963
- }), rr = { class: "kb-upload" }, ir = { class: "kb-upload__button" }, ar = ["accept", "multiple"], or = {
2171
+ }), cr = { class: "kb-upload" }, lr = { class: "kb-upload__button" }, ur = ["accept", "multiple"], dr = {
1964
2172
  key: 0,
1965
2173
  class: "kb-upload__list"
1966
- }, sr = { class: "kb-upload__name" }, cr = { class: "kb-upload__size" }, lr = {
2174
+ }, fr = { class: "kb-upload__name" }, pr = { class: "kb-upload__size" }, mr = {
1967
2175
  key: 0,
1968
2176
  class: "kb-upload__status"
1969
- }, ur = {
2177
+ }, hr = {
1970
2178
  key: 1,
1971
2179
  class: "kb-upload__status kb-upload__status--success"
1972
- }, dr = {
2180
+ }, gr = {
1973
2181
  key: 2,
1974
2182
  class: "kb-upload__status kb-upload__status--error"
1975
- }, fr = ["onClick"], pr = /* @__PURE__ */ u({
2183
+ }, _r = ["onClick"], vr = /* @__PURE__ */ u({
1976
2184
  name: "KbUpload",
1977
2185
  __name: "Upload",
1978
2186
  props: {
@@ -2051,68 +2259,222 @@ var cn = {
2051
2259
  let [t] = l.value.splice(e, 1);
2052
2260
  t && i("remove", d(t));
2053
2261
  }
2054
- return (n, r) => (_(), o("div", rr, [s("label", ir, [s("input", {
2262
+ return (n, r) => (_(), o("div", cr, [s("label", lr, [s("input", {
2055
2263
  type: "file",
2056
2264
  accept: t.accept,
2057
2265
  multiple: t.multiple,
2058
2266
  "aria-label": "选择文件",
2059
2267
  onChange: p
2060
- }, null, 40, ar), r[0] ||= c(" 选择文件 ", -1)]), l.value.length ? (_(), o("div", or, [(_(!0), o(e, null, x(l.value, (e, t) => (_(), o("div", {
2268
+ }, null, 40, ur), r[0] ||= c(" 选择文件 ", -1)]), l.value.length ? (_(), o("div", dr, [(_(!0), o(e, null, x(l.value, (e, t) => (_(), o("div", {
2061
2269
  key: `${e.name}-${t}`,
2062
2270
  class: "kb-upload__item"
2063
2271
  }, [
2064
2272
  r[1] ||= s("span", { class: "kb-upload__icon" }, "📄", -1),
2065
- s("span", sr, w(e.name), 1),
2066
- s("span", cr, w(u(e.size)), 1),
2067
- e.status === "uploading" ? (_(), o("span", lr, " 上传中 " + w(e.progress ?? 0) + "% ", 1)) : e.status === "success" ? (_(), o("span", ur, " 已上传 ")) : e.status === "error" ? (_(), o("span", dr, " 上传失败 ")) : a("", !0),
2273
+ s("span", fr, C(e.name), 1),
2274
+ s("span", pr, C(u(e.size)), 1),
2275
+ e.status === "uploading" ? (_(), o("span", mr, " 上传中 " + C(e.progress ?? 0) + "% ", 1)) : e.status === "success" ? (_(), o("span", hr, " 已上传 ")) : e.status === "error" ? (_(), o("span", gr, " 上传失败 ")) : a("", !0),
2068
2276
  s("button", {
2069
2277
  class: "kb-upload__delete",
2070
2278
  type: "button",
2071
2279
  "aria-label": "删除",
2072
2280
  onClick: (e) => m(t)
2073
- }, "×", 8, fr)
2281
+ }, "×", 8, _r)
2074
2282
  ]))), 128))])) : a("", !0)]));
2075
2283
  }
2076
- }), mr = { class: "kb-tree" }, hr = { class: "kb-tree__row" }, gr = ["onClick"], _r = {
2284
+ }), yr = [
2285
+ "draggable",
2286
+ "onClick",
2287
+ "onDragstart",
2288
+ "onDragover",
2289
+ "onDragleave",
2290
+ "onDrop"
2291
+ ], br = ["aria-expanded", "onClick"], xr = {
2077
2292
  key: 1,
2078
2293
  class: "kb-tree__toggle kb-tree__toggle--leaf"
2079
- }, vr = ["onClick"], yr = {
2080
- key: 0,
2081
- class: "kb-tree__children"
2082
- }, br = /* @__PURE__ */ u({
2294
+ }, Sr = 3, Cr = /* @__PURE__ */ u({
2083
2295
  name: "KbTree",
2084
2296
  __name: "Tree",
2085
- props: { data: { default: () => [] } },
2086
- emits: ["select"],
2087
- setup(t, { emit: n }) {
2088
- let r = t, i = n, c = b(/* @__PURE__ */ new Set()), u = b(null);
2089
- function d(e) {
2090
- return c.value.has(e);
2297
+ props: {
2298
+ data: { default: () => [] },
2299
+ height: { default: null },
2300
+ itemHeight: { default: 32 },
2301
+ draggable: {
2302
+ type: Boolean,
2303
+ default: !1
2304
+ },
2305
+ allowDrop: {},
2306
+ defaultExpandAll: {
2307
+ type: Boolean,
2308
+ default: !1
2091
2309
  }
2310
+ },
2311
+ emits: ["select", "drop"],
2312
+ setup(t, { emit: r }) {
2313
+ let i = t, a = r;
2314
+ function c(e) {
2315
+ return e.map((e) => ({
2316
+ ...e,
2317
+ children: e.children ? c(e.children) : void 0
2318
+ }));
2319
+ }
2320
+ let l = b(c(i.data));
2321
+ D(() => i.data, (e) => {
2322
+ l.value = c(e), g.value = h(l.value);
2323
+ });
2324
+ let u = /* @__PURE__ */ new WeakMap(), d = 0;
2092
2325
  function f(e) {
2093
- let t = new Set(c.value);
2094
- t.has(e) ? t.delete(e) : t.add(e), c.value = t;
2326
+ let t = u.get(e);
2327
+ return t === void 0 && (d += 1, t = d, u.set(e, t)), t;
2095
2328
  }
2096
- function m(e) {
2097
- u.value = e, i("select", e);
2329
+ function h(e, t = /* @__PURE__ */ new Set()) {
2330
+ for (let n of e) n.children?.length && (t.add(f(n)), h(n.children, t));
2331
+ return t;
2332
+ }
2333
+ let g = b(i.defaultExpandAll ? h(l.value) : /* @__PURE__ */ new Set());
2334
+ function v(e) {
2335
+ return g.value.has(f(e));
2336
+ }
2337
+ function y(e) {
2338
+ let t = new Set(g.value), n = f(e);
2339
+ t.has(n) ? t.delete(n) : t.add(n), g.value = t;
2340
+ }
2341
+ let S = b(null);
2342
+ function w(e) {
2343
+ e.disabled || (S.value = f(e), a("select", e));
2344
+ }
2345
+ let T = n(() => {
2346
+ let e = [], t = (n, r, i) => {
2347
+ for (let a of n) e.push({
2348
+ node: a,
2349
+ key: f(a),
2350
+ depth: r,
2351
+ parent: i
2352
+ }), a.children?.length && v(a) && t(a.children, r + 1, a);
2353
+ };
2354
+ return t(l.value, 0, null), e;
2355
+ }), E = b(0), O = n(() => typeof i.height == "number" && i.height > 0), k = n(() => i.height ?? 0), A = n(() => O.value ? Math.max(0, Math.floor(E.value / i.itemHeight) - Sr) : 0), M = n(() => {
2356
+ if (!O.value) return T.value.length;
2357
+ let e = Math.ceil(k.value / i.itemHeight) + 6;
2358
+ return Math.min(T.value.length, A.value + e);
2359
+ }), N = n(() => T.value.slice(A.value, M.value)), P = n(() => T.value.length * i.itemHeight), F = n(() => A.value * i.itemHeight);
2360
+ function I(e) {
2361
+ E.value = e.target.scrollTop;
2362
+ }
2363
+ function L(e) {
2364
+ if (O.value) return {
2365
+ position: "absolute",
2366
+ top: `${F.value + e * i.itemHeight}px`,
2367
+ left: "0",
2368
+ right: "0",
2369
+ height: `${i.itemHeight}px`
2370
+ };
2098
2371
  }
2099
- return (t, n) => {
2100
- let i = C("KbTree");
2101
- return _(), o("div", mr, [(_(!0), o(e, null, x(r.data, (t, n) => (_(), o(e, { key: `${t.label}-${n}` }, [s("div", hr, [t.children && t.children.length ? (_(), o("span", {
2372
+ let R = b(null), z = b(null), B = b(null);
2373
+ function V(e) {
2374
+ return !!e.children?.length;
2375
+ }
2376
+ function H(e, t) {
2377
+ return e === t ? !0 : e.children?.length ? e.children.some((e) => H(e, t)) : !1;
2378
+ }
2379
+ function U(e, t) {
2380
+ let n = e.currentTarget?.getBoundingClientRect(), r = n?.height ?? 0, i = r > 0 ? (e.clientY - n.top) / r : .5;
2381
+ return i < .25 ? "before" : i > .75 ? "after" : V(t.node) ? "inner" : "after";
2382
+ }
2383
+ function W() {
2384
+ R.value = null, z.value = null, B.value = null;
2385
+ }
2386
+ function G(e, t) {
2387
+ if (!i.draggable || t.node.disabled) {
2388
+ e.preventDefault();
2389
+ return;
2390
+ }
2391
+ R.value = t.node, e.dataTransfer && (e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData("text/plain", String(t.key)));
2392
+ }
2393
+ function ee(e, t) {
2394
+ let n = R.value;
2395
+ if (!i.draggable || !n || t.node === n || H(n, t.node)) return;
2396
+ let r = U(e, t);
2397
+ if (i.allowDrop && !i.allowDrop(n, t.node, r)) {
2398
+ z.value = null, B.value = null;
2399
+ return;
2400
+ }
2401
+ e.preventDefault(), z.value = t.key, B.value = r;
2402
+ }
2403
+ function K(e) {
2404
+ z.value === e.key && (z.value = null, B.value = null);
2405
+ }
2406
+ function q(e, t) {
2407
+ for (let n = 0; n < e.length; n += 1) {
2408
+ if (e[n] === t) return e.splice(n, 1), !0;
2409
+ let r = e[n].children;
2410
+ if (r?.length && q(r, t)) return !0;
2411
+ }
2412
+ return !1;
2413
+ }
2414
+ function J(e, t, n, r) {
2415
+ for (let i = 0; i < e.length; i += 1) {
2416
+ if (e[i] === t) return r === "before" ? e.splice(i, 0, n) : r === "after" ? e.splice(i + 1, 0, n) : (t.children = t.children ?? [], t.children.push(n), g.value = new Set(g.value).add(f(t))), !0;
2417
+ let a = e[i].children;
2418
+ if (a?.length && J(a, t, n, r)) return !0;
2419
+ }
2420
+ return !1;
2421
+ }
2422
+ function te(e, t, n) {
2423
+ return q(l.value, e), J(l.value, t, e, n), l.value = [...l.value], l.value;
2424
+ }
2425
+ function Y(e, t) {
2426
+ let n = R.value, r = B.value;
2427
+ if (n && r && z.value === t.key) {
2428
+ e.preventDefault();
2429
+ let i = te(n, t.node, r);
2430
+ a("drop", {
2431
+ dragNode: n,
2432
+ dropNode: t.node,
2433
+ position: r,
2434
+ data: i
2435
+ });
2436
+ }
2437
+ W();
2438
+ }
2439
+ return (t, n) => (_(), o("div", { class: p(["kb-tree", { "kb-tree--virtual": O.value }]) }, [s("div", {
2440
+ class: "kb-tree__scroll",
2441
+ style: m(O.value ? { height: `${k.value}px` } : void 0),
2442
+ onScroll: I
2443
+ }, [s("div", {
2444
+ class: "kb-tree__inner",
2445
+ style: m(O.value ? { height: `${P.value}px` } : void 0)
2446
+ }, [(_(!0), o(e, null, x(N.value, (e, t) => (_(), o("div", {
2447
+ key: e.key,
2448
+ class: p(["kb-tree__row", {
2449
+ "kb-tree__row--selected": S.value === e.key,
2450
+ "kb-tree__row--disabled": e.node.disabled,
2451
+ "kb-tree__row--dragover": z.value === e.key,
2452
+ [`kb-tree__row--drop-${B.value}`]: z.value === e.key
2453
+ }]),
2454
+ style: m(L(t)),
2455
+ draggable: i.draggable,
2456
+ onClick: (t) => w(e.node),
2457
+ onDragstart: (t) => G(t, e),
2458
+ onDragover: (t) => ee(t, e),
2459
+ onDragleave: (t) => K(e),
2460
+ onDrop: (t) => Y(t, e),
2461
+ onDragend: W
2462
+ }, [
2463
+ s("span", {
2464
+ class: "kb-tree__indent",
2465
+ style: m({ width: `${e.depth * 18}px` })
2466
+ }, null, 4),
2467
+ V(e.node) ? (_(), o("span", {
2102
2468
  key: 0,
2103
- class: p(["kb-tree__toggle", { "kb-tree__toggle--open": d(t) }]),
2469
+ class: p(["kb-tree__toggle", { "kb-tree__toggle--open": v(e.node) }]),
2104
2470
  role: "button",
2105
- onClick: (e) => f(t)
2106
- }, " ▸ ", 10, gr)) : (_(), o("span", _r)), s("span", {
2107
- class: p(["kb-tree__label", { "kb-tree__label--selected": u.value === t }]),
2108
- onClick: (e) => m(t)
2109
- }, w(t.label), 11, vr)]), t.children && t.children.length && d(t) ? (_(), o("div", yr, [l(i, {
2110
- data: t.children,
2111
- onSelect: m
2112
- }, null, 8, ["data"])])) : a("", !0)], 64))), 128))]);
2113
- };
2471
+ "aria-expanded": v(e.node),
2472
+ onClick: j((t) => y(e.node), ["stop"])
2473
+ }, " ▸ ", 10, br)) : (_(), o("span", xr)),
2474
+ s("span", { class: p(["kb-tree__label", { "kb-tree__label--selected": S.value === e.key }]) }, C(e.node.label), 3)
2475
+ ], 46, yr))), 128))], 4)], 36)], 2));
2114
2476
  }
2115
- }), xr = { class: "kb-colorpicker" }, Sr = { class: "kb-colorpicker__presets" }, Cr = ["aria-label", "onClick"], $ = /* @__PURE__ */ u({
2477
+ }), wr = { class: "kb-colorpicker" }, Tr = { class: "kb-colorpicker__presets" }, Er = ["aria-label", "onClick"], Dr = /* @__PURE__ */ u({
2116
2478
  name: "KbColorPicker",
2117
2479
  __name: "ColorPicker",
2118
2480
  props: { modelValue: { default: "" } },
@@ -2133,23 +2495,23 @@ var cn = {
2133
2495
  function a(e) {
2134
2496
  r("update:modelValue", e);
2135
2497
  }
2136
- return (n, r) => (_(), o("div", xr, [s("span", {
2498
+ return (n, r) => (_(), o("div", wr, [s("span", {
2137
2499
  class: "kb-colorpicker__value",
2138
2500
  style: m({ background: t.modelValue || "#fff" })
2139
- }, null, 4), s("div", Sr, [(_(), o(e, null, x(i, (e) => s("button", {
2501
+ }, null, 4), s("div", Tr, [(_(), o(e, null, x(i, (e) => s("button", {
2140
2502
  key: e,
2141
2503
  class: p(["kb-colorpicker__swatch", { "kb-colorpicker__swatch--active": t.modelValue === e }]),
2142
2504
  type: "button",
2143
2505
  style: m({ background: e }),
2144
2506
  "aria-label": `选择颜色 ${e}`,
2145
2507
  onClick: (t) => a(e)
2146
- }, null, 14, Cr)), 64))])]));
2508
+ }, null, 14, Er)), 64))])]));
2147
2509
  }
2148
- }), wr = { class: "kb-input-password" }, Tr = [
2510
+ }), Or = { class: "kb-input-password" }, kr = [
2149
2511
  "type",
2150
2512
  "value",
2151
2513
  "placeholder"
2152
- ], Er = ["aria-label"], Dr = /* @__PURE__ */ u({
2514
+ ], Ar = ["aria-label"], jr = /* @__PURE__ */ u({
2153
2515
  name: "KbInputPassword",
2154
2516
  __name: "InputPassword",
2155
2517
  props: {
@@ -2163,23 +2525,23 @@ var cn = {
2163
2525
  function i(e) {
2164
2526
  n("update:modelValue", e.target.value);
2165
2527
  }
2166
- return (t, n) => (_(), o("div", wr, [s("input", {
2528
+ return (t, n) => (_(), o("div", Or, [s("input", {
2167
2529
  class: "kb-input-password__inner",
2168
2530
  type: r.value ? "text" : "password",
2169
2531
  value: e.modelValue,
2170
2532
  placeholder: e.placeholder,
2171
2533
  onInput: i
2172
- }, null, 40, Tr), s("button", {
2534
+ }, null, 40, kr), s("button", {
2173
2535
  class: "kb-input-password__toggle",
2174
2536
  type: "button",
2175
2537
  "aria-label": r.value ? "隐藏密码" : "显示密码",
2176
2538
  onClick: n[0] ||= (e) => r.value = !r.value
2177
- }, [l(T(N), {
2539
+ }, [l(w(I), {
2178
2540
  name: r.value ? "info" : "warning",
2179
2541
  size: 16
2180
- }, null, 8, ["name"])], 8, Er)]));
2542
+ }, null, 8, ["name"])], 8, Ar)]));
2181
2543
  }
2182
- }), Or = { class: "kb-countup" }, kr = /* @__PURE__ */ u({
2544
+ }), Mr = { class: "kb-countup" }, Nr = /* @__PURE__ */ u({
2183
2545
  name: "KbCountUp",
2184
2546
  __name: "CountUp",
2185
2547
  props: {
@@ -2200,12 +2562,12 @@ var cn = {
2200
2562
  };
2201
2563
  r = requestAnimationFrame(o);
2202
2564
  }
2203
- return g(i), h(() => cancelAnimationFrame(r)), (t, r) => (_(), o("span", Or, w(e.prefix) + w(n.value.toFixed(e.decimals)) + w(e.suffix), 1));
2565
+ return g(i), h(() => cancelAnimationFrame(r)), (t, r) => (_(), o("span", Mr, C(e.prefix) + C(n.value.toFixed(e.decimals)) + C(e.suffix), 1));
2204
2566
  }
2205
- }), Ar = { key: 0 }, jr = {
2567
+ }), Pr = { key: 0 }, Fr = {
2206
2568
  key: 1,
2207
2569
  class: "kb-list__empty"
2208
- }, Mr = /* @__PURE__ */ u({
2570
+ }, Ir = /* @__PURE__ */ u({
2209
2571
  name: "KbList",
2210
2572
  __name: "List",
2211
2573
  props: {
@@ -2221,190 +2583,460 @@ var cn = {
2221
2583
  return (n, r) => (_(), o("div", {
2222
2584
  class: p(i.value),
2223
2585
  role: "list"
2224
- }, [t.items.length ? (_(), o("div", Ar, [(_(!0), o(e, null, x(t.items, (e, t) => (_(), o("div", {
2586
+ }, [t.items.length ? (_(), o("div", Pr, [(_(!0), o(e, null, x(t.items, (e, t) => (_(), o("div", {
2225
2587
  key: t,
2226
2588
  class: "kb-list__item",
2227
2589
  role: "listitem"
2228
2590
  }, [S(n.$slots, "item", {
2229
2591
  item: e,
2230
2592
  index: t
2231
- }, () => [c(w(e), 1)])]))), 128))])) : (_(), o("div", jr, w(t.empty), 1))], 2));
2593
+ }, () => [c(C(e), 1)])]))), 128))])) : (_(), o("div", Fr, C(t.empty), 1))], 2));
2232
2594
  }
2233
- }), Nr = { class: "kb-transfer" }, Pr = { class: "kb-transfer__box kb-transfer__left" }, Fr = ["onClick"], Ir = { class: "kb-transfer__actions" }, Lr = ["disabled"], Rr = ["disabled"], zr = { class: "kb-transfer__box kb-transfer__right" }, Br = ["onClick"], Vr = /* @__PURE__ */ u({
2595
+ }), Lr = { class: "kb-transfer__side kb-transfer__side--left" }, Rr = { class: "kb-transfer__header" }, zr = { class: "kb-transfer__title" }, Br = {
2596
+ key: 0,
2597
+ class: "kb-transfer__filter"
2598
+ }, Vr = [
2599
+ "placeholder",
2600
+ "disabled",
2601
+ "value"
2602
+ ], Hr = { class: "kb-transfer__box kb-transfer__left" }, Ur = ["onClick"], Wr = {
2603
+ key: 0,
2604
+ class: "kb-transfer__empty"
2605
+ }, Gr = {
2606
+ key: 1,
2607
+ class: "kb-transfer__pager"
2608
+ }, Kr = ["disabled"], qr = { class: "kb-transfer__page-info" }, Jr = ["disabled"], Yr = { class: "kb-transfer__actions" }, Xr = ["disabled"], Zr = ["disabled"], Qr = { class: "kb-transfer__side kb-transfer__side--right" }, $r = { class: "kb-transfer__header" }, ei = { class: "kb-transfer__title" }, ti = {
2609
+ key: 0,
2610
+ class: "kb-transfer__filter"
2611
+ }, ni = [
2612
+ "placeholder",
2613
+ "disabled",
2614
+ "value"
2615
+ ], ri = { class: "kb-transfer__box kb-transfer__right" }, ii = ["onClick"], ai = {
2616
+ key: 0,
2617
+ class: "kb-transfer__empty"
2618
+ }, oi = {
2619
+ key: 1,
2620
+ class: "kb-transfer__pager"
2621
+ }, si = ["disabled"], ci = { class: "kb-transfer__page-info" }, li = ["disabled"], ui = /* @__PURE__ */ u({
2234
2622
  name: "KbTransfer",
2235
2623
  __name: "Transfer",
2236
2624
  props: {
2237
2625
  data: { default: () => [] },
2238
- modelValue: { default: () => [] }
2626
+ modelValue: { default: () => [] },
2627
+ titles: { default: () => ["待选", "已选"] },
2628
+ filterable: {
2629
+ type: Boolean,
2630
+ default: !1
2631
+ },
2632
+ filterPlaceholder: { default: "请输入搜索内容" },
2633
+ pageSize: { default: 0 },
2634
+ disabled: {
2635
+ type: Boolean,
2636
+ default: !1
2637
+ }
2239
2638
  },
2240
- emits: ["update:modelValue"],
2639
+ emits: ["update:modelValue", "change"],
2241
2640
  setup(t, { emit: r }) {
2242
- let i = t, a = r, c = b([]), l = b([]), u = n(() => i.data.filter((e) => !i.modelValue.includes(e.key))), d = n(() => i.data.filter((e) => i.modelValue.includes(e.key)));
2243
- function f(e, t) {
2244
- let n = t === "left" ? c : l, r = new Set(n.value);
2641
+ let i = t, c = r, u = b([]), d = b([]), f = b({
2642
+ left: "",
2643
+ right: ""
2644
+ }), m = b({
2645
+ left: 1,
2646
+ right: 1
2647
+ }), h = n(() => i.data.filter((e) => !i.modelValue.includes(e.key))), g = n(() => i.data.filter((e) => i.modelValue.includes(e.key)));
2648
+ function v(e, t) {
2649
+ let n = t.trim().toLowerCase();
2650
+ return n ? e.filter((e) => e.label.toLowerCase().includes(n)) : e;
2651
+ }
2652
+ let y = n(() => v(h.value, f.value.left)), S = n(() => v(g.value, f.value.right));
2653
+ function T(e) {
2654
+ return i.pageSize <= 0 ? 1 : Math.max(1, Math.ceil(e / i.pageSize));
2655
+ }
2656
+ let E = n(() => T(y.value.length)), D = n(() => T(S.value.length)), O = n(() => Math.min(m.value.left, E.value)), A = n(() => Math.min(m.value.right, D.value));
2657
+ function j(e, t) {
2658
+ if (i.pageSize <= 0) return e;
2659
+ let n = (t - 1) * i.pageSize;
2660
+ return e.slice(n, n + i.pageSize);
2661
+ }
2662
+ let M = n(() => j(y.value, O.value)), N = n(() => j(S.value, A.value));
2663
+ function P(e, t) {
2664
+ return e.filter((e) => t.includes(e.key)).length;
2665
+ }
2666
+ let F = n(() => M.value.length > 0 && P(M.value, u.value) === M.value.length), I = n(() => {
2667
+ let e = P(M.value, u.value);
2668
+ return e > 0 && e < M.value.length;
2669
+ }), L = n(() => N.value.length > 0 && P(N.value, d.value) === N.value.length), R = n(() => {
2670
+ let e = P(N.value, d.value);
2671
+ return e > 0 && e < N.value.length;
2672
+ });
2673
+ function z(e, t) {
2674
+ if (i.disabled || i.data.find((t) => t.key === e)?.disabled) return;
2675
+ let n = t === "left" ? u : d, r = new Set(n.value);
2245
2676
  r.has(e) ? r.delete(e) : r.add(e), n.value = [...r];
2246
2677
  }
2247
- function m(e) {
2248
- let t = e ? c.value : l.value, n = e ? [...i.modelValue, ...t] : i.modelValue.filter((e) => !t.includes(e));
2249
- a("update:modelValue", n), c.value = [], l.value = [];
2250
- }
2251
- return (t, n) => (_(), o("div", Nr, [
2252
- s("div", Pr, [n[2] ||= s("div", { class: "kb-transfer__title" }, "待选", -1), (_(!0), o(e, null, x(u.value, (e) => (_(), o("div", {
2253
- key: e.key,
2254
- class: p(["kb-transfer__item", { "kb-transfer__item--selected": c.value.includes(e.key) }]),
2255
- onClick: (t) => f(e.key, "left")
2256
- }, w(e.label), 11, Fr))), 128))]),
2257
- s("div", Ir, [s("button", {
2678
+ function B(e, t) {
2679
+ if (i.disabled) return;
2680
+ let n = (e === "left" ? M.value : N.value).filter((e) => !e.disabled).map((e) => e.key), r = e === "left" ? u : d, a = new Set(r.value);
2681
+ for (let e of n) t ? a.add(e) : a.delete(e);
2682
+ r.value = [...a];
2683
+ }
2684
+ function V(e) {
2685
+ if (i.disabled) return;
2686
+ let t = e ? u.value : d.value;
2687
+ if (!t.length) return;
2688
+ let n = e ? [...i.modelValue, ...t.filter((e) => !i.modelValue.includes(e))] : i.modelValue.filter((e) => !t.includes(e));
2689
+ c("update:modelValue", n), c("change", n, e ? "right" : "left"), u.value = [], d.value = [], m.value = {
2690
+ left: 1,
2691
+ right: 1
2692
+ };
2693
+ }
2694
+ function H(e, t) {
2695
+ let n = t.target.value;
2696
+ f.value = {
2697
+ ...f.value,
2698
+ [e]: n
2699
+ }, m.value = {
2700
+ ...m.value,
2701
+ [e]: 1
2702
+ };
2703
+ }
2704
+ function U(e, t) {
2705
+ let n = e === "left" ? E.value : D.value;
2706
+ m.value = {
2707
+ ...m.value,
2708
+ [e]: Math.min(n, Math.max(1, t))
2709
+ };
2710
+ }
2711
+ return (n, r) => (_(), o("div", { class: p(["kb-transfer", { "kb-transfer--disabled": t.disabled }]) }, [
2712
+ s("div", Lr, [
2713
+ s("div", Rr, [l(w(q), {
2714
+ "model-value": F.value,
2715
+ indeterminate: I.value,
2716
+ disabled: t.disabled || !M.value.length,
2717
+ "onUpdate:modelValue": r[0] ||= (e) => B("left", e)
2718
+ }, {
2719
+ default: k(() => [s("span", zr, C(t.titles[0]) + " · " + C(h.value.length), 1)]),
2720
+ _: 1
2721
+ }, 8, [
2722
+ "model-value",
2723
+ "indeterminate",
2724
+ "disabled"
2725
+ ])]),
2726
+ t.filterable ? (_(), o("div", Br, [s("input", {
2727
+ class: "kb-transfer__input",
2728
+ type: "text",
2729
+ placeholder: t.filterPlaceholder,
2730
+ disabled: t.disabled,
2731
+ value: f.value.left,
2732
+ onInput: r[1] ||= (e) => H("left", e)
2733
+ }, null, 40, Vr)])) : a("", !0),
2734
+ s("div", Hr, [(_(!0), o(e, null, x(M.value, (e) => (_(), o("div", {
2735
+ key: e.key,
2736
+ class: p(["kb-transfer__item", {
2737
+ "kb-transfer__item--selected": u.value.includes(e.key),
2738
+ "kb-transfer__item--disabled": e.disabled
2739
+ }]),
2740
+ onClick: (t) => z(e.key, "left")
2741
+ }, C(e.label), 11, Ur))), 128)), M.value.length ? a("", !0) : (_(), o("div", Wr, "无匹配数据"))]),
2742
+ t.pageSize > 0 ? (_(), o("div", Gr, [
2743
+ s("button", {
2744
+ class: "kb-transfer__page kb-transfer__page--prev",
2745
+ type: "button",
2746
+ "aria-label": "上一页",
2747
+ disabled: O.value <= 1,
2748
+ onClick: r[2] ||= (e) => U("left", O.value - 1)
2749
+ }, " ‹ ", 8, Kr),
2750
+ s("span", qr, C(O.value) + " / " + C(E.value), 1),
2751
+ s("button", {
2752
+ class: "kb-transfer__page kb-transfer__page--next",
2753
+ type: "button",
2754
+ "aria-label": "下一页",
2755
+ disabled: O.value >= E.value,
2756
+ onClick: r[3] ||= (e) => U("left", O.value + 1)
2757
+ }, " › ", 8, Jr)
2758
+ ])) : a("", !0)
2759
+ ]),
2760
+ s("div", Yr, [s("button", {
2258
2761
  class: "kb-transfer__move kb-transfer__move--right",
2259
2762
  type: "button",
2260
- disabled: !c.value.length,
2261
- onClick: n[0] ||= (e) => m(!0)
2262
- }, " → ", 8, Lr), s("button", {
2763
+ disabled: t.disabled || !u.value.length,
2764
+ onClick: r[4] ||= (e) => V(!0)
2765
+ }, " → ", 8, Xr), s("button", {
2263
2766
  class: "kb-transfer__move kb-transfer__move--left",
2264
2767
  type: "button",
2265
- disabled: !l.value.length,
2266
- onClick: n[1] ||= (e) => m(!1)
2267
- }, " ← ", 8, Rr)]),
2268
- s("div", zr, [n[3] ||= s("div", { class: "kb-transfer__title" }, "已选", -1), (_(!0), o(e, null, x(d.value, (e) => (_(), o("div", {
2269
- key: e.key,
2270
- class: p(["kb-transfer__item", { "kb-transfer__item--selected": l.value.includes(e.key) }]),
2271
- onClick: (t) => f(e.key, "right")
2272
- }, w(e.label), 11, Br))), 128))])
2273
- ]));
2768
+ disabled: t.disabled || !d.value.length,
2769
+ onClick: r[5] ||= (e) => V(!1)
2770
+ }, " ← ", 8, Zr)]),
2771
+ s("div", Qr, [
2772
+ s("div", $r, [l(w(q), {
2773
+ "model-value": L.value,
2774
+ indeterminate: R.value,
2775
+ disabled: t.disabled || !N.value.length,
2776
+ "onUpdate:modelValue": r[6] ||= (e) => B("right", e)
2777
+ }, {
2778
+ default: k(() => [s("span", ei, C(t.titles[1]) + " · " + C(g.value.length), 1)]),
2779
+ _: 1
2780
+ }, 8, [
2781
+ "model-value",
2782
+ "indeterminate",
2783
+ "disabled"
2784
+ ])]),
2785
+ t.filterable ? (_(), o("div", ti, [s("input", {
2786
+ class: "kb-transfer__input",
2787
+ type: "text",
2788
+ placeholder: t.filterPlaceholder,
2789
+ disabled: t.disabled,
2790
+ value: f.value.right,
2791
+ onInput: r[7] ||= (e) => H("right", e)
2792
+ }, null, 40, ni)])) : a("", !0),
2793
+ s("div", ri, [(_(!0), o(e, null, x(N.value, (e) => (_(), o("div", {
2794
+ key: e.key,
2795
+ class: p(["kb-transfer__item", {
2796
+ "kb-transfer__item--selected": d.value.includes(e.key),
2797
+ "kb-transfer__item--disabled": e.disabled
2798
+ }]),
2799
+ onClick: (t) => z(e.key, "right")
2800
+ }, C(e.label), 11, ii))), 128)), N.value.length ? a("", !0) : (_(), o("div", ai, "无匹配数据"))]),
2801
+ t.pageSize > 0 ? (_(), o("div", oi, [
2802
+ s("button", {
2803
+ class: "kb-transfer__page kb-transfer__page--prev",
2804
+ type: "button",
2805
+ "aria-label": "上一页",
2806
+ disabled: A.value <= 1,
2807
+ onClick: r[8] ||= (e) => U("right", A.value - 1)
2808
+ }, " ‹ ", 8, si),
2809
+ s("span", ci, C(A.value) + " / " + C(D.value), 1),
2810
+ s("button", {
2811
+ class: "kb-transfer__page kb-transfer__page--next",
2812
+ type: "button",
2813
+ "aria-label": "下一页",
2814
+ disabled: A.value >= D.value,
2815
+ onClick: r[9] ||= (e) => U("right", A.value + 1)
2816
+ }, " › ", 8, li)
2817
+ ])) : a("", !0)
2818
+ ])
2819
+ ], 2));
2274
2820
  }
2275
- }), Hr = { class: "kb-cascader" }, Ur = ["aria-expanded"], Wr = ["aria-label"], Gr = ["aria-selected", "onClick"], Kr = {
2821
+ }), di = ["aria-expanded", "aria-disabled"], fi = { class: "kb-cascader__suffix" }, pi = ["aria-label"], mi = [
2822
+ "aria-selected",
2823
+ "aria-disabled",
2824
+ "onClick"
2825
+ ], hi = {
2276
2826
  key: 0,
2827
+ class: "kb-cascader__leaf-tag"
2828
+ }, gi = {
2829
+ key: 1,
2277
2830
  class: "kb-cascader__more"
2278
- }, qr = /* @__PURE__ */ u({
2831
+ }, _i = {
2832
+ key: 0,
2833
+ class: "kb-cascader__column",
2834
+ "aria-busy": "true"
2835
+ }, vi = /* @__PURE__ */ u({
2279
2836
  name: "KbCascader",
2280
2837
  __name: "Cascader",
2281
2838
  props: {
2282
2839
  options: { default: () => [] },
2283
2840
  modelValue: { default: () => [] },
2284
- placeholder: { default: "请选择" }
2841
+ placeholder: { default: "请选择" },
2842
+ separator: { default: " / " },
2843
+ disabled: {
2844
+ type: Boolean,
2845
+ default: !1
2846
+ },
2847
+ clearable: {
2848
+ type: Boolean,
2849
+ default: !1
2850
+ },
2851
+ lazy: {
2852
+ type: Boolean,
2853
+ default: !1
2854
+ },
2855
+ lazyLoad: {}
2285
2856
  },
2286
2857
  emits: ["update:modelValue"],
2287
2858
  setup(t, { emit: r }) {
2288
- let i = t, l = r, u = b(!1), d = b([]), f = `kb-cascader-${Math.random().toString(36).slice(2, 8)}`;
2289
- function m() {
2290
- u.value = !1;
2291
- }
2292
- function h(e) {
2293
- e.key === "Escape" && (e.preventDefault(), m());
2294
- }
2295
- let g = n(() => {
2296
- let e = [], t = i.options;
2859
+ let i = t, c = r, l = b(!1), u = b([]), d = b(null), f = b(null), m = b({}), h = `kb-cascader-${Math.random().toString(36).slice(2, 8)}`, g = n(() => i.lazy && typeof i.lazyLoad == "function"), v = n(() => g.value ? d.value ?? [] : i.options), y = n(() => i.clearable && i.modelValue.length > 0 && !i.disabled), S = n(() => {
2860
+ if (!i.modelValue.length) return i.placeholder;
2861
+ let e = [], t = v.value;
2297
2862
  for (let n of i.modelValue) {
2298
2863
  let r = t.find((e) => e.value === n);
2299
- if (!r) break;
2864
+ if (!r) {
2865
+ let r = m.value[String(n)];
2866
+ if (!r) break;
2867
+ e.push(r), t = [];
2868
+ continue;
2869
+ }
2300
2870
  e.push(r.label), t = r.children ?? [];
2301
2871
  }
2302
- return e.join(" / ") || i.placeholder;
2872
+ return e.length ? e.join(i.separator) : i.placeholder;
2303
2873
  });
2304
- function v(e) {
2305
- if (e === 0) d.value = [i.options];
2306
- else {
2307
- let t = i.options, n = [];
2308
- for (let r of i.modelValue.slice(0, e)) t = t.find((e) => e.value === r)?.children ?? [], n.push(t);
2309
- d.value = n.length ? n : [i.options];
2874
+ function w(e) {
2875
+ let t = { ...m.value };
2876
+ for (let n of e) t[String(n.value)] = n.label;
2877
+ m.value = t;
2878
+ }
2879
+ function T() {
2880
+ let e = [v.value];
2881
+ w(v.value);
2882
+ let t = v.value;
2883
+ for (let n of i.modelValue) {
2884
+ let r = t.find((e) => e.value === n);
2885
+ if (!r?.children?.length) break;
2886
+ t = r.children, e.push(t), w(t);
2887
+ }
2888
+ return e;
2889
+ }
2890
+ function E() {
2891
+ l.value = !1;
2892
+ }
2893
+ function D(e) {
2894
+ e.key === "Escape" && (e.preventDefault(), E());
2895
+ }
2896
+ function O(e, t) {
2897
+ !g.value || !i.lazyLoad || (f.value = t, i.lazyLoad(e, (n) => {
2898
+ if (e ? e.children = n : d.value = n, w(n), f.value = null, e && !n.length) {
2899
+ E();
2900
+ return;
2901
+ }
2902
+ let r = u.value.slice(0, t);
2903
+ r[t] = n, u.value = r;
2904
+ }));
2905
+ }
2906
+ function k() {
2907
+ if (!i.disabled) {
2908
+ if (l.value) {
2909
+ E();
2910
+ return;
2911
+ }
2912
+ if (l.value = !0, g.value && d.value === null) {
2913
+ u.value = [], O(null, 0);
2914
+ return;
2915
+ }
2916
+ u.value = T();
2310
2917
  }
2311
2918
  }
2312
- function y(e, t) {
2919
+ function A(e, t) {
2920
+ if (e.disabled) return;
2313
2921
  let n = [...i.modelValue.slice(0, t), e.value];
2314
- l("update:modelValue", n), e.children?.length ? (d.value = d.value.slice(0, t + 1), d.value.push(e.children)) : u.value = !1;
2922
+ if (c("update:modelValue", n), e.leaf) {
2923
+ E();
2924
+ return;
2925
+ }
2926
+ if (e.children?.length) {
2927
+ u.value = [...u.value.slice(0, t + 1), e.children], w(e.children);
2928
+ return;
2929
+ }
2930
+ if (g.value && e.children === void 0) {
2931
+ u.value = u.value.slice(0, t + 1), O(e, t + 1);
2932
+ return;
2933
+ }
2934
+ E();
2315
2935
  }
2316
- return (n, r) => (_(), o("div", Hr, [s("div", {
2936
+ function j(e) {
2937
+ e.stopPropagation(), !i.disabled && (c("update:modelValue", []), m.value = {}, u.value = v.value.length ? [v.value] : []);
2938
+ }
2939
+ return (n, r) => (_(), o("div", { class: p(["kb-cascader", { "kb-cascader--disabled": t.disabled }]) }, [s("div", {
2317
2940
  class: "kb-cascader__trigger",
2318
2941
  tabindex: "0",
2319
2942
  role: "combobox",
2320
2943
  "aria-haspopup": "true",
2321
- "aria-expanded": u.value,
2322
- "aria-controls": f,
2323
- onClick: r[0] ||= (e) => {
2324
- u.value = !u.value, v(0);
2325
- },
2326
- onKeydown: h
2327
- }, [s("span", { class: p({ "kb-cascader__placeholder": g.value === t.placeholder }) }, w(g.value), 3), r[1] ||= s("span", { class: "kb-cascader__arrow" }, "▾", -1)], 40, Ur), u.value ? (_(), o("div", {
2944
+ "aria-expanded": l.value,
2945
+ "aria-controls": h,
2946
+ "aria-disabled": t.disabled,
2947
+ onClick: k,
2948
+ onKeydown: D
2949
+ }, [s("span", { class: p({ "kb-cascader__placeholder": S.value === t.placeholder }) }, C(S.value), 3), s("span", fi, [y.value ? (_(), o("span", {
2950
+ key: 0,
2951
+ class: "kb-cascader__clear",
2952
+ role: "button",
2953
+ "aria-label": "清空",
2954
+ onClick: j
2955
+ }, "×")) : a("", !0), r[0] ||= s("span", { class: "kb-cascader__arrow" }, "▾", -1)])], 40, di), l.value ? (_(), o("div", {
2328
2956
  key: 0,
2329
- id: f,
2957
+ id: h,
2330
2958
  class: "kb-cascader__panel",
2331
2959
  role: "dialog",
2332
2960
  "aria-label": "级联选择"
2333
- }, [(_(!0), o(e, null, x(d.value, (t, n) => (_(), o("div", {
2334
- key: n,
2961
+ }, [(_(!0), o(e, null, x(u.value, (n, r) => (_(), o("div", {
2962
+ key: r,
2335
2963
  class: "kb-cascader__column",
2336
2964
  role: "listbox",
2337
- "aria-label": `第 ${n + 1} 级`
2338
- }, [(_(!0), o(e, null, x(t, (e) => (_(), o("div", {
2965
+ "aria-label": `第 ${r + 1} 级`
2966
+ }, [(_(!0), o(e, null, x(n, (e) => (_(), o("div", {
2339
2967
  key: e.value,
2340
- class: p(["kb-cascader__option", { "kb-cascader__option--active": i.modelValue[n] === e.value }]),
2968
+ class: p(["kb-cascader__option", {
2969
+ "kb-cascader__option--active": t.modelValue[r] === e.value,
2970
+ "kb-cascader__option--disabled": e.disabled
2971
+ }]),
2341
2972
  role: "option",
2342
- "aria-selected": i.modelValue[n] === e.value,
2343
- onClick: (t) => y(e, n)
2344
- }, [c(w(e.label) + " ", 1), e.children?.length ? (_(), o("span", Kr, "›")) : a("", !0)], 10, Gr))), 128))], 8, Wr))), 128))])) : a("", !0)]));
2973
+ "aria-selected": t.modelValue[r] === e.value,
2974
+ "aria-disabled": e.disabled,
2975
+ onClick: (t) => A(e, r)
2976
+ }, [s("span", null, C(e.label), 1), e.leaf ? (_(), o("span", hi, "可选")) : e.children?.length ? (_(), o("span", gi, "›")) : a("", !0)], 10, mi))), 128))], 8, pi))), 128)), f.value !== null && f.value >= u.value.length ? (_(), o("div", _i, [...r[1] ||= [s("div", { class: "kb-cascader__loading" }, "加载中…", -1)]])) : a("", !0)])) : a("", !0)], 2));
2345
2977
  }
2346
- }), Jr = [
2347
- j,
2978
+ }), yi = [
2348
2979
  N,
2349
- ne,
2350
- re,
2351
- ae,
2352
- P,
2353
- F,
2354
2980
  I,
2355
2981
  L,
2356
2982
  R,
2357
- z,
2358
2983
  B,
2359
- V,
2360
2984
  H,
2985
+ U,
2361
2986
  G,
2362
- K,
2363
2987
  q,
2364
- J,
2365
2988
  Y,
2366
- Pe,
2367
- Fe,
2989
+ re,
2990
+ oe,
2991
+ se,
2992
+ fe,
2993
+ Oe,
2994
+ ke,
2995
+ Me,
2996
+ Ie,
2368
2997
  Be,
2998
+ We,
2369
2999
  Ge,
2370
3000
  Xe,
2371
3001
  tt,
2372
- ct,
3002
+ ot,
2373
3003
  dt,
2374
- ht,
2375
- bt,
3004
+ Q,
3005
+ mt,
3006
+ vt,
2376
3007
  Ct,
2377
3008
  Et,
2378
- jt,
2379
- Rt,
2380
- Jt,
2381
- tn,
2382
- fn,
2383
- hn,
2384
- vn,
2385
- xn,
2386
- wn,
3009
+ kt,
3010
+ Pt,
3011
+ Vt,
3012
+ Zt,
3013
+ an,
3014
+ gn,
3015
+ yn,
3016
+ Sn,
3017
+ Tn,
2387
3018
  On,
2388
- Pn,
3019
+ Mn,
2389
3020
  Rn,
2390
- Q,
2391
- qn,
2392
- Jn,
3021
+ Hn,
3022
+ Yn,
2393
3023
  Qn,
2394
- nr,
2395
- pr,
2396
- br,
2397
- $,
3024
+ $n,
3025
+ rr,
3026
+ sr,
3027
+ vr,
3028
+ Cr,
2398
3029
  Dr,
2399
- kr,
2400
- Mr,
2401
- Vr,
2402
- qr
2403
- ], Yr = {
3030
+ jr,
3031
+ Nr,
3032
+ Ir,
3033
+ ui,
3034
+ vi
3035
+ ], bi = {
2404
3036
  install: (e) => {
2405
- Jr.forEach((t) => e.component(t.name, t));
3037
+ yi.forEach((t) => e.component(t.name, t));
2406
3038
  },
2407
- version: "0.2.0"
3039
+ version: "0.3.0"
2408
3040
  };
2409
3041
  //#endregion
2410
- export { Pe as Alert, Pe as KbAlert, q as Avatar, q as KbAvatar, K as Badge, K as KbBadge, Ge as Breadcrumb, Ge as KbBreadcrumb, j as Button, j as KbButton, Q as Calendar, Q as KbCalendar, Y as Card, Y as KbCard, Pn as Carousel, Pn as KbCarousel, qr as Cascader, qr as KbCascader, L as Checkbox, L as KbCheckbox, F as Col, F as KbCol, Xe as Collapse, Xe as KbCollapse, $ as ColorPicker, $ as KbColorPicker, kr as CountUp, kr as KbCountUp, nr as DatePicker, nr as KbDatePicker, Rn as Descriptions, Rn as KbDescriptions, H as Dialog, H as KbDialog, ae as Divider, ae as KbDivider, ht as Drawer, ht as KbDrawer, dt as Dropdown, dt as KbDropdown, Be as Empty, Be as KbEmpty, Jn as Form, Jn as KbForm, Qn as FormItem, Qn as KbFormItem, N as Icon, N as KbIcon, I as Input, I as KbInput, fn as InputNumber, fn as KbInputNumber, Dr as InputPassword, Dr as KbInputPassword, Mr as KbList, Mr as List, qn as KbLoading, qn as Loading, ct as KbPagination, ct as Pagination, On as KbPopconfirm, On as Popconfirm, bt as KbPopover, bt as Popover, J as KbProgress, J as Progress, R as KbRadio, R as Radio, Ct as KbRate, Ct as Rate, jt as KbResult, jt as Result, P as KbRow, P as Row, vn as KbSearch, vn as Search, xn as KbSegmented, xn as Segmented, B as KbSelect, B as Select, Fe as KbSkeleton, Fe as Skeleton, Et as KbSlider, Et as Slider, re as KbSpace, re as Space, Rt as KbStatistic, Rt as Statistic, Jt as KbSteps, Jt as Steps, z as KbSwitch, z as Switch, G as KbTable, G as Table, tt as KbTabs, tt as Tabs, ne as KbTag, ne as Tag, hn as KbTextarea, hn as Textarea, tn as KbTimeline, tn as Timeline, V as KbTooltip, V as Tooltip, Vr as KbTransfer, Vr as Transfer, br as KbTree, br as Tree, pr as KbUpload, pr as Upload, wn as KbWatermark, wn as Watermark, be as Message, on as Notification, Yr as default, Se as message, cn as notification };
3042
+ export { We as Alert, We as KbAlert, Me as Avatar, Me as KbAvatar, ke as Badge, ke as KbBadge, tt as Breadcrumb, tt as KbBreadcrumb, N as Button, N as KbButton, Yn as Calendar, Yn as KbCalendar, Be as Card, Be as KbCard, Rn as Carousel, Rn as KbCarousel, vi as Cascader, vi as KbCascader, q as Checkbox, q as KbCheckbox, U as Col, U as KbCol, ot as Collapse, ot as KbCollapse, Dr as ColorPicker, Dr as KbColorPicker, Nr as CountUp, Nr as KbCountUp, sr as DatePicker, sr as KbDatePicker, Hn as Descriptions, Hn as KbDescriptions, fe as Dialog, fe as KbDialog, B as Divider, B as KbDivider, vt as Drawer, vt as KbDrawer, mt as Dropdown, mt as KbDropdown, Xe as Empty, Xe as KbEmpty, $n as Form, $n as KbForm, rr as FormItem, rr as KbFormItem, I as Icon, I as KbIcon, G as Input, G as KbInput, gn as InputNumber, gn as KbInputNumber, jr as InputPassword, jr as KbInputPassword, Ir as KbList, Ir as List, Qn as KbLoading, Qn as Loading, Q as KbPagination, Q as Pagination, Mn as KbPopconfirm, Mn as Popconfirm, Ct as KbPopover, Ct as Popover, Ie as KbProgress, Ie as Progress, Y as KbRadio, Y as Radio, Et as KbRate, Et as Rate, Pt as KbResult, Pt as Result, H as KbRow, H as Row, Sn as KbSearch, Sn as Search, Tn as KbSegmented, Tn as Segmented, oe as KbSelect, oe as Select, Ge as KbSkeleton, Ge as Skeleton, kt as KbSlider, kt as Slider, R as KbSpace, R as Space, Vt as KbStatistic, Vt as Statistic, Zt as KbSteps, Zt as Steps, re as KbSwitch, re as Switch, Oe as KbTable, Oe as Table, dt as KbTabs, dt as Tabs, L as KbTag, L as Tag, yn as KbTextarea, yn as Textarea, an as KbTimeline, an as Timeline, se as KbTooltip, se as Tooltip, ui as KbTransfer, ui as Transfer, Cr as KbTree, Cr as Tree, vr as KbUpload, vr as Upload, On as KbWatermark, On as Watermark, me as Message, ln as Notification, bi as default, ge as message, fn as notification };