@s_mart/dropzone 8.0.2 → 8.1.0-beta.0

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.
package/dist/index.d.mts CHANGED
@@ -1,8 +1,70 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Theme } from '@mui/material';
3
+ import { StyledComponent } from '@emotion/styled';
4
+ import { MUIStyledCommonProps } from '@mui/system';
5
+ import { HtmlHTMLAttributes, LabelHTMLAttributes, HTMLAttributes } from 'react';
2
6
  import { FileValidated } from '@dropzone-ui/react';
3
- import { DropzoneProps as DropzoneProps$1 } from '@dropzone-ui/react/build/components/dropzone/components/Dropzone/DropzoneProps';
7
+ import { DropzoneProps } from '@dropzone-ui/react/build/components/dropzone/components/Dropzone/DropzoneProps';
4
8
  import { FileItemProps } from '@dropzone-ui/react/build/components/file-item/components/FileItem/FileItemProps';
5
9
 
10
+ type DropzoneComponent<Element extends HTMLAttributes<unknown>, Props extends Record<string, unknown> = Record<string, unknown>> = StyledComponent<MUIStyledCommonProps<Theme>, Element, Props>;
11
+ declare const DropzoneRoot: DropzoneComponent<HtmlHTMLAttributes<HTMLDivElement>>;
12
+ declare const DropzoneOverlay: DropzoneComponent<HtmlHTMLAttributes<HTMLDivElement>, DropzoneOverlayAttrs>;
13
+ declare const DropzoneLabelContainer: DropzoneComponent<LabelHTMLAttributes<HTMLLabelElement>, DropzoneLabelContainerAttrs>;
14
+ declare const DropzoneListContainer: DropzoneComponent<HtmlHTMLAttributes<HTMLDivElement>>;
15
+ declare const DropzoneListItem: DropzoneComponent<HtmlHTMLAttributes<HTMLDivElement>>;
16
+
17
+ type DropzoneV2SlotProps = {
18
+ root?: Parameters<typeof DropzoneRoot>[0];
19
+ overlay?: Parameters<typeof DropzoneOverlay>[0];
20
+ labelContainer?: Parameters<typeof DropzoneLabelContainer>[0];
21
+ listContainer?: Parameters<typeof DropzoneListContainer>[0];
22
+ listItem?: Parameters<typeof DropzoneListItem>[0];
23
+ };
24
+ type DropzoneV2Props = {
25
+ onChange(files: File[]): void;
26
+ maxSize?: number;
27
+ maxFiles?: number;
28
+ /**
29
+ * @default 'Pressione para carregar os arquivos'
30
+ */
31
+ placeholder?: string;
32
+ /**
33
+ * @default undefined Aceita todos os arquivos
34
+ * @example '.png,.jpg,.jpeg'
35
+ */
36
+ accept?: string;
37
+ /**
38
+ * @description Acessa as propriedades dos componentes internos
39
+ */
40
+ slotProps?: DropzoneV2SlotProps;
41
+ /**
42
+ * @param message Mensagem tratado do erro
43
+ * @param errorFromCatch O erro capturado pelo `try catch`
44
+ */
45
+ onError: (message: string, errorFromCatch: unknown) => void;
46
+ /**
47
+ * @param message Mensagem tratado do erro
48
+ */
49
+ onWarning: (message: string) => void;
50
+ };
51
+ type DropzoneOverlayAttrs = {
52
+ /**
53
+ * Tipagem somente utilizada para linting para passar data attributes
54
+ */
55
+ 'data-is-dragging': boolean;
56
+ };
57
+ type DropzoneLabelContainerAttrs = {
58
+ /**
59
+ * Tipagem somente utilizada para linting para passar data attributes
60
+ */
61
+ 'data-has-files': boolean;
62
+ 'data-max-files': number | undefined;
63
+ 'data-is-processing-zip': boolean;
64
+ };
65
+
66
+ declare const DropzoneV2: (props: DropzoneV2Props) => react_jsx_runtime.JSX.Element;
67
+
6
68
  interface DropzoneOnNotificationProps {
7
69
  /**
8
70
  * @description Deve ser uma string, pois não sabemos qual lib de notificações são utilizadas e nem todas aceita `React.ReactNode`
@@ -15,7 +77,7 @@ interface DropzoneOnNotificationProps {
15
77
  duration: number;
16
78
  variant: 'warning' | 'error' | 'success' | 'info';
17
79
  }
18
- interface DropzoneProps extends Omit<DropzoneProps$1, 'children' | 'onReset' | 'onClean'> {
80
+ interface DropzoneV1Props extends Omit<DropzoneProps, 'children' | 'onReset' | 'onClean'> {
19
81
  children?: React.ReactNode;
20
82
  /**
21
83
  * @description Prop responsável por exibir o botão de deletar todos os arquivos no canto superior direito do dropzone
@@ -38,12 +100,12 @@ interface DropzoneProps extends Omit<DropzoneProps$1, 'children' | 'onReset' | '
38
100
  * @default []
39
101
  * @type FileValidated[]
40
102
  **/
41
- initialValue?: DropzoneFile[];
103
+ initialValue?: DropzoneV1File[];
42
104
  /**
43
105
  * @description Função que é chamada quando o usuário clica no botão de deletar um arquivo
44
106
  * @param files Lista de arquivos que restaram no dropzone
45
107
  */
46
- onClean?: (files: DropzoneFile[]) => void;
108
+ onClean?: (files: DropzoneV1File[]) => void;
47
109
  /**
48
110
  * @description Função que é chamada quando o usuário clica no botão de deletar todos os arquivos
49
111
  */
@@ -54,9 +116,9 @@ interface DropzoneProps extends Omit<DropzoneProps$1, 'children' | 'onReset' | '
54
116
  tratamentoFilesOnChange?: (incomingFiles: FileValidated[]) => Promise<FileValidated[]> | FileValidated[];
55
117
  onNotification(param: DropzoneOnNotificationProps): void;
56
118
  }
