@optimum-intelligence/opti-ui 0.0.0-stage → 0.2.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/LICENSE +23 -0
- package/README.md +161 -2
- package/dist/components/accordion/Accordion.d.ts +17 -0
- package/dist/components/accordion/Accordion.js +204 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/alert/Alert.d.ts +18 -0
- package/dist/components/alert/Alert.js +164 -0
- package/dist/components/alert/Alert.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +97 -0
- package/dist/components/app-shell/AppShell.js +689 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +21 -0
- package/dist/components/avatar/Avatar.js +190 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +16 -0
- package/dist/components/badge/Badge.js +94 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/button/Button.d.ts +23 -0
- package/dist/components/button/Button.js +159 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/calendar/Calendar.d.ts +59 -0
- package/dist/components/calendar/Calendar.js +709 -0
- package/dist/components/calendar/Calendar.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +32 -0
- package/dist/components/calendar/date-utils.js +112 -0
- package/dist/components/calendar/date-utils.js.map +1 -0
- package/dist/components/card/Card.d.ts +42 -0
- package/dist/components/card/Card.js +82 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/choice/Choice.d.ts +32 -0
- package/dist/components/choice/Choice.js +371 -0
- package/dist/components/choice/Choice.js.map +1 -0
- package/dist/components/collapsible/Collapsible.d.ts +15 -0
- package/dist/components/collapsible/Collapsible.js +155 -0
- package/dist/components/collapsible/Collapsible.js.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +68 -0
- package/dist/components/combobox/Combobox.js +752 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/command-palette/CommandPalette.d.ts +52 -0
- package/dist/components/command-palette/CommandPalette.js +328 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -0
- package/dist/components/data-table/DataTable.d.ts +111 -0
- package/dist/components/data-table/DataTable.js +444 -0
- package/dist/components/data-table/DataTable.js.map +1 -0
- package/dist/components/date-picker/DatePicker.d.ts +50 -0
- package/dist/components/date-picker/DatePicker.js +485 -0
- package/dist/components/date-picker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
- package/dist/components/date-picker/DateRangePicker.js +339 -0
- package/dist/components/date-picker/DateRangePicker.js.map +1 -0
- package/dist/components/date-picker/PickerField.d.ts +38 -0
- package/dist/components/date-picker/PickerField.js +238 -0
- package/dist/components/date-picker/PickerField.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +70 -0
- package/dist/components/dialog/Dialog.js +354 -0
- package/dist/components/dialog/Dialog.js.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +39 -0
- package/dist/components/drawer/Drawer.js +225 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/empty-state/EmptyState.d.ts +12 -0
- package/dist/components/empty-state/EmptyState.js +116 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/field/Field.d.ts +36 -0
- package/dist/components/field/Field.js +337 -0
- package/dist/components/field/Field.js.map +1 -0
- package/dist/components/file-upload/FileUpload.d.ts +91 -0
- package/dist/components/file-upload/FileUpload.js +714 -0
- package/dist/components/file-upload/FileUpload.js.map +1 -0
- package/dist/components/input/Input.d.ts +49 -0
- package/dist/components/input/Input.js +538 -0
- package/dist/components/input/Input.js.map +1 -0
- package/dist/components/link/Link.d.ts +17 -0
- package/dist/components/link/Link.js +91 -0
- package/dist/components/link/Link.js.map +1 -0
- package/dist/components/menu/Menu.d.ts +79 -0
- package/dist/components/menu/Menu.js +615 -0
- package/dist/components/menu/Menu.js.map +1 -0
- package/dist/components/number-field/NumberField.d.ts +16 -0
- package/dist/components/number-field/NumberField.js +188 -0
- package/dist/components/number-field/NumberField.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +34 -0
- package/dist/components/pagination/Pagination.js +244 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +22 -0
- package/dist/components/popover/Popover.js +186 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/preview-card/PreviewCard.d.ts +20 -0
- package/dist/components/preview-card/PreviewCard.js +114 -0
- package/dist/components/preview-card/PreviewCard.js.map +1 -0
- package/dist/components/progress/Progress.d.ts +20 -0
- package/dist/components/progress/Progress.js +169 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
- package/dist/components/scroll-area/ScrollArea.js +112 -0
- package/dist/components/scroll-area/ScrollArea.js.map +1 -0
- package/dist/components/search-input/SearchInput.d.ts +14 -0
- package/dist/components/search-input/SearchInput.js +114 -0
- package/dist/components/search-input/SearchInput.js.map +1 -0
- package/dist/components/select/Select.d.ts +66 -0
- package/dist/components/select/Select.js +601 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/separator/Separator.d.ts +4 -0
- package/dist/components/separator/Separator.js +46 -0
- package/dist/components/separator/Separator.js.map +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +16 -0
- package/dist/components/skeleton/Skeleton.js +135 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +11 -0
- package/dist/components/slider/Slider.js +107 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +9 -0
- package/dist/components/spinner/Spinner.js +78 -0
- package/dist/components/spinner/Spinner.js.map +1 -0
- package/dist/components/stack/Stack.d.ts +23 -0
- package/dist/components/stack/Stack.js +79 -0
- package/dist/components/stack/Stack.js.map +1 -0
- package/dist/components/stat-card/StatCard.d.ts +22 -0
- package/dist/components/stat-card/StatCard.js +153 -0
- package/dist/components/stat-card/StatCard.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +30 -0
- package/dist/components/stepper/Stepper.js +131 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/table/Table.d.ts +53 -0
- package/dist/components/table/Table.js +221 -0
- package/dist/components/table/Table.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +19 -0
- package/dist/components/tabs/Tabs.js +183 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tag/Tag.d.ts +22 -0
- package/dist/components/tag/Tag.js +121 -0
- package/dist/components/tag/Tag.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +34 -0
- package/dist/components/toast/Toast.js +187 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toggle/Toggle.d.ts +31 -0
- package/dist/components/toggle/Toggle.js +197 -0
- package/dist/components/toggle/Toggle.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +21 -0
- package/dist/components/toolbar/Toolbar.js +239 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +33 -0
- package/dist/components/tooltip/Tooltip.js +182 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/typography/Typography.d.ts +32 -0
- package/dist/components/typography/Typography.js +183 -0
- package/dist/components/typography/Typography.js.map +1 -0
- package/dist/fonts.css +3 -0
- package/dist/icons/index.d.ts +125 -0
- package/dist/icons/index.js +174 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.js +56 -0
- package/dist/opti-ui.css +5365 -0
- package/dist/theme/ThemeProvider.d.ts +22 -0
- package/dist/theme/ThemeProvider.js +115 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/utils/cx.d.ts +10 -0
- package/dist/utils/cx.js +18 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/portal.d.ts +8 -0
- package/dist/utils/portal.js +16 -0
- package/dist/utils/portal.js.map +1 -0
- package/dist/utils/primitive.d.ts +13 -0
- package/dist/utils/primitive.js +61 -0
- package/dist/utils/primitive.js.map +1 -0
- package/dist/utils/search.d.ts +4 -0
- package/dist/utils/search.js +15 -0
- package/dist/utils/search.js.map +1 -0
- package/package.json +71 -4
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx } from "../../utils/cx.js";
|
|
3
|
+
import { Button } from "../button/Button.js";
|
|
4
|
+
import { clampDate, datePart, formatDate, toRange } from "../calendar/date-utils.js";
|
|
5
|
+
import { RangeCalendar } from "../calendar/Calendar.js";
|
|
6
|
+
import { PickerField, useOpenState } from "./PickerField.js";
|
|
7
|
+
import { c } from "react/compiler-runtime";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/date-picker/DateRangePicker.tsx
|
|
11
|
+
var defaultLabels = {
|
|
12
|
+
clear: "Clear",
|
|
13
|
+
presets: "Presets"
|
|
14
|
+
};
|
|
15
|
+
function formatDisplay(range) {
|
|
16
|
+
return `${formatDate(range.start)} – ${formatDate(range.end)}`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Date range field with a calendar popover and optional presets. Values are
|
|
20
|
+
* `{ start, end }` ISO dates (`"2026-03-09"`), both inclusive.
|
|
21
|
+
*/
|
|
22
|
+
function DateRangePicker(t0) {
|
|
23
|
+
const $ = c(104);
|
|
24
|
+
let clearable;
|
|
25
|
+
let contentProps;
|
|
26
|
+
let defaultMonth;
|
|
27
|
+
let endName;
|
|
28
|
+
let field;
|
|
29
|
+
let formatValue;
|
|
30
|
+
let isDateDisabled;
|
|
31
|
+
let labels;
|
|
32
|
+
let locale;
|
|
33
|
+
let max;
|
|
34
|
+
let min;
|
|
35
|
+
let onValueChange;
|
|
36
|
+
let presets;
|
|
37
|
+
let startName;
|
|
38
|
+
let t1;
|
|
39
|
+
let t2;
|
|
40
|
+
let t3;
|
|
41
|
+
let value;
|
|
42
|
+
let weekStartsOn;
|
|
43
|
+
if ($[0] !== t0) {
|
|
44
|
+
({value, defaultValue: t1, onValueChange, min, max, isDateDisabled, defaultMonth, locale, weekStartsOn, numberOfMonths: t2, presets, startName, endName, placeholder: t3, clearable, formatValue, labels, contentProps, ...field} = t0);
|
|
45
|
+
$[0] = t0;
|
|
46
|
+
$[1] = clearable;
|
|
47
|
+
$[2] = contentProps;
|
|
48
|
+
$[3] = defaultMonth;
|
|
49
|
+
$[4] = endName;
|
|
50
|
+
$[5] = field;
|
|
51
|
+
$[6] = formatValue;
|
|
52
|
+
$[7] = isDateDisabled;
|
|
53
|
+
$[8] = labels;
|
|
54
|
+
$[9] = locale;
|
|
55
|
+
$[10] = max;
|
|
56
|
+
$[11] = min;
|
|
57
|
+
$[12] = onValueChange;
|
|
58
|
+
$[13] = presets;
|
|
59
|
+
$[14] = startName;
|
|
60
|
+
$[15] = t1;
|
|
61
|
+
$[16] = t2;
|
|
62
|
+
$[17] = t3;
|
|
63
|
+
$[18] = value;
|
|
64
|
+
$[19] = weekStartsOn;
|
|
65
|
+
} else {
|
|
66
|
+
clearable = $[1];
|
|
67
|
+
contentProps = $[2];
|
|
68
|
+
defaultMonth = $[3];
|
|
69
|
+
endName = $[4];
|
|
70
|
+
field = $[5];
|
|
71
|
+
formatValue = $[6];
|
|
72
|
+
isDateDisabled = $[7];
|
|
73
|
+
labels = $[8];
|
|
74
|
+
locale = $[9];
|
|
75
|
+
max = $[10];
|
|
76
|
+
min = $[11];
|
|
77
|
+
onValueChange = $[12];
|
|
78
|
+
presets = $[13];
|
|
79
|
+
startName = $[14];
|
|
80
|
+
t1 = $[15];
|
|
81
|
+
t2 = $[16];
|
|
82
|
+
t3 = $[17];
|
|
83
|
+
value = $[18];
|
|
84
|
+
weekStartsOn = $[19];
|
|
85
|
+
}
|
|
86
|
+
const defaultValue = t1 === void 0 ? null : t1;
|
|
87
|
+
const numberOfMonths = t2 === void 0 ? 2 : t2;
|
|
88
|
+
const placeholder = t3 === void 0 ? "Select dates" : t3;
|
|
89
|
+
let t4;
|
|
90
|
+
if ($[20] !== labels) {
|
|
91
|
+
t4 = {
|
|
92
|
+
...defaultLabels,
|
|
93
|
+
...labels
|
|
94
|
+
};
|
|
95
|
+
$[20] = labels;
|
|
96
|
+
$[21] = t4;
|
|
97
|
+
} else t4 = $[21];
|
|
98
|
+
const text = t4;
|
|
99
|
+
let t5;
|
|
100
|
+
if ($[22] !== defaultValue?.end || $[23] !== defaultValue?.start) {
|
|
101
|
+
t5 = () => toRange(defaultValue?.start, defaultValue?.end);
|
|
102
|
+
$[22] = defaultValue?.end;
|
|
103
|
+
$[23] = defaultValue?.start;
|
|
104
|
+
$[24] = t5;
|
|
105
|
+
} else t5 = $[24];
|
|
106
|
+
const [inner, setInner] = React.useState(t5);
|
|
107
|
+
let t6;
|
|
108
|
+
if ($[25] !== inner || $[26] !== value) {
|
|
109
|
+
t6 = value === void 0 ? inner : toRange(value?.start, value?.end);
|
|
110
|
+
$[25] = inner;
|
|
111
|
+
$[26] = value;
|
|
112
|
+
$[27] = t6;
|
|
113
|
+
} else t6 = $[27];
|
|
114
|
+
const current = t6;
|
|
115
|
+
const [open, setOpen] = useOpenState(field);
|
|
116
|
+
let T0;
|
|
117
|
+
let commit;
|
|
118
|
+
let lower;
|
|
119
|
+
let t10;
|
|
120
|
+
let t11;
|
|
121
|
+
let t12;
|
|
122
|
+
let t13;
|
|
123
|
+
let t14;
|
|
124
|
+
let t15;
|
|
125
|
+
let t7;
|
|
126
|
+
let t8;
|
|
127
|
+
let t9;
|
|
128
|
+
let upper;
|
|
129
|
+
if ($[28] !== contentProps || $[29] !== current || $[30] !== endName || $[31] !== field || $[32] !== formatValue || $[33] !== max || $[34] !== min || $[35] !== onValueChange || $[36] !== open || $[37] !== placeholder || $[38] !== presets || $[39] !== setOpen || $[40] !== startName || $[41] !== text) {
|
|
130
|
+
[lower, upper] = [datePart(min) ?? void 0, datePart(max) ?? void 0];
|
|
131
|
+
commit = (next) => {
|
|
132
|
+
const bounded = next && toRange(clampDate(next.start, lower, upper), clampDate(next.end, lower, upper));
|
|
133
|
+
setInner(bounded);
|
|
134
|
+
onValueChange?.(bounded);
|
|
135
|
+
setOpen(false);
|
|
136
|
+
};
|
|
137
|
+
T0 = PickerField;
|
|
138
|
+
t9 = field;
|
|
139
|
+
t10 = open;
|
|
140
|
+
t11 = setOpen;
|
|
141
|
+
t12 = placeholder;
|
|
142
|
+
if ($[55] !== current || $[56] !== formatValue) {
|
|
143
|
+
t13 = current ? formatValue?.(current) ?? formatDisplay(current) : null;
|
|
144
|
+
$[55] = current;
|
|
145
|
+
$[56] = formatValue;
|
|
146
|
+
$[57] = t13;
|
|
147
|
+
} else t13 = $[57];
|
|
148
|
+
const t16 = typeof contentProps?.className === "string" && contentProps.className;
|
|
149
|
+
let t17;
|
|
150
|
+
if ($[58] !== t16) {
|
|
151
|
+
t17 = cx("oui-date-range-picker__popup", t16);
|
|
152
|
+
$[58] = t16;
|
|
153
|
+
$[59] = t17;
|
|
154
|
+
} else t17 = $[59];
|
|
155
|
+
if ($[60] !== contentProps || $[61] !== t17) {
|
|
156
|
+
t14 = {
|
|
157
|
+
...contentProps,
|
|
158
|
+
className: t17
|
|
159
|
+
};
|
|
160
|
+
$[60] = contentProps;
|
|
161
|
+
$[61] = t17;
|
|
162
|
+
$[62] = t14;
|
|
163
|
+
} else t14 = $[62];
|
|
164
|
+
let t18;
|
|
165
|
+
if ($[63] !== current?.start || $[64] !== startName) {
|
|
166
|
+
t18 = startName && /* @__PURE__ */ jsx("input", {
|
|
167
|
+
type: "hidden",
|
|
168
|
+
name: startName,
|
|
169
|
+
value: current?.start ?? ""
|
|
170
|
+
});
|
|
171
|
+
$[63] = current?.start;
|
|
172
|
+
$[64] = startName;
|
|
173
|
+
$[65] = t18;
|
|
174
|
+
} else t18 = $[65];
|
|
175
|
+
let t19;
|
|
176
|
+
if ($[66] !== current?.end || $[67] !== endName) {
|
|
177
|
+
t19 = endName && /* @__PURE__ */ jsx("input", {
|
|
178
|
+
type: "hidden",
|
|
179
|
+
name: endName,
|
|
180
|
+
value: current?.end ?? ""
|
|
181
|
+
});
|
|
182
|
+
$[66] = current?.end;
|
|
183
|
+
$[67] = endName;
|
|
184
|
+
$[68] = t19;
|
|
185
|
+
} else t19 = $[68];
|
|
186
|
+
if ($[69] !== t18 || $[70] !== t19) {
|
|
187
|
+
t15 = /* @__PURE__ */ jsxs(Fragment, { children: [t18, t19] });
|
|
188
|
+
$[69] = t18;
|
|
189
|
+
$[70] = t19;
|
|
190
|
+
$[71] = t15;
|
|
191
|
+
} else t15 = $[71];
|
|
192
|
+
t7 = "oui-date-range-picker__body";
|
|
193
|
+
t8 = presets && presets.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
194
|
+
role: "group",
|
|
195
|
+
"aria-label": text.presets,
|
|
196
|
+
className: "oui-date-range-picker__presets",
|
|
197
|
+
children: presets.map((preset, index) => {
|
|
198
|
+
const range = toRange(preset.value.start, preset.value.end);
|
|
199
|
+
const active = Boolean(range && current && range.start === current.start && range.end === current.end);
|
|
200
|
+
return /* @__PURE__ */ jsx("button", {
|
|
201
|
+
type: "button",
|
|
202
|
+
className: "oui-date-range-picker__preset",
|
|
203
|
+
"aria-pressed": active,
|
|
204
|
+
"data-active": active ? "" : void 0,
|
|
205
|
+
disabled: !range,
|
|
206
|
+
onClick: () => commit(range),
|
|
207
|
+
children: preset.label
|
|
208
|
+
}, index);
|
|
209
|
+
})
|
|
210
|
+
});
|
|
211
|
+
$[28] = contentProps;
|
|
212
|
+
$[29] = current;
|
|
213
|
+
$[30] = endName;
|
|
214
|
+
$[31] = field;
|
|
215
|
+
$[32] = formatValue;
|
|
216
|
+
$[33] = max;
|
|
217
|
+
$[34] = min;
|
|
218
|
+
$[35] = onValueChange;
|
|
219
|
+
$[36] = open;
|
|
220
|
+
$[37] = placeholder;
|
|
221
|
+
$[38] = presets;
|
|
222
|
+
$[39] = setOpen;
|
|
223
|
+
$[40] = startName;
|
|
224
|
+
$[41] = text;
|
|
225
|
+
$[42] = T0;
|
|
226
|
+
$[43] = commit;
|
|
227
|
+
$[44] = lower;
|
|
228
|
+
$[45] = t10;
|
|
229
|
+
$[46] = t11;
|
|
230
|
+
$[47] = t12;
|
|
231
|
+
$[48] = t13;
|
|
232
|
+
$[49] = t14;
|
|
233
|
+
$[50] = t15;
|
|
234
|
+
$[51] = t7;
|
|
235
|
+
$[52] = t8;
|
|
236
|
+
$[53] = t9;
|
|
237
|
+
$[54] = upper;
|
|
238
|
+
} else {
|
|
239
|
+
T0 = $[42];
|
|
240
|
+
commit = $[43];
|
|
241
|
+
lower = $[44];
|
|
242
|
+
t10 = $[45];
|
|
243
|
+
t11 = $[46];
|
|
244
|
+
t12 = $[47];
|
|
245
|
+
t13 = $[48];
|
|
246
|
+
t14 = $[49];
|
|
247
|
+
t15 = $[50];
|
|
248
|
+
t7 = $[51];
|
|
249
|
+
t8 = $[52];
|
|
250
|
+
t9 = $[53];
|
|
251
|
+
upper = $[54];
|
|
252
|
+
}
|
|
253
|
+
let t16;
|
|
254
|
+
if ($[72] !== commit || $[73] !== current || $[74] !== defaultMonth || $[75] !== isDateDisabled || $[76] !== labels || $[77] !== locale || $[78] !== lower || $[79] !== numberOfMonths || $[80] !== upper || $[81] !== weekStartsOn) {
|
|
255
|
+
t16 = /* @__PURE__ */ jsx(RangeCalendar, {
|
|
256
|
+
value: current,
|
|
257
|
+
onValueChange: commit,
|
|
258
|
+
min: lower,
|
|
259
|
+
max: upper,
|
|
260
|
+
isDateDisabled,
|
|
261
|
+
defaultMonth,
|
|
262
|
+
locale,
|
|
263
|
+
weekStartsOn,
|
|
264
|
+
numberOfMonths,
|
|
265
|
+
labels
|
|
266
|
+
});
|
|
267
|
+
$[72] = commit;
|
|
268
|
+
$[73] = current;
|
|
269
|
+
$[74] = defaultMonth;
|
|
270
|
+
$[75] = isDateDisabled;
|
|
271
|
+
$[76] = labels;
|
|
272
|
+
$[77] = locale;
|
|
273
|
+
$[78] = lower;
|
|
274
|
+
$[79] = numberOfMonths;
|
|
275
|
+
$[80] = upper;
|
|
276
|
+
$[81] = weekStartsOn;
|
|
277
|
+
$[82] = t16;
|
|
278
|
+
} else t16 = $[82];
|
|
279
|
+
let t17;
|
|
280
|
+
if ($[83] !== t16 || $[84] !== t7 || $[85] !== t8) {
|
|
281
|
+
t17 = /* @__PURE__ */ jsxs("div", {
|
|
282
|
+
className: t7,
|
|
283
|
+
children: [t8, t16]
|
|
284
|
+
});
|
|
285
|
+
$[83] = t16;
|
|
286
|
+
$[84] = t7;
|
|
287
|
+
$[85] = t8;
|
|
288
|
+
$[86] = t17;
|
|
289
|
+
} else t17 = $[86];
|
|
290
|
+
let t18;
|
|
291
|
+
if ($[87] !== clearable || $[88] !== commit || $[89] !== current || $[90] !== field || $[91] !== text) {
|
|
292
|
+
t18 = (clearable ?? !field.required) && /* @__PURE__ */ jsx("div", {
|
|
293
|
+
className: "oui-date-picker__footer",
|
|
294
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
295
|
+
size: "sm",
|
|
296
|
+
variant: "ghost",
|
|
297
|
+
shape: "rounded",
|
|
298
|
+
disabled: !current,
|
|
299
|
+
onClick: () => commit(null),
|
|
300
|
+
children: text.clear
|
|
301
|
+
})
|
|
302
|
+
});
|
|
303
|
+
$[87] = clearable;
|
|
304
|
+
$[88] = commit;
|
|
305
|
+
$[89] = current;
|
|
306
|
+
$[90] = field;
|
|
307
|
+
$[91] = text;
|
|
308
|
+
$[92] = t18;
|
|
309
|
+
} else t18 = $[92];
|
|
310
|
+
let t19;
|
|
311
|
+
if ($[93] !== T0 || $[94] !== t10 || $[95] !== t11 || $[96] !== t12 || $[97] !== t13 || $[98] !== t14 || $[99] !== t15 || $[100] !== t17 || $[101] !== t18 || $[102] !== t9) {
|
|
312
|
+
t19 = /* @__PURE__ */ jsxs(T0, {
|
|
313
|
+
...t9,
|
|
314
|
+
open: t10,
|
|
315
|
+
onOpenChange: t11,
|
|
316
|
+
placeholder: t12,
|
|
317
|
+
display: t13,
|
|
318
|
+
contentProps: t14,
|
|
319
|
+
inputs: t15,
|
|
320
|
+
children: [t17, t18]
|
|
321
|
+
});
|
|
322
|
+
$[93] = T0;
|
|
323
|
+
$[94] = t10;
|
|
324
|
+
$[95] = t11;
|
|
325
|
+
$[96] = t12;
|
|
326
|
+
$[97] = t13;
|
|
327
|
+
$[98] = t14;
|
|
328
|
+
$[99] = t15;
|
|
329
|
+
$[100] = t17;
|
|
330
|
+
$[101] = t18;
|
|
331
|
+
$[102] = t9;
|
|
332
|
+
$[103] = t19;
|
|
333
|
+
} else t19 = $[103];
|
|
334
|
+
return t19;
|
|
335
|
+
}
|
|
336
|
+
//#endregion
|
|
337
|
+
export { DateRangePicker };
|
|
338
|
+
|
|
339
|
+
//# sourceMappingURL=DateRangePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateRangePicker.js","names":["React","cx","Button","RangeCalendar","CalendarLabels","DateRange","RangeCalendarProps","clampDate","datePart","formatDate","toRange","PickerField","useOpenState","PickerFieldProps","DateRangePickerLabels","clear","presets","defaultLabels","Omit","DateRangePreset","label","ReactNode","value","DateRangePickerProps","Pick","defaultValue","onValueChange","min","max","startName","endName","clearable","formatValue","labels","Partial","formatDisplay","range","start","end","DateRangePicker","t0","$","_c","contentProps","defaultMonth","field","isDateDisabled","locale","t1","t2","t3","weekStartsOn","numberOfMonths","placeholder","undefined","t4","text","t5","inner","setInner","useState","t6","current","open","setOpen","T0","commit","lower","t10","t11","t12","t13","t14","t15","t7","t8","t9","upper","next","bounded","t16","className","t17","t18","t19","length","map","preset","index","active","Boolean","required","_c","_Fragment"],"sources":["../../../src/components/date-picker/DateRangePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Button } from '../button/Button';\nimport { RangeCalendar, type CalendarLabels, type DateRange, type RangeCalendarProps } from '../calendar/Calendar';\nimport { clampDate, datePart, formatDate, toRange } from '../calendar/date-utils';\nimport { PickerField, useOpenState, type PickerFieldProps } from './PickerField';\n\nexport interface DateRangePickerLabels extends CalendarLabels {\n clear: string;\n presets: string;\n}\n\nconst defaultLabels: Omit<DateRangePickerLabels, keyof CalendarLabels> = {\n clear: 'Clear',\n presets: 'Presets',\n};\n\nexport interface DateRangePreset {\n label: React.ReactNode;\n value: DateRange;\n}\n\nexport interface DateRangePickerProps\n extends PickerFieldProps,\n Pick<RangeCalendarProps, 'isDateDisabled' | 'defaultMonth' | 'locale' | 'weekStartsOn' | 'numberOfMonths'> {\n /** Selected days as ISO dates; both ends are inclusive. */\n value?: DateRange | null;\n defaultValue?: DateRange | null;\n /** Called with the new range, or `null` when cleared. */\n onValueChange?: (value: DateRange | null) => void;\n /** Earliest allowed day. */\n min?: string;\n /** Latest allowed day. */\n max?: string;\n /** Shortcuts listed beside the calendar (\"Last 7 days\", \"This month\"…). */\n presets?: DateRangePreset[];\n /** Submits the first day with a form under this name. */\n startName?: string;\n /** Submits the last day with a form under this name. */\n endName?: string;\n /** Show the Clear action. Defaults to `true` unless `required`. */\n clearable?: boolean;\n /** Custom display text for the selected range. */\n formatValue?: (value: DateRange) => React.ReactNode;\n /** Override texts for localisation. */\n labels?: Partial<DateRangePickerLabels>;\n}\n\nfunction formatDisplay(range: DateRange): string {\n return `${formatDate(range.start)} – ${formatDate(range.end)}`;\n}\n\n/**\n * Date range field with a calendar popover and optional presets. Values are\n * `{ start, end }` ISO dates (`\"2026-03-09\"`), both inclusive.\n */\nexport function DateRangePicker({\n value,\n defaultValue = null,\n onValueChange,\n min,\n max,\n isDateDisabled,\n defaultMonth,\n locale,\n weekStartsOn,\n numberOfMonths = 2,\n presets,\n startName,\n endName,\n placeholder = 'Select dates',\n clearable,\n formatValue,\n labels,\n contentProps,\n ...field\n}: DateRangePickerProps) {\n const text = { ...defaultLabels, ...labels };\n const [inner, setInner] = React.useState(() => toRange(defaultValue?.start, defaultValue?.end));\n const current = value === undefined ? inner : toRange(value?.start, value?.end);\n const [open, setOpen] = useOpenState(field);\n const [lower, upper] = [datePart(min) ?? undefined, datePart(max) ?? undefined];\n\n const commit = (next: DateRange | null) => {\n const bounded = next && toRange(clampDate(next.start, lower, upper), clampDate(next.end, lower, upper));\n setInner(bounded);\n onValueChange?.(bounded);\n setOpen(false);\n };\n\n return (\n <PickerField\n {...field}\n open={open}\n onOpenChange={setOpen}\n placeholder={placeholder}\n display={current ? (formatValue?.(current) ?? formatDisplay(current)) : null}\n contentProps={{\n ...contentProps,\n className: cx('oui-date-range-picker__popup', typeof contentProps?.className === 'string' && contentProps.className),\n }}\n inputs={\n <>\n {startName && <input type=\"hidden\" name={startName} value={current?.start ?? ''} />}\n {endName && <input type=\"hidden\" name={endName} value={current?.end ?? ''} />}\n </>\n }\n >\n <div className=\"oui-date-range-picker__body\">\n {presets && presets.length > 0 && (\n <div role=\"group\" aria-label={text.presets} className=\"oui-date-range-picker__presets\">\n {presets.map((preset, index) => {\n const range = toRange(preset.value.start, preset.value.end);\n const active = Boolean(range && current && range.start === current.start && range.end === current.end);\n return (\n <button\n key={index}\n type=\"button\"\n className=\"oui-date-range-picker__preset\"\n aria-pressed={active}\n data-active={active ? '' : undefined}\n disabled={!range}\n onClick={() => commit(range)}\n >\n {preset.label}\n </button>\n );\n })}\n </div>\n )}\n <RangeCalendar\n value={current}\n onValueChange={commit}\n min={lower}\n max={upper}\n isDateDisabled={isDateDisabled}\n defaultMonth={defaultMonth}\n locale={locale}\n weekStartsOn={weekStartsOn}\n numberOfMonths={numberOfMonths}\n labels={labels}\n />\n </div>\n {(clearable ?? !field.required) && (\n <div className=\"oui-date-picker__footer\">\n <Button size=\"sm\" variant=\"ghost\" shape=\"rounded\" disabled={!current} onClick={() => commit(null)}>\n {text.clear}\n </Button>\n </div>\n )}\n </PickerField>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Popover as BasePopover } from '@base-ui/react/popover';
|
|
3
|
+
import { type PopoverContentProps } from '../popover/Popover';
|
|
4
|
+
import type { ControlSize } from '../input/Input';
|
|
5
|
+
/** Field props shared by the date pickers. */
|
|
6
|
+
export interface PickerFieldProps {
|
|
7
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
8
|
+
label?: React.ReactNode;
|
|
9
|
+
description?: React.ReactNode;
|
|
10
|
+
/** Error message. When set, the field is marked invalid. */
|
|
11
|
+
error?: React.ReactNode;
|
|
12
|
+
required?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
placeholder?: React.ReactNode;
|
|
15
|
+
size?: ControlSize;
|
|
16
|
+
open?: boolean;
|
|
17
|
+
defaultOpen?: boolean;
|
|
18
|
+
onOpenChange?: (open: boolean) => void;
|
|
19
|
+
id?: string;
|
|
20
|
+
className?: string;
|
|
21
|
+
/** Props for the trigger button (aria-*, data-*, onBlur…). */
|
|
22
|
+
triggerProps?: Omit<React.ComponentProps<typeof BasePopover.Trigger>, 'children' | 'disabled' | 'id'>;
|
|
23
|
+
contentProps?: Omit<PopoverContentProps, 'children'>;
|
|
24
|
+
}
|
|
25
|
+
export declare function useOpenState({ open, defaultOpen, onOpenChange }: PickerFieldProps): readonly [boolean, (next: boolean) => void];
|
|
26
|
+
interface PickerFieldShellProps extends Omit<PickerFieldProps, 'open' | 'defaultOpen' | 'onOpenChange'> {
|
|
27
|
+
open: boolean;
|
|
28
|
+
onOpenChange: (open: boolean) => void;
|
|
29
|
+
/** Text for the current value; `null` shows the placeholder. */
|
|
30
|
+
display: React.ReactNode | null;
|
|
31
|
+
/** Popover content. */
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
/** Hidden inputs that submit the value with a form. */
|
|
34
|
+
inputs?: React.ReactNode;
|
|
35
|
+
}
|
|
36
|
+
/** Label, trigger button, calendar popover, description and error of a date picker. */
|
|
37
|
+
export declare function PickerField({ label, description, error, required, disabled, placeholder, size, open, onOpenChange, id: idProp, className, triggerProps, contentProps, display, children, inputs, ref, }: PickerFieldShellProps): React.JSX.Element;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx } from "../../utils/cx.js";
|
|
3
|
+
import { CalendarIcon } from "../../icons/index.js";
|
|
4
|
+
import { Popover as Popover$1 } from "../popover/Popover.js";
|
|
5
|
+
import { c } from "react/compiler-runtime";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Popover } from "@base-ui/react/popover";
|
|
9
|
+
//#region src/components/date-picker/PickerField.tsx
|
|
10
|
+
function useOpenState(t0) {
|
|
11
|
+
const $ = c(5);
|
|
12
|
+
const { open, defaultOpen: t1, onOpenChange } = t0;
|
|
13
|
+
const defaultOpen = t1 === void 0 ? false : t1;
|
|
14
|
+
const [inner, setInner] = React.useState(defaultOpen);
|
|
15
|
+
let t2;
|
|
16
|
+
if ($[0] !== onOpenChange) {
|
|
17
|
+
t2 = (next) => {
|
|
18
|
+
setInner(next);
|
|
19
|
+
onOpenChange?.(next);
|
|
20
|
+
};
|
|
21
|
+
$[0] = onOpenChange;
|
|
22
|
+
$[1] = t2;
|
|
23
|
+
} else t2 = $[1];
|
|
24
|
+
const setOpen = t2;
|
|
25
|
+
const t3 = open ?? inner;
|
|
26
|
+
let t4;
|
|
27
|
+
if ($[2] !== setOpen || $[3] !== t3) {
|
|
28
|
+
t4 = [t3, setOpen];
|
|
29
|
+
$[2] = setOpen;
|
|
30
|
+
$[3] = t3;
|
|
31
|
+
$[4] = t4;
|
|
32
|
+
} else t4 = $[4];
|
|
33
|
+
return t4;
|
|
34
|
+
}
|
|
35
|
+
/** Label, trigger button, calendar popover, description and error of a date picker. */
|
|
36
|
+
function PickerField(t0) {
|
|
37
|
+
const $ = c(59);
|
|
38
|
+
const { label, description, error, required, disabled, placeholder, size: t1, open, onOpenChange, id: idProp, className, triggerProps, contentProps, display, children, inputs, ref } = t0;
|
|
39
|
+
const size = t1 === void 0 ? "md" : t1;
|
|
40
|
+
const generatedId = React.useId();
|
|
41
|
+
const id = idProp ?? generatedId;
|
|
42
|
+
const popupRef = React.useRef(null);
|
|
43
|
+
const errorId = error ? `${id}-error` : void 0;
|
|
44
|
+
let t2;
|
|
45
|
+
if ($[0] !== description || $[1] !== errorId || $[2] !== id) {
|
|
46
|
+
t2 = cx(description != null && `${id}-description`, errorId) || void 0;
|
|
47
|
+
$[0] = description;
|
|
48
|
+
$[1] = errorId;
|
|
49
|
+
$[2] = id;
|
|
50
|
+
$[3] = t2;
|
|
51
|
+
} else t2 = $[3];
|
|
52
|
+
const describedBy = t2;
|
|
53
|
+
let t3;
|
|
54
|
+
if ($[4] !== className) {
|
|
55
|
+
t3 = cx("oui-field", "oui-date-picker", className);
|
|
56
|
+
$[4] = className;
|
|
57
|
+
$[5] = t3;
|
|
58
|
+
} else t3 = $[5];
|
|
59
|
+
const t4 = disabled || void 0;
|
|
60
|
+
const t5 = error ? "" : void 0;
|
|
61
|
+
let t6;
|
|
62
|
+
if ($[6] !== id || $[7] !== label || $[8] !== required) {
|
|
63
|
+
t6 = label != null && /* @__PURE__ */ jsxs("label", {
|
|
64
|
+
id: `${id}-label`,
|
|
65
|
+
htmlFor: id,
|
|
66
|
+
className: "oui-field__label",
|
|
67
|
+
children: [label, required && /* @__PURE__ */ jsx("span", {
|
|
68
|
+
className: "oui-field__required",
|
|
69
|
+
"aria-hidden": true,
|
|
70
|
+
children: "*"
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
$[6] = id;
|
|
74
|
+
$[7] = label;
|
|
75
|
+
$[8] = required;
|
|
76
|
+
$[9] = t6;
|
|
77
|
+
} else t6 = $[9];
|
|
78
|
+
let t7;
|
|
79
|
+
if ($[10] !== onOpenChange) {
|
|
80
|
+
t7 = (next) => onOpenChange(next);
|
|
81
|
+
$[10] = onOpenChange;
|
|
82
|
+
$[11] = t7;
|
|
83
|
+
} else t7 = $[11];
|
|
84
|
+
const t8 = label != null ? `${id}-label ${id}-value` : void 0;
|
|
85
|
+
const t9 = required || void 0;
|
|
86
|
+
const t10 = error ? true : void 0;
|
|
87
|
+
const t11 = typeof triggerProps?.className === "string" && triggerProps.className;
|
|
88
|
+
let t12;
|
|
89
|
+
if ($[12] !== t11) {
|
|
90
|
+
t12 = cx("oui-date-picker__trigger", t11);
|
|
91
|
+
$[12] = t11;
|
|
92
|
+
$[13] = t12;
|
|
93
|
+
} else t12 = $[13];
|
|
94
|
+
const t13 = error ? "" : void 0;
|
|
95
|
+
const t14 = display == null ? "" : void 0;
|
|
96
|
+
const t15 = `${id}-value`;
|
|
97
|
+
const t16 = display ?? placeholder;
|
|
98
|
+
let t17;
|
|
99
|
+
if ($[14] !== t15 || $[15] !== t16) {
|
|
100
|
+
t17 = /* @__PURE__ */ jsx("span", {
|
|
101
|
+
id: t15,
|
|
102
|
+
className: "oui-date-picker__value",
|
|
103
|
+
children: t16
|
|
104
|
+
});
|
|
105
|
+
$[14] = t15;
|
|
106
|
+
$[15] = t16;
|
|
107
|
+
$[16] = t17;
|
|
108
|
+
} else t17 = $[16];
|
|
109
|
+
let t18;
|
|
110
|
+
if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
|
|
111
|
+
t18 = /* @__PURE__ */ jsx(CalendarIcon, {});
|
|
112
|
+
$[17] = t18;
|
|
113
|
+
} else t18 = $[17];
|
|
114
|
+
let t19;
|
|
115
|
+
if ($[18] !== describedBy || $[19] !== disabled || $[20] !== id || $[21] !== ref || $[22] !== size || $[23] !== t10 || $[24] !== t12 || $[25] !== t13 || $[26] !== t14 || $[27] !== t17 || $[28] !== t8 || $[29] !== t9 || $[30] !== triggerProps) {
|
|
116
|
+
t19 = /* @__PURE__ */ jsxs(Popover.Trigger, {
|
|
117
|
+
ref,
|
|
118
|
+
id,
|
|
119
|
+
disabled,
|
|
120
|
+
"aria-labelledby": t8,
|
|
121
|
+
"aria-describedby": describedBy,
|
|
122
|
+
"aria-required": t9,
|
|
123
|
+
"aria-invalid": t10,
|
|
124
|
+
...triggerProps,
|
|
125
|
+
className: t12,
|
|
126
|
+
"data-size": size,
|
|
127
|
+
"data-invalid": t13,
|
|
128
|
+
"data-placeholder": t14,
|
|
129
|
+
children: [t17, t18]
|
|
130
|
+
});
|
|
131
|
+
$[18] = describedBy;
|
|
132
|
+
$[19] = disabled;
|
|
133
|
+
$[20] = id;
|
|
134
|
+
$[21] = ref;
|
|
135
|
+
$[22] = size;
|
|
136
|
+
$[23] = t10;
|
|
137
|
+
$[24] = t12;
|
|
138
|
+
$[25] = t13;
|
|
139
|
+
$[26] = t14;
|
|
140
|
+
$[27] = t17;
|
|
141
|
+
$[28] = t8;
|
|
142
|
+
$[29] = t9;
|
|
143
|
+
$[30] = triggerProps;
|
|
144
|
+
$[31] = t19;
|
|
145
|
+
} else t19 = $[31];
|
|
146
|
+
let t20;
|
|
147
|
+
if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
|
|
148
|
+
t20 = () => popupRef.current?.querySelector(".oui-calendar__day[tabindex=\"0\"]") ?? true;
|
|
149
|
+
$[32] = t20;
|
|
150
|
+
} else t20 = $[32];
|
|
151
|
+
const t21 = typeof contentProps?.className === "string" && contentProps.className;
|
|
152
|
+
let t22;
|
|
153
|
+
if ($[33] !== t21) {
|
|
154
|
+
t22 = cx("oui-date-picker__popup", t21);
|
|
155
|
+
$[33] = t21;
|
|
156
|
+
$[34] = t22;
|
|
157
|
+
} else t22 = $[34];
|
|
158
|
+
let t23;
|
|
159
|
+
if ($[35] !== children || $[36] !== contentProps || $[37] !== t22) {
|
|
160
|
+
t23 = /* @__PURE__ */ jsx(Popover$1.Content, {
|
|
161
|
+
ref: popupRef,
|
|
162
|
+
align: "start",
|
|
163
|
+
sideOffset: 6,
|
|
164
|
+
initialFocus: t20,
|
|
165
|
+
...contentProps,
|
|
166
|
+
className: t22,
|
|
167
|
+
children
|
|
168
|
+
});
|
|
169
|
+
$[35] = children;
|
|
170
|
+
$[36] = contentProps;
|
|
171
|
+
$[37] = t22;
|
|
172
|
+
$[38] = t23;
|
|
173
|
+
} else t23 = $[38];
|
|
174
|
+
let t24;
|
|
175
|
+
if ($[39] !== open || $[40] !== t19 || $[41] !== t23 || $[42] !== t7) {
|
|
176
|
+
t24 = /* @__PURE__ */ jsxs(Popover$1.Root, {
|
|
177
|
+
open,
|
|
178
|
+
onOpenChange: t7,
|
|
179
|
+
children: [t19, t23]
|
|
180
|
+
});
|
|
181
|
+
$[39] = open;
|
|
182
|
+
$[40] = t19;
|
|
183
|
+
$[41] = t23;
|
|
184
|
+
$[42] = t7;
|
|
185
|
+
$[43] = t24;
|
|
186
|
+
} else t24 = $[43];
|
|
187
|
+
let t25;
|
|
188
|
+
if ($[44] !== description || $[45] !== id) {
|
|
189
|
+
t25 = description != null && /* @__PURE__ */ jsx("p", {
|
|
190
|
+
id: `${id}-description`,
|
|
191
|
+
className: "oui-field__description",
|
|
192
|
+
children: description
|
|
193
|
+
});
|
|
194
|
+
$[44] = description;
|
|
195
|
+
$[45] = id;
|
|
196
|
+
$[46] = t25;
|
|
197
|
+
} else t25 = $[46];
|
|
198
|
+
let t26;
|
|
199
|
+
if ($[47] !== error || $[48] !== id) {
|
|
200
|
+
t26 = error && /* @__PURE__ */ jsx("div", {
|
|
201
|
+
id: `${id}-error`,
|
|
202
|
+
className: "oui-field__error",
|
|
203
|
+
children: error
|
|
204
|
+
});
|
|
205
|
+
$[47] = error;
|
|
206
|
+
$[48] = id;
|
|
207
|
+
$[49] = t26;
|
|
208
|
+
} else t26 = $[49];
|
|
209
|
+
let t27;
|
|
210
|
+
if ($[50] !== inputs || $[51] !== t24 || $[52] !== t25 || $[53] !== t26 || $[54] !== t3 || $[55] !== t4 || $[56] !== t5 || $[57] !== t6) {
|
|
211
|
+
t27 = /* @__PURE__ */ jsxs("div", {
|
|
212
|
+
className: t3,
|
|
213
|
+
"data-disabled": t4,
|
|
214
|
+
"data-invalid": t5,
|
|
215
|
+
children: [
|
|
216
|
+
t6,
|
|
217
|
+
t24,
|
|
218
|
+
inputs,
|
|
219
|
+
t25,
|
|
220
|
+
t26
|
|
221
|
+
]
|
|
222
|
+
});
|
|
223
|
+
$[50] = inputs;
|
|
224
|
+
$[51] = t24;
|
|
225
|
+
$[52] = t25;
|
|
226
|
+
$[53] = t26;
|
|
227
|
+
$[54] = t3;
|
|
228
|
+
$[55] = t4;
|
|
229
|
+
$[56] = t5;
|
|
230
|
+
$[57] = t6;
|
|
231
|
+
$[58] = t27;
|
|
232
|
+
} else t27 = $[58];
|
|
233
|
+
return t27;
|
|
234
|
+
}
|
|
235
|
+
//#endregion
|
|
236
|
+
export { PickerField, useOpenState };
|
|
237
|
+
|
|
238
|
+
//# sourceMappingURL=PickerField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PickerField.js","names":["React","Popover","BasePopover","cx","CalendarIcon","PopoverContentProps","ControlSize","PickerFieldProps","ref","Ref","HTMLButtonElement","label","ReactNode","description","error","required","disabled","placeholder","size","open","defaultOpen","onOpenChange","id","className","triggerProps","Omit","ComponentProps","Trigger","contentProps","useOpenState","t0","$","_c","t1","undefined","inner","setInner","useState","t2","next","setOpen","t3","t4","const","PickerFieldShellProps","display","children","inputs","PickerField","idProp","generatedId","useId","popupRef","useRef","errorId","describedBy","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","Symbol","for","t19","t20","current","querySelector","t21","t22","t23","t24","t25","t26","t27","_c","BasePopover","Popover"],"sources":["../../../src/components/date-picker/PickerField.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Popover as BasePopover } from '@base-ui/react/popover';\nimport { cx } from '../../utils/cx';\nimport { CalendarIcon } from '../../icons';\nimport { Popover, type PopoverContentProps } from '../popover/Popover';\nimport type { ControlSize } from '../input/Input';\n\n/** Field props shared by the date pickers. */\nexport interface PickerFieldProps {\n ref?: React.Ref<HTMLButtonElement>;\n label?: React.ReactNode;\n description?: React.ReactNode;\n /** Error message. When set, the field is marked invalid. */\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n placeholder?: React.ReactNode;\n size?: ControlSize;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n id?: string;\n className?: string;\n /** Props for the trigger button (aria-*, data-*, onBlur…). */\n triggerProps?: Omit<React.ComponentProps<typeof BasePopover.Trigger>, 'children' | 'disabled' | 'id'>;\n contentProps?: Omit<PopoverContentProps, 'children'>;\n}\n\nexport function useOpenState({ open, defaultOpen = false, onOpenChange }: PickerFieldProps) {\n const [inner, setInner] = React.useState(defaultOpen);\n const setOpen = (next: boolean) => {\n setInner(next);\n onOpenChange?.(next);\n };\n return [open ?? inner, setOpen] as const;\n}\n\ninterface PickerFieldShellProps extends Omit<PickerFieldProps, 'open' | 'defaultOpen' | 'onOpenChange'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** Text for the current value; `null` shows the placeholder. */\n display: React.ReactNode | null;\n /** Popover content. */\n children: React.ReactNode;\n /** Hidden inputs that submit the value with a form. */\n inputs?: React.ReactNode;\n}\n\n/** Label, trigger button, calendar popover, description and error of a date picker. */\nexport function PickerField({\n label,\n description,\n error,\n required,\n disabled,\n placeholder,\n size = 'md',\n open,\n onOpenChange,\n id: idProp,\n className,\n triggerProps,\n contentProps,\n display,\n children,\n inputs,\n ref,\n}: PickerFieldShellProps) {\n const generatedId = React.useId();\n const id = idProp ?? generatedId;\n const popupRef = React.useRef<HTMLDivElement>(null);\n const errorId = error ? `${id}-error` : undefined;\n const describedBy = cx(description != null && `${id}-description`, errorId) || undefined;\n\n return (\n <div\n className={cx('oui-field', 'oui-date-picker', className)}\n data-disabled={disabled || undefined}\n data-invalid={error ? '' : undefined}\n >\n {label != null && (\n <label id={`${id}-label`} htmlFor={id} className=\"oui-field__label\">\n {label}\n {required && (\n <span className=\"oui-field__required\" aria-hidden>\n *\n </span>\n )}\n </label>\n )}\n <Popover.Root open={open} onOpenChange={(next) => onOpenChange(next)}>\n <BasePopover.Trigger\n ref={ref}\n id={id}\n disabled={disabled}\n aria-labelledby={label != null ? `${id}-label ${id}-value` : undefined}\n aria-describedby={describedBy}\n aria-required={required || undefined}\n aria-invalid={error ? true : undefined}\n {...triggerProps}\n className={cx('oui-date-picker__trigger', typeof triggerProps?.className === 'string' && triggerProps.className)}\n data-size={size}\n data-invalid={error ? '' : undefined}\n data-placeholder={display == null ? '' : undefined}\n >\n <span id={`${id}-value`} className=\"oui-date-picker__value\">\n {display ?? placeholder}\n </span>\n <CalendarIcon />\n </BasePopover.Trigger>\n <Popover.Content\n ref={popupRef}\n align=\"start\"\n sideOffset={6}\n initialFocus={() => popupRef.current?.querySelector<HTMLElement>('.oui-calendar__day[tabindex=\"0\"]') ?? true}\n {...contentProps}\n className={cx('oui-date-picker__popup', typeof contentProps?.className === 'string' && contentProps.className)}\n >\n {children}\n </Popover.Content>\n </Popover.Root>\n {inputs}\n {description != null && (\n <p id={`${id}-description`} className=\"oui-field__description\">\n {description}\n </p>\n )}\n {error && (\n <div id={`${id}-error`} className=\"oui-field__error\">\n {error}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|