@frontify/fondue 12.0.0-beta.346 → 12.0.0-beta.347

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.
@@ -5,103 +5,103 @@ import { forwardRef as _, useState as F } from "react";
5
5
  import G from "react-datepicker";
6
6
  import "./DatePicker.css.es.js";
7
7
  import { DatePickerTrigger as H } from "./DatePickerTrigger.es.js";
8
- import { Validation as V } from "../../utilities/validation.es.js";
9
- import Y from "../../foundation/Icon/Generated/IconCaretLeftDouble.es.js";
10
- import $ from "../../foundation/Icon/Generated/IconCaretLeft.es.js";
11
- import q from "../../foundation/Icon/Generated/IconCaretRight.es.js";
12
- import J from "../../foundation/Icon/Generated/IconCaretRightDouble.es.js";
8
+ import { Validation as K } from "../../utilities/validation.es.js";
9
+ import V from "../../foundation/Icon/Generated/IconCaretLeftDouble.es.js";
10
+ import Y from "../../foundation/Icon/Generated/IconCaretLeft.es.js";
11
+ import $ from "../../foundation/Icon/Generated/IconCaretRight.es.js";
12
+ import q from "../../foundation/Icon/Generated/IconCaretRightDouble.es.js";
13
13
  import { Button as i } from "../Button/Button.es.js";
