@a-type/ui 3.0.32 → 3.0.33

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 (36) hide show
  1. package/dist/cjs/components/datePicker/Calendar.d.ts +11 -0
  2. package/dist/cjs/components/datePicker/Calendar.js +37 -0
  3. package/dist/cjs/components/datePicker/Calendar.js.map +1 -0
  4. package/dist/cjs/components/datePicker/DatePicker.d.ts +42 -13
  5. package/dist/cjs/components/datePicker/DatePicker.js +31 -71
  6. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  7. package/dist/cjs/components/datePicker/DatePicker.stories.d.ts +36 -1
  8. package/dist/cjs/components/datePicker/DatePicker.stories.js +18 -2
  9. package/dist/cjs/components/datePicker/DatePicker.stories.js.map +1 -1
  10. package/dist/cjs/components/datePicker/DateRangePicker.d.ts +55 -0
  11. package/dist/cjs/components/datePicker/DateRangePicker.js +89 -0
  12. package/dist/cjs/components/datePicker/DateRangePicker.js.map +1 -0
  13. package/dist/cjs/components/datePicker/index.d.ts +2 -0
  14. package/dist/cjs/components/datePicker/index.js +1 -0
  15. package/dist/cjs/components/datePicker/index.js.map +1 -1
  16. package/dist/esm/components/datePicker/Calendar.d.ts +11 -0
  17. package/dist/esm/components/datePicker/Calendar.js +32 -0
  18. package/dist/esm/components/datePicker/Calendar.js.map +1 -0
  19. package/dist/esm/components/datePicker/DatePicker.d.ts +42 -13
  20. package/dist/esm/components/datePicker/DatePicker.js +32 -68
  21. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  22. package/dist/esm/components/datePicker/DatePicker.stories.d.ts +36 -1
  23. package/dist/esm/components/datePicker/DatePicker.stories.js +19 -3
  24. package/dist/esm/components/datePicker/DatePicker.stories.js.map +1 -1
  25. package/dist/esm/components/datePicker/DateRangePicker.d.ts +55 -0
  26. package/dist/esm/components/datePicker/DateRangePicker.js +83 -0
  27. package/dist/esm/components/datePicker/DateRangePicker.js.map +1 -0
  28. package/dist/esm/components/datePicker/index.d.ts +2 -0
  29. package/dist/esm/components/datePicker/index.js +1 -0
  30. package/dist/esm/components/datePicker/index.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/components/datePicker/Calendar.tsx +83 -0
  33. package/src/components/datePicker/DatePicker.stories.tsx +37 -2
  34. package/src/components/datePicker/DatePicker.tsx +77 -222
  35. package/src/components/datePicker/DateRangePicker.tsx +161 -0
  36. package/src/components/datePicker/index.ts +2 -0