57
- interface DropzoneFile extends FileValidated {
119
+ interface DropzoneV1File extends FileValidated {
58
120
  }
59
121
 
60
- declare const Dropzone: ({ showDeleteAllFilesButton, placeholder, fileItemProps, initialValue, onClean, onReset, tratamentoFilesOnChange, onNotification, ...rest }: DropzoneProps) => react_jsx_runtime.JSX.Element;
122
+ declare const DropzoneV1: ({ showDeleteAllFilesButton, placeholder, fileItemProps, initialValue, onClean, onReset, tratamentoFilesOnChange, onNotification, ...rest }: DropzoneV1Props) => react_jsx_runtime.JSX.Element;
61
123
 
62
- export { Dropzone, type DropzoneFile, type DropzoneProps };
124
+ export { DropzoneV1 as Dropzone, type DropzoneV1File as DropzoneFile, type DropzoneV1Props as DropzoneProps, DropzoneV1, type DropzoneV1File, type DropzoneV1Props, DropzoneV2, type DropzoneV2Props, type DropzoneV2SlotProps };
package/dist/index.mjs CHANGED
@@ -1,4 +1,108 @@
1
- import{useEffect as x,useState as T}from"react";import{Dropzone as b,FileItem as A}from"@dropzone-ui/react";import{LIcon as P}from"@s_mart/core";import{Tooltip as w,Typography as q}from"@mui/material";import{lineTimes as k}from"@s_mart/regular-icons";import F from"@emotion/styled";import{colorPalette as f}from"@s_mart/tokens";var c=F.button`
1
+ import{styled as T}from"@mui/material";import{colorPalette as k}from"@s_mart/tokens";var X=T("div")`
2
+ min-width: 300px;
3
+ align-items: center;
4
+ display: flex;
5
+ flex-direction: column;
6
+ justify-content: center;
7
+ gap: 8px;
8
+ padding: 16px;
9
+ `,Z=T("div")`
10
+ display: none;
11
+ position: absolute;
12
+ z-index: 20;
13
+ top: 0;
14
+ left: 0;
15
+ height: 0;
16
+ width: 0;
17
+ border: 0px dashed ${k.neutral[500]};
18
+ border-radius: 8px;
19
+ display: flex;
20
+ justify-content: center;
21
+ align-items: center;
22
+
23
+ &[data-is-dragging='true'] {
24
+ display: flex;
25
+ background-color: rgba(0, 0, 0, 0.3);
26
+ height: 99%;
27
+ width: 99.3%;
28
+ border-width: 2px;
29
+ }
30
+ `,j=T("label")`
31
+ width: 100%;
32
+ pointer-events: all;
33
+ min-height: 40px;
34
+ height: 60px;
35
+ background-color: ${({theme:e})=>e.palette.primary.main};
36
+ border-radius: 16px;
37
+ display: flex;
38
+ flex-direction: column;
39
+ justify-content: center;
40
+ align-items: center;
41
+ gap: 8px;
42
+ padding: .5rem 1rem ;
43
+
44
+ cursor: pointer;
45
+ transition: all 0.5s ease;
46
+
47
+ &[data-max-files='1'] {
48
+ min-height: 0;
49
+ }
50
+
51
+ &[data-has-files='true']{
52
+ height: 40px;
53
+ }
54
+
55
+ // Se tiver arquivos e o máximo de arquivos for 1
56
+ &[data-has-files='true'][data-max-files='1'] {
57
+ height: 0;
58
+ }
59
+
60
+ &[data-has-files='true'] #dropzone-upload-info {
61
+ display: none;
62
+ }
63
+
64
+
65
+ // Se não tiver arquivos || tiver maximo de arquivos == 1 aplica no #dropzone-upload-more-label
66
+ &:not([data-has-files='true']) #dropzone-upload-more-label,
67
+ &[data-max-files='1'] #dropzone-upload-more-label{
68
+ display: none;
69
+ }
70
+
71
+
72
+ & #dropzone-upload-more-label {
73
+ pointer-events: all;
74
+ color: white;
75
+ }
76
+
77
+
78
+ // Se estiver processando zip, aplica no root e no #dropzone-upload-more-label
79
+ &[data-is-processing-zip='true'],
80
+ &[data-is-processing-zip='true'] #dropzone-upload-more-label {
81
+ pointer-events: none;
82
+ }
83
+
84
+ &:hover {
85
+ background-color: ${({theme:e})=>e.palette.primary.dark};
86
+ }
87
+ `,_=T("div")`
88
+ width: 100%;
89
+ max-height: 300px;
90
+ background-color: ${k.neutral[20]};
91
+ border-radius: 16px;
92
+ overflow-y: auto;
93
+ display: flex;
94
+ flex-direction: column;
95
+ border: 8px solid ${k.neutral[20]};
96
+ gap: 8px;
97
+ `,G=T("div")`
98
+ background-color: white;
99
+ border-radius: 16px;
100
+ padding: 8px;
101
+ gap: 8px;
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: space-between;
105
+ `;import{Box as Fe,Tooltip as Q,Typography as $}from"@mui/material";import{IconButton as J,LIcon as U}from"@s_mart/core";import{lineTimes as Y}from"@s_mart/regular-icons";import{colorPalette as ee}from"@s_mart/tokens";import{useMemo as K}from"react";import{lineFile as De,linePicture as ze,lineXMLFile as ve}from"@s_mart/light-icons";import{lineFileCertificate as xe}from"@s_mart/regular-icons";var W=e=>{switch(e){case"application/xml":case"text/xml":return ve;case"image/gif":case"image/jpeg":case"image/png":case"image/svg":case"image/webp":return ze;case"application/pkcs12":return xe;default:return De}},E=e=>{let t="";return e<1024?t=`${e} Bytes`:e<1024*1024?t=`${(e/1024).toFixed(2)} KB`:e<1024*1024*1024&&(t=`${(e/1024/1024).toFixed(2)} MB`),t};var N=({filesInfo:e})=>{let t=K(()=>e.map(o=>({name:o.name,fileSize:E(o.size),icon:W(o.type)})),[e]),r=K(()=>({totalSize:E(e.reduce((o,i)=>o+i.size,0)),totalFilesLabel:e.length===1?"1 arquivo":`${e.length} arquivos`}),[e]);return{files:t,headerInfo:r}};import{jsx as D,jsxs as A}from"react/jsx-runtime";var oe=({filesInfo:e,onRemoveFile:t,onRemoveAllFiles:r,slotProps:o})=>{let{files:i,headerInfo:l}=N({filesInfo:e});return i.length===0?null:A(_,{...o?.listContainer,children:[A(Fe,{px:1,display:"flex",justifyContent:"space-between",alignItems:"center",children:[A($,{variant:"titleXXS",children:[l.totalFilesLabel," - ",l.totalSize]}),D(Q,{title:"Remover todos",children:D(J,{variant:"text",color:"neutral",sx:{borderRadius:50},onClick:r,children:D(U,{icon:Y,removeMargin:!0})})})]}),i.map((a,s)=>D(Q,{title:a.name,children:A(G,{...o?.listItem,children:[D(U,{icon:a.icon,removeMargin:!0,size:"24px"}),D($,{variant:"titleXXS",color:ee.neutral[600],whiteSpace:"nowrap",children:a.fileSize}),D($,{variant:"titleXXS",color:ee.neutral[600],overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textAlign:"center",children:a.name}),D(J,{variant:"text",color:"neutral",sx:{borderRadius:50},onClick:()=>t(s),children:D(U,{icon:Y,removeMargin:!0})})]})},`${a.name}-${s}`))]})};import{CircularProgress as te,Stack as V,Typography as H}from"@mui/material";import{LIcon as be}from"@s_mart/core";import{lineFileUpload as we}from"@s_mart/regular-icons";import{jsx as w,jsxs as P}from"react/jsx-runtime";var re=({placeholder:e,isProcessingZip:t})=>t?P("div",{children:[P(V,{gap:1,id:"dropzone-upload-info",direction:"row",alignItems:"center",children:[w(te,{sx:{color:"white"},size:24}),w(H,{variant:"titleSM",color:"white",children:"Descompactando zip..."})]}),P(V,{id:"dropzone-upload-more-label",gap:1,direction:"row",alignItems:"center",children:[w(te,{sx:{color:"white"},size:12}),w(H,{variant:"bodySM",fontWeight:700,children:"Descompactando zip..."})]})]}):P("div",{children:[P(V,{gap:1,id:"dropzone-upload-info",direction:"row",alignItems:"center",children:[w(be,{icon:we,size:"48px",color:"white",removeMargin:!0}),w(H,{variant:"titleSM",color:"white",children:e})]}),w(H,{id:"dropzone-upload-more-label",variant:"bodySM",fontWeight:700,children:"Carregar mais arquivos"})]});import{useCallback as ie,useEffect as Ce,useMemo as Me,useRef as ae,useState as O}from"react";var ne=async(e,t)=>{let r=[];for(let o of e.items){if(o.kind!=="file")continue;if(typeof o.webkitGetAsEntry=="function"){let l=o.webkitGetAsEntry();if(l===null)continue;let a=await Le(l);r.push(...a);continue}let i=o.getAsFile();i&&r.push(i)}return t!==void 0&&(r=Pe(r,t)),r},Le=e=>new Promise((t,r)=>{let o=0,i=[];l(e);function l(s){Ee(s)?(o++,s.file(g=>{o--,i.push(g),o===0&&t(i)})):Te(s)&&a(s.createReader())}function a(s){o++,s.readEntries(function(g){o--;for(let u of g)l(u);o===0&&t(i)})}}),Te=e=>e.isDirectory,Ee=e=>e.isFile,Pe=(e,t)=>{let r=[],o=t.split(",");for(let i of e){let l=`.${i.name.split(".").pop()?.toLowerCase()}`;o.includes(l)&&r.push(i)}return r};var q=e=>{e.stopPropagation(),e.preventDefault()},B=e=>{e.dataTransfer.dropEffect="link",q(e)};var le=({onChange:e,maxSize:t,maxFiles:r,accept:o,onError:i,onWarning:l})=>{let[a,s]=O([]),[g,u]=O(!1),[z,b]=O(!1),h=ae(null),C=ae(!1),d=async n=>{b(!0);let p=[],{BlobReader:m,BlobWriter:v,ZipReader:M}=await import("@zip.js/zip.js").catch(()=>{throw new Error("Fa\xE7a a instala\xE7\xE3o da biblioteca @zip.js/zip.js para utilizar o Dropzone.")}),x=new m(n),y=new M(x);try{let I=await y.getEntries();for(let S of I){if(S.directory||S.getData===void 0)continue;let he=await S.getData(new v),ye=new File([he],S.filename);p.push(ye)}}catch(I){i?.("Ocorreu um erro ao processar o arquivo compactado.",I)}finally{b(!1),await y.close()}return p},f=async n=>{if(!o)return n;let p=[];for(let m of n){let v=`.${m.name.split(".").pop()?.toLocaleLowerCase()}`;if(!o.split(",").includes(v)){l?.(`O arquivo "${m.name}" n\xE3o \xE9 valido, extens\xF5es aceitas ${o}`);continue}if(v===".zip"){let x=await d(m);if(!x.length)continue;let y=await f(x);y.length&&p.push(...y);continue}p.push(m)}return p},c=async n=>{let p=await f(n);s(m=>{if(console.log(r,m,p),r!==void 0&&m.length+p.length>r)return console.log("teste"),l?.(`Quantidade m\xE1xima de arquivos ${r} alcan\xE7ada`),m;if(t!==void 0){let v=m.reduce((x,y)=>x+y.size,0),M=p.reduce((x,y)=>x+y.size,0);if(v+M>t)return l?.(`O arquivo \xE9 muito grande, O tamanho m\xE1ximo permitido \xE9 ${E(t)}`),m}return m!==void 0?[...m,...p]:p}),C.current=!0},L=async n=>{if(n.target.files){let p=[...n.target.files];c(p)}},me=ie(n=>{h.current?.value&&(h.current.value=""),s(p=>p?.filter((m,v)=>v!==n))},[]),ue=ie(()=>{h.current?.value&&(h.current.value=""),s([])},[]),fe=Me(()=>a?.map(n=>({size:n.size,type:n.type,name:n.name}))??[],[a]),ge=o?`${o.toUpperCase()},${o.toLowerCase()}`:void 0;return Ce(()=>{C.current&&e(a)},[a,e]),{inputRef:h,isDragging:g,filesInfo:fe,treatedAccept:ge,isProcessingZip:z,handleRemoveFile:me,handleRemoveAllFiles:ue,handleChangeFiles:L,handleDragEnter:n=>{B(n),u(!0)},handleDragLeave:n=>{console.log("opa1"),B(n),u(!1)},handleDrop:async n=>{console.log("opa"),q(n),u(!1);let p=await ne(n.dataTransfer,o);c(p)}}};import{jsx as R,jsxs as se}from"react/jsx-runtime";var Se=e=>{let{inputRef:t,filesInfo:r,treatedAccept:o,handleChangeFiles:i,handleRemoveFile:l,handleRemoveAllFiles:a,handleDragEnter:s,handleDragLeave:g,handleDrop:u,isDragging:z,isProcessingZip:b}=le(e),h=e.placeholder??"Pressione para carregar os arquivos";return se(X,{onDragOver:s,...e.slotProps?.root,children:[R(Z,{"data-is-dragging":z,onDrop:u,onDragLeave:g,...e.slotProps?.overlay}),R(oe,{filesInfo:r,onRemoveFile:l,onRemoveAllFiles:a,slotProps:e.slotProps}),se(j,{htmlFor:"dropzone","data-max-files":e.maxFiles,"data-has-files":!!r.length,"data-is-processing-zip":b,...e.slotProps?.labelContainer,children:[R(re,{placeholder:h,isProcessingZip:b}),R("input",{ref:t,id:"dropzone",type:"file",accept:o,hidden:!0,onChange:i,multiple:e.maxFiles===void 0||e.maxFiles>1})]})]})};import{useEffect as He,useState as Re}from"react";import{Dropzone as Ie,FileItem as ke}from"@dropzone-ui/react";import{LIcon as $e}from"@s_mart/core";import{Tooltip as Ue,Typography as Ve}from"@mui/material";import{lineTimes as qe}from"@s_mart/regular-icons";import Ae from"@emotion/styled";import{colorPalette as pe}from"@s_mart/tokens";var de=Ae.button`
2
106
  display: flex;
