@invoicebox/ui 0.1.0-alpha.222 → 0.1.0-alpha.224

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 (64) hide show
  1. package/dist/components/common/Calendar/index.d.ts +2 -0
  2. package/dist/components/common/Calendar/index.js +9 -3
  3. package/dist/components/common/Calendar/palette.d.ts +1 -0
  4. package/dist/components/common/Calendar/palette.js +2 -1
  5. package/dist/components/common/Calendar/styles.d.ts +2 -0
  6. package/dist/components/common/Calendar/styles.js +24 -13
  7. package/dist/components/common/Scrollbar/index.d.ts +1 -0
  8. package/dist/components/common/Scrollbar/index.js +5 -3
  9. package/dist/components/form/DateInput/components/CalendarIcon/index.d.ts +1 -0
  10. package/dist/components/form/DateInput/components/{Icon → CalendarIcon}/index.js +2 -2
  11. package/dist/components/form/DateInput/components/CalendarIcon/index.stories.d.ts +5 -0
  12. package/dist/components/form/DateInput/components/{Icon → CalendarIcon}/index.stories.js +2 -2
  13. package/dist/components/form/DateInput/index.d.ts +1 -0
  14. package/dist/components/form/DateInput/index.js +5 -4
  15. package/dist/components/form/DateInput/logic.d.ts +2 -0
  16. package/dist/components/form/DateInput/logic.js +12 -0
  17. package/dist/components/form/DateInput/styles.js +1 -1
  18. package/dist/components/form/DateTimeInput/components/CheckIcon/index.d.ts +1 -0
  19. package/dist/components/form/DateTimeInput/components/CheckIcon/index.js +25 -0
  20. package/dist/components/form/DateTimeInput/components/CheckIcon/index.stories.d.ts +5 -0
  21. package/dist/components/form/DateTimeInput/components/CheckIcon/index.stories.js +14 -0
  22. package/dist/components/form/DateTimeInput/components/Cross24Icon/index.d.ts +1 -0
  23. package/dist/components/form/DateTimeInput/components/Cross24Icon/index.js +23 -0
  24. package/dist/components/form/DateTimeInput/components/Cross24Icon/index.stories.d.ts +5 -0
  25. package/dist/components/form/DateTimeInput/components/Cross24Icon/index.stories.js +14 -0
  26. package/dist/components/form/DateTimeInput/components/CrossIcon/index.d.ts +1 -0
  27. package/dist/components/form/DateTimeInput/components/CrossIcon/index.js +25 -0
  28. package/dist/components/form/DateTimeInput/components/CrossIcon/index.stories.d.ts +5 -0
  29. package/dist/components/form/DateTimeInput/components/CrossIcon/index.stories.js +14 -0
  30. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/index.d.ts +12 -0
  31. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/index.js +84 -0
  32. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/index.stories.d.ts +6 -0
  33. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/index.stories.js +72 -0
  34. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/palette.d.ts +7 -0
  35. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/palette.js +15 -0
  36. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/styles.d.ts +12 -0
  37. package/dist/components/form/DateTimeInput/components/MobileDateTimeCalendar/styles.js +38 -0
  38. package/dist/components/form/DateTimeInput/components/TimePicker/index.d.ts +9 -0
  39. package/dist/components/form/DateTimeInput/components/TimePicker/index.js +118 -0
  40. package/dist/components/form/DateTimeInput/components/TimePicker/index.stories.d.ts +5 -0
  41. package/dist/components/form/DateTimeInput/components/TimePicker/index.stories.js +41 -0
  42. package/dist/components/form/DateTimeInput/components/TimePicker/palette.d.ts +10 -0
  43. package/dist/components/form/DateTimeInput/components/TimePicker/palette.js +18 -0
  44. package/dist/components/form/DateTimeInput/components/TimePicker/styles.d.ts +20 -0
  45. package/dist/components/form/DateTimeInput/components/TimePicker/styles.js +62 -0
  46. package/dist/components/form/DateTimeInput/hooks/useStringValue.d.ts +1 -0
  47. package/dist/components/form/DateTimeInput/hooks/useStringValue.js +28 -0
  48. package/dist/components/form/DateTimeInput/hooks/useTimePickerHeight.d.ts +6 -0
  49. package/dist/components/form/DateTimeInput/hooks/useTimePickerHeight.js +37 -0
  50. package/dist/components/form/DateTimeInput/index.d.ts +15 -0
  51. package/dist/components/form/DateTimeInput/index.js +188 -0
  52. package/dist/components/form/DateTimeInput/index.stories.d.ts +6 -0
  53. package/dist/components/form/DateTimeInput/index.stories.js +59 -0
  54. package/dist/components/form/DateTimeInput/palette.d.ts +9 -0
  55. package/dist/components/form/DateTimeInput/palette.js +17 -0
  56. package/dist/components/form/DateTimeInput/styles.d.ts +19 -0
  57. package/dist/components/form/DateTimeInput/styles.js +55 -0
  58. package/dist/palette/context.d.ts +6 -0
  59. package/dist/palette/context.js +7 -1
  60. package/dist/palette/provider.js +7 -1
  61. package/dist/palette/usePalette.d.ts +3 -0
  62. package/package.json +1 -1
  63. package/dist/components/form/DateInput/components/Icon/index.d.ts +0 -1
  64. package/dist/components/form/DateInput/components/Icon/index.stories.d.ts +0 -5
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DateTimeInput = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _palette = require("../../../palette");
10
+ var _useOutsideClick = require("../../../hooks/useOutsideClick");
11
+ var _useInputFocus2 = require("../../../hooks/useInputFocus");
12
+ var _logic = require("../DateInput/logic");
13
+ var S = _interopRequireWildcard(require("./styles"));
14
+ var _InputLabel = require("../InputLabel");
15
+ var _PureInput = require("../PureInput");
16
+ var _constants = require("../constants");
17
+ var _CalendarIcon = require("../DateInput/components/CalendarIcon");
18
+ var _Dropdown = require("../../common/Dropdown");
19
+ var _Calendar = require("../../common/Calendar");
20
+ var _TimePicker = require("./components/TimePicker");
21
+ var _CrossIcon = require("./components/CrossIcon");
22
+ var _CheckIcon = require("./components/CheckIcon");
23
+ var _index = require("../../../index");
24
+ var _useTimePickerHeight2 = require("./hooks/useTimePickerHeight");
25
+ var _useStringValue3 = require("./hooks/useStringValue");
26
+ var _MobileDateTimeCalendar = require("./components/MobileDateTimeCalendar");
27
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
28
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
29
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
30
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
31
+ 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."); }
32
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
33
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
34
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
35
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
36
+ var DateTimeInput = exports.DateTimeInput = function DateTimeInput(_ref) {
37
+ var onChange = _ref.onChange,
38
+ value = _ref.value,
39
+ hasError = _ref.hasError,
40
+ name = _ref.name,
41
+ onBlur = _ref.onBlur,
42
+ onFocus = _ref.onFocus,
43
+ label = _ref.label,
44
+ minDate = _ref.minDate,
45
+ maxDate = _ref.maxDate,
46
+ _ref$size = _ref.size,
47
+ size = _ref$size === void 0 ? 'M' : _ref$size,
48
+ dropdownProps = _ref.dropdownProps,
49
+ placeholder = _ref.placeholder;
50
+ var palette = (0, _palette.useComponentPalette)('dateTimeInput');
51
+ var inputRef = (0, _react.useRef)(null);
52
+ var isMobile = (0, _index.useMobile)();
53
+ var withTime = true;
54
+ var _useState = (0, _react.useState)(false),
55
+ _useState2 = _slicedToArray(_useState, 2),
56
+ isOpen = _useState2[0],
57
+ setOpenFlag = _useState2[1];
58
+ var _useState3 = (0, _react.useState)(value),
59
+ _useState4 = _slicedToArray(_useState3, 2),
60
+ calendarDropdownValue = _useState4[0],
61
+ setCalendarDropdownValue = _useState4[1];
62
+ var _useStringValue = (0, _useStringValue3.useStringValue)(value),
63
+ _useStringValue2 = _slicedToArray(_useStringValue, 2),
64
+ stringValue = _useStringValue2[0],
65
+ setStringValue = _useStringValue2[1];
66
+ var handleClose = (0, _react.useCallback)(function () {
67
+ return setOpenFlag(false);
68
+ }, []);
69
+ var handleCloseAndSkipDropdownValue = (0, _react.useCallback)(function () {
70
+ setCalendarDropdownValue(value);
71
+ handleClose();
72
+ }, [handleClose, value]);
73
+ var handleTrigger = (0, _react.useCallback)(function () {
74
+ return isOpen ? handleCloseAndSkipDropdownValue() : setOpenFlag(true);
75
+ }, [handleCloseAndSkipDropdownValue, isOpen]);
76
+ var elRef = (0, _useOutsideClick.useOutsideClick)(handleCloseAndSkipDropdownValue);
77
+ var _useTimePickerHeight = (0, _useTimePickerHeight2.useTimePickerHeight)(),
78
+ calendarRef = _useTimePickerHeight.calendarRef,
79
+ handleTimePickerSetHeight = _useTimePickerHeight.handleTimePickerSetHeight,
80
+ timePickerHeight = _useTimePickerHeight.timePickerHeight;
81
+ var _useInputFocus = (0, _useInputFocus2.useInputFocus)({
82
+ onFocus: onFocus,
83
+ onBlur: onBlur
84
+ }),
85
+ inFocus = _useInputFocus.inFocus,
86
+ focusHandler = _useInputFocus.handleFocus,
87
+ blurHandler = _useInputFocus.handleBlur;
88
+ var handleStringValueChange = (0, _react.useCallback)(function (event) {
89
+ setStringValue(event.target.value);
90
+ }, [setStringValue]);
91
+ var handleBlur = (0, _react.useCallback)(function (event) {
92
+ blurHandler(event);
93
+ var newValue = _logic.logic.stringToDate(stringValue, withTime);
94
+ if (!_logic.logic.isValid(newValue) || !_logic.logic.isBetweenMinAndMax(newValue, minDate, maxDate)) {
95
+ setStringValue(_logic.logic.valueToString(value, withTime));
96
+ return;
97
+ }
98
+ setStringValue(_logic.logic.valueToString(newValue, withTime));
99
+ onChange(newValue);
100
+ setCalendarDropdownValue(newValue);
101
+ }, [blurHandler, maxDate, minDate, onChange, setStringValue, stringValue, value, withTime]);
102
+ var handleCalendarChange = (0, _react.useCallback)(function (newValue) {
103
+ var _ref2 = calendarDropdownValue ? _logic.logic.getHoursAndMinutesFromDate(calendarDropdownValue) : [0, 0],
104
+ _ref3 = _slicedToArray(_ref2, 2),
105
+ hours = _ref3[0],
106
+ minutes = _ref3[1];
107
+ var newDate = _logic.logic.addHoursAndMinutesToDate(newValue, hours, minutes);
108
+ setCalendarDropdownValue(newDate);
109
+ }, [calendarDropdownValue]);
110
+ var handleTimePickerChange = (0, _react.useCallback)(function (newValue) {
111
+ if (calendarDropdownValue) {
112
+ var newDate = _logic.logic.addHoursAndMinutesToDate(calendarDropdownValue, newValue[0], newValue[1]);
113
+ setCalendarDropdownValue(newDate);
114
+ }
115
+ }, [calendarDropdownValue]);
116
+ var handleApply = (0, _react.useCallback)(function () {
117
+ var newValue = calendarDropdownValue;
118
+ if (!_logic.logic.isValid(newValue) || !_logic.logic.isBetweenMinAndMax(newValue, minDate, maxDate)) {
119
+ setStringValue(_logic.logic.valueToString(value, withTime));
120
+ return;
121
+ }
122
+ setStringValue(_logic.logic.valueToString(newValue, withTime));
123
+ onChange(newValue);
124
+ handleClose();
125
+ }, [calendarDropdownValue, handleClose, maxDate, minDate, onChange, setStringValue, value, withTime]);
126
+ return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
127
+ ref: isMobile ? undefined : elRef
128
+ }, /*#__PURE__*/_react["default"].createElement(_InputLabel.InputLabel, {
129
+ inFocus: inFocus,
130
+ label: label
131
+ }, /*#__PURE__*/_react["default"].createElement(S.InputWrapper, null, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
132
+ onClick: handleTrigger,
133
+ ref: inputRef,
134
+ hasError: hasError,
135
+ inFocus: inFocus,
136
+ name: name,
137
+ placeholder: placeholder || _logic.logic.getPlaceholder(withTime),
138
+ onFocus: focusHandler,
139
+ onBlur: handleBlur,
140
+ value: stringValue,
141
+ onChange: handleStringValueChange,
142
+ paddingRight: 44
143
+ }, _constants.SIZE_PARAMS_MAP[size])), /*#__PURE__*/_react["default"].createElement(S.Icon, {
144
+ onClick: handleTrigger,
145
+ $palette: palette
146
+ }, /*#__PURE__*/_react["default"].createElement(_CalendarIcon.CalendarIcon, null)))), !isMobile ? /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, _extends({
147
+ isOpen: isOpen,
148
+ isAutoPosition: true
149
+ }, dropdownProps), /*#__PURE__*/_react["default"].createElement(S.CalendarWithTimePicker, {
150
+ $dividerColor: palette.divider
151
+ }, /*#__PURE__*/_react["default"].createElement(S.CalendarWrapper, {
152
+ ref: calendarRef,
153
+ $dividerColor: palette.divider
154
+ }, /*#__PURE__*/_react["default"].createElement(_Calendar.Calendar, {
155
+ value: calendarDropdownValue,
156
+ onChange: handleCalendarChange,
157
+ minDate: minDate,
158
+ maxDate: maxDate,
159
+ onActiveStartDateChange: handleTimePickerSetHeight
160
+ })), /*#__PURE__*/_react["default"].createElement(_TimePicker.TimePicker, {
161
+ value: [(calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getHours()) || 0, (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getMinutes()) || 0],
162
+ onChange: handleTimePickerChange,
163
+ height: timePickerHeight,
164
+ maxTime: calendarDropdownValue && maxDate && calendarDropdownValue.getDay() === maxDate.getDay() ? [maxDate.getHours(), maxDate.getMinutes()] : undefined,
165
+ minTime: calendarDropdownValue && minDate && calendarDropdownValue.getDay() === minDate.getDay() ? [minDate.getHours(), minDate.getMinutes()] : undefined
166
+ })), /*#__PURE__*/_react["default"].createElement(S.DropdownActionButtons, null, /*#__PURE__*/_react["default"].createElement(S.ActionButton, {
167
+ type: 'button',
168
+ $bgColor: palette.cancelButton,
169
+ $disabledBgColor: palette.disabledButton,
170
+ onClick: handleCloseAndSkipDropdownValue
171
+ }, /*#__PURE__*/_react["default"].createElement(_CrossIcon.CrossIcon, null)), /*#__PURE__*/_react["default"].createElement(S.ActionButton, {
172
+ type: 'button',
173
+ $bgColor: palette.applyButton,
174
+ $disabledBgColor: palette.disabledButton,
175
+ onClick: handleApply,
176
+ disabled: !calendarDropdownValue || !_logic.logic.isBetweenMinAndMax(calendarDropdownValue, minDate, maxDate)
177
+ }, /*#__PURE__*/_react["default"].createElement(_CheckIcon.CheckIcon, null)))) : /*#__PURE__*/_react["default"].createElement(_MobileDateTimeCalendar.MobileDateTimeCalendar, {
178
+ isOpen: isOpen,
179
+ onClose: handleCloseAndSkipDropdownValue,
180
+ calendarDropdownValue: calendarDropdownValue,
181
+ onCalendarChange: handleCalendarChange,
182
+ onSubmit: handleApply,
183
+ afterSubmit: handleClose,
184
+ maxDate: maxDate,
185
+ minDate: minDate,
186
+ onTimeChange: handleTimePickerChange
187
+ }));
188
+ };
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { DateTimeInput } from '.';
3
+ import 'react-calendar/dist/Calendar.css';
4
+ declare const meta: Meta<typeof DateTimeInput>;
5
+ export default meta;
6
+ export declare const Default: StoryObj<typeof DateTimeInput>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.Default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _addonActions = require("@storybook/addon-actions");
10
+ var _ = require(".");
11
+ require("react-calendar/dist/Calendar.css");
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
15
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
+ 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."); }
17
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
+ var meta = {
22
+ title: 'form/DateTimeInput',
23
+ component: _.DateTimeInput,
24
+ tags: ['autodocs']
25
+ };
26
+ var _default = exports["default"] = meta;
27
+ var Component = function Component(props) {
28
+ var minDate = props.minDate,
29
+ maxDate = props.maxDate;
30
+ var _useState = (0, _react.useState)(null),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ value = _useState2[0],
33
+ setValue = _useState2[1];
34
+ var handleChange = (0, _react.useCallback)(function (date) {
35
+ setValue(date);
36
+ (0, _addonActions.action)('change')(date);
37
+ }, []);
38
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_.DateTimeInput, _extends({}, props, {
39
+ maxDate: maxDate ? new Date(maxDate) : undefined,
40
+ minDate: minDate ? new Date(minDate) : undefined,
41
+ value: value,
42
+ onChange: handleChange
43
+ })), /*#__PURE__*/_react["default"].createElement("button", {
44
+ type: 'button',
45
+ onClick: function onClick() {
46
+ return setValue(null);
47
+ }
48
+ }, "Reset"));
49
+ };
50
+ var COMMON_ARGS = {
51
+ hasError: false,
52
+ label: 'Label',
53
+ minDate: new Date().setHours(10, 10, 0, 0),
54
+ maxDate: new Date().setDate(new Date().getDate() + 5)
55
+ };
56
+ var Default = exports.Default = {
57
+ args: COMMON_ARGS,
58
+ render: Component
59
+ };
@@ -0,0 +1,9 @@
1
+ import { TAbstractPalette } from '../../../palette';
2
+ export type TDateTimeInputPalette = {
3
+ icon: string;
4
+ divider: string;
5
+ cancelButton: string;
6
+ applyButton: string;
7
+ disabledButton: string;
8
+ };
9
+ export declare const generateDateTimeInputPalette: (abstractPalette: TAbstractPalette) => TDateTimeInputPalette;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateDateTimeInputPalette = void 0;
7
+ var _hexToRgba = _interopRequireDefault(require("hex-to-rgba"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
+ var generateDateTimeInputPalette = exports.generateDateTimeInputPalette = function generateDateTimeInputPalette(abstractPalette) {
10
+ return {
11
+ icon: abstractPalette.primary,
12
+ divider: (0, _hexToRgba["default"])(abstractPalette.primary, 0.1),
13
+ cancelButton: abstractPalette.neutralUsual,
14
+ applyButton: abstractPalette.secondary,
15
+ disabledButton: abstractPalette.neutralFoggy
16
+ };
17
+ };
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import { TDateInputPalette } from '../DateInput/palette';
3
+ export declare const Wrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
+ export declare const InputWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
5
+ export declare const Icon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
6
+ $palette: TDateInputPalette;
7
+ }>> & string;
8
+ export declare const CalendarWithTimePicker: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
9
+ $dividerColor: string;
10
+ }>> & string;
11
+ export declare const CalendarWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
12
+ $dividerColor: string;
13
+ }>> & string;
14
+ export declare const DropdownActionButtons: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
15
+ export declare const ActionButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
16
+ $bgColor: string;
17
+ $disabledBgColor: string;
18
+ disabled?: boolean | undefined;
19
+ }>> & string;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Wrapper = exports.InputWrapper = exports.Icon = exports.DropdownActionButtons = exports.CalendarWrapper = exports.CalendarWithTimePicker = exports.ActionButton = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ var _breakpoints = require("../../../breakpoints");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
11
+ displayName: "styles__Wrapper",
12
+ componentId: "sc-jdd8eb-0"
13
+ })(["position:relative;"]);
14
+ var InputWrapper = exports.InputWrapper = _styledComponents["default"].div.withConfig({
15
+ displayName: "styles__InputWrapper",
16
+ componentId: "sc-jdd8eb-1"
17
+ })(["position:relative;"]);
18
+ var Icon = exports.Icon = _styledComponents["default"].div.withConfig({
19
+ displayName: "styles__Icon",
20
+ componentId: "sc-jdd8eb-2"
21
+ })(["position:absolute;right:12px;top:0;height:100%;display:flex;justify-content:center;flex-direction:column;cursor:pointer;color:", ";"], function (_ref) {
22
+ var $palette = _ref.$palette;
23
+ return $palette.icon;
24
+ });
25
+ var CalendarWithTimePicker = exports.CalendarWithTimePicker = _styledComponents["default"].div.withConfig({
26
+ displayName: "styles__CalendarWithTimePicker",
27
+ componentId: "sc-jdd8eb-3"
28
+ })(["display:flex;align-items:flex-start;border-bottom:1px solid ", ";"], function (_ref2) {
29
+ var $dividerColor = _ref2.$dividerColor;
30
+ return $dividerColor;
31
+ });
32
+ var CalendarWrapper = exports.CalendarWrapper = _styledComponents["default"].div.withConfig({
33
+ displayName: "styles__CalendarWrapper",
34
+ componentId: "sc-jdd8eb-4"
35
+ })(["padding:16px;border-right:1px solid ", ";@media ", "{padding:15px;}"], function (_ref3) {
36
+ var $dividerColor = _ref3.$dividerColor;
37
+ return $dividerColor;
38
+ }, _breakpoints.breakpoints.sm);
39
+ var DropdownActionButtons = exports.DropdownActionButtons = _styledComponents["default"].div.withConfig({
40
+ displayName: "styles__DropdownActionButtons",
41
+ componentId: "sc-jdd8eb-5"
42
+ })(["display:flex;justify-content:flex-end;padding:12px 16px;gap:8px;"]);
43
+ var ActionButton = exports.ActionButton = _styledComponents["default"].button.withConfig({
44
+ displayName: "styles__ActionButton",
45
+ componentId: "sc-jdd8eb-6"
46
+ })(["width:36px;height:36px;border-radius:50%;display:flex;justify-content:center;align-items:center;border:none;cursor:pointer;outline:none;background-color:", ";&:hover{opacity:", ";}&:disabled{background-color:", ";cursor:not-allowed;}"], function (_ref4) {
47
+ var $bgColor = _ref4.$bgColor;
48
+ return $bgColor;
49
+ }, function (_ref5) {
50
+ var disabled = _ref5.disabled;
51
+ return disabled ? 1 : 0.8;
52
+ }, function (_ref6) {
53
+ var $disabledBgColor = _ref6.$disabledBgColor;
54
+ return $disabledBgColor;
55
+ });
@@ -26,6 +26,9 @@ import { TTogglePalette } from '../components/form/Toggle/palette';
26
26
  import { TReadOnlyLabelValueFieldPalette } from '../components/common/ReadOnlyLabelValueField/palette';