@@ -0,0 +1,11 @@
1
+ import { CalendarDaysProps } from 'calendar-blocks';
2
+ export declare const MonthRow: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
3
+ export declare const MonthLabel: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>>;
4
+ export declare const MonthButton: import("react").FunctionComponent<import("../button/Button.js").ButtonProps>;
5
+ export declare const CalendarGridRoot: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
6
+ export declare const DayLabel: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
7
+ export declare const DayLabels: () => import("react/jsx-runtime.js").JSX.Element;
8
+ export declare function CalendarGrid({ className, ...props }: CalendarDaysProps & {
9
+ className?: string;
10
+ }): import("react/jsx-runtime.js").JSX.Element;
11
+ export declare const CalendarDay: import("react").FunctionComponent<import("calendar-blocks").CalendarDayProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,37 @@
1
+ // @unocss-include
2
+ "use strict";
3
+ var __rest = (this && this.__rest) || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
6
+ t[p] = s[p];
7
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
8
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10
+ t[p[i]] = s[p[i]];
11
+ }
12
+ return t;
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CalendarDay = exports.DayLabels = exports.DayLabel = exports.CalendarGridRoot = exports.MonthButton = exports.MonthLabel = exports.MonthRow = void 0;
16
+ exports.CalendarGrid = CalendarGrid;
17
+ const jsx_runtime_1 = require("react/jsx-runtime");
18
+ const calendar_blocks_1 = require("calendar-blocks");
19
+ const hooks_js_1 = require("../../hooks.js");
20
+ const index_js_1 = require("../button/index.js");
21
+ exports.MonthRow = (0, hooks_js_1.withClassName)('div', 'flex flex-row justify-between items-center w-full');
22
+ exports.MonthLabel = (0, hooks_js_1.withClassName)('span', 'text-sm font-bold min-w-0 overflow-hidden text-center text-ellipsis', 'self-center');
23
+ exports.MonthButton = (0, hooks_js_1.withClassName)(index_js_1.Button, 'self-center');
24
+ exports.CalendarGridRoot = (0, hooks_js_1.withClassName)('div', 'grid grid-cols-[repeat(7,var(--day-size,32px))] [grid-auto-rows:var(--day-size,32px)]', 'height-[calc(var(--day-size,32px)*7)] rounded overflow-hidden p-2');
25
+ exports.DayLabel = (0, hooks_js_1.withClassName)('div', 'flex items-center justify-center text-sm color-gray-dark');
26
+ const DayLabels = () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.DayLabel, { children: "S" }), (0, jsx_runtime_1.jsx)(exports.DayLabel, { children: "M" }), (0, jsx_runtime_1.jsx)(exports.DayLabel, { children: "T" }), (0, jsx_runtime_1.jsx)(exports.DayLabel, { children: "W" }), (0, jsx_runtime_1.jsx)(exports.DayLabel, { children: "T" }), (0, jsx_runtime_1.jsx)(exports.DayLabel, { children: "F" }), (0, jsx_runtime_1.jsx)(exports.DayLabel, { children: "S" })] }));
27
+ exports.DayLabels = DayLabels;
28
+ function CalendarGrid(_a) {
29
+ var { className } = _a, props = __rest(_a, ["className"]);
30
+ return ((0, jsx_runtime_1.jsxs)(exports.CalendarGridRoot, { className: className, children: [(0, jsx_runtime_1.jsx)(exports.DayLabels, {}), (0, jsx_runtime_1.jsx)(calendar_blocks_1.CalendarDays, Object.assign({}, props))] }));
31
+ }
32
+ exports.CalendarDay = (0, hooks_js_1.withClassName)(calendar_blocks_1.CalendarDay, 'border border-solid border-transparent bg-white mr--1px mb--1px relative color-black', 'flex items-center justify-center transition cursor-pointer', '[&[data-highlighted]]:z-1 [&[data-highlighted]]:ring-2 [&[data-highlighted]]:ring-accent', 'hover:z-1 hover:ring-2 hover:ring-accent', 'active:bg-main-light active:rounded', '[&[data-selected]]:bg-main [&[data-selected]]:z-2 [&[data-selected]]:rounded', '[&[data-in-range]]:bg-main-light [&[data-in-range]]:rounded-none [&[data-in-range]]:z-1', '[&[data-range-start]]:bg-main [&[data-range-start]]:rounded-l [&[data-range-start]]:rounded-r-none [&[data-range-start]]:z-1', '[&[data-range-end]]:bg-main [&[data-range-end]]:rounded-r [&[data-range-end]]:rounded-l-none [&[data-range-end]]:z-1', 'disabled:opacity-50 disabled:cursor-default',
33
+ // today dot
34
+ "[&[data-today]]:before:content-[''] [&[data-today]]:before:absolute [&[data-today]]:before:left-[1px] [&[data-today]]:before:top-[1px] [&[data-today]]:before:w-[6px] [&[data-today]]:before:h-[6px] [&[data-today]]:before:rounded-lg [&[data-today]]:before:bg-attention [&[data-today]]:before:border-1 [&[data-today]]:before:border-solid [&[data-today]]:before:border-black",
35
+ // calendar edges
36
+ '[&[data-top-edge]]:border-t-gray', '[&[data-bottom-edge]]:border-b-gray', '[&[data-first-column]]:border-l-gray', '[&[data-last-column]]:border-r-gray', '[&[data-day-first]]:border-l-gray [&[data-day-first]]:rounded-tl', '[&[data-day-last]]:border-r-gray [&[data-day-last]]:rounded-br', '[&[data-first-column][data-bottom-edge]]:rounded-bl', '[&[data-last-column][data-bottom-edge]]:rounded-br', '[&[data-first-column][data-top-edge]]:rounded-tl', '[&[data-last-column][data-top-edge]]:rounded-tr', '[&[data-different-month]]:[visibility:hidden]');
37
+ //# sourceMappingURL=Calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../../../src/components/datePicker/Calendar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AA4CA,oCAUC;;AAtDD,qDAIyB;AACzB,6CAA+C;AAC/C,iDAA4C;AAE/B,QAAA,QAAQ,GAAG,IAAA,wBAAa,EACpC,KAAK,EACL,mDAAmD,CACnD,CAAC;AAEW,QAAA,UAAU,GAAG,IAAA,wBAAa,EACtC,MAAM,EACN,qEAAqE,EACrE,aAAa,CACb,CAAC;AAEW,QAAA,WAAW,GAAG,IAAA,wBAAa,EAAC,iBAAM,EAAE,aAAa,CAAC,CAAC;AAEnD,QAAA,gBAAgB,GAAG,IAAA,wBAAa,EAC5C,KAAK,EACL,uFAAuF,EACvF,mEAAmE,CACnE,CAAC;AAEW,QAAA,QAAQ,GAAG,IAAA,wBAAa,EACpC,KAAK,EACL,0DAA0D,CAC1D,CAAC;AAEK,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAC9B,6DACC,uBAAC,gBAAQ,oBAAa,EACtB,uBAAC,gBAAQ,oBAAa,EACtB,uBAAC,gBAAQ,oBAAa,EACtB,uBAAC,gBAAQ,oBAAa,EACtB,uBAAC,gBAAQ,oBAAa,EACtB,uBAAC,gBAAQ,oBAAa,EACtB,uBAAC,gBAAQ,oBAAa,IACpB,CACH,CAAC;AAVW,QAAA,SAAS,aAUpB;AAEF,SAAgB,YAAY,CAAC,EAGgB;QAHhB,EAC5B,SAAS,OAEmC,EADzC,KAAK,cAFoB,aAG5B,CADQ;IAER,OAAO,CACN,wBAAC,wBAAgB,IAAC,SAAS,EAAE,SAAS,aACrC,uBAAC,iBAAS,KAAG,EACb,uBAAC,8BAAY,oBAAK,KAAK,EAAI,IACT,CACnB,CAAC;AACH,CAAC;AAEY,QAAA,WAAW,GAAG,IAAA,wBAAa,EACvC,6BAAe,EACf,sFAAsF,EACtF,4DAA4D,EAC5D,gDAAgD,EAChD,gCAAgC,EAChC,gCAAgC,EAChC,0CAA0C,EAC1C,qDAAqD,EACrD,8DAA8D,EAC9D,4DAA4D,EAC5D,sCAAsC;AACtC,YAAY;AACZ,gJAAgJ;AAChJ,iBAAiB;AACjB,oCAAoC,EACpC,uCAAuC,EACvC,wCAAwC,EACxC,uCAAuC,EACvC,gDAAgD,EAChD,+CAA+C,EAC/C,qDAAqD,EACrD,oDAAoD,EACpD,kDAAkD,EAClD,iDAAiD,EACjD,+CAA+C,CAC/C,CAAC"}
@@ -1,20 +1,49 @@
1
+ import { CalendarDays } from 'calendar-blocks';
2
+ import { ReactNode } from 'react';
1
3
  import { PaletteName } from '../../uno/index.js';
4
+ import { CalendarGrid } from './Calendar.js';
5
+ declare function DatePickerMonthControls({}: {}): import("react/jsx-runtime.js").JSX.Element;
6
+ declare function DatePickerRoot({ className, color, value, onChange, children, ...rest }: DatePickerProps & {
7
+ children?: ReactNode;
8
+ }): import("react/jsx-runtime.js").JSX.Element;
2
9
  export interface DatePickerProps {
3
10
  value: Date | null;
4
11
  onChange: (date: Date | null) => void;
5
12
  className?: string;
6
13
  color?: PaletteName;
7
14
  }
8
- export declare function DatePicker({ value, onChange, className, color, ...rest }: DatePickerProps): import("react/jsx-runtime.js").JSX.Element;
9
- export interface DateRangePickerProps {
10
- value: {
11
- start: Date | null;
12
- end: Date | null;
13
- };
14
- onChange: (value: {
15
- start: Date | null;
16
- end: Date | null;
17
- }) => void;
18
- className?: string;
19
- }
20
- export declare function DateRangePicker({ value, onChange, className, }: DateRangePickerProps): import("react/jsx-runtime.js").JSX.Element;
15
+ declare function DatePickerDefault(props: DatePickerProps): import("react/jsx-runtime.js").JSX.Element;
16
+ export declare const DatePicker: typeof DatePickerDefault & {
17
+ Root: typeof DatePickerRoot;
18
+ Calendar: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLAttributes<HTMLDivElement>, "onChange" | "value"> & {
19
+ onDisplayChange?: (newValue: {
20
+ month: number;
21
+ year: number;
22
+ }) => any;
23
+ displayYear: number;
24
+ displayMonth: number;
25
+ value?: Date | null;
26
+ onChange?: (value: Date | null) => any;
27
+ rangeValue?: {
28
+ start: Date | null;
29
+ end: Date | null;
30
+ };
31
+ onRangeChange?: (range: {
32
+ start: Date | null;
33
+ end: Date | null;
34
+ }) => any;
35
+ onRangeStartChange?: (range: Date) => any;
36
+ getDateEnabled?: (date: Date) => boolean;
37
+ defaultDate?: Date;
38
+ weekStartsOn?: import("calendar-blocks/dist/constants.js").WeekDay;
39
+ } & import("react").RefAttributes<any>>;
40
+ CalendarDay: import("react").FunctionComponent<import("calendar-blocks").CalendarDayProps & import("react").RefAttributes<HTMLButtonElement>>;
41
+ CalendarDays: typeof CalendarDays;
42
+ CalendarGrid: typeof CalendarGrid;
43
+ DayLabels: () => import("react/jsx-runtime.js").JSX.Element;
44
+ MonthControls: typeof DatePickerMonthControls;
45
+ MonthButton: import("react").FunctionComponent<import("../index.js").ButtonProps>;
46
+ MonthLabel: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>>;
47
+ MonthRow: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
48
+ };
49
+ export {};
@@ -11,89 +11,49 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  }
12
12
  return t;
