@algolia/satellite 1.0.0-beta.140 → 1.0.0-beta.141

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 (66) hide show
  1. package/cjs/AutoComplete/AutoComplete.d.ts +1 -0
  2. package/cjs/AutoComplete/AutoComplete.js +49 -40
  3. package/cjs/Badge/Badge.d.ts +2 -2
  4. package/cjs/Banners/Alert/Alert.d.ts +2 -2
  5. package/cjs/Banners/Promote/Promote.js +1 -0
  6. package/cjs/Button/ButtonGroup.d.ts +4 -0
  7. package/cjs/Button/types.d.ts +2 -2
  8. package/cjs/Card/Card.d.ts +6 -0
  9. package/cjs/Card/Card.js +16 -11
  10. package/cjs/Checkbox/Checkbox.d.ts +2 -2
  11. package/cjs/ClickAwayContainer/ClickAwayContainer.d.ts +1 -1
  12. package/cjs/ClickAwayContainer/ClickAwayContainer.js +1 -1
  13. package/cjs/DatePicker/DatePicker/DatePicker.d.ts +1 -1
  14. package/cjs/DatePicker/DatePicker/DatePicker.js +4 -2
  15. package/cjs/DatePicker/DatePicker.tailwind.js +81 -23
  16. package/cjs/DatePicker/DateRangePicker/DateRangePicker.d.ts +1 -1
  17. package/cjs/DatePicker/DateRangePicker/DateRangePicker.js +47 -30
  18. package/cjs/DatePicker/DateRangePicker/dateRangePickerReducer.d.ts +2 -2
  19. package/cjs/DatePicker/components/Calendar.d.ts +3 -3
  20. package/cjs/DatePicker/components/Calendar.js +31 -48
  21. package/cjs/DatePicker/components/NavBar.d.ts +3 -9
  22. package/cjs/DatePicker/components/NavBar.js +82 -39
  23. package/cjs/DatePicker/types.d.ts +13 -0
  24. package/cjs/DatePicker/utils.d.ts +7 -0
  25. package/cjs/DatePicker/utils.js +29 -1
  26. package/cjs/Dropdown/components/DropdownButtonItem.d.ts +1 -1
  27. package/cjs/Dropdown/components/DropdownButtonItem.js +1 -1
  28. package/cjs/Input/Input.js +1 -1
  29. package/cjs/Link/Link.js +2 -2
  30. package/cjs/Modal/Modal.js +2 -0
  31. package/cjs/Tooltip/TooltipWrapper.js +4 -4
  32. package/cjs/styles/base.tailwind.js +7 -2
  33. package/esm/AutoComplete/AutoComplete.d.ts +1 -0
  34. package/esm/AutoComplete/AutoComplete.js +49 -40
  35. package/esm/Badge/Badge.d.ts +2 -2
  36. package/esm/Banners/Alert/Alert.d.ts +2 -2
  37. package/esm/Banners/Promote/Promote.js +1 -0
  38. package/esm/Button/ButtonGroup.d.ts +4 -0
  39. package/esm/Button/types.d.ts +2 -2
  40. package/esm/Card/Card.d.ts +6 -0
  41. package/esm/Card/Card.js +16 -12
  42. package/esm/Checkbox/Checkbox.d.ts +2 -2
  43. package/esm/ClickAwayContainer/ClickAwayContainer.d.ts +1 -1
  44. package/esm/ClickAwayContainer/ClickAwayContainer.js +1 -1
  45. package/esm/DatePicker/DatePicker/DatePicker.d.ts +1 -1
  46. package/esm/DatePicker/DatePicker/DatePicker.js +4 -2
  47. package/esm/DatePicker/DatePicker.tailwind.js +81 -23
  48. package/esm/DatePicker/DateRangePicker/DateRangePicker.d.ts +1 -1
  49. package/esm/DatePicker/DateRangePicker/DateRangePicker.js +46 -29
  50. package/esm/DatePicker/DateRangePicker/dateRangePickerReducer.d.ts +2 -2
  51. package/esm/DatePicker/components/Calendar.d.ts +3 -3
  52. package/esm/DatePicker/components/Calendar.js +31 -47
  53. package/esm/DatePicker/components/NavBar.d.ts +3 -9
  54. package/esm/DatePicker/components/NavBar.js +78 -37
  55. package/esm/DatePicker/types.d.ts +13 -0
  56. package/esm/DatePicker/utils.d.ts +7 -0
  57. package/esm/DatePicker/utils.js +20 -1
  58. package/esm/Dropdown/components/DropdownButtonItem.d.ts +1 -1
  59. package/esm/Dropdown/components/DropdownButtonItem.js +1 -1
  60. package/esm/Input/Input.js +1 -1
  61. package/esm/Link/Link.js +2 -2
  62. package/esm/Modal/Modal.js +2 -0
  63. package/esm/Tooltip/TooltipWrapper.js +4 -4
  64. package/esm/styles/base.tailwind.js +7 -2
  65. package/package.json +3 -3
  66. package/satellite.min.css +2 -2
