colibri-ui 0.7.110 → 0.7.113

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 (72) hide show
  1. package/Avatar/Avatar.module.css +1 -1
  2. package/Calendar/components/Month/Month.d.ts +2 -0
  3. package/Calendar/components/Month/Month.js +1 -1
  4. package/Calendar/components/Month/index.module.css +1 -1
  5. package/Calendar/index.d.ts +2 -18
  6. package/Calendar/index.js +28 -18
  7. package/Calendar/index.module.css +2 -7
  8. package/Calendar/index.props.d.ts +21 -0
  9. package/Checkbox/Checkbox.module.css +2 -2
  10. package/Datepicker/Datepicker.module.css +6 -0
  11. package/Datepicker/components/DatePicker/index.d.ts +7 -0
  12. package/Datepicker/components/DatePicker/index.js +56 -0
  13. package/Datepicker/components/DatePicker/index.module.css +47 -0
  14. package/Datepicker/components/TimePicker/Label/index.d.ts +8 -0
  15. package/Datepicker/components/TimePicker/Label/index.js +23 -0
  16. package/Datepicker/components/TimePicker/helpers.d.ts +12 -0
  17. package/Datepicker/components/TimePicker/helpers.js +41 -0
  18. package/Datepicker/components/TimePicker/index.d.ts +9 -0
  19. package/Datepicker/components/TimePicker/index.js +71 -0
  20. package/Datepicker/components/TimePicker/index.module.css +34 -0
  21. package/Datepicker/index.d.ts +8 -0
  22. package/Datepicker/index.js +31 -0
  23. package/Datepicker/package.json +6 -0
  24. package/Dropdown/index.js +25 -18
  25. package/Dropdown/index.props.d.ts +2 -0
  26. package/Menu/components/MenuItem/MenuItem.module.css +5 -5
  27. package/Menu/components/MenuItem/index.js +1 -1
  28. package/Select/index.d.ts +1 -1
  29. package/Select/index.js +5 -2
  30. package/Select/index.module.css +1 -1
  31. package/Select/index.props.d.ts +2 -0
  32. package/TimeSelect/index.d.ts +1 -1
  33. package/esm/Avatar/Avatar.module.css +1 -1
  34. package/esm/Calendar/components/Month/Month.d.ts +2 -0
  35. package/esm/Calendar/components/Month/Month.js +1 -1
  36. package/esm/Calendar/components/Month/index.module.css +1 -1
  37. package/esm/Calendar/index.d.ts +2 -18
  38. package/esm/Calendar/index.js +28 -18
  39. package/esm/Calendar/index.module.css +2 -7
  40. package/esm/Calendar/index.props.d.ts +21 -0
  41. package/esm/Checkbox/Checkbox.module.css +2 -2
  42. package/esm/Datepicker/Datepicker.module.css +6 -0
  43. package/esm/Datepicker/components/DatePicker/index.d.ts +7 -0
  44. package/esm/Datepicker/components/DatePicker/index.js +46 -0
  45. package/esm/Datepicker/components/DatePicker/index.module.css +47 -0
  46. package/esm/Datepicker/components/TimePicker/Label/index.d.ts +8 -0
  47. package/esm/Datepicker/components/TimePicker/Label/index.js +15 -0
  48. package/esm/Datepicker/components/TimePicker/helpers.d.ts +12 -0
  49. package/esm/Datepicker/components/TimePicker/helpers.js +35 -0
  50. package/esm/Datepicker/components/TimePicker/index.d.ts +9 -0
  51. package/esm/Datepicker/components/TimePicker/index.js +61 -0
  52. package/esm/Datepicker/components/TimePicker/index.module.css +34 -0
  53. package/esm/Datepicker/index.d.ts +8 -0
  54. package/esm/Datepicker/index.js +21 -0
  55. package/esm/Dropdown/index.js +25 -18
  56. package/esm/Dropdown/index.props.d.ts +2 -0
  57. package/esm/Menu/components/MenuItem/MenuItem.module.css +5 -5
  58. package/esm/Menu/components/MenuItem/index.js +1 -1
  59. package/esm/Select/index.d.ts +1 -1
  60. package/esm/Select/index.js +5 -2
  61. package/esm/Select/index.module.css +1 -1
  62. package/esm/Select/index.props.d.ts +2 -0
  63. package/esm/TimeSelect/index.d.ts +1 -1
  64. package/esm/helpers/date/index.d.ts +1 -0
  65. package/esm/helpers/date/index.js +5 -1
  66. package/esm/index.d.ts +1 -0
  67. package/esm/index.js +1 -0
  68. package/helpers/date/index.d.ts +1 -0
  69. package/helpers/date/index.js +5 -0
  70. package/index.d.ts +1 -0
  71. package/index.js +55 -53
  72. package/package.json +1 -1