27
27
  import { TPointsLoaderPalette } from '../components/common/PointsLoader/palette';
28
28
  import { TTagsInputPalette } from '../components/form/TagsInput/palette';
29
+ import { TTimePickerPalette } from '../components/form/DateTimeInput/components/TimePicker/palette';
30
+ import { TDateTimeInputPalette } from '../components/form/DateTimeInput/palette';
31
+ import { TMobileDateTimeCalendarPalette } from '../components/form/DateTimeInput/components/MobileDateTimeCalendar/palette';
29
32
  type TContext = {
30
33
  skeleton: TSkeletonPalette;
31
34
  invoiceboxSpinner: TInvoiceboxSpinnerPalette;
@@ -54,6 +57,9 @@ type TContext = {
54
57
  readOnlyLabelValueField: TReadOnlyLabelValueFieldPalette;
55
58
  pointsLoader: TPointsLoaderPalette;
56
59
  tagsInput: TTagsInputPalette;
60
+ timePicker: TTimePickerPalette;
61
+ dateTimeInput: TDateTimeInputPalette;
62
+ mobileDateTimeCalendar: TMobileDateTimeCalendarPalette;
57
63
  };
58
64
  export declare const PaletteContext: import("react").Context<TContext>;
59
65
  export {};
@@ -33,6 +33,9 @@ var _palette24 = require("../components/form/Toggle/palette");
33
33
  var _palette25 = require("../components/common/ReadOnlyLabelValueField/palette");
34
34
  var _palette26 = require("../components/common/PointsLoader/palette");
35
35
  var _palette27 = require("../components/form/TagsInput/palette");
36
+ var _palette28 = require("../components/form/DateTimeInput/components/TimePicker/palette");
37
+ var _palette29 = require("../components/form/DateTimeInput/palette");
38
+ var _palette30 = require("../components/form/DateTimeInput/components/MobileDateTimeCalendar/palette");
36
39
  var PaletteContext = exports.PaletteContext = /*#__PURE__*/(0, _react.createContext)({
37
40
  skeleton: (0, _palette.generateSkeletonPalette)(_constants.defaultAbstractPalette),
38
41
  invoiceboxSpinner: (0, _palette2.generateInvoiceboxSpinnerPalette)(_constants.defaultAbstractPalette),
@@ -60,5 +63,8 @@ var PaletteContext = exports.PaletteContext = /*#__PURE__*/(0, _react.createCont
60
63
  toggle: (0, _palette24.generateTogglePalette)(_constants.defaultAbstractPalette),
61
64
  readOnlyLabelValueField: (0, _palette25.generateReadOnlyLabelValueFieldPalette)(_constants.defaultAbstractPalette),
62
65
  pointsLoader: (0, _palette26.generatePointsLoaderPalette)(_constants.defaultAbstractPalette),
63
- tagsInput: (0, _palette27.generateTagsInputPalette)(_constants.defaultAbstractPalette)
66
+ tagsInput: (0, _palette27.generateTagsInputPalette)(_constants.defaultAbstractPalette),
67
+ timePicker: (0, _palette28.generateTimePickerPalette)(_constants.defaultAbstractPalette),
68
+ dateTimeInput: (0, _palette29.generateDateTimeInputPalette)(_constants.defaultAbstractPalette),
69
+ mobileDateTimeCalendar: (0, _palette30.generateMobileDateTimeCalendarPalette)(_constants.defaultAbstractPalette)
64
70
  });
@@ -34,6 +34,9 @@ var _palette24 = require("../components/form/Toggle/palette");
34
34
  var _palette25 = require("../components/common/ReadOnlyLabelValueField/palette");
35
35
  var _palette26 = require("../components/common/PointsLoader/palette");
36
36
  var _palette27 = require("../components/form/TagsInput/palette");
37
+ var _palette28 = require("../components/form/DateTimeInput/components/TimePicker/palette");
38
+ var _palette29 = require("../components/form/DateTimeInput/palette");
39
+ var _palette30 = require("../components/form/DateTimeInput/components/MobileDateTimeCalendar/palette");
37
40
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
38
41
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
39
42
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
@@ -80,7 +83,10 @@ var PaletteProvider = exports.PaletteProvider = function PaletteProvider(_ref) {
80
83
  toggle: (0, _palette24.generateTogglePalette)(mergedAbstractPalette),
81
84
  readOnlyLabelValueField: (0, _palette25.generateReadOnlyLabelValueFieldPalette)(mergedAbstractPalette),
82
85
  pointsLoader: (0, _palette26.generatePointsLoaderPalette)(mergedAbstractPalette),
83
- tagsInput: (0, _palette27.generateTagsInputPalette)(mergedAbstractPalette)
86
+ tagsInput: (0, _palette27.generateTagsInputPalette)(mergedAbstractPalette),
87
+ timePicker: (0, _palette28.generateTimePickerPalette)(mergedAbstractPalette),
88
+ dateTimeInput: (0, _palette29.generateDateTimeInputPalette)(mergedAbstractPalette),
89
+ mobileDateTimeCalendar: (0, _palette30.generateMobileDateTimeCalendarPalette)(mergedAbstractPalette)
84
90
  };
85
91
  }, [mergedSkeletonPalette, mergedAbstractPalette]);
