@salt-ds/lab 1.0.0-alpha.46 → 1.0.0-alpha.48

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.
Files changed (34) hide show
  1. package/css/salt-lab.css +2 -2
  2. package/dist-cjs/calendar/Calendar.js +4 -1
  3. package/dist-cjs/calendar/Calendar.js.map +1 -1
  4. package/dist-cjs/calendar/useSelection.js +1 -1
  5. package/dist-cjs/calendar/useSelection.js.map +1 -1
  6. package/dist-cjs/date-input/DateInput.js +235 -234
  7. package/dist-cjs/date-input/DateInput.js.map +1 -1
  8. package/dist-cjs/date-picker/DatePicker.js +135 -142
  9. package/dist-cjs/date-picker/DatePicker.js.map +1 -1
  10. package/dist-cjs/date-picker/DatePickerContext.js +14 -20
  11. package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
  12. package/dist-cjs/date-picker/DatePickerPanel.css.js +1 -1
  13. package/dist-cjs/date-picker/DatePickerPanel.js +129 -115
  14. package/dist-cjs/date-picker/DatePickerPanel.js.map +1 -1
  15. package/dist-es/calendar/Calendar.js +4 -1
  16. package/dist-es/calendar/Calendar.js.map +1 -1
  17. package/dist-es/calendar/useSelection.js +1 -1
  18. package/dist-es/calendar/useSelection.js.map +1 -1
  19. package/dist-es/date-input/DateInput.js +235 -234
  20. package/dist-es/date-input/DateInput.js.map +1 -1
  21. package/dist-es/date-picker/DatePicker.js +135 -142
  22. package/dist-es/date-picker/DatePicker.js.map +1 -1
  23. package/dist-es/date-picker/DatePickerContext.js +14 -20
  24. package/dist-es/date-picker/DatePickerContext.js.map +1 -1
  25. package/dist-es/date-picker/DatePickerPanel.css.js +1 -1
  26. package/dist-es/date-picker/DatePickerPanel.js +129 -115
  27. package/dist-es/date-picker/DatePickerPanel.js.map +1 -1
  28. package/dist-types/calendar/useCalendar.d.ts +1 -4
  29. package/dist-types/calendar/useSelection.d.ts +2 -2
  30. package/dist-types/date-input/DateInput.d.ts +10 -9
  31. package/dist-types/date-picker/DatePicker.d.ts +18 -22
  32. package/dist-types/date-picker/DatePickerContext.d.ts +7 -9
  33. package/dist-types/date-picker/DatePickerPanel.d.ts +5 -7
  34. package/package.json +3 -3
@@ -18,151 +18,144 @@ require('../calendar/internal/utils.js');
18
18
  var useSelection = require('../calendar/useSelection.js');
19
19
 
20
20
  const withBaseName = core.makePrefixer("saltDatePicker");
