@alfadocs/ui-kit-debug 0.17.1 → 0.17.2
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/dist/_chunks/{accordion-DOmxGEWU.js → accordion-CNcodXuO.js} +6 -6
- package/dist/_chunks/{accordion-DOmxGEWU.js.map → accordion-CNcodXuO.js.map} +1 -1
- package/dist/_chunks/{ai-prompt-input-DEiQwIMn.js → ai-prompt-input-B-w5Rx3V.js} +184 -181
- package/dist/_chunks/ai-prompt-input-B-w5Rx3V.js.map +1 -0
- package/dist/_chunks/{alert-pgdXrEO5.js → alert-DBnawbmf.js} +64 -59
- package/dist/_chunks/alert-DBnawbmf.js.map +1 -0
- package/dist/_chunks/{audio-recorder-CRh4uyFL.js → audio-recorder-DNkQLW1G.js} +3 -3
- package/dist/_chunks/{audio-recorder-CRh4uyFL.js.map → audio-recorder-DNkQLW1G.js.map} +1 -1
- package/dist/_chunks/{autocomplete-mOg7WLOh.js → autocomplete-BxfabhZ8.js} +167 -164
- package/dist/_chunks/autocomplete-BxfabhZ8.js.map +1 -0
- package/dist/_chunks/{balance-cell-renderer-DWWtX-VM.js → balance-cell-renderer-DJB6WDPe.js} +2 -2
- package/dist/_chunks/{balance-cell-renderer-DWWtX-VM.js.map → balance-cell-renderer-DJB6WDPe.js.map} +1 -1
- package/dist/_chunks/{chat-input-UK-bXU7u.js → chat-input-B3XmFGDw.js} +123 -122
- package/dist/_chunks/chat-input-B3XmFGDw.js.map +1 -0
- package/dist/_chunks/checkbox-group-Bwmt1ovQ.js +213 -0
- package/dist/_chunks/checkbox-group-Bwmt1ovQ.js.map +1 -0
- package/dist/_chunks/{checkbox-D5EHnB14.js → checkbox-mwbrPZDY.js} +75 -70
- package/dist/_chunks/checkbox-mwbrPZDY.js.map +1 -0
- package/dist/_chunks/{collapsible-CuxUBoHJ.js → collapsible-hHiyZp0b.js} +61 -63
- package/dist/_chunks/collapsible-hHiyZp0b.js.map +1 -0
- package/dist/_chunks/{color-picker-BPfcByHH.js → color-picker-Bm-gzpsh.js} +2 -2
- package/dist/_chunks/{color-picker-BPfcByHH.js.map → color-picker-Bm-gzpsh.js.map} +1 -1
- package/dist/_chunks/{combobox-D5tWe0t_.js → combobox-Da9eq00i.js} +214 -211
- package/dist/_chunks/combobox-Da9eq00i.js.map +1 -0
- package/dist/_chunks/{copy-field-BCHAZ8QV.js → copy-field-BAF4mt9h.js} +95 -132
- package/dist/_chunks/copy-field-BAF4mt9h.js.map +1 -0
- package/dist/_chunks/{date-picker-BlhtBhPo.js → date-picker-BIoSLRly.js} +222 -219
- package/dist/_chunks/{date-picker-BlhtBhPo.js.map → date-picker-BIoSLRly.js.map} +1 -1
- package/dist/_chunks/{date-range-picker-C2hRu_Ke.js → date-range-picker-9gANFNG9.js} +81 -78
- package/dist/_chunks/date-range-picker-9gANFNG9.js.map +1 -0
- package/dist/_chunks/{date-time-picker-B67mPZmP.js → date-time-picker-DG7BiGdb.js} +98 -95
- package/dist/_chunks/date-time-picker-DG7BiGdb.js.map +1 -0
- package/dist/_chunks/{dialog-DRp6Dejy.js → dialog-DUomPCRS.js} +69 -71
- package/dist/_chunks/dialog-DUomPCRS.js.map +1 -0
- package/dist/_chunks/{dropdown-menu-dyV7gHh_.js → dropdown-menu-DZxwF23X.js} +108 -110
- package/dist/_chunks/dropdown-menu-DZxwF23X.js.map +1 -0
- package/dist/_chunks/{freemium-paywall-BTEiVkes.js → freemium-paywall-DXc7XlGE.js} +98 -97
- package/dist/_chunks/freemium-paywall-DXc7XlGE.js.map +1 -0
- package/dist/_chunks/{leo-sidebar-D3TuyH5_.js → leo-sidebar-DIsiTju3.js} +2 -2
- package/dist/_chunks/{leo-sidebar-D3TuyH5_.js.map → leo-sidebar-DIsiTju3.js.map} +1 -1
- package/dist/_chunks/{list-DcjV0m5B.js → list-BdvDctBz.js} +184 -180
- package/dist/_chunks/list-BdvDctBz.js.map +1 -0
- package/dist/_chunks/{message-tray-Fsend-du.js → message-tray-BNAS8al4.js} +111 -111
- package/dist/_chunks/message-tray-BNAS8al4.js.map +1 -0
- package/dist/_chunks/{multi-select-DooDzQIp.js → multi-select-CyspR5ZF.js} +157 -154
- package/dist/_chunks/multi-select-CyspR5ZF.js.map +1 -0
- package/dist/_chunks/{navigation-menu-DdufF-_4.js → navigation-menu-CyS1fBJ7.js} +85 -87
- package/dist/_chunks/navigation-menu-CyS1fBJ7.js.map +1 -0
- package/dist/_chunks/{notification-tray-C3dYdLAF.js → notification-tray-D_69dXFY.js} +114 -114
- package/dist/_chunks/notification-tray-D_69dXFY.js.map +1 -0
- package/dist/_chunks/{number-input-DH00o0DN.js → number-input-BZXu6bPY.js} +92 -89
- package/dist/_chunks/number-input-BZXu6bPY.js.map +1 -0
- package/dist/_chunks/{otp-input-BBXYvLx5.js → otp-input-BDF_iNpa.js} +92 -93
- package/dist/_chunks/otp-input-BDF_iNpa.js.map +1 -0
- package/dist/_chunks/{pagination-F1ei4khE.js → pagination-BWaXF7W0.js} +194 -211
- package/dist/_chunks/pagination-BWaXF7W0.js.map +1 -0
- package/dist/_chunks/{patient-shell-BE0CdPOJ.js → patient-shell-BOOaWZA9.js} +3 -3
- package/dist/_chunks/{patient-shell-BE0CdPOJ.js.map → patient-shell-BOOaWZA9.js.map} +1 -1
- package/dist/_chunks/{payment-form-CI77oIx1.js → payment-form-BjkuQeqR.js} +2 -2
- package/dist/_chunks/{payment-form-CI77oIx1.js.map → payment-form-BjkuQeqR.js.map} +1 -1
- package/dist/_chunks/{pdf-viewer-CnEJvmXC.js → pdf-viewer-BG_nsFT5.js} +2 -2
- package/dist/_chunks/{pdf-viewer-CnEJvmXC.js.map → pdf-viewer-BG_nsFT5.js.map} +1 -1
- package/dist/_chunks/{radio-group-Cz1a4QCA.js → radio-group-BHZOxrIK.js} +4 -4
- package/dist/_chunks/{radio-group-Cz1a4QCA.js.map → radio-group-BHZOxrIK.js.map} +1 -1
- package/dist/_chunks/{select-Ca6ibiDL.js → select-C92AT_OZ.js} +7 -7
- package/dist/_chunks/{select-Ca6ibiDL.js.map → select-C92AT_OZ.js.map} +1 -1
- package/dist/_chunks/{sidebar-D8Lq065m.js → sidebar-BqzlRBvC.js} +271 -291
- package/dist/_chunks/sidebar-BqzlRBvC.js.map +1 -0
- package/dist/_chunks/{slider-CkR6CLun.js → slider-CfEzeseL.js} +4 -4
- package/dist/_chunks/{slider-CkR6CLun.js.map → slider-CfEzeseL.js.map} +1 -1
- package/dist/_chunks/{tabs-CRCyPpJo.js → tabs-aEQfQV3x.js} +8 -8
- package/dist/_chunks/{tabs-CRCyPpJo.js.map → tabs-aEQfQV3x.js.map} +1 -1
- package/dist/_chunks/{theme-toggle-B3meAb3y.js → theme-toggle-BswYl0Yp.js} +2 -2
- package/dist/_chunks/{theme-toggle-B3meAb3y.js.map → theme-toggle-BswYl0Yp.js.map} +1 -1
- package/dist/_chunks/use-controllable-state-BiY4xTzM.js +23 -0
- package/dist/_chunks/use-controllable-state-BiY4xTzM.js.map +1 -0
- package/dist/_chunks/use-copy-to-clipboard-Cyfc_dlv.js +43 -0
- package/dist/_chunks/use-copy-to-clipboard-Cyfc_dlv.js.map +1 -0
- package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +1 -1
- package/dist/_chunks/use-direction-D6rvvG9G.js.map +1 -1
- package/dist/_chunks/use-persistent-state-i23OWy6G.js +24 -0
- package/dist/_chunks/use-persistent-state-i23OWy6G.js.map +1 -0
- package/dist/_chunks/{warning-stack-CeRihME9.js → warning-stack-CDH9TudY.js} +2 -2
- package/dist/_chunks/{warning-stack-CeRihME9.js.map → warning-stack-CDH9TudY.js.map} +1 -1
- package/dist/_chunks/{workflow-map-D3MvrsZV.js → workflow-map-BeKe23uw.js} +3 -3
- package/dist/_chunks/{workflow-map-D3MvrsZV.js.map → workflow-map-BeKe23uw.js.map} +1 -1
- package/dist/agent-catalog.json +1 -1
- package/dist/components/_shared/use-debounced-callback.d.ts +1 -5
- package/dist/components/_shared/use-debounced-callback.d.ts.map +1 -1
- package/dist/components/_shared/use-direction.d.ts +1 -18
- package/dist/components/_shared/use-direction.d.ts.map +1 -1
- package/dist/components/_shared/use-focus-trap.d.ts +1 -31
- package/dist/components/_shared/use-focus-trap.d.ts.map +1 -1
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/chat-input/chat-input.d.ts.map +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/components/checkbox-group/index.js +1 -1
- package/dist/components/collapsible/collapsible.d.ts.map +1 -1
- package/dist/components/collapsible/index.js +1 -1
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/command-palette.d.ts +1 -1
- package/dist/components/copy-field/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
- package/dist/components/date-time-picker/index.js +1 -1
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/icon-button-group/icon-button-group.d.ts +14 -14
- package/dist/components/list/index.js +1 -1
- package/dist/components/list/list.d.ts.map +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/message-tray/message-tray.d.ts.map +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/multi-select/multi-select.d.ts.map +1 -1
- package/dist/components/navigation-menu/index.js +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
- package/dist/components/number-input/index.js +1 -1
- package/dist/components/number-input/number-input.d.ts.map +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/otp-input/otp-input.d.ts.map +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/radio-group/index.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/sidebar/index.js +8 -7
- package/dist/components/sidebar/index.js.map +1 -1
- package/dist/components/sidebar/sidebar.d.ts +1 -1
- package/dist/components/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/slider/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +98 -15
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-debounced-callback.d.ts +19 -0
- package/dist/hooks/use-debounced-callback.d.ts.map +1 -0
- package/dist/hooks/use-debounced-value.d.ts +16 -0
- package/dist/hooks/use-debounced-value.d.ts.map +1 -0
- package/dist/hooks/use-direction.d.ts +19 -0
- package/dist/hooks/use-direction.d.ts.map +1 -0
- package/dist/hooks/use-focus-trap.d.ts +32 -0
- package/dist/hooks/use-focus-trap.d.ts.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +13 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/hooks/use-persistent-state.d.ts +16 -0
- package/dist/hooks/use-persistent-state.d.ts.map +1 -0
- package/dist/index.js +493 -492
- package/dist/index.js.map +1 -1
- package/dist/patterns/leo-assistant/index.js +1 -1
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +4 -2
- package/dist/_chunks/ai-prompt-input-DEiQwIMn.js.map +0 -1
- package/dist/_chunks/alert-pgdXrEO5.js.map +0 -1
- package/dist/_chunks/autocomplete-mOg7WLOh.js.map +0 -1
- package/dist/_chunks/chat-input-UK-bXU7u.js.map +0 -1
- package/dist/_chunks/checkbox-D5EHnB14.js.map +0 -1
- package/dist/_chunks/checkbox-group-Qkm3Rg1S.js +0 -208
- package/dist/_chunks/checkbox-group-Qkm3Rg1S.js.map +0 -1
- package/dist/_chunks/collapsible-CuxUBoHJ.js.map +0 -1
- package/dist/_chunks/combobox-D5tWe0t_.js.map +0 -1
- package/dist/_chunks/copy-field-BCHAZ8QV.js.map +0 -1
- package/dist/_chunks/date-range-picker-C2hRu_Ke.js.map +0 -1
- package/dist/_chunks/date-time-picker-B67mPZmP.js.map +0 -1
- package/dist/_chunks/dialog-DRp6Dejy.js.map +0 -1
- package/dist/_chunks/dropdown-menu-dyV7gHh_.js.map +0 -1
- package/dist/_chunks/freemium-paywall-BTEiVkes.js.map +0 -1
- package/dist/_chunks/list-DcjV0m5B.js.map +0 -1
- package/dist/_chunks/message-tray-Fsend-du.js.map +0 -1
- package/dist/_chunks/multi-select-DooDzQIp.js.map +0 -1
- package/dist/_chunks/navigation-menu-DdufF-_4.js.map +0 -1
- package/dist/_chunks/notification-tray-C3dYdLAF.js.map +0 -1
- package/dist/_chunks/number-input-DH00o0DN.js.map +0 -1
- package/dist/_chunks/otp-input-BBXYvLx5.js.map +0 -1
- package/dist/_chunks/pagination-F1ei4khE.js.map +0 -1
- package/dist/_chunks/sidebar-D8Lq065m.js.map +0 -1
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { c as
|
|
4
|
-
import { useTranslation as
|
|
1
|
+
import { jsx as s, jsxs as y } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as ne, useState as T, useRef as oe, useCallback as F, useMemo as de, useImperativeHandle as le } from "react";
|
|
3
|
+
import { c as ce } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as ue } from "react-i18next";
|
|
5
5
|
import * as k from "@radix-ui/react-popover";
|
|
6
|
+
import { u as me } from "./use-controllable-state-BiY4xTzM.js";
|
|
6
7
|
import { u as pe } from "./form-field-context-B3APVHKx.js";
|
|
7
8
|
import { T as fe } from "./time-picker-DeVZkIY2.js";
|
|
8
|
-
import { g as ge, b as he, i as ve, j as be, C as ye, d as Te, t as ke, D as we, f as De, h as
|
|
9
|
-
import { f as
|
|
10
|
-
import { u as
|
|
9
|
+
import { g as ge, b as he, i as ve, j as be, C as ye, d as Te, t as ke, D as we, f as De, h as Ce } from "./react-day-picker-C5F3-TTX.js";
|
|
10
|
+
import { f as Pe } from "./isSameMonth-5wNF2f4I.js";
|
|
11
|
+
import { u as xe } from "./registry-C9nwlNyL.js";
|
|
11
12
|
import { t as j } from "./isSameDay-ecuM8PBB.js";
|
|
12
|
-
function K(e,
|
|
13
|
-
const i = j(e,
|
|
14
|
-
return i.setHours(
|
|
13
|
+
function K(e, t, r) {
|
|
14
|
+
const i = j(e, r == null ? void 0 : r.in);
|
|
15
|
+
return i.setHours(t), i;
|
|
15
16
|
}
|
|
16
|
-
function A(e,
|
|
17
|
-
const i = j(e,
|
|
18
|
-
return i.setMinutes(
|
|
17
|
+
function A(e, t, r) {
|
|
18
|
+
const i = j(e, r == null ? void 0 : r.in);
|
|
19
|
+
return i.setMinutes(t), i;
|
|
19
20
|
}
|
|
20
21
|
const Oe = {
|
|
21
22
|
id: "date-time-picker",
|
|
@@ -26,8 +27,8 @@ const Oe = {
|
|
|
26
27
|
descriptionKey: "ui.agent.dateTimePicker.state.value",
|
|
27
28
|
description: "Currently-selected ISO datetime, or null.",
|
|
28
29
|
read: (e) => {
|
|
29
|
-
var
|
|
30
|
-
return ((
|
|
30
|
+
var t;
|
|
31
|
+
return ((t = e.getValue()) == null ? void 0 : t.toISOString()) ?? null;
|
|
31
32
|
}
|
|
32
33
|
},
|
|
33
34
|
isOpen: {
|
|
@@ -43,8 +44,8 @@ const Oe = {
|
|
|
43
44
|
argsType: "{ datetime: string }",
|
|
44
45
|
descriptionKey: "ui.agent.dateTimePicker.actions.setDatetime",
|
|
45
46
|
description: "Select a specific datetime (ISO string).",
|
|
46
|
-
invoke: (e,
|
|
47
|
-
e.setValue(new Date(
|
|
47
|
+
invoke: (e, t) => {
|
|
48
|
+
e.setValue(new Date(t.datetime));
|
|
48
49
|
}
|
|
49
50
|
},
|
|
50
51
|
clear: {
|
|
@@ -85,13 +86,13 @@ const Oe = {
|
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
};
|
|
88
|
-
function Me(e,
|
|
89
|
-
var
|
|
89
|
+
function Me(e, t) {
|
|
90
|
+
var r;
|
|
90
91
|
try {
|
|
91
92
|
const i = { timeZoneName: "short" };
|
|
92
|
-
return
|
|
93
|
+
return t && t !== "local" && (i.timeZone = t === "utc" ? "UTC" : t), ((r = new Intl.DateTimeFormat(e, i).formatToParts(
|
|
93
94
|
/* @__PURE__ */ new Date()
|
|
94
|
-
).find((d) => d.type === "timeZoneName")) == null ? void 0 :
|
|
95
|
+
).find((d) => d.type === "timeZoneName")) == null ? void 0 : r.value) ?? "";
|
|
95
96
|
} catch {
|
|
96
97
|
return "";
|
|
97
98
|
}
|
|
@@ -99,13 +100,13 @@ function Me(e, s) {
|
|
|
99
100
|
function Ne(e) {
|
|
100
101
|
if (!e || e === "local") return !1;
|
|
101
102
|
try {
|
|
102
|
-
const
|
|
103
|
-
return e === "utc" ?
|
|
103
|
+
const t = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
104
|
+
return e === "utc" ? t !== "UTC" : t !== e;
|
|
104
105
|
} catch {
|
|
105
106
|
return !1;
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
|
-
const Ve =
|
|
109
|
+
const Ve = ce(
|
|
109
110
|
[
|
|
110
111
|
"ds:w-full ds:rounded-[var(--radius-sm)]",
|
|
111
112
|
"ds:bg-primary ds:text-primary-foreground",
|
|
@@ -125,139 +126,141 @@ const Ve = ue(
|
|
|
125
126
|
},
|
|
126
127
|
defaultVariants: { size: "md" }
|
|
127
128
|
}
|
|
128
|
-
),
|
|
129
|
+
), Se = ne(
|
|
129
130
|
({
|
|
130
131
|
value: e,
|
|
131
|
-
defaultValue:
|
|
132
|
-
onChange:
|
|
132
|
+
defaultValue: t,
|
|
133
|
+
onChange: r,
|
|
133
134
|
timezone: i,
|
|
134
135
|
showTimezone: w,
|
|
135
136
|
minDate: d,
|
|
136
|
-
maxDate:
|
|
137
|
+
maxDate: p,
|
|
137
138
|
hour12: B,
|
|
138
139
|
minuteStep: Z = 1,
|
|
139
|
-
size:
|
|
140
|
+
size: f = "md",
|
|
140
141
|
disabled: _,
|
|
141
142
|
placeholder: z,
|
|
142
143
|
className: E,
|
|
143
144
|
id: U
|
|
144
145
|
}, W) => {
|
|
145
|
-
const { t:
|
|
146
|
+
const { t: l, i18n: M } = ue(), c = pe(), D = U ?? c.id, N = c.disabled || _, q = c.invalid ? "error" : "default", V = ge(M.language), G = z ?? l("inputs.dateTimePicker.placeholder", "Select date and time"), J = l("inputs.dateTimePicker.apply", "Apply"), Q = l(
|
|
146
147
|
"inputs.dateTimePicker.outOfRange",
|
|
147
148
|
"Date/time is out of allowed range"
|
|
148
|
-
), S = (w !== void 0 ? w : Ne(i)) ? Me(
|
|
149
|
-
e
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
), S = (w !== void 0 ? w : Ne(i)) ? Me(M.language, i) : "", [X, I] = me({
|
|
150
|
+
value: e,
|
|
151
|
+
defaultValue: t,
|
|
152
|
+
onChange: r
|
|
153
|
+
}), n = X, [o, g] = T(n), [h, v] = T(!1), [Y, C] = T(n ?? /* @__PURE__ */ new Date()), [R, u] = T(!1), L = oe(null), b = F(
|
|
154
|
+
(a) => {
|
|
155
|
+
I(a);
|
|
153
156
|
},
|
|
154
|
-
[
|
|
155
|
-
),
|
|
156
|
-
(
|
|
157
|
-
[d,
|
|
158
|
-
),
|
|
159
|
-
|
|
160
|
-
},
|
|
161
|
-
if (!
|
|
162
|
-
const
|
|
163
|
-
K(
|
|
164
|
-
|
|
157
|
+
[I]
|
|
158
|
+
), $ = he(d, p), P = F(
|
|
159
|
+
(a) => !(d && ve(a, d) || p && be(a, p)),
|
|
160
|
+
[d, p]
|
|
161
|
+
), ee = (a) => {
|
|
162
|
+
a && (g(n ?? /* @__PURE__ */ new Date()), C(n ?? /* @__PURE__ */ new Date()), u(!1)), v(a);
|
|
163
|
+
}, te = (a) => {
|
|
164
|
+
if (!a) return;
|
|
165
|
+
const O = o ?? /* @__PURE__ */ new Date(), m = A(
|
|
166
|
+
K(a, O.getHours()),
|
|
167
|
+
O.getMinutes()
|
|
165
168
|
);
|
|
166
|
-
|
|
167
|
-
}, ae = (
|
|
168
|
-
const m = A(K(o ?? /* @__PURE__ */ new Date(),
|
|
169
|
-
|
|
170
|
-
},
|
|
171
|
-
var
|
|
169
|
+
g(m), u(!P(m));
|
|
170
|
+
}, ae = (a) => {
|
|
171
|
+
const m = A(K(o ?? /* @__PURE__ */ new Date(), a.hours), a.minutes);
|
|
172
|
+
g(m), u(!P(m));
|
|
173
|
+
}, se = () => {
|
|
174
|
+
var a;
|
|
172
175
|
if (o) {
|
|
173
|
-
if (!
|
|
176
|
+
if (!P(o)) {
|
|
174
177
|
u(!0);
|
|
175
178
|
return;
|
|
176
179
|
}
|
|
177
|
-
|
|
180
|
+
b(o), v(!1), (a = L.current) == null || a.focus();
|
|
178
181
|
}
|
|
179
|
-
}, H = n ?
|
|
182
|
+
}, H = n ? Pe(n, "MMM d, yyyy HH:mm", { locale: V }) : "", re = l("inputs.datePicker.gridLabel", "Calendar"), ie = l("inputs.timePicker.groupLabel", "Time"), x = de(
|
|
180
183
|
() => ({
|
|
181
184
|
getValue: () => n,
|
|
182
|
-
setValue: (
|
|
183
|
-
clear: () =>
|
|
184
|
-
isOpen: () =>
|
|
185
|
+
setValue: (a) => b(a),
|
|
186
|
+
clear: () => b(void 0),
|
|
187
|
+
isOpen: () => h,
|
|
185
188
|
// Mirror the trigger's open behaviour so draft state seeds correctly.
|
|
186
189
|
open: () => {
|
|
187
|
-
|
|
190
|
+
g(n ?? /* @__PURE__ */ new Date()), C(n ?? /* @__PURE__ */ new Date()), u(!1), v(!0);
|
|
188
191
|
},
|
|
189
|
-
close: () =>
|
|
192
|
+
close: () => v(!1)
|
|
190
193
|
}),
|
|
191
|
-
[n,
|
|
194
|
+
[n, b, h]
|
|
192
195
|
);
|
|
193
|
-
return le(W, () =>
|
|
196
|
+
return le(W, () => x, [x]), xe(Oe, x, D), /* @__PURE__ */ s(k.Root, { open: h, onOpenChange: ee, children: /* @__PURE__ */ y(
|
|
194
197
|
"div",
|
|
195
198
|
{
|
|
196
199
|
className: E,
|
|
197
200
|
"data-component": "date-time-picker",
|
|
198
201
|
"data-component-id": D,
|
|
199
202
|
children: [
|
|
200
|
-
/* @__PURE__ */
|
|
203
|
+
/* @__PURE__ */ s(k.Trigger, { asChild: !0, disabled: N, children: /* @__PURE__ */ y(
|
|
201
204
|
"button",
|
|
202
205
|
{
|
|
203
|
-
ref:
|
|
206
|
+
ref: L,
|
|
204
207
|
id: D,
|
|
205
208
|
type: "button",
|
|
206
|
-
disabled:
|
|
207
|
-
"aria-describedby":
|
|
208
|
-
"aria-invalid":
|
|
209
|
+
disabled: N,
|
|
210
|
+
"aria-describedby": c.describedBy || void 0,
|
|
211
|
+
"aria-invalid": c.invalid || void 0,
|
|
209
212
|
"aria-haspopup": "dialog",
|
|
210
|
-
"aria-expanded":
|
|
211
|
-
className: ke({ size:
|
|
213
|
+
"aria-expanded": h,
|
|
214
|
+
className: ke({ size: f, tone: q }),
|
|
212
215
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
216
|
+
/* @__PURE__ */ s(
|
|
214
217
|
"span",
|
|
215
218
|
{
|
|
216
219
|
className: H ? "ds:text-foreground" : "ds:text-muted-foreground",
|
|
217
220
|
children: H || G
|
|
218
221
|
}
|
|
219
222
|
),
|
|
220
|
-
/* @__PURE__ */
|
|
223
|
+
/* @__PURE__ */ s(
|
|
221
224
|
"span",
|
|
222
225
|
{
|
|
223
226
|
"aria-hidden": "true",
|
|
224
|
-
className: Te({ size:
|
|
225
|
-
children: /* @__PURE__ */
|
|
227
|
+
className: Te({ size: f }),
|
|
228
|
+
children: /* @__PURE__ */ s(ye, {})
|
|
226
229
|
}
|
|
227
230
|
)
|
|
228
231
|
]
|
|
229
232
|
}
|
|
230
233
|
) }),
|
|
231
|
-
/* @__PURE__ */
|
|
234
|
+
/* @__PURE__ */ s(k.Portal, { children: /* @__PURE__ */ s(
|
|
232
235
|
k.Content,
|
|
233
236
|
{
|
|
234
237
|
sideOffset: 4,
|
|
235
238
|
align: "start",
|
|
236
|
-
className:
|
|
237
|
-
children: /* @__PURE__ */
|
|
238
|
-
/* @__PURE__ */
|
|
239
|
+
className: Ce(),
|
|
240
|
+
children: /* @__PURE__ */ y("div", { className: "ds:flex ds:flex-col ds:sm:flex-row ds:gap-[var(--spacing-md)]", children: [
|
|
241
|
+
/* @__PURE__ */ s("div", { role: "region", "aria-label": re, children: /* @__PURE__ */ s(
|
|
239
242
|
we,
|
|
240
243
|
{
|
|
241
244
|
mode: "single",
|
|
242
245
|
selected: o,
|
|
243
|
-
onSelect:
|
|
244
|
-
month:
|
|
245
|
-
onMonthChange:
|
|
246
|
-
disabled:
|
|
247
|
-
locale:
|
|
246
|
+
onSelect: te,
|
|
247
|
+
month: Y,
|
|
248
|
+
onMonthChange: C,
|
|
249
|
+
disabled: $,
|
|
250
|
+
locale: V,
|
|
248
251
|
showOutsideDays: !0,
|
|
249
252
|
fixedWeeks: !0,
|
|
250
253
|
components: { Chevron: De }
|
|
251
254
|
}
|
|
252
255
|
) }),
|
|
253
|
-
/* @__PURE__ */
|
|
256
|
+
/* @__PURE__ */ y(
|
|
254
257
|
"div",
|
|
255
258
|
{
|
|
256
259
|
role: "region",
|
|
257
|
-
"aria-label":
|
|
260
|
+
"aria-label": ie,
|
|
258
261
|
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:sm:border-s ds:sm:border-border ds:sm:ps-[var(--spacing-md)] ds:min-w-[10rem]",
|
|
259
262
|
children: [
|
|
260
|
-
/* @__PURE__ */
|
|
263
|
+
/* @__PURE__ */ s(
|
|
261
264
|
fe,
|
|
262
265
|
{
|
|
263
266
|
value: o ? {
|
|
@@ -267,11 +270,11 @@ const Ve = ue(
|
|
|
267
270
|
onChange: ae,
|
|
268
271
|
hour12: B,
|
|
269
272
|
minuteStep: Z,
|
|
270
|
-
size:
|
|
273
|
+
size: f
|
|
271
274
|
}
|
|
272
275
|
),
|
|
273
|
-
S ? /* @__PURE__ */
|
|
274
|
-
|
|
276
|
+
S ? /* @__PURE__ */ s("span", { className: "type-meta ds:text-muted-foreground", children: S }) : null,
|
|
277
|
+
R ? /* @__PURE__ */ s(
|
|
275
278
|
"span",
|
|
276
279
|
{
|
|
277
280
|
role: "alert",
|
|
@@ -279,13 +282,13 @@ const Ve = ue(
|
|
|
279
282
|
children: Q
|
|
280
283
|
}
|
|
281
284
|
) : null,
|
|
282
|
-
/* @__PURE__ */
|
|
285
|
+
/* @__PURE__ */ s(
|
|
283
286
|
"button",
|
|
284
287
|
{
|
|
285
288
|
type: "button",
|
|
286
|
-
onClick:
|
|
287
|
-
disabled: !o ||
|
|
288
|
-
className: Ve({ size:
|
|
289
|
+
onClick: se,
|
|
290
|
+
disabled: !o || R,
|
|
291
|
+
className: Ve({ size: f }),
|
|
289
292
|
children: J
|
|
290
293
|
}
|
|
291
294
|
)
|
|
@@ -300,9 +303,9 @@ const Ve = ue(
|
|
|
300
303
|
) });
|
|
301
304
|
}
|
|
302
305
|
);
|
|
303
|
-
|
|
306
|
+
Se.displayName = "DateTimePicker";
|
|
304
307
|
export {
|
|
305
|
-
|
|
308
|
+
Se as D,
|
|
306
309
|
Oe as d
|
|
307
310
|
};
|
|
308
|
-
//# sourceMappingURL=date-time-picker-
|
|
311
|
+
//# sourceMappingURL=date-time-picker-DG7BiGdb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-picker-DG7BiGdb.js","sources":["../../node_modules/date-fns/setHours.js","../../node_modules/date-fns/setMinutes.js","../../src/components/date-time-picker/date-time-picker.agent.ts","../../src/components/date-time-picker/date-time-picker.tsx"],"sourcesContent":["import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setHours} function options.\n */\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n * @param options - An object with options\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMinutes} function options.\n */\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, returned from the context function, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n * @param options - An object with options\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes, options) {\n const date_ = toDate(date, options?.in);\n date_.setMinutes(minutes);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — DateTimePicker. */\n/* */\n/* DateTimePicker composes a react-day-picker calendar grid with the */\n/* TimePicker segments inside a single Radix Popover. The agent surface */\n/* exposes a combined datetime — set / clear / open / close. The handle */\n/* is the curated surface; consumers don't address the inner sub-widgets.*/\n/* */\n/* See `src/docs/26-agent-readiness.mdx` §15. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { DateTimePickerHandle } from './date-time-picker';\n\nexport const dateTimePickerAgent: AgentAdapter<DateTimePickerHandle> = {\n id: 'date-time-picker',\n capabilities: ['pick', 'open', 'close'],\n state: {\n value: {\n type: 'iso-datetime',\n descriptionKey: 'ui.agent.dateTimePicker.state.value',\n description: 'Currently-selected ISO datetime, or null.',\n read: (handle) => handle.getValue()?.toISOString() ?? null,\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.dateTimePicker.state.isOpen',\n description: 'Whether the datetime popover is open.',\n read: (handle) => handle.isOpen(),\n },\n },\n actions: {\n set_datetime: {\n safety: 'write',\n argsType: '{ datetime: string }',\n descriptionKey: 'ui.agent.dateTimePicker.actions.setDatetime',\n description: 'Select a specific datetime (ISO string).',\n invoke: (handle, args: { datetime: string }) => {\n handle.setValue(new Date(args.datetime));\n },\n },\n clear: {\n safety: 'destructive',\n descriptionKey: 'ui.agent.dateTimePicker.actions.clear',\n description: 'Clear the selected datetime.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n open: {\n safety: 'read',\n descriptionKey: 'ui.agent.dateTimePicker.actions.open',\n description: 'Open the datetime popover.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n descriptionKey: 'ui.agent.dateTimePicker.actions.close',\n description: 'Close the datetime popover.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'date-time-picker',\n description: 'Marks the DateTimePicker wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport * as Popover from '@radix-ui/react-popover';\nimport { DayPicker } from 'react-day-picker';\nimport {\n format as fnsFormat,\n isBefore,\n isAfter,\n setHours,\n setMinutes,\n} from 'date-fns';\nimport { Calendar } from 'lucide-react';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useFormField } from '../form-field/form-field-context';\nimport {\n getDateFnsLocale,\n buildDisabledMatcher,\n CalendarChevron,\n triggerVariants,\n calendarIconVariants,\n popoverContentVariants,\n} from '../_shared';\nimport { TimePicker } from '../time-picker/time-picker';\nimport type { TimeValue } from '../_shared/time';\nimport { useAgentRegistration } from '../../agent';\nimport { dateTimePickerAgent } from './date-time-picker.agent';\nimport '../../tokens/themes/bridges/react-day-picker.css';\n\n/* -------------------------------------------------------------------------- */\n/* Imperative handle */\n/* -------------------------------------------------------------------------- */\n\n/** Curated imperative handle exposed via `ref` — also consumed by the agent adapter. */\nexport interface DateTimePickerHandle {\n /** Get the current selected datetime, or undefined. */\n getValue: () => Date | undefined;\n /** Set the selected datetime. */\n setValue: (date: Date | undefined) => void;\n /** Clear the selected datetime. */\n clear: () => void;\n /** Whether the popover is open. */\n isOpen: () => boolean;\n /** Open the popover. */\n open: () => void;\n /** Close the popover. */\n close: () => void;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------------- */\n\n/** Get timezone short name. */\nfunction getTimezoneLabel(locale: string, timezone?: string): string {\n try {\n const opts: Intl.DateTimeFormatOptions = { timeZoneName: 'short' };\n if (timezone && timezone !== 'local') {\n opts.timeZone = timezone === 'utc' ? 'UTC' : timezone;\n }\n const parts = new Intl.DateTimeFormat(locale, opts).formatToParts(\n new Date(),\n );\n return parts.find((p) => p.type === 'timeZoneName')?.value ?? '';\n } catch {\n return '';\n }\n}\n\n/** Check if a timezone differs from the browser's. */\nfunction tzDiffersFromBrowser(timezone?: string): boolean {\n if (!timezone || timezone === 'local') return false;\n try {\n const browserTz = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (timezone === 'utc') return browserTz !== 'UTC';\n return browserTz !== timezone;\n } catch {\n return false;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* CVA variants */\n/* -------------------------------------------------------------------------- */\n\nconst applyButtonVariants = cva(\n [\n 'ds:w-full ds:rounded-[var(--radius-sm)]',\n 'ds:bg-primary ds:text-primary-foreground',\n 'ds:hover:bg-primary-hover ds:cursor-pointer',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:h-8 ds:text-[length:var(--font-size-sm)]',\n md: 'ds:h-[var(--min-target-size)] ds:text-[length:var(--font-size-base)]',\n lg: 'ds:h-12 ds:text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\n/* -------------------------------------------------------------------------- */\n/* Props */\n/* -------------------------------------------------------------------------- */\n\nexport interface DateTimePickerProps extends Pick<\n VariantProps<typeof triggerVariants>,\n 'size'\n> {\n /** Current datetime — controlled. */\n value?: Date;\n /** Default datetime — uncontrolled. */\n defaultValue?: Date;\n /** Called when the datetime changes. */\n onChange?: (date: Date | undefined) => void;\n /** Timezone — IANA string, 'local', or 'utc'. */\n timezone?: string;\n /** Show timezone annotation. Defaults to true when tz differs from browser. */\n showTimezone?: boolean;\n /** Minimum datetime. */\n minDate?: Date;\n /** Maximum datetime. */\n maxDate?: Date;\n /** Force 12h/24h mode. */\n hour12?: boolean;\n /** Minute step for TimePicker. */\n minuteStep?: 1 | 5 | 10 | 15 | 30;\n /** Component size. */\n size?: 'sm' | 'md' | 'lg';\n /** Disabled state. */\n disabled?: boolean;\n /** Placeholder text. */\n placeholder?: string;\n /** Additional class names. */\n className?: string;\n /** id override. */\n id?: string;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------------- */\n\nexport const DateTimePicker = forwardRef<\n DateTimePickerHandle,\n DateTimePickerProps\n>(\n (\n {\n value,\n defaultValue,\n onChange,\n timezone,\n showTimezone: showTimezoneProp,\n minDate,\n maxDate,\n hour12,\n minuteStep = 1,\n size = 'md',\n disabled,\n placeholder,\n className,\n id,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const ctx = useFormField();\n const effectiveId = id ?? ctx.id;\n const effectiveDisabled = ctx.disabled || disabled;\n const effectiveTone = ctx.invalid ? 'error' : 'default';\n\n const locale = getDateFnsLocale(i18n.language);\n const placeholderText =\n placeholder ??\n t('inputs.dateTimePicker.placeholder', 'Select date and time');\n const applyLabel = t('inputs.dateTimePicker.apply', 'Apply');\n const outOfRangeLabel = t(\n 'inputs.dateTimePicker.outOfRange',\n 'Date/time is out of allowed range',\n );\n\n const showTimezone =\n showTimezoneProp !== undefined\n ? showTimezoneProp\n : tzDiffersFromBrowser(timezone);\n const timezoneLabel = showTimezone\n ? getTimezoneLabel(i18n.language, timezone)\n : '';\n\n const [currentValueRaw, setDateTimeValue] = useControllableState<\n Date | undefined\n >({\n value,\n defaultValue,\n onChange,\n });\n const currentValue = currentValueRaw;\n\n // Draft state while popover is open\n const [draftDate, setDraftDate] = useState<Date | undefined>(currentValue);\n const [open, setOpen] = useState(false);\n const [month, setMonth] = useState<Date>(currentValue ?? new Date());\n const [rangeError, setRangeError] = useState(false);\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n const emit = useCallback(\n (date: Date | undefined) => {\n setDateTimeValue(date);\n },\n [setDateTimeValue],\n );\n\n const disabledMatcher = buildDisabledMatcher(minDate, maxDate);\n\n /** Check if a full datetime is within range. */\n const isInRange = useCallback(\n (date: Date): boolean => {\n if (minDate && isBefore(date, minDate)) return false;\n if (maxDate && isAfter(date, maxDate)) return false;\n return true;\n },\n [minDate, maxDate],\n );\n\n // Sync draft when popover opens\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen) {\n setDraftDate(currentValue ?? new Date());\n setMonth(currentValue ?? new Date());\n setRangeError(false);\n }\n setOpen(nextOpen);\n };\n\n const handleDaySelect = (date: Date | undefined) => {\n if (!date) return;\n const prev = draftDate ?? new Date();\n const merged = setMinutes(\n setHours(date, prev.getHours()),\n prev.getMinutes(),\n );\n setDraftDate(merged);\n setRangeError(!isInRange(merged));\n };\n\n const handleTimeChange = (time: TimeValue) => {\n const prev = draftDate ?? new Date();\n const merged = setMinutes(setHours(prev, time.hours), time.minutes);\n setDraftDate(merged);\n setRangeError(!isInRange(merged));\n };\n\n const handleApply = () => {\n if (!draftDate) return;\n if (!isInRange(draftDate)) {\n setRangeError(true);\n return;\n }\n emit(draftDate);\n setOpen(false);\n triggerRef.current?.focus();\n };\n\n // Format display text\n const displayText = currentValue\n ? fnsFormat(currentValue, 'MMM d, yyyy HH:mm', { locale })\n : '';\n\n const calendarLabel = t('inputs.datePicker.gridLabel', 'Calendar');\n const timeLabel = t('inputs.timePicker.groupLabel', 'Time');\n\n const handle = useMemo<DateTimePickerHandle>(\n () => ({\n getValue: () => currentValue,\n setValue: (date) => emit(date),\n clear: () => emit(undefined),\n isOpen: () => open,\n // Mirror the trigger's open behaviour so draft state seeds correctly.\n open: () => {\n setDraftDate(currentValue ?? new Date());\n setMonth(currentValue ?? new Date());\n setRangeError(false);\n setOpen(true);\n },\n close: () => setOpen(false),\n }),\n [currentValue, emit, open],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(dateTimePickerAgent, handle, effectiveId);\n\n return (\n <Popover.Root open={open} onOpenChange={handleOpenChange}>\n <div\n className={className}\n data-component=\"date-time-picker\"\n data-component-id={effectiveId}\n >\n <Popover.Trigger asChild disabled={effectiveDisabled}>\n {/* eslint-disable-next-line jsx-a11y/role-supports-aria-props -- FormField propagates invalid state to its trigger; users rely on this for validation announcements */}\n <button\n ref={triggerRef}\n id={effectiveId}\n type=\"button\"\n disabled={effectiveDisabled}\n aria-describedby={ctx.describedBy || undefined}\n aria-invalid={ctx.invalid || undefined}\n // `aria-required` is not valid on `<button>` per ARIA 1.2 — the\n // FormField label's visible asterisk + `aria-describedby` link\n // communicate the required state instead.\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n className={triggerVariants({ size, tone: effectiveTone })}\n >\n <span\n className={\n displayText\n ? 'ds:text-foreground'\n : 'ds:text-muted-foreground'\n }\n >\n {displayText || placeholderText}\n </span>\n <span\n aria-hidden=\"true\"\n className={calendarIconVariants({ size })}\n >\n <Calendar />\n </span>\n </button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n sideOffset={4}\n align=\"start\"\n className={popoverContentVariants()}\n >\n <div className=\"ds:flex ds:flex-col ds:sm:flex-row ds:gap-[var(--spacing-md)]\">\n {/* Calendar region */}\n <div role=\"region\" aria-label={calendarLabel}>\n <DayPicker\n mode=\"single\"\n selected={draftDate}\n onSelect={handleDaySelect}\n month={month}\n onMonthChange={setMonth}\n disabled={disabledMatcher}\n locale={locale}\n showOutsideDays\n fixedWeeks\n components={{ Chevron: CalendarChevron }}\n />\n </div>\n\n {/* Time + Apply region */}\n <div\n role=\"region\"\n aria-label={timeLabel}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:sm:border-s ds:sm:border-border ds:sm:ps-[var(--spacing-md)] ds:min-w-[10rem]\"\n >\n <TimePicker\n value={\n draftDate\n ? {\n hours: draftDate.getHours(),\n minutes: draftDate.getMinutes(),\n }\n : { hours: 0, minutes: 0 }\n }\n onChange={handleTimeChange}\n hour12={hour12}\n minuteStep={minuteStep}\n size={size}\n />\n\n {/* Timezone annotation */}\n {timezoneLabel ? (\n <span className=\"type-meta ds:text-muted-foreground\">\n {timezoneLabel}\n </span>\n ) : null}\n\n {/* Range error */}\n {rangeError ? (\n <span\n role=\"alert\"\n className=\"type-meta ds:text-destructive\"\n >\n {outOfRangeLabel}\n </span>\n ) : null}\n\n {/* Apply button */}\n <button\n type=\"button\"\n onClick={handleApply}\n disabled={!draftDate || rangeError}\n className={applyButtonVariants({ size })}\n >\n {applyLabel}\n </button>\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </div>\n </Popover.Root>\n );\n },\n);\n\nDateTimePicker.displayName = 'DateTimePicker';\n"],"names":["setHours","date","hours","options","_date","toDate","setMinutes","minutes","date_","dateTimePickerAgent","handle","_a","args","getTimezoneLabel","locale","timezone","opts","p","tzDiffersFromBrowser","browserTz","applyButtonVariants","cva","DateTimePicker","forwardRef","value","defaultValue","onChange","showTimezoneProp","minDate","maxDate","hour12","minuteStep","size","disabled","placeholder","className","id","ref","t","i18n","useTranslation","ctx","useFormField","effectiveId","effectiveDisabled","effectiveTone","getDateFnsLocale","placeholderText","applyLabel","outOfRangeLabel","timezoneLabel","currentValueRaw","setDateTimeValue","useControllableState","currentValue","draftDate","setDraftDate","useState","open","setOpen","month","setMonth","rangeError","setRangeError","triggerRef","useRef","emit","useCallback","disabledMatcher","buildDisabledMatcher","isInRange","isBefore","isAfter","handleOpenChange","nextOpen","handleDaySelect","prev","merged","handleTimeChange","time","handleApply","displayText","fnsFormat","calendarLabel","timeLabel","useMemo","useImperativeHandle","useAgentRegistration","Popover","jsxs","jsx","triggerVariants","calendarIconVariants","Calendar","popoverContentVariants","DayPicker","CalendarChevron","TimePicker"],"mappings":"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","x_google_ignoreList":[0,1]}
|