13
13
  };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
14
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.DatePicker = DatePicker;
19
- exports.DateRangePicker = DateRangePicker;
15
+ exports.DatePicker = void 0;
20
16
  const jsx_runtime_1 = require("react/jsx-runtime");
21
17
  const calendar_blocks_1 = require("calendar-blocks");
22
- const clsx_1 = __importDefault(require("clsx"));
18
+ const clsx_1 = require("clsx");
23
19
  const react_1 = require("react");
24
- const hooks_js_1 = require("../../hooks.js");
25
- const index_js_1 = require("../button/index.js");
26
- const index_js_2 = require("../icon/index.js");
27
- function DatePicker(_a) {
28
- var { value, onChange, className, color } = _a, rest = __rest(_a, ["value", "onChange", "className", "color"]);
29
- const [{ month, year }, setDisplay] = (0, react_1.useState)(() => ({
30
- month: new Date().getMonth(),
31
- year: new Date().getFullYear(),
32
- }));
20
+ const index_js_1 = require("../icon/index.js");
21
+ const Calendar_js_1 = require("./Calendar.js");
22
+ function DatePickerMonthControls({}) {
23
+ const { setDisplayInfo, month, year } = (0, calendar_blocks_1.useCalendarContext)();
33
24
  const monthLabel = new Date(year, month).toLocaleDateString('en-US', {
34
25
  month: 'long',
35
26
  year: 'numeric',
36
27
  });
37
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)(color && `palette-${color}`, 'layer-components:flex layer-components:flex-col layer-components:items-center layer-components:justify-center layer-components:w-[calc(var(--day-size,32px)*7)]', className) }, rest, { children: [(0, jsx_runtime_1.jsxs)(MonthRow, { children: [(0, jsx_runtime_1.jsx)(MonthButton, { emphasis: "ghost", onClick: () => setDisplay((cur) => ({
38
- month: cur.month - 1,
39
- year: cur.year,
40
- })), children: (0, jsx_runtime_1.jsx)(index_js_2.Icon, { name: "arrowLeft" }) }), (0, jsx_runtime_1.jsx)(MonthLabel, { children: monthLabel }), (0, jsx_runtime_1.jsx)(MonthButton, { emphasis: "ghost", onClick: () => setDisplay((cur) => ({
41
- month: cur.month + 1,
42
- year: cur.year,
43
- })), children: (0, jsx_runtime_1.jsx)(index_js_2.Icon, { name: "arrowRight" }) })] }), (0, jsx_runtime_1.jsx)(calendar_blocks_1.Calendar, { displayMonth: month, displayYear: year, value: value, onChange: onChange, onDisplayChange: setDisplay, children: (0, jsx_runtime_1.jsxs)(CalendarGrid, { children: [(0, jsx_runtime_1.jsx)(DayLabels, {}), (0, jsx_runtime_1.jsx)(calendar_blocks_1.CalendarDays, { children: (value) => (0, jsx_runtime_1.jsx)(CalendarDay, { value: value }, value.key) })] }) })] })));
28
+ return ((0, jsx_runtime_1.jsxs)(Calendar_js_1.MonthRow, { children: [(0, jsx_runtime_1.jsx)(Calendar_js_1.MonthButton, { emphasis: "ghost", onClick: () => setDisplayInfo({
29
+ month: month - 1,
30
+ year: year,
31
+ }), children: (0, jsx_runtime_1.jsx)(index_js_1.Icon, { name: "arrowLeft" }) }), (0, jsx_runtime_1.jsx)(Calendar_js_1.MonthLabel, { children: monthLabel }), (0, jsx_runtime_1.jsx)(Calendar_js_1.MonthButton, { emphasis: "ghost", onClick: () => setDisplayInfo({
32
+ month: month + 1,
33
+ year: year,
34
+ }), children: (0, jsx_runtime_1.jsx)(index_js_1.Icon, { name: "arrowRight" }) })] }));
44
35
  }