@@ -4,9 +4,9 @@
4
4
  transition: border-color 0.15s ease;
5
5
  }
6
6
  .avatar_bordered {
7
- padding: 3px;
8
7
  background-color: var(--palette-white);
9
8
  border: 3px solid var(--palette-bg-2);
9
+ padding: 3px;
10
10
  }
11
11
  .avatar_bordered:hover {
12
12
  border-color: var(--palette-bg-4);
@@ -1,3 +1,4 @@
1
+ import type { CalendarTitleSize } from "../../index.props";
1
2
  import type { FunctionComponent } from "react";
2
3
  export interface FCWithElements<T = {}> extends FunctionComponent<T> {
3
4
  }
@@ -10,6 +11,7 @@ type Props = {
10
11
  onDayClick: (date: string) => void;
11
12
  offsetLeft: number;
12
13
  availableDates?: string[];
14
+ titleSize?: CalendarTitleSize;
13
15
  };
14
16
  export declare const Month: FCWithElements<Props>;
15
17
  export {};
@@ -72,7 +72,7 @@ var Month = function Month(props) {
72
72
  className: clx(styles__default.default["month-name"])
73
73
  }, /*#__PURE__*/React__namespace.createElement(index.default, {
74
74
  tag: "span",
75
- size: "h3"
75
+ size: props.titleSize
76
76
  }, index$1.getUpperMonthName(props.startDate))), /*#__PURE__*/React__namespace.createElement("div", {
77
77
  className: clx(styles__default.default.table)
78
78
  }, /*#__PURE__*/React__namespace.createElement("ul", {
@@ -5,7 +5,7 @@
5
5
  }
6
6
 
7
7
  .month-name {
8
- padding: 6px 0 25px;
8
+ padding: 7px 0 25px;
9
9
  text-align: center;
10
10
  }
11
11
 
@@ -1,20 +1,4 @@
1
1
  import React from "react";
2
- import type { Preset } from "./components/Presets";
3
- type ChangePayload = {
4
- date: string;
5
- period: number;
6
- };
7
- type Props = {
8
- today: string;
9
- selectedDate?: string;
10
- selectedPeriod?: number;
11
- canSelectRange?: boolean;
12
- activeDates?: string[];
13
- datePresets?: Preset[];
14
- availableDates?: string[];
15
- onChange?: (payload: ChangePayload) => void;
16
- onCancel?: () => void;
17
- withContinueButton?: boolean;
18
- };
19
- declare const Calendar: React.FC<Props>;
2
+ import type { CalendarProps } from "./index.props";
3
+ declare const Calendar: React.FC<CalendarProps>;
20
4
  export default Calendar;
package/Calendar/index.js CHANGED
@@ -36,20 +36,25 @@ var Calendar = function Calendar(_a) {
36
36
  canSelectRange = _a.canSelectRange,
37
37
  onChange = _a.onChange,
38
38
  onCancel = _a.onCancel,
39
- _b = _a.withContinueButton,
40
- withContinueButton = _b === void 0 ? false : _b;
39
+ _b = _a.minWidth,
40
+ minWidth = _b === void 0 ? 360 : _b,
41
+ _c = _a.withContinueButton,
42
+ withContinueButton = _c === void 0 ? false : _c,
43
+ className = _a.className,
44
+ _d = _a.titleSize,
45
+ titleSize = _d === void 0 ? "h3" : _d;
41
46
  var $root = React.useRef(null);
42
47
  var startMonth = getStartMonth.getStartMonth({
43
48
  today: today,
44
49
  activeDates: activeDates
45
50
  });
46
- var _c = React.useState(initialSelectedDate),
47
- selectedDate = _c[0],
48
- setSelectedDate = _c[1];
49
- var _d = React.useState(initialSelectedPeriod),
50
- selectedPeriod = _d[0],
51
- setSelectedPeriod = _d[1];
52
- var _e = React.useState(function () {
51
+ var _e = React.useState(initialSelectedDate),
52
+ selectedDate = _e[0],
53
+ setSelectedDate = _e[1];
54
+ var _f = React.useState(initialSelectedPeriod),
55
+ selectedPeriod = _f[0],
56
+ setSelectedPeriod = _f[1];
57
+ var _g = React.useState(function () {
53
58
  if (initialSelectedDate) {
54
59
  return getNumberOfMonthsBetweenDates.getNumberOfMonthsBetweenDates(startMonth, initialSelectedDate);
55
60
  } else if (activeDates && activeDates.length) {
@@ -57,14 +62,14 @@ var Calendar = function Calendar(_a) {
57
62
  }
58
63
  return 0;
59
64
  }),
60
- currentMonthOffset = _e[0],
61
- setCurrentMonthOffset = _e[1];
62
- var _f = React.useState(0),
63
- contentWidth = _f[0],
64
- setContentWidth = _f[1];
65
- var _g = React.useState(true),
66
- isRangeCompleted = _g[0],
67
- setIsRangeCompleted = _g[1];
65
+ currentMonthOffset = _g[0],
66
+ setCurrentMonthOffset = _g[1];
67
+ var _h = React.useState(0),
68
+ contentWidth = _h[0],
69
+ setContentWidth = _h[1];
70
+ var _j = React.useState(true),
71
+ isRangeCompleted = _j[0],
72
+ setIsRangeCompleted = _j[1];
68
73
  React.useEffect(function () {
69
74
  var _a;
70
75
  setContentWidth(((_a = $root.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0);
@@ -149,7 +154,10 @@ var Calendar = function Calendar(_a) {
149
154
  onDayClick: handleDayClick
150
155
  };
151
156
  return /*#__PURE__*/React__default.default.createElement("div", {
152
- className: clx(styles__default.default.root),
157
+ className: clx(styles__default.default.root, className),
158
+ style: {
159
+ minWidth: "".concat(minWidth, "px")
160
+ },
153
161
  "data-testid": "calendar",
154
162
  ref: $root
155
163
  }, /*#__PURE__*/React__default.default.createElement("div", null, contentWidth ? (/*#__PURE__*/React__default.default.createElement("div", {
@@ -167,9 +175,11 @@ var Calendar = function Calendar(_a) {
167
175
  offsetLeft: index * contentWidth
168
176
  });
169
177
  return /*#__PURE__*/React__default.default.createElement(Month.Month, tslib.__assign({}, attrs, {
178
+ titleSize: titleSize,
170
179
  key: "month-".concat(index)
171
180
  }));
172
181
  }))) : (/*#__PURE__*/React__default.default.createElement(Month.Month, tslib.__assign({
182
+ titleSize: titleSize,
173
183
  today: today,
174
184
  startDate: getMonthStartDate(currentMonthOffset),
175
185
  offsetLeft: 0
@@ -3,18 +3,13 @@
3
3
  flex-direction: column;
4
4
  -moz-osx-font-smoothing: grayscale;
5
5
  -webkit-font-smoothing: antialiased;
6
- gap: 16px;
7
- min-width: 300px;
6
+ gap: 1rem;
7
+ min-width: 360px;
8
8
  overflow: hidden;
9
9
  position: relative;
10
10
  text-rendering: optimizelegibility;
11
11
  text-size-adjust: 100%;
12
12
  }
13
- @media (width >= 360px) {
14
- .root {
15
- min-width: 360px;
16
- }
17
- }
18
13
 
19
14
  .month-control {
20
15
  background: transparent;
@@ -0,0 +1,21 @@
1
+ import type { Preset } from "./components/Presets";
2
+ export type CalendarPayload = {
3
+ date: string;
4
+ period: number;
5
+ };
6
+ export type CalendarTitleSize = "xs" | "s" | "m" | "l" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
7
+ export type CalendarProps = {
8
+ today: string;
9
+ selectedDate?: string;
10
+ selectedPeriod?: number;
11
+ canSelectRange?: boolean;
12
+ activeDates?: string[];
13
+ datePresets?: Preset[];
14
+ availableDates?: string[];
15
+ onChange?: (payload: CalendarPayload) => void;
16
+ onCancel?: () => void;
17
+ withContinueButton?: boolean;
18
+ className?: string;
19
+ minWidth?: number;
20
+ titleSize?: CalendarTitleSize;
21
+ };
@@ -57,8 +57,8 @@
57
57
  box-shadow: 0 0 0 2px var(--palette-alert);
58
58
  }
59
59
  .variant_primary_checked::after {
60
- border-block-end: 2px solid var(--palette-white);
61
- border-inline-end: 2px solid var(--palette-white);
60
+ border-block-end: 2px solid var(--palette-black);
61
+ border-inline-end: 2px solid var(--palette-black);
62
62
  }
63
63
 
64
64
  .control {
@@ -0,0 +1,6 @@
1
+ .root {
2
+ display: flex;
3
+ flex-shrink: 0;
4
+ font-size: 14px;
5
+ height: 36px;
6
+ }
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ type Props = {
3
+ className?: string;
4
+ selectedDate?: string;
5
+ };
6
+ declare const DatePicker: ({ className, selectedDate }: Props) => React.JSX.Element;
7
+ export default DatePicker;
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var classNames = require('classnames/bind');
7
+ var index = require('../../../Dropdown/index.js');
8
+ var index$1 = require('../../../Calendar/index.js');
9
+ var index$2 = require('../../../helpers/date/index.js');
10
+ var styles = require('./index.module.css');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefault(React);
15
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
16
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
17
+
18
+ var clx = classNames__default.default.bind(styles__default.default);
19
+ var DatePicker = function DatePicker(_a) {
20
+ var className = _a.className,
21
+ _b = _a.selectedDate,
22
+ selectedDate = _b === void 0 ? "" : _b;
23
+ var _c = React.useState(selectedDate),
24
+ date = _c[0],
25
+ setDate = _c[1];
26
+ return /*#__PURE__*/React__default.default.createElement("div", {
27
+ className: clx(styles__default.default['input-container'], styles__default.default['input-date'], className)
28
+ }, /*#__PURE__*/React__default.default.createElement(index.default, {
29
+ placement: "bottom",
30
+ preventAutoClose: true,
31
+ fontSize: 14,
32
+ trigger: ["click"],
33
+ overlay: /*#__PURE__*/React__default.default.createElement(index$1.default, {
34
+ minWidth: 260,
35
+ className: styles__default.default.calendar,
36
+ today: index$2.toISODate(new Date()),
37
+ titleSize: "h5",
38
+ selectedDate: date,
39
+ onChange: function onChange(payload) {
40
+ setDate(payload.date);
41
+ }
42
+ })
43
+ }, /*#__PURE__*/React__default.default.createElement("input", {
44
+ className: clx(styles__default.default['input-field']),
45
+ tabIndex: 0,
46
+ "aria-expanded": "false",
47
+ "aria-haspopup": "true",
48
+ "aria-invalid": "false",
49
+ autoComplete: "off",
50
+ maxLength: 7,
51
+ readOnly: true,
52
+ value: index$2.toDMYDate(date)
53
+ })));
54
+ };
55
+
56
+ exports.default = DatePicker;
@@ -0,0 +1,47 @@
1
+ .input-container {
2
+ border-radius: 6px;
3
+ border: 1px solid var(--palette-bg-3);
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ }
8
+
9
+ .input-field {
10
+ height: 100%;
11
+ padding: 4px;
12
+ text-align: center;
13
+ font-size: 1em;
14
+ outline: none;
15
+ border: none;
16
+ width: 100%;
17
+ background: transparent;
18
+ }
19
+
20
+ .input-date {
21
+ position: relative;
22
+ border-bottom-left-radius: 0;
23
+ border-left: none;
24
+ border-top-left-radius: 0;
25
+ width: 100px;
26
+ }
27
+
28
+ .input-date:focus-within {
29
+ border: 1px solid var(--palette-primary-3);
30
+ border-bottom-left-radius: 0;
31
+ border-left: none;
32
+ border-top-left-radius: 0;
33
+ box-shadow: 0 0 0 2px var(--palette-primary-2);
34
+ }
35
+
36
+ .input-date:focus-within::before {
37
+ content: "";
38
+ position: absolute;
39
+ height: 100%;
40
+ width: 1px;
41
+ background-color: var(--palette-primary-3);
42
+ left: 0;
43
+ }
44
+
45
+ .calendar {
46
+ max-width: 250px;
47
+ }
@@ -0,0 +1,8 @@
1
+ import type { FC } from "react";
2
+ type OptionLabelProps = {
3
+ time: string;
4
+ onClick?: () => void;
5
+ onMouseEnter?: () => void;
6
+ };
7
+ declare const OptionLabel: FC<OptionLabelProps>;
8
+ export default OptionLabel;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefault(React);
10
+
11
+ var OptionLabel = function OptionLabel(_a) {
12
+ var time = _a.time,
13
+ onClick = _a.onClick,
14
+ onMouseEnter = _a.onMouseEnter;
15
+ var ref = React.useRef(null);
16
+ return /*#__PURE__*/React__default.default.createElement("span", {
17
+ onClick: onClick,
18
+ onMouseEnter: onMouseEnter,
19
+ ref: ref
20
+ }, time);
21
+ };
22
+
23
+ exports.default = OptionLabel;
@@ -0,0 +1,12 @@
1
+ export type Timestamp = {
2
+ time: string;
3
+ disabled?: boolean;
4
+ };
5
+ export declare const DEFAULT_TIME: {
6
+ index: number;
7
+ time: string;
8
+ };
9
+ export declare const formatTime: (date: Date) => string;
10
+ export declare const generateSuggest: (interval?: number) => Timestamp[];
11
+ export declare const checkIsBeforeNow: (time: string, currentDate?: Date | null) => boolean;
12
+ export declare const checkIsBeforeSelectedDate: (time: string, interval: number, date?: Date | null) => boolean;
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var dateFns = require('date-fns');
4
+
5
+ var day = new Date();
6
+ day.setHours(24, 0, 0, 0);
7
+ var DEFAULT_TIME = {
8
+ index: 24,
9
+ time: "12:00"
10
+ };
11
+ var formatTime = function formatTime(date) {
12
+ return dateFns.format(date, "HH:mm");
13
+ };
14
+ var generateSuggest = function generateSuggest(interval) {
15
+ if (interval === void 0) {
16
+ interval = 15;
17
+ }
18
+ return new Array(24 * 60 / interval).fill(null).map(function (_, index) {
19
+ var date = dateFns.addMinutes(day, index * interval);
20
+ return {
21
+ time: formatTime(date)
22
+ };
23
+ });
24
+ };
25
+ var checkIsBeforeNow = function checkIsBeforeNow(time, currentDate) {
26
+ return currentDate ? dateFns.isBefore(dateFns.parse(time, "HH:mm", currentDate), new Date()) : false;
27
+ };
28
+ var checkIsBeforeSelectedDate = function checkIsBeforeSelectedDate(time, interval, date) {
29
+ if (date) {
30
+ var selectedDate = new Date(date);
31
+ selectedDate.setMinutes(selectedDate.getMinutes() + interval);
32
+ return dateFns.isBefore(dateFns.parse(time, "HH:mm", date), selectedDate);
33
+ }
34
+ return false;
35
+ };
36
+
37
+ exports.DEFAULT_TIME = DEFAULT_TIME;
38
+ exports.checkIsBeforeNow = checkIsBeforeNow;
39
+ exports.checkIsBeforeSelectedDate = checkIsBeforeSelectedDate;
40
+ exports.formatTime = formatTime;
41
+ exports.generateSuggest = generateSuggest;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ interface TimePickerProps {
3
+ className?: string;
4
+ interval?: 5 | 10 | 15 | 30;
5
+ value?: string;
6
+ selectedTime?: string;
7
+ }
8
+ declare const _default: React.MemoExoticComponent<({ className, interval, selectedTime, }: TimePickerProps) => React.JSX.Element>;
9
+ export default _default;
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var classNames = require('classnames/bind');
8
+ var index$1 = require('../../../Select/index.js');
9
+ var styles = require('./index.module.css');
10
+ var helpers = require('./helpers.js');
11
+ var index = require('./Label/index.js');
12
+
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefault(React);
16
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
17
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
18
+
19
+ var clx = classNames__default.default.bind(styles__default.default);
20
+ var TimePicker = function TimePicker(_a) {
21
+ var className = _a.className,
22
+ _b = _a.interval,
23
+ interval = _b === void 0 ? 30 : _b,
24
+ _c = _a.selectedTime,
25
+ selectedTime = _c === void 0 ? "" : _c;
26
+ var _d = React.useState(selectedTime),
27
+ time = _d[0],
28
+ setTime = _d[1];
29
+ var baseOptions = React.useMemo(function () {
30
+ return helpers.generateSuggest(interval).map(function (item) {
31
+ return {
32
+ value: item.time,
33
+ label: /*#__PURE__*/React__default.default.createElement(index.default, {
34
+ time: item.time
35
+ })
36
+ };
37
+ });
38
+ }, [interval]);
39
+ var options = React.useMemo(function () {
40
+ return baseOptions.map(function (option) {
41
+ return tslib.__assign(tslib.__assign({}, option), {
42
+ disabled: false
43
+ });
44
+ });
45
+ }, [baseOptions, interval]);
46
+ return /*#__PURE__*/React__default.default.createElement(index$1.default, {
47
+ className: className,
48
+ value: time,
49
+ options: options,
50
+ fontSize: 14,
51
+ customInputRoot: /*#__PURE__*/React__default.default.createElement("div", {
52
+ className: clx(styles__default.default['input-container'], styles__default.default['input-time'])
53
+ }, /*#__PURE__*/React__default.default.createElement("input", {
54
+ className: clx(styles__default.default['input-field']),
55
+ tabIndex: 0,
56
+ "aria-expanded": "false",
57
+ "aria-haspopup": "true",
58
+ "aria-invalid": "false",
59
+ autoComplete: "off",
60
+ maxLength: 5,
61
+ readOnly: true,
62
+ value: time
63
+ })),
64
+ onChange: function onChange(time) {
65
+ return setTime(time);
66
+ }
67
+ });
68
+ };
69
+ var TimePickerInput = /*#__PURE__*/React.memo(TimePicker);
70
+
71
+ exports.default = TimePickerInput;
@@ -0,0 +1,34 @@
1
+ .input-container {
2
+ border-radius: 6px;
3
+ border: 1px solid var(--palette-bg-3);
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ }
8
+
9
+ .input-field {
10
+ height: 100%;
11
+ padding: 4px;
12
+ text-align: center;
13
+ font-size: 1em;
14
+ outline: none;
15
+ border: none;
16
+ width: 100%;
17
+ background: transparent;
18
+ }
19
+
20
+ .input-time {
21
+ border-bottom-right-radius: 0;
22
+ border-right: 1px solid var(--palette-bg-3);
23
+ border-top-right-radius: 0;
24
+ width: 89px;
25
+ height: 100%;
26
+ }
27
+
28
+ .input-time:focus-within {
29
+ border: 1px solid var(--palette-primary-3);
30
+ border-bottom-right-radius: 0;
31
+ border-top-right-radius: 0;
32
+ box-shadow: 0 0 0 2px var(--palette-primary-2);
33
+ z-index: 3;
34
+ }
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ type Props = {
3
+ className?: string;
4
+ selectedTime?: string;
5
+ selectedDate?: string;
6
+ };
7
+ declare const Datepicker: ({ className, selectedTime, selectedDate }: Props) => React.JSX.Element;
8
+ export default Datepicker;
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var classNames = require('classnames/bind');
7
+ var styles = require('./Datepicker.module.css');
8
+ var index = require('./components/TimePicker/index.js');
9
+ var index$1 = require('./components/DatePicker/index.js');
10
+
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefault(React);
14
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
15
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
16
+
17
+ var clx = classNames__default.default.bind(styles__default.default);
18
+ var Datepicker = function Datepicker(_a) {
19
+ var className = _a.className,
20
+ selectedTime = _a.selectedTime,
21
+ selectedDate = _a.selectedDate;
22
+ return /*#__PURE__*/React__default.default.createElement("div", {
23
+ className: clx(styles__default.default.root, className)
24
+ }, /*#__PURE__*/React__default.default.createElement(index.default, {
25
+ selectedTime: selectedTime
26
+ }), /*#__PURE__*/React__default.default.createElement(index$1.default, {
27
+ selectedDate: selectedDate
28
+ }));
29
+ };
30
+
31
+ exports.default = Datepicker;
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../esm/Datepicker/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
package/Dropdown/index.js CHANGED
@@ -21,6 +21,7 @@ var clx = classNames__default.default.bind(styles__default.default);
21
21
  var Dropdown = function Dropdown(_a) {
22
22
  var children = _a.children,
23
23
  zIndex = _a.zIndex,
24
+ fontSize = _a.fontSize,
24
25
  disabled = _a.disabled,
25
26
  onVisibleChange = _a.onVisibleChange,
26
27
  overlay = _a.overlay,
@@ -34,19 +35,21 @@ var Dropdown = function Dropdown(_a) {
34
35
  visibleProp = _e === void 0 ? true : _e,
35
36
  _f = _a.preventOverflow,
36
37
  preventOverflow = _f === void 0 ? false : _f,
37
- _g = _a.samewidth,
38
- samewidth = _g === void 0 ? false : _g;
39
- var _h = React.useState(null),
40
- controlElement = _h[0],
41
- setControlElement = _h[1];
38
+ _g = _a.preventAutoClose,
39
+ preventAutoClose = _g === void 0 ? false : _g,
40
+ _h = _a.samewidth,
41
+ samewidth = _h === void 0 ? false : _h;
42
42
  var _j = React.useState(null),
43
- popperElement = _j[0],
44
- setPopperElement = _j[1];
45
- var _k = React.useState(false),
46
- visible = _k[0],
47
- setVisible = _k[1];
43
+ controlElement = _j[0],
44
+ setControlElement = _j[1];
45
+ var _k = React.useState(null),
46
+ popperElement = _k[0],
47
+ setPopperElement = _k[1];
48
+ var _l = React.useState(false),
49
+ visible = _l[0],
50
+ setVisible = _l[1];
48
51
  var isVisible = visibleProp && visible && !disabled;
49
- var _l = reactPopper.usePopper(controlElement, popperElement, {
52
+ var _m = reactPopper.usePopper(controlElement, popperElement, {
50
53
  placement: placement,
51
54
  strategy: strategy,
52
55
  modifiers: [{
@@ -57,9 +60,9 @@ var Dropdown = function Dropdown(_a) {
57
60
  enabled: preventOverflow
58
61
  }]
59
62
  }),
60
- styles = _l.styles,
61
- attributes = _l.attributes,
62
- update = _l.update;
63
+ styles = _m.styles,
64
+ attributes = _m.attributes,
65
+ update = _m.update;
63
66
  var isNotComponent = typeof children === "string";
64
67
  var reference = React.useMemo(function () {
65
68
  return React.Children.only(isNotComponent ? /*#__PURE__*/React__default.default.createElement("button", null, children) : children);
@@ -80,9 +83,11 @@ var Dropdown = function Dropdown(_a) {
80
83
  if (controlElement === null || controlElement === void 0 ? void 0 : controlElement.contains(e.target)) return;
81
84
  onHide();
82
85
  }, [onHide, controlElement]);
83
- var onClickOverlay = React.useCallback(function (e) {
84
- e.stopPropagation();
85
- onHide();
86
+ var onClickOverlay = React.useCallback(function (event) {
87
+ event.stopPropagation();
88
+ if (!preventAutoClose) {
89
+ onHide();
90
+ }
86
91
  }, [onHide]);
87
92
  React.useEffect(function () {
88
93
  var unsubscribes = [];
@@ -129,11 +134,13 @@ var Dropdown = function Dropdown(_a) {
129
134
  ref: setPopperElement,
130
135
  "data-testid": "popper-container",
131
136
  className: clx("popper-container"),
132
- style: tslib.__assign(tslib.__assign(tslib.__assign({}, styles.popper), {
137
+ style: tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, styles.popper), {
133
138
  zIndex: zIndex,
134
139
  minWidth: controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth
135
140
  }), samewidth && {
136
141
  maxWidth: controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth
142
+ }), {
143
+ fontSize: "".concat(fontSize, "px")
137
144
  }),
138
145
  tabIndex: 0
139
146
  }, attributes.popper), /*#__PURE__*/React__default.default.createElement("div", {