@invoicebox/ui 0.1.0-alpha.256 → 0.1.0-alpha.258

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.
@@ -47,6 +47,10 @@ var MobileDrawerDateTimeCalendar = exports.MobileDrawerDateTimeCalendar = functi
47
47
  setIsDateStep(true);
48
48
  }
49
49
  };
50
+ var maxTime = calendarDropdownValue && maxDate && calendarDropdownValue.getDay() === maxDate.getDay() ? [maxDate.getHours(), maxDate.getMinutes()] : undefined;
51
+ var minTime = calendarDropdownValue && minDate && calendarDropdownValue.getDay() === minDate.getDay() ? [minDate.getHours(), minDate.getMinutes()] : undefined;
52
+ var currentHour = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getHours()) || 0;
53
+ var currentMinute = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getMinutes()) || 0;
50
54
  return /*#__PURE__*/_react["default"].createElement(_Drawer.Drawer, {
51
55
  onClose: handleClose,
52
56
  isOpen: isOpen,
@@ -63,9 +67,9 @@ var MobileDrawerDateTimeCalendar = exports.MobileDrawerDateTimeCalendar = functi
63
67
  maxDate: maxDate,
64
68
  isLargeMobileSize: true
65
69
  })) : /*#__PURE__*/_react["default"].createElement(S.TimePickerWrapper, null, /*#__PURE__*/_react["default"].createElement(_TimePicker.TimePicker, {
66
- value: [(calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getHours()) || 0, (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getMinutes()) || 0],
70
+ value: [currentHour, currentMinute],
67
71
  onChange: onTimeChange,
68
- maxTime: calendarDropdownValue && maxDate && calendarDropdownValue.getDay() === maxDate.getDay() ? [maxDate.getHours(), maxDate.getMinutes()] : undefined,
69
- minTime: calendarDropdownValue && minDate && calendarDropdownValue.getDay() === minDate.getDay() ? [minDate.getHours(), minDate.getMinutes()] : undefined
72
+ maxTime: maxTime,
73
+ minTime: minTime
70
74
  })));
71
75
  };
@@ -1,13 +1,3 @@
1
1
  /// <reference types="react" />
2
- export declare const Header: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
3
- $borderColor: string;
4
- }>> & string;
5
- export declare const CloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
6
- export declare const HeadLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, {
7
- $color: string;
8
- }>> & string & Omit<import("react").FC<import("../../../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
9
- export declare const ApplyButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
10
- $color: string;
11
- }>> & string;
12
2
  export declare const MobileCalendarWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
13
3
  export declare const TimePickerWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -3,40 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TimePickerWrapper = exports.MobileCalendarWrapper = exports.Header = exports.HeadLabel = exports.CloseButton = exports.ApplyButton = void 0;
6
+ exports.TimePickerWrapper = exports.MobileCalendarWrapper = void 0;
7
7
  var _styledComponents = _interopRequireDefault(require("styled-components"));
8
- var _Typography = require("../../../../common/Typography");
9
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
- var Header = exports.Header = _styledComponents["default"].div.withConfig({
11
- displayName: "styles__Header",
12
- componentId: "sc-vw0y4c-0"
13
- })(["display:flex;gap:8px;align-items:center;border-bottom:1px solid ", ";padding:28px 16px 8px;"], function (_ref) {
14
- var $borderColor = _ref.$borderColor;
15
- return $borderColor;
16
- });
17
- var CloseButton = exports.CloseButton = _styledComponents["default"].button.withConfig({
18
- displayName: "styles__CloseButton",
19
- componentId: "sc-vw0y4c-1"
20
- })(["width:36px;height:36px;background:transparent;border:none;cursor:pointer;outline:none;color:inherit;"]);
21
- var HeadLabel = exports.HeadLabel = (0, _styledComponents["default"])(_Typography.Typography).withConfig({
22
- displayName: "styles__HeadLabel",
23
- componentId: "sc-vw0y4c-2"
24
- })(["flex:1;color:", ";"], function (_ref2) {
25
- var $color = _ref2.$color;
26
- return $color;
27
- });
28
- var ApplyButton = exports.ApplyButton = _styledComponents["default"].button.withConfig({
29
- displayName: "styles__ApplyButton",
30
- componentId: "sc-vw0y4c-3"
31
- })(["background:transparent;border:none;cursor:pointer;outline:none;color:", ";&:disabled{opacity:0.4;}"], function (_ref3) {
32
- var $color = _ref3.$color;
33
- return $color;
34
- });
35
9
  var MobileCalendarWrapper = exports.MobileCalendarWrapper = _styledComponents["default"].div.withConfig({
36
10
  displayName: "styles__MobileCalendarWrapper",
37
- componentId: "sc-vw0y4c-4"
11
+ componentId: "sc-vw0y4c-0"
38
12
  })(["padding:18px 16px 30px;display:flex;justify-content:center;"]);