45
- function DateRangePicker({ value, onChange, className, }) {
36
+ function DatePickerRoot(_a) {
37
+ var { className, color, value, onChange, children } = _a, rest = __rest(_a, ["className", "color", "value", "onChange", "children"]);
46
38
  const [{ month, year }, setDisplay] = (0, react_1.useState)(() => ({
47
39
  month: new Date().getMonth(),
48
40
  year: new Date().getFullYear(),
49
41
  }));
50
- const monthLabel = new Date(year, month).toLocaleDateString('en-US', {
51
- month: 'long',
52
- year: 'numeric',
53
- });
54
- const nextMonth = new Date(year, month + 1);
55
- const nextMonthLabel = nextMonth.toLocaleDateString('en-US', {
56
- month: 'long',
57
- year: 'numeric',
58
- });
59
- const onDisplayChange = (0, react_1.useCallback)(({ month: newMonth, year: newYear }) => {
60
- /**
61
- * Important UX consideration:
62
- *
63
- * since we are displaying 2 months at once, we don't
64
- * always want to change our view if the user's cursor
65
- * date moves from one month to another. Specifically,
66
- * if they move from the first visible month to the
67
- * second visible month, we don't need to change the view,
68
- * since they are still within the visible range.
69
- * So, we write logic to ignore that case!
70
- */
71
- if (newMonth === month + 1 && newYear === year) {
72
- return; // ignore movement from the first to the second frame
73
- }
74
- setDisplay({
75
- month: newMonth,
76
- year: newYear,
77
- });
78
- }, [month, year]);
79
- return ((0, jsx_runtime_1.jsx)(calendar_blocks_1.Calendar, { displayMonth: month, displayYear: year, rangeValue: value, onRangeChange: (range) => onChange(range), onDisplayChange: onDisplayChange, className: (0, clsx_1.default)('flex justify-center', className), children: (0, jsx_runtime_1.jsxs)(RangeLayout, { children: [(0, jsx_runtime_1.jsx)(MonthButton, { emphasis: "ghost", className: "[grid-area:prevMonth]", onClick: () => setDisplay((cur) => ({
80
- month: cur.month - 1,
81
- year: cur.year,
82
- })), children: (0, jsx_runtime_1.jsx)(index_js_2.Icon, { name: "arrowLeft" }) }), (0, jsx_runtime_1.jsx)(MonthLabel, { className: "[grid-area:leftMonth]", children: monthLabel }), (0, jsx_runtime_1.jsx)(MonthLabel, { className: "[grid-area:rightMonth] !hidden !sm:block", children: nextMonthLabel }), (0, jsx_runtime_1.jsx)(MonthButton, { emphasis: "ghost", className: "[grid-area:nextMonth]", onClick: () => setDisplay((cur) => ({
83
- month: cur.month + 1,
84
- year: cur.year,
85
- })), children: (0, jsx_runtime_1.jsx)(index_js_2.Icon, { name: "arrowRight" }) }), (0, jsx_runtime_1.jsxs)(CalendarGrid, { className: "[grid-area:leftGrid]", children: [(0, jsx_runtime_1.jsx)(DayLabels, {}), (0, jsx_runtime_1.jsx)(calendar_blocks_1.CalendarDays, { children: (value) => (0, jsx_runtime_1.jsx)(CalendarDay, { value: value }, value.key) })] }), (0, jsx_runtime_1.jsxs)(CalendarGrid, { className: "[grid-area:rightGrid] !hidden !sm:grid", children: [(0, jsx_runtime_1.jsx)(DayLabels, {}), (0, jsx_runtime_1.jsx)(calendar_blocks_1.CalendarDays, { monthOffset: 1, children: (value) => (0, jsx_runtime_1.jsx)(CalendarDay, { value: value }, value.key) })] })] }) }));
42
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: (0, clsx_1.clsx)(color && `palette-${color}`, 'layer-components:flex layer-components:flex-col layer-components:items-center layer-components:justify-center layer-components:w-[calc(var(--day-size,32px)*7)]') }, rest, { children: (0, jsx_runtime_1.jsx)(calendar_blocks_1.Calendar, { displayMonth: month, displayYear: year, value: value, onChange: onChange, onDisplayChange: setDisplay, children: children }) })));
43
+ }
44
+ function DatePickerDefault(props) {
45
+ return ((0, jsx_runtime_1.jsxs)(DatePickerRoot, Object.assign({}, props, { children: [(0, jsx_runtime_1.jsx)(DatePickerMonthControls, {}), (0, jsx_runtime_1.jsx)(Calendar_js_1.CalendarGrid, { children: (value) => (0, jsx_runtime_1.jsx)(Calendar_js_1.CalendarDay, { value: value }, value.key) })] })));
86
46
  }