86
92
  return /*#__PURE__*/_react["default"].createElement(_context.PaletteContext.Provider, {
@@ -26,4 +26,7 @@ export declare const usePalette: () => {
26
26
  readOnlyLabelValueField: import("../components/common/ReadOnlyLabelValueField/palette").TReadOnlyLabelValueFieldPalette;
27
27
  pointsLoader: import("../components/common/PointsLoader/palette").TPointsLoaderPalette;
28
28
  tagsInput: import("../components/form/TagsInput/palette").TTagsInputPalette;
29
+ timePicker: import("../components/form/DateTimeInput/components/TimePicker/palette").TTimePickerPalette;
30
+ dateTimeInput: import("../components/form/DateTimeInput/palette").TDateTimeInputPalette;
31
+ mobileDateTimeCalendar: import("../components/form/DateTimeInput/components/MobileDateTimeCalendar/palette").TMobileDateTimeCalendarPalette;
29
32
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicebox/ui",
3
- "version": "0.1.0-alpha.222",
3
+ "version": "0.1.0-alpha.224",
4
4
  "description": "Invoicebox UI",
5
5
  "license": "Apache License 2.0",
6
6
  "scripts": {
@@ -1 +0,0 @@
1
- export declare const Icon: () => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { Icon } from '.';
3
- declare const meta: Meta<typeof Icon>;
4
- export default meta;
5
- export declare const Default: StoryObj<typeof Icon>;