art-bd-ui 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/dist/cjs/components/popovers/dialog/dialog.js +3 -3
  2. package/dist/cjs/components/popovers/drawer/drawer.js +2 -2
  3. package/dist/cjs/components/popovers/shared/icon-close.js +1 -1
  4. package/dist/cjs/components/popovers/sheet/sheet.js +5 -5
  5. package/dist/cjs/components/ui/calendar/calendar.js +32 -22
  6. package/dist/cjs/components/ui/date-pickers/date-time-picker/date-time-picker.js +1 -1
  7. package/dist/cjs/components/ui/date-pickers/month-select/month-select.js +1 -1
  8. package/dist/cjs/components/ui/date-pickers/time-picker/components/time-period-select.js +1 -1
  9. package/dist/cjs/components/ui/date-pickers/year-select/year-select.js +1 -1
  10. package/dist/cjs/components/ui/pagination/pagination.js +1 -1
  11. package/dist/esm/components/popovers/dialog/dialog.js +3 -3
  12. package/dist/esm/components/popovers/drawer/drawer.js +2 -2
  13. package/dist/esm/components/popovers/shared/icon-close.js +1 -1
  14. package/dist/esm/components/popovers/sheet/sheet.js +5 -5
  15. package/dist/esm/components/ui/calendar/calendar.js +33 -23
  16. package/dist/esm/components/ui/date-pickers/date-time-picker/date-time-picker.js +1 -1
  17. package/dist/esm/components/ui/date-pickers/month-select/month-select.js +1 -1
  18. package/dist/esm/components/ui/date-pickers/time-picker/components/time-period-select.js +1 -1
  19. package/dist/esm/components/ui/date-pickers/year-select/year-select.js +1 -1
  20. package/dist/esm/components/ui/pagination/pagination.js +1 -1
  21. package/dist/styles.css +49 -32
  22. package/dist/types/index.d.ts +5 -5
  23. package/package.json +1 -1
@@ -28,15 +28,15 @@ const DialogOverlay = (_a) => {
28
28
  };
29
29
  const DialogContent = (_a) => {
30
30
  var { className, children } = _a, props = tslib_es6.__rest(_a, ["className", "children"]);
31
- return (jsxRuntime.jsxs(DialogPortal, { children: [jsxRuntime.jsx(DialogOverlay, {}), jsxRuntime.jsxs(index.Content, Object.assign({ "data-slot": "dialog-content", className: utils.cn("bg-background grid gap-4 w-full max-w-[calc(100%-2rem)] rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", "fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] z-50", "overlay-appearance-animation overlay-zoom-animation", className) }, props, { children: [children, jsxRuntime.jsx(index.Close, { className: "data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", asChild: true, children: jsxRuntime.jsx(iconClose.IconClose, {}) })] }))] }));
31
+ return (jsxRuntime.jsxs(DialogPortal, { children: [jsxRuntime.jsx(DialogOverlay, {}), jsxRuntime.jsxs(index.Content, Object.assign({ "data-slot": "dialog-content", className: utils.cn("bg-background grid gap-4 w-full max-w-[calc(100%-8px)] max-h-[calc(100dvh-24px)] rounded-lg border p-3 sm:p-6 shadow-lg duration-200 sm:max-w-lg", "fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] z-50", "overlay-appearance-animation overlay-zoom-animation", className) }, props, { children: [children, jsxRuntime.jsx(index.Close, { className: "data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", asChild: true, children: jsxRuntime.jsx(iconClose.IconClose, {}) })] }))] }));
32
32
  };
33
33
  const DialogHeader = (_a) => {
34
34
  var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
35
- return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "dialog-header", className: utils.cn("flex flex-col gap-2 text-center sm:text-left", className) }, props)));
35
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "dialog-header", className: utils.cn("flex flex-col gap-2 text-center sm:text-left order-first", className) }, props)));
36
36
  };
37
37
  const DialogFooter = (_a) => {
38
38
  var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
39
- return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "dialog-footer", className: utils.cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }, props)));
39
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "dialog-footer", className: utils.cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end order-last", className) }, props)));
40
40
  };
41
41
  const DialogTitle = (_a) => {
42
42
  var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
@@ -44,13 +44,13 @@ const DrawerContent = (_a) => {
44
44
  ], [
45
45
  "data-[vaul-drawer-direction=right]:inset-y-0",
46
46
  "data-[vaul-drawer-direction=right]:right-0",
47
- "data-[vaul-drawer-direction=right]:w-3/4",
47
+ "data-[vaul-drawer-direction=right]:w-[calc(100%-32px)]",
48
48
  "data-[vaul-drawer-direction=right]:border-l",
49
49
  "data-[vaul-drawer-direction=right]:sm:max-w-sm",
50
50
  ], [
51
51
  "data-[vaul-drawer-direction=left]:inset-y-0",
52
52
  "data-[vaul-drawer-direction=left]:left-0",
53
- "data-[vaul-drawer-direction=left]:w-3/4",
53
+ "data-[vaul-drawer-direction=left]:w-[calc(100%-32px)]",
54
54
  "data-[vaul-drawer-direction=left]:border-r",
55
55
  "data-[vaul-drawer-direction=left]:sm:max-w-sm",
56
56
  ], className) }, props, { children: [jsxRuntime.jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }), children] }))] }));
@@ -7,7 +7,7 @@ var utils = require('../../../lib/utils.js');
7
7
 
8
8
  const IconClose = (_a) => {
9
9
  var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
10
- return (jsxRuntime.jsx(icon.Icon, Object.assign({ name: "x", size: 16, className: utils.cn("absolute top-4 right-4", "focusable disabled:pointer-events-none ring-offset-background rounded-xs", "opacity-70 hover:opacity-100 transition-opacity", className), "aria-label": "Close" }, props)));
10
+ return (jsxRuntime.jsx(icon.Icon, Object.assign({ name: "x", size: 16, className: utils.cn("absolute top-3 right-3 sm:top-6 sm:right-6", "focusable disabled:pointer-events-none ring-offset-background rounded-xs", "opacity-70 hover:opacity-100 transition-opacity", className), "aria-label": "Close" }, props)));
11
11
  };
12
12
  IconClose.displayName = "IconClose";
13
13
 