3
107
  align-items: center;
4
108
  justify-content: center;
@@ -18,10 +122,10 @@ import{useEffect as x,useState as T}from"react";import{Dropzone as b,FileItem as
18
122
  cursor: pointer;
19
123
  transition: all 0.3s ease;
20
124
 
21
- color: ${f.neutral[500]};
125
+ color: ${pe.neutral[500]};
22
126
 
23
127
  &:hover {
24
- background-color: ${f.neutral[40]};
128
+ background-color: ${pe.neutral[40]};
25
129
  transition: all 0.3s ease;
26
130
  }
27
- `;import{Fragment as U,jsx as t,jsxs as _}from"react/jsx-runtime";var I=({showDeleteAllFilesButton:m=!0,placeholder:u,fileItemProps:h,initialValue:i=[],onClean:v,onReset:D,tratamentoFilesOnChange:s,onNotification:p,...d})=>{let[l,n]=T(i),g=e=>{let r=e.filter(o=>o.valid===!0);if(n(r),e.length>0){let o=e.filter(a=>a.valid===!1);o.length===1?p({variant:"warning",duration:5e3,title:`Arquivo ${o[0].file.name} inv\xE1lido`,message:o[0].errors?.[0]}):o.length>1&&o.forEach(a=>{p({variant:"warning",duration:5e3,title:`Arquivo ${a.file.name} inv\xE1lido`,message:a.errors?.[0]})})}},z=()=>{n([]),D?.()},y=e=>{let r=l.filter(o=>o.id!==e.id);n(r),v?.(r)};return x(()=>{i.length&&n(i)},[i]),t(b,{localization:"PT-pt",header:!1,footer:!1,headerClassName:"header",view:"grid",value:l,...d,onChange:async e=>{let r=e;if(s){let o=await s(e);o&&(r=o)}g(r),d.onChange?.(r)},children:l.length===0?t("div",{children:u||"Arraste os arquivos aqui ou clique para selecionar"}):_(U,{children:[m&&t(w,{title:t(q,{variant:"bodyMD",children:"Remover"}),children:t(c,{onClick:e=>{e.preventDefault(),e.stopPropagation(),z()},children:t(P,{icon:k,size:"24px"})})}),t("div",{style:{display:"flex"},children:l?.map(e=>t(A,{info:!0,localization:"PT-pt",preview:!0,...e,...h,onDelete:()=>y(e)},e.id))})]})})};export{I as Dropzone};
131
+ `;import{Fragment as Be,jsx as F,jsxs as Oe}from"react/jsx-runtime";var ce=({showDeleteAllFilesButton:e=!0,placeholder:t,fileItemProps:r,initialValue:o=[],onClean:i,onReset:l,tratamentoFilesOnChange:a,onNotification:s,...g})=>{let[u,z]=Re(o),b=d=>{let f=d.filter(c=>c.valid===!0);if(z(f),d.length>0){let c=d.filter(L=>L.valid===!1);c.length===1?s({variant:"warning",duration:5e3,title:`Arquivo ${c[0].file.name} inv\xE1lido`,message:c[0].errors?.[0]}):c.length>1&&c.forEach(L=>{s({variant:"warning",duration:5e3,title:`Arquivo ${L.file.name} inv\xE1lido`,message:L.errors?.[0]})})}},h=()=>{z([]),l?.()},C=d=>{let f=u.filter(c=>c.id!==d.id);z(f),i?.(f)};return He(()=>{o.length&&z(o)},[o]),F(Ie,{localization:"PT-pt",header:!1,footer:!1,headerClassName:"header",view:"grid",value:u,...g,onChange:async d=>{let f=d;if(a){let c=await a(d);c&&(f=c)}b(f),g.onChange?.(f)},children:u.length===0?F("div",{children:t||"Arraste os arquivos aqui ou clique para selecionar"}):Oe(Be,{children:[e&&F(Ue,{title:F(Ve,{variant:"bodyMD",children:"Remover"}),children:F(de,{onClick:d=>{d.preventDefault(),d.stopPropagation(),h()},children:F($e,{icon:qe,size:"24px"})})}),F("div",{style:{display:"flex"},children:u?.map(d=>F(ke,{info:!0,localization:"PT-pt",preview:!0,...d,...r,onDelete:()=>C(d)},d.id))})]})})};export{ce as Dropzone,ce as DropzoneV1,Se as DropzoneV2};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@s_mart/dropzone",
3
- "version": "8.0.2",
3
+ "version": "8.1.0-beta.0",
4
4
  "main": "./dist/index.mjs",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",
@@ -17,26 +17,35 @@
17
17
  "@emotion/react": "^11.11.4",
18
18
  "@emotion/styled": "^11.13.0",
19
19
  "@mui/material": "^6.1.3",
20
+ "@mui/system": "^6.4.0",
20
21
  "@types/node": ">=20.0.0",
21
22
  "@types/react": ">=18.3.12",
22
23
  "@types/react-dom": ">=18.3.1",
24
+ "@zip.js/zip.js": "^2.7.54",
23
25
  "axios": "^1.6.7",
24
26
  "react": ">=18.3.1",
25
27
  "react-dom": ">=18.3.1",
26
28
  "typescript": ">=5.4.2",
27
29
  "@s_mart/core": "8.0.2",
28
- "@s_mart/regular-icons": "6.0.4",
29
- "@s_mart/tokens": "5.1.1"
30
+ "@s_mart/light-icons": "6.0.3",
31
+ "@s_mart/tokens": "5.1.1",
32
+ "@s_mart/regular-icons": "6.0.4"
30
33
  },
31
34
  "devDependencies": {
35
+ "@emotion/react": "^11.11.4",
32
36
  "@emotion/styled": "^11.13.0",
33
37
  "@mui/material": "^6.1.3",
38
+ "@mui/system": "^6.4.0",
34
39
  "@types/node": ">=20.0.0",
35
40
  "@types/react": ">=18.3.12",
36
41
  "@types/react-dom": ">=18.3.1",
42
+ "@zip.js/zip.js": "^2.7.54",
43
+ "react": ">=18.3.1",
44
+ "react-dom": ">=18.3.1",
37
45
  "typescript": ">=5.4.2",
38
46
  "@s_mart/core": "8.0.2",
39
47
  "@s_mart/regular-icons": "6.0.4",
48
+ "@s_mart/light-icons": "6.0.3",
40
49
  "@s_mart/tokens": "5.1.1"
41
50
  },
42
51
  "scripts": {