14
- import { ButtonStyle as s, ButtonSize as o, ButtonEmphasis as n } from "../Button/ButtonTypes.es.js";
15
- const K = 40, Q = (d, a) => d === "single" ? a < /* @__PURE__ */ new Date() ? "past-date" : "future-date" : "range-day", U = _(
14
+ import { ButtonStyle as o, ButtonSize as s, ButtonEmphasis as n } from "../Button/ButtonTypes.es.js";
15
+ const J = 40, Q = (d, a) => d === "single" ? a < /* @__PURE__ */ new Date() ? "past-date" : "future-date" : "range-day", U = _(
16
16
  ({
17
17
  placeHolder: d = "Select a date",
18
18
  isClearable: a,
19
- shouldCloseOnSelect: y,
19
+ shouldCloseOnSelect: C,
20
20
  onChange: u,
21
21
  onOpen: l,
22
22
  onClose: m,
23
- onBlur: C,
24
- onKeyDown: k,
25
- dateFormat: z = "MMM dd, yyyy",
26
- value: M,
27
- startDate: x,
28
- endDate: S,
29
- minDate: I,
30
- maxDate: N,
31
- validation: R = V.Default,
32
- customTrigger: b,
33
- customHeader: P,
34
- children: W,
35
- hasPopperArrow: B = !0,
36
- preventOpenOnFocus: O = !1,
37
- filterDate: j = () => !0,
23
+ onBlur: k,
24
+ onKeyDown: z,
25
+ dateFormat: M = "MMM dd, yyyy",
26
+ value: x,
27
+ startDate: S,
28
+ endDate: I,
29
+ minDate: N,
30
+ maxDate: R,
31
+ validation: b = K.Default,
32
+ customTrigger: P,
33
+ customHeader: W,
34
+ children: B,
35
+ hasPopperArrow: O = !0,
36
+ preventOpenOnFocus: j = !1,
37
+ filterDate: v = () => !0,
38
38
  variant: w = "single",
39
39
  "data-test-id": A = "date-picker"
40
- }, v) => {
41
- const [E, h] = F(!1);
40
+ }, E) => {
41
+ const [h, g] = F(!1);
42
42
  return /* @__PURE__ */ e("div", { "data-test-id": A, children: /* @__PURE__ */ e(
43
43
  G,
44
44
  {
45
45
  calendarClassName: "tw-rounded-sm tw-border tw-border-line-x-strong react-datepicker-wrap",
46
- selected: M,
47
- startDate: x,
48
- endDate: S,
49
- minDate: I,
50
- maxDate: N,
46
+ selected: x,
47
+ startDate: S,
48
+ endDate: I,
49
+ minDate: N,
50
+ maxDate: R,
51
51
  calendarStartDay: 1,
52
52
  onChange: u,
53
- onKeyDown: k,
54
- onBlur: C,
53
+ onKeyDown: h ? void 0 : z,
54
+ onBlur: k,
55
55
  selectsRange: w === "range",
56
- showPopperArrow: B,
57
- preventOpenOnFocus: O,
58
- filterDate: j,
59
- customInput: b ?? /* @__PURE__ */ e(
56
+ showPopperArrow: O,
57
+ preventOpenOnFocus: j,
58
+ filterDate: v,
59
+ customInput: P ?? /* @__PURE__ */ e(
60
60
  H,
61
61
  {
62
- isCalendarOpen: E,
62
+ isCalendarOpen: h,
63
63
  isClearable: a,
64
64
  placeHolder: d,
65
- validation: R,
65
+ validation: b,
66
66
  onDateChanged: u
67
67
  }
68
68
  ),
69
- ref: v,
69
+ ref: E,
70
70
  formatWeekDay: (t) => t.slice(0, 1),
71
71
  isClearable: a,
72
- dateFormat: z,
72
+ dateFormat: M,
73
73
  onCalendarClose: () => {
74
- h(!1), m == null || m();
74
+ g(!1), m == null || m();
75
75
  },
76
76
  onCalendarOpen: () => {
77
- h(!0), l == null || l();
77
+ g(!0), l == null || l();
78
78
  },
79
- shouldCloseOnSelect: y,
79
+ shouldCloseOnSelect: C,
80
80
  dayClassName: (t) => Q(w, t),
81
81
  popperProps: {
82
82
  strategy: "fixed"
83
83
  },
84
- renderCustomHeader: ({ date: t, decreaseMonth: c, increaseMonth: p, increaseYear: g, decreaseYear: D }) => /* @__PURE__ */ f("div", { className: "tw-flex tw-flex-col tw-gap-3", children: [
85
- P,
84
+ renderCustomHeader: ({ date: t, decreaseMonth: c, increaseMonth: p, increaseYear: D, decreaseYear: y }) => /* @__PURE__ */ f("div", { className: "tw-flex tw-flex-col tw-gap-3", children: [
85
+ W,
86
86
  /* @__PURE__ */ f("div", { className: "tw-flex tw-justify-between tw-pb-4 tw-px-0", children: [
87
87
  /* @__PURE__ */ e(
88
88
  i,
89
89
  {
90
- style: s.Default,
91
- size: o.Medium,
92
- onClick: D,
90
+ style: o.Default,
91
+ size: s.Medium,
92
+ onClick: y,
93
93
  emphasis: n.Weak,
94
- icon: /* @__PURE__ */ e(Y, { size: r.Size20 })
94
+ icon: /* @__PURE__ */ e(V, { size: r.Size20 })
95
95
  }
96
96
  ),
97
97
  /* @__PURE__ */ e(
98
98
  i,
99
99
  {
100
- style: s.Default,
101
- size: o.Medium,
100
+ style: o.Default,
101
+ size: s.Medium,
102
102
  onClick: c,
103
103
  emphasis: n.Weak,
104
- icon: /* @__PURE__ */ e($, { size: r.Size20 })
104
+ icon: /* @__PURE__ */ e(Y, { size: r.Size20 })
105
105
  }
106
106
  ),
107
107
  /* @__PURE__ */ f("p", { className: "tw-font-sans tw-font-semibold tw-grow tw-self-center", children: [
@@ -112,21 +112,21 @@ const K = 40, Q = (d, a) => d === "single" ? a < /* @__PURE__ */ new Date() ? "p
112
112
  /* @__PURE__ */ e(
113
113
  i,
114
114
  {
115
- style: s.Default,
116
- size: o.Medium,
115
+ style: o.Default,
116
+ size: s.Medium,
117
117
  onClick: p,
118
118
  emphasis: n.Weak,
119
- icon: /* @__PURE__ */ e(q, { size: r.Size20 })
119
+ icon: /* @__PURE__ */ e($, { size: r.Size20 })
120
120
  }
121
121
  ),
122
122
  /* @__PURE__ */ e(
123
123
  i,
124
124
  {
125
- style: s.Default,
126
- size: o.Medium,
127
- onClick: g,
125
+ style: o.Default,
126
+ size: s.Medium,
127
+ onClick: D,
128
128
  emphasis: n.Weak,
129
- icon: /* @__PURE__ */ e(J, { size: r.Size20 })
129
+ icon: /* @__PURE__ */ e(q, { size: r.Size20 })
130
130
  }
131
131
  )
132
132
  ] })
@@ -136,12 +136,12 @@ const K = 40, Q = (d, a) => d === "single" ? a < /* @__PURE__ */ new Date() ? "p
136
136
  name: "arrow",
137
137
  options: {
138
138
  padding: ({ popper: t, reference: c, placement: p }) => ({
139
- [`${p.includes("end") ? "left" : "right"}`]: Math.max(t.width, Math.min(t.width, c.width)) - K
139
+ [`${p.includes("end") ? "left" : "right"}`]: Math.max(t.width, Math.min(t.width, c.width)) - J
140
140
  })
141
141
  }
142
142
  }
143
143
  ],
144
- children: W
144
+ children: B
145
145
  }
146
146
  ) });
147
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.es.js","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Button, ButtonEmphasis, ButtonSize, ButtonStyle } from '@components/Button';\nimport { IconSize } from '@foundation/Icon/IconSize';\nimport { format, getYear } from 'date-fns';\nimport { KeyboardEvent, ReactNode, forwardRef, useState } from 'react';\nimport DatepickerComponent, { ReactDatePicker } from 'react-datepicker';\nimport './DatePicker.css';\nimport { DatePickerTrigger } from './DatePickerTrigger';\nimport { IconCaretLeft, IconCaretLeftDouble, IconCaretRight, IconCaretRightDouble } from '@foundation/Icon/Generated';\nimport { Validation } from '@utilities/validation';\n\nconst ARROW_PADDING_CORRECTION = 40;\n\ntype SingleDatePickerProps = {\n variant?: 'single';\n onChange: (date: Date | null) => void;\n startDate?: null;\n endDate?: null;\n};\n\ntype RangeDatePickerProps = {\n variant: 'range';\n onChange: (date: [Date | null, Date | null] | null) => void;\n startDate: Date | null;\n endDate: Date | null;\n};\n\nexport type DatePickerProps = {\n placeHolder?: string;\n isClearable?: boolean;\n shouldCloseOnSelect?: boolean;\n dateFormat?: string;\n /** @description when the variant is of type 'range', the value should be the startDate */\n value?: Date | null;\n minDate?: Date;\n maxDate?: Date;\n validation?: Validation;\n customTrigger?: ReactNode;\n customHeader?: ReactNode;\n children?: ReactNode;\n hasPopperArrow?: boolean;\n preventOpenOnFocus?: boolean;\n filterDate?: (date: Date) => boolean;\n onOpen?: () => void;\n onClose?: () => void;\n onBlur?: () => void;\n onKeyDown?: (event: KeyboardEvent<HTMLDivElement>) => void;\n 'data-test-id'?: string;\n} & (SingleDatePickerProps | RangeDatePickerProps);\n\nconst getDayClasses = (variant: DatePickerProps['variant'], date: Date) => {\n if (variant === 'single') {\n return date < new Date() ? 'past-date' : 'future-date';\n }\n return 'range-day';\n};\n\nexport type ReactDatePickerRef = ReactDatePicker<never, boolean>;\n\nexport const DatePicker = forwardRef<ReactDatePicker<never, boolean>, DatePickerProps>(\n (\n {\n placeHolder = 'Select a date',\n isClearable,\n shouldCloseOnSelect,\n onChange,\n onOpen,\n onClose,\n onBlur,\n onKeyDown,\n dateFormat = 'MMM dd, yyyy',\n value,\n startDate,\n endDate,\n minDate,\n maxDate,\n validation = Validation.Default,\n customTrigger,\n customHeader,\n children,\n hasPopperArrow = true,\n preventOpenOnFocus = false,\n filterDate = () => true,\n variant = 'single',\n 'data-test-id': dataTestId = 'date-picker',\n },\n ref,\n ) => {\n const [isCalendarOpen, setIsCalendarOpen] = useState<boolean>(false);\n\n const handleOpen = () => {\n setIsCalendarOpen(true);\n onOpen?.();\n };\n\n const handleClose = () => {\n setIsCalendarOpen(false);\n onClose?.();\n };\n\n return (\n <div data-test-id={dataTestId}>\n <DatepickerComponent\n calendarClassName=\"tw-rounded-sm tw-border tw-border-line-x-strong react-datepicker-wrap\"\n selected={value}\n startDate={startDate}\n endDate={endDate}\n minDate={minDate}\n maxDate={maxDate}\n calendarStartDay={1}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onBlur={onBlur}\n selectsRange={variant === 'range'}\n showPopperArrow={hasPopperArrow}\n preventOpenOnFocus={preventOpenOnFocus}\n filterDate={filterDate}\n customInput={\n customTrigger ?? (\n <DatePickerTrigger\n isCalendarOpen={isCalendarOpen}\n isClearable={isClearable}\n placeHolder={placeHolder}\n validation={validation}\n onDateChanged={onChange}\n />\n )\n }\n ref={ref}\n formatWeekDay={(day) => day.slice(0, 1)}\n isClearable={isClearable}\n dateFormat={dateFormat}\n onCalendarClose={handleClose}\n onCalendarOpen={handleOpen}\n shouldCloseOnSelect={shouldCloseOnSelect}\n dayClassName={(date) => getDayClasses(variant, date)}\n popperProps={{\n strategy: 'fixed',\n }}\n renderCustomHeader={({ date, decreaseMonth, increaseMonth, increaseYear, decreaseYear }) => (\n <div className=\"tw-flex tw-flex-col tw-gap-3\">\n {customHeader}\n <div className=\"tw-flex tw-justify-between tw-pb-4 tw-px-0\">\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={decreaseYear}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretLeftDouble size={IconSize.Size20} />}\n />\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={decreaseMonth}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretLeft size={IconSize.Size20} />}\n />\n <p className=\"tw-font-sans tw-font-semibold tw-grow tw-self-center\">\n {format(date, 'MMMM')} {getYear(date)}\n </p>\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={increaseMonth}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretRight size={IconSize.Size20} />}\n />\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={increaseYear}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretRightDouble size={IconSize.Size20} />}\n />\n </div>\n </div>\n )}\n popperModifiers={[\n {\n name: 'arrow',\n options: {\n padding: ({ popper, reference, placement }) => {\n const side = placement.includes('end') ? 'left' : 'right';\n const padding = {\n [`${side}`]:\n Math.max(popper.width, Math.min(popper.width, reference.width)) -\n ARROW_PADDING_CORRECTION,\n };\n\n return padding;\n },\n },\n },\n ]}\n >\n {children}\n </DatepickerComponent>\n </div>\n );\n },\n);\n\nDatePicker.displayName = 'FondueDatePicker';\n"],"names":["ARROW_PADDING_CORRECTION","getDayClasses","variant","date","DatePicker","forwardRef","placeHolder","isClearable","shouldCloseOnSelect","onChange","onOpen","onClose","onBlur","onKeyDown","dateFormat","value","startDate","endDate","minDate","maxDate","validation","Validation","customTrigger","customHeader","children","hasPopperArrow","preventOpenOnFocus","filterDate","dataTestId","ref","isCalendarOpen","setIsCalendarOpen","useState","jsx","DatepickerComponent","DatePickerTrigger","day","decreaseMonth","increaseMonth","increaseYear","decreaseYear","jsxs","Button","ButtonStyle","ButtonSize","ButtonEmphasis","IconCaretLeftDouble","IconSize","IconCaretLeft","format","getYear","IconCaretRight","IconCaretRightDouble","popper","reference","placement"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.es.js","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Button, ButtonEmphasis, ButtonSize, ButtonStyle } from '@components/Button';\nimport { IconSize } from '@foundation/Icon/IconSize';\nimport { format, getYear } from 'date-fns';\nimport { KeyboardEvent, ReactNode, forwardRef, useState } from 'react';\nimport DatepickerComponent, { ReactDatePicker } from 'react-datepicker';\nimport './DatePicker.css';\nimport { DatePickerTrigger } from './DatePickerTrigger';\nimport { IconCaretLeft, IconCaretLeftDouble, IconCaretRight, IconCaretRightDouble } from '@foundation/Icon/Generated';\nimport { Validation } from '@utilities/validation';\n\nconst ARROW_PADDING_CORRECTION = 40;\n\ntype SingleDatePickerProps = {\n variant?: 'single';\n onChange: (date: Date | null) => void;\n startDate?: null;\n endDate?: null;\n};\n\ntype RangeDatePickerProps = {\n variant: 'range';\n onChange: (date: [Date | null, Date | null] | null) => void;\n startDate: Date | null;\n endDate: Date | null;\n};\n\nexport type DatePickerProps = {\n placeHolder?: string;\n isClearable?: boolean;\n shouldCloseOnSelect?: boolean;\n dateFormat?: string;\n /** @description when the variant is of type 'range', the value should be the startDate */\n value?: Date | null;\n minDate?: Date;\n maxDate?: Date;\n validation?: Validation;\n customTrigger?: ReactNode;\n customHeader?: ReactNode;\n children?: ReactNode;\n hasPopperArrow?: boolean;\n preventOpenOnFocus?: boolean;\n filterDate?: (date: Date) => boolean;\n onOpen?: () => void;\n onClose?: () => void;\n onBlur?: () => void;\n onKeyDown?: (event: KeyboardEvent<HTMLDivElement>) => void;\n 'data-test-id'?: string;\n} & (SingleDatePickerProps | RangeDatePickerProps);\n\nconst getDayClasses = (variant: DatePickerProps['variant'], date: Date) => {\n if (variant === 'single') {\n return date < new Date() ? 'past-date' : 'future-date';\n }\n return 'range-day';\n};\n\nexport type ReactDatePickerRef = ReactDatePicker<never, boolean>;\n\nexport const DatePicker = forwardRef<ReactDatePicker<never, boolean>, DatePickerProps>(\n (\n {\n placeHolder = 'Select a date',\n isClearable,\n shouldCloseOnSelect,\n onChange,\n onOpen,\n onClose,\n onBlur,\n onKeyDown,\n dateFormat = 'MMM dd, yyyy',\n value,\n startDate,\n endDate,\n minDate,\n maxDate,\n validation = Validation.Default,\n customTrigger,\n customHeader,\n children,\n hasPopperArrow = true,\n preventOpenOnFocus = false,\n filterDate = () => true,\n variant = 'single',\n 'data-test-id': dataTestId = 'date-picker',\n },\n ref,\n ) => {\n const [isCalendarOpen, setIsCalendarOpen] = useState<boolean>(false);\n\n const handleOpen = () => {\n setIsCalendarOpen(true);\n onOpen?.();\n };\n\n const handleClose = () => {\n setIsCalendarOpen(false);\n onClose?.();\n };\n\n return (\n <div data-test-id={dataTestId}>\n <DatepickerComponent\n calendarClassName=\"tw-rounded-sm tw-border tw-border-line-x-strong react-datepicker-wrap\"\n selected={value}\n startDate={startDate}\n endDate={endDate}\n minDate={minDate}\n maxDate={maxDate}\n calendarStartDay={1}\n onChange={onChange}\n onKeyDown={isCalendarOpen ? undefined : onKeyDown}\n onBlur={onBlur}\n selectsRange={variant === 'range'}\n showPopperArrow={hasPopperArrow}\n preventOpenOnFocus={preventOpenOnFocus}\n filterDate={filterDate}\n customInput={\n customTrigger ?? (\n <DatePickerTrigger\n isCalendarOpen={isCalendarOpen}\n isClearable={isClearable}\n placeHolder={placeHolder}\n validation={validation}\n onDateChanged={onChange}\n />\n )\n }\n ref={ref}\n formatWeekDay={(day) => day.slice(0, 1)}\n isClearable={isClearable}\n dateFormat={dateFormat}\n onCalendarClose={handleClose}\n onCalendarOpen={handleOpen}\n shouldCloseOnSelect={shouldCloseOnSelect}\n dayClassName={(date) => getDayClasses(variant, date)}\n popperProps={{\n strategy: 'fixed',\n }}\n renderCustomHeader={({ date, decreaseMonth, increaseMonth, increaseYear, decreaseYear }) => (\n <div className=\"tw-flex tw-flex-col tw-gap-3\">\n {customHeader}\n <div className=\"tw-flex tw-justify-between tw-pb-4 tw-px-0\">\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={decreaseYear}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretLeftDouble size={IconSize.Size20} />}\n />\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={decreaseMonth}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretLeft size={IconSize.Size20} />}\n />\n <p className=\"tw-font-sans tw-font-semibold tw-grow tw-self-center\">\n {format(date, 'MMMM')} {getYear(date)}\n </p>\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={increaseMonth}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretRight size={IconSize.Size20} />}\n />\n <Button\n style={ButtonStyle.Default}\n size={ButtonSize.Medium}\n onClick={increaseYear}\n emphasis={ButtonEmphasis.Weak}\n icon={<IconCaretRightDouble size={IconSize.Size20} />}\n />\n </div>\n </div>\n )}\n popperModifiers={[\n {\n name: 'arrow',\n options: {\n padding: ({ popper, reference, placement }) => {\n const side = placement.includes('end') ? 'left' : 'right';\n const padding = {\n [`${side}`]:\n Math.max(popper.width, Math.min(popper.width, reference.width)) -\n ARROW_PADDING_CORRECTION,\n };\n\n return padding;\n },\n },\n },\n ]}\n >\n {children}\n </DatepickerComponent>\n </div>\n );\n },\n);\n\nDatePicker.displayName = 'FondueDatePicker';\n"],"names":["ARROW_PADDING_CORRECTION","getDayClasses","variant","date","DatePicker","forwardRef","placeHolder","isClearable","shouldCloseOnSelect","onChange","onOpen","onClose","onBlur","onKeyDown","dateFormat","value","startDate","endDate","minDate","maxDate","validation","Validation","customTrigger","customHeader","children","hasPopperArrow","preventOpenOnFocus","filterDate","dataTestId","ref","isCalendarOpen","setIsCalendarOpen","useState","jsx","DatepickerComponent","DatePickerTrigger","day","decreaseMonth","increaseMonth","increaseYear","decreaseYear","jsxs","Button","ButtonStyle","ButtonSize","ButtonEmphasis","IconCaretLeftDouble","IconSize","IconCaretLeft","format","getYear","IconCaretRight","IconCaretRightDouble","popper","reference","placement"],"mappings":"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"}