@@ -39,7 +39,7 @@ const contentVariants = index$1.cva([
39
39
  "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
40
40
  ],
41
41
  right: [
42
- "inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
42
+ "inset-y-0 right-0 h-full w-[calc(100%-32px)] border-l sm:max-w-sm",
43
43
  "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right",
44
44
  ],
45
45
  bottom: [
@@ -47,7 +47,7 @@ const contentVariants = index$1.cva([
47
47
  "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
48
48
  ],
49
49
  left: [
50
- "inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
50
+ "inset-y-0 left-0 h-full w-[calc(100%-32px)] border-r sm:max-w-sm",
51
51
  "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",
52
52
  ],
53
53
  },
@@ -58,15 +58,15 @@ const contentVariants = index$1.cva([
58
58
  });
59
59
  const SheetContent = (_a) => {
60
60
  var { className, children, side = "right" } = _a, props = tslib_es6.__rest(_a, ["className", "children", "side"]);
61
- return (jsxRuntime.jsxs(SheetPortal, { children: [jsxRuntime.jsx(SheetOverlay, {}), jsxRuntime.jsxs(index.Content, Object.assign({ "data-slot": "sheet-content", className: utils.cn(contentVariants({ side }), className) }, props, { children: [children, jsxRuntime.jsx(index.Close, { className: "data-[state=open]:bg-secondary", asChild: true, children: jsxRuntime.jsx(iconClose.IconClose, {}) })] }))] }));
61
+ return (jsxRuntime.jsxs(SheetPortal, { children: [jsxRuntime.jsx(SheetOverlay, {}), jsxRuntime.jsxs(index.Content, Object.assign({ "data-slot": "sheet-content", className: utils.cn(contentVariants({ side }), className) }, props, { children: [children, jsxRuntime.jsx(index.Close, { className: "data-[state=open]:bg-secondary", asChild: true, children: jsxRuntime.jsx(iconClose.IconClose, { className: "sm:top-4 sm:right-4" }) })] }))] }));
62
62
  };
63
63
  const SheetHeader = (_a) => {
64
64
  var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
65
- return jsxRuntime.jsx("div", Object.assign({ "data-slot": "sheet-header", className: utils.cn("flex flex-col gap-1.5 p-4", className) }, props));
65
+ return jsxRuntime.jsx("div", Object.assign({ "data-slot": "sheet-header", className: utils.cn("flex flex-col gap-1.5 p-3 sm:p-4", className) }, props));
66
66
  };
67
67
  const SheetFooter = (_a) => {
68
68
  var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
69
- return jsxRuntime.jsx("div", Object.assign({ "data-slot": "sheet-footer", className: utils.cn("mt-auto flex flex-col gap-2 p-4", className) }, props));
69
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sheet-footer", className: utils.cn("mt-auto flex flex-col gap-2 p-3 sm:p-4", className) }, props)));
70
70
  };
71
71
  const SheetTitle = (_a) => {
72
72
  var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
@@ -10,11 +10,11 @@ var button = require('../../buttons/button/button.js');
10
10
  var select = require('../../forms/select/select.js');
11
11
  var DayPicker = require('../../../node_modules/react-day-picker/dist/esm/DayPicker.js');
12
12
 
13
- const Chevron = (_a) => {
13
+ const Chevron = React.memo((_a) => {
14
14
  var { className, orientation } = _a, props = tslib_es6.__rest(_a, ["className", "orientation"]);
15
15
  return (jsxRuntime.jsx(icon.Icon, Object.assign({ name: `chevron-${orientation}`, className: utils.cn("h-4 w-4", className) }, props)));
16
- };
17
- const Dropdown = (props) => {
16
+ });
17
+ const Dropdown = React.memo((props) => {
18
18
  const { options, value, onChange } = props;
19
19
  const handleValueChange = (newValue) => {
20
20
  if (onChange) {
@@ -27,30 +27,40 @@ const Dropdown = (props) => {
27
27
  }
28
28
  };
29
29
  return (jsxRuntime.jsxs(select.Select, { value: value === null || value === void 0 ? void 0 : value.toString(), onValueChange: handleValueChange, children: [jsxRuntime.jsx(select.SelectTrigger, { className: "gap-1 overflow-hidden w-[84px] [&_[data-slot=select-value]]:truncate [&_[data-slot=select-value]]:block", children: jsxRuntime.jsx(select.SelectValue, {}) }), jsxRuntime.jsx(select.SelectContent, { children: jsxRuntime.jsx(select.SelectGroup, { children: options === null || options === void 0 ? void 0 : options.map((option) => (jsxRuntime.jsx(select.SelectItem, { value: option.value.toString(), disabled: option.disabled, children: option.label }, option.value))) }) })] }));
30
- };
30
+ });
31
31
  const components = {
32
32
  Chevron,
33
33
  Dropdown,
34
34
  };
35
+ const modifiersClassNames = {
36
+ hoverRange: "hover-range",
37
+ };
38
+ const classNames = {
39
+ root: "relative",
40
+ months: "flex flex-col sm:flex-row space-y-4 sm:space-y-0 justify-center",
41
+ month: "flex flex-col items-center space-y-4",
42
+ month_caption: "flex justify-center pt-1 relative items-center",
43
+ caption_label: "text-sm font-medium",
44
+ dropdowns: "inline-flex gap-1 items-center",
45
+ button_previous: utils.cn(button.buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute left-3 top-5"),
46
+ button_next: utils.cn(button.buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute right-3 top-5"),
47
+ month_grid: "w-full border-collapse space-y-1",
48
+ weekdays: "flex",
49
+ weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
50
+ week: "flex w-full mt-2",
51
+ day: utils.cn("h-9 w-9 text-center text-sm p-0 relative", "[&:has([aria-selected].day-range-end)]:rounded-r-md", "[&:has([aria-selected].day-outside)]:bg-accent/50", "[&:has([aria-selected])]:bg-accent", "first:[&:has([aria-selected])]:rounded-l-md", "last:[&:has([aria-selected])]:rounded-r-md", "focus-within:relative focus-within:z-20 rounded-1"),
52
+ day_button: utils.cn(button.buttonVariants({ variant: "ghost" }), "h-9 w-9 p-0 font-normal aria-selected:opacity-100 rounded-l-md rounded-r-md"),
53
+ range_end: "day-range-end",
54
+ selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-l-md rounded-r-md",
55
+ today: "bg-blue-600 text-white rounded-md",
56
+ outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
57
+ disabled: "text-muted-foreground opacity-50",
58
+ range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
59
+ hidden: "invisible",
60
+ };
35
61
  const Calendar = React.memo((_a) => {
36
- var _b, _c;
37
- var { className, classNames, showOutsideDays = true } = _a, props = tslib_es6.__rest(_a, ["className", "classNames", "showOutsideDays"]);
38
- const selectedMonth = (_b = props.month) === null || _b === void 0 ? void 0 : _b.getMonth();
39
- const selectedYear = (_c = props.month) === null || _c === void 0 ? void 0 : _c.getFullYear();
40
- const disabledLeftNavigation = React.useMemo(() => {
41
- if (selectedMonth && props.startMonth) {
42
- return selectedMonth === props.startMonth.getMonth() && selectedYear === props.startMonth.getFullYear();
43
- }
44
- return false;
45
- }, [selectedMonth, selectedYear, props.startMonth]);
46
- const disabledRightNavigation = React.useMemo(() => {
47
- if (selectedMonth && props.endMonth) {
48
- return selectedMonth === props.endMonth.getMonth() && selectedYear === props.endMonth.getFullYear();
49
- }
50
- return false;
51
- }, [selectedMonth, selectedYear, props.endMonth]);
52
- const _classNames = React.useMemo(() => (Object.assign({ months: "flex flex-col sm:flex-row space-y-4 sm:space-y-0 justify-center", month: "flex flex-col items-center space-y-4", month_caption: "flex justify-center pt-1 relative items-center", caption_label: "text-sm font-medium", nav: "space-x-1 flex items-center", dropdowns: "inline-flex gap-1 items-center", button_previous: utils.cn(button.buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute left-5 top-5", disabledLeftNavigation && "pointer-events-none"), button_next: utils.cn(button.buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute right-5 top-5", disabledRightNavigation && "pointer-events-none"), month_grid: "w-full border-collapse space-y-1", weekdays: utils.cn("flex", props.showWeekNumber && "justify-end"), weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]", week: "flex w-full mt-2", day: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20 rounded-1", day_button: utils.cn(button.buttonVariants({ variant: "ghost" }), "h-9 w-9 p-0 font-normal aria-selected:opacity-100 rounded-l-md rounded-r-md"), range_end: "day-range-end", selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-l-md rounded-r-md", today: "bg-accent text-accent-foreground", outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30", disabled: "text-muted-foreground opacity-50", range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground", hidden: "invisible" }, classNames)), [props.showWeekNumber, disabledLeftNavigation, disabledRightNavigation, classNames]);
53
- return (jsxRuntime.jsx(DayPicker.DayPicker, Object.assign({ captionLayout: "dropdown", showOutsideDays: showOutsideDays, className: utils.cn("p-3", className), classNames: _classNames, components: components }, props)));
62
+ var { className } = _a, props = tslib_es6.__rest(_a, ["className"]);
63
+ return (jsxRuntime.jsx(DayPicker.DayPicker, Object.assign({ captionLayout: "dropdown", className: utils.cn("p-3", className), classNames: classNames, components: components, modifiersClassNames: modifiersClassNames }, props)));
54
64
  });
55
65
  Calendar.displayName = "Calendar";
56
66
 
@@ -69,7 +69,7 @@ const DateTimePicker = React.forwardRef((_a, ref) => {
69
69
  ? format.formatDate(displayDate, hourCycle === 24 ? initHourFormat.hour24 : initHourFormat.hour12, {
70
70
  locale: loc,
71
71
  })
72
- : placeholder }) }), jsxRuntime.jsxs(popover.PopoverContent, { className: "w-auto p-0", children: [jsxRuntime.jsx(calendar.Calendar, Object.assign({ mode: "single", selected: displayDate, month: month, onSelect: (newDate) => {
72
+ : placeholder }) }), jsxRuntime.jsxs(popover.PopoverContent, { className: "w-auto p-0 relative", children: [jsxRuntime.jsx(calendar.Calendar, Object.assign({ mode: "single", selected: displayDate, month: month, onSelect: (newDate) => {
73
73
  var _a, _b, _c;
74
74
  if (newDate) {
75
75
  newDate.setHours((_a = month === null || month === void 0 ? void 0 : month.getHours()) !== null && _a !== void 0 ? _a : 0, (_b = month === null || month === void 0 ? void 0 : month.getMinutes()) !== null && _b !== void 0 ? _b : 0, (_c = month === null || month === void 0 ? void 0 : month.getSeconds()) !== null && _c !== void 0 ? _c : 0);
@@ -18,7 +18,7 @@ const MonthSelect = React.forwardRef(({ value: month, onChange, locale = default
18
18
  const MONTHS = React.useMemo(() => genMonths(locale), []);
19
19
  return (jsxRuntime.jsxs(select.Select, { defaultValue: month === null || month === void 0 ? void 0 : month.toString(), onValueChange: (value) => {
20
20
  onChange === null || onChange === void 0 ? void 0 : onChange(Number.parseInt(value, 10));
21
- }, children: [jsxRuntime.jsx(select.SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground w-fit gap-1 border-none p-0", children: jsxRuntime.jsx(select.SelectValue, {}) }), jsxRuntime.jsx(select.SelectContent, { children: MONTHS.map((month) => (jsxRuntime.jsx(select.SelectItem, { value: month.value.toString(), children: month.label }, month.value))) })] }));
21
+ }, children: [jsxRuntime.jsx(select.SelectTrigger, { ref: ref, children: jsxRuntime.jsx(select.SelectValue, {}) }), jsxRuntime.jsx(select.SelectContent, { children: MONTHS.map((month) => (jsxRuntime.jsx(select.SelectItem, { value: month.value.toString(), children: month.label }, month.value))) })] }));
22
22
  });
23
23
  MonthSelect.displayName = "MonthSelect";
24
24
 
@@ -26,7 +26,7 @@ const TimePeriodSelect = React.forwardRef(({ period, setPeriod, date, onDateChan
26
26
  onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(utils.setDateByType(tempDate, hours.toString(), "12hours", period === "AM" ? "PM" : "AM"));
27
27
  }
28
28
  };
29
- return (jsxRuntime.jsx(flex.Flex, { align: "center", className: "h-10", children: jsxRuntime.jsxs(select.Select, { defaultValue: period, onValueChange: (value) => handleValueChange(value), children: [jsxRuntime.jsx(select.SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground w-[65px]", onKeyDown: handleKeyDown, children: jsxRuntime.jsx(select.SelectValue, {}) }), jsxRuntime.jsxs(select.SelectContent, { children: [jsxRuntime.jsx(select.SelectItem, { value: "AM", children: "AM" }), jsxRuntime.jsx(select.SelectItem, { value: "PM", children: "PM" })] })] }) }));
29
+ return (jsxRuntime.jsx(flex.Flex, { align: "center", className: "h-10", children: jsxRuntime.jsxs(select.Select, { defaultValue: period, onValueChange: (value) => handleValueChange(value), children: [jsxRuntime.jsx(select.SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground px-2.5 gap-1 w-[64px]", onKeyDown: handleKeyDown, children: jsxRuntime.jsx(select.SelectValue, {}) }), jsxRuntime.jsxs(select.SelectContent, { children: [jsxRuntime.jsx(select.SelectItem, { value: "AM", children: "AM" }), jsxRuntime.jsx(select.SelectItem, { value: "PM", children: "PM" })] })] }) }));
30
30
  });
31
31
  TimePeriodSelect.displayName = "TimePeriodSelect";
32
32
 
@@ -10,7 +10,7 @@ const YearSelect = React.forwardRef(({ value: year, onChange, minYear = 1940, ma
10
10
  const YEARS = React.useMemo(() => range.default(minYear, maxYear, 1).map((y) => ({ value: y, label: y.toString() })), [minYear, maxYear]);
11
11
  return (jsxRuntime.jsxs(select.Select, { defaultValue: year === null || year === void 0 ? void 0 : year.toString(), onValueChange: (value) => {
12
12
  onChange === null || onChange === void 0 ? void 0 : onChange(Number.parseInt(value, 10));
13
- }, children: [jsxRuntime.jsx(select.SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground w-fit gap-1 border-none p-0", children: jsxRuntime.jsx(select.SelectValue, {}) }), jsxRuntime.jsx(select.SelectContent, { position: "item-aligned", className: "max-h-[320px]", children: YEARS.map((year) => (jsxRuntime.jsx(select.SelectItem, { value: year.value.toString(), children: year.label }, year.value))) })] }));
13
+ }, children: [jsxRuntime.jsx(select.SelectTrigger, { ref: ref, children: jsxRuntime.jsx(select.SelectValue, {}) }), jsxRuntime.jsx(select.SelectContent, { position: "item-aligned", className: "max-h-[320px]", children: YEARS.map((year) => (jsxRuntime.jsx(select.SelectItem, { value: year.value.toString(), children: year.label }, year.value))) })] }));
14
14
  });
15
15
  YearSelect.displayName = "YearSelect";
16
16
 
@@ -23,7 +23,7 @@ const PaginationItem = (_a) => {
23
23
  PaginationItem.displayName = "PaginationItem";
24
24
  const PaginationLink = (_a) => {
25
25
  var { isActive, size = "icon" } = _a, props = tslib_es6.__rest(_a, ["isActive", "size"]);
26
- return (jsxRuntime.jsx(button.Button, { asChild: true, variant: isActive ? "outline" : "ghost", size: size, children: jsxRuntime.jsx("a", Object.assign({ "aria-current": isActive ? "page" : undefined, "data-slot": "pagination-link", "data-active": isActive }, props)) }));
26
+ return (jsxRuntime.jsx(button.Button, { asChild: true, variant: isActive ? "outline" : "ghost", size: size, className: "select-none", children: jsxRuntime.jsx("a", Object.assign({ "aria-current": isActive ? "page" : undefined, "data-slot": "pagination-link", "data-active": isActive }, props)) }));
27
27
  };
28
28
  PaginationLink.displayName = "PaginationLink";
29
29
  const PaginationPrevious = (_a) => {
@@ -26,15 +26,15 @@ const DialogOverlay = (_a) => {
26
26
  };
27
27
  const DialogContent = (_a) => {
28
28
  var { className, children } = _a, props = __rest(_a, ["className", "children"]);
29
- return (jsxs(DialogPortal, { children: [jsx(DialogOverlay, {}), jsxs(Content, Object.assign({ "data-slot": "dialog-content", className: cn("bg-background grid gap-4 w-full max-w-[calc(100%-2rem)] rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", "fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] z-50", "overlay-appearance-animation overlay-zoom-animation", className) }, props, { children: [children, jsx(Close, { className: "data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", asChild: true, children: jsx(IconClose, {}) })] }))] }));
29
+ return (jsxs(DialogPortal, { children: [jsx(DialogOverlay, {}), jsxs(Content, Object.assign({ "data-slot": "dialog-content", className: cn("bg-background grid gap-4 w-full max-w-[calc(100%-8px)] max-h-[calc(100dvh-24px)] rounded-lg border p-3 sm:p-6 shadow-lg duration-200 sm:max-w-lg", "fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] z-50", "overlay-appearance-animation overlay-zoom-animation", className) }, props, { children: [children, jsx(Close, { className: "data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", asChild: true, children: jsx(IconClose, {}) })] }))] }));
30
30
  };
31
31
  const DialogHeader = (_a) => {
32
32
  var { className } = _a, props = __rest(_a, ["className"]);
33
- return (jsx("div", Object.assign({ "data-slot": "dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className) }, props)));
33
+ return (jsx("div", Object.assign({ "data-slot": "dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left order-first", className) }, props)));
34
34
  };
35
35
  const DialogFooter = (_a) => {
36
36
  var { className } = _a, props = __rest(_a, ["className"]);
37
- return (jsx("div", Object.assign({ "data-slot": "dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }, props)));
37
+ return (jsx("div", Object.assign({ "data-slot": "dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end order-last", className) }, props)));
38
38
  };
39
39
  const DialogTitle = (_a) => {
40
40
  var { className } = _a, props = __rest(_a, ["className"]);
@@ -42,13 +42,13 @@ const DrawerContent = (_a) => {
42
42
  ], [
43
43
  "data-[vaul-drawer-direction=right]:inset-y-0",
44
44
  "data-[vaul-drawer-direction=right]:right-0",
45
- "data-[vaul-drawer-direction=right]:w-3/4",
45
+ "data-[vaul-drawer-direction=right]:w-[calc(100%-32px)]",
46
46
  "data-[vaul-drawer-direction=right]:border-l",
47
47
  "data-[vaul-drawer-direction=right]:sm:max-w-sm",
48
48
  ], [
49
49
  "data-[vaul-drawer-direction=left]:inset-y-0",
50
50
  "data-[vaul-drawer-direction=left]:left-0",
51
- "data-[vaul-drawer-direction=left]:w-3/4",
51
+ "data-[vaul-drawer-direction=left]:w-[calc(100%-32px)]",
52
52
  "data-[vaul-drawer-direction=left]:border-r",
53
53
  "data-[vaul-drawer-direction=left]:sm:max-w-sm",
54
54
  ], className) }, props, { children: [jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }), children] }))] }));
@@ -5,7 +5,7 @@ import { cn } from '../../../lib/utils.js';
5
5
 
6
6
  const IconClose = (_a) => {
7
7
  var { className } = _a, props = __rest(_a, ["className"]);
8
- return (jsx(Icon, Object.assign({ name: "x", size: 16, className: cn("absolute top-4 right-4", "focusable disabled:pointer-events-none ring-offset-background rounded-xs", "opacity-70 hover:opacity-100 transition-opacity", className), "aria-label": "Close" }, props)));
8
+ return (jsx(Icon, Object.assign({ name: "x", size: 16, className: cn("absolute top-3 right-3 sm:top-6 sm:right-6", "focusable disabled:pointer-events-none ring-offset-background rounded-xs", "opacity-70 hover:opacity-100 transition-opacity", className), "aria-label": "Close" }, props)));
9
9
  };
10
10
  IconClose.displayName = "IconClose";
11
11
 
@@ -37,7 +37,7 @@ const contentVariants = cva([
37
37
  "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
38
38
  ],
39
39
  right: [
40
- "inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
40
+ "inset-y-0 right-0 h-full w-[calc(100%-32px)] border-l sm:max-w-sm",
41
41
  "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right",
42
42
  ],
43
43
  bottom: [
@@ -45,7 +45,7 @@ const contentVariants = cva([
45
45
  "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
46
46
  ],
47
47
  left: [
48
- "inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
48
+ "inset-y-0 left-0 h-full w-[calc(100%-32px)] border-r sm:max-w-sm",
49
49
  "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",
50
50
  ],
51
51
  },
@@ -56,15 +56,15 @@ const contentVariants = cva([
56
56
  });
57
57
  const SheetContent = (_a) => {
58
58
  var { className, children, side = "right" } = _a, props = __rest(_a, ["className", "children", "side"]);
59
- return (jsxs(SheetPortal, { children: [jsx(SheetOverlay, {}), jsxs(Content, Object.assign({ "data-slot": "sheet-content", className: cn(contentVariants({ side }), className) }, props, { children: [children, jsx(Close, { className: "data-[state=open]:bg-secondary", asChild: true, children: jsx(IconClose, {}) })] }))] }));
59
+ return (jsxs(SheetPortal, { children: [jsx(SheetOverlay, {}), jsxs(Content, Object.assign({ "data-slot": "sheet-content", className: cn(contentVariants({ side }), className) }, props, { children: [children, jsx(Close, { className: "data-[state=open]:bg-secondary", asChild: true, children: jsx(IconClose, { className: "sm:top-4 sm:right-4" }) })] }))] }));
60
60
  };
61
61
  const SheetHeader = (_a) => {
62
62
  var { className } = _a, props = __rest(_a, ["className"]);
63
- return jsx("div", Object.assign({ "data-slot": "sheet-header", className: cn("flex flex-col gap-1.5 p-4", className) }, props));
63
+ return jsx("div", Object.assign({ "data-slot": "sheet-header", className: cn("flex flex-col gap-1.5 p-3 sm:p-4", className) }, props));
64
64
  };
65
65
  const SheetFooter = (_a) => {
66
66
  var { className } = _a, props = __rest(_a, ["className"]);
67
- return jsx("div", Object.assign({ "data-slot": "sheet-footer", className: cn("mt-auto flex flex-col gap-2 p-4", className) }, props));
67
+ return (jsx("div", Object.assign({ "data-slot": "sheet-footer", className: cn("mt-auto flex flex-col gap-2 p-3 sm:p-4", className) }, props)));
68
68
  };
69
69
  const SheetTitle = (_a) => {
70
70
  var { className } = _a, props = __rest(_a, ["className"]);
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import { __rest } from '../../../node_modules/tslib/tslib.es6.js';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
- import { memo, useMemo } from 'react';
4
+ import { memo } from 'react';
5
5
  import { cn } from '../../../lib/utils.js';
6
6
  import { Icon } from '../../media/icon/icon.js';
7
7
  import { buttonVariants } from '../../buttons/button/button.js';
8
8
  import { Select, SelectTrigger, SelectValue, SelectContent, SelectGroup, SelectItem } from '../../forms/select/select.js';
9
9
  import { DayPicker } from '../../../node_modules/react-day-picker/dist/esm/DayPicker.js';
10
10
 
11
- const Chevron = (_a) => {
11
+ const Chevron = memo((_a) => {
12
12
  var { className, orientation } = _a, props = __rest(_a, ["className", "orientation"]);
13
13
  return (jsx(Icon, Object.assign({ name: `chevron-${orientation}`, className: cn("h-4 w-4", className) }, props)));
14
- };
15
- const Dropdown = (props) => {
14
+ });
15
+ const Dropdown = memo((props) => {
16
16
  const { options, value, onChange } = props;
17
17
  const handleValueChange = (newValue) => {
18
18
  if (onChange) {
@@ -25,30 +25,40 @@ const Dropdown = (props) => {
25
25
  }
26
26
  };
27
27
  return (jsxs(Select, { value: value === null || value === void 0 ? void 0 : value.toString(), onValueChange: handleValueChange, children: [jsx(SelectTrigger, { className: "gap-1 overflow-hidden w-[84px] [&_[data-slot=select-value]]:truncate [&_[data-slot=select-value]]:block", children: jsx(SelectValue, {}) }), jsx(SelectContent, { children: jsx(SelectGroup, { children: options === null || options === void 0 ? void 0 : options.map((option) => (jsx(SelectItem, { value: option.value.toString(), disabled: option.disabled, children: option.label }, option.value))) }) })] }));
28
- };
28
+ });
29
29
  const components = {
30
30
  Chevron,
31
31
  Dropdown,
32
32
  };
33
+ const modifiersClassNames = {
34
+ hoverRange: "hover-range",
35
+ };
36
+ const classNames = {
37
+ root: "relative",
38
+ months: "flex flex-col sm:flex-row space-y-4 sm:space-y-0 justify-center",
39
+ month: "flex flex-col items-center space-y-4",
40
+ month_caption: "flex justify-center pt-1 relative items-center",
41
+ caption_label: "text-sm font-medium",
42
+ dropdowns: "inline-flex gap-1 items-center",
43
+ button_previous: cn(buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute left-3 top-5"),
44
+ button_next: cn(buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute right-3 top-5"),
45
+ month_grid: "w-full border-collapse space-y-1",
46
+ weekdays: "flex",
47
+ weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
48
+ week: "flex w-full mt-2",
49
+ day: cn("h-9 w-9 text-center text-sm p-0 relative", "[&:has([aria-selected].day-range-end)]:rounded-r-md", "[&:has([aria-selected].day-outside)]:bg-accent/50", "[&:has([aria-selected])]:bg-accent", "first:[&:has([aria-selected])]:rounded-l-md", "last:[&:has([aria-selected])]:rounded-r-md", "focus-within:relative focus-within:z-20 rounded-1"),
50
+ day_button: cn(buttonVariants({ variant: "ghost" }), "h-9 w-9 p-0 font-normal aria-selected:opacity-100 rounded-l-md rounded-r-md"),
51
+ range_end: "day-range-end",
52
+ selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-l-md rounded-r-md",
53
+ today: "bg-blue-600 text-white rounded-md",
54
+ outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
55
+ disabled: "text-muted-foreground opacity-50",
56
+ range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
57
+ hidden: "invisible",
58
+ };
33
59
  const Calendar = memo((_a) => {
34
- var _b, _c;
35
- var { className, classNames, showOutsideDays = true } = _a, props = __rest(_a, ["className", "classNames", "showOutsideDays"]);
36
- const selectedMonth = (_b = props.month) === null || _b === void 0 ? void 0 : _b.getMonth();
37
- const selectedYear = (_c = props.month) === null || _c === void 0 ? void 0 : _c.getFullYear();
38
- const disabledLeftNavigation = useMemo(() => {
39
- if (selectedMonth && props.startMonth) {
40
- return selectedMonth === props.startMonth.getMonth() && selectedYear === props.startMonth.getFullYear();
41
- }
42
- return false;
43
- }, [selectedMonth, selectedYear, props.startMonth]);
44
- const disabledRightNavigation = useMemo(() => {
45
- if (selectedMonth && props.endMonth) {
46
- return selectedMonth === props.endMonth.getMonth() && selectedYear === props.endMonth.getFullYear();
47
- }
48
- return false;
49
- }, [selectedMonth, selectedYear, props.endMonth]);
50
- const _classNames = useMemo(() => (Object.assign({ months: "flex flex-col sm:flex-row space-y-4 sm:space-y-0 justify-center", month: "flex flex-col items-center space-y-4", month_caption: "flex justify-center pt-1 relative items-center", caption_label: "text-sm font-medium", nav: "space-x-1 flex items-center", dropdowns: "inline-flex gap-1 items-center", button_previous: cn(buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute left-5 top-5", disabledLeftNavigation && "pointer-events-none"), button_next: cn(buttonVariants({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute right-5 top-5", disabledRightNavigation && "pointer-events-none"), month_grid: "w-full border-collapse space-y-1", weekdays: cn("flex", props.showWeekNumber && "justify-end"), weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]", week: "flex w-full mt-2", day: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20 rounded-1", day_button: cn(buttonVariants({ variant: "ghost" }), "h-9 w-9 p-0 font-normal aria-selected:opacity-100 rounded-l-md rounded-r-md"), range_end: "day-range-end", selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-l-md rounded-r-md", today: "bg-accent text-accent-foreground", outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30", disabled: "text-muted-foreground opacity-50", range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground", hidden: "invisible" }, classNames)), [props.showWeekNumber, disabledLeftNavigation, disabledRightNavigation, classNames]);
51
- return (jsx(DayPicker, Object.assign({ captionLayout: "dropdown", showOutsideDays: showOutsideDays, className: cn("p-3", className), classNames: _classNames, components: components }, props)));
60
+ var { className } = _a, props = __rest(_a, ["className"]);
61
+ return (jsx(DayPicker, Object.assign({ captionLayout: "dropdown", className: cn("p-3", className), classNames: classNames, components: components, modifiersClassNames: modifiersClassNames }, props)));
52
62
  });
53
63
  Calendar.displayName = "Calendar";
54
64
 
@@ -67,7 +67,7 @@ const DateTimePicker = forwardRef((_a, ref) => {
67
67
  ? format(displayDate, hourCycle === 24 ? initHourFormat.hour24 : initHourFormat.hour12, {
68
68
  locale: loc,
69
69
  })
70
- : placeholder }) }), jsxs(PopoverContent, { className: "w-auto p-0", children: [jsx(Calendar, Object.assign({ mode: "single", selected: displayDate, month: month, onSelect: (newDate) => {
70
+ : placeholder }) }), jsxs(PopoverContent, { className: "w-auto p-0 relative", children: [jsx(Calendar, Object.assign({ mode: "single", selected: displayDate, month: month, onSelect: (newDate) => {
71
71
  var _a, _b, _c;
72
72
  if (newDate) {
73
73
  newDate.setHours((_a = month === null || month === void 0 ? void 0 : month.getHours()) !== null && _a !== void 0 ? _a : 0, (_b = month === null || month === void 0 ? void 0 : month.getMinutes()) !== null && _b !== void 0 ? _b : 0, (_c = month === null || month === void 0 ? void 0 : month.getSeconds()) !== null && _c !== void 0 ? _c : 0);
@@ -16,7 +16,7 @@ const MonthSelect = forwardRef(({ value: month, onChange, locale = defaultLocale
16
16
  const MONTHS = useMemo(() => genMonths(locale), []);
17
17
  return (jsxs(Select, { defaultValue: month === null || month === void 0 ? void 0 : month.toString(), onValueChange: (value) => {
18
18
  onChange === null || onChange === void 0 ? void 0 : onChange(Number.parseInt(value, 10));
19
- }, children: [jsx(SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground w-fit gap-1 border-none p-0", children: jsx(SelectValue, {}) }), jsx(SelectContent, { children: MONTHS.map((month) => (jsx(SelectItem, { value: month.value.toString(), children: month.label }, month.value))) })] }));
19
+ }, children: [jsx(SelectTrigger, { ref: ref, children: jsx(SelectValue, {}) }), jsx(SelectContent, { children: MONTHS.map((month) => (jsx(SelectItem, { value: month.value.toString(), children: month.label }, month.value))) })] }));
20
20
  });
21
21
  MonthSelect.displayName = "MonthSelect";
22
22
 
@@ -24,7 +24,7 @@ const TimePeriodSelect = forwardRef(({ period, setPeriod, date, onDateChange, on
24
24
  onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(setDateByType(tempDate, hours.toString(), "12hours", period === "AM" ? "PM" : "AM"));
25
25
  }
26
26
  };
27
- return (jsx(Flex, { align: "center", className: "h-10", children: jsxs(Select, { defaultValue: period, onValueChange: (value) => handleValueChange(value), children: [jsx(SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground w-[65px]", onKeyDown: handleKeyDown, children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: "AM", children: "AM" }), jsx(SelectItem, { value: "PM", children: "PM" })] })] }) }));
27
+ return (jsx(Flex, { align: "center", className: "h-10", children: jsxs(Select, { defaultValue: period, onValueChange: (value) => handleValueChange(value), children: [jsx(SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground px-2.5 gap-1 w-[64px]", onKeyDown: handleKeyDown, children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: "AM", children: "AM" }), jsx(SelectItem, { value: "PM", children: "PM" })] })] }) }));
28
28
  });
29
29
  TimePeriodSelect.displayName = "TimePeriodSelect";
30
30
 
@@ -8,7 +8,7 @@ const YearSelect = forwardRef(({ value: year, onChange, minYear = 1940, maxYear
8
8
  const YEARS = useMemo(() => range(minYear, maxYear, 1).map((y) => ({ value: y, label: y.toString() })), [minYear, maxYear]);
9
9
  return (jsxs(Select, { defaultValue: year === null || year === void 0 ? void 0 : year.toString(), onValueChange: (value) => {
10
10
  onChange === null || onChange === void 0 ? void 0 : onChange(Number.parseInt(value, 10));
11
- }, children: [jsx(SelectTrigger, { ref: ref, className: "focus:bg-accent focus:text-accent-foreground w-fit gap-1 border-none p-0", children: jsx(SelectValue, {}) }), jsx(SelectContent, { position: "item-aligned", className: "max-h-[320px]", children: YEARS.map((year) => (jsx(SelectItem, { value: year.value.toString(), children: year.label }, year.value))) })] }));
11
+ }, children: [jsx(SelectTrigger, { ref: ref, children: jsx(SelectValue, {}) }), jsx(SelectContent, { position: "item-aligned", className: "max-h-[320px]", children: YEARS.map((year) => (jsx(SelectItem, { value: year.value.toString(), children: year.label }, year.value))) })] }));
12
12
  });
13
13
  YearSelect.displayName = "YearSelect";
14
14
 
@@ -21,7 +21,7 @@ const PaginationItem = (_a) => {
21
21
  PaginationItem.displayName = "PaginationItem";
22
22
  const PaginationLink = (_a) => {
23
23
  var { isActive, size = "icon" } = _a, props = __rest(_a, ["isActive", "size"]);
24
- return (jsx(Button, { asChild: true, variant: isActive ? "outline" : "ghost", size: size, children: jsx("a", Object.assign({ "aria-current": isActive ? "page" : undefined, "data-slot": "pagination-link", "data-active": isActive }, props)) }));
24
+ return (jsx(Button, { asChild: true, variant: isActive ? "outline" : "ghost", size: size, className: "select-none", children: jsx("a", Object.assign({ "aria-current": isActive ? "page" : undefined, "data-slot": "pagination-link", "data-active": isActive }, props)) }));
25
25
  };
26
26
  PaginationLink.displayName = "PaginationLink";
27
27
  const PaginationPrevious = (_a) => {
package/dist/styles.css CHANGED
@@ -11,6 +11,7 @@
11
11
  --color-red-300: oklch(80.8% 0.114 19.571);
12
12
  --color-red-400: oklch(70.4% 0.191 22.216);
13
13
  --color-red-600: oklch(57.7% 0.245 27.325);
14
+ --color-blue-600: oklch(54.6% 0.245 262.881);
14
15
  --color-slate-200: oklch(92.9% 0.013 255.508);
15
16
  --color-black: #000;
16
17
  --color-white: #fff;
@@ -274,12 +275,12 @@
274
275
  .top-1\/2 {
275
276
  top: calc(1/2 * 100%);
276
277
  }
278
+ .top-3 {
279
+ top: calc(var(--spacing) * 3);
280
+ }
277
281
  .top-3\.5 {
278
282
  top: calc(var(--spacing) * 3.5);
279
283
  }
280
- .top-4 {
281
- top: calc(var(--spacing) * 4);
282
- }
283
284
  .top-5 {
284
285
  top: calc(var(--spacing) * 5);
285
286
  }
@@ -298,12 +299,6 @@
298
299
  .right-3 {
299
300
  right: calc(var(--spacing) * 3);
300
301
  }
301
- .right-4 {
302
- right: calc(var(--spacing) * 4);
303
- }
304
- .right-5 {
305
- right: calc(var(--spacing) * 5);
306
- }
307
302
  .bottom-0 {
308
303
  bottom: calc(var(--spacing) * 0);
309
304
  }
@@ -316,8 +311,8 @@
316
311
  .left-2 {
317
312
  left: calc(var(--spacing) * 2);
318
313
  }
319
- .left-5 {
320
- left: calc(var(--spacing) * 5);
314
+ .left-3 {
315
+ left: calc(var(--spacing) * 3);
321
316
  }
322
317
  .left-\[50\%\] {
323
318
  left: 50%;
@@ -794,6 +789,9 @@
794
789
  .max-h-\[320px\] {
795
790
  max-height: 320px;
796
791
  }
792
+ .max-h-\[calc\(100dvh-24px\)\] {
793
+ max-height: calc(100dvh - 24px);
794
+ }
797
795
  .max-h-full {
798
796
  max-height: 100%;
799
797
  }
@@ -851,9 +849,6 @@
851
849
  .w-1\/4 {
852
850
  width: calc(1/4 * 100%);
853
851
  }
854
- .w-3\/4 {
855
- width: calc(3/4 * 100%);
856
- }
857
852
  .w-4 {
858
853
  width: calc(var(--spacing) * 4);
859
854
  }
@@ -893,8 +888,8 @@
893
888
  .w-\[48px\] {
894
889
  width: 48px;
895
890
  }
896
- .w-\[65px\] {
897
- width: 65px;
891
+ .w-\[64px\] {
892
+ width: 64px;
898
893
  }
899
894
  .w-\[84px\] {
900
895
  width: 84px;
@@ -923,6 +918,9 @@
923
918
  .w-\[600px\] {
924
919
  width: 600px;
925
920
  }
921
+ .w-\[calc\(100\%-32px\)\] {
922
+ width: calc(100% - 32px);
923
+ }
926
924
  .w-auto {
927
925
  width: auto;
928
926
  }
@@ -953,8 +951,8 @@
953
951
  .max-w-6xl {
954
952
  max-width: var(--container-6xl);
955
953
  }
956
- .max-w-\[calc\(100\%-2rem\)\] {
957
- max-width: calc(100% - 2rem);
954
+ .max-w-\[calc\(100\%-8px\)\] {
955
+ max-width: calc(100% - 8px);
958
956
  }
959
957
  .max-w-full {
960
958
  max-width: 100%;
@@ -1333,13 +1331,6 @@
1333
1331
  margin-inline-end: calc(calc(var(--spacing) * -4) * calc(1 - var(--tw-space-x-reverse)));
1334
1332
  }
1335
1333
  }
1336
- .space-x-1 {
1337
- :where(& > :not(:last-child)) {
1338
- --tw-space-x-reverse: 0;
1339
- margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));
1340
- margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));
1341
- }
1342
- }
1343
1334
  .space-x-2 {
1344
1335
  :where(& > :not(:last-child)) {
1345
1336
  --tw-space-x-reverse: 0;
@@ -1516,6 +1507,9 @@
1516
1507
  background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
1517
1508
  }
1518
1509
  }
1510
+ .bg-blue-600 {
1511
+ background-color: var(--color-blue-600);
1512
+ }
1519
1513
  .bg-border {
1520
1514
  background-color: var(--border);
1521
1515
  }
@@ -1983,9 +1977,6 @@
1983
1977
  .text-accent {
1984
1978
  color: var(--accent);
1985
1979
  }
1986
- .text-accent-foreground {
1987
- color: var(--accent-foreground);
1988
- }
1989
1980
  .text-card-foreground {
1990
1981
  color: var(--card-foreground);
1991
1982
  }
@@ -3447,9 +3438,9 @@
3447
3438
  left: calc(var(--spacing) * 0);
3448
3439
  }
3449
3440
  }
3450
- .data-\[vaul-drawer-direction\=left\]\:w-3\/4 {
3441
+ .data-\[vaul-drawer-direction\=left\]\:w-\[calc\(100\%-32px\)\] {
3451
3442
  &[data-vaul-drawer-direction="left"] {
3452
- width: calc(3/4 * 100%);
3443
+ width: calc(100% - 32px);
3453
3444
  }
3454
3445
  }
3455
3446
  .data-\[vaul-drawer-direction\=left\]\:border-r {
@@ -3468,9 +3459,9 @@
3468
3459
  right: calc(var(--spacing) * 0);
3469
3460
  }
3470
3461
  }
3471
- .data-\[vaul-drawer-direction\=right\]\:w-3\/4 {
3462
+ .data-\[vaul-drawer-direction\=right\]\:w-\[calc\(100\%-32px\)\] {
3472
3463
  &[data-vaul-drawer-direction="right"] {
3473
- width: calc(3/4 * 100%);
3464
+ width: calc(100% - 32px);
3474
3465
  }
3475
3466
  }
3476
3467
  .data-\[vaul-drawer-direction\=right\]\:border-l {
@@ -3536,6 +3527,16 @@
3536
3527
  position: sticky;
3537
3528
  }
3538
3529
  }
3530
+ .sm\:top-4 {
3531
+ @media (width >= 40rem) {
3532
+ top: calc(var(--spacing) * 4);
3533
+ }
3534
+ }
3535
+ .sm\:top-6 {
3536
+ @media (width >= 40rem) {
3537
+ top: calc(var(--spacing) * 6);
3538
+ }
3539
+ }
3539
3540
  .sm\:top-auto {
3540
3541
  @media (width >= 40rem) {
3541
3542
  top: auto;
@@ -3546,6 +3547,16 @@
3546
3547
  right: calc(var(--spacing) * 0);
3547
3548
  }
3548
3549
  }
3550
+ .sm\:right-4 {
3551
+ @media (width >= 40rem) {
3552
+ right: calc(var(--spacing) * 4);
3553
+ }
3554
+ }
3555
+ .sm\:right-6 {
3556
+ @media (width >= 40rem) {
3557
+ right: calc(var(--spacing) * 6);
3558
+ }
3559
+ }
3549
3560
  .sm\:bottom-0 {
3550
3561
  @media (width >= 40rem) {
3551
3562
  bottom: calc(var(--spacing) * 0);
@@ -9474,6 +9485,12 @@
9474
9485
  }
9475
9486
  }
9476
9487
  }
9488
+ @layer components {
9489
+ .hover-range {
9490
+ background-color: var(--accent);
9491
+ color: var(--accent-foreground);
9492
+ }
9493
+ }
9477
9494
  @property --tw-translate-x {
9478
9495
  syntax: "*";
9479
9496
  inherits: false;
@@ -450,7 +450,7 @@ type ToastActionElement = ReactElement<typeof ToastAction>;
450
450
  declare const Text: react.ForwardRefExoticComponent<{
451
451
  asChild?: boolean;
452
452
  } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & VariantProps<(props?: ({
453
- size?: 2 | 1 | 3 | 4 | 5 | 6 | 9 | 8 | 7 | null | undefined;
453
+ size?: 1 | 2 | 3 | 9 | 8 | 7 | 6 | 5 | 4 | null | undefined;
454
454
  weight?: "bold" | "medium" | "light" | "regular" | null | undefined;
455
455
  align?: "center" | "right" | "left" | null | undefined;
456
456
  color?: "default" | "destructive" | "secondary" | "muted" | "primary" | "accent" | null | undefined;
@@ -462,7 +462,7 @@ declare const Heading: react.ForwardRefExoticComponent<{
462
462
  level?: HeadingLevel;
463
463
  asChild?: boolean;
464
464
  } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & VariantProps<(props?: ({
465
- size?: 2 | 1 | 3 | 4 | 5 | 6 | 9 | 8 | 7 | null | undefined;
465
+ size?: 1 | 2 | 3 | 9 | 8 | 7 | 6 | 5 | 4 | null | undefined;
466
466
  weight?: "bold" | "medium" | "light" | "regular" | null | undefined;
467
467
  align?: "center" | "right" | "left" | null | undefined;
468
468
  color?: "default" | "destructive" | "secondary" | "muted" | "primary" | "accent" | null | undefined;
@@ -1487,10 +1487,10 @@ declare const EmptyState: react.ForwardRefExoticComponent<Omit<{
1487
1487
  inline?: boolean;
1488
1488
  } & react.RefAttributes<HTMLDivElement>, "ref">>;
1489
1489
  Title: FC<Omit<{
1490
- level?: 2 | 1 | 3 | 4 | 5 | 6;
1490
+ level?: 1 | 2 | 3 | 6 | 5 | 4;
1491
1491
  asChild?: boolean;
1492
1492
  } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & class_variance_authority.VariantProps<(props?: ({
1493
- size?: 2 | 1 | 3 | 4 | 5 | 6 | 9 | 8 | 7 | null | undefined;
1493
+ size?: 1 | 2 | 3 | 9 | 8 | 7 | 6 | 5 | 4 | null | undefined;
1494
1494
  weight?: "bold" | "medium" | "light" | "regular" | null | undefined;
1495
1495
  align?: "center" | "right" | "left" | null | undefined;
1496
1496
  color?: "default" | "destructive" | "secondary" | "muted" | "primary" | "accent" | null | undefined;
@@ -1499,7 +1499,7 @@ declare const EmptyState: react.ForwardRefExoticComponent<Omit<{
1499
1499
  Description: FC<Omit<{
1500
1500
  asChild?: boolean;
1501
1501
  } & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & class_variance_authority.VariantProps<(props?: ({
1502
- size?: 2 | 1 | 3 | 4 | 5 | 6 | 9 | 8 | 7 | null | undefined;
1502
+ size?: 1 | 2 | 3 | 9 | 8 | 7 | 6 | 5 | 4 | null | undefined;
1503
1503
  weight?: "bold" | "medium" | "light" | "regular" | null | undefined;
1504
1504
  align?: "center" | "right" | "left" | null | undefined;
1505
1505
  color?: "default" | "destructive" | "secondary" | "muted" | "primary" | "accent" | null | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "art-bd-ui",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "Set of handy components for React like projects",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",