@krds.ui/vue 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +64 -0
  3. package/dist/img/component/icon/head_ico_font_sample.svg +3 -0
  4. package/dist/img/component/icon/head_ico_font_sample_white.svg +3 -0
  5. package/dist/img/component/icon/ico_all.svg +3 -0
  6. package/dist/img/component/icon/ico_angle.svg +3 -0
  7. package/dist/img/component/icon/ico_angle_disabled.svg +3 -0
  8. package/dist/img/component/icon/ico_angle_disabled_inverse.svg +3 -0
  9. package/dist/img/component/icon/ico_angle_inverse.svg +3 -0
  10. package/dist/img/component/icon/ico_arrow_dropdown.svg +3 -0
  11. package/dist/img/component/icon/ico_blog.svg +6 -0
  12. package/dist/img/component/icon/ico_bread_home.svg +3 -0
  13. package/dist/img/component/icon/ico_calendar.svg +3 -0
  14. package/dist/img/component/icon/ico_call.svg +3 -0
  15. package/dist/img/component/icon/ico_checkbox.svg +5 -0
  16. package/dist/img/component/icon/ico_checkbox_checked.svg +5 -0
  17. package/dist/img/component/icon/ico_close.svg +3 -0
  18. package/dist/img/component/icon/ico_complete_fill.svg +4 -0
  19. package/dist/img/component/icon/ico_delete.svg +3 -0
  20. package/dist/img/component/icon/ico_delete_fill.svg +4 -0
  21. package/dist/img/component/icon/ico_download.svg +3 -0
  22. package/dist/img/component/icon/ico_ellipsis.svg +3 -0
  23. package/dist/img/component/icon/ico_email.svg +3 -0
  24. package/dist/img/component/icon/ico_error_fill.svg +4 -0
  25. package/dist/img/component/icon/ico_expand.svg +3 -0
  26. package/dist/img/component/icon/ico_facebook.svg +3 -0
  27. package/dist/img/component/icon/ico_faq.svg +3 -0
  28. package/dist/img/component/icon/ico_file.svg +3 -0
  29. package/dist/img/component/icon/ico_file_figma.svg +13 -0
  30. package/dist/img/component/icon/ico_file_html.svg +13 -0
  31. package/dist/img/component/icon/ico_file_hwp.svg +13 -0
  32. package/dist/img/component/icon/ico_file_pdf.svg +13 -0
  33. package/dist/img/component/icon/ico_file_sketch.svg +13 -0
  34. package/dist/img/component/icon/ico_file_xd.svg +16 -0
  35. package/dist/img/component/icon/ico_filter.svg +5 -0
  36. package/dist/img/component/icon/ico_flag.svg +29 -0
  37. package/dist/img/component/icon/ico_flow_arrow.svg +3 -0
  38. package/dist/img/component/icon/ico_foldable.svg +3 -0
  39. package/dist/img/component/icon/ico_global.svg +3 -0
  40. package/dist/img/component/icon/ico_go.svg +3 -0
  41. package/dist/img/component/icon/ico_go_top.svg +5 -0
  42. package/dist/img/component/icon/ico_help.svg +4 -0
  43. package/dist/img/component/icon/ico_help_fill.svg +4 -0
  44. package/dist/img/component/icon/ico_information.svg +5 -0
  45. package/dist/img/component/icon/ico_information_fill.svg +4 -0
  46. package/dist/img/component/icon/ico_information_fill_high_contrast.svg +5 -0
  47. package/dist/img/component/icon/ico_instagram.svg +3 -0
  48. package/dist/img/component/icon/ico_join.svg +3 -0
  49. package/dist/img/component/icon/ico_like.svg +3 -0
  50. package/dist/img/component/icon/ico_login.svg +3 -0
  51. package/dist/img/component/icon/ico_login_certify_go.svg +4 -0
  52. package/dist/img/component/icon/ico_login_certify_type_01.svg +3 -0
  53. package/dist/img/component/icon/ico_login_certify_type_02.svg +3 -0
  54. package/dist/img/component/icon/ico_login_certify_type_03.svg +3 -0
  55. package/dist/img/component/icon/ico_login_certify_type_04.svg +5 -0
  56. package/dist/img/component/icon/ico_login_certify_type_05.svg +3 -0
  57. package/dist/img/component/icon/ico_login_certify_type_06.svg +3 -0
  58. package/dist/img/component/icon/ico_logo_krds.svg +10 -0
  59. package/dist/img/component/icon/ico_logo_krds_high_contrast.svg +10 -0
  60. package/dist/img/component/icon/ico_logout.svg +3 -0
  61. package/dist/img/component/icon/ico_more.svg +3 -0
  62. package/dist/img/component/icon/ico_my.svg +3 -0
  63. package/dist/img/component/icon/ico_notice_fill.svg +5 -0
  64. package/dist/img/component/icon/ico_notice_fill_blue.svg +5 -0
  65. package/dist/img/component/icon/ico_notice_fill_high_contrast.svg +5 -0
  66. package/dist/img/component/icon/ico_plus.svg +3 -0
  67. package/dist/img/component/icon/ico_print.svg +3 -0
  68. package/dist/img/component/icon/ico_pw_visible_off.svg +3 -0
  69. package/dist/img/component/icon/ico_pw_visible_on.svg +5 -0
  70. package/dist/img/component/icon/ico_reset.svg +3 -0
  71. package/dist/img/component/icon/ico_sch.svg +3 -0
  72. package/dist/img/component/icon/ico_sch_plus.svg +3 -0
  73. package/dist/img/component/icon/ico_scrap.svg +3 -0
  74. package/dist/img/component/icon/ico_setting.svg +3 -0
  75. package/dist/img/component/icon/ico_share.svg +3 -0
  76. package/dist/img/component/icon/ico_sns_x.svg +3 -0
  77. package/dist/img/component/icon/ico_step_done.svg +3 -0
  78. package/dist/img/component/icon/ico_success_fill.svg +4 -0
  79. package/dist/img/component/icon/ico_swiper_play.svg +3 -0
  80. package/dist/img/component/icon/ico_swiper_stop.svg +3 -0
  81. package/dist/img/component/icon/ico_switch_off.svg +6 -0
  82. package/dist/img/component/icon/ico_switch_on.svg +5 -0
  83. package/dist/img/component/icon/ico_tooltip.svg +3 -0
  84. package/dist/img/component/icon/ico_upload.svg +3 -0
  85. package/dist/img/component/icon/ico_urgent_badge_danger.svg +5 -0
  86. package/dist/img/component/icon/ico_urgent_badge_info.svg +7 -0
  87. package/dist/img/component/icon/ico_urgent_badge_ok.svg +5 -0
  88. package/dist/img/component/icon/ico_view_mode.svg +3 -0
  89. package/dist/img/component/icon/ico_warning_fill.svg +9 -0
  90. package/dist/img/component/icon/ico_youtube.svg +3 -0
  91. package/dist/krds-vue.es.js +1417 -0
  92. package/dist/krds-vue.es.js.map +1 -0
  93. package/dist/krds-vue.umd.js +2 -0
  94. package/dist/krds-vue.umd.js.map +1 -0
  95. package/dist/style.css +1 -0
  96. package/dist/types/index.d.ts +1039 -0
  97. package/package.json +117 -0
