@uxf/ui 11.97.0 → 11.99.1

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.
@@ -39,6 +39,8 @@ const react_1 = __importStar(require("react"));
39
39
  const action_1 = require("../utils/action");
40
40
  const date_picker_1 = require("./date-picker");
41
41
  const today = (0, date_1.dayjsTz)();
42
+ const minDate = today.subtract(10, "day").toDate();
43
+ const maxDate = today.add(20, "days").toDate();
42
44
  const unavailableDates = [
43
45
  today.toDate(),
44
46
  today.add(5, "days").toDate(),
@@ -69,8 +71,8 @@ function Default() {
69
71
  const testDatePickers = (react_1.default.createElement("div", { className: "flex flex-col space-y-5 dark:text-white" },
70
72
  react_1.default.createElement("p", { className: "text-lg" }, "Date picker"),
71
73
  react_1.default.createElement(date_picker_1.DatePicker, { closePopoverHandler: onClose, onChange: onChange, selectedDate: value }),
72
- react_1.default.createElement("p", { className: "text-lg" }, "Date picker with unavailable dates"),
73
- react_1.default.createElement(date_picker_1.DatePicker, { onChange: onChange, selectedDate: value, unavailableDates: unavailableDates }),
74
+ react_1.default.createElement("p", { className: "text-lg" }, "Date picker with unavailable dates and min max dates"),
75
+ react_1.default.createElement(date_picker_1.DatePicker, { maxDate: maxDate, minDate: minDate, onChange: onChange, selectedDate: value, unavailableDates: unavailableDates }),
74
76
  react_1.default.createElement("p", { className: "text-lg" }, "Date picker with dates config"),
75
77
  react_1.default.createElement("ul", null,
76
78
  react_1.default.createElement("li", null, "now + 5 days & now + 6 days -> flag-1 className, not disabled"),
@@ -4,6 +4,10 @@ import { DateRangePickerValueType } from "./types";
4
4
  export interface DateRangePickerProps {
5
5
  bottomContent?: ReactNode;
6
6
  datesConfig?: DatesConfig[];
7
+ exactSelectedDays?: number;
8
+ maxDate?: Date;
9
+ minDate?: Date;
10
+ minSelectedDays?: number;
7
11
  numberOfMonths?: number;
8
12
  onChange: (data: DateRangePickerValueType) => void;
9
13
  onClosePopover: () => void;
@@ -35,12 +35,13 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.DateRangePicker = void 0;
38
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
38
39
  const date_range_picker_context_1 = require("@uxf/datepicker/contexts/date-range-picker-context");
39
40
  const use_date_range_picker_1 = require("@uxf/datepicker/hooks/use-date-range-picker");
40
41
  const react_1 = __importStar(require("react"));
41
42
  const date_range_picker_content_1 = require("./date-range-picker-content");
42
43
  const DateRangePicker = (props) => {
43
- var _a, _b, _c;
44
+ var _a, _b, _c, _d;
44
45
  const [focusedInput, setFocusedInput] = (0, react_1.useState)(use_date_range_picker_1.START_DATE);
45
46
  const onDatesChange = (0, react_1.useCallback)((data) => {
46
47
  props.onChange({ from: data.startDate, to: data.endDate });
@@ -49,11 +50,15 @@ const DateRangePicker = (props) => {
49
50
  const dateRangePickerProps = (0, use_date_range_picker_1.useDateRangePicker)({
50
51
  datesConfig: props.datesConfig,
51
52
  endDate: ((_a = props.selectedDates) === null || _a === void 0 ? void 0 : _a.to) || null,
53
+ exactMinBookingDays: (0, is_not_nil_1.isNotNil)(props.exactSelectedDays),
52
54
  firstDayOfWeek: 1,
53
55
  focusedInput: focusedInput,
54
- numberOfMonths: (_b = props.numberOfMonths) !== null && _b !== void 0 ? _b : 1,
56
+ maxBookingDate: props.maxDate,
57
+ minBookingDate: props.minDate,
58
+ minBookingDays: (_b = props.minSelectedDays) !== null && _b !== void 0 ? _b : props.exactSelectedDays,
59
+ numberOfMonths: (_c = props.numberOfMonths) !== null && _c !== void 0 ? _c : 1,
55
60
  onDatesChange,
56
- startDate: ((_c = props.selectedDates) === null || _c === void 0 ? void 0 : _c.from) || null,
61
+ startDate: ((_d = props.selectedDates) === null || _d === void 0 ? void 0 : _d.from) || null,
57
62
  unavailableDates: props.unavailableDates,
58
63
  });
59
64
  return (react_1.default.createElement(date_range_picker_context_1.DateRangePickerContext.Provider, { value: dateRangePickerProps },
@@ -35,12 +35,29 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Default = Default;
37
37
  const noop_1 = require("@uxf/core/utils/noop");
38
+ const date_1 = require("@uxf/localize/src/date");
38
39
  const react_1 = __importStar(require("react"));
39
40
  const action_1 = require("../utils/action");
40
41
  const date_range_picker_1 = require("./date-range-picker");
42
+ const today = (0, date_1.dayjsTz)();
43
+ const minDate = today.subtract(10, "day").toDate();
44
+ const maxDate = today.add(20, "days").toDate();
45
+ const unavailableDates = [
46
+ today.toDate(),
47
+ today.add(5, "days").toDate(),
48
+ today.add(6, "days").toDate(),
49
+ today.add(7, "days").toDate(),
50
+ today.add(11, "days").toDate(),
51
+ today.add(12, "days").toDate(),
52
+ ];
41
53
  function Default() {
42
54
  const [value, setValue] = (0, react_1.useState)(null);
43
55
  const onChange = (0, action_1.action)("onChange", setValue);
44
- const testDatePickers = react_1.default.createElement(date_range_picker_1.DateRangePicker, { onChange: onChange, onClosePopover: noop_1.noop, selectedDates: value });
45
- return react_1.default.createElement("div", { className: "max-w-screen-sm space-y-4 rounded p-8" }, testDatePickers);
56
+ return (react_1.default.createElement("div", { className: "max-w-screen-sm space-y-4 rounded p-8 dark:text-white" },
57
+ react_1.default.createElement("p", { className: "text-lg" }, "Date range picker with min max and unavailable dates"),
58
+ react_1.default.createElement(date_range_picker_1.DateRangePicker, { maxDate: maxDate, minDate: minDate, onChange: onChange, onClosePopover: noop_1.noop, selectedDates: value, unavailableDates: unavailableDates }),
59
+ react_1.default.createElement("p", { className: "text-lg" }, "Date range picker with min selected days"),
60
+ react_1.default.createElement(date_range_picker_1.DateRangePicker, { minSelectedDays: 6, onChange: onChange, onClosePopover: noop_1.noop, selectedDates: value }),
61
+ react_1.default.createElement("p", { className: "text-lg" }, "Date range picker with exact selected days"),
62
+ react_1.default.createElement(date_range_picker_1.DateRangePicker, { exactSelectedDays: 4, onChange: onChange, onClosePopover: noop_1.noop, selectedDates: value })));
46
63
  }
@@ -11,6 +11,10 @@ export declare const splitValueToRange: (value: string | undefined | null) => {
11
11
  export interface DateRangePickerInputProps extends Omit<InputWithPopoverProps<string | null>, "children" | "placeholder" | "triggerElement"> {
12
12
  bottomContent?: ReactNode;
13
13
  datesConfig?: DatesConfig[];
14
+ exactSelectedDays?: number;
15
+ maxDate?: Date;
16
+ minDate?: Date;
17
+ minSelectedDays?: number;
14
18
  numberOfMonths?: number;
15
19
  placeholder?: string;
16
20
  style?: CSSProperties;
@@ -67,6 +67,6 @@ exports.DateRangePickerInput = (0, react_1.forwardRef)((props, ref) => {
67
67
  const selectedDates = props.value
68
68
  ? { from: parsedFrom.isValid() ? parsedFrom.toDate() : null, to: parsedTo.isValid() ? parsedTo.toDate() : null }
69
69
  : null;
70
- return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...restProps, placeholder: props.placeholder, ref: ref, triggerElement: (_a = props.triggerElement) !== null && _a !== void 0 ? _a : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: (_b = props.value) !== null && _b !== void 0 ? _b : "" }, ({ close }) => (react_1.default.createElement(date_range_picker_1.DateRangePicker, { bottomContent: props.bottomContent, datesConfig: props.datesConfig, numberOfMonths: numberOfMonths, onChange: onDatePickerChange, onClosePopover: close, selectedDates: selectedDates, style: props.style, unavailableDates: props.unavailableDates }))));
70
+ return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...restProps, placeholder: props.placeholder, ref: ref, triggerElement: (_a = props.triggerElement) !== null && _a !== void 0 ? _a : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: (_b = props.value) !== null && _b !== void 0 ? _b : "" }, ({ close }) => (react_1.default.createElement(date_range_picker_1.DateRangePicker, { bottomContent: props.bottomContent, datesConfig: props.datesConfig, exactSelectedDays: props.exactSelectedDays, maxDate: props.maxDate, minDate: props.minDate, minSelectedDays: props.minSelectedDays, numberOfMonths: numberOfMonths, onChange: onDatePickerChange, onClosePopover: close, selectedDates: selectedDates, style: props.style, unavailableDates: props.unavailableDates }))));
71
71
  });
72
72
  exports.DateRangePickerInput.displayName = "UxfUiDatePickerInput";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/ui",
3
- "version": "11.97.0",
3
+ "version": "11.99.1",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -21,16 +21,16 @@
21
21
  },
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@floating-ui/react": "0.27.16",
24
+ "@floating-ui/react": "0.27.17",
25
25
  "@headlessui/react": "1.7.19",
26
26
  "@uxf/core": "11.97.0",
27
27
  "@uxf/core-react": "11.97.0",
28
- "@uxf/datepicker": "11.94.0",
28
+ "@uxf/datepicker": "11.99.1",
29
29
  "@uxf/localize": "11.92.1",
30
30
  "@uxf/styles": "11.97.0",
31
31
  "color2k": "2.0.3",
32
32
  "dayjs": "1.11.19",
33
- "react-dropzone": "14.3.8"
33
+ "react-dropzone": "14.4.0"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "react": ">= 18.2.0",