@medusajs/ui 2.1.0 → 2.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/dist/cjs/components/date-picker/date-picker.js +34 -11
- package/dist/cjs/components/date-picker/date-picker.js.map +1 -1
- package/dist/cjs/components/popover/index.d.ts +1 -0
- package/dist/cjs/components/popover/index.js +5 -0
- package/dist/cjs/components/popover/index.js.map +1 -0
- package/dist/cjs/components/popover/popover.d.ts +17 -0
- package/dist/cjs/components/popover/popover.js +41 -0
- package/dist/cjs/components/popover/popover.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/date-picker/date-picker.js +34 -11
- package/dist/esm/components/date-picker/date-picker.js.map +1 -1
- package/dist/esm/components/popover/index.d.ts +1 -0
- package/dist/esm/components/popover/index.js +2 -0
- package/dist/esm/components/popover/index.js.map +1 -0
- package/dist/esm/components/popover/popover.d.ts +17 -0
- package/dist/esm/components/popover/popover.js +37 -0
- package/dist/esm/components/popover/popover.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -140,9 +140,17 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
140
140
|
}, [open]);
|
|
141
141
|
const onCancel = () => {
|
|
142
142
|
setDate(initialDate);
|
|
143
|
-
setTime(
|
|
143
|
+
setTime(initialDate
|
|
144
|
+
? new date_1.Time(initialDate.getHours(), initialDate.getMinutes())
|
|
145
|
+
: new date_1.Time(0, 0));
|
|
144
146
|
setOpen(false);
|
|
145
147
|
};
|
|
148
|
+
const onOpenChange = (open) => {
|
|
149
|
+
if (!open) {
|
|
150
|
+
onCancel();
|
|
151
|
+
}
|
|
152
|
+
setOpen(open);
|
|
153
|
+
};
|
|
146
154
|
const onDateChange = (date) => {
|
|
147
155
|
const newDate = date;
|
|
148
156
|
if (showTimePicker) {
|
|
@@ -162,9 +170,8 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
162
170
|
newDate.setHours(time.hour);
|
|
163
171
|
newDate.setMinutes(time.minute);
|
|
164
172
|
}
|
|
165
|
-
setDate(newDate);
|
|
166
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newDate);
|
|
167
173
|
}
|
|
174
|
+
setDate(newDate);
|
|
168
175
|
};
|
|
169
176
|
const onTimeChange = (time) => {
|
|
170
177
|
setTime(time);
|
|
@@ -188,7 +195,6 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
188
195
|
newDate.setMinutes(time.minute);
|
|
189
196
|
}
|
|
190
197
|
setDate(newDate);
|
|
191
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newDate);
|
|
192
198
|
};
|
|
193
199
|
const formattedDate = React.useMemo(() => {
|
|
194
200
|
if (!date) {
|
|
@@ -196,7 +202,11 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
196
202
|
}
|
|
197
203
|
return formatDate(date, showTimePicker);
|
|
198
204
|
}, [date, showTimePicker]);
|
|
199
|
-
|
|
205
|
+
const onApply = () => {
|
|
206
|
+
setOpen(false);
|
|
207
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(date);
|
|
208
|
+
};
|
|
209
|
+
return (React.createElement(Primitives.Root, { open: open, onOpenChange: onOpenChange },
|
|
200
210
|
React.createElement(Display, { placeholder: "Pick a date", disabled: disabled, className: className, "aria-required": props.required || props["aria-required"], "aria-invalid": props["aria-invalid"], "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], size: size }, formattedDate),
|
|
201
211
|
React.createElement(Flyout, null,
|
|
202
212
|
React.createElement("div", { className: "flex" },
|
|
@@ -210,7 +220,7 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
210
220
|
React.createElement(time_input_1.TimeInput, { "aria-label": "Time", onChange: onTimeChange, isDisabled: !date, value: time, isRequired: props.required }))),
|
|
211
221
|
React.createElement("div", { className: "border-ui-border-base flex items-center gap-x-2 border-t p-3" },
|
|
212
222
|
React.createElement(button_1.Button, { variant: "secondary", className: "w-full", type: "button", onClick: onCancel }, "Cancel"),
|
|
213
|
-
React.createElement(button_1.Button, { variant: "primary", className: "w-full", type: "button", onClick:
|
|
223
|
+
React.createElement(button_1.Button, { variant: "primary", className: "w-full", type: "button", onClick: onApply }, "Apply"))))))));
|
|
214
224
|
};
|
|
215
225
|
const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTimePicker, presets, disabled, className, ...props }) => {
|
|
216
226
|
var _a;
|
|
@@ -268,14 +278,23 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
|
|
|
268
278
|
}
|
|
269
279
|
}
|
|
270
280
|
setRange(newRange);
|
|
271
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newRange);
|
|
272
281
|
};
|
|
273
282
|
const onCancel = () => {
|
|
274
283
|
setRange(initialRange);
|
|
275
|
-
setStartTime(
|
|
276
|
-
|
|
284
|
+
setStartTime((initialRange === null || initialRange === void 0 ? void 0 : initialRange.from)
|
|
285
|
+
? new date_1.Time(initialRange.from.getHours(), initialRange.from.getMinutes())
|
|
286
|
+
: new date_1.Time(0, 0));
|
|
287
|
+
setEndTime((initialRange === null || initialRange === void 0 ? void 0 : initialRange.to)
|
|
288
|
+
? new date_1.Time(initialRange.to.getHours(), initialRange.to.getMinutes())
|
|
289
|
+
: new date_1.Time(0, 0));
|
|
277
290
|
setOpen(false);
|
|
278
291
|
};
|
|
292
|
+
const onOpenChange = (open) => {
|
|
293
|
+
if (!open) {
|
|
294
|
+
onCancel();
|
|
295
|
+
}
|
|
296
|
+
setOpen(open);
|
|
297
|
+
};
|
|
279
298
|
const onTimeChange = (time, pos) => {
|
|
280
299
|
switch (pos) {
|
|
281
300
|
case "start":
|
|
@@ -331,7 +350,11 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
|
|
|
331
350
|
}
|
|
332
351
|
return `${range.from ? formatDate(range.from, showTimePicker) : ""} - ${range.to ? formatDate(range.to, showTimePicker) : ""}`;
|
|
333
352
|
}, [range, showTimePicker]);
|
|
334
|
-
|
|
353
|
+
const onApply = () => {
|
|
354
|
+
setOpen(false);
|
|
355
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(range);
|
|
356
|
+
};
|
|
357
|
+
return (React.createElement(Primitives.Root, { open: open, onOpenChange: onOpenChange },
|
|
335
358
|
React.createElement(Display, { placeholder: "Pick a date", disabled: disabled, className: className, "aria-required": props.required || props["aria-required"], "aria-invalid": props["aria-invalid"], "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], size: size }, displayRange),
|
|
336
359
|
React.createElement(Flyout, null,
|
|
337
360
|
React.createElement("div", { className: "flex" },
|
|
@@ -358,7 +381,7 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
|
|
|
358
381
|
displayRange),
|
|
359
382
|
React.createElement("div", { className: "flex items-center gap-x-2" },
|
|
360
383
|
React.createElement(button_1.Button, { variant: "secondary", type: "button", onClick: onCancel }, "Cancel"),
|
|
361
|
-
React.createElement(button_1.Button, { variant: "primary", type: "button", onClick:
|
|
384
|
+
React.createElement(button_1.Button, { variant: "primary", type: "button", onClick: onApply }, "Apply")))))))));
|
|
362
385
|
};
|
|
363
386
|
const validatePresets = (presets, rules) => {
|
|
364
387
|
const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/date-picker/date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { Time } from \"@internationalized/date\"\nimport { Calendar as CalendarIcon, Minus } from \"@medusajs/icons\"\nimport * as Primitives from \"@radix-ui/react-popover\"\nimport { TimeValue } from \"@react-aria/datepicker\"\nimport { format } from \"date-fns\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { Calendar as CalendarPrimitive } from \"@/components/calendar\"\nimport { TimeInput } from \"@/components/time-input\"\nimport type { DateRange } from \"@/types\"\nimport { clx } from \"@/utils/clx\"\nimport { isBrowserLocaleClockType24h } from \"@/utils/is-browser-locale-hour-cycle-24h\"\nimport { cva } from \"class-variance-authority\"\n\nconst displayVariants = cva(\n clx(\n \"text-ui-fg-base bg-ui-bg-field transition-fg shadow-buttons-neutral flex w-full items-center gap-x-2 rounded-md outline-none\",\n \"hover:bg-ui-bg-field-hover\",\n \"focus:shadow-borders-interactive-with-active data-[state=open]:shadow-borders-interactive-with-active\",\n \"disabled:bg-ui-bg-disabled disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral\",\n \"aria-[invalid=true]:!shadow-borders-error\"\n ),\n {\n variants: {\n size: {\n base: \"txt-compact-medium h-10 px-3 py-2.5\",\n small: \"txt-compact-small h-8 px-2 py-1.5\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n }\n)\n\nconst Display = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n placeholder?: string\n size?: \"small\" | \"base\"\n }\n>(({ className, children, placeholder, size = \"base\", ...props }, ref) => {\n return (\n <Primitives.Trigger asChild>\n <button\n ref={ref}\n className={clx(displayVariants({ size }), className)}\n {...props}\n >\n <CalendarIcon className=\"text-ui-fg-muted\" />\n <span className=\"flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-left\">\n {children ? (\n children\n ) : placeholder ? (\n <span className=\"text-ui-fg-muted\">{placeholder}</span>\n ) : null}\n </span>\n </button>\n </Primitives.Trigger>\n )\n})\nDisplay.displayName = \"DatePicker.Display\"\n\nconst Flyout = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentProps<typeof Primitives.Content>\n>(({ className, children, ...props }, ref) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={8}\n align=\"center\"\n className={clx(\n \"txt-compact-small shadow-elevation-flyout bg-ui-bg-base w-fit rounded-lg\",\n \"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n </Primitives.Content>\n </Primitives.Portal>\n )\n})\nFlyout.displayName = \"DatePicker.Flyout\"\n\ninterface Preset {\n label: string\n}\n\ninterface DatePreset extends Preset {\n date: Date\n}\n\ninterface DateRangePreset extends Preset {\n dateRange: DateRange\n}\n\ntype PresetContainerProps<TPreset extends Preset, TValue> = {\n presets: TPreset[] | TPreset[]\n onSelect: (value: TValue) => void\n currentValue?: TValue\n}\n\nconst PresetContainer = <TPreset extends Preset, TValue>({\n presets,\n onSelect,\n currentValue,\n}: PresetContainerProps<TPreset, TValue>) => {\n const isDateRangePresets = (preset: any): preset is DateRangePreset => {\n return \"dateRange\" in preset\n }\n\n const isDatePresets = (preset: any): preset is DatePreset => {\n return \"date\" in preset\n }\n\n const handleClick = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n onSelect(preset.dateRange as TValue)\n } else if (isDatePresets(preset)) {\n onSelect(preset.date as TValue)\n }\n }\n\n const compareDates = (date1: Date, date2: Date) => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n )\n }\n\n const compareRanges = (range1: DateRange, range2: DateRange) => {\n const from1 = range1.from\n const from2 = range2.from\n\n let equalFrom = false\n\n if (from1 && from2) {\n const sameFrom = compareDates(from1, from2)\n\n if (sameFrom) {\n equalFrom = true\n }\n }\n\n const to1 = range1.to\n const to2 = range2.to\n\n let equalTo = false\n\n if (to1 && to2) {\n const sameTo = compareDates(to1, to2)\n\n if (sameTo) {\n equalTo = true\n }\n }\n\n return equalFrom && equalTo\n }\n\n const matchesCurrent = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n const value = currentValue as DateRange | undefined\n\n return value && compareRanges(value, preset.dateRange)\n } else if (isDatePresets(preset)) {\n const value = currentValue as Date | undefined\n\n return value && compareDates(value, preset.date)\n }\n\n return false\n }\n\n return (\n <ul className=\"flex flex-col items-start\">\n {presets.map((preset, index) => {\n return (\n <li key={index} className=\"w-full\">\n <button\n className={clx(\n \"txt-compact-small-plus w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-md p-2 text-left\",\n \"text-ui-fg-subtle hover:bg-ui-bg-base-hover outline-none transition-all\",\n \"focus:bg-ui-bg-base-hover\",\n {\n \"!bg-ui-bg-base-pressed\": matchesCurrent(preset),\n }\n )}\n onClick={() => handleClick(preset)}\n aria-label={`Select ${preset.label}`}\n >\n {preset.label}\n </button>\n </li>\n )\n })}\n </ul>\n )\n}\n\nconst formatDate = (date: Date, includeTime?: boolean) => {\n const usesAmPm = !isBrowserLocaleClockType24h()\n\n if (includeTime) {\n if (usesAmPm) {\n return format(date, \"MMM d, yyyy h:mm a\")\n }\n\n return format(date, \"MMM d, yyyy HH:mm\")\n }\n\n return format(date, \"MMM d, yyyy\")\n}\n\ntype CalendarProps = {\n fromYear?: number\n toYear?: number\n fromMonth?: Date\n toMonth?: Date\n fromDay?: Date\n toDay?: Date\n fromDate?: Date\n toDate?: Date\n}\n\ninterface PickerProps extends CalendarProps {\n className?: string\n disabled?: boolean\n required?: boolean\n size?: \"small\" | \"base\"\n showTimePicker?: boolean\n id?: string\n \"aria-invalid\"?: boolean\n \"aria-label\"?: string\n \"aria-labelledby\"?: string\n \"aria-required\"?: boolean\n}\n\ninterface SingleProps extends PickerProps {\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n}\n\nconst SingleDatePicker = ({\n defaultValue,\n value,\n size = \"base\",\n onChange,\n presets,\n showTimePicker,\n disabled,\n className,\n ...props\n}: SingleProps) => {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n\n const [time, setTime] = React.useState<TimeValue>(\n value\n ? new Time(value.getHours(), value.getMinutes())\n : defaultValue\n ? new Time(defaultValue.getHours(), defaultValue.getMinutes())\n : new Time(0, 0)\n )\n\n const initialDate = React.useMemo(() => {\n return date\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the date when the value changes.\n */\n React.useEffect(() => {\n setDate(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (date) {\n setMonth(date)\n }\n }, [date])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(date)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onCancel = () => {\n setDate(initialDate)\n setTime(new Time(0, 0))\n setOpen(false)\n }\n\n const onDateChange = (date: Date | undefined) => {\n const newDate = date\n\n if (showTimePicker) {\n /**\n * If the time is cleared, and the date is\n * changed then we want to reset the time.\n */\n if (newDate && !time) {\n setTime(new Time(0, 0))\n }\n\n /**\n * If the time is set, and the date is changed\n * then we want to update the date with the\n * time.\n */\n if (newDate && time) {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n onChange?.(newDate)\n }\n }\n\n const onTimeChange = (time: TimeValue) => {\n setTime(time)\n\n if (!date) {\n return\n }\n\n const newDate = new Date(date.getTime())\n\n if (!time) {\n /**\n * When a segment of the time input is cleared,\n * it will return `null` as the value is no longer\n * a valid time. In this case, we want to set the\n * time to for the date, effectivly resetting the\n * input field.\n */\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n onChange?.(newDate)\n }\n\n const formattedDate = React.useMemo(() => {\n if (!date) {\n return null\n }\n\n return formatDate(date, showTimePicker)\n }, [date, showTimePicker])\n\n return (\n <Primitives.Root open={open} onOpenChange={setOpen}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {formattedDate}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={date}\n presets={presets}\n onSelect={onDateChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n disabled={disabled}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base border-t p-3\">\n <TimeInput\n aria-label=\"Time\"\n onChange={onTimeChange}\n isDisabled={!date}\n value={time}\n isRequired={props.required}\n />\n </div>\n )}\n <div className=\"border-ui-border-base flex items-center gap-x-2 border-t p-3\">\n <Button\n variant=\"secondary\"\n className=\"w-full\"\n type=\"button\"\n onClick={onCancel}\n >\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n className=\"w-full\"\n type=\"button\"\n onClick={() => setOpen(false)}\n >\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ninterface RangeProps extends PickerProps {\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n}\n\nconst RangeDatePicker = ({\n defaultValue,\n value,\n onChange,\n size = \"base\",\n showTimePicker,\n presets,\n disabled,\n className,\n ...props\n}: RangeProps) => {\n const [open, setOpen] = React.useState(false)\n const [range, setRange] = React.useState<DateRange | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(range?.from)\n\n const [startTime, setStartTime] = React.useState<TimeValue>(\n value?.from\n ? new Time(value.from.getHours(), value.from.getMinutes())\n : defaultValue?.from\n ? new Time(defaultValue.from.getHours(), defaultValue.from.getMinutes())\n : new Time(0, 0)\n )\n const [endTime, setEndTime] = React.useState<TimeValue>(\n value?.to\n ? new Time(value.to.getHours(), value.to.getMinutes())\n : defaultValue?.to\n ? new Time(defaultValue.to.getHours(), defaultValue.to.getMinutes())\n : new Time(0, 0)\n )\n\n const initialRange = React.useMemo(() => {\n return range\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the range when the value changes.\n */\n React.useEffect(() => {\n setRange(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (range) {\n setMonth(range.from)\n }\n }, [range])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(range?.from)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onRangeChange = (range: DateRange | undefined) => {\n const newRange = range\n\n if (showTimePicker) {\n if (newRange?.from && !startTime) {\n setStartTime(new Time(0, 0))\n }\n\n if (newRange?.to && !endTime) {\n setEndTime(new Time(0, 0))\n }\n\n if (newRange?.from && startTime) {\n newRange.from.setHours(startTime.hour)\n newRange.from.setMinutes(startTime.minute)\n }\n\n if (newRange?.to && endTime) {\n newRange.to.setHours(endTime.hour)\n newRange.to.setMinutes(endTime.minute)\n }\n }\n\n setRange(newRange)\n onChange?.(newRange)\n }\n\n const onCancel = () => {\n setRange(initialRange)\n setStartTime(new Time(0, 0))\n setEndTime(new Time(0, 0))\n setOpen(false)\n }\n\n const onTimeChange = (time: TimeValue, pos: \"start\" | \"end\") => {\n switch (pos) {\n case \"start\":\n setStartTime(time)\n break\n case \"end\":\n setEndTime(time)\n break\n }\n\n if (!range) {\n return\n }\n\n if (pos === \"start\") {\n if (!range.from) {\n return\n }\n\n const newDate = new Date(range.from.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n from: newDate,\n })\n }\n\n if (pos === \"end\") {\n if (!range.to) {\n return\n }\n\n const newDate = new Date(range.to.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n to: newDate,\n })\n }\n }\n\n const displayRange = React.useMemo(() => {\n if (!range) {\n return null\n }\n\n return `${range.from ? formatDate(range.from, showTimePicker) : \"\"} - ${\n range.to ? formatDate(range.to, showTimePicker) : \"\"\n }`\n }, [range, showTimePicker])\n\n return (\n <Primitives.Root open={open} onOpenChange={setOpen}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {displayRange}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={range}\n presets={presets}\n onSelect={onRangeChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"range\"\n selected={range}\n onSelect={onRangeChange}\n month={month}\n onMonthChange={setMonth}\n numberOfMonths={2}\n disabled={disabled}\n classNames={{\n months: \"flex flex-row divide-x divide-ui-border-base\",\n }}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3\">\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">Start:</span>\n <TimeInput\n value={startTime}\n onChange={(v) => onTimeChange(v, \"start\")}\n aria-label=\"Start date time\"\n isDisabled={!range?.from}\n isRequired={props.required}\n />\n </div>\n <Minus className=\"text-ui-fg-muted\" />\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">End:</span>\n <TimeInput\n value={endTime}\n onChange={(v) => onTimeChange(v, \"end\")}\n aria-label=\"End date time\"\n isDisabled={!range?.to}\n isRequired={props.required}\n />\n </div>\n </div>\n )}\n <div className=\"flex items-center justify-between border-t p-3\">\n <p className={clx(\"text-ui-fg-subtle txt-compact-small-plus\")}>\n <span className=\"text-ui-fg-muted\">Range:</span>{\" \"}\n {displayRange}\n </p>\n <div className=\"flex items-center gap-x-2\">\n <Button variant=\"secondary\" type=\"button\" onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n type=\"button\"\n onClick={() => setOpen(false)}\n >\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ntype DatePickerProps = (\n | {\n mode?: \"single\"\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n }\n | {\n mode: \"range\"\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n }\n) &\n PickerProps\n\nconst validatePresets = (\n presets: DateRangePreset[] | DatePreset[],\n rules: PickerProps\n) => {\n const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules\n\n if (presets && presets.length > 0) {\n const fromYearToUse = fromYear\n const toYearToUse = toYear\n\n presets.forEach((preset) => {\n if (\"date\" in preset) {\n const presetYear = preset.date.getFullYear()\n\n if (fromYear && presetYear < fromYear) {\n throw new Error(\n `Preset ${preset.label} is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (toYear && presetYear > toYear) {\n throw new Error(\n `Preset ${preset.label} is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is before fromMonth ${fromMonth}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is after toMonth ${toMonth}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is before fromDay ${fromDay}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n\n if (\"dateRange\" in preset) {\n const presetFromYear = preset.dateRange.from?.getFullYear()\n const presetToYear = preset.dateRange.to?.getFullYear()\n\n if (presetFromYear && fromYear && presetFromYear < fromYear) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (presetToYear && toYear && presetToYear > toYear) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.dateRange.from?.getMonth()\n\n if (presetMonth && presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromMonth ${format(\n fromMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.dateRange.to?.getMonth()\n\n if (presetMonth && presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toMonth ${format(\n toMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.dateRange.from?.getDate()\n\n if (presetDay && presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${\n preset.dateRange.from\n }'s 'from' is before fromDay ${format(fromDay, \"MMM dd, yyyy\")}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.dateRange.to?.getDate()\n\n if (presetDay && presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n })\n }\n}\n\nconst DatePicker = ({ mode = \"single\", ...props }: DatePickerProps) => {\n if (props.presets) {\n validatePresets(props.presets, props)\n }\n\n if (mode === \"single\") {\n return <SingleDatePicker {...(props as SingleProps)} />\n }\n\n return <RangeDatePicker {...(props as RangeProps)} />\n}\n\nexport { DatePicker }\n"]}
|
|
1
|
+
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/date-picker/date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { Time } from \"@internationalized/date\"\nimport { Calendar as CalendarIcon, Minus } from \"@medusajs/icons\"\nimport * as Primitives from \"@radix-ui/react-popover\"\nimport { TimeValue } from \"@react-aria/datepicker\"\nimport { format } from \"date-fns\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { Calendar as CalendarPrimitive } from \"@/components/calendar\"\nimport { TimeInput } from \"@/components/time-input\"\nimport type { DateRange } from \"@/types\"\nimport { clx } from \"@/utils/clx\"\nimport { isBrowserLocaleClockType24h } from \"@/utils/is-browser-locale-hour-cycle-24h\"\nimport { cva } from \"class-variance-authority\"\n\nconst displayVariants = cva(\n clx(\n \"text-ui-fg-base bg-ui-bg-field transition-fg shadow-buttons-neutral flex w-full items-center gap-x-2 rounded-md outline-none\",\n \"hover:bg-ui-bg-field-hover\",\n \"focus:shadow-borders-interactive-with-active data-[state=open]:shadow-borders-interactive-with-active\",\n \"disabled:bg-ui-bg-disabled disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral\",\n \"aria-[invalid=true]:!shadow-borders-error\"\n ),\n {\n variants: {\n size: {\n base: \"txt-compact-medium h-10 px-3 py-2.5\",\n small: \"txt-compact-small h-8 px-2 py-1.5\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n }\n)\n\nconst Display = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n placeholder?: string\n size?: \"small\" | \"base\"\n }\n>(({ className, children, placeholder, size = \"base\", ...props }, ref) => {\n return (\n <Primitives.Trigger asChild>\n <button\n ref={ref}\n className={clx(displayVariants({ size }), className)}\n {...props}\n >\n <CalendarIcon className=\"text-ui-fg-muted\" />\n <span className=\"flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-left\">\n {children ? (\n children\n ) : placeholder ? (\n <span className=\"text-ui-fg-muted\">{placeholder}</span>\n ) : null}\n </span>\n </button>\n </Primitives.Trigger>\n )\n})\nDisplay.displayName = \"DatePicker.Display\"\n\nconst Flyout = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentProps<typeof Primitives.Content>\n>(({ className, children, ...props }, ref) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={8}\n align=\"center\"\n className={clx(\n \"txt-compact-small shadow-elevation-flyout bg-ui-bg-base w-fit rounded-lg\",\n \"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n </Primitives.Content>\n </Primitives.Portal>\n )\n})\nFlyout.displayName = \"DatePicker.Flyout\"\n\ninterface Preset {\n label: string\n}\n\ninterface DatePreset extends Preset {\n date: Date\n}\n\ninterface DateRangePreset extends Preset {\n dateRange: DateRange\n}\n\ntype PresetContainerProps<TPreset extends Preset, TValue> = {\n presets: TPreset[] | TPreset[]\n onSelect: (value: TValue) => void\n currentValue?: TValue\n}\n\nconst PresetContainer = <TPreset extends Preset, TValue>({\n presets,\n onSelect,\n currentValue,\n}: PresetContainerProps<TPreset, TValue>) => {\n const isDateRangePresets = (preset: any): preset is DateRangePreset => {\n return \"dateRange\" in preset\n }\n\n const isDatePresets = (preset: any): preset is DatePreset => {\n return \"date\" in preset\n }\n\n const handleClick = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n onSelect(preset.dateRange as TValue)\n } else if (isDatePresets(preset)) {\n onSelect(preset.date as TValue)\n }\n }\n\n const compareDates = (date1: Date, date2: Date) => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n )\n }\n\n const compareRanges = (range1: DateRange, range2: DateRange) => {\n const from1 = range1.from\n const from2 = range2.from\n\n let equalFrom = false\n\n if (from1 && from2) {\n const sameFrom = compareDates(from1, from2)\n\n if (sameFrom) {\n equalFrom = true\n }\n }\n\n const to1 = range1.to\n const to2 = range2.to\n\n let equalTo = false\n\n if (to1 && to2) {\n const sameTo = compareDates(to1, to2)\n\n if (sameTo) {\n equalTo = true\n }\n }\n\n return equalFrom && equalTo\n }\n\n const matchesCurrent = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n const value = currentValue as DateRange | undefined\n\n return value && compareRanges(value, preset.dateRange)\n } else if (isDatePresets(preset)) {\n const value = currentValue as Date | undefined\n\n return value && compareDates(value, preset.date)\n }\n\n return false\n }\n\n return (\n <ul className=\"flex flex-col items-start\">\n {presets.map((preset, index) => {\n return (\n <li key={index} className=\"w-full\">\n <button\n className={clx(\n \"txt-compact-small-plus w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-md p-2 text-left\",\n \"text-ui-fg-subtle hover:bg-ui-bg-base-hover outline-none transition-all\",\n \"focus:bg-ui-bg-base-hover\",\n {\n \"!bg-ui-bg-base-pressed\": matchesCurrent(preset),\n }\n )}\n onClick={() => handleClick(preset)}\n aria-label={`Select ${preset.label}`}\n >\n {preset.label}\n </button>\n </li>\n )\n })}\n </ul>\n )\n}\n\nconst formatDate = (date: Date, includeTime?: boolean) => {\n const usesAmPm = !isBrowserLocaleClockType24h()\n\n if (includeTime) {\n if (usesAmPm) {\n return format(date, \"MMM d, yyyy h:mm a\")\n }\n\n return format(date, \"MMM d, yyyy HH:mm\")\n }\n\n return format(date, \"MMM d, yyyy\")\n}\n\ntype CalendarProps = {\n fromYear?: number\n toYear?: number\n fromMonth?: Date\n toMonth?: Date\n fromDay?: Date\n toDay?: Date\n fromDate?: Date\n toDate?: Date\n}\n\ninterface PickerProps extends CalendarProps {\n className?: string\n disabled?: boolean\n required?: boolean\n size?: \"small\" | \"base\"\n showTimePicker?: boolean\n id?: string\n \"aria-invalid\"?: boolean\n \"aria-label\"?: string\n \"aria-labelledby\"?: string\n \"aria-required\"?: boolean\n}\n\ninterface SingleProps extends PickerProps {\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n}\n\nconst SingleDatePicker = ({\n defaultValue,\n value,\n size = \"base\",\n onChange,\n presets,\n showTimePicker,\n disabled,\n className,\n ...props\n}: SingleProps) => {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n\n const [time, setTime] = React.useState<TimeValue>(\n value\n ? new Time(value.getHours(), value.getMinutes())\n : defaultValue\n ? new Time(defaultValue.getHours(), defaultValue.getMinutes())\n : new Time(0, 0)\n )\n\n const initialDate = React.useMemo(() => {\n return date\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the date when the value changes.\n */\n React.useEffect(() => {\n setDate(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (date) {\n setMonth(date)\n }\n }, [date])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(date)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onCancel = () => {\n setDate(initialDate)\n setTime(\n initialDate\n ? new Time(initialDate.getHours(), initialDate.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onDateChange = (date: Date | undefined) => {\n const newDate = date\n\n if (showTimePicker) {\n /**\n * If the time is cleared, and the date is\n * changed then we want to reset the time.\n */\n if (newDate && !time) {\n setTime(new Time(0, 0))\n }\n\n /**\n * If the time is set, and the date is changed\n * then we want to update the date with the\n * time.\n */\n if (newDate && time) {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n }\n\n setDate(newDate)\n }\n\n const onTimeChange = (time: TimeValue) => {\n setTime(time)\n\n if (!date) {\n return\n }\n\n const newDate = new Date(date.getTime())\n\n if (!time) {\n /**\n * When a segment of the time input is cleared,\n * it will return `null` as the value is no longer\n * a valid time. In this case, we want to set the\n * time to for the date, effectivly resetting the\n * input field.\n */\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n }\n\n const formattedDate = React.useMemo(() => {\n if (!date) {\n return null\n }\n\n return formatDate(date, showTimePicker)\n }, [date, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(date)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {formattedDate}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={date}\n presets={presets}\n onSelect={onDateChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n disabled={disabled}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base border-t p-3\">\n <TimeInput\n aria-label=\"Time\"\n onChange={onTimeChange}\n isDisabled={!date}\n value={time}\n isRequired={props.required}\n />\n </div>\n )}\n <div className=\"border-ui-border-base flex items-center gap-x-2 border-t p-3\">\n <Button\n variant=\"secondary\"\n className=\"w-full\"\n type=\"button\"\n onClick={onCancel}\n >\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n className=\"w-full\"\n type=\"button\"\n onClick={onApply}\n >\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ninterface RangeProps extends PickerProps {\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n}\n\nconst RangeDatePicker = ({\n defaultValue,\n value,\n onChange,\n size = \"base\",\n showTimePicker,\n presets,\n disabled,\n className,\n ...props\n}: RangeProps) => {\n const [open, setOpen] = React.useState(false)\n const [range, setRange] = React.useState<DateRange | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(range?.from)\n\n const [startTime, setStartTime] = React.useState<TimeValue>(\n value?.from\n ? new Time(value.from.getHours(), value.from.getMinutes())\n : defaultValue?.from\n ? new Time(defaultValue.from.getHours(), defaultValue.from.getMinutes())\n : new Time(0, 0)\n )\n const [endTime, setEndTime] = React.useState<TimeValue>(\n value?.to\n ? new Time(value.to.getHours(), value.to.getMinutes())\n : defaultValue?.to\n ? new Time(defaultValue.to.getHours(), defaultValue.to.getMinutes())\n : new Time(0, 0)\n )\n\n const initialRange = React.useMemo(() => {\n return range\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the range when the value changes.\n */\n React.useEffect(() => {\n setRange(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (range) {\n setMonth(range.from)\n }\n }, [range])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(range?.from)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onRangeChange = (range: DateRange | undefined) => {\n const newRange = range\n\n if (showTimePicker) {\n if (newRange?.from && !startTime) {\n setStartTime(new Time(0, 0))\n }\n\n if (newRange?.to && !endTime) {\n setEndTime(new Time(0, 0))\n }\n\n if (newRange?.from && startTime) {\n newRange.from.setHours(startTime.hour)\n newRange.from.setMinutes(startTime.minute)\n }\n\n if (newRange?.to && endTime) {\n newRange.to.setHours(endTime.hour)\n newRange.to.setMinutes(endTime.minute)\n }\n }\n\n setRange(newRange)\n }\n\n const onCancel = () => {\n setRange(initialRange)\n setStartTime(\n initialRange?.from\n ? new Time(initialRange.from.getHours(), initialRange.from.getMinutes())\n : new Time(0, 0)\n )\n setEndTime(\n initialRange?.to\n ? new Time(initialRange.to.getHours(), initialRange.to.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onTimeChange = (time: TimeValue, pos: \"start\" | \"end\") => {\n switch (pos) {\n case \"start\":\n setStartTime(time)\n break\n case \"end\":\n setEndTime(time)\n break\n }\n\n if (!range) {\n return\n }\n\n if (pos === \"start\") {\n if (!range.from) {\n return\n }\n\n const newDate = new Date(range.from.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n from: newDate,\n })\n }\n\n if (pos === \"end\") {\n if (!range.to) {\n return\n }\n\n const newDate = new Date(range.to.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n to: newDate,\n })\n }\n }\n\n const displayRange = React.useMemo(() => {\n if (!range) {\n return null\n }\n\n return `${range.from ? formatDate(range.from, showTimePicker) : \"\"} - ${\n range.to ? formatDate(range.to, showTimePicker) : \"\"\n }`\n }, [range, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(range)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {displayRange}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={range}\n presets={presets}\n onSelect={onRangeChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"range\"\n selected={range}\n onSelect={onRangeChange}\n month={month}\n onMonthChange={setMonth}\n numberOfMonths={2}\n disabled={disabled}\n classNames={{\n months: \"flex flex-row divide-x divide-ui-border-base\",\n }}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3\">\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">Start:</span>\n <TimeInput\n value={startTime}\n onChange={(v) => onTimeChange(v, \"start\")}\n aria-label=\"Start date time\"\n isDisabled={!range?.from}\n isRequired={props.required}\n />\n </div>\n <Minus className=\"text-ui-fg-muted\" />\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">End:</span>\n <TimeInput\n value={endTime}\n onChange={(v) => onTimeChange(v, \"end\")}\n aria-label=\"End date time\"\n isDisabled={!range?.to}\n isRequired={props.required}\n />\n </div>\n </div>\n )}\n <div className=\"flex items-center justify-between border-t p-3\">\n <p className={clx(\"text-ui-fg-subtle txt-compact-small-plus\")}>\n <span className=\"text-ui-fg-muted\">Range:</span>{\" \"}\n {displayRange}\n </p>\n <div className=\"flex items-center gap-x-2\">\n <Button variant=\"secondary\" type=\"button\" onClick={onCancel}>\n Cancel\n </Button>\n <Button variant=\"primary\" type=\"button\" onClick={onApply}>\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ntype DatePickerProps = (\n | {\n mode?: \"single\"\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n }\n | {\n mode: \"range\"\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n }\n) &\n PickerProps\n\nconst validatePresets = (\n presets: DateRangePreset[] | DatePreset[],\n rules: PickerProps\n) => {\n const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules\n\n if (presets && presets.length > 0) {\n const fromYearToUse = fromYear\n const toYearToUse = toYear\n\n presets.forEach((preset) => {\n if (\"date\" in preset) {\n const presetYear = preset.date.getFullYear()\n\n if (fromYear && presetYear < fromYear) {\n throw new Error(\n `Preset ${preset.label} is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (toYear && presetYear > toYear) {\n throw new Error(\n `Preset ${preset.label} is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is before fromMonth ${fromMonth}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is after toMonth ${toMonth}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is before fromDay ${fromDay}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n\n if (\"dateRange\" in preset) {\n const presetFromYear = preset.dateRange.from?.getFullYear()\n const presetToYear = preset.dateRange.to?.getFullYear()\n\n if (presetFromYear && fromYear && presetFromYear < fromYear) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (presetToYear && toYear && presetToYear > toYear) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.dateRange.from?.getMonth()\n\n if (presetMonth && presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromMonth ${format(\n fromMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.dateRange.to?.getMonth()\n\n if (presetMonth && presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toMonth ${format(\n toMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.dateRange.from?.getDate()\n\n if (presetDay && presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${\n preset.dateRange.from\n }'s 'from' is before fromDay ${format(fromDay, \"MMM dd, yyyy\")}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.dateRange.to?.getDate()\n\n if (presetDay && presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n })\n }\n}\n\nconst DatePicker = ({ mode = \"single\", ...props }: DatePickerProps) => {\n if (props.presets) {\n validatePresets(props.presets, props)\n }\n\n if (mode === \"single\") {\n return <SingleDatePicker {...(props as SingleProps)} />\n }\n\n return <RangeDatePicker {...(props as RangeProps)} />\n}\n\nexport { DatePicker }\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./popover";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/popover/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB","sourcesContent":["export * from \"./popover\"\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Primitives from "@radix-ui/react-popover";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const Root: {
|
|
4
|
+
(props: React.ComponentPropsWithoutRef<typeof Primitives.Root>): React.JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
declare const Popover: {
|
|
8
|
+
(props: React.ComponentPropsWithoutRef<typeof Primitives.Root>): React.JSX.Element;
|
|
9
|
+
displayName: string;
|
|
10
|
+
} & {
|
|
11
|
+
Trigger: React.ForwardRefExoticComponent<Omit<Primitives.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
12
|
+
Anchor: React.ForwardRefExoticComponent<Omit<Primitives.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
Close: React.ForwardRefExoticComponent<Omit<Primitives.PopoverCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
14
|
+
Content: React.ForwardRefExoticComponent<Omit<Primitives.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
Seperator: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
};
|
|
17
|
+
export { Popover };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Popover = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const Primitives = tslib_1.__importStar(require("@radix-ui/react-popover"));
|
|
6
|
+
const React = tslib_1.__importStar(require("react"));
|
|
7
|
+
const clx_1 = require("../../utils/clx");
|
|
8
|
+
const Root = (props) => {
|
|
9
|
+
return React.createElement(Primitives.Root, { ...props });
|
|
10
|
+
};
|
|
11
|
+
Root.displayName = "Popover";
|
|
12
|
+
const Trigger = React.forwardRef((props, ref) => {
|
|
13
|
+
return React.createElement(Primitives.Trigger, { ref: ref, ...props });
|
|
14
|
+
});
|
|
15
|
+
Trigger.displayName = "Popover.Trigger";
|
|
16
|
+
const Anchor = React.forwardRef((props, ref) => {
|
|
17
|
+
return React.createElement(Primitives.Anchor, { ref: ref, ...props });
|
|
18
|
+
});
|
|
19
|
+
Anchor.displayName = "Popover.Anchor";
|
|
20
|
+
const Close = React.forwardRef((props, ref) => {
|
|
21
|
+
return React.createElement(Primitives.Close, { ref: ref, ...props });
|
|
22
|
+
});
|
|
23
|
+
Close.displayName = "Popover.Close";
|
|
24
|
+
const Content = React.forwardRef(({ className, sideOffset = 8, side = "bottom", align = "start", collisionPadding, ...props }, ref) => {
|
|
25
|
+
return (React.createElement(Primitives.Portal, null,
|
|
26
|
+
React.createElement(Primitives.Content, { ref: ref, sideOffset: sideOffset, side: side, align: align, collisionPadding: collisionPadding, className: (0, clx_1.clx)("bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout max-h-[var(--radix-popper-available-height)] min-w-[220px] overflow-hidden rounded-lg p-1", "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className), ...props })));
|
|
27
|
+
});
|
|
28
|
+
Content.displayName = "Popover.Content";
|
|
29
|
+
const Seperator = React.forwardRef(({ className, ...props }, ref) => {
|
|
30
|
+
return (React.createElement("div", { ref: ref, className: (0, clx_1.clx)("bg-ui-border-base -mx-1 my-1 h-px", className), ...props }));
|
|
31
|
+
});
|
|
32
|
+
Seperator.displayName = "Popover.Seperator";
|
|
33
|
+
const Popover = Object.assign(Root, {
|
|
34
|
+
Trigger,
|
|
35
|
+
Anchor,
|
|
36
|
+
Close,
|
|
37
|
+
Content,
|
|
38
|
+
Seperator,
|
|
39
|
+
});
|
|
40
|
+
exports.Popover = Popover;
|
|
41
|
+
//# sourceMappingURL=popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../../src/components/popover/popover.tsx"],"names":[],"mappings":";;;;AAAA,4EAAqD;AACrD,qDAA8B;AAE9B,qCAAiC;AAEjC,MAAM,IAAI,GAAG,CACX,KAA6D,EAC7D,EAAE;IACF,OAAO,oBAAC,UAAU,CAAC,IAAI,OAAK,KAAK,GAAI,CAAA;AACvC,CAAC,CAAA;AACD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;AAE5B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAG9B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,OAAO,oBAAC,UAAU,CAAC,OAAO,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAA;AACpD,CAAC,CAAC,CAAA;AACF,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,OAAO,oBAAC,UAAU,CAAC,MAAM,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAA;AACnD,CAAC,CAAC,CAAA;AACF,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAA;AAErC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,OAAO,oBAAC,UAAU,CAAC,KAAK,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAA;AAClD,CAAC,CAAC,CAAA;AACF,KAAK,CAAC,WAAW,GAAG,eAAe,CAAA;AAEnC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAI9B,CACE,EACE,SAAS,EACT,UAAU,GAAG,CAAC,EACd,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,OAAO,EACf,gBAAgB,EAChB,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,OAAO,CACL,oBAAC,UAAU,CAAC,MAAM;QAChB,oBAAC,UAAU,CAAC,OAAO,IACjB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,IAAA,SAAG,EACZ,iJAAiJ,EACjJ,kVAAkV,EAClV,SAAS,CACV,KACG,KAAK,GACT,CACgB,CACrB,CAAA;AACH,CAAC,CACF,CAAA;AACD,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAEvC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACjC,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,SAAG,EAAC,mCAAmC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AACF,SAAS,CAAC,WAAW,GAAG,mBAAmB,CAAA;AAE3C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IAClC,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;CACV,CAAC,CAAA;AAEO,0BAAO","sourcesContent":["import * as Primitives from \"@radix-ui/react-popover\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst Root = (\n props: React.ComponentPropsWithoutRef<typeof Primitives.Root>\n) => {\n return <Primitives.Root {...props} />\n}\nRoot.displayName = \"Popover\"\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof Primitives.Trigger>,\n React.ComponentPropsWithoutRef<typeof Primitives.Trigger>\n>((props, ref) => {\n return <Primitives.Trigger ref={ref} {...props} />\n})\nTrigger.displayName = \"Popover.Trigger\"\n\nconst Anchor = React.forwardRef<\n React.ElementRef<typeof Primitives.Anchor>,\n React.ComponentPropsWithoutRef<typeof Primitives.Anchor>\n>((props, ref) => {\n return <Primitives.Anchor ref={ref} {...props} />\n})\nAnchor.displayName = \"Popover.Anchor\"\n\nconst Close = React.forwardRef<\n React.ElementRef<typeof Primitives.Close>,\n React.ComponentPropsWithoutRef<typeof Primitives.Close>\n>((props, ref) => {\n return <Primitives.Close ref={ref} {...props} />\n})\nClose.displayName = \"Popover.Close\"\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentPropsWithoutRef<typeof Primitives.Content>\n>(\n (\n {\n className,\n sideOffset = 8,\n side = \"bottom\",\n align = \"start\",\n collisionPadding,\n ...props\n },\n ref\n ) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={sideOffset}\n side={side}\n align={align}\n collisionPadding={collisionPadding}\n className={clx(\n \"bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout max-h-[var(--radix-popper-available-height)] min-w-[220px] overflow-hidden rounded-lg p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </Primitives.Portal>\n )\n }\n)\nContent.displayName = \"Popover.Content\"\n\nconst Seperator = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\"bg-ui-border-base -mx-1 my-1 h-px\", className)}\n {...props}\n />\n )\n})\nSeperator.displayName = \"Popover.Seperator\"\n\nconst Popover = Object.assign(Root, {\n Trigger,\n Anchor,\n Close,\n Content,\n Seperator,\n})\n\nexport { Popover }\n"]}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export { Textarea } from "./components/textarea";
|
|
|
35
35
|
export { Toast } from "./components/toast";
|
|
36
36
|
export { Toaster } from "./components/toaster";
|
|
37
37
|
export { Tooltip } from "./components/tooltip";
|
|
38
|
+
export { Popover } from "./components/popover";
|
|
38
39
|
export { usePrompt } from "./hooks/use-prompt";
|
|
39
40
|
export { useToast } from "./hooks/use-toast";
|
|
40
41
|
export { useToggleState } from "./hooks/use-toggle-state";
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clx = exports.useToggleState = exports.useToast = exports.usePrompt = exports.Tooltip = exports.Toaster = exports.Toast = exports.Textarea = exports.Text = exports.Tabs = exports.Table = exports.Switch = exports.StatusBadge = exports.Select = exports.RadioGroup = exports.Prompt = exports.ProgressTabs = exports.ProgressAccordion = exports.Label = exports.Kbd = exports.Input = exports.IconButton = exports.IconBadge = exports.Hint = exports.Heading = exports.FocusModal = exports.DropdownMenu = exports.Drawer = exports.DatePicker = exports.CurrencyInput = exports.Copy = exports.Container = exports.CommandBar = exports.Command = exports.CodeBlock = exports.Code = exports.Checkbox = exports.Calendar = exports.Button = exports.Badge = exports.Avatar = void 0;
|
|
3
|
+
exports.clx = exports.useToggleState = exports.useToast = exports.usePrompt = exports.Popover = exports.Tooltip = exports.Toaster = exports.Toast = exports.Textarea = exports.Text = exports.Tabs = exports.Table = exports.Switch = exports.StatusBadge = exports.Select = exports.RadioGroup = exports.Prompt = exports.ProgressTabs = exports.ProgressAccordion = exports.Label = exports.Kbd = exports.Input = exports.IconButton = exports.IconBadge = exports.Hint = exports.Heading = exports.FocusModal = exports.DropdownMenu = exports.Drawer = exports.DatePicker = exports.CurrencyInput = exports.Copy = exports.Container = exports.CommandBar = exports.Command = exports.CodeBlock = exports.Code = exports.Checkbox = exports.Calendar = exports.Button = exports.Badge = exports.Avatar = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
var avatar_1 = require("./components/avatar");
|
|
6
6
|
Object.defineProperty(exports, "Avatar", { enumerable: true, get: function () { return avatar_1.Avatar; } });
|
|
@@ -76,6 +76,8 @@ var toaster_1 = require("./components/toaster");
|
|
|
76
76
|
Object.defineProperty(exports, "Toaster", { enumerable: true, get: function () { return toaster_1.Toaster; } });
|
|
77
77
|
var tooltip_1 = require("./components/tooltip");
|
|
78
78
|
Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return tooltip_1.Tooltip; } });
|
|
79
|
+
var popover_1 = require("./components/popover");
|
|
80
|
+
Object.defineProperty(exports, "Popover", { enumerable: true, get: function () { return popover_1.Popover; } });
|
|
79
81
|
// Hooks
|
|
80
82
|
var use_prompt_1 = require("./hooks/use-prompt");
|
|
81
83
|
Object.defineProperty(exports, "usePrompt", { enumerable: true, get: function () { return use_prompt_1.usePrompt; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,oDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,8DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,wCAAsC;AAA7B,0FAAA,GAAG,OAAA;AACZ,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,sEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,0DAAuD;AAA9C,2GAAA,WAAW,OAAA;AACpB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAEhB,QAAQ;AACR,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,6DAAyD;AAAhD,kHAAA,cAAc,OAAA;AAEvB,QAAQ;AACR,mCAAiC;AAAxB,0FAAA,GAAG,OAAA;AAEZ,QAAQ;AACR,kDAAuB","sourcesContent":["export { Avatar } from \"./components/avatar\"\nexport { Badge } from \"./components/badge\"\nexport { Button } from \"./components/button\"\nexport { Calendar } from \"./components/calendar\"\nexport { Checkbox } from \"./components/checkbox\"\nexport { Code } from \"./components/code\"\nexport { CodeBlock } from \"./components/code-block\"\nexport { Command } from \"./components/command\"\nexport { CommandBar } from \"./components/command-bar\"\nexport { Container } from \"./components/container\"\nexport { Copy } from \"./components/copy\"\nexport { CurrencyInput } from \"./components/currency-input\"\nexport { DatePicker } from \"./components/date-picker\"\nexport { Drawer } from \"./components/drawer\"\nexport { DropdownMenu } from \"./components/dropdown-menu\"\nexport { FocusModal } from \"./components/focus-modal\"\nexport { Heading } from \"./components/heading\"\nexport { Hint } from \"./components/hint\"\nexport { IconBadge } from \"./components/icon-badge\"\nexport { IconButton } from \"./components/icon-button\"\nexport { Input } from \"./components/input\"\nexport { Kbd } from \"./components/kbd\"\nexport { Label } from \"./components/label\"\nexport { ProgressAccordion } from \"./components/progress-accordion\"\nexport { ProgressTabs } from \"./components/progress-tabs\"\nexport { Prompt } from \"./components/prompt\"\nexport { RadioGroup } from \"./components/radio-group\"\nexport { Select } from \"./components/select\"\nexport { StatusBadge } from \"./components/status-badge\"\nexport { Switch } from \"./components/switch\"\nexport { Table } from \"./components/table\"\nexport { Tabs } from \"./components/tabs\"\nexport { Text } from \"./components/text\"\nexport { Textarea } from \"./components/textarea\"\nexport { Toast } from \"./components/toast\"\nexport { Toaster } from \"./components/toaster\"\nexport { Tooltip } from \"./components/tooltip\"\n\n// Hooks\nexport { usePrompt } from \"./hooks/use-prompt\"\nexport { useToast } from \"./hooks/use-toast\"\nexport { useToggleState } from \"./hooks/use-toggle-state\"\n\n// Utils\nexport { clx } from \"./utils/clx\"\n\n// Types\nexport * from \"./types\"\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,oDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,8DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,wCAAsC;AAA7B,0FAAA,GAAG,OAAA;AACZ,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,sEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,0DAAuD;AAA9C,2GAAA,WAAW,OAAA;AACpB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAEhB,QAAQ;AACR,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,6DAAyD;AAAhD,kHAAA,cAAc,OAAA;AAEvB,QAAQ;AACR,mCAAiC;AAAxB,0FAAA,GAAG,OAAA;AAEZ,QAAQ;AACR,kDAAuB","sourcesContent":["export { Avatar } from \"./components/avatar\"\nexport { Badge } from \"./components/badge\"\nexport { Button } from \"./components/button\"\nexport { Calendar } from \"./components/calendar\"\nexport { Checkbox } from \"./components/checkbox\"\nexport { Code } from \"./components/code\"\nexport { CodeBlock } from \"./components/code-block\"\nexport { Command } from \"./components/command\"\nexport { CommandBar } from \"./components/command-bar\"\nexport { Container } from \"./components/container\"\nexport { Copy } from \"./components/copy\"\nexport { CurrencyInput } from \"./components/currency-input\"\nexport { DatePicker } from \"./components/date-picker\"\nexport { Drawer } from \"./components/drawer\"\nexport { DropdownMenu } from \"./components/dropdown-menu\"\nexport { FocusModal } from \"./components/focus-modal\"\nexport { Heading } from \"./components/heading\"\nexport { Hint } from \"./components/hint\"\nexport { IconBadge } from \"./components/icon-badge\"\nexport { IconButton } from \"./components/icon-button\"\nexport { Input } from \"./components/input\"\nexport { Kbd } from \"./components/kbd\"\nexport { Label } from \"./components/label\"\nexport { ProgressAccordion } from \"./components/progress-accordion\"\nexport { ProgressTabs } from \"./components/progress-tabs\"\nexport { Prompt } from \"./components/prompt\"\nexport { RadioGroup } from \"./components/radio-group\"\nexport { Select } from \"./components/select\"\nexport { StatusBadge } from \"./components/status-badge\"\nexport { Switch } from \"./components/switch\"\nexport { Table } from \"./components/table\"\nexport { Tabs } from \"./components/tabs\"\nexport { Text } from \"./components/text\"\nexport { Textarea } from \"./components/textarea\"\nexport { Toast } from \"./components/toast\"\nexport { Toaster } from \"./components/toaster\"\nexport { Tooltip } from \"./components/tooltip\"\nexport { Popover } from \"./components/popover\"\n\n// Hooks\nexport { usePrompt } from \"./hooks/use-prompt\"\nexport { useToast } from \"./hooks/use-toast\"\nexport { useToggleState } from \"./hooks/use-toggle-state\"\n\n// Utils\nexport { clx } from \"./utils/clx\"\n\n// Types\nexport * from \"./types\"\n"]}
|
|
@@ -136,9 +136,17 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
136
136
|
}, [open]);
|
|
137
137
|
const onCancel = () => {
|
|
138
138
|
setDate(initialDate);
|
|
139
|
-
setTime(
|
|
139
|
+
setTime(initialDate
|
|
140
|
+
? new Time(initialDate.getHours(), initialDate.getMinutes())
|
|
141
|
+
: new Time(0, 0));
|
|
140
142
|
setOpen(false);
|
|
141
143
|
};
|
|
144
|
+
const onOpenChange = (open) => {
|
|
145
|
+
if (!open) {
|
|
146
|
+
onCancel();
|
|
147
|
+
}
|
|
148
|
+
setOpen(open);
|
|
149
|
+
};
|
|
142
150
|
const onDateChange = (date) => {
|
|
143
151
|
const newDate = date;
|
|
144
152
|
if (showTimePicker) {
|
|
@@ -158,9 +166,8 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
158
166
|
newDate.setHours(time.hour);
|
|
159
167
|
newDate.setMinutes(time.minute);
|
|
160
168
|
}
|
|
161
|
-
setDate(newDate);
|
|
162
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newDate);
|
|
163
169
|
}
|
|
170
|
+
setDate(newDate);
|
|
164
171
|
};
|
|
165
172
|
const onTimeChange = (time) => {
|
|
166
173
|
setTime(time);
|
|
@@ -184,7 +191,6 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
184
191
|
newDate.setMinutes(time.minute);
|
|
185
192
|
}
|
|
186
193
|
setDate(newDate);
|
|
187
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newDate);
|
|
188
194
|
};
|
|
189
195
|
const formattedDate = React.useMemo(() => {
|
|
190
196
|
if (!date) {
|
|
@@ -192,7 +198,11 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
192
198
|
}
|
|
193
199
|
return formatDate(date, showTimePicker);
|
|
194
200
|
}, [date, showTimePicker]);
|
|
195
|
-
|
|
201
|
+
const onApply = () => {
|
|
202
|
+
setOpen(false);
|
|
203
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(date);
|
|
204
|
+
};
|
|
205
|
+
return (React.createElement(Primitives.Root, { open: open, onOpenChange: onOpenChange },
|
|
196
206
|
React.createElement(Display, { placeholder: "Pick a date", disabled: disabled, className: className, "aria-required": props.required || props["aria-required"], "aria-invalid": props["aria-invalid"], "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], size: size }, formattedDate),
|
|
197
207
|
React.createElement(Flyout, null,
|
|
198
208
|
React.createElement("div", { className: "flex" },
|
|
@@ -206,7 +216,7 @@ const SingleDatePicker = ({ defaultValue, value, size = "base", onChange, preset
|
|
|
206
216
|
React.createElement(TimeInput, { "aria-label": "Time", onChange: onTimeChange, isDisabled: !date, value: time, isRequired: props.required }))),
|
|
207
217
|
React.createElement("div", { className: "border-ui-border-base flex items-center gap-x-2 border-t p-3" },
|
|
208
218
|
React.createElement(Button, { variant: "secondary", className: "w-full", type: "button", onClick: onCancel }, "Cancel"),
|
|
209
|
-
React.createElement(Button, { variant: "primary", className: "w-full", type: "button", onClick:
|
|
219
|
+
React.createElement(Button, { variant: "primary", className: "w-full", type: "button", onClick: onApply }, "Apply"))))))));
|
|
210
220
|
};
|
|
211
221
|
const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTimePicker, presets, disabled, className, ...props }) => {
|
|
212
222
|
var _a;
|
|
@@ -264,14 +274,23 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
|
|
|
264
274
|
}
|
|
265
275
|
}
|
|
266
276
|
setRange(newRange);
|
|
267
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newRange);
|
|
268
277
|
};
|
|
269
278
|
const onCancel = () => {
|
|
270
279
|
setRange(initialRange);
|
|
271
|
-
setStartTime(
|
|
272
|
-
|
|
280
|
+
setStartTime((initialRange === null || initialRange === void 0 ? void 0 : initialRange.from)
|
|
281
|
+
? new Time(initialRange.from.getHours(), initialRange.from.getMinutes())
|
|
282
|
+
: new Time(0, 0));
|
|
283
|
+
setEndTime((initialRange === null || initialRange === void 0 ? void 0 : initialRange.to)
|
|
284
|
+
? new Time(initialRange.to.getHours(), initialRange.to.getMinutes())
|
|
285
|
+
: new Time(0, 0));
|
|
273
286
|
setOpen(false);
|
|
274
287
|
};
|
|
288
|
+
const onOpenChange = (open) => {
|
|
289
|
+
if (!open) {
|
|
290
|
+
onCancel();
|
|
291
|
+
}
|
|
292
|
+
setOpen(open);
|
|
293
|
+
};
|
|
275
294
|
const onTimeChange = (time, pos) => {
|
|
276
295
|
switch (pos) {
|
|
277
296
|
case "start":
|
|
@@ -327,7 +346,11 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
|
|
|
327
346
|
}
|
|
328
347
|
return `${range.from ? formatDate(range.from, showTimePicker) : ""} - ${range.to ? formatDate(range.to, showTimePicker) : ""}`;
|
|
329
348
|
}, [range, showTimePicker]);
|
|
330
|
-
|
|
349
|
+
const onApply = () => {
|
|
350
|
+
setOpen(false);
|
|
351
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(range);
|
|
352
|
+
};
|
|
353
|
+
return (React.createElement(Primitives.Root, { open: open, onOpenChange: onOpenChange },
|
|
331
354
|
React.createElement(Display, { placeholder: "Pick a date", disabled: disabled, className: className, "aria-required": props.required || props["aria-required"], "aria-invalid": props["aria-invalid"], "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], size: size }, displayRange),
|
|
332
355
|
React.createElement(Flyout, null,
|
|
333
356
|
React.createElement("div", { className: "flex" },
|
|
@@ -354,7 +377,7 @@ const RangeDatePicker = ({ defaultValue, value, onChange, size = "base", showTim
|
|
|
354
377
|
displayRange),
|
|
355
378
|
React.createElement("div", { className: "flex items-center gap-x-2" },
|
|
356
379
|
React.createElement(Button, { variant: "secondary", type: "button", onClick: onCancel }, "Cancel"),
|
|
357
|
-
React.createElement(Button, { variant: "primary", type: "button", onClick:
|
|
380
|
+
React.createElement(Button, { variant: "primary", type: "button", onClick: onApply }, "Apply")))))))));
|
|
358
381
|
};
|
|
359
382
|
const validatePresets = (presets, rules) => {
|
|
360
383
|
const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/date-picker/date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { Time } from \"@internationalized/date\"\nimport { Calendar as CalendarIcon, Minus } from \"@medusajs/icons\"\nimport * as Primitives from \"@radix-ui/react-popover\"\nimport { TimeValue } from \"@react-aria/datepicker\"\nimport { format } from \"date-fns\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { Calendar as CalendarPrimitive } from \"@/components/calendar\"\nimport { TimeInput } from \"@/components/time-input\"\nimport type { DateRange } from \"@/types\"\nimport { clx } from \"@/utils/clx\"\nimport { isBrowserLocaleClockType24h } from \"@/utils/is-browser-locale-hour-cycle-24h\"\nimport { cva } from \"class-variance-authority\"\n\nconst displayVariants = cva(\n clx(\n \"text-ui-fg-base bg-ui-bg-field transition-fg shadow-buttons-neutral flex w-full items-center gap-x-2 rounded-md outline-none\",\n \"hover:bg-ui-bg-field-hover\",\n \"focus:shadow-borders-interactive-with-active data-[state=open]:shadow-borders-interactive-with-active\",\n \"disabled:bg-ui-bg-disabled disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral\",\n \"aria-[invalid=true]:!shadow-borders-error\"\n ),\n {\n variants: {\n size: {\n base: \"txt-compact-medium h-10 px-3 py-2.5\",\n small: \"txt-compact-small h-8 px-2 py-1.5\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n }\n)\n\nconst Display = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n placeholder?: string\n size?: \"small\" | \"base\"\n }\n>(({ className, children, placeholder, size = \"base\", ...props }, ref) => {\n return (\n <Primitives.Trigger asChild>\n <button\n ref={ref}\n className={clx(displayVariants({ size }), className)}\n {...props}\n >\n <CalendarIcon className=\"text-ui-fg-muted\" />\n <span className=\"flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-left\">\n {children ? (\n children\n ) : placeholder ? (\n <span className=\"text-ui-fg-muted\">{placeholder}</span>\n ) : null}\n </span>\n </button>\n </Primitives.Trigger>\n )\n})\nDisplay.displayName = \"DatePicker.Display\"\n\nconst Flyout = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentProps<typeof Primitives.Content>\n>(({ className, children, ...props }, ref) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={8}\n align=\"center\"\n className={clx(\n \"txt-compact-small shadow-elevation-flyout bg-ui-bg-base w-fit rounded-lg\",\n \"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n </Primitives.Content>\n </Primitives.Portal>\n )\n})\nFlyout.displayName = \"DatePicker.Flyout\"\n\ninterface Preset {\n label: string\n}\n\ninterface DatePreset extends Preset {\n date: Date\n}\n\ninterface DateRangePreset extends Preset {\n dateRange: DateRange\n}\n\ntype PresetContainerProps<TPreset extends Preset, TValue> = {\n presets: TPreset[] | TPreset[]\n onSelect: (value: TValue) => void\n currentValue?: TValue\n}\n\nconst PresetContainer = <TPreset extends Preset, TValue>({\n presets,\n onSelect,\n currentValue,\n}: PresetContainerProps<TPreset, TValue>) => {\n const isDateRangePresets = (preset: any): preset is DateRangePreset => {\n return \"dateRange\" in preset\n }\n\n const isDatePresets = (preset: any): preset is DatePreset => {\n return \"date\" in preset\n }\n\n const handleClick = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n onSelect(preset.dateRange as TValue)\n } else if (isDatePresets(preset)) {\n onSelect(preset.date as TValue)\n }\n }\n\n const compareDates = (date1: Date, date2: Date) => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n )\n }\n\n const compareRanges = (range1: DateRange, range2: DateRange) => {\n const from1 = range1.from\n const from2 = range2.from\n\n let equalFrom = false\n\n if (from1 && from2) {\n const sameFrom = compareDates(from1, from2)\n\n if (sameFrom) {\n equalFrom = true\n }\n }\n\n const to1 = range1.to\n const to2 = range2.to\n\n let equalTo = false\n\n if (to1 && to2) {\n const sameTo = compareDates(to1, to2)\n\n if (sameTo) {\n equalTo = true\n }\n }\n\n return equalFrom && equalTo\n }\n\n const matchesCurrent = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n const value = currentValue as DateRange | undefined\n\n return value && compareRanges(value, preset.dateRange)\n } else if (isDatePresets(preset)) {\n const value = currentValue as Date | undefined\n\n return value && compareDates(value, preset.date)\n }\n\n return false\n }\n\n return (\n <ul className=\"flex flex-col items-start\">\n {presets.map((preset, index) => {\n return (\n <li key={index} className=\"w-full\">\n <button\n className={clx(\n \"txt-compact-small-plus w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-md p-2 text-left\",\n \"text-ui-fg-subtle hover:bg-ui-bg-base-hover outline-none transition-all\",\n \"focus:bg-ui-bg-base-hover\",\n {\n \"!bg-ui-bg-base-pressed\": matchesCurrent(preset),\n }\n )}\n onClick={() => handleClick(preset)}\n aria-label={`Select ${preset.label}`}\n >\n {preset.label}\n </button>\n </li>\n )\n })}\n </ul>\n )\n}\n\nconst formatDate = (date: Date, includeTime?: boolean) => {\n const usesAmPm = !isBrowserLocaleClockType24h()\n\n if (includeTime) {\n if (usesAmPm) {\n return format(date, \"MMM d, yyyy h:mm a\")\n }\n\n return format(date, \"MMM d, yyyy HH:mm\")\n }\n\n return format(date, \"MMM d, yyyy\")\n}\n\ntype CalendarProps = {\n fromYear?: number\n toYear?: number\n fromMonth?: Date\n toMonth?: Date\n fromDay?: Date\n toDay?: Date\n fromDate?: Date\n toDate?: Date\n}\n\ninterface PickerProps extends CalendarProps {\n className?: string\n disabled?: boolean\n required?: boolean\n size?: \"small\" | \"base\"\n showTimePicker?: boolean\n id?: string\n \"aria-invalid\"?: boolean\n \"aria-label\"?: string\n \"aria-labelledby\"?: string\n \"aria-required\"?: boolean\n}\n\ninterface SingleProps extends PickerProps {\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n}\n\nconst SingleDatePicker = ({\n defaultValue,\n value,\n size = \"base\",\n onChange,\n presets,\n showTimePicker,\n disabled,\n className,\n ...props\n}: SingleProps) => {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n\n const [time, setTime] = React.useState<TimeValue>(\n value\n ? new Time(value.getHours(), value.getMinutes())\n : defaultValue\n ? new Time(defaultValue.getHours(), defaultValue.getMinutes())\n : new Time(0, 0)\n )\n\n const initialDate = React.useMemo(() => {\n return date\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the date when the value changes.\n */\n React.useEffect(() => {\n setDate(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (date) {\n setMonth(date)\n }\n }, [date])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(date)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onCancel = () => {\n setDate(initialDate)\n setTime(new Time(0, 0))\n setOpen(false)\n }\n\n const onDateChange = (date: Date | undefined) => {\n const newDate = date\n\n if (showTimePicker) {\n /**\n * If the time is cleared, and the date is\n * changed then we want to reset the time.\n */\n if (newDate && !time) {\n setTime(new Time(0, 0))\n }\n\n /**\n * If the time is set, and the date is changed\n * then we want to update the date with the\n * time.\n */\n if (newDate && time) {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n onChange?.(newDate)\n }\n }\n\n const onTimeChange = (time: TimeValue) => {\n setTime(time)\n\n if (!date) {\n return\n }\n\n const newDate = new Date(date.getTime())\n\n if (!time) {\n /**\n * When a segment of the time input is cleared,\n * it will return `null` as the value is no longer\n * a valid time. In this case, we want to set the\n * time to for the date, effectivly resetting the\n * input field.\n */\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n onChange?.(newDate)\n }\n\n const formattedDate = React.useMemo(() => {\n if (!date) {\n return null\n }\n\n return formatDate(date, showTimePicker)\n }, [date, showTimePicker])\n\n return (\n <Primitives.Root open={open} onOpenChange={setOpen}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {formattedDate}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={date}\n presets={presets}\n onSelect={onDateChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n disabled={disabled}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base border-t p-3\">\n <TimeInput\n aria-label=\"Time\"\n onChange={onTimeChange}\n isDisabled={!date}\n value={time}\n isRequired={props.required}\n />\n </div>\n )}\n <div className=\"border-ui-border-base flex items-center gap-x-2 border-t p-3\">\n <Button\n variant=\"secondary\"\n className=\"w-full\"\n type=\"button\"\n onClick={onCancel}\n >\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n className=\"w-full\"\n type=\"button\"\n onClick={() => setOpen(false)}\n >\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ninterface RangeProps extends PickerProps {\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n}\n\nconst RangeDatePicker = ({\n defaultValue,\n value,\n onChange,\n size = \"base\",\n showTimePicker,\n presets,\n disabled,\n className,\n ...props\n}: RangeProps) => {\n const [open, setOpen] = React.useState(false)\n const [range, setRange] = React.useState<DateRange | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(range?.from)\n\n const [startTime, setStartTime] = React.useState<TimeValue>(\n value?.from\n ? new Time(value.from.getHours(), value.from.getMinutes())\n : defaultValue?.from\n ? new Time(defaultValue.from.getHours(), defaultValue.from.getMinutes())\n : new Time(0, 0)\n )\n const [endTime, setEndTime] = React.useState<TimeValue>(\n value?.to\n ? new Time(value.to.getHours(), value.to.getMinutes())\n : defaultValue?.to\n ? new Time(defaultValue.to.getHours(), defaultValue.to.getMinutes())\n : new Time(0, 0)\n )\n\n const initialRange = React.useMemo(() => {\n return range\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the range when the value changes.\n */\n React.useEffect(() => {\n setRange(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (range) {\n setMonth(range.from)\n }\n }, [range])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(range?.from)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onRangeChange = (range: DateRange | undefined) => {\n const newRange = range\n\n if (showTimePicker) {\n if (newRange?.from && !startTime) {\n setStartTime(new Time(0, 0))\n }\n\n if (newRange?.to && !endTime) {\n setEndTime(new Time(0, 0))\n }\n\n if (newRange?.from && startTime) {\n newRange.from.setHours(startTime.hour)\n newRange.from.setMinutes(startTime.minute)\n }\n\n if (newRange?.to && endTime) {\n newRange.to.setHours(endTime.hour)\n newRange.to.setMinutes(endTime.minute)\n }\n }\n\n setRange(newRange)\n onChange?.(newRange)\n }\n\n const onCancel = () => {\n setRange(initialRange)\n setStartTime(new Time(0, 0))\n setEndTime(new Time(0, 0))\n setOpen(false)\n }\n\n const onTimeChange = (time: TimeValue, pos: \"start\" | \"end\") => {\n switch (pos) {\n case \"start\":\n setStartTime(time)\n break\n case \"end\":\n setEndTime(time)\n break\n }\n\n if (!range) {\n return\n }\n\n if (pos === \"start\") {\n if (!range.from) {\n return\n }\n\n const newDate = new Date(range.from.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n from: newDate,\n })\n }\n\n if (pos === \"end\") {\n if (!range.to) {\n return\n }\n\n const newDate = new Date(range.to.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n to: newDate,\n })\n }\n }\n\n const displayRange = React.useMemo(() => {\n if (!range) {\n return null\n }\n\n return `${range.from ? formatDate(range.from, showTimePicker) : \"\"} - ${\n range.to ? formatDate(range.to, showTimePicker) : \"\"\n }`\n }, [range, showTimePicker])\n\n return (\n <Primitives.Root open={open} onOpenChange={setOpen}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {displayRange}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={range}\n presets={presets}\n onSelect={onRangeChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"range\"\n selected={range}\n onSelect={onRangeChange}\n month={month}\n onMonthChange={setMonth}\n numberOfMonths={2}\n disabled={disabled}\n classNames={{\n months: \"flex flex-row divide-x divide-ui-border-base\",\n }}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3\">\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">Start:</span>\n <TimeInput\n value={startTime}\n onChange={(v) => onTimeChange(v, \"start\")}\n aria-label=\"Start date time\"\n isDisabled={!range?.from}\n isRequired={props.required}\n />\n </div>\n <Minus className=\"text-ui-fg-muted\" />\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">End:</span>\n <TimeInput\n value={endTime}\n onChange={(v) => onTimeChange(v, \"end\")}\n aria-label=\"End date time\"\n isDisabled={!range?.to}\n isRequired={props.required}\n />\n </div>\n </div>\n )}\n <div className=\"flex items-center justify-between border-t p-3\">\n <p className={clx(\"text-ui-fg-subtle txt-compact-small-plus\")}>\n <span className=\"text-ui-fg-muted\">Range:</span>{\" \"}\n {displayRange}\n </p>\n <div className=\"flex items-center gap-x-2\">\n <Button variant=\"secondary\" type=\"button\" onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n type=\"button\"\n onClick={() => setOpen(false)}\n >\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ntype DatePickerProps = (\n | {\n mode?: \"single\"\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n }\n | {\n mode: \"range\"\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n }\n) &\n PickerProps\n\nconst validatePresets = (\n presets: DateRangePreset[] | DatePreset[],\n rules: PickerProps\n) => {\n const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules\n\n if (presets && presets.length > 0) {\n const fromYearToUse = fromYear\n const toYearToUse = toYear\n\n presets.forEach((preset) => {\n if (\"date\" in preset) {\n const presetYear = preset.date.getFullYear()\n\n if (fromYear && presetYear < fromYear) {\n throw new Error(\n `Preset ${preset.label} is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (toYear && presetYear > toYear) {\n throw new Error(\n `Preset ${preset.label} is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is before fromMonth ${fromMonth}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is after toMonth ${toMonth}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is before fromDay ${fromDay}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n\n if (\"dateRange\" in preset) {\n const presetFromYear = preset.dateRange.from?.getFullYear()\n const presetToYear = preset.dateRange.to?.getFullYear()\n\n if (presetFromYear && fromYear && presetFromYear < fromYear) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (presetToYear && toYear && presetToYear > toYear) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.dateRange.from?.getMonth()\n\n if (presetMonth && presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromMonth ${format(\n fromMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.dateRange.to?.getMonth()\n\n if (presetMonth && presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toMonth ${format(\n toMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.dateRange.from?.getDate()\n\n if (presetDay && presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${\n preset.dateRange.from\n }'s 'from' is before fromDay ${format(fromDay, \"MMM dd, yyyy\")}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.dateRange.to?.getDate()\n\n if (presetDay && presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n })\n }\n}\n\nconst DatePicker = ({ mode = \"single\", ...props }: DatePickerProps) => {\n if (props.presets) {\n validatePresets(props.presets, props)\n }\n\n if (mode === \"single\") {\n return <SingleDatePicker {...(props as SingleProps)} />\n }\n\n return <RangeDatePicker {...(props as RangeProps)} />\n}\n\nexport { DatePicker }\n"]}
|
|
1
|
+
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/date-picker/date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { Time } from \"@internationalized/date\"\nimport { Calendar as CalendarIcon, Minus } from \"@medusajs/icons\"\nimport * as Primitives from \"@radix-ui/react-popover\"\nimport { TimeValue } from \"@react-aria/datepicker\"\nimport { format } from \"date-fns\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { Calendar as CalendarPrimitive } from \"@/components/calendar\"\nimport { TimeInput } from \"@/components/time-input\"\nimport type { DateRange } from \"@/types\"\nimport { clx } from \"@/utils/clx\"\nimport { isBrowserLocaleClockType24h } from \"@/utils/is-browser-locale-hour-cycle-24h\"\nimport { cva } from \"class-variance-authority\"\n\nconst displayVariants = cva(\n clx(\n \"text-ui-fg-base bg-ui-bg-field transition-fg shadow-buttons-neutral flex w-full items-center gap-x-2 rounded-md outline-none\",\n \"hover:bg-ui-bg-field-hover\",\n \"focus:shadow-borders-interactive-with-active data-[state=open]:shadow-borders-interactive-with-active\",\n \"disabled:bg-ui-bg-disabled disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral\",\n \"aria-[invalid=true]:!shadow-borders-error\"\n ),\n {\n variants: {\n size: {\n base: \"txt-compact-medium h-10 px-3 py-2.5\",\n small: \"txt-compact-small h-8 px-2 py-1.5\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n }\n)\n\nconst Display = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n placeholder?: string\n size?: \"small\" | \"base\"\n }\n>(({ className, children, placeholder, size = \"base\", ...props }, ref) => {\n return (\n <Primitives.Trigger asChild>\n <button\n ref={ref}\n className={clx(displayVariants({ size }), className)}\n {...props}\n >\n <CalendarIcon className=\"text-ui-fg-muted\" />\n <span className=\"flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-left\">\n {children ? (\n children\n ) : placeholder ? (\n <span className=\"text-ui-fg-muted\">{placeholder}</span>\n ) : null}\n </span>\n </button>\n </Primitives.Trigger>\n )\n})\nDisplay.displayName = \"DatePicker.Display\"\n\nconst Flyout = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentProps<typeof Primitives.Content>\n>(({ className, children, ...props }, ref) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={8}\n align=\"center\"\n className={clx(\n \"txt-compact-small shadow-elevation-flyout bg-ui-bg-base w-fit rounded-lg\",\n \"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n </Primitives.Content>\n </Primitives.Portal>\n )\n})\nFlyout.displayName = \"DatePicker.Flyout\"\n\ninterface Preset {\n label: string\n}\n\ninterface DatePreset extends Preset {\n date: Date\n}\n\ninterface DateRangePreset extends Preset {\n dateRange: DateRange\n}\n\ntype PresetContainerProps<TPreset extends Preset, TValue> = {\n presets: TPreset[] | TPreset[]\n onSelect: (value: TValue) => void\n currentValue?: TValue\n}\n\nconst PresetContainer = <TPreset extends Preset, TValue>({\n presets,\n onSelect,\n currentValue,\n}: PresetContainerProps<TPreset, TValue>) => {\n const isDateRangePresets = (preset: any): preset is DateRangePreset => {\n return \"dateRange\" in preset\n }\n\n const isDatePresets = (preset: any): preset is DatePreset => {\n return \"date\" in preset\n }\n\n const handleClick = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n onSelect(preset.dateRange as TValue)\n } else if (isDatePresets(preset)) {\n onSelect(preset.date as TValue)\n }\n }\n\n const compareDates = (date1: Date, date2: Date) => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n )\n }\n\n const compareRanges = (range1: DateRange, range2: DateRange) => {\n const from1 = range1.from\n const from2 = range2.from\n\n let equalFrom = false\n\n if (from1 && from2) {\n const sameFrom = compareDates(from1, from2)\n\n if (sameFrom) {\n equalFrom = true\n }\n }\n\n const to1 = range1.to\n const to2 = range2.to\n\n let equalTo = false\n\n if (to1 && to2) {\n const sameTo = compareDates(to1, to2)\n\n if (sameTo) {\n equalTo = true\n }\n }\n\n return equalFrom && equalTo\n }\n\n const matchesCurrent = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n const value = currentValue as DateRange | undefined\n\n return value && compareRanges(value, preset.dateRange)\n } else if (isDatePresets(preset)) {\n const value = currentValue as Date | undefined\n\n return value && compareDates(value, preset.date)\n }\n\n return false\n }\n\n return (\n <ul className=\"flex flex-col items-start\">\n {presets.map((preset, index) => {\n return (\n <li key={index} className=\"w-full\">\n <button\n className={clx(\n \"txt-compact-small-plus w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-md p-2 text-left\",\n \"text-ui-fg-subtle hover:bg-ui-bg-base-hover outline-none transition-all\",\n \"focus:bg-ui-bg-base-hover\",\n {\n \"!bg-ui-bg-base-pressed\": matchesCurrent(preset),\n }\n )}\n onClick={() => handleClick(preset)}\n aria-label={`Select ${preset.label}`}\n >\n {preset.label}\n </button>\n </li>\n )\n })}\n </ul>\n )\n}\n\nconst formatDate = (date: Date, includeTime?: boolean) => {\n const usesAmPm = !isBrowserLocaleClockType24h()\n\n if (includeTime) {\n if (usesAmPm) {\n return format(date, \"MMM d, yyyy h:mm a\")\n }\n\n return format(date, \"MMM d, yyyy HH:mm\")\n }\n\n return format(date, \"MMM d, yyyy\")\n}\n\ntype CalendarProps = {\n fromYear?: number\n toYear?: number\n fromMonth?: Date\n toMonth?: Date\n fromDay?: Date\n toDay?: Date\n fromDate?: Date\n toDate?: Date\n}\n\ninterface PickerProps extends CalendarProps {\n className?: string\n disabled?: boolean\n required?: boolean\n size?: \"small\" | \"base\"\n showTimePicker?: boolean\n id?: string\n \"aria-invalid\"?: boolean\n \"aria-label\"?: string\n \"aria-labelledby\"?: string\n \"aria-required\"?: boolean\n}\n\ninterface SingleProps extends PickerProps {\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n}\n\nconst SingleDatePicker = ({\n defaultValue,\n value,\n size = \"base\",\n onChange,\n presets,\n showTimePicker,\n disabled,\n className,\n ...props\n}: SingleProps) => {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n\n const [time, setTime] = React.useState<TimeValue>(\n value\n ? new Time(value.getHours(), value.getMinutes())\n : defaultValue\n ? new Time(defaultValue.getHours(), defaultValue.getMinutes())\n : new Time(0, 0)\n )\n\n const initialDate = React.useMemo(() => {\n return date\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the date when the value changes.\n */\n React.useEffect(() => {\n setDate(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (date) {\n setMonth(date)\n }\n }, [date])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(date)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onCancel = () => {\n setDate(initialDate)\n setTime(\n initialDate\n ? new Time(initialDate.getHours(), initialDate.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onDateChange = (date: Date | undefined) => {\n const newDate = date\n\n if (showTimePicker) {\n /**\n * If the time is cleared, and the date is\n * changed then we want to reset the time.\n */\n if (newDate && !time) {\n setTime(new Time(0, 0))\n }\n\n /**\n * If the time is set, and the date is changed\n * then we want to update the date with the\n * time.\n */\n if (newDate && time) {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n }\n\n setDate(newDate)\n }\n\n const onTimeChange = (time: TimeValue) => {\n setTime(time)\n\n if (!date) {\n return\n }\n\n const newDate = new Date(date.getTime())\n\n if (!time) {\n /**\n * When a segment of the time input is cleared,\n * it will return `null` as the value is no longer\n * a valid time. In this case, we want to set the\n * time to for the date, effectivly resetting the\n * input field.\n */\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n }\n\n const formattedDate = React.useMemo(() => {\n if (!date) {\n return null\n }\n\n return formatDate(date, showTimePicker)\n }, [date, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(date)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {formattedDate}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={date}\n presets={presets}\n onSelect={onDateChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n disabled={disabled}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base border-t p-3\">\n <TimeInput\n aria-label=\"Time\"\n onChange={onTimeChange}\n isDisabled={!date}\n value={time}\n isRequired={props.required}\n />\n </div>\n )}\n <div className=\"border-ui-border-base flex items-center gap-x-2 border-t p-3\">\n <Button\n variant=\"secondary\"\n className=\"w-full\"\n type=\"button\"\n onClick={onCancel}\n >\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n className=\"w-full\"\n type=\"button\"\n onClick={onApply}\n >\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ninterface RangeProps extends PickerProps {\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n}\n\nconst RangeDatePicker = ({\n defaultValue,\n value,\n onChange,\n size = \"base\",\n showTimePicker,\n presets,\n disabled,\n className,\n ...props\n}: RangeProps) => {\n const [open, setOpen] = React.useState(false)\n const [range, setRange] = React.useState<DateRange | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(range?.from)\n\n const [startTime, setStartTime] = React.useState<TimeValue>(\n value?.from\n ? new Time(value.from.getHours(), value.from.getMinutes())\n : defaultValue?.from\n ? new Time(defaultValue.from.getHours(), defaultValue.from.getMinutes())\n : new Time(0, 0)\n )\n const [endTime, setEndTime] = React.useState<TimeValue>(\n value?.to\n ? new Time(value.to.getHours(), value.to.getMinutes())\n : defaultValue?.to\n ? new Time(defaultValue.to.getHours(), defaultValue.to.getMinutes())\n : new Time(0, 0)\n )\n\n const initialRange = React.useMemo(() => {\n return range\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the range when the value changes.\n */\n React.useEffect(() => {\n setRange(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (range) {\n setMonth(range.from)\n }\n }, [range])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(range?.from)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onRangeChange = (range: DateRange | undefined) => {\n const newRange = range\n\n if (showTimePicker) {\n if (newRange?.from && !startTime) {\n setStartTime(new Time(0, 0))\n }\n\n if (newRange?.to && !endTime) {\n setEndTime(new Time(0, 0))\n }\n\n if (newRange?.from && startTime) {\n newRange.from.setHours(startTime.hour)\n newRange.from.setMinutes(startTime.minute)\n }\n\n if (newRange?.to && endTime) {\n newRange.to.setHours(endTime.hour)\n newRange.to.setMinutes(endTime.minute)\n }\n }\n\n setRange(newRange)\n }\n\n const onCancel = () => {\n setRange(initialRange)\n setStartTime(\n initialRange?.from\n ? new Time(initialRange.from.getHours(), initialRange.from.getMinutes())\n : new Time(0, 0)\n )\n setEndTime(\n initialRange?.to\n ? new Time(initialRange.to.getHours(), initialRange.to.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onTimeChange = (time: TimeValue, pos: \"start\" | \"end\") => {\n switch (pos) {\n case \"start\":\n setStartTime(time)\n break\n case \"end\":\n setEndTime(time)\n break\n }\n\n if (!range) {\n return\n }\n\n if (pos === \"start\") {\n if (!range.from) {\n return\n }\n\n const newDate = new Date(range.from.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n from: newDate,\n })\n }\n\n if (pos === \"end\") {\n if (!range.to) {\n return\n }\n\n const newDate = new Date(range.to.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n to: newDate,\n })\n }\n }\n\n const displayRange = React.useMemo(() => {\n if (!range) {\n return null\n }\n\n return `${range.from ? formatDate(range.from, showTimePicker) : \"\"} - ${\n range.to ? formatDate(range.to, showTimePicker) : \"\"\n }`\n }, [range, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(range)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder=\"Pick a date\"\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {displayRange}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={range}\n presets={presets}\n onSelect={onRangeChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"range\"\n selected={range}\n onSelect={onRangeChange}\n month={month}\n onMonthChange={setMonth}\n numberOfMonths={2}\n disabled={disabled}\n classNames={{\n months: \"flex flex-row divide-x divide-ui-border-base\",\n }}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3\">\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">Start:</span>\n <TimeInput\n value={startTime}\n onChange={(v) => onTimeChange(v, \"start\")}\n aria-label=\"Start date time\"\n isDisabled={!range?.from}\n isRequired={props.required}\n />\n </div>\n <Minus className=\"text-ui-fg-muted\" />\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">End:</span>\n <TimeInput\n value={endTime}\n onChange={(v) => onTimeChange(v, \"end\")}\n aria-label=\"End date time\"\n isDisabled={!range?.to}\n isRequired={props.required}\n />\n </div>\n </div>\n )}\n <div className=\"flex items-center justify-between border-t p-3\">\n <p className={clx(\"text-ui-fg-subtle txt-compact-small-plus\")}>\n <span className=\"text-ui-fg-muted\">Range:</span>{\" \"}\n {displayRange}\n </p>\n <div className=\"flex items-center gap-x-2\">\n <Button variant=\"secondary\" type=\"button\" onClick={onCancel}>\n Cancel\n </Button>\n <Button variant=\"primary\" type=\"button\" onClick={onApply}>\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ntype DatePickerProps = (\n | {\n mode?: \"single\"\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n }\n | {\n mode: \"range\"\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n }\n) &\n PickerProps\n\nconst validatePresets = (\n presets: DateRangePreset[] | DatePreset[],\n rules: PickerProps\n) => {\n const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules\n\n if (presets && presets.length > 0) {\n const fromYearToUse = fromYear\n const toYearToUse = toYear\n\n presets.forEach((preset) => {\n if (\"date\" in preset) {\n const presetYear = preset.date.getFullYear()\n\n if (fromYear && presetYear < fromYear) {\n throw new Error(\n `Preset ${preset.label} is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (toYear && presetYear > toYear) {\n throw new Error(\n `Preset ${preset.label} is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is before fromMonth ${fromMonth}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is after toMonth ${toMonth}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is before fromDay ${fromDay}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n\n if (\"dateRange\" in preset) {\n const presetFromYear = preset.dateRange.from?.getFullYear()\n const presetToYear = preset.dateRange.to?.getFullYear()\n\n if (presetFromYear && fromYear && presetFromYear < fromYear) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (presetToYear && toYear && presetToYear > toYear) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.dateRange.from?.getMonth()\n\n if (presetMonth && presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromMonth ${format(\n fromMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.dateRange.to?.getMonth()\n\n if (presetMonth && presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toMonth ${format(\n toMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.dateRange.from?.getDate()\n\n if (presetDay && presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${\n preset.dateRange.from\n }'s 'from' is before fromDay ${format(fromDay, \"MMM dd, yyyy\")}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.dateRange.to?.getDate()\n\n if (presetDay && presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n })\n }\n}\n\nconst DatePicker = ({ mode = \"single\", ...props }: DatePickerProps) => {\n if (props.presets) {\n validatePresets(props.presets, props)\n }\n\n if (mode === \"single\") {\n return <SingleDatePicker {...(props as SingleProps)} />\n }\n\n return <RangeDatePicker {...(props as RangeProps)} />\n}\n\nexport { DatePicker }\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./popover";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/popover/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA","sourcesContent":["export * from \"./popover\"\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Primitives from "@radix-ui/react-popover";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const Root: {
|
|
4
|
+
(props: React.ComponentPropsWithoutRef<typeof Primitives.Root>): React.JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
declare const Popover: {
|
|
8
|
+
(props: React.ComponentPropsWithoutRef<typeof Primitives.Root>): React.JSX.Element;
|
|
9
|
+
displayName: string;
|
|
10
|
+
} & {
|
|
11
|
+
Trigger: React.ForwardRefExoticComponent<Omit<Primitives.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
12
|
+
Anchor: React.ForwardRefExoticComponent<Omit<Primitives.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
Close: React.ForwardRefExoticComponent<Omit<Primitives.PopoverCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
14
|
+
Content: React.ForwardRefExoticComponent<Omit<Primitives.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
Seperator: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
};
|
|
17
|
+
export { Popover };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as Primitives from "@radix-ui/react-popover";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { clx } from "../../utils/clx";
|
|
4
|
+
const Root = (props) => {
|
|
5
|
+
return React.createElement(Primitives.Root, { ...props });
|
|
6
|
+
};
|
|
7
|
+
Root.displayName = "Popover";
|
|
8
|
+
const Trigger = React.forwardRef((props, ref) => {
|
|
9
|
+
return React.createElement(Primitives.Trigger, { ref: ref, ...props });
|
|
10
|
+
});
|
|
11
|
+
Trigger.displayName = "Popover.Trigger";
|
|
12
|
+
const Anchor = React.forwardRef((props, ref) => {
|
|
13
|
+
return React.createElement(Primitives.Anchor, { ref: ref, ...props });
|
|
14
|
+
});
|
|
15
|
+
Anchor.displayName = "Popover.Anchor";
|
|
16
|
+
const Close = React.forwardRef((props, ref) => {
|
|
17
|
+
return React.createElement(Primitives.Close, { ref: ref, ...props });
|
|
18
|
+
});
|
|
19
|
+
Close.displayName = "Popover.Close";
|
|
20
|
+
const Content = React.forwardRef(({ className, sideOffset = 8, side = "bottom", align = "start", collisionPadding, ...props }, ref) => {
|
|
21
|
+
return (React.createElement(Primitives.Portal, null,
|
|
22
|
+
React.createElement(Primitives.Content, { ref: ref, sideOffset: sideOffset, side: side, align: align, collisionPadding: collisionPadding, className: clx("bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout max-h-[var(--radix-popper-available-height)] min-w-[220px] overflow-hidden rounded-lg p-1", "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className), ...props })));
|
|
23
|
+
});
|
|
24
|
+
Content.displayName = "Popover.Content";
|
|
25
|
+
const Seperator = React.forwardRef(({ className, ...props }, ref) => {
|
|
26
|
+
return (React.createElement("div", { ref: ref, className: clx("bg-ui-border-base -mx-1 my-1 h-px", className), ...props }));
|
|
27
|
+
});
|
|
28
|
+
Seperator.displayName = "Popover.Seperator";
|
|
29
|
+
const Popover = Object.assign(Root, {
|
|
30
|
+
Trigger,
|
|
31
|
+
Anchor,
|
|
32
|
+
Close,
|
|
33
|
+
Content,
|
|
34
|
+
Seperator,
|
|
35
|
+
});
|
|
36
|
+
export { Popover };
|
|
37
|
+
//# sourceMappingURL=popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../../src/components/popover/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,IAAI,GAAG,CACX,KAA6D,EAC7D,EAAE;IACF,OAAO,oBAAC,UAAU,CAAC,IAAI,OAAK,KAAK,GAAI,CAAA;AACvC,CAAC,CAAA;AACD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;AAE5B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAG9B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,OAAO,oBAAC,UAAU,CAAC,OAAO,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAA;AACpD,CAAC,CAAC,CAAA;AACF,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,OAAO,oBAAC,UAAU,CAAC,MAAM,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAA;AACnD,CAAC,CAAC,CAAA;AACF,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAA;AAErC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,OAAO,oBAAC,UAAU,CAAC,KAAK,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAA;AAClD,CAAC,CAAC,CAAA;AACF,KAAK,CAAC,WAAW,GAAG,eAAe,CAAA;AAEnC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAI9B,CACE,EACE,SAAS,EACT,UAAU,GAAG,CAAC,EACd,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,OAAO,EACf,gBAAgB,EAChB,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,OAAO,CACL,oBAAC,UAAU,CAAC,MAAM;QAChB,oBAAC,UAAU,CAAC,OAAO,IACjB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,GAAG,CACZ,iJAAiJ,EACjJ,kVAAkV,EAClV,SAAS,CACV,KACG,KAAK,GACT,CACgB,CACrB,CAAA;AACH,CAAC,CACF,CAAA;AACD,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAEvC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACjC,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,GAAG,CAAC,mCAAmC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AACF,SAAS,CAAC,WAAW,GAAG,mBAAmB,CAAA;AAE3C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IAClC,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;CACV,CAAC,CAAA;AAEF,OAAO,EAAE,OAAO,EAAE,CAAA","sourcesContent":["import * as Primitives from \"@radix-ui/react-popover\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst Root = (\n props: React.ComponentPropsWithoutRef<typeof Primitives.Root>\n) => {\n return <Primitives.Root {...props} />\n}\nRoot.displayName = \"Popover\"\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof Primitives.Trigger>,\n React.ComponentPropsWithoutRef<typeof Primitives.Trigger>\n>((props, ref) => {\n return <Primitives.Trigger ref={ref} {...props} />\n})\nTrigger.displayName = \"Popover.Trigger\"\n\nconst Anchor = React.forwardRef<\n React.ElementRef<typeof Primitives.Anchor>,\n React.ComponentPropsWithoutRef<typeof Primitives.Anchor>\n>((props, ref) => {\n return <Primitives.Anchor ref={ref} {...props} />\n})\nAnchor.displayName = \"Popover.Anchor\"\n\nconst Close = React.forwardRef<\n React.ElementRef<typeof Primitives.Close>,\n React.ComponentPropsWithoutRef<typeof Primitives.Close>\n>((props, ref) => {\n return <Primitives.Close ref={ref} {...props} />\n})\nClose.displayName = \"Popover.Close\"\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentPropsWithoutRef<typeof Primitives.Content>\n>(\n (\n {\n className,\n sideOffset = 8,\n side = \"bottom\",\n align = \"start\",\n collisionPadding,\n ...props\n },\n ref\n ) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={sideOffset}\n side={side}\n align={align}\n collisionPadding={collisionPadding}\n className={clx(\n \"bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout max-h-[var(--radix-popper-available-height)] min-w-[220px] overflow-hidden rounded-lg p-1\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </Primitives.Portal>\n )\n }\n)\nContent.displayName = \"Popover.Content\"\n\nconst Seperator = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\"bg-ui-border-base -mx-1 my-1 h-px\", className)}\n {...props}\n />\n )\n})\nSeperator.displayName = \"Popover.Seperator\"\n\nconst Popover = Object.assign(Root, {\n Trigger,\n Anchor,\n Close,\n Content,\n Seperator,\n})\n\nexport { Popover }\n"]}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export { Textarea } from "./components/textarea";
|
|
|
35
35
|
export { Toast } from "./components/toast";
|
|
36
36
|
export { Toaster } from "./components/toaster";
|
|
37
37
|
export { Tooltip } from "./components/tooltip";
|
|
38
|
+
export { Popover } from "./components/popover";
|
|
38
39
|
export { usePrompt } from "./hooks/use-prompt";
|
|
39
40
|
export { useToast } from "./hooks/use-toast";
|
|
40
41
|
export { useToggleState } from "./hooks/use-toggle-state";
|
package/dist/esm/index.js
CHANGED
|
@@ -35,6 +35,7 @@ export { Textarea } from "./components/textarea";
|
|
|
35
35
|
export { Toast } from "./components/toast";
|
|
36
36
|
export { Toaster } from "./components/toaster";
|
|
37
37
|
export { Tooltip } from "./components/tooltip";
|
|
38
|
+
export { Popover } from "./components/popover";
|
|
38
39
|
// Hooks
|
|
39
40
|
export { usePrompt } from "./hooks/use-prompt";
|
|
40
41
|
export { useToast } from "./hooks/use-toast";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,QAAQ;AACR,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,QAAQ;AACR,cAAc,SAAS,CAAA","sourcesContent":["export { Avatar } from \"./components/avatar\"\nexport { Badge } from \"./components/badge\"\nexport { Button } from \"./components/button\"\nexport { Calendar } from \"./components/calendar\"\nexport { Checkbox } from \"./components/checkbox\"\nexport { Code } from \"./components/code\"\nexport { CodeBlock } from \"./components/code-block\"\nexport { Command } from \"./components/command\"\nexport { CommandBar } from \"./components/command-bar\"\nexport { Container } from \"./components/container\"\nexport { Copy } from \"./components/copy\"\nexport { CurrencyInput } from \"./components/currency-input\"\nexport { DatePicker } from \"./components/date-picker\"\nexport { Drawer } from \"./components/drawer\"\nexport { DropdownMenu } from \"./components/dropdown-menu\"\nexport { FocusModal } from \"./components/focus-modal\"\nexport { Heading } from \"./components/heading\"\nexport { Hint } from \"./components/hint\"\nexport { IconBadge } from \"./components/icon-badge\"\nexport { IconButton } from \"./components/icon-button\"\nexport { Input } from \"./components/input\"\nexport { Kbd } from \"./components/kbd\"\nexport { Label } from \"./components/label\"\nexport { ProgressAccordion } from \"./components/progress-accordion\"\nexport { ProgressTabs } from \"./components/progress-tabs\"\nexport { Prompt } from \"./components/prompt\"\nexport { RadioGroup } from \"./components/radio-group\"\nexport { Select } from \"./components/select\"\nexport { StatusBadge } from \"./components/status-badge\"\nexport { Switch } from \"./components/switch\"\nexport { Table } from \"./components/table\"\nexport { Tabs } from \"./components/tabs\"\nexport { Text } from \"./components/text\"\nexport { Textarea } from \"./components/textarea\"\nexport { Toast } from \"./components/toast\"\nexport { Toaster } from \"./components/toaster\"\nexport { Tooltip } from \"./components/tooltip\"\n\n// Hooks\nexport { usePrompt } from \"./hooks/use-prompt\"\nexport { useToast } from \"./hooks/use-toast\"\nexport { useToggleState } from \"./hooks/use-toggle-state\"\n\n// Utils\nexport { clx } from \"./utils/clx\"\n\n// Types\nexport * from \"./types\"\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,QAAQ;AACR,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,QAAQ;AACR,cAAc,SAAS,CAAA","sourcesContent":["export { Avatar } from \"./components/avatar\"\nexport { Badge } from \"./components/badge\"\nexport { Button } from \"./components/button\"\nexport { Calendar } from \"./components/calendar\"\nexport { Checkbox } from \"./components/checkbox\"\nexport { Code } from \"./components/code\"\nexport { CodeBlock } from \"./components/code-block\"\nexport { Command } from \"./components/command\"\nexport { CommandBar } from \"./components/command-bar\"\nexport { Container } from \"./components/container\"\nexport { Copy } from \"./components/copy\"\nexport { CurrencyInput } from \"./components/currency-input\"\nexport { DatePicker } from \"./components/date-picker\"\nexport { Drawer } from \"./components/drawer\"\nexport { DropdownMenu } from \"./components/dropdown-menu\"\nexport { FocusModal } from \"./components/focus-modal\"\nexport { Heading } from \"./components/heading\"\nexport { Hint } from \"./components/hint\"\nexport { IconBadge } from \"./components/icon-badge\"\nexport { IconButton } from \"./components/icon-button\"\nexport { Input } from \"./components/input\"\nexport { Kbd } from \"./components/kbd\"\nexport { Label } from \"./components/label\"\nexport { ProgressAccordion } from \"./components/progress-accordion\"\nexport { ProgressTabs } from \"./components/progress-tabs\"\nexport { Prompt } from \"./components/prompt\"\nexport { RadioGroup } from \"./components/radio-group\"\nexport { Select } from \"./components/select\"\nexport { StatusBadge } from \"./components/status-badge\"\nexport { Switch } from \"./components/switch\"\nexport { Table } from \"./components/table\"\nexport { Tabs } from \"./components/tabs\"\nexport { Text } from \"./components/text\"\nexport { Textarea } from \"./components/textarea\"\nexport { Toast } from \"./components/toast\"\nexport { Toaster } from \"./components/toaster\"\nexport { Tooltip } from \"./components/tooltip\"\nexport { Popover } from \"./components/popover\"\n\n// Hooks\nexport { usePrompt } from \"./hooks/use-prompt\"\nexport { useToast } from \"./hooks/use-toast\"\nexport { useToggleState } from \"./hooks/use-toggle-state\"\n\n// Utils\nexport { clx } from \"./utils/clx\"\n\n// Types\nexport * from \"./types\"\n"]}
|