beem-component 1.8.6 → 1.8.8
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.
- package/dist/components/InputCounter/inputCounter.js +56 -0
- package/dist/components/MultipleDateSelector/multipleDateSelector.js +64 -0
- package/dist/components/Stepper/stepper.js +20 -0
- package/dist/components/index.js +21 -0
- package/package.json +1 -1
- package/src/App.js +74 -0
- package/src/lib/components/InputCounter/inputCounter.js +60 -0
- package/src/lib/components/MultipleDateSelector/multipleDateSelector.js +64 -0
- package/src/lib/components/Stepper/stepper.js +26 -0
- package/src/lib/components/index.js +6 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BmInputCounter = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
var _RemoveCircle = _interopRequireDefault(require("@mui/icons-material/RemoveCircle"));
|
|
10
|
+
var _AddCircle = _interopRequireDefault(require("@mui/icons-material/AddCircle"));
|
|
11
|
+
var _iconStyles = require("../iconStyles");
|
|
12
|
+
var _colors = require("../colors");
|
|
13
|
+
var _excluded = ["min", "max", "onChange", "inputStyle", "BtnStyle", "count"];
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
16
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
17
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
18
|
+
var Wrapper = _styledComponents.default.div.withConfig({
|
|
19
|
+
displayName: "inputCounter__Wrapper"
|
|
20
|
+
})(["display:flex;border-radius:0.25rem;border:0.071rem solid ", ";justify-content:space-between;padding:0.5rem;&:hover{border:0.071rem solid ", ";}"], _colors.BmGrey200, _colors.BmGrey400);
|
|
21
|
+
var BmInputCounter = function BmInputCounter(_ref) {
|
|
22
|
+
var _ref$min = _ref.min,
|
|
23
|
+
min = _ref$min === void 0 ? 0 : _ref$min,
|
|
24
|
+
_ref$max = _ref.max,
|
|
25
|
+
max = _ref$max === void 0 ? 10 : _ref$max,
|
|
26
|
+
onChange = _ref.onChange,
|
|
27
|
+
inputStyle = _ref.inputStyle,
|
|
28
|
+
BtnStyle = _ref.BtnStyle,
|
|
29
|
+
_ref$count = _ref.count,
|
|
30
|
+
count = _ref$count === void 0 ? 0 : _ref$count,
|
|
31
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
32
|
+
var increment = function increment() {
|
|
33
|
+
if (count < max) {
|
|
34
|
+
onChange(count + 1);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var decrement = function decrement() {
|
|
38
|
+
if (count > min) {
|
|
39
|
+
onChange(count - 1);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement(Wrapper, rest, /*#__PURE__*/_react.default.createElement(_iconStyles.BmIcons, _extends({
|
|
43
|
+
icon: /*#__PURE__*/_react.default.createElement(_RemoveCircle.default, null),
|
|
44
|
+
size: "small",
|
|
45
|
+
color: _colors.BmPrimaryBlue,
|
|
46
|
+
onClick: decrement,
|
|
47
|
+
disabled: count >= max
|
|
48
|
+
}, BtnStyle)), count, /*#__PURE__*/_react.default.createElement(_iconStyles.BmIcons, _extends({
|
|
49
|
+
icon: /*#__PURE__*/_react.default.createElement(_AddCircle.default, null),
|
|
50
|
+
size: "small",
|
|
51
|
+
color: _colors.BmPrimaryBlue,
|
|
52
|
+
onClick: increment,
|
|
53
|
+
disabled: count <= min
|
|
54
|
+
}, BtnStyle)));
|
|
55
|
+
};
|
|
56
|
+
exports.BmInputCounter = BmInputCounter;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
10
|
+
var _colors = require("../colors");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
15
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
17
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
18
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
19
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
23
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
24
|
+
var Wrapper = _styledComponents.default.div.withConfig({
|
|
25
|
+
displayName: "multipleDateSelector__Wrapper"
|
|
26
|
+
})(["display:flex;flex-direction:row;flex-wrap:wrap;border:0.071rem solid ", ";padding:1rem;background:", ";"], _colors.BmGrey100, _colors.BmSecondaryBlue12);
|
|
27
|
+
var Box = _styledComponents.default.div.withConfig({
|
|
28
|
+
displayName: "multipleDateSelector__Box"
|
|
29
|
+
})(["display:inline-flex;border:0.071rem solid ", ";padding:0.5rem;cursor:pointer;"], _colors.BmGrey100);
|
|
30
|
+
var BmMultiDateSelector = function BmMultiDateSelector() {
|
|
31
|
+
var _useState = (0, _react.useState)([]),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
selectedDays = _useState2[0],
|
|
34
|
+
setSelectedDays = _useState2[1];
|
|
35
|
+
var handleDayClick = function handleDayClick(day) {
|
|
36
|
+
if (selectedDays.includes(day)) {
|
|
37
|
+
setSelectedDays(selectedDays.filter(function (d) {
|
|
38
|
+
return d !== day;
|
|
39
|
+
}));
|
|
40
|
+
} else {
|
|
41
|
+
setSelectedDays([].concat(_toConsumableArray(selectedDays), [day]));
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
var days = Array.from({
|
|
45
|
+
length: 31
|
|
46
|
+
}, function (_, i) {
|
|
47
|
+
return i + 1;
|
|
48
|
+
});
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(Wrapper, null, days.map(function (day) {
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(Box, {
|
|
51
|
+
key: day,
|
|
52
|
+
style: {
|
|
53
|
+
backgroundColor: selectedDays.includes(day) ? _colors.BmPrimaryBlue : _colors.BmPrimaryWhite,
|
|
54
|
+
color: selectedDays.includes(day) ? _colors.BmPrimaryWhite : _colors.BmPrimaryBlack,
|
|
55
|
+
fontWeight: selectedDays.includes(day) ? 'bold' : 'normal'
|
|
56
|
+
},
|
|
57
|
+
onClick: function onClick() {
|
|
58
|
+
return handleDayClick(day);
|
|
59
|
+
}
|
|
60
|
+
}, day);
|
|
61
|
+
})));
|
|
62
|
+
};
|
|
63
|
+
var _default = BmMultiDateSelector;
|
|
64
|
+
exports.default = _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
var _colors = require("../colors");
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
var BmStepper = _styledComponents.default.div.withConfig({
|
|
11
|
+
displayName: "stepper__BmStepper"
|
|
12
|
+
})(["display:flex;justify-content:center;width:3rem;height:3rem;background-color:", ";color:", ";border-radius:50%;text-align:center;border:0.071rem solid ", ";align-items:center;cursor:pointer;"], function (props) {
|
|
13
|
+
return props.activeStep ? _colors.BmSecondaryGreen15 : _colors.BmGrey100;
|
|
14
|
+
}, function (props) {
|
|
15
|
+
return props.activeStep ? _colors.BmPrimaryBlue : _colors.BmGrey600;
|
|
16
|
+
}, function (props) {
|
|
17
|
+
return props.activeStep ? _colors.BmPrimaryBlue : _colors.BmPrimaryWhite;
|
|
18
|
+
});
|
|
19
|
+
var _default = BmStepper;
|
|
20
|
+
exports.default = _default;
|
package/dist/components/index.js
CHANGED
|
@@ -185,6 +185,12 @@ Object.defineProperty(exports, "BmInput", {
|
|
|
185
185
|
return _input.BmInput;
|
|
186
186
|
}
|
|
187
187
|
});
|
|
188
|
+
Object.defineProperty(exports, "BmInputCounter", {
|
|
189
|
+
enumerable: true,
|
|
190
|
+
get: function get() {
|
|
191
|
+
return _inputCounter.BmInputCounter;
|
|
192
|
+
}
|
|
193
|
+
});
|
|
188
194
|
Object.defineProperty(exports, "BmJumbotron", {
|
|
189
195
|
enumerable: true,
|
|
190
196
|
get: function get() {
|
|
@@ -215,6 +221,12 @@ Object.defineProperty(exports, "BmModal", {
|
|
|
215
221
|
return _modal.default;
|
|
216
222
|
}
|
|
217
223
|
});
|
|
224
|
+
Object.defineProperty(exports, "BmMultiDateSelector", {
|
|
225
|
+
enumerable: true,
|
|
226
|
+
get: function get() {
|
|
227
|
+
return _multipleDateSelector.default;
|
|
228
|
+
}
|
|
229
|
+
});
|
|
218
230
|
Object.defineProperty(exports, "BmNoteBar", {
|
|
219
231
|
enumerable: true,
|
|
220
232
|
get: function get() {
|
|
@@ -305,6 +317,12 @@ Object.defineProperty(exports, "BmSegmentSelector", {
|
|
|
305
317
|
return _index2.BmSegmentSelector;
|
|
306
318
|
}
|
|
307
319
|
});
|
|
320
|
+
Object.defineProperty(exports, "BmStepper", {
|
|
321
|
+
enumerable: true,
|
|
322
|
+
get: function get() {
|
|
323
|
+
return _stepper.default;
|
|
324
|
+
}
|
|
325
|
+
});
|
|
308
326
|
Object.defineProperty(exports, "BmSupport", {
|
|
309
327
|
enumerable: true,
|
|
310
328
|
get: function get() {
|
|
@@ -390,6 +408,9 @@ var _index = require("./SuperFluid/Content/index");
|
|
|
390
408
|
var _ContentTitle = require("./SuperFluid/ContentTitle.js");
|
|
391
409
|
var _index2 = require("./SuperFluid/SegmentCard/index");
|
|
392
410
|
var _buttonGroup = _interopRequireDefault(require("./ButtonGroup/buttonGroup"));
|
|
411
|
+
var _inputCounter = require("./InputCounter/inputCounter");
|
|
412
|
+
var _stepper = _interopRequireDefault(require("./Stepper/stepper"));
|
|
413
|
+
var _multipleDateSelector = _interopRequireDefault(require("./MultipleDateSelector/multipleDateSelector"));
|
|
393
414
|
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); }
|
|
394
415
|
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; }
|
|
395
416
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/package.json
CHANGED
package/src/App.js
CHANGED
|
@@ -1,10 +1,61 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { GlobalStyle } from './lib/components';
|
|
3
3
|
import BmButtonGroup from './lib/components/ButtonGroup/buttonGroup';
|
|
4
|
+
import { BmInputCounter } from './lib/components/InputCounter/inputCounter';
|
|
5
|
+
import BmMultiDateSelector from './lib/components/MultipleDateSelector/multipleDateSelector';
|
|
6
|
+
import BmStepper from './lib/components/Stepper/stepper';
|
|
4
7
|
|
|
5
8
|
const App = () => {
|
|
6
9
|
const [item, setItem] = useState();
|
|
7
10
|
const Occurance = ['Now', 'Later', 'Recurring'];
|
|
11
|
+
const [count, setCount] = useState();
|
|
12
|
+
const handleCountChange = (newCount) => {
|
|
13
|
+
setCount(newCount);
|
|
14
|
+
};
|
|
15
|
+
const [activeStep, setActiveStep] = useState(new Date().getDay());
|
|
16
|
+
const [selectedDates, setSelectedDates] = useState([]);
|
|
17
|
+
|
|
18
|
+
const handleSelectDates = (dates) => {
|
|
19
|
+
setSelectedDates(dates);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const Weekdays = [
|
|
23
|
+
{
|
|
24
|
+
dayNo: 1,
|
|
25
|
+
day: 'Monday',
|
|
26
|
+
dayInitial: 'M',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
dayNo: 2,
|
|
30
|
+
day: 'Tuesday',
|
|
31
|
+
dayInitial: 'T',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
dayNo: 3,
|
|
35
|
+
day: 'Wednesday',
|
|
36
|
+
dayInitial: 'W',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
dayNo: 4,
|
|
40
|
+
day: 'Thursday',
|
|
41
|
+
dayInitial: 'T',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
dayNo: 5,
|
|
45
|
+
day: 'Friday',
|
|
46
|
+
dayInitial: 'F',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
dayNo: 6,
|
|
50
|
+
day: 'Saturday',
|
|
51
|
+
dayInitial: 'S',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
dayNo: 0,
|
|
55
|
+
day: 'Sunday',
|
|
56
|
+
dayInitial: 'S',
|
|
57
|
+
},
|
|
58
|
+
];
|
|
8
59
|
|
|
9
60
|
return (
|
|
10
61
|
<>
|
|
@@ -17,6 +68,29 @@ const App = () => {
|
|
|
17
68
|
</BmButtonGroup.Item>
|
|
18
69
|
))}
|
|
19
70
|
</BmButtonGroup>
|
|
71
|
+
<BmInputCounter
|
|
72
|
+
min="1"
|
|
73
|
+
max="20"
|
|
74
|
+
count={count}
|
|
75
|
+
onChange={handleCountChange}
|
|
76
|
+
/>
|
|
77
|
+
<BmMultiDateSelector onSelect={handleSelectDates} />
|
|
78
|
+
{selectedDates.length > 0 && (
|
|
79
|
+
<p>Selected dates: {selectedDates.join(', ')}</p>
|
|
80
|
+
)}
|
|
81
|
+
{Weekdays.map(({ dayNo, dayInitial }) => {
|
|
82
|
+
return (
|
|
83
|
+
<BmStepper
|
|
84
|
+
key={dayNo}
|
|
85
|
+
activeStep={activeStep > -1 ? activeStep === dayNo : null}
|
|
86
|
+
onClick={() => {
|
|
87
|
+
setActiveStep(dayNo);
|
|
88
|
+
}}
|
|
89
|
+
>
|
|
90
|
+
{dayInitial}
|
|
91
|
+
</BmStepper>
|
|
92
|
+
);
|
|
93
|
+
})}
|
|
20
94
|
</>
|
|
21
95
|
);
|
|
22
96
|
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
import RemoveCircleIcon from '@mui/icons-material/RemoveCircle';
|
|
4
|
+
import AddCircleIcon from '@mui/icons-material/AddCircle';
|
|
5
|
+
import { BmIcons } from '../iconStyles';
|
|
6
|
+
import { BmGrey200, BmGrey400, BmPrimaryBlue } from '../colors';
|
|
7
|
+
|
|
8
|
+
const Wrapper = styled.div`
|
|
9
|
+
display: flex;
|
|
10
|
+
border-radius: 0.25rem;
|
|
11
|
+
border: 0.071rem solid ${BmGrey200};
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
padding: 0.5rem;
|
|
14
|
+
&:hover {
|
|
15
|
+
border: 0.071rem solid ${BmGrey400};
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
|
|
19
|
+
export const BmInputCounter = ({
|
|
20
|
+
min = 0,
|
|
21
|
+
max = 10,
|
|
22
|
+
onChange,
|
|
23
|
+
inputStyle,
|
|
24
|
+
BtnStyle,
|
|
25
|
+
count = 0,
|
|
26
|
+
...rest
|
|
27
|
+
}) => {
|
|
28
|
+
const increment = () => {
|
|
29
|
+
if (count < max) {
|
|
30
|
+
onChange(count + 1);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const decrement = () => {
|
|
35
|
+
if (count > min) {
|
|
36
|
+
onChange(count - 1);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return (
|
|
40
|
+
<Wrapper {...rest}>
|
|
41
|
+
<BmIcons
|
|
42
|
+
icon={<RemoveCircleIcon />}
|
|
43
|
+
size="small"
|
|
44
|
+
color={BmPrimaryBlue}
|
|
45
|
+
onClick={decrement}
|
|
46
|
+
disabled={count >= max}
|
|
47
|
+
{...BtnStyle}
|
|
48
|
+
/>
|
|
49
|
+
{count}
|
|
50
|
+
<BmIcons
|
|
51
|
+
icon={<AddCircleIcon />}
|
|
52
|
+
size="small"
|
|
53
|
+
color={BmPrimaryBlue}
|
|
54
|
+
onClick={increment}
|
|
55
|
+
disabled={count <= min}
|
|
56
|
+
{...BtnStyle}
|
|
57
|
+
/>
|
|
58
|
+
</Wrapper>
|
|
59
|
+
);
|
|
60
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// import { BmColors } from 'beem-component';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
import {
|
|
5
|
+
BmGrey100,
|
|
6
|
+
BmPrimaryBlack,
|
|
7
|
+
BmPrimaryBlue,
|
|
8
|
+
BmPrimaryWhite,
|
|
9
|
+
BmSecondaryBlue12,
|
|
10
|
+
} from '../colors';
|
|
11
|
+
|
|
12
|
+
const Wrapper = styled.div`
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: row;
|
|
15
|
+
flex-wrap: wrap;
|
|
16
|
+
border: 0.071rem solid ${BmGrey100};
|
|
17
|
+
padding: 1rem;
|
|
18
|
+
background: ${BmSecondaryBlue12};
|
|
19
|
+
`;
|
|
20
|
+
const Box = styled.div`
|
|
21
|
+
display: inline-flex;
|
|
22
|
+
border: 0.071rem solid ${BmGrey100};
|
|
23
|
+
padding: 0.5rem;
|
|
24
|
+
cursor: pointer;
|
|
25
|
+
`;
|
|
26
|
+
const BmMultiDateSelector = () => {
|
|
27
|
+
const [selectedDays, setSelectedDays] = useState([]);
|
|
28
|
+
|
|
29
|
+
const handleDayClick = (day) => {
|
|
30
|
+
if (selectedDays.includes(day)) {
|
|
31
|
+
setSelectedDays(selectedDays.filter((d) => d !== day));
|
|
32
|
+
} else {
|
|
33
|
+
setSelectedDays([...selectedDays, day]);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const days = Array.from({ length: 31 }, (_, i) => i + 1);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div>
|
|
41
|
+
<Wrapper>
|
|
42
|
+
{days.map((day) => (
|
|
43
|
+
<Box
|
|
44
|
+
key={day}
|
|
45
|
+
style={{
|
|
46
|
+
backgroundColor: selectedDays.includes(day)
|
|
47
|
+
? BmPrimaryBlue
|
|
48
|
+
: BmPrimaryWhite,
|
|
49
|
+
color: selectedDays.includes(day)
|
|
50
|
+
? BmPrimaryWhite
|
|
51
|
+
: BmPrimaryBlack,
|
|
52
|
+
fontWeight: selectedDays.includes(day) ? 'bold' : 'normal',
|
|
53
|
+
}}
|
|
54
|
+
onClick={() => handleDayClick(day)}
|
|
55
|
+
>
|
|
56
|
+
{day}
|
|
57
|
+
</Box>
|
|
58
|
+
))}
|
|
59
|
+
</Wrapper>
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export default BmMultiDateSelector;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import {
|
|
3
|
+
BmGrey100,
|
|
4
|
+
BmGrey600,
|
|
5
|
+
BmPrimaryBlue,
|
|
6
|
+
BmPrimaryWhite,
|
|
7
|
+
BmSecondaryGreen15,
|
|
8
|
+
} from '../colors';
|
|
9
|
+
|
|
10
|
+
const BmStepper = styled.div`
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
width: 3rem;
|
|
14
|
+
height: 3rem;
|
|
15
|
+
background-color: ${(props) =>
|
|
16
|
+
props.activeStep ? BmSecondaryGreen15 : BmGrey100};
|
|
17
|
+
color: ${(props) => (props.activeStep ? BmPrimaryBlue : BmGrey600)};
|
|
18
|
+
border-radius: 50%;
|
|
19
|
+
text-align: center;
|
|
20
|
+
border: 0.071rem solid
|
|
21
|
+
${(props) => (props.activeStep ? BmPrimaryBlue : BmPrimaryWhite)};
|
|
22
|
+
align-items: center;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
`;
|
|
25
|
+
|
|
26
|
+
export default BmStepper;
|
|
@@ -67,6 +67,9 @@ import {
|
|
|
67
67
|
BmSegmentCreateContent,
|
|
68
68
|
} from './SuperFluid/SegmentCard/index';
|
|
69
69
|
import BmButtonGroup from './ButtonGroup/buttonGroup';
|
|
70
|
+
import { BmInputCounter } from './InputCounter/inputCounter';
|
|
71
|
+
import BmStepper from './Stepper/stepper';
|
|
72
|
+
import BmMultiDateSelector from './MultipleDateSelector/multipleDateSelector';
|
|
70
73
|
|
|
71
74
|
export {
|
|
72
75
|
BmAccordion,
|
|
@@ -86,6 +89,9 @@ export {
|
|
|
86
89
|
BmPaymentBox,
|
|
87
90
|
BmJumbotron,
|
|
88
91
|
BmButtonGroup,
|
|
92
|
+
BmInputCounter,
|
|
93
|
+
BmStepper,
|
|
94
|
+
BmMultiDateSelector,
|
|
89
95
|
// Fix height and if there is dropdown option inside the modal body
|
|
90
96
|
BmModal,
|
|
91
97
|
BmNoteBar,
|