@chimera-pe/mui-saas 3.0.7 → 3.0.8
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/mui-saas.js +81 -84
- package/dist/mui-saas.umd.cjs +1 -1
- package/package.json +14 -14
package/dist/mui-saas.js
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { jsxs as u, jsx as
|
|
1
|
+
import { jsxs as u, jsx as i, Fragment as D } from "react/jsx-runtime";
|
|
2
2
|
import n from "prop-types";
|
|
3
3
|
import { useSaasStore as I, SaasApp as M } from "@chimera-pe/react-saas";
|
|
4
4
|
import { useEffect as b, useMemo as E, useState as v, Children as L, cloneElement as O, useCallback as B } from "react";
|
|
5
|
-
import { useMediaQuery as
|
|
5
|
+
import { useMediaQuery as F, createTheme as G, ThemeProvider as H, CssBaseline as Q, Snackbar as U, Alert as j, Box as z, CircularProgress as $, AlertTitle as J, List as K, ListItem as V, ListItemText as W, Skeleton as X, Card as P, CardHeader as S, CardContent as T, LinearProgress as Y, Typography as Z, CardActions as _, TablePagination as ee } from "@mui/material";
|
|
6
6
|
import { grey as x } from "@mui/material/colors";
|
|
7
|
-
import { create as
|
|
7
|
+
import { create as ie } from "zustand";
|
|
8
8
|
import { useTranslate as C } from "react-polyglot";
|
|
9
|
-
import { useQuery as
|
|
10
|
-
const f =
|
|
9
|
+
import { useQuery as re } from "@tanstack/react-query";
|
|
10
|
+
const f = ie((o) => ({
|
|
11
11
|
tema: "light",
|
|
12
12
|
notificaciones: [],
|
|
13
|
-
cambiarTema: (
|
|
14
|
-
|
|
15
|
-
tema:
|
|
13
|
+
cambiarTema: (r) => {
|
|
14
|
+
o({
|
|
15
|
+
tema: r
|
|
16
16
|
});
|
|
17
17
|
},
|
|
18
|
-
mostrarNotificacion: (
|
|
19
|
-
|
|
20
|
-
notificaciones: [
|
|
18
|
+
mostrarNotificacion: (r) => {
|
|
19
|
+
o((a) => ({
|
|
20
|
+
notificaciones: [r, ...a.notificaciones]
|
|
21
21
|
}));
|
|
22
22
|
},
|
|
23
23
|
ocultarNotificacion: () => {
|
|
24
|
-
|
|
25
|
-
notificaciones:
|
|
24
|
+
o((r) => ({
|
|
25
|
+
notificaciones: r.notificaciones.slice(1)
|
|
26
26
|
}));
|
|
27
27
|
}
|
|
28
|
-
})),
|
|
29
|
-
const
|
|
28
|
+
})), R = ({ children: o }) => {
|
|
29
|
+
const r = f((s) => s.cambiarTema), a = F("(prefers-color-scheme: dark)"), t = f((s) => s.tema), e = I((s) => s.instancia);
|
|
30
30
|
b(() => {
|
|
31
|
-
|
|
32
|
-
}, [
|
|
33
|
-
const l = E(() =>
|
|
31
|
+
r(a ? "dark" : "light");
|
|
32
|
+
}, [r, a]);
|
|
33
|
+
const l = E(() => G({
|
|
34
34
|
palette: {
|
|
35
|
-
mode:
|
|
35
|
+
mode: t,
|
|
36
36
|
primary: {
|
|
37
37
|
main: e.color.primary
|
|
38
38
|
},
|
|
@@ -51,7 +51,7 @@ const f = re((t) => ({
|
|
|
51
51
|
success: {
|
|
52
52
|
main: e.color.success
|
|
53
53
|
},
|
|
54
|
-
...
|
|
54
|
+
...t === "light" && {
|
|
55
55
|
background: {
|
|
56
56
|
default: x.A200,
|
|
57
57
|
paper: x[100]
|
|
@@ -61,89 +61,86 @@ const f = re((t) => ({
|
|
|
61
61
|
shape: {
|
|
62
62
|
borderRadius: 6
|
|
63
63
|
}
|
|
64
|
-
}), [
|
|
65
|
-
return /* @__PURE__ */ u(
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
|
|
64
|
+
}), [t, e]);
|
|
65
|
+
return /* @__PURE__ */ u(H, { theme: l, children: [
|
|
66
|
+
/* @__PURE__ */ i(Q, {}),
|
|
67
|
+
o
|
|
68
68
|
] });
|
|
69
69
|
};
|
|
70
|
-
|
|
70
|
+
R.propTypes = {
|
|
71
71
|
children: n.element.isRequired
|
|
72
72
|
};
|
|
73
73
|
const ne = () => {
|
|
74
|
-
const
|
|
74
|
+
const o = C(), [r, a] = v(!1), t = f((s) => s.ocultarNotificacion), e = f((s) => s.notificaciones[0]);
|
|
75
75
|
b(() => {
|
|
76
76
|
a(!!e);
|
|
77
77
|
}, [e]);
|
|
78
78
|
const l = () => {
|
|
79
|
-
a(!1),
|
|
79
|
+
a(!1), t();
|
|
80
80
|
};
|
|
81
|
-
return /* @__PURE__ */
|
|
82
|
-
|
|
81
|
+
return /* @__PURE__ */ i(
|
|
82
|
+
U,
|
|
83
83
|
{
|
|
84
|
-
open:
|
|
85
|
-
message: e ? e.tipo === "default" &&
|
|
84
|
+
open: r,
|
|
85
|
+
message: e ? e.tipo === "default" && o(e?.mensaje) : null,
|
|
86
86
|
autoHideDuration: 5e3,
|
|
87
87
|
onClose: l,
|
|
88
88
|
anchorOrigin: e && {
|
|
89
|
-
vertical: e
|
|
90
|
-
horizontal: e
|
|
89
|
+
vertical: e?.posicion.vertical,
|
|
90
|
+
horizontal: e?.posicion.horizontal
|
|
91
91
|
},
|
|
92
|
-
children: e &&
|
|
92
|
+
children: e && e?.tipo !== "default" && /* @__PURE__ */ i(j, { severity: e.tipo, children: o(e.mensaje) })
|
|
93
93
|
}
|
|
94
94
|
);
|
|
95
|
-
},
|
|
96
|
-
aplicacion:
|
|
97
|
-
dev:
|
|
95
|
+
}, oe = ({
|
|
96
|
+
aplicacion: o,
|
|
97
|
+
dev: r = !1,
|
|
98
98
|
devBackendUrl: a,
|
|
99
|
-
devAuthUrl:
|
|
100
|
-
|
|
101
|
-
mensajes: l = {
|
|
99
|
+
devAuthUrl: t,
|
|
100
|
+
mensajes: e = {
|
|
102
101
|
en: {},
|
|
103
102
|
es: {}
|
|
104
103
|
},
|
|
105
|
-
children:
|
|
106
|
-
}) => /* @__PURE__ */
|
|
104
|
+
children: l
|
|
105
|
+
}) => /* @__PURE__ */ i(
|
|
107
106
|
M,
|
|
108
107
|
{
|
|
109
|
-
aplicacion:
|
|
110
|
-
dev:
|
|
108
|
+
aplicacion: o,
|
|
109
|
+
dev: r,
|
|
111
110
|
devBackendUrl: a,
|
|
112
|
-
devAuthUrl:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
/* @__PURE__ */ r(ne, {})
|
|
111
|
+
devAuthUrl: t,
|
|
112
|
+
mensajes: e,
|
|
113
|
+
children: /* @__PURE__ */ i(R, { children: /* @__PURE__ */ u(D, { children: [
|
|
114
|
+
l,
|
|
115
|
+
/* @__PURE__ */ i(ne, {})
|
|
118
116
|
] }) })
|
|
119
117
|
}
|
|
120
118
|
);
|
|
121
|
-
|
|
119
|
+
oe.propTypes = {
|
|
122
120
|
aplicacion: n.string.isRequired,
|
|
123
121
|
dev: n.bool,
|
|
124
122
|
devBackendUrl: n.string,
|
|
125
123
|
devAuthUrl: n.string,
|
|
126
|
-
redirectUri: n.string.isRequired,
|
|
127
124
|
mensajes: n.object,
|
|
128
125
|
children: n.element.isRequired
|
|
129
126
|
};
|
|
130
|
-
const fe = () => /* @__PURE__ */
|
|
127
|
+
const fe = () => /* @__PURE__ */ i(z, { sx: {
|
|
131
128
|
display: "flex",
|
|
132
129
|
flexDirection: "column",
|
|
133
130
|
flexGrow: 1,
|
|
134
131
|
justifyContent: "center",
|
|
135
132
|
alignItems: "center"
|
|
136
|
-
}, children: /* @__PURE__ */
|
|
133
|
+
}, children: /* @__PURE__ */ i($, {}) }), k = ({ titulo: o, texto: r, align: a = "center", severity: t = "error" }) => {
|
|
137
134
|
const e = C();
|
|
138
|
-
return /* @__PURE__ */
|
|
135
|
+
return /* @__PURE__ */ i(z, { sx: {
|
|
139
136
|
display: "flex",
|
|
140
137
|
flexDirection: "column",
|
|
141
138
|
flexGrow: 1,
|
|
142
139
|
justifyContent: "center",
|
|
143
140
|
alignItems: a
|
|
144
|
-
}, children: /* @__PURE__ */ u(
|
|
145
|
-
/* @__PURE__ */
|
|
146
|
-
|
|
141
|
+
}, children: /* @__PURE__ */ u(j, { severity: t, children: [
|
|
142
|
+
/* @__PURE__ */ i(J, { children: e(o) }),
|
|
143
|
+
r && e(r)
|
|
147
144
|
] }) });
|
|
148
145
|
};
|
|
149
146
|
k.propTypes = {
|
|
@@ -153,10 +150,10 @@ k.propTypes = {
|
|
|
153
150
|
severity: n.string
|
|
154
151
|
};
|
|
155
152
|
const ae = ({
|
|
156
|
-
nombre:
|
|
157
|
-
elevation:
|
|
153
|
+
nombre: o,
|
|
154
|
+
elevation: r = 1,
|
|
158
155
|
api: a,
|
|
159
|
-
filtros:
|
|
156
|
+
filtros: t,
|
|
160
157
|
titulo: e,
|
|
161
158
|
initialPageSize: l = 10,
|
|
162
159
|
children: s
|
|
@@ -170,37 +167,37 @@ const ae = ({
|
|
|
170
167
|
...c,
|
|
171
168
|
page: 0
|
|
172
169
|
}));
|
|
173
|
-
}, [JSON.stringify(
|
|
174
|
-
const { isLoading: h, isError:
|
|
175
|
-
queryKey: [`paginable-${
|
|
176
|
-
queryFn: () => a(
|
|
170
|
+
}, [JSON.stringify(t)]);
|
|
171
|
+
const { isLoading: h, isError: w, data: d } = re({
|
|
172
|
+
queryKey: [`paginable-${o}`, p, t],
|
|
173
|
+
queryFn: () => a(t, p.page, p.pageSize),
|
|
177
174
|
keepPreviousData: !0
|
|
178
175
|
});
|
|
179
176
|
if (h)
|
|
180
|
-
return /* @__PURE__ */
|
|
181
|
-
if (
|
|
177
|
+
return /* @__PURE__ */ i(K, { children: Array.from(Array(l).keys()).map((c) => /* @__PURE__ */ i(V, { children: /* @__PURE__ */ i(W, { primary: /* @__PURE__ */ i(X, {}) }) }, `row-${c}`)) });
|
|
178
|
+
if (w)
|
|
182
179
|
return /* @__PURE__ */ u(P, { children: [
|
|
183
|
-
/* @__PURE__ */
|
|
184
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ i(S, { titulo: g(e) }),
|
|
181
|
+
/* @__PURE__ */ i(T, { children: /* @__PURE__ */ i(k, { titulo: "main.paginable.error.carga" }) })
|
|
185
182
|
] });
|
|
186
|
-
const
|
|
183
|
+
const A = (c, m) => {
|
|
187
184
|
h || m === p.page || y({
|
|
188
185
|
page: m,
|
|
189
186
|
pageSize: p.pageSize
|
|
190
187
|
});
|
|
191
|
-
},
|
|
188
|
+
}, N = (c) => {
|
|
192
189
|
const m = c.target.value;
|
|
193
190
|
h || m === p.pageSize || y({
|
|
194
191
|
page: 0,
|
|
195
192
|
pageSize: m
|
|
196
193
|
});
|
|
197
194
|
};
|
|
198
|
-
return /* @__PURE__ */ u(P, { elevation:
|
|
199
|
-
e && /* @__PURE__ */
|
|
200
|
-
/* @__PURE__ */
|
|
195
|
+
return /* @__PURE__ */ u(P, { elevation: r, children: [
|
|
196
|
+
e && /* @__PURE__ */ i(S, { titulo: g(e) }),
|
|
197
|
+
/* @__PURE__ */ i(T, { children: h ? /* @__PURE__ */ i(Y, {}) : d && d.content.length > 0 ? L.map(s, (c) => O(c, {
|
|
201
198
|
data: d.content
|
|
202
|
-
})) : /* @__PURE__ */
|
|
203
|
-
d && d.totalElements > 0 && /* @__PURE__ */
|
|
199
|
+
})) : /* @__PURE__ */ i(Z, { children: g("main.paginable.sinResultados") }) }),
|
|
200
|
+
d && d.totalElements > 0 && /* @__PURE__ */ i(_, { sx: { justifyContent: "flex-end" }, children: /* @__PURE__ */ i(
|
|
204
201
|
ee,
|
|
205
202
|
{
|
|
206
203
|
component: "div",
|
|
@@ -208,10 +205,10 @@ const ae = ({
|
|
|
208
205
|
page: p.page,
|
|
209
206
|
rowsPerPage: p.pageSize,
|
|
210
207
|
labelRowsPerPage: g("main.paginable.filas"),
|
|
211
|
-
labelDisplayedRows: ({ from: c, to: m, count:
|
|
208
|
+
labelDisplayedRows: ({ from: c, to: m, count: q }) => g("main.paginable.resultados", { inicial: c, final: m, total: q }),
|
|
212
209
|
rowsPerPageOptions: [5, 10, 15, 20, 25, 50],
|
|
213
|
-
onRowsPerPageChange:
|
|
214
|
-
onPageChange:
|
|
210
|
+
onRowsPerPageChange: N,
|
|
211
|
+
onPageChange: A
|
|
215
212
|
}
|
|
216
213
|
) })
|
|
217
214
|
] });
|
|
@@ -226,15 +223,15 @@ ae.propTypes = {
|
|
|
226
223
|
children: n.element
|
|
227
224
|
};
|
|
228
225
|
const he = () => {
|
|
229
|
-
const
|
|
230
|
-
return B((
|
|
231
|
-
|
|
232
|
-
}, [
|
|
226
|
+
const o = f((r) => r.mostrarNotificacion);
|
|
227
|
+
return B((r, a = "default", t = { vertical: "botton", horizontal: "center" }) => {
|
|
228
|
+
o({ mensaje: r, tipo: a, posicion: t });
|
|
229
|
+
}, [o]);
|
|
233
230
|
};
|
|
234
231
|
export {
|
|
235
232
|
fe as Cargando,
|
|
236
233
|
k as Mensaje,
|
|
237
|
-
|
|
234
|
+
oe as MuiApp,
|
|
238
235
|
ae as Paginable,
|
|
239
236
|
f as useMuiStore,
|
|
240
237
|
he as useNotificar
|
package/dist/mui-saas.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(a,
|
|
1
|
+
(function(a,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("prop-types"),require("@chimera-pe/react-saas"),require("react"),require("@mui/material"),require("@mui/material/colors"),require("zustand"),require("react-polyglot"),require("@tanstack/react-query")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","prop-types","@chimera-pe/react-saas","react","@mui/material","@mui/material/colors","zustand","react-polyglot","@tanstack/react-query"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a["mui-saas"]={},a.ReactJSX,a.PropTypes,a.ReactSaas,a.React,a.MuiMaterial,a.MuiMaterialColors,a.Zustand,a.ReactPolyglot,a.ReactQuery))})(this,(function(a,e,t,v,u,i,j,x,m,A){"use strict";const h=x.create(o=>({tema:"light",notificaciones:[],cambiarTema:r=>{o({tema:r})},mostrarNotificacion:r=>{o(s=>({notificaciones:[r,...s.notificaciones]}))},ocultarNotificacion:()=>{o(r=>({notificaciones:r.notificaciones.slice(1)}))}})),M=({children:o})=>{const r=h(l=>l.cambiarTema),s=i.useMediaQuery("(prefers-color-scheme: dark)"),c=h(l=>l.tema),n=v.useSaasStore(l=>l.instancia);u.useEffect(()=>{r(s?"dark":"light")},[r,s]);const f=u.useMemo(()=>i.createTheme({palette:{mode:c,primary:{main:n.color.primary},secondary:{main:n.color.secondary},error:{main:n.color.error},warning:{main:n.color.warning},info:{main:n.color.info},success:{main:n.color.success},...c==="light"&&{background:{default:j.grey.A200,paper:j.grey[100]}}},shape:{borderRadius:6}}),[c,n]);return e.jsxs(i.ThemeProvider,{theme:f,children:[e.jsx(i.CssBaseline,{}),o]})};M.propTypes={children:t.element.isRequired};const N=()=>{const o=m.useTranslate(),[r,s]=u.useState(!1),c=h(l=>l.ocultarNotificacion),n=h(l=>l.notificaciones[0]);u.useEffect(()=>{s(!!n)},[n]);const f=()=>{s(!1),c()};return e.jsx(i.Snackbar,{open:r,message:n?n.tipo==="default"&&o(n?.mensaje):null,autoHideDuration:5e3,onClose:f,anchorOrigin:n&&{vertical:n?.posicion.vertical,horizontal:n?.posicion.horizontal},children:n&&n?.tipo!=="default"&&e.jsx(i.Alert,{severity:n.tipo,children:o(n.mensaje)})})},z=({aplicacion:o,dev:r=!1,devBackendUrl:s,devAuthUrl:c,mensajes:n={en:{},es:{}},children:f})=>e.jsx(v.SaasApp,{aplicacion:o,dev:r,devBackendUrl:s,devAuthUrl:c,mensajes:n,children:e.jsx(M,{children:e.jsxs(e.Fragment,{children:[f,e.jsx(N,{})]})})});z.propTypes={aplicacion:t.string.isRequired,dev:t.bool,devBackendUrl:t.string,devAuthUrl:t.string,mensajes:t.object,children:t.element.isRequired};const w=()=>e.jsx(i.Box,{sx:{display:"flex",flexDirection:"column",flexGrow:1,justifyContent:"center",alignItems:"center"},children:e.jsx(i.CircularProgress,{})}),q=({titulo:o,texto:r,align:s="center",severity:c="error"})=>{const n=m.useTranslate();return e.jsx(i.Box,{sx:{display:"flex",flexDirection:"column",flexGrow:1,justifyContent:"center",alignItems:s},children:e.jsxs(i.Alert,{severity:c,children:[e.jsx(i.AlertTitle,{children:n(o)}),r&&n(r)]})})};q.propTypes={titulo:t.string.isRequired,texto:t.string,align:t.string,severity:t.string};const k=({nombre:o,elevation:r=1,api:s,filtros:c,titulo:n,initialPageSize:f=10,children:l})=>{const y=m.useTranslate(),[g,b]=u.useState({page:0,pageSize:f});u.useEffect(()=>{b(d=>({...d,page:0}))},[JSON.stringify(c)]);const{isLoading:S,isError:D,data:C}=A.useQuery({queryKey:[`paginable-${o}`,g,c],queryFn:()=>s(c,g.page,g.pageSize),keepPreviousData:!0});if(S)return e.jsx(i.List,{children:Array.from(Array(f).keys()).map(d=>e.jsx(i.ListItem,{children:e.jsx(i.ListItemText,{primary:e.jsx(i.Skeleton,{})})},`row-${d}`))});if(D)return e.jsxs(i.Card,{children:[e.jsx(i.CardHeader,{titulo:y(n)}),e.jsx(i.CardContent,{children:e.jsx(q,{titulo:"main.paginable.error.carga"})})]});const I=(d,p)=>{S||p===g.page||b({page:p,pageSize:g.pageSize})},L=d=>{const p=d.target.value;S||p===g.pageSize||b({page:0,pageSize:p})};return e.jsxs(i.Card,{elevation:r,children:[n&&e.jsx(i.CardHeader,{titulo:y(n)}),e.jsx(i.CardContent,{children:S?e.jsx(i.LinearProgress,{}):C&&C.content.length>0?u.Children.map(l,d=>u.cloneElement(d,{data:C.content})):e.jsx(i.Typography,{children:y("main.paginable.sinResultados")})}),C&&C.totalElements>0&&e.jsx(i.CardActions,{sx:{justifyContent:"flex-end"},children:e.jsx(i.TablePagination,{component:"div",count:C.totalElements,page:g.page,rowsPerPage:g.pageSize,labelRowsPerPage:y("main.paginable.filas"),labelDisplayedRows:({from:d,to:p,count:O})=>y("main.paginable.resultados",{inicial:d,final:p,total:O}),rowsPerPageOptions:[5,10,15,20,25,50],onRowsPerPageChange:L,onPageChange:I})})]})};k.propTypes={nombre:t.string.isRequired,elevation:t.number,api:t.func.isRequired,filtros:t.object,titulo:t.string,initialPageSize:t.number,children:t.element};const E=()=>{const o=h(r=>r.mostrarNotificacion);return u.useCallback((r,s="default",c={vertical:"botton",horizontal:"center"})=>{o({mensaje:r,tipo:s,posicion:c})},[o])};a.Cargando=w,a.Mensaje=q,a.MuiApp=z,a.Paginable=k,a.useMuiStore=h,a.useNotificar=E,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chimera-pe/mui-saas",
|
|
3
3
|
"description": "Librería con componentes comunes para MUI, usando SaaS",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.8",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -32,25 +32,25 @@
|
|
|
32
32
|
"prepare": "npm run build"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@chimera-pe/react-saas": "^3.0.
|
|
35
|
+
"@chimera-pe/react-saas": "^3.0.6",
|
|
36
36
|
"@emotion/react": "^11.14.0",
|
|
37
|
-
"@emotion/styled": "^11.14.
|
|
38
|
-
"@mui/material": "^7.
|
|
39
|
-
"@tanstack/react-query": "^5.
|
|
40
|
-
"react": "^19.1.
|
|
41
|
-
"react-dom": "^19.1.
|
|
37
|
+
"@emotion/styled": "^11.14.1",
|
|
38
|
+
"@mui/material": "^7.3.1",
|
|
39
|
+
"@tanstack/react-query": "^5.85.5",
|
|
40
|
+
"react": "^19.1.1",
|
|
41
|
+
"react-dom": "^19.1.1",
|
|
42
42
|
"react-polyglot": "^0.7.2",
|
|
43
|
-
"zustand": "^5.0.
|
|
43
|
+
"zustand": "^5.0.8"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@eslint/js": "^9.22.0",
|
|
47
|
-
"@types/react": "^19.1.
|
|
48
|
-
"@types/react-dom": "^19.1.
|
|
49
|
-
"@vitejs/plugin-react": "^4.
|
|
50
|
-
"eslint": "^9.
|
|
47
|
+
"@types/react": "^19.1.11",
|
|
48
|
+
"@types/react-dom": "^19.1.7",
|
|
49
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
50
|
+
"eslint": "^9.34.0",
|
|
51
51
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
52
52
|
"eslint-plugin-react-refresh": "^0.4.20",
|
|
53
|
-
"globals": "^16.
|
|
54
|
-
"vite": "^
|
|
53
|
+
"globals": "^16.3.0",
|
|
54
|
+
"vite": "^7.1.3"
|
|
55
55
|
}
|
|
56
56
|
}
|