87
- const MonthRow = (0, hooks_js_1.withClassName)('div', 'flex flex-row justify-between items-center w-full');
88
- const MonthLabel = (0, hooks_js_1.withClassName)('span', 'text-sm font-bold min-w-0 overflow-hidden text-center text-ellipsis', 'self-center');
89
- const MonthButton = (0, hooks_js_1.withClassName)(index_js_1.Button, 'self-center');
90
- const CalendarGrid = (0, hooks_js_1.withClassName)('div', 'grid grid-cols-[repeat(7,var(--day-size,32px))] [grid-auto-rows:var(--day-size,32px)]', 'height-[calc(var(--day-size,32px)*7)] rounded overflow-hidden p-2');
91
- const CalendarDay = (0, hooks_js_1.withClassName)(calendar_blocks_1.CalendarDay, 'border border-solid border-transparent bg-white mr--1px mb--1px relative color-black', 'flex items-center justify-center transition cursor-pointer', '[&[data-highlighted]]:z-1 [&[data-highlighted]]:ring-2 [&[data-highlighted]]:ring-accent', 'hover:z-1 hover:ring-2 hover:ring-accent', 'active:bg-main-light active:rounded', '[&[data-selected]]:bg-main [&[data-selected]]:z-2 [&[data-selected]]:rounded', '[&[data-in-range]]:bg-main-light [&[data-in-range]]:rounded-none [&[data-in-range]]:z-1', '[&[data-range-start]]:bg-main [&[data-range-start]]:rounded-l [&[data-range-start]]:rounded-r-none [&[data-range-start]]:z-1', '[&[data-range-end]]:bg-main [&[data-range-end]]:rounded-r [&[data-range-end]]:rounded-l-none [&[data-range-end]]:z-1', 'disabled:opacity-50 disabled:cursor-default',
92
- // today dot
93
- "[&[data-today]]:before:content-[''] [&[data-today]]:before:absolute [&[data-today]]:before:left-[1px] [&[data-today]]:before:top-[1px] [&[data-today]]:before:w-[6px] [&[data-today]]:before:h-[6px] [&[data-today]]:before:rounded-lg [&[data-today]]:before:bg-attention [&[data-today]]:before:border-1 [&[data-today]]:before:border-solid [&[data-today]]:before:border-black",
94
- // calendar edges
95
- '[&[data-top-edge]]:border-t-gray', '[&[data-bottom-edge]]:border-b-gray', '[&[data-first-column]]:border-l-gray', '[&[data-last-column]]:border-r-gray', '[&[data-day-first]]:border-l-gray [&[data-day-first]]:rounded-tl', '[&[data-day-last]]:border-r-gray [&[data-day-last]]:rounded-br', '[&[data-first-column][data-bottom-edge]]:rounded-bl', '[&[data-last-column][data-bottom-edge]]:rounded-br', '[&[data-first-column][data-top-edge]]:rounded-tl', '[&[data-last-column][data-top-edge]]:rounded-tr', '[&[data-different-month]]:[visibility:hidden]');
96
- const DayLabel = (0, hooks_js_1.withClassName)('div', 'flex items-center justify-center text-sm color-gray-dark');
97
- const DayLabels = () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(DayLabel, { children: "S" }), (0, jsx_runtime_1.jsx)(DayLabel, { children: "M" }), (0, jsx_runtime_1.jsx)(DayLabel, { children: "T" }), (0, jsx_runtime_1.jsx)(DayLabel, { children: "W" }), (0, jsx_runtime_1.jsx)(DayLabel, { children: "T" }), (0, jsx_runtime_1.jsx)(DayLabel, { children: "F" }), (0, jsx_runtime_1.jsx)(DayLabel, { children: "S" })] }));
98
- const RangeLayout = (0, hooks_js_1.withClassName)('div', 'grid [grid-template-areas:"prevMonth_leftMonth_nextMonth""leftGrid_leftGrid_leftGrid"] [grid-template-columns:auto_1fr_auto]', '[grid-template-rows:auto_1fr] gap-2', 'sm:grid-areas-[prevMonth_leftMonth_rightMonth_nextMonth]-[leftGrid_leftGrid_rightGrid_rightGrid] sm:[grid-template-columns:auto_1fr_1fr_auto]');
47
+ exports.DatePicker = Object.assign(DatePickerDefault, {
48
+ Root: DatePickerRoot,
49
+ Calendar: calendar_blocks_1.Calendar,
50
+ CalendarDay: Calendar_js_1.CalendarDay,
51
+ CalendarDays: calendar_blocks_1.CalendarDays,
52
+ CalendarGrid: Calendar_js_1.CalendarGrid,
53
+ DayLabels: Calendar_js_1.DayLabels,
54
+ MonthControls: DatePickerMonthControls,
55
+ MonthButton: Calendar_js_1.MonthButton,
56
+ MonthLabel: Calendar_js_1.MonthLabel,
57
+ MonthRow: Calendar_js_1.MonthRow,
58
+ });
99
59
  //# sourceMappingURL=DatePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../../src/components/datePicker/DatePicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../../src/components/datePicker/DatePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAA6E;AAC7E,+BAA4B;AAC5B,iCAA4C;AAE5C,+CAAwC;AACxC,+CAOuB;AAEvB,SAAS,uBAAuB,CAAC,EAAM;IACtC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,oCAAkB,GAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACpE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;IAEH,OAAO,CACN,wBAAC,sBAAQ,eACR,uBAAC,yBAAW,IACX,QAAQ,EAAC,OAAO,EAChB,OAAO,EAAE,GAAG,EAAE,CACb,cAAc,CAAC;oBACd,KAAK,EAAE,KAAK,GAAG,CAAC;oBAChB,IAAI,EAAE,IAAI;iBACV,CAAC,YAGH,uBAAC,eAAI,IAAC,IAAI,EAAC,WAAW,GAAG,GACZ,EACd,uBAAC,wBAAU,cAAE,UAAU,GAAc,EACrC,uBAAC,yBAAW,IACX,QAAQ,EAAC,OAAO,EAChB,OAAO,EAAE,GAAG,EAAE,CACb,cAAc,CAAC;oBACd,KAAK,EAAE,KAAK,GAAG,CAAC;oBAChB,IAAI,EAAE,IAAI;iBACV,CAAC,YAGH,uBAAC,eAAI,IAAC,IAAI,EAAC,YAAY,GAAG,GACb,IACJ,CACX,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EASvB;QATuB,EACvB,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,OAIR,EAHG,IAAI,cANgB,uDAOvB,CADO;IAIP,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,CAAC;QACrD,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC9B,CAAC,CAAC,CAAC;IAEJ,OAAO,CACN,8CACC,SAAS,EAAE,IAAA,WAAI,EACd,KAAK,IAAI,WAAW,KAAK,EAAE,EAC3B,+FAA+F,CAC/F,IACG,IAAI,cAER,uBAAC,0BAAQ,IACR,YAAY,EAAE,KAAK,EACnB,WAAW,EAAE,IAAI,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,UAAU,YAE1B,QAAQ,GACC,IACN,CACN,CAAC;AACH,CAAC;AASD,SAAS,iBAAiB,CAAC,KAAsB;IAChD,OAAO,CACN,wBAAC,cAAc,oBAAK,KAAK,eACxB,uBAAC,uBAAuB,KAAG,EAC3B,uBAAC,0BAAY,cACX,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAC,yBAAW,IAAC,KAAK,EAAE,KAAK,IAAO,KAAK,CAAC,GAAG,CAAI,GAC3C,KACC,CACjB,CAAC;AACH,CAAC;AAEY,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;IAC1D,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAR,0BAAQ;IACR,WAAW,EAAX,yBAAW;IACX,YAAY,EAAZ,8BAAY;IACZ,YAAY,EAAZ,0BAAY;IACZ,SAAS,EAAT,uBAAS;IACT,aAAa,EAAE,uBAAuB;IACtC,WAAW,EAAX,yBAAW;IACX,UAAU,EAAV,wBAAU;IACV,QAAQ,EAAR,sBAAQ;CACR,CAAC,CAAC"}
@@ -2,7 +2,41 @@ import type { StoryObj } from '@storybook/react';
2
2
  import { DatePicker } from './DatePicker.js';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: typeof DatePicker;
5
+ component: ((props: import("./DatePicker.js").DatePickerProps) => import("react/jsx-runtime.js").JSX.Element) & {
6
+ Root: ({ className, color, value, onChange, children, ...rest }: import("./DatePicker.js").DatePickerProps & {
7
+ children?: import("react").ReactNode;
8
+ }) => import("react/jsx-runtime.js").JSX.Element;
9
+ Calendar: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLAttributes<HTMLDivElement>, "onChange" | "value"> & {
10
+ onDisplayChange?: (newValue: {
11
+ month: number;
12
+ year: number;
13
+ }) => any;
14
+ displayYear: number;
15
+ displayMonth: number;
16
+ value?: Date | null;
17
+ onChange?: (value: Date | null) => any;
18
+ rangeValue?: {
19
+ start: Date | null;
20
+ end: Date | null;
21
+ };
22
+ onRangeChange?: (range: {
23
+ start: Date | null;
24
+ end: Date | null;
25
+ }) => any;
26
+ onRangeStartChange?: (range: Date) => any;
27
+ getDateEnabled?: (date: Date) => boolean;
28
+ defaultDate?: Date;
29
+ weekStartsOn?: import("calendar-blocks/dist/constants.js").WeekDay;
30
+ } & import("react").RefAttributes<any>>;
31
+ CalendarDay: import("react").FunctionComponent<import("calendar-blocks").CalendarDayProps & import("react").RefAttributes<HTMLButtonElement>>;
32
+ CalendarDays: typeof import("calendar-blocks").CalendarDays;
33
+ CalendarGrid: typeof import("./Calendar.js").CalendarGrid;
34
+ DayLabels: () => import("react/jsx-runtime.js").JSX.Element;
35
+ MonthControls: ({}: {}) => import("react/jsx-runtime.js").JSX.Element;
36
+ MonthButton: import("react").FunctionComponent<import("../index.js").ButtonProps>;
37
+ MonthLabel: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>>;
38
+ MonthRow: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
39
+ };
6
40
  argTypes: {};
