@hai-dev/ui-kit 1.1.2 → 1.1.5

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.
@@ -13,6 +13,7 @@ type UploadButtonCustonProps = {
13
13
  onDragLeave?: (event: DragEvent<HTMLDivElement>) => unknown;
14
14
  onDragDrop?: (event: DragEvent<HTMLDivElement>) => unknown;
15
15
  button?: ReactNode;
16
+ withVideoUploaded?: boolean;
16
17
  };
17
18
  export type UploadButtonProps = InputHTMLAttributes<HTMLInputElement> & UploadButtonCustonProps;
18
19
  export {};
@@ -1,113 +1,114 @@
1
- import { jsx as n, jsxs as v, Fragment as b } from "react/jsx-runtime";
2
- import { useState as k, useRef as R } from "react";
3
- import { c as a } from "../../../../index-B2JRaoNz.js";
4
- import { localizedText as x } from "../../locale.js";
5
- import { EN_LOCALE as V } from "../../../../constants.js";
6
- import { SUPPORTED_IMAGE_EXTENSIONS as y } from "../../constants.js";
7
- import { UPLOAD_BUTTON_WIDTH_DEFAULT as W, UPLOAD_BUTTON_TAB_INDEX as j, UPLOAD_BUTTON_IMAGE_SIZE as T } from "./constants.js";
8
- import { B as H } from "../../../../Button-CcvrOEKV.js";
9
- import '../../../../assets/upload-button.css';const M = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%201024%201024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cpath%20fill='%23ffffff'%20d='M544%20864V672h128L512%20480%20352%20672h128v192H320v-1.6c-5.376.32-10.496%201.6-16%201.6A240%20240%200%200%201%2064%20624c0-123.136%2093.12-223.488%20212.608-237.248A239.808%20239.808%200%200%201%20512%20192a239.872%20239.872%200%200%201%20235.456%20194.752c119.488%2013.76%20212.48%20114.112%20212.48%20237.248a240%20240%200%200%201-240%20240c-5.376%200-10.56-1.28-16-1.6v1.6H544z'/%3e%3c/g%3e%3c/svg%3e", F = "_dragDropWrapper_cgx9x_1", z = "_input_cgx9x_4", i = {
10
- dragDropWrapper: F,
11
- input: z
12
- }, ee = (w) => {
1
+ import { jsx as r, jsxs as E, Fragment as k } from "react/jsx-runtime";
2
+ import { useState as R, useRef as W } from "react";
3
+ import { c as n } from "../../../../index-B2JRaoNz.js";
4
+ import { localizedText as T } from "../../locale.js";
5
+ import { EN_LOCALE as y } from "../../../../constants.js";
6
+ import { SUPPORTED_IMAGE_EXTENSIONS as M, MP4_VIDEO_EXT as j, WEBM_VIDEO_EXT as H } from "../../constants.js";
7
+ import { UPLOAD_BUTTON_WIDTH_DEFAULT as X, UPLOAD_BUTTON_TAB_INDEX as F, UPLOAD_BUTTON_IMAGE_SIZE as x } from "./constants.js";
8
+ import { B as z } from "../../../../Button-CcvrOEKV.js";
9
+ import '../../../../assets/upload-button.css';const Y = "data:image/svg+xml,%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Transformed%20by:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%201024%201024'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23000000'%3e%3cg%20id='SVGRepo_bgCarrier'%20stroke-width='0'/%3e%3cg%20id='SVGRepo_tracerCarrier'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cg%20id='SVGRepo_iconCarrier'%3e%3cpath%20fill='%23ffffff'%20d='M544%20864V672h128L512%20480%20352%20672h128v192H320v-1.6c-5.376.32-10.496%201.6-16%201.6A240%20240%200%200%201%2064%20624c0-123.136%2093.12-223.488%20212.608-237.248A239.808%20239.808%200%200%201%20512%20192a239.872%20239.872%200%200%201%20235.456%20194.752c119.488%2013.76%20212.48%20114.112%20212.48%20237.248a240%20240%200%200%201-240%20240c-5.376%200-10.56-1.28-16-1.6v1.6H544z'/%3e%3c/g%3e%3c/svg%3e", Z = "_dragDropWrapper_cgx9x_1", q = "_input_cgx9x_4", a = {
10
+ dragDropWrapper: Z,
11
+ input: q
12
+ }, ne = (w) => {
13
13
  const {
14
- buttonClassname: C,
15
- buttonDisabled: r = !1,
16
- children: E,
14
+ buttonClassname: O,
15
+ buttonDisabled: o = !1,
16
+ children: C,
17
17
  className: p,
18
- onChange: o,
19
- locale: g = V,
20
- width: O = W,
21
- allowedExtensions: d = y,
18
+ onChange: c,
19
+ locale: d = y,
20
+ width: I = X,
21
+ allowedExtensions: g = M,
22
22
  onDragOver: N = () => {
23
23
  },
24
- onDragLeave: S = () => {
24
+ onDragLeave: P = () => {
25
25
  },
26
- onDragDrop: I = () => {
26
+ onDragDrop: S = () => {
27
27
  },
28
- button: s,
28
+ button: i,
29
29
  multiple: f,
30
30
  onPhotoDataLoaded: L = () => {
31
31
  },
32
32
  fromSources: t,
33
+ withVideoUploaded: U = !1,
33
34
  ...u
34
- } = w, [P, l] = k(!1), c = R(null), h = (e) => {
35
- r || e && e.length > 0 && o && o({
35
+ } = w, [B, s] = R(!1), l = W(null), h = U ? [...g, j, H] : g, D = (e) => {
36
+ o || e && e.length > 0 && c && c({
36
37
  target: {
37
38
  files: e,
38
39
  value: ""
39
40
  }
40
41
  });
41
- }, U = (e) => {
42
- t?.length || (e.preventDefault(), e.stopPropagation(), N(e), r || l(!0));
42
+ }, V = (e) => {
43
+ t?.length || (e.preventDefault(), e.stopPropagation(), N(e), o || s(!0));
43
44
  }, A = (e) => {
44
- t?.length || (e.preventDefault(), e.stopPropagation(), S(e), l(!1));
45
- }, B = (e) => {
46
- if (t?.length || (e.preventDefault(), e.stopPropagation(), I(e), l(!1), r)) return;
47
- const _ = e.dataTransfer?.files;
48
- h(_);
49
- }, G = () => {
50
- t?.length ? L(t) : s && c.current?.click();
51
- }, D = (e) => {
52
- t?.length && e.preventDefault();
45
+ t?.length || (e.preventDefault(), e.stopPropagation(), P(e), s(!1));
46
+ }, G = (e) => {
47
+ if (t?.length || (e.preventDefault(), e.stopPropagation(), S(e), s(!1), o)) return;
48
+ const v = e.dataTransfer?.files;
49
+ D(v);
50
+ }, b = () => {
51
+ t?.length ? L(t) : i && l.current?.click();
53
52
  }, m = (e) => {
54
- h(e.target.files), o && o(e);
53
+ t?.length && e.preventDefault();
54
+ }, _ = (e) => {
55
+ D(e.target.files), e.target.value = "";
55
56
  };
56
- return /* @__PURE__ */ n(
57
+ return /* @__PURE__ */ r(
57
58
  "div",
58
59
  {
59
- className: a(i.dragDropWrapper),
60
- onDragOver: U,
60
+ className: n(a.dragDropWrapper),
61
+ onDragOver: V,
61
62
  onDragLeave: A,
62
- onDrop: B,
63
- onClick: G,
64
- children: s ? /* @__PURE__ */ v(b, { children: [
65
- s,
66
- /* @__PURE__ */ n(
63
+ onDrop: G,
64
+ onClick: b,
65
+ children: i ? /* @__PURE__ */ E(k, { children: [
66
+ i,
67
+ /* @__PURE__ */ r(
67
68
  "input",
68
69
  {
69
- onClick: D,
70
- ref: c,
71
- className: a(i.input, p),
70
+ onClick: m,
71
+ ref: l,
72
+ className: n(a.input, p),
72
73
  type: "file",
73
- accept: d.join(", "),
74
- onChange: m,
74
+ accept: h.join(", "),
75
+ onChange: _,
75
76
  multiple: f,
76
77
  ...u
77
78
  }
78
79
  )
79
- ] }) : /* @__PURE__ */ v(
80
- H,
80
+ ] }) : /* @__PURE__ */ E(
81
+ z,
81
82
  {
82
83
  component: "label",
83
84
  sx: {
84
- width: O
85
+ width: I
85
86
  },
86
87
  role: "none",
87
88
  variant: "contained",
88
- disabled: r,
89
- tabIndex: j,
90
- className: a(i.uploadButton, C),
91
- startIcon: /* @__PURE__ */ n(
89
+ disabled: o,
90
+ tabIndex: F,
91
+ className: n(a.uploadButton, O),
92
+ startIcon: /* @__PURE__ */ r(
92
93
  "img",
93
94
  {
94
- width: T,
95
- height: T,
96
- src: M,
97
- alt: x[g].upload
95
+ width: x,
96
+ height: x,
97
+ src: Y,
98
+ alt: T[d].upload
98
99
  }
99
100
  ),
100
101
  children: [
101
- P ? x[g].drop : E,
102
- /* @__PURE__ */ n(
102
+ B ? T[d].drop : C,
103
+ /* @__PURE__ */ r(
103
104
  "input",
104
105
  {
105
- onClick: D,
106
- ref: c,
107
- className: a(i.input, p),
106
+ onClick: m,
107
+ ref: l,
108
+ className: n(a.input, p),
108
109
  type: "file",
109
- accept: d.join(", "),
110
- onChange: m,
110
+ accept: h.join(", "),
111
+ onChange: _,
111
112
  multiple: f,
112
113
  ...u
113
114
  }
@@ -119,5 +120,5 @@ import '../../../../assets/upload-button.css';const M = "data:image/svg+xml,%3c!
119
120
  );
120
121
  };
121
122
  export {
122
- ee as UploadButton
123
+ ne as UploadButton
123
124
  };
@@ -22,7 +22,7 @@ import { Button as E } from "../../../button/button.js";
22
22
  import '../../../../assets/upload-dialog.css';function io(o) {
23
23
  return Q("MuiIconButton", o);
24
24
  }
25
- const U = K("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary", "colorSecondary", "colorError", "colorInfo", "colorSuccess", "colorWarning", "edgeStart", "edgeEnd", "sizeSmall", "sizeMedium", "sizeLarge", "loading", "loadingIndicator", "loadingWrapper"]), so = (o) => {
25
+ const U = K("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary", "colorSecondary", "colorError", "colorInfo", "colorSuccess", "colorWarning", "edgeStart", "edgeEnd", "sizeSmall", "sizeMedium", "sizeLarge", "loading", "loadingIndicator", "loadingWrapper"]), lo = (o) => {
26
26
  const {
27
27
  classes: e,
28
28
  disabled: r,
@@ -36,7 +36,7 @@ const U = K("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary"
36
36
  loadingWrapper: ["loadingWrapper"]
37
37
  };
38
38
  return eo(u, io, e);
39
- }, lo = W(ro, {
39
+ }, so = W(ro, {
40
40
  name: "MuiIconButton",
41
41
  slot: "Root",
42
42
  overridesResolver: (o, e) => {
@@ -182,9 +182,9 @@ const U = K("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary"
182
182
  disableFocusRipple: I = !1,
183
183
  size: z = "medium",
184
184
  id: v,
185
- loading: l = null,
185
+ loading: s = null,
186
186
  loadingIndicator: R,
187
- ...s
187
+ ...l
188
188
  } = c, N = ao(v), B = R ?? /* @__PURE__ */ a(no, {
189
189
  "aria-labelledby": N,
190
190
  color: "inherit",
@@ -195,20 +195,20 @@ const U = K("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary"
195
195
  color: u,
196
196
  disabled: y,
197
197
  disableFocusRipple: I,
198
- loading: l,
198
+ loading: s,
199
199
  loadingIndicator: B,
200
200
  size: z
201
- }, d = so(h);
202
- return /* @__PURE__ */ L(lo, {
203
- id: l ? N : v,
201
+ }, d = lo(h);
202
+ return /* @__PURE__ */ L(so, {
203
+ id: s ? N : v,
204
204
  className: X(d.root, b),
205
205
  centerRipple: !0,
206
206
  focusRipple: !I,
207
- disabled: y || l,
207
+ disabled: y || s,
208
208
  ref: r,
209
- ...s,
209
+ ...l,
210
210
  ownerState: h,
211
- children: [typeof l == "boolean" && // use plain HTML span to minimize the runtime overhead
211
+ children: [typeof s == "boolean" && // use plain HTML span to minimize the runtime overhead
212
212
  /* @__PURE__ */ a("span", {
213
213
  className: d.loadingWrapper,
214
214
  style: {
@@ -217,7 +217,7 @@ const U = K("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary"
217
217
  children: /* @__PURE__ */ a(co, {
218
218
  className: d.loadingIndicator,
219
219
  ownerState: h,
220
- children: l && B
220
+ children: s && B
221
221
  })
222
222
  }), f]
223
223
  });
@@ -315,9 +315,9 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
315
315
  onNextPhoto: I,
316
316
  onSkipCrop: z,
317
317
  onClearErrors: v,
318
- minDimension: l = Y,
318
+ minDimension: s = Y,
319
319
  aspectRatio: R = q,
320
- locale: s = Z,
320
+ locale: l = Z,
321
321
  circular: N,
322
322
  keepSelection: B = !0,
323
323
  photoSourceLoading: h,
@@ -327,7 +327,7 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
327
327
  errors: k,
328
328
  ...x
329
329
  } = o, S = r.slice(C).length > 1;
330
- return h ? /* @__PURE__ */ a(
330
+ return h || !r.length ? /* @__PURE__ */ a(
331
331
  T,
332
332
  {
333
333
  className: i(n.dialog, d),
@@ -344,7 +344,7 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
344
344
  children: /* @__PURE__ */ a(
345
345
  V,
346
346
  {
347
- locale: s,
347
+ locale: l,
348
348
  photoSources: r,
349
349
  errors: k,
350
350
  onCloseDialogHandler: e,
@@ -364,7 +364,7 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
364
364
  {
365
365
  onClick: e,
366
366
  className: i(n.close),
367
- "aria-label": p[s].back,
367
+ "aria-label": p[l].back,
368
368
  children: /* @__PURE__ */ a(
369
369
  "img",
370
370
  {
@@ -372,12 +372,12 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
372
372
  width: w,
373
373
  height: w,
374
374
  src: po,
375
- alt: p[s].back
375
+ alt: p[l].back
376
376
  }
377
377
  )
378
378
  }
379
379
  ) }),
380
- /* @__PURE__ */ a(G, { className: i(n.title), children: p[s]["photo-crop"] }),
380
+ /* @__PURE__ */ a(G, { className: i(n.title), children: p[l]["photo-crop"] }),
381
381
  /* @__PURE__ */ L(D, { className: i(n.content, S && n.many), children: [
382
382
  S && /* @__PURE__ */ a("span", {}),
383
383
  !!r.length && /* @__PURE__ */ a(
@@ -388,8 +388,8 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
388
388
  circularCrop: N,
389
389
  keepSelection: B,
390
390
  aspect: R,
391
- minWidth: l,
392
- minHeight: l,
391
+ minWidth: s,
392
+ minHeight: s,
393
393
  onChange: g,
394
394
  children: /* @__PURE__ */ a(
395
395
  "img",
@@ -397,7 +397,7 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
397
397
  onLoad: f,
398
398
  src: r[C],
399
399
  ref: b,
400
- alt: p[s]["photo-crop"],
400
+ alt: p[l]["photo-crop"],
401
401
  draggable: !1
402
402
  },
403
403
  C
@@ -417,7 +417,7 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
417
417
  buttonWeight: 500,
418
418
  className: i(n.button),
419
419
  onClick: z,
420
- children: p[s].skip
420
+ children: p[l].skip
421
421
  }
422
422
  ),
423
423
  /* @__PURE__ */ a(
@@ -429,7 +429,7 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
429
429
  buttonWeight: 500,
430
430
  className: i(n.button),
431
431
  onClick: I,
432
- children: p[s].continue
432
+ children: p[l].continue
433
433
  }
434
434
  )
435
435
  ] }) : /* @__PURE__ */ a(
@@ -442,7 +442,7 @@ const po = "data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%20
442
442
  buttonWeight: 500,
443
443
  className: i(n.button),
444
444
  onClick: y,
445
- children: p[s].crop
445
+ children: p[l].crop
446
446
  }
447
447
  ) })
448
448
  ]
@@ -18,6 +18,10 @@ export declare const GIF_IMAGE_TYPE = "image/gif";
18
18
  export declare const WEBP_IMAGE_TYPE = "image/webp";
19
19
  export declare const ICO_IMAGE_TYPE = "image/x-icon";
20
20
  export declare const MICROSOFT_ICO_IMAGE_TYPE = "image/vnd.microsoft.icon";
21
+ export declare const MP4_VIDEO_EXT = ".mp4";
22
+ export declare const WEBM_VIDEO_EXT = ".webm";
23
+ export declare const MP4_VIDEO_TYPE = "video/mp4";
24
+ export declare const WEBM_VIDEO_TYPE = "video/webm";
21
25
  export declare const SUPPORTED_IMAGE_MIME_TYPES: string[];
22
26
  export declare const MIME_TO_EXT: {
23
27
  JPEG_IMAGE_TYPE: string[];
@@ -1,14 +1,14 @@
1
1
  import { BYTE_TO_KILOBYTE as I } from "../../constants.js";
2
- const m = 1, L = 670, _ = ".jpg", E = ".jpeg", A = ".png", P = ".svg", G = ".bmp", M = ".gif", T = ".ico", o = ".webp", C = [
3
- _,
2
+ const N = 1, e = 670, E = ".jpg", _ = ".jpeg", P = ".png", o = ".svg", M = ".bmp", A = ".gif", T = ".ico", G = ".webp", D = [
4
3
  E,
5
- A,
4
+ _,
6
5
  P,
7
- G,
8
- M,
9
6
  o,
7
+ M,
8
+ A,
9
+ G,
10
10
  T
11
- ], n = "image/jpg", c = "image/jpeg", s = "image/png", t = "image/svg+xml", O = "image/bmp", Y = "image/gif", S = "image/webp", g = "image/x-icon", N = "image/vnd.microsoft.icon", U = [
11
+ ], n = "image/jpg", c = "image/jpeg", s = "image/png", t = "image/svg+xml", O = "image/bmp", Y = "image/gif", S = "image/webp", m = "image/x-icon", g = "image/vnd.microsoft.icon", L = ".mp4", X = ".webm", p = "video/mp4", C = "video/webm", U = [
12
12
  n,
13
13
  c,
14
14
  s,
@@ -16,55 +16,59 @@ const m = 1, L = 670, _ = ".jpg", E = ".jpeg", A = ".png", P = ".svg", G = ".bmp
16
16
  O,
17
17
  Y,
18
18
  S,
19
- g,
20
- N
21
- ], e = {
22
- JPEG_IMAGE_TYPE: [_, E],
23
- JPG_IMAGE_TYPE: [_, E],
24
- PNG_IMAGE_TYPE: [A],
25
- GIF_IMAGE_TYPE: [M],
26
- SVG_IMAGE_TYPE: [P],
27
- BMP_IMAGE_TYPE: [G],
28
- WEBP_IMAGE_TYPE: [o],
19
+ m,
20
+ g
21
+ ], F = {
22
+ JPEG_IMAGE_TYPE: [E, _],
23
+ JPG_IMAGE_TYPE: [E, _],
24
+ PNG_IMAGE_TYPE: [P],
25
+ GIF_IMAGE_TYPE: [A],
26
+ SVG_IMAGE_TYPE: [o],
27
+ BMP_IMAGE_TYPE: [M],
28
+ WEBP_IMAGE_TYPE: [G],
29
29
  ICO_IMAGE_TYPE: [T],
30
30
  MICROSOFT_ICO_IMAGE_TYPE: [T]
31
- }, X = 500, p = 5 * I * I, F = "2d", R = "high", D = "%", B = "px", a = "ms", J = "mb", b = 1, V = 100, f = 2, j = 0.5, r = 100, x = 100, H = 500;
31
+ }, R = 500, B = 5 * I * I, a = "2d", V = "high", b = "%", J = "px", v = "ms", W = "mb", d = 1, f = 100, j = 2, r = 0.5, w = 100, x = 100, H = 500;
32
32
  export {
33
- G as BMP_IMAGE_EXT,
33
+ M as BMP_IMAGE_EXT,
34
34
  O as BMP_IMAGE_TYPE,
35
- m as DEFAULT_ASPECT_RATIO,
36
- p as DEFAULT_FILE_MAX_SIZE,
37
- L as DEFAULT_MIN_DIMENSION,
38
- X as DEFAULT_TIMEOUT,
39
- V as FULL_CROP_SIZE,
40
- r as FULL_PROGRESS_VALUE,
41
- M as GIF_IMAGE_EXT,
35
+ N as DEFAULT_ASPECT_RATIO,
36
+ B as DEFAULT_FILE_MAX_SIZE,
37
+ e as DEFAULT_MIN_DIMENSION,
38
+ R as DEFAULT_TIMEOUT,
39
+ f as FULL_CROP_SIZE,
40
+ w as FULL_PROGRESS_VALUE,
41
+ A as GIF_IMAGE_EXT,
42
42
  Y as GIF_IMAGE_TYPE,
43
43
  T as ICO_IMAGE_EXT,
44
- g as ICO_IMAGE_TYPE,
45
- E as JPEG_IMAGE_EXT,
44
+ m as ICO_IMAGE_TYPE,
45
+ _ as JPEG_IMAGE_EXT,
46
46
  c as JPEG_IMAGE_TYPE,
47
- _ as JPG_IMAGE_EXT,
47
+ E as JPG_IMAGE_EXT,
48
48
  n as JPG_IMAGE_TYPE,
49
- f as MAX_ASPECT_RATIO,
50
- b as MB_FRACTION_DIGITS,
51
- J as MB_UNIT,
52
- N as MICROSOFT_ICO_IMAGE_TYPE,
53
- e as MIME_TO_EXT,
54
- j as MIN_ASPECT_RATIO,
55
- a as MS_UNIT,
56
- F as PHOTO_CANVAS_CONTEXT,
49
+ j as MAX_ASPECT_RATIO,
50
+ d as MB_FRACTION_DIGITS,
51
+ W as MB_UNIT,
52
+ g as MICROSOFT_ICO_IMAGE_TYPE,
53
+ F as MIME_TO_EXT,
54
+ r as MIN_ASPECT_RATIO,
55
+ L as MP4_VIDEO_EXT,
56
+ p as MP4_VIDEO_TYPE,
57
+ v as MS_UNIT,
58
+ a as PHOTO_CANVAS_CONTEXT,
57
59
  x as PHOTO_LOADING_DELAY,
58
- R as PHOTO_SMOOTHING_QUALITY,
59
- B as PIXEL_UNIT,
60
- A as PNG_IMAGE_EXT,
60
+ V as PHOTO_SMOOTHING_QUALITY,
61
+ J as PIXEL_UNIT,
62
+ P as PNG_IMAGE_EXT,
61
63
  s as PNG_IMAGE_TYPE,
62
- D as PRECENT_UNIT,
64
+ b as PRECENT_UNIT,
63
65
  H as RESET_DATA_DELAY,
64
- C as SUPPORTED_IMAGE_EXTENSIONS,
66
+ D as SUPPORTED_IMAGE_EXTENSIONS,
65
67
  U as SUPPORTED_IMAGE_MIME_TYPES,
66
- P as SVG_IMAGE_EXT,
68
+ o as SVG_IMAGE_EXT,
67
69
  t as SVG_IMAGE_TYPE,
68
- o as WEBP_IMAGE_EXT,
70
+ X as WEBM_VIDEO_EXT,
71
+ C as WEBM_VIDEO_TYPE,
72
+ G as WEBP_IMAGE_EXT,
69
73
  S as WEBP_IMAGE_TYPE
70
74
  };
@@ -1,263 +1,295 @@
1
- import { jsxs as To, Fragment as wo, jsx as P } from "react/jsx-runtime";
2
- import { useState as a, useRef as j } from "react";
3
- import { D as Ao } from "../../index-BiffjjQq.js";
4
- import { c as Uo } from "../../index-B2JRaoNz.js";
5
- import { localizedText as xo } from "./locale.js";
6
- import { EN_LOCALE as yo } from "../../constants.js";
7
- import { DEFAULT_MIN_DIMENSION as Oo, DEFAULT_ASPECT_RATIO as Io, DEFAULT_TIMEOUT as vo, DEFAULT_FILE_MAX_SIZE as Fo, FULL_PROGRESS_VALUE as B, PHOTO_LOADING_DELAY as Mo, RESET_DATA_DELAY as D } from "./constants.js";
8
- import { UploadDialog as No } from "./components/upload-dialog/upload-dialog.js";
9
- import { UploadButton as Ro } from "./components/upload-button/upload-button.js";
10
- import { ErrorUploadDialog as Ho } from "./components/error-upload-dialog/error-upload-dialog.js";
11
- import { validatePhotoFile as G } from "./utils/validate-photo-file.js";
12
- import { readPhoto as Y } from "./utils/read-photo.js";
13
- import { getPhotoCrop as bo } from "./utils/get-photo-crop.js";
14
- import { getCroppedSource as ko } from "./utils/get-cropped-source.js";
15
- import { getDefaultCroppedPhoto as X } from "./utils/get-default-cropped-photo.js";
16
- import '../../assets/photo-crop-uploader.css';const zo = "_photoCropCanvas_1i4lr_1", Vo = {
17
- photoCropCanvas: zo
1
+ import { jsxs as yo, Fragment as Io, jsx as _ } from "react/jsx-runtime";
2
+ import { useState as i, useRef as w } from "react";
3
+ import { D as Fo } from "../../index-BiffjjQq.js";
4
+ import { c as No } from "../../index-B2JRaoNz.js";
5
+ import { localizedText as Mo } from "./locale.js";
6
+ import { EN_LOCALE as bo } from "../../constants.js";
7
+ import { DEFAULT_MIN_DIMENSION as Ho, DEFAULT_ASPECT_RATIO as Vo, DEFAULT_TIMEOUT as ko, DEFAULT_FILE_MAX_SIZE as jo, FULL_PROGRESS_VALUE as K, PHOTO_LOADING_DELAY as zo, RESET_DATA_DELAY as m } from "./constants.js";
8
+ import { UploadDialog as Wo } from "./components/upload-dialog/upload-dialog.js";
9
+ import { UploadButton as Bo } from "./components/upload-button/upload-button.js";
10
+ import { ErrorUploadDialog as Go } from "./components/error-upload-dialog/error-upload-dialog.js";
11
+ import { isVideo as Q } from "./utils/is-video.js";
12
+ import { validatePhotoFile as $ } from "./utils/validate-photo-file.js";
13
+ import { readPhoto as oo } from "./utils/read-photo.js";
14
+ import { getPhotoCrop as Yo } from "./utils/get-photo-crop.js";
15
+ import { getCroppedSource as Xo } from "./utils/get-cropped-source.js";
16
+ import { getDefaultCroppedPhoto as eo } from "./utils/get-default-cropped-photo.js";
17
+ import '../../assets/photo-crop-uploader.css';const Zo = "_photoCropCanvas_1i4lr_1", qo = {
18
+ photoCropCanvas: Zo
18
19
  };
19
- function nr(n) {
20
+ function me(a) {
20
21
  const {
21
- buttonClassname: Z = "",
22
- onStartUpload: q = () => {
22
+ buttonClassname: ro = "",
23
+ onStartUpload: to = () => {
23
24
  },
24
- onEndUpload: J = () => {
25
+ onEndUpload: so = () => {
25
26
  },
26
- onError: K = () => {
27
+ onError: no = () => {
27
28
  },
28
- onStartCrop: Q = () => {
29
+ onStartCrop: ao = () => {
29
30
  },
30
- onDragOver: $ = () => {
31
+ onDragOver: io = () => {
31
32
  },
32
- onDragLeave: oo = () => {
33
+ onDragLeave: co = () => {
33
34
  },
34
- onDragDrop: ro = () => {
35
+ onDragDrop: lo = () => {
35
36
  },
36
- showErrorPopup: to = !1,
37
- minDimension: l = Oo,
38
- aspectRatio: h = Io,
39
- locale: s = yo,
40
- timeout: O = vo,
41
- fileMaxSize: I = Fo,
42
- allowedExtensions: S,
43
- allowedMimeTypes: v,
44
- circular: eo,
45
- width: so,
46
- keepSelection: no,
47
- uploadButton: ao,
48
- multiple: m = !1,
49
- fromSources: F,
50
- returnCropParams: lo = !1,
51
- ...io
52
- } = n, {
53
- onEndCrop: Wo,
54
- onClose: jo,
55
- ...co
56
- } = io, [po, d] = a(!1), [f, C] = a([]), [L, _] = a([]), [p, M] = a(0), N = j(null), R = j(null), [i, T] = a(!1), [fo, H] = a(0), [b, k] = a(""), [uo, g] = a([]), [ho, z] = a(!1), mo = po || i && m, Co = () => {
57
- g([]);
58
- }, w = (o = []) => {
59
- i || (n.returnCropParams === !0 && n.onClose?.(o, f), d(!1), setTimeout(() => g([]), D), setTimeout(() => C([]), D));
60
- }, A = (o = []) => {
61
- i || (n.returnCropParams !== !0 && n.onClose?.(o, f), d(!1), setTimeout(() => g([]), D), setTimeout(() => C([]), D));
62
- }, go = () => {
63
- i || (n.returnCropParams === !0 ? w([]) : A([]));
64
- }, Eo = () => {
65
- z(!1);
66
- }, U = (o) => {
67
- J(o), C(o), _(Array(o.length)), M(0), d(!0), k("");
68
- }, x = (o) => {
69
- o instanceof Error && (console.warn(o.message), K(o), k(o.message), z(!0), C([]), d(!1));
70
- }, Po = async (o) => {
71
- const { files: t } = o.target;
72
- if (t?.length && !i)
37
+ showErrorPopup: po = !1,
38
+ minDimension: c = Ho,
39
+ aspectRatio: C = Vo,
40
+ locale: s = bo,
41
+ timeout: N = ko,
42
+ fileMaxSize: M = jo,
43
+ allowedExtensions: U,
44
+ allowedMimeTypes: b,
45
+ circular: uo,
46
+ width: fo,
47
+ keepSelection: ho,
48
+ uploadButton: mo,
49
+ multiple: g = !1,
50
+ fromSources: H,
51
+ withVideoUploaded: A = !1,
52
+ returnCropParams: Co = !1,
53
+ dialogClassname: V,
54
+ ...go
55
+ } = a, {
56
+ onEndCrop: Jo,
57
+ onClose: Ko,
58
+ ...Eo
59
+ } = go, [Po, E] = i(!1), [P, D] = i([]), [x, v] = i([]), f = w([]), h = w([]), [p, k] = i(0), j = w(null), z = w(null), [l, O] = i(!1), [Do, W] = i(0), [B, G] = i(""), [So, S] = i([]), [Lo, Y] = i(!1), To = Po || l && g, _o = () => {
60
+ S([]);
61
+ }, R = (o = []) => {
62
+ l || (a.returnCropParams === !0 && a.onClose?.(
63
+ o,
64
+ f.current,
65
+ h.current
66
+ ), E(!1), setTimeout(() => S([]), m), setTimeout(() => D([]), m), setTimeout(() => {
67
+ f.current = [], h.current = [];
68
+ }, m));
69
+ }, y = (o = []) => {
70
+ l || (a.returnCropParams || a.onClose?.(
71
+ o,
72
+ f.current,
73
+ h.current
74
+ ), E(!1), setTimeout(() => S([]), m), setTimeout(() => D([]), m), setTimeout(() => {
75
+ f.current = [], h.current = [];
76
+ }, m));
77
+ }, X = () => {
78
+ l || (a.returnCropParams === !0 ? R([]) : y([]));
79
+ }, wo = () => {
80
+ Y(!1);
81
+ }, L = (o, r = o, e = []) => {
82
+ so(o), G(""), D(o), v(Array(o.length)), k(0), E(!0), f.current = r, h.current = e, o.length || X();
83
+ }, I = (o) => {
84
+ o instanceof Error && (console.warn(o.message), no(o), G(o.message), Y(!0), D([]), E(!1), f.current = [], h.current = []);
85
+ }, Uo = async (o) => {
86
+ const { files: r } = o.target;
87
+ if (r?.length && !l)
73
88
  try {
74
- if (T(!0), q(), m) {
75
- const r = Array.from(t), e = B / r.length, E = [], u = [];
76
- for (const y of r) {
89
+ if (O(!0), to(), g) {
90
+ const e = Array.from(r), t = K / e.length, T = [], u = [], q = [], F = [];
91
+ for (const d of e) {
92
+ const Ro = Q(d);
77
93
  try {
78
- G(
79
- y,
80
- {
81
- maxSize: I,
82
- allowedExtensions: S,
83
- allowedMimeTypes: v
84
- },
85
- s
86
- );
87
- const c = await Y(y, l, s, O);
88
- E.push(c);
89
- } catch (c) {
90
- let W = "";
91
- c instanceof Error && (W = c.message), u.push({
92
- photoName: y.name,
93
- errorMessage: W
94
+ if (A && Ro) {
95
+ const n = URL.createObjectURL(d);
96
+ q.push(u.length), u.push(n);
97
+ } else {
98
+ $(
99
+ d,
100
+ {
101
+ maxSize: M,
102
+ allowedExtensions: U,
103
+ allowedMimeTypes: b
104
+ },
105
+ s
106
+ );
107
+ const n = await oo(
108
+ d,
109
+ c,
110
+ s,
111
+ N
112
+ );
113
+ T.push(n), u.push(n);
114
+ }
115
+ } catch (n) {
116
+ let J = "";
117
+ n instanceof Error && (J = n.message), F.push({
118
+ photoName: d.name,
119
+ errorMessage: J
94
120
  });
95
121
  }
96
- H(
97
- (c) => Math.min(B, c + e)
98
- ), await new Promise((c) => setTimeout(c, 0));
122
+ W(
123
+ (n) => Math.min(K, n + t)
124
+ ), await new Promise((n) => setTimeout(n, 0));
99
125
  }
100
- if (F?.length)
101
- throw new Error(u[0]?.errorMessage);
102
- g(u), U(E);
126
+ if (H?.length)
127
+ throw new Error(F[0]?.errorMessage);
128
+ S(F), L(T, u, q);
103
129
  } else {
104
- const r = t[0];
105
- G(
106
- r,
107
- { maxSize: I, allowedExtensions: S, allowedMimeTypes: v },
108
- s
109
- );
110
- const e = await Y(r, l, s, O);
111
- U([e]);
130
+ const e = r[0];
131
+ if (A && Q(e)) {
132
+ const t = URL.createObjectURL(e);
133
+ L([], [t], [0]);
134
+ } else {
135
+ $(
136
+ e,
137
+ { maxSize: M, allowedExtensions: U, allowedMimeTypes: b },
138
+ s
139
+ );
140
+ const t = await oo(e, c, s, N);
141
+ L([t]);
142
+ }
112
143
  }
113
- } catch (r) {
114
- x(r);
144
+ } catch (e) {
145
+ I(e);
115
146
  } finally {
116
- m ? setTimeout(() => {
117
- o.target.value = "", H(0), T(!1);
118
- }, Mo) : (o.target.value = "", T(!1));
147
+ g ? setTimeout(() => {
148
+ o.target.value = "", W(0), O(!1);
149
+ }, zo) : (o.target.value = "", O(!1));
119
150
  }
120
- }, Do = (o) => {
121
- const { width: t, height: r } = o.currentTarget;
122
- console.log(o);
123
- const e = bo(t, r, l, h);
124
- _((E) => {
125
- const u = [...E];
126
- return u[p] = e, u;
151
+ }, Ao = (o) => {
152
+ const { width: r, height: e } = o.currentTarget, t = Yo(r, e, c, C);
153
+ v((T) => {
154
+ const u = [...T];
155
+ return u[p] = t, u;
127
156
  });
128
- }, So = (o, t) => {
129
- _((r) => {
130
- const e = [...r];
131
- return e[p] = t, e;
157
+ }, xo = (o, r) => {
158
+ v((e) => {
159
+ const t = [...e];
160
+ return t[p] = r, t;
132
161
  });
133
- }, V = () => {
134
- const o = R.current, t = N.current;
135
- if (o && t && L)
162
+ }, Z = () => {
163
+ const o = z.current, r = j.current;
164
+ if (o && r && x)
136
165
  try {
137
- const r = L[p];
138
- if (!r) return !1;
139
- if (Q(), n.returnCropParams === !0) {
140
- const e = Ao(r, t.naturalWidth, t.naturalHeight);
141
- n.onEndCrop?.(e), p >= f.length - 1 && w();
166
+ const e = x[p];
167
+ if (!e) return !1;
168
+ if (ao(), a.returnCropParams === !0) {
169
+ const t = Fo(e, r.naturalWidth, r.naturalHeight);
170
+ a.onEndCrop?.(t), p >= P.length - 1 && R();
142
171
  } else {
143
- const e = ko(
144
- t,
145
- o,
172
+ const t = Xo(
146
173
  r,
174
+ o,
175
+ e,
147
176
  s
148
177
  );
149
- n.onEndCrop?.(e), p >= f.length - 1 && A();
178
+ a.onEndCrop?.(t), p >= P.length - 1 && y();
150
179
  }
151
180
  return !0;
152
- } catch (r) {
153
- return r instanceof Error && (console.warn(r), x(r)), !1;
181
+ } catch (e) {
182
+ return e instanceof Error && (console.warn(e), I(e)), !1;
154
183
  }
155
184
  else
156
185
  return !1;
157
- }, Lo = () => {
158
- V() && M((t) => t + 1);
159
- }, _o = async () => {
160
- const o = f.slice(p);
186
+ }, vo = () => {
187
+ Z() && k((r) => r + 1);
188
+ }, Oo = async () => {
189
+ const o = P.slice(p);
161
190
  try {
162
- if (lo) {
163
- const t = await Promise.all(
191
+ if (Co) {
192
+ const r = await Promise.all(
164
193
  o.map(
165
- (r) => X(
166
- r,
167
- l,
168
- h,
194
+ (e) => eo(
195
+ e,
196
+ c,
197
+ C,
169
198
  s,
170
199
  !0
171
200
  )
172
201
  )
173
202
  );
174
- w(t);
203
+ R(r);
175
204
  } else {
176
- const t = await Promise.all(
205
+ const r = await Promise.all(
177
206
  o.map(
178
- (r) => X(
179
- r,
180
- l,
181
- h,
207
+ (e) => eo(
208
+ e,
209
+ c,
210
+ C,
182
211
  s,
183
212
  !1
184
213
  )
185
214
  )
186
215
  );
187
- A(t);
216
+ y(r);
188
217
  }
189
- } catch (t) {
190
- x(t);
218
+ } catch (r) {
219
+ I(r);
191
220
  }
192
221
  };
193
- return /* @__PURE__ */ To(wo, { children: [
194
- /* @__PURE__ */ P(
195
- Ro,
222
+ return /* @__PURE__ */ yo(Io, { children: [
223
+ /* @__PURE__ */ _(
224
+ Bo,
196
225
  {
197
- onChange: Po,
198
- onPhotoDataLoaded: U,
199
- buttonClassname: Z,
200
- disabled: i,
201
- buttonDisabled: i,
226
+ onChange: Uo,
227
+ onPhotoDataLoaded: L,
228
+ buttonClassname: ro,
229
+ disabled: l,
230
+ buttonDisabled: l,
202
231
  locale: s,
203
- width: so,
204
- allowedExtensions: S,
205
- onDragDrop: ro,
206
- onDragLeave: oo,
207
- onDragOver: $,
208
- button: ao,
209
- multiple: m,
210
- fromSources: F,
211
- ...co,
212
- children: xo[s].upload
232
+ width: fo,
233
+ allowedExtensions: U,
234
+ onDragDrop: lo,
235
+ onDragLeave: co,
236
+ onDragOver: io,
237
+ button: mo,
238
+ multiple: g,
239
+ fromSources: H,
240
+ withVideoUploaded: A,
241
+ ...Eo,
242
+ children: Mo[s].upload
213
243
  }
214
244
  ),
215
- /* @__PURE__ */ P(
216
- No,
245
+ /* @__PURE__ */ _(
246
+ Wo,
217
247
  {
218
- open: mo,
219
- photoSourceLoading: i,
220
- loadingValue: fo,
221
- errors: uo,
222
- photoCrops: L,
223
- photoSources: f,
224
- onNextPhoto: Lo,
225
- onSkipCrop: _o,
226
- onClearErrors: Co,
227
- photoError: b,
228
- onCloseDialogHandler: go,
229
- onCropChange: So,
230
- onPhotoCrop: V,
231
- onPhotoLoad: Do,
232
- imageRef: N,
233
- minDimension: l,
234
- aspectRatio: h,
248
+ open: To,
249
+ className: V,
250
+ photoSourceLoading: l,
251
+ loadingValue: Do,
252
+ errors: So,
253
+ photoCrops: x,
254
+ photoSources: P,
255
+ onNextPhoto: vo,
256
+ onSkipCrop: Oo,
257
+ onClearErrors: _o,
258
+ photoError: B,
259
+ onCloseDialogHandler: X,
260
+ onCropChange: xo,
261
+ onPhotoCrop: Z,
262
+ onPhotoLoad: Ao,
263
+ imageRef: j,
264
+ minDimension: c,
265
+ aspectRatio: C,
235
266
  locale: s,
236
- circular: eo,
237
- keepSelection: no,
267
+ circular: uo,
268
+ keepSelection: ho,
238
269
  photoIndex: p
239
270
  }
240
271
  ),
241
- /* @__PURE__ */ P(
242
- Ho,
272
+ /* @__PURE__ */ _(
273
+ Go,
243
274
  {
244
- open: to && ho,
245
- photoError: b,
246
- onCloseErrorDialog: Eo,
275
+ className: V,
276
+ open: po && Lo,
277
+ photoError: B,
278
+ onCloseErrorDialog: wo,
247
279
  locale: s
248
280
  }
249
281
  ),
250
- /* @__PURE__ */ P(
282
+ /* @__PURE__ */ _(
251
283
  "canvas",
252
284
  {
253
- className: Uo(Vo.photoCropCanvas),
254
- width: l,
255
- height: l,
256
- ref: R
285
+ className: No(qo.photoCropCanvas),
286
+ width: c,
287
+ height: c,
288
+ ref: z
257
289
  }
258
290
  )
259
291
  ] });
260
292
  }
261
293
  export {
262
- nr as PhotoCropUploader
294
+ me as PhotoCropUploader
263
295
  };
@@ -18,12 +18,12 @@ export type PhotoFileOptions = {
18
18
  type CropPropsWithParams = {
19
19
  returnCropParams: true;
20
20
  onEndCrop?: (photoData: PixelCrop) => unknown;
21
- onClose?: (skipPhotosData: PixelCrop[], sourcesData: PhotoDataUrl[]) => unknown;
21
+ onClose?: (skipPhotosData: PixelCrop[], sourcesData: PhotoDataUrl[], videoSourceIndexes: number[]) => unknown;
22
22
  };
23
23
  type CropPropsWithDataUrl = {
24
24
  returnCropParams?: false;
25
25
  onEndCrop?: (photoData: PhotoDataUrl) => unknown;
26
- onClose?: (skipPhotosData: PhotoDataUrl[], sourcesData: PhotoDataUrl[]) => unknown;
26
+ onClose?: (skipPhotosData: PhotoDataUrl[], sourcesData: PhotoDataUrl[], videoSourceIndexes: number[]) => unknown;
27
27
  };
28
28
  type CropProps = CropPropsWithParams | CropPropsWithDataUrl;
29
29
  export type PhotoCropUploaderCustomProps = {
@@ -48,6 +48,8 @@ export type PhotoCropUploaderCustomProps = {
48
48
  width?: number;
49
49
  uploadButton?: ReactNode;
50
50
  fromSources?: PhotoDataUrl[];
51
+ withVideoUploaded?: boolean;
52
+ dialogClassname?: string;
51
53
  };
52
54
  export type PhotoCropUploaderProps = PhotoCropUploaderCustomProps & CropProps & InputHTMLAttributes<HTMLInputElement>;
53
55
  export type PhotoCropUploaderLocaleText = Record<Locale, Record<string, string>>;
@@ -4,3 +4,4 @@ export { getCroppedSource } from './get-cropped-source';
4
4
  export { validatePhotoFile } from './validate-photo-file';
5
5
  export { getDefaultCroppedPhoto } from './get-default-cropped-photo';
6
6
  export { drawCroppedImage } from './draw-cropped-image';
7
+ export { isVideo } from './is-video';
@@ -1,14 +1,16 @@
1
1
  import { readPhoto as e } from "./read-photo.js";
2
2
  import { getPhotoCrop as p } from "./get-photo-crop.js";
3
3
  import { getCroppedSource as m } from "./get-cropped-source.js";
4
- import { validatePhotoFile as d } from "./validate-photo-file.js";
4
+ import { validatePhotoFile as x } from "./validate-photo-file.js";
5
5
  import { getDefaultCroppedPhoto as g } from "./get-default-cropped-photo.js";
6
- import { drawCroppedImage as C } from "./draw-cropped-image.js";
6
+ import { drawCroppedImage as i } from "./draw-cropped-image.js";
7
+ import { isVideo as P } from "./is-video.js";
7
8
  export {
8
- C as drawCroppedImage,
9
+ i as drawCroppedImage,
9
10
  m as getCroppedSource,
10
11
  g as getDefaultCroppedPhoto,
11
12
  p as getPhotoCrop,
13
+ P as isVideo,
12
14
  e as readPhoto,
13
- d as validatePhotoFile
15
+ x as validatePhotoFile
14
16
  };
@@ -0,0 +1 @@
1
+ export declare const isVideo: (file: File) => boolean;
@@ -0,0 +1,8 @@
1
+ import { MP4_VIDEO_EXT as o, WEBM_VIDEO_EXT as s, MP4_VIDEO_TYPE as _, WEBM_VIDEO_TYPE as I } from "../constants.js";
2
+ const c = [o, s], O = [_, I], T = (E) => {
3
+ const t = E.name.lastIndexOf("."), e = t > 0 ? E.name.slice(t).toLowerCase() : "", n = E.type;
4
+ return c.includes(e) && O.includes(n);
5
+ };
6
+ export {
7
+ T as isVideo
8
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hai-dev/ui-kit",
3
3
  "private": false,
4
- "version": "1.1.2",
4
+ "version": "1.1.5",
5
5
  "license": "UNLICENSED",
6
6
  "author": {
7
7
  "name": "Vladislav Knitrunov",