39
13
  var TimePickerWrapper = exports.TimePickerWrapper = _styledComponents["default"].div.withConfig({
40
14
  displayName: "styles__TimePickerWrapper",
41
- componentId: "sc-vw0y4c-5"
42
- })(["padding-bottom:30px;"]);
15
+ componentId: "sc-vw0y4c-1"
16
+ })(["padding-bottom:30px;display:flex;justify-content:center;"]);
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ type TProps = {
3
+ numbers: Array<number>;
4
+ value: number;
5
+ onChange: (value: number) => void;
6
+ };
7
+ declare const MobileNumbersColumn: FC<TProps>;
8
+ export default MobileNumbersColumn;
@@ -0,0 +1,196 @@
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"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var S = _interopRequireWildcard(require("./styles"));
10
+ 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); }
11
+ 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; }
12
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
13
+ 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."); }
14
+ 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; } }
15
+ 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; }
16
+ 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; } }
17
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
18
+ // Константы для оптимизации
19
+ var OPACITY_STEPS = [1, 0.8, 0.5, 0.3, 0.2];
20
+ var INCLINE_STEPS = [0, 20, 45, 70, 80];
21
+ var MobileNumbersColumn = function MobileNumbersColumn(_ref) {
22
+ var numbers = _ref.numbers,
23
+ value = _ref.value,
24
+ onChange = _ref.onChange;
25
+ var _useState = (0, _react.useState)(null),
26
+ _useState2 = _slicedToArray(_useState, 2),
27
+ centerNumber = _useState2[0],
28
+ setCenterNumber = _useState2[1];
29
+ var containerRef = (0, _react.useRef)(null);
30
+ var itemsRef = (0, _react.useRef)([]);
31
+ var isScrollingRef = (0, _react.useRef)(null);
32
+ var rafRef = (0, _react.useRef)(null);
33
+
34
+ // Функция для центрирования элемента
35
+ var snapToCenter = (0, _react.useCallback)(function (index) {
36
+ if (!containerRef.current || index === -1) return;
37
+ var container = containerRef.current;
38
+ var item = itemsRef.current[index];
39
+ if (!item) return;
40
+ var scrollOffset = item.offsetTop - container.clientHeight / 2 + item.clientHeight / 2;
41
+ container.scrollTo({
42
+ top: scrollOffset,
43
+ behavior: 'smooth'
44
+ });
45
+ }, []);
46
+
47
+ // Оптимизированная функция поиска центра
48
+ var findCenterElement = (0, _react.useCallback)(function () {
49
+ if (!containerRef.current) return -1;
50
+ var container = containerRef.current;
51
+ var containerRect = container.getBoundingClientRect();
52
+ var containerCenter = containerRect.top + containerRect.height / 2;
53
+ var minDistance = Infinity;
54
+ var closestIndex = -1;
55
+
56
+ // Находим только ближайший индекс
57
+ itemsRef.current.forEach(function (item, index) {
58
+ if (item) {
59
+ var itemRect = item.getBoundingClientRect();
60
+ var itemCenter = itemRect.top + itemRect.height / 2;
61
+ var distance = Math.abs(itemCenter - containerCenter);
62
+ if (distance < minDistance) {
63
+ minDistance = distance;
64
+ closestIndex = index;
65
+ }
66
+ }
67
+ });
68
+ var newNumber = numbers.find(function (a, index) {
69
+ return index === closestIndex;
70
+ });
71
+ if (closestIndex !== -1 && typeof newNumber === 'number') {
72
+ setCenterNumber(newNumber.toString());
73
+ }
74
+ return closestIndex;
75
+ }, [numbers]);
76
+ (0, _react.useEffect)(function () {
77
+ if (value) {
78
+ var indexValue = numbers.indexOf(value);
79
+ snapToCenter(indexValue);
80
+ } else {
81
+ snapToCenter(0);
82
+ }
83
+ }, [numbers, snapToCenter, value]);
84
+
85
+ // Оптимизированный обработчик скролла
86
+ (0, _react.useEffect)(function () {
87
+ if (!containerRef.current) return;
88
+ var container = containerRef.current;
89
+ var handleScroll = function handleScroll() {
90
+ if (rafRef.current) {
91
+ cancelAnimationFrame(rafRef.current);
92
+ }
93
+ rafRef.current = requestAnimationFrame(function () {
94
+ findCenterElement();
95
+ });
96
+ if (isScrollingRef.current) {
97
+ clearTimeout(isScrollingRef.current);
98
+ }
99
+ isScrollingRef.current = setTimeout(function () {
100
+ var closestIndex = findCenterElement();
101
+ if (closestIndex !== -1) {
102
+ snapToCenter(closestIndex);
103
+ var newNumber = numbers.find(function (item, index) {
104
+ return index === closestIndex;
105
+ });
106
+ if (typeof newNumber === 'number') {
107
+ onChange(newNumber);
108
+ }
109
+ }
110
+ }, 150);
111
+ };
112
+ container.addEventListener('scroll', handleScroll, {
113
+ passive: true
114
+ });
115
+ setTimeout(function () {
116
+ return findCenterElement();
117
+ }, 0);
118
+ return function () {
119
+ container.removeEventListener('scroll', handleScroll);
120
+ if (rafRef.current) {
121
+ cancelAnimationFrame(rafRef.current);
122
+ }
123
+ if (isScrollingRef.current) {
124
+ clearTimeout(isScrollingRef.current);
125
+ }
126
+ };
127
+ }, [findCenterElement, numbers, onChange, snapToCenter]);
128
+
129
+ // Функция получения стилей на основе индекса
130
+ var getItemStyles = (0, _react.useCallback)(function (index) {
131
+ if (!centerNumber) return {
132
+ opacity: 0.2,
133
+ incline: 80
134
+ };
135
+ var activeIndex = numbers.indexOf(Number(centerNumber));
136
+
137
+ // Расстояние от активного элемента
138
+ var distance = Math.abs(index - activeIndex);
139
+ var maxDistance = 5; // Максимальное расстояние для применения эффекта
140
+
141
+ // Выбираем стиль на основе расстояния
142
+ var stepIndex = Math.min(distance, maxDistance);
143
+
144
+ // Используем предвычисленные значения
145
+ var opacityIndex = Math.min(stepIndex, OPACITY_STEPS.length - 1);
146
+ var inclineIndex = Math.min(stepIndex, INCLINE_STEPS.length - 1);
147
+ return {
148
+ opacity: OPACITY_STEPS[opacityIndex],
149
+ incline: INCLINE_STEPS[inclineIndex]
150
+ };
151
+ }, [centerNumber, numbers]);
152
+ return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
153
+ ref: containerRef
154
+ }, /*#__PURE__*/_react["default"].createElement(S.Number, {
155
+ $opacity: 0,
156
+ $isActive: false,
157
+ $incline: 0
158
+ }), /*#__PURE__*/_react["default"].createElement(S.Number, {
159
+ $opacity: 0,
160
+ $isActive: false,
161
+ $incline: 0
162
+ }), /*#__PURE__*/_react["default"].createElement(S.Number, {
163
+ $opacity: 0,
164
+ $isActive: false,
165
+ $incline: 0
166
+ }), numbers.map(function (numberItem, index) {
167
+ var _getItemStyles = getItemStyles(index),
168
+ opacity = _getItemStyles.opacity,
169
+ incline = _getItemStyles.incline;
170
+ var isActive = centerNumber === numberItem.toString();
171
+ return /*#__PURE__*/_react["default"].createElement(S.Number, {
172
+ key: numberItem,
173
+ $opacity: opacity,
174
+ $incline: incline,
175
+ $isActive: isActive,
176
+ ref: function ref(el) {
177
+ if (el) {
178
+ itemsRef.current[index] = el;
179
+ }
180
+ }
181
+ }, numberItem < 10 ? "0".concat(numberItem) : numberItem);
182
+ }), /*#__PURE__*/_react["default"].createElement(S.Number, {
183
+ $opacity: 0,
184
+ $isActive: false,
185
+ $incline: 0
186
+ }), /*#__PURE__*/_react["default"].createElement(S.Number, {
187
+ $opacity: 0,
188
+ $isActive: false,
189
+ $incline: 0
190
+ }), /*#__PURE__*/_react["default"].createElement(S.Number, {
191
+ $opacity: 0,
192
+ $isActive: false,
193
+ $incline: 0
194
+ }));
195
+ };
196
+ var _default = exports["default"] = MobileNumbersColumn;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ 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;
3
+ export declare const Number: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
4
+ $opacity: number;
5
+ $incline: number;
6
+ $isActive: boolean;
7
+ }>> & string;
@@ -0,0 +1,27 @@
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.Wrapper = exports.Number = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ 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); }
10
+ 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; }
11
+ var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
12
+ displayName: "styles__Wrapper",
13
+ componentId: "sc-jqg7lg-0"
14
+ })(["height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;width:100%;position:relative;text-align:right;transform:translateZ(0);backface-visibility:hidden;will-change:transform;"]);
15
+ var Number = exports.Number = _styledComponents["default"].div.withConfig({
16
+ displayName: "styles__Number",
17
+ componentId: "sc-jqg7lg-1"
18
+ })(["opacity:", ";width:28px;height:28px;flex-shrink:0;transform:translateZ(0) rotateX(", "deg);backface-visibility:hidden;will-change:transform,opacity;transition:all 0.1s ease;", ""], function (_ref) {
19
+ var $opacity = _ref.$opacity;
20
+ return $opacity;
21
+ }, function (_ref2) {
22
+ var $incline = _ref2.$incline;
23
+ return $incline;
24
+ }, function (_ref3) {
25
+ var $isActive = _ref3.$isActive;
26
+ return $isActive && (0, _styledComponents.css)(["margin:4px 0;"]);
27
+ });
@@ -9,6 +9,9 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var S = _interopRequireWildcard(require("./styles"));
10
10
  var _palette = require("../../../../../palette");
