@devslab/dds-solid 0.21.2 → 0.22.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 +6 -0
- package/README.md +6 -0
- package/dist/assets/calendar-view-1RO2mtf1.js +456 -0
- package/dist/assets/calendar-view-1RO2mtf1.js.map +1 -0
- package/dist/assets/choice-DoXiK8nc.js +443 -0
- package/dist/assets/choice-DoXiK8nc.js.map +1 -0
- package/dist/assets/utils-Ou0UJRlO.js +11 -0
- package/dist/assets/utils-Ou0UJRlO.js.map +1 -0
- package/dist/calendar-view-CTBTPB4T.js +444 -0
- package/dist/calendar-view-CTBTPB4T.js.map +1 -0
- package/dist/calendar-view.d.ts +16 -0
- package/dist/calendar-view.d.ts.map +1 -0
- package/dist/calendar.d.ts +19 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +95 -0
- package/dist/calendar.js.map +1 -0
- package/dist/calendar.server.js +95 -0
- package/dist/calendar.server.js.map +1 -0
- package/dist/choice-BPMiJlPJ.js +395 -0
- package/dist/choice-BPMiJlPJ.js.map +1 -0
- package/dist/choice-types.d.ts +56 -0
- package/dist/choice-types.d.ts.map +1 -0
- package/dist/combobox.d.ts +4 -0
- package/dist/combobox.d.ts.map +1 -0
- package/dist/combobox.js +10 -0
- package/dist/combobox.js.map +1 -0
- package/dist/combobox.server.js +10 -0
- package/dist/combobox.server.js.map +1 -0
- package/dist/date-only.d.ts +36 -0
- package/dist/date-only.d.ts.map +1 -0
- package/dist/date-picker.d.ts +10 -1
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +258 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/date-picker.server.js +260 -0
- package/dist/date-picker.server.js.map +1 -0
- package/dist/dropdown-menu.d.ts +31 -0
- package/dist/dropdown-menu.d.ts.map +1 -0
- package/dist/dropdown-menu.js +101 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/dropdown-menu.server.js +111 -0
- package/dist/dropdown-menu.server.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +232 -647
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +26 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +130 -0
- package/dist/input.js.map +1 -0
- package/dist/input.server.js +120 -0
- package/dist/input.server.js.map +1 -0
- package/dist/internal/choice.d.ts +5 -0
- package/dist/internal/choice.d.ts.map +1 -0
- package/dist/popover.d.ts +22 -0
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +76 -0
- package/dist/popover.js.map +1 -0
- package/dist/popover.server.js +79 -0
- package/dist/popover.server.js.map +1 -0
- package/dist/select-picker.d.ts +4 -0
- package/dist/select-picker.d.ts.map +1 -0
- package/dist/select-picker.js +10 -0
- package/dist/select-picker.js.map +1 -0
- package/dist/select-picker.server.js +10 -0
- package/dist/select-picker.server.js.map +1 -0
- package/dist/server.js +28 -445
- package/dist/server.js.map +1 -1
- package/dist/utils-oKxhg9RG.js +11 -0
- package/dist/utils-oKxhg9RG.js.map +1 -0
- package/package.json +63 -6
- package/styles.css +10 -1
package/dist/combobox.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { t as e } from "./choice-BPMiJlPJ.js";
|
|
2
|
+
import { createComponent as t, mergeProps as n } from "solid-js/web";
|
|
3
|
+
//#region src/combobox.tsx
|
|
4
|
+
function r(r) {
|
|
5
|
+
return t(e, n(r, { searchable: !0 }));
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { r as Combobox };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=combobox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox.js","names":["Choice","ComboboxProps","ChoiceOption","ChoiceMessages","ChoiceVirtualization","Combobox","props","_$createComponent","_$mergeProps","searchable"],"sources":["../src/combobox.tsx"],"sourcesContent":["import { Choice } from \"./internal/choice\";\nimport type { ComboboxProps } from \"./choice-types\";\nexport type {\n ComboboxProps,\n ChoiceOption,\n ChoiceMessages,\n ChoiceVirtualization,\n} from \"./choice-types\";\nexport function Combobox(props: ComboboxProps) {\n return <Choice {...props} searchable />;\n}\n"],"mappings":";;;AAQA,SAAgBK,EAASC,GAAsB;CAC7C,OAAAC,EAAQP,GAAMQ,EAAKF,GAAK,EAAEG,YAAU,GAAA,CAAA,CAAA;AACtC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { t as Choice } from "./assets/choice-DoXiK8nc.js";
|
|
2
|
+
import { createComponent, mergeProps } from "solid-js/web";
|
|
3
|
+
//#region src/combobox.tsx
|
|
4
|
+
function Combobox(props) {
|
|
5
|
+
return createComponent(Choice, mergeProps(props, { searchable: true }));
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { Combobox };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=combobox.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox.server.js","names":["Choice","ComboboxProps","ChoiceOption","ChoiceMessages","ChoiceVirtualization","Combobox","props","_$createComponent","_$mergeProps","searchable"],"sources":["../src/combobox.tsx"],"sourcesContent":["import { Choice } from \"./internal/choice\";\nimport type { ComboboxProps } from \"./choice-types\";\nexport type {\n ComboboxProps,\n ChoiceOption,\n ChoiceMessages,\n ChoiceVirtualization,\n} from \"./choice-types\";\nexport function Combobox(props: ComboboxProps) {\n return <Choice {...props} searchable />;\n}\n"],"mappings":";;;AAQA,SAAgBK,SAASC,OAAsB;CAC7C,OAAAC,gBAAQP,QAAMQ,WAAKF,OAAK,EAAEG,YAAU,KAAA,CAAA,CAAA;AACtC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface DatePickerValidity {
|
|
2
|
+
/** Exact displayed draft; never persist this display text as an API date. */
|
|
3
|
+
inputValue: string;
|
|
4
|
+
/** Valid ISO date, optional empty string, or null when invalid/incomplete. */
|
|
5
|
+
value: string | null;
|
|
6
|
+
valid: boolean;
|
|
7
|
+
reason: "valid" | "required" | "incomplete" | "invalid" | "rangeUnderflow" | "rangeOverflow";
|
|
8
|
+
}
|
|
9
|
+
export declare function isCalendarDate(value: string): boolean;
|
|
10
|
+
export declare function isKorean(locale: string): boolean;
|
|
11
|
+
export declare function displayDate(value: string, locale: string): string;
|
|
12
|
+
export declare function canonicalInput(inputValue: string, locale: string): string;
|
|
13
|
+
export declare function validateInput(inputValue: string, required: boolean, min?: string, max?: string, locale?: string): DatePickerValidity;
|
|
14
|
+
export interface CalendarMessages {
|
|
15
|
+
previousMonth?: string;
|
|
16
|
+
nextMonth?: string;
|
|
17
|
+
today?: string;
|
|
18
|
+
clear?: string;
|
|
19
|
+
openCalendar?: string;
|
|
20
|
+
selectDate?: (dateText: string) => string;
|
|
21
|
+
required?: string;
|
|
22
|
+
invalid?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function dateMessages(locale: string, messages?: CalendarMessages): {
|
|
25
|
+
previousMonth: string;
|
|
26
|
+
nextMonth: string;
|
|
27
|
+
today: string;
|
|
28
|
+
clear: string;
|
|
29
|
+
openCalendar: string;
|
|
30
|
+
selectDate: (text: string) => string;
|
|
31
|
+
required: string;
|
|
32
|
+
invalid: string;
|
|
33
|
+
};
|
|
34
|
+
/** Today is the sole timestamp boundary; stored dates remain Gregorian date-only strings. */
|
|
35
|
+
export declare function todayDate(timeZone: string): string;
|
|
36
|
+
//# sourceMappingURL=date-only.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-only.d.ts","sourceRoot":"","sources":["../src/date-only.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EACF,OAAO,GACP,UAAU,GACV,YAAY,GACZ,SAAS,GACT,gBAAgB,GAChB,eAAe,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,WAW3C;AACD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,WAEtC;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIxD;AACD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIhE;AACD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,SAAU,GACf,kBAAkB,CAyBpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,gBAAqB;;;;;;uBAQrD,MAAM;;;EAO5B;AAED,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,UAUzC"}
|
package/dist/date-picker.d.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
|
+
import { type CalendarMessages, type DatePickerValidity } from "./date-only";
|
|
2
|
+
export type { DatePickerValidity, CalendarMessages } from "./date-only";
|
|
1
3
|
export interface DatePickerProps {
|
|
2
4
|
label: string;
|
|
3
|
-
/** ISO calendar date (YYYY-MM-DD), or an empty string. */
|
|
4
5
|
value: string;
|
|
5
6
|
onChange: (value: string) => void;
|
|
6
7
|
locale?: string;
|
|
7
8
|
timeZone?: string;
|
|
8
9
|
disabled?: boolean;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
onValidityChange?: (state: DatePickerValidity) => void;
|
|
9
13
|
min?: string;
|
|
10
14
|
max?: string;
|
|
15
|
+
startOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
16
|
+
labelPlacement?: "outside" | "inside" | "hidden";
|
|
17
|
+
messages?: CalendarMessages;
|
|
18
|
+
clearable?: boolean;
|
|
19
|
+
showToday?: boolean;
|
|
11
20
|
}
|
|
12
21
|
export declare function DatePicker(props: DatePickerProps): import("solid-js").JSX.Element;
|
|
13
22
|
//# sourceMappingURL=date-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../src/date-picker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../src/date-picker.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACxE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACjD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,kCAwShD"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./calendar-view-CTBTPB4T.js";
|
|
2
|
+
import { Show as s, createEffect as c, createMemo as l, createSignal as u, createUniqueId as d, on as f, onCleanup as p, onMount as m } from "solid-js";
|
|
3
|
+
import { Portal as h, addEventListener as ee, className as te, createComponent as g, delegateEvents as _, effect as v, getNextElement as y, getNextMarker as b, insert as x, memo as S, runHydrationEvents as ne, setAttribute as C, setProperty as w, template as T, use as re } from "solid-js/web";
|
|
4
|
+
import { DatePicker as E, parseDate as D } from "@ark-ui/solid/date-picker";
|
|
5
|
+
//#region src/date-picker.tsx
|
|
6
|
+
var O = /*#__PURE__*/ T("<svg width=20 height=20 viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden=true><rect x=3.5 y=5.5 width=17 height=15 rx=2></rect><path d=\"M7.5 3v5M16.5 3v5M3.5 10.5h17\">"), ie = /*#__PURE__*/ T("<span aria-hidden=true> *"), k = /*#__PURE__*/ T("<input type=text autocomplete=off autocorrect=off>"), A = /*#__PURE__*/ T("<span class=dds-field__error role=alert>"), j = /*#__PURE__*/ T("<div role=group><label class=dds-field__label><!$><!/><!$><!/></label><!$><!/><!$><!/>");
|
|
7
|
+
function M() {
|
|
8
|
+
return y(O);
|
|
9
|
+
}
|
|
10
|
+
function N(t) {
|
|
11
|
+
return e(t) ? [D(t)] : [];
|
|
12
|
+
}
|
|
13
|
+
function P(_) {
|
|
14
|
+
let T = () => _.locale ?? "ko-KR", O = `dds-date-${d()}`, [P, F] = u({
|
|
15
|
+
text: t(_.value, T()),
|
|
16
|
+
locale: T()
|
|
17
|
+
}), I = l(() => {
|
|
18
|
+
let r = P(), i = n(r.text, r.locale);
|
|
19
|
+
return r.locale !== T() && e(i) ? t(i, T()) : r.text;
|
|
20
|
+
}), L = (e) => F({
|
|
21
|
+
text: e,
|
|
22
|
+
locale: T()
|
|
23
|
+
}), [R, z] = u(N(_.value)), [B, V] = u(!1), H, U, W = _.value, G = _.value, K = "", q = [], J, [Y, ae] = u();
|
|
24
|
+
m(() => {
|
|
25
|
+
H && ae(H.closest("[role=\"dialog\"], [role=\"alertdialog\"]") ?? H.ownerDocument.body);
|
|
26
|
+
});
|
|
27
|
+
let X = () => i(T(), _.messages), Z = l(() => a(I(), _.required ?? !1, _.min, _.max, T())), Q = () => Z().valid ? void 0 : Z().reason === "required" ? X().required : X().invalid;
|
|
28
|
+
c(f(() => [_.value, T()], ([n, r]) => {
|
|
29
|
+
if (W === n) return;
|
|
30
|
+
W = n;
|
|
31
|
+
let i = q.indexOf(n);
|
|
32
|
+
if (i !== -1) {
|
|
33
|
+
q.splice(i, 1);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
q = [], G = n, L(t(n, r)), (n === "" || e(n)) && z(N(n));
|
|
37
|
+
})), c(() => {
|
|
38
|
+
H?.setCustomValidity(Q() ?? "");
|
|
39
|
+
let e = Z(), t = _.onValidityChange, n = JSON.stringify(e);
|
|
40
|
+
t && n !== K && (K = n, t(e));
|
|
41
|
+
}), c(() => {
|
|
42
|
+
(_.disabled || _.readOnly) && (V(!1), J !== void 0 && cancelAnimationFrame(J));
|
|
43
|
+
}), p(() => {
|
|
44
|
+
J !== void 0 && cancelAnimationFrame(J);
|
|
45
|
+
});
|
|
46
|
+
function $(e) {
|
|
47
|
+
if (_.disabled || _.readOnly) return;
|
|
48
|
+
let t = a(e, _.required ?? !1, _.min, _.max, T());
|
|
49
|
+
if (e !== "" && !t.valid) return;
|
|
50
|
+
let n = e === "" ? "" : t.value;
|
|
51
|
+
z(N(n)), n !== G && (G = n, q.push(n), _.onChange(n));
|
|
52
|
+
}
|
|
53
|
+
function oe(e) {
|
|
54
|
+
if (_.disabled || _.readOnly) return;
|
|
55
|
+
L(e);
|
|
56
|
+
let n = a(e, _.required ?? !1, _.min, _.max, T());
|
|
57
|
+
H?.setCustomValidity(n.valid ? "" : X().invalid), (e === "" || n.valid) && (L(t(n.value ?? "", T())), $(e));
|
|
58
|
+
}
|
|
59
|
+
return (() => {
|
|
60
|
+
var n = y(j), i = n.firstChild, c = i.firstChild, [l, u] = b(c.nextSibling), d = l.nextSibling, [f, m] = b(d.nextSibling), N = i.nextSibling, [P, F] = b(N.nextSibling), z = P.nextSibling, [W, G] = b(z.nextSibling);
|
|
61
|
+
return C(i, "for", O), x(i, () => _.label, l, u), x(i, g(s, {
|
|
62
|
+
get when() {
|
|
63
|
+
return _.required;
|
|
64
|
+
},
|
|
65
|
+
get children() {
|
|
66
|
+
return y(ie);
|
|
67
|
+
}
|
|
68
|
+
}), f, m), x(n, g(E.Root, {
|
|
69
|
+
get locale() {
|
|
70
|
+
return T();
|
|
71
|
+
},
|
|
72
|
+
get timeZone() {
|
|
73
|
+
return _.timeZone ?? "Asia/Seoul";
|
|
74
|
+
},
|
|
75
|
+
get disabled() {
|
|
76
|
+
return _.disabled;
|
|
77
|
+
},
|
|
78
|
+
get readOnly() {
|
|
79
|
+
return _.readOnly;
|
|
80
|
+
},
|
|
81
|
+
get required() {
|
|
82
|
+
return _.required;
|
|
83
|
+
},
|
|
84
|
+
get invalid() {
|
|
85
|
+
return !Z().valid;
|
|
86
|
+
},
|
|
87
|
+
get open() {
|
|
88
|
+
return S(() => !!(B() && !_.disabled))() && !_.readOnly;
|
|
89
|
+
},
|
|
90
|
+
onOpenChange: (e) => V(e.open && !_.disabled && !_.readOnly),
|
|
91
|
+
get min() {
|
|
92
|
+
return S(() => !!(_.min && e(_.min)))() ? D(_.min) : void 0;
|
|
93
|
+
},
|
|
94
|
+
get max() {
|
|
95
|
+
return S(() => !!(_.max && e(_.max)))() ? D(_.max) : void 0;
|
|
96
|
+
},
|
|
97
|
+
get startOfWeek() {
|
|
98
|
+
return _.startOfWeek ?? 0;
|
|
99
|
+
},
|
|
100
|
+
minView: "day",
|
|
101
|
+
maxView: "day",
|
|
102
|
+
fixedWeeks: !0,
|
|
103
|
+
get translations() {
|
|
104
|
+
return {
|
|
105
|
+
dayCell: (e) => X().selectDate(e.valueText),
|
|
106
|
+
clearTrigger: X().clear
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
get value() {
|
|
110
|
+
return R();
|
|
111
|
+
},
|
|
112
|
+
format: (e) => t(e.toString(), T()),
|
|
113
|
+
onValueChange: (e) => {
|
|
114
|
+
if (_.disabled || _.readOnly) return;
|
|
115
|
+
let n = e.value[0]?.toString() ?? "";
|
|
116
|
+
n !== "" && !a(n, _.required ?? !1, _.min, _.max, T()).valid || (L(t(n, T())), $(n), J !== void 0 && cancelAnimationFrame(J), J = requestAnimationFrame(() => {
|
|
117
|
+
!_.disabled && !_.readOnly && H?.focus({ preventScroll: !0 });
|
|
118
|
+
}));
|
|
119
|
+
},
|
|
120
|
+
get positioning() {
|
|
121
|
+
return {
|
|
122
|
+
placement: "bottom-start",
|
|
123
|
+
gutter: 8,
|
|
124
|
+
strategy: Y()?.matches("[role=\"dialog\"], [role=\"alertdialog\"]") ? "fixed" : "absolute",
|
|
125
|
+
hideWhenDetached: !!Y()?.matches("[role=\"dialog\"], [role=\"alertdialog\"]")
|
|
126
|
+
};
|
|
127
|
+
},
|
|
128
|
+
get children() {
|
|
129
|
+
return [g(E.Control, {
|
|
130
|
+
class: "dds-date-picker-control",
|
|
131
|
+
get "data-filled"() {
|
|
132
|
+
return I() === "" ? void 0 : "true";
|
|
133
|
+
},
|
|
134
|
+
get children() {
|
|
135
|
+
return [(() => {
|
|
136
|
+
var e = y(k);
|
|
137
|
+
e.$$keydown = (e) => {
|
|
138
|
+
e.key === "Enter" && !e.isComposing && (e.preventDefault(), e.stopPropagation(), $(I()));
|
|
139
|
+
}, e.addEventListener("blur", () => $(I())), ee(e, "input", (e) => {
|
|
140
|
+
e.stopPropagation(), oe(e.currentTarget.value);
|
|
141
|
+
});
|
|
142
|
+
var t = H;
|
|
143
|
+
return typeof t == "function" ? re(t, e) : H = e, C(e, "id", O), C(e, "spellcheck", !1), v((t) => {
|
|
144
|
+
var n = Z().valid ? void 0 : "true", i = _.required ? "true" : void 0, a = Q() ? `${O}-error` : void 0, o = _.required, s = _.readOnly, c = _.disabled, l = r(T()) ? "YYYY/MM/DD" : "YYYY-MM-DD";
|
|
145
|
+
return n !== t.e && C(e, "aria-invalid", t.e = n), i !== t.t && C(e, "aria-required", t.t = i), a !== t.a && C(e, "aria-describedby", t.a = a), o !== t.o && w(e, "required", t.o = o), s !== t.i && w(e, "readOnly", t.i = s), c !== t.n && w(e, "disabled", t.n = c), l !== t.s && C(e, "placeholder", t.s = l), t;
|
|
146
|
+
}, {
|
|
147
|
+
e: void 0,
|
|
148
|
+
t: void 0,
|
|
149
|
+
a: void 0,
|
|
150
|
+
o: void 0,
|
|
151
|
+
i: void 0,
|
|
152
|
+
n: void 0,
|
|
153
|
+
s: void 0
|
|
154
|
+
}), v(() => w(e, "value", I())), ne(), e;
|
|
155
|
+
})(), g(E.Trigger, {
|
|
156
|
+
ref(e) {
|
|
157
|
+
var t = U;
|
|
158
|
+
typeof t == "function" ? t(e) : U = e;
|
|
159
|
+
},
|
|
160
|
+
class: "dds-btn dds-btn--secondary",
|
|
161
|
+
get "aria-label"() {
|
|
162
|
+
return `${_.label} ${X().openCalendar}`;
|
|
163
|
+
},
|
|
164
|
+
get children() {
|
|
165
|
+
return g(M, {});
|
|
166
|
+
}
|
|
167
|
+
})];
|
|
168
|
+
}
|
|
169
|
+
}), g(s, {
|
|
170
|
+
get when() {
|
|
171
|
+
return Y();
|
|
172
|
+
},
|
|
173
|
+
children: (e) => g(h, {
|
|
174
|
+
get mount() {
|
|
175
|
+
return e();
|
|
176
|
+
},
|
|
177
|
+
get children() {
|
|
178
|
+
return g(E.Positioner, {
|
|
179
|
+
class: "dds-date-picker-positioner",
|
|
180
|
+
get children() {
|
|
181
|
+
return g(E.Content, {
|
|
182
|
+
ref: (e) => {
|
|
183
|
+
let t = (e) => {
|
|
184
|
+
e.key === "Escape" && (J !== void 0 && cancelAnimationFrame(J), J = requestAnimationFrame(() => {
|
|
185
|
+
J = requestAnimationFrame(() => {
|
|
186
|
+
!_.disabled && !_.readOnly && U?.focus({ preventScroll: !0 });
|
|
187
|
+
});
|
|
188
|
+
}));
|
|
189
|
+
};
|
|
190
|
+
e.addEventListener("keydown", t, !0), p(() => e.removeEventListener("keydown", t, !0));
|
|
191
|
+
},
|
|
192
|
+
class: "dds-date-picker-content",
|
|
193
|
+
get "aria-label"() {
|
|
194
|
+
return `${_.label} 날짜 선택`;
|
|
195
|
+
},
|
|
196
|
+
get children() {
|
|
197
|
+
return g(o, {
|
|
198
|
+
get timeZone() {
|
|
199
|
+
return _.timeZone;
|
|
200
|
+
},
|
|
201
|
+
get min() {
|
|
202
|
+
return _.min;
|
|
203
|
+
},
|
|
204
|
+
get max() {
|
|
205
|
+
return _.max;
|
|
206
|
+
},
|
|
207
|
+
get locale() {
|
|
208
|
+
return T();
|
|
209
|
+
},
|
|
210
|
+
get messages() {
|
|
211
|
+
return _.messages;
|
|
212
|
+
},
|
|
213
|
+
get disabled() {
|
|
214
|
+
return _.disabled;
|
|
215
|
+
},
|
|
216
|
+
get readOnly() {
|
|
217
|
+
return _.readOnly;
|
|
218
|
+
},
|
|
219
|
+
get showToday() {
|
|
220
|
+
return _.showToday;
|
|
221
|
+
},
|
|
222
|
+
get showClear() {
|
|
223
|
+
return _.clearable;
|
|
224
|
+
},
|
|
225
|
+
onClear: () => {
|
|
226
|
+
L(""), $("");
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
})
|
|
235
|
+
})];
|
|
236
|
+
}
|
|
237
|
+
}), P, F), x(n, g(s, {
|
|
238
|
+
get when() {
|
|
239
|
+
return Q();
|
|
240
|
+
},
|
|
241
|
+
get children() {
|
|
242
|
+
var e = y(A);
|
|
243
|
+
return C(e, "id", `${O}-error`), x(e, Q), e;
|
|
244
|
+
}
|
|
245
|
+
}), W, G), v((e) => {
|
|
246
|
+
var t = `dds-field dds-date-picker dds-date-picker--${_.labelPlacement ?? "outside"}${Q() ? " dds-field--error" : ""}`, r = I() === "" ? void 0 : "true";
|
|
247
|
+
return t !== e.e && te(n, e.e = t), r !== e.t && C(n, "data-filled", e.t = r), e;
|
|
248
|
+
}, {
|
|
249
|
+
e: void 0,
|
|
250
|
+
t: void 0
|
|
251
|
+
}), n;
|
|
252
|
+
})();
|
|
253
|
+
}
|
|
254
|
+
_(["keydown"]);
|
|
255
|
+
//#endregion
|
|
256
|
+
export { P as DatePicker };
|
|
257
|
+
|
|
258
|
+
//# sourceMappingURL=date-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-picker.js","names":["DatePicker","ArkDatePicker","parseDate","Portal","createEffect","createMemo","createSignal","createUniqueId","Show","onCleanup","onMount","on","CalendarView","isCalendarDate","isKorean","displayDate","canonicalInput","validateInput","dateMessages","CalendarMessages","DatePickerValidity","DatePickerProps","label","value","onChange","locale","timeZone","disabled","readOnly","required","onValidityChange","state","min","max","startOfWeek","labelPlacement","messages","clearable","showToday","CalendarIcon","_$getNextElement","_tmpl$","calendarSelection","props","id","draftState","setDraftState","text","draft","canonical","setDraft","selection","setSelection","open","setOpen","input","HTMLInputElement","trigger","HTMLButtonElement","observedValue","emittedValue","notified","pendingEchoes","focusFrame","portalMount","setPortalMount","HTMLElement","closest","ownerDocument","body","validity","error","valid","undefined","reason","invalid","const","nextLocale","acknowledged","indexOf","splice","setCustomValidity","callback","key","JSON","stringify","cancelAnimationFrame","commit","next","push","changeDraft","_el$2","_tmpl$5","_el$3","firstChild","_el$5","_el$6","_co$","_$getNextMarker","nextSibling","_el$7","_el$8","_co$2","_el$1","_el$10","_co$3","_el$11","_el$12","_co$4","_$setAttribute","_$insert","_$createComponent","when","children","_tmpl$2","Root","_$memo","onOpenChange","details","minView","maxView","fixedWeeks","translations","dayCell","selectDate","valueText","clearTrigger","clear","format","toString","onValueChange","requestAnimationFrame","focus","preventScroll","positioning","placement","gutter","strategy","matches","hideWhenDetached","Control","data-filled","_el$9","_tmpl$3","$$keydown","event","isComposing","preventDefault","stopPropagation","addEventListener","_$addEventListener","currentTarget","_ref$","_$use","_$effect","_p$","_v$","_v$2","_v$3","_v$4","_v$5","_v$6","_v$7","e","t","a","o","_$setProperty","i","n","s","_$runHydrationEvents","Trigger","ref","r$","_ref$2","aria-label","openCalendar","mount","Positioner","Content","node","restoreTrigger","KeyboardEvent","removeEventListener","showClear","onClear","_el$0","_tmpl$4","_v$8","_v$9","_$className","_$delegateEvents"],"sources":["../src/date-picker.tsx"],"sourcesContent":["import {\n DatePicker as ArkDatePicker,\n parseDate,\n} from \"@ark-ui/solid/date-picker\";\nimport { Portal } from \"solid-js/web\";\nimport {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n Show,\n onCleanup,\n onMount,\n on,\n} from \"solid-js\";\nimport { CalendarView } from \"./calendar-view\";\nimport {\n isCalendarDate,\n isKorean,\n displayDate,\n canonicalInput,\n validateInput,\n dateMessages,\n type CalendarMessages,\n type DatePickerValidity,\n} from \"./date-only\";\nexport type { DatePickerValidity, CalendarMessages } from \"./date-only\";\nexport interface DatePickerProps {\n label: string;\n value: string;\n onChange: (value: string) => void;\n locale?: string;\n timeZone?: string;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n onValidityChange?: (state: DatePickerValidity) => void;\n min?: string;\n max?: string;\n startOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n labelPlacement?: \"outside\" | \"inside\" | \"hidden\";\n messages?: CalendarMessages;\n clearable?: boolean;\n showToday?: boolean;\n}\nfunction CalendarIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n aria-hidden=\"true\"\n >\n <rect x=\"3.5\" y=\"5.5\" width=\"17\" height=\"15\" rx=\"2\" />\n <path d=\"M7.5 3v5M16.5 3v5M3.5 10.5h17\" />\n </svg>\n );\n}\nfunction calendarSelection(value: string) {\n return isCalendarDate(value) ? [parseDate(value)] : [];\n}\nexport function DatePicker(props: DatePickerProps) {\n const locale = () => props.locale ?? \"ko-KR\",\n id = `dds-date-${createUniqueId()}`;\n const [draftState, setDraftState] = createSignal({\n text: displayDate(props.value, locale()),\n locale: locale(),\n });\n // Keep the draft's formatting locale with its text, so changing locale cannot\n // publish an intermediate invalid report before the synchronization effect.\n const draft = createMemo(() => {\n const state = draftState(),\n canonical = canonicalInput(state.text, state.locale);\n return state.locale !== locale() && isCalendarDate(canonical)\n ? displayDate(canonical, locale())\n : state.text;\n });\n const setDraft = (text: string) => setDraftState({ text, locale: locale() });\n const [selection, setSelection] = createSignal(\n calendarSelection(props.value),\n );\n const [open, setOpen] = createSignal(false);\n let input: HTMLInputElement | undefined,\n trigger: HTMLButtonElement | undefined,\n observedValue = props.value,\n emittedValue = props.value,\n notified = \"\",\n pendingEchoes: string[] = [],\n focusFrame: number | undefined;\n const [portalMount, setPortalMount] = createSignal<HTMLElement>();\n onMount(() => {\n if (input) {\n setPortalMount(\n input.closest<HTMLElement>('[role=\"dialog\"], [role=\"alertdialog\"]') ??\n input.ownerDocument.body,\n );\n }\n });\n const text = () => dateMessages(locale(), props.messages);\n const validity = createMemo(() =>\n validateInput(\n draft(),\n props.required ?? false,\n props.min,\n props.max,\n locale(),\n ),\n );\n const error = () =>\n validity().valid\n ? undefined\n : validity().reason === \"required\"\n ? text().required\n : text().invalid;\n createEffect(\n on(\n () => [props.value, locale()] as const,\n ([value, nextLocale]) => {\n if (observedValue === value) return;\n observedValue = value;\n const acknowledged = pendingEchoes.indexOf(value);\n if (acknowledged !== -1) {\n pendingEchoes.splice(acknowledged, 1);\n return;\n }\n pendingEchoes = [];\n emittedValue = value;\n setDraft(displayDate(value, nextLocale));\n if (value === \"\" || isCalendarDate(value))\n setSelection(calendarSelection(value));\n },\n ),\n );\n createEffect(() => {\n input?.setCustomValidity(error() ?? \"\");\n const state = validity(),\n callback = props.onValidityChange,\n key = JSON.stringify(state);\n if (callback && key !== notified) {\n notified = key;\n callback(state);\n }\n });\n createEffect(() => {\n if (props.disabled || props.readOnly) {\n setOpen(false);\n if (focusFrame !== undefined) cancelAnimationFrame(focusFrame);\n }\n });\n onCleanup(() => {\n if (focusFrame !== undefined) cancelAnimationFrame(focusFrame);\n });\n function commit(next: string) {\n if (props.disabled || props.readOnly) return;\n const state = validateInput(\n next,\n props.required ?? false,\n props.min,\n props.max,\n locale(),\n );\n if (next !== \"\" && !state.valid) return;\n const canonical = next === \"\" ? \"\" : state.value!;\n setSelection(calendarSelection(canonical));\n if (canonical !== emittedValue) {\n emittedValue = canonical;\n pendingEchoes.push(canonical);\n props.onChange(canonical);\n }\n }\n function changeDraft(next: string) {\n if (props.disabled || props.readOnly) return;\n setDraft(next);\n const state = validateInput(\n next,\n props.required ?? false,\n props.min,\n props.max,\n locale(),\n );\n input?.setCustomValidity(state.valid ? \"\" : text().invalid);\n if (next === \"\" || state.valid) {\n setDraft(displayDate(state.value ?? \"\", locale()));\n commit(next);\n }\n }\n return (\n <div\n class={`dds-field dds-date-picker dds-date-picker--${props.labelPlacement ?? \"outside\"}${error() ? \" dds-field--error\" : \"\"}`}\n data-filled={draft() !== \"\" ? \"true\" : undefined}\n role=\"group\"\n >\n <label class=\"dds-field__label\" for={id}>\n {props.label}\n <Show when={props.required}>\n <span aria-hidden=\"true\"> *</span>\n </Show>\n </label>\n <ArkDatePicker.Root\n locale={locale()}\n timeZone={props.timeZone ?? \"Asia/Seoul\"}\n disabled={props.disabled}\n readOnly={props.readOnly}\n required={props.required}\n invalid={!validity().valid}\n open={open() && !props.disabled && !props.readOnly}\n onOpenChange={(details) =>\n setOpen(details.open && !props.disabled && !props.readOnly)\n }\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 translations={{\n dayCell: (state) => text().selectDate(state.valueText),\n clearTrigger: text().clear,\n }}\n value={selection()}\n format={(value) => displayDate(value.toString(), locale())}\n onValueChange={(details) => {\n if (props.disabled || props.readOnly) return;\n const next = details.value[0]?.toString() ?? \"\";\n if (\n next !== \"\" &&\n !validateInput(\n next,\n props.required ?? false,\n props.min,\n props.max,\n locale(),\n ).valid\n )\n return;\n setDraft(displayDate(next, locale()));\n commit(next);\n if (focusFrame !== undefined) cancelAnimationFrame(focusFrame);\n focusFrame = requestAnimationFrame(() => {\n if (!props.disabled && !props.readOnly)\n input?.focus({ preventScroll: true });\n });\n }}\n positioning={{\n placement: \"bottom-start\",\n gutter: 8,\n strategy: portalMount()?.matches(\n '[role=\"dialog\"], [role=\"alertdialog\"]',\n )\n ? \"fixed\"\n : \"absolute\",\n hideWhenDetached: !!portalMount()?.matches(\n '[role=\"dialog\"], [role=\"alertdialog\"]',\n ),\n }}\n >\n <ArkDatePicker.Control\n class=\"dds-date-picker-control\"\n data-filled={draft() !== \"\" ? \"true\" : undefined}\n >\n <input\n id={id}\n aria-invalid={validity().valid ? undefined : \"true\"}\n aria-required={props.required ? \"true\" : undefined}\n aria-describedby={error() ? `${id}-error` : undefined}\n ref={input}\n type=\"text\"\n value={draft()}\n required={props.required}\n readOnly={props.readOnly}\n disabled={props.disabled}\n placeholder={isKorean(locale()) ? \"YYYY/MM/DD\" : \"YYYY-MM-DD\"}\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck={false}\n on:input={(event) => {\n event.stopPropagation();\n changeDraft(event.currentTarget.value);\n }}\n onBlur={() => commit(draft())}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" && !event.isComposing) {\n event.preventDefault();\n event.stopPropagation();\n commit(draft());\n }\n }}\n />\n <ArkDatePicker.Trigger\n ref={trigger}\n class=\"dds-btn dds-btn--secondary\"\n aria-label={`${props.label} ${text().openCalendar}`}\n >\n <CalendarIcon />\n </ArkDatePicker.Trigger>\n </ArkDatePicker.Control>\n <Show when={portalMount()}>\n {(mount) => (\n <Portal mount={mount()}>\n <ArkDatePicker.Positioner class=\"dds-date-picker-positioner\">\n <ArkDatePicker.Content\n ref={(node) => {\n const restoreTrigger = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\") return;\n if (focusFrame !== undefined)\n cancelAnimationFrame(focusFrame);\n focusFrame = requestAnimationFrame(() => {\n focusFrame = requestAnimationFrame(() => {\n if (!props.disabled && !props.readOnly)\n trigger?.focus({ preventScroll: true });\n });\n });\n };\n node.addEventListener(\"keydown\", restoreTrigger, true);\n onCleanup(() =>\n node.removeEventListener(\"keydown\", restoreTrigger, true),\n );\n }}\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 onClear={() => {\n setDraft(\"\");\n commit(\"\");\n }}\n />\n </ArkDatePicker.Content>\n </ArkDatePicker.Positioner>\n </Portal>\n )}\n </Show>\n </ArkDatePicker.Root>\n <Show when={error()}>\n <span id={`${id}-error`} class=\"dds-field__error\" role=\"alert\">\n {error()}\n </span>\n </Show>\n </div>\n );\n}\n"],"mappings":"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"}
|