@krds.ui/vue 0.0.13 → 0.0.14

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,5 +1,13 @@
1
- import { defineComponent as K, computed as b, h as s, ref as D, onMounted as ae, onBeforeUnmount as ce, createElementBlock as x, openBlock as w, createElementVNode as c, normalizeClass as M, withDirectives as ee, unref as q, toDisplayString as E, Fragment as j, renderList as G, vShow as le, createBlock as ie, withCtx as re, createTextVNode as H, watch as ne, provide as ze, inject as Ve, createCommentVNode as X, onUnmounted as Z, resolveDirective as Ie, resolveDynamicComponent as ge, renderSlot as J, normalizeStyle as se, nextTick as we, withModifiers as de, getCurrentInstance as Ee, Teleport as Le } from "vue";
2
- const Ce = K({
1
+ import { Fragment as W, Teleport as ze, computed as k, createBlock as de, createCommentVNode as X, createElementBlock as T, createElementVNode as p, createTextVNode as N, defineComponent as B, getCurrentInstance as Ie, h as t, inject as Ee, nextTick as Ke, normalizeClass as R, normalizeStyle as ne, onBeforeUnmount as fe, onMounted as te, onUnmounted as Z, openBlock as D, provide as Fe, ref as L, renderList as Y, renderSlot as J, resolveDirective as Me, resolveDynamicComponent as ge, toDisplayString as M, unref as q, useId as ae, vShow as se, watch as re, withCtx as ue, withDirectives as ee, withModifiers as ce } from "vue";
2
+ var be = Object.defineProperty, we = (e, a) => {
3
+ let n = {};
4
+ for (var l in e)
5
+ be(n, l, {
6
+ get: e[l],
7
+ enumerable: !0
8
+ });
9
+ return a || be(n, Symbol.toStringTag, { value: "Module" }), n;
10
+ }, _e = B({
3
11
  name: "KrdsButton",
4
12
  props: {
5
13
  type: {
@@ -40,37 +48,27 @@ const Ce = K({
40
48
  }
41
49
  },
42
50
  emits: ["click"],
43
- setup(e, { emit: n, slots: a }) {
44
- const l = b(() => {
45
- const o = ["krds-btn"];
46
- return e.icon && o.push("icon"), e.border && o.push("border"), e.pure && o.push("pure"), e.text && o.push("text"), e.variant && !e.icon && o.push(e.variant), e.size && o.push(e.size), e.class && o.push(e.class), o;
47
- }), t = (o) => {
48
- e.disabled || n("click", o);
51
+ setup(e, { emit: a, slots: n }) {
52
+ const l = k(() => {
53
+ const r = ["krds-btn"];
54
+ return e.icon && r.push("icon"), e.border && r.push("border"), e.pure && r.push("pure"), e.text && r.push("text"), e.variant && !e.icon && r.push(e.variant), e.size && r.push(e.size), e.class && r.push(e.class), r;
55
+ }), s = (r) => {
56
+ e.disabled || a("click", r);
49
57
  };
50
- return () => s(
51
- "button",
52
- {
53
- type: e.type,
54
- class: l.value,
55
- disabled: e.disabled,
56
- onClick: t
57
- },
58
- a.default?.()
59
- );
58
+ return () => t("button", {
59
+ type: e.type,
60
+ class: l.value,
61
+ disabled: e.disabled,
62
+ onClick: s
63
+ }, n.default?.());
60
64
  }
61
- }), Me = K({
65
+ }), Ae = _e, Re = B({
62
66
  name: "KrdsButtonGroup",
63
67
  props: {},
64
- setup(e, { slots: n }) {
65
- return () => s(
66
- "div",
67
- {
68
- class: "btn-group"
69
- },
70
- n.default?.()
71
- );
68
+ setup(e, { slots: a }) {
69
+ return () => t("div", { class: "btn-group" }, a.default?.());
72
70
  }
73
- }), Te = K({
71
+ }), Pe = B({
74
72
  name: "KrdsIcon",
75
73
  props: {
76
74
  name: {
@@ -83,11 +81,13 @@ const Ce = K({
83
81
  }
84
82
  },
85
83
  setup(e) {
86
- return () => s("i", {
87
- class: ["svg-icon", e.name, e.class].filter(Boolean).join(" ")
88
- });
84
+ return () => t("i", { class: [
85
+ "svg-icon",
86
+ e.name,
87
+ e.class
88
+ ].filter(Boolean).join(" ") });
89
89
  }
90
- }), Re = K({
90
+ }), He = B({
91
91
  name: "KrdsLink",
92
92
  props: {
93
93
  href: {
@@ -124,41 +124,38 @@ const Ce = K({
124
124
  }
125
125
  },
126
126
  emits: ["click"],
127
- setup(e, { emit: n, slots: a }) {
128
- const l = b(() => {
129
- const r = ["krds-btn"];
130
- return e.size && r.push(e.size), e.link && r.push("link"), e.basic && r.push("basic"), e.pure && r.push("pure"), e.class && r.push(e.class), r;
131
- }), t = b(() => {
132
- const r = {
127
+ setup(e, { emit: a, slots: n }) {
128
+ const l = k(() => {
129
+ const o = ["krds-btn"];
130
+ return e.size && o.push(e.size), e.link && o.push("link"), e.basic && o.push("basic"), e.pure && o.push("pure"), e.class && o.push(e.class), o;
131
+ }), s = k(() => {
132
+ const o = {
133
133
  href: e.href,
134
134
  class: l.value
135
135
  };
136
- return e.target && (r.target = e.target), e.title && (r.title = e.title), e.target === "_blank" && (r.rel = "noopener noreferrer"), r;
137
- }), o = (r) => {
138
- n("click", r);
136
+ return e.target && (o.target = e.target), e.title && (o.title = e.title), e.target === "_blank" && (o.rel = "noopener noreferrer"), o;
137
+ }), r = (o) => {
138
+ a("click", o);
139
139
  };
140
- return () => s(
141
- "a",
142
- {
143
- ...t.value,
144
- onClick: o
145
- },
146
- a.default?.()
147
- );
140
+ return () => t("a", {
141
+ ...s.value,
142
+ onClick: r
143
+ }, n.default?.());
148
144
  }
149
- }), xe = K({
145
+ }), Ce = B({
150
146
  name: "KrdsSpinner",
151
- props: {
152
- label: {
153
- type: String,
154
- default: void 0
155
- }
156
- },
147
+ props: { label: {
148
+ type: String,
149
+ default: void 0
150
+ } },
157
151
  render() {
158
- const e = [s("span", { class: "sr-only" }, "로딩 중")];
159
- return this.label && e.push(s("span", this.label)), s("div", { class: "krds-spinner", role: "status" }, e);
152
+ const e = [t("span", { class: "sr-only" }, "로딩 중")];
153
+ return this.label && e.push(t("span", this.label)), t("div", {
154
+ class: "krds-spinner",
155
+ role: "status"
156
+ }, e);
160
157
  }
161
- }), Ae = K({
158
+ }), qe = B({
162
159
  name: "KrdsInput",
163
160
  props: {
164
161
  modelValue: {
@@ -246,25 +243,33 @@ const Ce = K({
246
243
  default: void 0
247
244
  }
248
245
  },
249
- emits: ["update:modelValue", "input", "change", "focus", "blur", "keydown", "keyup"],
250
- setup(e, { emit: n, slots: a }) {
251
- const l = b(() => {
246
+ emits: [
247
+ "update:modelValue",
248
+ "input",
249
+ "change",
250
+ "focus",
251
+ "blur",
252
+ "keydown",
253
+ "keyup"
254
+ ],
255
+ setup(e, { emit: a, slots: n }) {
256
+ const l = k(() => {
252
257
  const S = ["krds-input"];
253
258
  return e.size && S.push(e.size), e.class && S.push(e.class), S;
254
- }), t = (S) => {
255
- const V = S.target, m = e.type === "number" ? Number(V.value) : V.value;
256
- n("update:modelValue", m), n("input", S);
257
- }, o = (S) => {
258
- n("change", S);
259
+ }), s = (S) => {
260
+ const V = S.target;
261
+ a("update:modelValue", e.type === "number" ? Number(V.value) : V.value), a("input", S);
259
262
  }, r = (S) => {
260
- n("focus", S);
261
- }, h = (S) => {
262
- n("blur", S);
263
- }, u = (S) => {
264
- n("keydown", S);
265
- }, g = (S) => {
266
- n("keyup", S);
267
- }, y = b(() => {
263
+ a("change", S);
264
+ }, o = (S) => {
265
+ a("focus", S);
266
+ }, v = (S) => {
267
+ a("blur", S);
268
+ }, f = (S) => {
269
+ a("keydown", S);
270
+ }, b = (S) => {
271
+ a("keyup", S);
272
+ }, g = k(() => {
268
273
  const S = {
269
274
  type: e.type,
270
275
  class: l.value,
@@ -277,24 +282,24 @@ const Ce = K({
277
282
  disabled: e.disabled,
278
283
  autocomplete: e.autocomplete,
279
284
  autofocus: e.autofocus,
280
- onInput: t,
281
- onChange: o,
282
- onFocus: r,
283
- onBlur: h,
284
- onKeydown: u,
285
- onKeyup: g
285
+ onInput: s,
286
+ onChange: r,
287
+ onFocus: o,
288
+ onBlur: v,
289
+ onKeydown: f,
290
+ onKeyup: b
286
291
  };
287
292
  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;
288
- }), C = b(() => {
293
+ }), _ = k(() => {
289
294
  const S = ["form-conts"];
290
295
  return e.state !== "default" && S.push(`is-${e.state}`), e.icon && S.push("btn-ico-wrap"), S;
291
296
  });
292
297
  return () => {
293
- const S = [s("input", y.value)];
294
- return e.loading ? s("div", { class: C.value }, [s("div", { class: "form-spinner" }, [...S, s(xe)])]) : (a.default && S.push(...a.default()), s("div", { class: C.value }, S));
298
+ const S = [t("input", g.value)];
299
+ return e.loading ? t("div", { class: _.value }, [t("div", { class: "form-spinner" }, [...S, t(Ce)])]) : (n.default && S.push(...n.default()), t("div", { class: _.value }, S));
295
300
  };
296
301
  }
297
- }), Fe = K({
302
+ }), Oe = qe, Ne = B({
298
303
  name: "KrdsFormLabel",
299
304
  props: {
300
305
  for: {
@@ -315,25 +320,19 @@ const Ce = K({
315
320
  }
316
321
  },
317
322
  emits: ["click"],
318
- setup(e, { emit: n, slots: a }) {
319
- const l = (t) => {
320
- n("click", t);
323
+ setup(e, { emit: a, slots: n }) {
324
+ const l = (s) => {
325
+ a("click", s);
321
326
  };
322
- return () => s("div", { class: "form-tit" }, [
323
- s(
324
- "label",
325
- {
326
- for: e.for,
327
- id: e.id,
328
- class: e.class,
329
- style: e.style,
330
- onClick: l
331
- },
332
- a.default?.()
333
- )
334
- ]);
327
+ return () => t("div", { class: "form-tit" }, [t("label", {
328
+ for: e.for,
329
+ id: e.id,
330
+ class: e.class,
331
+ style: e.style,
332
+ onClick: l
333
+ }, n.default?.())]);
335
334
  }
336
- }), Pe = K({
335
+ }), je = Ne, We = B({
337
336
  name: "KrdsFormHint",
338
337
  props: {
339
338
  type: {
@@ -354,39 +353,35 @@ const Ce = K({
354
353
  }
355
354
  },
356
355
  emits: ["click"],
357
- setup(e, { emit: n, slots: a }) {
358
- const l = (o) => {
359
- n("click", o);
360
- }, t = () => {
361
- let o;
356
+ setup(e, { emit: a, slots: n }) {
357
+ const l = (r) => {
358
+ a("click", r);
359
+ }, s = () => {
360
+ let r;
362
361
  switch (e.type) {
363
362
  case "error":
364
- o = "form-hint-invalid";
363
+ r = "form-hint-invalid";
365
364
  break;
366
365
  case "success":
367
- o = "form-hint-success";
366
+ r = "form-hint-success";
368
367
  break;
369
368
  case "information":
370
- o = "form-hint-information";
369
+ r = "form-hint-information";
371
370
  break;
372
371
  default:
373
- o = "form-hint";
372
+ r = "form-hint";
374
373
  break;
375
374
  }
376
- return e.class ? `${o} ${e.class}` : o;
375
+ return e.class ? `${r} ${e.class}` : r;
377
376
  };
378
- return () => s(
379
- "p",
380
- {
381
- id: e.id,
382
- class: t(),
383
- style: e.style,
384
- onClick: l
385
- },
386
- a.default?.()
387
- );
377
+ return () => t("p", {
378
+ id: e.id,
379
+ class: s(),
380
+ style: e.style,
381
+ onClick: l
382
+ }, n.default?.());
388
383
  }
389
- }), Oe = K({
384
+ }), Ge = We, Ye = B({
390
385
  name: "KrdsFormGroup",
391
386
  props: {
392
387
  class: {
@@ -402,173 +397,190 @@ const Ce = K({
402
397
  default: void 0
403
398
  }
404
399
  },
405
- setup(e, { slots: n }) {
406
- const a = b(() => {
400
+ setup(e, { slots: a }) {
401
+ const n = k(() => {
407
402
  const l = ["form-group"];
408
403
  return e.class && l.push(e.class), l;
409
404
  });
410
- return () => s(
411
- "div",
412
- {
413
- id: e.id,
414
- class: a.value,
415
- style: e.style
416
- },
417
- n.default?.()
418
- );
405
+ return () => t("div", {
406
+ id: e.id,
407
+ class: n.value,
408
+ style: e.style
409
+ }, a.default?.());
419
410
  }
420
- });
421
- function qe(e, n) {
422
- const a = /* @__PURE__ */ new Date(), l = D(e || a.getFullYear()), t = D(n || a.getMonth() + 1), o = D(null), r = D(null), h = D(null), u = b(() => {
423
- const f = a.getFullYear(), d = [];
424
- for (let v = f - 10; v <= f + 10; v++)
425
- d.push(v);
426
- return d;
427
- }), g = b(() => Array.from({ length: 12 }, (f, d) => d + 1)), y = () => {
428
- o.value = null, r.value = null;
429
- }, C = () => {
430
- t.value === 1 ? (t.value = 12, l.value -= 1) : t.value -= 1;
411
+ }), Ue = Ye;
412
+ function Xe(e, a) {
413
+ const n = /* @__PURE__ */ new Date(), l = L(e || n.getFullYear()), s = L(a || n.getMonth() + 1), r = L(null), o = L(null), v = L(null), f = k(() => {
414
+ const c = n.getFullYear(), u = [];
415
+ for (let h = c - 10; h <= c + 10; h++) u.push(h);
416
+ return u;
417
+ }), b = k(() => Array.from({ length: 12 }, (c, u) => u + 1)), g = () => {
418
+ r.value = null, o.value = null;
419
+ }, _ = () => {
420
+ s.value === 1 ? (s.value = 12, l.value -= 1) : s.value -= 1;
431
421
  }, S = () => {
432
- t.value === 12 ? (t.value = 1, l.value += 1) : t.value += 1;
433
- }, V = (f, d = !1) => {
434
- if (d)
435
- o.value = f, r.value = f;
436
- else if (!o.value || o.value && r.value)
437
- o.value = f, r.value = null;
422
+ s.value === 12 ? (s.value = 1, l.value += 1) : s.value += 1;
423
+ }, V = (c, u = !1) => {
424
+ if (u)
425
+ r.value = c, o.value = c;
426
+ else if (!r.value || r.value && o.value)
427
+ r.value = c, o.value = null;
438
428
  else {
439
- const v = new Date(o.value.replace(/\./g, "-"));
440
- new Date(f.replace(/\./g, "-")) < v ? (o.value = f, r.value = null) : r.value = f;
429
+ const h = new Date(r.value.replace(/\./g, "-"));
430
+ new Date(c.replace(/\./g, "-")) < h ? (r.value = c, o.value = null) : o.value = c;
441
431
  }
442
432
  };
443
433
  return {
444
- // State
445
434
  currentYear: l,
446
- currentMonth: t,
447
- selectedStartDate: o,
448
- selectedEndDate: r,
449
- activeDateSelector: h,
450
- // Computed
451
- yearOptions: u,
452
- monthOptions: g,
453
- // Methods
454
- clearDateSelection: y,
455
- prevMonth: C,
435
+ currentMonth: s,
436
+ selectedStartDate: r,
437
+ selectedEndDate: o,
438
+ activeDateSelector: v,
439
+ yearOptions: f,
440
+ monthOptions: b,
441
+ clearDateSelection: g,
442
+ prevMonth: _,
456
443
  nextMonth: S,
457
444
  handleDateSelection: V,
458
445
  selectToday: () => {
459
- const f = `${a.getFullYear()}.${String(a.getMonth() + 1).padStart(2, "0")}.${String(a.getDate()).padStart(2, "0")}`;
460
- V(f, !0);
461
- },
462
- isDateInSelectedRange: (f) => {
463
- if (!o.value || !r.value)
464
- return { isInRange: !1, isStart: !1, isEnd: !1 };
465
- const d = new Date(f.replace(/\./g, "-")), v = new Date(o.value.replace(/\./g, "-")), $ = new Date(r.value.replace(/\./g, "-")), F = f === o.value, T = f === r.value;
466
- return { isInRange: d >= v && d <= $, isStart: F, isEnd: T };
446
+ V(`${n.getFullYear()}.${String(n.getMonth() + 1).padStart(2, "0")}.${String(n.getDate()).padStart(2, "0")}`, !0);
447
+ },
448
+ isDateInSelectedRange: (c) => {
449
+ if (!r.value || !o.value) return {
450
+ isInRange: !1,
451
+ isStart: !1,
452
+ isEnd: !1
453
+ };
454
+ const u = new Date(c.replace(/\./g, "-")), h = new Date(r.value.replace(/\./g, "-")), m = new Date(o.value.replace(/\./g, "-")), w = c === r.value, C = c === o.value;
455
+ return {
456
+ isInRange: u >= h && u <= m,
457
+ isStart: w,
458
+ isEnd: C
459
+ };
467
460
  }
468
461
  };
469
462
  }
470
- function Ne(e, n, a = {}) {
463
+ function Je(e, a, n = {}) {
471
464
  let l = null;
472
- const t = typeof a == "string" ? { ignore: a } : a, { ignore: o, event: r = "click" } = t, h = () => {
473
- l = (g) => {
474
- const y = g.target;
475
- e.value?.contains(y) || o && y.closest(o) || n();
465
+ const { ignore: s, event: r = "click" } = typeof n == "string" ? { ignore: n } : n, o = () => {
466
+ l = (f) => {
467
+ const b = f.target;
468
+ e.value?.contains(b) || s && b.closest(s) || a();
476
469
  }, document.addEventListener(r, l);
477
- }, u = () => {
470
+ }, v = () => {
478
471
  if (l) {
479
- const g = typeof a == "string" ? "click" : a.event || "click";
480
- document.removeEventListener(g, l), l = null;
472
+ const f = typeof n == "string" ? "click" : n.event || "click";
473
+ document.removeEventListener(f, l), l = null;
481
474
  }
482
475
  };
483
- return ae(() => {
484
- h();
485
- }), ce(() => {
486
- u();
476
+ return te(() => {
477
+ o();
478
+ }), fe(() => {
479
+ v();
487
480
  }), {
488
- setupGlobalListeners: h,
489
- removeGlobalListeners: u
481
+ setupGlobalListeners: o,
482
+ removeGlobalListeners: v
490
483
  };
491
484
  }
492
- const He = { class: "form-conts" }, We = { class: "calendar-input" }, je = ["id", "name", "placeholder", "value", "readonly", "disabled", "required", "autofocus"], Ye = ["disabled", "aria-expanded"], Ge = { class: "calendar-head" }, Ue = { class: "calendar-switch-wrap" }, Xe = { class: "calendar-drop-down" }, Je = ["aria-expanded"], Qe = { class: "calendar-select calendar-year-wrap" }, Ze = { class: "sel year" }, et = ["onClick"], tt = { class: "calendar-drop-down" }, lt = ["aria-expanded"], at = { class: "calendar-select calendar-mon-wrap" }, nt = { class: "sel month" }, st = ["onClick"], ot = { class: "calendar-body" }, it = { class: "calendar-table-wrap" }, rt = { class: "calendar-tbl" }, dt = ["data-date"], ct = ["aria-pressed", "onClick"], ut = { class: "calendar-footer" }, ft = { class: "calendar-btn-wrap" }, vt = /* @__PURE__ */ K({
485
+ var Qe = { class: "form-conts" }, Ze = { class: "calendar-input" }, et = [
486
+ "id",
487
+ "name",
488
+ "placeholder",
489
+ "value",
490
+ "readonly",
491
+ "disabled",
492
+ "required",
493
+ "autofocus"
494
+ ], tt = ["disabled", "aria-expanded"], at = { class: "calendar-head" }, lt = { class: "calendar-switch-wrap" }, st = { class: "calendar-drop-down" }, nt = ["aria-expanded"], rt = { class: "calendar-select calendar-year-wrap" }, it = { class: "sel year" }, ot = ["onClick"], dt = { class: "calendar-drop-down" }, ut = ["aria-expanded"], ct = { class: "calendar-select calendar-mon-wrap" }, ft = { class: "sel month" }, vt = ["onClick"], pt = { class: "calendar-body" }, ht = { class: "calendar-table-wrap" }, mt = { class: "calendar-tbl" }, yt = ["data-date"], gt = ["aria-pressed", "onClick"], bt = { class: "calendar-footer" }, kt = { class: "calendar-btn-wrap" }, St = /* @__PURE__ */ B({
493
495
  __name: "KrdsDateInput",
494
496
  props: {
495
497
  modelValue: { default: void 0 },
496
498
  size: { default: "medium" },
497
499
  placeholder: { default: "YYYY.MM.DD" },
498
- disabled: { type: Boolean, default: !1 },
499
- readonly: { type: Boolean, default: !1 },
500
- autofocus: { type: Boolean, default: !1 },
500
+ disabled: {
501
+ type: Boolean,
502
+ default: !1
503
+ },
504
+ readonly: {
505
+ type: Boolean,
506
+ default: !1
507
+ },
508
+ autofocus: {
509
+ type: Boolean,
510
+ default: !1
511
+ },
501
512
  eventDates: { default: () => [] },
502
513
  holidays: { default: () => [] },
503
514
  initialYear: { default: void 0 },
504
515
  initialMonth: { default: void 0 },
505
516
  name: { default: void 0 },
506
- required: { type: Boolean, default: !1 },
517
+ required: {
518
+ type: Boolean,
519
+ default: !1
520
+ },
507
521
  class: { default: void 0 },
508
522
  style: {},
509
523
  id: { default: void 0 }
510
524
  },
511
- emits: ["update:modelValue", "input", "change", "focus", "blur"],
512
- setup(e, { emit: n }) {
513
- const a = e, l = n, t = D(), o = D(), r = D(!1), h = D(null), {
514
- currentYear: u,
515
- currentMonth: g,
516
- selectedStartDate: y,
517
- selectedEndDate: C,
518
- yearOptions: S,
519
- monthOptions: V,
520
- prevMonth: m,
521
- nextMonth: i,
522
- handleDateSelection: f,
523
- selectToday: d,
524
- isDateInSelectedRange: v
525
- } = qe(a.initialYear, a.initialMonth), $ = () => {
526
- r.value && o.value?.focus(), r.value = !1, h.value = null;
525
+ emits: [
526
+ "update:modelValue",
527
+ "input",
528
+ "change",
529
+ "focus",
530
+ "blur"
531
+ ],
532
+ setup(e, { emit: a }) {
533
+ const n = e, l = a, s = L(), r = L(), o = L(!1), v = L(null), { currentYear: f, currentMonth: b, selectedStartDate: g, selectedEndDate: _, yearOptions: S, monthOptions: V, prevMonth: d, nextMonth: i, handleDateSelection: c, selectToday: u, isDateInSelectedRange: h } = Xe(n.initialYear, n.initialMonth), m = () => {
534
+ o.value && r.value?.focus(), o.value = !1, v.value = null;
527
535
  };
528
- Ne(t, $, ".calendar-conts");
529
- const F = b(() => {
530
- const B = ["krds-input", "datepicker", "cal"];
531
- return a.size && B.push(a.size), a.class && B.push(a.class), B;
532
- }), T = b(() => ["form-conts", "calendar-conts"]), R = b(() => ({
536
+ Je(s, m, ".calendar-conts");
537
+ const w = k(() => {
538
+ const I = [
539
+ "krds-input",
540
+ "datepicker",
541
+ "cal"
542
+ ];
543
+ return n.size && I.push(n.size), n.class && I.push(n.class), I;
544
+ }), C = k(() => ["form-conts", "calendar-conts"]), x = k(() => ({
533
545
  "krds-calendar-area": !0,
534
- active: r.value
535
- })), I = b(() => {
536
- const B = u.value, _ = g.value, z = new Date(B, _ - 1, 1), Q = new Date(z);
537
- Q.setDate(Q.getDate() - z.getDay());
538
- const U = [], O = new Date(Q);
539
- for (let oe = 0; oe < 6; oe++) {
540
- const me = [];
541
- for (let pe = 0; pe < 7; pe++) {
542
- const De = `${O.getFullYear()}.${String(O.getMonth() + 1).padStart(2, "0")}.${String(O.getDate()).padStart(2, "0")}`, ye = O.getDay();
543
- me.push({
544
- day: O.getDate(),
545
- dateString: De,
546
- isCurrentMonth: O.getMonth() === _ - 1,
547
- isToday: O.toDateString() === (/* @__PURE__ */ new Date()).toDateString(),
548
- isPrevMonth: O.getMonth() < _ - 1 || O.getMonth() === 11 && _ === 1,
549
- isNextMonth: O.getMonth() > _ - 1 || O.getMonth() === 0 && _ === 12,
546
+ active: o.value
547
+ })), $ = k(() => {
548
+ const I = f.value, z = b.value, E = new Date(I, z - 1, 1), Q = new Date(E);
549
+ Q.setDate(Q.getDate() - E.getDay());
550
+ const U = [], H = new Date(Q);
551
+ for (let ie = 0; ie < 6; ie++) {
552
+ const he = [];
553
+ for (let me = 0; me < 7; me++) {
554
+ const Ve = `${H.getFullYear()}.${String(H.getMonth() + 1).padStart(2, "0")}.${String(H.getDate()).padStart(2, "0")}`, ye = H.getDay();
555
+ he.push({
556
+ day: H.getDate(),
557
+ dateString: Ve,
558
+ isCurrentMonth: H.getMonth() === z - 1,
559
+ isToday: H.toDateString() === (/* @__PURE__ */ new Date()).toDateString(),
560
+ isPrevMonth: H.getMonth() < z - 1 || H.getMonth() === 11 && z === 1,
561
+ isNextMonth: H.getMonth() > z - 1 || H.getMonth() === 0 && z === 12,
550
562
  isSunday: ye === 0,
551
563
  isSaturday: ye === 6
552
- }), O.setDate(O.getDate() + 1);
564
+ }), H.setDate(H.getDate() + 1);
553
565
  }
554
- U.push(me);
566
+ U.push(he);
555
567
  }
556
568
  return U;
557
- }), p = (B) => {
558
- const _ = [];
559
- if (B.isPrevMonth && _.push("old"), B.isNextMonth && _.push("new"), B.isToday && _.push("today"), B.isSunday && _.push("day-off"), a.holidays?.includes(B.dateString) && _.push("day-off"), a.eventDates?.includes(B.dateString) && _.push("day-event"), B.isCurrentMonth) {
560
- const z = v(B.dateString);
561
- z.isInRange && (_.push("period"), z.isStart && _.push("start"), z.isEnd && _.push("end"));
569
+ }), y = (I) => {
570
+ const z = [];
571
+ if (I.isPrevMonth && z.push("old"), I.isNextMonth && z.push("new"), I.isToday && z.push("today"), I.isSunday && z.push("day-off"), n.holidays?.includes(I.dateString) && z.push("day-off"), n.eventDates?.includes(I.dateString) && z.push("day-event"), I.isCurrentMonth) {
572
+ const E = h(I.dateString);
573
+ E.isInRange && (z.push("period"), E.isStart && z.push("start"), E.isEnd && z.push("end"));
562
574
  }
563
- return _;
564
- }, k = b(() => [
575
+ return z;
576
+ }, K = k(() => [
565
577
  {
566
578
  id: "get-today",
567
579
  label: "오늘",
568
580
  class: "text",
569
581
  variant: void 0,
570
582
  size: "small",
571
- handler: d
583
+ handler: u
572
584
  },
573
585
  {
574
586
  id: "cancel-btn",
@@ -576,7 +588,7 @@ const He = { class: "form-conts" }, We = { class: "calendar-input" }, je = ["id"
576
588
  class: void 0,
577
589
  variant: "tertiary",
578
590
  size: "small",
579
- handler: $
591
+ handler: m
580
592
  },
581
593
  {
582
594
  id: "confirm-btn",
@@ -584,211 +596,142 @@ const He = { class: "form-conts" }, We = { class: "calendar-input" }, je = ["id"
584
596
  class: void 0,
585
597
  variant: "primary",
586
598
  size: "small",
587
- handler: W
588
- }
589
- ]), L = (B) => {
590
- h.value === B ? h.value = null : h.value = B;
591
- }, P = (B) => {
592
- u.value = B, h.value = null;
593
- }, A = (B) => {
594
- g.value = B, h.value = null;
595
- }, W = () => {
596
- if (y.value) {
597
- if (C.value && y.value !== C.value) {
598
- const B = `${y.value} ~ ${C.value}`;
599
- l("update:modelValue", B);
600
- } else
601
- l("update:modelValue", y.value);
602
- $();
599
+ handler: j
603
600
  }
604
- }, N = () => {
605
- r.value = !0, h.value = null, setTimeout(() => {
606
- t.value?.querySelector(".calendar-wrap")?.focus();
601
+ ]), F = (I) => {
602
+ v.value === I ? v.value = null : v.value = I;
603
+ }, P = (I) => {
604
+ f.value = I, v.value = null;
605
+ }, A = (I) => {
606
+ b.value = I, v.value = null;
607
+ }, j = () => {
608
+ g.value && (_.value && g.value !== _.value ? l("update:modelValue", `${g.value} ~ ${_.value}`) : l("update:modelValue", g.value), m());
609
+ }, O = () => {
610
+ o.value = !0, v.value = null, setTimeout(() => {
611
+ s.value?.querySelector(".calendar-wrap")?.focus();
607
612
  }, 50);
608
- }, Y = () => {
609
- r.value ? $() : N();
610
- }, he = (B) => {
611
- B.code === "Escape" && (h.value ? h.value = null : r.value && $());
612
- }, te = (B) => {
613
- const _ = B.target;
614
- l("update:modelValue", _.value), l("input", B);
615
- }, Be = (B) => {
616
- l("change", B);
617
- }, Ke = (B) => {
618
- l("focus", B);
619
- }, _e = (B) => {
620
- l("blur", B);
613
+ }, G = () => {
614
+ o.value ? m() : O();
615
+ }, le = (I) => {
616
+ I.code === "Escape" && (v.value ? v.value = null : o.value && m());
617
+ }, Be = (I) => {
618
+ const z = I.target;
619
+ l("update:modelValue", z.value), l("input", I);
620
+ }, Le = (I) => {
621
+ l("change", I);
622
+ }, De = (I) => {
623
+ l("focus", I);
624
+ }, Te = (I) => {
625
+ l("blur", I);
621
626
  };
622
- return (B, _) => (w(), x("div", He, [
623
- c("div", {
624
- class: M(T.value)
625
- }, [
626
- c("div", We, [
627
- c("input", {
628
- id: e.id,
629
- name: e.name,
630
- class: M(F.value),
631
- placeholder: e.placeholder,
632
- value: e.modelValue,
633
- readonly: e.readonly,
634
- disabled: e.disabled,
635
- required: e.required,
636
- autofocus: e.autofocus,
637
- type: "text",
638
- onInput: te,
639
- onChange: Be,
640
- onFocus: Ke,
641
- onBlur: _e
642
- }, null, 42, je),
643
- c("button", {
644
- ref_key: "datePickerButtonRef",
645
- ref: o,
646
- class: M(`krds-btn ${e.size || "medium"} icon form-btn-datepicker`),
647
- disabled: e.disabled,
648
- "aria-expanded": r.value,
649
- type: "button",
650
- onClick: Y
651
- }, [..._[4] || (_[4] = [
652
- c("span", { class: "sr-only" }, "달력 열기", -1),
653
- c("i", { class: "svg-icon ico-calendar" }, null, -1)
654
- ])], 10, Ye)
655
- ]),
656
- c("div", {
657
- ref_key: "datePickerAreaRef",
658
- ref: t,
659
- class: M(R.value)
660
- }, [
661
- ee(c("div", {
662
- class: "calendar-wrap bottom",
663
- "aria-label": "달력",
664
- tabindex: "0",
665
- onKeydown: he
666
- }, [
667
- c("div", Ge, [
668
- c("button", {
669
- type: "button",
670
- class: "btn-cal-move prev",
671
- onClick: _[0] || (_[0] = //@ts-ignore
672
- (...z) => q(m) && q(m)(...z))
673
- }, [..._[5] || (_[5] = [
674
- c("span", { class: "sr-only" }, "이전 달", -1)
675
- ])]),
676
- c("div", Ue, [
677
- c("div", Xe, [
678
- c("button", {
679
- type: "button",
680
- class: "btn-cal-switch year",
681
- "aria-label": "연도 선택",
682
- "aria-expanded": h.value === "year",
683
- onClick: _[1] || (_[1] = (z) => L("year"))
684
- }, E(q(u)) + "년 ", 9, Je),
685
- ee(c("div", Qe, [
686
- c("ul", Ze, [
687
- (w(!0), x(j, null, G(q(S), (z) => (w(), x("li", { key: z }, [
688
- c("button", {
689
- type: "button",
690
- class: M({ active: z === q(u) }),
691
- onClick: (Q) => P(z)
692
- }, E(z) + "년", 11, et)
693
- ]))), 128))
694
- ])
695
- ], 512), [
696
- [le, h.value === "year"]
697
- ])
698
- ]),
699
- c("div", tt, [
700
- c("button", {
701
- type: "button",
702
- class: "btn-cal-switch month",
703
- "aria-label": "월 선택",
704
- "aria-expanded": h.value === "month",
705
- onClick: _[2] || (_[2] = (z) => L("month"))
706
- }, E(q(g).toString().padStart(2, "0")) + "월 ", 9, lt),
707
- ee(c("div", at, [
708
- c("ul", nt, [
709
- (w(!0), x(j, null, G(q(V), (z) => (w(), x("li", { key: z }, [
710
- c("button", {
711
- type: "button",
712
- class: M({ active: z === q(g) }),
713
- onClick: (Q) => A(z)
714
- }, E(z.toString().padStart(2, "0")) + "월 ", 11, st)
715
- ]))), 128))
716
- ])
717
- ], 512), [
718
- [le, h.value === "month"]
719
- ])
720
- ])
721
- ]),
722
- c("button", {
723
- type: "button",
724
- class: "btn-cal-move next",
725
- onClick: _[3] || (_[3] = //@ts-ignore
726
- (...z) => q(i) && q(i)(...z))
727
- }, [..._[6] || (_[6] = [
728
- c("span", { class: "sr-only" }, "다음 달", -1)
729
- ])])
730
- ]),
731
- c("div", ot, [
732
- c("div", it, [
733
- c("table", rt, [
734
- c("caption", null, E(q(u)) + "년 " + E(q(g).toString().padStart(2, "0")) + "월", 1),
735
- _[7] || (_[7] = c("thead", null, [
736
- c("tr", null, [
737
- c("th", null, "일"),
738
- c("th", null, "월"),
739
- c("th", null, "화"),
740
- c("th", null, "수"),
741
- c("th", null, "목"),
742
- c("th", null, "금"),
743
- c("th", null, "토")
744
- ])
745
- ], -1)),
746
- c("tbody", null, [
747
- (w(!0), x(j, null, G(I.value, (z, Q) => (w(), x("tr", { key: Q }, [
748
- (w(!0), x(j, null, G(z, (U, O) => (w(), x("td", {
749
- key: O,
750
- class: M(p(U)),
751
- "data-date": U.dateString
752
- }, [
753
- c("button", {
754
- type: "button",
755
- class: "btn-set-date",
756
- "aria-pressed": q(v)(U.dateString).isInRange ? "true" : "false",
757
- onClick: (oe) => q(f)(U.dateString)
758
- }, [
759
- c("span", null, E(U.day), 1)
760
- ], 8, ct)
761
- ], 10, dt))), 128))
762
- ]))), 128))
763
- ])
764
- ])
765
- ])
766
- ]),
767
- c("div", ut, [
768
- c("div", ft, [
769
- (w(!0), x(j, null, G(k.value, (z) => (w(), ie(q(Ce), {
770
- id: z.id,
771
- key: z.id,
772
- class: M(z.class),
773
- variant: z.variant,
774
- size: z.size,
775
- onClick: z.handler
776
- }, {
777
- default: re(() => [
778
- H(E(z.label), 1)
779
- ]),
780
- _: 2
781
- }, 1032, ["id", "class", "variant", "size", "onClick"]))), 128))
782
- ])
783
- ])
784
- ], 544), [
785
- [le, r.value]
786
- ])
787
- ], 2)
788
- ], 2)
789
- ]));
627
+ return (I, z) => (D(), T("div", Qe, [p("div", { class: R(C.value) }, [p("div", Ze, [p("input", {
628
+ id: e.id,
629
+ name: e.name,
630
+ class: R(w.value),
631
+ placeholder: e.placeholder,
632
+ value: e.modelValue,
633
+ readonly: e.readonly,
634
+ disabled: e.disabled,
635
+ required: e.required,
636
+ autofocus: e.autofocus,
637
+ type: "text",
638
+ onInput: Be,
639
+ onChange: Le,
640
+ onFocus: De,
641
+ onBlur: Te
642
+ }, null, 42, et), p("button", {
643
+ ref_key: "datePickerButtonRef",
644
+ ref: r,
645
+ class: R(`krds-btn ${e.size || "medium"} icon form-btn-datepicker`),
646
+ disabled: e.disabled,
647
+ "aria-expanded": o.value,
648
+ type: "button",
649
+ onClick: G
650
+ }, [...z[4] || (z[4] = [p("span", { class: "sr-only" }, "달력 열기", -1), p("i", { class: "svg-icon ico-calendar" }, null, -1)])], 10, tt)]), p("div", {
651
+ ref_key: "datePickerAreaRef",
652
+ ref: s,
653
+ class: R(x.value)
654
+ }, [ee(p("div", {
655
+ class: "calendar-wrap bottom",
656
+ "aria-label": "달력",
657
+ tabindex: "0",
658
+ onKeydown: le
659
+ }, [
660
+ p("div", at, [
661
+ p("button", {
662
+ type: "button",
663
+ class: "btn-cal-move prev",
664
+ onClick: z[0] || (z[0] = (...E) => q(d) && q(d)(...E))
665
+ }, [...z[5] || (z[5] = [p("span", { class: "sr-only" }, "이전 달", -1)])]),
666
+ p("div", lt, [p("div", st, [p("button", {
667
+ type: "button",
668
+ class: "btn-cal-switch year",
669
+ "aria-label": "연도 선택",
670
+ "aria-expanded": v.value === "year",
671
+ onClick: z[1] || (z[1] = (E) => F("year"))
672
+ }, M(q(f)) + "년 ", 9, nt), ee(p("div", rt, [p("ul", it, [(D(!0), T(W, null, Y(q(S), (E) => (D(), T("li", { key: E }, [p("button", {
673
+ type: "button",
674
+ class: R({ active: E === q(f) }),
675
+ onClick: (Q) => P(E)
676
+ }, M(E) + "년", 11, ot)]))), 128))])], 512), [[se, v.value === "year"]])]), p("div", dt, [p("button", {
677
+ type: "button",
678
+ class: "btn-cal-switch month",
679
+ "aria-label": "월 선택",
680
+ "aria-expanded": v.value === "month",
681
+ onClick: z[2] || (z[2] = (E) => F("month"))
682
+ }, M(q(b).toString().padStart(2, "0")) + "월 ", 9, ut), ee(p("div", ct, [p("ul", ft, [(D(!0), T(W, null, Y(q(V), (E) => (D(), T("li", { key: E }, [p("button", {
683
+ type: "button",
684
+ class: R({ active: E === q(b) }),
685
+ onClick: (Q) => A(E)
686
+ }, M(E.toString().padStart(2, "0")) + "월 ", 11, vt)]))), 128))])], 512), [[se, v.value === "month"]])])]),
687
+ p("button", {
688
+ type: "button",
689
+ class: "btn-cal-move next",
690
+ onClick: z[3] || (z[3] = (...E) => q(i) && q(i)(...E))
691
+ }, [...z[6] || (z[6] = [p("span", { class: "sr-only" }, "다음 달", -1)])])
692
+ ]),
693
+ p("div", pt, [p("div", ht, [p("table", mt, [
694
+ p("caption", null, M(q(f)) + "년 " + M(q(b).toString().padStart(2, "0")) + "월", 1),
695
+ z[7] || (z[7] = p("thead", null, [p("tr", null, [
696
+ p("th", null, "일"),
697
+ p("th", null, "월"),
698
+ p("th", null, "화"),
699
+ p("th", null, "수"),
700
+ p("th", null, "목"),
701
+ p("th", null, "금"),
702
+ p("th", null, "토")
703
+ ])], -1)),
704
+ p("tbody", null, [(D(!0), T(W, null, Y($.value, (E, Q) => (D(), T("tr", { key: Q }, [(D(!0), T(W, null, Y(E, (U, H) => (D(), T("td", {
705
+ key: H,
706
+ class: R(y(U)),
707
+ "data-date": U.dateString
708
+ }, [p("button", {
709
+ type: "button",
710
+ class: "btn-set-date",
711
+ "aria-pressed": q(h)(U.dateString).isInRange ? "true" : "false",
712
+ onClick: (ie) => q(c)(U.dateString)
713
+ }, [p("span", null, M(U.day), 1)], 8, gt)], 10, yt))), 128))]))), 128))])
714
+ ])])]),
715
+ p("div", bt, [p("div", kt, [(D(!0), T(W, null, Y(K.value, (E) => (D(), de(q(_e), {
716
+ id: E.id,
717
+ key: E.id,
718
+ class: R(E.class),
719
+ variant: E.variant,
720
+ size: E.size,
721
+ onClick: E.handler
722
+ }, {
723
+ default: ue(() => [N(M(E.label), 1)]),
724
+ _: 2
725
+ }, 1032, [
726
+ "id",
727
+ "class",
728
+ "variant",
729
+ "size",
730
+ "onClick"
731
+ ]))), 128))])])
732
+ ], 544), [[se, o.value]])], 2)], 2)]));
790
733
  }
791
- }), ht = K({
734
+ }), Kt = St, wt = Kt, _t = B({
792
735
  name: "KrdsTextarea",
793
736
  props: {
794
737
  modelValue: {
@@ -847,7 +790,6 @@ const He = { class: "form-conts" }, We = { class: "calendar-input" }, je = ["id"
847
790
  type: String,
848
791
  default: "vertical"
849
792
  },
850
- // BaseFormProps에서 상속
851
793
  class: {
852
794
  type: String,
853
795
  default: void 0
@@ -861,39 +803,43 @@ const He = { class: "form-conts" }, We = { class: "calendar-input" }, je = ["id"
861
803
  default: void 0
862
804
  }
863
805
  },
864
- emits: ["update:modelValue", "input", "change", "focus", "blur", "keydown", "keyup"],
865
- setup(e, { emit: n }) {
866
- const a = D(0);
867
- ne(
868
- () => e.modelValue,
869
- (i) => {
870
- a.value = (i || "").length;
871
- },
872
- { immediate: !0 }
873
- );
874
- const l = b(() => {
806
+ emits: [
807
+ "update:modelValue",
808
+ "input",
809
+ "change",
810
+ "focus",
811
+ "blur",
812
+ "keydown",
813
+ "keyup"
814
+ ],
815
+ setup(e, { emit: a }) {
816
+ const n = L(0);
817
+ re(() => e.modelValue, (i) => {
818
+ n.value = (i || "").length;
819
+ }, { immediate: !0 });
820
+ const l = k(() => {
875
821
  const i = ["krds-input"];
876
822
  return e.size && i.push(e.size), e.class && i.push(e.class), i;
877
- }), t = b(() => {
823
+ }), s = k(() => {
878
824
  const i = {};
879
825
  return e.resize && (i.resize = e.resize), i;
880
- }), o = (i) => {
881
- const d = i.target.value;
882
- a.value = d.length, n("update:modelValue", d), n("input", i);
883
- }, r = (i) => {
884
- n("change", i);
885
- }, h = (i) => {
886
- n("focus", i);
887
- }, u = (i) => {
888
- n("blur", i);
826
+ }), r = (i) => {
827
+ const c = i.target.value;
828
+ n.value = c.length, a("update:modelValue", c), a("input", i);
829
+ }, o = (i) => {
830
+ a("change", i);
831
+ }, v = (i) => {
832
+ a("focus", i);
833
+ }, f = (i) => {
834
+ a("blur", i);
835
+ }, b = (i) => {
836
+ a("keydown", i);
889
837
  }, g = (i) => {
890
- n("keydown", i);
891
- }, y = (i) => {
892
- n("keyup", i);
893
- }, C = b(() => {
838
+ a("keyup", i);
839
+ }, _ = k(() => {
894
840
  const i = {
895
841
  class: l.value,
896
- style: t.value,
842
+ style: s.value,
897
843
  value: e.modelValue,
898
844
  placeholder: e.placeholder,
899
845
  name: e.name,
@@ -904,37 +850,32 @@ const He = { class: "form-conts" }, We = { class: "calendar-input" }, je = ["id"
904
850
  autofocus: e.autofocus,
905
851
  rows: e.rows,
906
852
  cols: e.cols,
907
- onInput: o,
908
- onChange: r,
909
- onFocus: h,
910
- onBlur: u,
911
- onKeydown: g,
912
- onKeyup: y
853
+ onInput: r,
854
+ onChange: o,
855
+ onFocus: v,
856
+ onBlur: f,
857
+ onKeydown: b,
858
+ onKeyup: g
913
859
  };
914
860
  return e.maxlength !== void 0 && (i.maxlength = e.maxlength), e.minlength !== void 0 && (i.minlength = e.minlength), i;
915
- }), S = b(() => ["form-conts"]), V = b(() => ["textarea-wrap"]), m = b(() => {
916
- if (!e.showCount) return null;
917
- const i = a.value, f = e.maxlength;
918
- return {
919
- current: i,
920
- max: f || ""
921
- };
922
- });
861
+ }), S = k(() => ["form-conts"]), V = k(() => ["textarea-wrap"]), d = k(() => e.showCount ? {
862
+ current: n.value,
863
+ max: e.maxlength || ""
864
+ } : null);
923
865
  return () => {
924
- const i = [s("textarea", C.value)];
925
- return m.value && i.push(
926
- s("p", { class: "textarea-count" }, [
927
- s("span", { class: "count-now" }, m.value.current),
928
- s("span", { class: "count-total" }, m.value.max ? `/${m.value.max}` : "")
929
- ])
930
- ), s("div", { class: S.value }, [s("div", { class: V.value }, i)]);
866
+ const i = [t("textarea", _.value)];
867
+ return d.value && i.push(t("p", { class: "textarea-count" }, [t("span", { class: "count-now" }, d.value.current), t("span", { class: "count-total" }, d.value.max ? `/${d.value.max}` : "")])), t("div", { class: S.value }, [t("div", { class: V.value }, i)]);
931
868
  };
932
869
  }
933
- }), mt = K({
870
+ }), Ct = _t, $t = B({
934
871
  name: "KrdsSelect",
935
872
  props: {
936
873
  modelValue: {
937
- type: [String, Number, null],
874
+ type: [
875
+ String,
876
+ Number,
877
+ null
878
+ ],
938
879
  default: null
939
880
  },
940
881
  size: {
@@ -978,55 +919,55 @@ const He = { class: "form-conts" }, We = { class: "calendar-input" }, je = ["id"
978
919
  default: void 0
979
920
  }
980
921
  },
981
- emits: ["update:modelValue", "focus", "blur"],
982
- setup(e, { emit: n, slots: a }) {
983
- const l = b(() => {
984
- const y = [];
985
- return e.sort ? y.push("krds-form-select-sort") : y.push("krds-form-select"), e.size && y.push(e.size), e.class && y.push(e.class), y;
986
- }), t = (y) => {
987
- const C = y.target, S = C.value === "" ? null : C.value;
988
- n("update:modelValue", S);
989
- }, o = (y) => {
990
- n("focus", y);
991
- }, r = (y) => {
992
- n("blur", y);
993
- }, h = b(() => ({
922
+ emits: [
923
+ "update:modelValue",
924
+ "focus",
925
+ "blur"
926
+ ],
927
+ setup(e, { emit: a, slots: n }) {
928
+ const l = k(() => {
929
+ const g = [];
930
+ return e.sort ? g.push("krds-form-select-sort") : g.push("krds-form-select"), e.size && g.push(e.size), e.class && g.push(e.class), g;
931
+ }), s = (g) => {
932
+ const _ = g.target;
933
+ a("update:modelValue", _.value === "" ? null : _.value);
934
+ }, r = (g) => {
935
+ a("focus", g);
936
+ }, o = (g) => {
937
+ a("blur", g);
938
+ }, v = k(() => ({
994
939
  class: l.value,
995
940
  value: e.modelValue ?? "",
996
941
  title: e.title || e.placeholder,
997
942
  name: e.name,
998
943
  id: e.id,
999
944
  disabled: e.disabled || e.readonly,
1000
- onChange: t,
1001
- onFocus: o,
1002
- onBlur: r
1003
- })), u = b(() => {
1004
- const y = ["form-conts"];
1005
- return e.state !== "default" && y.push(`is-${e.state}`), y;
1006
- }), g = () => {
1007
- const y = [];
1008
- return e.placeholder && !e.modelValue && y.push(s("option", { value: "", disabled: !0, selected: !0 }, e.placeholder)), e.options && e.options.length > 0 && e.options.forEach((C) => {
1009
- y.push(
1010
- s(
1011
- "option",
1012
- {
1013
- value: C.value,
1014
- disabled: C.disabled,
1015
- selected: C.value === e.modelValue
1016
- },
1017
- C.label
1018
- )
1019
- );
1020
- }), a.default && y.push(...a.default()), y;
945
+ onChange: s,
946
+ onFocus: r,
947
+ onBlur: o
948
+ })), f = k(() => {
949
+ const g = ["form-conts"];
950
+ return e.state !== "default" && g.push(`is-${e.state}`), g;
951
+ }), b = () => {
952
+ const g = [];
953
+ return e.placeholder && !e.modelValue && g.push(t("option", {
954
+ value: "",
955
+ disabled: !0,
956
+ selected: !0
957
+ }, e.placeholder)), e.options && e.options.length > 0 && e.options.forEach((_) => {
958
+ g.push(t("option", {
959
+ value: _.value,
960
+ disabled: _.disabled,
961
+ selected: _.value === e.modelValue
962
+ }, _.label));
963
+ }), n.default && g.push(...n.default()), g;
1021
964
  };
1022
965
  return () => {
1023
- const y = s("select", h.value, g());
1024
- return e.sort ? y : s("div", { class: u.value }, [y]);
966
+ const g = t("select", v.value, b());
967
+ return e.sort ? g : t("div", { class: f.value }, [g]);
1025
968
  };
1026
969
  }
1027
- });
1028
- let pt = 0;
1029
- const yt = K({
970
+ }), xt = $t, Bt = 0, Lt = B({
1030
971
  name: "KrdsFileUpload",
1031
972
  props: {
1032
973
  modelValue: {
@@ -1048,7 +989,6 @@ const yt = K({
1048
989
  maxFileSize: {
1049
990
  type: Number,
1050
991
  default: 20 * 1024 * 1024
1051
- // 20MB
1052
992
  },
1053
993
  multiple: {
1054
994
  type: Boolean,
@@ -1090,7 +1030,6 @@ const yt = K({
1090
1030
  type: Boolean,
1091
1031
  default: !0
1092
1032
  },
1093
- // BaseFormProps에서 상속
1094
1033
  name: {
1095
1034
  type: String,
1096
1035
  default: void 0
@@ -1129,191 +1068,128 @@ const yt = K({
1129
1068
  "download",
1130
1069
  "preview"
1131
1070
  ],
1132
- setup(e, { emit: n }) {
1133
- const a = D(!1), l = D(null), t = e.id ? `${e.id}-input` : `krds-file-upload-${++pt}`, o = (p) => p < 1024 ? `${p}B` : p < 1024 * 1024 ? `${Math.round(p / 1024)}KB` : `${(p / (1024 * 1024)).toFixed(1)}MB`, r = (p) => {
1134
- const k = p.split(".");
1135
- return k.length > 1 ? k.pop().toLowerCase() : "";
1136
- }, h = (p) => {
1137
- const k = r(p.name), L = k ? p.name.slice(0, -(k.length + 1)) : p.name;
1138
- return k ? `${L} [${k}, ${o(p.size)}]` : `${p.name} [${o(p.size)}]`;
1139
- }, u = () => `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, g = (p) => {
1140
- if (e.maxFileSize && p.size > e.maxFileSize)
1141
- return `등록 가능한 파일 용량을 초과하였습니다.
1142
- ${o(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1071
+ setup(e, { emit: a }) {
1072
+ const n = L(!1), l = L(null), s = e.id ? `${e.id}-input` : `krds-file-upload-${++Bt}`, r = (y) => y < 1024 ? `${y}B` : y < 1024 * 1024 ? `${Math.round(y / 1024)}KB` : `${(y / (1024 * 1024)).toFixed(1)}MB`, o = (y) => {
1073
+ const K = y.split(".");
1074
+ return K.length > 1 ? K.pop().toLowerCase() : "";
1075
+ }, v = (y) => {
1076
+ const K = o(y.name), F = K ? y.name.slice(0, -(K.length + 1)) : y.name;
1077
+ return K ? `${F} [${K}, ${r(y.size)}]` : `${y.name} [${r(y.size)}]`;
1078
+ }, f = () => `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, b = (y) => {
1079
+ if (e.maxFileSize && y.size > e.maxFileSize) return `등록 가능한 파일 용량을 초과하였습니다.
1080
+ ${r(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1143
1081
  if (e.accept) {
1144
- const k = e.accept.split(",").map((A) => A.trim().toLowerCase()), L = `.${r(p.name)}`, P = p.type;
1145
- if (!k.some((A) => A.startsWith(".") ? L === A : A.endsWith("/*") ? P.startsWith(A.replace("/*", "/")) : P === A))
1146
- return "허용되지 않는 파일 형식입니다.";
1082
+ const K = e.accept.split(",").map((A) => A.trim().toLowerCase()), F = `.${o(y.name)}`, P = y.type;
1083
+ if (!K.some((A) => A.startsWith(".") ? F === A : A.endsWith("/*") ? P.startsWith(A.replace("/*", "/")) : P === A)) return "허용되지 않는 파일 형식입니다.";
1147
1084
  }
1148
1085
  return null;
1149
- }, y = (p) => {
1086
+ }, g = (y) => {
1150
1087
  if (e.disabled || e.readonly) return;
1151
- let k = [...e.modelValue || []];
1152
- !e.multiple && k.length > 0 && (k = []);
1153
- const L = [];
1154
- for (let P = 0; P < p.length && !(k.length + L.length >= e.maxFiles); P++) {
1155
- const A = p[P], W = g(A), N = {
1156
- id: u(),
1088
+ let K = [...e.modelValue || []];
1089
+ !e.multiple && K.length > 0 && (K = []);
1090
+ const F = [];
1091
+ for (let P = 0; P < y.length && !(K.length + F.length >= e.maxFiles); P++) {
1092
+ const A = y[P], j = b(A), O = {
1093
+ id: f(),
1157
1094
  file: A,
1158
1095
  name: A.name,
1159
1096
  size: A.size,
1160
1097
  type: A.type,
1161
- status: W ? "error" : "pending",
1162
- errorMessage: W || void 0
1098
+ status: j ? "error" : "pending",
1099
+ errorMessage: j || void 0
1163
1100
  };
1164
- L.push(N), W ? n("file-error", N, W) : n("file-added", N);
1101
+ F.push(O), j ? a("file-error", O, j) : a("file-added", O);
1165
1102
  }
1166
- L.length > 0 && n("update:modelValue", [...k, ...L]);
1167
- }, C = (p) => {
1168
- const k = p.target;
1169
- k.files?.length && (y(k.files), k.value = "");
1170
- }, S = (p) => {
1171
- e.disabled || e.readonly || !e.dragAndDrop || (p.preventDefault(), a.value = !0);
1103
+ F.length > 0 && a("update:modelValue", [...K, ...F]);
1104
+ }, _ = (y) => {
1105
+ const K = y.target;
1106
+ K.files?.length && (g(K.files), K.value = "");
1107
+ }, S = (y) => {
1108
+ e.disabled || e.readonly || !e.dragAndDrop || (y.preventDefault(), n.value = !0);
1172
1109
  }, V = () => {
1173
- a.value = !1;
1174
- }, m = (p) => {
1175
- p.preventDefault(), a.value = !1, !(e.disabled || e.readonly || !e.dragAndDrop) && p.dataTransfer?.files && y(p.dataTransfer.files);
1110
+ n.value = !1;
1111
+ }, d = (y) => {
1112
+ y.preventDefault(), n.value = !1, !(e.disabled || e.readonly || !e.dragAndDrop) && y.dataTransfer?.files && g(y.dataTransfer.files);
1176
1113
  }, i = () => {
1177
1114
  e.disabled || e.readonly || l.value?.click();
1178
- }, f = (p) => {
1179
- e.disabled || e.readonly || (n(
1180
- "update:modelValue",
1181
- (e.modelValue || []).filter((k) => k.id !== p)
1182
- ), n("file-removed", p));
1183
- }, d = () => {
1184
- e.disabled || e.readonly || (n("update:modelValue", []), n("clear-all"));
1185
- }, v = b(() => {
1186
- const p = ["krds-file-upload", "line"];
1187
- return e.class && p.push(e.class), p;
1188
- }), $ = () => s("div", { class: "file-head" }, [s("h3", { class: "tit" }, e.title), s("div", null, [s("p", null, e.description)])]), F = () => s(
1189
- "div",
1190
- {
1191
- class: "file-upload",
1192
- onDragover: S,
1193
- onDragleave: V,
1194
- onDrop: m
1195
- },
1196
- [
1197
- s("p", { class: "txt" }, e.placeholder),
1198
- s("div", { class: "file-upload-btn-wrap" }, [
1199
- s("input", {
1200
- ref: l,
1201
- type: "file",
1202
- name: e.name || "myFile",
1203
- id: t,
1204
- hidden: !0,
1205
- accept: e.accept || void 0,
1206
- multiple: e.multiple,
1207
- onChange: C
1208
- }),
1209
- s("label", { for: t }, [
1210
- s(
1211
- "button",
1212
- {
1213
- type: "button",
1214
- class: ["krds-btn", e.size],
1215
- disabled: e.disabled || void 0,
1216
- onClick: i
1217
- },
1218
- [s("i", { class: "svg-icon ico-upload" }), "파일선택"]
1219
- )
1220
- ])
1221
- ])
1222
- ]
1223
- ), T = (p) => {
1224
- const k = [];
1225
- return p.status === "uploading" ? k.push(s("span", { class: "krds-spinner", role: "status" }, [s("span", { class: "sr-only" }, "업로드 중")])) : p.downloadUrl ? (e.showDownload && k.push(
1226
- s(
1227
- "button",
1228
- {
1229
- type: "button",
1230
- class: "krds-btn medium text",
1231
- onClick: () => n("download", p)
1232
- },
1233
- ["다운로드 ", s("i", { class: "svg-icon ico-down" })]
1234
- )
1235
- ), e.showPreviewButton && k.push(
1236
- s(
1237
- "button",
1238
- {
1239
- type: "button",
1240
- class: "krds-btn medium text",
1241
- onClick: () => n("preview", p)
1242
- },
1243
- ["바로보기 ", s("i", { class: "svg-icon ico-angle right" })]
1244
- )
1245
- )) : p.status === "completed" ? k.push(s("span", { class: "ico-invalid complete" }, [s("em", { class: "sr-only" }, "업로드 완료")])) : e.readonly || k.push(
1246
- s(
1247
- "button",
1248
- {
1249
- type: "button",
1250
- class: "krds-btn medium text",
1251
- disabled: e.disabled || void 0,
1252
- onClick: () => f(p.id)
1253
- },
1254
- ["삭제 ", s("i", { class: "svg-icon ico-delete-fill" })]
1255
- )
1256
- ), k;
1257
- }, R = (p) => {
1258
- const k = [
1259
- s(
1260
- "div",
1261
- {
1262
- class: p.downloadUrl ? "file-info m-column" : "file-info"
1263
- },
1264
- [s("div", { class: "file-name" }, h(p)), s("div", { class: "btn-wrap" }, T(p))]
1265
- )
1266
- ];
1267
- if (p.status === "error" && p.errorMessage) {
1268
- const L = p.errorMessage.split(`
1115
+ }, c = (y) => {
1116
+ e.disabled || e.readonly || (a("update:modelValue", (e.modelValue || []).filter((K) => K.id !== y)), a("file-removed", y));
1117
+ }, u = () => {
1118
+ e.disabled || e.readonly || (a("update:modelValue", []), a("clear-all"));
1119
+ }, h = k(() => {
1120
+ const y = ["krds-file-upload", "line"];
1121
+ return e.class && y.push(e.class), y;
1122
+ }), m = () => t("div", { class: "file-head" }, [t("h3", { class: "tit" }, e.title), t("div", null, [t("p", null, e.description)])]), w = () => t("div", {
1123
+ class: "file-upload",
1124
+ onDragover: S,
1125
+ onDragleave: V,
1126
+ onDrop: d
1127
+ }, [t("p", { class: "txt" }, e.placeholder), t("div", { class: "file-upload-btn-wrap" }, [t("input", {
1128
+ ref: l,
1129
+ type: "file",
1130
+ name: e.name || "myFile",
1131
+ id: s,
1132
+ hidden: !0,
1133
+ accept: e.accept || void 0,
1134
+ multiple: e.multiple,
1135
+ onChange: _
1136
+ }), t("label", { for: s }, [t("button", {
1137
+ type: "button",
1138
+ class: ["krds-btn", e.size],
1139
+ disabled: e.disabled || void 0,
1140
+ onClick: i
1141
+ }, [t("i", { class: "svg-icon ico-upload" }), "파일선택"])])])]), C = (y) => {
1142
+ const K = [];
1143
+ return y.status === "uploading" ? K.push(t("span", {
1144
+ class: "krds-spinner",
1145
+ role: "status"
1146
+ }, [t("span", { class: "sr-only" }, "업로드 중")])) : y.downloadUrl ? (e.showDownload && K.push(t("button", {
1147
+ type: "button",
1148
+ class: "krds-btn medium text",
1149
+ onClick: () => a("download", y)
1150
+ }, ["다운로드 ", t("i", { class: "svg-icon ico-down" })])), e.showPreviewButton && K.push(t("button", {
1151
+ type: "button",
1152
+ class: "krds-btn medium text",
1153
+ onClick: () => a("preview", y)
1154
+ }, ["바로보기 ", t("i", { class: "svg-icon ico-angle right" })]))) : y.status === "completed" ? K.push(t("span", { class: "ico-invalid complete" }, [t("em", { class: "sr-only" }, "업로드 완료")])) : e.readonly || K.push(t("button", {
1155
+ type: "button",
1156
+ class: "krds-btn medium text",
1157
+ disabled: e.disabled || void 0,
1158
+ onClick: () => c(y.id)
1159
+ }, ["삭제 ", t("i", { class: "svg-icon ico-delete-fill" })])), K;
1160
+ }, x = (y) => {
1161
+ const K = [t("div", { class: y.downloadUrl ? "file-info m-column" : "file-info" }, [t("div", { class: "file-name" }, v(y)), t("div", { class: "btn-wrap" }, C(y))])];
1162
+ if (y.status === "error" && y.errorMessage) {
1163
+ const F = y.errorMessage.split(`
1269
1164
  `), P = [];
1270
- L.forEach((A, W) => {
1271
- W > 0 && P.push(s("br")), P.push(A);
1272
- }), k.push(s("p", { class: "file-hint-invalid" }, P));
1165
+ F.forEach((A, j) => {
1166
+ j > 0 && P.push(t("br")), P.push(A);
1167
+ }), K.push(t("p", { class: "file-hint-invalid" }, P));
1273
1168
  }
1274
- return s(
1275
- "li",
1276
- {
1277
- key: p.id,
1278
- class: p.status === "error" ? "is-error" : void 0
1279
- },
1280
- k
1281
- );
1282
- }, I = (p) => {
1283
- const k = p.filter((P) => P.status !== "error").length, L = [
1284
- s("div", { class: "total" }, [s("span", { class: "current" }, `${k}개`), ` / ${e.maxFiles}개`]),
1285
- s("ul", { class: "upload-list" }, p.map(R))
1286
- ];
1287
- return e.showClearAll && !e.readonly && L.push(
1288
- s("div", { class: "upload-delete-btn" }, [
1289
- s(
1290
- "button",
1291
- {
1292
- type: "button",
1293
- class: "krds-btn xsmall tertiary",
1294
- disabled: e.disabled || void 0,
1295
- onClick: d
1296
- },
1297
- ["전체 파일 삭제", s("i", { class: "svg-icon ico-angle right" })]
1298
- )
1299
- ])
1300
- ), s("div", { class: "file-list" }, L);
1169
+ return t("li", {
1170
+ key: y.id,
1171
+ class: y.status === "error" ? "is-error" : void 0
1172
+ }, K);
1173
+ }, $ = (y) => {
1174
+ const K = y.filter((P) => P.status !== "error").length, F = [t("div", { class: "total" }, [t("span", { class: "current" }, `${K}개`), ` / ${e.maxFiles}개`]), t("ul", { class: "upload-list" }, y.map(x))];
1175
+ return e.showClearAll && !e.readonly && F.push(t("div", { class: "upload-delete-btn" }, [t("button", {
1176
+ type: "button",
1177
+ class: "krds-btn xsmall tertiary",
1178
+ disabled: e.disabled || void 0,
1179
+ onClick: u
1180
+ }, ["전체 파일 삭제", t("i", { class: "svg-icon ico-angle right" })])])), t("div", { class: "file-list" }, F);
1301
1181
  };
1302
1182
  return () => {
1303
- const p = [$()];
1304
- e.readonly || p.push(F());
1305
- const k = e.modelValue || [];
1306
- return k.length > 0 && p.push(I(k)), s(
1307
- "div",
1308
- {
1309
- class: v.value,
1310
- style: e.style || void 0
1311
- },
1312
- p
1313
- );
1183
+ const y = [m()];
1184
+ e.readonly || y.push(w());
1185
+ const K = e.modelValue || [];
1186
+ return K.length > 0 && y.push($(K)), t("div", {
1187
+ class: h.value,
1188
+ style: e.style || void 0
1189
+ }, y);
1314
1190
  };
1315
1191
  }
1316
- }), gt = K({
1192
+ }), Dt = Lt, Tt = B({
1317
1193
  name: "KrdsBadge",
1318
1194
  props: {
1319
1195
  type: {
@@ -1338,27 +1214,23 @@ ${o(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1338
1214
  }
1339
1215
  },
1340
1216
  emits: ["click"],
1341
- setup(e, { emit: n, slots: a }) {
1342
- const l = b(() => {
1343
- const o = ["krds-badge"];
1344
- return o.push(`${e.type}-${e.color}`), e.size && o.push(e.size), e.number && o.push("number"), e.class && o.push(e.class), o;
1345
- }), t = (o) => {
1346
- n("click", o);
1217
+ setup(e, { emit: a, slots: n }) {
1218
+ const l = k(() => {
1219
+ const r = ["krds-badge"];
1220
+ return r.push(`${e.type}-${e.color}`), e.size && r.push(e.size), e.number && r.push("number"), e.class && r.push(e.class), r;
1221
+ }), s = (r) => {
1222
+ a("click", r);
1347
1223
  };
1348
- return () => s(
1349
- "span",
1350
- {
1351
- type: e.type,
1352
- color: e.color,
1353
- size: e.size,
1354
- number: e.number,
1355
- class: l.value,
1356
- onClick: t
1357
- },
1358
- a.default?.()
1359
- );
1224
+ return () => t("span", {
1225
+ type: e.type,
1226
+ color: e.color,
1227
+ size: e.size,
1228
+ number: e.number,
1229
+ class: l.value,
1230
+ onClick: s
1231
+ }, n.default?.());
1360
1232
  }
1361
- }), bt = K({
1233
+ }), Vt = Tt, zt = B({
1362
1234
  name: "KrdsTag",
1363
1235
  props: {
1364
1236
  link: {
@@ -1383,40 +1255,30 @@ ${o(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1383
1255
  }
1384
1256
  },
1385
1257
  emits: ["remove"],
1386
- setup(e, { emit: n, slots: a }) {
1387
- const l = b(() => {
1388
- const r = ["krds-btn-tag"];
1389
- return e.link && r.push("link"), e.class && r.push(e.class), r;
1390
- }), t = (r) => {
1391
- n("remove", r);
1392
- }, o = () => s(
1393
- "button",
1394
- {
1395
- type: "button",
1396
- class: "btn-delete",
1397
- onClick: t
1398
- },
1399
- [s("span", { class: "sr-only" }, "삭제")]
1400
- );
1258
+ setup(e, { emit: a, slots: n }) {
1259
+ const l = k(() => {
1260
+ const o = ["krds-btn-tag"];
1261
+ return e.link && o.push("link"), e.class && o.push(e.class), o;
1262
+ }), s = (o) => {
1263
+ a("remove", o);
1264
+ }, r = () => t("button", {
1265
+ type: "button",
1266
+ class: "btn-delete",
1267
+ onClick: s
1268
+ }, [t("span", { class: "sr-only" }, "삭제")]);
1401
1269
  return () => {
1402
- const r = [], h = a.default?.();
1403
- if (h && r.push(h), e.link || r.push(o()), e.link) {
1404
- const u = {
1270
+ const o = [], v = n.default?.();
1271
+ if (v && o.push(v), e.link || o.push(r()), e.link) {
1272
+ const f = {
1405
1273
  href: e.href,
1406
1274
  class: l.value
1407
1275
  };
1408
- return e.target && (u.target = e.target), e.rel && (u.rel = e.rel), s("a", u, r);
1276
+ return e.target && (f.target = e.target), e.rel && (f.rel = e.rel), t("a", f, o);
1409
1277
  }
1410
- return s(
1411
- "span",
1412
- {
1413
- class: l.value
1414
- },
1415
- r
1416
- );
1278
+ return t("span", { class: l.value }, o);
1417
1279
  };
1418
1280
  }
1419
- }), kt = K({
1281
+ }), It = zt, Et = B({
1420
1282
  name: "KrdsTagGroup",
1421
1283
  props: {
1422
1284
  size: {
@@ -1428,62 +1290,44 @@ ${o(e.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;
1428
1290
  default: void 0
1429
1291
  }
1430
1292
  },
1431
- setup(e, { slots: n }) {
1432
- const a = b(() => {
1293
+ setup(e, { slots: a }) {
1294
+ const n = k(() => {
1433
1295
  const l = ["krds-tag-wrap"];
1434
1296
  return e.size && l.push(e.size), e.class && l.push(e.class), l;
1435
1297
  });
1436
- return () => s(
1437
- "div",
1438
- {
1439
- class: a.value
1440
- },
1441
- n.default?.()
1442
- );
1298
+ return () => t("div", { class: n.value }, a.default?.());
1443
1299
  }
1444
- }), St = K({
1300
+ }), Ft = Et, Mt = B({
1445
1301
  name: "KrdsMasthead",
1446
- props: {
1447
- class: {
1448
- type: String,
1449
- default: void 0
1450
- }
1451
- },
1302
+ props: { class: {
1303
+ type: String,
1304
+ default: void 0
1305
+ } },
1452
1306
  emits: ["click"],
1453
- setup(e, { emit: n, slots: a }) {
1454
- const l = b(() => {
1455
- const o = [""];
1456
- return e.class && o.push(e.class), o;
1457
- }), t = (o) => {
1458
- n("click", o);
1307
+ setup(e, { emit: a, slots: n }) {
1308
+ const l = k(() => {
1309
+ const r = [""];
1310
+ return e.class && r.push(e.class), r;
1311
+ }), s = (r) => {
1312
+ a("click", r);
1459
1313
  };
1460
- return () => s(
1461
- "div",
1462
- {
1463
- id: "krds-masthead",
1464
- class: l.value,
1465
- onClick: t
1466
- },
1467
- [
1468
- s("div", { class: "toggle-wrap" }, [
1469
- s("div", { class: "toggle-head" }, [s("div", { class: "inner" }, [s("span", { class: "nuri-txt" }, a.default?.())])])
1470
- ])
1471
- ]
1472
- );
1314
+ return () => t("div", {
1315
+ id: "krds-masthead",
1316
+ class: l.value,
1317
+ onClick: s
1318
+ }, [t("div", { class: "toggle-wrap" }, [t("div", { class: "toggle-head" }, [t("div", { class: "inner" }, [t("span", { class: "nuri-txt" }, n.default?.())])])])]);
1473
1319
  }
1474
- });
1475
- let wt = 0;
1476
- function ue(e = "krds") {
1477
- return `${e}-${++wt}`;
1320
+ }), At = Mt, Rt = 0;
1321
+ function Gl(e = "krds") {
1322
+ return `${e}-${++Rt}`;
1478
1323
  }
1479
- function El() {
1480
- const e = Date.now().toString(36).slice(-4), n = Math.random().toString(36).substring(2, 5);
1481
- return `${e}${n}`;
1324
+ function Yl() {
1325
+ return `${Date.now().toString(36).slice(-4)}${Math.random().toString(36).substring(2, 5)}`;
1482
1326
  }
1483
- function fe(...e) {
1327
+ function ve(...e) {
1484
1328
  return e.filter(Boolean).join(" ");
1485
1329
  }
1486
- const Ct = K({
1330
+ var Pt = B({
1487
1331
  name: "KrdsToggleSwitch",
1488
1332
  props: {
1489
1333
  modelValue: {
@@ -1525,48 +1369,23 @@ const Ct = K({
1525
1369
  }
1526
1370
  },
1527
1371
  emits: ["update:modelValue", "change"],
1528
- setup(e, { emit: n, attrs: a }) {
1529
- const l = b(() => e.modelValue), t = b(() => fe("krds-form-toggle-switch", e.size, e.class)), o = (h) => {
1530
- if (e.disabled)
1531
- return;
1532
- const g = h.target.checked;
1533
- n("update:modelValue", g), n("change", g);
1534
- }, r = b(() => e.id || ue("toggle-switch"));
1535
- return () => s(
1536
- "div",
1537
- {
1538
- class: t.value
1539
- },
1540
- [
1541
- s("input", {
1542
- type: "checkbox",
1543
- id: r.value,
1544
- name: e.name,
1545
- checked: l.value,
1546
- disabled: e.disabled,
1547
- onChange: o,
1548
- ...a
1549
- }),
1550
- s(
1551
- "label",
1552
- {
1553
- for: r.value
1554
- },
1555
- [
1556
- s(
1557
- "span",
1558
- {
1559
- class: "switch-toggle"
1560
- },
1561
- [s("i")]
1562
- ),
1563
- e.label || ""
1564
- ]
1565
- )
1566
- ]
1567
- );
1372
+ setup(e, { emit: a, attrs: n }) {
1373
+ const l = `toggle-switch-${ae()}`, s = k(() => e.modelValue), r = k(() => ve("krds-form-toggle-switch", e.size, e.class)), o = (f) => {
1374
+ if (e.disabled) return;
1375
+ const b = f.target.checked;
1376
+ a("update:modelValue", b), a("change", b);
1377
+ }, v = k(() => e.id || l);
1378
+ return () => t("div", { class: r.value }, [t("input", {
1379
+ type: "checkbox",
1380
+ id: v.value,
1381
+ name: e.name,
1382
+ checked: s.value,
1383
+ disabled: e.disabled,
1384
+ onChange: o,
1385
+ ...n
1386
+ }), t("label", { for: v.value }, [t("span", { class: "switch-toggle" }, [t("i")]), e.label || ""])]);
1568
1387
  }
1569
- }), xt = K({
1388
+ }), Ht = Pt, qt = B({
1570
1389
  name: "KrdsCheckArea",
1571
1390
  props: {
1572
1391
  class: {
@@ -1578,19 +1397,13 @@ const Ct = K({
1578
1397
  default: !1
1579
1398
  }
1580
1399
  },
1581
- setup(e, { slots: n }) {
1400
+ setup(e, { slots: a }) {
1582
1401
  return () => {
1583
- const a = ["krds-check-area"];
1584
- return e.column && a.push("chk-column"), e.class && a.push(e.class), s(
1585
- "div",
1586
- {
1587
- class: a
1588
- },
1589
- n.default?.()
1590
- );
1402
+ const n = ["krds-check-area"];
1403
+ return e.column && n.push("chk-column"), e.class && n.push(e.class), t("div", { class: n }, a.default?.());
1591
1404
  };
1592
1405
  }
1593
- }), $t = K({
1406
+ }), Ot = qt, Nt = B({
1594
1407
  name: "KrdsCheckbox",
1595
1408
  props: {
1596
1409
  modelValue: {
@@ -1621,52 +1434,41 @@ const Ct = K({
1621
1434
  },
1622
1435
  emits: ["update:modelValue"],
1623
1436
  slots: Object,
1624
- setup(e, { emit: n, attrs: a, slots: l }) {
1625
- const t = b(() => e.modelValue), o = b(() => {
1626
- const u = e.chip ? "krds-form-chip" : "krds-form-check";
1627
- return fe(u, e.size, e.class);
1628
- }), r = (u) => {
1629
- if (e.disabled)
1630
- return;
1631
- const y = u.target.checked;
1632
- n("update:modelValue", y);
1633
- }, h = b(() => e.id || ue("checkbox"));
1437
+ setup(e, { emit: a, attrs: n, slots: l }) {
1438
+ const s = `checkbox-${ae()}`, r = k(() => e.modelValue), o = k(() => ve(e.chip ? "krds-form-chip" : "krds-form-check", e.size, e.class)), v = (b) => {
1439
+ if (e.disabled) return;
1440
+ const g = b.target.checked;
1441
+ a("update:modelValue", g);
1442
+ }, f = k(() => e.id || s);
1634
1443
  return () => {
1635
- const u = [
1636
- s("input", {
1637
- type: "checkbox",
1638
- id: h.value,
1639
- checked: t.value,
1640
- disabled: e.disabled,
1641
- onChange: r,
1642
- ...a
1643
- }),
1644
- s(
1645
- "label",
1646
- {
1647
- for: h.value
1648
- },
1649
- l.default?.()
1650
- )
1651
- ];
1652
- return l.description && !e.chip && u.push(s("div", { class: "krds-form-check-cnt" }, s("p", { class: "krds-form-check-p" }, l.description()))), s(
1653
- "div",
1654
- {
1655
- class: o.value
1656
- },
1657
- u
1658
- );
1444
+ const b = [t("input", {
1445
+ type: "checkbox",
1446
+ id: f.value,
1447
+ checked: r.value,
1448
+ disabled: e.disabled,
1449
+ onChange: v,
1450
+ ...n
1451
+ }), t("label", { for: f.value }, l.default?.())];
1452
+ return l.description && !e.chip && b.push(t("div", { class: "krds-form-check-cnt" }, t("p", { class: "krds-form-check-p" }, l.description()))), t("div", { class: o.value }, b);
1659
1453
  };
1660
1454
  }
1661
- }), Bt = K({
1455
+ }), jt = Nt, Wt = B({
1662
1456
  name: "KrdsRadio",
1663
1457
  props: {
1664
1458
  modelValue: {
1665
- type: [String, Number, Boolean],
1459
+ type: [
1460
+ String,
1461
+ Number,
1462
+ Boolean
1463
+ ],
1666
1464
  default: void 0
1667
1465
  },
1668
1466
  value: {
1669
- type: [String, Number, Boolean],
1467
+ type: [
1468
+ String,
1469
+ Number,
1470
+ Boolean
1471
+ ],
1670
1472
  required: !0
1671
1473
  },
1672
1474
  disabled: {
@@ -1697,45 +1499,25 @@ const Ct = K({
1697
1499
  },
1698
1500
  emits: ["update:modelValue"],
1699
1501
  slots: Object,
1700
- setup(e, { emit: n, attrs: a, slots: l }) {
1701
- const t = b(() => e.modelValue === e.value), o = b(() => {
1702
- const g = e.chip ? "krds-form-chip" : "krds-form-check";
1703
- return fe(g, e.size, e.class);
1704
- }), r = (g) => {
1705
- if (e.disabled)
1706
- return;
1707
- g.target.checked && n("update:modelValue", e.value);
1708
- }, h = b(() => e.id || ue("radio")), u = b(() => e.name);
1502
+ setup(e, { emit: a, attrs: n, slots: l }) {
1503
+ const s = `radio-${ae()}`, r = k(() => e.modelValue === e.value), o = k(() => ve(e.chip ? "krds-form-chip" : "krds-form-check", e.size, e.class)), v = (g) => {
1504
+ e.disabled || g.target.checked && a("update:modelValue", e.value);
1505
+ }, f = k(() => e.id || s), b = k(() => e.name);
1709
1506
  return () => {
1710
- const g = [
1711
- s("input", {
1712
- type: "radio",
1713
- id: h.value,
1714
- name: u.value,
1715
- value: String(e.value),
1716
- checked: t.value,
1717
- disabled: e.disabled,
1718
- onChange: r,
1719
- ...a
1720
- }),
1721
- s(
1722
- "label",
1723
- {
1724
- for: h.value
1725
- },
1726
- l.default?.()
1727
- )
1728
- ];
1729
- return l.description && !e.chip && g.push(s("div", { class: "krds-form-check-cnt" }, s("p", { class: "krds-form-check-p" }, l.description()))), s(
1730
- "div",
1731
- {
1732
- class: o.value
1733
- },
1734
- g
1735
- );
1507
+ const g = [t("input", {
1508
+ type: "radio",
1509
+ id: f.value,
1510
+ name: b.value,
1511
+ value: String(e.value),
1512
+ checked: r.value,
1513
+ disabled: e.disabled,
1514
+ onChange: v,
1515
+ ...n
1516
+ }), t("label", { for: f.value }, l.default?.())];
1517
+ return l.description && !e.chip && g.push(t("div", { class: "krds-form-check-cnt" }, t("p", { class: "krds-form-check-p" }, l.description()))), t("div", { class: o.value }, g);
1736
1518
  };
1737
1519
  }
1738
- }), Kt = K({
1520
+ }), Gt = Wt, Yt = Ce, Ut = B({
1739
1521
  name: "KrdsStepIndicator",
1740
1522
  props: {
1741
1523
  modelValue: {
@@ -1748,30 +1530,24 @@ const Ct = K({
1748
1530
  }
1749
1531
  },
1750
1532
  emits: ["update:modelValue"],
1751
- setup(e, { slots: n }) {
1752
- const a = b(() => {
1753
- const h = ["krds-step-wrap"];
1754
- return e.class && h.push(e.class), h;
1755
- }), l = (h) => {
1756
- const u = e.modelValue || 0;
1757
- return h < u ? "done" : h === u ? "active" : "pending";
1758
- }, t = D(0), o = () => {
1759
- t.value = 0;
1760
- }, r = () => t.value++;
1761
- return ze("stepIndicator", {
1762
- activeStep: b(() => e.modelValue || 0),
1533
+ setup(e, { slots: a }) {
1534
+ const n = k(() => {
1535
+ const v = ["krds-step-wrap"];
1536
+ return e.class && v.push(e.class), v;
1537
+ }), l = (v) => {
1538
+ const f = e.modelValue || 0;
1539
+ return v < f ? "done" : v === f ? "active" : "pending";
1540
+ }, s = L(0), r = () => {
1541
+ s.value = 0;
1542
+ }, o = () => s.value++;
1543
+ return Fe("stepIndicator", {
1544
+ activeStep: k(() => e.modelValue || 0),
1763
1545
  getStepStatus: l,
1764
- getNextStepIndex: r,
1765
- resetStepIndex: o
1766
- }), () => (o(), s(
1767
- "ol",
1768
- {
1769
- class: a.value
1770
- },
1771
- n.default?.()
1772
- ));
1546
+ getNextStepIndex: o,
1547
+ resetStepIndex: r
1548
+ }), () => (r(), t("ol", { class: n.value }, a.default?.()));
1773
1549
  }
1774
- }), _t = K({
1550
+ }), Xt = Ut, Jt = B({
1775
1551
  name: "KrdsStep",
1776
1552
  props: {
1777
1553
  step: {
@@ -1792,117 +1568,88 @@ const Ct = K({
1792
1568
  }
1793
1569
  },
1794
1570
  emits: ["click"],
1795
- setup(e, { emit: n, slots: a }) {
1796
- const l = Ve("stepIndicator"), t = l ? l.getNextStepIndex() : -1, o = b(() => e.status ? e.status : l && t >= 0 ? l.getStepStatus(t) : "pending"), r = b(() => {
1797
- const u = [o.value];
1798
- return e.class && u.push(e.class), u;
1799
- }), h = (u) => {
1800
- n("click", u, e.step);
1571
+ setup(e, { emit: a, slots: n }) {
1572
+ const l = Ee("stepIndicator"), s = l ? l.getNextStepIndex() : -1, r = k(() => e.status ? e.status : l && s >= 0 ? l.getStepStatus(s) : "pending"), o = k(() => {
1573
+ const f = [r.value];
1574
+ return e.class && f.push(e.class), f;
1575
+ }), v = (f) => {
1576
+ a("click", f, e.step);
1801
1577
  };
1802
1578
  return () => {
1803
- const u = o.value === "active";
1804
- return s(
1805
- "li",
1806
- {
1807
- class: r.value,
1808
- onClick: h
1809
- },
1810
- [
1811
- s("span", [
1812
- // 현재 단계 표시 (활성 상태일 때만)
1813
- u && s("em", { class: "sr-only" }, "현재단계"),
1814
- // 단계 번호
1815
- s("i", { class: "step" }, e.step),
1816
- // 단계 제목
1817
- s("span", { class: "step-tit" }, e.title),
1818
- // 슬롯 내용 (추가 콘텐츠가 있는 경우)
1819
- a.default?.()
1820
- ])
1821
- ]
1822
- );
1579
+ const f = r.value === "active";
1580
+ return t("li", {
1581
+ class: o.value,
1582
+ onClick: v
1583
+ }, [t("span", [
1584
+ f && t("em", { class: "sr-only" }, "현재단계"),
1585
+ t("i", { class: "step" }, e.step),
1586
+ t("span", { class: "step-tit" }, e.title),
1587
+ n.default?.()
1588
+ ])]);
1823
1589
  };
1824
1590
  }
1825
- }), Dt = K({
1591
+ }), Qt = Jt, Zt = B({
1826
1592
  name: "KrdsSkipLink",
1827
1593
  props: {
1828
- /**
1829
- * 건너뛸 대상 요소의 ID
1830
- * @example '#main-content', '#breadcrumb'
1831
- */
1832
1594
  href: {
1833
1595
  type: String,
1834
1596
  required: !0,
1835
1597
  validator: (e) => e.startsWith("#")
1836
1598
  },
1837
- /**
1838
- * 추가 CSS 클래스
1839
- */
1840
1599
  class: {
1841
- type: [String, Array, Object],
1600
+ type: [
1601
+ String,
1602
+ Array,
1603
+ Object
1604
+ ],
1842
1605
  default: void 0
1843
1606
  },
1844
- /**
1845
- * 요소 ID
1846
- */
1847
1607
  id: {
1848
1608
  type: String,
1849
1609
  default: "krds-skip-link"
1850
1610
  }
1851
1611
  },
1852
- setup(e, { slots: n }) {
1853
- return () => s(
1854
- "div",
1855
- {
1856
- id: e.id,
1857
- class: e.class
1858
- },
1859
- [
1860
- s(
1861
- "a",
1862
- {
1863
- href: e.href
1864
- },
1865
- n.default?.()
1866
- )
1867
- ]
1868
- );
1612
+ setup(e, { slots: a }) {
1613
+ return () => t("div", {
1614
+ id: e.id,
1615
+ class: e.class
1616
+ }, [t("a", { href: e.href }, a.default?.())]);
1869
1617
  }
1870
- }), zt = ["id", "aria-label"], Vt = { class: "breadcrumb" }, It = ["href", "aria-current", "onClick"], Et = { key: 0 }, Lt = /* @__PURE__ */ K({
1618
+ }), ea = Zt, ta = ["id", "aria-label"], aa = { class: "breadcrumb" }, la = [
1619
+ "href",
1620
+ "aria-current",
1621
+ "onClick"
1622
+ ], sa = { key: 0 }, na = /* @__PURE__ */ B({
1871
1623
  __name: "KrdsBreadcrumb",
1872
1624
  props: {
1873
1625
  items: {},
1874
1626
  id: { default: void 0 },
1875
1627
  ariaLabel: { default: "현재 경로" },
1876
- showHomeIcon: { type: Boolean, default: !0 }
1628
+ showHomeIcon: {
1629
+ type: Boolean,
1630
+ default: !0
1631
+ }
1877
1632
  },
1878
1633
  emits: ["item-click"],
1879
- setup(e, { emit: n }) {
1880
- const a = e, l = n, t = (r) => r === a.items.length - 1, o = (r, h) => {
1881
- r.onClick && r.onClick(h), l("item-click", r, h);
1634
+ setup(e, { emit: a }) {
1635
+ const n = e, l = a, s = (o) => o === n.items.length - 1, r = (o, v) => {
1636
+ o.onClick && o.onClick(v), l("item-click", o, v);
1882
1637
  };
1883
- return (r, h) => (w(), x("nav", {
1638
+ return (o, v) => (D(), T("nav", {
1884
1639
  id: e.id,
1885
1640
  class: "krds-breadcrumb-wrap",
1886
1641
  "aria-label": e.ariaLabel
1887
- }, [
1888
- c("ol", Vt, [
1889
- (w(!0), x(j, null, G(e.items, (u, g) => (w(), x("li", {
1890
- key: `breadcrumb-${g}`,
1891
- class: M({ home: g === 0 && e.showHomeIcon })
1892
- }, [
1893
- c("a", {
1894
- href: u.href || "#",
1895
- class: "txt",
1896
- "aria-current": t(g) ? "page" : void 0,
1897
- onClick: (y) => o(u, y)
1898
- }, [
1899
- g === 0 && e.showHomeIcon ? X("", !0) : (w(), x("span", Et, E(u.text), 1))
1900
- ], 8, It)
1901
- ], 2))), 128))
1902
- ])
1903
- ], 8, zt));
1642
+ }, [p("ol", aa, [(D(!0), T(W, null, Y(e.items, (f, b) => (D(), T("li", {
1643
+ key: `breadcrumb-${b}`,
1644
+ class: R({ home: b === 0 && e.showHomeIcon })
1645
+ }, [p("a", {
1646
+ href: f.href || "#",
1647
+ class: "txt",
1648
+ "aria-current": s(b) ? "page" : void 0,
1649
+ onClick: (g) => r(f, g)
1650
+ }, [b === 0 && e.showHomeIcon ? X("", !0) : (D(), T("span", sa, M(f.text), 1))], 8, la)], 2))), 128))])], 8, ta));
1904
1651
  }
1905
- }), Mt = K({
1652
+ }), ra = na, ia = ra, oa = B({
1906
1653
  name: "KrdsInPageNavigation",
1907
1654
  props: {
1908
1655
  title: {
@@ -1936,107 +1683,97 @@ const Ct = K({
1936
1683
  },
1937
1684
  emits: ["itemClick"],
1938
1685
  slots: Object,
1939
- setup(e, { emit: n, slots: a }) {
1940
- const l = D(""), t = D(/* @__PURE__ */ new Map()), o = b(() => {
1941
- const m = ["krds-in-page-navigation-type"];
1942
- return e.class && m.push(e.class), m;
1943
- }), r = () => {
1944
- const m = e.headerTopSelector, i = e.headerInnerSelector, f = document.querySelector(m)?.clientHeight || 0, d = document.querySelector(i)?.clientHeight || 0;
1945
- return f + d;
1946
- }, h = (m, i) => {
1947
- if (n("itemClick", m, i), m.href.startsWith("#")) {
1686
+ setup(e, { emit: a, slots: n }) {
1687
+ const l = L(""), s = L(/* @__PURE__ */ new Map()), r = k(() => {
1688
+ const d = ["krds-in-page-navigation-type"];
1689
+ return e.class && d.push(e.class), d;
1690
+ }), o = () => {
1691
+ const d = e.headerTopSelector, i = e.headerInnerSelector;
1692
+ return (document.querySelector(d)?.clientHeight || 0) + (document.querySelector(i)?.clientHeight || 0);
1693
+ }, v = (d, i) => {
1694
+ if (a("itemClick", d, i), d.href.startsWith("#")) {
1948
1695
  i.preventDefault();
1949
- const f = document.querySelector(m.href);
1950
- if (f) {
1951
- const d = r();
1696
+ const c = document.querySelector(d.href);
1697
+ if (c) {
1698
+ const u = o();
1952
1699
  if (window.scrollTo({
1953
1700
  left: 0,
1954
- top: f.getBoundingClientRect().top + window.scrollY - d,
1701
+ top: c.getBoundingClientRect().top + window.scrollY - u,
1955
1702
  behavior: "smooth"
1956
- }), l.value = m.href, i instanceof KeyboardEvent) {
1957
- const v = f.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");
1958
- v && v instanceof HTMLElement && (v.setAttribute("tabindex", "-1"), v.focus({ preventScroll: !0 }));
1703
+ }), l.value = d.href, i instanceof KeyboardEvent) {
1704
+ const h = c.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");
1705
+ h && h instanceof HTMLElement && (h.setAttribute("tabindex", "-1"), h.focus({ preventScroll: !0 }));
1959
1706
  }
1960
1707
  }
1961
1708
  }
1962
- }, u = () => {
1963
- t.value.clear(), e.items && e.items.filter((m) => m.href.startsWith("#")).forEach((m) => {
1964
- const i = document.querySelector(m.href);
1965
- i && t.value.set(m.href, i);
1709
+ }, f = () => {
1710
+ s.value.clear(), e.items && e.items.filter((d) => d.href.startsWith("#")).forEach((d) => {
1711
+ const i = document.querySelector(d.href);
1712
+ i && s.value.set(d.href, i);
1966
1713
  });
1967
- }, g = () => {
1968
- if (!e.autoActive || !e.items || t.value.size === 0) return;
1969
- const m = window.innerHeight, i = Math.ceil(m / 5), f = window.scrollY + m, d = document.body.scrollHeight, v = e.items.filter((I) => I.href.startsWith("#") && t.value.has(I.href)).map((I) => ({
1970
- href: I.href,
1971
- element: t.value.get(I.href),
1972
- item: I
1714
+ }, b = () => {
1715
+ if (!e.autoActive || !e.items || s.value.size === 0) return;
1716
+ const d = window.innerHeight, i = Math.ceil(d / 5), c = window.scrollY + d, u = document.body.scrollHeight, h = e.items.filter(($) => $.href.startsWith("#") && s.value.has($.href)).map(($) => ({
1717
+ href: $.href,
1718
+ element: s.value.get($.href),
1719
+ item: $
1973
1720
  }));
1974
- if (v.length === 0) return;
1975
- const $ = v[0], F = v[v.length - 1], T = $.element.offsetTop;
1976
- let R = "";
1977
- if (f >= d)
1978
- R = F.href;
1979
- else if (window.scrollY <= T)
1980
- R = $.href;
1981
- else
1982
- for (const I of v) {
1983
- const p = I.element.offsetHeight, k = I.element.offsetTop - i;
1984
- if (window.scrollY > k && window.scrollY <= k + p) {
1985
- R = I.href;
1986
- break;
1987
- }
1721
+ if (h.length === 0) return;
1722
+ const m = h[0], w = h[h.length - 1], C = m.element.offsetTop;
1723
+ let x = "";
1724
+ if (c >= u) x = w.href;
1725
+ else if (window.scrollY <= C) x = m.href;
1726
+ else for (const $ of h) {
1727
+ const y = $.element.offsetHeight, K = $.element.offsetTop - i;
1728
+ if (window.scrollY > K && window.scrollY <= K + y) {
1729
+ x = $.href;
1730
+ break;
1988
1731
  }
1989
- R && R !== l.value && (l.value = R);
1990
- }, y = () => {
1732
+ }
1733
+ x && x !== l.value && (l.value = x);
1734
+ }, g = () => {
1991
1735
  if (!e.items) return;
1992
- const m = e.items.find((i) => i.active);
1993
- m ? l.value = m.href : e.items.length > 0 && (l.value = e.items[0].href);
1736
+ const d = e.items.find((i) => i.active);
1737
+ d ? l.value = d.href : e.items.length > 0 && (l.value = e.items[0].href);
1994
1738
  };
1995
- ae(() => {
1996
- if (y(), e.autoActive) {
1997
- u(), g(), window.addEventListener("scroll", g, { passive: !0 });
1998
- const m = new MutationObserver(() => {
1999
- u();
1739
+ te(() => {
1740
+ if (g(), e.autoActive) {
1741
+ f(), b(), window.addEventListener("scroll", b, { passive: !0 });
1742
+ const d = new MutationObserver(() => {
1743
+ f();
2000
1744
  });
2001
- m.observe(document.body, {
1745
+ d.observe(document.body, {
2002
1746
  childList: !0,
2003
1747
  subtree: !0
2004
1748
  }), Z(() => {
2005
- m.disconnect();
1749
+ d.disconnect();
2006
1750
  });
2007
1751
  }
2008
1752
  }), Z(() => {
2009
- e.autoActive && (window.removeEventListener("scroll", g), t.value.clear());
1753
+ e.autoActive && (window.removeEventListener("scroll", b), s.value.clear());
2010
1754
  });
2011
- const C = () => !e.caption && !e.title ? null : s("div", { class: "in-page-navigation-header" }, [
2012
- e.caption && s("p", { class: "quick-caption" }, e.caption),
2013
- e.title && s("p", { class: "quick-title" }, e.title)
2014
- ]), S = () => {
2015
- if (!e.items) return null;
2016
- const m = e.items.map((i) => {
2017
- const f = l.value === i.href || !e.autoActive && i.active;
2018
- return s("li", { key: i.href }, [
2019
- s(
2020
- "a",
2021
- {
2022
- href: i.href,
2023
- class: f ? "active" : "",
2024
- onClick: (d) => h(i, d),
2025
- onKeydown: (d) => {
2026
- (d.key === "Enter" || d.key === " ") && (d.preventDefault(), h(i, d));
2027
- }
2028
- },
2029
- i.text
2030
- )
2031
- ]);
2032
- });
2033
- return s("nav", { class: "in-page-navigation-list" }, [s("ul", {}, m)]);
2034
- }, V = () => a.action ? s("div", { class: "in-page-navigation-action" }, [a.action()]) : null;
2035
- return () => s("div", { class: o.value }, [
2036
- s("div", { class: "krds-in-page-navigation-area" }, [C(), S(), V()].filter(Boolean))
2037
- ]);
1755
+ const _ = () => !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 = () => e.items ? t("nav", { class: "in-page-navigation-list" }, [t("ul", {}, e.items.map((d) => {
1756
+ const i = l.value === d.href || !e.autoActive && d.active;
1757
+ return t("li", { key: d.href }, [t("a", {
1758
+ href: d.href,
1759
+ class: i ? "active" : "",
1760
+ onClick: (c) => v(d, c),
1761
+ onKeydown: (c) => {
1762
+ (c.key === "Enter" || c.key === " ") && (c.preventDefault(), v(d, c));
1763
+ }
1764
+ }, d.text)]);
1765
+ }))]) : null, V = () => n.action ? t("div", { class: "in-page-navigation-action" }, [n.action()]) : null;
1766
+ return () => t("div", { class: r.value }, [t("div", { class: "krds-in-page-navigation-area" }, [
1767
+ _(),
1768
+ S(),
1769
+ V()
1770
+ ].filter(Boolean))]);
2038
1771
  }
2039
- }), Tt = ["id"], Rt = { class: "page-links" }, At = ["href", "aria-current", "onClick"], Ft = { key: 0 }, Pt = ["aria-label"], Ot = /* @__PURE__ */ K({
1772
+ }), da = oa, ua = ["id"], ca = { class: "page-links" }, fa = [
1773
+ "href",
1774
+ "aria-current",
1775
+ "onClick"
1776
+ ], va = { key: 0 }, pa = ["aria-label"], ha = /* @__PURE__ */ B({
2040
1777
  __name: "KrdsPagination",
2041
1778
  props: {
2042
1779
  modelValue: { default: 1 },
@@ -2047,184 +1784,154 @@ const Ct = K({
2047
1784
  pageRange: { default: 8 }
2048
1785
  },
2049
1786
  emits: ["update:modelValue"],
2050
- setup(e, { emit: n }) {
2051
- const a = e, l = n, t = b(() => Math.max(1, a.min)), o = b(() => a.modelValue ?? t.value), r = b(() => o.value <= t.value), h = b(() => o.value >= a.max), u = b(() => {
2052
- if (!r.value)
1787
+ setup(e, { emit: a }) {
1788
+ const n = e, l = a, s = k(() => Math.max(1, n.min)), r = k(() => n.modelValue ?? s.value), o = k(() => r.value <= s.value), v = k(() => r.value >= n.max), f = k(() => {
1789
+ if (!o.value)
2053
1790
  return "#";
2054
- }), g = b(() => {
2055
- if (!h.value)
1791
+ }), b = k(() => {
1792
+ if (!v.value)
2056
1793
  return "#";
2057
- }), y = b(() => {
2058
- const { pageRange: m, max: i } = a, f = 1, d = [];
2059
- if (i <= m + 2 * f)
2060
- for (let v = t.value; v <= i; v++)
2061
- d.push({
2062
- type: "page",
2063
- key: `page-${v}`,
2064
- page: v,
2065
- href: "#"
2066
- });
1794
+ }), g = k(() => {
1795
+ const { pageRange: d, max: i } = n, c = 1, u = [];
1796
+ if (i <= d + 2 * c) for (let h = s.value; h <= i; h++) u.push({
1797
+ type: "page",
1798
+ key: `page-${h}`,
1799
+ page: h,
1800
+ href: "#"
1801
+ });
2067
1802
  else {
2068
- const v = Math.min(f, i), $ = Math.max(i - f + 1, 1), F = Math.max(t.value, o.value - Math.floor(m / 2)), T = Math.min(i, F + m - 1), R = Math.max(t.value, T - m + 1);
2069
- for (let k = t.value; k <= v; k++)
2070
- d.push({
2071
- type: "page",
2072
- key: `page-${k}`,
2073
- page: k,
2074
- href: "#"
2075
- });
2076
- R > v + 1 && d.push({
1803
+ const h = Math.min(c, i), m = Math.max(i - c + 1, 1), w = Math.max(s.value, r.value - Math.floor(d / 2)), C = Math.min(i, w + d - 1), x = Math.max(s.value, C - d + 1);
1804
+ for (let K = s.value; K <= h; K++) u.push({
1805
+ type: "page",
1806
+ key: `page-${K}`,
1807
+ page: K,
1808
+ href: "#"
1809
+ });
1810
+ x > h + 1 && u.push({
2077
1811
  type: "ellipsis",
2078
1812
  key: "ellipsis-left",
2079
1813
  ariaLabel: "페이지 생략"
2080
1814
  });
2081
- const I = Math.max(R, v + 1), p = Math.min(T, $ - 1);
2082
- for (let k = I; k <= p; k++)
2083
- d.push({
2084
- type: "page",
2085
- key: `page-${k}`,
2086
- page: k,
2087
- href: "#"
2088
- });
2089
- T < $ - 1 && d.push({
1815
+ const $ = Math.max(x, h + 1), y = Math.min(C, m - 1);
1816
+ for (let K = $; K <= y; K++) u.push({
1817
+ type: "page",
1818
+ key: `page-${K}`,
1819
+ page: K,
1820
+ href: "#"
1821
+ });
1822
+ C < m - 1 && u.push({
2090
1823
  type: "ellipsis",
2091
1824
  key: "ellipsis-right",
2092
1825
  ariaLabel: "페이지 생략"
2093
1826
  });
2094
- for (let k = $; k <= i; k++)
2095
- d.push({
2096
- type: "page",
2097
- key: `page-${k}`,
2098
- page: k,
2099
- href: "#"
2100
- });
1827
+ for (let K = m; K <= i; K++) u.push({
1828
+ type: "page",
1829
+ key: `page-${K}`,
1830
+ page: K,
1831
+ href: "#"
1832
+ });
2101
1833
  }
2102
- return d;
2103
- }), C = (m, i) => {
2104
- if (m === o.value) {
1834
+ return u;
1835
+ }), _ = (d, i) => {
1836
+ if (d === r.value) {
2105
1837
  i.preventDefault();
2106
1838
  return;
2107
1839
  }
2108
- l("update:modelValue", m);
2109
- }, S = (m) => {
2110
- if (r.value) {
2111
- m.preventDefault();
1840
+ l("update:modelValue", d);
1841
+ }, S = (d) => {
1842
+ if (o.value) {
1843
+ d.preventDefault();
2112
1844
  return;
2113
1845
  }
2114
- const i = o.value - 1;
2115
- l("update:modelValue", i);
2116
- }, V = (m) => {
2117
- if (h.value) {
2118
- m.preventDefault();
1846
+ l("update:modelValue", r.value - 1);
1847
+ }, V = (d) => {
1848
+ if (v.value) {
1849
+ d.preventDefault();
2119
1850
  return;
2120
1851
  }
2121
- const i = o.value + 1;
2122
- l("update:modelValue", i);
1852
+ l("update:modelValue", r.value + 1);
2123
1853
  };
2124
- return (m, i) => {
2125
- const f = Ie("sr-only");
2126
- return w(), x("div", {
1854
+ return (d, i) => {
1855
+ const c = Me("sr-only");
1856
+ return D(), T("div", {
2127
1857
  id: e.id,
2128
1858
  class: "krds-pagination"
2129
1859
  }, [
2130
- (w(), ie(ge(r.value ? "span" : "a"), {
2131
- href: r.value ? void 0 : u.value,
2132
- class: M(["page-navi", "prev", { disabled: r.value }]),
1860
+ (D(), de(ge(o.value ? "span" : "a"), {
1861
+ href: o.value ? void 0 : f.value,
1862
+ class: R([
1863
+ "page-navi",
1864
+ "prev",
1865
+ { disabled: o.value }
1866
+ ]),
2133
1867
  onClick: S
2134
1868
  }, {
2135
- default: re(() => [...i[0] || (i[0] = [
2136
- H(" 이전 ", -1)
2137
- ])]),
1869
+ default: ue(() => [...i[0] || (i[0] = [N(" 이전 ", -1)])]),
2138
1870
  _: 1
2139
1871
  }, 8, ["href", "class"])),
2140
- c("div", Rt, [
2141
- (w(!0), x(j, null, G(y.value, (d) => (w(), x(j, {
2142
- key: d.key
2143
- }, [
2144
- d.type === "page" ? (w(), x("a", {
2145
- key: 0,
2146
- href: d.href || "#",
2147
- class: M(["page-link", { active: d.page === o.value }]),
2148
- "aria-current": d.page === o.value ? "page" : void 0,
2149
- onClick: (v) => C(d.page, v)
2150
- }, [
2151
- d.page === o.value ? ee((w(), x("span", Ft, [...i[1] || (i[1] = [
2152
- H("현재페이지", -1)
2153
- ])])), [
2154
- [f]
2155
- ]) : X("", !0),
2156
- H(" " + E(d.page), 1)
2157
- ], 10, At)) : d.type === "ellipsis" ? (w(), x("span", {
2158
- key: 1,
2159
- class: "page-link link-dot",
2160
- "aria-label": d.ariaLabel
2161
- }, null, 8, Pt)) : X("", !0)
2162
- ], 64))), 128))
2163
- ]),
2164
- (w(), ie(ge(h.value ? "span" : "a"), {
2165
- href: h.value ? void 0 : g.value,
2166
- class: M(["page-navi", "next", { disabled: h.value }]),
1872
+ p("div", ca, [(D(!0), T(W, null, Y(g.value, (u) => (D(), T(W, { key: u.key }, [u.type === "page" ? (D(), T("a", {
1873
+ key: 0,
1874
+ href: u.href || "#",
1875
+ class: R(["page-link", { active: u.page === r.value }]),
1876
+ "aria-current": u.page === r.value ? "page" : void 0,
1877
+ onClick: (h) => _(u.page, h)
1878
+ }, [u.page === r.value ? ee((D(), T("span", va, [...i[1] || (i[1] = [N("현재페이지", -1)])])), [[c]]) : X("", !0), N(" " + M(u.page), 1)], 10, fa)) : u.type === "ellipsis" ? (D(), T("span", {
1879
+ key: 1,
1880
+ class: "page-link link-dot",
1881
+ "aria-label": u.ariaLabel
1882
+ }, null, 8, pa)) : X("", !0)], 64))), 128))]),
1883
+ (D(), de(ge(v.value ? "span" : "a"), {
1884
+ href: v.value ? void 0 : b.value,
1885
+ class: R([
1886
+ "page-navi",
1887
+ "next",
1888
+ { disabled: v.value }
1889
+ ]),
2167
1890
  onClick: V
2168
1891
  }, {
2169
- default: re(() => [...i[2] || (i[2] = [
2170
- H(" 다음 ", -1)
2171
- ])]),
1892
+ default: ue(() => [...i[2] || (i[2] = [N(" 다음 ", -1)])]),
2172
1893
  _: 1
2173
1894
  }, 8, ["href", "class"]))
2174
- ], 8, Tt);
1895
+ ], 8, ua);
2175
1896
  };
2176
1897
  }
2177
- }), qt = { class: "inner help-panel-flexible" }, Nt = { class: "help-panel-wrap" }, Ht = { class: "help-conts-area" }, Wt = /* @__PURE__ */ K({
1898
+ }), ma = ha, ya = ma, ga = { class: "inner help-panel-flexible" }, ba = { class: "help-panel-wrap" }, ka = { class: "help-conts-area" }, Sa = /* @__PURE__ */ B({
2178
1899
  __name: "KrdsPanel",
2179
- props: {
2180
- modelValue: { type: Boolean, default: !1 }
2181
- },
1900
+ props: { modelValue: {
1901
+ type: Boolean,
1902
+ default: !1
1903
+ } },
2182
1904
  emits: ["update:modelValue"],
2183
- setup(e, { emit: n }) {
2184
- const a = e, l = n, t = b({
2185
- get: () => a.modelValue,
2186
- set: (h) => l("update:modelValue", h)
2187
- }), o = () => {
2188
- t.value = !0;
2189
- }, r = () => {
2190
- t.value = !1;
1905
+ setup(e, { emit: a }) {
1906
+ const n = e, l = a, s = k({
1907
+ get: () => n.modelValue,
1908
+ set: (v) => l("update:modelValue", v)
1909
+ }), r = () => {
1910
+ s.value = !0;
1911
+ }, o = () => {
1912
+ s.value = !1;
2191
1913
  };
2192
- return (h, u) => (w(), x("div", qt, [
2193
- c("button", {
2194
- type: "button",
2195
- class: "krds-btn small tertiary btn-help-panel expand btn-help-exec",
2196
- onClick: o
2197
- }, [...u[0] || (u[0] = [
2198
- c("i", { class: "svg-icon ico-fold" }, null, -1),
2199
- H(" 도움말 ", -1)
2200
- ])]),
2201
- c("div", {
2202
- class: M(["krds-help-panel", { expand: t.value }])
2203
- }, [
2204
- c("div", Nt, [
2205
- c("div", Ht, [
2206
- J(h.$slots, "default"),
2207
- c("button", {
2208
- type: "button",
2209
- class: "krds-btn small tertiary btn-help-panel fold",
2210
- onClick: r
2211
- }, [...u[1] || (u[1] = [
2212
- c("span", { class: "sr-only" }, "도움말", -1),
2213
- H(" 접어두기 ", -1),
2214
- c("i", { class: "svg-icon ico-angle right" }, null, -1)
2215
- ])])
2216
- ])
2217
- ])
2218
- ], 2)
2219
- ]));
1914
+ return (v, f) => (D(), T("div", ga, [p("button", {
1915
+ type: "button",
1916
+ class: "krds-btn small tertiary btn-help-panel expand btn-help-exec",
1917
+ onClick: r
1918
+ }, [...f[0] || (f[0] = [p("i", { class: "svg-icon ico-fold" }, null, -1), N(" 도움말 ", -1)])]), p("div", { class: R(["krds-help-panel", { expand: s.value }]) }, [p("div", ba, [p("div", ka, [J(v.$slots, "default"), p("button", {
1919
+ type: "button",
1920
+ class: "krds-btn small tertiary btn-help-panel fold",
1921
+ onClick: o
1922
+ }, [...f[1] || (f[1] = [
1923
+ p("span", { class: "sr-only" }, "도움말", -1),
1924
+ N(" 접어두기 ", -1),
1925
+ p("i", { class: "svg-icon ico-angle right" }, null, -1)
1926
+ ])])])])], 2)]));
2220
1927
  }
2221
- }), jt = { class: "tooltip-action" }, Yt = {
1928
+ }), Ka = Sa, wa = Ka, _a = { class: "tooltip-action" }, Ca = {
2222
1929
  key: 0,
2223
1930
  class: "svg-icon ico-help"
2224
- }, Gt = {
1931
+ }, $a = {
2225
1932
  key: 1,
2226
1933
  class: "svg-icon ico-tooltip"
2227
- }, Ut = { class: "tooltip-title" }, Xt = { class: "tooltip-contents" }, Jt = /* @__PURE__ */ K({
1934
+ }, xa = { class: "tooltip-title" }, Ba = { class: "tooltip-contents" }, La = /* @__PURE__ */ B({
2228
1935
  __name: "KrdsContextualHelp",
2229
1936
  props: {
2230
1937
  tooltipTitle: { default: "도움말 제목" },
@@ -2232,84 +1939,70 @@ const Ct = K({
2232
1939
  position: { default: "top left" }
2233
1940
  },
2234
1941
  setup(e) {
2235
- const n = e, a = D(), l = D(), t = D(), o = D(), r = D(!1), h = () => {
2236
- const i = r.value;
2237
- y(), i || u();
2238
- }, u = () => {
2239
- if (!t.value || !l.value) return;
2240
- r.value = !0, t.value.style.display = "block", l.value.setAttribute("aria-expanded", "true"), t.value.querySelector('a, button, [tabindex="0"], input, textarea, select')?.focus(), C();
1942
+ const a = e, n = L(), l = L(), s = L(), r = L(), o = L(!1), v = () => {
1943
+ const i = o.value;
1944
+ g(), i || f();
1945
+ }, f = () => {
1946
+ !s.value || !l.value || (o.value = !0, s.value.style.display = "block", l.value.setAttribute("aria-expanded", "true"), s.value.querySelector('a, button, [tabindex="0"], input, textarea, select')?.focus(), _());
1947
+ }, b = () => {
1948
+ !s.value || !l.value || (o.value = !1, s.value.style.display = "none", l.value.setAttribute("aria-expanded", "false"));
2241
1949
  }, g = () => {
2242
- !t.value || !l.value || (r.value = !1, t.value.style.display = "none", l.value.setAttribute("aria-expanded", "false"));
2243
- }, y = () => {
2244
- const i = document.querySelectorAll(".krds-contextual-help .tooltip-popover"), f = document.querySelectorAll(".krds-contextual-help .tooltip-btn");
2245
- i.forEach((d) => {
2246
- d.style.display = "none";
2247
- }), f.forEach((d) => {
2248
- d.setAttribute("aria-expanded", "false");
2249
- }), r.value = !1;
2250
- }, C = () => {
2251
- if (!a.value || !t.value) return;
2252
- const i = window.innerWidth <= 768, f = a.value.querySelector(".tooltip-action");
1950
+ const i = document.querySelectorAll(".krds-contextual-help .tooltip-popover"), c = document.querySelectorAll(".krds-contextual-help .tooltip-btn");
1951
+ i.forEach((u) => {
1952
+ u.style.display = "none";
1953
+ }), c.forEach((u) => {
1954
+ u.setAttribute("aria-expanded", "false");
1955
+ }), o.value = !1;
1956
+ }, _ = () => {
1957
+ if (!n.value || !s.value) return;
1958
+ const i = window.innerWidth <= 768, c = n.value.querySelector(".tooltip-action");
2253
1959
  if (i) {
2254
- const v = getComputedStyle(document.querySelector(":root")).getPropertyValue("--krds-contents-padding-x").trim().split("px")[0], F = f.getBoundingClientRect().left - parseInt(v), T = document.body.clientWidth - parseInt(v) * 2;
2255
- t.value.style.left = `-${F}px`, t.value.style.width = `${T}px`;
1960
+ const u = getComputedStyle(document.querySelector(":root")).getPropertyValue("--krds-contents-padding-x").trim().split("px")[0], h = c.getBoundingClientRect().left - parseInt(u), m = document.body.clientWidth - parseInt(u) * 2;
1961
+ s.value.style.left = `-${h}px`, s.value.style.width = `${m}px`;
2256
1962
  } else
2257
- t.value.style.left = "", t.value.style.right = "", t.value.style.width = "360px";
1963
+ s.value.style.left = "", s.value.style.right = "", s.value.style.width = "360px";
2258
1964
  }, S = (i) => {
2259
- (i.key === "Escape" || i.key === "Esc") && y();
1965
+ (i.key === "Escape" || i.key === "Esc") && g();
2260
1966
  }, V = (i) => {
2261
- i.target.closest(".tooltip-action") || y();
2262
- }, m = () => {
2263
- r.value && C();
1967
+ i.target.closest(".tooltip-action") || g();
1968
+ }, d = () => {
1969
+ o.value && _();
2264
1970
  };
2265
- return ae(() => {
2266
- a.value && (l.value && l.value.setAttribute("aria-expanded", "false"), t.value && t.value.setAttribute("role", "tooltip"), document.addEventListener("keydown", S), document.addEventListener("click", V), window.addEventListener("resize", m));
1971
+ return te(() => {
1972
+ n.value && (l.value && l.value.setAttribute("aria-expanded", "false"), s.value && s.value.setAttribute("role", "tooltip"), document.addEventListener("keydown", S), document.addEventListener("click", V), window.addEventListener("resize", d));
2267
1973
  }), Z(() => {
2268
- document.removeEventListener("keydown", S), document.removeEventListener("click", V), window.removeEventListener("resize", m);
2269
- }), (i, f) => (w(), x("div", {
1974
+ document.removeEventListener("keydown", S), document.removeEventListener("click", V), window.removeEventListener("resize", d);
1975
+ }), (i, c) => (D(), T("div", {
2270
1976
  ref_key: "containerRef",
2271
- ref: a,
2272
- class: M(["krds-contextual-help", n.position])
1977
+ ref: n,
1978
+ class: R(["krds-contextual-help", a.position])
1979
+ }, [p("div", _a, [p("button", {
1980
+ ref_key: "tooltipBtnRef",
1981
+ ref: l,
1982
+ type: "button",
1983
+ class: "krds-btn medium icon tooltip-btn",
1984
+ onClick: v
1985
+ }, [c[0] || (c[0] = p("span", { class: "sr-only" }, "도움말", -1)), a.helpIcon ? (D(), T("i", Ca)) : (D(), T("i", $a))], 512), p("div", {
1986
+ ref_key: "tooltipPopoverRef",
1987
+ ref: s,
1988
+ class: "tooltip-popover",
1989
+ role: "tooltip"
2273
1990
  }, [
2274
- c("div", jt, [
2275
- c("button", {
2276
- ref_key: "tooltipBtnRef",
2277
- ref: l,
2278
- type: "button",
2279
- class: "krds-btn medium icon tooltip-btn",
2280
- onClick: h
2281
- }, [
2282
- f[0] || (f[0] = c("span", { class: "sr-only" }, "도움말", -1)),
2283
- n.helpIcon ? (w(), x("i", Yt)) : (w(), x("i", Gt))
2284
- ], 512),
2285
- c("div", {
2286
- ref_key: "tooltipPopoverRef",
2287
- ref: t,
2288
- class: "tooltip-popover",
2289
- role: "tooltip"
2290
- }, [
2291
- c("h4", Ut, E(n.tooltipTitle), 1),
2292
- c("div", Xt, [
2293
- J(i.$slots, "default")
2294
- ]),
2295
- c("button", {
2296
- ref_key: "closeBtnRef",
2297
- ref: o,
2298
- type: "button",
2299
- class: "krds-btn xsmall icon tooltip-close",
2300
- onClick: g
2301
- }, [...f[1] || (f[1] = [
2302
- c("span", { class: "sr-only" }, "닫기", -1),
2303
- c("i", { class: "svg-icon ico-modal-close" }, null, -1)
2304
- ])], 512)
2305
- ], 512)
2306
- ])
2307
- ], 2));
1991
+ p("h4", xa, M(a.tooltipTitle), 1),
1992
+ p("div", Ba, [J(i.$slots, "default")]),
1993
+ p("button", {
1994
+ ref_key: "closeBtnRef",
1995
+ ref: r,
1996
+ type: "button",
1997
+ class: "krds-btn xsmall icon tooltip-close",
1998
+ onClick: b
1999
+ }, [...c[1] || (c[1] = [p("span", { class: "sr-only" }, "닫기", -1), p("i", { class: "svg-icon ico-modal-close" }, null, -1)])], 512)
2000
+ ], 512)])], 2));
2308
2001
  }
2309
- }), Qt = {
2002
+ }), Da = La, Ta = Da, Va = {
2310
2003
  key: 0,
2311
2004
  class: "coach-balloon"
2312
- }, Zt = { class: "coach-tit" }, el = { class: "desc" }, tl = { class: "coach-controls" }, ll = { class: "num" }, al = { class: "btn-wrap" }, nl = /* @__PURE__ */ K({
2005
+ }, za = { class: "coach-tit" }, Ia = { class: "desc" }, Ea = { class: "coach-controls" }, Fa = { class: "num" }, Ma = { class: "btn-wrap" }, Aa = /* @__PURE__ */ B({
2313
2006
  __name: "KrdsCoachMark",
2314
2007
  props: {
2315
2008
  coachMarkClass: { default: "" },
@@ -2321,146 +2014,137 @@ const Ct = K({
2321
2014
  id: {}
2322
2015
  },
2323
2016
  emits: ["update:modelValue", "close"],
2324
- setup(e, { emit: n }) {
2325
- const a = e, l = b(() => {
2326
- const u = a.activeStep - 1;
2327
- return a.stepsData && u >= 0 && u < a.stepsData.length ? a.stepsData[u] : null;
2328
- }), t = n, o = () => {
2329
- a.activeStep > 1 && t("update:modelValue", a.activeStep - 1);
2330
- }, r = () => {
2331
- a.activeStep < a.stepsData.length && t("update:modelValue", a.activeStep + 1);
2332
- }, h = () => {
2333
- t("close");
2017
+ setup(e, { emit: a }) {
2018
+ const n = e, l = k(() => {
2019
+ const f = n.activeStep - 1;
2020
+ return n.stepsData && f >= 0 && f < n.stepsData.length ? n.stepsData[f] : null;
2021
+ }), s = a, r = () => {
2022
+ n.activeStep > 1 && s("update:modelValue", n.activeStep - 1);
2023
+ }, o = () => {
2024
+ n.activeStep < n.stepsData.length && s("update:modelValue", n.activeStep + 1);
2025
+ }, v = () => {
2026
+ s("close");
2334
2027
  };
2335
- return (u, g) => (w(), x("div", {
2336
- class: M(["krds-coach-mark", e.coachMarkClass]),
2337
- style: se(e.style)
2338
- }, [
2339
- e.modelValue === e.activeStep && l.value ? (w(), x("div", Qt, [
2340
- g[2] || (g[2] = c("h5", { class: "sr-only" }, "따라하기 가이드", -1)),
2341
- c("h6", Zt, E(e.activeStep) + "단계 : " + E(l.value.title), 1),
2342
- c("p", el, E(l.value.description), 1),
2343
- c("div", tl, [
2344
- c("div", ll, [
2345
- g[0] || (g[0] = c("span", { class: "sr-only" }, "현재 단계", -1)),
2346
- c("strong", null, E(e.activeStep), 1),
2347
- g[1] || (g[1] = c("span", { class: "sr-only" }, "총 단계", -1)),
2348
- c("span", null, E(e.stepsData.length), 1)
2349
- ]),
2350
- c("div", al, [
2351
- c("button", {
2352
- type: "button",
2353
- class: "krds-btn small text",
2354
- onClick: h
2355
- }, "그만보기"),
2356
- e.activeStep !== 1 ? (w(), x("button", {
2357
- key: 0,
2358
- type: "button",
2359
- class: "krds-btn small text",
2360
- onClick: o
2361
- }, "이전으로")) : X("", !0),
2362
- e.activeStep !== e.stepsData.length ? (w(), x("button", {
2363
- key: 1,
2364
- type: "button",
2365
- class: "krds-btn small tertiary",
2366
- onClick: r
2367
- }, "다음으로")) : X("", !0)
2368
- ])
2369
- ])
2370
- ])) : X("", !0),
2371
- J(u.$slots, "coach-mark-content")
2372
- ], 6));
2028
+ return (f, b) => (D(), T("div", {
2029
+ class: R(["krds-coach-mark", e.coachMarkClass]),
2030
+ style: ne(e.style)
2031
+ }, [e.modelValue === e.activeStep && l.value ? (D(), T("div", Va, [
2032
+ b[2] || (b[2] = p("h5", { class: "sr-only" }, "따라하기 가이드", -1)),
2033
+ p("h6", za, M(e.activeStep) + "단계 : " + M(l.value.title), 1),
2034
+ p("p", Ia, M(l.value.description), 1),
2035
+ p("div", Ea, [p("div", Fa, [
2036
+ b[0] || (b[0] = p("span", { class: "sr-only" }, "현재 단계", -1)),
2037
+ p("strong", null, M(e.activeStep), 1),
2038
+ b[1] || (b[1] = p("span", { class: "sr-only" }, "총 단계", -1)),
2039
+ p("span", null, M(e.stepsData.length), 1)
2040
+ ]), p("div", Ma, [
2041
+ p("button", {
2042
+ type: "button",
2043
+ class: "krds-btn small text",
2044
+ onClick: v
2045
+ }, "그만보기"),
2046
+ e.activeStep !== 1 ? (D(), T("button", {
2047
+ key: 0,
2048
+ type: "button",
2049
+ class: "krds-btn small text",
2050
+ onClick: r
2051
+ }, "이전으로")) : X("", !0),
2052
+ e.activeStep !== e.stepsData.length ? (D(), T("button", {
2053
+ key: 1,
2054
+ type: "button",
2055
+ class: "krds-btn small tertiary",
2056
+ onClick: o
2057
+ }, "다음으로")) : X("", !0)
2058
+ ])])
2059
+ ])) : X("", !0), J(f.$slots, "coach-mark-content")], 6));
2373
2060
  }
2374
- }), sl = ["disabled", "aria-labelledby"], ol = ["id", "aria-hidden"], il = { class: "sr-only" }, rl = /* @__PURE__ */ K({
2061
+ }), Ra = Aa, Pa = Ra, Ha = ["disabled"], qa = ["aria-hidden"], Oa = { class: "sr-only" }, Na = /* @__PURE__ */ B({
2375
2062
  __name: "KrdsTooltip",
2376
2063
  props: {
2377
2064
  type: { default: "default" },
2378
2065
  tooltipContent: {},
2379
2066
  vertical: { type: Boolean },
2380
2067
  box: { type: Boolean },
2381
- disabled: { type: Boolean, default: !1 },
2068
+ disabled: {
2069
+ type: Boolean,
2070
+ default: !1
2071
+ },
2382
2072
  class: {},
2383
2073
  style: {},
2384
2074
  id: {}
2385
2075
  },
2386
2076
  setup(e) {
2387
- const n = e, a = D(null), l = D(null), t = D(!1), o = D({}), r = D(`tooltip-popover-${Math.random().toString(36).substring(2, 9)}`), h = D(!1), u = b(() => {
2388
- const v = ["krds-btn", "krds-tooltip"];
2389
- return n.type === "default" ? v.push("small", "text") : n.type === "icon" ? v.push("icon") : n.type === "button" && v.push(""), !n.box && n.vertical && v.push("tooltip-vertical"), n.box && !n.vertical && v.push("tooltip-box"), v.join(" ");
2390
- }), g = b(() => {
2391
- const v = [];
2392
- return n.box && v.push("tooltip-box"), n.vertical && v.push("tooltip-vertical"), t.value && v.push("active"), v;
2393
- }), y = b(() => a.value?.querySelector("button")?.textContent?.trim() || ""), C = () => window.innerWidth <= 768, S = () => {
2394
- if (!a.value || !l.value) return;
2395
- const v = a.value.querySelector("button");
2396
- if (!v) return;
2397
- const $ = 12, { clientHeight: F, clientWidth: T } = l.value, { top: R, left: I, right: p, height: k, width: L } = v.getBoundingClientRect(), P = window.innerWidth / 2, A = window.innerHeight / 2;
2398
- let W, N;
2399
- const Y = [];
2400
- h.value || n.box || n.vertical ? (R + k > A ? (W = R - F - $, Y.push("top")) : (W = R + k + $, Y.push("bottom")), I + L > P ? (N = p - T, Y.push("right"), window.innerWidth - (I + L) > T / 2 && (N = I + (L - T) / 2, Y.splice(Y.indexOf("right"), 1))) : (N = I + (L - T) / 2, N < 0 && (N = I, Y.push("left")))) : (W = R + (k - F) / 2, I + L > P ? (N = I - T - $, Y.push("right")) : N = p + $);
2401
- const te = window.innerWidth <= 420;
2402
- o.value = {
2403
- top: `${W}px`,
2404
- left: te ? "50%" : `${N}px`,
2405
- transform: te ? "translateX(-50%)" : "none"
2406
- }, l.value && (l.value.className = `krds-tooltip-popover ${Y.join(" ")} ${g.value.join(" ")}`);
2077
+ const a = e, n = L(null), l = L(null), s = L(!1), r = L({}), o = `tooltip-popover-${ae()}`, v = L(!1), f = k(() => {
2078
+ const h = ["krds-btn", "krds-tooltip"];
2079
+ return a.type === "default" ? h.push("small", "text") : a.type === "icon" ? h.push("icon") : a.type === "button" && h.push(""), !a.box && a.vertical && h.push("tooltip-vertical"), a.box && !a.vertical && h.push("tooltip-box"), h.join(" ");
2080
+ }), b = k(() => {
2081
+ const h = [];
2082
+ return a.box && h.push("tooltip-box"), a.vertical && h.push("tooltip-vertical"), s.value && h.push("active"), h;
2083
+ }), g = k(() => n.value?.querySelector("button")?.textContent?.trim() || ""), _ = () => window.innerWidth <= 768, S = () => {
2084
+ if (!n.value || !l.value) return;
2085
+ const h = n.value.querySelector("button");
2086
+ if (!h) return;
2087
+ const m = 12, { clientHeight: w, clientWidth: C } = l.value, { top: x, left: $, right: y, height: K, width: F } = h.getBoundingClientRect(), P = window.innerWidth / 2, A = window.innerHeight / 2;
2088
+ let j, O;
2089
+ const G = [];
2090
+ v.value || a.box || a.vertical ? (x + K > A ? (j = x - w - m, G.push("top")) : (j = x + K + m, G.push("bottom")), $ + F > P ? (O = y - C, G.push("right"), window.innerWidth - ($ + F) > C / 2 && (O = $ + (F - C) / 2, G.splice(G.indexOf("right"), 1))) : (O = $ + (F - C) / 2, O < 0 && (O = $, G.push("left")))) : (j = x + (K - w) / 2, $ + F > P ? (O = $ - C - m, G.push("right")) : O = y + m);
2091
+ const le = window.innerWidth <= 420;
2092
+ r.value = {
2093
+ top: `${j}px`,
2094
+ left: le ? "50%" : `${O}px`,
2095
+ transform: le ? "translateX(-50%)" : "none"
2096
+ }, l.value && (l.value.className = `krds-tooltip-popover ${G.join(" ")} ${b.value.join(" ")}`);
2407
2097
  }, V = async () => {
2408
- n.disabled || !n.tooltipContent || (t.value = !0, await we(), S());
2409
- }, m = () => {
2410
- t.value = !1, o.value = {};
2411
- }, i = (v) => {
2412
- (v.key === "Escape" || v.key === "Esc") && t.value && m();
2413
- }, f = () => {
2414
- h.value = C(), t.value && m();
2098
+ a.disabled || !a.tooltipContent || (s.value = !0, await Ke(), S());
2415
2099
  }, d = () => {
2416
- t.value && m();
2100
+ s.value = !1, r.value = {};
2101
+ }, i = (h) => {
2102
+ (h.key === "Escape" || h.key === "Esc") && s.value && d();
2103
+ }, c = () => {
2104
+ v.value = _(), s.value && d();
2105
+ }, u = () => {
2106
+ s.value && d();
2417
2107
  };
2418
- return ae(() => {
2419
- h.value = C(), document.addEventListener("keydown", i), window.addEventListener("scroll", d), window.addEventListener("resize", f);
2108
+ return te(() => {
2109
+ v.value = _(), document.addEventListener("keydown", i), window.addEventListener("scroll", u), window.addEventListener("resize", c);
2420
2110
  }), Z(() => {
2421
- document.removeEventListener("keydown", i), window.removeEventListener("scroll", d), window.removeEventListener("resize", f);
2422
- }), (v, $) => (w(), x("div", {
2111
+ document.removeEventListener("keydown", i), window.removeEventListener("scroll", u), window.removeEventListener("resize", c);
2112
+ }), (h, m) => (D(), T("div", {
2423
2113
  ref_key: "containerRef",
2424
- ref: a
2425
- }, [
2426
- c("button", {
2427
- type: "button",
2428
- class: M(u.value),
2429
- disabled: e.disabled,
2430
- "aria-labelledby": r.value,
2431
- onMouseover: V,
2432
- onMouseout: m,
2433
- onFocusin: V,
2434
- onFocusout: m
2435
- }, [
2436
- J(v.$slots, "default")
2437
- ], 42, sl),
2438
- ee(c("div", {
2439
- id: r.value,
2440
- ref_key: "popoverRef",
2441
- ref: l,
2442
- class: M(["krds-tooltip-popover", g.value]),
2443
- style: se(o.value),
2444
- "aria-hidden": !t.value,
2445
- role: "tooltip"
2446
- }, [
2447
- c("span", il, E(y.value), 1),
2448
- H(" " + E(e.tooltipContent), 1)
2449
- ], 14, ol), [
2450
- [le, t.value]
2451
- ])
2452
- ], 512));
2114
+ ref: n
2115
+ }, [p("button", {
2116
+ type: "button",
2117
+ class: R(f.value),
2118
+ disabled: e.disabled,
2119
+ "aria-labelledby": o,
2120
+ onMouseover: V,
2121
+ onMouseout: d,
2122
+ onFocusin: V,
2123
+ onFocusout: d
2124
+ }, [J(h.$slots, "default")], 42, Ha), ee(p("div", {
2125
+ id: o,
2126
+ ref_key: "popoverRef",
2127
+ ref: l,
2128
+ class: R(["krds-tooltip-popover", b.value]),
2129
+ style: ne(r.value),
2130
+ "aria-hidden": !s.value,
2131
+ role: "tooltip"
2132
+ }, [p("span", Oa, M(g.value), 1), N(" " + M(e.tooltipContent), 1)], 14, qa), [[se, s.value]])], 512));
2453
2133
  }
2454
- }), dl = ["aria-expanded"], cl = { class: "drop-in" }, ul = {
2134
+ }), ja = Na, Wa = ja, Ga = ["aria-expanded"], Ya = { class: "drop-in" }, Ua = {
2455
2135
  key: 0,
2456
2136
  class: "drop-top"
2457
- }, fl = {
2137
+ }, Xa = {
2458
2138
  key: 1,
2459
2139
  class: "drop-list"
2460
- }, vl = ["lang", "aria-selected", "onClick"], hl = { class: "sr-only" }, ml = {
2140
+ }, Ja = [
2141
+ "lang",
2142
+ "aria-selected",
2143
+ "onClick"
2144
+ ], Qa = { class: "sr-only" }, Za = {
2461
2145
  key: 2,
2462
2146
  class: "drop-list"
2463
- }, pl = ["href", "lang"], yl = /* @__PURE__ */ K({
2147
+ }, el = ["href", "lang"], tl = /* @__PURE__ */ B({
2464
2148
  __name: "KrdsLanguageSwitcher",
2465
2149
  props: {
2466
2150
  languageList: {},
@@ -2472,199 +2156,169 @@ const Ct = K({
2472
2156
  id: {}
2473
2157
  },
2474
2158
  emits: ["update:modelValue", "close"],
2475
- setup(e, { emit: n }) {
2476
- const a = e, l = n, t = D(!1), o = D(), r = D(), h = () => {
2477
- t.value = !t.value, t.value && o.value && y();
2478
- }, u = () => {
2479
- t.value = !1;
2480
- }, g = (i) => {
2481
- l("update:modelValue", i), u(), l("close"), r.value?.focus();
2482
- }, y = () => {
2483
- if (!o.value) return;
2484
- const i = o.value.querySelector(".drop-menu");
2159
+ setup(e, { emit: a }) {
2160
+ const n = e, l = a, s = L(!1), r = L(), o = L(), v = () => {
2161
+ s.value = !s.value, s.value && r.value && g();
2162
+ }, f = () => {
2163
+ s.value = !1;
2164
+ }, b = (i) => {
2165
+ l("update:modelValue", i), f(), l("close"), o.value?.focus();
2166
+ }, g = () => {
2167
+ if (!r.value) return;
2168
+ const i = r.value.querySelector(".drop-menu");
2485
2169
  if (!i) return;
2486
- const f = i.getBoundingClientRect(), d = window.innerWidth;
2487
- o.value.classList.remove("drop-left", "drop-right"), f.left < 0 ? o.value.classList.add("drop-left") : d < f.left + f.width && o.value.classList.add("drop-right");
2488
- }, C = (i) => {
2489
- i.key === "Escape" && (u(), r.value?.focus());
2170
+ const c = i.getBoundingClientRect(), u = window.innerWidth;
2171
+ r.value.classList.remove("drop-left", "drop-right"), c.left < 0 ? r.value.classList.add("drop-left") : u < c.left + c.width && r.value.classList.add("drop-right");
2172
+ }, _ = (i) => {
2173
+ i.key === "Escape" && (f(), o.value?.focus());
2490
2174
  }, S = (i) => {
2491
- o.value?.contains(i.target) || u();
2175
+ r.value?.contains(i.target) || f();
2492
2176
  }, V = (i) => {
2493
- o.value?.contains(i.relatedTarget) || u();
2494
- }, m = (i) => {
2495
- if (!o.value) return;
2496
- o.value.querySelectorAll(".drop-list .item-link").forEach((v) => {
2497
- v.style.position = "relative", v.style.zIndex = "0";
2177
+ r.value?.contains(i.relatedTarget) || f();
2178
+ }, d = (i) => {
2179
+ if (!r.value) return;
2180
+ r.value.querySelectorAll(".drop-list .item-link").forEach((u) => {
2181
+ u.style.position = "relative", u.style.zIndex = "0";
2498
2182
  });
2499
- const d = i.target;
2500
- d.style.zIndex = "1";
2183
+ const c = i.target;
2184
+ c.style.zIndex = "1";
2501
2185
  };
2502
- return ne(t, (i) => {
2503
- i ? (document.addEventListener("keydown", C), document.addEventListener("click", S)) : (document.removeEventListener("keydown", C), document.removeEventListener("click", S));
2186
+ return re(s, (i) => {
2187
+ i ? (document.addEventListener("keydown", _), document.addEventListener("click", S)) : (document.removeEventListener("keydown", _), document.removeEventListener("click", S));
2504
2188
  }), Z(() => {
2505
- document.removeEventListener("keydown", C), document.removeEventListener("click", S);
2506
- }), (i, f) => (w(), x("div", {
2189
+ document.removeEventListener("keydown", _), document.removeEventListener("click", S);
2190
+ }), (i, c) => (D(), T("div", {
2507
2191
  ref_key: "dropdownRef",
2508
- ref: o,
2509
- class: M(["krds-drop-wrap krds-language", {
2510
- active: t.value,
2511
- "drop-left": a.dropPosition === "left",
2512
- "drop-right": a.dropPosition === "right"
2192
+ ref: r,
2193
+ class: R(["krds-drop-wrap krds-language", {
2194
+ active: s.value,
2195
+ "drop-left": n.dropPosition === "left",
2196
+ "drop-right": n.dropPosition === "right"
2513
2197
  }]),
2514
2198
  onFocusout: V
2199
+ }, [p("button", {
2200
+ ref_key: "buttonRef",
2201
+ ref: o,
2202
+ type: "button",
2203
+ class: R(["krds-btn small text drop-btn", { active: s.value }]),
2204
+ "aria-expanded": s.value,
2205
+ onClick: v
2515
2206
  }, [
2516
- c("button", {
2517
- ref_key: "buttonRef",
2518
- ref: r,
2519
- type: "button",
2520
- class: M(["krds-btn small text drop-btn", { active: t.value }]),
2521
- "aria-expanded": t.value,
2522
- onClick: h
2523
- }, [
2524
- f[0] || (f[0] = c("i", { class: "svg-icon ico-global" }, null, -1)),
2525
- J(i.$slots, "default"),
2526
- f[1] || (f[1] = c("i", { class: "svg-icon ico-toggle" }, null, -1))
2527
- ], 10, dl),
2528
- c("div", {
2529
- class: "drop-menu",
2530
- style: se({ display: t.value ? "block" : "none" })
2531
- }, [
2532
- c("div", cl, [
2533
- i.$slots["prev-item"] ? (w(), x("div", ul, [
2534
- J(i.$slots, "prev-item")
2535
- ])) : X("", !0),
2536
- a.type === "default" ? (w(), x("ul", fl, [
2537
- (w(!0), x(j, null, G(e.languageList, (d) => (w(), x("li", {
2538
- key: d.code
2539
- }, [
2540
- c("a", {
2541
- href: "#",
2542
- class: M(["item-link", { active: a.modelValue === d.code }]),
2543
- lang: d.code,
2544
- "aria-selected": a.modelValue === d.code,
2545
- onClick: de((v) => g(d.code), ["prevent"]),
2546
- onFocus: m
2547
- }, [
2548
- H(E(d.name) + " ", 1),
2549
- c("span", hl, E(a.modelValue === d.code ? "선택됨" : ""), 1)
2550
- ], 42, vl)
2551
- ]))), 128))
2552
- ])) : a.type === "external" ? (w(), x("ul", ml, [
2553
- (w(!0), x(j, null, G(e.languageList, (d) => (w(), x("li", {
2554
- key: d.code
2555
- }, [
2556
- c("a", {
2557
- href: d.url || "#",
2558
- class: "item-link",
2559
- lang: d.code,
2560
- target: "_blank",
2561
- title: "새 창 열림",
2562
- onFocus: m
2563
- }, [
2564
- H(E(d.name) + " ", 1),
2565
- f[2] || (f[2] = c("i", { class: "svg-icon ico-go" }, null, -1))
2566
- ], 40, pl)
2567
- ]))), 128))
2568
- ])) : X("", !0)
2569
- ])
2570
- ], 4)
2571
- ], 34));
2207
+ c[0] || (c[0] = p("i", { class: "svg-icon ico-global" }, null, -1)),
2208
+ J(i.$slots, "default"),
2209
+ c[1] || (c[1] = p("i", { class: "svg-icon ico-toggle" }, null, -1))
2210
+ ], 10, Ga), p("div", {
2211
+ class: "drop-menu",
2212
+ style: ne({ display: s.value ? "block" : "none" })
2213
+ }, [p("div", Ya, [i.$slots["prev-item"] ? (D(), T("div", Ua, [J(i.$slots, "prev-item")])) : X("", !0), n.type === "default" ? (D(), T("ul", Xa, [(D(!0), T(W, null, Y(e.languageList, (u) => (D(), T("li", { key: u.code }, [p("a", {
2214
+ href: "#",
2215
+ class: R(["item-link", { active: n.modelValue === u.code }]),
2216
+ lang: u.code,
2217
+ "aria-selected": n.modelValue === u.code,
2218
+ onClick: ce((h) => b(u.code), ["prevent"]),
2219
+ onFocus: d
2220
+ }, [N(M(u.name) + " ", 1), p("span", Qa, M(n.modelValue === u.code ? "선택됨" : ""), 1)], 42, Ja)]))), 128))])) : n.type === "external" ? (D(), T("ul", Za, [(D(!0), T(W, null, Y(e.languageList, (u) => (D(), T("li", { key: u.code }, [p("a", {
2221
+ href: u.url || "#",
2222
+ class: "item-link",
2223
+ lang: u.code,
2224
+ target: "_blank",
2225
+ title: "새 창 열림",
2226
+ onFocus: d
2227
+ }, [N(M(u.name) + " ", 1), c[2] || (c[2] = p("i", { class: "svg-icon ico-go" }, null, -1))], 40, el)]))), 128))])) : X("", !0)])], 4)], 34));
2572
2228
  }
2573
- }), gl = { class: "drop-in" }, bl = { class: "drop-list" }, kl = ["data-adjust-scale", "onClick"], Sl = { class: "drop-bottom" }, wl = /* @__PURE__ */ K({
2229
+ }), al = tl, ll = al, sl = { class: "drop-in" }, nl = { class: "drop-list" }, rl = ["data-adjust-scale", "onClick"], il = { class: "drop-bottom" }, ol = /* @__PURE__ */ B({
2574
2230
  __name: "KrdsResize",
2575
2231
  emits: ["update:modelValue", "close"],
2576
- setup(e, { emit: n }) {
2577
- const a = n, l = D(!1), t = D(), o = D(), r = D("md"), h = [
2578
- { key: "sm", label: "작게", zoom: "0.9" },
2579
- { key: "md", label: "보통", zoom: "1" },
2580
- { key: "lg", label: "조금 크게", zoom: "1.1" },
2581
- { key: "xlg", label: "크게", zoom: "1.3" },
2582
- { key: "xxlg", label: "가장 크게", zoom: "1.5" }
2583
- ], u = () => {
2584
- l.value = !l.value, l.value && t.value && S();
2585
- }, g = () => {
2232
+ setup(e, { emit: a }) {
2233
+ const n = a, l = L(!1), s = L(), r = L(), o = L("md"), v = [
2234
+ {
2235
+ key: "sm",
2236
+ label: "작게",
2237
+ zoom: "0.9"
2238
+ },
2239
+ {
2240
+ key: "md",
2241
+ label: "보통",
2242
+ zoom: "1"
2243
+ },
2244
+ {
2245
+ key: "lg",
2246
+ label: "조금 크게",
2247
+ zoom: "1.1"
2248
+ },
2249
+ {
2250
+ key: "xlg",
2251
+ label: "크게",
2252
+ zoom: "1.3"
2253
+ },
2254
+ {
2255
+ key: "xxlg",
2256
+ label: "가장 크게",
2257
+ zoom: "1.5"
2258
+ }
2259
+ ], f = () => {
2260
+ l.value = !l.value, l.value && s.value && S();
2261
+ }, b = () => {
2586
2262
  l.value = !1;
2587
- }, y = (d) => {
2588
- g(), a("close"), o.value?.focus(), r.value = d.key, document.body.style.zoom = d?.zoom;
2589
- }, C = () => {
2590
- const d = h.find((v) => v.key === "md");
2591
- d && y(d);
2263
+ }, g = (u) => {
2264
+ b(), n("close"), r.value?.focus(), o.value = u.key, document.body.style.zoom = u?.zoom;
2265
+ }, _ = () => {
2266
+ const u = v.find((h) => h.key === "md");
2267
+ u && g(u);
2592
2268
  }, S = () => {
2593
- if (!t.value) return;
2594
- const d = t.value.querySelector(".drop-menu");
2595
- if (!d) return;
2596
- const v = d.getBoundingClientRect(), $ = window.innerWidth;
2597
- t.value.classList.remove("drop-left", "drop-right"), v.left < 0 ? t.value.classList.add("drop-left") : $ < v.left + v.width && t.value.classList.add("drop-right");
2598
- }, V = (d) => {
2599
- d.key === "Escape" && (g(), o.value?.focus());
2600
- }, m = (d) => {
2601
- t.value?.contains(d.target) || g();
2602
- }, i = (d) => {
2603
- t.value?.contains(d.relatedTarget) || g();
2604
- }, f = (d) => {
2605
- if (!t.value) return;
2606
- t.value.querySelectorAll(".drop-list .item-link").forEach((F) => {
2607
- F.style.position = "relative", F.style.zIndex = "0";
2269
+ if (!s.value) return;
2270
+ const u = s.value.querySelector(".drop-menu");
2271
+ if (!u) return;
2272
+ const h = u.getBoundingClientRect(), m = window.innerWidth;
2273
+ s.value.classList.remove("drop-left", "drop-right"), h.left < 0 ? s.value.classList.add("drop-left") : m < h.left + h.width && s.value.classList.add("drop-right");
2274
+ }, V = (u) => {
2275
+ u.key === "Escape" && (b(), r.value?.focus());
2276
+ }, d = (u) => {
2277
+ s.value?.contains(u.target) || b();
2278
+ }, i = (u) => {
2279
+ s.value?.contains(u.relatedTarget) || b();
2280
+ }, c = (u) => {
2281
+ if (!s.value) return;
2282
+ s.value.querySelectorAll(".drop-list .item-link").forEach((m) => {
2283
+ m.style.position = "relative", m.style.zIndex = "0";
2608
2284
  });
2609
- const $ = d.target;
2610
- $.style.zIndex = "1";
2285
+ const h = u.target;
2286
+ h.style.zIndex = "1";
2611
2287
  };
2612
- return ne(l, (d) => {
2613
- d ? (document.addEventListener("keydown", V), document.addEventListener("click", m)) : (document.removeEventListener("keydown", V), document.removeEventListener("click", m));
2288
+ return re(l, (u) => {
2289
+ u ? (document.addEventListener("keydown", V), document.addEventListener("click", d)) : (document.removeEventListener("keydown", V), document.removeEventListener("click", d));
2614
2290
  }), Z(() => {
2615
- document.removeEventListener("keydown", V), document.removeEventListener("click", m);
2616
- }), (d, v) => (w(), x("div", {
2291
+ document.removeEventListener("keydown", V), document.removeEventListener("click", d);
2292
+ }), (u, h) => (D(), T("div", {
2617
2293
  ref_key: "dropdownRef",
2618
- ref: t,
2294
+ ref: s,
2619
2295
  class: "krds-drop-wrap krds-resize",
2620
2296
  "data-adjust": "scale",
2621
2297
  onFocusout: i
2622
- }, [
2623
- c("button", {
2624
- ref_key: "buttonRef",
2625
- ref: o,
2626
- type: "button",
2627
- class: "krds-btn small text drop-btn",
2628
- onClick: u
2629
- }, [...v[0] || (v[0] = [
2630
- H(" 화면크기 ", -1),
2631
- c("i", { class: "svg-icon ico-toggle" }, null, -1)
2632
- ])], 512),
2633
- c("div", {
2634
- class: "drop-menu",
2635
- style: se({ display: l.value ? "block" : "none" })
2636
- }, [
2637
- c("div", gl, [
2638
- c("ul", bl, [
2639
- (w(), x(j, null, G(h, ($) => c("li", {
2640
- key: $.key
2641
- }, [
2642
- c("button", {
2643
- type: "button",
2644
- class: M(["item-link", [$.key, $.key === r.value ? "active" : ""]]),
2645
- "data-adjust-scale": $.key,
2646
- onClick: de((F) => y($), ["prevent"]),
2647
- onFocus: f
2648
- }, E($.label), 43, kl)
2649
- ])), 64))
2650
- ]),
2651
- c("div", Sl, [
2652
- c("button", {
2653
- type: "button",
2654
- class: "krds-btn medium text",
2655
- "data-adjust-scale": "md",
2656
- onClick: de(C, ["prevent"]),
2657
- onFocus: f
2658
- }, [...v[1] || (v[1] = [
2659
- c("i", { class: "svg-icon ico-reset" }, null, -1),
2660
- H(" 초기화 ", -1)
2661
- ])], 32)
2662
- ])
2663
- ])
2664
- ], 4)
2665
- ], 544));
2298
+ }, [p("button", {
2299
+ ref_key: "buttonRef",
2300
+ ref: r,
2301
+ type: "button",
2302
+ class: "krds-btn small text drop-btn",
2303
+ onClick: f
2304
+ }, [...h[0] || (h[0] = [N(" 화면크기 ", -1), p("i", { class: "svg-icon ico-toggle" }, null, -1)])], 512), p("div", {
2305
+ class: "drop-menu",
2306
+ style: ne({ display: l.value ? "block" : "none" })
2307
+ }, [p("div", sl, [p("ul", nl, [(D(), T(W, null, Y(v, (m) => p("li", { key: m.key }, [p("button", {
2308
+ type: "button",
2309
+ class: R(["item-link", [m.key, m.key === o.value ? "active" : ""]]),
2310
+ "data-adjust-scale": m.key,
2311
+ onClick: ce((w) => g(m), ["prevent"]),
2312
+ onFocus: c
2313
+ }, M(m.label), 43, rl)])), 64))]), p("div", il, [p("button", {
2314
+ type: "button",
2315
+ class: "krds-btn medium text",
2316
+ "data-adjust-scale": "md",
2317
+ onClick: ce(_, ["prevent"]),
2318
+ onFocus: c
2319
+ }, [...h[1] || (h[1] = [p("i", { class: "svg-icon ico-reset" }, null, -1), N(" 초기화 ", -1)])], 32)])])], 4)], 544));
2666
2320
  }
2667
- }), Cl = K({
2321
+ }), dl = ol, ul = dl, cl = B({
2668
2322
  name: "KrdsModal",
2669
2323
  props: {
2670
2324
  modelValue: {
@@ -2697,100 +2351,73 @@ const Ct = K({
2697
2351
  }
2698
2352
  },
2699
2353
  emits: ["update:modelValue"],
2700
- /* eslint-disable @typescript-eslint/no-explicit-any -- Vue SlotsType requires `any` for h() children compatibility */
2701
2354
  slots: Object,
2702
- /* eslint-enable @typescript-eslint/no-explicit-any */
2703
- setup(e, { slots: n, emit: a }) {
2704
- const l = Ee()?.uid, t = b(() => e.modalId ?? `krds-modal-${l}`), o = b({
2355
+ setup(e, { slots: a, emit: n }) {
2356
+ const l = Ie()?.uid, s = k(() => e.modalId ?? `krds-modal-${l}`), r = k({
2705
2357
  get: () => e.modelValue,
2706
- set: (f) => a("update:modelValue", f)
2707
- }), r = b(() => `tit_${t.value}`), h = b(() => ({
2358
+ set: (c) => n("update:modelValue", c)
2359
+ }), o = k(() => `tit_${s.value}`), v = k(() => ({
2708
2360
  small: "modal-sm",
2709
2361
  medium: "modal-md",
2710
2362
  large: "modal-lg"
2711
- })[e.size]), u = () => {
2712
- o.value = !1;
2363
+ })[e.size]), f = () => {
2364
+ r.value = !1;
2713
2365
  };
2714
- let g = "", y = null;
2715
- const C = D(null), S = (f) => Array.from(f.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter(
2716
- (v) => !v.hasAttribute("disabled") && v.getAttribute("tabindex") !== "-1"
2717
- ), V = (f) => {
2718
- if (!C.value || f.key !== "Tab") return;
2719
- const d = S(C.value);
2720
- if (d.length === 0) {
2721
- f.preventDefault();
2366
+ let b = "", g = null;
2367
+ const _ = L(null), S = (c) => Array.from(c.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter((u) => !u.hasAttribute("disabled") && u.getAttribute("tabindex") !== "-1"), V = (c) => {
2368
+ if (!_.value || c.key !== "Tab") return;
2369
+ const u = S(_.value);
2370
+ if (u.length === 0) {
2371
+ c.preventDefault();
2722
2372
  return;
2723
2373
  }
2724
- const v = d[0], $ = d[d.length - 1];
2725
- f.shiftKey && document.activeElement === v ? (f.preventDefault(), $.focus()) : !f.shiftKey && document.activeElement === $ && (f.preventDefault(), v.focus());
2726
- }, m = (f) => {
2727
- f.key === "Escape" && !e.persistent && u();
2374
+ const h = u[0], m = u[u.length - 1];
2375
+ c.shiftKey && document.activeElement === h ? (c.preventDefault(), m.focus()) : !c.shiftKey && document.activeElement === m && (c.preventDefault(), h.focus());
2376
+ }, d = (c) => {
2377
+ c.key === "Escape" && !e.persistent && f();
2728
2378
  }, i = () => {
2729
- document.body.style.overflow = g, document.removeEventListener("keydown", V), document.removeEventListener("keydown", m), y && (y.focus(), y = null), C.value = null;
2379
+ document.body.style.overflow = b, document.removeEventListener("keydown", V), document.removeEventListener("keydown", d), g && (g.focus(), g = null), _.value = null;
2730
2380
  };
2731
- return ne(
2732
- () => e.modelValue,
2733
- async (f) => {
2734
- if (f) {
2735
- g = document.body.style.overflow, document.body.style.overflow = "hidden", y = document.activeElement, await we();
2736
- const d = document.getElementById(t.value);
2737
- if (d) {
2738
- C.value = d;
2739
- const v = d.querySelector(".modal-conts");
2740
- v && (v.setAttribute("tabindex", "-1"), v.focus()), document.addEventListener("keydown", V), document.addEventListener("keydown", m);
2741
- }
2742
- } else
2743
- i();
2744
- },
2745
- { immediate: !0 }
2746
- ), ce(() => {
2381
+ return re(() => e.modelValue, async (c) => {
2382
+ if (c) {
2383
+ b = document.body.style.overflow, document.body.style.overflow = "hidden", g = document.activeElement, await Ke();
2384
+ const u = document.getElementById(s.value);
2385
+ if (u) {
2386
+ _.value = u;
2387
+ const h = u.querySelector(".modal-conts");
2388
+ h && (h.setAttribute("tabindex", "-1"), h.focus()), document.addEventListener("keydown", V), document.addEventListener("keydown", d);
2389
+ }
2390
+ } else i();
2391
+ }, { immediate: !0 }), fe(() => {
2747
2392
  e.modelValue && i();
2748
2393
  }), () => {
2749
- if (!o.value) return null;
2750
- const f = {
2751
- id: t.value,
2394
+ if (!r.value) return null;
2395
+ const c = {
2396
+ id: s.value,
2752
2397
  class: "krds-modal fade in shown",
2753
2398
  role: "dialog",
2754
2399
  "aria-modal": !0,
2755
- "aria-labelledby": r.value
2400
+ "aria-labelledby": o.value
2756
2401
  };
2757
- return e.full ? f["data-type"] = "full" : e.bottomSheet && (f["data-type"] = "bottom-sheet"), s(
2758
- Le,
2759
- { to: "body" },
2760
- s("section", f, [
2761
- s("div", { class: `modal-dialog ${h.value}` }, [
2762
- s(
2763
- "div",
2764
- { class: "modal-content" },
2765
- [
2766
- // modal title
2767
- n.title ? s("div", { class: "modal-header" }, [s("h2", { id: r.value, class: "modal-title" }, n.title())]) : null,
2768
- // modal contents
2769
- s("div", { class: "modal-conts" }, [s("div", { class: "conts-area" }, n.default?.())]),
2770
- // modal btn
2771
- n.footer ? s("div", { class: "modal-btn btn-wrap" }, n.footer()) : null,
2772
- // close button
2773
- s(
2774
- "button",
2775
- {
2776
- type: "button",
2777
- class: "krds-btn medium icon btn-close close-modal",
2778
- onClick: u
2779
- },
2780
- [s("span", { class: "sr-only" }, "닫기"), s("i", { class: "svg-icon ico-popup-close" })]
2781
- )
2782
- ].filter(Boolean)
2783
- )
2784
- ]),
2785
- s("div", {
2786
- class: e.backdrop ? "modal-back in" : "modal-back",
2787
- onClick: e.persistent ? void 0 : u
2788
- })
2789
- ])
2790
- );
2402
+ return e.full ? c["data-type"] = "full" : e.bottomSheet && (c["data-type"] = "bottom-sheet"), t(ze, { to: "body" }, t("section", c, [t("div", { class: `modal-dialog ${v.value}` }, [t("div", { class: "modal-content" }, [
2403
+ a.title ? t("div", { class: "modal-header" }, [t("h2", {
2404
+ id: o.value,
2405
+ class: "modal-title"
2406
+ }, a.title())]) : null,
2407
+ t("div", { class: "modal-conts" }, [t("div", { class: "conts-area" }, a.default?.())]),
2408
+ a.footer ? t("div", { class: "modal-btn btn-wrap" }, a.footer()) : null,
2409
+ t("button", {
2410
+ type: "button",
2411
+ class: "krds-btn medium icon btn-close close-modal",
2412
+ onClick: f
2413
+ }, [t("span", { class: "sr-only" }, "닫기"), t("i", { class: "svg-icon ico-popup-close" })])
2414
+ ].filter(Boolean))]), t("div", {
2415
+ class: e.backdrop ? "modal-back in" : "modal-back",
2416
+ onClick: e.persistent ? void 0 : f
2417
+ })]));
2791
2418
  };
2792
2419
  }
2793
- }), xl = K({
2420
+ }), fl = cl, vl = B({
2794
2421
  name: "KrdsAccordionGroup",
2795
2422
  props: {
2796
2423
  typeLine: {
@@ -2802,20 +2429,18 @@ const Ct = K({
2802
2429
  default: void 0
2803
2430
  }
2804
2431
  },
2805
- setup(e, { slots: n }) {
2806
- const a = b(() => {
2432
+ setup(e, { slots: a }) {
2433
+ const n = k(() => {
2807
2434
  const l = ["krds-accordion"];
2808
2435
  return e.typeLine && l.push("type-line"), e.class && l.push(e.class), l;
2809
2436
  });
2810
- return () => s(
2811
- "div",
2812
- {
2813
- class: a.value
2814
- },
2815
- n.default?.()
2816
- );
2437
+ return () => t("div", { class: n.value }, a.default?.());
2817
2438
  }
2818
- }), $l = ["id"], Bl = { class: "accordion-header" }, Kl = ["id", "aria-expanded", "aria-controls"], _l = ["id", "aria-labelledby"], Dl = { class: "accordion-body" }, zl = /* @__PURE__ */ K({
2439
+ }), pl = vl, hl = ["id"], ml = { class: "accordion-header" }, yl = [
2440
+ "id",
2441
+ "aria-expanded",
2442
+ "aria-controls"
2443
+ ], gl = ["id", "aria-labelledby"], bl = { class: "accordion-body" }, kl = /* @__PURE__ */ B({
2819
2444
  __name: "KrdsAccordionItem",
2820
2445
  props: {
2821
2446
  id: {},
@@ -2824,42 +2449,27 @@ const Ct = K({
2824
2449
  content: {}
2825
2450
  },
2826
2451
  emits: ["toggle"],
2827
- setup(e, { emit: n }) {
2828
- const a = e, l = n, t = b(() => a.openItem === a.id), o = () => {
2829
- l("toggle", a.id);
2452
+ setup(e, { emit: a }) {
2453
+ const n = e, l = a, s = k(() => n.openItem === n.id), r = () => {
2454
+ l("toggle", n.id);
2830
2455
  };
2831
- return (r, h) => (w(), x("div", {
2456
+ return (o, v) => (D(), T("div", {
2832
2457
  id: e.id,
2833
- class: M(["accordion-item", { active: t.value }])
2834
- }, [
2835
- c("h5", Bl, [
2836
- c("button", {
2837
- id: `accordion-header-${e.id}`,
2838
- type: "button",
2839
- class: "btn-accordion",
2840
- "aria-expanded": t.value,
2841
- "aria-controls": `accordion-collapse-${e.id}`,
2842
- onClick: h[0] || (h[0] = (u) => o())
2843
- }, [
2844
- J(r.$slots, "title", {}, () => [
2845
- H(E(e.title), 1)
2846
- ])
2847
- ], 8, Kl)
2848
- ]),
2849
- c("div", {
2850
- id: `accordion-collapse-${e.id}`,
2851
- class: "accordion-collapse collapse",
2852
- "aria-labelledby": `accordion-header-${e.id}`
2853
- }, [
2854
- c("div", Dl, [
2855
- J(r.$slots, "content", {}, () => [
2856
- H(E(e.content), 1)
2857
- ])
2858
- ])
2859
- ], 8, _l)
2860
- ], 10, $l));
2458
+ class: R(["accordion-item", { active: s.value }])
2459
+ }, [p("h5", ml, [p("button", {
2460
+ id: `accordion-header-${e.id}`,
2461
+ type: "button",
2462
+ class: "btn-accordion",
2463
+ "aria-expanded": s.value,
2464
+ "aria-controls": `accordion-collapse-${e.id}`,
2465
+ onClick: v[0] || (v[0] = (f) => r())
2466
+ }, [J(o.$slots, "title", {}, () => [N(M(e.title), 1)])], 8, yl)]), p("div", {
2467
+ id: `accordion-collapse-${e.id}`,
2468
+ class: "accordion-collapse collapse",
2469
+ "aria-labelledby": `accordion-header-${e.id}`
2470
+ }, [p("div", bl, [J(o.$slots, "content", {}, () => [N(M(e.content), 1)])])], 8, gl)], 10, hl));
2861
2471
  }
2862
- }), Vl = K({
2472
+ }), Sl = kl, Kl = Sl, wl = B({
2863
2473
  name: "KrdsTts",
2864
2474
  props: {
2865
2475
  text: {
@@ -2887,163 +2497,650 @@ const Ct = K({
2887
2497
  default: void 0
2888
2498
  }
2889
2499
  },
2890
- emits: ["play", "pause", "end", "error"],
2891
- setup(e, { emit: n }) {
2892
- const a = D(!1);
2500
+ emits: [
2501
+ "play",
2502
+ "pause",
2503
+ "end",
2504
+ "error"
2505
+ ],
2506
+ setup(e, { emit: a }) {
2507
+ const n = L(!1);
2893
2508
  let l = null;
2894
- const t = () => {
2895
- typeof window < "u" && window.speechSynthesis && window.speechSynthesis.cancel(), a.value = !1, l = null;
2896
- }, o = () => {
2509
+ const s = () => {
2510
+ typeof window < "u" && window.speechSynthesis && window.speechSynthesis.cancel(), n.value = !1, l = null;
2511
+ }, r = () => {
2897
2512
  if (!e.disabled) {
2898
- if (a.value) {
2899
- t(), n("pause");
2513
+ if (n.value) {
2514
+ s(), a("pause");
2900
2515
  return;
2901
2516
  }
2902
2517
  if (typeof window > "u" || !window.speechSynthesis) {
2903
- n("error", new Error("SpeechSynthesis API is not supported"));
2518
+ a("error", /* @__PURE__ */ new Error("SpeechSynthesis API is not supported"));
2904
2519
  return;
2905
2520
  }
2906
2521
  window.speechSynthesis.cancel(), l = new SpeechSynthesisUtterance(e.text), l.lang = "ko-KR", l.onstart = () => {
2907
- a.value = !0;
2522
+ n.value = !0;
2908
2523
  }, l.onend = () => {
2909
- a.value = !1, l = null, n("end");
2910
- }, l.onerror = (u) => {
2911
- a.value = !1, l = null, u.error !== "canceled" && n("error", new Error(u.error));
2912
- }, window.speechSynthesis.speak(l), n("play", e.text);
2524
+ n.value = !1, l = null, a("end");
2525
+ }, l.onerror = (f) => {
2526
+ n.value = !1, l = null, f.error !== "canceled" && a("error", new Error(f.error));
2527
+ }, window.speechSynthesis.speak(l), a("play", e.text);
2913
2528
  }
2914
- }, r = b(() => {
2915
- const u = ["krds-tts"];
2916
- return e.size && u.push(e.size), a.value ? u.push("pause") : e.icon === "play" && u.push("play"), e.class && u.push(e.class), u;
2917
- }), h = b(() => a.value ? "ico-stop" : e.icon === "play" ? "ico-play" : "ico-volume");
2918
- return ce(() => {
2919
- t();
2529
+ }, o = k(() => {
2530
+ const f = ["krds-tts"];
2531
+ return e.size && f.push(e.size), n.value ? f.push("pause") : e.icon === "play" && f.push("play"), e.class && f.push(e.class), f;
2532
+ }), v = k(() => n.value ? "ico-stop" : e.icon === "play" ? "ico-play" : "ico-volume");
2533
+ return fe(() => {
2534
+ s();
2920
2535
  }), () => {
2921
- const u = [s("span", { class: "krds-tts-icon", "aria-hidden": "true" }, [s("i", { class: `svg-icon ${h.value}` })])];
2922
- return e.label && u.push(s("span", { class: "krds-tts-text" }, e.label)), s(
2923
- "button",
2924
- {
2925
- type: "button",
2926
- class: r.value,
2927
- disabled: e.disabled || void 0,
2928
- onClick: o
2929
- },
2930
- u
2931
- );
2536
+ const f = [t("span", {
2537
+ class: "krds-tts-icon",
2538
+ "aria-hidden": "true"
2539
+ }, [t("i", { class: `svg-icon ${v.value}` })])];
2540
+ return e.label && f.push(t("span", { class: "krds-tts-text" }, e.label)), t("button", {
2541
+ type: "button",
2542
+ class: o.value,
2543
+ disabled: e.disabled || void 0,
2544
+ onClick: r
2545
+ }, f);
2546
+ };
2547
+ }
2548
+ }), _l = wl, Cl = B({
2549
+ name: "KrdsTable",
2550
+ props: {
2551
+ caption: {
2552
+ type: String,
2553
+ default: void 0
2554
+ },
2555
+ columns: {
2556
+ type: Array,
2557
+ required: !0
2558
+ },
2559
+ rows: {
2560
+ type: Array,
2561
+ required: !0
2562
+ },
2563
+ class: {
2564
+ type: String,
2565
+ default: void 0
2566
+ }
2567
+ },
2568
+ emits: ["row-click"],
2569
+ slots: Object,
2570
+ setup(e, { emit: a, slots: n }) {
2571
+ const l = k(() => {
2572
+ const d = ["tbl"];
2573
+ return e.class && d.push(e.class), d;
2574
+ }), s = k(() => ["krds-table-wrap"]), r = (d) => d.headerStyle || void 0, o = (d) => {
2575
+ const i = [];
2576
+ return d.align && i.push(`text-${d.align}`), d.headerClasses && i.push(d.headerClasses), i.length > 0 ? i : void 0;
2577
+ }, v = (d, i) => {
2578
+ if (i.style)
2579
+ return typeof i.style == "function" ? i.style(d) : i.style;
2580
+ }, f = (d, i) => {
2581
+ const c = [];
2582
+ if (i.align && c.push(`text-${i.align}`), i.classes) {
2583
+ const u = typeof i.classes == "function" ? i.classes(d) : i.classes;
2584
+ c.push(u);
2585
+ }
2586
+ return c.length > 0 ? c : void 0;
2587
+ }, b = () => !e.columns.length || !e.columns.some((d) => d.headerStyle && d.headerStyle.includes("width")) ? null : t("colgroup", e.columns.map((d) => {
2588
+ if (!d.headerStyle) return t("col");
2589
+ const i = d.headerStyle.match(/width\s*:\s*([^;]+)/i);
2590
+ return t("col", { style: i ? { width: i[1].trim() } : void 0 });
2591
+ })), g = () => e.columns.length ? t("thead", [t("tr", e.columns.map((d) => {
2592
+ const i = r(d);
2593
+ return t("th", {
2594
+ scope: "col",
2595
+ class: o(d),
2596
+ style: i
2597
+ }, d.label);
2598
+ }))]) : null, _ = (d, i) => typeof i.field == "function" ? i.field(d) : d[i.field], S = () => e.rows.length ? t("tbody", e.rows.map((d, i) => t("tr", { onClick: () => V(d, i) }, e.columns.map((c, u) => {
2599
+ const h = _(d, c), m = typeof h == "function" ? h() : h, w = v(d, c), C = f(d, c);
2600
+ return t(u === 0 ? "th" : "td", {
2601
+ scope: u === 0 ? "row" : void 0,
2602
+ class: C,
2603
+ style: w
2604
+ }, m);
2605
+ })))) : t("tbody", [t("tr", [t("td", {
2606
+ colspan: e.columns.length || 1,
2607
+ class: "text-center"
2608
+ }, n["no-data"] ? n["no-data"]() : "데이터가 없습니다.")])]), V = (d, i) => {
2609
+ a("row-click", d, i);
2932
2610
  };
2611
+ return () => t("div", { class: s.value }, [t("table", { class: l.value }, [
2612
+ e.caption && t("caption", e.caption),
2613
+ b(),
2614
+ g(),
2615
+ S()
2616
+ ])]);
2933
2617
  }
2934
- }), be = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2935
- __proto__: null,
2936
- KrdsAccordionGroup: xl,
2937
- KrdsAccordionItem: zl,
2938
- KrdsBadge: gt,
2939
- KrdsBreadcrumb: Lt,
2940
- KrdsButton: Ce,
2941
- KrdsButtonGroup: Me,
2942
- KrdsCheckArea: xt,
2943
- KrdsCheckbox: $t,
2944
- KrdsCoachMark: nl,
2945
- KrdsContextualHelp: Jt,
2946
- KrdsDateInput: vt,
2947
- KrdsFileUpload: yt,
2948
- KrdsFormGroup: Oe,
2949
- KrdsFormHint: Pe,
2950
- KrdsFormLabel: Fe,
2951
- KrdsIcon: Te,
2952
- KrdsInPageNavigation: Mt,
2953
- KrdsInput: Ae,
2954
- KrdsLanguageSwitcher: yl,
2955
- KrdsLink: Re,
2956
- KrdsMasthead: St,
2957
- KrdsModal: Cl,
2958
- KrdsPagination: Ot,
2959
- KrdsPanel: Wt,
2960
- KrdsRadio: Bt,
2961
- KrdsResize: wl,
2962
- KrdsSelect: mt,
2963
- KrdsSkipLink: Dt,
2964
- KrdsSpinner: xe,
2965
- KrdsStep: _t,
2966
- KrdsStepIndicator: Kt,
2967
- KrdsTag: bt,
2968
- KrdsTagGroup: kt,
2969
- KrdsTextarea: ht,
2970
- KrdsToggleSwitch: Ct,
2971
- KrdsTooltip: rl,
2972
- KrdsTts: Vl
2973
- }, Symbol.toStringTag, { value: "Module" })), ve = {
2974
- mounted(e, n) {
2975
- n.value !== !1 && e.classList.add("sr-only");
2618
+ }), $l = Cl, xl = B({
2619
+ name: "KrdsHeader",
2620
+ props: {
2621
+ id: {
2622
+ type: String,
2623
+ default: "krds-header"
2624
+ },
2625
+ mobileNavId: {
2626
+ type: String,
2627
+ default: "mobile-nav"
2628
+ },
2629
+ class: {
2630
+ type: String,
2631
+ default: void 0
2632
+ }
2976
2633
  },
2977
- updated(e, n) {
2978
- n.value === !1 ? e.classList.remove("sr-only") : e.classList.add("sr-only");
2634
+ slots: Object,
2635
+ setup(e, { slots: a }) {
2636
+ const n = k(() => {
2637
+ const l = [];
2638
+ return e.class && l.push(e.class), l;
2639
+ });
2640
+ return () => {
2641
+ const l = [];
2642
+ if (a.utility || a.branding) {
2643
+ const r = [];
2644
+ a.utility && r.push(t("div", { class: "header-utility" }, a.utility())), a.branding && r.push(t("div", { class: "header-branding" }, a.branding())), l.push(t("div", { class: "header-container" }, [t("div", { class: "inner" }, r)]));
2645
+ }
2646
+ a.navigation && l.push(t("nav", { class: "krds-main-menu" }, [t("div", { class: "inner" }, a.navigation())]));
2647
+ const s = [t("div", { class: "header-in" }, l)];
2648
+ return a.mobileNavigation && s.push(t("div", {
2649
+ id: e.mobileNavId,
2650
+ class: "krds-main-menu-mobile"
2651
+ }, a.mobileNavigation())), t("header", {
2652
+ id: e.id,
2653
+ class: n.value
2654
+ }, s);
2655
+ };
2656
+ }
2657
+ }), Bl = xl, Ll = B({
2658
+ name: "KrdsFooter",
2659
+ props: {
2660
+ id: {
2661
+ type: String,
2662
+ default: "krds-footer"
2663
+ },
2664
+ class: {
2665
+ type: String,
2666
+ default: void 0
2667
+ }
2668
+ },
2669
+ setup(e, { slots: a }) {
2670
+ const n = k(() => {
2671
+ const v = [];
2672
+ return e.class && v.push(e.class), v;
2673
+ }), l = () => a.top ? t("div", { class: "foot-quick" }, [t("div", { class: "inner" }, a.top())]) : null, s = () => a.logo ? t("div", { class: "f-logo" }, a.logo()) : null, r = () => a.content ? t("div", { class: "f-cnt" }, a.content()) : null, o = () => a.bottom ? t("div", { class: "f-btm" }, a.bottom()) : null;
2674
+ return () => {
2675
+ const v = l(), f = s(), b = r(), g = o(), _ = [];
2676
+ f && _.push(f), b && _.push(b), g && _.push(g);
2677
+ const S = [];
2678
+ return v && S.push(v), _.length > 0 && S.push(t("div", { class: "inner" }, _)), t("footer", {
2679
+ id: e.id,
2680
+ class: n.value
2681
+ }, S);
2682
+ };
2683
+ }
2684
+ }), Dl = Ll, Tl = B({
2685
+ name: "KrdsDisclosure",
2686
+ props: {
2687
+ title: {
2688
+ type: String,
2689
+ required: !0
2690
+ },
2691
+ modelValue: {
2692
+ type: Boolean,
2693
+ default: !1
2694
+ }
2695
+ },
2696
+ emits: ["update:modelValue"],
2697
+ setup(e, { emit: a, slots: n }) {
2698
+ const l = `disclosure-${ae()}`, s = k(() => e.modelValue), r = () => {
2699
+ a("update:modelValue", !e.modelValue);
2700
+ };
2701
+ return () => t("div", { class: [
2702
+ "krds-disclosure",
2703
+ "conts-expand-area",
2704
+ s.value && "active"
2705
+ ] }, [t("button", {
2706
+ type: "button",
2707
+ class: "btn-conts-expand",
2708
+ onClick: r,
2709
+ "aria-expanded": s.value,
2710
+ "aria-controls": l
2711
+ }, e.title), t("div", {
2712
+ id: l,
2713
+ class: "expand-wrap",
2714
+ inert: !s.value
2715
+ }, [t("div", { class: "expand-in" }, n.default?.())])]);
2716
+ }
2717
+ }), Vl = Tl, zl = B({
2718
+ name: "KrdsIdentifier",
2719
+ props: {
2720
+ class: {
2721
+ type: String,
2722
+ default: void 0
2723
+ },
2724
+ logoLabel: {
2725
+ type: String,
2726
+ default: "KRDS - Korea Design System"
2727
+ }
2728
+ },
2729
+ emits: ["click"],
2730
+ setup(e, { emit: a, slots: n }) {
2731
+ const l = k(() => {
2732
+ const r = ["krds-identifier"];
2733
+ return e.class && r.push(e.class), r;
2734
+ }), s = (r) => {
2735
+ a("click", r);
2736
+ };
2737
+ return () => t("div", {
2738
+ class: l.value,
2739
+ onClick: s
2740
+ }, [t("span", { class: "logo" }, [t("span", { class: "sr-only" }, e.logoLabel)]), t("span", { class: "ban-txt" }, n.default?.())]);
2741
+ }
2742
+ }), Il = zl, El = 50, Fl = B({
2743
+ name: "KrdsLayout",
2744
+ props: {
2745
+ id: {
2746
+ type: String,
2747
+ default: "wrap"
2748
+ },
2749
+ class: {
2750
+ type: String,
2751
+ default: void 0
2752
+ },
2753
+ enableScrollDetection: {
2754
+ type: Boolean,
2755
+ default: !0
2756
+ }
2757
+ },
2758
+ emits: {
2759
+ resize: (e) => !0,
2760
+ scroll: (e) => !0,
2761
+ "scroll-height": (e) => !0
2762
+ },
2763
+ setup(e, { slots: a, emit: n }) {
2764
+ const l = L(0), s = L(0), r = L(0), o = L(null), v = L(null), f = L(null), b = () => {
2765
+ const d = s.value;
2766
+ l.value = window.scrollY, s.value = document.body.scrollHeight, d !== s.value && d > 0 && n("scroll-height", s.value);
2767
+ }, g = () => {
2768
+ if (!v.value || !e.enableScrollDetection) return;
2769
+ const d = document.querySelector("#container");
2770
+ if (!d) return;
2771
+ const i = d.offsetTop, c = window.scrollY, u = c > r.value, h = c < r.value;
2772
+ c > i + El ? u ? (v.value.classList.add("scroll-down"), v.value.classList.remove("scroll-up"), o.value = "down") : h && (v.value.classList.add("scroll-up"), v.value.classList.remove("scroll-down"), o.value = "up") : (v.value.classList.remove("scroll-down", "scroll-up"), o.value = null), r.value = c;
2773
+ }, _ = () => {
2774
+ b(), g(), n("scroll", {
2775
+ scrollY: l.value,
2776
+ scrollHeight: s.value,
2777
+ direction: o.value,
2778
+ timestamp: Date.now()
2779
+ });
2780
+ }, S = (d) => {
2781
+ for (const i of d) {
2782
+ const { width: c, height: u } = i.contentRect;
2783
+ n("resize", {
2784
+ width: c,
2785
+ height: u
2786
+ });
2787
+ }
2788
+ }, V = k(() => {
2789
+ const d = ["g-wrap"];
2790
+ return e.class && d.push(e.class), d;
2791
+ });
2792
+ return te(() => {
2793
+ e.enableScrollDetection && (b(), window.addEventListener("scroll", _, { passive: !0 })), v.value && typeof ResizeObserver < "u" && (f.value = new ResizeObserver(S), f.value.observe(v.value));
2794
+ }), Z(() => {
2795
+ e.enableScrollDetection && window.removeEventListener("scroll", _), f.value && (f.value.disconnect(), f.value = null);
2796
+ }), () => t("div", {
2797
+ id: e.id,
2798
+ class: V.value,
2799
+ ref: v
2800
+ }, a.default?.());
2801
+ }
2802
+ }), Ml = Fl, Al = B({
2803
+ name: "KrdsSideNavigation",
2804
+ props: {
2805
+ title: {
2806
+ type: String,
2807
+ required: !0
2808
+ },
2809
+ modelValue: {
2810
+ type: Array,
2811
+ default: () => []
2812
+ }
2813
+ },
2814
+ emits: ["update:modelValue"],
2815
+ setup(e, { emit: a }) {
2816
+ const n = k(() => e.modelValue || []), l = L(/* @__PURE__ */ new Map()), s = L(/* @__PURE__ */ new Map()), r = L(/* @__PURE__ */ new Map()), o = L(null), v = (m, w, C) => {
2817
+ const x = `${w}-${C}`;
2818
+ m ? l.value.set(x, m) : l.value.delete(x);
2819
+ }, f = (m, w, C) => {
2820
+ const x = `${w}-${C}`;
2821
+ m ? s.value.set(x, m) : s.value.delete(x);
2822
+ }, b = (m, w, C) => {
2823
+ const x = `${w}-${C}`;
2824
+ m ? r.value.set(x, m) : r.value.delete(x);
2825
+ }, g = (m) => {
2826
+ a("update:modelValue", n.value.map((w, C) => {
2827
+ if (C === m && w.subItems) {
2828
+ const x = w.expanded, $ = {
2829
+ ...w,
2830
+ expanded: !w.expanded
2831
+ };
2832
+ return x && !$.expanded && ($.subItems = w.subItems.map((y) => ({
2833
+ ...y,
2834
+ expanded: !1
2835
+ })), o.value = null), $;
2836
+ }
2837
+ return w;
2838
+ }));
2839
+ }, _ = (m, w) => {
2840
+ a("update:modelValue", n.value.map((C, x) => x === m && C.subItems ? {
2841
+ ...C,
2842
+ subItems: C.subItems.map(($, y) => {
2843
+ if (y === w && $.subItems) {
2844
+ const K = {
2845
+ ...$,
2846
+ expanded: !$.expanded
2847
+ };
2848
+ if (K.expanded) {
2849
+ const F = `${m}-${w}`;
2850
+ o.value = l.value.get(F) || null;
2851
+ const P = s.value.get(F), A = r.value.get(F);
2852
+ P && A && P.addEventListener("transitionend", () => {
2853
+ A.focus();
2854
+ }, { once: !0 });
2855
+ }
2856
+ return K;
2857
+ }
2858
+ return $;
2859
+ })
2860
+ } : C));
2861
+ }, S = (m, w) => {
2862
+ a("update:modelValue", n.value.map((C, x) => x === m && C.subItems ? {
2863
+ ...C,
2864
+ subItems: C.subItems.map(($, y) => {
2865
+ if (y === w && $.subItems && $.expanded) {
2866
+ if (o.value) {
2867
+ const K = o.value;
2868
+ requestAnimationFrame(() => {
2869
+ K.focus();
2870
+ }), o.value = null;
2871
+ }
2872
+ return {
2873
+ ...$,
2874
+ expanded: !1
2875
+ };
2876
+ }
2877
+ return $;
2878
+ })
2879
+ } : C));
2880
+ }, V = (m, w, C) => {
2881
+ const x = `${w}-${C}`, $ = s.value.get(x);
2882
+ $ && !$.contains(m.relatedTarget) && S(w, C);
2883
+ }, d = (m, w) => {
2884
+ S(m, w);
2885
+ }, i = (m, w) => {
2886
+ m.onClick && m.onClick(w);
2887
+ }, c = (m, w, C) => m.map((x, $) => t("li", {
2888
+ key: `popup-item-${w}-${C}-${$}`,
2889
+ role: "none"
2890
+ }, t("a", {
2891
+ href: x.href || "#",
2892
+ class: "lnb-btn",
2893
+ role: "menuitem",
2894
+ onClick: (y) => i(x, y)
2895
+ }, x.text))), u = (m, w) => m.map((C, x) => t("li", {
2896
+ key: `lnb-subitem-${w}-${x}`,
2897
+ class: ["lnb-subitem", { active: C.expanded }],
2898
+ role: "none"
2899
+ }, [C.subItems ? [t("button", {
2900
+ ref: ($) => v($, w, x),
2901
+ type: "button",
2902
+ class: "lnb-btn lnb-toggle-popup",
2903
+ role: "menuitem",
2904
+ "aria-controls": `lnbmenu-${w}-${x}`,
2905
+ "aria-expanded": C.expanded ? "true" : "false",
2906
+ "aria-haspopup": "true",
2907
+ onClick: () => _(w, x)
2908
+ }, C.text), t("div", {
2909
+ ref: ($) => f($, w, x),
2910
+ id: `lnbmenu-${w}-${x}`,
2911
+ class: ["lnb-submenu-lv2", { active: C.expanded }],
2912
+ role: "menu",
2913
+ onFocusout: ($) => V($, w, x)
2914
+ }, [t("button", {
2915
+ ref: ($) => b($, w, x),
2916
+ type: "button",
2917
+ class: "lnb-btn-tit",
2918
+ onClick: () => d(w, x)
2919
+ }, C.popupTitle || C.text), t("ul", {}, c(C.subItems || [], w, x))])] : t("a", {
2920
+ href: C.href || "#",
2921
+ class: ["lnb-btn", "lnb-link"],
2922
+ role: "menuitem",
2923
+ onClick: ($) => i(C, $)
2924
+ }, C.text)])), h = () => n.value.map((m, w) => t("li", {
2925
+ key: `lnb-item-${w}`,
2926
+ class: ["lnb-item", { active: m.expanded }],
2927
+ role: "none"
2928
+ }, [t("button", {
2929
+ type: "button",
2930
+ class: [
2931
+ "lnb-btn",
2932
+ "lnb-toggle",
2933
+ { active: m.expanded }
2934
+ ],
2935
+ role: "menuitem",
2936
+ "aria-controls": `lnbmenu-${w}`,
2937
+ "aria-expanded": m.expanded ? "true" : "false",
2938
+ onClick: () => g(w)
2939
+ }, m.text), m.subItems ? t("div", { class: "lnb-submenu" }, [t("ul", {
2940
+ id: `lnbmenu-${w}`,
2941
+ role: "menu"
2942
+ }, u(m.subItems, w))]) : null]));
2943
+ return () => t("nav", { class: "krds-side-navigation" }, [t("h2", { class: "lnb-tit" }, e.title), t("ul", {
2944
+ class: "lnb-list",
2945
+ role: "menubar"
2946
+ }, h())]);
2947
+ }
2948
+ }), Rl = Al, Pl = B({
2949
+ name: "KrdsStructuredList",
2950
+ props: { full: {
2951
+ type: Boolean,
2952
+ default: !0
2953
+ } },
2954
+ slots: Object,
2955
+ setup(e, { slots: a }) {
2956
+ return () => {
2957
+ const n = a.cardTop?.(), l = a.cardBody?.(), s = a.cardBtm?.(), r = a.cardBtn?.(), o = t("li", { class: "structured-item" }, [t("div", { class: "in" }, [
2958
+ n && t("div", { class: "card-top" }, n),
2959
+ l && t("div", { class: "card-body" }, l),
2960
+ s && t("div", { class: "card-btm" }, s),
2961
+ r && t("div", { class: "card-btn" }, r)
2962
+ ].filter(Boolean))]);
2963
+ return t("ul", { class: ["krds-structured-list", e.full ? "type-full" : ""] }, [o]);
2964
+ };
2965
+ }
2966
+ }), Hl = Pl, ql = B({
2967
+ name: "KrdsTextList",
2968
+ props: {
2969
+ type: {
2970
+ type: String,
2971
+ default: "ul"
2972
+ },
2973
+ variant: {
2974
+ type: String,
2975
+ default: "dash"
2976
+ }
2977
+ },
2978
+ setup(e, { slots: a }) {
2979
+ return () => t(e.type, { class: ["krds-info-list", e.variant] }, a.default?.());
2980
+ }
2981
+ }), Ol = ql, Nl = B({
2982
+ name: "KrdsCriticalAlerts",
2983
+ props: {
2984
+ type: {
2985
+ type: String,
2986
+ default: "info"
2987
+ },
2988
+ message: {
2989
+ type: String,
2990
+ required: !0
2991
+ },
2992
+ linkHref: {
2993
+ type: String,
2994
+ default: void 0
2995
+ },
2996
+ linkText: {
2997
+ type: String,
2998
+ default: "자세히 보기"
2999
+ }
3000
+ },
3001
+ emits: ["link-click"],
3002
+ setup(e, { emit: a }) {
3003
+ const n = (s) => ({
3004
+ danger: "긴급",
3005
+ ok: "안전",
3006
+ info: "안내"
3007
+ })[s], l = (s) => {
3008
+ a("link-click", s);
3009
+ };
3010
+ return () => t("ul", { class: "krds-critical-alerts" }, [t("li", [t("div", { class: "critical-ban" }, [
3011
+ t("span", { class: ["critical-badge", e.type] }, n(e.type)),
3012
+ t("p", { class: "critical-txt" }, e.message),
3013
+ e.linkHref && t("a", {
3014
+ href: e.linkHref,
3015
+ class: "krds-btn medium link basic",
3016
+ onClick: l
3017
+ }, [t("span", { class: "m-hide" }, e.linkText), t("i", { class: "svg-icon ico-angle right" })])
3018
+ ])])]);
3019
+ }
3020
+ }), jl = Nl, ke = /* @__PURE__ */ we({
3021
+ KrdsAccordionGroup: () => pl,
3022
+ KrdsAccordionItem: () => Kl,
3023
+ KrdsBadge: () => Vt,
3024
+ KrdsBreadcrumb: () => ia,
3025
+ KrdsButton: () => Ae,
3026
+ KrdsButtonGroup: () => Re,
3027
+ KrdsCheckArea: () => Ot,
3028
+ KrdsCheckbox: () => jt,
3029
+ KrdsCoachMark: () => Pa,
3030
+ KrdsContextualHelp: () => Ta,
3031
+ KrdsCriticalAlerts: () => jl,
3032
+ KrdsDateInput: () => wt,
3033
+ KrdsDisclosure: () => Vl,
3034
+ KrdsFileUpload: () => Dt,
3035
+ KrdsFooter: () => Dl,
3036
+ KrdsFormGroup: () => Ue,
3037
+ KrdsFormHint: () => Ge,
3038
+ KrdsFormLabel: () => je,
3039
+ KrdsHeader: () => Bl,
3040
+ KrdsIcon: () => Pe,
3041
+ KrdsIdentifier: () => Il,
3042
+ KrdsInPageNavigation: () => da,
3043
+ KrdsInput: () => Oe,
3044
+ KrdsLanguageSwitcher: () => ll,
3045
+ KrdsLayout: () => Ml,
3046
+ KrdsLink: () => He,
3047
+ KrdsMasthead: () => At,
3048
+ KrdsModal: () => fl,
3049
+ KrdsPagination: () => ya,
3050
+ KrdsPanel: () => wa,
3051
+ KrdsRadio: () => Gt,
3052
+ KrdsResize: () => ul,
3053
+ KrdsSelect: () => xt,
3054
+ KrdsSideNavigation: () => Rl,
3055
+ KrdsSkipLink: () => ea,
3056
+ KrdsSpinner: () => Yt,
3057
+ KrdsStep: () => Qt,
3058
+ KrdsStepIndicator: () => Xt,
3059
+ KrdsStructuredList: () => Hl,
3060
+ KrdsTable: () => $l,
3061
+ KrdsTag: () => It,
3062
+ KrdsTagGroup: () => Ft,
3063
+ KrdsTextList: () => Ol,
3064
+ KrdsTextarea: () => Ct,
3065
+ KrdsToggleSwitch: () => Ht,
3066
+ KrdsTooltip: () => Wa,
3067
+ KrdsTts: () => _l
3068
+ }), pe = {
3069
+ mounted(e, a) {
3070
+ a.value !== !1 && e.classList.add("sr-only");
3071
+ },
3072
+ updated(e, a) {
3073
+ a.value === !1 ? e.classList.remove("sr-only") : e.classList.add("sr-only");
2979
3074
  },
2980
3075
  unmounted(e) {
2981
3076
  e.classList.remove("sr-only");
2982
3077
  }
2983
- }, ke = {
2984
- "sr-only": ve
2985
- }, $e = (e) => {
2986
- e.directive("sr-only", ve);
2987
- }, Se = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2988
- __proto__: null,
2989
- default: ke,
2990
- directives: ke,
2991
- installDirectives: $e,
2992
- vSrOnly: ve
2993
- }, Symbol.toStringTag, { value: "Module" })), Ll = {
2994
- install(e, n = {}) {
2995
- e.provide("krds:config", n);
2996
- const a = n.components || Object.keys(be);
2997
- a.forEach((l) => {
2998
- const t = be[l];
2999
- t && e.component(l, t);
3000
- }), typeof Se == "object" && Se !== null && $e(e), e.config.globalProperties.$krds = {
3001
- version: "__VERSION__"
3002
- }, process.env.NODE_ENV !== "production" && console.log(`[KRDS Vue] v__VERSION__ 설치 완료 - 컴포넌트: ${a.length}개`);
3003
- }
3004
- }, Ml = "__VERSION__";
3078
+ }, oe = /* @__PURE__ */ we({
3079
+ default: () => Se,
3080
+ directives: () => Se,
3081
+ installDirectives: () => $e,
3082
+ vSrOnly: () => pe
3083
+ }), Se = { "sr-only": pe }, $e = (e) => {
3084
+ e.directive("sr-only", pe);
3085
+ }, xe = "0.0.14", Ul = { install(e, a = {}) {
3086
+ e.provide("krds:config", a), (a.components || Object.keys(ke)).forEach((n) => {
3087
+ const l = ke[n];
3088
+ l && e.component(n, l);
3089
+ }), typeof oe == "object" && oe !== null && "installDirectives" in oe && $e(e), e.config.globalProperties.$krds = { version: xe };
3090
+ } }, Xl = xe;
3005
3091
  export {
3006
- xl as KrdsAccordionGroup,
3007
- zl as KrdsAccordionItem,
3008
- gt as KrdsBadge,
3009
- Lt as KrdsBreadcrumb,
3010
- Ce as KrdsButton,
3011
- Me as KrdsButtonGroup,
3012
- xt as KrdsCheckArea,
3013
- $t as KrdsCheckbox,
3014
- nl as KrdsCoachMark,
3015
- Jt as KrdsContextualHelp,
3016
- vt as KrdsDateInput,
3017
- yt as KrdsFileUpload,
3018
- Oe as KrdsFormGroup,
3019
- Pe as KrdsFormHint,
3020
- Fe as KrdsFormLabel,
3021
- Te as KrdsIcon,
3022
- Mt as KrdsInPageNavigation,
3023
- Ae as KrdsInput,
3024
- yl as KrdsLanguageSwitcher,
3025
- Re as KrdsLink,
3026
- St as KrdsMasthead,
3027
- Cl as KrdsModal,
3028
- Ot as KrdsPagination,
3029
- Wt as KrdsPanel,
3030
- Bt as KrdsRadio,
3031
- wl as KrdsResize,
3032
- mt as KrdsSelect,
3033
- Dt as KrdsSkipLink,
3034
- xe as KrdsSpinner,
3035
- _t as KrdsStep,
3036
- Kt as KrdsStepIndicator,
3037
- bt as KrdsTag,
3038
- kt as KrdsTagGroup,
3039
- ht as KrdsTextarea,
3040
- Ct as KrdsToggleSwitch,
3041
- rl as KrdsTooltip,
3042
- Vl as KrdsTts,
3043
- fe as classNames,
3044
- Ll as default,
3045
- ue as generateId,
3046
- El as generateUid,
3047
- Ml as version
3092
+ pl as KrdsAccordionGroup,
3093
+ Kl as KrdsAccordionItem,
3094
+ Vt as KrdsBadge,
3095
+ ia as KrdsBreadcrumb,
3096
+ Ae as KrdsButton,
3097
+ Re as KrdsButtonGroup,
3098
+ Ot as KrdsCheckArea,
3099
+ jt as KrdsCheckbox,
3100
+ Pa as KrdsCoachMark,
3101
+ Ta as KrdsContextualHelp,
3102
+ jl as KrdsCriticalAlerts,
3103
+ wt as KrdsDateInput,
3104
+ Vl as KrdsDisclosure,
3105
+ Dt as KrdsFileUpload,
3106
+ Dl as KrdsFooter,
3107
+ Ue as KrdsFormGroup,
3108
+ Ge as KrdsFormHint,
3109
+ je as KrdsFormLabel,
3110
+ Bl as KrdsHeader,
3111
+ Pe as KrdsIcon,
3112
+ Il as KrdsIdentifier,
3113
+ da as KrdsInPageNavigation,
3114
+ Oe as KrdsInput,
3115
+ ll as KrdsLanguageSwitcher,
3116
+ Ml as KrdsLayout,
3117
+ He as KrdsLink,
3118
+ At as KrdsMasthead,
3119
+ fl as KrdsModal,
3120
+ ya as KrdsPagination,
3121
+ wa as KrdsPanel,
3122
+ Gt as KrdsRadio,
3123
+ ul as KrdsResize,
3124
+ xt as KrdsSelect,
3125
+ Rl as KrdsSideNavigation,
3126
+ ea as KrdsSkipLink,
3127
+ Yt as KrdsSpinner,
3128
+ Qt as KrdsStep,
3129
+ Xt as KrdsStepIndicator,
3130
+ Hl as KrdsStructuredList,
3131
+ $l as KrdsTable,
3132
+ It as KrdsTag,
3133
+ Ft as KrdsTagGroup,
3134
+ Ol as KrdsTextList,
3135
+ Ct as KrdsTextarea,
3136
+ Ht as KrdsToggleSwitch,
3137
+ Wa as KrdsTooltip,
3138
+ _l as KrdsTts,
3139
+ ve as classNames,
3140
+ Ul as default,
3141
+ Gl as generateId,
3142
+ Yl as generateUid,
3143
+ Xl as version
3048
3144
  };
3049
- //# sourceMappingURL=krds-vue.es.js.map
3145
+
3146
+ //# sourceMappingURL=krds-vue.es.js.map