@krds.ui/vue 0.0.19 → 0.0.21

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.
@@ -1,13 +1,13 @@
1
- import { Comment as je, Fragment as Ge, Teleport as Ce, Text as Ue, computed as b, defineComponent as M, getCurrentInstance as xe, h as t, inject as Xe, nextTick as ce, onBeforeUnmount as fe, onMounted as re, onUnmounted as ie, provide as Qe, ref as D, useId as oe, vShow as pe, watch as se, withDirectives as ve, withModifiers as ge } from "vue";
2
- var be = Object.defineProperty, Je = (e, a) => {
1
+ import { Comment as Je, Fragment as Ze, Teleport as Ce, Text as et, computed as C, defineComponent as _, getCurrentInstance as xe, h as t, inject as tt, mergeProps as Ee, nextTick as pe, onActivated as at, onBeforeUnmount as oe, onMounted as ee, onUnmounted as ue, onUpdated as lt, provide as nt, ref as E, shallowRef as st, useId as de, vShow as Se, watch as se, withDirectives as ge, withModifiers as Ke } from "vue";
2
+ var De = Object.defineProperty, rt = (e, a) => {
3
3
  let r = {};
4
4
  for (var l in e)
5
- be(r, l, {
5
+ De(r, l, {
6
6
  get: e[l],
7
7
  enumerable: !0
8
8
  });
9
- return a || be(r, Symbol.toStringTag, { value: "Module" }), r;
10
- }, $e = M({
9
+ return a || De(r, Symbol.toStringTag, { value: "Module" }), r;
10
+ }, Fe = /* @__PURE__ */ _({
11
11
  name: "KrdsButton",
12
12
  props: {
13
13
  type: {
@@ -49,7 +49,7 @@ var be = Object.defineProperty, Je = (e, a) => {
49
49
  },
50
50
  emits: { click: (e) => !0 },
51
51
  setup(e, { emit: a, slots: r }) {
52
- const l = b(() => {
52
+ const l = C(() => {
53
53
  const s = ["krds-btn"];
54
54
  return e.icon && s.push("icon"), e.border && s.push("border"), e.pure && s.push("pure"), e.text && s.push("text"), e.variant && !e.icon && s.push(e.variant), e.size && s.push(e.size), e.class && s.push(e.class), s;
55
55
  }), n = (s) => {
@@ -62,13 +62,13 @@ var be = Object.defineProperty, Je = (e, a) => {
62
62
  onClick: n
63
63
  }, r.default?.());
64
64
  }
65
- }), Ze = $e, et = M({
65
+ }), it = Fe, ot = /* @__PURE__ */ _({
66
66
  name: "KrdsButtonGroup",
67
67
  props: {},
68
68
  setup(e, { slots: a }) {
69
69
  return () => t("div", { class: "btn-group" }, a.default?.());
70
70
  }
71
- }), tt = M({
71
+ }), ut = /* @__PURE__ */ _({
72
72
  name: "KrdsIcon",
73
73
  props: {
74
74
  name: {
@@ -87,7 +87,115 @@ var be = Object.defineProperty, Je = (e, a) => {
87
87
  e.class
88
88
  ].filter(Boolean).join(" ") });
89
89
  }
90
- }), at = M({
90
+ }), dt = /* @__PURE__ */ _({
91
+ name: "KrdsFloatingButton",
92
+ inheritAttrs: !1,
93
+ props: {
94
+ label: {
95
+ type: String,
96
+ required: !0
97
+ },
98
+ icon: {
99
+ type: String,
100
+ default: "ico-plus"
101
+ },
102
+ href: {
103
+ type: String,
104
+ default: void 0
105
+ },
106
+ external: {
107
+ type: Boolean,
108
+ default: !1
109
+ },
110
+ hideLabel: {
111
+ type: Boolean,
112
+ default: !1
113
+ },
114
+ items: {
115
+ type: Array,
116
+ default: void 0
117
+ }
118
+ },
119
+ emits: {
120
+ click: (e) => !0,
121
+ select: (e, a, r) => !0
122
+ },
123
+ setup(e, { emit: a, attrs: r }) {
124
+ const l = E(null), n = E(null), s = `floating-list-${de()}`, u = E(!1), g = (S = !1) => {
125
+ u.value = !1, S && n.value?.focus();
126
+ }, h = (S) => {
127
+ S.key === "Escape" && u.value && g(!0);
128
+ };
129
+ ee(() => document.addEventListener("keydown", h)), ue(() => document.removeEventListener("keydown", h));
130
+ const y = (S) => {
131
+ const k = S.relatedTarget;
132
+ k && !l.value?.contains(k) && g();
133
+ }, d = (S, k, K = !1, m = {}) => t(S.href ? "a" : "button", Ee({
134
+ class: "floating-action",
135
+ ...S.href ? {
136
+ href: S.href,
137
+ ...S.external && {
138
+ target: "_blank",
139
+ rel: "noopener noreferrer",
140
+ title: "새 창 열림"
141
+ }
142
+ } : { type: "button" },
143
+ onClick: k
144
+ }, m), [t("span", { class: "floating-icon" }, [t("i", {
145
+ class: ["svg-icon", S.icon],
146
+ "aria-hidden": "true"
147
+ })]), t("span", { class: K ? "sr-only" : "floating-label" }, S.label)]);
148
+ return () => {
149
+ const { items: S } = e;
150
+ if (!S) {
151
+ const { class: k, style: K, ...m } = r;
152
+ return t("div", {
153
+ class: ["krds-floating-button", k],
154
+ style: K
155
+ }, [d({
156
+ label: e.label,
157
+ icon: e.icon,
158
+ href: e.href,
159
+ external: e.external
160
+ }, (v) => a("click", v), e.hideLabel, m)]);
161
+ }
162
+ return t("div", Ee(r, {
163
+ ref: l,
164
+ class: [
165
+ "krds-floating-button",
166
+ "expand",
167
+ { active: u.value }
168
+ ],
169
+ onFocusout: y
170
+ }), [
171
+ u.value ? t("div", {
172
+ class: "floating-dim",
173
+ "aria-hidden": "true",
174
+ onClick: () => g()
175
+ }) : null,
176
+ t("button", {
177
+ ref: n,
178
+ type: "button",
179
+ class: "floating-toggle",
180
+ "aria-expanded": u.value,
181
+ "aria-controls": s,
182
+ onClick: () => u.value = !u.value
183
+ }, [t("span", { class: "floating-icon" }, [t("i", {
184
+ class: "svg-icon ico-plus",
185
+ "aria-hidden": "true"
186
+ })]), t("span", { class: "sr-only" }, e.label)]),
187
+ ge(t("ul", {
188
+ id: s,
189
+ class: "floating-list"
190
+ }, S.map((k, K) => t("li", { key: K }, [d(k, (m) => {
191
+ g(!0), a("select", k, K, m);
192
+ const v = k.href?.startsWith("#") ? decodeURIComponent(k.href.slice(1)) : "";
193
+ v && !m.defaultPrevented && document.getElementById(v) && document.activeElement === n.value && n.value?.blur();
194
+ })]))), [[Se, u.value]])
195
+ ]);
196
+ };
197
+ }
198
+ }), ct = dt, ft = /* @__PURE__ */ _({
91
199
  name: "KrdsLink",
92
200
  props: {
93
201
  href: {
@@ -125,24 +233,24 @@ var be = Object.defineProperty, Je = (e, a) => {
125
233
  },
126
234
  emits: { click: (e) => !0 },
127
235
  setup(e, { emit: a, slots: r }) {
128
- const l = b(() => {
129
- const d = ["krds-btn"];
130
- return e.size && d.push(e.size), e.link && d.push("link"), e.basic && d.push("basic"), e.pure && d.push("pure"), e.class && d.push(e.class), d;
131
- }), n = b(() => {
132
- const d = {
236
+ const l = C(() => {
237
+ const u = ["krds-btn"];
238
+ return e.size && u.push(e.size), e.link && u.push("link"), e.basic && u.push("basic"), e.pure && u.push("pure"), e.class && u.push(e.class), u;
239
+ }), n = C(() => {
240
+ const u = {
133
241
  href: e.href,
134
242
  class: l.value
135
243
  };
136
- return e.target && (d.target = e.target), e.title && (d.title = e.title), e.target === "_blank" && (d.rel = "noopener noreferrer"), d;
137
- }), s = (d) => {
138
- a("click", d);
244
+ return e.target && (u.target = e.target), e.title && (u.title = e.title), e.target === "_blank" && (u.rel = "noopener noreferrer"), u;
245
+ }), s = (u) => {
246
+ a("click", u);
139
247
  };
140
248
  return () => t("a", {
141
249
  ...n.value,
142
250
  onClick: s
143
251
  }, r.default?.());
144
252
  }
145
- }), Le = M({
253
+ }), Pe = /* @__PURE__ */ _({
146
254
  name: "KrdsSpinner",
147
255
  props: { label: {
148
256
  type: String,
@@ -155,7 +263,7 @@ var be = Object.defineProperty, Je = (e, a) => {
155
263
  role: "status"
156
264
  }, e);
157
265
  }
158
- }), lt = M({
266
+ }), vt = /* @__PURE__ */ _({
159
267
  name: "KrdsInput",
160
268
  props: {
161
269
  modelValue: {
@@ -249,24 +357,24 @@ var be = Object.defineProperty, Je = (e, a) => {
249
357
  keyup: (e) => !0
250
358
  },
251
359
  setup(e, { emit: a, slots: r }) {
252
- const l = b(() => {
253
- const S = ["krds-input"];
254
- return e.size && S.push(e.size), e.class && S.push(e.class), S;
255
- }), n = (S) => {
256
- const $ = S.target;
257
- a("update:modelValue", e.type === "number" ? Number($.value) : $.value), a("input", S);
258
- }, s = (S) => {
259
- a("change", S);
260
- }, d = (S) => {
261
- a("focus", S);
262
- }, h = (S) => {
263
- a("blur", S);
264
- }, p = (S) => {
265
- a("keydown", S);
266
- }, w = (S) => {
267
- a("keyup", S);
268
- }, c = b(() => {
269
- const S = {
360
+ const l = C(() => {
361
+ const k = ["krds-input"];
362
+ return e.size && k.push(e.size), e.class && k.push(e.class), k;
363
+ }), n = (k) => {
364
+ const K = k.target;
365
+ a("update:modelValue", e.type === "number" ? Number(K.value) : K.value), a("input", k);
366
+ }, s = (k) => {
367
+ a("change", k);
368
+ }, u = (k) => {
369
+ a("focus", k);
370
+ }, g = (k) => {
371
+ a("blur", k);
372
+ }, h = (k) => {
373
+ a("keydown", k);
374
+ }, y = (k) => {
375
+ a("keyup", k);
376
+ }, d = C(() => {
377
+ const k = {
270
378
  type: e.type,
271
379
  class: l.value,
272
380
  value: e.modelValue,
@@ -280,22 +388,22 @@ var be = Object.defineProperty, Je = (e, a) => {
280
388
  autofocus: e.autofocus,
281
389
  onInput: n,
282
390
  onChange: s,
283
- onFocus: d,
284
- onBlur: h,
285
- onKeydown: p,
286
- onKeyup: w
391
+ onFocus: u,
392
+ onBlur: g,
393
+ onKeydown: h,
394
+ onKeyup: y
287
395
  };
288
- return e.maxlength !== void 0 && (S.maxlength = e.maxlength), e.minlength !== void 0 && (S.minlength = e.minlength), e.type === "number" && (e.max !== void 0 && (S.max = e.max), e.min !== void 0 && (S.min = e.min), e.step !== void 0 && (S.step = e.step)), S;
289
- }), B = b(() => {
290
- const S = ["form-conts"];
291
- return e.state !== "default" && S.push(`is-${e.state}`), e.icon && S.push("btn-ico-wrap"), S;
396
+ return e.maxlength !== void 0 && (k.maxlength = e.maxlength), e.minlength !== void 0 && (k.minlength = e.minlength), e.type === "number" && (e.max !== void 0 && (k.max = e.max), e.min !== void 0 && (k.min = e.min), e.step !== void 0 && (k.step = e.step)), k;
397
+ }), S = C(() => {
398
+ const k = ["form-conts"];
399
+ return e.state !== "default" && k.push(`is-${e.state}`), e.icon && k.push("btn-ico-wrap"), k;
292
400
  });
293
401
  return () => {
294
- const S = [t("input", c.value)];
295
- return e.loading ? t("div", { class: B.value }, [t("div", { class: "form-spinner" }, [...S, t(Le)])]) : (r.default && S.push(...r.default()), t("div", { class: B.value }, S));
402
+ const k = [t("input", d.value)];
403
+ return e.loading ? t("div", { class: S.value }, [t("div", { class: "form-spinner" }, [...k, t(Pe)])]) : (r.default && k.push(...r.default()), t("div", { class: S.value }, k));
296
404
  };
297
405
  }
298
- }), nt = lt, st = M({
406
+ }), pt = vt, ht = /* @__PURE__ */ _({
299
407
  name: "KrdsFormLabel",
300
408
  props: {
301
409
  for: {
@@ -328,7 +436,7 @@ var be = Object.defineProperty, Je = (e, a) => {
328
436
  onClick: l
329
437
  }, r.default?.())]);
330
438
  }
331
- }), rt = st, it = M({
439
+ }), gt = ht, yt = /* @__PURE__ */ _({
332
440
  name: "KrdsFormHint",
333
441
  props: {
334
442
  type: {
@@ -376,7 +484,7 @@ var be = Object.defineProperty, Je = (e, a) => {
376
484
  onClick: l
377
485
  }, r.default?.());
378
486
  }
379
- }), ot = it, ut = M({
487
+ }), mt = yt, bt = /* @__PURE__ */ _({
380
488
  name: "KrdsFormGroup",
381
489
  props: {
382
490
  class: {
@@ -393,7 +501,7 @@ var be = Object.defineProperty, Je = (e, a) => {
393
501
  }
394
502
  },
395
503
  setup(e, { slots: a }) {
396
- const r = b(() => {
504
+ const r = C(() => {
397
505
  const l = ["form-group"];
398
506
  return e.class && l.push(e.class), l;
399
507
  });
@@ -403,82 +511,88 @@ var be = Object.defineProperty, Je = (e, a) => {
403
511
  style: e.style
404
512
  }, a.default?.());
405
513
  }
406
- }), dt = ut;
407
- function ct(e, a) {
408
- const r = /* @__PURE__ */ new Date(), l = D(e || r.getFullYear()), n = D(a || r.getMonth() + 1), s = D(null), d = D(null), h = D(null), p = b(() => {
409
- const i = r.getFullYear(), v = [];
410
- for (let m = i - 10; m <= i + 10; m++) v.push(m);
411
- return v;
412
- }), w = b(() => Array.from({ length: 12 }, (i, v) => v + 1)), c = () => {
413
- s.value = null, d.value = null;
414
- }, B = () => {
415
- n.value === 1 ? (n.value = 12, l.value -= 1) : n.value -= 1;
514
+ }), kt = bt;
515
+ function St(e, a) {
516
+ const r = /* @__PURE__ */ new Date(), l = E(e || r.getFullYear()), n = E(a || r.getMonth() + 1), s = E(null), u = E(null), g = E(null), h = C(() => {
517
+ const o = r.getFullYear(), i = [];
518
+ for (let p = o - 10; p <= o + 10; p++) i.push(p);
519
+ return i;
520
+ }), y = C(() => Array.from({ length: 12 }, (o, i) => i + 1)), d = () => {
521
+ s.value = null, u.value = null;
416
522
  }, S = () => {
523
+ n.value === 1 ? (n.value = 12, l.value -= 1) : n.value -= 1;
524
+ }, k = () => {
417
525
  n.value === 12 ? (n.value = 1, l.value += 1) : n.value += 1;
418
- }, $ = (i, v = !1) => {
419
- if (v)
420
- s.value = i, d.value = i;
421
- else if (!s.value || s.value && d.value)
422
- s.value = i, d.value = null;
526
+ }, K = (o, i = !1) => {
527
+ if (i)
528
+ s.value = o, u.value = o;
529
+ else if (!s.value || s.value && u.value)
530
+ s.value = o, u.value = null;
423
531
  else {
424
- const m = new Date(s.value.replace(/\./g, "-"));
425
- new Date(i.replace(/\./g, "-")) < m ? (s.value = i, d.value = null) : d.value = i;
532
+ const p = new Date(s.value.replace(/\./g, "-"));
533
+ new Date(o.replace(/\./g, "-")) < p ? (s.value = o, u.value = null) : u.value = o;
426
534
  }
427
535
  };
428
536
  return {
429
537
  currentYear: l,
430
538
  currentMonth: n,
431
539
  selectedStartDate: s,
432
- selectedEndDate: d,
433
- activeDateSelector: h,
434
- yearOptions: p,
435
- monthOptions: w,
436
- clearDateSelection: c,
437
- prevMonth: B,
438
- nextMonth: S,
439
- handleDateSelection: $,
540
+ selectedEndDate: u,
541
+ activeDateSelector: g,
542
+ yearOptions: h,
543
+ monthOptions: y,
544
+ clearDateSelection: d,
545
+ prevMonth: S,
546
+ nextMonth: k,
547
+ handleDateSelection: K,
440
548
  selectToday: () => {
441
- const i = `${r.getFullYear()}.${String(r.getMonth() + 1).padStart(2, "0")}.${String(r.getDate()).padStart(2, "0")}`;
442
- $(i, !0);
549
+ const o = `${r.getFullYear()}.${String(r.getMonth() + 1).padStart(2, "0")}.${String(r.getDate()).padStart(2, "0")}`;
550
+ K(o, !0);
443
551
  },
444
- isDateInSelectedRange: (i) => {
445
- if (!s.value || !d.value) return {
552
+ isDateInSelectedRange: (o) => {
553
+ if (!s.value) return {
446
554
  isInRange: !1,
447
555
  isStart: !1,
448
556
  isEnd: !1
449
557
  };
450
- const v = new Date(i.replace(/\./g, "-")), m = new Date(s.value.replace(/\./g, "-")), x = new Date(d.value.replace(/\./g, "-")), K = i === s.value, E = i === d.value;
558
+ const i = o === s.value;
559
+ if (!u.value) return {
560
+ isInRange: i,
561
+ isStart: i,
562
+ isEnd: !1
563
+ };
564
+ const p = new Date(o.replace(/\./g, "-")), M = new Date(s.value.replace(/\./g, "-")), A = new Date(u.value.replace(/\./g, "-")), D = o === u.value;
451
565
  return {
452
- isInRange: v >= m && v <= x,
453
- isStart: K,
454
- isEnd: E
566
+ isInRange: p >= M && p <= A,
567
+ isStart: i,
568
+ isEnd: D
455
569
  };
456
570
  }
457
571
  };
458
572
  }
459
- function ft(e, a, r = {}) {
573
+ function wt(e, a, r = {}) {
460
574
  let l = null;
461
- const { ignore: n, event: s = "click" } = typeof r == "string" ? { ignore: r } : r, d = () => {
462
- l = (p) => {
463
- const w = p.target;
464
- e.value?.contains(w) || n && w.closest(n) || a();
575
+ const { ignore: n, event: s = "click" } = typeof r == "string" ? { ignore: r } : r, u = () => {
576
+ l = (h) => {
577
+ const y = h.target;
578
+ e.value?.contains(y) || n && y.closest(n) || a();
465
579
  }, document.addEventListener(s, l);
466
- }, h = () => {
580
+ }, g = () => {
467
581
  if (l) {
468
- const p = typeof r == "string" ? "click" : r.event || "click";
469
- document.removeEventListener(p, l), l = null;
582
+ const h = typeof r == "string" ? "click" : r.event || "click";
583
+ document.removeEventListener(h, l), l = null;
470
584
  }
471
585
  };
472
- return re(() => {
473
- d();
474
- }), fe(() => {
475
- h();
586
+ return ee(() => {
587
+ u();
588
+ }), oe(() => {
589
+ g();
476
590
  }), {
477
- setupGlobalListeners: d,
478
- removeGlobalListeners: h
591
+ setupGlobalListeners: u,
592
+ removeGlobalListeners: g
479
593
  };
480
594
  }
481
- var vt = [
595
+ var Kt = [
482
596
  "일",
483
597
  "월",
484
598
  "화",
@@ -486,7 +600,7 @@ var vt = [
486
600
  "목",
487
601
  "금",
488
602
  "토"
489
- ], pt = M({
603
+ ], ke = /* @__PURE__ */ new Set(), Ct = /* @__PURE__ */ _({
490
604
  name: "KrdsDateInput",
491
605
  props: {
492
606
  modelValue: {
@@ -537,6 +651,10 @@ var vt = [
537
651
  type: Number,
538
652
  default: void 0
539
653
  },
654
+ teleport: {
655
+ type: Boolean,
656
+ default: !1
657
+ },
540
658
  class: {
541
659
  type: String,
542
660
  default: void 0
@@ -554,57 +672,79 @@ var vt = [
554
672
  blur: (e) => !0
555
673
  },
556
674
  setup(e, { emit: a }) {
557
- const r = D(), l = D(), n = D(!1), s = D(null), { currentYear: d, currentMonth: h, selectedStartDate: p, selectedEndDate: w, yearOptions: c, monthOptions: B, prevMonth: S, nextMonth: $, handleDateSelection: f, selectToday: o, isDateInSelectedRange: i } = ct(e.initialYear, e.initialMonth), v = () => {
558
- n.value && l.value?.focus(), n.value = !1, s.value = null;
675
+ const r = E(), l = E(), n = E(!1), s = E(null), u = E(!0), g = E(), h = E(!1);
676
+ ee(() => h.value = !0);
677
+ const y = () => {
678
+ const w = l.value?.parentElement?.getBoundingClientRect();
679
+ w && (g.value = {
680
+ position: "absolute",
681
+ top: `${w.bottom + window.scrollY}px`,
682
+ left: `${w.left + window.scrollX}px`,
683
+ width: `${w.width}px`
684
+ });
685
+ }, d = () => {
686
+ const w = l.value?.parentElement?.getBoundingClientRect(), V = r.value?.querySelector(".calendar-wrap");
687
+ if (!w || !V) return;
688
+ const I = w.top, J = window.innerHeight - w.bottom;
689
+ u.value = I >= V.offsetHeight || I >= J, e.teleport && y();
690
+ }, S = (w) => {
691
+ const V = w ? "addEventListener" : "removeEventListener";
692
+ window[V]("scroll", y, { capture: !0 }), window[V]("resize", y);
559
693
  };
560
- ft(r, v, ".calendar-conts");
561
- const m = b(() => {
562
- const L = [
694
+ se(n, async (w) => {
695
+ e.teleport && S(w), w && (await pe(), d());
696
+ }), oe(() => S(!1));
697
+ const { currentYear: k, currentMonth: K, selectedStartDate: m, selectedEndDate: v, yearOptions: o, monthOptions: i, prevMonth: p, nextMonth: M, handleDateSelection: A, selectToday: D, isDateInSelectedRange: L } = St(e.initialYear, e.initialMonth), $ = () => {
698
+ n.value && l.value?.focus(), n.value = !1, s.value = null, ke.delete($);
699
+ };
700
+ oe(() => ke.delete($)), wt(r, $, ".calendar-conts");
701
+ const f = C(() => {
702
+ const w = [
563
703
  "krds-input",
564
704
  "datepicker",
565
705
  "cal"
566
706
  ];
567
- return e.size && L.push(e.size), e.class && L.push(e.class), L;
568
- }), x = b(() => ["form-conts", "calendar-conts"]), K = b(() => ({
707
+ return e.size && w.push(e.size), e.class && w.push(e.class), w;
708
+ }), T = C(() => ["form-conts", "calendar-conts"]), R = C(() => ({
569
709
  "krds-calendar-area": !0,
570
710
  active: n.value
571
- })), E = b(() => {
572
- const L = d.value, R = h.value, Y = new Date(L, R - 1, 1), V = new Date(Y);
573
- V.setDate(V.getDate() - Y.getDay());
574
- const F = [], z = new Date(V);
575
- for (let N = 0; N < 6; N++) {
576
- const U = [];
577
- for (let J = 0; J < 7; J++) {
578
- const ee = `${z.getFullYear()}.${String(z.getMonth() + 1).padStart(2, "0")}.${String(z.getDate()).padStart(2, "0")}`, ue = z.getDay();
579
- U.push({
580
- day: z.getDate(),
581
- dateString: ee,
582
- isCurrentMonth: z.getMonth() === R - 1,
583
- isToday: z.toDateString() === (/* @__PURE__ */ new Date()).toDateString(),
584
- isPrevMonth: z.getMonth() < R - 1 || z.getMonth() === 11 && R === 1,
585
- isNextMonth: z.getMonth() > R - 1 || z.getMonth() === 0 && R === 12,
586
- isSunday: ue === 0,
587
- isSaturday: ue === 6
588
- }), z.setDate(z.getDate() + 1);
711
+ })), H = C(() => {
712
+ const w = k.value, V = K.value, I = new Date(w, V - 1, 1), J = new Date(I);
713
+ J.setDate(J.getDate() - I.getDay());
714
+ const ie = [], X = new Date(J);
715
+ for (let ae = 0; ae < 6; ae++) {
716
+ const ye = [];
717
+ for (let me = 0; me < 7; me++) {
718
+ const we = `${X.getFullYear()}.${String(X.getMonth() + 1).padStart(2, "0")}.${String(X.getDate()).padStart(2, "0")}`, be = X.getDay();
719
+ ye.push({
720
+ day: X.getDate(),
721
+ dateString: we,
722
+ isCurrentMonth: X.getMonth() === V - 1,
723
+ isToday: X.toDateString() === (/* @__PURE__ */ new Date()).toDateString(),
724
+ isPrevMonth: X < I,
725
+ isNextMonth: X.getMonth() !== V - 1 && X > I,
726
+ isSunday: be === 0,
727
+ isSaturday: be === 6
728
+ }), X.setDate(X.getDate() + 1);
589
729
  }
590
- F.push(U);
730
+ ie.push(ye);
591
731
  }
592
- return F;
593
- }), T = (L) => {
594
- const R = [];
595
- if (L.isPrevMonth && R.push("old"), L.isNextMonth && R.push("new"), L.isToday && R.push("today"), L.isSunday && R.push("day-off"), e.holidays?.includes(L.dateString) && R.push("day-off"), e.eventDates?.includes(L.dateString) && R.push("day-event"), L.isCurrentMonth) {
596
- const Y = i(L.dateString);
597
- Y.isInRange && (R.push("period"), Y.isStart && R.push("start"), Y.isEnd && R.push("end"));
732
+ return ie;
733
+ }), O = (w) => {
734
+ const V = [];
735
+ if (w.isPrevMonth && V.push("old"), w.isNextMonth && V.push("new"), w.isToday && V.push("today"), w.isSunday && V.push("day-off"), e.holidays?.includes(w.dateString) && V.push("day-off"), e.eventDates?.includes(w.dateString) && V.push("day-event"), w.isCurrentMonth) {
736
+ const I = L(w.dateString);
737
+ I.isInRange && (V.push("period"), I.isStart && V.push("start"), I.isEnd && V.push("end"));
598
738
  }
599
- return R;
600
- }, _ = b(() => [
739
+ return V;
740
+ }, N = C(() => [
601
741
  {
602
742
  id: "get-today",
603
743
  label: "오늘",
604
744
  class: "text",
605
745
  variant: void 0,
606
746
  size: "small",
607
- handler: o
747
+ handler: D
608
748
  },
609
749
  {
610
750
  id: "cancel-btn",
@@ -612,7 +752,7 @@ var vt = [
612
752
  class: void 0,
613
753
  variant: "tertiary",
614
754
  size: "small",
615
- handler: v
755
+ handler: $
616
756
  },
617
757
  {
618
758
  id: "confirm-btn",
@@ -620,64 +760,72 @@ var vt = [
620
760
  class: void 0,
621
761
  variant: "primary",
622
762
  size: "small",
623
- handler: O
763
+ handler: re
624
764
  }
625
- ]), g = (L) => {
626
- s.value === L ? s.value = null : s.value = L;
627
- }, A = (L) => {
628
- d.value = L, s.value = null;
629
- }, I = (L) => {
630
- h.value = L, s.value = null;
631
- }, O = () => {
632
- p.value && (w.value && p.value !== w.value ? a("update:modelValue", `${p.value} ~ ${w.value}`) : a("update:modelValue", p.value), v());
633
- }, H = () => {
634
- n.value = !0, s.value = null, setTimeout(() => {
765
+ ]), j = (w) => {
766
+ r.value?.querySelector(`.btn-cal-switch.${w}`)?.focus();
767
+ }, U = (w) => {
768
+ s.value === w ? s.value = null : s.value = w;
769
+ }, ce = (w) => {
770
+ k.value = w, s.value = null;
771
+ }, he = (w) => {
772
+ K.value = w, s.value = null;
773
+ }, re = () => {
774
+ m.value && (v.value && m.value !== v.value ? a("update:modelValue", `${m.value} ~ ${v.value}`) : a("update:modelValue", m.value), $());
775
+ }, Q = () => {
776
+ ke.forEach((w) => w()), ke.add($), n.value = !0, s.value = null, setTimeout(() => {
635
777
  r.value?.querySelector(".calendar-wrap")?.focus();
636
778
  }, 50);
637
- }, G = () => {
638
- n.value ? v() : H();
639
- }, j = (L) => {
640
- L.code === "Escape" && (s.value ? s.value = null : n.value && v());
641
- }, X = (L) => {
642
- const R = L.target;
643
- a("update:modelValue", R.value), a("input", L);
644
- }, le = (L) => {
645
- a("change", L);
646
- }, de = (L) => {
647
- a("focus", L);
648
- }, ae = (L) => {
649
- a("blur", L);
650
- }, Q = (L) => {
651
- const R = L === "year", Y = R ? c.value : B.value, V = R ? d.value : h.value, F = (z) => R ? `${z}년` : `${z.toString().padStart(2, "0")}월`;
779
+ }, fe = () => {
780
+ n.value ? $() : Q();
781
+ }, te = (w) => {
782
+ w.code === "Escape" && (s.value ? s.value = null : n.value && $());
783
+ }, ve = (w) => {
784
+ const V = w.target;
785
+ a("update:modelValue", V.value), a("input", w);
786
+ }, ne = (w) => {
787
+ a("change", w);
788
+ }, P = (w) => {
789
+ a("focus", w);
790
+ }, z = (w) => {
791
+ a("blur", w);
792
+ }, G = (w) => {
793
+ const V = w === "year", I = V ? o.value : i.value, J = V ? k.value : K.value, ie = (ae) => V ? `${ae}년` : `${ae.toString().padStart(2, "0")}월`, X = s.value === w;
652
794
  return t("div", { class: "calendar-drop-down" }, [t("button", {
653
795
  type: "button",
654
- class: `btn-cal-switch ${L}`,
655
- "aria-label": R ? "연도 선택" : "월 선택",
656
- "aria-expanded": s.value === L,
657
- onClick: () => g(L)
658
- }, F(V)), ve(t("div", { class: `calendar-select ${R ? "calendar-year-wrap" : "calendar-mon-wrap"}` }, [t("ul", { class: `sel ${L}` }, Y.map((z) => t("li", { key: z }, [t("button", {
796
+ class: `btn-cal-switch ${w}`,
797
+ "aria-label": V ? "연도 선택" : "월 선택",
798
+ "aria-expanded": X,
799
+ onClick: () => U(w)
800
+ }, ie(J)), ge(t("div", { class: [
801
+ "calendar-select",
802
+ V ? "calendar-year-wrap" : "calendar-mon-wrap",
803
+ { active: X }
804
+ ] }, [t("ul", { class: `sel ${w}` }, I.map((ae) => t("li", { key: ae }, [t("button", {
659
805
  type: "button",
660
- class: { active: z === V },
661
- onClick: () => R ? A(z) : I(z)
662
- }, F(z))])))]), [[pe, s.value === L]])]);
663
- }, ne = () => t("table", { class: "calendar-tbl" }, [
664
- t("caption", null, `${d.value}년 ${h.value.toString().padStart(2, "0")}월`),
665
- t("thead", null, [t("tr", null, vt.map((L) => t("th", null, L)))]),
666
- t("tbody", null, E.value.map((L, R) => t("tr", { key: R }, L.map((Y, V) => t("td", {
667
- key: V,
668
- class: T(Y),
669
- "data-date": Y.dateString
806
+ class: { active: ae === J },
807
+ onClick: () => {
808
+ V ? ce(ae) : he(ae), j(w);
809
+ }
810
+ }, ie(ae))])))]), [[Se, X]])]);
811
+ }, q = () => t("table", { class: "calendar-tbl" }, [
812
+ t("caption", null, `${k.value}년 ${K.value.toString().padStart(2, "0")}월`),
813
+ t("thead", null, [t("tr", null, Kt.map((w) => t("th", null, w)))]),
814
+ t("tbody", null, H.value.map((w, V) => t("tr", { key: V }, w.map((I, J) => t("td", {
815
+ key: J,
816
+ class: O(I),
817
+ "data-date": I.dateString
670
818
  }, [t("button", {
671
819
  type: "button",
672
820
  class: "btn-set-date",
673
- "aria-pressed": i(Y.dateString).isInRange ? "true" : "false",
674
- onClick: () => f(Y.dateString)
675
- }, [t("span", null, String(Y.day))])])))))
821
+ "aria-pressed": L(I.dateString).isInRange ? "true" : "false",
822
+ onClick: () => A(I.dateString)
823
+ }, [t("span", null, String(I.day))])])))))
676
824
  ]);
677
- return () => t("div", { class: "form-conts" }, [t("div", { class: x.value }, [t("div", { class: "calendar-input" }, [t("input", {
825
+ return () => t("div", { class: "form-conts" }, [t("div", { class: T.value }, [t("div", { class: "calendar-input" }, [t("input", {
678
826
  id: e.id,
679
827
  name: e.name,
680
- class: m.value,
828
+ class: f.value,
681
829
  placeholder: e.placeholder,
682
830
  value: e.modelValue,
683
831
  readonly: e.readonly,
@@ -685,51 +833,55 @@ var vt = [
685
833
  required: e.required,
686
834
  autofocus: e.autofocus,
687
835
  type: "text",
688
- onInput: X,
689
- onChange: le,
690
- onFocus: de,
691
- onBlur: ae
836
+ onInput: ve,
837
+ onChange: ne,
838
+ onFocus: P,
839
+ onBlur: z
692
840
  }), t("button", {
693
841
  ref: l,
694
842
  class: `krds-btn ${e.size || "medium"} icon form-btn-datepicker`,
695
843
  disabled: e.disabled,
696
844
  "aria-expanded": n.value,
697
845
  type: "button",
698
- onClick: G
699
- }, [t("span", { class: "sr-only" }, "달력 열기"), t("i", { class: "svg-icon ico-calendar" })])]), t("div", {
846
+ onClick: fe
847
+ }, [t("span", { class: "sr-only" }, "달력 열기"), t("i", { class: "svg-icon ico-calendar" })])]), t(Ce, {
848
+ to: "body",
849
+ disabled: !(e.teleport && h.value)
850
+ }, [t("div", {
700
851
  ref: r,
701
- class: K.value
702
- }, [ve(t("div", {
703
- class: "calendar-wrap bottom",
852
+ class: R.value,
853
+ style: e.teleport ? g.value : void 0
854
+ }, [ge(t("div", {
855
+ class: ["calendar-wrap", { bottom: u.value }],
704
856
  "aria-label": "달력",
705
857
  tabindex: "0",
706
- onKeydown: j
858
+ onKeydown: te
707
859
  }, [
708
860
  t("div", { class: "calendar-head" }, [
709
861
  t("button", {
710
862
  type: "button",
711
863
  class: "btn-cal-move prev",
712
- onClick: S
864
+ onClick: p
713
865
  }, [t("span", { class: "sr-only" }, "이전 달")]),
714
- t("div", { class: "calendar-switch-wrap" }, [Q("year"), Q("month")]),
866
+ t("div", { class: "calendar-switch-wrap" }, [G("year"), G("month")]),
715
867
  t("button", {
716
868
  type: "button",
717
869
  class: "btn-cal-move next",
718
- onClick: $
870
+ onClick: M
719
871
  }, [t("span", { class: "sr-only" }, "다음 달")])
720
872
  ]),
721
- t("div", { class: "calendar-body" }, [t("div", { class: "calendar-table-wrap" }, [ne()])]),
722
- t("div", { class: "calendar-footer" }, [t("div", { class: "calendar-btn-wrap" }, _.value.map((L) => t($e, {
723
- id: L.id,
724
- key: L.id,
725
- class: L.class,
726
- variant: L.variant,
727
- size: L.size,
728
- onClick: L.handler
729
- }, { default: () => L.label })))])
730
- ]), [[pe, n.value]])])])]);
873
+ t("div", { class: "calendar-body" }, [t("div", { class: "calendar-table-wrap" }, [q()])]),
874
+ t("div", { class: "calendar-footer" }, [t("div", { class: "calendar-btn-wrap" }, N.value.map((w) => t(Fe, {
875
+ id: w.id,
876
+ key: w.id,
877
+ class: w.class,
878
+ variant: w.variant,
879
+ size: w.size,
880
+ onClick: w.handler
881
+ }, { default: () => w.label })))])
882
+ ]), [[Se, n.value]])])])])]);
731
883
  }
732
- }), gt = pt, ht = M({
884
+ }), xt = Ct, $t = /* @__PURE__ */ _({
733
885
  name: "KrdsTextarea",
734
886
  props: {
735
887
  modelValue: {
@@ -807,31 +959,31 @@ var vt = [
807
959
  keyup: (e) => !0
808
960
  },
809
961
  setup(e, { emit: a }) {
810
- const r = D(0);
811
- se(() => e.modelValue, (o) => {
812
- r.value = (o || "").length;
962
+ const r = E(0);
963
+ se(() => e.modelValue, (v) => {
964
+ r.value = (v || "").length;
813
965
  }, { immediate: !0 });
814
- const l = b(() => {
815
- const o = ["krds-input"];
816
- return e.size && o.push(e.size), e.class && o.push(e.class), o;
817
- }), n = b(() => {
818
- const o = {};
819
- return e.resize && (o.resize = e.resize), o;
820
- }), s = (o) => {
821
- const i = o.target.value;
822
- r.value = i.length, a("update:modelValue", i), a("input", o);
823
- }, d = (o) => {
824
- a("change", o);
825
- }, h = (o) => {
826
- a("focus", o);
827
- }, p = (o) => {
828
- a("blur", o);
829
- }, w = (o) => {
830
- a("keydown", o);
831
- }, c = (o) => {
832
- a("keyup", o);
833
- }, B = b(() => {
834
- const o = {
966
+ const l = C(() => {
967
+ const v = ["krds-input"];
968
+ return e.size && v.push(e.size), e.class && v.push(e.class), v;
969
+ }), n = C(() => {
970
+ const v = {};
971
+ return e.resize && (v.resize = e.resize), v;
972
+ }), s = (v) => {
973
+ const o = v.target.value;
974
+ r.value = o.length, a("update:modelValue", o), a("input", v);
975
+ }, u = (v) => {
976
+ a("change", v);
977
+ }, g = (v) => {
978
+ a("focus", v);
979
+ }, h = (v) => {
980
+ a("blur", v);
981
+ }, y = (v) => {
982
+ a("keydown", v);
983
+ }, d = (v) => {
984
+ a("keyup", v);
985
+ }, S = C(() => {
986
+ const v = {
835
987
  class: l.value,
836
988
  style: n.value,
837
989
  value: e.modelValue,
@@ -845,23 +997,23 @@ var vt = [
845
997
  rows: e.rows,
846
998
  cols: e.cols,
847
999
  onInput: s,
848
- onChange: d,
849
- onFocus: h,
850
- onBlur: p,
851
- onKeydown: w,
852
- onKeyup: c
1000
+ onChange: u,
1001
+ onFocus: g,
1002
+ onBlur: h,
1003
+ onKeydown: y,
1004
+ onKeyup: d
853
1005
  };
854
- return e.maxlength !== void 0 && (o.maxlength = e.maxlength), e.minlength !== void 0 && (o.minlength = e.minlength), o;
855
- }), S = b(() => ["form-conts"]), $ = b(() => ["textarea-wrap"]), f = b(() => e.showCount ? {
1006
+ return e.maxlength !== void 0 && (v.maxlength = e.maxlength), e.minlength !== void 0 && (v.minlength = e.minlength), v;
1007
+ }), k = C(() => ["form-conts"]), K = C(() => ["textarea-wrap"]), m = C(() => e.showCount ? {
856
1008
  current: r.value,
857
1009
  max: e.maxlength || ""
858
1010
  } : null);
859
1011
  return () => {
860
- const o = [t("textarea", B.value)];
861
- return f.value && o.push(t("p", { class: "textarea-count" }, [t("span", { class: "count-now" }, f.value.current), t("span", { class: "count-total" }, f.value.max ? `/${f.value.max}` : "")])), t("div", { class: S.value }, [t("div", { class: $.value }, o)]);
1012
+ const v = [t("textarea", S.value)];
1013
+ return m.value && v.push(t("p", { class: "textarea-count" }, [t("span", { class: "count-now" }, m.value.current), t("span", { class: "count-total" }, m.value.max ? `/${m.value.max}` : "")])), t("div", { class: k.value }, [t("div", { class: K.value }, v)]);
862
1014
  };
863
1015
  }
864
- }), yt = ht, mt = M({
1016
+ }), Lt = $t, Bt = /* @__PURE__ */ _({
865
1017
  name: "KrdsSelect",
866
1018
  props: {
867
1019
  modelValue: {
@@ -923,17 +1075,17 @@ var vt = [
923
1075
  blur: (e) => !0
924
1076
  },
925
1077
  setup(e, { emit: a, slots: r }) {
926
- const l = b(() => {
927
- const c = [];
928
- return e.sort ? c.push("krds-form-select-sort") : c.push("krds-form-select"), e.size && c.push(e.size), e.class && c.push(e.class), c;
929
- }), n = (c) => {
930
- const B = c.target;
931
- a("update:modelValue", B.value === "" ? null : B.value);
932
- }, s = (c) => {
933
- a("focus", c);
934
- }, d = (c) => {
935
- a("blur", c);
936
- }, h = b(() => ({
1078
+ const l = C(() => {
1079
+ const d = [];
1080
+ return e.sort ? d.push("krds-form-select-sort") : d.push("krds-form-select"), e.size && d.push(e.size), e.class && d.push(e.class), d;
1081
+ }), n = (d) => {
1082
+ const S = d.target;
1083
+ a("update:modelValue", S.value === "" ? null : S.value);
1084
+ }, s = (d) => {
1085
+ a("focus", d);
1086
+ }, u = (d) => {
1087
+ a("blur", d);
1088
+ }, g = C(() => ({
937
1089
  class: l.value,
938
1090
  value: e.modelValue ?? "",
939
1091
  title: e.title || e.placeholder,
@@ -942,30 +1094,30 @@ var vt = [
942
1094
  disabled: e.disabled || e.readonly,
943
1095
  onChange: n,
944
1096
  onFocus: s,
945
- onBlur: d
946
- })), p = b(() => {
947
- const c = ["form-conts"];
948
- return e.state !== "default" && c.push(`is-${e.state}`), c;
949
- }), w = () => {
950
- const c = [];
951
- return e.placeholder && !e.modelValue && c.push(t("option", {
1097
+ onBlur: u
1098
+ })), h = C(() => {
1099
+ const d = ["form-conts"];
1100
+ return e.state !== "default" && d.push(`is-${e.state}`), d;
1101
+ }), y = () => {
1102
+ const d = [];
1103
+ return e.placeholder && !e.modelValue && d.push(t("option", {
952
1104
  value: "",
953
1105
  disabled: !0,
954
1106
  selected: !0
955
- }, e.placeholder)), e.options && e.options.length > 0 && e.options.forEach((B) => {
956
- c.push(t("option", {
957
- value: B.value,
958
- disabled: B.disabled,
959
- selected: B.value === e.modelValue
960
- }, B.label));
961
- }), r.default && c.push(...r.default()), c;
1107
+ }, e.placeholder)), e.options && e.options.length > 0 && e.options.forEach((S) => {
1108
+ d.push(t("option", {
1109
+ value: S.value,
1110
+ disabled: S.disabled,
1111
+ selected: S.value === e.modelValue
1112
+ }, S.label));
1113
+ }), r.default && d.push(...r.default()), d;
962
1114
  };
963
1115
  return () => {
964
- const c = t("select", h.value, w());
965
- return e.sort ? c : t("div", { class: p.value }, [c]);
1116
+ const d = t("select", g.value, y());
1117
+ return e.sort ? d : t("div", { class: h.value }, [d]);
966
1118
  };
967
1119
  }
968
- }), bt = mt, kt = 0, St = M({
1120
+ }), Et = Bt, Dt = 0, Tt = /* @__PURE__ */ _({
969
1121
  name: "KrdsFileUpload",
970
1122
  props: {
971
1123
  modelValue: {
@@ -1067,61 +1219,66 @@ var vt = [
1067
1219
  preview: (e) => !0
1068
1220
  },
1069
1221
  setup(e, { emit: a }) {
1070
- const r = D(!1), l = D(null), n = e.id ? `${e.id}-input` : `krds-file-upload-${++kt}`, s = (g) => g < 1024 ? `${g}B` : g < 1048576 ? `${Math.round(g / 1024)}KB` : `${(g / 1048576).toFixed(1)}MB`, d = (g) => {
1071
- const A = g.split(".");
1072
- return A.length > 1 ? A.pop().toLowerCase() : "";
1073
- }, h = (g) => {
1074
- const A = d(g.name), I = A ? g.name.slice(0, -(A.length + 1)) : g.name;
1075
- return A ? `${I} [${A}, ${s(g.size)}]` : `${g.name} [${s(g.size)}]`;
1076
- }, p = () => `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, w = (g) => {
1077
- if (e.maxFileSize && g.size > e.maxFileSize) return `등록 가능한 파일 용량을 초과하였습니다.
1222
+ const r = E(!1), l = E(null), n = e.id ? `${e.id}-input` : `krds-file-upload-${++Dt}`, s = (f) => f < 1024 ? `${f}B` : f < 1048576 ? `${Math.round(f / 1024)}KB` : `${Number((f / 1048576).toFixed(1))}MB`, u = (f) => {
1223
+ const T = f.split(".");
1224
+ return T.length > 1 ? T.pop().toLowerCase() : "";
1225
+ }, g = (f) => {
1226
+ const T = u(f.name), R = T ? f.name.slice(0, -(T.length + 1)) : f.name;
1227
+ return T ? `${R} [${T}, ${s(f.size)}]` : `${f.name} [${s(f.size)}]`;
1228
+ }, h = () => `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`, y = (f) => {
1229
+ if (e.maxFileSize && f.size >= e.maxFileSize) return `등록 가능한 파일 용량을 초과하였습니다.
1078
1230
  ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1079
1231
  if (e.accept) {
1080
- const A = e.accept.split(",").map((H) => H.trim().toLowerCase()), I = `.${d(g.name)}`, O = g.type;
1081
- if (!A.some((H) => H.startsWith(".") ? I === H : H.endsWith("/*") ? O.startsWith(H.replace("/*", "/")) : O === H)) return "허용되지 않는 파일 형식입니다.";
1232
+ const T = e.accept.split(",").map((O) => O.trim().toLowerCase()), R = `.${u(f.name)}`, H = f.type;
1233
+ if (!T.some((O) => O.startsWith(".") ? R === O : O.endsWith("/*") ? H.startsWith(O.replace("/*", "/")) : H === O)) return "허용되지 않는 파일 형식입니다.";
1082
1234
  }
1083
1235
  return null;
1084
- }, c = (g) => {
1236
+ }, d = (f) => {
1085
1237
  if (e.disabled || e.readonly) return;
1086
- let A = [...e.modelValue || []];
1087
- !e.multiple && A.length > 0 && (A = []);
1088
- const I = [];
1089
- for (let O = 0; O < g.length && !(A.length + I.length >= e.maxFiles); O++) {
1090
- const H = g[O], G = w(H), j = {
1091
- id: p(),
1092
- file: H,
1093
- name: H.name,
1094
- size: H.size,
1095
- type: H.type,
1096
- status: G ? "error" : "pending",
1097
- errorMessage: G || void 0
1238
+ let T = [...e.modelValue || []];
1239
+ !e.multiple && T.length > 0 && (T = []);
1240
+ const R = [];
1241
+ let H = T.filter((N) => N.status !== "error").length;
1242
+ const O = e.multiple ? Array.from(f) : Array.from(f).slice(0, 1);
1243
+ for (const N of O) {
1244
+ if (H >= e.maxFiles) break;
1245
+ const j = y(N);
1246
+ j || H++;
1247
+ const U = {
1248
+ id: h(),
1249
+ file: N,
1250
+ name: N.name,
1251
+ size: N.size,
1252
+ type: N.type,
1253
+ status: j ? "error" : "pending",
1254
+ errorMessage: j || void 0
1098
1255
  };
1099
- I.push(j), G ? a("file-error", j, G) : a("file-added", j);
1256
+ R.push(U), j ? a("file-error", U, j) : a("file-added", U);
1100
1257
  }
1101
- I.length > 0 && a("update:modelValue", [...A, ...I]);
1102
- }, B = (g) => {
1103
- const A = g.target;
1104
- A.files?.length && (c(A.files), A.value = "");
1105
- }, S = (g) => {
1106
- e.disabled || e.readonly || !e.dragAndDrop || (g.preventDefault(), r.value = !0);
1107
- }, $ = () => {
1258
+ R.length > 0 && a("update:modelValue", [...T, ...R]);
1259
+ }, S = (f) => {
1260
+ const T = f.target;
1261
+ T.files?.length && (d(T.files), T.value = "");
1262
+ }, k = (f) => {
1263
+ e.disabled || e.readonly || !e.dragAndDrop || (f.preventDefault(), r.value = !0);
1264
+ }, K = () => {
1108
1265
  r.value = !1;
1109
- }, f = (g) => {
1110
- g.preventDefault(), r.value = !1, !(e.disabled || e.readonly || !e.dragAndDrop) && g.dataTransfer?.files && c(g.dataTransfer.files);
1111
- }, o = () => {
1112
- e.disabled || e.readonly || l.value?.click();
1113
- }, i = (g) => {
1114
- e.disabled || e.readonly || (a("update:modelValue", (e.modelValue || []).filter((A) => A.id !== g)), a("file-removed", g));
1266
+ }, m = (f) => {
1267
+ f.preventDefault(), r.value = !1, !(e.disabled || e.readonly || !e.dragAndDrop) && f.dataTransfer?.files && d(f.dataTransfer.files);
1115
1268
  }, v = () => {
1269
+ e.disabled || e.readonly || l.value?.click();
1270
+ }, o = (f) => {
1271
+ e.disabled || e.readonly || (a("update:modelValue", (e.modelValue || []).filter((T) => T.id !== f)), a("file-removed", f));
1272
+ }, i = () => {
1116
1273
  e.disabled || e.readonly || (a("update:modelValue", []), a("clear-all"));
1117
- }, m = b(() => {
1118
- const g = ["krds-file-upload", "line"];
1119
- return e.class && g.push(e.class), g;
1120
- }), x = () => t("div", { class: "file-head" }, [t("h3", { class: "tit" }, e.title), t("div", null, [t("p", null, e.description)])]), K = () => t("div", {
1121
- class: "file-upload",
1122
- onDragover: S,
1123
- onDragleave: $,
1124
- onDrop: f
1274
+ }, p = C(() => {
1275
+ const f = ["krds-file-upload", "line"];
1276
+ return e.class && f.push(e.class), f;
1277
+ }), M = () => t("div", { class: "file-head" }, [t("h3", { class: "tit" }, e.title), t("div", null, [t("p", null, e.description)])]), A = () => t("div", {
1278
+ class: ["file-upload", { active: r.value }],
1279
+ onDragover: k,
1280
+ onDragleave: K,
1281
+ onDrop: m
1125
1282
  }, [t("p", { class: "txt" }, e.placeholder), t("div", { class: "file-upload-btn-wrap" }, [t("input", {
1126
1283
  ref: l,
1127
1284
  type: "file",
@@ -1130,64 +1287,64 @@ ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1130
1287
  hidden: !0,
1131
1288
  accept: e.accept || void 0,
1132
1289
  multiple: e.multiple,
1133
- onChange: B
1290
+ onChange: S
1134
1291
  }), t("label", { for: n }, [t("button", {
1135
1292
  type: "button",
1136
1293
  class: ["krds-btn", e.size],
1137
1294
  disabled: e.disabled || void 0,
1138
- onClick: o
1139
- }, [t("i", { class: "svg-icon ico-upload" }), "파일선택"])])])]), E = (g) => {
1140
- const A = [];
1141
- return g.status === "uploading" ? A.push(t("span", {
1295
+ onClick: v
1296
+ }, [t("i", { class: "svg-icon ico-upload" }), "파일선택"])])])]), D = (f) => {
1297
+ const T = [];
1298
+ return f.status === "uploading" ? T.push(t("span", {
1142
1299
  class: "krds-spinner",
1143
1300
  role: "status"
1144
- }, [t("span", { class: "sr-only" }, "업로드 중")])) : g.downloadUrl ? (e.showDownload && A.push(t("button", {
1301
+ }, [t("span", { class: "sr-only" }, "업로드 중")])) : f.downloadUrl ? (e.showDownload && T.push(t("button", {
1145
1302
  type: "button",
1146
1303
  class: "krds-btn medium text",
1147
- onClick: () => a("download", g)
1148
- }, ["다운로드 ", t("i", { class: "svg-icon ico-down" })])), e.showPreviewButton && A.push(t("button", {
1304
+ onClick: () => a("download", f)
1305
+ }, ["다운로드 ", t("i", { class: "svg-icon ico-down" })])), e.showPreviewButton && T.push(t("button", {
1149
1306
  type: "button",
1150
1307
  class: "krds-btn medium text",
1151
- onClick: () => a("preview", g)
1152
- }, ["바로보기 ", t("i", { class: "svg-icon ico-angle right" })]))) : g.status === "completed" ? A.push(t("span", { class: "ico-invalid complete" }, [t("em", { class: "sr-only" }, "업로드 완료")])) : e.readonly || A.push(t("button", {
1308
+ onClick: () => a("preview", f)
1309
+ }, ["바로보기 ", t("i", { class: "svg-icon ico-angle right" })]))) : f.status === "completed" ? T.push(t("span", { class: "ico-invalid complete" }, [t("em", { class: "sr-only" }, "업로드 완료")])) : e.readonly || T.push(t("button", {
1153
1310
  type: "button",
1154
1311
  class: "krds-btn medium text",
1155
1312
  disabled: e.disabled || void 0,
1156
- onClick: () => i(g.id)
1157
- }, ["삭제 ", t("i", { class: "svg-icon ico-delete-fill" })])), A;
1158
- }, T = (g) => {
1159
- const A = [t("div", { class: g.downloadUrl ? "file-info m-column" : "file-info" }, [t("div", { class: "file-name" }, h(g)), t("div", { class: "btn-wrap" }, E(g))])];
1160
- if (g.status === "error" && g.errorMessage) {
1161
- const I = g.errorMessage.split(`
1162
- `), O = [];
1163
- I.forEach((H, G) => {
1164
- G > 0 && O.push(t("br")), O.push(H);
1165
- }), A.push(t("p", { class: "file-hint-invalid" }, O));
1313
+ onClick: () => o(f.id)
1314
+ }, ["삭제 ", t("i", { class: "svg-icon ico-delete-fill" })])), T;
1315
+ }, L = (f) => {
1316
+ const T = [t("div", { class: f.downloadUrl ? "file-info m-column" : "file-info" }, [t("div", { class: "file-name" }, g(f)), t("div", { class: "btn-wrap" }, D(f))])];
1317
+ if (f.status === "error" && f.errorMessage) {
1318
+ const R = f.errorMessage.split(`
1319
+ `), H = [];
1320
+ R.forEach((O, N) => {
1321
+ N > 0 && H.push(t("br")), H.push(O);
1322
+ }), T.push(t("p", { class: "file-hint-invalid" }, H));
1166
1323
  }
1167
1324
  return t("li", {
1168
- key: g.id,
1169
- class: g.status === "error" ? "is-error" : void 0
1170
- }, A);
1171
- }, _ = (g) => {
1172
- const A = g.filter((O) => O.status !== "error").length, I = [t("div", { class: "total" }, [t("span", { class: "current" }, `${A}개`), ` / ${e.maxFiles}개`]), t("ul", { class: "upload-list" }, g.map(T))];
1173
- return e.showClearAll && !e.readonly && I.push(t("div", { class: "upload-delete-btn" }, [t("button", {
1325
+ key: f.id,
1326
+ class: f.status === "error" ? "is-error" : void 0
1327
+ }, T);
1328
+ }, $ = (f) => {
1329
+ const T = f.filter((H) => H.status !== "error").length, R = [t("div", { class: "total" }, [t("span", { class: "current" }, `${T}개`), ` / ${e.maxFiles}개`]), t("ul", { class: "upload-list" }, f.map(L))];
1330
+ return e.showClearAll && !e.readonly && R.push(t("div", { class: "upload-delete-btn" }, [t("button", {
1174
1331
  type: "button",
1175
1332
  class: "krds-btn xsmall tertiary",
1176
1333
  disabled: e.disabled || void 0,
1177
- onClick: v
1178
- }, ["전체 파일 삭제", t("i", { class: "svg-icon ico-angle right" })])])), t("div", { class: "file-list" }, I);
1334
+ onClick: i
1335
+ }, ["전체 파일 삭제", t("i", { class: "svg-icon ico-angle right" })])])), t("div", { class: "file-list" }, R);
1179
1336
  };
1180
1337
  return () => {
1181
- const g = [x()];
1182
- e.readonly || g.push(K());
1183
- const A = e.modelValue || [];
1184
- return A.length > 0 && g.push(_(A)), t("div", {
1185
- class: m.value,
1338
+ const f = [M()];
1339
+ e.readonly || f.push(A());
1340
+ const T = e.modelValue || [];
1341
+ return T.length > 0 && f.push($(T)), t("div", {
1342
+ class: p.value,
1186
1343
  style: e.style || void 0
1187
- }, g);
1344
+ }, f);
1188
1345
  };
1189
1346
  }
1190
- }), wt = St, Kt = M({
1347
+ }), At = Tt, _t = /* @__PURE__ */ _({
1191
1348
  name: "KrdsBadge",
1192
1349
  props: {
1193
1350
  type: {
@@ -1213,7 +1370,7 @@ ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1213
1370
  },
1214
1371
  emits: { click: (e) => !0 },
1215
1372
  setup(e, { emit: a, slots: r }) {
1216
- const l = b(() => {
1373
+ const l = C(() => {
1217
1374
  const s = ["krds-badge"];
1218
1375
  return s.push(`${e.type}-${e.color}`), e.size && s.push(e.size), e.number && s.push("number"), e.class && s.push(e.class), s;
1219
1376
  }), n = (s) => {
@@ -1228,7 +1385,7 @@ ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1228
1385
  onClick: n
1229
1386
  }, r.default?.());
1230
1387
  }
1231
- }), Ct = Kt, xt = M({
1388
+ }), Mt = _t, Vt = /* @__PURE__ */ _({
1232
1389
  name: "KrdsTag",
1233
1390
  props: {
1234
1391
  link: {
@@ -1254,29 +1411,29 @@ ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1254
1411
  },
1255
1412
  emits: { remove: (e) => !0 },
1256
1413
  setup(e, { emit: a, slots: r }) {
1257
- const l = b(() => {
1258
- const d = ["krds-btn-tag"];
1259
- return e.link && d.push("link"), e.class && d.push(e.class), d;
1260
- }), n = (d) => {
1261
- a("remove", d);
1414
+ const l = C(() => {
1415
+ const u = ["krds-btn-tag"];
1416
+ return e.link && u.push("link"), e.class && u.push(e.class), u;
1417
+ }), n = (u) => {
1418
+ a("remove", u);
1262
1419
  }, s = () => t("button", {
1263
1420
  type: "button",
1264
1421
  class: "btn-delete",
1265
1422
  onClick: n
1266
1423
  }, [t("span", { class: "sr-only" }, "삭제")]);
1267
1424
  return () => {
1268
- const d = [], h = r.default?.();
1269
- if (h && d.push(h), e.link || d.push(s()), e.link) {
1270
- const p = {
1425
+ const u = [], g = r.default?.();
1426
+ if (g && u.push(g), e.link || u.push(s()), e.link) {
1427
+ const h = {
1271
1428
  href: e.href,
1272
1429
  class: l.value
1273
1430
  };
1274
- return e.target && (p.target = e.target), e.rel && (p.rel = e.rel), t("a", p, d);
1431
+ return e.target && (h.target = e.target), e.rel && (h.rel = e.rel), t("a", h, u);
1275
1432
  }
1276
- return t("span", { class: l.value }, d);
1433
+ return t("span", { class: l.value }, u);
1277
1434
  };
1278
1435
  }
1279
- }), $t = xt, Lt = M({
1436
+ }), Ft = Vt, Pt = /* @__PURE__ */ _({
1280
1437
  name: "KrdsTagGroup",
1281
1438
  props: {
1282
1439
  size: {
@@ -1289,13 +1446,13 @@ ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1289
1446
  }
1290
1447
  },
1291
1448
  setup(e, { slots: a }) {
1292
- const r = b(() => {
1449
+ const r = C(() => {
1293
1450
  const l = ["krds-tag-wrap"];
1294
1451
  return e.size && l.push(e.size), e.class && l.push(e.class), l;
1295
1452
  });
1296
1453
  return () => t("div", { class: r.value }, a.default?.());
1297
1454
  }
1298
- }), Dt = Lt, Bt = M({
1455
+ }), zt = Pt, Rt = /* @__PURE__ */ _({
1299
1456
  name: "KrdsMasthead",
1300
1457
  props: { class: {
1301
1458
  type: String,
@@ -1303,7 +1460,7 @@ ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1303
1460
  } },
1304
1461
  emits: { click: (e) => !0 },
1305
1462
  setup(e, { emit: a, slots: r }) {
1306
- const l = b(() => {
1463
+ const l = C(() => {
1307
1464
  const s = [""];
1308
1465
  return e.class && s.push(e.class), s;
1309
1466
  }), n = (s) => {
@@ -1315,17 +1472,17 @@ ${s(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1315
1472
  onClick: n
1316
1473
  }, [t("div", { class: "toggle-wrap" }, [t("div", { class: "toggle-head" }, [t("div", { class: "inner" }, [t("span", { class: "nuri-txt" }, r.default?.())])])])]);
1317
1474
  }
1318
- }), Tt = Bt, Et = 0;
1319
- function tl(e = "krds") {
1320
- return `${e}-${++Et}`;
1475
+ }), It = Rt, Ht = 0;
1476
+ function cl(e = "krds") {
1477
+ return `${e}-${++Ht}`;
1321
1478
  }
1322
- function al() {
1479
+ function fl() {
1323
1480
  return `${Date.now().toString(36).slice(-4)}${Math.random().toString(36).substring(2, 5)}`;
1324
1481
  }
1325
- function he(...e) {
1482
+ function $e(...e) {
1326
1483
  return e.filter(Boolean).join(" ");
1327
1484
  }
1328
- var _t = M({
1485
+ var Ot = /* @__PURE__ */ _({
1329
1486
  name: "KrdsToggleSwitch",
1330
1487
  props: {
1331
1488
  modelValue: {
@@ -1371,22 +1528,22 @@ var _t = M({
1371
1528
  change: (e) => !0
1372
1529
  },
1373
1530
  setup(e, { emit: a, attrs: r }) {
1374
- const l = `toggle-switch-${oe()}`, n = b(() => e.modelValue), s = b(() => he("krds-form-toggle-switch", e.size, e.class)), d = (p) => {
1531
+ const l = `toggle-switch-${de()}`, n = C(() => e.modelValue), s = C(() => $e("krds-form-toggle-switch", e.size, e.class)), u = (h) => {
1375
1532
  if (e.disabled) return;
1376
- const w = p.target.checked;
1377
- a("update:modelValue", w), a("change", w);
1378
- }, h = b(() => e.id || l);
1533
+ const y = h.target.checked;
1534
+ a("update:modelValue", y), a("change", y);
1535
+ }, g = C(() => e.id || l);
1379
1536
  return () => t("div", { class: s.value }, [t("input", {
1380
1537
  type: "checkbox",
1381
- id: h.value,
1538
+ id: g.value,
1382
1539
  name: e.name,
1383
1540
  checked: n.value,
1384
1541
  disabled: e.disabled,
1385
- onChange: d,
1542
+ onChange: u,
1386
1543
  ...r
1387
- }), t("label", { for: h.value }, [t("span", { class: "switch-toggle" }, [t("i")]), e.label || ""])]);
1544
+ }), t("label", { for: g.value }, [t("span", { class: "switch-toggle" }, [t("i")]), e.label || ""])]);
1388
1545
  }
1389
- }), At = _t, Mt = M({
1546
+ }), qt = Ot, Nt = /* @__PURE__ */ _({
1390
1547
  name: "KrdsCheckArea",
1391
1548
  props: {
1392
1549
  class: {
@@ -1404,7 +1561,7 @@ var _t = M({
1404
1561
  return e.column && r.push("chk-column"), e.class && r.push(e.class), t("div", { class: r }, a.default?.());
1405
1562
  };
1406
1563
  }
1407
- }), Vt = Mt, Pt = M({
1564
+ }), Wt = Nt, Yt = /* @__PURE__ */ _({
1408
1565
  name: "KrdsCheckbox",
1409
1566
  props: {
1410
1567
  modelValue: {
@@ -1436,27 +1593,27 @@ var _t = M({
1436
1593
  emits: { "update:modelValue": (e) => !0 },
1437
1594
  slots: Object,
1438
1595
  setup(e, { emit: a, attrs: r, slots: l }) {
1439
- const n = `checkbox-${oe()}`, s = b(() => e.modelValue), d = b(() => {
1440
- const w = e.chip ? "krds-form-chip" : "krds-form-check";
1441
- return he(w, e.size, e.class);
1442
- }), h = (w) => {
1596
+ const n = `checkbox-${de()}`, s = C(() => e.modelValue), u = C(() => {
1597
+ const y = e.chip ? "krds-form-chip" : "krds-form-check";
1598
+ return $e(y, e.size, e.class);
1599
+ }), g = (y) => {
1443
1600
  if (e.disabled) return;
1444
- const c = w.target.checked;
1445
- a("update:modelValue", c);
1446
- }, p = b(() => e.id || n);
1601
+ const d = y.target.checked;
1602
+ a("update:modelValue", d);
1603
+ }, h = C(() => e.id || n);
1447
1604
  return () => {
1448
- const w = [t("input", {
1605
+ const y = [t("input", {
1449
1606
  type: "checkbox",
1450
- id: p.value,
1607
+ id: h.value,
1451
1608
  checked: s.value,
1452
1609
  disabled: e.disabled,
1453
- onChange: h,
1610
+ onChange: g,
1454
1611
  ...r
1455
- }), t("label", { for: p.value }, l.default?.())];
1456
- return l.description && !e.chip && w.push(t("div", { class: "krds-form-check-cnt" }, t("p", { class: "krds-form-check-p" }, l.description()))), t("div", { class: d.value }, w);
1612
+ }), t("label", { for: h.value }, l.default?.())];
1613
+ return l.description && !e.chip && y.push(t("div", { class: "krds-form-check-cnt" }, t("p", { class: "krds-form-check-p" }, l.description()))), t("div", { class: u.value }, y);
1457
1614
  };
1458
1615
  }
1459
- }), zt = Pt, Ft = M({
1616
+ }), jt = Yt, Gt = /* @__PURE__ */ _({
1460
1617
  name: "KrdsRadio",
1461
1618
  props: {
1462
1619
  modelValue: {
@@ -1504,27 +1661,27 @@ var _t = M({
1504
1661
  emits: { "update:modelValue": (e) => !0 },
1505
1662
  slots: Object,
1506
1663
  setup(e, { emit: a, attrs: r, slots: l }) {
1507
- const n = `radio-${oe()}`, s = b(() => e.modelValue === e.value), d = b(() => {
1508
- const c = e.chip ? "krds-form-chip" : "krds-form-check";
1509
- return he(c, e.size, e.class);
1510
- }), h = (c) => {
1511
- e.disabled || c.target.checked && a("update:modelValue", e.value);
1512
- }, p = b(() => e.id || n), w = b(() => e.name);
1664
+ const n = `radio-${de()}`, s = C(() => e.modelValue === e.value), u = C(() => {
1665
+ const d = e.chip ? "krds-form-chip" : "krds-form-check";
1666
+ return $e(d, e.size, e.class);
1667
+ }), g = (d) => {
1668
+ e.disabled || d.target.checked && a("update:modelValue", e.value);
1669
+ }, h = C(() => e.id || n), y = C(() => e.name);
1513
1670
  return () => {
1514
- const c = [t("input", {
1671
+ const d = [t("input", {
1515
1672
  type: "radio",
1516
- id: p.value,
1517
- name: w.value,
1673
+ id: h.value,
1674
+ name: y.value,
1518
1675
  value: String(e.value),
1519
1676
  checked: s.value,
1520
1677
  disabled: e.disabled,
1521
- onChange: h,
1678
+ onChange: g,
1522
1679
  ...r
1523
- }), t("label", { for: p.value }, l.default?.())];
1524
- return l.description && !e.chip && c.push(t("div", { class: "krds-form-check-cnt" }, t("p", { class: "krds-form-check-p" }, l.description()))), t("div", { class: d.value }, c);
1680
+ }), t("label", { for: h.value }, l.default?.())];
1681
+ return l.description && !e.chip && d.push(t("div", { class: "krds-form-check-cnt" }, t("p", { class: "krds-form-check-p" }, l.description()))), t("div", { class: u.value }, d);
1525
1682
  };
1526
1683
  }
1527
- }), Rt = Ft, It = Le, Ht = M({
1684
+ }), Ut = Gt, Xt = Pe, Qt = /* @__PURE__ */ _({
1528
1685
  name: "KrdsStepIndicator",
1529
1686
  props: {
1530
1687
  modelValue: {
@@ -1538,23 +1695,29 @@ var _t = M({
1538
1695
  },
1539
1696
  emits: { "update:modelValue": (e) => !0 },
1540
1697
  setup(e, { slots: a }) {
1541
- const r = b(() => {
1542
- const h = ["krds-step-wrap"];
1543
- return e.class && h.push(e.class), h;
1544
- }), l = (h) => {
1545
- const p = e.modelValue || 0;
1546
- return h < p ? "done" : h === p ? "active" : "pending";
1547
- }, n = D(0), s = () => {
1548
- n.value = 0;
1549
- }, d = () => n.value++;
1550
- return Qe("stepIndicator", {
1551
- activeStep: b(() => e.modelValue || 0),
1552
- getStepStatus: l,
1553
- getNextStepIndex: d,
1554
- resetStepIndex: s
1555
- }), () => (s(), t("ol", { class: r.value }, a.default?.()));
1698
+ const r = E(null), l = C(() => e.modelValue || 0), n = st(null), s = /* @__PURE__ */ new WeakSet(), u = () => {
1699
+ n.value = r.value ? Array.from(r.value.children).filter((y) => s.has(y)) : null;
1700
+ };
1701
+ let g = 0, h;
1702
+ return ee(() => {
1703
+ u(), h = new MutationObserver(u), h.observe(r.value, { childList: !0 });
1704
+ }), lt(u), oe(() => h?.disconnect()), nt("stepIndicator", {
1705
+ register: () => g++,
1706
+ track: (y) => s.add(y),
1707
+ untrack: (y) => {
1708
+ s.delete(y), u();
1709
+ },
1710
+ indexOf: (y, d) => {
1711
+ const S = y && n.value ? n.value.indexOf(y) : -1;
1712
+ return S >= 0 ? S : d;
1713
+ },
1714
+ statusAt: (y) => y < l.value ? "done" : y === l.value ? "active" : "pending"
1715
+ }), () => (g = 0, t("ol", {
1716
+ ref: r,
1717
+ class: ["krds-step-wrap", e.class]
1718
+ }, a.default?.()));
1556
1719
  }
1557
- }), Nt = Ht, Ot = M({
1720
+ }), Jt = Qt, Zt = /* @__PURE__ */ _({
1558
1721
  name: "KrdsStep",
1559
1722
  props: {
1560
1723
  step: {
@@ -1576,33 +1739,41 @@ var _t = M({
1576
1739
  },
1577
1740
  emits: { click: (e, a) => !0 },
1578
1741
  setup(e, { emit: a, slots: r }) {
1579
- const l = Xe("stepIndicator"), n = l ? l.getNextStepIndex() : -1, s = b(() => e.status ? e.status : l && n >= 0 ? l.getStepStatus(n) : "pending"), d = b(() => {
1580
- const p = [s.value];
1581
- return e.class && p.push(e.class), p;
1582
- }), h = (p) => {
1583
- a("click", p, e.step);
1742
+ const l = tt("stepIndicator", null), n = l ? l.register() : -1, s = E(null);
1743
+ ee(() => s.value && l?.track(s.value)), oe(() => s.value && l?.untrack(s.value));
1744
+ const u = C(() => e.status || (l ? l.statusAt(l.indexOf(s.value, n)) : "pending")), g = C(() => {
1745
+ const y = [u.value];
1746
+ return e.class && y.push(e.class), y;
1747
+ }), h = (y) => {
1748
+ a("click", y, e.step);
1584
1749
  };
1585
1750
  return () => {
1586
- const p = s.value === "active";
1751
+ const y = u.value === "active";
1587
1752
  return t("li", {
1588
- class: d.value,
1753
+ ref: s,
1754
+ class: g.value,
1589
1755
  onClick: h
1590
1756
  }, [t("span", [
1591
- p && t("em", { class: "sr-only" }, "현재단계"),
1757
+ y && t("em", { class: "sr-only" }, "현재단계"),
1592
1758
  t("i", { class: "step" }, e.step),
1593
1759
  t("span", { class: "step-tit" }, e.title),
1594
1760
  r.default?.()
1595
1761
  ])]);
1596
1762
  };
1597
1763
  }
1598
- }), qt = Ot, Wt = M({
1764
+ }), ea = Zt, ta = /* @__PURE__ */ _({
1599
1765
  name: "KrdsSkipLink",
1600
1766
  props: {
1601
1767
  href: {
1602
1768
  type: String,
1603
- required: !0,
1769
+ default: void 0,
1604
1770
  validator: (e) => e.startsWith("#")
1605
1771
  },
1772
+ links: {
1773
+ type: Array,
1774
+ default: void 0,
1775
+ validator: (e) => e.every((a) => a.href.startsWith("#"))
1776
+ },
1606
1777
  class: {
1607
1778
  type: [
1608
1779
  String,
@@ -1620,9 +1791,9 @@ var _t = M({
1620
1791
  return () => t("div", {
1621
1792
  id: e.id,
1622
1793
  class: e.class
1623
- }, [t("a", { href: e.href }, a.default?.())]);
1794
+ }, e.links ? e.links.map((r) => t("a", { href: r.href }, r.label)) : [t("a", { href: e.href }, a.default?.())]);
1624
1795
  }
1625
- }), Yt = Wt, jt = M({
1796
+ }), aa = ta, la = /* @__PURE__ */ _({
1626
1797
  name: "KrdsBreadcrumb",
1627
1798
  props: {
1628
1799
  items: {
@@ -1652,19 +1823,19 @@ var _t = M({
1652
1823
  class: "krds-breadcrumb-wrap",
1653
1824
  "aria-label": e.ariaLabel
1654
1825
  }, [t("ol", { class: "breadcrumb" }, e.items.map((n, s) => {
1655
- const d = s === 0 && e.showHomeIcon;
1826
+ const u = s === 0 && e.showHomeIcon;
1656
1827
  return t("li", {
1657
1828
  key: `breadcrumb-${s}`,
1658
- class: { home: d }
1829
+ class: { home: u }
1659
1830
  }, [t("a", {
1660
1831
  href: n.href || "#",
1661
1832
  class: "txt",
1662
1833
  "aria-current": r(s) ? "page" : void 0,
1663
- onClick: (h) => l(n, h)
1834
+ onClick: (g) => l(n, g)
1664
1835
  }, [t("span", null, n.text)])]);
1665
1836
  }))]);
1666
1837
  }
1667
- }), Gt = jt, Ut = M({
1838
+ }), na = la, sa = /* @__PURE__ */ _({
1668
1839
  name: "KrdsInPageNavigation",
1669
1840
  props: {
1670
1841
  title: {
@@ -1699,96 +1870,96 @@ var _t = M({
1699
1870
  emits: { itemClick: (e, a) => !0 },
1700
1871
  slots: Object,
1701
1872
  setup(e, { emit: a, slots: r }) {
1702
- const l = D(""), n = D(/* @__PURE__ */ new Map()), s = b(() => {
1703
- const f = ["krds-in-page-navigation-type"];
1704
- return e.class && f.push(e.class), f;
1705
- }), d = () => {
1706
- const f = e.headerTopSelector, o = e.headerInnerSelector;
1707
- return (document.querySelector(f)?.clientHeight || 0) + (document.querySelector(o)?.clientHeight || 0);
1708
- }, h = (f, o) => {
1709
- if (a("itemClick", f, o), f.href.startsWith("#")) {
1710
- o.preventDefault();
1711
- const i = document.querySelector(f.href);
1712
- if (i) {
1713
- const v = d();
1873
+ const l = E(""), n = E(/* @__PURE__ */ new Map()), s = C(() => {
1874
+ const m = ["krds-in-page-navigation-type"];
1875
+ return e.class && m.push(e.class), m;
1876
+ }), u = () => {
1877
+ const m = e.headerTopSelector, v = e.headerInnerSelector;
1878
+ return (document.querySelector(m)?.clientHeight || 0) + (document.querySelector(v)?.clientHeight || 0);
1879
+ }, g = (m, v) => {
1880
+ if (a("itemClick", m, v), m.href.startsWith("#")) {
1881
+ v.preventDefault();
1882
+ const o = document.querySelector(m.href);
1883
+ if (o) {
1884
+ const i = u();
1714
1885
  if (window.scrollTo({
1715
1886
  left: 0,
1716
- top: i.getBoundingClientRect().top + window.scrollY - v,
1887
+ top: o.getBoundingClientRect().top + window.scrollY - i,
1717
1888
  behavior: "smooth"
1718
- }), l.value = f.href, o instanceof KeyboardEvent) {
1719
- const m = i.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");
1720
- m && m instanceof HTMLElement && (m.setAttribute("tabindex", "-1"), m.focus({ preventScroll: !0 }));
1889
+ }), l.value = m.href, v instanceof KeyboardEvent) {
1890
+ const p = o.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");
1891
+ p && p instanceof HTMLElement && (p.setAttribute("tabindex", "-1"), p.focus({ preventScroll: !0 }));
1721
1892
  }
1722
1893
  }
1723
1894
  }
1724
- }, p = () => {
1725
- n.value.clear(), e.items && e.items.filter((f) => f.href.startsWith("#")).forEach((f) => {
1726
- const o = document.querySelector(f.href);
1727
- o && n.value.set(f.href, o);
1895
+ }, h = () => {
1896
+ n.value.clear(), e.items && e.items.filter((m) => m.href.startsWith("#")).forEach((m) => {
1897
+ const v = document.querySelector(m.href);
1898
+ v && n.value.set(m.href, v);
1728
1899
  });
1729
- }, w = () => {
1900
+ }, y = () => {
1730
1901
  if (!e.autoActive || !e.items || n.value.size === 0) return;
1731
- const f = window.innerHeight, o = Math.ceil(f / 5), i = window.scrollY + f, v = document.body.scrollHeight, m = e.items.filter((_) => _.href.startsWith("#") && n.value.has(_.href)).map((_) => ({
1732
- href: _.href,
1733
- element: n.value.get(_.href),
1734
- item: _
1902
+ const m = window.innerHeight, v = Math.ceil(m / 5), o = window.scrollY + m, i = document.body.scrollHeight, p = e.items.filter(($) => $.href.startsWith("#") && n.value.has($.href)).map(($) => ({
1903
+ href: $.href,
1904
+ element: n.value.get($.href),
1905
+ item: $
1735
1906
  }));
1736
- if (m.length === 0) return;
1737
- const x = m[0], K = m[m.length - 1], E = x.element.offsetTop;
1738
- let T = "";
1739
- if (i >= v) T = K.href;
1740
- else if (window.scrollY <= E) T = x.href;
1741
- else for (const _ of m) {
1742
- const g = _.element.offsetHeight, A = _.element.offsetTop - o;
1743
- if (window.scrollY > A && window.scrollY <= A + g) {
1744
- T = _.href;
1907
+ if (p.length === 0) return;
1908
+ const M = p[0], A = p[p.length - 1], D = M.element.offsetTop;
1909
+ let L = "";
1910
+ if (o >= i) L = A.href;
1911
+ else if (window.scrollY <= D) L = M.href;
1912
+ else for (const $ of p) {
1913
+ const f = $.element.offsetHeight, T = $.element.offsetTop - v;
1914
+ if (window.scrollY > T && window.scrollY <= T + f) {
1915
+ L = $.href;
1745
1916
  break;
1746
1917
  }
1747
1918
  }
1748
- T && T !== l.value && (l.value = T);
1749
- }, c = () => {
1919
+ L && L !== l.value && (l.value = L);
1920
+ }, d = () => {
1750
1921
  if (!e.items) return;
1751
- const f = e.items.find((o) => o.active);
1752
- f ? l.value = f.href : e.items.length > 0 && (l.value = e.items[0].href);
1922
+ const m = e.items.find((v) => v.active);
1923
+ m ? l.value = m.href : e.items.length > 0 && (l.value = e.items[0].href);
1753
1924
  };
1754
- re(() => {
1755
- if (c(), e.autoActive) {
1756
- p(), w(), window.addEventListener("scroll", w, { passive: !0 });
1757
- const f = new MutationObserver(() => {
1758
- p();
1925
+ ee(() => {
1926
+ if (d(), e.autoActive) {
1927
+ h(), y(), window.addEventListener("scroll", y, { passive: !0 });
1928
+ const m = new MutationObserver(() => {
1929
+ h();
1759
1930
  });
1760
- f.observe(document.body, {
1931
+ m.observe(document.body, {
1761
1932
  childList: !0,
1762
1933
  subtree: !0
1763
- }), ie(() => {
1764
- f.disconnect();
1934
+ }), ue(() => {
1935
+ m.disconnect();
1765
1936
  });
1766
1937
  }
1767
- }), ie(() => {
1768
- e.autoActive && (window.removeEventListener("scroll", w), n.value.clear());
1938
+ }), ue(() => {
1939
+ e.autoActive && (window.removeEventListener("scroll", y), n.value.clear());
1769
1940
  });
1770
- const B = () => !e.caption && !e.title ? null : t("div", { class: "in-page-navigation-header" }, [e.caption && t("p", { class: "quick-caption" }, e.caption), e.title && t("p", { class: "quick-title" }, e.title)]), S = () => {
1941
+ const S = () => !e.caption && !e.title ? null : t("div", { class: "in-page-navigation-header" }, [e.caption && t("p", { class: "quick-caption" }, e.caption), e.title && t("p", { class: "quick-title" }, e.title)]), k = () => {
1771
1942
  if (!e.items) return null;
1772
- const f = e.items.map((o) => {
1773
- const i = l.value === o.href || !e.autoActive && o.active;
1774
- return t("li", { key: o.href }, [t("a", {
1775
- href: o.href,
1776
- class: i ? "active" : "",
1777
- onClick: (v) => h(o, v),
1778
- onKeydown: (v) => {
1779
- (v.key === "Enter" || v.key === " ") && (v.preventDefault(), h(o, v));
1943
+ const m = e.items.map((v) => {
1944
+ const o = l.value === v.href || !e.autoActive && v.active;
1945
+ return t("li", { key: v.href }, [t("a", {
1946
+ href: v.href,
1947
+ class: o ? "active" : "",
1948
+ onClick: (i) => g(v, i),
1949
+ onKeydown: (i) => {
1950
+ (i.key === "Enter" || i.key === " ") && (i.preventDefault(), g(v, i));
1780
1951
  }
1781
- }, o.text)]);
1952
+ }, v.text)]);
1782
1953
  });
1783
- return t("nav", { class: "in-page-navigation-list" }, [t("ul", {}, f)]);
1784
- }, $ = () => r.action ? t("div", { class: "in-page-navigation-action" }, [r.action()]) : null;
1954
+ return t("nav", { class: "in-page-navigation-list" }, [t("ul", {}, m)]);
1955
+ }, K = () => r.action ? t("div", { class: "in-page-navigation-action" }, [r.action()]) : null;
1785
1956
  return () => t("div", { class: s.value }, [t("div", { class: "krds-in-page-navigation-area" }, [
1786
- B(),
1787
1957
  S(),
1788
- $()
1958
+ k(),
1959
+ K()
1789
1960
  ].filter(Boolean))]);
1790
1961
  }
1791
- }), Xt = Ut, De = {
1962
+ }), ra = sa, ze = {
1792
1963
  mounted(e, a) {
1793
1964
  a.value !== !1 && e.classList.add("sr-only");
1794
1965
  },
@@ -1798,9 +1969,9 @@ var _t = M({
1798
1969
  unmounted(e) {
1799
1970
  e.classList.remove("sr-only");
1800
1971
  }
1801
- }, Qt = (e) => {
1802
- e.directive("sr-only", De);
1803
- }, ke = 1, Se = 8, Jt = M({
1972
+ }, ia = (e) => {
1973
+ e.directive("sr-only", ze);
1974
+ }, Te = 1, Ae = 8, oa = /* @__PURE__ */ _({
1804
1975
  name: "KrdsPagination",
1805
1976
  props: {
1806
1977
  modelValue: {
@@ -1809,7 +1980,7 @@ var _t = M({
1809
1980
  },
1810
1981
  min: {
1811
1982
  type: Number,
1812
- default: ke
1983
+ default: Te
1813
1984
  },
1814
1985
  max: {
1815
1986
  type: Number,
@@ -1825,87 +1996,87 @@ var _t = M({
1825
1996
  },
1826
1997
  pageRange: {
1827
1998
  type: Number,
1828
- default: Se
1999
+ default: Ae
1829
2000
  }
1830
2001
  },
1831
2002
  emits: { "update:modelValue": (e) => !0 },
1832
2003
  setup(e, { emit: a }) {
1833
- const r = b(() => Math.max(1, e.min ?? ke)), l = b(() => e.modelValue ?? r.value), n = b(() => l.value <= r.value), s = b(() => l.value >= e.max), d = b(() => {
2004
+ const r = C(() => Math.max(1, e.min ?? Te)), l = C(() => e.modelValue ?? r.value), n = C(() => l.value <= r.value), s = C(() => l.value >= e.max), u = C(() => {
1834
2005
  if (!n.value)
1835
2006
  return "#";
1836
- }), h = b(() => {
2007
+ }), g = C(() => {
1837
2008
  if (!s.value)
1838
2009
  return "#";
1839
- }), p = b(() => {
1840
- const { max: $ } = e, f = e.pageRange ?? Se, o = 1, i = [];
1841
- if ($ <= f + 2) for (let v = r.value; v <= $; v++) i.push({
2010
+ }), h = C(() => {
2011
+ const { max: K } = e, m = e.pageRange ?? Ae, v = 1, o = [];
2012
+ if (K <= m + 2) for (let i = r.value; i <= K; i++) o.push({
1842
2013
  type: "page",
1843
- key: `page-${v}`,
1844
- page: v,
2014
+ key: `page-${i}`,
2015
+ page: i,
1845
2016
  href: "#"
1846
2017
  });
1847
2018
  else {
1848
- const v = Math.min(o, $), m = Math.max($ - o + 1, 1), x = Math.max(r.value, l.value - Math.floor(f / 2)), K = Math.min($, x + f - 1), E = Math.max(r.value, K - f + 1);
1849
- for (let g = r.value; g <= v; g++) i.push({
2019
+ const i = Math.min(v, K), p = Math.max(K - v + 1, 1), M = Math.max(r.value, l.value - Math.floor(m / 2)), A = Math.min(K, M + m - 1), D = Math.max(r.value, A - m + 1);
2020
+ for (let f = r.value; f <= i; f++) o.push({
1850
2021
  type: "page",
1851
- key: `page-${g}`,
1852
- page: g,
2022
+ key: `page-${f}`,
2023
+ page: f,
1853
2024
  href: "#"
1854
2025
  });
1855
- E > v + 1 && i.push({
2026
+ D > i + 1 && o.push({
1856
2027
  type: "ellipsis",
1857
2028
  key: "ellipsis-left"
1858
2029
  });
1859
- const T = Math.max(E, v + 1), _ = Math.min(K, m - 1);
1860
- for (let g = T; g <= _; g++) i.push({
2030
+ const L = Math.max(D, i + 1), $ = Math.min(A, p - 1);
2031
+ for (let f = L; f <= $; f++) o.push({
1861
2032
  type: "page",
1862
- key: `page-${g}`,
1863
- page: g,
2033
+ key: `page-${f}`,
2034
+ page: f,
1864
2035
  href: "#"
1865
2036
  });
1866
- K < m - 1 && i.push({
2037
+ A < p - 1 && o.push({
1867
2038
  type: "ellipsis",
1868
2039
  key: "ellipsis-right"
1869
2040
  });
1870
- for (let g = m; g <= $; g++) i.push({
2041
+ for (let f = p; f <= K; f++) o.push({
1871
2042
  type: "page",
1872
- key: `page-${g}`,
1873
- page: g,
2043
+ key: `page-${f}`,
2044
+ page: f,
1874
2045
  href: "#"
1875
2046
  });
1876
2047
  }
1877
- return i;
1878
- }), w = ($, f) => {
1879
- if ($ === l.value) {
1880
- f.preventDefault();
2048
+ return o;
2049
+ }), y = (K, m) => {
2050
+ if (K === l.value) {
2051
+ m.preventDefault();
1881
2052
  return;
1882
2053
  }
1883
- a("update:modelValue", $);
1884
- }, c = ($) => {
2054
+ a("update:modelValue", K);
2055
+ }, d = (K) => {
1885
2056
  if (n.value) {
1886
- $.preventDefault();
2057
+ K.preventDefault();
1887
2058
  return;
1888
2059
  }
1889
2060
  a("update:modelValue", l.value - 1);
1890
- }, B = ($) => {
2061
+ }, S = (K) => {
1891
2062
  if (s.value) {
1892
- $.preventDefault();
2063
+ K.preventDefault();
1893
2064
  return;
1894
2065
  }
1895
2066
  a("update:modelValue", l.value + 1);
1896
- }, S = ($) => {
1897
- if ($.type === "page") {
1898
- const f = $.page === l.value;
2067
+ }, k = (K) => {
2068
+ if (K.type === "page") {
2069
+ const m = K.page === l.value;
1899
2070
  return t("a", {
1900
- key: $.key,
1901
- href: $.href || "#",
1902
- class: ["page-link", { active: f }],
1903
- "aria-current": f ? "page" : void 0,
1904
- onClick: (o) => w($.page, o)
1905
- }, [f ? ve(t("span", null, "현재페이지"), [[De]]) : null, ` ${$.page} `]);
2071
+ key: K.key,
2072
+ href: K.href || "#",
2073
+ class: ["page-link", { active: m }],
2074
+ "aria-current": m ? "page" : void 0,
2075
+ onClick: (v) => y(K.page, v)
2076
+ }, [m ? ge(t("span", null, "현재페이지"), [[ze]]) : null, ` ${K.page} `]);
1906
2077
  }
1907
2078
  return t("span", {
1908
- key: $.key,
2079
+ key: K.key,
1909
2080
  class: "page-link link-dot"
1910
2081
  });
1911
2082
  };
@@ -1914,45 +2085,75 @@ var _t = M({
1914
2085
  class: "krds-pagination"
1915
2086
  }, [
1916
2087
  t(n.value ? "span" : "a", {
1917
- href: n.value ? void 0 : d.value,
2088
+ href: n.value ? void 0 : u.value,
1918
2089
  class: [
1919
2090
  "page-navi",
1920
2091
  "prev",
1921
2092
  { disabled: n.value }
1922
2093
  ],
1923
- onClick: c
2094
+ onClick: d
1924
2095
  }, "이전"),
1925
- t("div", { class: "page-links" }, p.value.map(S)),
2096
+ t("div", { class: "page-links" }, h.value.map(k)),
1926
2097
  t(s.value ? "span" : "a", {
1927
- href: s.value ? void 0 : h.value,
2098
+ href: s.value ? void 0 : g.value,
1928
2099
  class: [
1929
2100
  "page-navi",
1930
2101
  "next",
1931
2102
  { disabled: s.value }
1932
2103
  ],
1933
- onClick: B
2104
+ onClick: S
1934
2105
  }, "다음")
1935
2106
  ]);
1936
2107
  }
1937
- }), Zt = Jt, ea = M({
2108
+ }), ua = oa, _e = null, da = /* @__PURE__ */ _({
1938
2109
  name: "KrdsPanel",
1939
- props: { modelValue: {
1940
- type: Boolean,
1941
- default: !1
1942
- } },
2110
+ props: {
2111
+ modelValue: {
2112
+ type: Boolean,
2113
+ default: !1
2114
+ },
2115
+ headerTopSelector: {
2116
+ type: String,
2117
+ default: "#krds-masthead"
2118
+ },
2119
+ headerInnerSelector: {
2120
+ type: String,
2121
+ default: "#krds-header .header-in"
2122
+ }
2123
+ },
1943
2124
  emits: { "update:modelValue": (e) => !0 },
1944
2125
  setup(e, { emit: a, slots: r }) {
1945
- const l = b({
2126
+ const l = C({
1946
2127
  get: () => e.modelValue,
1947
- set: (d) => a("update:modelValue", d)
2128
+ set: (S) => a("update:modelValue", S)
1948
2129
  }), n = () => {
1949
2130
  l.value = !0;
1950
2131
  }, s = () => {
1951
2132
  l.value = !1;
2133
+ }, u = E(0), g = E(null), h = /* @__PURE__ */ Symbol("KrdsPanel");
2134
+ let y = 0;
2135
+ const d = () => {
2136
+ cancelAnimationFrame(y), y = requestAnimationFrame(() => {
2137
+ const S = document.querySelector(e.headerTopSelector), k = document.querySelector(e.headerInnerSelector), K = !!S && S.getBoundingClientRect().bottom > 0, m = !!document.querySelector(".g-wrap.scroll-down");
2138
+ u.value = k ? K ? S.offsetHeight + k.offsetHeight : m ? 0 : k.offsetHeight : 0;
2139
+ const v = g.value;
2140
+ if (!v?.isConnected) return;
2141
+ const o = parseFloat(getComputedStyle(v).top) + u.value + v.offsetHeight;
2142
+ Number.isFinite(o) && (document.documentElement.style.setProperty("--krds-help-panel--button-bottom", `${o}px`), _e = h);
2143
+ });
1952
2144
  };
1953
- return () => t("div", { class: "inner help-panel-flexible" }, [t("button", {
2145
+ return ee(() => {
2146
+ d(), window.addEventListener("scroll", d, { passive: !0 }), window.addEventListener("resize", d);
2147
+ }), at(d), ue(() => {
2148
+ cancelAnimationFrame(y), _e === h && document.documentElement.style.removeProperty("--krds-help-panel--button-bottom"), window.removeEventListener("scroll", d), window.removeEventListener("resize", d);
2149
+ }), () => t("div", {
2150
+ class: "inner help-panel-flexible",
2151
+ style: { "--krds-help-panel--header-offset": `${u.value}px` }
2152
+ }, [t("button", {
2153
+ ref: g,
1954
2154
  type: "button",
1955
2155
  class: "krds-btn small tertiary btn-help-panel expand btn-help-exec",
2156
+ onTransitionend: d,
1956
2157
  onClick: n
1957
2158
  }, [t("i", { class: "svg-icon ico-fold" }), " 도움말"]), t("div", { class: ["krds-help-panel", { expand: l.value }] }, [t("div", { class: "help-panel-wrap" }, [t("div", { class: "help-conts-area" }, [r.default?.(), t("button", {
1958
2159
  type: "button",
@@ -1964,7 +2165,7 @@ var _t = M({
1964
2165
  t("i", { class: "svg-icon ico-angle right" })
1965
2166
  ])])])])]);
1966
2167
  }
1967
- }), ta = ea, aa = M({
2168
+ }), ca = da, fa = /* @__PURE__ */ _({
1968
2169
  name: "KrdsContextualHelp",
1969
2170
  props: {
1970
2171
  tooltipTitle: {
@@ -1981,39 +2182,39 @@ var _t = M({
1981
2182
  }
1982
2183
  },
1983
2184
  setup(e, { slots: a }) {
1984
- const r = D(), l = D(), n = D(), s = D(), d = D(!1), h = () => {
1985
- const o = d.value;
1986
- c(), o || p();
1987
- }, p = () => {
1988
- !n.value || !l.value || (d.value = !0, n.value.style.display = "block", l.value.setAttribute("aria-expanded", "true"), n.value.querySelector('a, button, [tabindex="0"], input, textarea, select')?.focus(), B());
1989
- }, w = () => {
1990
- !n.value || !l.value || (d.value = !1, n.value.style.display = "none", l.value.setAttribute("aria-expanded", "false"));
1991
- }, c = () => {
1992
- const o = document.querySelectorAll(".krds-contextual-help .tooltip-popover"), i = document.querySelectorAll(".krds-contextual-help .tooltip-btn");
1993
- o.forEach((v) => {
1994
- v.style.display = "none";
1995
- }), i.forEach((v) => {
1996
- v.setAttribute("aria-expanded", "false");
1997
- }), d.value = !1;
1998
- }, B = () => {
2185
+ const r = E(), l = E(), n = E(), s = E(), u = E(!1), g = () => {
2186
+ const v = u.value;
2187
+ d(), v || h();
2188
+ }, h = () => {
2189
+ !n.value || !l.value || (u.value = !0, n.value.style.display = "block", l.value.setAttribute("aria-expanded", "true"), n.value.querySelector('a, button, [tabindex="0"], input, textarea, select')?.focus(), S());
2190
+ }, y = () => {
2191
+ !n.value || !l.value || (u.value = !1, n.value.style.display = "none", l.value.setAttribute("aria-expanded", "false"));
2192
+ }, d = () => {
2193
+ const v = document.querySelectorAll(".krds-contextual-help .tooltip-popover"), o = document.querySelectorAll(".krds-contextual-help .tooltip-btn");
2194
+ v.forEach((i) => {
2195
+ i.style.display = "none";
2196
+ }), o.forEach((i) => {
2197
+ i.setAttribute("aria-expanded", "false");
2198
+ }), u.value = !1;
2199
+ }, S = () => {
1999
2200
  if (!r.value || !n.value) return;
2000
- const o = window.innerWidth <= 768, i = r.value.querySelector(".tooltip-action");
2001
- if (o) {
2002
- const v = getComputedStyle(document.querySelector(":root")).getPropertyValue("--krds-contents-padding-x").trim().split("px")[0], m = i.getBoundingClientRect().left - parseInt(v), x = document.body.clientWidth - parseInt(v) * 2;
2003
- n.value.style.left = `-${m}px`, n.value.style.width = `${x}px`;
2201
+ const v = window.innerWidth <= 768, o = r.value.querySelector(".tooltip-action");
2202
+ if (v) {
2203
+ const i = getComputedStyle(document.querySelector(":root")).getPropertyValue("--krds-contents-padding-x").trim().split("px")[0], p = o.getBoundingClientRect().left - parseInt(i), M = document.body.clientWidth - parseInt(i) * 2;
2204
+ n.value.style.left = `-${p}px`, n.value.style.width = `${M}px`;
2004
2205
  } else
2005
2206
  n.value.style.left = "", n.value.style.right = "", n.value.style.width = "360px";
2006
- }, S = (o) => {
2007
- (o.key === "Escape" || o.key === "Esc") && c();
2008
- }, $ = (o) => {
2009
- o.target.closest(".tooltip-action") || c();
2010
- }, f = () => {
2011
- d.value && B();
2207
+ }, k = (v) => {
2208
+ (v.key === "Escape" || v.key === "Esc") && d();
2209
+ }, K = (v) => {
2210
+ v.target.closest(".tooltip-action") || d();
2211
+ }, m = () => {
2212
+ u.value && S();
2012
2213
  };
2013
- return re(() => {
2014
- r.value && (l.value && l.value.setAttribute("aria-expanded", "false"), n.value && n.value.setAttribute("role", "tooltip"), document.addEventListener("keydown", S), document.addEventListener("click", $), window.addEventListener("resize", f));
2015
- }), ie(() => {
2016
- document.removeEventListener("keydown", S), document.removeEventListener("click", $), window.removeEventListener("resize", f);
2214
+ return ee(() => {
2215
+ r.value && (l.value && l.value.setAttribute("aria-expanded", "false"), n.value && n.value.setAttribute("role", "tooltip"), document.addEventListener("keydown", k), document.addEventListener("click", K), window.addEventListener("resize", m));
2216
+ }), ue(() => {
2217
+ document.removeEventListener("keydown", k), document.removeEventListener("click", K), window.removeEventListener("resize", m);
2017
2218
  }), () => t("div", {
2018
2219
  ref: r,
2019
2220
  class: ["krds-contextual-help", e.position]
@@ -2021,7 +2222,7 @@ var _t = M({
2021
2222
  ref: l,
2022
2223
  type: "button",
2023
2224
  class: "krds-btn medium icon tooltip-btn",
2024
- onClick: h
2225
+ onClick: g
2025
2226
  }, [t("span", { class: "sr-only" }, "도움말"), e.helpIcon ? t("i", { class: "svg-icon ico-help" }) : t("i", { class: "svg-icon ico-tooltip" })]), t("div", {
2026
2227
  ref: n,
2027
2228
  class: "tooltip-popover",
@@ -2033,11 +2234,11 @@ var _t = M({
2033
2234
  ref: s,
2034
2235
  type: "button",
2035
2236
  class: "krds-btn xsmall icon tooltip-close",
2036
- onClick: w
2237
+ onClick: y
2037
2238
  }, [t("span", { class: "sr-only" }, "닫기"), t("i", { class: "svg-icon ico-modal-close" })])
2038
2239
  ])])]);
2039
2240
  }
2040
- }), la = aa, na = M({
2241
+ }), va = fa, pa = /* @__PURE__ */ _({
2041
2242
  name: "KrdsCoachMark",
2042
2243
  props: {
2043
2244
  coachMarkClass: {
@@ -2066,21 +2267,21 @@ var _t = M({
2066
2267
  close: () => !0
2067
2268
  },
2068
2269
  setup(e, { emit: a, slots: r }) {
2069
- const l = b(() => {
2070
- const p = e.activeStep - 1;
2071
- return e.stepsData && p >= 0 && p < e.stepsData.length ? e.stepsData[p] : null;
2270
+ const l = C(() => {
2271
+ const h = e.activeStep - 1;
2272
+ return e.stepsData && h >= 0 && h < e.stepsData.length ? e.stepsData[h] : null;
2072
2273
  }), n = () => {
2073
2274
  e.activeStep > 1 && a("update:modelValue", e.activeStep - 1);
2074
2275
  }, s = () => {
2075
2276
  e.activeStep < e.stepsData.length && a("update:modelValue", e.activeStep + 1);
2076
- }, d = () => {
2277
+ }, u = () => {
2077
2278
  a("close");
2078
- }, h = () => {
2079
- const p = l.value;
2080
- return e.modelValue !== e.activeStep || !p ? null : t("div", { class: "coach-balloon" }, [
2279
+ }, g = () => {
2280
+ const h = l.value;
2281
+ return e.modelValue !== e.activeStep || !h ? null : t("div", { class: "coach-balloon" }, [
2081
2282
  t("h5", { class: "sr-only" }, "따라하기 가이드"),
2082
- t("h6", { class: "coach-tit" }, `${e.activeStep}단계 : ${p.title}`),
2083
- t("p", { class: "desc" }, p.description),
2283
+ t("h6", { class: "coach-tit" }, `${e.activeStep}단계 : ${h.title}`),
2284
+ t("p", { class: "desc" }, h.description),
2084
2285
  t("div", { class: "coach-controls" }, [t("div", { class: "num" }, [
2085
2286
  t("span", { class: "sr-only" }, "현재 단계"),
2086
2287
  t("strong", null, String(e.activeStep)),
@@ -2090,7 +2291,7 @@ var _t = M({
2090
2291
  t("button", {
2091
2292
  type: "button",
2092
2293
  class: "krds-btn small text",
2093
- onClick: d
2294
+ onClick: u
2094
2295
  }, "그만보기"),
2095
2296
  e.activeStep !== 1 ? t("button", {
2096
2297
  type: "button",
@@ -2108,9 +2309,9 @@ var _t = M({
2108
2309
  return () => t("div", {
2109
2310
  class: ["krds-coach-mark", e.coachMarkClass],
2110
2311
  style: e.style
2111
- }, [h(), r["coach-mark-content"]?.()]);
2312
+ }, [g(), r["coach-mark-content"]?.()]);
2112
2313
  }
2113
- }), sa = na, ra = M({
2314
+ }), ha = pa, ga = /* @__PURE__ */ _({
2114
2315
  name: "KrdsTooltip",
2115
2316
  props: {
2116
2317
  type: {
@@ -2135,64 +2336,64 @@ var _t = M({
2135
2336
  }
2136
2337
  },
2137
2338
  setup(e, { slots: a }) {
2138
- const r = D(null), l = D(null), n = D(!1), s = D({}), d = `tooltip-popover-${oe()}`, h = D(!1), p = b(() => {
2139
- const m = ["krds-btn", "krds-tooltip"];
2140
- return e.type === "default" ? m.push("small", "text") : e.type === "icon" ? m.push("icon") : e.type === "button" && m.push(""), !e.box && e.vertical && m.push("tooltip-vertical"), e.box && !e.vertical && m.push("tooltip-box"), m.join(" ");
2141
- }), w = b(() => {
2142
- const m = [];
2143
- return e.box && m.push("tooltip-box"), e.vertical && m.push("tooltip-vertical"), n.value && m.push("active"), m;
2144
- }), c = b(() => r.value?.querySelector("button")?.textContent?.trim() || ""), B = () => window.innerWidth <= 768, S = () => {
2339
+ const r = E(null), l = E(null), n = E(!1), s = E({}), u = `tooltip-popover-${de()}`, g = E(!1), h = C(() => {
2340
+ const p = ["krds-btn", "krds-tooltip"];
2341
+ return e.type === "default" ? p.push("small", "text") : e.type === "icon" ? p.push("icon") : e.type === "button" && p.push(""), !e.box && e.vertical && p.push("tooltip-vertical"), e.box && !e.vertical && p.push("tooltip-box"), p.join(" ");
2342
+ }), y = C(() => {
2343
+ const p = [];
2344
+ return e.box && p.push("tooltip-box"), e.vertical && p.push("tooltip-vertical"), n.value && p.push("active"), p;
2345
+ }), d = C(() => r.value?.querySelector("button")?.textContent?.trim() || ""), S = () => window.innerWidth <= 768, k = () => {
2145
2346
  if (!r.value || !l.value) return;
2146
- const m = r.value.querySelector("button");
2147
- if (!m) return;
2148
- const x = 12, { clientHeight: K, clientWidth: E } = l.value, { top: T, left: _, right: g, height: A, width: I } = m.getBoundingClientRect(), O = window.innerWidth / 2, H = window.innerHeight / 2;
2149
- let G, j;
2150
- const X = [];
2151
- h.value || e.box || e.vertical ? (T + A > H ? (G = T - K - x, X.push("top")) : (G = T + A + x, X.push("bottom")), _ + I > O ? (j = g - E, X.push("right"), window.innerWidth - (_ + I) > E / 2 && (j = _ + (I - E) / 2, X.splice(X.indexOf("right"), 1))) : (j = _ + (I - E) / 2, j < 0 && (j = _, X.push("left")))) : (G = T + (A - K) / 2, _ + I > O ? (j = _ - E - x, X.push("right")) : j = g + x);
2152
- const le = window.innerWidth <= 420;
2347
+ const p = r.value.querySelector("button");
2348
+ if (!p) return;
2349
+ const M = 12, { clientHeight: A, clientWidth: D } = l.value, { top: L, left: $, right: f, height: T, width: R } = p.getBoundingClientRect(), H = window.innerWidth / 2, O = window.innerHeight / 2;
2350
+ let N, j;
2351
+ const U = [];
2352
+ g.value || e.box || e.vertical ? (L + T > O ? (N = L - A - M, U.push("top")) : (N = L + T + M, U.push("bottom")), $ + R > H ? (j = f - D, U.push("right"), window.innerWidth - ($ + R) > D / 2 && (j = $ + (R - D) / 2, U.splice(U.indexOf("right"), 1))) : (j = $ + (R - D) / 2, j < 0 && (j = $, U.push("left")))) : (N = L + (T - A) / 2, $ + R > H ? (j = $ - D - M, U.push("right")) : j = f + M);
2353
+ const ce = window.innerWidth <= 420;
2153
2354
  s.value = {
2154
- top: `${G}px`,
2155
- left: le ? "50%" : `${j}px`,
2156
- transform: le ? "translateX(-50%)" : "none"
2157
- }, l.value && (l.value.className = `krds-tooltip-popover ${X.join(" ")} ${w.value.join(" ")}`);
2158
- }, $ = async () => {
2159
- e.disabled || !e.tooltipContent || (n.value = !0, await ce(), S());
2160
- }, f = () => {
2355
+ top: `${N}px`,
2356
+ left: ce ? "50%" : `${j}px`,
2357
+ transform: ce ? "translateX(-50%)" : "none"
2358
+ }, l.value && (l.value.className = `krds-tooltip-popover ${U.join(" ")} ${y.value.join(" ")}`);
2359
+ }, K = async () => {
2360
+ e.disabled || !e.tooltipContent || (n.value = !0, await pe(), k());
2361
+ }, m = () => {
2161
2362
  n.value = !1, s.value = {};
2162
- }, o = (m) => {
2163
- (m.key === "Escape" || m.key === "Esc") && n.value && f();
2363
+ }, v = (p) => {
2364
+ (p.key === "Escape" || p.key === "Esc") && n.value && m();
2365
+ }, o = () => {
2366
+ g.value = S(), n.value && m();
2164
2367
  }, i = () => {
2165
- h.value = B(), n.value && f();
2166
- }, v = () => {
2167
- n.value && f();
2368
+ n.value && m();
2168
2369
  };
2169
- return re(() => {
2170
- h.value = B(), document.addEventListener("keydown", o), window.addEventListener("scroll", v), window.addEventListener("resize", i);
2171
- }), ie(() => {
2172
- document.removeEventListener("keydown", o), window.removeEventListener("scroll", v), window.removeEventListener("resize", i);
2370
+ return ee(() => {
2371
+ g.value = S(), document.addEventListener("keydown", v), window.addEventListener("scroll", i), window.addEventListener("resize", o);
2372
+ }), ue(() => {
2373
+ document.removeEventListener("keydown", v), window.removeEventListener("scroll", i), window.removeEventListener("resize", o);
2173
2374
  }), () => t("div", { ref: r }, [t("button", {
2174
2375
  type: "button",
2175
- class: p.value,
2376
+ class: h.value,
2176
2377
  disabled: e.disabled,
2177
- "aria-labelledby": d,
2178
- onMouseover: $,
2179
- onMouseout: f,
2180
- onFocusin: $,
2181
- onFocusout: f
2182
- }, a.default?.()), ve(t("div", {
2183
- id: d,
2378
+ "aria-labelledby": u,
2379
+ onMouseover: K,
2380
+ onMouseout: m,
2381
+ onFocusin: K,
2382
+ onFocusout: m
2383
+ }, a.default?.()), ge(t("div", {
2384
+ id: u,
2184
2385
  ref: l,
2185
- class: ["krds-tooltip-popover", w.value],
2386
+ class: ["krds-tooltip-popover", y.value],
2186
2387
  style: s.value,
2187
2388
  "aria-hidden": !n.value,
2188
2389
  role: "tooltip"
2189
2390
  }, [
2190
- t("span", { class: "sr-only" }, c.value),
2391
+ t("span", { class: "sr-only" }, d.value),
2191
2392
  " ",
2192
2393
  e.tooltipContent
2193
- ]), [[pe, n.value]])]);
2394
+ ]), [[Se, n.value]])]);
2194
2395
  }
2195
- }), ia = ra, oa = M({
2396
+ }), ya = ga, ma = /* @__PURE__ */ _({
2196
2397
  name: "KrdsLanguageSwitcher",
2197
2398
  props: {
2198
2399
  languageList: {
@@ -2217,57 +2418,57 @@ var _t = M({
2217
2418
  close: () => !0
2218
2419
  },
2219
2420
  setup(e, { emit: a, slots: r }) {
2220
- const l = D(!1), n = D(), s = D(), d = () => {
2221
- l.value = !l.value, l.value && n.value && w();
2222
- }, h = () => {
2421
+ const l = E(!1), n = E(), s = E(), u = () => {
2422
+ l.value = !l.value, l.value && n.value && y();
2423
+ }, g = () => {
2223
2424
  l.value = !1;
2224
- }, p = (i) => {
2225
- a("update:modelValue", i), h(), a("close"), s.value?.focus();
2226
- }, w = () => {
2425
+ }, h = (o) => {
2426
+ a("update:modelValue", o), g(), a("close"), s.value?.focus();
2427
+ }, y = () => {
2227
2428
  if (!n.value) return;
2228
- const i = n.value.querySelector(".drop-menu");
2229
- if (!i) return;
2230
- const v = i.getBoundingClientRect(), m = window.innerWidth;
2231
- n.value.classList.remove("drop-left", "drop-right"), v.left < 0 ? n.value.classList.add("drop-left") : m < v.left + v.width && n.value.classList.add("drop-right");
2232
- }, c = (i) => {
2233
- i.key === "Escape" && (h(), s.value?.focus());
2234
- }, B = (i) => {
2235
- n.value?.contains(i.target) || h();
2236
- }, S = (i) => {
2237
- n.value?.contains(i.relatedTarget) || h();
2238
- }, $ = (i) => {
2429
+ const o = n.value.querySelector(".drop-menu");
2430
+ if (!o) return;
2431
+ const i = o.getBoundingClientRect(), p = window.innerWidth;
2432
+ n.value.classList.remove("drop-left", "drop-right"), i.left < 0 ? n.value.classList.add("drop-left") : p < i.left + i.width && n.value.classList.add("drop-right");
2433
+ }, d = (o) => {
2434
+ o.key === "Escape" && (g(), s.value?.focus());
2435
+ }, S = (o) => {
2436
+ n.value?.contains(o.target) || g();
2437
+ }, k = (o) => {
2438
+ n.value?.contains(o.relatedTarget) || g();
2439
+ }, K = (o) => {
2239
2440
  if (!n.value) return;
2240
- n.value.querySelectorAll(".drop-list .item-link").forEach((m) => {
2241
- m.style.position = "relative", m.style.zIndex = "0";
2441
+ n.value.querySelectorAll(".drop-list .item-link").forEach((p) => {
2442
+ p.style.position = "relative", p.style.zIndex = "0";
2242
2443
  });
2243
- const v = i.target;
2244
- v.style.zIndex = "1";
2444
+ const i = o.target;
2445
+ i.style.zIndex = "1";
2245
2446
  };
2246
- se(l, (i) => {
2247
- i ? (document.addEventListener("keydown", c), document.addEventListener("click", B)) : (document.removeEventListener("keydown", c), document.removeEventListener("click", B));
2248
- }), ie(() => {
2249
- document.removeEventListener("keydown", c), document.removeEventListener("click", B);
2447
+ se(l, (o) => {
2448
+ o ? (document.addEventListener("keydown", d), document.addEventListener("click", S)) : (document.removeEventListener("keydown", d), document.removeEventListener("click", S));
2449
+ }), ue(() => {
2450
+ document.removeEventListener("keydown", d), document.removeEventListener("click", S);
2250
2451
  });
2251
- const f = () => t("ul", { class: "drop-list" }, e.languageList.map((i) => t("li", { key: i.code }, [t("a", {
2452
+ const m = () => t("ul", { class: "drop-list" }, e.languageList.map((o) => t("li", { key: o.code }, [t("a", {
2252
2453
  href: "#",
2253
- class: ["item-link", { active: e.modelValue === i.code }],
2254
- lang: i.code,
2255
- "aria-selected": e.modelValue === i.code,
2256
- onClick: ge(() => p(i.code), ["prevent"]),
2257
- onFocus: $
2454
+ class: ["item-link", { active: e.modelValue === o.code }],
2455
+ lang: o.code,
2456
+ "aria-selected": e.modelValue === o.code,
2457
+ onClick: Ke(() => h(o.code), ["prevent"]),
2458
+ onFocus: K
2258
2459
  }, [
2259
- i.name,
2460
+ o.name,
2260
2461
  " ",
2261
- t("span", { class: "sr-only" }, e.modelValue === i.code ? "선택됨" : "")
2262
- ])]))), o = () => t("ul", { class: "drop-list" }, e.languageList.map((i) => t("li", { key: i.code }, [t("a", {
2263
- href: i.url || "#",
2462
+ t("span", { class: "sr-only" }, e.modelValue === o.code ? "선택됨" : "")
2463
+ ])]))), v = () => t("ul", { class: "drop-list" }, e.languageList.map((o) => t("li", { key: o.code }, [t("a", {
2464
+ href: o.url || "#",
2264
2465
  class: "item-link",
2265
- lang: i.code,
2466
+ lang: o.code,
2266
2467
  target: "_blank",
2267
2468
  title: "새 창 열림",
2268
- onFocus: $
2469
+ onFocus: K
2269
2470
  }, [
2270
- i.name,
2471
+ o.name,
2271
2472
  " ",
2272
2473
  t("i", { class: "svg-icon ico-go" })
2273
2474
  ])])));
@@ -2282,13 +2483,13 @@ var _t = M({
2282
2483
  "drop-right": e.dropPosition === "right"
2283
2484
  }
2284
2485
  ],
2285
- onFocusout: S
2486
+ onFocusout: k
2286
2487
  }, [t("button", {
2287
2488
  ref: s,
2288
2489
  type: "button",
2289
2490
  class: ["krds-btn small text drop-btn", { active: l.value }],
2290
2491
  "aria-expanded": l.value,
2291
- onClick: d
2492
+ onClick: u
2292
2493
  }, [
2293
2494
  t("i", { class: "svg-icon ico-global" }),
2294
2495
  r.default?.(),
@@ -2296,16 +2497,20 @@ var _t = M({
2296
2497
  ]), t("div", {
2297
2498
  class: "drop-menu",
2298
2499
  style: { display: l.value ? "block" : "none" }
2299
- }, [t("div", { class: "drop-in" }, [r["prev-item"] ? t("div", { class: "drop-top" }, r["prev-item"]()) : null, e.type === "default" ? f() : e.type === "external" ? o() : null])])]);
2500
+ }, [t("div", { class: "drop-in" }, [r["prev-item"] ? t("div", { class: "drop-top" }, r["prev-item"]()) : null, e.type === "default" ? m() : e.type === "external" ? v() : null])])]);
2300
2501
  }
2301
- }), ua = oa, da = M({
2502
+ }), ba = ma, ka = /* @__PURE__ */ _({
2302
2503
  name: "KrdsResize",
2504
+ props: { modelValue: {
2505
+ type: String,
2506
+ default: void 0
2507
+ } },
2303
2508
  emits: {
2304
2509
  "update:modelValue": (e) => !0,
2305
2510
  close: () => !0
2306
2511
  },
2307
2512
  setup(e, { emit: a }) {
2308
- const r = D(!1), l = D(), n = D(), s = D("md"), d = [
2513
+ const r = E(!1), l = E(), n = E(), s = E(e.modelValue ?? "md"), u = [
2309
2514
  {
2310
2515
  key: "sm",
2311
2516
  label: "작게",
@@ -2331,53 +2536,58 @@ var _t = M({
2331
2536
  label: "가장 크게",
2332
2537
  zoom: "1.5"
2333
2538
  }
2334
- ], h = () => {
2335
- r.value = !r.value, r.value && l.value && B();
2336
- }, p = () => {
2539
+ ], g = () => {
2540
+ r.value = !r.value, r.value && l.value && k();
2541
+ }, h = () => {
2337
2542
  r.value = !1;
2338
- }, w = (i) => {
2339
- p(), a("close"), n.value?.focus(), s.value = i.key, document.body.style.zoom = i?.zoom;
2340
- }, c = () => {
2341
- const i = d.find((v) => v.key === "md");
2342
- i && w(i);
2343
- }, B = () => {
2543
+ }, y = (i) => {
2544
+ const p = u.find((M) => M.key === i);
2545
+ p && (s.value = p.key, document.body.style.zoom = p.zoom);
2546
+ }, d = (i) => {
2547
+ h(), a("close"), n.value?.focus(), y(i.key), a("update:modelValue", i.key);
2548
+ };
2549
+ ee(() => e.modelValue && y(e.modelValue)), se(() => e.modelValue, (i) => i && y(i));
2550
+ const S = () => {
2551
+ const i = u.find((p) => p.key === "md");
2552
+ i && d(i);
2553
+ }, k = () => {
2344
2554
  if (!l.value) return;
2345
2555
  const i = l.value.querySelector(".drop-menu");
2346
2556
  if (!i) return;
2347
- const v = i.getBoundingClientRect(), m = window.innerWidth;
2348
- l.value.classList.remove("drop-left", "drop-right"), v.left < 0 ? l.value.classList.add("drop-left") : m < v.left + v.width && l.value.classList.add("drop-right");
2349
- }, S = (i) => {
2350
- i.key === "Escape" && (p(), n.value?.focus());
2351
- }, $ = (i) => {
2352
- l.value?.contains(i.target) || p();
2353
- }, f = (i) => {
2354
- l.value?.contains(i.relatedTarget) || p();
2557
+ const p = i.getBoundingClientRect(), M = window.innerWidth;
2558
+ l.value.classList.remove("drop-left", "drop-right"), p.left < 0 ? l.value.classList.add("drop-left") : M < p.left + p.width && l.value.classList.add("drop-right");
2559
+ }, K = (i) => {
2560
+ i.key === "Escape" && (h(), n.value?.focus());
2561
+ }, m = (i) => {
2562
+ l.value?.contains(i.target) || h();
2563
+ }, v = (i) => {
2564
+ l.value?.contains(i.relatedTarget) || h();
2355
2565
  }, o = (i) => {
2356
2566
  if (!l.value) return;
2357
- l.value.querySelectorAll(".drop-list .item-link").forEach((m) => {
2358
- m.style.position = "relative", m.style.zIndex = "0";
2567
+ l.value.querySelectorAll(".drop-list .item-link").forEach((M) => {
2568
+ M.style.position = "relative", M.style.zIndex = "0";
2359
2569
  });
2360
- const v = i.target;
2361
- v.style.zIndex = "1";
2570
+ const p = i.target;
2571
+ p.style.zIndex = "1";
2362
2572
  };
2363
2573
  return se(r, (i) => {
2364
- i ? (document.addEventListener("keydown", S), document.addEventListener("click", $)) : (document.removeEventListener("keydown", S), document.removeEventListener("click", $));
2365
- }), ie(() => {
2366
- document.removeEventListener("keydown", S), document.removeEventListener("click", $);
2574
+ i ? (document.addEventListener("keydown", K), document.addEventListener("click", m)) : (document.removeEventListener("keydown", K), document.removeEventListener("click", m));
2575
+ }), ue(() => {
2576
+ document.removeEventListener("keydown", K), document.removeEventListener("click", m);
2367
2577
  }), () => t("div", {
2368
2578
  ref: l,
2369
2579
  class: "krds-drop-wrap krds-resize",
2370
2580
  "data-adjust": "scale",
2371
- onFocusout: f
2581
+ onFocusout: v
2372
2582
  }, [t("button", {
2373
2583
  ref: n,
2374
2584
  type: "button",
2375
2585
  class: "krds-btn small text drop-btn",
2376
- onClick: h
2586
+ onClick: g
2377
2587
  }, ["화면크기 ", t("i", { class: "svg-icon ico-toggle" })]), t("div", {
2378
2588
  class: "drop-menu",
2379
2589
  style: { display: r.value ? "block" : "none" }
2380
- }, [t("div", { class: "drop-in" }, [t("ul", { class: "drop-list" }, d.map((i) => t("li", { key: i.key }, [t("button", {
2590
+ }, [t("div", { class: "drop-in" }, [t("ul", { class: "drop-list" }, u.map((i) => t("li", { key: i.key }, [t("button", {
2381
2591
  type: "button",
2382
2592
  class: [
2383
2593
  "item-link",
@@ -2385,17 +2595,17 @@ var _t = M({
2385
2595
  i.key === s.value ? "active" : ""
2386
2596
  ],
2387
2597
  "data-adjust-scale": i.key,
2388
- onClick: ge(() => w(i), ["prevent"]),
2598
+ onClick: Ke(() => d(i), ["prevent"]),
2389
2599
  onFocus: o
2390
2600
  }, i.label)]))), t("div", { class: "drop-bottom" }, [t("button", {
2391
2601
  type: "button",
2392
2602
  class: "krds-btn medium text",
2393
2603
  "data-adjust-scale": "md",
2394
- onClick: ge(c, ["prevent"]),
2604
+ onClick: Ke(S, ["prevent"]),
2395
2605
  onFocus: o
2396
2606
  }, [t("i", { class: "svg-icon ico-reset" }), " 초기화"])])])])]);
2397
2607
  }
2398
- }), ca = da, fa = M({
2608
+ }), Sa = ka, wa = /* @__PURE__ */ _({
2399
2609
  name: "KrdsModal",
2400
2610
  props: {
2401
2611
  modelValue: {
@@ -2430,55 +2640,55 @@ var _t = M({
2430
2640
  emits: { "update:modelValue": (e) => !0 },
2431
2641
  slots: Object,
2432
2642
  setup(e, { slots: a, emit: r }) {
2433
- const l = xe()?.uid, n = b(() => e.modalId ?? `krds-modal-${l}`), s = b({
2643
+ const l = xe()?.uid, n = C(() => e.modalId ?? `krds-modal-${l}`), s = C({
2434
2644
  get: () => e.modelValue,
2435
- set: (v) => r("update:modelValue", v)
2436
- }), d = b(() => `tit_${n.value}`), h = b(() => ({
2645
+ set: (i) => r("update:modelValue", i)
2646
+ }), u = C(() => `tit_${n.value}`), g = C(() => ({
2437
2647
  small: "modal-sm",
2438
2648
  medium: "modal-md",
2439
2649
  large: "modal-lg"
2440
- })[e.size]), p = () => {
2650
+ })[e.size]), h = () => {
2441
2651
  s.value = !1;
2442
2652
  };
2443
- let w = "", c = null;
2444
- const B = D(null), S = (v) => Array.from(v.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter((m) => !m.hasAttribute("disabled") && m.getAttribute("tabindex") !== "-1"), $ = (v) => {
2445
- if (!B.value || v.key !== "Tab") return;
2446
- const m = S(B.value);
2447
- if (m.length === 0) {
2448
- v.preventDefault();
2653
+ let y = "", d = null;
2654
+ const S = E(null), k = (i) => Array.from(i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter((p) => !p.hasAttribute("disabled") && p.getAttribute("tabindex") !== "-1"), K = (i) => {
2655
+ if (!S.value || i.key !== "Tab") return;
2656
+ const p = k(S.value);
2657
+ if (p.length === 0) {
2658
+ i.preventDefault();
2449
2659
  return;
2450
2660
  }
2451
- const x = m[0], K = m[m.length - 1];
2452
- v.shiftKey && document.activeElement === x ? (v.preventDefault(), K.focus()) : !v.shiftKey && document.activeElement === K && (v.preventDefault(), x.focus());
2453
- }, f = (v) => {
2454
- v.key === "Escape" && !e.persistent && p();
2455
- }, o = () => {
2456
- document.body.style.overflow = w, document.removeEventListener("keydown", $), document.removeEventListener("keydown", f), c && (c.focus(), c = null), B.value = null;
2457
- }, i = async () => {
2458
- w = document.body.style.overflow, document.body.style.overflow = "hidden", c = document.activeElement, await ce();
2459
- const v = document.getElementById(n.value);
2460
- if (v) {
2461
- B.value = v;
2462
- const m = v.querySelector(".modal-conts");
2463
- m && (m.setAttribute("tabindex", "-1"), m.focus()), document.addEventListener("keydown", $), document.addEventListener("keydown", f);
2661
+ const M = p[0], A = p[p.length - 1];
2662
+ i.shiftKey && document.activeElement === M ? (i.preventDefault(), A.focus()) : !i.shiftKey && document.activeElement === A && (i.preventDefault(), M.focus());
2663
+ }, m = (i) => {
2664
+ i.key === "Escape" && !e.persistent && h();
2665
+ }, v = () => {
2666
+ document.body.style.overflow = y, document.removeEventListener("keydown", K), document.removeEventListener("keydown", m), d && (d.focus(), d = null), S.value = null;
2667
+ }, o = async () => {
2668
+ y = document.body.style.overflow, document.body.style.overflow = "hidden", d = document.activeElement, await pe();
2669
+ const i = document.getElementById(n.value);
2670
+ if (i) {
2671
+ S.value = i;
2672
+ const p = i.querySelector(".modal-conts");
2673
+ p && (p.setAttribute("tabindex", "-1"), p.focus()), document.addEventListener("keydown", K), document.addEventListener("keydown", m);
2464
2674
  }
2465
2675
  };
2466
- return se(() => e.modelValue, (v) => v ? i() : o()), re(() => {
2467
- e.modelValue && i();
2468
- }), fe(() => {
2676
+ return se(() => e.modelValue, (i) => i ? o() : v()), ee(() => {
2469
2677
  e.modelValue && o();
2678
+ }), oe(() => {
2679
+ e.modelValue && v();
2470
2680
  }), () => {
2471
2681
  if (!s.value) return null;
2472
- const v = {
2682
+ const i = {
2473
2683
  id: n.value,
2474
2684
  class: "krds-modal fade in shown",
2475
2685
  role: "dialog",
2476
2686
  "aria-modal": !0,
2477
- "aria-labelledby": d.value
2687
+ "aria-labelledby": u.value
2478
2688
  };
2479
- return e.full ? v["data-type"] = "full" : e.bottomSheet && (v["data-type"] = "bottom-sheet"), t(Ce, { to: "body" }, t("section", v, [t("div", { class: `modal-dialog ${h.value}` }, [t("div", { class: "modal-content" }, [
2689
+ return e.full ? i["data-type"] = "full" : e.bottomSheet && (i["data-type"] = "bottom-sheet"), t(Ce, { to: "body" }, t("section", i, [t("div", { class: `modal-dialog ${g.value}` }, [t("div", { class: "modal-content" }, [
2480
2690
  a.title ? t("div", { class: "modal-header" }, [t("h2", {
2481
- id: d.value,
2691
+ id: u.value,
2482
2692
  class: "modal-title"
2483
2693
  }, a.title())]) : null,
2484
2694
  t("div", { class: "modal-conts" }, [t("div", { class: "conts-area" }, a.default?.())]),
@@ -2486,15 +2696,15 @@ var _t = M({
2486
2696
  t("button", {
2487
2697
  type: "button",
2488
2698
  class: "krds-btn medium icon btn-close close-modal",
2489
- onClick: p
2699
+ onClick: h
2490
2700
  }, [t("span", { class: "sr-only" }, "닫기"), t("i", { class: "svg-icon ico-popup-close" })])
2491
2701
  ].filter(Boolean))]), t("div", {
2492
2702
  class: e.backdrop ? "modal-back in" : "modal-back",
2493
- onClick: e.persistent ? void 0 : p
2703
+ onClick: e.persistent ? void 0 : h
2494
2704
  })]));
2495
2705
  };
2496
2706
  }
2497
- }), va = fa, pa = M({
2707
+ }), Ka = wa, Ca = /* @__PURE__ */ _({
2498
2708
  name: "KrdsAccordionGroup",
2499
2709
  props: {
2500
2710
  typeLine: {
@@ -2507,13 +2717,13 @@ var _t = M({
2507
2717
  }
2508
2718
  },
2509
2719
  setup(e, { slots: a }) {
2510
- const r = b(() => {
2720
+ const r = C(() => {
2511
2721
  const l = ["krds-accordion"];
2512
2722
  return e.typeLine && l.push("type-line"), e.class && l.push(e.class), l;
2513
2723
  });
2514
2724
  return () => t("div", { class: r.value }, a.default?.());
2515
2725
  }
2516
- }), ga = pa, ha = M({
2726
+ }), xa = Ca, $a = /* @__PURE__ */ _({
2517
2727
  name: "KrdsAccordionItem",
2518
2728
  props: {
2519
2729
  id: {
@@ -2535,7 +2745,7 @@ var _t = M({
2535
2745
  },
2536
2746
  emits: { toggle: (e) => !0 },
2537
2747
  setup(e, { emit: a, slots: r }) {
2538
- const l = b(() => e.openItem === e.id), n = () => {
2748
+ const l = C(() => e.openItem === e.id), n = () => {
2539
2749
  a("toggle", e.id);
2540
2750
  };
2541
2751
  return () => t("div", {
@@ -2555,7 +2765,7 @@ var _t = M({
2555
2765
  "aria-labelledby": `accordion-header-${e.id}`
2556
2766
  }, [t("div", { class: "accordion-body" }, r.content?.() ?? e.content)])]);
2557
2767
  }
2558
- }), ya = ha, ma = M({
2768
+ }), La = $a, Ba = /* @__PURE__ */ _({
2559
2769
  name: "KrdsTts",
2560
2770
  props: {
2561
2771
  text: {
@@ -2590,7 +2800,7 @@ var _t = M({
2590
2800
  error: (e) => !0
2591
2801
  },
2592
2802
  setup(e, { emit: a }) {
2593
- const r = D(!1);
2803
+ const r = E(!1);
2594
2804
  let l = null;
2595
2805
  const n = () => {
2596
2806
  typeof window < "u" && window.speechSynthesis && window.speechSynthesis.cancel(), r.value = !1, l = null;
@@ -2608,30 +2818,30 @@ var _t = M({
2608
2818
  r.value = !0;
2609
2819
  }, l.onend = () => {
2610
2820
  r.value = !1, l = null, a("end");
2611
- }, l.onerror = (p) => {
2612
- r.value = !1, l = null, p.error !== "canceled" && a("error", new Error(p.error));
2821
+ }, l.onerror = (h) => {
2822
+ r.value = !1, l = null, h.error !== "canceled" && a("error", new Error(h.error));
2613
2823
  }, window.speechSynthesis.speak(l), a("play", e.text);
2614
2824
  }
2615
- }, d = b(() => {
2616
- const p = ["krds-tts"];
2617
- return e.size && p.push(e.size), r.value ? p.push("pause") : e.icon === "play" && p.push("play"), e.class && p.push(e.class), p;
2618
- }), h = b(() => r.value ? "ico-stop" : e.icon === "play" ? "ico-play" : "ico-volume");
2619
- return fe(() => {
2825
+ }, u = C(() => {
2826
+ const h = ["krds-tts"];
2827
+ return e.size && h.push(e.size), r.value ? h.push("pause") : e.icon === "play" && h.push("play"), e.class && h.push(e.class), h;
2828
+ }), g = C(() => r.value ? "ico-stop" : e.icon === "play" ? "ico-play" : "ico-volume");
2829
+ return oe(() => {
2620
2830
  n();
2621
2831
  }), () => {
2622
- const p = [t("span", {
2832
+ const h = [t("span", {
2623
2833
  class: "krds-tts-icon",
2624
2834
  "aria-hidden": "true"
2625
- }, [t("i", { class: `svg-icon ${h.value}` })])];
2626
- return e.label && p.push(t("span", { class: "krds-tts-text" }, e.label)), t("button", {
2835
+ }, [t("i", { class: `svg-icon ${g.value}` })])];
2836
+ return e.label && h.push(t("span", { class: "krds-tts-text" }, e.label)), t("button", {
2627
2837
  type: "button",
2628
- class: d.value,
2838
+ class: u.value,
2629
2839
  disabled: e.disabled || void 0,
2630
2840
  onClick: s
2631
- }, p);
2841
+ }, h);
2632
2842
  };
2633
2843
  }
2634
- }), ba = ma, ka = M({
2844
+ }), Ea = Ba, Da = /* @__PURE__ */ _({
2635
2845
  name: "KrdsTable",
2636
2846
  props: {
2637
2847
  caption: {
@@ -2654,65 +2864,71 @@ var _t = M({
2654
2864
  emits: { "row-click": (e, a) => !0 },
2655
2865
  slots: Object,
2656
2866
  setup(e, { emit: a, slots: r }) {
2657
- const l = b(() => {
2658
- const f = ["tbl"];
2659
- return e.class && f.push(e.class), f;
2660
- }), n = b(() => ["krds-table-wrap"]), s = (f) => f.headerStyle || void 0, d = (f) => {
2661
- const o = [];
2662
- return f.align && o.push(`text-${f.align}`), f.headerClasses && o.push(f.headerClasses), o.length > 0 ? o : void 0;
2663
- }, h = (f, o) => {
2664
- if (o.style)
2665
- return typeof o.style == "function" ? o.style(f) : o.style;
2666
- }, p = (f, o) => {
2867
+ const l = xe(), n = C(() => {
2868
+ const o = ["tbl"];
2869
+ return e.class && o.push(e.class), o;
2870
+ }), s = C(() => ["krds-table-wrap"]), u = (o) => o.headerStyle || void 0, g = (o) => {
2667
2871
  const i = [];
2668
- if (o.align && i.push(`text-${o.align}`), o.classes) {
2669
- const v = typeof o.classes == "function" ? o.classes(f) : o.classes;
2670
- i.push(v);
2872
+ return o.align && i.push(`text-${o.align}`), o.headerClasses && i.push(o.headerClasses), i.length > 0 ? i : void 0;
2873
+ }, h = (o, i) => {
2874
+ if (i.style)
2875
+ return typeof i.style == "function" ? i.style(o) : i.style;
2876
+ }, y = (o, i) => {
2877
+ const p = [];
2878
+ if (i.align && p.push(`text-${i.align}`), i.classes) {
2879
+ const M = typeof i.classes == "function" ? i.classes(o) : i.classes;
2880
+ p.push(M);
2671
2881
  }
2672
- return i.length > 0 ? i : void 0;
2673
- }, w = () => !e.columns.length || !e.columns.some((f) => f.headerStyle && f.headerStyle.includes("width")) ? null : t("colgroup", e.columns.map((f) => {
2674
- if (!f.headerStyle) return t("col");
2675
- const o = f.headerStyle.match(/width\s*:\s*([^;]+)/i);
2676
- return t("col", { style: o ? { width: o[1].trim() } : void 0 });
2677
- })), c = () => {
2882
+ return p.length > 0 ? p : void 0;
2883
+ }, d = () => !e.columns.length || !e.columns.some((o) => o.headerStyle && o.headerStyle.includes("width")) ? null : t("colgroup", e.columns.map((o) => {
2884
+ if (!o.headerStyle) return t("col");
2885
+ const i = o.headerStyle.match(/width\s*:\s*([^;]+)/i);
2886
+ return t("col", { style: i ? { width: i[1].trim() } : void 0 });
2887
+ })), S = () => {
2678
2888
  if (!e.columns.length) return null;
2679
- const f = e.columns.map((o) => {
2680
- const i = s(o), v = d(o);
2889
+ const o = e.columns.map((i) => {
2890
+ const p = u(i), M = g(i);
2681
2891
  return t("th", {
2682
2892
  scope: "col",
2683
- class: v,
2684
- style: i
2685
- }, o.label);
2893
+ class: M,
2894
+ style: p
2895
+ }, i.label);
2686
2896
  });
2687
- return t("thead", [t("tr", f)]);
2688
- }, B = (f, o) => typeof o.field == "function" ? o.field(f) : f[o.field], S = () => {
2897
+ return t("thead", [t("tr", o)]);
2898
+ }, k = (o, i) => typeof i.field == "function" ? i.field(o) : o[i.field], K = () => {
2689
2899
  if (!e.rows.length) return t("tbody", [t("tr", [t("td", {
2690
2900
  colspan: e.columns.length || 1,
2691
2901
  class: "text-center"
2692
2902
  }, r["no-data"] ? r["no-data"]() : "데이터가 없습니다.")])]);
2693
- const f = e.rows.map((o, i) => {
2694
- const v = e.columns.map((m, x) => {
2695
- const K = B(o, m), E = typeof K == "function" ? K() : K, T = h(o, m), _ = p(o, m);
2696
- return t(x === 0 ? "th" : "td", {
2697
- scope: x === 0 ? "row" : void 0,
2698
- class: _,
2699
- style: T
2700
- }, E);
2903
+ const o = l?.vnode.props, i = !!(o?.onRowClick || o?.["onRow-click"]), p = e.rows.map((M, A) => {
2904
+ const D = e.columns.map((L, $) => {
2905
+ const f = k(M, L), T = typeof f == "function" ? f() : f, R = h(M, L), H = y(M, L);
2906
+ return t($ === 0 ? "th" : "td", {
2907
+ scope: $ === 0 ? "row" : void 0,
2908
+ class: H,
2909
+ style: R
2910
+ }, T);
2701
2911
  });
2702
- return t("tr", { onClick: () => $(o, i) }, v);
2912
+ return t("tr", i ? {
2913
+ tabindex: 0,
2914
+ onClick: () => m(M, A),
2915
+ onKeydown: (L) => v(L, M, A)
2916
+ } : null, D);
2703
2917
  });
2704
- return t("tbody", f);
2705
- }, $ = (f, o) => {
2706
- a("row-click", f, o);
2918
+ return t("tbody", p);
2919
+ }, m = (o, i) => {
2920
+ a("row-click", o, i);
2921
+ }, v = (o, i, p) => {
2922
+ o.target !== o.currentTarget || o.key !== "Enter" && o.key !== " " || (o.preventDefault(), m(i, p));
2707
2923
  };
2708
- return () => t("div", { class: n.value }, [t("table", { class: l.value }, [
2924
+ return () => t("div", { class: s.value }, [t("table", { class: n.value }, [
2709
2925
  e.caption && t("caption", e.caption),
2710
- w(),
2711
- c(),
2712
- S()
2926
+ d(),
2927
+ S(),
2928
+ K()
2713
2929
  ])]);
2714
2930
  }
2715
- }), Sa = ka, wa = M({
2931
+ }), Ta = Da, Aa = /* @__PURE__ */ _({
2716
2932
  name: "KrdsHeader",
2717
2933
  props: {
2718
2934
  id: {
@@ -2726,7 +2942,7 @@ var _t = M({
2726
2942
  },
2727
2943
  slots: Object,
2728
2944
  setup(e, { slots: a }) {
2729
- const r = b(() => {
2945
+ const r = C(() => {
2730
2946
  const l = [];
2731
2947
  return e.class && l.push(e.class), l;
2732
2948
  });
@@ -2744,7 +2960,7 @@ var _t = M({
2744
2960
  }, n);
2745
2961
  };
2746
2962
  }
2747
- }), Ka = wa, Ca = M({
2963
+ }), _a = Aa, Ma = /* @__PURE__ */ _({
2748
2964
  name: "KrdsFooter",
2749
2965
  props: {
2750
2966
  id: {
@@ -2757,21 +2973,21 @@ var _t = M({
2757
2973
  }
2758
2974
  },
2759
2975
  setup(e, { slots: a }) {
2760
- const r = b(() => {
2761
- const h = [];
2762
- return e.class && h.push(e.class), h;
2763
- }), l = () => a.top ? t("div", { class: "foot-quick" }, [t("div", { class: "inner" }, a.top())]) : null, n = () => a.logo ? t("div", { class: "f-logo" }, a.logo()) : null, s = () => a.content ? t("div", { class: "f-cnt" }, a.content()) : null, d = () => a.bottom ? t("div", { class: "f-btm" }, a.bottom()) : null;
2976
+ const r = C(() => {
2977
+ const g = [];
2978
+ return e.class && g.push(e.class), g;
2979
+ }), l = () => a.top ? t("div", { class: "foot-quick" }, [t("div", { class: "inner" }, a.top())]) : null, n = () => a.logo ? t("div", { class: "f-logo" }, a.logo()) : null, s = () => a.content ? t("div", { class: "f-cnt" }, a.content()) : null, u = () => a.bottom ? t("div", { class: "f-btm" }, a.bottom()) : null;
2764
2980
  return () => {
2765
- const h = l(), p = n(), w = s(), c = d(), B = [];
2766
- p && B.push(p), w && B.push(w), c && B.push(c);
2767
- const S = [];
2768
- return h && S.push(h), B.length > 0 && S.push(t("div", { class: "inner" }, B)), t("footer", {
2981
+ const g = l(), h = n(), y = s(), d = u(), S = [];
2982
+ h && S.push(h), y && S.push(y), d && S.push(d);
2983
+ const k = [];
2984
+ return g && k.push(g), S.length > 0 && k.push(t("div", { class: "inner" }, S)), t("footer", {
2769
2985
  id: e.id,
2770
2986
  class: r.value
2771
- }, S);
2987
+ }, k);
2772
2988
  };
2773
2989
  }
2774
- }), xa = Ca, $a = M({
2990
+ }), Va = Ma, Fa = /* @__PURE__ */ _({
2775
2991
  name: "KrdsDisclosure",
2776
2992
  props: {
2777
2993
  title: {
@@ -2785,7 +3001,7 @@ var _t = M({
2785
3001
  },
2786
3002
  emits: { "update:modelValue": (e) => !0 },
2787
3003
  setup(e, { emit: a, slots: r }) {
2788
- const l = `disclosure-${oe()}`, n = b(() => e.modelValue), s = () => {
3004
+ const l = `disclosure-${de()}`, n = C(() => e.modelValue), s = () => {
2789
3005
  a("update:modelValue", !e.modelValue);
2790
3006
  };
2791
3007
  return () => t("div", { class: [
@@ -2804,7 +3020,7 @@ var _t = M({
2804
3020
  inert: !n.value
2805
3021
  }, [t("div", { class: "expand-in" }, r.default?.())])]);
2806
3022
  }
2807
- }), La = $a, Da = M({
3023
+ }), Pa = Fa, za = /* @__PURE__ */ _({
2808
3024
  name: "KrdsIdentifier",
2809
3025
  props: {
2810
3026
  class: {
@@ -2818,7 +3034,7 @@ var _t = M({
2818
3034
  },
2819
3035
  emits: { click: (e) => !0 },
2820
3036
  setup(e, { emit: a, slots: r }) {
2821
- const l = b(() => {
3037
+ const l = C(() => {
2822
3038
  const s = ["krds-identifier"];
2823
3039
  return e.class && s.push(e.class), s;
2824
3040
  }), n = (s) => {
@@ -2829,7 +3045,7 @@ var _t = M({
2829
3045
  onClick: n
2830
3046
  }, [t("span", { class: "logo" }, [t("span", { class: "sr-only" }, e.logoLabel)]), t("span", { class: "ban-txt" }, r.default?.())]);
2831
3047
  }
2832
- }), Ba = Da, Ta = 50, Ea = M({
3048
+ }), Ra = za, Ia = 50, Ha = /* @__PURE__ */ _({
2833
3049
  name: "KrdsLayout",
2834
3050
  props: {
2835
3051
  id: {
@@ -2851,45 +3067,45 @@ var _t = M({
2851
3067
  "scroll-height": (e) => !0
2852
3068
  },
2853
3069
  setup(e, { slots: a, emit: r }) {
2854
- const l = D(0), n = D(0), s = D(0), d = D(null), h = D(null), p = D(null), w = () => {
2855
- const f = n.value;
2856
- l.value = window.scrollY, n.value = document.body.scrollHeight, f !== n.value && f > 0 && r("scroll-height", n.value);
2857
- }, c = () => {
2858
- if (!h.value || !e.enableScrollDetection) return;
2859
- const f = document.querySelector("#container");
2860
- if (!f) return;
2861
- const o = f.offsetTop, i = window.scrollY, v = i > s.value, m = i < s.value;
2862
- i > o + Ta ? v ? (h.value.classList.add("scroll-down"), h.value.classList.remove("scroll-up"), d.value = "down") : m && (h.value.classList.add("scroll-up"), h.value.classList.remove("scroll-down"), d.value = "up") : (h.value.classList.remove("scroll-down", "scroll-up"), d.value = null), s.value = i;
2863
- }, B = () => {
2864
- w(), c(), r("scroll", {
3070
+ const l = E(0), n = E(0), s = E(0), u = E(null), g = E(null), h = E(null), y = () => {
3071
+ const m = n.value;
3072
+ l.value = window.scrollY, n.value = document.body.scrollHeight, m !== n.value && m > 0 && r("scroll-height", n.value);
3073
+ }, d = () => {
3074
+ if (!g.value || !e.enableScrollDetection) return;
3075
+ const m = document.querySelector("#container");
3076
+ if (!m) return;
3077
+ const v = m.offsetTop, o = window.scrollY, i = o > s.value, p = o < s.value;
3078
+ o > v + Ia ? i ? (g.value.classList.add("scroll-down"), g.value.classList.remove("scroll-up"), u.value = "down") : p && (g.value.classList.add("scroll-up"), g.value.classList.remove("scroll-down"), u.value = "up") : (g.value.classList.remove("scroll-down", "scroll-up"), u.value = null), s.value = o;
3079
+ }, S = () => {
3080
+ y(), d(), r("scroll", {
2865
3081
  scrollY: l.value,
2866
3082
  scrollHeight: n.value,
2867
- direction: d.value,
3083
+ direction: u.value,
2868
3084
  timestamp: Date.now()
2869
3085
  });
2870
- }, S = (f) => {
2871
- for (const o of f) {
2872
- const { width: i, height: v } = o.contentRect;
3086
+ }, k = (m) => {
3087
+ for (const v of m) {
3088
+ const { width: o, height: i } = v.contentRect;
2873
3089
  r("resize", {
2874
- width: i,
2875
- height: v
3090
+ width: o,
3091
+ height: i
2876
3092
  });
2877
3093
  }
2878
- }, $ = b(() => {
2879
- const f = ["g-wrap"];
2880
- return e.class && f.push(e.class), f;
3094
+ }, K = C(() => {
3095
+ const m = ["g-wrap"];
3096
+ return e.class && m.push(e.class), m;
2881
3097
  });
2882
- return re(() => {
2883
- e.enableScrollDetection && (w(), window.addEventListener("scroll", B, { passive: !0 })), h.value && typeof ResizeObserver < "u" && (p.value = new ResizeObserver(S), p.value.observe(h.value));
2884
- }), ie(() => {
2885
- e.enableScrollDetection && window.removeEventListener("scroll", B), p.value && (p.value.disconnect(), p.value = null);
3098
+ return ee(() => {
3099
+ e.enableScrollDetection && (y(), window.addEventListener("scroll", S, { passive: !0 })), g.value && typeof ResizeObserver < "u" && (h.value = new ResizeObserver(k), h.value.observe(g.value));
3100
+ }), ue(() => {
3101
+ e.enableScrollDetection && window.removeEventListener("scroll", S), h.value && (h.value.disconnect(), h.value = null);
2886
3102
  }), () => t("div", {
2887
3103
  id: e.id,
2888
- class: $.value,
2889
- ref: h
3104
+ class: K.value,
3105
+ ref: g
2890
3106
  }, a.default?.());
2891
3107
  }
2892
- }), _a = Ea, Aa = M({
3108
+ }), Oa = Ha, qa = /* @__PURE__ */ _({
2893
3109
  name: "KrdsSideNavigation",
2894
3110
  props: {
2895
3111
  title: {
@@ -2903,142 +3119,149 @@ var _t = M({
2903
3119
  },
2904
3120
  emits: { "update:modelValue": (e) => !0 },
2905
3121
  setup(e, { emit: a }) {
2906
- const r = b(() => e.modelValue || []), l = D(/* @__PURE__ */ new Map()), n = D(/* @__PURE__ */ new Map()), s = D(/* @__PURE__ */ new Map()), d = D(null), h = (x, K, E) => {
2907
- const T = `${K}-${E}`;
2908
- x ? l.value.set(T, x) : l.value.delete(T);
2909
- }, p = (x, K, E) => {
2910
- const T = `${K}-${E}`;
2911
- x ? n.value.set(T, x) : n.value.delete(T);
2912
- }, w = (x, K, E) => {
2913
- const T = `${K}-${E}`;
2914
- x ? s.value.set(T, x) : s.value.delete(T);
2915
- }, c = (x) => {
2916
- a("update:modelValue", r.value.map((K, E) => {
2917
- if (E === x && K.subItems) {
2918
- const T = K.expanded, _ = {
2919
- ...K,
2920
- expanded: !K.expanded
3122
+ const r = C(() => e.modelValue || []), l = de(), n = E(/* @__PURE__ */ new Map()), s = E(/* @__PURE__ */ new Map()), u = E(/* @__PURE__ */ new Map()), g = E(null), h = (A, D, L) => {
3123
+ const $ = `${D}-${L}`;
3124
+ A ? n.value.set($, A) : n.value.delete($);
3125
+ }, y = (A, D, L) => {
3126
+ const $ = `${D}-${L}`;
3127
+ A ? s.value.set($, A) : s.value.delete($);
3128
+ }, d = (A, D, L) => {
3129
+ const $ = `${D}-${L}`;
3130
+ A ? u.value.set($, A) : u.value.delete($);
3131
+ }, S = (A) => {
3132
+ a("update:modelValue", r.value.map((D, L) => {
3133
+ if (L === A && D.subItems) {
3134
+ const $ = D.expanded, f = {
3135
+ ...D,
3136
+ expanded: !D.expanded
2921
3137
  };
2922
- return T && !_.expanded && (_.subItems = K.subItems.map((g) => ({
2923
- ...g,
3138
+ return $ && !f.expanded && (f.subItems = D.subItems.map((T) => ({
3139
+ ...T,
2924
3140
  expanded: !1
2925
- })), d.value = null), _;
3141
+ })), g.value = null), f;
2926
3142
  }
2927
- return K;
3143
+ return D;
2928
3144
  }));
2929
- }, B = (x, K) => {
2930
- a("update:modelValue", r.value.map((E, T) => T === x && E.subItems ? {
2931
- ...E,
2932
- subItems: E.subItems.map((_, g) => {
2933
- if (g === K && _.subItems) {
2934
- const A = {
2935
- ..._,
2936
- expanded: !_.expanded
3145
+ }, k = (A, D) => {
3146
+ a("update:modelValue", r.value.map((L, $) => $ === A && L.subItems ? {
3147
+ ...L,
3148
+ subItems: L.subItems.map((f, T) => {
3149
+ if (T === D && f.subItems) {
3150
+ const R = {
3151
+ ...f,
3152
+ expanded: !f.expanded
2937
3153
  };
2938
- if (A.expanded) {
2939
- const I = `${x}-${K}`;
2940
- d.value = l.value.get(I) || null;
2941
- const O = n.value.get(I), H = s.value.get(I);
2942
- O && H && O.addEventListener("transitionend", () => {
2943
- H.focus();
2944
- }, { once: !0 });
3154
+ if (R.expanded) {
3155
+ const H = `${A}-${D}`;
3156
+ g.value = n.value.get(H) || null;
3157
+ const O = s.value.get(H), N = u.value.get(H);
3158
+ O && N && (O.addEventListener("transitionend", () => {
3159
+ N.focus();
3160
+ }, { once: !0 }), requestAnimationFrame(() => {
3161
+ O.getAnimations({ subtree: !0 }).length || N.focus();
3162
+ }));
2945
3163
  }
2946
- return A;
3164
+ return R;
2947
3165
  }
2948
- return _;
3166
+ return f;
2949
3167
  })
2950
- } : E));
2951
- }, S = (x, K) => {
2952
- a("update:modelValue", r.value.map((E, T) => T === x && E.subItems ? {
2953
- ...E,
2954
- subItems: E.subItems.map((_, g) => {
2955
- if (g === K && _.subItems && _.expanded) {
2956
- if (d.value) {
2957
- const A = d.value;
3168
+ } : L));
3169
+ }, K = (A, D) => {
3170
+ a("update:modelValue", r.value.map((L, $) => $ === A && L.subItems ? {
3171
+ ...L,
3172
+ subItems: L.subItems.map((f, T) => {
3173
+ if (T === D && f.subItems && f.expanded) {
3174
+ if (g.value) {
3175
+ const R = g.value;
2958
3176
  requestAnimationFrame(() => {
2959
- A.focus();
2960
- }), d.value = null;
3177
+ R.focus();
3178
+ }), g.value = null;
2961
3179
  }
2962
3180
  return {
2963
- ..._,
3181
+ ...f,
2964
3182
  expanded: !1
2965
3183
  };
2966
3184
  }
2967
- return _;
3185
+ return f;
2968
3186
  })
2969
- } : E));
2970
- }, $ = (x, K, E) => {
2971
- const T = `${K}-${E}`, _ = n.value.get(T);
2972
- _ && !_.contains(x.relatedTarget) && S(K, E);
2973
- }, f = (x, K) => {
2974
- S(x, K);
2975
- }, o = (x, K) => {
2976
- x.onClick && x.onClick(K);
2977
- }, i = (x, K, E) => x.map((T, _) => t("li", {
2978
- key: `popup-item-${K}-${E}-${_}`,
3187
+ } : L));
3188
+ }, m = (A, D, L) => {
3189
+ const $ = `${D}-${L}`, f = s.value.get($);
3190
+ f && !f.contains(A.relatedTarget) && K(D, L);
3191
+ }, v = (A, D) => {
3192
+ K(A, D);
3193
+ }, o = (A, D) => {
3194
+ A.onClick && A.onClick(D);
3195
+ }, i = (A, D, L) => A.map(($, f) => t("li", {
3196
+ key: `popup-item-${D}-${L}-${f}`,
2979
3197
  role: "none"
2980
3198
  }, t("a", {
2981
- href: T.href || "#",
3199
+ href: $.href || "#",
2982
3200
  class: "lnb-btn",
2983
3201
  role: "menuitem",
2984
- onClick: (g) => o(T, g)
2985
- }, T.text))), v = (x, K) => x.map((E, T) => {
2986
- const _ = `lnb-subitem-${K}-${T}`;
3202
+ onClick: (T) => o($, T)
3203
+ }, $.text))), p = (A, D) => A.map((L, $) => {
3204
+ const f = `lnb-subitem-${D}-${$}`;
2987
3205
  return t("li", {
2988
- key: _,
2989
- class: ["lnb-subitem", { active: E.expanded }],
3206
+ key: f,
3207
+ class: ["lnb-subitem", { active: L.expanded }],
2990
3208
  role: "none"
2991
- }, [E.subItems ? [t("button", {
2992
- ref: (g) => h(g, K, T),
3209
+ }, [L.subItems ? [t("button", {
3210
+ ref: (T) => h(T, D, $),
2993
3211
  type: "button",
2994
3212
  class: "lnb-btn lnb-toggle-popup",
2995
3213
  role: "menuitem",
2996
- "aria-controls": `lnbmenu-${K}-${T}`,
2997
- "aria-expanded": E.expanded ? "true" : "false",
3214
+ "aria-controls": `${l}-lnbmenu-${D}-${$}`,
3215
+ "aria-expanded": L.expanded ? "true" : "false",
2998
3216
  "aria-haspopup": "true",
2999
- onClick: () => B(K, T)
3000
- }, E.text), t("div", {
3001
- ref: (g) => p(g, K, T),
3002
- id: `lnbmenu-${K}-${T}`,
3003
- class: ["lnb-submenu-lv2", { active: E.expanded }],
3217
+ onClick: () => k(D, $)
3218
+ }, L.text), t("div", {
3219
+ ref: (T) => y(T, D, $),
3220
+ id: `${l}-lnbmenu-${D}-${$}`,
3221
+ class: ["lnb-submenu-lv2", { active: L.expanded }],
3004
3222
  role: "menu",
3005
- onFocusout: (g) => $(g, K, T)
3223
+ onFocusout: (T) => m(T, D, $)
3006
3224
  }, [t("button", {
3007
- ref: (g) => w(g, K, T),
3225
+ ref: (T) => d(T, D, $),
3008
3226
  type: "button",
3009
3227
  class: "lnb-btn-tit",
3010
- onClick: () => f(K, T)
3011
- }, E.popupTitle || E.text), t("ul", {}, i(E.subItems || [], K, T))])] : t("a", {
3012
- href: E.href || "#",
3228
+ onClick: () => v(D, $)
3229
+ }, L.popupTitle || L.text), t("ul", {}, i(L.subItems || [], D, $))])] : t("a", {
3230
+ href: L.href || "#",
3013
3231
  class: ["lnb-btn", "lnb-link"],
3014
3232
  role: "menuitem",
3015
- onClick: (g) => o(E, g)
3016
- }, E.text)]);
3017
- }), m = () => r.value.map((x, K) => t("li", {
3018
- key: `lnb-item-${K}`,
3019
- class: ["lnb-item", { active: x.expanded }],
3233
+ onClick: (T) => o(L, T)
3234
+ }, L.text)]);
3235
+ }), M = () => r.value.map((A, D) => t("li", {
3236
+ key: `lnb-item-${D}`,
3237
+ class: ["lnb-item", { active: A.expanded }],
3020
3238
  role: "none"
3021
- }, [t("button", {
3239
+ }, [A.subItems ? t("button", {
3022
3240
  type: "button",
3023
3241
  class: [
3024
3242
  "lnb-btn",
3025
3243
  "lnb-toggle",
3026
- { active: x.expanded }
3244
+ { active: A.expanded }
3027
3245
  ],
3028
3246
  role: "menuitem",
3029
- "aria-controls": `lnbmenu-${K}`,
3030
- "aria-expanded": x.expanded ? "true" : "false",
3031
- onClick: () => c(K)
3032
- }, x.text), x.subItems ? t("div", { class: "lnb-submenu" }, [t("ul", {
3033
- id: `lnbmenu-${K}`,
3247
+ "aria-controls": `${l}-lnbmenu-${D}`,
3248
+ "aria-expanded": A.expanded ? "true" : "false",
3249
+ onClick: () => S(D)
3250
+ }, A.text) : t("a", {
3251
+ href: A.href || "#",
3252
+ class: ["lnb-btn", "lnb-link"],
3253
+ role: "menuitem",
3254
+ onClick: (L) => o(A, L)
3255
+ }, A.text), A.subItems ? t("div", { class: "lnb-submenu" }, [t("ul", {
3256
+ id: `${l}-lnbmenu-${D}`,
3034
3257
  role: "menu"
3035
- }, v(x.subItems, K))]) : null]));
3258
+ }, p(A.subItems, D))]) : null]));
3036
3259
  return () => t("nav", { class: "krds-side-navigation" }, [t("h2", { class: "lnb-tit" }, e.title), t("ul", {
3037
3260
  class: "lnb-list",
3038
3261
  role: "menubar"
3039
- }, m())]);
3262
+ }, M())]);
3040
3263
  }
3041
- }), Ma = Aa, Va = M({
3264
+ }), Na = qa, Wa = /* @__PURE__ */ _({
3042
3265
  name: "KrdsStructuredList",
3043
3266
  props: { full: {
3044
3267
  type: Boolean,
@@ -3047,16 +3270,16 @@ var _t = M({
3047
3270
  slots: Object,
3048
3271
  setup(e, { slots: a }) {
3049
3272
  return () => {
3050
- const r = a.cardTop?.(), l = a.cardBody?.(), n = a.cardBtm?.(), s = a.cardBtn?.(), d = t("li", { class: "structured-item" }, [t("div", { class: "in" }, [
3273
+ const r = a.cardTop?.(), l = a.cardBody?.(), n = a.cardBtm?.(), s = a.cardBtn?.(), u = t("li", { class: "structured-item" }, [t("div", { class: "in" }, [
3051
3274
  r && t("div", { class: "card-top" }, r),
3052
3275
  l && t("div", { class: "card-body" }, l),
3053
3276
  n && t("div", { class: "card-btm" }, n),
3054
3277
  s && t("div", { class: "card-btn" }, s)
3055
3278
  ].filter(Boolean))]);
3056
- return t("ul", { class: ["krds-structured-list", e.full ? "type-full" : ""] }, [d]);
3279
+ return t("ul", { class: ["krds-structured-list", e.full ? "type-full" : ""] }, [u]);
3057
3280
  };
3058
3281
  }
3059
- }), Pa = Va, za = M({
3282
+ }), Ya = Wa, ja = /* @__PURE__ */ _({
3060
3283
  name: "KrdsTextList",
3061
3284
  props: {
3062
3285
  type: {
@@ -3071,7 +3294,7 @@ var _t = M({
3071
3294
  setup(e, { slots: a }) {
3072
3295
  return () => t(e.type, { class: ["krds-info-list", e.variant] }, a.default?.());
3073
3296
  }
3074
- }), Fa = za, Ra = M({
3297
+ }), Ga = ja, Ua = /* @__PURE__ */ _({
3075
3298
  name: "KrdsCriticalAlerts",
3076
3299
  props: {
3077
3300
  type: {
@@ -3110,7 +3333,7 @@ var _t = M({
3110
3333
  }, [t("span", { class: "m-hide" }, e.linkText), t("i", { class: "svg-icon ico-angle right" })])
3111
3334
  ])])]);
3112
3335
  }
3113
- }), Ia = Ra, Ha = "새 창 열림", Na = 100, we = 400, Oa = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])', qa = M({
3336
+ }), Xa = Ua, Qa = "새 창 열림", Ja = 100, Me = 400, Za = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])', el = /* @__PURE__ */ _({
3114
3337
  name: "KrdsMainMenu",
3115
3338
  props: {
3116
3339
  items: {
@@ -3149,278 +3372,283 @@ var _t = M({
3149
3372
  },
3150
3373
  slots: Object,
3151
3374
  setup(e, { emit: a, slots: r }) {
3152
- const l = oe(), n = D(null), s = D(null), d = D(null), h = b(() => e.variant === "pc"), p = (u) => `${l}-gnb-panel-${u}`, w = (u, y) => `${l}-gnb-sub-${u}-${y}`, c = (u) => `${l}-gnb-tab-${u}`, B = (u, y) => `${l}-gnb-depth3-${u}-${y}`, S = (u) => !!u?.subItems?.length, $ = (u) => !S(u) && !!u?.items?.length, f = (u) => S(u) || $(u), o = (u) => !u.items?.length, i = (u) => u ? {
3375
+ const l = de(), n = E(null), s = E(null), u = E(null), g = C(() => e.variant === "pc"), h = (c) => `${l}-gnb-panel-${c}`, y = (c, b) => `${l}-gnb-sub-${c}-${b}`, d = (c) => `${l}-gnb-tab-${c}`, S = (c, b) => `${l}-gnb-depth3-${c}-${b}`, k = (c) => !!c?.subItems?.length, K = (c) => !k(c) && !!c?.items?.length, m = (c) => k(c) || K(c), v = (c) => !c.items?.length, o = (c) => c ? {
3153
3376
  target: "_blank",
3154
3377
  rel: "noopener noreferrer",
3155
- title: Ha
3156
- } : {}, v = (u, y) => {
3157
- u.onClick?.(y), a("item-click", u, y);
3158
- }, m = D(-1), x = D({}), K = D(0), E = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Map(), _ = (u, y, C) => {
3159
- y ? u.set(C, y) : u.delete(C);
3160
- }, g = (u) => {
3161
- const y = u?.subItems?.findIndex((C) => !o(C));
3162
- return y === void 0 ? -1 : y;
3163
- }, A = (u) => {
3164
- const y = x.value[u];
3165
- return y === void 0 ? g(e.items[u]) : y;
3166
- }, I = (u) => {
3378
+ title: Qa
3379
+ } : {}, i = (c, b) => {
3380
+ c.onClick?.(b), a("item-click", c, b);
3381
+ }, p = E(-1), M = E({}), A = E(0), D = /* @__PURE__ */ new Map(), L = /* @__PURE__ */ new Map(), $ = (c, b, B) => {
3382
+ b ? c.set(B, b) : c.delete(B);
3383
+ }, f = (c) => {
3384
+ const b = c?.subItems?.findIndex((B) => !v(B));
3385
+ return b === void 0 ? -1 : b;
3386
+ }, T = (c) => {
3387
+ const b = M.value[c];
3388
+ return b === void 0 ? f(e.items[c]) : b;
3389
+ }, R = (c) => {
3167
3390
  if (typeof document > "u") return;
3168
- document.body.classList.toggle("is-gnb-web", u);
3169
- const y = document.body.scrollHeight > window.innerHeight;
3170
- document.body.classList.toggle("hasScrollY", u && y);
3171
- }, O = async () => {
3172
- await ce();
3173
- const u = E.get(m.value)?.querySelector(".gnb-sub-list.active");
3174
- K.value = u?.scrollHeight ?? 0;
3175
- }, H = (u = !1) => {
3176
- if (m.value === -1) return;
3177
- const y = m.value;
3178
- m.value = -1, K.value = 0, I(!1), a("menu-toggle", y, !1), u && T.get(y)?.focus();
3179
- }, G = (u) => {
3180
- if (f(e.items[u])) {
3181
- if (m.value === u) {
3182
- H();
3391
+ document.body.classList.toggle("is-gnb-web", c);
3392
+ const b = document.body.scrollHeight > window.innerHeight;
3393
+ document.body.classList.toggle("hasScrollY", c && b);
3394
+ }, H = async () => {
3395
+ await pe();
3396
+ const c = D.get(p.value)?.querySelector(".gnb-sub-list.active");
3397
+ A.value = c?.scrollHeight ?? 0;
3398
+ }, O = (c = !1) => {
3399
+ if (p.value === -1) return;
3400
+ const b = p.value;
3401
+ p.value = -1, A.value = 0, R(!1), a("menu-toggle", b, !1), c && L.get(b)?.focus();
3402
+ }, N = (c) => {
3403
+ if (m(e.items[c])) {
3404
+ if (p.value === c) {
3405
+ O();
3183
3406
  return;
3184
3407
  }
3185
- m.value = u, I(!0), a("menu-toggle", u, !0), O();
3408
+ O(), p.value = c, R(!0), a("menu-toggle", c, !0), H();
3186
3409
  }
3187
- }, j = (u, y) => {
3188
- x.value = {
3189
- ...x.value,
3190
- [u]: y
3191
- }, O();
3192
- }, X = (u) => {
3193
- const y = n.value;
3194
- !y || y.contains(u.target) || H();
3195
- }, le = (u) => {
3196
- const y = n.value, C = u.relatedTarget;
3197
- !y || !C || y.contains(C) || H();
3198
- }, de = (u) => {
3199
- if (u.key === "Escape") {
3200
- H(!0);
3410
+ }, j = (c, b) => {
3411
+ M.value = {
3412
+ ...M.value,
3413
+ [c]: b
3414
+ }, H();
3415
+ }, U = (c) => {
3416
+ const b = n.value;
3417
+ !b || b.contains(c.target) || O();
3418
+ }, ce = (c) => {
3419
+ const b = n.value, B = c.relatedTarget;
3420
+ !b || !B || b.contains(B) || O();
3421
+ }, he = (c) => {
3422
+ if (c.key === "Escape") {
3423
+ O(!0);
3201
3424
  return;
3202
3425
  }
3203
- const y = u.target;
3204
- if (!y?.dataset.trigger) return;
3205
- const C = (k) => {
3206
- const P = y.closest("li");
3207
- (k === "next" ? P?.nextElementSibling : P?.previousElementSibling)?.querySelector("[data-trigger]")?.focus();
3426
+ const b = c.target;
3427
+ if (!b?.dataset.trigger) return;
3428
+ const B = (x) => {
3429
+ const F = b.closest("li");
3430
+ (x === "next" ? F?.nextElementSibling : F?.previousElementSibling)?.querySelector("[data-trigger]")?.focus();
3208
3431
  };
3209
- switch (u.key) {
3432
+ switch (c.key) {
3210
3433
  case "Home":
3211
- u.preventDefault(), T.get(0)?.focus();
3434
+ c.preventDefault(), L.get(0)?.focus();
3212
3435
  break;
3213
3436
  case "End":
3214
- u.preventDefault(), T.get(e.items.length - 1)?.focus();
3437
+ c.preventDefault(), L.get(e.items.length - 1)?.focus();
3215
3438
  break;
3216
3439
  case "ArrowRight":
3217
3440
  case "ArrowDown":
3218
- u.preventDefault(), C("next");
3441
+ c.preventDefault(), B("next");
3219
3442
  break;
3220
3443
  case "ArrowLeft":
3221
3444
  case "ArrowUp":
3222
- u.preventDefault(), C("prev");
3445
+ c.preventDefault(), B("prev");
3223
3446
  }
3224
- }, ae = D(0), Q = D({}), ne = D(null), L = D(null), R = D(e.open), Y = D(e.open), V = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map(), z = /* @__PURE__ */ new Map(), N = /* @__PURE__ */ new Map(), U = (u, y, C) => {
3225
- y ? u.set(C, y) : u.delete(C);
3447
+ }, re = E(0), Q = E({}), fe = E(null), te = E(null), ve = E(e.open), ne = E(e.open), P = /* @__PURE__ */ new Map(), z = /* @__PURE__ */ new Map(), G = /* @__PURE__ */ new Map(), q = /* @__PURE__ */ new Map(), w = (c, b, B) => {
3448
+ b ? c.set(B, b) : c.delete(B);
3226
3449
  };
3227
- let J, ee;
3228
- const ue = (u) => {
3229
- typeof document > "u" || document.body.classList.toggle("is-gnb-mobile", u);
3230
- }, Ee = () => {
3231
- ee && clearTimeout(ee), R.value = !0, J = setTimeout(() => {
3232
- Y.value = !0, ue(!0), s.value?.focus();
3233
- }, Na);
3234
- }, _e = () => {
3235
- J && clearTimeout(J), Y.value = !1, ee = setTimeout(() => {
3236
- R.value = !1, ue(!1);
3237
- }, we);
3450
+ let V, I, J = null;
3451
+ const ie = (c) => {
3452
+ typeof document > "u" || document.body.classList.toggle("is-gnb-mobile", c);
3453
+ }, X = () => {
3454
+ ne.value && s.value?.focus();
3455
+ }, ae = () => {
3456
+ I && clearTimeout(I), J = document.activeElement, ve.value = !0, V = setTimeout(() => {
3457
+ ne.value = !0, ie(!0), n.value?.addEventListener("transitionend", X, { once: !0 }), requestAnimationFrame(() => {
3458
+ n.value?.getAnimations().length || X();
3459
+ });
3460
+ }, Ja);
3461
+ }, ye = () => {
3462
+ V && clearTimeout(V), ne.value = !1, J?.focus(), J = null, I = setTimeout(() => {
3463
+ ve.value = !1, ie(!1);
3464
+ }, Me);
3238
3465
  };
3239
- se(() => e.open, (u) => {
3240
- u ? Ee() : _e();
3466
+ se(() => e.open, (c) => {
3467
+ c ? ae() : ye();
3241
3468
  });
3242
- const Ae = (u, y) => {
3243
- u.preventDefault(), ae.value = y;
3244
- const C = d.value, k = V.get(y);
3245
- C && k && C.scrollTo({
3469
+ const me = (c, b) => {
3470
+ c.preventDefault(), re.value = b;
3471
+ const B = u.value, x = P.get(b);
3472
+ B && x && B.scrollTo({
3246
3473
  left: 0,
3247
- top: k.offsetTop,
3474
+ top: x.offsetTop,
3248
3475
  behavior: "smooth"
3249
3476
  });
3250
- }, Me = () => {
3251
- const u = d.value;
3252
- if (!u) return;
3253
- const { scrollTop: y, scrollHeight: C, clientHeight: k } = u;
3254
- let P = ae.value;
3255
- V.forEach((q, W) => {
3256
- (y >= q.offsetTop || y + k >= C) && (P = W);
3257
- }), ae.value = P;
3258
- }, Ve = (u, y) => {
3259
- u.preventDefault(), Q.value = {
3477
+ }, we = () => {
3478
+ const c = u.value;
3479
+ if (!c) return;
3480
+ const { scrollTop: b, scrollHeight: B, clientHeight: x } = c;
3481
+ let F = re.value;
3482
+ P.forEach((W, Y) => {
3483
+ (b >= W.offsetTop || b + x >= B) && (F = Y);
3484
+ }), re.value = F;
3485
+ }, be = (c, b) => {
3486
+ c.preventDefault(), Q.value = {
3260
3487
  ...Q.value,
3261
- [y]: !Q.value[y]
3488
+ [b]: !Q.value[b]
3262
3489
  };
3263
- }, Pe = async (u, y) => {
3264
- u.preventDefault(), ne.value = y, await ce(), L.value = y, await ce(), N.get(y)?.focus();
3265
- }, ye = (u) => {
3266
- L.value = null, F.get(u)?.focus(), setTimeout(() => {
3267
- L.value || (ne.value = null);
3268
- }, we);
3269
- }, ze = (u, y) => {
3270
- const C = Array.from(u.querySelectorAll(Oa));
3271
- if (!C.length) return;
3272
- const k = C[0], P = C[C.length - 1], q = document.activeElement;
3273
- y.shiftKey && (q === k || q === u) ? (y.preventDefault(), P.focus()) : !y.shiftKey && q === P && (y.preventDefault(), k.focus());
3274
- }, Fe = (u) => {
3275
- if (u.key === "Escape") {
3276
- L.value ? ye(L.value) : a("update:open", !1);
3490
+ }, He = async (c, b) => {
3491
+ c.preventDefault(), fe.value = b, await pe(), te.value = b, await pe(), q.get(b)?.focus();
3492
+ }, Le = (c) => {
3493
+ te.value = null, z.get(c)?.focus(), setTimeout(() => {
3494
+ te.value || (fe.value = null);
3495
+ }, Me);
3496
+ }, Oe = (c, b) => {
3497
+ const B = Array.from(c.querySelectorAll(Za));
3498
+ if (!B.length) return;
3499
+ const x = B[0], F = B[B.length - 1], W = document.activeElement;
3500
+ b.shiftKey && (W === x || W === c) ? (b.preventDefault(), F.focus()) : !b.shiftKey && W === F && (b.preventDefault(), x.focus());
3501
+ }, qe = (c) => {
3502
+ if (c.key === "Escape") {
3503
+ te.value ? Le(te.value) : a("update:open", !1);
3277
3504
  return;
3278
3505
  }
3279
- if (u.key !== "Tab") return;
3280
- const y = L.value ? z.get(L.value) : s.value;
3281
- y && ze(y, u);
3506
+ if (c.key !== "Tab") return;
3507
+ const b = te.value ? G.get(te.value) : s.value;
3508
+ b && Oe(b, c);
3282
3509
  };
3283
- re(() => {
3284
- if (h.value) {
3285
- document.addEventListener("click", X);
3510
+ ee(() => {
3511
+ if (g.value) {
3512
+ document.addEventListener("click", U);
3286
3513
  return;
3287
3514
  }
3288
- e.open && (R.value = !0, Y.value = !0, ue(!0));
3289
- const u = {};
3290
- e.items.forEach((y, C) => {
3291
- y.subItems?.forEach((k, P) => {
3292
- k.expanded && (u[`${C}-${P}`] = !0);
3515
+ e.open && (ve.value = !0, ne.value = !0, ie(!0));
3516
+ const c = {};
3517
+ e.items.forEach((b, B) => {
3518
+ b.subItems?.forEach((x, F) => {
3519
+ x.expanded && (c[`${B}-${F}`] = !0);
3293
3520
  });
3294
- }), Q.value = u;
3295
- }), fe(() => {
3296
- typeof document < "u" && (document.removeEventListener("click", X), document.body.classList.remove("is-gnb-web", "hasScrollY", "is-gnb-mobile")), J && clearTimeout(J), ee && clearTimeout(ee);
3521
+ }), Q.value = c;
3522
+ }), oe(() => {
3523
+ typeof document < "u" && (document.removeEventListener("click", U), document.body.classList.remove("is-gnb-web", "hasScrollY", "is-gnb-mobile")), V && clearTimeout(V), I && clearTimeout(I);
3297
3524
  });
3298
- const Re = (u) => {
3299
- const y = u.some((k) => !!k.description), C = u.map((k, P) => {
3300
- const q = i(k.external), W = k.external ? t("i", { class: "svg-icon ico-go" }) : null;
3301
- if (y) return t("li", { key: `link-${P}` }, [t("h3", { class: "tit" }, [t("a", {
3302
- href: k.href || "#",
3303
- ...q,
3304
- onClick: (te) => v(k, te)
3305
- }, [k.text, W])]), k.description ? t("p", { class: "txt" }, k.description) : null]);
3306
- const Z = k.href ? "a" : "button";
3307
- return t("li", { key: `link-${P}` }, [t(Z, {
3308
- ...k.href ? {
3309
- href: k.href,
3310
- ...q
3525
+ const Ne = (c) => {
3526
+ const b = c.some((x) => !!x.description), B = c.map((x, F) => {
3527
+ const W = o(x.external), Y = x.external ? t("i", { class: "svg-icon ico-go" }) : null;
3528
+ if (b) return t("li", { key: `link-${F}` }, [t("h3", { class: "tit" }, [t("a", {
3529
+ href: x.href || "#",
3530
+ ...W,
3531
+ class: { active: x.selected },
3532
+ onClick: (le) => i(x, le)
3533
+ }, [x.text, Y])]), x.description ? t("p", { class: "txt" }, x.description) : null]);
3534
+ const Z = x.href ? "a" : "button";
3535
+ return t("li", { key: `link-${F}` }, [t(Z, {
3536
+ ...x.href ? {
3537
+ href: x.href,
3538
+ ...W
3311
3539
  } : { type: "button" },
3312
- class: { active: k.selected },
3313
- onClick: (te) => v(k, te)
3314
- }, [k.text, W])]);
3540
+ class: { active: x.selected },
3541
+ onClick: (le) => i(x, le)
3542
+ }, [x.text, Y])]);
3315
3543
  });
3316
- return t("ul", { class: y ? "type-description" : void 0 }, C);
3317
- }, me = (u) => {
3318
- const y = u.titleLink ? [u.title, t("a", {
3319
- href: u.titleLink.href,
3544
+ return t("ul", { class: b ? "type-description" : void 0 }, B);
3545
+ }, Be = (c) => {
3546
+ const b = c.titleLink ? [c.title, t("a", {
3547
+ href: c.titleLink.href,
3320
3548
  class: "krds-btn link basic small"
3321
- }, [t("span", { class: "underline" }, u.titleLink.text || "바로가기"), t("i", { class: "svg-icon ico-angle right" })])] : [t("span", u.title)];
3549
+ }, [t("span", { class: "underline" }, c.titleLink.text || "바로가기"), t("i", { class: "svg-icon ico-angle right" })])] : [t("span", c.title)];
3322
3550
  return t("div", {
3323
- id: u.id,
3551
+ id: c.id,
3324
3552
  class: ["gnb-sub-list", {
3325
- active: u.active,
3326
- between: u.layout === "between",
3327
- "single-list": u.single
3553
+ active: c.active,
3554
+ between: c.layout === "between",
3555
+ "single-list": c.single
3328
3556
  }]
3329
- }, [t("div", { class: "gnb-sub-content" }, [t("h2", { class: "sub-title" }, y), Re(u.linkItems)]), u.banner]);
3330
- }, Ie = (u, y) => (u.subItems ?? []).map((C, k) => {
3331
- if (o(C)) {
3332
- const W = C.href ? "a" : "button";
3333
- return t("li", { key: `sub-${k}` }, [t(W, {
3334
- ...C.href ? {
3335
- href: C.href,
3336
- ...i(C.external)
3557
+ }, [t("div", { class: "gnb-sub-content" }, [t("h2", { class: "sub-title" }, b), Ne(c.linkItems)]), c.banner]);
3558
+ }, We = (c, b) => (c.subItems ?? []).map((B, x) => {
3559
+ if (v(B)) {
3560
+ const Y = B.href ? "a" : "button";
3561
+ return t("li", { key: `sub-${x}` }, [t(Y, {
3562
+ ...B.href ? {
3563
+ href: B.href,
3564
+ ...o(B.external)
3337
3565
  } : { type: "button" },
3338
3566
  class: [
3339
3567
  "gnb-sub-trigger",
3340
3568
  "is-link",
3341
3569
  {
3342
- "external-link": C.external,
3343
- selected: C.selected
3570
+ "external-link": B.external,
3571
+ selected: B.selected
3344
3572
  }
3345
3573
  ],
3346
3574
  "data-trigger": "gnb",
3347
- onClick: (Z) => v(C, Z)
3348
- }, C.text)]);
3575
+ onClick: (Z) => i(B, Z)
3576
+ }, B.text)]);
3349
3577
  }
3350
- const P = A(y) === k, q = C.banner && r.banner ? t("div", { class: "gnb-sub-banner" }, r.banner({
3351
- item: u,
3352
- subItem: C,
3353
- index: y,
3354
- subIndex: k
3578
+ const F = T(b) === x, W = B.banner && r.banner ? t("div", { class: "gnb-sub-banner" }, r.banner({
3579
+ item: c,
3580
+ subItem: B,
3581
+ index: b,
3582
+ subIndex: x
3355
3583
  })) : null;
3356
- return t("li", { key: `sub-${k}` }, [t("button", {
3584
+ return t("li", { key: `sub-${x}` }, [t("button", {
3357
3585
  type: "button",
3358
3586
  class: ["gnb-sub-trigger", {
3359
- active: P,
3360
- selected: C.selected
3587
+ active: F,
3588
+ selected: B.selected
3361
3589
  }],
3362
3590
  "data-trigger": "gnb",
3363
- "aria-controls": w(y, k),
3364
- "aria-expanded": P ? "true" : "false",
3591
+ "aria-controls": y(b, x),
3592
+ "aria-expanded": F ? "true" : "false",
3365
3593
  "aria-haspopup": "true",
3366
- onClick: (W) => {
3367
- j(y, k), v(C, W);
3594
+ onClick: (Y) => {
3595
+ j(b, x), i(B, Y);
3368
3596
  }
3369
- }, C.text), me({
3370
- id: w(y, k),
3371
- title: C.title || C.text,
3372
- titleLink: C.titleLink,
3373
- linkItems: C.items ?? [],
3374
- layout: C.layout,
3375
- active: P,
3376
- banner: q
3597
+ }, B.text), Be({
3598
+ id: y(b, x),
3599
+ title: B.title || B.text,
3600
+ titleLink: B.titleLink,
3601
+ linkItems: B.items ?? [],
3602
+ layout: B.layout,
3603
+ active: F,
3604
+ banner: W
3377
3605
  })]);
3378
- }), He = (u, y) => {
3379
- const C = m.value === y, k = S(u), P = k ? [t("ul", {}, Ie(u, y))] : [me({
3380
- title: u.title || u.text,
3381
- linkItems: u.items ?? [],
3382
- layout: u.layout,
3606
+ }), Ye = (c, b) => {
3607
+ const B = p.value === b, x = k(c), F = x ? [t("ul", {}, We(c, b))] : [Be({
3608
+ title: c.title || c.text,
3609
+ linkItems: c.items ?? [],
3610
+ layout: c.layout,
3383
3611
  single: !0,
3384
- banner: u.banner && r.banner ? t("div", { class: "gnb-sub-banner" }, r.banner({
3385
- item: u,
3386
- index: y,
3612
+ banner: c.banner && r.banner ? t("div", { class: "gnb-sub-banner" }, r.banner({
3613
+ item: c,
3614
+ index: b,
3387
3615
  subIndex: -1
3388
3616
  })) : null
3389
3617
  })];
3390
3618
  return t("div", {
3391
- id: p(y),
3392
- class: ["gnb-toggle-wrap", { "is-open": C }]
3619
+ id: h(b),
3620
+ class: ["gnb-toggle-wrap", { "is-open": B }]
3393
3621
  }, [t("div", {
3394
- ref: (q) => _(E, q, y),
3622
+ ref: (W) => $(D, W, b),
3395
3623
  class: "gnb-main-list",
3396
- ...k ? { "data-has-submenu": "true" } : {},
3397
- style: C && K.value ? { minHeight: `${K.value}px` } : void 0
3398
- }, P)]);
3399
- }, Ne = () => {
3400
- const u = e.items.map((C, k) => {
3401
- const P = f(C), q = m.value === k, W = !P && C.href ? "a" : "button", Z = t(W, {
3402
- ref: (te) => _(T, te, k),
3403
- ...W === "a" ? {
3404
- href: C.href,
3405
- ...i(C.external)
3624
+ ...x ? { "data-has-submenu": "true" } : {},
3625
+ style: B && A.value ? { minHeight: `${A.value}px` } : void 0
3626
+ }, F)]);
3627
+ }, je = () => {
3628
+ const c = e.items.map((B, x) => {
3629
+ const F = m(B), W = p.value === x, Y = !F && B.href ? "a" : "button", Z = t(Y, {
3630
+ ref: (le) => $(L, le, x),
3631
+ ...Y === "a" ? {
3632
+ href: B.href,
3633
+ ...o(B.external)
3406
3634
  } : { type: "button" },
3407
3635
  class: ["gnb-main-trigger", {
3408
- active: q,
3409
- "is-link": !P,
3410
- selected: C.selected
3636
+ active: W,
3637
+ "is-link": !F,
3638
+ selected: B.selected
3411
3639
  }],
3412
3640
  "data-trigger": "gnb",
3413
- ...P ? {
3414
- "aria-controls": p(k),
3415
- "aria-expanded": q ? "true" : "false",
3641
+ ...F ? {
3642
+ "aria-controls": h(x),
3643
+ "aria-expanded": W ? "true" : "false",
3416
3644
  "aria-haspopup": "true"
3417
3645
  } : {},
3418
- onClick: (te) => {
3419
- P && G(k), v(C, te);
3646
+ onClick: (le) => {
3647
+ F && N(x), i(B, le);
3420
3648
  }
3421
- }, C.text);
3422
- return t("li", { key: `main-${k}` }, [Z, P ? He(C, k) : null]);
3423
- }), y = e.backdrop && m.value !== -1 ? t(Ce, { to: "body" }, [t("div", {
3649
+ }, B.text);
3650
+ return t("li", { key: `main-${x}` }, [Z, F ? Ye(B, x) : null]);
3651
+ }), b = e.backdrop && p.value !== -1 ? t(Ce, { to: "body" }, [t("div", {
3424
3652
  class: "gnb-backdrop active",
3425
3653
  "aria-hidden": "true"
3426
3654
  })]) : null;
@@ -3428,108 +3656,111 @@ var _t = M({
3428
3656
  ref: n,
3429
3657
  class: "krds-main-menu",
3430
3658
  "aria-label": e.ariaLabel,
3431
- onKeydown: de,
3432
- onFocusout: le
3659
+ onKeydown: he,
3660
+ onFocusout: ce
3433
3661
  }, [t("div", { class: "inner" }, [t("ul", {
3434
3662
  class: "gnb-menu",
3435
3663
  "aria-label": e.ariaLabel
3436
- }, u)]), y]);
3437
- }, Oe = (u, y) => {
3438
- const C = () => ye(y);
3664
+ }, c)]), b]);
3665
+ }, Ge = (c, b) => {
3666
+ const B = () => Le(b);
3439
3667
  return t("div", {
3440
- ref: (k) => U(z, k, y),
3441
- class: ["depth4-wrap", { "is-open": L.value === y }],
3442
- style: ne.value === y ? { display: "block" } : void 0
3668
+ ref: (x) => w(G, x, b),
3669
+ class: ["depth4-wrap", { "is-open": te.value === b }],
3670
+ style: fe.value === b ? { display: "block" } : void 0
3443
3671
  }, [t("div", { class: "depth4-head" }, [t("button", {
3444
- ref: (k) => U(N, k, y),
3672
+ ref: (x) => w(q, x, b),
3445
3673
  type: "button",
3446
3674
  class: "krds-btn icon trigger-prev",
3447
- onClick: C
3675
+ onClick: B
3448
3676
  }, [t("span", { class: "sr-only" }, "이전화면"), t("i", { class: "svg-icon ico-angle left" })]), t("button", {
3449
3677
  type: "button",
3450
3678
  class: "krds-btn icon trigger-close",
3451
- onClick: C
3452
- }, [t("span", { class: "sr-only" }, e.closeLabel), t("i", { class: "svg-icon ico-popup-close" })])]), t("div", { class: "depth4-body" }, [t("h4", { class: "sub-title" }, u.panelTitle || u.text), t("ul", { class: "depth4-ul" }, (u.items ?? []).map((k, P) => t("li", { key: `depth4-${P}` }, [t("a", {
3453
- href: k.href || "#",
3454
- ...i(k.external),
3455
- class: { selected: k.selected },
3456
- onClick: (q) => v(k, q)
3457
- }, k.text)])))])]);
3458
- }, qe = (u, y, C) => {
3459
- const k = (u.items ?? []).map((P, q) => {
3460
- const W = `${y}-${C}-${q}`, Z = !!P.items?.length;
3461
- return t("li", { key: `depth3-${q}` }, [t("a", {
3462
- ref: (te) => U(F, te, W),
3463
- href: P.href || "#",
3464
- ...Z ? {} : i(P.external),
3679
+ onClick: B
3680
+ }, [t("span", { class: "sr-only" }, e.closeLabel), t("i", { class: "svg-icon ico-popup-close" })])]), t("div", { class: "depth4-body" }, [t("h4", { class: "sub-title" }, c.panelTitle || c.text), t("ul", { class: "depth4-ul" }, (c.items ?? []).map((x, F) => t("li", { key: `depth4-${F}` }, [t("a", {
3681
+ href: x.href || "#",
3682
+ ...o(x.external),
3683
+ class: { selected: x.selected },
3684
+ onClick: (W) => i(x, W)
3685
+ }, x.text)])))])]);
3686
+ }, Ue = (c, b, B) => {
3687
+ const x = (c.items ?? []).map((F, W) => {
3688
+ const Y = `${b}-${B}-${W}`, Z = !!F.items?.length;
3689
+ return t("li", { key: `depth3-${W}` }, [t("a", {
3690
+ ref: (le) => w(z, le, Y),
3691
+ href: F.href || "#",
3692
+ ...Z ? {} : o(F.external),
3465
3693
  class: ["depth3-trigger", {
3466
3694
  "has-depth4": Z,
3467
- selected: P.selected
3695
+ selected: F.selected
3468
3696
  }],
3469
3697
  ...Z ? {
3470
3698
  "aria-haspopup": "true",
3471
- "aria-expanded": L.value === W ? "true" : "false"
3699
+ "aria-expanded": te.value === Y ? "true" : "false"
3472
3700
  } : {},
3473
- onClick: (te) => {
3474
- Z && Pe(te, W), v(P, te);
3701
+ onClick: (le) => {
3702
+ Z && He(le, Y), i(F, le);
3475
3703
  }
3476
- }, P.text), Z ? Oe(P, W) : null]);
3704
+ }, F.text), Z ? Ge(F, Y) : null]);
3477
3705
  });
3478
- return t("div", { class: ["depth3-wrap", { "is-open": Q.value[`${y}-${C}`] }] }, [t("ul", {}, k)]);
3479
- }, We = (u, y) => {
3480
- const C = (u.subItems ?? []).map((k, P) => {
3481
- const q = `${y}-${P}`, W = !!k.items?.length;
3482
- return t("li", { key: `sub-${P}` }, [t("a", {
3483
- href: k.href || "#",
3484
- ...W ? {} : i(k.external),
3706
+ return t("div", {
3707
+ id: S(b, B),
3708
+ class: ["depth3-wrap", { "is-open": Q.value[`${b}-${B}`] }]
3709
+ }, [t("ul", {}, x)]);
3710
+ }, Xe = (c, b) => {
3711
+ const B = (c.subItems ?? []).map((x, F) => {
3712
+ const W = `${b}-${F}`, Y = !!x.items?.length;
3713
+ return t("li", { key: `sub-${F}` }, [t("a", {
3714
+ href: x.href || "#",
3715
+ ...Y ? {} : o(x.external),
3485
3716
  class: ["gnb-sub-trigger", {
3486
- "has-depth3": W,
3487
- active: W && Q.value[q],
3488
- selected: k.selected
3717
+ "has-depth3": Y,
3718
+ active: Y && Q.value[W],
3719
+ selected: x.selected
3489
3720
  }],
3490
- ...W ? {
3491
- "aria-controls": B(y, P),
3492
- "aria-expanded": Q.value[q] ? "true" : "false"
3721
+ ...Y ? {
3722
+ "aria-controls": S(b, F),
3723
+ "aria-expanded": Q.value[W] ? "true" : "false"
3493
3724
  } : {},
3494
3725
  onClick: (Z) => {
3495
- W && Ve(Z, q), v(k, Z);
3726
+ Y && be(Z, W), i(x, Z);
3496
3727
  }
3497
- }, k.text), W ? qe(k, y, P) : null]);
3728
+ }, x.text), Y ? Ue(x, b, F) : null]);
3498
3729
  });
3499
3730
  return t("div", {
3500
- ref: (k) => _(V, k, y),
3501
- id: p(y),
3731
+ ref: (x) => $(P, x, b),
3732
+ id: h(b),
3502
3733
  class: "gnb-sub-list",
3503
3734
  role: "tabpanel",
3504
- "aria-labelledby": c(y)
3505
- }, [t("h2", { class: "sub-title" }, u.title || u.text), t("ul", {}, C)]);
3506
- }, Ye = () => {
3507
- const u = e.items.map((C, k) => t("li", {
3508
- key: `tab-${k}`,
3735
+ "aria-labelledby": d(b)
3736
+ }, [t("h2", { class: "sub-title" }, c.title || c.text), t("ul", {}, B)]);
3737
+ }, Qe = () => {
3738
+ const c = e.items.map((B, x) => t("li", {
3739
+ key: `tab-${x}`,
3509
3740
  role: "none"
3510
3741
  }, [t("a", {
3511
- id: c(k),
3512
- href: `#${p(k)}`,
3513
- class: ["gnb-main-trigger", { active: ae.value === k }],
3742
+ id: d(x),
3743
+ href: `#${h(x)}`,
3744
+ class: ["gnb-main-trigger", { active: re.value === x }],
3514
3745
  role: "tab",
3515
- "aria-controls": p(k),
3516
- "aria-selected": ae.value === k ? "true" : "false",
3517
- onClick: (P) => {
3518
- Ae(P, k), v(C, P);
3746
+ "aria-controls": h(x),
3747
+ "aria-selected": re.value === x ? "true" : "false",
3748
+ onClick: (F) => {
3749
+ me(F, x), i(B, F);
3519
3750
  }
3520
- }, C.text)])), y = [t("div", { class: "gnb-menu" }, [t("div", { class: "menu-wrap" }, [t("ul", {
3751
+ }, B.text)])), b = [t("div", { class: "gnb-menu" }, [t("div", { class: "menu-wrap" }, [t("ul", {
3521
3752
  role: "tablist",
3522
3753
  "aria-label": e.ariaLabel
3523
- }, u)]), t("div", { class: "submenu-wrap" }, e.items.map(We))]), r.bottom ? t("div", { class: "gnb-bottom" }, r.bottom()) : null];
3754
+ }, c)]), t("div", { class: "submenu-wrap" }, e.items.map(Xe))]), r.bottom ? t("div", { class: "gnb-bottom" }, r.bottom()) : null];
3524
3755
  return t("div", {
3525
3756
  ref: n,
3526
3757
  id: e.mobileId,
3527
3758
  class: ["krds-main-menu-mobile", {
3528
- "is-open": Y.value,
3529
- "is-backdrop": Y.value
3759
+ "is-open": ne.value,
3760
+ "is-backdrop": ne.value
3530
3761
  }],
3531
- style: R.value ? void 0 : { display: "none" },
3532
- onKeydown: Fe
3762
+ style: ve.value ? void 0 : { display: "none" },
3763
+ onKeydown: qe
3533
3764
  }, [t("div", {
3534
3765
  ref: s,
3535
3766
  class: "gnb-wrap",
@@ -3537,10 +3768,10 @@ var _t = M({
3537
3768
  }, [
3538
3769
  t("div", { class: "gnb-header" }, r.header ? r.header() : []),
3539
3770
  t("div", {
3540
- ref: d,
3771
+ ref: u,
3541
3772
  class: "gnb-body",
3542
- onScroll: Me
3543
- }, y),
3773
+ onScroll: we
3774
+ }, b),
3544
3775
  t("button", {
3545
3776
  type: "button",
3546
3777
  id: "close-nav",
@@ -3549,9 +3780,9 @@ var _t = M({
3549
3780
  }, [t("span", { class: "sr-only" }, e.closeLabel), t("i", { class: "svg-icon ico-popup-close" })])
3550
3781
  ])]);
3551
3782
  };
3552
- return () => h.value ? Ne() : Ye();
3783
+ return () => g.value ? je() : Qe();
3553
3784
  }
3554
- }), Wa = qa, Ya = 400, ja = 2500, Ga = 0, Ua = 16, Be = (e) => e ? e.flatMap((a) => a.type === Ge ? Array.isArray(a.children) ? Be(a.children) : [] : a.type === je ? [] : a.type === Ue && typeof a.children == "string" && a.children.trim() === "" ? [] : [a]) : [], Xa = M({
3785
+ }), tl = el, al = 400, ll = 2500, nl = 0, sl = 16, Re = (e) => e ? e.flatMap((a) => a.type === Ze ? Array.isArray(a.children) ? Re(a.children) : [] : a.type === Je ? [] : a.type === et && typeof a.children == "string" && a.children.trim() === "" ? [] : [a]) : [], rl = /* @__PURE__ */ _({
3555
3786
  name: "KrdsCarousel",
3556
3787
  props: {
3557
3788
  variant: {
@@ -3572,7 +3803,7 @@ var _t = M({
3572
3803
  },
3573
3804
  autoplayDelay: {
3574
3805
  type: Number,
3575
- default: ja
3806
+ default: ll
3576
3807
  },
3577
3808
  pauseOnHover: {
3578
3809
  type: Boolean,
@@ -3580,7 +3811,7 @@ var _t = M({
3580
3811
  },
3581
3812
  speed: {
3582
3813
  type: Number,
3583
- default: Ya
3814
+ default: al
3584
3815
  },
3585
3816
  spaceBetween: {
3586
3817
  type: Number,
@@ -3635,171 +3866,171 @@ var _t = M({
3635
3866
  "more-click": (e) => !0
3636
3867
  },
3637
3868
  setup(e, { emit: a, slots: r }) {
3638
- const l = xe()?.uid, n = b(() => `${e.id ?? `krds-carousel-${l}`}-wrapper`);
3869
+ const l = xe()?.uid, n = C(() => `${e.id ?? `krds-carousel-${l}`}-wrapper`);
3639
3870
  let s = 0;
3640
- const d = D(e.activeIndex ?? 0), h = b(() => e.spaceBetween ?? (e.variant === "banner" ? Ua : Ga)), p = b(() => e.pagination ?? (e.variant === "banner" ? "fraction" : "bullets")), w = D(!1), c = D(!1), B = D(!1), S = b(() => c.value || B.value);
3641
- let $;
3642
- const f = () => {
3643
- $ !== void 0 && (clearInterval($), $ = void 0);
3644
- }, o = (V) => {
3871
+ const u = E(e.activeIndex ?? 0), g = C(() => e.spaceBetween ?? (e.variant === "banner" ? sl : nl)), h = C(() => e.pagination ?? (e.variant === "banner" ? "fraction" : "bullets")), y = E(!1), d = E(!1), S = E(!1), k = C(() => d.value || S.value);
3872
+ let K;
3873
+ const m = () => {
3874
+ K !== void 0 && (clearInterval(K), K = void 0);
3875
+ }, v = (P) => {
3645
3876
  if (s <= 0) return;
3646
- const F = e.loop ? (V % s + s) % s : Math.min(Math.max(V, 0), s - 1);
3647
- F !== d.value && (d.value = F, a("update:activeIndex", F), a("change", F));
3648
- }, i = () => o(d.value - 1), v = () => o(d.value + 1), m = () => {
3649
- w.value || (w.value = !0, a("play"));
3650
- }, x = () => {
3651
- w.value && (w.value = !1, a("stop"));
3877
+ const z = e.loop ? (P % s + s) % s : Math.min(Math.max(P, 0), s - 1);
3878
+ z !== u.value && (u.value = z, a("update:activeIndex", z), a("change", z));
3879
+ }, o = () => v(u.value - 1), i = () => v(u.value + 1), p = () => {
3880
+ y.value || (y.value = !0, a("play"));
3881
+ }, M = () => {
3882
+ y.value && (y.value = !1, a("stop"));
3652
3883
  };
3653
3884
  se([
3654
- w,
3655
- S,
3885
+ y,
3886
+ k,
3656
3887
  () => e.autoplayDelay
3657
3888
  ], () => {
3658
- f(), !(!w.value || S.value) && ($ = setInterval(() => {
3659
- if (!e.loop && s > 0 && d.value >= s - 1) {
3660
- x();
3889
+ m(), !(!y.value || k.value) && (K = setInterval(() => {
3890
+ if (!e.loop && s > 0 && u.value >= s - 1) {
3891
+ M();
3661
3892
  return;
3662
3893
  }
3663
- v();
3894
+ i();
3664
3895
  }, e.autoplayDelay));
3665
- }), se(() => e.autoplay, (V) => {
3666
- V ? m() : x();
3667
- }), se(() => e.activeIndex, (V) => {
3668
- typeof V != "number" || V === d.value || (d.value = s > 0 ? Math.min(Math.max(V, 0), s - 1) : V);
3896
+ }), se(() => e.autoplay, (P) => {
3897
+ P ? p() : M();
3898
+ }), se(() => e.activeIndex, (P) => {
3899
+ typeof P != "number" || P === u.value || (u.value = s > 0 ? Math.min(Math.max(P, 0), s - 1) : P);
3669
3900
  });
3670
- const E = D(!1);
3671
- let T;
3672
- const _ = (V) => {
3673
- E.value = V.matches;
3674
- }, g = b(() => E.value ? 0 : e.speed);
3675
- re(() => {
3676
- typeof window < "u" && window.matchMedia && (T = window.matchMedia("(prefers-reduced-motion: reduce)"), E.value = T.matches, T.addEventListener("change", _)), e.autoplay && m();
3677
- }), fe(() => {
3678
- f(), T?.removeEventListener("change", _);
3901
+ const D = E(!1);
3902
+ let L;
3903
+ const $ = (P) => {
3904
+ D.value = P.matches;
3905
+ }, f = C(() => D.value ? 0 : e.speed);
3906
+ ee(() => {
3907
+ typeof window < "u" && window.matchMedia && (L = window.matchMedia("(prefers-reduced-motion: reduce)"), D.value = L.matches, L.addEventListener("change", $)), e.autoplay && p();
3908
+ }), oe(() => {
3909
+ m(), L?.removeEventListener("change", $);
3679
3910
  });
3680
- const A = () => {
3681
- e.pauseOnHover && (c.value = !0);
3682
- }, I = () => {
3683
- c.value = !1;
3684
- }, O = () => {
3685
- B.value = !0;
3686
- }, H = (V) => {
3687
- const F = V.currentTarget;
3688
- F && F.contains(V.relatedTarget) || (B.value = !1);
3689
- }, G = (V) => {
3690
- a("more-click", V);
3911
+ const T = () => {
3912
+ e.pauseOnHover && (d.value = !0);
3913
+ }, R = () => {
3914
+ d.value = !1;
3915
+ }, H = () => {
3916
+ S.value = !0;
3917
+ }, O = (P) => {
3918
+ const z = P.currentTarget;
3919
+ z && z.contains(P.relatedTarget) || (S.value = !1);
3920
+ }, N = (P) => {
3921
+ a("more-click", P);
3691
3922
  }, j = {
3692
3923
  position: "relative",
3693
3924
  overflow: "hidden",
3694
3925
  width: "100%"
3695
- }, X = {
3926
+ }, U = {
3696
3927
  flex: "0 0 100%",
3697
3928
  width: "100%"
3698
- }, le = (V) => ({
3929
+ }, ce = (P) => ({
3699
3930
  display: "flex",
3700
3931
  width: "100%",
3701
- gap: h.value > 0 ? `${h.value}px` : void 0,
3702
- transform: `translate3d(calc(${-V} * (100% + ${h.value}px)), 0, 0)`,
3932
+ gap: g.value > 0 ? `${g.value}px` : void 0,
3933
+ transform: `translate3d(calc(${-P} * (100% + ${g.value}px)), 0, 0)`,
3703
3934
  transitionProperty: "transform",
3704
- transitionDuration: `${g.value}ms`,
3935
+ transitionDuration: `${f.value}ms`,
3705
3936
  transitionTimingFunction: "ease-out",
3706
3937
  willChange: "transform"
3707
- }), de = (V) => ({
3938
+ }), he = (P) => ({
3708
3939
  position: "absolute",
3709
3940
  top: "50%",
3710
- left: V ? "0" : void 0,
3711
- right: V ? void 0 : "0",
3941
+ left: P ? "0" : void 0,
3942
+ right: P ? void 0 : "0",
3712
3943
  transform: "translateY(-50%)",
3713
3944
  zIndex: 10
3714
- }), ae = (V, F) => V.map((z, N) => {
3715
- const U = N === F;
3945
+ }), re = (P, z) => P.map((G, q) => {
3946
+ const w = q === z;
3716
3947
  return t("li", {
3717
- key: z.key ?? `krds-carousel-slide-${N}`,
3718
- class: ["swiper-slide", { "swiper-slide-active": U }],
3719
- style: X,
3948
+ key: G.key ?? `krds-carousel-slide-${q}`,
3949
+ class: ["swiper-slide", { "swiper-slide-active": w }],
3950
+ style: U,
3720
3951
  "aria-roledescription": "slide",
3721
- "aria-label": `${N + 1} / ${V.length}`,
3722
- "aria-hidden": U ? void 0 : "true",
3723
- inert: U ? void 0 : !0
3724
- }, [z]);
3725
- }), Q = (V, F, z) => {
3726
- const N = V === "prev", U = !e.loop && (N ? F <= 0 : F >= s - 1);
3952
+ "aria-label": `${q + 1} / ${P.length}`,
3953
+ "aria-hidden": w ? void 0 : "true",
3954
+ inert: w ? void 0 : !0
3955
+ }, [G]);
3956
+ }), Q = (P, z, G) => {
3957
+ const q = P === "prev", w = !e.loop && (q ? z <= 0 : z >= s - 1);
3727
3958
  return t("button", {
3728
3959
  type: "button",
3729
- class: [`swiper-button-${V}`, { "swiper-button-disabled": U }],
3730
- style: z ? de(N) : void 0,
3731
- disabled: U,
3960
+ class: [`swiper-button-${P}`, { "swiper-button-disabled": w }],
3961
+ style: G ? he(q) : void 0,
3962
+ disabled: w,
3732
3963
  "aria-controls": n.value,
3733
- onClick: N ? i : v
3734
- }, [t("span", { class: "sr-only" }, N ? e.prevLabel : e.nextLabel)]);
3735
- }, ne = () => t("a", {
3964
+ onClick: q ? o : i
3965
+ }, [t("span", { class: "sr-only" }, q ? e.prevLabel : e.nextLabel)]);
3966
+ }, fe = () => t("a", {
3736
3967
  href: e.moreHref,
3737
3968
  class: "swiper-button-more",
3738
- onClick: G
3739
- }, [t("span", { class: "sr-only" }, e.moreLabel)]), L = (V, F) => p.value === "fraction" ? t("div", { class: "swiper-pagination swiper-pagination-fraction" }, [
3740
- t("span", { class: "swiper-pagination-current" }, String(F + 1)),
3969
+ onClick: N
3970
+ }, [t("span", { class: "sr-only" }, e.moreLabel)]), te = (P, z) => h.value === "fraction" ? t("div", { class: "swiper-pagination swiper-pagination-fraction" }, [
3971
+ t("span", { class: "swiper-pagination-current" }, String(z + 1)),
3741
3972
  t("span", { "aria-hidden": "true" }, "/"),
3742
- t("span", { class: "swiper-pagination-total" }, String(V))
3743
- ]) : t("div", { class: "swiper-pagination" }, Array.from({ length: V }, (z, N) => t("button", {
3744
- key: `krds-carousel-bullet-${N}`,
3973
+ t("span", { class: "swiper-pagination-total" }, String(P))
3974
+ ]) : t("div", { class: "swiper-pagination" }, Array.from({ length: P }, (G, q) => t("button", {
3975
+ key: `krds-carousel-bullet-${q}`,
3745
3976
  type: "button",
3746
- class: ["swiper-pagination-bullet", { "swiper-pagination-bullet-active": N === F }],
3747
- "aria-label": `${N + 1}번째 슬라이드로 이동`,
3748
- "aria-current": N === F ? "true" : void 0,
3977
+ class: ["swiper-pagination-bullet", { "swiper-pagination-bullet-active": q === z }],
3978
+ "aria-label": `${q + 1}번째 슬라이드로 이동`,
3979
+ "aria-current": q === z ? "true" : void 0,
3749
3980
  "aria-controls": n.value,
3750
- onClick: () => o(N)
3751
- }))), R = () => t("div", { class: "swiper-controller" }, [t("button", {
3981
+ onClick: () => v(q)
3982
+ }))), ve = () => t("div", { class: "swiper-controller" }, [t("button", {
3752
3983
  type: "button",
3753
3984
  class: "swiper-button-play",
3754
- style: w.value ? { display: "none" } : void 0,
3985
+ style: y.value ? { display: "none" } : void 0,
3755
3986
  "aria-controls": n.value,
3756
- onClick: m
3987
+ onClick: p
3757
3988
  }, [t("span", { class: "sr-only" }, e.playLabel)]), t("button", {
3758
3989
  type: "button",
3759
3990
  class: "swiper-button-stop",
3760
- style: w.value ? void 0 : { display: "none" },
3991
+ style: y.value ? void 0 : { display: "none" },
3761
3992
  "aria-controls": n.value,
3762
- onClick: x
3763
- }, [t("span", { class: "sr-only" }, e.stopLabel)])]), Y = (V, F) => {
3764
- const z = e.variant === "banner", N = p.value !== "none", U = !!e.moreHref, J = [];
3765
- if (N && J.push(L(V, F)), e.autoplay && J.push(R()), z) {
3766
- const ee = [];
3767
- e.navigation && ee.push(Q("prev", F, !1), Q("next", F, !1)), U && ee.push(ne()), ee.length > 0 && J.push(t("div", { class: "swiper-navigation" }, ee));
3768
- } else U && J.push(ne());
3769
- return J.length === 0 ? null : t("div", { class: ["swiper-indicator", { "text-center": !z }] }, J);
3993
+ onClick: M
3994
+ }, [t("span", { class: "sr-only" }, e.stopLabel)])]), ne = (P, z) => {
3995
+ const G = e.variant === "banner", q = h.value !== "none", w = !!e.moreHref, V = [];
3996
+ if (q && V.push(te(P, z)), e.autoplay && V.push(ve()), G) {
3997
+ const I = [];
3998
+ e.navigation && I.push(Q("prev", z, !1), Q("next", z, !1)), w && I.push(fe()), I.length > 0 && V.push(t("div", { class: "swiper-navigation" }, I));
3999
+ } else w && V.push(fe());
4000
+ return V.length === 0 ? null : t("div", { class: ["swiper-indicator", { "text-center": !G }] }, V);
3770
4001
  };
3771
4002
  return () => {
3772
- const V = Be(r.default?.()), F = V.length;
3773
- s = F;
3774
- const z = F > 0 ? Math.min(Math.max(d.value, 0), F - 1) : 0, N = e.variant === "banner";
4003
+ const P = Re(r.default?.()), z = P.length;
4004
+ s = z;
4005
+ const G = z > 0 ? Math.min(Math.max(u.value, 0), z - 1) : 0, q = e.variant === "banner";
3775
4006
  return t("div", {
3776
4007
  id: e.id,
3777
- class: ["krds-carousel", N ? "main-d-ban-swiper" : "vb-swiper"],
4008
+ class: ["krds-carousel", q ? "main-d-ban-swiper" : "vb-swiper"],
3778
4009
  style: { position: "relative" },
3779
4010
  role: "region",
3780
4011
  "aria-roledescription": "carousel",
3781
4012
  "aria-label": e.ariaLabel,
3782
- onMouseenter: A,
3783
- onMouseleave: I,
3784
- onFocusin: O,
3785
- onFocusout: H
4013
+ onMouseenter: T,
4014
+ onMouseleave: R,
4015
+ onFocusin: H,
4016
+ onFocusout: O
3786
4017
  }, [
3787
4018
  t("div", {
3788
4019
  class: "swiper",
3789
4020
  style: j,
3790
- "aria-live": w.value ? "off" : "polite"
4021
+ "aria-live": y.value ? "off" : "polite"
3791
4022
  }, [t("ul", {
3792
4023
  id: n.value,
3793
4024
  class: "swiper-wrapper",
3794
- style: le(z)
3795
- }, ae(V, z))]),
3796
- !N && e.navigation && F > 0 ? Q("prev", z, !0) : null,
3797
- !N && e.navigation && F > 0 ? Q("next", z, !0) : null,
3798
- F > 0 ? Y(F, z) : null
4025
+ style: ce(G)
4026
+ }, re(P, G))]),
4027
+ !q && e.navigation && z > 0 ? Q("prev", G, !0) : null,
4028
+ !q && e.navigation && z > 0 ? Q("next", G, !0) : null,
4029
+ z > 0 ? ne(z, G) : null
3799
4030
  ]);
3800
4031
  };
3801
4032
  }
3802
- }), Qa = Xa, Ja = M({
4033
+ }), il = rl, ol = /* @__PURE__ */ _({
3803
4034
  name: "KrdsTabs",
3804
4035
  props: {
3805
4036
  tabs: {
@@ -3832,13 +4063,13 @@ var _t = M({
3832
4063
  change: (e) => !0
3833
4064
  },
3834
4065
  setup(e, { emit: a, slots: r }) {
3835
- const l = oe(), n = (c) => `tab-${l}-${c}`, s = (c) => `panel-${l}-${c}`, d = D(e.tabs.find((c) => !c.disabled)?.id), h = b(() => e.modelValue ?? d.value), p = (c) => {
3836
- c.disabled || c.id === h.value || (d.value = c.id, a("update:modelValue", c.id), a("change", c.id));
3837
- }, w = (c) => {
3838
- if (c.key !== "ArrowRight" && c.key !== "ArrowLeft") return;
3839
- c.preventDefault();
3840
- const B = c.currentTarget;
3841
- (c.key === "ArrowRight" ? B.nextElementSibling : B.previousElementSibling)?.querySelector("button")?.focus();
4066
+ const l = de(), n = (d) => `tab-${l}-${d}`, s = (d) => `panel-${l}-${d}`, u = E(e.tabs.find((d) => !d.disabled)?.id), g = C(() => e.modelValue ?? u.value), h = (d) => {
4067
+ d.disabled || d.id === g.value || (u.value = d.id, a("update:modelValue", d.id), a("change", d.id));
4068
+ }, y = (d) => {
4069
+ if (d.key !== "ArrowRight" && d.key !== "ArrowLeft") return;
4070
+ d.preventDefault();
4071
+ const S = d.currentTarget;
4072
+ (d.key === "ArrowRight" ? S.nextElementSibling : S.previousElementSibling)?.querySelector("button")?.focus();
3842
4073
  };
3843
4074
  return () => t("div", { class: [
3844
4075
  "krds-tab-area",
@@ -3848,140 +4079,142 @@ var _t = M({
3848
4079
  "tab",
3849
4080
  e.variant,
3850
4081
  { full: e.full }
3851
- ] }, [t("ul", { role: "tablist" }, e.tabs.map((c) => t("li", {
3852
- key: c.id,
3853
- id: n(c.id),
4082
+ ] }, [t("ul", { role: "tablist" }, e.tabs.map((d) => t("li", {
4083
+ key: d.id,
4084
+ id: n(d.id),
3854
4085
  role: "tab",
3855
- "aria-selected": c.id === h.value,
3856
- "aria-controls": s(c.id),
3857
- class: { active: c.id === h.value },
3858
- onKeydown: w
4086
+ "aria-selected": d.id === g.value,
4087
+ "aria-controls": s(d.id),
4088
+ class: { active: d.id === g.value },
4089
+ onKeydown: y
3859
4090
  }, [t("button", {
3860
4091
  type: "button",
3861
4092
  class: "btn-tab",
3862
- disabled: c.disabled || void 0,
3863
- onClick: () => p(c)
3864
- }, [c.label, c.id === h.value ? t("i", { class: "sr-only" }, ` ${e.selectedText}`) : null])])))]), t("div", { class: "tab-conts-wrap" }, e.tabs.map((c) => t("section", {
3865
- key: c.id,
3866
- id: s(c.id),
4093
+ disabled: d.disabled || void 0,
4094
+ onClick: () => h(d)
4095
+ }, [d.label, d.id === g.value ? t("i", { class: "sr-only" }, ` ${e.selectedText}`) : null])])))]), t("div", { class: "tab-conts-wrap" }, e.tabs.map((d) => t("section", {
4096
+ key: d.id,
4097
+ id: s(d.id),
3867
4098
  role: "tabpanel",
3868
- "aria-labelledby": n(c.id),
3869
- class: ["tab-conts", { active: c.id === h.value }]
3870
- }, r[c.id]?.())))]);
4099
+ "aria-labelledby": n(d.id),
4100
+ class: ["tab-conts", { active: d.id === g.value }]
4101
+ }, r[d.id]?.())))]);
3871
4102
  }
3872
- }), Za = Ja, Ke = /* @__PURE__ */ Je({
3873
- KrdsAccordionGroup: () => ga,
3874
- KrdsAccordionItem: () => ya,
3875
- KrdsBadge: () => Ct,
3876
- KrdsBreadcrumb: () => Gt,
3877
- KrdsButton: () => Ze,
3878
- KrdsButtonGroup: () => et,
3879
- KrdsCarousel: () => Qa,
3880
- KrdsCheckArea: () => Vt,
3881
- KrdsCheckbox: () => zt,
3882
- KrdsCoachMark: () => sa,
3883
- KrdsContextualHelp: () => la,
3884
- KrdsCriticalAlerts: () => Ia,
3885
- KrdsDateInput: () => gt,
3886
- KrdsDisclosure: () => La,
3887
- KrdsFileUpload: () => wt,
3888
- KrdsFooter: () => xa,
3889
- KrdsFormGroup: () => dt,
3890
- KrdsFormHint: () => ot,
3891
- KrdsFormLabel: () => rt,
3892
- KrdsHeader: () => Ka,
3893
- KrdsIcon: () => tt,
3894
- KrdsIdentifier: () => Ba,
3895
- KrdsInPageNavigation: () => Xt,
3896
- KrdsInput: () => nt,
3897
- KrdsLanguageSwitcher: () => ua,
3898
- KrdsLayout: () => _a,
3899
- KrdsLink: () => at,
3900
- KrdsMainMenu: () => Wa,
3901
- KrdsMasthead: () => Tt,
3902
- KrdsModal: () => va,
3903
- KrdsPagination: () => Zt,
3904
- KrdsPanel: () => ta,
3905
- KrdsRadio: () => Rt,
3906
- KrdsResize: () => ca,
3907
- KrdsSelect: () => bt,
3908
- KrdsSideNavigation: () => Ma,
3909
- KrdsSkipLink: () => Yt,
3910
- KrdsSpinner: () => It,
3911
- KrdsStep: () => qt,
3912
- KrdsStepIndicator: () => Nt,
3913
- KrdsStructuredList: () => Pa,
3914
- KrdsTable: () => Sa,
3915
- KrdsTabs: () => Za,
3916
- KrdsTag: () => $t,
3917
- KrdsTagGroup: () => Dt,
3918
- KrdsTextList: () => Fa,
3919
- KrdsTextarea: () => yt,
3920
- KrdsToggleSwitch: () => At,
3921
- KrdsTooltip: () => ia,
3922
- KrdsTts: () => ba
3923
- }), Te = "0.0.19", ll = { install(e, a = {}) {
3924
- e.provide("krds:config", a), (a.components || Object.keys(Ke)).forEach((r) => {
3925
- const l = Ke[r];
4103
+ }), ul = ol, Ve = /* @__PURE__ */ rt({
4104
+ KrdsAccordionGroup: () => xa,
4105
+ KrdsAccordionItem: () => La,
4106
+ KrdsBadge: () => Mt,
4107
+ KrdsBreadcrumb: () => na,
4108
+ KrdsButton: () => it,
4109
+ KrdsButtonGroup: () => ot,
4110
+ KrdsCarousel: () => il,
4111
+ KrdsCheckArea: () => Wt,
4112
+ KrdsCheckbox: () => jt,
4113
+ KrdsCoachMark: () => ha,
4114
+ KrdsContextualHelp: () => va,
4115
+ KrdsCriticalAlerts: () => Xa,
4116
+ KrdsDateInput: () => xt,
4117
+ KrdsDisclosure: () => Pa,
4118
+ KrdsFileUpload: () => At,
4119
+ KrdsFloatingButton: () => ct,
4120
+ KrdsFooter: () => Va,
4121
+ KrdsFormGroup: () => kt,
4122
+ KrdsFormHint: () => mt,
4123
+ KrdsFormLabel: () => gt,
4124
+ KrdsHeader: () => _a,
4125
+ KrdsIcon: () => ut,
4126
+ KrdsIdentifier: () => Ra,
4127
+ KrdsInPageNavigation: () => ra,
4128
+ KrdsInput: () => pt,
4129
+ KrdsLanguageSwitcher: () => ba,
4130
+ KrdsLayout: () => Oa,
4131
+ KrdsLink: () => ft,
4132
+ KrdsMainMenu: () => tl,
4133
+ KrdsMasthead: () => It,
4134
+ KrdsModal: () => Ka,
4135
+ KrdsPagination: () => ua,
4136
+ KrdsPanel: () => ca,
4137
+ KrdsRadio: () => Ut,
4138
+ KrdsResize: () => Sa,
4139
+ KrdsSelect: () => Et,
4140
+ KrdsSideNavigation: () => Na,
4141
+ KrdsSkipLink: () => aa,
4142
+ KrdsSpinner: () => Xt,
4143
+ KrdsStep: () => ea,
4144
+ KrdsStepIndicator: () => Jt,
4145
+ KrdsStructuredList: () => Ya,
4146
+ KrdsTable: () => Ta,
4147
+ KrdsTabs: () => ul,
4148
+ KrdsTag: () => Ft,
4149
+ KrdsTagGroup: () => zt,
4150
+ KrdsTextList: () => Ga,
4151
+ KrdsTextarea: () => Lt,
4152
+ KrdsToggleSwitch: () => qt,
4153
+ KrdsTooltip: () => ya,
4154
+ KrdsTts: () => Ea
4155
+ }), Ie = "0.0.21", vl = { install(e, a = {}) {
4156
+ e.provide("krds:config", a), (a.components || Object.keys(Ve)).forEach((r) => {
4157
+ const l = Ve[r];
3926
4158
  l && e.component(r, l);
3927
- }), Qt(e), e.config.globalProperties.$krds = { version: Te };
3928
- } }, nl = Te;
4159
+ }), ia(e), e.config.globalProperties.$krds = { version: Ie };
4160
+ } }, pl = Ie;
3929
4161
  export {
3930
- ga as KrdsAccordionGroup,
3931
- ya as KrdsAccordionItem,
3932
- Ct as KrdsBadge,
3933
- Gt as KrdsBreadcrumb,
3934
- Ze as KrdsButton,
3935
- et as KrdsButtonGroup,
3936
- Qa as KrdsCarousel,
3937
- Vt as KrdsCheckArea,
3938
- zt as KrdsCheckbox,
3939
- sa as KrdsCoachMark,
3940
- la as KrdsContextualHelp,
3941
- Ia as KrdsCriticalAlerts,
3942
- gt as KrdsDateInput,
3943
- La as KrdsDisclosure,
3944
- wt as KrdsFileUpload,
3945
- xa as KrdsFooter,
3946
- dt as KrdsFormGroup,
3947
- ot as KrdsFormHint,
3948
- rt as KrdsFormLabel,
3949
- Ka as KrdsHeader,
3950
- tt as KrdsIcon,
3951
- Ba as KrdsIdentifier,
3952
- Xt as KrdsInPageNavigation,
3953
- nt as KrdsInput,
3954
- ua as KrdsLanguageSwitcher,
3955
- _a as KrdsLayout,
3956
- at as KrdsLink,
3957
- Wa as KrdsMainMenu,
3958
- Tt as KrdsMasthead,
3959
- va as KrdsModal,
3960
- Zt as KrdsPagination,
3961
- ta as KrdsPanel,
3962
- Rt as KrdsRadio,
3963
- ca as KrdsResize,
3964
- bt as KrdsSelect,
3965
- Ma as KrdsSideNavigation,
3966
- Yt as KrdsSkipLink,
3967
- It as KrdsSpinner,
3968
- qt as KrdsStep,
3969
- Nt as KrdsStepIndicator,
3970
- Pa as KrdsStructuredList,
3971
- Sa as KrdsTable,
3972
- Za as KrdsTabs,
3973
- $t as KrdsTag,
3974
- Dt as KrdsTagGroup,
3975
- Fa as KrdsTextList,
3976
- yt as KrdsTextarea,
3977
- At as KrdsToggleSwitch,
3978
- ia as KrdsTooltip,
3979
- ba as KrdsTts,
3980
- he as classNames,
3981
- ll as default,
3982
- tl as generateId,
3983
- al as generateUid,
3984
- nl as version
4162
+ xa as KrdsAccordionGroup,
4163
+ La as KrdsAccordionItem,
4164
+ Mt as KrdsBadge,
4165
+ na as KrdsBreadcrumb,
4166
+ it as KrdsButton,
4167
+ ot as KrdsButtonGroup,
4168
+ il as KrdsCarousel,
4169
+ Wt as KrdsCheckArea,
4170
+ jt as KrdsCheckbox,
4171
+ ha as KrdsCoachMark,
4172
+ va as KrdsContextualHelp,
4173
+ Xa as KrdsCriticalAlerts,
4174
+ xt as KrdsDateInput,
4175
+ Pa as KrdsDisclosure,
4176
+ At as KrdsFileUpload,
4177
+ ct as KrdsFloatingButton,
4178
+ Va as KrdsFooter,
4179
+ kt as KrdsFormGroup,
4180
+ mt as KrdsFormHint,
4181
+ gt as KrdsFormLabel,
4182
+ _a as KrdsHeader,
4183
+ ut as KrdsIcon,
4184
+ Ra as KrdsIdentifier,
4185
+ ra as KrdsInPageNavigation,
4186
+ pt as KrdsInput,
4187
+ ba as KrdsLanguageSwitcher,
4188
+ Oa as KrdsLayout,
4189
+ ft as KrdsLink,
4190
+ tl as KrdsMainMenu,
4191
+ It as KrdsMasthead,
4192
+ Ka as KrdsModal,
4193
+ ua as KrdsPagination,
4194
+ ca as KrdsPanel,
4195
+ Ut as KrdsRadio,
4196
+ Sa as KrdsResize,
4197
+ Et as KrdsSelect,
4198
+ Na as KrdsSideNavigation,
4199
+ aa as KrdsSkipLink,
4200
+ Xt as KrdsSpinner,
4201
+ ea as KrdsStep,
4202
+ Jt as KrdsStepIndicator,
4203
+ Ya as KrdsStructuredList,
4204
+ Ta as KrdsTable,
4205
+ ul as KrdsTabs,
4206
+ Ft as KrdsTag,
4207
+ zt as KrdsTagGroup,
4208
+ Ga as KrdsTextList,
4209
+ Lt as KrdsTextarea,
4210
+ qt as KrdsToggleSwitch,
4211
+ ya as KrdsTooltip,
4212
+ Ea as KrdsTts,
4213
+ $e as classNames,
4214
+ vl as default,
4215
+ cl as generateId,
4216
+ fl as generateUid,
4217
+ pl as version
3985
4218
  };
3986
4219
 
3987
4220
  //# sourceMappingURL=krds-vue.es.js.map