@devslab/dds-solid 0.23.0 → 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.
- package/README.ko.md +15 -3
- package/README.md +15 -3
- package/dist/assets/{calendar-view-1RO2mtf1.js → calendar-view-BBQGmkJ7.js} +181 -145
- package/dist/assets/calendar-view-BBQGmkJ7.js.map +1 -0
- package/dist/assets/{choice-DoXiK8nc.js → choice-DPmk9AHn.js} +41 -29
- package/dist/assets/choice-DPmk9AHn.js.map +1 -0
- package/dist/assets/choice-types-h4YVL8xH.js +24 -0
- package/dist/assets/choice-types-h4YVL8xH.js.map +1 -0
- package/dist/assets/date-only-0Ldsjp43.js +174 -0
- package/dist/assets/date-only-0Ldsjp43.js.map +1 -0
- package/dist/assets/direction-BpTqmXs-.js +24 -0
- package/dist/assets/direction-BpTqmXs-.js.map +1 -0
- package/dist/calendar-view-CZLsC57_.js +481 -0
- package/dist/calendar-view-CZLsC57_.js.map +1 -0
- package/dist/calendar-view.d.ts +10 -0
- package/dist/calendar-view.d.ts.map +1 -1
- package/dist/calendar.js +7 -6
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.server.js +2 -1
- package/dist/calendar.server.js.map +1 -1
- package/dist/choice-CTNeFOVo.js +403 -0
- package/dist/choice-CTNeFOVo.js.map +1 -0
- package/dist/choice-types-kSaEnZPr.js +23 -0
- package/dist/choice-types-kSaEnZPr.js.map +1 -0
- package/dist/combobox.js +1 -1
- package/dist/combobox.server.js +1 -1
- package/dist/date-only-Bu4UmsTP.js +151 -0
- package/dist/date-only-Bu4UmsTP.js.map +1 -0
- package/dist/date-only.d.ts +92 -0
- package/dist/date-only.d.ts.map +1 -1
- package/dist/date-picker.js +51 -50
- package/dist/date-picker.js.map +1 -1
- package/dist/date-picker.server.js +2 -1
- package/dist/date-picker.server.js.map +1 -1
- package/dist/date-range-picker.d.ts +41 -0
- package/dist/date-range-picker.d.ts.map +1 -0
- package/dist/date-range-picker.js +368 -0
- package/dist/date-range-picker.js.map +1 -0
- package/dist/date-range-picker.server.js +347 -0
- package/dist/date-range-picker.server.js.map +1 -0
- package/dist/direction-CS85IDNU.js +21 -0
- package/dist/direction-CS85IDNU.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +168 -179
- package/dist/index.js.map +1 -1
- package/dist/internal/choice.d.ts +25 -3
- package/dist/internal/choice.d.ts.map +1 -1
- package/dist/month-picker.d.ts +33 -0
- package/dist/month-picker.d.ts.map +1 -0
- package/dist/month-picker.js +287 -0
- package/dist/month-picker.js.map +1 -0
- package/dist/month-picker.server.js +282 -0
- package/dist/month-picker.server.js.map +1 -0
- package/dist/number-input.d.ts +53 -0
- package/dist/number-input.d.ts.map +1 -0
- package/dist/number-input.js +267 -0
- package/dist/number-input.js.map +1 -0
- package/dist/number-input.server.js +237 -0
- package/dist/number-input.server.js.map +1 -0
- package/dist/segmented-control.d.ts +40 -0
- package/dist/segmented-control.d.ts.map +1 -0
- package/dist/segmented-control.js +133 -0
- package/dist/segmented-control.js.map +1 -0
- package/dist/segmented-control.server.js +138 -0
- package/dist/segmented-control.server.js.map +1 -0
- package/dist/select-picker.js +1 -1
- package/dist/select-picker.server.js +1 -1
- package/dist/server.js +8 -22
- package/dist/server.js.map +1 -1
- package/dist/time-only.d.ts +32 -0
- package/dist/time-only.d.ts.map +1 -0
- package/dist/time-picker-BlMWCQwk.js +113 -0
- package/dist/time-picker-BlMWCQwk.js.map +1 -0
- package/dist/time-picker.d.ts +34 -0
- package/dist/time-picker.d.ts.map +1 -0
- package/dist/time-picker.js +2 -0
- package/dist/time-picker.server.js +152 -0
- package/dist/time-picker.server.js.map +1 -0
- package/package.json +44 -4
- package/styles.css +31 -1
- package/dist/assets/calendar-view-1RO2mtf1.js.map +0 -1
- package/dist/assets/choice-DoXiK8nc.js.map +0 -1
- package/dist/calendar-view-CTBTPB4T.js +0 -444
- package/dist/calendar-view-CTBTPB4T.js.map +0 -1
- package/dist/choice-BPMiJlPJ.js +0 -395
- 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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"}
|
package/dist/calendar-view.d.ts
CHANGED
|
@@ -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,
|
|
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 {
|
|
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 = () =>
|
|
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 &&
|
|
28
|
+
return a(() => !!(c.min && t(c.min)))() ? s(c.min) : void 0;
|
|
28
29
|
},
|
|
29
30
|
get max() {
|
|
30
|
-
return a(() => !!(c.max &&
|
|
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(() => !!
|
|
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(
|
|
59
|
+
return i(e, {
|
|
59
60
|
get timeZone() {
|
|
60
61
|
return c.timeZone;
|
|
61
62
|
},
|
package/dist/calendar.js.map
CHANGED
|
@@ -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":"
|
|
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"}
|