21
- const DatePicker = React.forwardRef(
22
- function DatePicker2({
23
- selectionVariant = "default",
24
- disabled = false,
25
- placeholder = "dd mmm yyyy",
26
- selectedDate: selectedDateProp,
27
- defaultSelectedDate,
28
- dateFormatter,
29
- CalendarProps: CalendarProps2,
30
- className,
31
- open: openProp,
32
- onOpenChange: onOpenChangeProp,
33
- helperText,
34
- readOnly: readOnlyProp,
35
- inputAriaLabel,
36
- validationStatus,
37
- onSelectionChange,
38
- onChange,
39
- ...rest
40
- }, ref) {
41
- var _a;
42
- const [open, setOpen] = core.useControlled({
43
- controlled: openProp,
44
- default: false,
45
- name: "openPanel",
46
- state: "openPanel"
47
- });
48
- const [startDate, setStartDate] = core.useControlled({
49
- controlled: useSelection.isRangeOrOffsetSelectionWithStartDate(selectedDateProp) ? selectedDateProp.startDate : selectedDateProp,
50
- default: useSelection.isRangeOrOffsetSelectionWithStartDate(defaultSelectedDate) ? defaultSelectedDate.startDate : defaultSelectedDate,
51
- name: "StartDate",
52
- state: "startDate"
53
- });
54
- const [endDate, setEndDate] = core.useControlled({
55
- controlled: useSelection.isRangeOrOffsetSelectionWithStartDate(selectedDateProp) ? selectedDateProp.endDate : selectedDateProp,
56
- default: useSelection.isRangeOrOffsetSelectionWithStartDate(defaultSelectedDate) ? defaultSelectedDate.endDate : void 0,
57
- name: "EndDate",
58
- state: "endDate"
59
- });
60
- const [startVisibleMonth, setStartVisibleMonth] = React.useState(startDate != null ? startDate : date.today(date.getLocalTimeZone()));
61
- const [endVisibleMonth, setEndVisibleMonth] = React.useState(
62
- (_a = endDate != null ? endDate : startDate == null ? void 0 : startDate.add({ months: 1 })) != null ? _a : date.today(date.getLocalTimeZone()).add({ months: 1 })
63
- );
64
- const onOpenChange = (newState) => {
65
- var _a2;
66
- setOpen(newState);
67
- (_a2 = startInputRef == null ? void 0 : startInputRef.current) == null ? void 0 : _a2.focus();
68
- onOpenChangeProp == null ? void 0 : onOpenChangeProp(newState);
69
- };
70
- const { x, y, strategy, elements, floating, reference, context } = core.useFloatingUI({
71
- open,
72
- onOpenChange,
73
- placement: "bottom-start",
74
- middleware: [react.flip({ fallbackStrategy: "initialPlacement" })]
75
- });
76
- const { getReferenceProps, getFloatingProps } = react.useInteractions([
77
- react.useDismiss(context)
78
- ]);
79
- const { disabled: formFieldDisabled, readOnly: formFieldReadOnly } = core.useFormFieldProps();
80
- const isReadOnly = readOnlyProp || formFieldReadOnly;
81
- const getPanelPosition = () => {
82
- var _a2, _b;
83
- return {
84
- top: y != null ? y : 0,
85
- left: x != null ? x : 0,
86
- position: strategy,
87
- width: (_a2 = elements.floating) == null ? void 0 : _a2.offsetWidth,
88
- height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight
89
- };
90
- };
91
- const panelRef = React.useRef(null);
92
- const startInputRef = React.useRef(null);
93
- const endInputRef = React.useRef(null);
94
- const inputRef = core.useForkRef(ref, reference);
95
- const floatingRef = core.useForkRef(panelRef, floating);
96
- const handleSelect = (event, selectedDate) => {
97
- var _a2;
98
- if (selectionVariant === "default" && startDate) {
99
- (_a2 = startInputRef == null ? void 0 : startInputRef.current) == null ? void 0 : _a2.focus();
100
- }
101
- onSelectionChange == null ? void 0 : onSelectionChange(event, selectedDate);
21
+ const DatePicker = React.forwardRef(function DatePicker2({
22
+ selectionVariant = "default",
23
+ disabled = false,
24
+ placeholder = "dd mmm yyyy",
25
+ selectedDate: selectedDateProp,
26
+ defaultSelectedDate,
27
+ dateFormatter,
28
+ CalendarProps: CalendarProps2,
29
+ className,
30
+ open: openProp,
31
+ defaultOpen,
32
+ onOpenChange: onOpenChangeProp,
33
+ helperText,
34
+ readOnly: readOnlyProp,
35
+ validationStatus,
36
+ onSelectionChange,
37
+ onChange,
38
+ visibleMonths = 2,
39
+ ...rest
40
+ }, ref) {
41
+ var _a, _b, _c;
42
+ const [open, setOpen] = core.useControlled({
43
+ controlled: openProp,
44
+ default: Boolean(defaultOpen),
45
+ name: "openPanel",
46
+ state: "openPanel"
47
+ });
48
+ const [selectedDate, setSelectedDate] = core.useControlled({
49
+ controlled: selectedDateProp,
50
+ default: defaultSelectedDate,
51
+ name: "Calendar",
52
+ state: "selectedDate"
53
+ });
54
+ const [startVisibleMonth, setStartVisibleMonth] = React.useState(
55
+ (_a = useSelection.isRangeOrOffsetSelectionWithStartDate(selectedDate) ? selectedDate == null ? void 0 : selectedDate.startDate : selectedDate) != null ? _a : date.today(date.getLocalTimeZone())
56
+ );
57
+ const [endVisibleMonth, setEndVisibleMonth] = React.useState(
58
+ (_c = useSelection.isRangeOrOffsetSelectionWithStartDate(selectedDate) ? (_b = selectedDate.startDate) == null ? void 0 : _b.add({ months: 1 }) : selectedDate) != null ? _c : date.today(date.getLocalTimeZone()).add({ months: 1 })
59
+ );
60
+ const onOpenChange = (newState) => {
61
+ var _a2;
62
+ setOpen(newState);
63
+ (_a2 = startInputRef == null ? void 0 : startInputRef.current) == null ? void 0 : _a2.focus();
64
+ onOpenChangeProp == null ? void 0 : onOpenChangeProp(newState);
65
+ };
66
+ const { x, y, strategy, elements, floating, reference, context } = core.useFloatingUI({
67
+ open,
68
+ onOpenChange,
69
+ placement: "bottom-start",
70
+ middleware: [react.flip({ fallbackStrategy: "initialPlacement" })]
71
+ });
72
+ const { getReferenceProps, getFloatingProps } = react.useInteractions([
73
+ react.useDismiss(context)
74
+ ]);
75
+ const { disabled: formFieldDisabled, readOnly: formFieldReadOnly } = core.useFormFieldProps();
76
+ const isReadOnly = readOnlyProp || formFieldReadOnly;
77
+ const getPanelPosition = () => {
78
+ var _a2, _b2;
79
+ return {
80
+ top: y != null ? y : 0,
81
+ left: x != null ? x : 0,
82
+ position: strategy,
83
+ width: (_a2 = elements.floating) == null ? void 0 : _a2.offsetWidth,
84
+ height: (_b2 = elements.floating) == null ? void 0 : _b2.offsetHeight
102
85
  };
103
- const handleCalendarButton = () => {
104
- var _a2;
86
+ };
87
+ const panelRef = React.useRef(null);
88
+ const startInputRef = React.useRef(null);
89
+ const endInputRef = React.useRef(null);
90
+ const inputRef = core.useForkRef(ref, reference);
91
+ const floatingRef = core.useForkRef(panelRef, floating);
92
+ const handleSelect = (event, selectedDate2) => {
93
+ var _a2, _b2;
94
+ if (selectionVariant === "default" && selectedDate2) {
105
95
  (_a2 = startInputRef == null ? void 0 : startInputRef.current) == null ? void 0 : _a2.focus();
106
- setOpen(!open);
107
- };
108
- const datePickerContextValue = {
109
- openState: open,
110
- setOpen,
111
- disabled,
112
- endDate,
113
- setEndDate,
114
- defaultEndDate: useSelection.isRangeOrOffsetSelectionWithStartDate(defaultSelectedDate) ? defaultSelectedDate.endDate : defaultSelectedDate,
115
- startDate,
116
- setStartDate,
117
- startVisibleMonth,
118
- setStartVisibleMonth,
119
- endVisibleMonth,
120
- setEndVisibleMonth,
121
- defaultStartDate: useSelection.isRangeOrOffsetSelectionWithStartDate(
122
- defaultSelectedDate
123
- ) ? defaultSelectedDate.startDate : defaultSelectedDate,
124
- selectionVariant,
125
- context,
126
- getPanelPosition
127
- };
128
- return /* @__PURE__ */ jsxRuntime.jsxs(DatePickerContext.DatePickerContext.Provider, {
129
- value: datePickerContextValue,
130
- children: [
131
- /* @__PURE__ */ jsxRuntime.jsx(DateInput.DateInput, {
132
- validationStatus,
133
- className: clsx.clsx(withBaseName(), className),
134
- ref: inputRef,
135
- ...getReferenceProps(),
136
- startInputRef,
137
- endInputRef,
138
- placeholder,
139
- dateFormatter,
140
- readOnly: isReadOnly,
141
- ariaLabel: inputAriaLabel,
142
- onSelectionChange,
143
- onChange,
144
- endAdornment: /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
145
- variant: "secondary",
146
- onClick: handleCalendarButton,
147
- disabled: disabled || isReadOnly || formFieldDisabled,
148
- "aria-label": "Open Calendar",
149
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.CalendarIcon, {
150
- "aria-hidden": true
151
- })
152
- }),
153
- ...rest
96
+ }
97
+ if (useSelection.isRangeOrOffsetSelectionWithStartDate(selectedDate2) && selectedDate2.endDate) {
98
+ (_b2 = endInputRef == null ? void 0 : endInputRef.current) == null ? void 0 : _b2.focus();
99
+ }
100
+ onSelectionChange == null ? void 0 : onSelectionChange(event, selectedDate2);
101
+ };
102
+ const handleCalendarButton = () => {
103
+ var _a2;
104
+ (_a2 = startInputRef == null ? void 0 : startInputRef.current) == null ? void 0 : _a2.focus();
105
+ setOpen(!open);
106
+ };
107
+ const datePickerContextValue = {
108
+ openState: open,
109
+ setOpen,
110
+ disabled,
111
+ selectedDate,
112
+ setSelectedDate,
113
+ defaultSelectedDate,
114
+ startVisibleMonth,
115
+ setStartVisibleMonth,
116
+ endVisibleMonth,
117
+ setEndVisibleMonth,
118
+ selectionVariant,
119
+ context,
120
+ getPanelPosition
121
+ };
122
+ return /* @__PURE__ */ jsxRuntime.jsxs(DatePickerContext.DatePickerContext.Provider, {
123
+ value: datePickerContextValue,
124
+ children: [
125
+ /* @__PURE__ */ jsxRuntime.jsx(DateInput.DateInput, {
126
+ validationStatus,
127
+ className: clsx.clsx(withBaseName(), className),
128
+ ref: inputRef,
129
+ ...getReferenceProps(),
130
+ startInputRef,
131
+ endInputRef,
132
+ placeholder,
133
+ dateFormatter,
134
+ readOnly: isReadOnly,
135
+ onSelectionChange,
136
+ onChange,
137
+ endAdornment: /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
138
+ variant: "secondary",
139
+ onClick: handleCalendarButton,
140
+ disabled: disabled || isReadOnly || formFieldDisabled,
141
+ "aria-label": "Open Calendar",
142
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.CalendarIcon, {
143
+ "aria-hidden": true
144
+ })
154
145
  }),
155
- /* @__PURE__ */ jsxRuntime.jsx(DatePickerPanel.DatePickerPanel, {
156
- ref: floatingRef,
157
- ...getFloatingProps(),
158
- onSelect: handleSelect,
159
- CalendarProps: CalendarProps2,
160
- helperText
161
- })
162
- ]
163
- });
164
- }
165
- );
146
+ ...rest
147
+ }),
148
+ /* @__PURE__ */ jsxRuntime.jsx(DatePickerPanel.DatePickerPanel, {
149
+ ref: floatingRef,
150
+ ...getFloatingProps(),
151
+ onSelect: handleSelect,
152
+ CalendarProps: CalendarProps2,
153
+ helperText,
154
+ visibleMonths
155
+ })
156
+ ]
157
+ });
158
+ });
166
159
 
