responsive-system 1.0.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/ARCHITECTURE.md +195 -0
- package/INSTALLATION.md +403 -0
- package/README.md +382 -0
- package/dist/components/LayoutSwitcher.d.ts +6 -0
- package/dist/components/layout/Footer.d.ts +3 -0
- package/dist/components/layout/Header.d.ts +3 -0
- package/dist/components/layout/Navigation.d.ts +3 -0
- package/dist/components/layout/Sidebar.d.ts +3 -0
- package/dist/components/layout/index.d.ts +5 -0
- package/dist/config/layout.d.ts +15 -0
- package/dist/constants/breakpoints.d.ts +19 -0
- package/dist/context/NavigationContext.d.ts +13 -0
- package/dist/context/ResponsiveLayoutContext.d.ts +22 -0
- package/dist/context/SidebarContext.d.ts +11 -0
- package/dist/context/index.d.ts +4 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/useLayout.d.ts +27 -0
- package/dist/hooks/useResponsive.d.ts +7 -0
- package/dist/hooks/useResponsiveLayout.d.ts +64 -0
- package/dist/index.d.ts +11 -0
- package/dist/layouts/DashboardLayout.d.ts +7 -0
- package/dist/layouts/DefaultLayout.d.ts +7 -0
- package/dist/layouts/MainLayout.d.ts +12 -0
- package/dist/layouts/MinimalLayout.d.ts +7 -0
- package/dist/layouts/SidebarLayout.d.ts +7 -0
- package/dist/layouts/index.d.ts +6 -0
- package/dist/providers/ResponsiveLayoutProvider.d.ts +15 -0
- package/dist/providers/ResponsiveProvider.d.ts +11 -0
- package/dist/providers/index.d.ts +3 -0
- package/dist/responsive-system.cjs +9 -0
- package/dist/responsive-system.cjs.map +1 -0
- package/dist/responsive-system.mjs +580 -0
- package/dist/responsive-system.mjs.map +1 -0
- package/dist/types/responsive.d.ts +43 -0
- package/package.json +97 -0
- package/scripts/copy-types.js +46 -0
- package/scripts/generate-types.js +163 -0
- package/scripts/postinstall.js +76 -0
- package/src/plugin/responsiveScalePlugin.d.ts +57 -0
- package/src/plugin/responsiveScalePlugin.js +296 -0
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
import { jsx as e, Fragment as B, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import { useState as w, useCallback as u, useMemo as D, useEffect as oe, createContext as M, useContext as R } from "react";
|
|
3
|
+
const le = ({
|
|
4
|
+
children: t,
|
|
5
|
+
debug: s = !1
|
|
6
|
+
}) => /* @__PURE__ */ e(B, { children: t }), h = {
|
|
7
|
+
xs: 475,
|
|
8
|
+
sm: 640,
|
|
9
|
+
md: 768,
|
|
10
|
+
lg: 1024,
|
|
11
|
+
xl: 1280,
|
|
12
|
+
"2xl": 1536,
|
|
13
|
+
"3xl": 1920,
|
|
14
|
+
"4xl": 2560,
|
|
15
|
+
"5xl": 3840
|
|
16
|
+
}, ce = (t) => t >= h["5xl"] ? "5xl" : t >= h["4xl"] ? "4xl" : t >= h["3xl"] ? "3xl" : t >= h["2xl"] ? "2xl" : t >= h.xl ? "xl" : t >= h.lg ? "lg" : t >= h.md ? "md" : t >= h.sm ? "sm" : "xs", x = (t) => ["xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl", "5xl"].indexOf(t), Ce = (t) => h[t];
|
|
17
|
+
function de(t, s) {
|
|
18
|
+
let i = null;
|
|
19
|
+
return (...l) => {
|
|
20
|
+
i && clearTimeout(i), i = setTimeout(() => t(...l), s);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function me(t, s) {
|
|
24
|
+
return t >= s ? "landscape" : "portrait";
|
|
25
|
+
}
|
|
26
|
+
const ue = () => {
|
|
27
|
+
const [t, s] = w({
|
|
28
|
+
width: typeof window < "u" ? window.innerWidth : 1024,
|
|
29
|
+
height: typeof window < "u" ? window.innerHeight : 768
|
|
30
|
+
}), i = u(() => {
|
|
31
|
+
s({
|
|
32
|
+
width: window.innerWidth,
|
|
33
|
+
height: window.innerHeight
|
|
34
|
+
});
|
|
35
|
+
}, []), l = D(
|
|
36
|
+
() => de(i, 100),
|
|
37
|
+
[i]
|
|
38
|
+
);
|
|
39
|
+
oe(() => {
|
|
40
|
+
if (!(typeof window > "u"))
|
|
41
|
+
return window.addEventListener("resize", l), () => {
|
|
42
|
+
window.removeEventListener("resize", l);
|
|
43
|
+
};
|
|
44
|
+
}, [l]);
|
|
45
|
+
const { width: r, height: o } = t, a = D(() => ce(r), [r]), c = D(() => me(r, o), [r, o]), d = a === "xs", k = a === "sm", y = a === "md", p = a === "lg", C = a === "xl", S = a === "2xl", L = a === "3xl", f = a === "4xl", g = a === "5xl", W = d || k, I = y, X = p || C || S || L || f || g, _ = d || k || y, V = p || C || S || L || f || g, K = L || f || g, Y = f || g, G = g, q = c === "portrait", J = c === "landscape", Q = u((m) => x(a) >= x(m), [a]), Z = u((m) => x(a) <= x(m), [a]), ee = u((m, v) => {
|
|
46
|
+
const O = x(a);
|
|
47
|
+
return O >= x(m) && O <= x(v);
|
|
48
|
+
}, [a]), te = u((m) => r >= m, [r]), ae = u((m) => r <= m, [r]), ne = u((m, v) => r >= m && r <= v, [r]), se = u((m) => o >= m, [o]), re = u((m) => o <= m, [o]), ie = u((m, v) => o >= m && o <= v, [o]);
|
|
49
|
+
return {
|
|
50
|
+
// Estado básico
|
|
51
|
+
breakpoint: a,
|
|
52
|
+
width: r,
|
|
53
|
+
height: o,
|
|
54
|
+
orientation: c,
|
|
55
|
+
// Helpers booleanos específicos
|
|
56
|
+
isXs: d,
|
|
57
|
+
isSm: k,
|
|
58
|
+
isMd: y,
|
|
59
|
+
isLg: p,
|
|
60
|
+
isXl: C,
|
|
61
|
+
is2Xl: S,
|
|
62
|
+
is3Xl: L,
|
|
63
|
+
is4Xl: f,
|
|
64
|
+
is5Xl: g,
|
|
65
|
+
// Helpers booleanos agrupados
|
|
66
|
+
isMobile: W,
|
|
67
|
+
isTablet: I,
|
|
68
|
+
isDesktop: X,
|
|
69
|
+
isSmall: _,
|
|
70
|
+
isLarge: V,
|
|
71
|
+
isUltraWide: K,
|
|
72
|
+
is4K: Y,
|
|
73
|
+
is5K: G,
|
|
74
|
+
// Helpers de orientación
|
|
75
|
+
isPortrait: q,
|
|
76
|
+
isLandscape: J,
|
|
77
|
+
// Funciones de comparación
|
|
78
|
+
isBreakpointUp: Q,
|
|
79
|
+
isBreakpointDown: Z,
|
|
80
|
+
isBreakpointBetween: ee,
|
|
81
|
+
isWidthUp: te,
|
|
82
|
+
isWidthDown: ae,
|
|
83
|
+
isWidthBetween: ne,
|
|
84
|
+
isHeightUp: se,
|
|
85
|
+
isHeightDown: re,
|
|
86
|
+
isHeightBetween: ie,
|
|
87
|
+
// Debug
|
|
88
|
+
debug: !1
|
|
89
|
+
};
|
|
90
|
+
}, T = M(void 0), be = () => {
|
|
91
|
+
const t = R(T);
|
|
92
|
+
if (!t)
|
|
93
|
+
throw new Error("useResponsiveLayoutContext must be used within a ResponsiveLayoutProvider");
|
|
94
|
+
return t;
|
|
95
|
+
}, $ = M(void 0), A = ({ children: t }) => {
|
|
96
|
+
const [s, i] = w(!1);
|
|
97
|
+
return /* @__PURE__ */ e($.Provider, { value: { sidebarOpen: s, setSidebarOpen: i }, children: t });
|
|
98
|
+
}, j = () => {
|
|
99
|
+
const t = R($);
|
|
100
|
+
if (!t)
|
|
101
|
+
throw new Error("useSidebar must be used within a SidebarProvider");
|
|
102
|
+
return t;
|
|
103
|
+
}, z = M({
|
|
104
|
+
currentPage: "test",
|
|
105
|
+
setCurrentPage: () => {
|
|
106
|
+
}
|
|
107
|
+
}), U = () => R(z), Se = ({
|
|
108
|
+
children: t,
|
|
109
|
+
defaultPage: s = "test"
|
|
110
|
+
}) => {
|
|
111
|
+
const [i, l] = w(s);
|
|
112
|
+
return /* @__PURE__ */ e(z.Provider, { value: { currentPage: i, setCurrentPage: l }, children: t });
|
|
113
|
+
}, b = () => {
|
|
114
|
+
const t = be();
|
|
115
|
+
return {
|
|
116
|
+
// Todo el sistema responsivo original
|
|
117
|
+
...t.responsive,
|
|
118
|
+
// Sistema de layout
|
|
119
|
+
layout: {
|
|
120
|
+
current: t.layout.current,
|
|
121
|
+
config: t.layout.config,
|
|
122
|
+
setLayout: t.layout.setLayout
|
|
123
|
+
},
|
|
124
|
+
// Utilidades de layout
|
|
125
|
+
layoutUtils: t.layoutUtils,
|
|
126
|
+
// Helpers específicos del layout
|
|
127
|
+
isDefaultLayout: () => t.layout.current === "default",
|
|
128
|
+
isSidebarLayout: () => t.layout.current === "sidebar",
|
|
129
|
+
isDashboardLayout: () => t.layout.current === "dashboard",
|
|
130
|
+
isMinimalLayout: () => t.layout.current === "minimal",
|
|
131
|
+
// Grid helpers que usan el sistema auto-escalable
|
|
132
|
+
grid: {
|
|
133
|
+
auto: (s = "md") => `grid-cols-auto-${s}`,
|
|
134
|
+
responsive: (s) => {
|
|
135
|
+
const i = [];
|
|
136
|
+
return Object.entries(s).forEach(([l, r]) => {
|
|
137
|
+
l === "base" ? i.push(`grid-cols-${r}`) : i.push(`${l}:grid-cols-${r}`);
|
|
138
|
+
}), i.join(" ");
|
|
139
|
+
},
|
|
140
|
+
fixed: (s) => `grid-cols-${s}`
|
|
141
|
+
},
|
|
142
|
+
// Spacing helpers que escalan automáticamente
|
|
143
|
+
spacing: {
|
|
144
|
+
container: t.layoutUtils.getContainerClass(),
|
|
145
|
+
section: "mb-6",
|
|
146
|
+
card: "p-6",
|
|
147
|
+
gap: "gap-4"
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}, he = () => {
|
|
151
|
+
const t = b();
|
|
152
|
+
return {
|
|
153
|
+
// Layout actual
|
|
154
|
+
current: t.layout.current,
|
|
155
|
+
config: t.layout.config,
|
|
156
|
+
setLayout: t.layout.setLayout,
|
|
157
|
+
// Utilidades
|
|
158
|
+
...t.layoutUtils,
|
|
159
|
+
// Helpers específicos
|
|
160
|
+
isDefaultLayout: t.isDefaultLayout(),
|
|
161
|
+
isSidebarLayout: t.isSidebarLayout(),
|
|
162
|
+
isDashboardLayout: t.isDashboardLayout(),
|
|
163
|
+
isMinimalLayout: t.isMinimalLayout(),
|
|
164
|
+
// Grid helpers
|
|
165
|
+
grid: t.grid,
|
|
166
|
+
// Spacing helpers
|
|
167
|
+
spacing: t.spacing
|
|
168
|
+
};
|
|
169
|
+
}, N = {
|
|
170
|
+
default: {
|
|
171
|
+
name: "Default",
|
|
172
|
+
description: "Navbar arriba, body central, footer abajo",
|
|
173
|
+
components: ["Navigation", "Footer"],
|
|
174
|
+
spacing: "p-4 md:p-6 lg:p-8",
|
|
175
|
+
responsive: {
|
|
176
|
+
mobile: "p-4",
|
|
177
|
+
tablet: "p-6",
|
|
178
|
+
desktop: "p-8"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
sidebar: {
|
|
182
|
+
name: "Sidebar",
|
|
183
|
+
description: "Sidebar izquierda, contenido principal",
|
|
184
|
+
components: ["Sidebar"],
|
|
185
|
+
spacing: "p-4 md:p-6",
|
|
186
|
+
responsive: {
|
|
187
|
+
mobile: "p-4",
|
|
188
|
+
tablet: "p-6",
|
|
189
|
+
desktop: "p-6"
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
dashboard: {
|
|
193
|
+
name: "Dashboard",
|
|
194
|
+
description: "Header + Sidebar + Main + Footer",
|
|
195
|
+
components: ["Header", "Sidebar", "Footer"],
|
|
196
|
+
spacing: "p-4 md:p-6 lg:p-8",
|
|
197
|
+
responsive: {
|
|
198
|
+
mobile: "p-4",
|
|
199
|
+
tablet: "p-6",
|
|
200
|
+
desktop: "p-8"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
minimal: {
|
|
204
|
+
name: "Minimal",
|
|
205
|
+
description: "Solo contenido, sin navegación",
|
|
206
|
+
components: [],
|
|
207
|
+
spacing: "p-4 md:p-6",
|
|
208
|
+
responsive: {
|
|
209
|
+
mobile: "p-4",
|
|
210
|
+
tablet: "p-6",
|
|
211
|
+
desktop: "p-6"
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}, F = "default", De = Object.keys(N), xe = ({
|
|
215
|
+
children: t,
|
|
216
|
+
defaultLayout: s,
|
|
217
|
+
useResponsiveHook: i
|
|
218
|
+
}) => {
|
|
219
|
+
const l = ue(), o = i?.() || l, [a, c] = w(s), d = N[a] || N[F], y = {
|
|
220
|
+
responsive: o,
|
|
221
|
+
layout: {
|
|
222
|
+
current: a,
|
|
223
|
+
config: d,
|
|
224
|
+
setLayout: c
|
|
225
|
+
},
|
|
226
|
+
layoutUtils: {
|
|
227
|
+
getContainerClass: () => o.isMobile ? d.responsive.mobile : o.isTablet ? d.responsive.tablet : d.responsive.desktop,
|
|
228
|
+
getMainClass: () => {
|
|
229
|
+
const p = "min-h-screen bg-black";
|
|
230
|
+
return a === "sidebar" || a === "dashboard" ? `${p} flex` : p;
|
|
231
|
+
},
|
|
232
|
+
hasSidebar: () => a === "sidebar" || a === "dashboard",
|
|
233
|
+
hasHeader: () => a === "dashboard",
|
|
234
|
+
hasFooter: () => a === "default" || a === "dashboard",
|
|
235
|
+
hasNavigation: () => a === "default"
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
return /* @__PURE__ */ e(T.Provider, { value: y, children: t });
|
|
239
|
+
}, Me = ({
|
|
240
|
+
children: t,
|
|
241
|
+
defaultLayout: s = F,
|
|
242
|
+
useResponsiveHook: i
|
|
243
|
+
}) => /* @__PURE__ */ e(le, { children: /* @__PURE__ */ e(
|
|
244
|
+
xe,
|
|
245
|
+
{
|
|
246
|
+
defaultLayout: s,
|
|
247
|
+
useResponsiveHook: i,
|
|
248
|
+
children: t
|
|
249
|
+
}
|
|
250
|
+
) }), Re = ({ children: t, layout: s }) => {
|
|
251
|
+
const { layout: i } = b(), l = s || i.current, o = {
|
|
252
|
+
default: P,
|
|
253
|
+
sidebar: ye,
|
|
254
|
+
dashboard: ve,
|
|
255
|
+
minimal: Ne
|
|
256
|
+
}[l] || P;
|
|
257
|
+
return /* @__PURE__ */ e(o, { children: t });
|
|
258
|
+
}, je = () => {
|
|
259
|
+
const { isMobile: t } = b(), { currentPage: s, setCurrentPage: i } = U(), { sidebarOpen: l, setSidebarOpen: r } = j(), o = [
|
|
260
|
+
{ id: "test", label: "Suite de Test" },
|
|
261
|
+
{ id: "demo", label: "Demo" }
|
|
262
|
+
];
|
|
263
|
+
return /* @__PURE__ */ n("div", { className: "sticky top-0 z-50", children: [
|
|
264
|
+
/* @__PURE__ */ e("header", { className: "bg-gradient-to-r from-gray-900 via-black to-gray-900 border-b border-cyan-500/20 shadow-2xl relative", children: /* @__PURE__ */ e("div", { className: "w-full", children: /* @__PURE__ */ e("div", { className: "px-4 py-4", children: /* @__PURE__ */ n("div", { className: "flex items-center justify-between", children: [
|
|
265
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-2", children: [
|
|
266
|
+
t && /* @__PURE__ */ e(
|
|
267
|
+
"button",
|
|
268
|
+
{
|
|
269
|
+
onClick: () => r(!0),
|
|
270
|
+
className: "p-2 rounded-lg text-gray-300 hover:text-cyan-400 hover:bg-cyan-500/10 transition-colors",
|
|
271
|
+
children: /* @__PURE__ */ e("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
|
|
272
|
+
}
|
|
273
|
+
),
|
|
274
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-2", children: [
|
|
275
|
+
/* @__PURE__ */ e("div", { className: "w-1.5 h-1.5 bg-cyan-400 rounded-full shadow-lg shadow-cyan-400/50 animate-pulse" }),
|
|
276
|
+
/* @__PURE__ */ e("h3", { className: "text-base font-black text-white tracking-tight", children: "Sistema Responsivo" })
|
|
277
|
+
] }),
|
|
278
|
+
/* @__PURE__ */ e("div", { className: "px-2 py-0.5 text-cyan-400 font-mono bg-black/50 border border-cyan-500/30 rounded text-xs font-bold tracking-widest", children: "DASHBOARD" })
|
|
279
|
+
] }),
|
|
280
|
+
/* @__PURE__ */ e("div", { className: "flex items-center space-x-2", children: !t && o.map((a) => /* @__PURE__ */ e(
|
|
281
|
+
"button",
|
|
282
|
+
{
|
|
283
|
+
onClick: () => i(a.id),
|
|
284
|
+
className: `px-3 py-1.5 rounded-lg transition-all font-bold text-xs tracking-wide border ${s === a.id ? "bg-cyan-500/20 text-cyan-400 border-cyan-500/50" : "bg-black/50 text-gray-400 hover:text-gray-300 border-gray-700 hover:border-gray-600"}`,
|
|
285
|
+
children: a.label
|
|
286
|
+
},
|
|
287
|
+
a.id
|
|
288
|
+
)) })
|
|
289
|
+
] }) }) }) }),
|
|
290
|
+
t && l && /* @__PURE__ */ e("div", { className: "fixed inset-0 z-40 bg-black/50", onClick: () => r(!1), children: /* @__PURE__ */ e("div", { className: "fixed top-0 left-0 w-64 h-full bg-gradient-to-b from-gray-900 to-black border-r border-cyan-500/20", children: /* @__PURE__ */ n("div", { className: "p-6 flex flex-col h-full pt-20", children: [
|
|
291
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-3 mb-8", children: [
|
|
292
|
+
/* @__PURE__ */ e("div", { className: "w-8 h-8 bg-cyan-500 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ e("span", { className: "text-white font-bold text-sm", children: "RS" }) }),
|
|
293
|
+
/* @__PURE__ */ e("span", { className: "text-white font-bold text-lg", children: "Sistema Responsivo" })
|
|
294
|
+
] }),
|
|
295
|
+
/* @__PURE__ */ e("nav", { className: "space-y-2", children: o.map((a) => /* @__PURE__ */ e(
|
|
296
|
+
"button",
|
|
297
|
+
{
|
|
298
|
+
onClick: () => {
|
|
299
|
+
i(a.id), r(!1);
|
|
300
|
+
},
|
|
301
|
+
className: `w-full flex items-center px-4 py-3 rounded-lg transition-all group text-left ${s === a.id ? "bg-cyan-500/20 text-cyan-400 border border-cyan-500/50" : "text-gray-300 hover:text-cyan-400 hover:bg-cyan-500/10"}`,
|
|
302
|
+
children: /* @__PURE__ */ e("span", { className: "font-medium", children: a.label })
|
|
303
|
+
},
|
|
304
|
+
a.id
|
|
305
|
+
)) })
|
|
306
|
+
] }) }) })
|
|
307
|
+
] });
|
|
308
|
+
}, H = () => {
|
|
309
|
+
const { isMobile: t, isTablet: s, breakpoint: i } = b(), { currentPage: l, setCurrentPage: r } = U(), { sidebarOpen: o, setSidebarOpen: a } = j(), c = [
|
|
310
|
+
{ id: "test", label: "Suite de Test" },
|
|
311
|
+
{ id: "demo", label: "Demo" }
|
|
312
|
+
];
|
|
313
|
+
return /* @__PURE__ */ n(B, { children: [
|
|
314
|
+
t && /* @__PURE__ */ e(
|
|
315
|
+
"button",
|
|
316
|
+
{
|
|
317
|
+
onClick: () => a(!0),
|
|
318
|
+
className: "fixed top-4 left-4 z-50 p-2 rounded-lg text-gray-300 hover:text-cyan-400 hover:bg-cyan-500/10 transition-colors bg-black/50 border border-gray-700",
|
|
319
|
+
children: /* @__PURE__ */ e("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
|
|
320
|
+
}
|
|
321
|
+
),
|
|
322
|
+
/* @__PURE__ */ e("aside", { className: `
|
|
323
|
+
bg-gradient-to-b from-gray-900 to-black border-r border-cyan-500/20
|
|
324
|
+
${t ? "hidden" : "w-64 flex-shrink-0"}
|
|
325
|
+
${s ? "w-56" : "w-64"}
|
|
326
|
+
`, children: /* @__PURE__ */ n("div", { className: "p-6 flex flex-col h-full", children: [
|
|
327
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-3 mb-8", children: [
|
|
328
|
+
/* @__PURE__ */ e("div", { className: "w-8 h-8 bg-cyan-500 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ e("span", { className: "text-white font-bold text-sm", children: "RS" }) }),
|
|
329
|
+
/* @__PURE__ */ n("div", { children: [
|
|
330
|
+
/* @__PURE__ */ e("span", { className: "text-white font-bold text-lg", children: "Sistema Responsivo" }),
|
|
331
|
+
/* @__PURE__ */ e("div", { className: "px-2 py-0.5 text-cyan-400 font-mono bg-black/50 border border-cyan-500/30 rounded text-xs font-bold tracking-widest mt-1", children: i.toUpperCase() })
|
|
332
|
+
] })
|
|
333
|
+
] }),
|
|
334
|
+
/* @__PURE__ */ e("nav", { className: "space-y-2", children: c.map((d) => /* @__PURE__ */ e(
|
|
335
|
+
"button",
|
|
336
|
+
{
|
|
337
|
+
onClick: () => r(d.id),
|
|
338
|
+
className: `w-full flex items-center px-4 py-3 rounded-lg transition-all group text-left ${l === d.id ? "bg-cyan-500/20 text-cyan-400 border border-cyan-500/50" : "text-gray-300 hover:text-cyan-400 hover:bg-cyan-500/10"}`,
|
|
339
|
+
children: /* @__PURE__ */ e("span", { className: "font-medium", children: d.label })
|
|
340
|
+
},
|
|
341
|
+
d.id
|
|
342
|
+
)) })
|
|
343
|
+
] }) }),
|
|
344
|
+
t && o && /* @__PURE__ */ e("div", { className: "fixed inset-0 z-40 bg-black/50", onClick: () => a(!1), children: /* @__PURE__ */ e("div", { className: "fixed top-0 left-0 w-64 h-full bg-gradient-to-b from-gray-900 to-black border-r border-cyan-500/20", children: /* @__PURE__ */ n("div", { className: "p-6 flex flex-col h-full pt-20", children: [
|
|
345
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-3 mb-8", children: [
|
|
346
|
+
/* @__PURE__ */ e("div", { className: "w-8 h-8 bg-cyan-500 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ e("span", { className: "text-white font-bold text-sm", children: "RS" }) }),
|
|
347
|
+
/* @__PURE__ */ e("span", { className: "text-white font-bold text-lg", children: "Sistema Responsivo" })
|
|
348
|
+
] }),
|
|
349
|
+
/* @__PURE__ */ e("nav", { className: "space-y-2", children: c.map((d) => /* @__PURE__ */ e(
|
|
350
|
+
"button",
|
|
351
|
+
{
|
|
352
|
+
onClick: () => {
|
|
353
|
+
r(d.id), a(!1);
|
|
354
|
+
},
|
|
355
|
+
className: `w-full flex items-center px-4 py-3 rounded-lg transition-all group text-left ${l === d.id ? "bg-cyan-500/20 text-cyan-400 border border-cyan-500/50" : "text-gray-300 hover:text-cyan-400 hover:bg-cyan-500/10"}`,
|
|
356
|
+
children: /* @__PURE__ */ e("span", { className: "font-medium", children: d.label })
|
|
357
|
+
},
|
|
358
|
+
d.id
|
|
359
|
+
)) })
|
|
360
|
+
] }) }) })
|
|
361
|
+
] });
|
|
362
|
+
}, E = () => {
|
|
363
|
+
const { layout: t, breakpoint: s, width: i, height: l } = b();
|
|
364
|
+
return /* @__PURE__ */ e("footer", { className: "bg-gradient-to-r from-gray-900 to-black border-t border-cyan-500/20", children: /* @__PURE__ */ n("div", { className: `${t.config.spacing} py-8`, children: [
|
|
365
|
+
/* @__PURE__ */ n("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", children: [
|
|
366
|
+
/* @__PURE__ */ n("div", { children: [
|
|
367
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-3 mb-4", children: [
|
|
368
|
+
/* @__PURE__ */ e("div", { className: "w-8 h-8 bg-cyan-500 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ e("span", { className: "text-white font-bold text-sm", children: "RS" }) }),
|
|
369
|
+
/* @__PURE__ */ e("span", { className: "text-white font-bold text-lg", children: "Responsive System" })
|
|
370
|
+
] }),
|
|
371
|
+
/* @__PURE__ */ e("p", { className: "text-gray-400 text-sm leading-relaxed", children: "Sistema completo de auto-escalado para aplicaciones React + Tailwind CSS" })
|
|
372
|
+
] }),
|
|
373
|
+
/* @__PURE__ */ n("div", { children: [
|
|
374
|
+
/* @__PURE__ */ e("h3", { className: "text-white font-semibold mb-4", children: "Estado del Sistema" }),
|
|
375
|
+
/* @__PURE__ */ n("div", { className: "space-y-2", children: [
|
|
376
|
+
/* @__PURE__ */ n("div", { className: "flex items-center justify-between text-sm", children: [
|
|
377
|
+
/* @__PURE__ */ e("span", { className: "text-gray-400", children: "Breakpoint:" }),
|
|
378
|
+
/* @__PURE__ */ e("span", { className: "text-cyan-400 font-medium", children: s.toUpperCase() })
|
|
379
|
+
] }),
|
|
380
|
+
/* @__PURE__ */ n("div", { className: "flex items-center justify-between text-sm", children: [
|
|
381
|
+
/* @__PURE__ */ e("span", { className: "text-gray-400", children: "Layout:" }),
|
|
382
|
+
/* @__PURE__ */ e("span", { className: "text-cyan-400 font-medium", children: t.config.name })
|
|
383
|
+
] }),
|
|
384
|
+
/* @__PURE__ */ n("div", { className: "flex items-center justify-between text-sm", children: [
|
|
385
|
+
/* @__PURE__ */ e("span", { className: "text-gray-400", children: "Resolución:" }),
|
|
386
|
+
/* @__PURE__ */ n("span", { className: "text-cyan-400 font-medium", children: [
|
|
387
|
+
i,
|
|
388
|
+
" × ",
|
|
389
|
+
l
|
|
390
|
+
] })
|
|
391
|
+
] })
|
|
392
|
+
] })
|
|
393
|
+
] }),
|
|
394
|
+
/* @__PURE__ */ n("div", { children: [
|
|
395
|
+
/* @__PURE__ */ e("h3", { className: "text-white font-semibold mb-4", children: "Desarrollador" }),
|
|
396
|
+
/* @__PURE__ */ n("div", { className: "space-y-3", children: [
|
|
397
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-3", children: [
|
|
398
|
+
/* @__PURE__ */ e("div", { className: "w-8 h-8 bg-gray-700 rounded-full flex items-center justify-center", children: /* @__PURE__ */ e("svg", { className: "w-4 h-4 text-gray-300", fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" }) }) }),
|
|
399
|
+
/* @__PURE__ */ n("div", { children: [
|
|
400
|
+
/* @__PURE__ */ e("p", { className: "text-white font-medium text-sm", children: "Felipe Caroca" }),
|
|
401
|
+
/* @__PURE__ */ e("p", { className: "text-gray-400 text-xs", children: "Frontend Developer" })
|
|
402
|
+
] })
|
|
403
|
+
] }),
|
|
404
|
+
/* @__PURE__ */ n(
|
|
405
|
+
"a",
|
|
406
|
+
{
|
|
407
|
+
href: "https://github.com/FelipeCaroca1",
|
|
408
|
+
target: "_blank",
|
|
409
|
+
rel: "noopener noreferrer",
|
|
410
|
+
className: "flex items-center space-x-2 text-gray-400 hover:text-cyan-400 transition-colors text-sm group",
|
|
411
|
+
children: [
|
|
412
|
+
/* @__PURE__ */ e("svg", { className: "w-4 h-4 group-hover:text-cyan-400", fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" }) }),
|
|
413
|
+
/* @__PURE__ */ e("span", { children: "Ver en GitHub" })
|
|
414
|
+
]
|
|
415
|
+
}
|
|
416
|
+
)
|
|
417
|
+
] })
|
|
418
|
+
] })
|
|
419
|
+
] }),
|
|
420
|
+
/* @__PURE__ */ n("div", { className: "border-t border-gray-800 mt-8 pt-6 flex flex-col items-center text-center", children: [
|
|
421
|
+
/* @__PURE__ */ e("p", { className: "text-gray-500 text-sm mb-4", children: "© 2025 Responsive System. Todos los derechos reservados." }),
|
|
422
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-4", children: [
|
|
423
|
+
/* @__PURE__ */ e("span", { className: "text-gray-500 text-xs", children: "Auto-escalado activo" }),
|
|
424
|
+
/* @__PURE__ */ e("div", { className: "w-2 h-2 bg-cyan-400 rounded-full animate-pulse" })
|
|
425
|
+
] })
|
|
426
|
+
] })
|
|
427
|
+
] }) });
|
|
428
|
+
}, pe = () => {
|
|
429
|
+
const { isMobile: t, breakpoint: s } = b(), { currentPage: i, setCurrentPage: l } = U(), [r, o] = w(!1), a = [
|
|
430
|
+
{ id: "demo", name: "Demo" },
|
|
431
|
+
{ id: "test", name: "Suite de Test" }
|
|
432
|
+
];
|
|
433
|
+
return /* @__PURE__ */ e("div", { className: "sticky top-0 z-50", children: /* @__PURE__ */ n("nav", { className: "bg-gradient-to-r from-gray-900 via-black to-gray-900 border-b border-cyan-500/20 shadow-2xl relative", children: [
|
|
434
|
+
/* @__PURE__ */ e("div", { className: "w-full", children: /* @__PURE__ */ e("div", { className: "px-4 py-4", children: /* @__PURE__ */ n("div", { className: "flex items-center justify-between", children: [
|
|
435
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-2", children: [
|
|
436
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-2", children: [
|
|
437
|
+
/* @__PURE__ */ e("div", { className: "w-1.5 h-1.5 bg-cyan-400 rounded-full shadow-lg shadow-cyan-400/50 animate-pulse" }),
|
|
438
|
+
/* @__PURE__ */ e("h3", { className: "text-base font-black text-white tracking-tight", children: "Sistema Responsivo" })
|
|
439
|
+
] }),
|
|
440
|
+
/* @__PURE__ */ e("div", { className: "px-2 py-0.5 text-cyan-400 font-mono bg-black/50 border border-cyan-500/30 rounded text-xs font-bold tracking-widest", children: s.toUpperCase() })
|
|
441
|
+
] }),
|
|
442
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-2", children: [
|
|
443
|
+
!t && a.map((c) => /* @__PURE__ */ e(
|
|
444
|
+
"button",
|
|
445
|
+
{
|
|
446
|
+
onClick: () => l(c.id),
|
|
447
|
+
className: `px-3 py-1.5 rounded-lg transition-all font-bold text-xs tracking-wide border ${i === c.id ? "bg-cyan-500/20 text-cyan-400 border-cyan-500/50" : "bg-black/50 text-gray-400 hover:text-gray-300 border-gray-700 hover:border-gray-600"}`,
|
|
448
|
+
children: c.name
|
|
449
|
+
},
|
|
450
|
+
c.id
|
|
451
|
+
)),
|
|
452
|
+
t && /* @__PURE__ */ e(
|
|
453
|
+
"button",
|
|
454
|
+
{
|
|
455
|
+
onClick: () => o(!r),
|
|
456
|
+
className: "p-2 rounded-lg text-gray-300 hover:text-cyan-400 hover:bg-cyan-500/10 transition-colors",
|
|
457
|
+
children: /* @__PURE__ */ e("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
|
|
458
|
+
}
|
|
459
|
+
)
|
|
460
|
+
] })
|
|
461
|
+
] }) }) }),
|
|
462
|
+
t && r && /* @__PURE__ */ e("div", { className: "absolute top-full left-0 right-0 bg-gradient-to-r from-gray-900 via-black to-gray-900 border-b border-cyan-500/20 shadow-2xl z-50", children: /* @__PURE__ */ e("div", { className: "p-4", children: /* @__PURE__ */ e("nav", { className: "space-y-2", children: a.map((c) => /* @__PURE__ */ e(
|
|
463
|
+
"button",
|
|
464
|
+
{
|
|
465
|
+
onClick: () => {
|
|
466
|
+
l(c.id), o(!1);
|
|
467
|
+
},
|
|
468
|
+
className: `w-full text-left px-4 py-3 rounded-lg transition-all font-bold text-sm tracking-wide border ${i === c.id ? "bg-cyan-500/20 text-cyan-400 border-cyan-500/50" : "bg-black/50 text-gray-400 hover:text-gray-300 border-gray-700 hover:border-gray-600"}`,
|
|
469
|
+
children: c.name
|
|
470
|
+
},
|
|
471
|
+
c.id
|
|
472
|
+
)) }) }) })
|
|
473
|
+
] }) });
|
|
474
|
+
}, P = ({ children: t }) => {
|
|
475
|
+
const { layoutUtils: s } = b();
|
|
476
|
+
return /* @__PURE__ */ n("div", { className: "min-h-screen bg-black flex flex-col", children: [
|
|
477
|
+
/* @__PURE__ */ e(pe, {}),
|
|
478
|
+
/* @__PURE__ */ e("main", { className: "flex-1", children: /* @__PURE__ */ e("div", { className: s.getContainerClass(), children: t }) }),
|
|
479
|
+
/* @__PURE__ */ e(E, {})
|
|
480
|
+
] });
|
|
481
|
+
}, ge = ({ children: t }) => {
|
|
482
|
+
const { layoutUtils: s } = b();
|
|
483
|
+
return /* @__PURE__ */ n("div", { className: "min-h-screen bg-black flex", children: [
|
|
484
|
+
/* @__PURE__ */ e(H, {}),
|
|
485
|
+
/* @__PURE__ */ e("main", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ e("div", { className: s.getContainerClass(), children: t }) })
|
|
486
|
+
] });
|
|
487
|
+
}, ye = ({ children: t }) => /* @__PURE__ */ e(A, { children: /* @__PURE__ */ e(ge, { children: t }) }), fe = ({ children: t }) => {
|
|
488
|
+
const { layoutUtils: s } = b(), { setSidebarOpen: i } = j();
|
|
489
|
+
return /* @__PURE__ */ n("div", { className: "min-h-screen bg-black flex flex-col", children: [
|
|
490
|
+
/* @__PURE__ */ e("div", { className: "sticky top-0 z-50", children: /* @__PURE__ */ e("nav", { className: "bg-gradient-to-r from-gray-900 via-black to-gray-900 border-b border-cyan-500/20 shadow-2xl relative", children: /* @__PURE__ */ e("div", { className: "w-full", children: /* @__PURE__ */ e("div", { className: "px-4 py-4", children: /* @__PURE__ */ e("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ n("div", { className: "flex items-center space-x-2", children: [
|
|
491
|
+
/* @__PURE__ */ e(
|
|
492
|
+
"button",
|
|
493
|
+
{
|
|
494
|
+
onClick: () => i(!0),
|
|
495
|
+
className: "p-2 rounded-lg text-gray-300 hover:text-cyan-400 hover:bg-cyan-500/10 transition-colors",
|
|
496
|
+
children: /* @__PURE__ */ e("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
|
|
497
|
+
}
|
|
498
|
+
),
|
|
499
|
+
/* @__PURE__ */ n("div", { className: "flex items-center space-x-2", children: [
|
|
500
|
+
/* @__PURE__ */ e("div", { className: "w-1.5 h-1.5 bg-cyan-400 rounded-full shadow-lg shadow-cyan-400/50 animate-pulse" }),
|
|
501
|
+
/* @__PURE__ */ e("h3", { className: "text-base font-black text-white tracking-tight", children: "Sistema Responsivo" })
|
|
502
|
+
] }),
|
|
503
|
+
/* @__PURE__ */ e("div", { className: "px-2 py-0.5 text-cyan-400 font-mono bg-black/50 border border-cyan-500/30 rounded text-xs font-bold tracking-widest", children: "DASHBOARD" })
|
|
504
|
+
] }) }) }) }) }) }),
|
|
505
|
+
/* @__PURE__ */ n("div", { className: "flex flex-1", children: [
|
|
506
|
+
/* @__PURE__ */ e(H, {}),
|
|
507
|
+
/* @__PURE__ */ e("main", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ e("div", { className: s.getContainerClass(), children: t }) })
|
|
508
|
+
] }),
|
|
509
|
+
/* @__PURE__ */ e(E, {})
|
|
510
|
+
] });
|
|
511
|
+
}, ve = ({ children: t }) => /* @__PURE__ */ e(A, { children: /* @__PURE__ */ e(fe, { children: t }) }), Ne = ({ children: t }) => {
|
|
512
|
+
const { layoutUtils: s } = b();
|
|
513
|
+
return /* @__PURE__ */ e("div", { className: "min-h-screen bg-black", children: /* @__PURE__ */ e("main", { className: s.getContainerClass(), children: t }) });
|
|
514
|
+
}, Ue = ({ compact: t = !1 }) => {
|
|
515
|
+
const { current: s, setLayout: i, config: l } = he();
|
|
516
|
+
return t ? /* @__PURE__ */ n("div", { className: "bg-black/50 rounded-lg p-3 border border-gray-700", children: [
|
|
517
|
+
/* @__PURE__ */ e("div", { className: "text-xs text-gray-500 mb-2", children: "Layout:" }),
|
|
518
|
+
/* @__PURE__ */ e(
|
|
519
|
+
"select",
|
|
520
|
+
{
|
|
521
|
+
value: s,
|
|
522
|
+
onChange: (r) => i(r.target.value),
|
|
523
|
+
className: "w-full bg-gray-800 text-white text-sm p-2 rounded border border-gray-600 focus:ring-1 focus:ring-cyan-500 focus:border-transparent",
|
|
524
|
+
children: Object.entries(N).map(([r, o]) => /* @__PURE__ */ e("option", { value: r, children: o.name }, r))
|
|
525
|
+
}
|
|
526
|
+
)
|
|
527
|
+
] }) : /* @__PURE__ */ n("div", { className: "bg-black/50 backdrop-blur-sm rounded-lg p-4 border border-cyan-500/30", children: [
|
|
528
|
+
/* @__PURE__ */ e("h3", { className: "text-white font-semibold mb-3", children: "Cambiar Layout" }),
|
|
529
|
+
/* @__PURE__ */ e("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3", children: Object.entries(N).map(([r, o]) => /* @__PURE__ */ n(
|
|
530
|
+
"button",
|
|
531
|
+
{
|
|
532
|
+
onClick: () => i(r),
|
|
533
|
+
className: `
|
|
534
|
+
p-4 rounded-lg border transition-all text-left
|
|
535
|
+
${s === r ? "border-cyan-500 bg-cyan-500/10 text-cyan-400" : "border-gray-700 bg-black/30 text-gray-300 hover:border-gray-600"}
|
|
536
|
+
`,
|
|
537
|
+
children: [
|
|
538
|
+
/* @__PURE__ */ e("div", { className: "font-semibold mb-1", children: o.name }),
|
|
539
|
+
/* @__PURE__ */ e("div", { className: "text-xs opacity-75", children: o.description })
|
|
540
|
+
]
|
|
541
|
+
},
|
|
542
|
+
r
|
|
543
|
+
)) }),
|
|
544
|
+
/* @__PURE__ */ n("div", { className: "mt-4 p-3 bg-gray-900/50 rounded-lg", children: [
|
|
545
|
+
/* @__PURE__ */ e("div", { className: "text-xs text-gray-500 mb-1", children: "Layout Actual:" }),
|
|
546
|
+
/* @__PURE__ */ e("div", { className: "text-sm text-cyan-400 font-medium", children: l.name }),
|
|
547
|
+
/* @__PURE__ */ e("div", { className: "text-xs text-gray-400", children: l.description })
|
|
548
|
+
] })
|
|
549
|
+
] });
|
|
550
|
+
};
|
|
551
|
+
export {
|
|
552
|
+
De as AVAILABLE_LAYOUTS,
|
|
553
|
+
h as DEFAULT_BREAKPOINTS,
|
|
554
|
+
F as DEFAULT_LAYOUT,
|
|
555
|
+
ve as DashboardLayout,
|
|
556
|
+
P as DefaultLayout,
|
|
557
|
+
E as Footer,
|
|
558
|
+
je as Header,
|
|
559
|
+
N as LAYOUT_CONFIG,
|
|
560
|
+
Ue as LayoutSwitcher,
|
|
561
|
+
Re as MainLayout,
|
|
562
|
+
Ne as MinimalLayout,
|
|
563
|
+
pe as Navigation,
|
|
564
|
+
Se as NavigationProvider,
|
|
565
|
+
Me as ResponsiveLayoutProvider,
|
|
566
|
+
le as ResponsiveProvider,
|
|
567
|
+
H as Sidebar,
|
|
568
|
+
ye as SidebarLayout,
|
|
569
|
+
A as SidebarProvider,
|
|
570
|
+
x as getBreakpointIndex,
|
|
571
|
+
Ce as getBreakpointValue,
|
|
572
|
+
ce as getCurrentBreakpoint,
|
|
573
|
+
he as useLayout,
|
|
574
|
+
U as useNavigation,
|
|
575
|
+
ue as useResponsive,
|
|
576
|
+
b as useResponsiveLayout,
|
|
577
|
+
be as useResponsiveLayoutContext,
|
|
578
|
+
j as useSidebar
|
|
579
|
+
};
|
|
580
|
+
//# sourceMappingURL=responsive-system.mjs.map
|