11
11
  var _Scrollbar = require("../../../../common/Scrollbar");
12
+ var _useMedia = require("../../../../../hooks/useMedia");
13
+ var _MobileNumbersColumn = _interopRequireDefault(require("../MobileNumbersColumn"));
14
+ var _Typography = require("../../../../common/Typography");
12
15
  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
16
  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
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -18,6 +21,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
18
21
  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
22
  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
23
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
24
+ var isIphone = /iPhone/.test(navigator.userAgent);
21
25
  var HOURS = new Array(24).fill(0).map(function (item, index) {
22
26
  return index;
23
27
  });
@@ -35,6 +39,7 @@ var TimePicker = exports.TimePicker = function TimePicker(_ref) {
35
39
  maxTime = _ref.maxTime,
36
40
  minTime = _ref.minTime;
37
41
  var palette = (0, _palette.useComponentPalette)('timePicker');
42
+ var isMobile = (0, _useMedia.useMobile)();
38
43
  var _value = _slicedToArray(value, 2),
39
44
  hour = _value[0],
40
45
  minute = _value[1];
@@ -66,6 +71,25 @@ var TimePicker = exports.TimePicker = function TimePicker(_ref) {
66
71
  }
67
72
  return false;
68
73
  };
74
+ var mobileHours = HOURS.filter(function (hourItem) {
75
+ return !getIsDisabled(hourItem, maxTimeHour ? maxTimeHour : 23, minTimeHour ? minTimeHour : 0);
76
+ });
77
+ var mobileMinutes = MINUTES.filter(function (minuteItem) {
78
+ return !getIsDisabledMinute(minuteItem);
79
+ });
80
+ if (isMobile) {
81
+ return /*#__PURE__*/_react["default"].createElement(S.MobileWrapper, {
82
+ $isIphone: isIphone
83
+ }, /*#__PURE__*/_react["default"].createElement(S.SelectedMask, null), /*#__PURE__*/_react["default"].createElement(_MobileNumbersColumn["default"], {
84
+ numbers: mobileHours,
85
+ onChange: handleHourChange,
86
+ value: hour
87
+ }), /*#__PURE__*/_react["default"].createElement(_MobileNumbersColumn["default"], {
88
+ numbers: mobileMinutes,
89
+ onChange: handleMinuteChange,
90
+ value: minute
91
+ }));
92
+ }
69
93
  return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
