@pingux/astro 2.70.0-alpha.2 → 2.70.0

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 (46) hide show
  1. package/lib/cjs/components/AccordionItem/AccordionItem.d.ts +1 -1
  2. package/lib/cjs/components/AccordionItem/AccordionItem.js +1 -1
  3. package/lib/cjs/components/Calendar/Calendar.js +4 -0
  4. package/lib/cjs/components/Calendar/Calendar.mdx +1 -1
  5. package/lib/cjs/components/Calendar/Calendar.test.js +1 -4
  6. package/lib/cjs/components/Calendar/CalendarCell.js +1 -1
  7. package/lib/cjs/components/DatePicker/DatePicker.test.js +62 -6
  8. package/lib/cjs/components/RangeCalendar/RangeCalendar.d.ts +7 -0
  9. package/lib/cjs/components/RangeCalendar/RangeCalendar.js +100 -0
  10. package/lib/cjs/components/RangeCalendar/RangeCalendar.mdx +39 -0
  11. package/lib/cjs/components/RangeCalendar/RangeCalendar.stories.d.ts +103 -0
  12. package/lib/cjs/components/RangeCalendar/RangeCalendar.stories.js +131 -0
  13. package/lib/cjs/components/RangeCalendar/RangeCalendar.styles.d.ts +104 -0
  14. package/lib/cjs/components/RangeCalendar/RangeCalendar.styles.js +118 -0
  15. package/lib/cjs/components/RangeCalendar/RangeCalendar.test.d.ts +1 -0
  16. package/lib/cjs/components/RangeCalendar/RangeCalendar.test.js +217 -0
  17. package/lib/cjs/components/RangeCalendar/RangeCalendarCell.d.ts +4 -0
  18. package/lib/cjs/components/RangeCalendar/RangeCalendarCell.js +96 -0
  19. package/lib/cjs/components/RangeCalendar/RangeCalendarGrid.d.ts +4 -0
  20. package/lib/cjs/components/RangeCalendar/RangeCalendarGrid.js +70 -0
  21. package/lib/cjs/components/RangeCalendar/RangeCalendarHeader.d.ts +4 -0
  22. package/lib/cjs/components/RangeCalendar/RangeCalendarHeader.js +85 -0
  23. package/lib/cjs/components/RangeCalendar/index.d.ts +2 -0
  24. package/lib/cjs/components/RangeCalendar/index.js +33 -0
  25. package/lib/cjs/index.d.ts +2 -0
  26. package/lib/cjs/index.js +45 -26
  27. package/lib/cjs/styles/variants/variants.js +2 -0
  28. package/lib/cjs/types/calendar.d.ts +51 -16
  29. package/lib/components/AccordionItem/AccordionItem.js +0 -3
  30. package/lib/components/Calendar/Calendar.js +4 -0
  31. package/lib/components/Calendar/Calendar.mdx +1 -1
  32. package/lib/components/Calendar/Calendar.test.js +1 -4
  33. package/lib/components/Calendar/CalendarCell.js +1 -1
  34. package/lib/components/DatePicker/DatePicker.test.js +62 -6
  35. package/lib/components/RangeCalendar/RangeCalendar.js +86 -0
  36. package/lib/components/RangeCalendar/RangeCalendar.mdx +39 -0
  37. package/lib/components/RangeCalendar/RangeCalendar.stories.js +112 -0
  38. package/lib/components/RangeCalendar/RangeCalendar.styles.js +110 -0
  39. package/lib/components/RangeCalendar/RangeCalendar.test.js +208 -0
  40. package/lib/components/RangeCalendar/RangeCalendarCell.js +82 -0
  41. package/lib/components/RangeCalendar/RangeCalendarGrid.js +61 -0
  42. package/lib/components/RangeCalendar/RangeCalendarHeader.js +76 -0
  43. package/lib/components/RangeCalendar/index.js +2 -0
  44. package/lib/index.js +2 -0
  45. package/lib/styles/variants/variants.js +2 -0
  46. package/package.json +1 -1
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var calendarBody = {
9
+ pb: 'sm',
10
+ borderTop: '1px solid',
11
+ borderTopColor: 'neutral.80',
12
+ '& > tr:nth-of-type(odd) ': {
13
+ backgroundColor: 'white'
14
+ }
15
+ };
16
+ var calendarButton = {
17
+ justifyContent: 'center',
18
+ alignItems: 'center',
19
+ fontSize: 'sm',
20
+ fontWeight: 1,
21
+ color: 'neutral.10',
22
+ lineHeight: '16px',
23
+ width: '40px',
24
+ height: '40px',
25
+ outline: 'none',
26
+ '&.is-hovered': {
27
+ bg: 'accent.99',
28
+ cursor: 'pointer'
29
+ },
30
+ '&.is-selected': {
31
+ bg: 'accent.99',
32
+ '&.is-hovered': {
33
+ bg: 'active',
34
+ color: 'white'
35
+ }
36
+ },
37
+ '&.is-range-ends': {
38
+ bg: 'active',
39
+ color: 'white',
40
+ outline: 'none',
41
+ boxShadow: 'none'
42
+ },
43
+ '&.is-selection-start': {
44
+ borderRadius: '6px 0 0 6px'
45
+ },
46
+ '&.is-selection-end': {
47
+ borderRadius: '0 6px 6px 0'
48
+ },
49
+ '&.is-start-and-end': {
50
+ borderRadius: '0'
51
+ },
52
+ '&.is-focused': {
53
+ outline: '1px',
54
+ outlineStyle: 'solid',
55
+ outlineColor: 'focus',
56
+ outlineOffset: '-1px'
57
+ },
58
+ '&.is-unavailable': {
59
+ backgroundColor: 'neutral.80'
60
+ },
61
+ '&:not(.is-outside-visible-range)&.is-extreme&:not(.is-completely-disabled)': {
62
+ backgroundColor: 'neutral.80',
63
+ color: 'neutral.10',
64
+ opacity: 1
65
+ },
66
+ '&.is-disabled': {
67
+ '&.is-hovered': {
68
+ backgroundColor: 'unset'
69
+ }
70
+ }
71
+ };
72
+ var calendarCell = {
73
+ cursor: 'default',
74
+ textAlign: 'center',
75
+ position: 'relative',
76
+ color: '#333',
77
+ padding: '0',
78
+ width: '40px',
79
+ height: '40px'
80
+ };
81
+ var columnHeader = {
82
+ display: 'flex',
83
+ justifyContent: 'center',
84
+ alignItems: 'center',
85
+ color: 'text.primary',
86
+ fontSize: 'sm',
87
+ fontWeight: 1,
88
+ width: '40px',
89
+ height: '40px'
90
+ };
91
+ var calendarHeaderContainer = {
92
+ justifyContent: 'space-between',
93
+ mt: 'sm',
94
+ alignItems: 'center',
95
+ width: '586px',
96
+ height: '31px'
97
+ };
98
+ var calendarHeader = {
99
+ position: 'relative',
100
+ justifyContent: 'center',
101
+ alignItems: 'center',
102
+ width: '280px',
103
+ height: '100%'
104
+ };
105
+ var calendarContainer = {
106
+ width: '586px',
107
+ textAlign: 'center'
108
+ };
109
+ var _default = {
110
+ calendarBody: calendarBody,
111
+ calendarButton: calendarButton,
112
+ calendarCell: calendarCell,
113
+ calendarContainer: calendarContainer,
114
+ calendarHeader: calendarHeader,
115
+ calendarHeaderContainer: calendarHeaderContainer,
116
+ columnHeader: columnHeader
117
+ };
118
+ exports["default"] = _default;
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
9
+ var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
10
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _date = require("@internationalized/date");
14
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
15
+ var _isDateWithinRanges = require("../../utils/devUtils/props/isDateWithinRanges");
16
+ var _testWrapper = require("../../utils/testUtils/testWrapper");
17
+ var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
18
+ var _RangeCalendar = _interopRequireWildcard(require("./RangeCalendar"));
19
+ var _react2 = require("@emotion/react");
20
+ 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); }
21
+ 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; }
22
+ var unavailableRanges = [['2022-08-10', '2022-08-15']];
23
+ var defaultProps = {
24
+ defaultValue: {
25
+ start: new _date.CalendarDate(2022, 8, 1),
26
+ end: new _date.CalendarDate(2022, 8, 7)
27
+ }
28
+ };
29
+ var isDateUnavailable = function isDateUnavailable(date) {
30
+ return (0, _isDateWithinRanges.isDateWithinRanges)(date, unavailableRanges);
31
+ };
32
+ var getComponent = function getComponent() {
33
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
34
+ return (0, _testWrapper.render)((0, _react2.jsx)(_RangeCalendar["default"], (0, _extends2["default"])({}, defaultProps, props, {
35
+ "aria-label": "Calendar Range"
36
+ })));
37
+ };
38
+
39
+ // Needs to be added to each components test file.
40
+ (0, _universalComponentTest.universalComponentTests)({
41
+ renderComponent: function renderComponent(props) {
42
+ return (0, _react2.jsx)(_RangeCalendar["default"], (0, _extends2["default"])({}, defaultProps, props, {
43
+ "aria-label": "Calendar Range"
44
+ }));
45
+ }
46
+ });
47
+ test('renders calendar range component', function () {
48
+ getComponent();
49
+ var calendarContainer = _testWrapper.screen.getByRole('group');
50
+ expect(calendarContainer).toBeInTheDocument();
51
+ expect(calendarContainer).toHaveTextContent('Calendar Range, August to September 2022');
52
+ var buttons = _testWrapper.screen.getAllByRole('button');
53
+ expect(buttons[0]).toHaveAttribute('aria-label', 'Previous month navigation');
54
+ expect(buttons[1]).toHaveAttribute('aria-label', 'Next month navigation');
55
+ var calendarGrids = _testWrapper.screen.getAllByRole('grid');
56
+ expect(calendarGrids).toHaveLength(2);
57
+ var calendarHeaders = _testWrapper.screen.getAllByRole('columnheader', {
58
+ hidden: true
59
+ });
60
+ expect(calendarHeaders).toHaveLength(14);
61
+ var calendarCells = _testWrapper.screen.queryAllByRole('gridcell');
62
+ expect(calendarCells).toHaveLength(70);
63
+ });
64
+ test('should able to navigate to previous and next month', function () {
65
+ getComponent();
66
+ var buttons = _testWrapper.screen.getAllByRole('button');
67
+ var heading = _testWrapper.screen.getByRole('group');
68
+ expect(heading).toHaveTextContent('Calendar Range, August to September 2022');
69
+
70
+ // navigation to previous month
71
+ _userEvent["default"].click(buttons[0]);
72
+ expect(heading).toHaveTextContent('Calendar Range, July to August 2022');
73
+
74
+ // navigation to next month
75
+ _userEvent["default"].click(buttons[1]);
76
+ expect(heading).toHaveTextContent('Calendar Range, August to September 2022');
77
+
78
+ // navigation to next month
79
+ _userEvent["default"].click(buttons[1]);
80
+ expect(heading).toHaveTextContent('Calendar Range, September to October 2022');
81
+ });
82
+ test('should be able to select a range of dates', function () {
83
+ getComponent();
84
+ var calendarCells = _testWrapper.screen.queryAllByRole('gridcell');
85
+ var startCell = calendarCells[7];
86
+ var endCell = calendarCells[13];
87
+ _userEvent["default"].click(startCell);
88
+ _userEvent["default"].click(endCell);
89
+ var selectedCells = _testWrapper.screen.getAllByRole('gridcell', {
90
+ selected: true
91
+ });
92
+ expect(selectedCells).toHaveLength(7);
93
+ });
94
+ test('should disable unavailable dates', function () {
95
+ getComponent({
96
+ isDateUnavailable: isDateUnavailable
97
+ });
98
+ var calendarCells = _testWrapper.screen.queryAllByRole('gridcell');
99
+ var unavailableCells = (0, _slice["default"])(calendarCells).call(calendarCells, 10, 16);
100
+ (0, _forEach["default"])(unavailableCells).call(unavailableCells, function (cell) {
101
+ expect(cell).toHaveAttribute('aria-disabled', 'true');
102
+ });
103
+ });
104
+ test('allows users to select and navigate through calendar items', function () {
105
+ getComponent();
106
+ var buttons = _testWrapper.screen.queryAllByRole('button');
107
+ (0, _testWrapper.act)(function () {
108
+ buttons[4].focus();
109
+ });
110
+ expect(buttons[4]).toHaveFocus();
111
+ _testWrapper.fireEvent.keyDown(buttons[4], {
112
+ key: 'ArrowRight'
113
+ });
114
+ expect(buttons[5]).toHaveFocus();
115
+ _testWrapper.fireEvent.keyDown(buttons[5], {
116
+ key: 'ArrowLeft'
117
+ });
118
+ expect(buttons[4]).toHaveFocus();
119
+ _testWrapper.fireEvent.keyDown(buttons[4], {
120
+ key: 'ArrowDown'
121
+ });
122
+ expect(buttons[11]).toHaveFocus();
123
+ _testWrapper.fireEvent.keyDown(buttons[11], {
124
+ key: 'ArrowUp'
125
+ });
126
+ expect(buttons[4]).toHaveFocus();
127
+ _testWrapper.fireEvent.keyDown(buttons[4], {
128
+ key: 'Enter'
129
+ });
130
+ _testWrapper.fireEvent.keyUp(buttons[4], {
131
+ key: 'Enter'
132
+ });
133
+ expect(buttons[5]).toHaveFocus();
134
+ });
135
+ test('readonly calendar', function () {
136
+ getComponent({
137
+ isReadOnly: true
138
+ });
139
+ var calendars = _testWrapper.screen.queryAllByRole('grid');
140
+ expect(calendars).toHaveLength(2);
141
+ (0, _forEach["default"])(calendars).call(calendars, function (calendar) {
142
+ expect(calendar).toHaveAttribute('aria-readonly', 'true');
143
+ });
144
+ var buttons = _testWrapper.screen.queryAllByRole('button');
145
+ _userEvent["default"].click(buttons[12]);
146
+ expect(buttons[12]).not.toHaveClass('is-selected');
147
+ });
148
+ test('dates before minimum date cannot be selected', function () {
149
+ var onChange = jest.fn();
150
+ var defaultValue = {
151
+ start: '2022-08-10',
152
+ end: '2022-08-15'
153
+ };
154
+ getComponent({
155
+ onChange: onChange,
156
+ minValue: '2022-08-06',
157
+ defaultValue: defaultValue
158
+ });
159
+ var buttons = _testWrapper.screen.queryAllByRole('button');
160
+ _userEvent["default"].click(buttons[2]);
161
+ expect(buttons[2]).not.toHaveClass('is-selected');
162
+ expect(onChange).not.toHaveBeenCalled();
163
+ });
164
+ test('dates past maxiumum date cannot be selected', function () {
165
+ var onChange = jest.fn();
166
+ var defaultValue = {
167
+ start: new _date.CalendarDate(2022, 8, 10),
168
+ end: new _date.CalendarDate(2022, 8, 15)
169
+ };
170
+ getComponent({
171
+ onChange: onChange,
172
+ maxValue: '2022-08-20',
173
+ defaultValue: defaultValue
174
+ });
175
+ var buttons = _testWrapper.screen.queryAllByRole('button');
176
+ _userEvent["default"].click(buttons[55]);
177
+ expect(buttons[55]).not.toHaveClass('is-selected');
178
+ expect(onChange).not.toHaveBeenCalled();
179
+ });
180
+ test('should autofocus on current day with hasAutoFocus', function () {
181
+ var _context;
182
+ getComponent({
183
+ hasAutoFocus: true,
184
+ defaultValue: null
185
+ });
186
+ var dateToday = (0, _date.today)((0, _date.getLocalTimeZone)());
187
+ var day = dateToday.day;
188
+ var focusedDay = (0, _filter["default"])(_context = _testWrapper.screen.queryAllByText(day)).call(_context, function (cell) {
189
+ return cell.getAttribute('aria-disabled') !== 'true';
190
+ });
191
+ expect(focusedDay[0]).toHaveTextContent(day.toString());
192
+ expect(focusedDay[0]).toHaveFocus();
193
+ });
194
+ test('parseDateRangeIfString should correctly parse string or DateValue inputs', function () {
195
+ var value1 = {
196
+ start: '2022-08-01',
197
+ end: '2022-08-07'
198
+ };
199
+ var value2 = {
200
+ start: new _date.CalendarDate(2022, 8, 10),
201
+ end: new _date.CalendarDate(2022, 8, 15)
202
+ };
203
+ var result1 = (0, _RangeCalendar.parseDateRangeIfString)(value1);
204
+ var result2 = (0, _RangeCalendar.parseDateRangeIfString)(value2);
205
+ expect(result1.start).toEqual(new _date.CalendarDate(2022, 8, 1));
206
+ expect(result1.end).toEqual(new _date.CalendarDate(2022, 8, 7));
207
+ expect(result2.start).toEqual(new _date.CalendarDate(2022, 8, 10));
208
+ expect(result2.end).toEqual(new _date.CalendarDate(2022, 8, 15));
209
+ });
210
+ test('parseDateIfString should correctly parse string or DateValue inputs', function () {
211
+ var value1 = '2022-08-01';
212
+ var value2 = new _date.CalendarDate(2022, 8, 10);
213
+ var result1 = (0, _RangeCalendar.parseDateIfString)(value1);
214
+ var result2 = (0, _RangeCalendar.parseDateIfString)(value2);
215
+ expect(result1).toEqual(new _date.CalendarDate(2022, 8, 1));
216
+ expect(result2).toEqual(new _date.CalendarDate(2022, 8, 10));
217
+ });
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { RangeCalendarCellProps } from '../../types';
3
+ declare const RangeCalendarCell: React.ForwardRefExoticComponent<RangeCalendarCellProps & React.RefAttributes<HTMLDivElement>>;
4
+ export default RangeCalendarCell;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _date = require("@internationalized/date");
16
+ var _calendar = require("@react-aria/calendar");
17
+ var _focus = require("@react-aria/focus");
18
+ var _interactions = require("@react-aria/interactions");
19
+ var _utils = require("@react-aria/utils");
20
+ var _hooks = require("../../hooks");
21
+ var _index = require("../../index");
22
+ var _react2 = require("@emotion/react");
23
+ var _excluded = ["state", "date", "currentMonth", "className"];
24
+ 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); }
25
+ 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; }
26
+ var RangeCalendarCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
27
+ var state = props.state,
28
+ date = props.date,
29
+ currentMonth = props.currentMonth,
30
+ className = props.className,
31
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
32
+ var cellRef = (0, _hooks.useLocalOrForwardRef)(ref);
33
+ var _useCalendarCell = (0, _calendar.useCalendarCell)({
34
+ date: date
35
+ }, state, cellRef),
36
+ cellProps = _useCalendarCell.cellProps,
37
+ buttonProps = _useCalendarCell.buttonProps,
38
+ isSelected = _useCalendarCell.isSelected,
39
+ isOutsideVisibleRange = _useCalendarCell.isOutsideVisibleRange,
40
+ isUnavailable = _useCalendarCell.isUnavailable,
41
+ formattedDate = _useCalendarCell.formattedDate,
42
+ isDisabled = _useCalendarCell.isDisabled;
43
+ var highlightedRange = state.highlightedRange;
44
+ var isOutsideMonth = !(0, _date.isSameMonth)(currentMonth, date);
45
+
46
+ // The start and end date of the selected range will have
47
+ // an emphasized appearance.
48
+ var isSelectionStart = highlightedRange ? (0, _date.isSameDay)(date, highlightedRange.start) : isSelected;
49
+ var isSelectionEnd = highlightedRange ? (0, _date.isSameDay)(date, highlightedRange.end) : isSelected;
50
+ var _useHover = (0, _interactions.useHover)({}),
51
+ hoverProps = _useHover.hoverProps,
52
+ isHovered = _useHover.isHovered;
53
+ var _usePress = (0, _interactions.usePress)({
54
+ ref: cellRef
55
+ }),
56
+ pressProps = _usePress.pressProps,
57
+ isPressed = _usePress.isPressed;
58
+ var _useFocusRing = (0, _focus.useFocusRing)({
59
+ within: true
60
+ }),
61
+ focusWithinProps = _useFocusRing.focusProps,
62
+ isFocusVisible = _useFocusRing.isFocusVisible;
63
+ var mergedProps = (0, _utils.mergeProps)(cellProps, hoverProps, pressProps, focusWithinProps);
64
+ var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
65
+ isSelected: isSelected,
66
+ isExtreme: isDisabled,
67
+ isUnavailable: isUnavailable,
68
+ isPressed: isPressed,
69
+ isFocused: isFocusVisible,
70
+ isHovered: isHovered,
71
+ isOutsideVisibleRange: isOutsideVisibleRange,
72
+ isCompletelyDisabled: state.isDisabled,
73
+ isRangeEnds: isSelectionStart || isSelectionEnd,
74
+ isStartAndEnd: isSelectionStart && isSelectionEnd,
75
+ isSelectionStart: isSelectionStart,
76
+ isSelectionEnd: isSelectionEnd
77
+ }),
78
+ classNames = _useStatusClasses.classNames;
79
+ return (0, _react2.jsx)(_index.TableCell, (0, _extends2["default"])({}, mergedProps, {
80
+ variant: "rangeCalendar.calendarCell"
81
+ }), (0, _react2.jsx)(_index.Box, {
82
+ style: {
83
+ display: isOutsideMonth ? 'none' : 'flex'
84
+ }
85
+ }, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
86
+ variant: "rangeCalendar.calendarButton",
87
+ ref: cellRef
88
+ }, (0, _utils.mergeProps)(buttonProps, others), {
89
+ isSelected: isSelected,
90
+ isDisabled: isDisabled,
91
+ isUnavailable: isUnavailable,
92
+ className: classNames
93
+ }), formattedDate)));
94
+ });
95
+ var _default = RangeCalendarCell;
96
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { RangeCalendarGridProps } from '../../types/calendar';
3
+ declare const RangeCalendarGrid: (props: RangeCalendarGridProps) => React.JSX.Element;
4
+ export default RangeCalendarGrid;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
11
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
12
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
13
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/keys"));
14
+ var _react = _interopRequireDefault(require("react"));
15
+ var _date = require("@internationalized/date");
16
+ var _calendar = require("@react-aria/calendar");
17
+ var _i18n = require("@react-aria/i18n");
18
+ var _index = require("../../index");
19
+ var _RangeCalendarCell = _interopRequireDefault(require("./RangeCalendarCell"));
20
+ var _react2 = require("@emotion/react");
21
+ var RangeCalendarGrid = function RangeCalendarGrid(props) {
22
+ var _context2, _context3;
23
+ var state = props.state,
24
+ _props$offset = props.offset,
25
+ offset = _props$offset === void 0 ? {} : _props$offset;
26
+ var visibleRange = state.visibleRange,
27
+ getDatesInWeek = state.getDatesInWeek;
28
+ var _useLocale = (0, _i18n.useLocale)(),
29
+ locale = _useLocale.locale;
30
+ var startDate = visibleRange.start.add(offset);
31
+ var endDate = (0, _date.endOfMonth)(startDate);
32
+ var _useCalendarGrid = (0, _calendar.useCalendarGrid)({
33
+ startDate: startDate,
34
+ endDate: endDate
35
+ }, state),
36
+ gridProps = _useCalendarGrid.gridProps,
37
+ headerProps = _useCalendarGrid.headerProps,
38
+ weekDays = _useCalendarGrid.weekDays;
39
+ var weeksInMonth = (0, _date.getWeeksInMonth)(startDate, locale);
40
+ var getKey = function getKey(day, index) {
41
+ var _context;
42
+ return (0, _concat["default"])(_context = "".concat(day, "-")).call(_context, index);
43
+ };
44
+ return (0, _react2.jsx)(_index.Table, (0, _extends2["default"])({}, gridProps, {
45
+ role: "grid"
46
+ }), (0, _react2.jsx)(_index.TableHead, headerProps, (0, _react2.jsx)(_index.TableRow, null, (0, _map["default"])(weekDays).call(weekDays, function (day, index) {
47
+ return (0, _react2.jsx)(_index.TableCell, {
48
+ isHeading: true,
49
+ variant: "rangeCalendar.columnHeader",
50
+ key: getKey(day, index),
51
+ role: "columnheader"
52
+ }, day);
53
+ }))), (0, _react2.jsx)(_index.TableBody, {
54
+ variant: "rangeCalendar.calendarBody"
55
+ }, (0, _map["default"])(_context2 = (0, _from["default"])((0, _keys["default"])(_context3 = Array(weeksInMonth)).call(_context3))).call(_context2, function (weekIndex) {
56
+ var _context4;
57
+ return (0, _react2.jsx)(_index.TableRow, {
58
+ key: weekIndex
59
+ }, (0, _map["default"])(_context4 = getDatesInWeek(weekIndex, startDate)).call(_context4, function (date) {
60
+ return (date === null || date === void 0 ? void 0 : date.day) && (0, _react2.jsx)(_RangeCalendarCell["default"], {
61
+ key: date.toString(),
62
+ state: state,
63
+ date: date,
64
+ currentMonth: startDate
65
+ });
66
+ }));
67
+ })));
68
+ };
69
+ var _default = RangeCalendarGrid;
70
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { RangeCalendarHeaderProps } from '../../types';
3
+ declare const RangeCalendarHeader: React.FC<RangeCalendarHeaderProps>;
4
+ export default RangeCalendarHeader;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _ChevronLeftIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronLeftIcon"));
12
+ var _ChevronRightIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronRightIcon"));
13
+ var _i18n = require("@react-aria/i18n");
14
+ var _visuallyHidden = require("@react-aria/visually-hidden");
15
+ var _index = require("../../index");
16
+ var _react2 = require("@emotion/react");
17
+ var RangeCalendarHeader = function RangeCalendarHeader(props) {
18
+ var state = props.state,
19
+ calendarProps = props.calendarProps,
20
+ prevButtonProps = props.prevButtonProps,
21
+ nextButtonProps = props.nextButtonProps;
22
+ var monthDateFormatter = (0, _i18n.useDateFormatter)({
23
+ month: 'long',
24
+ year: 'numeric',
25
+ timeZone: state.timeZone
26
+ });
27
+
28
+ // to remove warning for unknown event handler property `onFocusChange`.
29
+ delete prevButtonProps.onFocusChange;
30
+ delete nextButtonProps.onFocusChange;
31
+ return (0, _react2.jsx)(_index.Box, {
32
+ variant: "rangeCalendar.calendarHeaderContainer",
33
+ isRow: true
34
+ }, (0, _react2.jsx)(_visuallyHidden.VisuallyHidden, {
35
+ "aria-live": "assertive"
36
+ }, (0, _react2.jsx)(_index.Text, null, calendarProps['aria-label'])), (0, _react2.jsx)(_index.Box, {
37
+ isRow: true,
38
+ variant: "rangeCalendar.calendarHeader"
39
+ }, (0, _react2.jsx)(_index.Box, {
40
+ style: {
41
+ position: 'absolute',
42
+ left: '10px'
43
+ }
44
+ }, (0, _react2.jsx)(_index.IconButton, (0, _extends2["default"])({}, prevButtonProps, {
45
+ "aria-label": "Previous month navigation"
46
+ }), (0, _react2.jsx)(_index.Icon, {
47
+ icon: _ChevronLeftIcon["default"],
48
+ size: 25,
49
+ title: {
50
+ name: 'Chevron Left Icon'
51
+ }
52
+ }))), (0, _react2.jsx)(_index.Text, {
53
+ "aria-hidden": true,
54
+ variant: "itemTitle",
55
+ role: "heading",
56
+ "aria-level": 3,
57
+ fontWeight: 3
58
+ }, monthDateFormatter.format(state.visibleRange.start.toDate(state.timeZone)))), (0, _react2.jsx)(_index.Box, {
59
+ isRow: true,
60
+ variant: "rangeCalendar.calendarHeader"
61
+ }, (0, _react2.jsx)(_index.Text, {
62
+ "aria-hidden": true,
63
+ variant: "itemTitle",
64
+ role: "heading",
65
+ "aria-level": 3,
66
+ fontWeight: 3
67
+ }, monthDateFormatter.format(state.visibleRange.start.add({
68
+ months: 1
69
+ }).toDate(state.timeZone))), (0, _react2.jsx)(_index.Box, {
70
+ style: {
71
+ position: 'absolute',
72
+ right: '10px'
73
+ }
74
+ }, (0, _react2.jsx)(_index.IconButton, (0, _extends2["default"])({}, nextButtonProps, {
75
+ "aria-label": "Next month navigation"
76
+ }), (0, _react2.jsx)(_index.Icon, {
77
+ icon: _ChevronRightIcon["default"],
78
+ size: 25,
79
+ title: {
80
+ name: 'Chevron Right Icon'
81
+ }
82
+ })))));
83
+ };
84
+ var _default = RangeCalendarHeader;
85
+ exports["default"] = _default;
@@ -0,0 +1,2 @@
1
+ export { default } from './RangeCalendar';
2
+ export * from './RangeCalendar';
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _context;
4
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
9
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
10
+ _Object$defineProperty(exports, "__esModule", {
11
+ value: true
12
+ });
13
+ var _exportNames = {};
14
+ _Object$defineProperty(exports, "default", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _RangeCalendar["default"];
18
+ }
19
+ });
20
+ var _RangeCalendar = _interopRequireWildcard(require("./RangeCalendar"));
21
+ _forEachInstanceProperty(_context = _Object$keys(_RangeCalendar)).call(_context, function (key) {
22
+ if (key === "default" || key === "__esModule") return;
23
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
24
+ if (key in exports && exports[key] === _RangeCalendar[key]) return;
25
+ _Object$defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _RangeCalendar[key];
29
+ }
30
+ });
31
+ });
32
+ 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); }
33
+ 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; }
@@ -130,6 +130,8 @@ export { default as RadioField } from './components/RadioField';
130
130
  export * from './components/RadioField';
131
131
  export { default as RadioGroupField } from './components/RadioGroupField';
132
132
  export * from './components/RadioGroupField';
133
+ export { default as RangeCalendar } from './components/RangeCalendar';
134
+ export * from './components/RangeCalendar';
133
135
  export { default as RequirementsList } from './components/RequirementsList';
134
136
  export * from './components/RequirementsList';
135
137
  export { default as RockerButton } from './components/RockerButton';