@devslab/dds-solid 0.22.1 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.ko.md +49 -3
  2. package/README.md +47 -3
  3. package/dist/assets/{calendar-view-1RO2mtf1.js → calendar-view-BBQGmkJ7.js} +181 -145
  4. package/dist/assets/calendar-view-BBQGmkJ7.js.map +1 -0
  5. package/dist/assets/{choice-DoXiK8nc.js → choice-DPmk9AHn.js} +41 -29
  6. package/dist/assets/choice-DPmk9AHn.js.map +1 -0
  7. package/dist/assets/choice-types-h4YVL8xH.js +24 -0
  8. package/dist/assets/choice-types-h4YVL8xH.js.map +1 -0
  9. package/dist/assets/date-only-0Ldsjp43.js +174 -0
  10. package/dist/assets/date-only-0Ldsjp43.js.map +1 -0
  11. package/dist/assets/direction-BpTqmXs-.js +24 -0
  12. package/dist/assets/direction-BpTqmXs-.js.map +1 -0
  13. package/dist/calendar-view-CZLsC57_.js +481 -0
  14. package/dist/calendar-view-CZLsC57_.js.map +1 -0
  15. package/dist/calendar-view.d.ts +10 -0
  16. package/dist/calendar-view.d.ts.map +1 -1
  17. package/dist/calendar.js +7 -6
  18. package/dist/calendar.js.map +1 -1
  19. package/dist/calendar.server.js +2 -1
  20. package/dist/calendar.server.js.map +1 -1
  21. package/dist/choice-CTNeFOVo.js +403 -0
  22. package/dist/choice-CTNeFOVo.js.map +1 -0
  23. package/dist/choice-types-kSaEnZPr.js +23 -0
  24. package/dist/choice-types-kSaEnZPr.js.map +1 -0
  25. package/dist/combobox.js +1 -1
  26. package/dist/combobox.server.js +1 -1
  27. package/dist/date-only-Bu4UmsTP.js +151 -0
  28. package/dist/date-only-Bu4UmsTP.js.map +1 -0
  29. package/dist/date-only.d.ts +92 -0
  30. package/dist/date-only.d.ts.map +1 -1
  31. package/dist/date-picker.js +51 -50
  32. package/dist/date-picker.js.map +1 -1
  33. package/dist/date-picker.server.js +2 -1
  34. package/dist/date-picker.server.js.map +1 -1
  35. package/dist/date-range-picker.d.ts +41 -0
  36. package/dist/date-range-picker.d.ts.map +1 -0
  37. package/dist/date-range-picker.js +368 -0
  38. package/dist/date-range-picker.js.map +1 -0
  39. package/dist/date-range-picker.server.js +347 -0
  40. package/dist/date-range-picker.server.js.map +1 -0
  41. package/dist/direction-CS85IDNU.js +21 -0
  42. package/dist/direction-CS85IDNU.js.map +1 -0
  43. package/dist/index.d.ts +6 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +193 -176
  46. package/dist/index.js.map +1 -1
  47. package/dist/internal/choice.d.ts +25 -3
  48. package/dist/internal/choice.d.ts.map +1 -1
  49. package/dist/month-picker.d.ts +33 -0
  50. package/dist/month-picker.d.ts.map +1 -0
  51. package/dist/month-picker.js +287 -0
  52. package/dist/month-picker.js.map +1 -0
  53. package/dist/month-picker.server.js +282 -0
  54. package/dist/month-picker.server.js.map +1 -0
  55. package/dist/number-input.d.ts +53 -0
  56. package/dist/number-input.d.ts.map +1 -0
  57. package/dist/number-input.js +267 -0
  58. package/dist/number-input.js.map +1 -0
  59. package/dist/number-input.server.js +237 -0
  60. package/dist/number-input.server.js.map +1 -0
  61. package/dist/pending-action.d.ts +36 -0
  62. package/dist/pending-action.d.ts.map +1 -0
  63. package/dist/segmented-control.d.ts +40 -0
  64. package/dist/segmented-control.d.ts.map +1 -0
  65. package/dist/segmented-control.js +133 -0
  66. package/dist/segmented-control.js.map +1 -0
  67. package/dist/segmented-control.server.js +138 -0
  68. package/dist/segmented-control.server.js.map +1 -0
  69. package/dist/select-picker.js +1 -1
  70. package/dist/select-picker.server.js +1 -1
  71. package/dist/server.js +49 -23
  72. package/dist/server.js.map +1 -1
  73. package/dist/time-only.d.ts +32 -0
  74. package/dist/time-only.d.ts.map +1 -0
  75. package/dist/time-picker-BlMWCQwk.js +113 -0
  76. package/dist/time-picker-BlMWCQwk.js.map +1 -0
  77. package/dist/time-picker.d.ts +34 -0
  78. package/dist/time-picker.d.ts.map +1 -0
  79. package/dist/time-picker.js +2 -0
  80. package/dist/time-picker.server.js +152 -0
  81. package/dist/time-picker.server.js.map +1 -0
  82. package/package.json +44 -4
  83. package/styles.css +31 -1
  84. package/dist/assets/calendar-view-1RO2mtf1.js.map +0 -1
  85. package/dist/assets/choice-DoXiK8nc.js.map +0 -1
  86. package/dist/calendar-view-CTBTPB4T.js +0 -444
  87. package/dist/calendar-view-CTBTPB4T.js.map +0 -1
  88. package/dist/choice-BPMiJlPJ.js +0 -395
  89. package/dist/choice-BPMiJlPJ.js.map +0 -1