167
160
  exports.DatePicker = DatePicker;
168
161
  //# sourceMappingURL=DatePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../src/date-picker/DatePicker.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n SyntheticEvent,\n useRef,\n useState,\n} from \"react\";\n\nimport {\n Button,\n makePrefixer,\n useControlled,\n useFloatingUI,\n useForkRef,\n useFormFieldProps,\n} from \"@salt-ds/core\";\nimport { DatePickerContext } from \"./DatePickerContext\";\nimport { DatePickerPanel } from \"./DatePickerPanel\";\nimport { flip, useDismiss, useInteractions } from \"@floating-ui/react\";\nimport { DateInput } from \"../date-input\";\nimport { DateValue, getLocalTimeZone, today } from \"@internationalized/date\";\nimport { CalendarIcon } from \"@salt-ds/icons\";\nimport {\n CalendarProps,\n isRangeOrOffsetSelectionWithStartDate,\n} from \"../calendar\";\n\nconst withBaseName = makePrefixer(\"saltDatePicker\");\n\nexport interface DatePickerProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"defaultValue\">,\n Pick<\n ComponentPropsWithoutRef<\"input\">,\n \"disabled\" | \"value\" | \"defaultValue\" | \"placeholder\"\n > {\n inputAriaLabel?: string;\n /**\n * Selection variant. Defaults to single select.\n */\n selectionVariant?: \"default\" | \"range\";\n /**\n * If `true`, the component will be disabled.\n */\n disabled?: boolean;\n /**\n * The selected date value. Use when the component is controlled.\n * Can be a single date or an object with start and end dates for range selection.\n */\n selectedDate?: DateValue | { startDate?: DateValue; endDate?: DateValue };\n /**\n * The default date value. Use when the component is not controlled.\n * Can be a single date or an object with start and end dates for range selection.\n */\n defaultSelectedDate?:\n | DateValue\n | { startDate: DateValue; endDate: DateValue };\n /**\n * Props to be passed to the Calendar component.\n */\n CalendarProps?: Partial<\n Omit<\n CalendarProps,\n | \"selectionVariant\"\n | \"selectedDate\"\n | \"defaultSelectedDate\"\n | \"onSelectedDateChange\"\n >\n >;\n /**\n * Function to format the input value.\n */\n dateFormatter?: (input: DateValue | undefined) => string;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (newOpen: boolean) => void;\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * Helper text to display in the panel\n */\n helperText?: string;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Callback fired when the selected date change.\n */\n onSelectionChange?: (\n event: SyntheticEvent,\n selectedDate?: DateValue | { startDate?: DateValue; endDate?: DateValue }\n ) => void;\n /**\n * Callback fired when the input value change.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n}\n\nexport const DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(\n function DatePicker(\n {\n selectionVariant = \"default\",\n disabled = false,\n placeholder = \"dd mmm yyyy\",\n selectedDate: selectedDateProp,\n defaultSelectedDate,\n dateFormatter,\n CalendarProps,\n className,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n helperText,\n readOnly: readOnlyProp,\n inputAriaLabel,\n validationStatus,\n onSelectionChange,\n onChange,\n ...rest\n },\n ref\n ) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: false,\n name: \"openPanel\",\n state: \"openPanel\",\n });\n\n const [startDate, setStartDate] = useControlled({\n controlled: isRangeOrOffsetSelectionWithStartDate(selectedDateProp)\n ? selectedDateProp.startDate\n : selectedDateProp,\n default: isRangeOrOffsetSelectionWithStartDate(defaultSelectedDate)\n ? defaultSelectedDate.startDate\n : defaultSelectedDate,\n name: \"StartDate\",\n state: \"startDate\",\n });\n const [endDate, setEndDate] = useControlled({\n controlled: isRangeOrOffsetSelectionWithStartDate(selectedDateProp)\n ? selectedDateProp.endDate\n : selectedDateProp,\n default: isRangeOrOffsetSelectionWithStartDate(defaultSelectedDate)\n ? defaultSelectedDate.endDate\n : undefined,\n name: \"EndDate\",\n state: \"endDate\",\n });\n\n const [startVisibleMonth, setStartVisibleMonth] = useState<\n DateValue | undefined\n >(startDate ?? today(getLocalTimeZone()));\n const [endVisibleMonth, setEndVisibleMonth] = useState<\n DateValue | undefined\n >(\n endDate ??\n startDate?.add({ months: 1 }) ??\n today(getLocalTimeZone()).add({ months: 1 })\n );\n\n const onOpenChange = (newState: boolean) => {\n setOpen(newState);\n startInputRef?.current?.focus();\n onOpenChangeProp?.(newState);\n };\n\n const { x, y, strategy, elements, floating, reference, context } =\n useFloatingUI({\n open: open,\n onOpenChange: onOpenChange,\n placement: \"bottom-start\",\n middleware: [flip({ fallbackStrategy: \"initialPlacement\" })],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n ]);\n const { disabled: formFieldDisabled, readOnly: formFieldReadOnly } =\n useFormFieldProps();\n const isReadOnly = readOnlyProp || formFieldReadOnly;\n\n const getPanelPosition = () => ({\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n width: elements.floating?.offsetWidth,\n height: elements.floating?.offsetHeight,\n });\n\n const panelRef = useRef<HTMLDivElement>(null);\n const startInputRef = useRef<HTMLInputElement>(null);\n const endInputRef = useRef<HTMLInputElement>(null);\n const inputRef = useForkRef<HTMLDivElement>(ref, reference);\n const floatingRef = useForkRef<HTMLDivElement>(panelRef, floating);\n\n // Handlers\n const handleSelect = (\n event: SyntheticEvent,\n selectedDate?: DateValue | { startDate?: DateValue; endDate?: DateValue }\n ) => {\n if (selectionVariant === \"default\" && startDate) {\n startInputRef?.current?.focus();\n }\n onSelectionChange?.(event, selectedDate);\n };\n const handleCalendarButton = () => {\n startInputRef?.current?.focus();\n setOpen(!open);\n };\n\n // Context\n const datePickerContextValue = {\n openState: open,\n setOpen,\n disabled,\n endDate,\n setEndDate,\n defaultEndDate: isRangeOrOffsetSelectionWithStartDate(defaultSelectedDate)\n ? defaultSelectedDate.endDate\n : defaultSelectedDate,\n startDate,\n setStartDate,\n startVisibleMonth,\n setStartVisibleMonth,\n endVisibleMonth,\n setEndVisibleMonth,\n defaultStartDate: isRangeOrOffsetSelectionWithStartDate(\n defaultSelectedDate\n )\n ? defaultSelectedDate.startDate\n : defaultSelectedDate,\n selectionVariant,\n context,\n getPanelPosition,\n };\n\n return (\n <DatePickerContext.Provider value={datePickerContextValue}>\n <DateInput\n validationStatus={validationStatus}\n className={clsx(withBaseName(), className)}\n ref={inputRef}\n {...getReferenceProps()}\n startInputRef={startInputRef}\n endInputRef={endInputRef}\n placeholder={placeholder}\n dateFormatter={dateFormatter}\n readOnly={isReadOnly}\n ariaLabel={inputAriaLabel}\n onSelectionChange={onSelectionChange}\n onChange={onChange}\n endAdornment={\n <Button\n variant=\"secondary\"\n onClick={handleCalendarButton}\n disabled={disabled || isReadOnly || formFieldDisabled}\n aria-label=\"Open Calendar\"\n >\n <CalendarIcon aria-hidden />\n </Button>\n }\n {...rest}\n />\n <DatePickerPanel\n ref={floatingRef}\n {...getFloatingProps()}\n onSelect={handleSelect}\n CalendarProps={CalendarProps}\n helperText={helperText}\n />\n </DatePickerContext.Provider>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","DatePicker","CalendarProps","useControlled","isRangeOrOffsetSelectionWithStartDate","useState","today","getLocalTimeZone","_a","useFloatingUI","flip","useInteractions","useDismiss","useFormFieldProps","useRef","useForkRef","jsxs","DatePickerContext","jsx","DateInput","clsx","Button","CalendarIcon","DatePickerPanel"],"mappings":";;;;;;;;;;;;;;;;;;;AA6BA,MAAM,YAAA,GAAeA,kBAAa,gBAAgB,CAAA,CAAA;AA8E3C,MAAM,UAAa,GAAAC,gBAAA;AAAA,EACxB,SAASC,WACP,CAAA;AAAA,IACE,gBAAmB,GAAA,SAAA;AAAA,IACnB,QAAW,GAAA,KAAA;AAAA,IACX,WAAc,GAAA,aAAA;AAAA,IACd,YAAc,EAAA,gBAAA;AAAA,IACd,mBAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAAC,EAAAA,cAAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAM,EAAA,QAAA;AAAA,IACN,YAAc,EAAA,gBAAA;AAAA,IACd,UAAA;AAAA,IACA,QAAU,EAAA,YAAA;AAAA,IACV,cAAA;AAAA,IACA,gBAAA;AAAA,IACA,iBAAA;AAAA,IACA,QAAA;AAAA,IACG,GAAA,IAAA;AAAA,KAEL,GACA,EAAA;AAjIJ,IAAA,IAAA,EAAA,CAAA;AAkII,IAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,kBAAc,CAAA;AAAA,MACpC,UAAY,EAAA,QAAA;AAAA,MACZ,OAAS,EAAA,KAAA;AAAA,MACT,IAAM,EAAA,WAAA;AAAA,MACN,KAAO,EAAA,WAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,kBAAc,CAAA;AAAA,MAC9C,UAAY,EAAAC,kDAAA,CAAsC,gBAAgB,CAAA,GAC9D,iBAAiB,SACjB,GAAA,gBAAA;AAAA,MACJ,OAAS,EAAAA,kDAAA,CAAsC,mBAAmB,CAAA,GAC9D,oBAAoB,SACpB,GAAA,mBAAA;AAAA,MACJ,IAAM,EAAA,WAAA;AAAA,MACN,KAAO,EAAA,WAAA;AAAA,KACR,CAAA,CAAA;AACD,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAID,kBAAc,CAAA;AAAA,MAC1C,UAAY,EAAAC,kDAAA,CAAsC,gBAAgB,CAAA,GAC9D,iBAAiB,OACjB,GAAA,gBAAA;AAAA,MACJ,OAAS,EAAAA,kDAAA,CAAsC,mBAAmB,CAAA,GAC9D,oBAAoB,OACpB,GAAA,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,SAAA;AAAA,MACN,KAAO,EAAA,SAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,CAAC,mBAAmB,oBAAoB,CAAA,GAAIC,eAEhD,SAAa,IAAA,IAAA,GAAA,SAAA,GAAAC,UAAA,CAAMC,qBAAiB,EAAC,CAAC,CAAA,CAAA;AACxC,IAAM,MAAA,CAAC,eAAiB,EAAA,kBAAkB,CAAI,GAAAF,cAAA;AAAA,MAAA,CAG5C,iCACE,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,GAD3B,CAAA,KAAA,IAAA,GAAA,EAAA,GAEEC,UAAM,CAAAC,qBAAA,EAAkB,CAAE,CAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,KAC/C,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,CAAC,QAAsB,KAAA;AAzKhD,MAAAC,IAAAA,GAAAA,CAAAA;AA0KM,MAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AAChB,MAAA,CAAAA,GAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,OAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA,CAAA;AACxB,MAAmB,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,QAAA,CAAA,CAAA;AAAA,KACrB,CAAA;AAEA,IAAM,MAAA,EAAE,GAAG,CAAG,EAAA,QAAA,EAAU,UAAU,QAAU,EAAA,SAAA,EAAW,OAAQ,EAAA,GAC7DC,kBAAc,CAAA;AAAA,MACZ,IAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAW,EAAA,cAAA;AAAA,MACX,YAAY,CAACC,UAAA,CAAK,EAAE,gBAAkB,EAAA,kBAAA,EAAoB,CAAC,CAAA;AAAA,KAC5D,CAAA,CAAA;AAEH,IAAA,MAAM,EAAE,iBAAA,EAAmB,gBAAiB,EAAA,GAAIC,qBAAgB,CAAA;AAAA,MAC9DC,iBAAW,OAAO,CAAA;AAAA,KACnB,CAAA,CAAA;AACD,IAAA,MAAM,EAAE,QAAU,EAAA,iBAAA,EAAmB,QAAU,EAAA,iBAAA,KAC7CC,sBAAkB,EAAA,CAAA;AACpB,IAAA,MAAM,aAAa,YAAgB,IAAA,iBAAA,CAAA;AAEnC,IAAA,MAAM,mBAAmB,MAAG;AA9LhC,MAAA,IAAAL,GAAA,EAAA,EAAA,CAAA;AA8LoC,MAAA,OAAA;AAAA,QAC9B,KAAK,CAAK,IAAA,IAAA,GAAA,CAAA,GAAA,CAAA;AAAA,QACV,MAAM,CAAK,IAAA,IAAA,GAAA,CAAA,GAAA,CAAA;AAAA,QACX,QAAU,EAAA,QAAA;AAAA,QACV,KAAOA,EAAAA,CAAAA,GAAAA,GAAA,QAAS,CAAA,QAAA,KAAT,gBAAAA,GAAmB,CAAA,WAAA;AAAA,QAC1B,MAAA,EAAA,CAAQ,EAAS,GAAA,QAAA,CAAA,QAAA,KAAT,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA;AAAA,OAC7B,CAAA;AAAA,KAAA,CAAA;AAEA,IAAM,MAAA,QAAA,GAAWM,aAAuB,IAAI,CAAA,CAAA;AAC5C,IAAM,MAAA,aAAA,GAAgBA,aAAyB,IAAI,CAAA,CAAA;AACnD,IAAM,MAAA,WAAA,GAAcA,aAAyB,IAAI,CAAA,CAAA;AACjD,IAAM,MAAA,QAAA,GAAWC,eAA2B,CAAA,GAAA,EAAK,SAAS,CAAA,CAAA;AAC1D,IAAM,MAAA,WAAA,GAAcA,eAA2B,CAAA,QAAA,EAAU,QAAQ,CAAA,CAAA;AAGjE,IAAM,MAAA,YAAA,GAAe,CACnB,KAAA,EACA,YACG,KAAA;AAhNT,MAAAP,IAAAA,GAAAA,CAAAA;AAiNM,MAAI,IAAA,gBAAA,KAAqB,aAAa,SAAW,EAAA;AAC/C,QAAA,CAAAA,GAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,OAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA,CAAA;AAAA,OAC1B;AACA,MAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAoB,KAAO,EAAA,YAAA,CAAA,CAAA;AAAA,KAC7B,CAAA;AACA,IAAA,MAAM,uBAAuB,MAAM;AAtNvC,MAAAA,IAAAA,GAAAA,CAAAA;AAuNM,MAAA,CAAAA,GAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,OAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA,CAAA;AACxB,MAAA,OAAA,CAAQ,CAAC,IAAI,CAAA,CAAA;AAAA,KACf,CAAA;AAGA,IAAA,MAAM,sBAAyB,GAAA;AAAA,MAC7B,SAAW,EAAA,IAAA;AAAA,MACX,OAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAgB,EAAAJ,kDAAA,CAAsC,mBAAmB,CAAA,GACrE,oBAAoB,OACpB,GAAA,mBAAA;AAAA,MACJ,SAAA;AAAA,MACA,YAAA;AAAA,MACA,iBAAA;AAAA,MACA,oBAAA;AAAA,MACA,eAAA;AAAA,MACA,kBAAA;AAAA,MACA,gBAAkB,EAAAA,kDAAA;AAAA,QAChB,mBAAA;AAAA,OACF,GACI,oBAAoB,SACpB,GAAA,mBAAA;AAAA,MACJ,gBAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,KACF,CAAA;AAEA,IACE,uBAAAY,eAAA,CAACC,oCAAkB,QAAlB,EAAA;AAAA,MAA2B,KAAO,EAAA,sBAAA;AAAA,MACjC,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAAC,mBAAA,EAAA;AAAA,UACC,gBAAA;AAAA,UACA,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,UACzC,GAAK,EAAA,QAAA;AAAA,UACJ,GAAG,iBAAkB,EAAA;AAAA,UACtB,aAAA;AAAA,UACA,WAAA;AAAA,UACA,WAAA;AAAA,UACA,aAAA;AAAA,UACA,QAAU,EAAA,UAAA;AAAA,UACV,SAAW,EAAA,cAAA;AAAA,UACX,iBAAA;AAAA,UACA,QAAA;AAAA,UACA,8BACGF,cAAA,CAAAG,WAAA,EAAA;AAAA,YACC,OAAQ,EAAA,WAAA;AAAA,YACR,OAAS,EAAA,oBAAA;AAAA,YACT,QAAA,EAAU,YAAY,UAAc,IAAA,iBAAA;AAAA,YACpC,YAAW,EAAA,eAAA;AAAA,YAEX,QAAC,kBAAAH,cAAA,CAAAI,kBAAA,EAAA;AAAA,cAAa,aAAW,EAAA,IAAA;AAAA,aAAC,CAAA;AAAA,WAC5B,CAAA;AAAA,UAED,GAAG,IAAA;AAAA,SACN,CAAA;AAAA,wBACCJ,cAAA,CAAAK,+BAAA,EAAA;AAAA,UACC,GAAK,EAAA,WAAA;AAAA,UACJ,GAAG,gBAAiB,EAAA;AAAA,UACrB,QAAU,EAAA,YAAA;AAAA,UACV,aAAerB,EAAAA,cAAAA;AAAA,UACf,UAAA;AAAA,SACF,CAAA;AAAA,OAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"DatePicker.js","sources":["../src/date-picker/DatePicker.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n forwardRef,\n SyntheticEvent,\n useRef,\n useState,\n} from \"react\";\n\nimport {\n Button,\n makePrefixer,\n useControlled,\n useFloatingUI,\n useForkRef,\n useFormFieldProps,\n} from \"@salt-ds/core\";\nimport { DatePickerContext } from \"./DatePickerContext\";\nimport { DatePickerPanel } from \"./DatePickerPanel\";\nimport { flip, useDismiss, useInteractions } from \"@floating-ui/react\";\nimport { DateInput, DateInputProps } from \"../date-input\";\nimport { DateValue, getLocalTimeZone, today } from \"@internationalized/date\";\nimport { CalendarIcon } from \"@salt-ds/icons\";\nimport {\n CalendarProps,\n isRangeOrOffsetSelectionWithStartDate,\n RangeSelectionValueType,\n SingleSelectionValueType,\n} from \"../calendar\";\n\nconst withBaseName = makePrefixer(\"saltDatePicker\");\n\nexport interface DatePickerProps<SelectionVariantType>\n extends DateInputProps<SelectionVariantType> {\n /**\n * Selection variant. Defaults to single select.\n */\n selectionVariant?: \"default\" | \"range\";\n /**\n * If `true`, the component will be disabled.\n */\n disabled?: boolean;\n /**\n * The selected date value. Use when the component is controlled.\n * Can be a single date or an object with start and end dates for range selection.\n */\n selectedDate?: SelectionVariantType;\n /**\n * The default date value. Use when the component is not controlled.\n * Can be a single date or an object with start and end dates for range selection.\n */\n defaultSelectedDate?: SelectionVariantType;\n /**\n * Props to be passed to the Calendar component.\n */\n CalendarProps?: Partial<\n Omit<\n CalendarProps,\n | \"selectionVariant\"\n | \"selectedDate\"\n | \"defaultSelectedDate\"\n | \"onSelectedDateChange\"\n >\n >;\n /**\n * Function to format the input value.\n */\n dateFormatter?: (input: DateValue | undefined) => string;\n /**\n * Callback function triggered when open state changes.\n */\n onOpenChange?: (newOpen: boolean) => void;\n /**\n * Display or hide the component.\n */\n open?: boolean;\n /**\n * The default open value. Use when the component is not controlled.\n */\n defaultOpen?: boolean;\n /**\n * Helper text to display in the panel\n */\n helperText?: string;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Callback fired when the selected date change.\n */\n onSelectionChange?: (\n event: SyntheticEvent,\n selectedDate?: SelectionVariantType\n ) => void;\n /**\n * Callback fired when the input value change.\n */\n onChange?: SelectionVariantType extends SingleSelectionValueType\n ? (\n event: ChangeEvent<HTMLInputElement>,\n selectedDateInputValue?: string\n ) => void\n : (\n event: ChangeEvent<HTMLInputElement>,\n startDateInputValue?: string,\n endDateInputValue?: string\n ) => void;\n /**\n * Number of Calendars to be shown if selectionVariant is range.\n * 2 is the default value.\n */\n visibleMonths?: 1 | 2;\n}\n\nexport const DatePicker = forwardRef<\n HTMLDivElement,\n DatePickerProps<SingleSelectionValueType | RangeSelectionValueType>\n>(function DatePicker(\n {\n selectionVariant = \"default\",\n disabled = false,\n placeholder = \"dd mmm yyyy\",\n selectedDate: selectedDateProp,\n defaultSelectedDate,\n dateFormatter,\n CalendarProps,\n className,\n open: openProp,\n defaultOpen,\n onOpenChange: onOpenChangeProp,\n helperText,\n readOnly: readOnlyProp,\n validationStatus,\n onSelectionChange,\n onChange,\n visibleMonths = 2,\n ...rest\n },\n ref\n) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: Boolean(defaultOpen),\n name: \"openPanel\",\n state: \"openPanel\",\n });\n\n const [selectedDate, setSelectedDate] = useControlled({\n controlled: selectedDateProp,\n default: defaultSelectedDate,\n name: \"Calendar\",\n state: \"selectedDate\",\n });\n\n const [startVisibleMonth, setStartVisibleMonth] = useState<\n DateValue | undefined\n >(\n (isRangeOrOffsetSelectionWithStartDate(selectedDate)\n ? selectedDate?.startDate\n : selectedDate) ?? today(getLocalTimeZone())\n );\n\n const [endVisibleMonth, setEndVisibleMonth] = useState<DateValue | undefined>(\n (isRangeOrOffsetSelectionWithStartDate(selectedDate)\n ? selectedDate.startDate?.add({ months: 1 })\n : selectedDate) ?? today(getLocalTimeZone()).add({ months: 1 })\n );\n\n const onOpenChange = (newState: boolean) => {\n setOpen(newState);\n startInputRef?.current?.focus();\n onOpenChangeProp?.(newState);\n };\n\n const { x, y, strategy, elements, floating, reference, context } =\n useFloatingUI({\n open: open,\n onOpenChange: onOpenChange,\n placement: \"bottom-start\",\n middleware: [flip({ fallbackStrategy: \"initialPlacement\" })],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n ]);\n const { disabled: formFieldDisabled, readOnly: formFieldReadOnly } =\n useFormFieldProps();\n const isReadOnly = readOnlyProp || formFieldReadOnly;\n\n const getPanelPosition = () => ({\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n width: elements.floating?.offsetWidth,\n height: elements.floating?.offsetHeight,\n });\n\n const panelRef = useRef<HTMLDivElement>(null);\n const startInputRef = useRef<HTMLInputElement>(null);\n const endInputRef = useRef<HTMLInputElement>(null);\n const inputRef = useForkRef<HTMLDivElement>(ref, reference);\n const floatingRef = useForkRef<HTMLDivElement>(panelRef, floating);\n\n // Handlers\n const handleSelect = (\n event: SyntheticEvent,\n selectedDate?: DateValue | { startDate?: DateValue; endDate?: DateValue }\n ) => {\n if (selectionVariant === \"default\" && selectedDate) {\n startInputRef?.current?.focus();\n }\n\n if (\n isRangeOrOffsetSelectionWithStartDate(selectedDate) &&\n selectedDate.endDate\n ) {\n endInputRef?.current?.focus();\n }\n onSelectionChange?.(event, selectedDate);\n };\n const handleCalendarButton = () => {\n startInputRef?.current?.focus();\n setOpen(!open);\n };\n\n // Context\n const datePickerContextValue = {\n openState: open,\n setOpen,\n disabled,\n selectedDate,\n setSelectedDate,\n defaultSelectedDate,\n startVisibleMonth,\n setStartVisibleMonth,\n endVisibleMonth,\n setEndVisibleMonth,\n selectionVariant,\n context,\n getPanelPosition,\n };\n\n return (\n <DatePickerContext.Provider value={datePickerContextValue}>\n <DateInput\n validationStatus={validationStatus}\n className={clsx(withBaseName(), className)}\n ref={inputRef}\n {...getReferenceProps()}\n startInputRef={startInputRef}\n endInputRef={endInputRef}\n placeholder={placeholder}\n dateFormatter={dateFormatter}\n readOnly={isReadOnly}\n onSelectionChange={onSelectionChange}\n onChange={onChange}\n endAdornment={\n <Button\n variant=\"secondary\"\n onClick={handleCalendarButton}\n disabled={disabled || isReadOnly || formFieldDisabled}\n aria-label=\"Open Calendar\"\n >\n <CalendarIcon aria-hidden />\n </Button>\n }\n {...rest}\n />\n <DatePickerPanel\n ref={floatingRef}\n {...getFloatingProps()}\n onSelect={handleSelect}\n CalendarProps={CalendarProps}\n helperText={helperText}\n visibleMonths={visibleMonths}\n />\n </DatePickerContext.Provider>\n );\n});\n"],"names":["makePrefixer","forwardRef","DatePicker","CalendarProps","useControlled","useState","isRangeOrOffsetSelectionWithStartDate","today","getLocalTimeZone","_a","useFloatingUI","flip","useInteractions","useDismiss","useFormFieldProps","_b","useRef","useForkRef","selectedDate","jsxs","DatePickerContext","jsx","DateInput","clsx","Button","CalendarIcon","DatePickerPanel"],"mappings":";;;;;;;;;;;;;;;;;;;AA8BA,MAAM,YAAA,GAAeA,kBAAa,gBAAgB,CAAA,CAAA;AAqFrC,MAAA,UAAA,GAAaC,gBAGxB,CAAA,SAASC,WACT,CAAA;AAAA,EACE,gBAAmB,GAAA,SAAA;AAAA,EACnB,QAAW,GAAA,KAAA;AAAA,EACX,WAAc,GAAA,aAAA;AAAA,EACd,YAAc,EAAA,gBAAA;AAAA,EACd,mBAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAAC,EAAAA,cAAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAM,EAAA,QAAA;AAAA,EACN,WAAA;AAAA,EACA,YAAc,EAAA,gBAAA;AAAA,EACd,UAAA;AAAA,EACA,QAAU,EAAA,YAAA;AAAA,EACV,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAgB,GAAA,CAAA;AAAA,EACb,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AA5IF,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA6IE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,kBAAc,CAAA;AAAA,IACpC,UAAY,EAAA,QAAA;AAAA,IACZ,OAAA,EAAS,QAAQ,WAAW,CAAA;AAAA,IAC5B,IAAM,EAAA,WAAA;AAAA,IACN,KAAO,EAAA,WAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,kBAAc,CAAA;AAAA,IACpD,UAAY,EAAA,gBAAA;AAAA,IACZ,OAAS,EAAA,mBAAA;AAAA,IACT,IAAM,EAAA,UAAA;AAAA,IACN,KAAO,EAAA,cAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,CAAC,iBAAmB,EAAA,oBAAoB,CAAI,GAAAC,cAAA;AAAA,IAG/C,CAAA,EAAA,GAAAC,kDAAA,CAAsC,YAAY,CAC/C,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,YACd,YAFH,KAAA,IAAA,GAAA,EAAA,GAEoBC,UAAM,CAAAC,qBAAA,EAAkB,CAAA;AAAA,GAC/C,CAAA;AAEA,EAAM,MAAA,CAAC,eAAiB,EAAA,kBAAkB,CAAI,GAAAH,cAAA;AAAA,IAC3C,CAAA,EAAA,GAAAC,kDAAA,CAAsC,YAAY,CAC/C,GAAA,CAAA,EAAA,GAAA,YAAA,CAAa,cAAb,IAAwB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,MACtC,YAFH,KAAA,IAAA,GAAA,EAAA,GAEoBC,WAAMC,qBAAiB,EAAC,EAAE,GAAI,CAAA,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAA;AAAA,GAClE,CAAA;AAEA,EAAM,MAAA,YAAA,GAAe,CAAC,QAAsB,KAAA;AAzK9C,IAAAC,IAAAA,GAAAA,CAAAA;AA0KI,IAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AAChB,IAAA,CAAAA,GAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,OAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA,CAAA;AACxB,IAAmB,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,QAAA,CAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAM,MAAA,EAAE,GAAG,CAAG,EAAA,QAAA,EAAU,UAAU,QAAU,EAAA,SAAA,EAAW,OAAQ,EAAA,GAC7DC,kBAAc,CAAA;AAAA,IACZ,IAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAW,EAAA,cAAA;AAAA,IACX,YAAY,CAACC,UAAA,CAAK,EAAE,gBAAkB,EAAA,kBAAA,EAAoB,CAAC,CAAA;AAAA,GAC5D,CAAA,CAAA;AAEH,EAAA,MAAM,EAAE,iBAAA,EAAmB,gBAAiB,EAAA,GAAIC,qBAAgB,CAAA;AAAA,IAC9DC,iBAAW,OAAO,CAAA;AAAA,GACnB,CAAA,CAAA;AACD,EAAA,MAAM,EAAE,QAAU,EAAA,iBAAA,EAAmB,QAAU,EAAA,iBAAA,KAC7CC,sBAAkB,EAAA,CAAA;AACpB,EAAA,MAAM,aAAa,YAAgB,IAAA,iBAAA,CAAA;AAEnC,EAAA,MAAM,mBAAmB,MAAG;AA9L9B,IAAA,IAAAL,GAAAM,EAAAA,GAAAA,CAAAA;AA8LkC,IAAA,OAAA;AAAA,MAC9B,KAAK,CAAK,IAAA,IAAA,GAAA,CAAA,GAAA,CAAA;AAAA,MACV,MAAM,CAAK,IAAA,IAAA,GAAA,CAAA,GAAA,CAAA;AAAA,MACX,QAAU,EAAA,QAAA;AAAA,MACV,KAAON,EAAAA,CAAAA,GAAAA,GAAA,QAAS,CAAA,QAAA,KAAT,gBAAAA,GAAmB,CAAA,WAAA;AAAA,MAC1B,MAAQM,EAAAA,CAAAA,GAAAA,GAAA,QAAS,CAAA,QAAA,KAAT,gBAAAA,GAAmB,CAAA,YAAA;AAAA,KAC7B,CAAA;AAAA,GAAA,CAAA;AAEA,EAAM,MAAA,QAAA,GAAWC,aAAuB,IAAI,CAAA,CAAA;AAC5C,EAAM,MAAA,aAAA,GAAgBA,aAAyB,IAAI,CAAA,CAAA;AACnD,EAAM,MAAA,WAAA,GAAcA,aAAyB,IAAI,CAAA,CAAA;AACjD,EAAM,MAAA,QAAA,GAAWC,eAA2B,CAAA,GAAA,EAAK,SAAS,CAAA,CAAA;AAC1D,EAAM,MAAA,WAAA,GAAcA,eAA2B,CAAA,QAAA,EAAU,QAAQ,CAAA,CAAA;AAGjE,EAAM,MAAA,YAAA,GAAe,CACnB,KAAA,EACAC,aACG,KAAA;AAhNP,IAAA,IAAAT,GAAAM,EAAAA,GAAAA,CAAAA;AAiNI,IAAI,IAAA,gBAAA,KAAqB,aAAaG,aAAc,EAAA;AAClD,MAAA,CAAAT,GAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,OAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA,CAAA;AAAA,KAC1B;AAEA,IAAA,IACEH,kDAAsCY,CAAAA,aAAY,CAClDA,IAAAA,aAAAA,CAAa,OACb,EAAA;AACA,MAAA,CAAAH,GAAA,GAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,OAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAsB,CAAA,KAAA,EAAA,CAAA;AAAA,KACxB;AACA,IAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAoB,KAAOG,EAAAA,aAAAA,CAAAA,CAAAA;AAAA,GAC7B,CAAA;AACA,EAAA,MAAM,uBAAuB,MAAM;AA7NrC,IAAAT,IAAAA,GAAAA,CAAAA;AA8NI,IAAA,CAAAA,GAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,OAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA,CAAA;AACxB,IAAA,OAAA,CAAQ,CAAC,IAAI,CAAA,CAAA;AAAA,GACf,CAAA;AAGA,EAAA,MAAM,sBAAyB,GAAA;AAAA,IAC7B,SAAW,EAAA,IAAA;AAAA,IACX,OAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,iBAAA;AAAA,IACA,oBAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,gBAAA;AAAA,IACA,OAAA;AAAA,IACA,gBAAA;AAAA,GACF,CAAA;AAEA,EACE,uBAAAU,eAAA,CAACC,oCAAkB,QAAlB,EAAA;AAAA,IAA2B,KAAO,EAAA,sBAAA;AAAA,IACjC,QAAA,EAAA;AAAA,sBAACC,cAAA,CAAAC,mBAAA,EAAA;AAAA,QACC,gBAAA;AAAA,QACA,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAK,EAAA,QAAA;AAAA,QACJ,GAAG,iBAAkB,EAAA;AAAA,QACtB,aAAA;AAAA,QACA,WAAA;AAAA,QACA,WAAA;AAAA,QACA,aAAA;AAAA,QACA,QAAU,EAAA,UAAA;AAAA,QACV,iBAAA;AAAA,QACA,QAAA;AAAA,QACA,8BACGF,cAAA,CAAAG,WAAA,EAAA;AAAA,UACC,OAAQ,EAAA,WAAA;AAAA,UACR,OAAS,EAAA,oBAAA;AAAA,UACT,QAAA,EAAU,YAAY,UAAc,IAAA,iBAAA;AAAA,UACpC,YAAW,EAAA,eAAA;AAAA,UAEX,QAAC,kBAAAH,cAAA,CAAAI,kBAAA,EAAA;AAAA,YAAa,aAAW,EAAA,IAAA;AAAA,WAAC,CAAA;AAAA,SAC5B,CAAA;AAAA,QAED,GAAG,IAAA;AAAA,OACN,CAAA;AAAA,sBACCJ,cAAA,CAAAK,+BAAA,EAAA;AAAA,QACC,GAAK,EAAA,WAAA;AAAA,QACJ,GAAG,gBAAiB,EAAA;AAAA,QACrB,QAAU,EAAA,YAAA;AAAA,QACV,aAAevB,EAAAA,cAAAA;AAAA,QACf,UAAA;AAAA,QACA,aAAA;AAAA,OACF,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -5,26 +5,20 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var core = require('@salt-ds/core');
