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

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 (70) 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 +6 -3
  15. package/cjs/DatePicker/DatePicker.tailwind.js +81 -23
  16. package/cjs/DatePicker/DateRangePicker/DateRangePicker.d.ts +2 -2
  17. package/cjs/DatePicker/DateRangePicker/DateRangePicker.js +50 -31
  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 +81 -40
  23. package/cjs/DatePicker/index.d.ts +0 -1
  24. package/cjs/DatePicker/index.js +2 -9
  25. package/cjs/DatePicker/types.d.ts +13 -0
  26. package/cjs/DatePicker/utils.d.ts +7 -0
  27. package/cjs/DatePicker/utils.js +29 -1
  28. package/cjs/Dropdown/components/DropdownButtonItem.d.ts +1 -1
  29. package/cjs/Dropdown/components/DropdownButtonItem.js +1 -1
  30. package/cjs/Input/Input.js +1 -1
  31. package/cjs/Link/Link.js +2 -2
  32. package/cjs/Modal/Modal.js +2 -0
  33. package/cjs/Tooltip/TooltipWrapper.js +4 -4
  34. package/cjs/styles/base.tailwind.js +7 -2
  35. package/esm/AutoComplete/AutoComplete.d.ts +1 -0
  36. package/esm/AutoComplete/AutoComplete.js +49 -40
  37. package/esm/Badge/Badge.d.ts +2 -2
  38. package/esm/Banners/Alert/Alert.d.ts +2 -2
  39. package/esm/Banners/Promote/Promote.js +1 -0
  40. package/esm/Button/ButtonGroup.d.ts +4 -0
  41. package/esm/Button/types.d.ts +2 -2
  42. package/esm/Card/Card.d.ts +6 -0
  43. package/esm/Card/Card.js +16 -12
  44. package/esm/Checkbox/Checkbox.d.ts +2 -2
  45. package/esm/ClickAwayContainer/ClickAwayContainer.d.ts +1 -1
  46. package/esm/ClickAwayContainer/ClickAwayContainer.js +1 -1
  47. package/esm/DatePicker/DatePicker/DatePicker.d.ts +1 -1
  48. package/esm/DatePicker/DatePicker/DatePicker.js +6 -3
  49. package/esm/DatePicker/DatePicker.tailwind.js +81 -23
  50. package/esm/DatePicker/DateRangePicker/DateRangePicker.d.ts +2 -2
  51. package/esm/DatePicker/DateRangePicker/DateRangePicker.js +48 -31
  52. package/esm/DatePicker/DateRangePicker/dateRangePickerReducer.d.ts +2 -2
  53. package/esm/DatePicker/components/Calendar.d.ts +3 -3
  54. package/esm/DatePicker/components/Calendar.js +31 -47
  55. package/esm/DatePicker/components/NavBar.d.ts +3 -9
  56. package/esm/DatePicker/components/NavBar.js +78 -39
  57. package/esm/DatePicker/index.d.ts +0 -1
  58. package/esm/DatePicker/index.js +1 -2
  59. package/esm/DatePicker/types.d.ts +13 -0
  60. package/esm/DatePicker/utils.d.ts +7 -0
  61. package/esm/DatePicker/utils.js +20 -1
  62. package/esm/Dropdown/components/DropdownButtonItem.d.ts +1 -1
  63. package/esm/Dropdown/components/DropdownButtonItem.js +1 -1
  64. package/esm/Input/Input.js +1 -1
  65. package/esm/Link/Link.js +2 -2
  66. package/esm/Modal/Modal.js +2 -0
  67. package/esm/Tooltip/TooltipWrapper.js +4 -4
  68. package/esm/styles/base.tailwind.js +7 -2
  69. package/package.json +3 -3
  70. package/satellite.min.css +2 -2
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports["default"] = exports.DateRangePicker = void 0;
9
9
 
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
 
@@ -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, _initialRange$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,11 @@ 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",
256
+ defaultMonth: (_initialRange$start = initialRange === null || initialRange === void 0 ? void 0 : initialRange.start) !== null && _initialRange$start !== void 0 ? _initialRange$start : undefined,
239
257
  numberOfMonths: 2
240
258
  }, calendarProps), {}, {
241
- selectedDays: selectedDays,
259
+ selected: selectedDays,
242
260
  modifiers: modifiers,
243
261
  onDayClick: handleDayClick,
244
262
  onDayMouseEnter: handleMouseEnter,
@@ -278,5 +296,6 @@ var DateRangePicker = function DateRangePicker(_ref2) {
278
296
  });
279
297
  };
280
298
 
299
+ exports.DateRangePicker = DateRangePicker;
281
300
  var _default = DateRangePicker;
282
301
  exports["default"] = _default;
@@ -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,88 @@ 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;
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 showNext = numberOfMonths === 1 || displayIndex === displayMonths.length - 1;
59
+ var showPrevious = numberOfMonths === 1 || displayIndex === 0;
60
+
61
+ var handlePreviousClick = function handlePreviousClick() {
62
+ if (!previousMonth) return;
63
+ goToMonth(previousMonth);
64
+ onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(previousMonth);
65
+ };
29
66
 