@@ -59,10 +59,10 @@ var DEFAULT_DATE_RANGE_PICKER_LOCALE = _objectSpread(_objectSpread({}, _utils.DE
59
59
  });
60
60
 
61
61
  var DateRangePicker = function DateRangePicker(_ref2) {
62
- var _validate, _displayedRange$start, _displayedRange$start2, _displayedRange$end, _displayOnlyRanges$ma, _state$hovered;
62
+ var _validate, _displayedRange$start;
63
63
 
64
64
  var id = _ref2.id,
65
- range = _ref2.range,
65
+ initialRange = _ref2.range,
66
66
  displayOnlyRanges = _ref2.displayOnlyRanges,
67
67
  _ref2$calendarProps = _ref2.calendarProps,
68
68
  calendarProps = _ref2$calendarProps === void 0 ? {} : _ref2$calendarProps,
@@ -98,10 +98,12 @@ var DateRangePicker = function DateRangePicker(_ref2) {
98
98
 
99
99
 
100
100
  var isValid = !((_validate = validate(state)) !== null && _validate !== void 0 && _validate.length);
101
- var displayedRange = (0, _dateRangePickerTimeRange.isEmptyTimeRange)(state.candidateRange) ? range !== null && range !== void 0 ? range : {
102
- start: null,
103
- end: null
104
- } : state.candidateRange; // Event handlers
101
+ var displayedRange = (0, _react.useMemo)(function () {
102
+ return (0, _dateRangePickerTimeRange.isEmptyTimeRange)(state.candidateRange) ? initialRange !== null && initialRange !== void 0 ? initialRange : {
103
+ start: null,
104
+ end: null
105
+ } : state.candidateRange;
106
+ }, [initialRange, state.candidateRange]); // Event handlers
105
107
 
106
108
  var dispatch = function dispatch(action) {
107
109
  onAction === null || onAction === void 0 ? void 0 : onAction(action, state);
@@ -162,40 +164,54 @@ var DateRangePicker = function DateRangePicker(_ref2) {
162
164
  }
163
165
  };
164
166
 
165
- var selectedDays = [displayedRange.start && displayedRange.end ? {
167
+ var selectedDays = displayedRange.start && displayedRange.end ? {
166
168
  from: displayedRange.start,
167
169
  to: displayedRange.end
168
170
  } : displayedRange.start && state.hovered ? {
169
171
  from: displayedRange.start,
170
172
  to: state.hovered
171
- } : (_displayedRange$start = displayedRange.start) !== null && _displayedRange$start !== void 0 ? _displayedRange$start : undefined];
172
- var modifiers = {
173
- start: (_displayedRange$start2 = displayedRange.start) !== null && _displayedRange$start2 !== void 0 ? _displayedRange$start2 : undefined,
174
- end: (_displayedRange$end = displayedRange.end) !== null && _displayedRange$end !== void 0 ? _displayedRange$end : undefined,
175
- displayedRanges: (_displayOnlyRanges$ma = displayOnlyRanges === null || displayOnlyRanges === void 0 ? void 0 : displayOnlyRanges.map(function (range) {
176
- return !range.start || !range.end ? undefined : {
173
+ } : (_displayedRange$start = displayedRange.start) !== null && _displayedRange$start !== void 0 ? _displayedRange$start : undefined;
174
+ var modifiers = {};
175
+
176
+ if (displayedRange.start) {
177
+ modifiers.start = [displayedRange.start];
178
+ }
179
+
180
+ if (displayedRange.end) {
181
+ modifiers.end = [displayedRange.end];
182
+ }
183
+
184
+ if (state.hovered) {
185
+ modifiers.hoveredTo = [state.hovered];
186
+ }
187
+
188
+ if (displayOnlyRanges) {
189
+ modifiers.displayedRanges = displayOnlyRanges.filter(function (range) {
190
+ return typeof range !== "undefined" && range.start instanceof Date && range.end instanceof Date;
191
+ }).map(function (range) {
192
+ return {
177
193
  from: range.start,
178
194
  to: range.end
179
195
  };
180
- })) !== null && _displayOnlyRanges$ma !== void 0 ? _displayOnlyRanges$ma : undefined,
181
- displayedRangesStart: displayOnlyRanges === null || displayOnlyRanges === void 0 ? void 0 : displayOnlyRanges.map(function (range) {
182
- var _range$start;
183
-
184
- return (_range$start = range.start) !== null && _range$start !== void 0 ? _range$start : undefined;
185
- }),
186
- displayedRangesEnd: displayOnlyRanges === null || displayOnlyRanges === void 0 ? void 0 : displayOnlyRanges.map(function (range) {
187
- var _range$end;
188
-
189
- return (_range$end = range.end) !== null && _range$end !== void 0 ? _range$end : undefined;
190
- }),
191
- hoveredTo: (_state$hovered = state.hovered) !== null && _state$hovered !== void 0 ? _state$hovered : undefined
192
- };
196
+ });
197
+ modifiers.displayedRangesStart = displayOnlyRanges.filter(function (range) {
198
+ return typeof range !== "undefined" && range.start instanceof Date;
199
+ }).map(function (range) {
200
+ return range.start;
201
+ });
202
+ modifiers.displayedRangesEnd = displayOnlyRanges.filter(function (range) {
203
+ return typeof range !== "undefined" && range.end instanceof Date;
204
+ }).map(function (range) {
205
+ return range.end;
206
+ });
207
+ }
208
+
193
209
  var yearProps = (0, _react.useMemo)(function () {
194
- var _ref3, _displayedRange$start3;
210
+ var _ref3, _displayedRange$start2;
195
211
 
196
212
  return props.editableYear ? {
197
213
  editableYear: true,
198
- initialDate: (_ref3 = (_displayedRange$start3 = displayedRange.start) !== null && _displayedRange$start3 !== void 0 ? _displayedRange$start3 : displayedRange.end) !== null && _ref3 !== void 0 ? _ref3 : undefined,
214
+ initialDate: (_ref3 = (_displayedRange$start2 = displayedRange.start) !== null && _displayedRange$start2 !== void 0 ? _displayedRange$start2 : displayedRange.end) !== null && _ref3 !== void 0 ? _ref3 : undefined,
199
215
  years: props.years
200
216
  } : {
201
217
  editableYear: false
@@ -212,7 +228,7 @@ var DateRangePicker = function DateRangePicker(_ref2) {
212
228
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerDisplay["default"], {
213
229
  id: id,
214
230
  onClick: state.show ? handleClose : handleOpen,
215
- range: range !== null && range !== void 0 ? range : {
231
+ range: initialRange !== null && initialRange !== void 0 ? initialRange : {
216
232
  start: null,
217
233
  end: null
218
234
  },
@@ -236,9 +252,10 @@ var DateRangePicker = function DateRangePicker(_ref2) {
236
252
  className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["flex"]))),
237
253
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
238
254
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Calendar["default"], _objectSpread(_objectSpread(_objectSpread({
255
+ mode: "default",
239
256
  numberOfMonths: 2
240
257
  }, calendarProps), {}, {
241
- selectedDays: selectedDays,
258
+ selected: selectedDays,
242
259
  modifiers: modifiers,
243
260
  onDayClick: handleDayClick,
244
261
  onDayMouseEnter: handleMouseEnter,
@@ -26,13 +26,13 @@ export interface DateRangePickerMouseEnterAction {
26
26
  type: DateRangePickerActionTypes.mouseDayEnter;
27
27
  payload: Date;
28
28
  meta: {
29
- event: MouseEvent<HTMLDivElement>;
29
+ event: MouseEvent;
30
30
  };
31
31
  }
32
32
  export interface DateRangePickerMouseLeaveAction {
33
33
  type: DateRangePickerActionTypes.mouseDayLeave;
34
34
  meta: {
35
- event: MouseEvent<HTMLDivElement>;
35
+ event: MouseEvent;
36
36
  };
37
37
  }
38
38
  export interface DateRangePickerApplyAction {
@@ -1,8 +1,8 @@
1
1
  import type { FunctionComponent } from "react";
2
- import { DayPickerProps } from "react-day-picker";
2
+ import { DayPickerDefaultProps, DayPickerRangeProps, DayPickerSingleProps } from "react-day-picker";
3
3
  import type { WithRequiredProperty } from "../../types";
4
4
  import type { DatePickerLocale } from "../types";
5
- declare type ExcludedDayPickerProps = "captionElement" | "showOutsideDays" | "enableOutsideDaysClick" | "fixedWeeks" | "labels" | "navbarElement" | "onTodayButtonClick" | "pagedNavigation" | "renderDay" | "renderWeek" | "reverseMonths" | "showWeekNumbers" | "showWeekDays" | "todayButton" | "weekdayElement" | "weekdaysLong" | "weekdaysShort";
5
+ declare type ExcludedDayPickerProps = "captionElement" | "showOutsideDays" | "enableOutsideDaysClick" | "fixedWeeks" | "labels" | "navbarElement" | "onTodayButtonClick" | "pagedNavigation" | "renderDay" | "renderWeek" | "reverseMonths" | "showWeekNumber" | "showWeekDays" | "weekdayElement" | "weekdaysLong" | "weekdaysShort";
6
6
  export declare type EditableYearProps = {
7
7
  editableYear?: false;
8
8
  } | {
@@ -10,7 +10,7 @@ export declare type EditableYearProps = {
10
10
  years?: number[];
11
11
  initialDate?: Date;
12
12
  };
13
- export declare type CalendarProps = Omit<Omit<DayPickerProps, "locale">, ExcludedDayPickerProps> & EditableYearProps & {
13
+ export declare type CalendarProps = Omit<Omit<DayPickerSingleProps | DayPickerRangeProps | DayPickerDefaultProps, "locale">, ExcludedDayPickerProps> & EditableYearProps & {
14
14
  locale: WithRequiredProperty<DatePickerLocale, "nextMonth" | "previousMonth">;
15
15
  };
16
16
  declare const Calendar: FunctionComponent<CalendarProps>;
@@ -11,11 +11,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
 
14
- var _dateFns = require("date-fns");
14
+ var _reactDayPicker = require("react-day-picker");
15
15
 
16
- var _react = require("react");
17
-
18
- var _reactDayPicker = _interopRequireDefault(require("react-day-picker"));
16
+ var _utils = require("../utils");
19
17
 
20
18
  var _NavBar = _interopRequireDefault(require("./NavBar"));
21
19
 
@@ -25,33 +23,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
25
23
 
26
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
25
 
28
- var excludedDayPickerPropsList = ["captionElement", "showOutsideDays", "enableOutsideDaysClick", "fixedWeeks", "labels", "navbarElement", "onTodayButtonClick", "pagedNavigation", "renderDay", "renderWeek", "reverseMonths", "showWeekNumbers", "showWeekDays", "todayButton", "weekdayElement", "weekdaysLong", "weekdaysShort"];
26
+ var excludedDayPickerPropsList = ["captionElement", "showOutsideDays", "enableOutsideDaysClick", "fixedWeeks", "labels", "navbarElement", "onTodayButtonClick", "pagedNavigation", "renderDay", "renderWeek", "reverseMonths", "showWeekNumber", "showWeekDays", "weekdayElement", "weekdaysLong", "weekdaysShort"];
29
27
 
30
28
  var Calendar = function Calendar(props) {
31
- var initialDate = (0, _react.useMemo)(function () {
32
- return props.editableYear && props.initialDate ? props.initialDate : new Date();
33
- }, [props]);
34
-
35
- var _useState = (0, _react.useState)(initialDate),
36
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
37
- month = _useState2[0],
38
- setMonth = _useState2[1];
39
-
40
- var years = (0, _react.useMemo)(function () {
41
- if (!props.editableYear) return [];
42
- if (props.years) return props.years;
43
- return (0, _dateFns.eachYearOfInterval)({
44
- start: (0, _dateFns.add)(initialDate, {
45
- years: -5
46
- }),
47
- end: (0, _dateFns.add)(initialDate, {
48
- years: 10
49
- })
50
- }).map(_dateFns.getYear);
51
- }, [props, initialDate]);
52
- var onYearChange = (0, _react.useCallback)(function (year) {
53
- return setMonth((0, _dateFns.setYear)(month, year));
54
- }, [month]);
55
29
  var curatedProps = Object.fromEntries(Object.entries(props).filter(function (_ref) {
56
30
  var _ref2 = (0, _slicedToArray2["default"])(_ref, 1),
57
31
  key = _ref2[0];
@@ -60,27 +34,36 @@ var Calendar = function Calendar(props) {
60
34
  !excludedDayPickerPropsList.includes(key)
61
35
  );
62
36
  }));
63
- var yearsProps = (0, _react.useMemo)(function () {
64
- return props.editableYear ? {
65
- editableYear: true,
66
- years: years,
67
- onYearChange: onYearChange
68
- } : {
69
- editableYear: false
70
- };
71
- }, [onYearChange, props, years]);
72
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactDayPicker["default"], _objectSpread(_objectSpread({}, curatedProps), {}, {
73
- month: props.editableYear ? month : undefined,
37
+ /**
38
+ * modifierClassNames applies the object value (className) to the key (modifier). These classNames are
39
+ * defined / modified in the DatePicker.tailwind.js file.
40
+ */
41
+
42
+ var modifierClassNames = {
43
+ start: "rdp-day_range_start",
44
+ end: "rdp-day_range_end",
45
+ displayedRanges: "rdp-day_displayedRanges",
46
+ //stl`bg-grey-200 rounded-none border-0`,
47
+ displayedRangesStart: "rdp-day_displayedRangesStart",
48
+ //stl`bg-grey-600 text-white rounded-l border-0`,
49
+ displayedRangesEnd: "rdp-day_displayedRangesEnd" //stl`bg-grey-600 text-white rounded-r border-0`,
50
+
51
+ }; // This could be expanded further to incorporate expanding the number system as well as the text:
52
+ // https://react-day-picker.js.org/basics/localization#adopting-other-numbering-systems
53
+
54
+ var dateFnsLocale = (0, _utils.getDateFnsLocale)(props.locale.code);
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactDayPicker.DayPicker, _objectSpread(_objectSpread({
56
+ mode: props.mode
57
+ }, curatedProps), {}, {
58
+ locale: dateFnsLocale,
59
+ dir: props.locale.rtl ? "rtl" : "ltr",
60
+ modifiersClassNames: modifierClassNames,
74
61
  showOutsideDays: false,
75
- enableOutsideDaysClick: false,
76
62
  fixedWeeks: false,
77
- navbarElement: function navbarElement(navBarProps) {
78
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NavBar["default"], _objectSpread(_objectSpread(_objectSpread({}, navBarProps), yearsProps), {}, {
79
- locale: props.locale
80
- }));
81
- },
82
- captionElement: function captionElement() {
83
- return null;
63
+ components: {
64
+ Caption: function Caption(captionProps) {
65
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NavBar["default"], _objectSpread(_objectSpread({}, captionProps), props));
66
+ }
84
67
  }
85
68
  }));
86
69
  };
@@ -1,15 +1,9 @@
1
1
  import type { FunctionComponent } from "react";
2
- import type { NavbarElementProps } from "react-day-picker";
2
+ import { CaptionProps } from "react-day-picker";
3
3
  import type { WithRequiredProperty } from "../../types";
4
4
  import type { DatePickerLocale } from "../types";
5
- export declare type NavBarYearProps = {
6
- editableYear?: false;
7
- } | {
8
- editableYear: true;
9
- years: number[];
10
- onYearChange: (year: number) => void;
11
- };
12
- export declare type NavBarProps = Omit<NavbarElementProps, "locale"> & NavBarYearProps & {
5
+ import type { EditableYearProps } from "./Calendar";
6
+ export declare type NavBarProps = CaptionProps & EditableYearProps & {
13
7
  locale: WithRequiredProperty<DatePickerLocale, "nextMonth" | "previousMonth">;
14
8
  };
15
9
  declare const NavBar: FunctionComponent<NavBarProps>;
@@ -11,12 +11,16 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
-
16
14
  var _clsx = _interopRequireDefault(require("clsx"));
17
15
 
16
+ var _dateFns = require("date-fns");
17
+
18
+ var _isSameMonth = _interopRequireDefault(require("date-fns/isSameMonth"));
19
+
18
20
  var _react = require("react");
19
21
 
22
+ var _reactDayPicker = require("react-day-picker");
23
+
20
24
  var _reactFeather = require("react-feather");
21
25
 
22
26
  var _Button = require("../../Button");
@@ -25,50 +29,90 @@ var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/sa
25
29
 
26
30
  var _jsxRuntime = require("react/jsx-runtime");
27
31
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
29
-
30
- var _excluded = ["onPreviousClick", "onNextClick", "showPreviousButton", "showNextButton", "month", "locale", "localeUtils"];
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
33
+
34
+ var NavBar = function NavBar(props) {
35
+ var _useDayPicker = (0, _reactDayPicker.useDayPicker)(),
36
+ numberOfMonths = _useDayPicker.numberOfMonths,
37
+ onMonthChange = _useDayPicker.onMonthChange,
38
+ formatMonthCaption = _useDayPicker.formatters.formatMonthCaption,
39
+ dir = _useDayPicker.dir,
40
+ locale = _useDayPicker.locale;
41
+
42
+ var _useNavigation = (0, _reactDayPicker.useNavigation)(),
43
+ previousMonth = _useNavigation.previousMonth,
44
+ nextMonth = _useNavigation.nextMonth,
45
+ goToMonth = _useNavigation.goToMonth,
46
+ goToDate = _useNavigation.goToDate,
47
+ displayMonths = _useNavigation.displayMonths;
48
+
49
+ var _props$locale = props.locale,
50
+ nextMonthLabel = _props$locale.nextMonth,
51
+ previousMonthLabel = _props$locale.previousMonth;
52
+ var initialDate = (0, _react.useMemo)(function () {
53
+ return props.editableYear && props.initialDate ? props.initialDate : new Date();
54
+ }, [props]);
55
+ var displayIndex = displayMonths.findIndex(function (month) {
56
+ return (0, _isSameMonth["default"])(props.displayMonth, month);
57
+ });
58
+ var isFirst = displayIndex === 0;
59
+ var isLast = displayIndex === displayMonths.length - 1;
60
+ var hideNext = numberOfMonths > 1 && (isFirst || !isLast);
61
+ var hidePrevious = numberOfMonths > 1 && (isLast || !isFirst);
62
+
63
+ var handlePreviousClick = function handlePreviousClick() {
64
+ if (!previousMonth) return;
65
+ goToMonth(previousMonth);
66
+ onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(previousMonth);
67
+ };
68
+
69
+ var handleNextClick = function handleNextClick() {
70
+ if (!nextMonth) return;
71
+ goToMonth(nextMonth);
72
+ onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(nextMonth);
73
+ };
31
74
 
32
- var NavBar = function NavBar(_ref) {
33
- var onPreviousClick = _ref.onPreviousClick,
34
- onNextClick = _ref.onNextClick,
35
- showPreviousButton = _ref.showPreviousButton,
36
- showNextButton = _ref.showNextButton,
37
- month = _ref.month,
38
- locale = _ref.locale,
39
- localeUtils = _ref.localeUtils,
40
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
41
75
  var years = (0, _react.useMemo)(function () {
42
76
  if (!props.editableYear) return [];
43
- var monthYear = month.getFullYear(); // year of the currently shown month
77
+ if (props.years) return props.years;
78
+ var interval = (0, _dateFns.eachYearOfInterval)({
79
+ start: (0, _dateFns.add)(initialDate, {
80
+ years: -5
81
+ }),
82
+ end: (0, _dateFns.add)(initialDate, {
83
+ years: 10
84
+ })
85
+ }).map(_dateFns.getYear);
86
+ var monthYear = props.displayMonth.getFullYear(); // year of the currently shown month
44
87
 
45
- if (props.years.includes(monthYear)) return props.years;
46
- var minYear = Math.min.apply(Math, (0, _toConsumableArray2["default"])(props.years).concat([monthYear]));
47
- var maxYear = Math.max.apply(Math, (0, _toConsumableArray2["default"])(props.years).concat([monthYear]));
88
+ if (interval.includes(monthYear)) return interval;
89
+ var minYear = Math.min.apply(Math, (0, _toConsumableArray2["default"])(interval).concat([monthYear]));
90
+ var maxYear = Math.max.apply(Math, (0, _toConsumableArray2["default"])(interval).concat([monthYear]));
48
91
  return Array.from({
49
92
  length: maxYear - minYear + 1
50
93
  }, function (_, i) {
51
94
  return i + minYear;
52
95
  });
53
- }, [props, month]);
96
+ }, [props, initialDate]);
54
97
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
55
- className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["w-full top-3 left-0 pt-5 px-5 pb-2 flex justify-between"]))),
98
+ className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["w-full top-3 left-0 pt-1 px-2 pb-2 flex justify-between"]))),
56
99
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
57
- icon: _reactFeather.ChevronLeft,
58
- title: locale.previousMonth,
59
- onClick: function onClick() {
60
- return onPreviousClick();
61
- },
62
- disabled: !showPreviousButton
100
+ icon: dir === "rtl" ? _reactFeather.ChevronRight : _reactFeather.ChevronLeft,
101
+ title: previousMonthLabel,
102
+ onClick: handlePreviousClick,
103
+ showTooltip: hidePrevious ? false : undefined,
104
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["", ""])), hidePrevious && "invisible")
63
105
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
64
- className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex items-center text-center"])))),
106
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["flex items-center text-center"]))),
65
107
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
66
- className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["font-medium text-md"]))),
67
- children: [localeUtils.getMonths()[month.getMonth()], " ", props.editableYear ? /*#__PURE__*/(0, _jsxRuntime.jsx)("select", {
68
- className: (0, _clsx["default"])("DayPicker-Year", (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["pl-0.5 font-medium outline-none border-transparent border-2 rounded focus:border-accent-600 focus:shadow-z100 appearance-none"])))),
69
- value: month.getFullYear(),
108
+ className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["font-medium text-md"]))),
109
+ children: [formatMonthCaption(props.displayMonth, {
110
+ locale: locale
111
+ }), " ", props.editableYear ? /*#__PURE__*/(0, _jsxRuntime.jsx)("select", {
112
+ className: (0, _clsx["default"])("rdp-year", (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["pl-0.5 font-medium outline-none border-transparent border-2 rounded focus:border-accent-600 focus:shadow-z100 appearance-none"])))),
113
+ value: props.displayMonth.getFullYear(),
70
114
  onChange: function onChange(e) {
71
- return props.onYearChange(parseInt(e.currentTarget.value));
115
+ return goToDate((0, _dateFns.setYear)(props.displayMonth, parseInt(e.currentTarget.value)));
72
116
  },
73
117
  children: years.map(function (year) {
74
118
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
@@ -76,15 +120,14 @@ var NavBar = function NavBar(_ref) {
76
120
  children: year
77
121
  }, year);
78
122
  })
