intelicoreact 0.0.2 → 0.0.6

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 (208) hide show
  1. package/.eslintignore +10 -0
  2. package/.eslintrc.json +93 -0
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +145 -0
  4. package/dist/Atomic/FormElements/Calendar/Calendar.scss +543 -0
  5. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +33 -0
  6. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +3 -5
  7. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +2 -5
  8. package/dist/Atomic/FormElements/DateTime/DateTime.stories.js +1 -3
  9. package/dist/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -2
  10. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +19 -19
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +8 -3
  12. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +20 -7
  13. package/dist/Atomic/FormElements/Header/Header.js +9 -11
  14. package/dist/Atomic/FormElements/Header/Header.scss +16 -5
  15. package/dist/Atomic/FormElements/Header/Header.stories.js +0 -2
  16. package/dist/Atomic/FormElements/Input/Input.js +94 -102
  17. package/dist/Atomic/FormElements/Input/Input.scss +26 -19
  18. package/dist/Atomic/FormElements/Input/Input.stories.js +42 -27
  19. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +89 -0
  20. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +46 -0
  21. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +238 -0
  22. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +468 -0
  23. package/dist/Atomic/FormElements/InputDateRange/components/InputDateRange.js +248 -0
  24. package/dist/Atomic/FormElements/InputDateRange/components/InputDateRange.scss +598 -0
  25. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +147 -0
  26. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +38 -0
  27. package/dist/Atomic/FormElements/InputDateRange/index.js +248 -0
  28. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +30 -7
  29. package/dist/Atomic/FormElements/InputsRow/InputsRow.scss +1 -3
  30. package/dist/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -2
  31. package/dist/Atomic/FormElements/Label/Label.js +5 -14
  32. package/dist/Atomic/FormElements/Label/Label.scss +3 -3
  33. package/dist/Atomic/FormElements/Label/Label.stories.js +5 -6
  34. package/dist/Atomic/FormElements/Modal/Modal.js +5 -7
  35. package/dist/Atomic/FormElements/Modal/Modal.scss +61 -7
  36. package/dist/Atomic/FormElements/Modal/Modal.stories.js +64 -18
  37. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +3 -5
  38. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.scss +1 -3
  39. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -2
  40. package/dist/Atomic/FormElements/NavLine/NavLine.js +2 -2
  41. package/dist/Atomic/FormElements/NavLine/NavLine.scss +4 -6
  42. package/dist/Atomic/FormElements/NavLine/NavLine.stories.js +21 -13
  43. package/dist/Atomic/FormElements/RadioInput/RadioInput.scss +1 -1
  44. package/dist/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -2
  45. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +162 -0
  46. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  47. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +81 -0
  48. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -2
  49. package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -1
  50. package/dist/Atomic/FormElements/Switcher/Switcher.scss +1 -1
  51. package/dist/Atomic/FormElements/Switcher/Switcher.stories.js +0 -2
  52. package/dist/Atomic/FormElements/Table/Partials/TdCell.js +1 -1
  53. package/dist/Atomic/FormElements/Table/Partials/TdHeader.js +2 -2
  54. package/dist/Atomic/FormElements/Table/TdTypes/TdActions.js +5 -5
  55. package/dist/Atomic/FormElements/Table/TdTypes/TdPriority.js +3 -3
  56. package/dist/Atomic/FormElements/Table/TdTypes/TdTypes.scss +4 -6
  57. package/dist/Atomic/FormElements/Table/TdTypes/TdWeight.js +2 -2
  58. package/dist/Atomic/FormElements/Tag/Tag.js +2 -2
  59. package/dist/Atomic/FormElements/Tag/Tag.scss +1 -1
  60. package/dist/Atomic/FormElements/Tag/Tag.stories.js +0 -2
  61. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +3 -3
  62. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +1 -1
  63. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -2
  64. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +1 -1
  65. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -2
  66. package/dist/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  67. package/dist/Atomic/FormElements/Textarea/Textarea.stories.js +0 -2
  68. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -1
  69. package/dist/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -2
  70. package/dist/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.js +5 -5
  71. package/dist/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.scss +2 -2
  72. package/dist/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.stories.js +11 -11
  73. package/dist/Atomic/UI/Accordion/Accordion.js +2 -2
  74. package/dist/Atomic/UI/Accordion/Accordion.stories.js +4 -4
  75. package/dist/Atomic/UI/Accordion/AccordionItem.js +3 -3
  76. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +3 -3
  77. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +4 -3
  78. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.scss +3 -5
  79. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -3
  80. package/dist/Atomic/UI/Alert/Alert.js +7 -4
  81. package/dist/Atomic/UI/Alert/Alert.scss +7 -0
  82. package/dist/Atomic/UI/Alert/Alert.stories.js +1 -3
  83. package/dist/Atomic/UI/Arrow/Arrow.js +80 -0
  84. package/dist/Atomic/UI/Arrow/Arrow.scss +22 -0
  85. package/dist/Atomic/UI/Arrow/Arrow.stories.js +46 -0
  86. package/dist/Atomic/UI/Button/Button.js +10 -19
  87. package/dist/Atomic/UI/Button/Button.scss +69 -41
  88. package/dist/Atomic/UI/Button/Button.stories.js +9 -25
  89. package/dist/Atomic/UI/Calendar/Calendar.js +145 -0
  90. package/dist/Atomic/UI/Calendar/Calendar.scss +544 -0
  91. package/dist/Atomic/UI/Calendar/Calendar.stories.js +37 -0
  92. package/dist/Atomic/UI/Header/partials/default_ava.png +0 -0
  93. package/dist/Atomic/{FormElements → UI}/Hint/Hint.js +8 -13
  94. package/{src/Atomic/FormElements → dist/Atomic/UI}/Hint/Hint.scss +8 -12
  95. package/dist/Atomic/{FormElements → UI}/Hint/Hint.stories.js +3 -4
  96. package/dist/Atomic/UI/Price/Price.js +33 -0
  97. package/dist/Atomic/UI/Price/Price.stories.js +42 -0
  98. package/dist/Atomic/{FormElements → UI}/Status/Status.js +4 -6
  99. package/dist/Atomic/{FormElements → UI}/Status/Status.scss +0 -0
  100. package/dist/Atomic/{FormElements → UI}/Status/Status.stories.js +4 -3
  101. package/dist/Functions/useClickOutside.js +25 -0
  102. package/dist/Functions/utils.js +10 -2
  103. package/dist/Molecular/FormElements/FormElement.js +40 -0
  104. package/dist/Molecular/FormElements/FormElement.scss +8 -0
  105. package/dist/Molecular/FormElements/FormElement.stories.js +73 -0
  106. package/dist/scss/main.scss +2 -2
  107. package/package.json +10 -6
  108. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +3 -5
  109. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +3 -5
  110. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +1 -3
  111. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -2
  112. package/src/Atomic/FormElements/Dropdown/Dropdown.js +12 -8
  113. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +8 -3
  114. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +15 -7
  115. package/src/Atomic/FormElements/Header/Header.js +9 -10
  116. package/src/Atomic/FormElements/Header/Header.scss +16 -5
  117. package/src/Atomic/FormElements/Header/Header.stories.js +0 -2
  118. package/src/Atomic/FormElements/Input/Input.js +79 -73
  119. package/src/Atomic/FormElements/Input/Input.scss +26 -19
  120. package/src/Atomic/FormElements/Input/Input.stories.js +28 -29
  121. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +43 -0
  122. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +27 -0
  123. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +142 -0
  124. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +394 -0
  125. package/src/Atomic/FormElements/InputDateRange/components/InputDateRange.js +230 -0
  126. package/src/Atomic/FormElements/InputDateRange/components/InputDateRange.scss +598 -0
  127. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +109 -0
  128. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +22 -0
  129. package/src/Atomic/FormElements/InputDateRange/index.js +157 -0
  130. package/src/Atomic/FormElements/InputsRow/InputsRow.js +28 -5
  131. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +1 -3
  132. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -2
  133. package/src/Atomic/FormElements/Label/Label.js +4 -9
  134. package/src/Atomic/FormElements/Label/Label.scss +3 -3
  135. package/src/Atomic/FormElements/Label/Label.stories.js +6 -6
  136. package/src/Atomic/FormElements/Modal/Modal.js +5 -8
  137. package/src/Atomic/FormElements/Modal/Modal.scss +61 -7
  138. package/src/Atomic/FormElements/Modal/Modal.stories.js +60 -15
  139. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +3 -5
  140. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +1 -3
  141. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +1 -2
  142. package/src/Atomic/FormElements/NavLine/NavLine.js +4 -4
  143. package/src/Atomic/FormElements/NavLine/NavLine.scss +4 -6
  144. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +24 -14
  145. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +1 -1
  146. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -2
  147. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +143 -0
  148. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  149. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +54 -0
  150. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -1
  151. package/src/Atomic/FormElements/Switcher/Switcher.js +1 -1
  152. package/src/Atomic/FormElements/Switcher/Switcher.scss +1 -1
  153. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -2
  154. package/src/Atomic/FormElements/Table/Partials/TdCell.js +1 -1
  155. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +1 -1
  156. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +5 -5
  157. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +3 -3
  158. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +4 -6
  159. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +2 -2
  160. package/src/Atomic/FormElements/Tag/Tag.js +2 -2
  161. package/src/Atomic/FormElements/Tag/Tag.scss +1 -1
  162. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -2
  163. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +3 -3
  164. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +1 -1
  165. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -2
  166. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +1 -1
  167. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -2
  168. package/src/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  169. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -2
  170. package/src/Atomic/FormElements/TimeRange/TimeRange.js +1 -1
  171. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -2
  172. package/src/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.js +5 -5
  173. package/src/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.scss +2 -2
  174. package/src/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.stories.js +11 -11
  175. package/src/Atomic/UI/Accordion/Accordion.js +2 -2
  176. package/src/Atomic/UI/Accordion/Accordion.stories.js +4 -4
  177. package/src/Atomic/UI/Accordion/AccordionItem.js +3 -3
  178. package/src/Atomic/UI/AdvancedTag/AdvTag.js +3 -3
  179. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +3 -3
  180. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +3 -5
  181. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -3
  182. package/src/Atomic/UI/Alert/Alert.js +9 -6
  183. package/src/Atomic/UI/Alert/Alert.scss +7 -0
  184. package/src/Atomic/UI/Alert/Alert.stories.js +1 -3
  185. package/src/Atomic/UI/Arrow/Arrow.js +41 -0
  186. package/src/Atomic/UI/Arrow/Arrow.scss +22 -0
  187. package/src/Atomic/UI/Arrow/Arrow.stories.js +32 -0
  188. package/src/Atomic/UI/Button/Button.js +6 -10
  189. package/src/Atomic/UI/Button/Button.scss +69 -41
  190. package/src/Atomic/UI/Button/Button.stories.js +9 -25
  191. package/src/Atomic/UI/Calendar/Calendar.js +109 -0
  192. package/src/Atomic/UI/Calendar/Calendar.scss +544 -0
  193. package/src/Atomic/UI/Calendar/Calendar.stories.js +23 -0
  194. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  195. package/src/Atomic/{FormElements → UI}/Hint/Hint.js +6 -9
  196. package/{dist/Atomic/FormElements → src/Atomic/UI}/Hint/Hint.scss +8 -12
  197. package/src/Atomic/{FormElements → UI}/Hint/Hint.stories.js +3 -3
  198. package/src/Atomic/UI/Price/Price.js +20 -0
  199. package/src/Atomic/UI/Price/Price.stories.js +30 -0
  200. package/src/Atomic/{FormElements → UI}/Status/Status.js +2 -4
  201. package/src/Atomic/{FormElements → UI}/Status/Status.scss +0 -0
  202. package/src/Atomic/{FormElements → UI}/Status/Status.stories.js +4 -3
  203. package/src/Functions/useClickOutside.js +15 -0
  204. package/src/Functions/utils.js +6 -0
  205. package/src/Molecular/FormElements/FormElement.js +18 -0
  206. package/src/Molecular/FormElements/FormElement.scss +8 -0
  207. package/src/Molecular/FormElements/FormElement.stories.js +59 -0
  208. package/src/scss/main.scss +2 -2
