xtreme-ui 0.0.78 → 0.0.80

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 (42) hide show
  1. package/dist/components/base/Avatar/Avatar.d.ts.map +1 -1
  2. package/dist/components/base/Avatar/Avatar.js +37 -37
  3. package/dist/components/base/Avatar/avatar.scss.js +1 -0
  4. package/dist/components/base/Avatar/types.d.ts +2 -1
  5. package/dist/components/base/Avatar/types.d.ts.map +1 -1
  6. package/dist/components/base/DatePicker/DatePicker.js +13 -13
  7. package/dist/components/base/FilePicker/FilePicker.d.ts +3 -0
  8. package/dist/components/base/FilePicker/FilePicker.d.ts.map +1 -0
  9. package/dist/components/base/FilePicker/FilePicker.js +73 -0
  10. package/dist/components/base/FilePicker/filePicker.scss.js +1 -0
  11. package/dist/components/base/FilePicker/getFilePickerIcon.d.ts +2 -0
  12. package/dist/components/base/FilePicker/getFilePickerIcon.d.ts.map +1 -0
  13. package/dist/components/base/FilePicker/getFilePickerIcon.js +26 -0
  14. package/dist/components/base/FilePicker/types.d.ts +56 -0
  15. package/dist/components/base/FilePicker/types.d.ts.map +1 -0
  16. package/dist/components/base/FilePicker/types.js +33 -0
  17. package/dist/components/base/Select/Select.d.ts +1 -1
  18. package/dist/components/base/Select/Select.d.ts.map +1 -1
  19. package/dist/components/base/Select/Select.js +43 -42
  20. package/dist/components/base/Select/types.d.ts +18 -10
  21. package/dist/components/base/Select/types.d.ts.map +1 -1
  22. package/dist/components/base/Spinner/Spinner.d.ts.map +1 -1
  23. package/dist/components/base/Spinner/Spinner.js +20 -20
  24. package/dist/components/base/Spinner/spinner.scss.js +1 -0
  25. package/dist/components/base/Textfield/textfield.module.scss.js +20 -20
  26. package/dist/components/layout/ImageEditor/ImageEditor.d.ts +3 -0
  27. package/dist/components/layout/ImageEditor/ImageEditor.d.ts.map +1 -0
  28. package/dist/components/layout/ImageEditor/ImageEditor.js +63 -0
  29. package/dist/components/layout/ImageEditor/imageEditor.scss.js +1 -0
  30. package/dist/components/layout/ImageEditor/types.d.ts +15 -0
  31. package/dist/components/layout/ImageEditor/types.d.ts.map +1 -0
  32. package/dist/index.d.ts +5 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +45 -41
  35. package/dist/style.css +1 -1
  36. package/dist/utils/helper/imageHelper.d.ts +12 -0
  37. package/dist/utils/helper/imageHelper.d.ts.map +1 -0
  38. package/dist/utils/helper/imageHelper.js +52 -0
  39. package/package.json +25 -23
  40. package/dist/components/base/Avatar/avatar.module.scss.js +0 -17
  41. package/dist/components/base/Select/types.js +0 -4
  42. package/dist/components/base/Spinner/spinner.module.scss.js +0 -21
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Avatar/Avatar.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AAEpD,eAAO,MAAM,MAAM,yGAiDjB,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Avatar/Avatar.tsx"],"names":[],"mappings":";AAQA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AAEpD,eAAO,MAAM,MAAM,yGAoEjB,CAAC"}
@@ -1,46 +1,46 @@
1
1
  "use client";