7
41
  parameters: {
8
42
  controls: {
@@ -14,3 +48,4 @@ export default meta;
14
48
  type Story = StoryObj<typeof DatePicker>;
15
49
  export declare const Default: Story;
16
50
  export declare const Range: Story;
51
+ export declare const CustomComposition: Story;
@@ -1,10 +1,12 @@
1
1
  // @unocss-include
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Range = exports.Default = void 0;
4
+ exports.CustomComposition = exports.Range = exports.Default = void 0;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_1 = require("react");
7
+ const Spinner_js_1 = require("../spinner/Spinner.js");
7
8
  const DatePicker_js_1 = require("./DatePicker.js");
9
+ const DateRangePicker_js_1 = require("./DateRangePicker.js");
8
10
  const meta = {
9
11
  title: 'Components/DatePicker',
10
12
  component: DatePicker_js_1.DatePicker,
@@ -23,7 +25,21 @@ exports.Default = {
23
25
  exports.Range = {
24
26
  render() {
25
27
  const [value, setValue] = (0, react_1.useState)({ start: null, end: null });
26
- return (0, jsx_runtime_1.jsx)(DatePicker_js_1.DateRangePicker, { value: value, onChange: setValue });
28
+ return (0, jsx_runtime_1.jsx)(DateRangePicker_js_1.DateRangePicker, { value: value, onChange: setValue });
27
29
  },
28
30
  };
31
+ exports.CustomComposition = {
32
+ render() {
33
+ const [value, setValue] = (0, react_1.useState)(null);
34
+ return ((0, jsx_runtime_1.jsxs)(DatePicker_js_1.DatePicker.Root, { value: value, onChange: setValue, children: [(0, jsx_runtime_1.jsx)(DatePicker_js_1.DatePicker.MonthControls, {}), (0, jsx_runtime_1.jsx)(DatePicker_js_1.DatePicker.CalendarGrid, { children: (value) => (0, jsx_runtime_1.jsx)(FakeLoadingDay, { value: value }, value.key) })] }));
35
+ },
36
+ };
37
+ function FakeLoadingDay({ value }) {
38
+ const [loading, setLoading] = (0, react_1.useState)(true);
39
+ (0, react_1.useEffect)(() => {
40
+ const timeout = setTimeout(() => setLoading(false), Math.random() * 2000 + 500);
41
+ return () => clearTimeout(timeout);
42
+ }, []);
43
+ return ((0, jsx_runtime_1.jsx)(DatePicker_js_1.DatePicker.CalendarDay, { value: value, children: loading ? (0, jsx_runtime_1.jsx)(Spinner_js_1.Spinner, { size: 10 }) : value.date.getDate() }));
44
+ }
29
45
  //# sourceMappingURL=DatePicker.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.stories.js","sourceRoot":"","sources":["../../../../src/components/datePicker/DatePicker.stories.tsx"],"names":[],"mappings":";;;;AACA,iCAAiC;AACjC,mDAA8D;AAE9D,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,0BAAU;IACrB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CACiC,CAAC;AAEpC,kBAAe,IAAI,CAAC;AAIP,QAAA,OAAO,GAAU;IAC7B,MAAM;QACL,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAc,IAAI,CAAC,CAAC;QACtD,OAAO,uBAAC,0BAAU,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IACzD,CAAC;CACD,CAAC;AAEW,QAAA,KAAK,GAAU;IAC3B,MAAM;QACL,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAG/B,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,uBAAC,+BAAe,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IAC9D,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"DatePicker.stories.js","sourceRoot":"","sources":["../../../../src/components/datePicker/DatePicker.stories.tsx"],"names":[],"mappings":";;;;AAEA,iCAA4C;AAC5C,sDAAgD;AAChD,mDAA6C;AAC7C,6DAAuD;AAEvD,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,0BAAU;IACrB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CACiC,CAAC;AAEpC,kBAAe,IAAI,CAAC;AAIP,QAAA,OAAO,GAAU;IAC7B,MAAM;QACL,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAc,IAAI,CAAC,CAAC;QACtD,OAAO,uBAAC,0BAAU,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IACzD,CAAC;CACD,CAAC;AAEW,QAAA,KAAK,GAAU;IAC3B,MAAM;QACL,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAG/B,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,uBAAC,oCAAe,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IAC9D,CAAC;CACD,CAAC;AAEW,QAAA,iBAAiB,GAAU;IACvC,MAAM;QACL,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAc,IAAI,CAAC,CAAC;QAEtD,OAAO,CACN,wBAAC,0BAAU,CAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,aAChD,uBAAC,0BAAU,CAAC,aAAa,KAAG,EAC5B,uBAAC,0BAAU,CAAC,YAAY,cACtB,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAC,cAAc,IAAC,KAAK,EAAE,KAAK,IAAO,KAAK,CAAC,GAAG,CAAI,GACnC,IACT,CAClB,CAAC;IACH,CAAC;CACD,CAAC;AAEF,SAAS,cAAc,CAAC,EAAE,KAAK,EAA+B;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAC7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,MAAM,OAAO,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,GAAG,CAC1B,CAAC;QACF,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,uBAAC,0BAAU,CAAC,WAAW,IAAC,KAAK,EAAE,KAAK,YAClC,OAAO,CAAC,CAAC,CAAC,uBAAC,oBAAO,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAC/B,CACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { CalendarDays } from 'calendar-blocks';
2
+ import { ReactNode } from 'react';
3
+ import { PaletteName } from '../../uno/index.js';
4
+ import { CalendarGrid } from './Calendar.js';
5
+ declare function DateRangePickerMonthControls(): import("react/jsx-runtime.js").JSX.Element;
6
+ declare function DateRangePickerRoot({ children, color, value, onChange, className, ...rest }: DateRangePickerProps & {
7
+ children?: ReactNode;
8
+ }): import("react/jsx-runtime.js").JSX.Element;
9
+ export interface DateRangePickerProps {
10
+ value: {
11
+ start: Date | null;
12
+ end: Date | null;
13
+ };
14
+ onChange: (value: {
15
+ start: Date | null;
16
+ end: Date | null;
17
+ }) => void;
18
+ className?: string;
19
+ color?: PaletteName;
20
+ }
21
+ declare function DateRangePickerBase(props: DateRangePickerProps): import("react/jsx-runtime.js").JSX.Element;
22
+ export declare const DateRangePicker: typeof DateRangePickerBase & {
23
+ Root: typeof DateRangePickerRoot;
24
+ RangeLayout: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
25
+ DayLabels: () => import("react/jsx-runtime.js").JSX.Element;
26
+ CalendarDay: import("react").FunctionComponent<import("calendar-blocks").CalendarDayProps & import("react").RefAttributes<HTMLButtonElement>>;
27
+ Calendar: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLAttributes<HTMLDivElement>, "onChange" | "value"> & {
28
+ onDisplayChange?: (newValue: {
29
+ month: number;
30
+ year: number;
31
+ }) => any;
32
+ displayYear: number;
33
+ displayMonth: number;
34
+ value?: Date | null;
35
+ onChange?: (value: Date | null) => any;
36
+ rangeValue?: {
37
+ start: Date | null;
38
+ end: Date | null;
39
+ };
40
+ onRangeChange?: (range: {
41
+ start: Date | null;
42
+ end: Date | null;
43
+ }) => any;
44
+ onRangeStartChange?: (range: Date) => any;
45
+ getDateEnabled?: (date: Date) => boolean;
46
+ defaultDate?: Date;
47
+ weekStartsOn?: import("calendar-blocks/dist/constants.js").WeekDay;
48
+ } & import("react").RefAttributes<any>>;
49
+ CalendarGrid: typeof CalendarGrid;
50
+ CalendarDays: typeof CalendarDays;
51
+ MonthControls: typeof DateRangePickerMonthControls;
52
+ MonthButton: import("react").FunctionComponent<import("../index.js").ButtonProps>;
53
+ MonthLabel: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>>;
54
+ };
55
+ export {};
@@ -0,0 +1,89 @@
1
+ // @unocss-include
2
+ "use strict";
3
+ var __rest = (this && this.__rest) || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
6
+ t[p] = s[p];
7
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
8
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
10
+ t[p[i]] = s[p[i]];
11
+ }
12
+ return t;
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DateRangePicker = void 0;
19
+ const jsx_runtime_1 = require("react/jsx-runtime");
20
+ const calendar_blocks_1 = require("calendar-blocks");
21
+ const clsx_1 = __importDefault(require("clsx"));
22
+ const react_1 = require("react");
23
+ const hooks_js_1 = require("../../hooks.js");
24
+ const Icon_js_1 = require("../icon/Icon.js");
25
+ const Calendar_js_1 = require("./Calendar.js");
26
+ const RangeLayout = (0, hooks_js_1.withClassName)('div', 'grid [grid-template-areas:"prevMonth_leftMonth_nextMonth""leftGrid_leftGrid_leftGrid"] [grid-template-columns:auto_1fr_auto]', '[grid-template-rows:auto_1fr] gap-2', 'sm:grid-areas-[prevMonth_leftMonth_rightMonth_nextMonth]-[leftGrid_leftGrid_rightGrid_rightGrid] sm:[grid-template-columns:auto_1fr_1fr_auto]');
27
+ function DateRangePickerMonthControls() {
28
+ const { setDisplayInfo, month, year } = (0, calendar_blocks_1.useCalendarContext)();
29
+ const monthLabel = new Date(year, month).toLocaleDateString('en-US', {
30
+ month: 'long',
31
+ year: 'numeric',
32
+ });
33
+ const nextMonth = new Date(year, month + 1);
34
+ const nextMonthLabel = nextMonth.toLocaleDateString('en-US', {
35
+ month: 'long',
36
+ year: 'numeric',
37
+ });
38
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Calendar_js_1.MonthButton, { emphasis: "ghost", className: "[grid-area:prevMonth]", onClick: () => setDisplayInfo({
39
+ month: month - 1,
40
+ year: year,
41
+ }), children: (0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "arrowLeft" }) }), (0, jsx_runtime_1.jsx)(Calendar_js_1.MonthLabel, { className: "[grid-area:leftMonth]", children: monthLabel }), (0, jsx_runtime_1.jsx)(Calendar_js_1.MonthLabel, { className: "[grid-area:rightMonth] !hidden !sm:block", children: nextMonthLabel }), (0, jsx_runtime_1.jsx)(Calendar_js_1.MonthButton, { emphasis: "ghost", className: "[grid-area:nextMonth]", onClick: () => setDisplayInfo({
42
+ month: month + 1,
43
+ year: year,
44
+ }), children: (0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "arrowRight" }) })] }));
45
+ }
46
+ function DateRangePickerRoot(_a) {
47
+ var { children, color, value, onChange, className } = _a, rest = __rest(_a, ["children", "color", "value", "onChange", "className"]);
48
+ const [{ month, year }, setDisplay] = (0, react_1.useState)(() => ({
49
+ month: new Date().getMonth(),
50
+ year: new Date().getFullYear(),
51
+ }));
52
+ const onDisplayChange = (0, react_1.useCallback)(({ month: newMonth, year: newYear }) => {
53
+ /**
54
+ * Important UX consideration:
55
+ *
56
+ * since we are displaying 2 months at once, we don't
57
+ * always want to change our view if the user's cursor
58
+ * date moves from one month to another. Specifically,
59
+ * if they move from the first visible month to the
60
+ * second visible month, we don't need to change the view,
61
+ * since they are still within the visible range.
62
+ * So, we write logic to ignore that case!
63
+ */
64
+ if (newMonth === month + 1 && newYear === year) {
65
+ return; // ignore movement from the first to the second frame
66
+ }
67
+ setDisplay({
68
+ month: newMonth,
69
+ year: newYear,
70
+ });
71
+ }, [month, year]);
72
+ return ((0, jsx_runtime_1.jsx)(calendar_blocks_1.Calendar, Object.assign({ displayMonth: month, displayYear: year, rangeValue: value, onRangeChange: (range) => onChange(range), onDisplayChange: onDisplayChange, className: (0, clsx_1.default)('flex justify-center', color && `palette-${color}`, className) }, rest, { children: (0, jsx_runtime_1.jsx)(RangeLayout, { children: children }) })));
73
+ }
74
+ function DateRangePickerBase(props) {
75
+ return ((0, jsx_runtime_1.jsxs)(DateRangePickerRoot, Object.assign({}, props, { children: [(0, jsx_runtime_1.jsx)(DateRangePickerMonthControls, {}), (0, jsx_runtime_1.jsx)(Calendar_js_1.CalendarGrid, { className: "[grid-area:leftGrid]", children: (value) => (0, jsx_runtime_1.jsx)(Calendar_js_1.CalendarDay, { value: value }, value.key) }), (0, jsx_runtime_1.jsx)(Calendar_js_1.CalendarGrid, { className: "[grid-area:rightGrid] !hidden !sm:grid", monthOffset: 1, children: (value) => (0, jsx_runtime_1.jsx)(Calendar_js_1.CalendarDay, { value: value }, value.key) })] })));
76
+ }
77
+ exports.DateRangePicker = Object.assign(DateRangePickerBase, {
78
+ Root: DateRangePickerRoot,
79
+ RangeLayout,
80
+ DayLabels: Calendar_js_1.DayLabels,
81
+ CalendarDay: Calendar_js_1.CalendarDay,
82
+ Calendar: calendar_blocks_1.Calendar,
83
+ CalendarGrid: Calendar_js_1.CalendarGrid,
84
+ CalendarDays: calendar_blocks_1.CalendarDays,
85
+ MonthControls: DateRangePickerMonthControls,
86
+ MonthButton: Calendar_js_1.MonthButton,
87
+ MonthLabel: Calendar_js_1.MonthLabel,
88
+ });
89
+ //# sourceMappingURL=DateRangePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../../../../src/components/datePicker/DateRangePicker.tsx"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
+ export type * from 'calendar-blocks';
1
2
  export * from './DatePicker.js';