70
94
  $height: height
71
95
  }, /*#__PURE__*/_react["default"].createElement(S.ColumnWrapper, {
@@ -73,7 +97,7 @@ var TimePicker = exports.TimePicker = function TimePicker(_ref) {
73
97
  }, /*#__PURE__*/_react["default"].createElement(S.Label, {
74
98
  $color: palette.label,
75
99
  variant: 'captionRegular'
76
- }, "\u0447\u0430\u0441"), /*#__PURE__*/_react["default"].createElement(S.MobileScrollWrapper, null, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
100
+ }, "\u0447\u0430\u0441"), /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
77
101
  trackWidth: 3
78
102
  }, /*#__PURE__*/_react["default"].createElement(S.ValuesWrapper, null, HOURS.map(function (hourItem) {
79
103
  return /*#__PURE__*/_react["default"].createElement(S.ValueWrapper, {
@@ -88,15 +112,15 @@ var TimePicker = exports.TimePicker = function TimePicker(_ref) {
88
112
  return handleHourChange(hourItem);
89
113
  },
90
114
  disabled: getIsDisabled(hourItem, maxTimeHour ? maxTimeHour : 23, minTimeHour ? minTimeHour : 0)
91
- }, /*#__PURE__*/_react["default"].createElement(S.Value, {
115
+ }, /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
92
116
  variant: 'captionRegular'
93
117
  }, hourItem));
94
- }))))), /*#__PURE__*/_react["default"].createElement(S.ColumnWrapper, {
118
+ })))), /*#__PURE__*/_react["default"].createElement(S.ColumnWrapper, {
95
119
  $borderColor: palette.divider
96
120
  }, /*#__PURE__*/_react["default"].createElement(S.Label, {
97
121
  $color: palette.label,
98
122
  variant: 'captionRegular'
99
- }, "\u043C\u0438\u043D"), /*#__PURE__*/_react["default"].createElement(S.MobileScrollWrapper, null, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
123
+ }, "\u043C\u0438\u043D"), /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
100
124
  trackWidth: 3
