intelicoreact 0.0.31 → 0.0.41

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 (37) hide show
  1. package/dist/Atomic/FormElements/Calendar/Calendar.js +134 -0
  2. package/dist/Atomic/FormElements/Calendar/Calendar.scss +543 -0
  3. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +75 -0
  4. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +1 -1
  5. package/dist/Atomic/FormElements/Input/Input.js +91 -99
  6. package/dist/Atomic/FormElements/Input/Input.scss +16 -5
  7. package/dist/Atomic/FormElements/Input/Input.stories.js +32 -25
  8. package/dist/Atomic/UI/Accordion/Accordion.stories.js +1 -1
  9. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -1
  10. package/dist/Atomic/UI/Alert/Alert.stories.js +1 -1
  11. package/dist/Atomic/UI/Button/Button.js +1 -12
  12. package/dist/Atomic/UI/Button/Button.stories.js +5 -19
  13. package/dist/Atomic/UI/Hint/Hint.stories.js +1 -1
  14. package/dist/Atomic/UI/Price/Price.js +32 -0
  15. package/dist/Atomic/UI/Price/Price.stories.js +42 -0
  16. package/dist/Atomic/UI/Status/Status.stories.js +1 -1
  17. package/dist/Functions/useClickOutside.js +25 -0
  18. package/dist/scss/main.scss +2 -2
  19. package/package.json +7 -5
  20. package/src/Atomic/FormElements/Calendar/Calendar.js +106 -0
  21. package/src/Atomic/FormElements/Calendar/Calendar.scss +543 -0
  22. package/src/Atomic/FormElements/Calendar/Calendar.stories.js +38 -0
  23. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +1 -1
  24. package/src/Atomic/FormElements/Input/Input.js +73 -72
  25. package/src/Atomic/FormElements/Input/Input.scss +16 -5
  26. package/src/Atomic/FormElements/Input/Input.stories.js +23 -27
  27. package/src/Atomic/UI/Accordion/Accordion.stories.js +1 -1
  28. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -1
  29. package/src/Atomic/UI/Alert/Alert.stories.js +1 -1
  30. package/src/Atomic/UI/Button/Button.js +1 -3
  31. package/src/Atomic/UI/Button/Button.stories.js +4 -19
  32. package/src/Atomic/UI/Hint/Hint.stories.js +1 -1
  33. package/src/Atomic/UI/Price/Price.js +19 -0
  34. package/src/Atomic/UI/Price/Price.stories.js +30 -0
  35. package/src/Atomic/UI/Status/Status.stories.js +1 -1
  36. package/src/Functions/useClickOutside.js +15 -0
  37. package/src/scss/main.scss +2 -2
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PriceTemplate = exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Price = _interopRequireDefault(require("./Price"));
13
+
14
+ global.lng = 'en';
15
+ var _default = {
16
+ title: 'UI/Price',
17
+ component: _Price.default,
18
+ argTypes: {
19
+ value: {
20
+ description: 'string'
21
+ },
22
+ unit: {
23
+ description: 'string'
24
+ },
25
+ unitAfter: {
26
+ description: 'boolean'
27
+ }
28
+ }
29
+ };
30
+ exports.default = _default;
31
+
32
+ var Template = function Template(args) {
33
+ return /*#__PURE__*/_react.default.createElement(_Price.default, args);
34
+ };
35
+
36
+ var PriceTemplate = Template.bind({});
37
+ exports.PriceTemplate = PriceTemplate;
38
+ PriceTemplate.args = {
39
+ value: '15000',
40
+ unit: '$',
41
+ unitAfter: false
42
+ };
@@ -13,7 +13,7 @@ var _Status = _interopRequireDefault(require("./Status"));
13
13
 
14
14
  global.lng = 'en';
