@zendeskgarden/react-datepickers 9.0.0-next.2 → 9.0.0-next.20

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 (47) hide show
  1. package/README.md +2 -2
  2. package/dist/esm/elements/DatePicker/DatePicker.js +169 -0
  3. package/dist/esm/elements/DatePicker/components/Calendar.js +125 -0
  4. package/dist/esm/elements/DatePicker/components/Input.js +75 -0
  5. package/dist/esm/elements/DatePicker/components/MonthSelector.js +61 -0
  6. package/dist/esm/elements/DatePicker/utils/date-picker-reducer.js +187 -0
  7. package/dist/esm/elements/DatePicker/utils/useDatePickerContext.js +14 -0
  8. package/dist/esm/elements/DatePickerRange/DatePickerRange.js +101 -0
  9. package/dist/esm/elements/DatePickerRange/components/Calendar.js +42 -0
  10. package/dist/esm/elements/DatePickerRange/components/End.js +79 -0
  11. package/dist/esm/elements/DatePickerRange/components/Month.js +270 -0
  12. package/dist/esm/elements/DatePickerRange/components/Start.js +79 -0
  13. package/dist/esm/elements/DatePickerRange/utils/date-picker-range-reducer.js +319 -0
  14. package/dist/esm/elements/DatePickerRange/utils/useDatePickerRangeContext.js +14 -0
  15. package/dist/esm/index.js +8 -0
  16. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-left-stroke.svg.js +25 -0
  17. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-right-stroke.svg.js +25 -0
  18. package/dist/esm/styled/StyledCalendar.js +22 -0
  19. package/dist/esm/styled/StyledCalendarItem.js +35 -0
  20. package/dist/esm/styled/StyledDatePicker.js +40 -0
  21. package/dist/esm/styled/StyledDay.js +95 -0
  22. package/dist/esm/styled/StyledDayLabel.js +22 -0
  23. package/dist/esm/styled/StyledHeader.js +22 -0
  24. package/dist/esm/styled/StyledHeaderLabel.js +22 -0
  25. package/dist/esm/styled/StyledHeaderPaddle.js +71 -0
  26. package/dist/esm/styled/StyledHighlight.js +56 -0
  27. package/dist/esm/styled/StyledMenu.js +22 -0
  28. package/dist/esm/styled/StyledMenuWrapper.js +29 -0
  29. package/dist/esm/styled/StyledRangeCalendar.js +23 -0
  30. package/dist/esm/types/index.js +12 -0
  31. package/dist/esm/utils/calendar-utils.js +88 -0
  32. package/dist/index.cjs.js +240 -156
  33. package/dist/typings/elements/DatePicker/utils/date-picker-reducer.d.ts +4 -4
  34. package/dist/typings/elements/DatePickerRange/utils/date-picker-range-reducer.d.ts +4 -4
  35. package/dist/typings/styled/StyledCalendar.d.ts +3 -2
  36. package/dist/typings/styled/StyledCalendarItem.d.ts +4 -3
  37. package/dist/typings/styled/StyledDatePicker.d.ts +3 -2
  38. package/dist/typings/styled/StyledDay.d.ts +5 -5
  39. package/dist/typings/styled/StyledDayLabel.d.ts +3 -2
  40. package/dist/typings/styled/StyledHeader.d.ts +3 -2
  41. package/dist/typings/styled/StyledHeaderLabel.d.ts +3 -2
  42. package/dist/typings/styled/StyledHeaderPaddle.d.ts +7 -4
  43. package/dist/typings/styled/StyledHighlight.d.ts +5 -4
  44. package/dist/typings/styled/StyledMenuWrapper.d.ts +4 -4
  45. package/dist/typings/styled/StyledRangeCalendar.d.ts +2 -1
  46. package/package.json +8 -8
  47. package/dist/index.esm.js +0 -1683
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import styled, { css } from 'styled-components';
8
+ import { retrieveComponentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming';
9
+
10
+ const sizeStyles = _ref => {
11
+ let {
12
+ $isCompact,
13
+ theme
14
+ } = _ref;
15
+ const iconSize = theme.iconSizes.md;
16
+ const size = theme.space.base * ($isCompact ? 8 : 10);
17
+ return css(["width:", "px;height:", "px;svg{width:", ";height:", ";}"], size, size, iconSize, iconSize);
18
+ };
19
+ const colorStyles = _ref2 => {
20
+ let {
21
+ theme
22
+ } = _ref2;
23
+ const foreground = getColor({
24
+ variable: 'foreground.subtle',
25
+ theme
26
+ });
27
+ const foregroundHover = getColor({
28
+ variable: 'foreground.subtle',
29
+ light: {
30
+ offset: 100
31
+ },
32
+ dark: {
33
+ offset: -100
34
+ },
35
+ theme
36
+ });
37
+ const backgroundHover = getColor({
38
+ variable: 'background.primaryEmphasis',
39
+ theme,
40
+ transparency: theme.opacity[100]
41
+ });
42
+ const foregroundActive = getColor({
43
+ variable: 'foreground.subtle',
44
+ light: {
45
+ offset: 200
46
+ },
47
+ dark: {
48
+ offset: -200
49
+ },
50
+ theme
51
+ });
52
+ const backgroundActive = getColor({
53
+ variable: 'background.primaryEmphasis',
54
+ theme,
55
+ transparency: theme.opacity[200]
56
+ });
57
+ return css(["color:", ";:hover{background-color:", ";color:", ";}:active{background-color:", ";color:", ";}"], foreground, backgroundHover, foregroundHover, backgroundActive, foregroundActive);
58
+ };
59
+ const COMPONENT_ID = 'datepickers.header_paddle';
60
+ const StyledHeaderPaddle = styled.div.attrs({
61
+ 'data-garden-id': COMPONENT_ID,
62
+ 'data-garden-version': '9.0.0-next.20'
63
+ }).withConfig({
64
+ displayName: "StyledHeaderPaddle",
65
+ componentId: "sc-2oqh0g-0"
66
+ })(["display:flex;align-items:center;justify-content:center;transform:", ";border-radius:50%;cursor:pointer;&[aria-hidden]{visibility:hidden;}", " ", " ", ";"], props => props.theme.rtl && 'rotate(180deg)', sizeStyles, colorStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
67
+ StyledHeaderPaddle.defaultProps = {
68
+ theme: DEFAULT_THEME
69
+ };
70
+
71
+ export { StyledHeaderPaddle };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import styled, { css } from 'styled-components';
8
+ import { retrieveComponentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming';
9
+
10
+ const COMPONENT_ID = 'datepickers.highlight';
11
+ const sizeStyles = _ref => {
12
+ let {
13
+ theme,
14
+ $isEnd,
15
+ $isStart
16
+ } = _ref;
17
+ let borderRadius;
18
+ const startValue = '0 50% 50% 0;';
19
+ const endValue = '50% 0 0 50%;';
20
+ if (theme.rtl) {
21
+ if ($isStart) {
22
+ borderRadius = startValue;
23
+ } else if ($isEnd) {
24
+ borderRadius = endValue;
25
+ }
26
+ }
27
+ if ($isStart) {
28
+ borderRadius = endValue;
29
+ } else if ($isEnd) {
30
+ borderRadius = startValue;
31
+ }
32
+ return css(["border-radius:", ";width:100%;height:100%;"], borderRadius);
33
+ };
34
+ const colorStyles = _ref2 => {
35
+ let {
36
+ $isHighlighted,
37
+ theme
38
+ } = _ref2;
39
+ return css(["background-color:", ";"], $isHighlighted && getColor({
40
+ variable: 'background.primaryEmphasis',
41
+ transparency: theme.opacity[100],
42
+ theme
43
+ }));
44
+ };
45
+ const StyledHighlight = styled.div.attrs({
46
+ 'data-garden-id': COMPONENT_ID,
47
+ 'data-garden-version': '9.0.0-next.20'
48
+ }).withConfig({
49
+ displayName: "StyledHighlight",
50
+ componentId: "sc-16vr32x-0"
51
+ })(["position:absolute;top:0;left:0;", " ", " ", ";"], sizeStyles, colorStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
52
+ StyledHighlight.defaultProps = {
53
+ theme: DEFAULT_THEME
54
+ };
55
+
56
+ export { StyledHighlight };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import styled from 'styled-components';
8
+ import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
9
+
10
+ const COMPONENT_ID = 'datepickers.menu';
11
+ const StyledMenu = styled.div.attrs({
12
+ 'data-garden-id': COMPONENT_ID,
13
+ 'data-garden-version': '9.0.0-next.20'
14
+ }).withConfig({
15
+ displayName: "StyledMenu",
16
+ componentId: "sc-1npbkk0-0"
17
+ })(["", ";"], props => retrieveComponentStyles(COMPONENT_ID, props));
18
+ StyledMenu.defaultProps = {
19
+ theme: DEFAULT_THEME
20
+ };
21
+
22
+ export { StyledMenu };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import styled from 'styled-components';
8
+ import { menuStyles, getMenuPosition, retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
9
+
10
+ const COMPONENT_ID = 'datepickers.menu_wrapper';
11
+ const StyledMenuWrapper = styled.div.attrs(props => ({
12
+ 'data-garden-id': COMPONENT_ID,
13
+ 'data-garden-version': '9.0.0-next.20',
14
+ className: props.$isAnimated && 'is-animated'
15
+ })).withConfig({
16
+ displayName: "StyledMenuWrapper",
17
+ componentId: "sc-6fowoz-0"
18
+ })(["top:0;left:0;", ";", ";"], props => menuStyles(getMenuPosition(props.$placement), {
19
+ theme: props.theme,
20
+ hidden: props['aria-hidden'],
21
+ margin: `${props.theme.space.base}px`,
22
+ zIndex: props.$zIndex,
23
+ animationModifier: props.$isAnimated ? '.is-animated' : undefined
24
+ }), props => retrieveComponentStyles(COMPONENT_ID, props));
25
+ StyledMenuWrapper.defaultProps = {
26
+ theme: DEFAULT_THEME
27
+ };
28
+
29
+ export { StyledMenuWrapper };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import styled from 'styled-components';
8
+ import { StyledDatePicker } from './StyledDatePicker.js';
9
+ import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
10
+
11
+ const COMPONENT_ID = 'datepickers.range_calendar';
12
+ const StyledRangeCalendar = styled.div.attrs({
13
+ 'data-garden-id': COMPONENT_ID,
14
+ 'data-garden-version': '9.0.0-next.20'
15
+ }).withConfig({
16
+ displayName: "StyledRangeCalendar",
17
+ componentId: "sc-1og46sy-0"
18
+ })(["display:flex;overflow:auto;", "{margin:0;", "}", ";"], StyledDatePicker, props => props.theme.rtl ? `&:last-of-type {margin-right: ${props.theme.space.base * 5}px}` : `&:first-of-type {margin-right: ${props.theme.space.base * 5}px}`, props => retrieveComponentStyles(COMPONENT_ID, props));
19
+ StyledRangeCalendar.defaultProps = {
20
+ theme: DEFAULT_THEME
21
+ };
22
+
23
+ export { StyledRangeCalendar };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import { PLACEMENT as PLACEMENT$1 } from '@zendeskgarden/react-theming';
8
+
9
+ const WEEK_STARTS_ON = [0, 1, 2, 3, 4, 5, 6];
10
+ const PLACEMENT = ['auto', ...PLACEMENT$1];
11
+
12
+ export { PLACEMENT, WEEK_STARTS_ON };
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ const REGION_MAPPINGS = {
8
+ 'ar-DZ': 0,
9
+ 'ar-SA': 0,
10
+ 'en-CA': 0,
11
+ 'en-GB': 1,
12
+ 'en-US': 0,
13
+ 'fa-IR': 0,
14
+ 'fr-CH': 1,
15
+ 'nl-BE': 1,
16
+ 'pt-BR': 0,
17
+ 'zh-CN': 1,
18
+ 'zh-TW': 1
19
+ };
20
+ const LANGUAGE_MAPPINGS = {
21
+ af: 0,
22
+ ar: 6,
23
+ be: 1,
24
+ bg: 1,
25
+ bn: 0,
26
+ ca: 1,
27
+ cs: 1,
28
+ da: 1,
29
+ de: 1,
30
+ el: 1,
31
+ en: 0,
32
+ eo: 1,
33
+ es: 1,
34
+ et: 1,
35
+ fa: 0,
36
+ fi: 1,
37
+ fil: 0,
38
+ fr: 1,
39
+ gl: 1,
40
+ he: 0,
41
+ hr: 1,
42
+ hu: 1,
43
+ id: 1,
44
+ is: 1,
45
+ it: 1,
46
+ ja: 1,
47
+ ka: 1,
48
+ ko: 0,
49
+ lt: 1,
50
+ lv: 1,
51
+ mk: 1,
52
+ ms: 1,
53
+ nb: 1,
54
+ nl: 1,
55
+ nn: 1,
56
+ pl: 1,
57
+ pt: 0,
58
+ ro: 1,
59
+ ru: 1,
60
+ sk: 1,
61
+ sl: 1,
62
+ sr: 1,
63
+ sv: 1,
64
+ th: 1,
65
+ tr: 1,
66
+ ug: 0,
67
+ uk: 1,
68
+ vi: 1,
69
+ zh: 1
70
+ };
71
+ function getStartOfWeek(locale) {
72
+ if (!locale) {
73
+ return 0;
74
+ }
75
+ for (const region in REGION_MAPPINGS) {
76
+ if (locale.startsWith(region)) {
77
+ return REGION_MAPPINGS[region];
78
+ }
79
+ }
80
+ for (const language in LANGUAGE_MAPPINGS) {
81
+ if (locale.startsWith(language)) {
82
+ return LANGUAGE_MAPPINGS[language];
83
+ }
84
+ }
85
+ return 0;
86
+ }
87
+
88
+ export { getStartOfWeek };