101
125
  }, /*#__PURE__*/_react["default"].createElement(S.ValuesWrapper, null, MINUTES.map(function (minuteItem) {
102
126
  return /*#__PURE__*/_react["default"].createElement(S.ValueWrapper, {
@@ -111,8 +135,8 @@ var TimePicker = exports.TimePicker = function TimePicker(_ref) {
111
135
  return handleMinuteChange(minuteItem);
112
136
  },
113
137
  disabled: getIsDisabledMinute(minuteItem)
114
- }, /*#__PURE__*/_react["default"].createElement(S.Value, {
138
+ }, /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
115
139
  variant: 'captionRegular'
116
140
  }, minuteItem));
117
- }))))));
141
+ })))));
118
142
  };
@@ -29,7 +29,7 @@ var Default = exports.Default = {
29
29
  maxTime: [22, 15]
30
30
  },
31
31
  render: function Render(props) {
32
- var _useState = (0, _react.useState)([0, 0]),
32
+ var _useState = (0, _react.useState)([11, 0]),
33
33
  _useState2 = _slicedToArray(_useState, 2),
34
34
  time = _useState2[0],
35
35
  setTime = _useState2[1];
@@ -16,5 +16,7 @@ export declare const ValueWrapper: import("styled-components/dist/types").IStyle
16
16
  $bgActive: string;
17
17
  $colorDisabled: string;
18
18
  }>> & string;
