@devslab/dds-solid 0.20.0 → 0.21.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 CHANGED
@@ -25,3 +25,13 @@ DDS가 공개 API와 시각 토큰을 소유한다. 기존 import와 콜백 값
25
25
  하나를 두고, 알림 영역 이름이 필요하면 현지화한 `regionLabel`을 주입한다.
26
26
  포인터·포커스 상호작용 중과 브라우저 페이지가 비활성일 때는 알림 타이머가
27
27
  멈춘다. duration이 0 이하이면 명시적으로 닫을 때까지 유지한다.
28
+
29
+ ## DatePicker
30
+
31
+ ```tsx
32
+ import { DatePicker } from "@devslab/dds-solid";
33
+ const [date, setDate] = createSignal("");
34
+ <DatePicker label="시작 날짜" value={date()} onChange={setDate} />
35
+ ```
36
+
37
+ Ark UI owns focus, selection and keyboard navigation; DDS owns styling. Controlled `value` uses `YYYY-MM-DD` or an empty string. `locale` defaults to `ko-KR`, `timeZone` to `Asia/Seoul`; optional `min`, `max` and `disabled` constrain selection. Time remains a separate field.
package/README.md CHANGED
@@ -24,3 +24,13 @@ same. See [the migration guide](../../docs/ark-migration.md) for integration det
24
24
  `regionLabel` if the notification region needs a name. Toast timers pause during
25
25
  pointer/focus interaction and when the browser page is idle. A non-positive duration
26
26
  keeps the toast until dismissed.
27
+
28
+ ## DatePicker
29
+
30
+ ```tsx
31
+ import { DatePicker } from "@devslab/dds-solid";
32
+ const [date, setDate] = createSignal("");
33
+ <DatePicker label="시작 날짜" value={date()} onChange={setDate} />
34
+ ```
35
+
36
+ Ark UI owns focus, selection and keyboard navigation; DDS owns styling. Controlled `value` uses `YYYY-MM-DD` or an empty string. `locale` defaults to `ko-KR`, `timeZone` to `Asia/Seoul`; optional `min`, `max` and `disabled` constrain selection. Time remains a separate field.
@@ -0,0 +1,13 @@
1
+ export interface DatePickerProps {
2
+ label: string;
3
+ /** ISO calendar date (YYYY-MM-DD), or an empty string. */
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ locale?: string;
7
+ timeZone?: string;
8
+ disabled?: boolean;
9
+ min?: string;
10
+ max?: string;
11
+ }
12
+ export declare function DatePicker(props: DatePickerProps): import("solid-js").JSX.Element;
13
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../src/date-picker.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAC,MAAM,CAAC;IACb,0DAA0D;IAC1D,KAAK,EAAC,MAAM,CAAC;IACb,QAAQ,EAAC,CAAC,KAAK,EAAC,MAAM,KAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAC,MAAM,CAAC;IACf,QAAQ,CAAC,EAAC,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAC,OAAO,CAAC;IAClB,GAAG,CAAC,EAAC,MAAM,CAAC;IACZ,GAAG,CAAC,EAAC,MAAM,CAAC;CACb;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAC,eAAe,kCA2B/C"}
package/dist/index.d.ts CHANGED
@@ -9,4 +9,5 @@ export type { StatusTone } from "./status-pill";
9
9
  export { Tab, TabList, TabPanel, Tabs, type TabPanelProps, type TabProps, type TabsProps } from "./tabs";
10
10
  export { ToastProvider, useToast, type ToastApi, type ToastInput, type ToastProviderProps, type ToastTone } from "./toast";
11
11
  export { Tooltip, type TooltipProps, type TooltipTriggerProps } from "./tooltip";
12
+ export { DatePicker, type DatePickerProps } from "./date-picker";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/J,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3H,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/J,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3H,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -9,11 +9,12 @@ import { FocusTrap as I } from "@zag-js/focus-trap";
9
9
  import { ariaHidden as L } from "@zag-js/aria-hidden";
10
10
  import { RadioGroup as R } from "@ark-ui/solid/radio-group";
11
11
  import { directionPolicy as z, icons as B } from "@devslab/dds-icons";