@@ -0,0 +1,1417 @@
1
+ import { defineComponent as b, computed as v, h as d, ref as B, onMounted as fe, onBeforeUnmount as ve, createElementBlock as x, openBlock as D, createElementVNode as o, normalizeClass as $, withDirectives as q, unref as C, toDisplayString as F, Fragment as O, renderList as T, vShow as L, createBlock as he, withCtx as ye, createTextVNode as ge, watch as me } from "vue";
2
+ const U = b({
3
+ name: "KrdsButton",
4
+ props: {
5
+ type: {
6
+ type: String,
7
+ default: "button"
8
+ },
9
+ size: {
10
+ type: String,
11
+ default: void 0
12
+ },
13
+ variant: {
14
+ type: String,
15
+ default: "primary"
16
+ },
17
+ icon: {
18
+ type: Boolean,
19
+ default: !1
20
+ },
21
+ border: {
22
+ type: Boolean,
23
+ default: !1
24
+ },
25
+ pure: {
26
+ type: Boolean,
27
+ default: !1
28
+ },
29
+ disabled: {
30
+ type: Boolean,
31
+ default: !1
32
+ },
33
+ class: {
34
+ type: String,
35
+ default: void 0
36
+ }
37
+ },
38
+ emits: ["click"],
39
+ setup(e, { emit: s, slots: a }) {
40
+ const l = v(() => {
41
+ const t = ["krds-btn"];
42
+ return e.icon && t.push("icon"), e.border && t.push("border"), e.pure && t.push("pure"), e.variant && !e.icon && t.push(e.variant), e.size && t.push(e.size), e.class && t.push(e.class), t;
43
+ }), i = (t) => {
44
+ e.disabled || s("click", t);
45
+ };
46
+ return () => d(
47
+ "button",
48
+ {
49
+ type: e.type,
50
+ class: l.value,
51
+ disabled: e.disabled,
52
+ onClick: i
53
+ },
54
+ a.default?.()
55
+ );
56
+ }
57
+ }), pe = b({
58
+ name: "KrdsButtonGroup",
59
+ props: {},
60
+ setup(e, { slots: s }) {
61
+ return () => d(
62
+ "div",
63
+ {
64
+ class: "btn-group"
65
+ },
66
+ s.default?.()
67
+ );
68
+ }
69
+ }), be = b({
70
+ name: "KrdsIcon",
71
+ props: {
72
+ name: {
73
+ type: String,
74
+ required: !0
75
+ },
76
+ class: {
77
+ type: String,
78
+ default: void 0
79
+ }
80
+ },
81
+ setup(e) {
82
+ return () => d("i", {
83
+ class: ["svg-icon", e.name, e.class].filter(Boolean).join(" ")
84
+ });
85
+ }
86
+ }), ke = b({
87
+ name: "KrdsLink",
88
+ props: {
89
+ href: {
90
+ type: String,
91
+ default: "#!"
92
+ },
93
+ target: {
94
+ type: String,
95
+ default: void 0
96
+ },
97
+ title: {
98
+ type: String,
99
+ default: void 0
100
+ },
101
+ size: {
102
+ type: String,
103
+ default: void 0
104
+ },
105
+ link: {
106
+ type: Boolean,
107
+ default: !0
108
+ },
109
+ basic: {
110
+ type: Boolean,
111
+ default: !1
112
+ },
113
+ pure: {
114
+ type: Boolean,
115
+ default: !1
116
+ },
117
+ class: {
118
+ type: String,
119
+ default: void 0
120
+ }
121
+ },
122
+ emits: ["click"],
123
+ setup(e, { emit: s, slots: a }) {
124
+ const l = v(() => {
125
+ const n = ["krds-btn"];
126
+ return e.size && n.push(e.size), e.link && n.push("link"), e.basic && n.push("basic"), e.pure && n.push("pure"), e.class && n.push(e.class), n;
127
+ }), i = v(() => {
128
+ const n = {
129
+ href: e.href,
130
+ class: l.value
131
+ };
132
+ return e.target && (n.target = e.target), e.title && (n.title = e.title), e.target === "_blank" && (n.rel = "noopener noreferrer"), n;
133
+ }), t = (n) => {
134
+ s("click", n);
135
+ };
136
+ return () => d(
137
+ "a",
138
+ {
139
+ ...i.value,
140
+ onClick: t
141
+ },
142
+ a.default?.()
143
+ );
144
+ }
145
+ }), Se = b({
146
+ name: "KrdsInput",
147
+ props: {
148
+ modelValue: {
149
+ type: [String, Number],
150
+ default: void 0
151
+ },
152
+ type: {
153
+ type: String,
154
+ default: "text"
155
+ },
156
+ size: {
157
+ type: String,
158
+ default: void 0
159
+ },
160
+ placeholder: {
161
+ type: String,
162
+ default: void 0
163
+ },
164
+ maxlength: {
165
+ type: Number,
166
+ default: void 0
167
+ },
168
+ minlength: {
169
+ type: Number,
170
+ default: void 0
171
+ },
172
+ max: {
173
+ type: Number,
174
+ default: void 0
175
+ },
176
+ min: {
177
+ type: Number,
178
+ default: void 0
179
+ },
180
+ step: {
181
+ type: Number,
182
+ default: void 0
183
+ },
184
+ autocomplete: {
185
+ type: String,
186
+ default: void 0
187
+ },
188
+ autofocus: {
189
+ type: Boolean,
190
+ default: !1
191
+ },
192
+ name: {
193
+ type: String,
194
+ default: void 0
195
+ },
196
+ required: {
197
+ type: Boolean,
198
+ default: !1
199
+ },
200
+ readonly: {
201
+ type: Boolean,
202
+ default: !1
203
+ },
204
+ disabled: {
205
+ type: Boolean,
206
+ default: !1
207
+ },
208
+ error: {
209
+ type: String,
210
+ default: void 0
211
+ },
212
+ state: {
213
+ type: String,
214
+ default: "default"
215
+ },
216
+ icon: {
217
+ type: Boolean,
218
+ default: !1
219
+ },
220
+ class: {
221
+ type: String,
222
+ default: void 0
223
+ },
224
+ id: {
225
+ type: String,
226
+ default: void 0
227
+ }
228
+ },
229
+ emits: ["update:modelValue", "input", "change", "focus", "blur", "keydown", "keyup"],
230
+ setup(e, { emit: s, slots: a }) {
231
+ const l = v(() => {
232
+ const r = ["krds-input"];
233
+ return e.size && r.push(e.size), e.class && r.push(e.class), r;
234
+ }), i = (r) => {
235
+ const V = r.target, _ = e.type === "number" ? Number(V.value) : V.value;
236
+ s("update:modelValue", _), s("input", r);
237
+ }, t = (r) => {
238
+ s("change", r);
239
+ }, n = (r) => {
240
+ s("focus", r);
241
+ }, y = (r) => {
242
+ s("blur", r);
243
+ }, g = (r) => {
244
+ s("keydown", r);
245
+ }, p = (r) => {
246
+ s("keyup", r);
247
+ }, k = v(() => {
248
+ const r = {
249
+ type: e.type,
250
+ class: l.value,
251
+ value: e.modelValue,
252
+ placeholder: e.placeholder,
253
+ name: e.name,
254
+ id: e.id,
255
+ required: e.required,
256
+ readonly: e.readonly,
257
+ disabled: e.disabled,
258
+ autocomplete: e.autocomplete,
259
+ autofocus: e.autofocus,
260
+ onInput: i,
261
+ onChange: t,
262
+ onFocus: n,
263
+ onBlur: y,
264
+ onKeydown: g,
265
+ onKeyup: p
266
+ };
267
+ return e.maxlength !== void 0 && (r.maxlength = e.maxlength), e.minlength !== void 0 && (r.minlength = e.minlength), e.type === "number" && (e.max !== void 0 && (r.max = e.max), e.min !== void 0 && (r.min = e.min), e.step !== void 0 && (r.step = e.step)), r;
268
+ }), z = v(() => {
269
+ const r = ["form-conts"];
270
+ return e.state !== "default" && r.push(`is-${e.state}`), e.icon && r.push("btn-ico-wrap"), r;
271
+ });
272
+ return () => {
273
+ const r = [d("input", k.value)];
274
+ return a.default && r.push(...a.default()), d("div", { class: z.value }, r);
275
+ };
276
+ }
277
+ }), Ce = b({
278
+ name: "KrdsFormLabel",
279
+ props: {
280
+ for: {
281
+ type: String,
282
+ default: void 0
283
+ },
284
+ class: {
285
+ type: String,
286
+ default: void 0
287
+ },
288
+ style: {
289
+ type: [String, Object],
290
+ default: void 0
291
+ },
292
+ id: {
293
+ type: String,
294
+ default: void 0
295
+ }
296
+ },
297
+ emits: ["click"],
298
+ setup(e, { emit: s, slots: a }) {
299
+ const l = (i) => {
300
+ s("click", i);
301
+ };
302
+ return () => d("div", { class: "form-tit" }, [
303
+ d(
304
+ "label",
305
+ {
306
+ for: e.for,
307
+ id: e.id,
308
+ class: e.class,
309
+ style: e.style,
310
+ onClick: l
311
+ },
312
+ a.default?.()
313
+ )
314
+ ]);
315
+ }
316
+ }), we = b({
317
+ name: "KrdsFormHint",
318
+ props: {
319
+ type: {
320
+ type: String,
321
+ default: "hint"
322
+ },
323
+ class: {
324
+ type: String,
325
+ default: void 0
326
+ },
327
+ style: {
328
+ type: [String, Object],
329
+ default: void 0
330
+ },
331
+ id: {
332
+ type: String,
333
+ default: void 0
334
+ }
335
+ },
336
+ emits: ["click"],
337
+ setup(e, { emit: s, slots: a }) {
338
+ const l = (t) => {
339
+ s("click", t);
340
+ }, i = () => {
341
+ let t;
342
+ switch (e.type) {
343
+ case "error":
344
+ t = "form-hint-invalid";
345
+ break;
346
+ case "success":
347
+ t = "form-hint-success";
348
+ break;
349
+ case "information":
350
+ t = "form-hint-information";
351
+ break;
352
+ default:
353
+ t = "form-hint";
354
+ break;
355
+ }
356
+ return e.class ? `${t} ${e.class}` : t;
357
+ };
358
+ return () => d(
359
+ "p",
360
+ {
361
+ id: e.id,
362
+ class: i(),
363
+ style: e.style,
364
+ onClick: l
365
+ },
366
+ a.default?.()
367
+ );
368
+ }
369
+ }), De = b({
370
+ name: "KrdsFormGroup",
371
+ props: {
372
+ class: {
373
+ type: String,
374
+ default: void 0
375
+ },
376
+ style: {
377
+ type: [String, Object],
378
+ default: void 0
379
+ },
380
+ id: {
381
+ type: String,
382
+ default: void 0
383
+ }
384
+ },
385
+ setup(e, { slots: s }) {
386
+ const a = v(() => {
387
+ const l = ["form-group"];
388
+ return e.class && l.push(e.class), l;
389
+ });
390
+ return () => d(
391
+ "div",
392
+ {
393
+ id: e.id,
394
+ class: a.value,
395
+ style: e.style
396
+ },
397
+ s.default?.()
398
+ );
399
+ }
400
+ });
401
+ function Be(e, s) {
402
+ const a = /* @__PURE__ */ new Date(), l = B(e || a.getFullYear()), i = B(s || a.getMonth() + 1), t = B(null), n = B(null), y = B(null), g = v(() => {
403
+ const m = a.getFullYear(), w = [];
404
+ for (let K = m - 10; K <= m + 10; K++)
405
+ w.push(K);
406
+ return w;
407
+ }), p = v(() => Array.from({ length: 12 }, (m, w) => w + 1)), k = () => {
408
+ t.value = null, n.value = null;
409
+ }, z = () => {
410
+ i.value === 1 ? (i.value = 12, l.value -= 1) : i.value -= 1;
411
+ }, r = () => {
412
+ i.value === 12 ? (i.value = 1, l.value += 1) : i.value += 1;
413
+ }, V = (m, w = !1) => {
414
+ if (w)
415
+ t.value = m, n.value = m;
416
+ else if (!t.value || t.value && n.value)
417
+ t.value = m, n.value = null;
418
+ else {
419
+ const K = new Date(t.value.replace(/\./g, "-"));
420
+ new Date(m.replace(/\./g, "-")) < K ? (t.value = m, n.value = null) : n.value = m;
421
+ }
422
+ };
423
+ return {
424
+ // State
425
+ currentYear: l,
426
+ currentMonth: i,
427
+ selectedStartDate: t,
428
+ selectedEndDate: n,
429
+ activeDateSelector: y,
430
+ // Computed
431
+ yearOptions: g,
432
+ monthOptions: p,
433
+ // Methods
434
+ clearDateSelection: k,
435
+ prevMonth: z,
436
+ nextMonth: r,
437
+ handleDateSelection: V,
438
+ selectToday: () => {
439
+ const m = `${a.getFullYear()}.${String(a.getMonth() + 1).padStart(2, "0")}.${String(a.getDate()).padStart(2, "0")}`;
440
+ V(m, !0);
441
+ },
442
+ isDateInSelectedRange: (m) => {
443
+ if (!t.value || !n.value)
444
+ return { isInRange: !1, isStart: !1, isEnd: !1 };
445
+ const w = new Date(m.replace(/\./g, "-")), K = new Date(t.value.replace(/\./g, "-")), I = new Date(n.value.replace(/\./g, "-")), E = m === t.value, P = m === n.value;
446
+ return { isInRange: w >= K && w <= I, isStart: E, isEnd: P };
447
+ }
448
+ };
449
+ }
450
+ function _e(e, s, a = {}) {
451
+ let l = null;
452
+ const i = typeof a == "string" ? { ignore: a } : a, { ignore: t, event: n = "click" } = i, y = () => {
453
+ l = (p) => {
454
+ const k = p.target;
455
+ e.value?.contains(k) || t && k.closest(t) || s();
456
+ }, document.addEventListener(n, l);
457
+ }, g = () => {
458
+ if (l) {
459
+ const p = typeof a == "string" ? "click" : a.event || "click";
460
+ document.removeEventListener(p, l), l = null;
461
+ }
462
+ };
463
+ return fe(() => {
464
+ y();
465
+ }), ve(() => {
466
+ g();
467
+ }), {
468
+ setupGlobalListeners: y,
469
+ removeGlobalListeners: g
470
+ };
471
+ }
472
+ const Ke = { class: "form-conts" }, xe = { class: "calendar-input" }, ze = ["id", "name", "placeholder", "value", "readonly", "disabled", "required", "autofocus"], Ve = ["disabled", "aria-expanded"], Ie = { class: "calendar-head" }, Me = { class: "calendar-switch-wrap" }, $e = { class: "calendar-drop-down" }, Fe = ["aria-expanded"], Ne = { class: "calendar-select calendar-year-wrap" }, Oe = { class: "sel year" }, Te = ["onClick"], Ee = { class: "calendar-drop-down" }, Pe = ["aria-expanded"], Re = { class: "calendar-select calendar-mon-wrap" }, qe = { class: "sel month" }, Le = ["onClick"], Ye = { class: "calendar-body" }, Ae = { class: "calendar-table-wrap" }, je = { class: "calendar-tbl" }, Ge = ["data-date"], We = ["aria-pressed", "onClick"], He = { class: "calendar-footer" }, Ue = { class: "calendar-btn-wrap" }, Je = /* @__PURE__ */ b({
473
+ __name: "KrdsDateInput",
474
+ props: {
475
+ modelValue: { default: void 0 },
476
+ size: { default: "medium" },
477
+ placeholder: { default: "YYYY.MM.DD" },
478
+ disabled: { type: Boolean, default: !1 },
479
+ readonly: { type: Boolean, default: !1 },
480
+ autofocus: { type: Boolean, default: !1 },
481
+ eventDates: { default: () => [] },
482
+ holidays: { default: () => [] },
483
+ initialYear: { default: void 0 },
484
+ initialMonth: { default: void 0 },
485
+ name: { default: void 0 },
486
+ required: { type: Boolean, default: !1 },
487
+ class: { default: void 0 },
488
+ style: {},
489
+ id: { default: void 0 }
490
+ },
491
+ emits: ["update:modelValue", "input", "change", "focus", "blur"],
492
+ setup(e, { emit: s }) {
493
+ const a = e, l = s, i = B(), t = B(), n = B(!1), y = B(null), {
494
+ currentYear: g,
495
+ currentMonth: p,
496
+ selectedStartDate: k,
497
+ selectedEndDate: z,
498
+ yearOptions: r,
499
+ monthOptions: V,
500
+ prevMonth: _,
501
+ nextMonth: f,
502
+ handleDateSelection: m,
503
+ selectToday: w,
504
+ isDateInSelectedRange: K
505
+ } = Be(a.initialYear, a.initialMonth), I = () => {
506
+ n.value && t.value?.focus(), n.value = !1, y.value = null;
507
+ };
508
+ _e(i, I, ".calendar-conts");
509
+ const E = v(() => {
510
+ const u = ["krds-input", "datepicker", "cal"];
511
+ return a.size && u.push(a.size), a.class && u.push(a.class), u;
512
+ }), P = v(() => ["form-conts", "calendar-conts"]), Y = v(() => ({
513
+ "krds-calendar-area": !0,
514
+ active: n.value
515
+ })), X = v(() => {
516
+ const u = g.value, c = p.value, h = new Date(u, c - 1, 1), N = new Date(h);
517
+ N.setDate(N.getDate() - h.getDay());
518
+ const M = [], S = new Date(N);
519
+ for (let R = 0; R < 6; R++) {
520
+ const j = [];
521
+ for (let G = 0; G < 7; G++) {
522
+ const ce = `${S.getFullYear()}.${String(S.getMonth() + 1).padStart(2, "0")}.${String(S.getDate()).padStart(2, "0")}`, W = S.getDay();
523
+ j.push({
524
+ day: S.getDate(),
525
+ dateString: ce,
526
+ isCurrentMonth: S.getMonth() === c - 1,
527
+ isToday: S.toDateString() === (/* @__PURE__ */ new Date()).toDateString(),
528
+ isPrevMonth: S.getMonth() < c - 1 || S.getMonth() === 11 && c === 1,
529
+ isNextMonth: S.getMonth() > c - 1 || S.getMonth() === 0 && c === 12,
530
+ isSunday: W === 0,
531
+ isSaturday: W === 6
532
+ }), S.setDate(S.getDate() + 1);
533
+ }
534
+ M.push(j);
535
+ }
536
+ return M;
537
+ }), Z = (u) => {
538
+ const c = [];
539
+ if (u.isPrevMonth && c.push("old"), u.isNextMonth && c.push("new"), u.isToday && c.push("today"), u.isSunday && c.push("day-off"), a.holidays?.includes(u.dateString) && c.push("day-off"), a.eventDates?.includes(u.dateString) && c.push("day-event"), u.isCurrentMonth) {
540
+ const h = K(u.dateString);
541
+ h.isInRange && (c.push("period"), h.isStart && c.push("start"), h.isEnd && c.push("end"));
542
+ }
543
+ return c;
544
+ }, ee = v(() => [
545
+ {
546
+ id: "get-today",
547
+ label: "오늘",
548
+ class: "text",
549
+ variant: void 0,
550
+ size: "small",
551
+ handler: w
552
+ },
553
+ {
554
+ id: "cancel-btn",
555
+ label: "취소",
556
+ class: void 0,
557
+ variant: "tertiary",
558
+ size: "small",
559
+ handler: I
560
+ },
561
+ {
562
+ id: "confirm-btn",
563
+ label: "확인",
564
+ class: void 0,
565
+ variant: "primary",
566
+ size: "small",
567
+ handler: le
568
+ }
569
+ ]), A = (u) => {
570
+ y.value === u ? y.value = null : y.value = u;
571
+ }, te = (u) => {
572
+ g.value = u, y.value = null;
573
+ }, ae = (u) => {
574
+ p.value = u, y.value = null;
575
+ }, le = () => {
576
+ if (k.value) {
577
+ if (z.value && k.value !== z.value) {
578
+ const u = `${k.value} ~ ${z.value}`;
579
+ l("update:modelValue", u);
580
+ } else
581
+ l("update:modelValue", k.value);
582
+ I();
583
+ }
584
+ }, ne = () => {
585
+ n.value = !0, y.value = null, setTimeout(() => {
586
+ i.value?.querySelector(".calendar-wrap")?.focus();
587
+ }, 50);
588
+ }, se = () => {
589
+ n.value ? I() : ne();
590
+ }, ue = (u) => {
591
+ u.code === "Escape" && (y.value ? y.value = null : n.value && I());
592
+ }, oe = (u) => {
593
+ const c = u.target;
594
+ l("update:modelValue", c.value), l("input", u);
595
+ }, ie = (u) => {
596
+ l("change", u);
597
+ }, de = (u) => {
598
+ l("focus", u);
599
+ }, re = (u) => {
600
+ l("blur", u);
601
+ };
602
+ return (u, c) => (D(), x("div", Ke, [
603
+ o("div", {
604
+ class: $(P.value)
605
+ }, [
606
+ o("div", xe, [
607
+ o("input", {
608
+ id: u.id,
609
+ name: u.name,
610
+ class: $(E.value),
611
+ placeholder: u.placeholder,
612
+ value: u.modelValue,
613
+ readonly: u.readonly,
614
+ disabled: u.disabled,
615
+ required: u.required,
616
+ autofocus: u.autofocus,
617
+ type: "text",
618
+ onInput: oe,
619
+ onChange: ie,
620
+ onFocus: de,
621
+ onBlur: re
622
+ }, null, 42, ze),
623
+ o("button", {
624
+ ref_key: "datePickerButtonRef",
625
+ ref: t,
626
+ class: $(`krds-btn ${u.size || "medium"} icon form-btn-datepicker`),
627
+ disabled: u.disabled,
628
+ "aria-expanded": n.value,
629
+ type: "button",
630
+ onClick: se
631
+ }, [...c[4] || (c[4] = [
632
+ o("span", { class: "sr-only" }, "달력 열기", -1),
633
+ o("i", { class: "svg-icon ico-calendar" }, null, -1)
634
+ ])], 10, Ve)
635
+ ]),
636
+ o("div", {
637
+ ref_key: "datePickerAreaRef",
638
+ ref: i,
639
+ class: $(Y.value)
640
+ }, [
641
+ q(o("div", {
642
+ class: "calendar-wrap bottom",
643
+ "aria-label": "달력",
644
+ tabindex: "0",
645
+ onKeydown: ue
646
+ }, [
647
+ o("div", Ie, [
648
+ o("button", {
649
+ type: "button",
650
+ class: "btn-cal-move prev",
651
+ onClick: c[0] || (c[0] = //@ts-ignore
652
+ (...h) => C(_) && C(_)(...h))
653
+ }, [...c[5] || (c[5] = [
654
+ o("span", { class: "sr-only" }, "이전 달", -1)
655
+ ])]),
656
+ o("div", Me, [
657
+ o("div", $e, [
658
+ o("button", {
659
+ type: "button",
660
+ class: "btn-cal-switch year",
661
+ "aria-label": "연도 선택",
662
+ "aria-expanded": y.value === "year",
663
+ onClick: c[1] || (c[1] = (h) => A("year"))
664
+ }, F(C(g)) + "년 ", 9, Fe),
665
+ q(o("div", Ne, [
666
+ o("ul", Oe, [
667
+ (D(!0), x(O, null, T(C(r), (h) => (D(), x("li", { key: h }, [
668
+ o("button", {
669
+ type: "button",
670
+ class: $({ active: h === C(g) }),
671
+ onClick: (N) => te(h)
672
+ }, F(h) + "년", 11, Te)
673
+ ]))), 128))
674
+ ])
675
+ ], 512), [
676
+ [L, y.value === "year"]
677
+ ])
678
+ ]),
679
+ o("div", Ee, [
680
+ o("button", {
681
+ type: "button",
682
+ class: "btn-cal-switch month",
683
+ "aria-label": "월 선택",
684
+ "aria-expanded": y.value === "month",
685
+ onClick: c[2] || (c[2] = (h) => A("month"))
686
+ }, F(C(p).toString().padStart(2, "0")) + "월 ", 9, Pe),
687
+ q(o("div", Re, [
688
+ o("ul", qe, [
689
+ (D(!0), x(O, null, T(C(V), (h) => (D(), x("li", { key: h }, [
690
+ o("button", {
691
+ type: "button",
692
+ class: $({ active: h === C(p) }),
693
+ onClick: (N) => ae(h)
694
+ }, F(h.toString().padStart(2, "0")) + "월 ", 11, Le)
695
+ ]))), 128))
696
+ ])
697
+ ], 512), [
698
+ [L, y.value === "month"]
699
+ ])
700
+ ])
701
+ ]),
702
+ o("button", {
703
+ type: "button",
704
+ class: "btn-cal-move next",
705
+ onClick: c[3] || (c[3] = //@ts-ignore
706
+ (...h) => C(f) && C(f)(...h))
707
+ }, [...c[6] || (c[6] = [
708
+ o("span", { class: "sr-only" }, "다음 달", -1)
709
+ ])])
710
+ ]),
711
+ o("div", Ye, [
712
+ o("div", Ae, [
713
+ o("table", je, [
714
+ o("caption", null, F(C(g)) + "년 " + F(C(p).toString().padStart(2, "0")) + "월", 1),
715
+ c[7] || (c[7] = o("thead", null, [
716
+ o("tr", null, [
717
+ o("th", null, "일"),
718
+ o("th", null, "월"),
719
+ o("th", null, "화"),
720
+ o("th", null, "수"),
721
+ o("th", null, "목"),
722
+ o("th", null, "금"),
723
+ o("th", null, "토")
724
+ ])
725
+ ], -1)),
726
+ o("tbody", null, [
727
+ (D(!0), x(O, null, T(X.value, (h, N) => (D(), x("tr", { key: N }, [
728
+ (D(!0), x(O, null, T(h, (M, S) => (D(), x("td", {
729
+ key: S,
730
+ class: $(Z(M)),
731
+ "data-date": M.dateString
732
+ }, [
733
+ o("button", {
734
+ type: "button",
735
+ class: "btn-set-date",
736
+ "aria-pressed": C(K)(M.dateString).isInRange ? "true" : "false",
737
+ onClick: (R) => C(m)(M.dateString)
738
+ }, [
739
+ o("span", null, F(M.day), 1)
740
+ ], 8, We)
741
+ ], 10, Ge))), 128))
742
+ ]))), 128))
743
+ ])
744
+ ])
745
+ ])
746
+ ]),
747
+ o("div", He, [
748
+ o("div", Ue, [
749
+ (D(!0), x(O, null, T(ee.value, (h) => (D(), he(C(U), {
750
+ id: h.id,
751
+ key: h.id,
752
+ class: $(h.class),
753
+ variant: h.variant,
754
+ size: h.size,
755
+ onClick: h.handler
756
+ }, {
757
+ default: ye(() => [
758
+ ge(F(h.label), 1)
759
+ ]),
760
+ _: 2
761
+ }, 1032, ["id", "class", "variant", "size", "onClick"]))), 128))
762
+ ])
763
+ ])
764
+ ], 544), [
765
+ [L, n.value]
766
+ ])
767
+ ], 2)
768
+ ], 2)
769
+ ]));
770
+ }
771
+ }), Qe = b({
772
+ name: "KrdsTextarea",
773
+ props: {
774
+ modelValue: {
775
+ type: String,
776
+ default: ""
777
+ },
778
+ size: {
779
+ type: String,
780
+ default: void 0
781
+ },
782
+ placeholder: {
783
+ type: String,
784
+ default: void 0
785
+ },
786
+ maxlength: {
787
+ type: Number,
788
+ default: void 0
789
+ },
790
+ minlength: {
791
+ type: Number,
792
+ default: void 0
793
+ },
794
+ rows: {
795
+ type: Number,
796
+ default: 4
797
+ },
798
+ cols: {
799
+ type: Number,
800
+ default: void 0
801
+ },
802
+ autofocus: {
803
+ type: Boolean,
804
+ default: !1
805
+ },
806
+ name: {
807
+ type: String,
808
+ default: void 0
809
+ },
810
+ required: {
811
+ type: Boolean,
812
+ default: !1
813
+ },
814
+ readonly: {
815
+ type: Boolean,
816
+ default: !1
817
+ },
818
+ disabled: {
819
+ type: Boolean,
820
+ default: !1
821
+ },
822
+ showCount: {
823
+ type: Boolean,
824
+ default: !0
825
+ },
826
+ resize: {
827
+ type: String,
828
+ default: "vertical"
829
+ },
830
+ // BaseFormProps에서 상속
831
+ class: {
832
+ type: String,
833
+ default: void 0
834
+ },
835
+ style: {
836
+ type: [String, Object],
837
+ default: void 0
838
+ },
839
+ id: {
840
+ type: String,
841
+ default: void 0
842
+ }
843
+ },
844
+ emits: ["update:modelValue", "input", "change", "focus", "blur", "keydown", "keyup"],
845
+ setup(e, { emit: s }) {
846
+ const a = B(0);
847
+ me(
848
+ () => e.modelValue,
849
+ (f) => {
850
+ a.value = (f || "").length;
851
+ },
852
+ { immediate: !0 }
853
+ );
854
+ const l = v(() => {
855
+ const f = ["krds-input"];
856
+ return e.size && f.push(e.size), e.class && f.push(e.class), f;
857
+ }), i = v(() => {
858
+ const f = {};
859
+ return e.resize && (f.resize = e.resize), f;
860
+ }), t = (f) => {
861
+ const w = f.target.value;
862
+ a.value = w.length, s("update:modelValue", w), s("input", f);
863
+ }, n = (f) => {
864
+ s("change", f);
865
+ }, y = (f) => {
866
+ s("focus", f);
867
+ }, g = (f) => {
868
+ s("blur", f);
869
+ }, p = (f) => {
870
+ s("keydown", f);
871
+ }, k = (f) => {
872
+ s("keyup", f);
873
+ }, z = v(() => {
874
+ const f = {
875
+ class: l.value,
876
+ style: i.value,
877
+ value: e.modelValue,
878
+ placeholder: e.placeholder,
879
+ name: e.name,
880
+ id: e.id,
881
+ required: e.required,
882
+ readonly: e.readonly,
883
+ disabled: e.disabled,
884
+ autofocus: e.autofocus,
885
+ rows: e.rows,
886
+ cols: e.cols,
887
+ onInput: t,
888
+ onChange: n,
889
+ onFocus: y,
890
+ onBlur: g,
891
+ onKeydown: p,
892
+ onKeyup: k
893
+ };
894
+ return e.maxlength !== void 0 && (f.maxlength = e.maxlength), e.minlength !== void 0 && (f.minlength = e.minlength), f;
895
+ }), r = v(() => ["form-conts"]), V = v(() => ["textarea-wrap"]), _ = v(() => {
896
+ if (!e.showCount) return null;
897
+ const f = a.value, m = e.maxlength;
898
+ return {
899
+ current: f,
900
+ max: m || ""
901
+ };
902
+ });
903
+ return () => {
904
+ const f = [d("textarea", z.value)];
905
+ return _.value && f.push(
906
+ d("p", { class: "textarea-count" }, [
907
+ d("span", { class: "count-now" }, _.value.current),
908
+ d("span", { class: "count-total" }, _.value.max ? `/${_.value.max}` : "")
909
+ ])
910
+ ), d("div", { class: r.value }, [d("div", { class: V.value }, f)]);
911
+ };
912
+ }
913
+ }), Xe = b({
914
+ name: "KrdsFileUpload",
915
+ props: {
916
+ modelValue: {
917
+ type: Array,
918
+ default: () => []
919
+ },
920
+ size: {
921
+ type: String,
922
+ default: "medium"
923
+ },
924
+ accept: {
925
+ type: String,
926
+ default: void 0
927
+ },
928
+ maxFiles: {
929
+ type: Number,
930
+ default: 10
931
+ },
932
+ maxFileSize: {
933
+ type: Number,
934
+ default: 20 * 1024 * 1024
935
+ // 20MB
936
+ },
937
+ multiple: {
938
+ type: Boolean,
939
+ default: !0
940
+ },
941
+ disabled: {
942
+ type: Boolean,
943
+ default: !1
944
+ },
945
+ dragAndDrop: {
946
+ type: Boolean,
947
+ default: !0
948
+ },
949
+ title: {
950
+ type: String,
951
+ default: "타이틀영역"
952
+ },
953
+ description: {
954
+ type: String,
955
+ default: "컨텐츠 영역"
956
+ },
957
+ placeholder: {
958
+ type: String,
959
+ default: "첨부할 파일을 여기에 끌어다 놓거나, 파일 선택 버튼을 눌러 파일을 직접 선택해주세요."
960
+ },
961
+ showPreview: {
962
+ type: Boolean,
963
+ default: !0
964
+ },
965
+ showDownload: {
966
+ type: Boolean,
967
+ default: !0
968
+ },
969
+ showPreviewButton: {
970
+ type: Boolean,
971
+ default: !0
972
+ },
973
+ showClearAll: {
974
+ type: Boolean,
975
+ default: !0
976
+ },
977
+ // BaseFormProps에서 상속
978
+ name: {
979
+ type: String,
980
+ default: void 0
981
+ },
982
+ required: {
983
+ type: Boolean,
984
+ default: !1
985
+ },
986
+ readonly: {
987
+ type: Boolean,
988
+ default: !1
989
+ },
990
+ class: {
991
+ type: String,
992
+ default: void 0
993
+ },
994
+ style: {
995
+ type: [String, Object],
996
+ default: void 0
997
+ },
998
+ id: {
999
+ type: String,
1000
+ default: void 0
1001
+ }
1002
+ },
1003
+ emits: [
1004
+ "update:modelValue",
1005
+ "file-added",
1006
+ "file-removed",
1007
+ "file-error",
1008
+ "upload-start",
1009
+ "upload-progress",
1010
+ "upload-complete",
1011
+ "upload-error",
1012
+ "clear-all",
1013
+ "download",
1014
+ "preview"
1015
+ ],
1016
+ setup(e, { emit: s }) {
1017
+ B(!1), v(() => {
1018
+ const l = ["krds-file-upload", "line"];
1019
+ return e.class && l.push(e.class), l;
1020
+ });
1021
+ const a = v(() => e.modelValue?.length || 0);
1022
+ return v(() => !e.disabled && a.value < e.maxFiles), () => null;
1023
+ }
1024
+ }), Ze = b({
1025
+ name: "KrdsBadge",
1026
+ props: {
1027
+ type: {
1028
+ type: String,
1029
+ default: "outline"
1030
+ },
1031
+ color: {
1032
+ type: String,
1033
+ default: "primary"
1034
+ },
1035
+ size: {
1036
+ type: String,
1037
+ default: "large"
1038
+ },
1039
+ number: {
1040
+ type: Boolean,
1041
+ default: !1
1042
+ },
1043
+ class: {
1044
+ type: String,
1045
+ default: void 0
1046
+ }
1047
+ },
1048
+ emits: ["click"],
1049
+ setup(e, { emit: s, slots: a }) {
1050
+ const l = v(() => {
1051
+ const t = ["krds-badge"];
1052
+ return t.push(`${e.type}-${e.color}`), e.size && t.push(e.size), e.number && t.push("number"), e.class && t.push(e.class), t;
1053
+ }), i = (t) => {
1054
+ s("click", t);
1055
+ };
1056
+ return () => d(
1057
+ "span",
1058
+ {
1059
+ type: e.type,
1060
+ color: e.color,
1061
+ size: e.size,
1062
+ number: e.number,
1063
+ class: l.value,
1064
+ onClick: i
1065
+ },
1066
+ a.default?.()
1067
+ );
1068
+ }
1069
+ }), et = b({
1070
+ name: "KrdsTag",
1071
+ props: {
1072
+ link: {
1073
+ type: Boolean,
1074
+ default: !1
1075
+ },
1076
+ href: {
1077
+ type: String,
1078
+ default: "#"
1079
+ },
1080
+ target: {
1081
+ type: String,
1082
+ default: void 0
1083
+ },
1084
+ rel: {
1085
+ type: String,
1086
+ default: void 0
1087
+ },
1088
+ class: {
1089
+ type: String,
1090
+ default: void 0
1091
+ }
1092
+ },
1093
+ emits: ["remove"],
1094
+ setup(e, { emit: s, slots: a }) {
1095
+ const l = v(() => {
1096
+ const n = ["krds-btn-tag"];
1097
+ return e.link && n.push("link"), e.class && n.push(e.class), n;
1098
+ }), i = (n) => {
1099
+ s("remove", n);
1100
+ }, t = () => d(
1101
+ "button",
1102
+ {
1103
+ type: "button",
1104
+ class: "btn-delete",
1105
+ onClick: i
1106
+ },
1107
+ [d("span", { class: "sr-only" }, "삭제")]
1108
+ );
1109
+ return () => {
1110
+ const n = [], y = a.default?.();
1111
+ if (y && n.push(y), e.link || n.push(t()), e.link) {
1112
+ const g = {
1113
+ href: e.href,
1114
+ class: l.value
1115
+ };
1116
+ return e.target && (g.target = e.target), e.rel && (g.rel = e.rel), d("a", g, n);
1117
+ }
1118
+ return d(
1119
+ "span",
1120
+ {
1121
+ class: l.value
1122
+ },
1123
+ n
1124
+ );
1125
+ };
1126
+ }
1127
+ }), tt = b({
1128
+ name: "KrdsTagGroup",
1129
+ props: {
1130
+ size: {
1131
+ type: String,
1132
+ default: "medium"
1133
+ },
1134
+ class: {
1135
+ type: String,
1136
+ default: void 0
1137
+ }
1138
+ },
1139
+ setup(e, { slots: s }) {
1140
+ const a = v(() => {
1141
+ const l = ["krds-tag-wrap"];
1142
+ return e.size && l.push(e.size), e.class && l.push(e.class), l;
1143
+ });
1144
+ return () => d(
1145
+ "div",
1146
+ {
1147
+ class: a.value
1148
+ },
1149
+ s.default?.()
1150
+ );
1151
+ }
1152
+ }), at = b({
1153
+ name: "KrdsMasthead",
1154
+ props: {
1155
+ class: {
1156
+ type: String,
1157
+ default: void 0
1158
+ }
1159
+ },
1160
+ emits: ["click"],
1161
+ setup(e, { emit: s, slots: a }) {
1162
+ const l = v(() => {
1163
+ const t = [""];
1164
+ return e.class && t.push(e.class), t;
1165
+ }), i = (t) => {
1166
+ s("click", t);
1167
+ };
1168
+ return () => d(
1169
+ "div",
1170
+ {
1171
+ id: "krds-masthead",
1172
+ class: l.value,
1173
+ onClick: i
1174
+ },
1175
+ [
1176
+ d("div", { class: "toggle-wrap" }, [
1177
+ d("div", { class: "toggle-head" }, [d("div", { class: "inner" }, [d("span", { class: "nuri-txt" }, a.default?.())])])
1178
+ ])
1179
+ ]
1180
+ );
1181
+ }
1182
+ });
1183
+ let lt = 0;
1184
+ function J(e = "krds") {
1185
+ return `${e}-${++lt}`;
1186
+ }
1187
+ function Q(...e) {
1188
+ return e.filter(Boolean).join(" ");
1189
+ }
1190
+ const nt = b({
1191
+ name: "KrdsToggleSwitch",
1192
+ props: {
1193
+ modelValue: {
1194
+ type: Boolean,
1195
+ default: !1
1196
+ },
1197
+ disabled: {
1198
+ type: Boolean,
1199
+ default: !1
1200
+ },
1201
+ label: {
1202
+ type: String,
1203
+ default: void 0
1204
+ },
1205
+ size: {
1206
+ type: String,
1207
+ default: "medium",
1208
+ validator: (e) => ["medium", "large"].includes(e)
1209
+ },
1210
+ name: {
1211
+ type: String,
1212
+ default: void 0
1213
+ },
1214
+ required: {
1215
+ type: Boolean,
1216
+ default: !1
1217
+ },
1218
+ readonly: {
1219
+ type: Boolean,
1220
+ default: !1
1221
+ },
1222
+ class: {
1223
+ type: String,
1224
+ default: void 0
1225
+ },
1226
+ id: {
1227
+ type: String,
1228
+ default: void 0
1229
+ }
1230
+ },
1231
+ emits: ["update:modelValue", "change"],
1232
+ setup(e, { emit: s, attrs: a }) {
1233
+ const l = v(() => e.modelValue), i = v(() => Q("krds-form-toggle-switch", e.size, e.class)), t = (y) => {
1234
+ if (e.disabled)
1235
+ return;
1236
+ const p = y.target.checked;
1237
+ s("update:modelValue", p), s("change", p);
1238
+ }, n = v(() => e.id || J("toggle-switch"));
1239
+ return () => d(
1240
+ "div",
1241
+ {
1242
+ class: i.value
1243
+ },
1244
+ [
1245
+ d("input", {
1246
+ type: "checkbox",
1247
+ id: n.value,
1248
+ name: e.name,
1249
+ checked: l.value,
1250
+ disabled: e.disabled,
1251
+ onChange: t,
1252
+ ...a
1253
+ }),
1254
+ d(
1255
+ "label",
1256
+ {
1257
+ for: n.value
1258
+ },
1259
+ [
1260
+ d(
1261
+ "span",
1262
+ {
1263
+ class: "switch-toggle"
1264
+ },
1265
+ [d("i")]
1266
+ ),
1267
+ e.label || ""
1268
+ ]
1269
+ )
1270
+ ]
1271
+ );
1272
+ }
1273
+ }), st = b({
1274
+ name: "KrdsCheckArea",
1275
+ props: {
1276
+ class: {
1277
+ type: String,
1278
+ default: void 0
1279
+ }
1280
+ },
1281
+ setup(e, { slots: s }) {
1282
+ return () => {
1283
+ const a = ["krds-check-area"];
1284
+ return e.class && a.push(e.class), d(
1285
+ "div",
1286
+ {
1287
+ class: a
1288
+ },
1289
+ s.default?.()
1290
+ );
1291
+ };
1292
+ }
1293
+ }), ut = b({
1294
+ name: "KrdsCheckbox",
1295
+ props: {
1296
+ modelValue: {
1297
+ type: Boolean,
1298
+ default: !1
1299
+ },
1300
+ disabled: {
1301
+ type: Boolean,
1302
+ default: !1
1303
+ },
1304
+ size: {
1305
+ type: String,
1306
+ default: "medium",
1307
+ validator: (e) => ["medium", "large"].includes(e)
1308
+ },
1309
+ chip: {
1310
+ type: Boolean,
1311
+ default: !1
1312
+ },
1313
+ class: {
1314
+ type: String,
1315
+ default: void 0
1316
+ },
1317
+ id: {
1318
+ type: String,
1319
+ default: void 0
1320
+ }
1321
+ },
1322
+ emits: ["update:modelValue", "change"],
1323
+ slots: Object,
1324
+ setup(e, { emit: s, attrs: a, slots: l }) {
1325
+ const i = v(() => e.modelValue), t = v(() => {
1326
+ const g = e.chip ? "krds-form-chip" : "krds-form-check";
1327
+ return Q(g, e.size, e.class);
1328
+ }), n = (g) => {
1329
+ if (e.disabled)
1330
+ return;
1331
+ const k = g.target.checked;
1332
+ s("update:modelValue", k), s("change", k);
1333
+ }, y = v(() => e.id || J("checkbox"));
1334
+ return () => {
1335
+ const g = [
1336
+ d("input", {
1337
+ type: "checkbox",
1338
+ id: y.value,
1339
+ checked: i.value,
1340
+ disabled: e.disabled,
1341
+ onChange: n,
1342
+ ...a
1343
+ }),
1344
+ d(
1345
+ "label",
1346
+ {
1347
+ for: y.value
1348
+ },
1349
+ l.default?.()
1350
+ )
1351
+ ];
1352
+ return l.description && !e.chip && g.push(d("div", { class: "krds-form-check-cnt" }, d("p", { class: "krds-form-check-p" }, l.description()))), d(
1353
+ "div",
1354
+ {
1355
+ class: t.value
1356
+ },
1357
+ g
1358
+ );
1359
+ };
1360
+ }
1361
+ }), H = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1362
+ __proto__: null,
1363
+ KrdsBadge: Ze,
1364
+ KrdsButton: U,
1365
+ KrdsButtonGroup: pe,
1366
+ KrdsCheckArea: st,
1367
+ KrdsCheckbox: ut,
1368
+ KrdsDateInput: Je,
1369
+ KrdsFileUpload: Xe,
1370
+ KrdsFormGroup: De,
1371
+ KrdsFormHint: we,
1372
+ KrdsFormLabel: Ce,
1373
+ KrdsIcon: be,
1374
+ KrdsInput: Se,
1375
+ KrdsLink: ke,
1376
+ KrdsMasthead: at,
1377
+ KrdsTag: et,
1378
+ KrdsTagGroup: tt,
1379
+ KrdsTextarea: Qe,
1380
+ KrdsToggleSwitch: nt
1381
+ }, Symbol.toStringTag, { value: "Module" })), it = {
1382
+ install(e, s = {}) {
1383
+ e.provide("krds:config", s);
1384
+ const a = s.components || Object.keys(H);
1385
+ a.forEach((l) => {
1386
+ const i = H[l];
1387
+ i && e.component(l, i);
1388
+ }), e.config.globalProperties.$krds = {
1389
+ version: "__VERSION__"
1390
+ }, process.env.NODE_ENV !== "production" && console.log(`[KRDS Vue] v__VERSION__ 설치 완료 - 컴포넌트: ${a.length}개`);
1391
+ }
1392
+ }, dt = "__VERSION__";
1393
+ export {
1394
+ Ze as KrdsBadge,
1395
+ U as KrdsButton,
1396
+ pe as KrdsButtonGroup,
1397
+ st as KrdsCheckArea,
1398
+ ut as KrdsCheckbox,
1399
+ Je as KrdsDateInput,
1400
+ Xe as KrdsFileUpload,
1401
+ De as KrdsFormGroup,
1402
+ we as KrdsFormHint,
1403
+ Ce as KrdsFormLabel,
1404
+ be as KrdsIcon,
1405
+ Se as KrdsInput,
1406
+ ke as KrdsLink,
1407
+ at as KrdsMasthead,
1408
+ et as KrdsTag,
1409
+ tt as KrdsTagGroup,
1410
+ Qe as KrdsTextarea,
1411
+ nt as KrdsToggleSwitch,
1412
+ Q as classNames,
1413
+ it as default,
1414
+ J as generateId,
1415
+ dt as version
1416
+ };
1417
+ //# sourceMappingURL=krds-vue.es.js.map