19
- export declare const Value: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, import("styled-components/dist/types").BaseObject>> & string & Omit<import("react").FC<import("../../../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
20
- export declare const MobileScrollWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
19
+ export declare const MobileWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
20
+ $isIphone: boolean;
21
+ }>> & string;
22
+ export declare const SelectedMask: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -3,60 +3,59 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Wrapper = exports.ValuesWrapper = exports.ValueWrapper = exports.Value = exports.MobileScrollWrapper = exports.Label = exports.ColumnWrapper = void 0;
6
+ exports.Wrapper = exports.ValuesWrapper = exports.ValueWrapper = exports.SelectedMask = exports.MobileWrapper = exports.Label = exports.ColumnWrapper = void 0;
7
7
  var _styledComponents = _interopRequireDefault(require("styled-components"));
8
8
  var _Typography = require("../../../../common/Typography");
9
- var _breakpoints = require("../../../../../breakpoints");
10
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
10
  var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
12
11
  displayName: "styles__Wrapper",
13
12
  componentId: "sc-okz9lx-0"
14
- })(["display:flex;width:93px;box-sizing:border-box;height:", "px;@media ", "{flex-direction:column;width:auto;height:auto;}"], function (_ref) {
13
+ })(["display:flex;width:93px;box-sizing:border-box;height:", "px;"], function (_ref) {
15
14
  var $height = _ref.$height;
16
15
  return $height;
17
- }, _breakpoints.breakpoints.sm);
16
+ });
18
17
  var ColumnWrapper = exports.ColumnWrapper = _styledComponents["default"].div.withConfig({
19
18
  displayName: "styles__ColumnWrapper",
20
19
  componentId: "sc-okz9lx-1"
21
- })(["display:flex;flex-direction:column;width:46px;&:last-child{border-left:1px solid ", ";}@media ", "{flex-direction:row;width:auto;align-items:center;overflow:hidden;&:last-child{border:none;border-top:1px solid ", ";}}"], function (_ref2) {
20
+ })(["display:flex;flex-direction:column;width:46px;&:last-child{border-left:1px solid ", ";}"], function (_ref2) {
22
21
  var $borderColor = _ref2.$borderColor;
23
22
  return $borderColor;
24
- }, _breakpoints.breakpoints.sm, function (_ref3) {
25
- var $borderColor = _ref3.$borderColor;
26
- return $borderColor;
27
23
  });