12
- import { Tabs as V, useTabsContext as H } from "@ark-ui/solid/tabs";
13
- import { LocaleProvider as U } from "@ark-ui/solid/locale";
14
- import { Toast as W, Toaster as ee, createToaster as te } from "@ark-ui/solid/toast";
15
- import { space as ne } from "@devslab/dds-tokens";
16
- import { Tooltip as G, useTooltip as re } from "@ark-ui/solid/tooltip";
12
+ import { Tabs as V, useTabsContext as ee } from "@ark-ui/solid/tabs";
13
+ import { LocaleProvider as te } from "@ark-ui/solid/locale";
14
+ import { Toast as H, Toaster as ne, createToaster as re } from "@ark-ui/solid/toast";
15
+ import { space as ie } from "@devslab/dds-tokens";
16
+ import { Tooltip as U, useTooltip as ae } from "@ark-ui/solid/tooltip";
17
+ import { DatePicker as W, parseDate as G } from "@ark-ui/solid/date-picker";
17
18
  //#region src/controllable.ts
18
19
  function K(e) {
19
20
  let [t, n] = a(e.defaultValue), r = () => e.value() ?? t(), i = n;
@@ -27,13 +28,13 @@ function K(e) {
27
28
  function q(...e) {
28
29
  return e.filter(Boolean).join(" ");
29
30
  }
30
- function ie(...e) {
31
+ function oe(...e) {
31
32
  return e.filter(Boolean).join(" ") || void 0;
32
33
  }
33
34
  //#endregion
34
35
  //#region src/controls.tsx
35
- var ae = /*#__PURE__*/ O("<button><!$><!/><!$><!/>"), J = /*#__PURE__*/ O("<span class=dds-spinner aria-hidden=true>"), oe = /*#__PURE__*/ O("<button>"), se = /*#__PURE__*/ O("<span aria-hidden=true> *"), ce = /*#__PURE__*/ O("<span><select>"), Y = /*#__PURE__*/ O("<label><input><span>");
36
- function le(e) {
36
+ var se = /*#__PURE__*/ O("<button><!$><!/><!$><!/>"), J = /*#__PURE__*/ O("<span class=dds-spinner aria-hidden=true>"), ce = /*#__PURE__*/ O("<button>"), le = /*#__PURE__*/ O("<span aria-hidden=true> *"), ue = /*#__PURE__*/ O("<span><select>"), Y = /*#__PURE__*/ O("<label><input><span>");
37
+ function X(e) {
37
38
  let [t, n] = u(e, [
38
39
  "class",
39
40
  "tone",
@@ -44,7 +45,7 @@ function le(e) {
44
45
  "children"
45
46
  ]);
46
47
  return (() => {
47
- var e = v(ae), r = e.firstChild, [i, a] = y(r.nextSibling), o = i.nextSibling, [s, c] = y(o.nextSibling);
48
+ var e = v(se), r = e.firstChild, [i, a] = y(r.nextSibling), o = i.nextSibling, [s, c] = y(o.nextSibling);
48
49
  return D(e, C(n, {
49
50
  get type() {
50
51
  return t.type ?? "button";
@@ -64,7 +65,7 @@ function le(e) {
64
65
  })(), i, a), b(e, () => t.children, s, c), w(), e;
65
66
  })();
66
67
  }
67
- function ue(e) {
68
+ function de(e) {
68
69
  let [t, n] = u(e, [
69
70
  "class",
70
71
  "tone",
@@ -75,7 +76,7 @@ function ue(e) {
75
76
  "children"
76
77
  ]);
77
78
  return (() => {
78
- var e = v(oe);
79
+ var e = v(ce);
79
80
  return D(e, C(n, {
80
81
  get type() {
81
82
  return t.type ?? "button";
@@ -95,10 +96,10 @@ function ue(e) {
95
96
  })()), w(), e;
96
97
  })();
97
98
  }
98
- function de(e) {
99
+ function Z(e) {
99
100
  let t = o(), n = () => e.id ?? `dds-field-${t}`, r = () => e.helpText ? `${n()}-help` : void 0, i = () => e.error ? `${n()}-error` : void 0, a = () => ({
100
101
  id: n(),
101
- "aria-describedby": ie(r(), i()),
102
+ "aria-describedby": oe(r(), i()),
102
103
  "aria-invalid": e.error ? "true" : void 0,
103
104
  "aria-required": e.required ? "true" : void 0
104
105
  });
@@ -130,7 +131,7 @@ function de(e) {
130
131
  return n();
131
132
  },
132
133
  get children() {
133
- return [S(() => e.label), S(() => S(() => !!e.required)() && v(se))];
134
+ return [S(() => e.label), S(() => S(() => !!e.required)() && v(le))];
134
135
  }
135
136
  }),
136
137
  S(() => S(() => typeof e.children == "function")() ? e.children(a()) : e.children),
@@ -158,7 +159,7 @@ function fe(e) {
158
159
  "children"
159
160
  ]);
160
161
  return (() => {
161
- var e = v(ce), r = e.firstChild;
162
+ var e = v(ue), r = e.firstChild;
162
163
  return D(r, C(n, {
163
164
  class: "dds-select__input",
164
165
  get "aria-invalid"() {
@@ -201,8 +202,8 @@ function pe(e) {
201
202
  }), !1, !1), b(o, () => t.label), _(() => m(e, q(t.role === "switch" ? "dds-switch" : "dds-check", t.class))), w(), e;
202
203
  })();
203
204
  }
204
- var me = (e) => h(X, C(e, { kind: "checkbox" })), he = (e) => h(pe, C(e, { type: "radio" })), ge = (e) => h(X, C(e, { kind: "switch" }));
205
- function X(e) {
205
+ var me = (e) => h(Q, C(e, { kind: "checkbox" })), he = (e) => h(pe, C(e, { type: "radio" })), ge = (e) => h(Q, C(e, { kind: "switch" }));
206
+ function Q(e) {
206
207
  let t = o(), [n, r] = u(e, [
207
208
  "checked",
208
209
  "defaultChecked",
@@ -253,10 +254,10 @@ function X(e) {
253
254
  return a().checked;
254
255
  },
255
256
  onFocusIn: (e) => {
256
- Z(a().getHiddenInputProps().onFocusIn, e), Z(n.onFocusIn, e);
257
+ $(a().getHiddenInputProps().onFocusIn, e), $(n.onFocusIn, e);
257
258
  },
258
259
  onFocusOut: (e) => {
259
- Z(a().getHiddenInputProps().onFocusOut, e), Z(n.onFocusOut, e);
260
+ $(a().getHiddenInputProps().onFocusOut, e), $(n.onFocusOut, e);
260
261
  },
261
262
  onClick: (e) => {
262
263
  if (typeof n.onClick == "function" ? n.onClick(e) : n.onClick && n.onClick[0](n.onClick[1], e), !e.defaultPrevented) {
@@ -267,7 +268,7 @@ function X(e) {
267
268
  }), !1, !1), D(i, C(() => a().getLabelProps()), !1, !0), b(i, () => n.label), w(), e;
268
269
  })();
269
270
  }
270
- function Z(e, t) {
271
+ function $(e, t) {
271
272
  typeof e == "function" ? e(t) : e && e[0](e[1], t);
272
273
  }
273
274
  //#endregion
@@ -288,7 +289,7 @@ function Oe(n) {
288
289
  };
289
290
  document.addEventListener("keydown", e), c(() => document.removeEventListener("keydown", e));
290
291
  }), (() => {
291
- var a = v(xe), c = a.firstChild, l = c.nextSibling, d = l.firstChild.nextSibling, f = l.nextSibling, p = f.nextSibling, m = p.firstChild, g = m.firstChild, x = g.nextSibling, C = m.nextSibling, [E, D] = y(C.nextSibling), O = E.nextSibling, k = O.nextSibling, [A, j] = y(k.nextSibling), M = p.nextSibling, N = M.firstChild, P = N.firstChild, F = P.firstChild, [I, L] = y(F.nextSibling), R = I.nextSibling, z = P.nextSibling, [B, V] = y(z.nextSibling), H = N.nextSibling, [U, W] = y(H.nextSibling);
292
+ var a = v(xe), c = a.firstChild, l = c.nextSibling, d = l.firstChild.nextSibling, f = l.nextSibling, p = f.nextSibling, m = p.firstChild, g = m.firstChild, x = g.nextSibling, C = m.nextSibling, [E, D] = y(C.nextSibling), O = E.nextSibling, k = O.nextSibling, [A, j] = y(k.nextSibling), M = p.nextSibling, N = M.firstChild, P = N.firstChild, F = P.firstChild, [I, L] = y(F.nextSibling), R = I.nextSibling, z = P.nextSibling, [B, V] = y(z.nextSibling), ee = N.nextSibling, [te, H] = y(ee.nextSibling);
292
293
  return b(c, () => n.labels.skip), l.$$click = () => i(!r()), b(d, (() => {
293
294
  var e = S(() => !!r());
294
295
  return () => e() ? n.labels.menuClose : n.labels.menuOpen;
@@ -366,7 +367,7 @@ function Oe(n) {
366
367
  var e = v(be);
367
368
  return b(e, () => n.header.actions), e;
368
369
  }
369
- }), B, V), b(M, () => n.children, U, W), _((e) => {
370
+ }), B, V), b(M, () => n.children, te, H), _((e) => {
370
371
  var t = n.surface, i = u() ? "true" : void 0, o = r(), s = r() ? "true" : "false", c = r() ? "true" : "false", d = n.brand.href, h = n.brand.mark, _ = n.labels.nav;
371
372
  return t !== e.e && T(a, "data-surface", e.e = t), i !== e.t && T(a, "data-hydrated", e.t = i), o !== e.a && T(l, "aria-expanded", e.a = o), s !== e.o && T(f, "data-open", e.o = s), c !== e.i && T(p, "data-open", e.i = c), d !== e.n && T(m, "href", e.n = d), h !== e.s && T(g, "src", e.s = h), _ !== e.h && T(O, "aria-label", e.h = _), e;
372
373
  }, {
@@ -646,8 +647,8 @@ function Pe(e) {
646
647
  }
647
648
  //#endregion
648
649
  //#region src/status-pill.tsx
649
- var Fe = /*#__PURE__*/ O("<code>"), Q = /*#__PURE__*/ O("<span>");
650
- function Ie(e) {
650
+ var Fe = /*#__PURE__*/ O("<code>"), Ie = /*#__PURE__*/ O("<span>");
651
+ function Le(e) {
651
652
  let n = new Set(e.openDomains ?? []);
652
653
  return function(r) {
653
654
  let i = () => e.tones[r.domain]?.[r.value], a = () => e.label(r.domain, r.value, r.locale), o = () => !!(i() && a()), s = () => {
@@ -674,7 +675,7 @@ function Ie(e) {
674
675
  return (() => {
675
676
  let e = s();
676
677
  return (() => {
677
- var t = v(Q);
678
+ var t = v(Ie);
678
679
  return b(t, () => e.text), _((n) => {
679
680
  var i = e.tone === "neutral" ? "dds-badge" : `dds-badge dds-badge--${e.tone}`, a = `${r.domain}.${r.value}`, o = e.tone;
680
681
  return i !== n.e && m(t, n.e = i), a !== n.t && T(t, "data-status", n.t = a), o !== n.a && T(t, "data-tone", n.a = o), n;
@@ -691,7 +692,7 @@ function Ie(e) {
691
692
  }
692
693
  //#endregion
693
694
  //#region src/direction.ts
694
- function Le(e, t) {
695
+ function Re(e, t) {
695
696
  let [n, r] = a("ltr");
696
697
  return l(() => {
697
698
  let t = e()?.parentElement;
@@ -708,11 +709,11 @@ function Le(e, t) {
708
709
  }
709
710
  //#endregion
710
711
  //#region src/tabs.tsx
711
- function Re(e) {
712
- let t = o(), n = () => e.id ?? `dds-tabs-${t}`, r, i = Le(() => r, () => e.dir), a = e.asChild ? (t) => e.asChild(s(t({}), { ref: (e) => {
712
+ function ze(e) {
713
+ let t = o(), n = () => e.id ?? `dds-tabs-${t}`, r, i = Re(() => r, () => e.dir), a = e.asChild ? (t) => e.asChild(s(t({}), { ref: (e) => {
713
714
  r = e;
714
715
  } })) : void 0;
715
- return h(U, {
716
+ return h(te, {
716
717
  get locale() {
717
718
  return i() === "rtl" ? "ar" : "en";
718
719
  },
@@ -755,7 +756,7 @@ function Re(e) {
755
756
  }
756
757
  });
757
758
  }
758
- function ze(e) {
759
+ function Be(e) {
759
760
  let [t, n] = u(e, [
760
761
  "class",
761
762
  "children",
@@ -770,7 +771,7 @@ function ze(e) {
770
771
  }
771
772
  }));
772
773
  }
773
- function Be(e) {
774
+ function Ve(e) {
774
775
  let [t, n] = u(e, [
775
776
  "class",
776
777
  "children",
@@ -789,12 +790,12 @@ function Be(e) {
789
790
  return t.children;
790
791
  } }));
791
792
  }
792
- function Ve(e) {
793
+ function He(e) {
793
794
  let [t, n] = u(e, [
794
795
  "value",
795
796
  "children",
796
797
  "style"
797
- ]), r = H(), i = () => r().value !== t.value, a = () => i() ? typeof t.style == "string" ? `${t.style.replace(/;+\s*$/, "")};display:none;` : {
798
+ ]), r = ee(), i = () => r().value !== t.value, a = () => i() ? typeof t.style == "string" ? `${t.style.replace(/;+\s*$/, "")};display:none;` : {
798
799
  ...t.style,
799
800
  display: "none"
800
801
  } : t.style;
@@ -818,16 +819,16 @@ function Ve(e) {
818
819
  }
819
820
  //#endregion
820
821
  //#region src/toast.tsx
821
- var $ = n();
822
- function He(e) {
822
+ var Ue = n();
823
+ function We(e) {
823
824
  let t = o(), n, r, i = () => r ??= new Proxy(n?.ownerDocument ?? document, { get(e, t) {
824
825
  if (t === "getElementById") return (t) => t === "toast-group:bottom-end" ? n ?? null : e.getElementById(t);
825
826
  let r = Reflect.get(e, t, e);
826
827
  return typeof r == "function" ? r.bind(e) : r;
827
- } }), a = te({
828
+ } }), a = re({
828
829
  placement: "bottom-end",
829
830
  overlap: !1,
830
- gap: ne[8],
831
+ gap: ie[8],
831
832
  offsets: "var(--dds-space-16)",
832
833
  removeDelay: 0,
833
834
  hotkey: ["DDS_NO_HOTKEY"],
@@ -850,10 +851,10 @@ function He(e) {
850
851
  dismiss: (e) => a.remove(e),
851
852
  clear: () => a.remove()
852
853
  };
853
- return c(l.clear), h($.Provider, {
854
+ return c(l.clear), h(Ue.Provider, {
854
855
  value: l,
855
856
  get children() {
856
- return [S(() => e.children), h(ee, {
857
+ return [S(() => e.children), h(ne, {
857
858
  toaster: a,
858
859
  ref(e) {
859
860
  var t = n;
@@ -872,7 +873,7 @@ function He(e) {
872
873
  },
873
874
  children: (t) => {
874
875
  let n = () => t().meta?.dds;
875
- return h(W.Root, {
876
+ return h(H.Root, {
876
877
  get class() {
877
878
  return q("dds-toast", `dds-toast--${n().tone ?? "info"}`);
878
879
  },
@@ -880,9 +881,9 @@ function He(e) {
880
881
  return n().tone === "danger" ? "alert" : "status";
881
882
  },
882
883
  get children() {
883
- return [h(W.Description, { get children() {
884
+ return [h(H.Description, { get children() {
884
885
  return t().description;
885
- } }), S(() => S(() => !!e.dismissLabel)() && h(W.CloseTrigger, {
886
+ } }), S(() => S(() => !!e.dismissLabel)() && h(H.CloseTrigger, {
886
887
  class: "dds-iconbtn dds-iconbtn--sm",
887
888
  get "aria-label"() {
888
889
  return S(() => typeof e.dismissLabel == "function")() ? e.dismissLabel(n()) : e.dismissLabel;
@@ -896,20 +897,20 @@ function He(e) {
896
897
  }
897
898
  });
898
899
  }
899
- function Ue() {
900
- let e = d($);
900
+ function Ge() {
901
+ let e = d(Ue);
901
902
  if (!e) throw Error("useToast must be called inside <ToastProvider>");
902
903
  return e;
903
904
  }
904
905
  //#endregion
905
906
  //#region src/tooltip.tsx
906
- var We = /*#__PURE__*/ O("<span><!$><!/><!$><!/>");
907
- function Ge(e) {
907
+ var Ke = /*#__PURE__*/ O("<span><!$><!/><!$><!/>");
908
+ function qe(e) {
908
909
  let t = o(), n = () => e.id ?? `dds-tooltip-${t}`, [r, i] = K({
909
910
  value: () => e.open,
910
911
  defaultValue: e.defaultOpen ?? !1,
911
912
  onChange: (t) => e.onOpenChange?.(t)
912
- }), a = re(() => ({
913
+ }), a = ae(() => ({
913
914
  id: n(),
914
915
  ids: { content: n() },
915
916
  open: r(),
@@ -917,13 +918,13 @@ function Ge(e) {
917
918
  openDelay: 0,
918
919
  closeDelay: 0
919
920
  }));
920
- return h(G.RootProvider, {
921
+ return h(U.RootProvider, {
921
922
  value: a,
922
923
  lazyMount: !1,
923
924
  unmountOnExit: !1,
924
925
  get children() {
925
- var t = v(We), r = t.firstChild, [i, o] = y(r.nextSibling), s = i.nextSibling, [c, l] = y(s.nextSibling);
926
- return b(t, h(G.Trigger, { asChild: (t) => {
926
+ var t = v(Ke), r = t.firstChild, [i, o] = y(r.nextSibling), s = i.nextSibling, [c, l] = y(s.nextSibling);
927
+ return b(t, h(U.Trigger, { asChild: (t) => {
927
928
  let [, r] = u(t(), ["onFocusIn", "onFocusOut"]);
928
929
  return e.children({
929
930
  ...r,
@@ -933,8 +934,8 @@ function Ge(e) {
933
934
  onPointerEnter: () => a().setOpen(!0),
934
935
  onPointerLeave: () => a().setOpen(!1)
935
936
  });
936
- } }), i, o), b(t, h(G.Positioner, { get children() {
937
- return h(G.Content, {
937
+ } }), i, o), b(t, h(U.Positioner, { get children() {
938
+ return h(U.Content, {
938
939
  class: "dds-tooltip__bubble",
939
940
  get children() {
940
941
  return e.content;
@@ -945,6 +946,169 @@ function Ge(e) {
945
946
  });
946
947
  }
947
948
  //#endregion
948
- export { le as Button, me as Checkbox, Oe as ConsoleShell, Ae as Dialog, de as Field, Pe as Icon, ue as IconButton, he as Radio, je as RadioGroup, fe as Select, ge as Switch, Be as Tab, ze as TabList, Ve as TabPanel, Re as Tabs, He as ToastProvider, Ge as Tooltip, K as createControllableSignal, Ie as createStatusPill, Ue as useToast };
949
+ //#region src/date-picker.tsx
950
+ var Je = /*#__PURE__*/ O("<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\">"), Ye = /*#__PURE__*/ O("<svg width=18 height=18 viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden=true><path>"), Xe = /*#__PURE__*/ O("<div class=dds-date-picker-footer><!$><!/><!$><!/>");
951
+ function Ze() {
952
+ return v(Je);
953
+ }
954
+ function Qe(e) {
955
+ return (() => {
956
+ var t = v(Ye), n = t.firstChild;
957
+ return _(() => T(n, "d", e.next ? "m9 5 7 7-7 7" : "m15 5-7 7 7 7")), t;
958
+ })();
959
+ }
960
+ function $e(t) {
961
+ return h(Z, {
962
+ get label() {
963
+ return t.label;
964
+ },
965
+ children: (n) => h(W.Root, {
966
+ get locale() {
967
+ return t.locale ?? "ko-KR";
968
+ },
969
+ get timeZone() {
970
+ return t.timeZone ?? "Asia/Seoul";
971
+ },
972
+ get disabled() {
973
+ return t.disabled;
974
+ },
975
+ get min() {
976
+ return S(() => !!t.min)() ? G(t.min) : void 0;
977
+ },
978
+ get max() {
979
+ return S(() => !!t.max)() ? G(t.max) : void 0;
980
+ },
981
+ startOfWeek: 0,
982
+ minView: "day",
983
+ maxView: "day",
984
+ fixedWeeks: !0,
985
+ translations: {
986
+ dayCell: (e) => `${e.valueText} 선택`,
987
+ clearTrigger: "선택 날짜 지우기"
988
+ },
989
+ get value() {
990
+ return S(() => !!t.value)() ? [G(t.value)] : [];
991
+ },
992
+ format: (e) => e.toString(),
993
+ onValueChange: (e) => t.onChange(e.valueAsString[0] || ""),
994
+ positioning: {
995
+ placement: "bottom-start",
996
+ gutter: 8
997
+ },
998
+ get children() {
999
+ return [h(W.Control, {
1000
+ class: "dds-date-picker-control",
1001
+ get children() {
1002
+ return [h(W.Input, C(n, {
1003
+ placeholder: "YYYY-MM-DD",
1004
+ autocomplete: "off"
1005
+ })), h(W.Trigger, {
1006
+ class: "dds-btn dds-btn--secondary",
1007
+ get "aria-label"() {
1008
+ return `${t.label} 달력 열기`;
1009
+ },
1010
+ get children() {
1011
+ return h(Ze, {});
1012
+ }
1013
+ })];
1014
+ }
1015
+ }), h(p, { get children() {
1016
+ return h(W.Positioner, {
1017
+ class: "dds-date-picker-positioner",
1018
+ get children() {
1019
+ return h(W.Content, {
1020
+ class: "dds-date-picker-content",
1021
+ get "aria-label"() {
1022
+ return `${t.label} 날짜 선택`;
1023
+ },
1024
+ get children() {
1025
+ return h(W.View, {
1026
+ view: "day",
1027
+ get children() {
1028
+ return h(W.Context, { children: (t) => [
1029
+ h(W.ViewControl, {
1030
+ class: "dds-date-picker-header",
1031
+ get children() {
1032
+ return [
1033
+ h(W.PrevTrigger, {
1034
+ class: "dds-btn dds-btn--secondary",
1035
+ "aria-label": "이전 달",
1036
+ get children() {
1037
+ return h(Qe, {});
1038
+ }
1039
+ }),
1040
+ h(W.RangeText, {}),
1041
+ h(W.NextTrigger, {
1042
+ class: "dds-btn dds-btn--secondary",
1043
+ "aria-label": "다음 달",
1044
+ get children() {
1045
+ return h(Qe, { next: !0 });
1046
+ }
1047
+ })
1048
+ ];
1049
+ }
1050
+ }),
1051
+ h(W.Table, {
1052
+ class: "dds-date-picker-table",
1053
+ get children() {
1054
+ return [h(W.TableHead, { get children() {
1055
+ return h(W.TableRow, { get children() {
1056
+ return h(e, {
1057
+ get each() {
1058
+ return t().weekDays;
1059
+ },
1060
+ children: (e) => h(W.TableHeader, { get children() {
1061
+ return e.short;
1062
+ } })
1063
+ });
1064
+ } });
1065
+ } }), h(W.TableBody, { get children() {
1066
+ return h(e, {
1067
+ get each() {
1068
+ return t().weeks;
1069
+ },
1070
+ children: (t) => h(W.TableRow, { get children() {
1071
+ return h(e, {
1072
+ each: t,
1073
+ children: (e) => h(W.TableCell, {
1074
+ value: e,
1075
+ get children() {
1076
+ return h(W.TableCellTrigger, { get children() {
1077
+ return e.day;
1078
+ } });
1079
+ }
1080
+ })
1081
+ });
1082
+ } })
1083
+ });
1084
+ } })];
1085
+ }
1086
+ }),
1087
+ (() => {
1088
+ var e = v(Xe), n = e.firstChild, [r, i] = y(n.nextSibling), a = r.nextSibling, [o, s] = y(a.nextSibling);
1089
+ return b(e, h(X, {
1090
+ type: "button",
1091
+ tone: "secondary",
1092
+ onClick: () => t().selectToday(),
1093
+ children: "오늘"
1094
+ }), r, i), b(e, h(W.ClearTrigger, {
1095
+ class: "dds-btn dds-btn--secondary",
1096
+ children: "지우기"
1097
+ }), o, s), e;
1098
+ })()
1099
+ ] });
1100
+ }
1101
+ });
1102
+ }
1103
+ });
1104
+ }
1105
+ });
1106
+ } })];
1107
+ }
1108
+ })
1109
+ });
1110
+ }
1111
+ //#endregion
1112
+ export { X as Button, me as Checkbox, Oe as ConsoleShell, $e as DatePicker, Ae as Dialog, Z as Field, Pe as Icon, de as IconButton, he as Radio, je as RadioGroup, fe as Select, ge as Switch, Ve as Tab, Be as TabList, He as TabPanel, ze as Tabs, We as ToastProvider, qe as Tooltip, K as createControllableSignal, Le as createStatusPill, Ge as useToast };
949
1113
 
950
1114
  //# sourceMappingURL=index.js.map