@@ -1,22 +1,21 @@
1
1
  import React from 'react';
2
+ import {Check} from 'react-feather';
2
3
  import Button from './Button';
3
4
 
4
- import '../../../../scss/main.scss';
5
-
6
5
  global.lng = 'en';
7
6
 
8
7
  export default {
9
- title: 'Button',
8
+ title: 'UI/Button',
10
9
  component: Button,
11
10
  argTypes: {
12
11
  variant: {
13
- description: 'string: ["primary", "secondary", "dark-outline"]',
12
+ description: 'string: ["primary", "secondary", "dark-outline", "ellipse-apply", "ellipse-cancel"]',
14
13
  control: {
15
14
  type: 'select',
16
- options: ['primary', 'secondary', 'dark-outline', 'link']
15
+ options: ['primary', 'secondary', 'dark-outline', 'link', 'ellipse-apply', 'ellipse-cancel']
17
16
  }
18
17
  },
19
- text: {
18
+ label: {
20
19
  description: 'string'
21
20
  },
22
21
  disabled: {
@@ -29,25 +28,9 @@ export default {
29
28
  description: 'svg icon code',
30
29
  control: {
31
30
  type: 'select',
32
- options: ['FiCheck', 'FiEdit3', 'FiPlus', 'FiTool', 'FiUploadCloud', 'FiX', 'FiArrowLeft']
31
+ options: ['Check', 'Edit3', 'Plus', 'Tool', 'UploadCloud', 'X', 'ArrowLeft']
33
32
  }
34
33
  }
35
- },
36
- text: {
37
- description: 'string'
38
- },
39
- disabled: {
40
- description: 'boolean'
41
- },
42
- onClick: {
43
- description: 'function'
44
- },
45
- icon: {
46
- description: 'svg icon code',
47
- control: {
48
- type: 'select',
49
- options: ['FiCheck', 'FiEdit3', 'FiPlus', 'FiTool', 'FiUploadCloud', 'FiX']
50
- }
51
34
  }
52
35
  };
53
36
 
@@ -60,6 +43,7 @@ export const ButtonTemplate = Template.bind({});
60
43
  ButtonTemplate.args = {
61
44
  disabled: false,
62
45
  onClick: () => null,
63
- text: 'Button',
64
- icon: 'FiCheck'
46
+ label: 'Button',
47
+ icon: <Check/>,
48
+
65
49
  };
@@ -0,0 +1,109 @@
1
+ import cn from 'classnames';
2
+ import React, { useEffect, useMemo, useState } from 'react';
3
+ import moment from 'moment';
4
+ import { ChevronLeft, ChevronRight } from 'react-feather';
5
+ import './Calendar.scss';
6
+
7
+ export default function (props) {
8
+ const { date, setDate, allowPrev = true, allowNext = true, params } = props;
9
+ const { minDate, maxDate } = params;
10
+ const [days, setDays] = useState({});
11
+ const [showDate, setShowDate] = useState(date);
12
+
13
+ const selectedDay = moment(showDate);
14
+ const isError = 'Invalid date';
15
+
16
+ const title = useMemo(
17
+ () => (selectedDay.format('MMM') === isError ? isError : `${selectedDay.format('MMM')} ${moment(showDate).format('YYYY')}`),
18
+ [date, showDate]
19
+ );
20
+ useEffect(() => {
21
+ const result = {};
22
+ const day = selectedDay.startOf('month');
23
+ const daysInMonth = day.daysInMonth();
24
+ for (let d = 0; d < daysInMonth; d += 1) {
25
+ let week = day.week();
26
+ if (day.month() === 11 && week === 1) week = 53;
27
+ if (day.month() === 0 && week === 53) week = 0;
28
+ if (!Object.prototype.hasOwnProperty.call(result, week)) {
29
+ result[week] = {};
30
+ }
31
+ result[week][day.weekday()] = { date: day.toDate() };
32
+ day.add(1, 'd');
33
+ }
34
+ setDays(result);
35
+ }, [showDate]);
36
+
37
+ const renderDay = (week, dayOfWeek) => {
38
+ const day = days[week][dayOfWeek];
39
+ if (!day) return <div className="calendar__day" />;
40
+ const isFutureDay = day && maxDate ? moment(day.date).isAfter(moment(maxDate || ''), 'day') : moment(day.date).isAfter(moment(), 'day');
41
+ const isBeforeDay = day && moment(day.date).isBefore(moment(minDate || ''), 'day');
42
+
43
+ const classNames = cn(
44
+ 'calendar__day',
45
+ { 'calendar__day--clickable': day },
46
+ { 'calendar__day--disabled': isFutureDay },
47
+ { 'calendar__day--disabled': isBeforeDay },
48
+ { 'calendar__day--selected': moment(date).format() === moment(day.date).format() }
49
+ );
50
+
51
+ return (
52
+ <div
53
+ key={`${week}_${dayOfWeek}`}
54
+ className={classNames}
55
+ onClick={day && !isFutureDay ? () => setDate(moment(day.date).format('L')) : null}
56
+ // onMouseOver={day && !isFutureDay ? () => onHover(day.date) : null}
57
+ // onMouseLeave={() => onHover(null)}
58
+ >
59
+ {day && day.date.getDate()}
60
+ </div>
61
+ );
62
+ };
63
+
64
+ const handlePrev = () => {
65
+ setShowDate(moment(showDate).subtract(1, 'month').format('L'));
66
+ };
67
+
68
+ const handleNext = () => {
69
+ setShowDate(moment(showDate).add(1, 'month').format('L'));
70
+ };
71
+
72
+ return (
73
+ <div className="calendar">
74
+ <div className="calendar-header">
75
+ <div className="calendar-header__prev">
76
+ {allowPrev && (
77
+ <div onClick={handlePrev}>
78
+ <ChevronLeft />
79
+ </div>
80
+ )}
81
+ </div>
82
+ <div className="calendar-header__title">{title}</div>
83
+ <div className="calendar-header__next">
84
+ {allowNext && (
85
+ <div onClick={handleNext}>
86
+ <ChevronRight />
87
+ </div>
88
+ )}
89
+ </div>
90
+ </div>
91
+ <div className="calendar__week">
92
+ {[...Array(7).keys()].map((dayOfWeek) => {
93
+ return (
94
+ <div key={`day-of-week_${dayOfWeek}`} className="calendar__day calendar__day--title">
95
+ {moment().weekday(dayOfWeek).format('dd').charAt(0)}
96
+ </div>
97
+ );
98
+ })}
99
+ </div>
100
+ {Object.keys(days).map((week, index) => (
101
+ <div key={`week_${index}`} className="calendar__week">
102
+ {[...Array(7).keys()].map((dayOfWeek) => (
103
+ <React.Fragment key={`calendar-day--${dayOfWeek}`}>{renderDay(week, dayOfWeek)}</React.Fragment>
104
+ ))}
105
+ </div>
106
+ ))}
107
+ </div>
108
+ );
109
+ }
@@ -0,0 +1,544 @@
1
+ // .form-select-options {
2
+ // position: absolute;
3
+ // font-weight: 400;
4
+ // left: 0;
5
+ // margin-top: 3px;
6
+ // background-color: #fff;
7
+ // box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
8
+ // max-height: 335px;
9
+ // overflow-y: auto;
10
+ // border: 1px solid #e2e5ec;
11
+ // z-index: 7;
12
+
13
+ // &--wide {
14
+ // min-width: 100%;
15
+ // overflow-x: hidden;
16
+ // }
17
+
18
+ // &--short {
19
+ // max-height: 195px;
20
+ // }
21
+
22
+ // &--hoverable {
23
+ // border: none;
24
+ // }
25
+
26
+ // &--options-top {
27
+ // bottom: 100%;
28
+ // box-shadow: 0 -5px 15px rgba(0, 0, 0, 0.15);
29
+ // }
30
+
31
+ // &__item {
32
+ // cursor: pointer;
33
+ // padding: 0 20px 0 30px;
34
+ // user-select: none;
35
+ // white-space: nowrap;
36
+
37
+ // &--active {
38
+ // //background: #f2f2f8 url(/media/images/check.svg) no-repeat center left 9px / 16px;
39
+ // }
40
+
41
+ // &--disabled {
42
+ // pointer-events: none;
43
+ // opacity: 0.3;
44
+ // }
45
+
46
+ // &:hover {
47
+ // background-color: #f2f2f8;
48
+ // }
49
+ // }
50
+
51
+ // &__group-name {
52
+ // cursor: default;
53
+ // padding: 0 20px 0 15px;
54
+ // margin-top: 4px;
55
+ // user-select: none;
56
+ // white-space: nowrap;
57
+ // color: #9aa0b9;
58
+ // font-size: 10px;
59
+ // font-weight: normal;
60
+ // text-transform: uppercase;
61
+ // }
62
+ // }
63
+
64
+ // .date-range-input {
65
+ // background-color: #ffff;
66
+ // min-width: 275px;
67
+ // flex-shrink: 0;
68
+ // display: flex;
69
+
70
+ // .select-form {
71
+ // flex-grow: 1;
72
+ // max-width: calc(100% - 72px);
73
+ // overflow: hidden;
74
+ // text-overflow: ellipsis;
75
+ // }
76
+
77
+ // button svg {
78
+ // margin: 0;
79
+ // }
80
+
81
+ // &>button:not(:last-child) {
82
+ // border-top-right-radius: 0;
83
+ // border-bottom-right-radius: 0;
84
+ // border-right: none;
85
+ // }
86
+
87
+ // & > button:not(:first-child),
88
+ // & > button:nth-child(n + 3) {
89
+ // border-top-left-radius: 0;
90
+ // border-bottom-left-radius: 0;
91
+ // border-right: none;
92
+ // }
93
+
94
+ // & button:not(:first-child),
95
+ // & button:not(:first-child) button {
96
+ // border-top-left-radius: 0;
97
+ // border-bottom-left-radius: 0;
98
+ // }
99
+
100
+ // &--compact {
101
+ // min-width: 130px;
102
+
103
+ // .form-select-options {
104
+ // width: 100%;
105
+ // }
106
+ // }
107
+
108
+ // &--focused {
109
+ // border: 1px solid #6b81dd;
110
+ // box-shadow: 0 0 3px 0 rgb(0 123 255 / 50%);
111
+ // }
112
+ // }
113
+
114
+ // .form-label {
115
+ // //display: block;
116
+ // font-weight: 500;
117
+ // line-height: 24px;
118
+ // font-size: 12px;
119
+ // position: relative;
120
+
121
+ // &--error {
122
+ // color: #f06d8d;
123
+ // font-size: 10px;
124
+ // font-weight: normal;
125
+ // line-height: 20px;
126
+ // position: absolute;
127
+ // white-space: nowrap;
128
+ // }
129
+
130
+ // &--short {
131
+ // height: 68px;
132
+ // }
133
+ // }
134
+
135
+ // .form-label-title {
136
+ // &--left {
137
+ // margin-right: 10px;
138
+ // white-space: nowrap;
139
+ // }
140
+ // }
141
+
142
+ // .form-label-title-text-right {
143
+ // font-weight: normal;
144
+ // font-size: 11px;
145
+ // color: #9aa0b9;
146
+ // }
147
+
148
+ // .form-input {
149
+ // display: block;
150
+ // box-sizing: border-box;
151
+ // width: 100%;
152
+ // min-height: 28px;
153
+ // padding: 5px 8px;
154
+ // border: 1px solid #e2e5ec;
155
+ // font-family: Roboto, sans-serif;
156
+ // font-size: 13px;
157
+ // font-weight: 400;
158
+ // resize: none;
159
+
160
+ // &--btn-right {
161
+ // & input {
162
+ // padding-right: 75px;
163
+ // }
164
+ // }
165
+
166
+ // &--tall {
167
+ // height: 160px;
168
+ // }
169
+
170
+ // &--small {
171
+ // width: 100px;
172
+ // height: 20px;
173
+ // }
174
+
175
+ // &--error {
176
+ // border: 1px solid #f06d8d;
177
+ // }
178
+
179
+ // &--lock {
180
+ // padding-right: 25px;
181
+ // //background: #fff url(/media/images/lock.svg) no-repeat center right 4px / 16px;
182
+ // }
183
+
184
+ // &--login {
185
+ // padding-right: 25px;
186
+ // //background: #fff url(/media/images/user.svg) no-repeat center right 4px / 16px;
187
+ // }
188
+
189
+ // &--email {
190
+ // padding-right: 25px;
191
+ // //background: #fff url(/media/images/mail.svg) no-repeat center right 4px / 16px;
192
+ // }
193
+
194
+ // &--password {
195
+ // padding-right: 25px;
196
+ // //background: #fff url(/media/images/key.svg) no-repeat center right 4px / 16px;
197
+ // }
198
+
199
+ // &--promo {
200
+ // padding-right: 25px;
201
+ // //background: #fff url(/media/images/gift.svg) no-repeat center right 4px / 16px;
202
+ // }
203
+
204
+ // &--edit {
205
+ // padding-right: 25px;
206
+ // //background: #fff url(/media/images/edit.svg) no-repeat center right 4px / 16px;
207
+ // }
208
+
209
+ // &:disabled {
210
+ // background-color: #f7f8fa;
211
+ // border: 1px solid #bac2c9;
212
+ // pointer-events: none;
213
+ // }
214
+
215
+ // &:focus {
216
+ // border: 1px solid #6b81dd;
217
+ // }
218
+
219
+ // &::placeholder {
220
+ // color: #bac2c9;
221
+ // }
222
+ // }
223
+
224
+ // select.form-input {
225
+ // -webkit-appearance: none;
226
+ // -moz-appearance: none;
227
+ // appearance: none;
228
+ // padding-right: 25px;
229
+ // //background: #fff url(/media/images/chevron-down.svg) no-repeat center right 4px / 16px;
230
+ // }
231
+
232
+ // .select-form {
233
+ // position: relative;
234
+ // }
235
+
236
+ // .form-select {
237
+ // &__clear-btn {
238
+ // position: absolute;
239
+ // width: 22px;
240
+ // height: 26px;
241
+ // right: 1px;
242
+ // top: 1px;
243
+ // margin-right: 2px;
244
+ // cursor: pointer;
245
+ // display: flex;
246
+ // align-items: center;
247
+ // justify-content: center;
248
+ // border-left: 1px solid #e2e5ecff;
249
+
250
+ // & svg {
251
+ // width: 16px;
252
+ // height: 16px;
253
+ // color: #9aa0b9ff;
254
+ // }
255
+
256
+ // &:hover {
257
+ // & svg {
258
+ // color: #6b81ddff;
259
+ // }
260
+ // }
261
+ // }
262
+
263
+ // &__input {
264
+ // //background: #fff url(/media/images/chevron-down.svg) no-repeat center right 4px / 16px;
265
+ // padding-right: 25px;
266
+ // line-height: initial;
267
+ // cursor: default;
268
+ // min-width: 60px;
269
+ // min-height: 28px;
270
+ // user-select: none;
271
+ // border-radius: 3px;
272
+ // white-space: nowrap;
273
+ // display: block;
274
+ // overflow: hidden;
275
+ // text-overflow: ellipsis;
276
+ // text-align: left;
277
+
278
+ // &--fixed {
279
+ // min-height: 76px;
280
+ // }
281
+
282
+ // &--opened {
283
+ // //background: #fff url(/media/images/chevron-up.svg) no-repeat center right 4px / 16px;
284
+ // padding-right: 25px;
285
+ // }
286
+
287
+ // &--focused {
288
+ // border: 1px solid #6b81dd;
289
+ // box-shadow: 0 0 3px 0 rgb(0 123 255 / 50%);
290
+ // }
291
+
292
+ // &--disabled {
293
+ // color: #9aa0b9;
294
+ // //background: #f7f8fa url(/media/images/chevron-down-disabled.svg) no-repeat center right 4px / 16px;
295
+ // border: 1px solid #bac2c9;
296
+ // padding-right: 25px;
297
+ // pointer-events: none;
298
+ // }
299
+
300
+ // &--placeholder {
301
+ // color: #9aa0b9;
302
+ // }
303
+
304
+ // &--searchable {
305
+ // padding: 0;
306
+ // }
307
+
308
+ // &--cleanable {
309
+ // background-position: center right 26px;
310
+ // padding-right: 45px;
311
+ // }
312
+ // }
313
+
314
+ // &__input-text {
315
+ // &--searchable {
316
+ // width: 100%;
317
+ // height: 24px;
318
+ // padding-left: 8px;
319
+ // font-family: Roboto, sans-serif;
320
+ // font-size: 13px;
321
+ // font-weight: 400;
322
+ // border: none;
323
+ // outline: none;
324
+ // box-shadow: none;
325
+
326
+ // &:focus {
327
+ // border: none;
328
+ // outline: none;
329
+ // box-shadow: none;
330
+ // }
331
+ // }
332
+ // }
333
+ // }
334
+
335
+ // .form-select-inner {
336
+ // position: absolute;
337
+ // left: 130px;
338
+ // font-weight: 400;
339
+ // margin-top: 3px;
340
+ // background-color: #fff;
341
+ // box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
342
+ // z-index: 6;
343
+ // }
344
+
345
+ // .date-picker {
346
+ // width: 444px;
347
+ // border: 1px solid #e2e5ec;
348
+
349
+ // &__header,
350
+ // &__footer {
351
+ // background: #f7fafc;
352
+ // padding: 10px 15px;
353
+ // display: flex;
354
+
355
+ // &--gray {
356
+ // color: #c4c4c4;
357
+ // display: flex;
358
+ // align-items: center;
359
+ // padding: 0 5px;
360
+ // }
361
+ // }
362
+
363
+ // &__previous-period {
364
+ // background: #f7fafc;
365
+ // font-size: 10px;
366
+ // line-height: 1.3;
367
+ // padding: 0 15px;
368
+ // min-height: 25px;
369
+ // color: #9aa0b9;
370
+ // }
371
+
372
+ // &__previous-period-interval {
373
+ // font-weight: 500;
374
+ // color: #000000;
375
+ // }
376
+
377
+ // &__calendars {
378
+ // display: flex;
379
+ // justify-content: space-between;
380
+ // padding: 10px 15px;
381
+ // }
382
+ // }
383
+
384
+ // .calendar-header {
385
+ // display: flex;
386
+ // height: 24px;
387
+ // margin: 0 6px;
388
+
389
+ // &__title {
390
+ // line-height: 20px;
391
+ // font-weight: 500;
392
+ // text-align: center;
393
+ // flex-grow: 1;
394
+ // color: #000000;
395
+ // display: flex;
396
+ // align-items: center;
397
+ // justify-content: center;
398
+ // }
399
+
400
+ // &__next,
401
+ // &__prev {
402
+ // width: 16px;
403
+ // color: #9aa0b9ff;
404
+ // display: flex;
405
+ // align-items: center;
406
+ // justify-content: center;
407
+
408
+ // & > div {
409
+ // display: flex;
410
+ // align-items: center;
411
+ // justify-content: center;
412
+ // cursor: pointer;
413
+ // height: 100%;
414
+
415
+ // &:hover {
416
+ // background: #e2e6f8;
417
+ // }
418
+ // }
419
+ // }
420
+ // }
421
+
422
+ // .date-picker-text-input {
423
+ // &--active input {
424
+ // border: 1px solid #6b81dd;
425
+ // box-shadow: 0 0 3px 0 rgb(0 123 255 / 50%);
426
+ // }
427
+ // }
428
+
429
+ .calendar {
430
+ background: #ffffff;
431
+ border: 1px solid #e2e5ec;
432
+ box-shadow: 0 5px 20px rgb(0 0 0 / 15%);
433
+ margin-top: 4px;
434
+ padding: 5px 0;
435
+
436
+ min-height: 195px;
437
+ width: 260px;
438
+ display: flex;
439
+ flex-direction: column;
440
+ user-select: none;
441
+
442
+ &__week {
443
+ display: flex;
444
+ }
445
+
446
+ &__day {
447
+ font-size: 13px;
448
+ line-height: 20px;
449
+ margin: 1px 0;
450
+ flex-grow: 1;
451
+ flex-basis: 0;
452
+ text-align: center;
453
+ padding: 1px 6px;
454
+ user-select: none;
455
+
456
+ &--clickable {
457
+ cursor: pointer;
458
+
459
+ &:hover {
460
+ background: #e2e6f8;
461
+ }
462
+ }
463
+
464
+ &--disabled {
465
+ cursor: default;
466
+ color: #9aa0b9;
467
+ pointer-events: none;
468
+
469
+ &:hover {
470
+ background: inherit;
471
+ }
472
+ }
473
+
474
+ &--range-end,
475
+ &--selected {
476
+ background: #6b81dd;
477
+ color: white;
478
+ border-radius: 4px;
479
+
480
+ &:hover {
481
+ background: #6b81dd;
482
+ }
483
+ }
484
+
485
+ &--range-inside {
486
+ background: #e2e6f8;
487
+ }
488
+
489
+ &--prev-range-end {
490
+ background: #e2e5ec;
491
+ border-radius: 4px;
492
+ }
493
+
494
+ &--prev-range-inside {
495
+ background: #f7f8fa;
496
+ }
497
+
498
+ &--title {
499
+ font-size: 10px;
500
+ color: #9aa0b9;
501
+ font-weight: normal;
502
+
503
+ &:hover {
504
+ background: inherit;
505
+ }
506
+ }
507
+ }
508
+
509
+ &-container {
510
+ width: 200px;
511
+ }
512
+
513
+ &-dropdown {
514
+ appearance: none;
515
+ background-color: white;
516
+ cursor: pointer;
517
+ color: gray;
518
+
519
+ width: 100%;
520
+ height: 28px;
521
+
522
+ display: flex;
523
+ cursor: pointer;
524
+ padding-left: 9px;
525
+ font-weight: 400;
526
+ overflow: hidden;
527
+ align-items: center;
528
+
529
+ border: 1px solid #e2e5ec;
530
+ box-sizing: border-box;
531
+ border-radius: 3px;
532
+ user-select: none;
533
+ }
534
+ &-placeholder {
535
+ width: 100%;
536
+ background: none;
537
+ border: none;
538
+ padding: 0 15px 0 0;
539
+ height: 16px;
540
+ text-overflow: ellipsis;
541
+ font-weight: 400;
542
+ font-size: 13px;
543
+ }
544
+ }