30
- var _excluded = ["onPreviousClick", "onNextClick", "showPreviousButton", "showNextButton", "month", "locale", "localeUtils"];
67
+ var handleNextClick = function handleNextClick() {
68
+ if (!nextMonth) return;
69
+ goToMonth(nextMonth);
70
+ onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(nextMonth);
71
+ };
31
72
 
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
73
  var years = (0, _react.useMemo)(function () {
42
74
  if (!props.editableYear) return [];
43
- var monthYear = month.getFullYear(); // year of the currently shown month
75
+ if (props.years) return props.years;
76
+ var interval = (0, _dateFns.eachYearOfInterval)({
77
+ start: (0, _dateFns.add)(initialDate, {
78
+ years: -5
79
+ }),
80
+ end: (0, _dateFns.add)(initialDate, {
81
+ years: 10
82
+ })
83
+ }).map(_dateFns.getYear);
84
+ var monthYear = props.displayMonth.getFullYear(); // year of the currently shown month
44
85
 
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]));
86
+ if (interval.includes(monthYear)) return interval;
87
+ var minYear = Math.min.apply(Math, (0, _toConsumableArray2["default"])(interval).concat([monthYear]));
88
+ var maxYear = Math.max.apply(Math, (0, _toConsumableArray2["default"])(interval).concat([monthYear]));
48
89
  return Array.from({
49
90
  length: maxYear - minYear + 1
50
91
  }, function (_, i) {
51
92
  return i + minYear;
52
93
  });
53
- }, [props, month]);
94
+ }, [props, initialDate]);
54
95
  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"]))),
56
- 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
96
+ className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["w-full top-3 left-0 pt-1 px-2 pb-2 flex justify-between"]))),
97
+ children: [showPrevious ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
98
+ icon: dir === "rtl" ? _reactFeather.ChevronRight : _reactFeather.ChevronLeft,
99
+ title: previousMonthLabel,
100
+ onClick: handlePreviousClick
101
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
102
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["w-8"])))
63
103
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
64
- className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex items-center text-center"])))),
104
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["flex items-center text-center"]))),
65
105
  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(),
106
+ className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["font-medium text-md"]))),
107
+ children: [formatMonthCaption(props.displayMonth, {
108
+ locale: locale
109
+ }), " ", props.editableYear ? /*#__PURE__*/(0, _jsxRuntime.jsx)("select", {
110
+ 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"])))),
111
+ value: props.displayMonth.getFullYear(),
70
112
  onChange: function onChange(e) {
71
- return props.onYearChange(parseInt(e.currentTarget.value));
113
+ return goToDate((0, _dateFns.setYear)(props.displayMonth, parseInt(e.currentTarget.value)));
72
114
  },
73
115
  children: years.map(function (year) {
74
116
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
@@ -76,15 +118,14 @@ var NavBar = function NavBar(_ref) {
76
118
  children: year
77
119
  }, year);
78
120
  })
79
- }) : month.getFullYear()]
121
+ }) : props.displayMonth.getFullYear()]
80
122
  })
81
- }), /*#__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
123
+ }), showNext ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
124
+ icon: dir === "rtl" ? _reactFeather.ChevronLeft : _reactFeather.ChevronRight,
125
+ title: nextMonthLabel,
126
+ onClick: handleNextClick
127
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
128
+ className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["w-8"])))
88
129
  })]
89
130
  });
90
131
  };
@@ -2,4 +2,3 @@ export * from "./components";
2
2
  export * from "./DatePicker";
3
3
  export { default as DatePicker } from "./DatePicker";
4
4
  export * from "./DateRangePicker";
5
- export { default as DateRangePicker } from "./DateRangePicker";
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  var _exportNames = {
9
- DatePicker: true,
10
- DateRangePicker: true
9
+ DatePicker: true
11
10
  };
12
11
  Object.defineProperty(exports, "DatePicker", {
13
12
  enumerable: true,
@@ -15,12 +14,6 @@ Object.defineProperty(exports, "DatePicker", {
15
14
  return _DatePicker["default"];
16
15
  }
17
16
  });
18
- Object.defineProperty(exports, "DateRangePicker", {
19
- enumerable: true,
20
- get: function get() {
21
- return _DateRangePicker["default"];
22
- }
23
- });
24
17
 
25
18
  var _components = require("./components");
26
19
 
@@ -50,7 +43,7 @@ Object.keys(_DatePicker).forEach(function (key) {
50
43
  });
51
44
  });
52
45
 
53
- var _DateRangePicker = _interopRequireWildcard(require("./DateRangePicker"));
46
+ var _DateRangePicker = require("./DateRangePicker");
54
47
 
55
48
  Object.keys(_DateRangePicker).forEach(function (key) {
56
49
  if (key === "default" || key === "__esModule") return;
@@ -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
  }));