79
- }) : month.getFullYear()]
123
+ }) : props.displayMonth.getFullYear()]
80
124
  })
81
125
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
82
- icon: _reactFeather.ChevronRight,
83
- title: locale.nextMonth,
84
- onClick: function onClick() {
85
- return onNextClick();
86
- },
87
- disabled: !showNextButton
126
+ icon: dir === "rtl" ? _reactFeather.ChevronLeft : _reactFeather.ChevronRight,
127
+ title: nextMonthLabel,
128
+ onClick: handleNextClick,
129
+ showTooltip: hideNext ? false : undefined,
130
+ className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["", ""])), hideNext && "invisible")
88
131
  })]
89
132
  });
90
133
  };
@@ -1,5 +1,18 @@
1
+ import type * as Locales from "date-fns/locale";
1
2
  import type { ModalProps } from "./components/Modal";
2
3
  export declare type DatePickerLocale = {
4
+ /**
5
+ * code is the date-fns ISO 639-1 language code to look up @link https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
6
+ * for rendering the actual calendar component in the correct language. This has no effect on the custom translations
7
+ * listed below. (i.e. `openButton`, `apply`, etc.)
8
+ */
9
+ code?: keyof typeof Locales;
10
+ /** rtl should be used optionally in conjunction with supported language codes, such as `rtl: true` when code is `arSA` */
11
+ rtl?: boolean;
12
+ /**
13
+ * custom translations for the DatePicker component unrelated to the date-fns locale. These are used to translate
14
+ * the buttons and labels of the DatePicker component outside of the month, day, year, etc.
15
+ */
3
16
  openButton?: string;
4
17
  cancel?: string;
5
18
  apply?: string;
@@ -1,3 +1,10 @@
1
+ import type { Locale } from "date-fns";
1
2
  import type { DatePickerLocale } from "./types";
2
3
  export declare const formatDate: (date: Date | number) => string;
3
4
  export declare const DEFAULT_DATE_PICKER_LOCALE: Required<DatePickerLocale>;
5
+ /**
6
+ * Looks up a date-fns locale. This falls back to `en`
7
+ * @param locale the ISO 639-1 language code to look up @link https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
8
+ * @returns date-fns locale.
9
+ */
10
+ export declare function getDateFnsLocale(locale?: string): Locale;
@@ -2,23 +2,51 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.formatDate = exports.DEFAULT_DATE_PICKER_LOCALE = void 0;
11
+ exports.getDateFnsLocale = getDateFnsLocale;
9
12
 
10
13
  var _format = _interopRequireDefault(require("date-fns/format"));
11
14
 
15
+ var Locales = _interopRequireWildcard(require("date-fns/locale"));
16
+
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+
12
21
  var formatDate = function formatDate(date) {
13
22
  return (0, _format["default"])(date, "MMM do, yyyy");
14
23
  };
15
24
 
16
25
  exports.formatDate = formatDate;
17
26
  var DEFAULT_DATE_PICKER_LOCALE = {
27
+ code: "enUS",
28
+ rtl: false,
18
29
  apply: "Apply",
19
30
  cancel: "Cancel",
20
31
  openButton: "Enter a date...",
21
32
  previousMonth: "Previous month",
22
33
  nextMonth: "Next month"
23
34
  };
24
- exports.DEFAULT_DATE_PICKER_LOCALE = DEFAULT_DATE_PICKER_LOCALE;
35
+ /**
36
+ * Looks up a date-fns locale. This falls back to `en`
37
+ * @param locale the ISO 639-1 language code to look up @link https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
38
+ * @returns date-fns locale.
39
+ */
40
+
41
+ exports.DEFAULT_DATE_PICKER_LOCALE = DEFAULT_DATE_PICKER_LOCALE;
42
+
43
+ function getDateFnsLocale(locale) {
44
+ var _allLocales$locale;
45
+
46
+ if (!locale) {
47
+ return Locales.enUS;
48
+ }
49
+
50
+ var allLocales = Locales;
51
+ return (_allLocales$locale = allLocales[locale]) !== null && _allLocales$locale !== void 0 ? _allLocales$locale : Locales.enUS;
52
+ }
@@ -6,7 +6,7 @@ export declare type DropdownButtonItemProps = DropdownBaseItemProps<HTMLButtonEl
6
6
  startIcon?: IconComponentType;
7
7
  /**
8
8
  * Variant of the item
9
- * @default default
9
+ * @default "default"
10
10
  */
11
11
  variant?: "default" | "destructive";
12
12
  };