3
+ export * from './DateRangePicker.js';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  __exportStar(require("./DatePicker.js"), exports);
19
+ __exportStar(require("./DateRangePicker.js"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/datePicker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/datePicker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kDAAgC;AAChC,uDAAqC"}
@@ -0,0 +1,11 @@
1
+ import { CalendarDaysProps } from 'calendar-blocks';
2
+ export declare const MonthRow: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
3
+ export declare const MonthLabel: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>>;
4
+ export declare const MonthButton: import("react").FunctionComponent<import("../button/Button.js").ButtonProps>;
5
+ export declare const CalendarGridRoot: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
6
+ export declare const DayLabel: import("react").FunctionComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
7
+ export declare const DayLabels: () => import("react/jsx-runtime").JSX.Element;
8
+ export declare function CalendarGrid({ className, ...props }: CalendarDaysProps & {
9
+ className?: string;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ export declare const CalendarDay: import("react").FunctionComponent<import("calendar-blocks").CalendarDayProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,32 @@
1
+ // @unocss-include
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import { CalendarDay as BaseCalendarDay, CalendarDays, } from 'calendar-blocks';
15
+ import { withClassName } from '../../hooks.js';
16
+ import { Button } from '../button/index.js';
17
+ export const MonthRow = withClassName('div', 'flex flex-row justify-between items-center w-full');
18
+ export const MonthLabel = withClassName('span', 'text-sm font-bold min-w-0 overflow-hidden text-center text-ellipsis', 'self-center');
19
+ export const MonthButton = withClassName(Button, 'self-center');
20
+ export const CalendarGridRoot = withClassName('div', 'grid grid-cols-[repeat(7,var(--day-size,32px))] [grid-auto-rows:var(--day-size,32px)]', 'height-[calc(var(--day-size,32px)*7)] rounded overflow-hidden p-2');
21
+ export const DayLabel = withClassName('div', 'flex items-center justify-center text-sm color-gray-dark');
22
+ export const DayLabels = () => (_jsxs(_Fragment, { children: [_jsx(DayLabel, { children: "S" }), _jsx(DayLabel, { children: "M" }), _jsx(DayLabel, { children: "T" }), _jsx(DayLabel, { children: "W" }), _jsx(DayLabel, { children: "T" }), _jsx(DayLabel, { children: "F" }), _jsx(DayLabel, { children: "S" })] }));
23
+ export function CalendarGrid(_a) {
24
+ var { className } = _a, props = __rest(_a, ["className"]);
25
+ return (_jsxs(CalendarGridRoot, { className: className, children: [_jsx(DayLabels, {}), _jsx(CalendarDays, Object.assign({}, props))] }));
26
+ }
27
+ export const CalendarDay = withClassName(BaseCalendarDay, 'border border-solid border-transparent bg-white mr--1px mb--1px relative color-black', 'flex items-center justify-center transition cursor-pointer', '[&[data-highlighted]]:z-1 [&[data-highlighted]]:ring-2 [&[data-highlighted]]:ring-accent', 'hover:z-1 hover:ring-2 hover:ring-accent', 'active:bg-main-light active:rounded', '[&[data-selected]]:bg-main [&[data-selected]]:z-2 [&[data-selected]]:rounded', '[&[data-in-range]]:bg-main-light [&[data-in-range]]:rounded-none [&[data-in-range]]:z-1', '[&[data-range-start]]:bg-main [&[data-range-start]]:rounded-l [&[data-range-start]]:rounded-r-none [&[data-range-start]]:z-1', '[&[data-range-end]]:bg-main [&[data-range-end]]:rounded-r [&[data-range-end]]:rounded-l-none [&[data-range-end]]:z-1', 'disabled:opacity-50 disabled:cursor-default',
28
+ // today dot
29
+ "[&[data-today]]:before:content-[''] [&[data-today]]:before:absolute [&[data-today]]:before:left-[1px] [&[data-today]]:before:top-[1px] [&[data-today]]:before:w-[6px] [&[data-today]]:before:h-[6px] [&[data-today]]:before:rounded-lg [&[data-today]]:before:bg-attention [&[data-today]]:before:border-1 [&[data-today]]:before:border-solid [&[data-today]]:before:border-black",
30
+ // calendar edges
31
+ '[&[data-top-edge]]:border-t-gray', '[&[data-bottom-edge]]:border-b-gray', '[&[data-first-column]]:border-l-gray', '[&[data-last-column]]:border-r-gray', '[&[data-day-first]]:border-l-gray [&[data-day-first]]:rounded-tl', '[&[data-day-last]]:border-r-gray [&[data-day-last]]:rounded-br', '[&[data-first-column][data-bottom-edge]]:rounded-bl', '[&[data-last-column][data-bottom-edge]]:rounded-br', '[&[data-first-column][data-top-edge]]:rounded-tl', '[&[data-last-column][data-top-edge]]:rounded-tr', '[&[data-different-month]]:[visibility:hidden]');
32
+ //# sourceMappingURL=Calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../../../src/components/datePicker/Calendar.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACN,WAAW,IAAI,eAAe,EAC9B,YAAY,GAEZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CACpC,KAAK,EACL,mDAAmD,CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CACtC,MAAM,EACN,qEAAqE,EACrE,aAAa,CACb,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAC5C,KAAK,EACL,uFAAuF,EACvF,mEAAmE,CACnE,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CACpC,KAAK,EACL,0DAA0D,CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAC9B,8BACC,KAAC,QAAQ,oBAAa,EACtB,KAAC,QAAQ,oBAAa,EACtB,KAAC,QAAQ,oBAAa,EACtB,KAAC,QAAQ,oBAAa,EACtB,KAAC,QAAQ,oBAAa,EACtB,KAAC,QAAQ,oBAAa,EACtB,KAAC,QAAQ,oBAAa,IACpB,CACH,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,EAGgB;QAHhB,EAC5B,SAAS,OAEmC,EADzC,KAAK,cAFoB,aAG5B,CADQ;IAER,OAAO,CACN,MAAC,gBAAgB,IAAC,SAAS,EAAE,SAAS,aACrC,KAAC,SAAS,KAAG,EACb,KAAC,YAAY,oBAAK,KAAK,EAAI,IACT,CACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACvC,eAAe,EACf,sFAAsF,EACtF,4DAA4D,EAC5D,gDAAgD,EAChD,gCAAgC,EAChC,gCAAgC,EAChC,0CAA0C,EAC1C,qDAAqD,EACrD,8DAA8D,EAC9D,4DAA4D,EAC5D,sCAAsC;AACtC,YAAY;AACZ,gJAAgJ;AAChJ,iBAAiB;AACjB,oCAAoC,EACpC,uCAAuC,EACvC,wCAAwC,EACxC,uCAAuC,EACvC,gDAAgD,EAChD,+CAA+C,EAC/C,qDAAqD,EACrD,oDAAoD,EACpD,kDAAkD,EAClD,iDAAiD,EACjD,+CAA+C,CAC/C,CAAC"}