sy-ui-lib 1.0.15 → 1.0.16

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.
@@ -1,3 +1,61 @@
1
1
  import { DatePickerProps } from './DatePicker.types';
2
+ /**
3
+ * DatePicker Component
4
+ *
5
+ * A flexible and reusable date picker component that supports both single date
6
+ * selection and date range selection. It provides built-in constraints, default
7
+ * selections, and responsive sizing for different UI needs.
8
+ *
9
+ * Props:
10
+ * @param {string} [title="Date"] Label or placeholder text displayed when no date is selected.
11
+ * @param {"single" | "range"} [variant="single"] Determines the mode of the date picker.
12
+ * Use `"single"` for selecting one date or `"range"` for selecting a start and end date.
13
+ * @param {Date} [value] Selected date value (used in single mode).
14
+ * @param {(date: Date | undefined) => void} [onChange] Callback triggered when a single date is selected.
15
+ * @param {Date} [fromDate] Start date (used in range mode).
16
+ * @param {Date} [toDate] - End date (used in range mode).
17
+ * @param {(date: Date | undefined) => void} [onFromChange] Callback triggered when the "from" date changes.
18
+ * @param {(date: Date | undefined) => void} [onToChange] Callback triggered when the "to" date changes.
19
+ * @param {"sm" | "lg" | "full"} [size="sm"] - Controls the width of the date picker.
20
+ * `"sm"` for compact, `"lg"` for wider input, and `"full"` for full width.
21
+ * @param {"sm" | "lg"} [height="lg"] - Controls the height of the input field.
22
+ * @param {number} [maxPastDays] - Restricts selection to only the last N days from today.
23
+ * @param {number} [maxRangeDays] - Limits the maximum selectable range between "from" and "to" dates.
24
+ * @param {boolean} [currentSelected=false] - If true, automatically selects today's date
25
+ * (or default range if range mode is enabled).
26
+ * @param {number} [rangeDays=0] - Defines the default range in days (used when `currentSelected` is true).
27
+ * Example: If `rangeDays = 4`, then range will be from (today - 4 days) to today.
28
+ * @returns A responsive date picker component supporting both single and range selection modes.
29
+ * @example
30
+ * Single Date:
31
+ * <DatePicker
32
+ * title="Select Date"
33
+ * variant="single"
34
+ * value={date}
35
+ * onChange={(d) => setDate(d)}
36
+ * />
37
+ *
38
+ * Date Range:
39
+ * <DatePicker
40
+ * variant="range"
41
+ * fromDate={from}
42
+ * toDate={to}
43
+ * onFromChange={setFrom}
44
+ * onToChange={setTo}
45
+ * />
46
+ *
47
+ * Default Today:
48
+ * <DatePicker
49
+ * variant="single"
50
+ * currentSelected
51
+ * />
52
+ *
53
+ * Last N Days Range:
54
+ * <DatePicker
55
+ * variant="range"
56
+ * currentSelected
57
+ * rangeDays={7}
58
+ * />
59
+ */
2
60
  declare const DatePicker: React.FC<DatePickerProps>;
3
61
  export default DatePicker;
@@ -17,11 +17,13 @@ export interface DatePickerProps {
17
17
  onFromChange?: (date: Date | undefined) => void;
18
18
  onToChange?: (date: Date | undefined) => void;
19
19
  size?: DatePickerSize;
20
- /** 👇 NEW: height controlled from parent */
20
+ /** height controlled from parent */
21
21
  height?: "sm" | "lg";
22
22
  /** Constraints */
23
23
  maxPastDays?: number;
24
24
  maxRangeDays?: number;
25
25
  /** Default select */
26
26
  currentSelected?: boolean;
27
+ /** Default select range */
28
+ rangeDays?: number;
27
29
  }