@@ -43,7 +43,7 @@ var DropdownButtonItem = function DropdownButtonItem(props) {
43
43
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", _objectSpread(_objectSpread({}, mergedProps), {}, {
44
44
  className: (0, _clsx["default"])(mergedProps.className, (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["w-full"])))),
45
45
  children: [StartIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(StartIcon, {
46
- className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["mr-2 ", ""])), showDestructiveVariant ? "text-red-700" : "text-grey-500"),
46
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["mr-2 shrink-0 ", ""])), showDestructiveVariant ? "text-red-700" : "text-grey-500"),
47
47
  size: "1rem"
48
48
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
49
49
  className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["w-full truncate ", ""])), showDestructiveVariant && "text-red-700"),
@@ -148,7 +148,7 @@ var Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, externalRef) {
148
148
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
149
149
  },
150
150
  children: [Icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, {
151
- className: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["ml-4 ", ""])), disabled ? "text-grey-200" : focused ? "text-accent-600" : "text-grey-500"),
151
+ className: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["ml-4 shrink-0 ", ""])), disabled ? "text-grey-200" : focused ? "text-accent-600" : "text-grey-500"),
152
152
  size: variant === "small" ? "1rem" : "1.5rem"
153
153
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("input", _objectSpread(_objectSpread({
154
154
  className: (0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["mx-4 no-search-input-decoration"]))),
package/cjs/Link/Link.js CHANGED
@@ -55,10 +55,10 @@ var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
55
55
  ref: ref,
56
56
  className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["typo-link inline-flex items-center"]))), className),