2
- import { jsx as l } from "react/jsx-runtime";
3
- import { forwardRef as y, useState as n, useEffect as z } from "react";
4
- import I from "clsx";
5
- import { Icon as N } from "../Icon/Icon.js";
6
- import e from "./avatar.module.scss.js";
7
- import { EAvatarSize as A } from "./types.js";
8
- const E = y((f, d) => {
9
- const { className: p, src: a, alt: u, placeholderIcon: g = "f03e", size: o = "default", onClick: v } = f, [i, s] = n(!0), [t, c] = n(!1), m = typeof o == "number" ? o : A[o], x = I(
10
- e.avatar,
11
- p,
12
- i && e.loading,
13
- t && e.error
14
- );
15
- return z(() => {
16
- s(!0), c(!1);
17
- const r = new Image();
18
- return r.src = a, r.onload = () => s(!1), r.onerror = () => {
19
- s(!1), c(!0);
20
- }, () => {
21
- r.onload = null;
22
- };
23
- }, [a]), /* @__PURE__ */ l(
2
+ import { jsxs as z, jsx as d } from "react/jsx-runtime";
3
+ import { forwardRef as A, useState as l, useEffect as N } from "react";
4
+ import S from "clsx";
5
+ import { readImageFile as E, readImageSrc as L } from "../../../utils/helper/imageHelper.js";
6
+ import { Icon as b } from "../Icon/Icon.js";
7
+ import "./avatar.scss.js";
8
+ import { EAvatarSize as j } from "./types.js";
9
+ const C = A((p, u) => {
10
+ const { className: g, src: r, file: t, alt: v, placeholderIcon: h = "f03e", size: i = "default", onClick: x } = p, [c, m] = l(), [I, a] = l(!!r || !!t), [f, s] = l(!1), n = typeof i == "number" ? i : j[i], y = S(
11
+ "xtrAvatar",
12
+ g,
13
+ I && "loading",
14
+ f && "error"
15
+ ), o = (e) => {
16
+ e && setTimeout(() => m(e), 300), setTimeout(() => a(!1), 1e3);
17
+ };
18
+ return N(() => {
19
+ try {
20
+ t ? (a(!0), s(!1), E(t).then((e) => o(e)).catch(() => {
21
+ a(!1), s(!0);
22
+ })) : r ? (a(!0), s(!1), L(r).then((e) => o(e)).catch(() => {
23
+ a(!1), s(!0);
24
+ })) : (m(void 0), o());
25
+ } catch {
26
+ o();
27
+ }
28
+ }, [r, t]), /* @__PURE__ */ z(
24
29
  "div",
25
30
  {
26
- ref: d,
27
- className: x,
28
- style: { "--avatarSize": m + "px" },
29
- onClick: v,
31
+ ref: u,
32
+ className: y,
33
+ style: { "--avatarSize": n + "px" },
34
+ onClick: x,
30
35
  role: "img",
31
- children: i || t ? /* @__PURE__ */ l(
32
- N,
33
- {
34
- className: e.placeholder,
35
- type: "solid",
36
- size: 8 + m / 4,
37
- code: t ? "e1b7" : g
38
- }
39
- ) : /* @__PURE__ */ l("img", { className: e.image, src: a, alt: u })
36
+ children: [
37
+ !c && /* @__PURE__ */ d(b, { className: "placeholder", type: "solid", size: 8 + n / 4, code: f ? "e1b7" : h }),
38
+ c && /* @__PURE__ */ d("img", { className: "image", src: c, alt: v })
39
+ ]
40
40
  }
41
41
  );
42
42
  });
43
- E.displayName = "Avatar";
43
+ C.displayName = "Avatar";
44
44
  export {
45
- E as Avatar
45
+ C as Avatar
46
46
  };
@@ -1,6 +1,7 @@
1
1
  export type TAvatarProps = {
2
2
  className?: string;
3
- src: string;
3
+ src?: string;
4
+ file?: Blob;
4
5
  alt?: string;
5
6
  placeholderIcon?: string;
6
7
  size?: number | keyof typeof EAvatarSize;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Avatar/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,OAAO,WAAW,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAA;AAED,oBAAY,WAAW;IACtB,IAAI,KAAK;IACT,OAAO,KAAK;IACZ,KAAK,MAAM;CACX"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Avatar/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,OAAO,WAAW,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAA;AAED,oBAAY,WAAW;IACtB,IAAI,KAAK;IACT,OAAO,KAAK;IACZ,KAAK,MAAM;CACX"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import g from "clsx";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ import M from "clsx";
4
4
  import e from "react-datetime-picker";
5
5
  import { Icon as m } from "../Icon/Icon.js";
6
6
  import "./datePicker.scss.js";
@@ -18,11 +18,11 @@ const u = {
18
18
  timeRange: e,
19
19
  dateTime: e,
20
20
  dateTimeRange: e
21
- }, j = (d) => {
21
+ }, b = (r) => {
22
22
  const {
23
23
  className: c,
24
- type: a = "date",
25
- format: r,
24
+ type: t = "date",
25
+ format: d,
26
26
  dayPlaceholder: s = "dd",
27
27
  monthPlaceholder: n = "mm",
28
28
  yearPlaceholder: l = "yyyy",
@@ -33,14 +33,14 @@ const u = {
33
33
  icon: p = "f784",
34
34
  value: P,
35
35
  onChange: D
36
- } = d, f = {
37
- className: g(
36
+ } = r, f = {
37
+ className: M(
38
38
  "xtrDatePicker",
39
39
  c
40
40
  ),
41
- calendarIcon: /* @__PURE__ */ t(m, { code: p, type: "solid" }),
42
- clearIcon: /* @__PURE__ */ t(m, { code: "f00d", type: "solid" }),
43
- format: r ?? u[a],
41
+ calendarIcon: /* @__PURE__ */ a(m, { code: p, type: "regular" }),
42
+ clearIcon: /* @__PURE__ */ a(m, { code: "e59b", type: "solid" }),
43
+ format: d ?? u[t],
44
44
  dayPlaceholder: s,
45
45
  monthPlaceholder: n,
46
46
  yearPlaceholder: l,
@@ -50,9 +50,9 @@ const u = {
50
50
  placeholder: o,
51
51
  value: P,
52
52
  onChange: D
53
- }, M = x[a];
54
- return /* @__PURE__ */ t(M, { "data-testid": o, ...f });
53
+ }, g = x[t];
54
+ return /* @__PURE__ */ a(g, { "data-testid": o, ...f });
55
55
  };
56
56
  export {
57
- j as DatePicker
57
+ b as DatePicker
58
58
  };
@@ -0,0 +1,3 @@
1
+ import { TFilePickerProps } from './types';
2
+ export declare const FilePicker: (props: TFilePickerProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=FilePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/base/FilePicker/FilePicker.tsx"],"names":[],"mappings":"AASA,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAa,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,UAAU,UAAW,gBAAgB,4CAwEjD,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use client";
2
+ import { jsxs as c, Fragment as h, jsx as i } from "react/jsx-runtime";
3
+ import y from "clsx";
4
+ import { createPortal as p } from "react-dom";
5
+ import { useFilePicker as N } from "use-file-picker";
6
+ import { ImageEditor as k } from "../../layout/ImageEditor/ImageEditor.js";
7
+ import { Button as E } from "../Button/Button.js";
8
+ import { Icon as I } from "../Icon/Icon.js";
9
+ import "./filePicker.scss.js";
10
+ import { getFilePickerIcon as j } from "./getFilePickerIcon.js";
11
+ import { imageExts as S } from "./types.js";
12
+ const J = (C) => {
13
+ var b, u, g;
14
+ const { className: x, children: t, draggable: d = !1, editable: P = !1, multiple: l = !1, accept: o = "*/*", onChange: n } = C, m = P && !l && (o.includes("image") || S.includes((g = (u = (b = o == null ? void 0 : o.split) == null ? void 0 : b.call(o, ",")) == null ? void 0 : u[0]) == null ? void 0 : g.replace(".", ""))), { openFilePicker: s, loading: F, plainFiles: e, clear: f } = N({
15
+ accept: o,
16
+ multiple: l,
17
+ onFilesSuccessfullySelected: ({ plainFiles: r }) => {
18
+ m || n(r);
19
+ }
20
+ }), a = y(
21
+ "xtrFilePicker",
22
+ t && "wrapper",
23
+ d && "draggable",
24
+ x
25
+ );
26
+ return t ? /* @__PURE__ */ c(h, { children: [
27
+ /* @__PURE__ */ i("div", { className: a, onClick: s, children: t }),
28
+ m && (e == null ? void 0 : e[0]) && p(
29
+ /* @__PURE__ */ i(
30
+ k,
31
+ {
32
+ file: e == null ? void 0 : e[0],
33
+ clearFile: f,
34
+ onChange: (r) => n(r.blob ? [r.blob] : [])
35
+ }
36
+ ),
37
+ document.body
38
+ )
39
+ ] }) : d ? /* @__PURE__ */ c("div", { className: a, onClick: s, children: [
40
+ /* @__PURE__ */ i(I, { code: "f0ed", type: "duotone", size: 64 }),
41
+ /* @__PURE__ */ c("h2", { children: [
42
+ "Drop File",
43
+ l ? "s" : "",
44
+ " Here"
45
+ ] }),
46
+ /* @__PURE__ */ i("p", { children: "or click here to open file chooser" })
47
+ ] }) : /* @__PURE__ */ c(h, { children: [
48
+ /* @__PURE__ */ i(
49
+ E,
50
+ {
51
+ className: a,
52
+ label: `Choose File${l ? "s" : ""}`,
53
+ icon: j(o),
54
+ onClick: s,
55
+ loading: F
56
+ }
57
+ ),
58
+ m && (e == null ? void 0 : e[0]) && p(
59
+ /* @__PURE__ */ i(
60
+ k,
61
+ {
62
+ file: e == null ? void 0 : e[0],
63
+ clearFile: f,
64
+ onChange: (r) => n(r.blob ? [r.blob] : [])
65
+ }
66
+ ),
67
+ document.body
68
+ )
69
+ ] });
70
+ };
71
+ export {
72
+ J as FilePicker
73
+ };
@@ -0,0 +1,2 @@
1
+ export declare const getFilePickerIcon: (accept?: string) => any;
2
+ //# sourceMappingURL=getFilePickerIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFilePickerIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/base/FilePicker/getFilePickerIcon.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,YAAY,MAAM,QAqB/C,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { FilePickerIcon as i } from "./types.js";
2
+ const d = (e = "") => {
3
+ var t, o;
4
+ if (e.includes(",") && e.includes("/")) {
5
+ let n = 0;
6
+ if (e.split(",").map((l) => {
7
+ var f;
8
+ return (f = l.split("/")) == null ? void 0 : f[0];
9
+ }).forEach((l) => {
10
+ l in i && n++;
11
+ }), n > 0)
12
+ return i.multimedia;
13
+ }
14
+ if (e.includes("/")) {
15
+ const [n, r] = e.split("/");
16
+ if (r in i)
17
+ return i[r];
18
+ if (n in i)
19
+ return i[n];
20
+ }
21
+ const s = e.includes(",") ? (o = (t = e.split(",")) == null ? void 0 : t[0]) == null ? void 0 : o.replace(".", "") : e.replace(".", "");
22
+ return s in i ? i[s] : i.file;
23
+ };
24
+ export {
25
+ d as getFilePickerIcon
26
+ };
@@ -0,0 +1,56 @@
1
+ import { ReactNode } from 'react';
2
+ export type TFilePickerProps = {
3
+ className?: string;
4
+ children?: ReactNode;
5
+ accept?: string;
6
+ draggable?: boolean;
7
+ editable?: boolean;
8
+ multiple?: boolean;
9
+ onChange: (file: Blob[]) => void;
10
+ };
11
+ export declare enum EFilePickerAccept {
12
+ all = "*/*",
13
+ text = ".txt",
14
+ image = "image/*",
15
+ audio = "audio/*",
16
+ video = "video/*",
17
+ compressed = ".zip, .rar, 7z",
18
+ pdf = ".pdf",
19
+ doc = ".doc, .docx",
20
+ xls = ".xls, .xlsx",
21
+ ppt = ".ppt, .pptx",
22
+ csv = ".csv",
23
+ json = ".json",
24
+ html = ".html, .htm"
25
+ }
26
+ export declare const imageExts: string[];
27
+ export declare const FilePickerIcon: {
28
+ readonly file: "f15b";
29
+ readonly multimedia: "f86d";
30
+ readonly image: "f1c5";
31
+ readonly jpg: "e646";
32
+ readonly jpeg: "e646";
33
+ readonly png: "e666";
34
+ readonly gif: "e645";
35
+ readonly svg: "e64b";
36
+ readonly eps: "e644";
37
+ readonly audio: "f1c7";
38
+ readonly mp3: "e648";
39
+ readonly wav: "f478";
40
+ readonly video: "f1c8";
41
+ readonly mp4: "e649";
42
+ readonly mov: "e647";
43
+ readonly pdf: "f1c1";
44
+ readonly doc: "e5ed";
45
+ readonly docx: "e5ed";
46
+ readonly xls: "e64d";
47
+ readonly xlsx: "e64d";
48
+ readonly ppt: "e64a";
49
+ readonly pptx: "e64a";
50
+ readonly csv: "f6dd";
51
+ readonly html: "f1c9";
52
+ readonly zip: "e5ee";
53
+ readonly rar: "f1c6";
54
+ readonly '7z': "f1c6";
55
+ };
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/FilePicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,gBAAgB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CACjC,CAAA;AAED,oBAAY,iBAAiB;IAC5B,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,KAAK,YAAY;IACjB,KAAK,YAAY;IACjB,KAAK,YAAY;IACjB,UAAU,mBAAmB;IAC7B,GAAG,SAAS;IACZ,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,GAAG,SAAS;IACZ,IAAI,UAAU;IACd,IAAI,gBAAgB;CACpB;AAED,eAAO,MAAM,SAAS,UAAgE,CAAC;AACvF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCjB,CAAC"}
@@ -0,0 +1,33 @@
1
+ const e = ["jpg", "jpeg", "png", "gif", ".bmp", "webp", "heif", "heic"], p = {
2
+ file: "f15b",
3
+ multimedia: "f86d",
4
+ image: "f1c5",
5
+ jpg: "e646",
6
+ jpeg: "e646",
7
+ png: "e666",
8
+ gif: "e645",
9
+ svg: "e64b",
10
+ eps: "e644",
11
+ audio: "f1c7",
12
+ mp3: "e648",
13
+ wav: "f478",
14
+ video: "f1c8",
15
+ mp4: "e649",
16
+ mov: "e647",
17
+ pdf: "f1c1",
18
+ doc: "e5ed",
19
+ docx: "e5ed",
20
+ xls: "e64d",
21
+ xlsx: "e64d",
22
+ ppt: "e64a",
23
+ pptx: "e64a",
24
+ csv: "f6dd",
25
+ html: "f1c9",
26
+ zip: "e5ee",
27
+ rar: "f1c6",
28
+ "7z": "f1c6"
29
+ };
30
+ export {
31
+ p as FilePickerIcon,
32
+ e as imageExts
33
+ };
@@ -1,3 +1,3 @@
1
1
  import { TSelectProps } from './types';
2
- export declare function Select<TValue = string>(props: TSelectProps<TValue>): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Select<T>(props: TSelectProps<T>): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Select/Select.tsx"],"names":[],"mappings":"AAOA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,MAAM,CAAC,MAAM,GAAG,MAAM,EAAG,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,2CAqDnE"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Select/Select.tsx"],"names":[],"mappings":"AAOA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/C,wBAAgB,MAAM,CAAC,CAAC,EAAG,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,2CA4DhD"}
@@ -1,60 +1,61 @@
1
1
  "use client";
2
- import { jsxs as g, jsx as t } from "react/jsx-runtime";
3
- import { useState as b } from "react";
4
- import N from "clsx";
5
- import C from "react-select";
6
- import { Icon as I } from "../Icon/Icon.js";
2
+ import { jsxs as M, jsx as t } from "react/jsx-runtime";
3
+ import { useState as N, useMemo as I } from "react";
4
+ import O from "clsx";
5
+ import j from "react-select";
6
+ import { Icon as y } from "../Icon/Icon.js";
7
7
  import "./select.scss.js";
8
- function D(c) {
8
+ function q(i) {
9
9
  const {
10
- className: r,
11
- type: e = "single",
12
- placeholder: l = "Select an option",
13
- noOptionsMessage: i,
14
- icon: s,
15
- iconType: p = "regular",
16
- clearable: m = !0,
10
+ className: p,
11
+ multi: o = !1,
12
+ placeholder: s = "Select an option",
13
+ noOptionsMessage: m,
14
+ icon: l,
15
+ iconType: d = "regular",
16
+ clearable: f = !0,
17
17
  searchable: u = !0,
18
- disabled: d = !1,
19
- loading: f = !1,
20
- options: x,
21
- value: o,
18
+ disabled: h = !1,
19
+ loading: x = !1,
20
+ options: c,
21
+ value: a,
22
22
  onChange: S
23
- } = c;
24
- console.log(o);
25
- const [a, n] = b(!1), h = N(
23
+ } = i, [n, r] = N(!1), g = I(() => c.find((e) => e.value === a), [a]), v = O(
26
24
  "xtrSelectWrapper",
27
- e,
28
- s && "withIcon",
29
- !!o && "withValue",
30
- a && "open",
31
- r
25
+ o ? "multi" : "single",
26
+ l && "withIcon",
27
+ !!a && "withValue",
28
+ n && "open",
29
+ p
32
30
  );
33
- return /* @__PURE__ */ g("div", { className: h, children: [
31
+ return /* @__PURE__ */ M("div", { className: v, children: [
34
32
  /* @__PURE__ */ t(
35
- C,
33
+ j,
36
34
  {
37
35
  className: "xtrSelect",
38
36
  classNamePrefix: "xtrSelect",
39
- isMulti: e === "multi",
40
- menuIsOpen: a,
41
- onMenuOpen: () => n(!0),
42
- onMenuClose: () => n(!1),
43
- noOptionsMessage: i,
44
- placeholder: l,
45
- isClearable: m,
37
+ isMulti: o,
38
+ menuIsOpen: n,
39
+ onMenuOpen: () => r(!0),
40
+ onMenuClose: () => r(!1),
41
+ noOptionsMessage: m,
42
+ placeholder: s,
43
+ isClearable: f,
46
44
  isSearchable: u,
47
- isDisabled: d,
48
- isLoading: f,
49
- options: x,
50
- value: o,
51
- onChange: S
45
+ isDisabled: h,
46
+ isLoading: x,
47
+ options: c,
48
+ value: g,
49
+ onChange: (e, D) => {
50
+ const C = o ? e == null ? void 0 : e.map(({ value: b }) => b) : e == null ? void 0 : e.value;
51
+ S(C);
52
+ }
52
53
  }
53
54
  ),
54
- l && e === "single" && /* @__PURE__ */ t("p", { className: "placeholder", children: l }),
55
- s && /* @__PURE__ */ t(I, { className: "xtrSelectIcon", code: s, type: p })
55
+ s && !o && /* @__PURE__ */ t("p", { className: "placeholder", children: s }),
56
+ l && /* @__PURE__ */ t(y, { className: "xtrSelectIcon", code: l, type: d })
56
57
  ] });
57
58
  }
58
59
  export {
59
- D as Select
60
+ q as Select
60
61
  };
@@ -1,9 +1,11 @@
1
1
  import { ReactNode } from 'react';
2
- import { ActionMeta, GroupBase, MultiValue, PropsValue, SingleValue } from 'react-select';
3
2
  import { EIconType } from '../Icon/types';
4
- export type TSelectProps<T = string> = {
3
+ export type Option<T> = {
4
+ label: string;
5
+ value: T;
6
+ };
7
+ type TCommonProps<T> = {
5
8
  className?: string;
6
- type?: keyof typeof ESelectTypes;
7
9
  noOptionsMessage?: (obj: {
8
10
  inputValue: string;
9
11
  }) => ReactNode;
@@ -14,12 +16,18 @@ export type TSelectProps<T = string> = {
14
16
  searchable?: boolean;
15
17
  disabled?: boolean;
16
18
  loading?: boolean;
17
- options: (T | GroupBase<T>)[];
18
- value?: PropsValue<T>;
19
- onChange?: (newValue: SingleValue<T> | MultiValue<T>, actionMeta: ActionMeta<T>) => void;
19
+ options: Option<T>[];
20
+ };
21
+ type SingleProps<T> = TCommonProps<T> & {
22
+ multi?: false;
23
+ value?: T;
24
+ onChange: (value: T) => void;
25
+ };
26
+ type MultiProps<T> = TCommonProps<T> & {
27
+ multi: true;
28
+ value?: T[];
29
+ onChange: (value: T[]) => void;
20
30
  };
21
- export declare enum ESelectTypes {
22
- single = "single",
23
- multi = "multi"
24
- }
31
+ export type TSelectProps<T> = SingleProps<T> | MultiProps<T>;
32
+ export {};
25
33
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Select/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,MAAM,IAAI;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;IACjC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,OAAO,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACzF,CAAA;AAED,oBAAY,YAAY;IACvB,MAAM,WAAW;IACjB,KAAK,UAAU;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Select/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AACpD,KAAK,YAAY,CAAC,CAAC,IAAI;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,OAAO,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACrB,CAAC;AACF,KAAK,WAAW,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IACvC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B,CAAC;AACF,KAAK,UAAU,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IACtC,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Spinner/Spinner.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,OAAO,0GA6BlB,CAAC"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/base/Spinner/Spinner.tsx"],"names":[],"mappings":";AAIA,OAAO,gBAAgB,CAAC;AACxB,OAAO,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,OAAO,0GA6BlB,CAAC"}
@@ -1,33 +1,33 @@
1
1
  "use client";
2
- import { jsxs as r, jsx as s } from "react/jsx-runtime";
3
- import { forwardRef as t } from "react";
4
- import f from "clsx";
5
- import e from "./spinner.module.scss.js";
2
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
3
+ import { forwardRef as o } from "react";
4
+ import t from "clsx";
5
+ import "./spinner.scss.js";
6
6
  import { ESpinnerSize as u } from "./types.js";
7
- const d = t((l, c) => {
8
- const { className: p, label: i, size: a = "default", fullpage: n = !1 } = l, m = `${typeof a == "number" ? a : u[a]}px`, o = f(
9
- e.spinner,
10
- p,
11
- n && e.fullpage
7
+ const d = o((n, c) => {
8
+ const { className: l, label: p, size: s = "default", fullpage: r = !1 } = n, i = `${typeof s == "number" ? s : u[s]}px`, m = t(
9
+ "xtrSpinner",
10
+ r && "fullpage",
11
+ l
12
12
  );
13
- return /* @__PURE__ */ r(
13
+ return /* @__PURE__ */ a(
14
14
  "div",
15
15
  {
16
16
  ref: c,
17
- className: o,
18
- style: { "--spinnerSize": m },
17
+ className: m,
18
+ style: { "--spinnerSize": i },
19
19
  role: "progressbar",
20
20
  children: [
21
- /* @__PURE__ */ r("div", { className: e.spinnerWrapper, children: [
22
- /* @__PURE__ */ s("div", { className: e.cubeTop }),
23
- /* @__PURE__ */ r("div", { className: e.cubeWrapper, children: [
24
- /* @__PURE__ */ s("span", { className: e.cubeFace }),
25
- /* @__PURE__ */ s("span", { className: e.cubeFace }),
26
- /* @__PURE__ */ s("span", { className: e.cubeFace }),
27
- /* @__PURE__ */ s("span", { className: e.cubeFace })
21
+ /* @__PURE__ */ a("div", { className: "spinnerWrapper", children: [
22
+ /* @__PURE__ */ e("div", { className: "cubeTop" }),
23
+ /* @__PURE__ */ a("div", { className: "cubeWrapper", children: [
24
+ /* @__PURE__ */ e("span", { className: "cubeFace" }),
25
+ /* @__PURE__ */ e("span", { className: "cubeFace" }),
26
+ /* @__PURE__ */ e("span", { className: "cubeFace" }),
27
+ /* @__PURE__ */ e("span", { className: "cubeFace" })
28
28
  ] })
29
29
  ] }),
30
- n && /* @__PURE__ */ s("span", { className: e.label, children: i })
30
+ r && /* @__PURE__ */ e("span", { className: "label", children: p })
31
31
  ]
32
32
  }
33
33
  );