mimir-ui-kit 1.28.0 → 1.29.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- ._input_3fxwe_2{padding-right:var(--space-3xl)}._input-wrapper_3fxwe_6{flex:1}._date-wrapper_3fxwe_10{position:relative;width:100%}._date-wrapper_3fxwe_10:hover ._input-wrapper_3fxwe_6{background-color:var(--input-bg-color-hover)}._date-wrapper_3fxwe_10:before{position:absolute;top:0;right:60px;bottom:0;left:0;z-index:3;cursor:pointer;content:""}[data-disabled=true] ._date-wrapper_3fxwe_10:before{cursor:auto}[data-disabled=true] ._date-wrapper_3fxwe_10 ._input-wrapper_3fxwe_6{background:var(--black-20)}[data-disabled=true] ._date-wrapper_3fxwe_10 ._input-wrapper_3fxwe_6 label,[data-disabled=true] ._date-wrapper_3fxwe_10 ._input-wrapper_3fxwe_6 input{color:var(--white)}[data-disabled=true] ._button-wrapper_3fxwe_35 svg{color:var(--white);fill:var(--white);cursor:default}._wrapper_3fxwe_41{position:relative;display:flex;align-items:center;border-radius:var(--control-radius-s)}._wrapper_3fxwe_41._active_3fxwe_47{border-bottom:1px solid var(--citrine-100)}._button-wrapper_3fxwe_35{position:absolute;top:0;right:0;z-index:2;display:flex;width:44px;height:100%;max-height:var(--button-height-xxl)}._button_3fxwe_35{align-self:center;background-color:transparent;border-radius:var(--control-radius-s)}._field-overlow_3fxwe_68{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3}._calendar-block_3fxwe_74{position:absolute;z-index:3;display:flex;flex-direction:column;width:368px;max-height:none;padding:16px;font-weight:var(--font-weight-text-regular);font-size:var(--size-text-l);font-family:var(--font-inter);font-style:normal;line-height:var(--line-height-text-2xs);text-align:center;text-overflow:ellipsis;background:var(--white);border-radius:var(--control-radius-s);box-shadow:0 0 #16172705,0 2px 4px #16172705,0 6px 6px #16172705,0 15px 9px #16172703;opacity:0;transition:height .5s ease-in;font-feature-settings:"zero";font-variant-numeric:slashed-zero}._calendar-block_3fxwe_74 ._h_3fxwe_97{display:flex;width:100%;color:var(--black-100)}._calendar-block_3fxwe_74 ._b_3fxwe_35{display:grid;grid-template-columns:repeat(7,1fr)}._calendar-block_3fxwe_74 ._d_3fxwe_10{display:flex;flex:1;align-items:center;justify-content:center;color:var(--black-100);cursor:pointer;gap:4px}._calendar-block_3fxwe_74 ._m_3fxwe_118,._calendar-block_3fxwe_74 ._a_3fxwe_47,._calendar-block_3fxwe_74 ._prev_3fxwe_120{width:auto;height:48px;overflow:hidden}._calendar-block_3fxwe_74 ._m_3fxwe_118{display:flex;align-items:center;justify-content:center;color:var(--disabled)}._calendar-block_3fxwe_74 ._m_3fxwe_118 b{font-weight:var(--font-weight-text-regular)}._calendar-block_3fxwe_74 ._orange_3fxwe_136{color:var(--citrine-100)}._calendar-block_3fxwe_74 ._a_3fxwe_47{color:var(--black-100);border-radius:var(--control-radius-s)}._calendar-block_3fxwe_74 ._a_3fxwe_47 b{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:var(--font-weight-text-regular);cursor:pointer}._calendar-block_3fxwe_74 ._a_3fxwe_47 b:hover{background:var(--black-10)}._calendar-block_3fxwe_74 ._a_3fxwe_47 b:active{color:var(--white);background:var(--sapphire-100)}._calendar-block_3fxwe_74 ._current_3fxwe_161{background:var(--sapphire-10);border-radius:var(--control-radius-s)}._calendar-block_3fxwe_74 ._monthGrid_3fxwe_166{display:grid;grid-template-columns:repeat(3,1fr)}
1
+ ._input_1fczl_2{padding-right:var(--space-3xl)}._input-wrapper_1fczl_6{flex:1}._date-wrapper_1fczl_10{position:relative;width:100%}._date-wrapper_1fczl_10 ._inputBorderControl_1fczl_14{border:transparent}._date-wrapper_1fczl_10:hover ._input-wrapper_1fczl_6{background-color:var(--input-bg-color-hover)}._date-wrapper_1fczl_10:before{position:absolute;top:0;right:60px;bottom:0;left:0;z-index:3;cursor:pointer;content:""}[data-disabled=true] ._date-wrapper_1fczl_10:before{cursor:auto}[data-disabled=true] ._date-wrapper_1fczl_10 ._input-wrapper_1fczl_6{background:var(--black-20)}[data-disabled=true] ._date-wrapper_1fczl_10 ._input-wrapper_1fczl_6 label,[data-disabled=true] ._date-wrapper_1fczl_10 ._input-wrapper_1fczl_6 input{color:var(--white)}[data-disabled=true] ._button-wrapper_1fczl_38 svg{color:var(--white);cursor:default;fill:var(--white)}._wrapper_1fczl_44{position:relative;display:flex;align-items:center;border-radius:var(--control-radius-s)}._wrapper_1fczl_44._active_1fczl_50{border-bottom:1px solid var(--citrine-100)}._button-wrapper_1fczl_38{position:absolute;top:0;right:0;z-index:2;display:flex;width:44px;height:100%;max-height:var(--button-height-xxl)}._button_1fczl_38{align-self:center;background-color:transparent;border-radius:var(--control-radius-s)}._field-overlow_1fczl_71{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3}._calendar-block_1fczl_77{position:absolute;z-index:3;display:flex;flex-direction:column;width:368px;max-height:none;padding:16px;font-weight:var(--font-weight-text-regular);font-size:var(--size-text-l);font-family:var(--font-inter);font-style:normal;line-height:var(--line-height-text-2xs);text-align:center;text-overflow:ellipsis;background:var(--white);border-radius:var(--control-radius-s);box-shadow:0 0 #16172705,0 2px 4px #16172705,0 6px 6px #16172705,0 15px 9px #16172703;opacity:0;transition:height .5s ease-in;font-feature-settings:"zero";font-variant-numeric:slashed-zero}._calendar-block_1fczl_77 ._h_1fczl_100{display:flex;width:100%;color:var(--black-100)}._calendar-block_1fczl_77 ._b_1fczl_38{display:grid;grid-template-columns:repeat(7,1fr)}._calendar-block_1fczl_77 ._d_1fczl_10{display:flex;flex:1;gap:4px;align-items:center;justify-content:center;color:var(--black-100);cursor:pointer}._calendar-block_1fczl_77 ._m_1fczl_121,._calendar-block_1fczl_77 ._a_1fczl_50,._calendar-block_1fczl_77 ._prev_1fczl_123{width:auto;height:48px;overflow:hidden}._calendar-block_1fczl_77 ._m_1fczl_121{display:flex;align-items:center;justify-content:center;color:var(--disabled)}._calendar-block_1fczl_77 ._m_1fczl_121 b{font-weight:var(--font-weight-text-regular)}._calendar-block_1fczl_77 ._orange_1fczl_139{color:var(--citrine-100)}._calendar-block_1fczl_77 ._a_1fczl_50{color:var(--black-100);border-radius:var(--control-radius-s)}._calendar-block_1fczl_77 ._a_1fczl_50 b{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:var(--font-weight-text-regular);cursor:pointer}._calendar-block_1fczl_77 ._a_1fczl_50 b:hover{background:var(--black-10)}._calendar-block_1fczl_77 ._a_1fczl_50 b:active{color:var(--white);background:var(--sapphire-100)}._calendar-block_1fczl_77 ._current_1fczl_164{background:var(--sapphire-10);border-radius:var(--control-radius-s)}._calendar-block_1fczl_77 ._monthGrid_1fczl_169{display:grid;grid-template-columns:repeat(3,1fr)}
@@ -5,6 +5,13 @@ export type DatePicker = {
5
5
  * функция=callback, которая вызывается при изменении значения и передает имя и новое значение для обновления стейта (data),
6
6
  */
7
7
  onChangeValue?: (e: TDatePickerValue) => void;
8
+ /**
9
+ * функция=callback, которая вызывается при изменении значения и передает имя и новое значение для обновления стейта ошибки,
10
+ */
11
+ onError?: (e: TDatePickerOnError) => void;
12
+ /** функция=callback, передает новое значение даты,
13
+ */
14
+ onBlur?: (e: Date) => void;
8
15
  /**
9
16
  * функция ограничения выбора даты
10
17
  (до какой даты выбор не доступен)
@@ -20,16 +27,32 @@ export type DatePicker = {
20
27
  type?: 'days' | 'months' | 'years';
21
28
  disabled?: boolean;
22
29
  error?: boolean;
30
+ /**
31
+ * необязательное значение для немедленной валидации
32
+ */
33
+ validateImmediately?: boolean;
34
+ editable?: boolean;
23
35
  } & TInputProps;
24
36
  export type TDatePickerValue = {
25
37
  value?: Date;
26
38
  name?: string;
27
39
  };
40
+ export type TDatePickerOnError = {
41
+ name?: string;
42
+ active: boolean;
43
+ };
28
44
  export declare const DatePicker: import('react').MemoExoticComponent<import('react').ForwardRefExoticComponent<{
29
45
  /**
30
46
  * функция=callback, которая вызывается при изменении значения и передает имя и новое значение для обновления стейта (data),
31
47
  */
32
48
  onChangeValue?: (e: TDatePickerValue) => void;
49
+ /**
50
+ * функция=callback, которая вызывается при изменении значения и передает имя и новое значение для обновления стейта ошибки,
51
+ */
52
+ onError?: (e: TDatePickerOnError) => void;
53
+ /** функция=callback, передает новое значение даты,
54
+ */
55
+ onBlur?: (e: Date) => void;
33
56
  /**
34
57
  * функция ограничения выбора даты
35
58
  (до какой даты выбор не доступен)
@@ -45,4 +68,9 @@ export declare const DatePicker: import('react').MemoExoticComponent<import('rea
45
68
  type?: "days" | "months" | "years";
46
69
  disabled?: boolean;
47
70
  error?: boolean;
71
+ /**
72
+ * необязательное значение для немедленной валидации
73
+ */
74
+ validateImmediately?: boolean;
75
+ editable?: boolean;
48
76
  } & import('../Input/types').TInputProps & import('../Input').TAdditionalProps & import('react').RefAttributes<HTMLInputElement>>>;
@@ -3,14 +3,13 @@ import { c as classNames } from "../../index-CweZ_OcN.js";
3
3
  import { memo, forwardRef, useState, useEffect } from "react";
4
4
  import { DatePickerModal } from "./DatePickerModal.js";
5
5
  import { MonthPickerModal } from "./MonthPickerModal.js";
6
- import { c as cls } from "../../styles.module-BZXDqssF.js";
6
+ import { c as cls } from "../../styles.module-CLBRb2go.js";
7
7
  import { YearPickerModal } from "./YearPickerModal.js";
8
8
  import { useClickOutside } from "../../hooks/useClickOutside/useClickOutside.js";
9
9
  import { formating } from "../../utils/index.js";
10
10
  import { Button } from "../Button/Button.js";
11
11
  import { I as Input } from "../../Input-ChCIy5oY.js";
12
12
  import { EInputVariant } from "../Input/constants.js";
13
- import { parseDate } from "../../utils/formating/Date.js";
14
13
  const DatePicker = memo(
15
14
  forwardRef(
16
15
  ({
@@ -21,22 +20,39 @@ const DatePicker = memo(
21
20
  before,
22
21
  type = "days",
23
22
  error,
23
+ onError,
24
+ onBlur,
25
+ validateImmediately,
24
26
  variant,
25
27
  disabled = false,
26
28
  ...props
27
29
  }, ref) => {
28
30
  const [isActive, setActive] = useState(false);
29
31
  const [pickerType, setType] = useState(type);
30
- const [date, setDate] = useState(() => {
31
- if (value) {
32
- return parseDate(value);
33
- }
34
- return /* @__PURE__ */ new Date();
35
- });
32
+ const [date, setDate] = useState(
33
+ value && !isNaN(new Date(value).getTime()) ? new Date(value) : void 0
34
+ );
36
35
  const [isError, setError] = useState(error);
37
36
  useEffect(() => {
38
37
  setError(error);
39
38
  }, [error]);
39
+ useEffect(() => {
40
+ setDate(
41
+ value && !isNaN(new Date(value).getTime()) ? new Date(value) : void 0
42
+ );
43
+ }, [value]);
44
+ const milliseconds = value && new Date(value).getTime;
45
+ useEffect(() => {
46
+ if (validateImmediately) {
47
+ if (!milliseconds) {
48
+ setError(true);
49
+ onError == null ? void 0 : onError({ name, active: true });
50
+ } else {
51
+ setError(false);
52
+ onError == null ? void 0 : onError({ name, active: false });
53
+ }
54
+ }
55
+ }, [validateImmediately, name, milliseconds]);
40
56
  useClickOutside({
41
57
  isActive,
42
58
  setActive: (e) => {
@@ -48,10 +64,10 @@ const DatePicker = memo(
48
64
  const onOpen = () => {
49
65
  if (!disabled) setActive(true);
50
66
  };
51
- const onDate = (d) => {
52
- if (!isNaN(d.getTime())) {
53
- setDate(d);
54
- onChangeValue == null ? void 0 : onChangeValue({ value: d, name });
67
+ const onDate = (sendDate) => {
68
+ if (!isNaN(sendDate.getTime())) {
69
+ setDate(sendDate);
70
+ onChangeValue == null ? void 0 : onChangeValue({ value: sendDate, name });
55
71
  }
56
72
  if (pickerType === "years") {
57
73
  if (type === "years") {
@@ -69,10 +85,12 @@ const DatePicker = memo(
69
85
  setType("days");
70
86
  }
71
87
  }
72
- setDate(d);
73
- onChangeValue == null ? void 0 : onChangeValue({ value: d, name });
88
+ setDate(sendDate);
89
+ onChangeValue == null ? void 0 : onChangeValue({ value: sendDate, name });
90
+ onBlur == null ? void 0 : onBlur(sendDate);
74
91
  };
75
92
  const wrapperClassNames = classNames(cls.wrapper, isActive && cls.active);
93
+ const InputClassNames = classNames(cls.input, cls.inputBorderControl);
76
94
  return /* @__PURE__ */ jsxs("div", { className: wrapperClassNames, "data-disabled": disabled, children: [
77
95
  /* @__PURE__ */ jsx(
78
96
  "div",
@@ -84,12 +102,12 @@ const DatePicker = memo(
84
102
  Input,
85
103
  {
86
104
  ref,
87
- className: cls.input,
105
+ className: InputClassNames,
88
106
  wrapperClassName: cls["input-wrapper"],
89
107
  size,
90
108
  type: "text",
91
109
  variant: isError ? EInputVariant.Error : variant,
92
- value: !isNaN(date.getTime()) ? formating.Date(date, "dd.mm.yy") : "",
110
+ value: date && !(typeof date === "string") && !isNaN(date == null ? void 0 : date.getTime()) ? formating.Date(date, "dd.mm.yy") : "",
93
111
  ...props
94
112
  }
95
113
  )
@@ -110,7 +128,7 @@ const DatePicker = memo(
110
128
  DatePickerModal,
111
129
  {
112
130
  onChangeValue: onDate,
113
- date,
131
+ date: date || /* @__PURE__ */ new Date(),
114
132
  setActive,
115
133
  before: typeof before === "string" ? new Date(before) : before,
116
134
  onType: setType
@@ -120,7 +138,7 @@ const DatePicker = memo(
120
138
  MonthPickerModal,
121
139
  {
122
140
  onChangeValue: onDate,
123
- date,
141
+ date: date || /* @__PURE__ */ new Date(),
124
142
  setActive,
125
143
  before: typeof before === "string" ? new Date(before) : before,
126
144
  onType: setType
@@ -130,7 +148,7 @@ const DatePicker = memo(
130
148
  YearPickerModal,
131
149
  {
132
150
  onChangeValue: onDate,
133
- date,
151
+ date: date || /* @__PURE__ */ new Date(),
134
152
  setActive,
135
153
  before: typeof before === "string" ? new Date(before) : before,
136
154
  onType: setType
@@ -1,7 +1,7 @@
1
1
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
2
  import { useRef, useState, useEffect } from "react";
3
3
  import { week } from "./constants.js";
4
- import { c as cls } from "../../styles.module-BZXDqssF.js";
4
+ import { c as cls } from "../../styles.module-CLBRb2go.js";
5
5
  import { Icon } from "../../icons/Icon.js";
6
6
  import { formating } from "../../utils/index.js";
7
7
  import { Button } from "../Button/Button.js";
@@ -15,6 +15,7 @@ function DatePickerModal({
15
15
  }) {
16
16
  var _a;
17
17
  const field = useRef(null);
18
+ date = isNaN(new Date(date).getTime()) ? /* @__PURE__ */ new Date() : date;
18
19
  const _current = parseDate(date);
19
20
  const _selecte = parseDate(date);
20
21
  const current = {
@@ -132,7 +133,7 @@ function DatePickerModal({
132
133
  }
133
134
  ),
134
135
  /* @__PURE__ */ jsxs("div", { className: cls["d"], onClick: () => onType == null ? void 0 : onType("months"), children: [
135
- ((_a = formating.Month(month.m)) == null ? void 0 : _a.name) || "Неизвестный месяц",
136
+ (_a = formating.Month(month.m)) == null ? void 0 : _a.name,
136
137
  "’",
137
138
  month.y.toString().slice(-2),
138
139
  /* @__PURE__ */ jsx(Icon, { iconName: "DropdownArrowBottom16px" })
@@ -1,7 +1,7 @@
1
1
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
2
  import { useRef, useState, useEffect } from "react";
3
3
  import { months } from "./constants.js";
4
- import { c as cls } from "../../styles.module-BZXDqssF.js";
4
+ import { c as cls } from "../../styles.module-CLBRb2go.js";
5
5
  import { Icon } from "../../icons/Icon.js";
6
6
  import { formating } from "../../utils/index.js";
7
7
  import { Button } from "../Button/Button.js";
@@ -1,6 +1,6 @@
1
1
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
2
  import { useRef, useState, useEffect } from "react";
3
- import { c as cls } from "../../styles.module-BZXDqssF.js";
3
+ import { c as cls } from "../../styles.module-CLBRb2go.js";
4
4
  import { formating } from "../../utils/index.js";
5
5
  import { Button } from "../Button/Button.js";
6
6
  function YearPickerModal({
@@ -5,3 +5,8 @@ export declare enum EDatePickerBeforeDate {
5
5
  }
6
6
  export declare const week: string[];
7
7
  export declare const months: string[];
8
+ export declare enum EDatePickerValue {
9
+ CurrentDate1 = "",
10
+ CurrentDate = "20240510",
11
+ CurrentDate3 = "2024-09-10"
12
+ }
@@ -19,8 +19,15 @@ const months = [
19
19
  "Ноябрь",
20
20
  "Декабрь"
21
21
  ];
22
+ var EDatePickerValue = /* @__PURE__ */ ((EDatePickerValue2) => {
23
+ EDatePickerValue2["CurrentDate1"] = "";
24
+ EDatePickerValue2["CurrentDate"] = "20240510";
25
+ EDatePickerValue2["CurrentDate3"] = "2024-09-10";
26
+ return EDatePickerValue2;
27
+ })(EDatePickerValue || {});
22
28
  export {
23
29
  EDatePickerBeforeDate,
30
+ EDatePickerValue,
24
31
  months,
25
32
  week
26
33
  };
@@ -0,0 +1,38 @@
1
+ import './assets/styles.css';const input = "_input_1fczl_2";
2
+ const inputBorderControl = "_inputBorderControl_1fczl_14";
3
+ const wrapper = "_wrapper_1fczl_44";
4
+ const active = "_active_1fczl_50";
5
+ const button = "_button_1fczl_38";
6
+ const h = "_h_1fczl_100";
7
+ const b = "_b_1fczl_38";
8
+ const d = "_d_1fczl_10";
9
+ const m = "_m_1fczl_121";
10
+ const a = "_a_1fczl_50";
11
+ const prev = "_prev_1fczl_123";
12
+ const orange = "_orange_1fczl_139";
13
+ const current = "_current_1fczl_164";
14
+ const monthGrid = "_monthGrid_1fczl_169";
15
+ const cls = {
16
+ input,
17
+ "input-wrapper": "_input-wrapper_1fczl_6",
18
+ "date-wrapper": "_date-wrapper_1fczl_10",
19
+ inputBorderControl,
20
+ "button-wrapper": "_button-wrapper_1fczl_38",
21
+ wrapper,
22
+ active,
23
+ button,
24
+ "field-overlow": "_field-overlow_1fczl_71",
25
+ "calendar-block": "_calendar-block_1fczl_77",
26
+ h,
27
+ b,
28
+ d,
29
+ m,
30
+ a,
31
+ prev,
32
+ orange,
33
+ current,
34
+ monthGrid
35
+ };
36
+ export {
37
+ cls as c
38
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mimir-ui-kit",
3
3
  "private": false,
4
- "version": "1.28.0",
4
+ "version": "1.29.1",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
@@ -1,36 +0,0 @@
1
- import './assets/styles.css';const input = "_input_3fxwe_2";
2
- const wrapper = "_wrapper_3fxwe_41";
3
- const active = "_active_3fxwe_47";
4
- const button = "_button_3fxwe_35";
5
- const h = "_h_3fxwe_97";
6
- const b = "_b_3fxwe_35";
7
- const d = "_d_3fxwe_10";
8
- const m = "_m_3fxwe_118";
9
- const a = "_a_3fxwe_47";
10
- const prev = "_prev_3fxwe_120";
11
- const orange = "_orange_3fxwe_136";
12
- const current = "_current_3fxwe_161";
13
- const monthGrid = "_monthGrid_3fxwe_166";
14
- const cls = {
15
- input,
16
- "input-wrapper": "_input-wrapper_3fxwe_6",
17
- "date-wrapper": "_date-wrapper_3fxwe_10",
18
- "button-wrapper": "_button-wrapper_3fxwe_35",
19
- wrapper,
20
- active,
21
- button,
22
- "field-overlow": "_field-overlow_3fxwe_68",
23
- "calendar-block": "_calendar-block_3fxwe_74",
24
- h,
25
- b,
26
- d,
27
- m,
28
- a,
29
- prev,
30
- orange,
31
- current,
32
- monthGrid
33
- };
34
- export {
35
- cls as c
36
- };