@@ -0,0 +1,481 @@
1
+ import { n as e, t } from "./utils-oKxhg9RG.js";
2
+ import { c as n, f as r, p as i, r as a } from "./date-only-Bu4UmsTP.js";
3
+ import { For as o, Index as s, Show as c, createSignal as l, createUniqueId as u, splitProps as d } from "solid-js";
4
+ import { className as f, createComponent as p, effect as m, getNextElement as h, getNextMarker as g, insert as _, memo as v, mergeProps as y, runHydrationEvents as b, setAttribute as x, spread as S, template as C, use as w } from "solid-js/web";
5
+ import { useCheckbox as T } from "@ark-ui/solid/checkbox";
6
+ import { useSwitch as E } from "@ark-ui/solid/switch";
7
+ import { Field as D } from "@ark-ui/solid/field";
8
+ import { DatePicker as O } from "@ark-ui/solid/date-picker";
9
+ //#region src/controllable.ts
10
+ function k(e) {
11
+ let [t, n] = l(e.defaultValue), r = () => e.value() ?? t(), i = n;
12
+ return [r, (t) => {
13
+ let n = typeof t == "function" ? t(r()) : t;
14
+ return e.value() === void 0 && i(() => n), e.onChange?.(n), n;
15
+ }];
16
+ }
17
+ //#endregion
18
+ //#region src/controls.tsx
19
+ var A = /*#__PURE__*/ C("<button><!$><!/><!$><!/>"), j = /*#__PURE__*/ C("<span class=dds-spinner aria-hidden=true>"), M = /*#__PURE__*/ C("<button>"), N = /*#__PURE__*/ C("<span aria-hidden=true> *"), P = /*#__PURE__*/ C("<span><select>"), F = /*#__PURE__*/ C("<label><input><span>");
20
+ function I(e) {
21
+ let [n, r] = d(e, [
22
+ "class",
23
+ "tone",
24
+ "size",
25
+ "loading",
26
+ "disabled",
27
+ "type",
28
+ "children"
29
+ ]);
30
+ return (() => {
31
+ var e = h(A), i = e.firstChild, [a, o] = g(i.nextSibling), s = a.nextSibling, [c, l] = g(s.nextSibling);
32
+ return S(e, y(r, {
33
+ get type() {
34
+ return n.type ?? "button";
35
+ },
36
+ get class() {
37
+ return t("dds-btn", `dds-btn--${n.tone ?? "primary"}`, n.size !== "md" && n.size ? `dds-btn--${n.size}` : void 0, n.class);
38
+ },
39
+ get disabled() {
40
+ return n.disabled || n.loading;
41
+ },
42
+ get "aria-busy"() {
43
+ return n.loading ? "true" : void 0;
44
+ }
45
+ }), !1, !0), _(e, (() => {
46
+ var e = v(() => !!n.loading);
47
+ return () => e() && h(j);
48
+ })(), a, o), _(e, () => n.children, c, l), b(), e;
49
+ })();
50
+ }
51
+ function L(e) {
52
+ let [n, r] = d(e, [
53
+ "class",
54
+ "tone",
55
+ "size",
56
+ "loading",
57
+ "disabled",
58
+ "type",
59
+ "children"
60
+ ]);
61
+ return (() => {
62
+ var e = h(M);
63
+ return S(e, y(r, {
64
+ get type() {
65
+ return n.type ?? "button";
66
+ },
67
+ get class() {
68
+ return t("dds-iconbtn", n.tone && n.tone !== "ghost" ? `dds-iconbtn--${n.tone}` : void 0, n.size !== "md" && n.size ? `dds-iconbtn--${n.size}` : void 0, n.class);
69
+ },
70
+ get disabled() {
71
+ return n.disabled || n.loading;
72
+ },
73
+ get "aria-busy"() {
74
+ return n.loading ? "true" : void 0;
75
+ }
76
+ }), !1, !0), _(e, (() => {
77
+ var e = v(() => !!n.loading);
78
+ return () => e() ? h(j) : n.children;
79
+ })()), b(), e;
80
+ })();
81
+ }
82
+ function R(n) {
83
+ let r = u(), i = () => n.id ?? `dds-field-${r}`, a = () => n.helpText ? `${i()}-help` : void 0, o = () => n.error ? `${i()}-error` : void 0, s = () => ({
84
+ id: i(),
85
+ "aria-describedby": e(a(), o()),
86
+ "aria-invalid": n.error ? "true" : void 0,
87
+ "aria-required": n.required ? "true" : void 0
88
+ });
89
+ return p(D.Root, {
90
+ get id() {
91
+ return i();
92
+ },
93
+ get required() {
94
+ return n.required ?? !1;
95
+ },
96
+ get invalid() {
97
+ return !!n.error;
98
+ },
99
+ get ids() {
100
+ return {
101
+ control: `${i()}-root`,
102
+ helperText: `${i()}-help`,
103
+ errorText: `${i()}-error`
104
+ };
105
+ },
106
+ get class() {
107
+ return t("dds-field", n.error ? "dds-field--error" : void 0, n.class);
108
+ },
109
+ get children() {
110
+ return [
111
+ p(D.Label, {
112
+ class: "dds-field__label",
113
+ get for() {
114
+ return i();
115
+ },
116
+ get children() {
117
+ return [v(() => n.label), v(() => v(() => !!n.required)() && h(N))];
118
+ }
119
+ }),
120
+ v(() => v(() => typeof n.children == "function")() ? n.children(s()) : n.children),
121
+ v(() => v(() => !!n.helpText)() && p(D.HelperText, {
122
+ class: "dds-field__help",
123
+ get children() {
124
+ return n.helpText;
125
+ }
126
+ })),
127
+ v(() => v(() => !!n.error)() && p(D.ErrorText, {
128
+ class: "dds-field__error",
129
+ role: "alert",
130
+ get children() {
131
+ return n.error;
132
+ }
133
+ }))
134
+ ];
135
+ }
136
+ });
137
+ }
138
+ function z(e) {
139
+ let [n, r] = d(e, [
140
+ "class",
141
+ "invalid",
142
+ "children"
143
+ ]);
144
+ return (() => {
145
+ var e = h(P), i = e.firstChild;
146
+ return S(i, y(r, {
147
+ class: "dds-select__input",
148
+ get "aria-invalid"() {
149
+ return n.invalid ? "true" : void 0;
150
+ }
151
+ }), !1, !0), _(i, () => n.children), m(() => f(e, t("dds-select", n.class))), b(), e;
152
+ })();
153
+ }
154
+ function B(e) {
155
+ let [n, r] = d(e, [
156
+ "checked",
157
+ "defaultChecked",
158
+ "onCheckedChange",
159
+ "label",
160
+ "class",
161
+ "inputClass",
162
+ "type",
163
+ "role"
164
+ ]), [i, a] = k({
165
+ value: () => n.checked,
166
+ defaultValue: n.defaultChecked ?? !1,
167
+ onChange: n.onCheckedChange
168
+ });
169
+ return (() => {
170
+ var e = h(F), o = e.firstChild, s = o.nextSibling;
171
+ return S(o, y(r, {
172
+ get type() {
173
+ return n.type;
174
+ },
175
+ get role() {
176
+ return n.role;
177
+ },
178
+ get class() {
179
+ return t(n.role === "switch" ? "dds-switch__input" : "dds-check__input", n.inputClass);
180
+ },
181
+ get checked() {
182
+ return i();
183
+ },
184
+ onChange: (e) => a(e.currentTarget.checked)
185
+ }), !1, !1), _(s, () => n.label), m(() => f(e, t(n.role === "switch" ? "dds-switch" : "dds-check", n.class))), b(), e;
186
+ })();
187
+ }
188
+ var V = (e) => p(W, y(e, { kind: "checkbox" })), H = (e) => p(B, y(e, { type: "radio" })), U = (e) => p(W, y(e, { kind: "switch" }));
189
+ function W(e) {
190
+ let n = u(), [r, i] = d(e, [
191
+ "checked",
192
+ "defaultChecked",
193
+ "onCheckedChange",
194
+ "label",
195
+ "class",
196
+ "inputClass",
197
+ "kind",
198
+ "id",
199
+ "onClick",
200
+ "onFocusIn",
201
+ "onFocusOut",
202
+ "style"
203
+ ]), a = () => ({
204
+ id: `dds-check-${n}`,
205
+ ids: { hiddenInput: r.id ?? `dds-check-${n}-input` },
206
+ checked: r.checked,
207
+ defaultChecked: r.defaultChecked,
208
+ onCheckedChange: (e) => r.onCheckedChange?.(e.checked === !0),
209
+ disabled: i.disabled,
210
+ required: i.required,
211
+ readOnly: i.readonly,
212
+ name: i.name,
213
+ form: i.form,
214
+ value: String(i.value ?? "on")
215
+ }), o = r.kind === "switch" ? E(a) : T(a), s = () => r.kind === "switch" ? "dds-switch__input" : "dds-check__input", c = () => {
216
+ let [, e] = d(o().getRootProps(), ["onClick"]);
217
+ return e;
218
+ };
219
+ return (() => {
220
+ var e = h(F), n = e.firstChild, a = n.nextSibling;
221
+ return S(e, y(c, { get class() {
222
+ return t(r.kind === "switch" ? "dds-switch" : "dds-check", r.class);
223
+ } }), !1, !0), w((e) => {
224
+ e.defaultChecked = r.checked ?? r.defaultChecked ?? !1, typeof i.ref == "function" && i.ref(e);
225
+ }, n), S(n, y(() => o().getHiddenInputProps(), i, {
226
+ type: "checkbox",
227
+ get role() {
228
+ return r.kind === "switch" ? "switch" : void 0;
229
+ },
230
+ get class() {
231
+ return t(s(), r.inputClass);
232
+ },
233
+ get style() {
234
+ return r.style ?? {};
235
+ },
236
+ get checked() {
237
+ return o().checked;
238
+ },
239
+ onFocusIn: (e) => {
240
+ G(o().getHiddenInputProps().onFocusIn, e), G(r.onFocusIn, e);
241
+ },
242
+ onFocusOut: (e) => {
243
+ G(o().getHiddenInputProps().onFocusOut, e), G(r.onFocusOut, e);
244
+ },
245
+ onClick: (e) => {
246
+ if (typeof r.onClick == "function" ? r.onClick(e) : r.onClick && r.onClick[0](r.onClick[1], e), !e.defaultPrevented) {
247
+ let t = o().getHiddenInputProps().onClick;
248
+ typeof t == "function" ? t(e) : t && t[0](t[1], e);
249
+ }
250
+ }
251
+ }), !1, !1), S(a, y(() => o().getLabelProps()), !1, !0), _(a, () => r.label), b(), e;
252
+ })();
253
+ }
254
+ function G(e, t) {
255
+ typeof e == "function" ? e(t) : e && e[0](e[1], t);
256
+ }
257
+ //#endregion
258
+ //#region src/calendar-view.tsx
259
+ var K = /*#__PURE__*/ C("<svg width=18 height=18 viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden=true><path>"), q = /*#__PURE__*/ C("<span class=dds-date-picker-year aria-live=polite>"), J = /*#__PURE__*/ C("<div class=dds-date-picker-presets role=group>"), Y = /*#__PURE__*/ C("<div class=dds-date-picker-footer><!$><!/><!$><!/><!$><!/>");
260
+ function X(e) {
261
+ return (() => {
262
+ var t = h(K), n = t.firstChild;
263
+ return m(() => x(n, "d", e.next ? "m9 5 7 7-7 7" : "m15 5-7 7 7 7")), t;
264
+ })();
265
+ }
266
+ function Z(e) {
267
+ let t = () => a(e.locale ?? "ko-KR", e.messages), l = () => e.disabled || e.readOnly, u = () => e.view === "month", d = () => e.presets ?? [], f = () => i(r(e.timeZone ?? "Asia/Seoul"), !1, e.min, e.max, e.locale).valid;
268
+ return p(O.View, {
269
+ get view() {
270
+ return u() ? "month" : "day";
271
+ },
272
+ get children() {
273
+ return p(O.Context, { children: (i) => [
274
+ p(O.ViewControl, {
275
+ class: "dds-date-picker-header",
276
+ get children() {
277
+ return [
278
+ p(O.PrevTrigger, {
279
+ class: "dds-btn dds-btn--secondary",
280
+ get "aria-label"() {
281
+ return v(() => !!u())() ? t().previousYear : t().previousMonth;
282
+ },
283
+ get children() {
284
+ return p(X, {});
285
+ }
286
+ }),
287
+ p(c, {
288
+ get when() {
289
+ return u();
290
+ },
291
+ get fallback() {
292
+ return p(O.RangeText, {});
293
+ },
294
+ get children() {
295
+ var t = h(q);
296
+ return _(t, (() => {
297
+ var t = v(() => !!n(e.locale ?? "ko-KR"));
298
+ return () => t() ? `${i().focusedValue.year}년` : i().focusedValue.year;
299
+ })()), t;
300
+ }
301
+ }),
302
+ p(O.NextTrigger, {
303
+ class: "dds-btn dds-btn--secondary",
304
+ get "aria-label"() {
305
+ return v(() => !!u())() ? t().nextYear : t().nextMonth;
306
+ },
307
+ get children() {
308
+ return p(X, { next: !0 });
309
+ }
310
+ })
311
+ ];
312
+ }
313
+ }),
314
+ p(c, {
315
+ get when() {
316
+ return u();
317
+ },
318
+ get fallback() {
319
+ return p(O.Table, {
320
+ class: "dds-date-picker-table",
321
+ get children() {
322
+ return [p(O.TableHead, { get children() {
323
+ return p(O.TableRow, { get children() {
324
+ return p(s, {
325
+ get each() {
326
+ return i().weekDays;
327
+ },
328
+ children: (e) => p(O.TableHeader, { get children() {
329
+ return e().short;
330
+ } })
331
+ });
332
+ } });
333
+ } }), p(O.TableBody, { get children() {
334
+ return p(s, {
335
+ get each() {
336
+ return i().weeks;
337
+ },
338
+ children: (e) => p(O.TableRow, { get children() {
339
+ return p(s, {
340
+ get each() {
341
+ return e();
342
+ },
343
+ children: (e) => p(O.TableCell, {
344
+ get value() {
345
+ return e();
346
+ },
347
+ get children() {
348
+ return p(O.TableCellTrigger, { get children() {
349
+ return e().day;
350
+ } });
351
+ }
352
+ })
353
+ });
354
+ } })
355
+ });
356
+ } })];
357
+ }
358
+ });
359
+ },
360
+ get children() {
361
+ return p(O.Table, {
362
+ class: "dds-date-picker-table dds-date-picker-table--months",
363
+ get children() {
364
+ return p(O.TableBody, { get children() {
365
+ return p(s, {
366
+ get each() {
367
+ return i().getMonthsGrid({
368
+ columns: 3,
369
+ format: "short"
370
+ });
371
+ },
372
+ children: (t) => p(O.TableRow, { get children() {
373
+ return p(s, {
374
+ get each() {
375
+ return t();
376
+ },
377
+ children: (t) => p(O.TableCell, {
378
+ get value() {
379
+ return t().value;
380
+ },
381
+ get children() {
382
+ return p(O.TableCellTrigger, {
383
+ get "data-today"() {
384
+ return r(e.timeZone ?? "Asia/Seoul").slice(0, 7) === `${String(i().focusedValue.year).padStart(4, "0")}-${String(t().value).padStart(2, "0")}` ? "" : void 0;
385
+ },
386
+ get children() {
387
+ return t().label;
388
+ }
389
+ });
390
+ }
391
+ })
392
+ });
393
+ } })
394
+ });
395
+ } });
396
+ }
397
+ });
398
+ }
399
+ }),
400
+ p(c, {
401
+ get when() {
402
+ return d().length > 0 || e.showToday !== !1 || e.showClear !== !1;
403
+ },
404
+ get children() {
405
+ var n = h(Y), r = n.firstChild, [a, s] = g(r.nextSibling), y = a.nextSibling, [b, S] = g(y.nextSibling), C = b.nextSibling, [w, T] = g(C.nextSibling);
406
+ return _(n, p(c, {
407
+ get when() {
408
+ return d().length > 0;
409
+ },
410
+ get children() {
411
+ var t = h(J);
412
+ return _(t, p(o, {
413
+ get each() {
414
+ return d();
415
+ },
416
+ children: (e) => p(I, {
417
+ type: "button",
418
+ tone: "secondary",
419
+ size: "sm",
420
+ get disabled() {
421
+ return l() || e.disabled;
422
+ },
423
+ onClick: () => {
424
+ !l() && !e.disabled && e.onSelect();
425
+ },
426
+ get children() {
427
+ return e.label;
428
+ }
429
+ })
430
+ })), m(() => x(t, "aria-label", e.presetsLabel)), t;
431
+ }
432
+ }), a, s), _(n, p(c, {
433
+ get when() {
434
+ return e.showToday !== !1;
435
+ },
436
+ get children() {
437
+ return p(I, {
438
+ type: "button",
439
+ tone: "secondary",
440
+ get disabled() {
441
+ return l() || !f();
442
+ },
443
+ onClick: () => {
444
+ !l() && f() && i().selectToday();
445
+ },
446
+ get children() {
447
+ return v(() => !!u())() ? t().thisMonth : t().today;
448
+ }
449
+ });
450
+ }
451
+ }), b, S), _(n, p(c, {
452
+ get when() {
453
+ return e.showClear !== !1;
454
+ },
455
+ get children() {
456
+ return p(O.ClearTrigger, {
457
+ hidden: !1,
458
+ class: "dds-btn dds-btn--secondary",
459
+ get disabled() {
460
+ return l();
461
+ },
462
+ onPointerDown: (e) => e.preventDefault(),
463
+ onClick: () => {
464
+ l() || e.onClear?.();
465
+ },
466
+ get children() {
467
+ return t().clear;
468
+ }
469
+ });
470
+ }
471
+ }), w, T), n;
472
+ }
473
+ })
474
+ ] });
475
+ }
476
+ });
477
+ }
478
+ //#endregion
479
+ export { L as a, U as c, R as i, k as l, I as n, H as o, V as r, z as s, Z as t };
480
+
481
+ //# sourceMappingURL=calendar-view-CZLsC57_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-view-CZLsC57_.js","names":["createUniqueId","splitProps","JSX","ParentProps","createControllableSignal","useCheckbox","useSwitch","Field","ArkField","classes","describedBy","ButtonTone","ControlSize","ButtonProps","Omit","ButtonHTMLAttributes","HTMLButtonElement","class","tone","size","loading","Button","props","local","rest","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_co$","_$getNextMarker","nextSibling","_el$4","_el$5","_co$2","_$spread","_$mergeProps","type","undefined","disabled","aria-busy","_$insert","_c$","_$memo","_tmpl$2","children","_$runHydrationEvents","IconButtonProps","Element","IconButton","_el$7","_tmpl$3","_c$2","FieldControlProps","id","FieldProps","label","helpText","error","required","generated","helpId","errorId","control","_$createComponent","Root","invalid","Boolean","ids","helperText","errorText","Label","for","_tmpl$4","HelperText","ErrorText","role","SelectProps","SelectHTMLAttributes","HTMLSelectElement","Select","_el$0","_tmpl$5","_el$1","aria-invalid","_$effect","_$className","CheckableProps","InputHTMLAttributes","HTMLInputElement","checked","defaultChecked","onCheckedChange","inputClass","Checkable","setChecked","value","defaultValue","onChange","_el$10","_tmpl$6","_el$11","_el$12","event","currentTarget","CheckboxProps","Checkbox","ArkCheckable","kind","RadioProps","Radio","SwitchProps","Switch","options","hiddenInput","details","readOnly","readonly","name","form","String","api","rootProps","attributes","getRootProps","_el$13","_el$14","_el$15","_$use","input","ref","getHiddenInputProps","style","callInputHandler","onFocusIn","onFocusOut","onClick","defaultPrevented","handler","getLabelProps","FocusEventHandlerUnion","FocusEvent","target","DatePicker","ArkDatePicker","For","Index","Show","Button","dateMessages","isKorean","todayDate","validateInput","CalendarMessages","Chevron","props","next","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$effect","_$setAttribute","CalendarViewPreset","label","disabled","onSelect","CalendarViewProps","timeZone","min","max","locale","messages","readOnly","showToday","showClear","onClear","view","presets","presetsLabel","CalendarView","text","locked","months","todayAllowed","valid","_$createComponent","View","children","Context","picker","ViewControl","PrevTrigger","aria-label","_$memo","previousYear","previousMonth","when","fallback","RangeText","_el$3","_tmpl$2","_$insert","_c$","focusedValue","year","NextTrigger","nextYear","nextMonth","Table","TableHead","TableRow","each","weekDays","day","TableHeader","short","TableBody","weeks","week","TableCell","value","TableCellTrigger","getMonthsGrid","columns","format","row","month","data-today","slice","String","padStart","undefined","length","_el$4","_tmpl$4","_el$6","_el$7","_co$","_$getNextMarker","nextSibling","_el$8","_el$9","_co$2","_el$0","_el$1","_co$3","_el$5","_tmpl$3","preset","type","tone","size","onClick","selectToday","thisMonth","today","ClearTrigger","hidden","onPointerDown","event","preventDefault","clear"],"sources":["../src/controllable.ts","../src/controls.tsx","../src/calendar-view.tsx"],"sourcesContent":["import { createSignal, type Accessor } from \"solid-js\";\n\nexport interface ControllableOptions<T> {\n value: Accessor<T | undefined>;\n defaultValue: T;\n onChange: ((value: T) => void) | undefined;\n}\n\nexport type ControllableSetter<T> = (next: T | ((previous: T) => T)) => T;\n\nexport function createControllableSignal<T>(options: ControllableOptions<T>): [Accessor<T>, ControllableSetter<T>] {\n const [internal, setInternal] = createSignal(options.defaultValue);\n const value: Accessor<T> = () => options.value() ?? internal();\n const setInternalValue = setInternal as unknown as ControllableSetter<T>;\n const setValue: ControllableSetter<T> = (next) => {\n const resolved = typeof next === \"function\"\n ? (next as (previous: T) => T)(value())\n : next;\n if (options.value() === undefined) setInternalValue(() => resolved);\n options.onChange?.(resolved);\n return resolved;\n };\n return [value, setValue];\n}\n","import {\n createUniqueId,\n splitProps,\n type JSX,\n type ParentProps,\n} from \"solid-js\";\n\nimport { createControllableSignal } from \"./controllable\";\nimport { useCheckbox } from \"@ark-ui/solid/checkbox\";\nimport { useSwitch } from \"@ark-ui/solid/switch\";\nimport { Field as ArkField } from \"@ark-ui/solid/field\";\nimport { classes, describedBy } from \"./utils\";\n\nexport type ButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\";\nexport type ControlSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> {\n class?: string;\n tone?: ButtonTone;\n size?: ControlSize;\n loading?: boolean;\n}\n\nexport function Button(props: ParentProps<ButtonProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"tone\", \"size\", \"loading\", \"disabled\", \"type\", \"children\"]);\n return (\n <button\n {...rest}\n type={local.type ?? \"button\"}\n class={classes(\"dds-btn\", `dds-btn--${local.tone ?? \"primary\"}`, local.size !== \"md\" && local.size ? `dds-btn--${local.size}` : undefined, local.class)}\n disabled={local.disabled || local.loading}\n aria-busy={local.loading ? \"true\" : undefined}\n >\n {local.loading && <span class=\"dds-spinner\" aria-hidden=\"true\" />}\n {local.children}\n </button>\n );\n}\n\nexport interface IconButtonProps extends Omit<ButtonProps, \"tone\" | \"children\"> {\n \"aria-label\": string;\n tone?: \"ghost\" | \"secondary\" | \"danger\";\n children: JSX.Element;\n}\n\nexport function IconButton(props: IconButtonProps) {\n const [local, rest] = splitProps(props, [\"class\", \"tone\", \"size\", \"loading\", \"disabled\", \"type\", \"children\"]);\n return (\n <button\n {...rest}\n type={local.type ?? \"button\"}\n class={classes(\"dds-iconbtn\", local.tone && local.tone !== \"ghost\" ? `dds-iconbtn--${local.tone}` : undefined, local.size !== \"md\" && local.size ? `dds-iconbtn--${local.size}` : undefined, local.class)}\n disabled={local.disabled || local.loading}\n aria-busy={local.loading ? \"true\" : undefined}\n >\n {local.loading ? <span class=\"dds-spinner\" aria-hidden=\"true\" /> : local.children}\n </button>\n );\n}\n\nexport interface FieldControlProps {\n id: string;\n \"aria-describedby\": string | undefined;\n \"aria-invalid\": \"true\" | undefined;\n \"aria-required\": \"true\" | undefined;\n}\n\nexport interface FieldProps {\n id?: string;\n label: JSX.Element;\n helpText?: JSX.Element;\n error?: JSX.Element;\n required?: boolean;\n class?: string;\n children: JSX.Element | ((props: FieldControlProps) => JSX.Element);\n}\n\nexport function Field(props: FieldProps) {\n const generated = createUniqueId();\n const id = () => props.id ?? `dds-field-${generated}`;\n const helpId = () => props.helpText ? `${id()}-help` : undefined;\n const errorId = () => props.error ? `${id()}-error` : undefined;\n const control = (): FieldControlProps => ({\n id: id(),\n \"aria-describedby\": describedBy(helpId(), errorId()),\n \"aria-invalid\": props.error ? \"true\" : undefined,\n \"aria-required\": props.required ? \"true\" : undefined,\n });\n return (\n <ArkField.Root id={id()} required={props.required ?? false} invalid={Boolean(props.error)} ids={{ control: `${id()}-root`, helperText: `${id()}-help`, errorText: `${id()}-error` }} class={classes(\"dds-field\", props.error ? \"dds-field--error\" : undefined, props.class)}>\n <ArkField.Label class=\"dds-field__label\" for={id()}>{props.label}{props.required && <span aria-hidden=\"true\"> *</span>}</ArkField.Label>\n {typeof props.children === \"function\" ? props.children(control()) : props.children}\n {props.helpText && <ArkField.HelperText class=\"dds-field__help\">{props.helpText}</ArkField.HelperText>}\n {props.error && <ArkField.ErrorText class=\"dds-field__error\" role=\"alert\">{props.error}</ArkField.ErrorText>}\n </ArkField.Root>\n );\n}\n\nexport interface SelectProps extends Omit<JSX.SelectHTMLAttributes<HTMLSelectElement>, \"class\"> {\n class?: string;\n invalid?: boolean;\n}\n\nexport function Select(props: ParentProps<SelectProps>) {\n const [local, rest] = splitProps(props, [\"class\", \"invalid\", \"children\"]);\n return (\n <span class={classes(\"dds-select\", local.class)}>\n <select {...rest} class=\"dds-select__input\" aria-invalid={local.invalid ? \"true\" : undefined}>\n {local.children}\n </select>\n </span>\n );\n}\n\ninterface CheckableProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"checked\" | \"class\" | \"onChange\" | \"role\" | \"type\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n label: JSX.Element;\n class?: string;\n inputClass?: string;\n}\n\nfunction Checkable(props: CheckableProps & { type: \"checkbox\" | \"radio\"; role?: \"switch\" }) {\n const [local, rest] = splitProps(props, [\"checked\", \"defaultChecked\", \"onCheckedChange\", \"label\", \"class\", \"inputClass\", \"type\", \"role\"]);\n const [checked, setChecked] = createControllableSignal({\n value: () => local.checked,\n defaultValue: local.defaultChecked ?? false,\n onChange: local.onCheckedChange,\n });\n return (\n <label class={classes(local.role === \"switch\" ? \"dds-switch\" : \"dds-check\", local.class)}>\n <input\n {...rest}\n type={local.type}\n role={local.role}\n class={classes(local.role === \"switch\" ? \"dds-switch__input\" : \"dds-check__input\", local.inputClass)}\n checked={checked()}\n onChange={(event) => setChecked(event.currentTarget.checked)}\n />\n <span>{local.label}</span>\n </label>\n );\n}\n\nexport type CheckboxProps = CheckableProps;\nexport const Checkbox = (props: CheckboxProps) => <ArkCheckable {...props} kind=\"checkbox\" />;\n\nexport type RadioProps = CheckableProps;\nexport const Radio = (props: RadioProps) => <Checkable {...props} type=\"radio\" />;\n\nexport type SwitchProps = CheckableProps;\nexport const Switch = (props: SwitchProps) => <ArkCheckable {...props} kind=\"switch\" />;\n\nfunction ArkCheckable(props: CheckableProps & { kind: \"checkbox\" | \"switch\" }) {\n const generated = createUniqueId();\n const [local, rest] = splitProps(props, [\"checked\", \"defaultChecked\", \"onCheckedChange\", \"label\", \"class\", \"inputClass\", \"kind\", \"id\", \"onClick\", \"onFocusIn\", \"onFocusOut\", \"style\"]);\n const options = () => ({\n id: `dds-check-${generated}`,\n ids: { hiddenInput: local.id ?? `dds-check-${generated}-input` },\n checked: local.checked, defaultChecked: local.defaultChecked,\n onCheckedChange: (details: { checked: boolean | \"indeterminate\" }) => local.onCheckedChange?.(details.checked === true),\n disabled: rest.disabled, required: rest.required, readOnly: rest.readonly,\n name: rest.name, form: rest.form, value: String(rest.value ?? \"on\"),\n });\n const api = local.kind === \"switch\" ? useSwitch(options) : useCheckbox(options);\n const inputClass = () => local.kind === \"switch\" ? \"dds-switch__input\" : \"dds-check__input\";\n const rootProps = () => {\n const [, attributes] = splitProps(api().getRootProps(), [\"onClick\"]);\n return attributes;\n };\n return <label {...rootProps()} class={classes(local.kind === \"switch\" ? \"dds-switch\" : \"dds-check\", local.class)}>\n <input {...api().getHiddenInputProps()} {...rest}\n ref={(input) => {\n // Ark normalizes defaultChecked to checked. Preserve the native reset\n // baseline as well when rendering its input visibly with DDS CSS.\n input.defaultChecked = local.checked ?? local.defaultChecked ?? false;\n if (typeof rest.ref === \"function\") rest.ref(input);\n }}\n type=\"checkbox\" role={local.kind === \"switch\" ? \"switch\" : undefined}\n class={classes(inputClass(), local.inputClass)}\n style={local.style ?? {}} checked={api().checked}\n onFocusIn={(event) => {\n callInputHandler(api().getHiddenInputProps().onFocusIn, event);\n callInputHandler(local.onFocusIn, event);\n }}\n onFocusOut={(event) => {\n callInputHandler(api().getHiddenInputProps().onFocusOut, event);\n callInputHandler(local.onFocusOut, event);\n }}\n onClick={(event) => {\n if (typeof local.onClick === \"function\") local.onClick(event);\n else if (local.onClick) local.onClick[0](local.onClick[1], event);\n if (!event.defaultPrevented) {\n const handler = api().getHiddenInputProps().onClick;\n if (typeof handler === \"function\") handler(event);\n else if (handler) handler[0](handler[1], event);\n }\n }}\n />\n <span {...api().getLabelProps()}>{local.label}</span>\n </label>;\n}\n\nfunction callInputHandler(handler: JSX.FocusEventHandlerUnion<HTMLInputElement, FocusEvent> | undefined, event: FocusEvent & { currentTarget: HTMLInputElement; target: HTMLInputElement }) {\n if (typeof handler === \"function\") handler(event);\n else if (handler) handler[0](handler[1], event);\n}\n","import { DatePicker as ArkDatePicker } from \"@ark-ui/solid/date-picker\";\nimport { For, Index, Show } from \"solid-js\";\nimport { Button } from \"./controls\";\nimport {\n dateMessages,\n isKorean,\n todayDate,\n validateInput,\n type CalendarMessages,\n} from \"./date-only\";\nfunction Chevron(props: { next?: boolean }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n aria-hidden=\"true\"\n >\n <path d={props.next ? \"m9 5 7 7-7 7\" : \"m15 5-7 7 7 7\"} />\n </svg>\n );\n}\n/** A consumer-supplied footer shortcut (DateRangePicker presets). */\nexport interface CalendarViewPreset {\n label: string;\n disabled?: boolean | undefined;\n onSelect: () => void;\n}\nexport interface CalendarViewProps {\n timeZone?: string | undefined;\n min?: string | undefined;\n max?: string | undefined;\n locale?: string | undefined;\n messages?: CalendarMessages | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n showToday?: boolean | undefined;\n showClear?: boolean | undefined;\n onClear?: (() => void) | undefined;\n /** \"month\" renders a 3 × 4 month grid paged by year; the caller sets Ark minView/maxView to match. */\n view?: \"day\" | \"month\" | undefined;\n presets?: CalendarViewPreset[] | undefined;\n presetsLabel?: string | undefined;\n}\n/** Internal view: the caller owns the single Ark root and its selection. */\nexport function CalendarView(props: CalendarViewProps) {\n const text = () => dateMessages(props.locale ?? \"ko-KR\", props.messages),\n locked = () => props.disabled || props.readOnly,\n months = () => props.view === \"month\",\n presets = () => props.presets ?? [],\n todayAllowed = () =>\n validateInput(\n todayDate(props.timeZone ?? \"Asia/Seoul\"),\n false,\n props.min,\n props.max,\n props.locale,\n ).valid;\n return (\n <ArkDatePicker.View view={months() ? \"month\" : \"day\"}>\n <ArkDatePicker.Context>\n {(picker) => (\n <>\n <ArkDatePicker.ViewControl class=\"dds-date-picker-header\">\n <ArkDatePicker.PrevTrigger\n class=\"dds-btn dds-btn--secondary\"\n aria-label={months() ? text().previousYear : text().previousMonth}\n >\n <Chevron />\n </ArkDatePicker.PrevTrigger>\n <Show when={months()} fallback={<ArkDatePicker.RangeText />}>\n <span class=\"dds-date-picker-year\" aria-live=\"polite\">\n {isKorean(props.locale ?? \"ko-KR\")\n ? `${picker().focusedValue.year}년`\n : picker().focusedValue.year}\n </span>\n </Show>\n <ArkDatePicker.NextTrigger\n class=\"dds-btn dds-btn--secondary\"\n aria-label={months() ? text().nextYear : text().nextMonth}\n >\n <Chevron next />\n </ArkDatePicker.NextTrigger>\n </ArkDatePicker.ViewControl>\n <Show\n when={months()}\n fallback={\n <ArkDatePicker.Table class=\"dds-date-picker-table\">\n <ArkDatePicker.TableHead>\n <ArkDatePicker.TableRow>\n <Index each={picker().weekDays}>\n {(day) => (\n <ArkDatePicker.TableHeader>\n {day().short}\n </ArkDatePicker.TableHeader>\n )}\n </Index>\n </ArkDatePicker.TableRow>\n </ArkDatePicker.TableHead>\n <ArkDatePicker.TableBody>\n <Index each={picker().weeks}>\n {(week) => (\n <ArkDatePicker.TableRow>\n <Index each={week()}>\n {(day) => (\n <ArkDatePicker.TableCell value={day()}>\n <ArkDatePicker.TableCellTrigger>\n {day().day}\n </ArkDatePicker.TableCellTrigger>\n </ArkDatePicker.TableCell>\n )}\n </Index>\n </ArkDatePicker.TableRow>\n )}\n </Index>\n </ArkDatePicker.TableBody>\n </ArkDatePicker.Table>\n }\n >\n <ArkDatePicker.Table class=\"dds-date-picker-table dds-date-picker-table--months\">\n <ArkDatePicker.TableBody>\n <Index each={picker().getMonthsGrid({ columns: 3, format: \"short\" })}>\n {(row) => (\n <ArkDatePicker.TableRow>\n <Index each={row()}>\n {(month) => (\n <ArkDatePicker.TableCell value={month().value}>\n <ArkDatePicker.TableCellTrigger\n data-today={\n todayDate(props.timeZone ?? \"Asia/Seoul\").slice(0, 7) ===\n `${String(picker().focusedValue.year).padStart(4, \"0\")}-${String(month().value).padStart(2, \"0\")}`\n ? \"\"\n : undefined\n }\n >\n {month().label}\n </ArkDatePicker.TableCellTrigger>\n </ArkDatePicker.TableCell>\n )}\n </Index>\n </ArkDatePicker.TableRow>\n )}\n </Index>\n </ArkDatePicker.TableBody>\n </ArkDatePicker.Table>\n </Show>\n <Show\n when={\n presets().length > 0 ||\n props.showToday !== false ||\n props.showClear !== false\n }\n >\n <div class=\"dds-date-picker-footer\">\n <Show when={presets().length > 0}>\n <div\n class=\"dds-date-picker-presets\"\n role=\"group\"\n aria-label={props.presetsLabel}\n >\n <For each={presets()}>\n {(preset) => (\n <Button\n type=\"button\"\n tone=\"secondary\"\n size=\"sm\"\n disabled={locked() || preset.disabled}\n onClick={() => {\n if (!locked() && !preset.disabled) preset.onSelect();\n }}\n >\n {preset.label}\n </Button>\n )}\n </For>\n </div>\n </Show>\n <Show when={props.showToday !== false}>\n <Button\n type=\"button\"\n tone=\"secondary\"\n disabled={locked() || !todayAllowed()}\n onClick={() => {\n if (!locked() && todayAllowed()) picker().selectToday();\n }}\n >\n {months() ? text().thisMonth : text().today}\n </Button>\n </Show>\n <Show when={props.showClear !== false}>\n <ArkDatePicker.ClearTrigger\n hidden={false}\n class=\"dds-btn dds-btn--secondary\"\n disabled={locked()}\n onPointerDown={(event) => event.preventDefault()}\n onClick={() => {\n if (!locked()) props.onClear?.();\n }}\n >\n {text().clear}\n </ArkDatePicker.ClearTrigger>\n </Show>\n </div>\n </Show>\n </>\n )}\n </ArkDatePicker.Context>\n </ArkDatePicker.View>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import { type CalendarMessages } from "./date-only";
2
+ /** A consumer-supplied footer shortcut (DateRangePicker presets). */
3
+ export interface CalendarViewPreset {
4
+ label: string;
5
+ disabled?: boolean | undefined;
6
+ onSelect: () => void;
7
+ }
2
8
  export interface CalendarViewProps {
3
9
  timeZone?: string | undefined;
4
10
  min?: string | undefined;
@@ -10,6 +16,10 @@ export interface CalendarViewProps {
10
16
  showToday?: boolean | undefined;
11
17
  showClear?: boolean | undefined;
12
18
  onClear?: (() => void) | undefined;
19
+ /** "month" renders a 3 × 4 month grid paged by year; the caller sets Ark minView/maxView to match. */
20
+ view?: "day" | "month" | undefined;
21
+ presets?: CalendarViewPreset[] | undefined;
22
+ presetsLabel?: string | undefined;
13
23
  }
14
24
  /** Internal view: the caller owns the single Ark root and its selection. */
15
25
  export declare function CalendarView(props: CalendarViewProps): import("solid-js").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-view.d.ts","sourceRoot":"","sources":["../src/calendar-view.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAgBrB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACpC;AACD,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCAwGpD"}
1
+ {"version":3,"file":"calendar-view.d.ts","sourceRoot":"","sources":["../src/calendar-view.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAgBrB,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AACD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,sGAAsG;IACtG,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AACD,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCAoKpD"}
package/dist/calendar.js CHANGED
@@ -1,9 +1,10 @@
1
- import { a as e, r as t, s as n, t as r } from "./calendar-view-CTBTPB4T.js";
1
+ import { t as e } from "./calendar-view-CZLsC57_.js";
2
+ import { o as t, p as n, r } from "./date-only-Bu4UmsTP.js";
2
3
  import { createComponent as i, memo as a } from "solid-js/web";
3
4
  import { DatePicker as o, parseDate as s } from "@ark-ui/solid/date-picker";
4
5
  //#region src/calendar.tsx
5
6
  function c(c) {
6
- let l = () => c.locale ?? "ko-KR", u = () => t(l(), c.messages);
7
+ let l = () => c.locale ?? "ko-KR", u = () => r(l(), c.messages);
7
8
  return i(o.Root, {
8
9
  class: "dds-calendar",
9
10
  get "aria-label"() {
@@ -24,10 +25,10 @@ function c(c) {
24
25
  return c.readOnly;
25
26
  },
26
27
  get min() {
27
- return a(() => !!(c.min && e(c.min)))() ? s(c.min) : void 0;
28
+ return a(() => !!(c.min && t(c.min)))() ? s(c.min) : void 0;
28
29
  },
29
30
  get max() {
30
- return a(() => !!(c.max && e(c.max)))() ? s(c.max) : void 0;
31
+ return a(() => !!(c.max && t(c.max)))() ? s(c.max) : void 0;
31
32
  },
32
33
  get startOfWeek() {
33
34
  return c.startOfWeek ?? 0;
@@ -36,7 +37,7 @@ function c(c) {
36
37
  maxView: "day",
37
38
  fixedWeeks: !0,
38
39
  get value() {
39
- return a(() => !!e(c.value))() ? [s(c.value)] : [];
40
+ return a(() => !!t(c.value))() ? [s(c.value)] : [];
40
41
  },
41
42
  get translations() {
42
43
  return {
@@ -55,7 +56,7 @@ function c(c) {
55
56
  return c.label;
56
57
  },
57
58
  get children() {
58
- return i(r, {
59
+ return i(e, {
59
60
  get timeZone() {
60
61
  return c.timeZone;
61
62
  },
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","names":["DatePicker","ArkDatePicker","parseDate","CalendarView","isCalendarDate","validateInput","dateMessages","CalendarMessages","CalendarProps","label","value","onChange","locale","timeZone","min","max","disabled","readOnly","startOfWeek","messages","showToday","clearable","Calendar","props","text","_$createComponent","Root","aria-label","role","inline","_$memo","undefined","minView","maxView","fixedWeeks","translations","dayCell","state","selectDate","valueText","clearTrigger","clear","onValueChange","details","next","toString","valid","children","Content","showClear"],"sources":["../src/calendar.tsx"],"sourcesContent":["import {\n DatePicker as ArkDatePicker,\n parseDate,\n} from \"@ark-ui/solid/date-picker\";\nimport { CalendarView } from \"./calendar-view\";\nimport {\n isCalendarDate,\n validateInput,\n dateMessages,\n type CalendarMessages,\n} from \"./date-only\";\nexport interface CalendarProps {\n label: string;\n value: string;\n onChange: (value: string) => void;\n locale?: string;\n timeZone?: string;\n min?: string;\n max?: string;\n disabled?: boolean;\n readOnly?: boolean;\n startOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n messages?: CalendarMessages;\n showToday?: boolean;\n clearable?: boolean;\n}\nexport type { CalendarMessages } from \"./date-only\";\nexport function Calendar(props: CalendarProps) {\n const locale = () => props.locale ?? \"ko-KR\",\n text = () => dateMessages(locale(), props.messages);\n return (\n <ArkDatePicker.Root\n class=\"dds-calendar\"\n aria-label={props.label}\n role=\"group\"\n inline\n locale={locale()}\n timeZone={props.timeZone ?? \"Asia/Seoul\"}\n disabled={props.disabled}\n readOnly={props.readOnly}\n min={\n props.min && isCalendarDate(props.min)\n ? parseDate(props.min)\n : undefined\n }\n max={\n props.max && isCalendarDate(props.max)\n ? parseDate(props.max)\n : undefined\n }\n startOfWeek={props.startOfWeek ?? 0}\n minView=\"day\"\n maxView=\"day\"\n fixedWeeks\n value={isCalendarDate(props.value) ? [parseDate(props.value)] : []}\n translations={{\n dayCell: (state) => text().selectDate(state.valueText),\n clearTrigger: text().clear,\n }}\n onValueChange={(details) => {\n const next = details.value[0]?.toString() ?? \"\";\n if (\n !props.disabled &&\n !props.readOnly &&\n validateInput(next, false, props.min, props.max, locale()).valid\n )\n props.onChange(next);\n }}\n >\n <ArkDatePicker.Content\n class=\"dds-date-picker-content\"\n aria-label={props.label}\n >\n <CalendarView\n timeZone={props.timeZone}\n min={props.min}\n max={props.max}\n locale={locale()}\n messages={props.messages}\n disabled={props.disabled}\n readOnly={props.readOnly}\n showToday={props.showToday}\n showClear={props.clearable}\n />\n </ArkDatePicker.Content>\n </ArkDatePicker.Root>\n );\n}\n"],"mappings":";;;;AA2BA,SAAgBsB,EAASC,GAAsB;CAC7C,IAAMX,UAAeW,EAAMX,UAAU,SACnCY,UAAalB,EAAaM,EAAO,GAAGW,EAAMJ,QAAQ;CACpD,OAAAM,EACGxB,EAAcyB,MAAI;EAAA,OAAA;EAAA,IAAA,eAAA;GAAA,OAELH,EAAMd;EAAK;EACvBmB,MAAI;EACJC,QAAM;EAAA,IACNjB,SAAM;GAAA,OAAEA,EAAO;EAAC;EAAA,IAChBC,WAAQ;GAAA,OAAEU,EAAMV,YAAY;EAAY;EAAA,IACxCG,WAAQ;GAAA,OAAEO,EAAMP;EAAQ;EAAA,IACxBC,WAAQ;GAAA,OAAEM,EAAMN;EAAQ;EAAA,IACxBH,MAAG;GAAA,OACDgB,QAAA,CAAA,EAAAP,EAAMT,OAAOV,EAAemB,EAAMT,GAAG,EAAC,CAAA,CAAA,IAClCZ,EAAUqB,EAAMT,GAAG,IACnBiB,KAAAA;EAAS;EAAA,IAEfhB,MAAG;GAAA,OACDe,QAAA,CAAA,EAAAP,EAAMR,OAAOX,EAAemB,EAAMR,GAAG,EAAC,CAAA,CAAA,IAClCb,EAAUqB,EAAMR,GAAG,IACnBgB,KAAAA;EAAS;EAAA,IAEfb,cAAW;GAAA,OAAEK,EAAML,eAAe;EAAC;EACnCc,SAAO;EACPC,SAAO;EACPC,YAAU;EAAA,IACVxB,QAAK;GAAA,OAAEoB,QAAA,CAAA,CAAA1B,EAAemB,EAAMb,KAAK,CAAC,CAAA,CAAA,IAAG,CAACR,EAAUqB,EAAMb,KAAK,CAAC,IAAI,CAAA;EAAE;EAAA,IAClEyB,eAAY;GAAA,OAAE;IACZC,UAAUC,MAAUb,EAAK,CAAC,CAACc,WAAWD,EAAME,SAAS;IACrDC,cAAchB,EAAK,CAAC,CAACiB;GACvB;EAAC;EACDC,gBAAgBC,MAAY;GAC1B,IAAMC,IAAOD,EAAQjC,MAAM,EAAE,EAAEmC,SAAS,KAAK;GAC7C,AACE,CAACtB,EAAMP,YACP,CAACO,EAAMN,YACPZ,EAAcuC,GAAM,IAAOrB,EAAMT,KAAKS,EAAMR,KAAKH,EAAO,CAAC,CAAC,CAACkC,SAE3DvB,EAAMZ,SAASiC,CAAI;EACvB;EAAC,IAAAG,WAAA;GAAA,OAAAtB,EAEAxB,EAAc+C,SAAO;IAAA,OAAA;IAAA,IAAA,eAAA;KAAA,OAERzB,EAAMd;IAAK;IAAA,IAAAsC,WAAA;KAAA,OAAAtB,EAEtBtB,GAAY;MAAA,IACXU,WAAQ;OAAA,OAAEU,EAAMV;MAAQ;MAAA,IACxBC,MAAG;OAAA,OAAES,EAAMT;MAAG;MAAA,IACdC,MAAG;OAAA,OAAEQ,EAAMR;MAAG;MAAA,IACdH,SAAM;OAAA,OAAEA,EAAO;MAAC;MAAA,IAChBO,WAAQ;OAAA,OAAEI,EAAMJ;MAAQ;MAAA,IACxBH,WAAQ;OAAA,OAAEO,EAAMP;MAAQ;MAAA,IACxBC,WAAQ;OAAA,OAAEM,EAAMN;MAAQ;MAAA,IACxBG,YAAS;OAAA,OAAEG,EAAMH;MAAS;MAAA,IAC1B6B,YAAS;OAAA,OAAE1B,EAAMF;MAAS;KAAA,CAAA;IAAA;GAAA,CAAA;EAAA;CAAA,CAAA;AAKpC"}
1
+ {"version":3,"file":"calendar.js","names":["DatePicker","ArkDatePicker","parseDate","CalendarView","isCalendarDate","validateInput","dateMessages","CalendarMessages","CalendarProps","label","value","onChange","locale","timeZone","min","max","disabled","readOnly","startOfWeek","messages","showToday","clearable","Calendar","props","text","_$createComponent","Root","aria-label","role","inline","_$memo","undefined","minView","maxView","fixedWeeks","translations","dayCell","state","selectDate","valueText","clearTrigger","clear","onValueChange","details","next","toString","valid","children","Content","showClear"],"sources":["../src/calendar.tsx"],"sourcesContent":["import {\n DatePicker as ArkDatePicker,\n parseDate,\n} from \"@ark-ui/solid/date-picker\";\nimport { CalendarView } from \"./calendar-view\";\nimport {\n isCalendarDate,\n validateInput,\n dateMessages,\n type CalendarMessages,\n} from \"./date-only\";\nexport interface CalendarProps {\n label: string;\n value: string;\n onChange: (value: string) => void;\n locale?: string;\n timeZone?: string;\n min?: string;\n max?: string;\n disabled?: boolean;\n readOnly?: boolean;\n startOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n messages?: CalendarMessages;\n showToday?: boolean;\n clearable?: boolean;\n}\nexport type { CalendarMessages } from \"./date-only\";\nexport function Calendar(props: CalendarProps) {\n const locale = () => props.locale ?? \"ko-KR\",\n text = () => dateMessages(locale(), props.messages);\n return (\n <ArkDatePicker.Root\n class=\"dds-calendar\"\n aria-label={props.label}\n role=\"group\"\n inline\n locale={locale()}\n timeZone={props.timeZone ?? \"Asia/Seoul\"}\n disabled={props.disabled}\n readOnly={props.readOnly}\n min={\n props.min && isCalendarDate(props.min)\n ? parseDate(props.min)\n : undefined\n }\n max={\n props.max && isCalendarDate(props.max)\n ? parseDate(props.max)\n : undefined\n }\n startOfWeek={props.startOfWeek ?? 0}\n minView=\"day\"\n maxView=\"day\"\n fixedWeeks\n value={isCalendarDate(props.value) ? [parseDate(props.value)] : []}\n translations={{\n dayCell: (state) => text().selectDate(state.valueText),\n clearTrigger: text().clear,\n }}\n onValueChange={(details) => {\n const next = details.value[0]?.toString() ?? \"\";\n if (\n !props.disabled &&\n !props.readOnly &&\n validateInput(next, false, props.min, props.max, locale()).valid\n )\n props.onChange(next);\n }}\n >\n <ArkDatePicker.Content\n class=\"dds-date-picker-content\"\n aria-label={props.label}\n >\n <CalendarView\n timeZone={props.timeZone}\n min={props.min}\n max={props.max}\n locale={locale()}\n messages={props.messages}\n disabled={props.disabled}\n readOnly={props.readOnly}\n showToday={props.showToday}\n showClear={props.clearable}\n />\n </ArkDatePicker.Content>\n </ArkDatePicker.Root>\n );\n}\n"],"mappings":";;;;;AA2BA,SAAgBsB,EAASC,GAAsB;CAC7C,IAAMX,UAAeW,EAAMX,UAAU,SACnCY,UAAalB,EAAaM,EAAO,GAAGW,EAAMJ,QAAQ;CACpD,OAAAM,EACGxB,EAAcyB,MAAI;EAAA,OAAA;EAAA,IAAA,eAAA;GAAA,OAELH,EAAMd;EAAK;EACvBmB,MAAI;EACJC,QAAM;EAAA,IACNjB,SAAM;GAAA,OAAEA,EAAO;EAAC;EAAA,IAChBC,WAAQ;GAAA,OAAEU,EAAMV,YAAY;EAAY;EAAA,IACxCG,WAAQ;GAAA,OAAEO,EAAMP;EAAQ;EAAA,IACxBC,WAAQ;GAAA,OAAEM,EAAMN;EAAQ;EAAA,IACxBH,MAAG;GAAA,OACDgB,QAAA,CAAA,EAAAP,EAAMT,OAAOV,EAAemB,EAAMT,GAAG,EAAC,CAAA,CAAA,IAClCZ,EAAUqB,EAAMT,GAAG,IACnBiB,KAAAA;EAAS;EAAA,IAEfhB,MAAG;GAAA,OACDe,QAAA,CAAA,EAAAP,EAAMR,OAAOX,EAAemB,EAAMR,GAAG,EAAC,CAAA,CAAA,IAClCb,EAAUqB,EAAMR,GAAG,IACnBgB,KAAAA;EAAS;EAAA,IAEfb,cAAW;GAAA,OAAEK,EAAML,eAAe;EAAC;EACnCc,SAAO;EACPC,SAAO;EACPC,YAAU;EAAA,IACVxB,QAAK;GAAA,OAAEoB,QAAA,CAAA,CAAA1B,EAAemB,EAAMb,KAAK,CAAC,CAAA,CAAA,IAAG,CAACR,EAAUqB,EAAMb,KAAK,CAAC,IAAI,CAAA;EAAE;EAAA,IAClEyB,eAAY;GAAA,OAAE;IACZC,UAAUC,MAAUb,EAAK,CAAC,CAACc,WAAWD,EAAME,SAAS;IACrDC,cAAchB,EAAK,CAAC,CAACiB;GACvB;EAAC;EACDC,gBAAgBC,MAAY;GAC1B,IAAMC,IAAOD,EAAQjC,MAAM,EAAE,EAAEmC,SAAS,KAAK;GAC7C,AACE,CAACtB,EAAMP,YACP,CAACO,EAAMN,YACPZ,EAAcuC,GAAM,IAAOrB,EAAMT,KAAKS,EAAMR,KAAKH,EAAO,CAAC,CAAC,CAACkC,SAE3DvB,EAAMZ,SAASiC,CAAI;EACvB;EAAC,IAAAG,WAAA;GAAA,OAAAtB,EAEAxB,EAAc+C,SAAO;IAAA,OAAA;IAAA,IAAA,eAAA;KAAA,OAERzB,EAAMd;IAAK;IAAA,IAAAsC,WAAA;KAAA,OAAAtB,EAEtBtB,GAAY;MAAA,IACXU,WAAQ;OAAA,OAAEU,EAAMV;MAAQ;MAAA,IACxBC,MAAG;OAAA,OAAES,EAAMT;MAAG;MAAA,IACdC,MAAG;OAAA,OAAEQ,EAAMR;MAAG;MAAA,IACdH,SAAM;OAAA,OAAEA,EAAO;MAAC;MAAA,IAChBO,WAAQ;OAAA,OAAEI,EAAMJ;MAAQ;MAAA,IACxBH,WAAQ;OAAA,OAAEO,EAAMP;MAAQ;MAAA,IACxBC,WAAQ;OAAA,OAAEM,EAAMN;MAAQ;MAAA,IACxBG,YAAS;OAAA,OAAEG,EAAMH;MAAS;MAAA,IAC1B6B,YAAS;OAAA,OAAE1B,EAAMF;MAAS;KAAA,CAAA;IAAA;GAAA,CAAA;EAAA;CAAA,CAAA;AAKpC"}