6
6
  var React = require('react');
7
7
 
8
- const DatePickerContext = core.createContext(
9
- "DatePickerContext",
10
- {
11
- openState: false,
12
- setOpen: () => void 0,
13
- disabled: false,
14
- startDate: void 0,
15
- defaultStartDate: void 0,
16
- setStartDate: () => void 0,
17
- startVisibleMonth: void 0,
18
- setStartVisibleMonth: () => void 0,
19
- endDate: void 0,
20
- defaultEndDate: void 0,
21
- setEndDate: () => void 0,
22
- endVisibleMonth: void 0,
23
- setEndVisibleMonth: () => void 0,
24
- selectionVariant: "default",
25
- getPanelPosition: () => ({})
26
- }
27
- );
8
+ const DatePickerContext = core.createContext("DatePickerContext", {
9
+ openState: false,
10
+ setOpen: () => void 0,
11
+ disabled: false,
12
+ selectedDate: void 0,
13
+ defaultSelectedDate: void 0,
14
+ setSelectedDate: () => void 0,
15
+ startVisibleMonth: void 0,
16
+ setStartVisibleMonth: () => void 0,
17
+ endVisibleMonth: void 0,
18
+ setEndVisibleMonth: () => void 0,
19
+ selectionVariant: "default",
20
+ getPanelPosition: () => ({})
21
+ });
28
22
  function useDatePickerContext() {
29
23
  return React.useContext(DatePickerContext);
30
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerContext.js","sources":["../src/date-picker/DatePickerContext.ts"],"sourcesContent":["import { createContext, UseFloatingUIReturn } from \"@salt-ds/core\";\nimport { useContext } from \"react\";\nimport { DateValue } from \"@internationalized/date\";\n\nexport interface DatePickerContextValue\n extends Partial<Pick<UseFloatingUIReturn, \"context\">> {\n openState: boolean;\n setOpen: (newOpen: boolean) => void;\n disabled: boolean;\n //start date values\n startDate: DateValue | undefined;\n defaultStartDate: DateValue | undefined;\n setStartDate: (newStartDate: DateValue | undefined) => void;\n startVisibleMonth: DateValue | undefined;\n setStartVisibleMonth: (newStartDate: DateValue | undefined) => void;\n // end date values for range picker\n endDate: DateValue | undefined;\n endVisibleMonth: DateValue | undefined;\n setEndVisibleMonth: (newStartDate: DateValue | undefined) => void;\n defaultEndDate: DateValue | undefined;\n setEndDate: (newEndDate: DateValue | undefined) => void;\n selectionVariant: \"default\" | \"range\";\n getPanelPosition: () => Record<string, unknown>;\n}\n\nexport const DatePickerContext = createContext<DatePickerContextValue>(\n \"DatePickerContext\",\n {\n openState: false,\n setOpen: () => undefined,\n disabled: false,\n startDate: undefined,\n defaultStartDate: undefined,\n setStartDate: () => undefined,\n startVisibleMonth: undefined,\n setStartVisibleMonth: () => undefined,\n endDate: undefined,\n defaultEndDate: undefined,\n setEndDate: () => undefined,\n endVisibleMonth: undefined,\n setEndVisibleMonth: () => undefined,\n selectionVariant: \"default\",\n getPanelPosition: () => ({}),\n }\n);\n\nexport function useDatePickerContext() {\n return useContext(DatePickerContext);\n}\n"],"names":["createContext","useContext"],"mappings":";;;;;;;AAyBO,MAAM,iBAAoB,GAAAA,kBAAA;AAAA,EAC/B,mBAAA;AAAA,EACA;AAAA,IACE,SAAW,EAAA,KAAA;AAAA,IACX,SAAS,MAAM,KAAA,CAAA;AAAA,IACf,QAAU,EAAA,KAAA;AAAA,IACV,SAAW,EAAA,KAAA,CAAA;AAAA,IACX,gBAAkB,EAAA,KAAA,CAAA;AAAA,IAClB,cAAc,MAAM,KAAA,CAAA;AAAA,IACpB,iBAAmB,EAAA,KAAA,CAAA;AAAA,IACnB,sBAAsB,MAAM,KAAA,CAAA;AAAA,IAC5B,OAAS,EAAA,KAAA,CAAA;AAAA,IACT,cAAgB,EAAA,KAAA,CAAA;AAAA,IAChB,YAAY,MAAM,KAAA,CAAA;AAAA,IAClB,eAAiB,EAAA,KAAA,CAAA;AAAA,IACjB,oBAAoB,MAAM,KAAA,CAAA;AAAA,IAC1B,gBAAkB,EAAA,SAAA;AAAA,IAClB,gBAAA,EAAkB,OAAO,EAAC,CAAA;AAAA,GAC5B;AACF,EAAA;AAEO,SAAS,oBAAuB,GAAA;AACrC,EAAA,OAAOC,iBAAW,iBAAiB,CAAA,CAAA;AACrC;;;;;"}
1
+ {"version":3,"file":"DatePickerContext.js","sources":["../src/date-picker/DatePickerContext.ts"],"sourcesContent":["import { createContext, UseFloatingUIReturn } from \"@salt-ds/core\";\nimport { useContext } from \"react\";\nimport { DateValue } from \"@internationalized/date\";\nimport { RangeSelectionValueType, SingleSelectionValueType } from \"../calendar\";\n\nexport interface DatePickerContextValue<SelectionVariantType>\n extends Partial<Pick<UseFloatingUIReturn, \"context\">> {\n openState: boolean;\n setOpen: (newOpen: boolean) => void;\n disabled: boolean;\n //\n selectedDate: SelectionVariantType | undefined;\n defaultSelectedDate: SelectionVariantType | undefined;\n setSelectedDate: (newStartDate: SelectionVariantType | undefined) => void;\n startVisibleMonth: DateValue | undefined;\n setStartVisibleMonth: (newStartDate: DateValue | undefined) => void;\n endVisibleMonth: DateValue | undefined;\n setEndVisibleMonth: (newStartDate: DateValue | undefined) => void;\n selectionVariant: \"default\" | \"range\";\n getPanelPosition: () => Record<string, unknown>;\n}\n\nexport const DatePickerContext = createContext<\n DatePickerContextValue<SingleSelectionValueType | RangeSelectionValueType>\n>(\"DatePickerContext\", {\n openState: false,\n setOpen: () => undefined,\n disabled: false,\n selectedDate: undefined,\n defaultSelectedDate: undefined,\n setSelectedDate: () => undefined,\n startVisibleMonth: undefined,\n setStartVisibleMonth: () => undefined,\n endVisibleMonth: undefined,\n setEndVisibleMonth: () => undefined,\n selectionVariant: \"default\",\n getPanelPosition: () => ({}),\n});\n\nexport function useDatePickerContext() {\n return useContext(DatePickerContext);\n}\n"],"names":["createContext","useContext"],"mappings":";;;;;;;AAsBa,MAAA,iBAAA,GAAoBA,mBAE/B,mBAAqB,EAAA;AAAA,EACrB,SAAW,EAAA,KAAA;AAAA,EACX,SAAS,MAAM,KAAA,CAAA;AAAA,EACf,QAAU,EAAA,KAAA;AAAA,EACV,YAAc,EAAA,KAAA,CAAA;AAAA,EACd,mBAAqB,EAAA,KAAA,CAAA;AAAA,EACrB,iBAAiB,MAAM,KAAA,CAAA;AAAA,EACvB,iBAAmB,EAAA,KAAA,CAAA;AAAA,EACnB,sBAAsB,MAAM,KAAA,CAAA;AAAA,EAC5B,eAAiB,EAAA,KAAA,CAAA;AAAA,EACjB,oBAAoB,MAAM,KAAA,CAAA;AAAA,EAC1B,gBAAkB,EAAA,SAAA;AAAA,EAClB,gBAAA,EAAkB,OAAO,EAAC,CAAA;AAC5B,CAAC,EAAA;AAEM,SAAS,oBAAuB,GAAA;AACrC,EAAA,OAAOC,iBAAW,iBAAiB,CAAA,CAAA;AACrC;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltDatePickerPanel {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n position: relative;\n z-index: var(--salt-zIndex-popout);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n display: flex;\n}\n.saltDatePickerPanel-container {\n width: min-content;\n gap: 1px;\n}\n\n.saltDatePickerPanel-header {\n padding: var(--salt-spacing-100);\n}\n";
3
+ var css_248z = ".saltDatePickerPanel {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n position: relative;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n display: flex;\n}\n.saltDatePickerPanel-container {\n width: min-content;\n gap: 1px;\n}\n\n.saltDatePickerPanel-header {\n padding: var(--salt-spacing-100);\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=DatePickerPanel.css.js.map