57
57
  children: [StartIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(StartIcon, {
58
- className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["mr-1"]))),
58
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["mr-1 shrink-0"]))),
59
59
  size: "1em"
60
60
  }), children, EndIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(EndIcon, {
61
- className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["ml-1"]))),
61
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["ml-1 shrink-0"]))),
62
62
  size: "1em"
63
63
  })]
64
64
  }));
@@ -160,9 +160,11 @@ var Modal = function Modal(_ref) {
160
160
  }, modalAccessibilityProps), {}, {
161
161
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Card["default"], {
162
162
  ref: dialogRef,
163
+ as: "section",
163
164
  elevation: "500",
164
165
  className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["my-6 mx-auto"]))), SIZE_CLASSNAMES[size], className),
165
166
  fullBleed: true,
167
+ "aria-label": title || "Modal",
166
168
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("header", {
167
169
  className: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n px-8 min-h-14\n flex items-center justify-between space-x-2\n ", "\n ", "\n "])), title ? "border-b border-grey-100" : "justify-end", !title && hideCloseIcon && "hidden"),
168
170
  children: [title && /*#__PURE__*/(0, _jsxRuntime.jsx)("h2", {
@@ -145,7 +145,7 @@ var TooltipWrapper = function TooltipWrapper(_ref) {
145
145
  }, [cancelTransition, hideDelay, internalShow, scheduleTransition]);
146
146
  (0, _react.useEffect)(function () {
147
147
  if (isControlled || !showTooltip) return;
148
- var handleMouseMouve = (0, _lodash["default"])(function (evt) {
148
+ var handleMouseMove = (0, _lodash["default"])(function (evt) {
149
149
  var target = evt.target;
150
150
  var isWithinBounds = [targetEl, interactive ? popperEl : null].some(function (ref) {
151
151
  return Boolean(ref && (ref === target || ref.contains(target)));
@@ -159,10 +159,10 @@ var TooltipWrapper = function TooltipWrapper(_ref) {
159
159
  }, 16, {
160
160
  leading: true
161
161
  });
162
- document.addEventListener("mousemove", handleMouseMouve);
162
+ document.addEventListener("mousemove", handleMouseMove);
163
163
  return function () {
164
- handleMouseMouve.cancel();
165
- document.removeEventListener("mousemove", handleMouseMouve);
164
+ handleMouseMove.cancel();
165
+ document.removeEventListener("mousemove", handleMouseMove);
166
166
  };
167
167
  }, [isControlled, popperEl, scheduleHideTooltip, scheduleShowTooltip, showTooltip, targetEl, interactive]);
168
168
  /**