28
24
  var Label = exports.Label = (0, _styledComponents["default"])(_Typography.Typography).withConfig({
29
25
  displayName: "styles__Label",
30
26
  componentId: "sc-okz9lx-2"
31
- })(["padding:8px 0;color:", ";text-align:center;@media ", "{font-size:15px;font-weight:400;line-height:20px;padding:14px;}"], function (_ref4) {
32
- var $color = _ref4.$color;
27
+ })(["padding:8px 0;color:", ";text-align:center;"], function (_ref3) {
28
+ var $color = _ref3.$color;
33
29
  return $color;
34
- }, _breakpoints.breakpoints.sm);
30
+ });
35
31
  var ValuesWrapper = exports.ValuesWrapper = _styledComponents["default"].div.withConfig({
36
32
  displayName: "styles__ValuesWrapper",
37
33
  componentId: "sc-okz9lx-3"
38
- })(["display:flex;flex-direction:column;gap:4px;width:30px;padding:8px 0;box-sizing:border-box;margin:0 auto;@media ", "{flex-direction:row;gap:0;margin:0;width:auto;padding:8px 0;}"], _breakpoints.breakpoints.sm);
34
+ })(["display:flex;flex-direction:column;gap:4px;width:30px;padding:8px 0;box-sizing:border-box;margin:0 auto;"]);
39
35
  var ValueWrapper = exports.ValueWrapper = _styledComponents["default"].button.withConfig({
40
36
  displayName: "styles__ValueWrapper",
41
37
  componentId: "sc-okz9lx-4"
42
- })(["padding:2px 0;display:flex;justify-content:center;align-items:center;color:", ";background:", ";border-radius:5px;border:none;cursor:pointer;outline:none;&:disabled{cursor:not-allowed;color:", ";}@media ", "{flex-direction:row;width:44px;height:48px;flex-shrink:0;border-radius:50%;padding:0;}"], function (_ref5) {
43
- var $isActive = _ref5.$isActive,
44
- $color = _ref5.$color,
45
- $colorActive = _ref5.$colorActive;
38
+ })(["padding:2px 0;display:flex;justify-content:center;align-items:center;color:", ";background:", ";border-radius:5px;border:none;cursor:pointer;outline:none;&:disabled{cursor:not-allowed;color:", ";}"], function (_ref4) {
39
+ var $isActive = _ref4.$isActive,
40
+ $color = _ref4.$color,
41
+ $colorActive = _ref4.$colorActive;
46
42
  return $isActive ? $colorActive : $color;
47
- }, function (_ref6) {
48
- var $isActive = _ref6.$isActive,
49
- $bgActive = _ref6.$bgActive;
43
+ }, function (_ref5) {
44
+ var $isActive = _ref5.$isActive,
45
+ $bgActive = _ref5.$bgActive;
50
46
  return $isActive ? $bgActive : 'inherit';
51
- }, function (_ref7) {
52
- var $colorDisabled = _ref7.$colorDisabled;
47
+ }, function (_ref6) {
48
+ var $colorDisabled = _ref6.$colorDisabled;
53
49
  return $colorDisabled;
54
- }, _breakpoints.breakpoints.sm);
55
- var Value = exports.Value = (0, _styledComponents["default"])(_Typography.Typography).withConfig({
56
- displayName: "styles__Value",
50
+ });
51
+ var MobileWrapper = exports.MobileWrapper = _styledComponents["default"].div.withConfig({
52
+ displayName: "styles__MobileWrapper",
57
53
  componentId: "sc-okz9lx-5"
58
- })(["@media ", "{font-size:15px;font-weight:400;line-height:20px;}"], _breakpoints.breakpoints.sm);
59
- var MobileScrollWrapper = exports.MobileScrollWrapper = _styledComponents["default"].div.withConfig({
60
- displayName: "styles__MobileScrollWrapper",
54
+ })(["height:178px;width:140px;display:flex;font-size:23px;font-weight:400;line-height:28px;color:#3c3c4399;position:relative;font-family:", ";"], function (_ref7) {
55
+ var $isIphone = _ref7.$isIphone;
56
+ return $isIphone ? '-apple-system, BlinkMacSystemFont' : "'Roboto', sans-serif";
57
+ });
58
+ var SelectedMask = exports.SelectedMask = _styledComponents["default"].div.withConfig({
59
+ displayName: "styles__SelectedMask",
61
60
  componentId: "sc-okz9lx-6"
62
- })(["display:contents;@media ", "{display:block;overflow:hidden;}"], _breakpoints.breakpoints.sm);
61
+ })(["position:absolute;top:50%;left:0;right:0;height:34px;background-color:#74748014;z-index:10;transform:translateY(-50%);flex-shrink:0;border-radius:8px;pointer-events:none;"]);
@@ -201,7 +201,7 @@ var Select = exports.Select = function Select(_ref) {
201
201
  maxHeight: scrollbarMaxHeight
202
202
  }, scrollbarContent, /*#__PURE__*/_react["default"].createElement(S.DrawerBottom, null)));
203
203
  }
204
- return emptyLabel;
204
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, dropdownHeader, " ", emptyLabel);
205
205
  };
206
206
  var renderedValue = (0, _react.useMemo)(function () {
207
207
  if (!renderValue || !(selectedOption !== null && selectedOption !== void 0 && selectedOption.entity)) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicebox/ui",
3
- "version": "0.1.0-alpha.256",
3
+ "version": "0.1.0-alpha.258",
4
4
  "description": "Invoicebox UI",
5
5
  "license": "Apache License 2.0",
6
6
  "scripts": {