15
15
  var _default = {
16
- title: 'Status',
16
+ title: 'UI/Status',
17
17
  component: _Status.default,
18
18
  argTypes: {
19
19
  status: {
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useClickOutside = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var useClickOutside = function useClickOutside(ref, setOut, open) {
11
+ function handleClickOutside(event) {
12
+ if (ref.current && !ref.current.contains(event.target)) {
13
+ setOut(open);
14
+ }
15
+ }
16
+
17
+ (0, _react.useEffect)(function () {
18
+ document.addEventListener('mousedown', handleClickOutside);
19
+ return function () {
20
+ document.removeEventListener('mousedown', handleClickOutside);
21
+ };
22
+ }, [ref]);
23
+ };
24
+
25
+ exports.useClickOutside = useClickOutside;
@@ -35,6 +35,6 @@ button {
35
35
 
36
36
  .main {
37
37
  &__wrap {
38
- display: flex;
38
+ display: flex;
39
39
  }
40
- }
40
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "0.0.31",
3
+ "version": "0.0.41",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -10,13 +10,15 @@
10
10
  "author": "Andrey Isakov",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@babel/polyfill": "^7.12.1",
14
- "classnames": "^2.3.1",
15
- "react-feather": "^2.0.9"
13
+ "react-feather": "^2.0.9",
14
+ "react-input-mask": "^2.0.4",
15
+ "moment": "^2.29.1"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@babel/cli": "^7.15.7",
19
19
  "@babel/core": "^7.15.5",
20
- "@babel/preset-env": "^7.15.6"
20
+ "@babel/preset-env": "^7.15.6",
21
+ "@babel/polyfill": "^7.12.1",
22
+ "classnames": "^2.3.1"
21
23
  }
22
24
  }
@@ -0,0 +1,106 @@
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 } = props;
9
+
10
+ const [days, setDays] = useState({});
11
+
12
+ const selectedDay = moment(date);
13
+ const isError = 'Invalid date';
14
+
15
+ const title = useMemo(
16
+ () => (selectedDay.format('MMM') === isError ? isError : `${selectedDay.format('MMM')} ${moment(date).format('YYYY')}`),
17
+ [date]
18
+ );
19
+ useEffect(() => {
20
+ const result = {};
21
+ const day = selectedDay.startOf('month');
22
+ const daysInMonth = day.daysInMonth();
23
+ for (let d = 0; d < daysInMonth; d += 1) {
24
+ let week = day.week();
25
+ if (day.month() === 11 && week === 1) week = 53;
26
+ if (day.month() === 0 && week === 53) week = 0;
27
+ if (!Object.prototype.hasOwnProperty.call(result, week)) {
28
+ result[week] = {};
29
+ }
30
+ result[week][day.weekday()] = { date: day.toDate() };
31
+ day.add(1, 'd');
32
+ }
33
+ setDays(result);
34
+ }, [date]);
35
+
36
+ const renderDay = (week, dayOfWeek) => {
37
+ const day = days[week][dayOfWeek];
38
+ if (!day) return <div className="calendar__day" />;
39
+ const isFutureDay = day && moment(day.date).isAfter(moment(), 'day');
40
+
41
+ const classNames = cn(
42
+ 'calendar__day',
43
+ { 'calendar__day--clickable': day },
44
+ { 'calendar__day--disabled': isFutureDay },
45
+ { 'calendar__day--selected': selectedDay.format() === moment(day.date).format() }
46
+ );
47
+
48
+ return (
49
+ <div
50
+ key={`${week}_${dayOfWeek}`}
51
+ className={classNames}
52
+ onClick={day && !isFutureDay ? () => setDate(moment(day.date).format('L')) : null}
53
+ // onMouseOver={day && !isFutureDay ? () => onHover(day.date) : null}
54
+ // onMouseLeave={() => onHover(null)}
55
+ >
56
+ {day && day.date.getDate()}
57
+ </div>
58
+ );
59
+ };
60
+
61
+ const handlePrev = () => {
62
+ setDate(moment(date).subtract(1, 'month').format('L'));
63
+ };
64
+
65
+ const handleNext = () => {
66
+ setDate(moment(date).add(1, 'month').format('L'));
67
+ };
68
+
69
+ return (
70
+ <div className="calendar">
71
+ <div className="calendar-header">
72
+ <div className="calendar-header__prev">
73
+ {allowPrev && (
74
+ <div onClick={handlePrev}>
75
+ <ChevronLeft />
76
+ </div>
77
+ )}
78
+ </div>
79
+ <div className="calendar-header__title">{title}</div>
80
+ <div className="calendar-header__next">
81
+ {allowNext && (
82
+ <div onClick={handleNext}>
83
+ <ChevronRight />
84
+ </div>
85
+ )}
86
+ </div>
87
+ </div>
88
+ <div className="calendar__week">
89
+ {[...Array(7).keys()].map((dayOfWeek) => {
90
+ return (
91
+ <div key={`day-of-week_${dayOfWeek}`} className="calendar__day calendar__day--title">
92
+ {moment().weekday(dayOfWeek).format('dd').charAt(0)}
93
+ </div>
94
+ );
95
+ })}
96
+ </div>
97
+ {Object.keys(days).map((week, index) => (
98
+ <div key={`week_${index}`} className="calendar__week">
99
+ {[...Array(7).keys()].map((dayOfWeek) => (
100
+ <React.Fragment key={`calendar-day--${dayOfWeek}`}>{renderDay(week, dayOfWeek)}</React.Fragment>
101
+ ))}
102
+ </div>
103
+ ))}
104
+ </div>
105
+ );
106
+ }