@iniguezmarc/design-system 0.0.12 → 0.0.17
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/components/atoms/Button/BasicButton.d.ts +6 -2
- package/dist/components/atoms/Slider/BasicSlider.d.ts +15 -0
- package/dist/components/atoms/Slider/Slider.d.ts +3 -0
- package/dist/components/atoms/Toggle/LanguageToggle.d.ts +2 -1
- package/dist/components/molecules/ControlPanel/BasicControlPanel.d.ts +15 -0
- package/dist/components/molecules/ControlPanel/ControlPanel.d.ts +3 -0
- package/dist/components/organisms/Grid/InteractiveGrid.d.ts +21 -0
- package/dist/components/organisms/Layout/SplitLayout.d.ts +23 -0
- package/dist/components/organisms/Navbar/BasicNavbar.d.ts +4 -1
- package/dist/components/organisms/Navbar/ScrollNavbar.d.ts +4 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.es.js +972 -499
- package/dist/index.umd.js +102 -62
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
var
|
|
1
|
+
import I, { forwardRef as le, useState as C, useEffect as U, useRef as ie } from "react";
|
|
2
|
+
var q = { exports: {} }, M = {};
|
|
3
3
|
/**
|
|
4
4
|
* @license React
|
|
5
5
|
* react-jsx-runtime.production.js
|
|
@@ -9,29 +9,29 @@ var W = { exports: {} }, A = {};
|
|
|
9
9
|
* This source code is licensed under the MIT license found in the
|
|
10
10
|
* LICENSE file in the root directory of this source tree.
|
|
11
11
|
*/
|
|
12
|
-
var
|
|
13
|
-
function
|
|
14
|
-
if (
|
|
15
|
-
|
|
16
|
-
var o = Symbol.for("react.transitional.element"),
|
|
17
|
-
function
|
|
18
|
-
var
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
for (var
|
|
22
|
-
|
|
23
|
-
} else
|
|
24
|
-
return
|
|
12
|
+
var re;
|
|
13
|
+
function ce() {
|
|
14
|
+
if (re) return M;
|
|
15
|
+
re = 1;
|
|
16
|
+
var o = Symbol.for("react.transitional.element"), l = Symbol.for("react.fragment");
|
|
17
|
+
function i(s, a, t) {
|
|
18
|
+
var x = null;
|
|
19
|
+
if (t !== void 0 && (x = "" + t), a.key !== void 0 && (x = "" + a.key), "key" in a) {
|
|
20
|
+
t = {};
|
|
21
|
+
for (var n in a)
|
|
22
|
+
n !== "key" && (t[n] = a[n]);
|
|
23
|
+
} else t = a;
|
|
24
|
+
return a = t.ref, {
|
|
25
25
|
$$typeof: o,
|
|
26
26
|
type: s,
|
|
27
|
-
key:
|
|
28
|
-
ref:
|
|
29
|
-
props:
|
|
27
|
+
key: x,
|
|
28
|
+
ref: a !== void 0 ? a : null,
|
|
29
|
+
props: t
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
return
|
|
32
|
+
return M.Fragment = l, M.jsx = i, M.jsxs = i, M;
|
|
33
33
|
}
|
|
34
|
-
var
|
|
34
|
+
var D = {};
|
|
35
35
|
/**
|
|
36
36
|
* @license React
|
|
37
37
|
* react-jsx-runtime.development.js
|
|
@@ -41,126 +41,126 @@ var O = {};
|
|
|
41
41
|
* This source code is licensed under the MIT license found in the
|
|
42
42
|
* LICENSE file in the root directory of this source tree.
|
|
43
43
|
*/
|
|
44
|
-
var
|
|
45
|
-
function
|
|
46
|
-
return
|
|
44
|
+
var ae;
|
|
45
|
+
function de() {
|
|
46
|
+
return ae || (ae = 1, process.env.NODE_ENV !== "production" && function() {
|
|
47
47
|
function o(r) {
|
|
48
48
|
if (r == null) return null;
|
|
49
49
|
if (typeof r == "function")
|
|
50
|
-
return r.$$typeof ===
|
|
50
|
+
return r.$$typeof === L ? null : r.displayName || r.name || null;
|
|
51
51
|
if (typeof r == "string") return r;
|
|
52
52
|
switch (r) {
|
|
53
|
-
case
|
|
53
|
+
case v:
|
|
54
54
|
return "Fragment";
|
|
55
55
|
case k:
|
|
56
56
|
return "Profiler";
|
|
57
|
-
case
|
|
57
|
+
case N:
|
|
58
58
|
return "StrictMode";
|
|
59
|
-
case
|
|
59
|
+
case w:
|
|
60
60
|
return "Suspense";
|
|
61
|
-
case
|
|
61
|
+
case E:
|
|
62
62
|
return "SuspenseList";
|
|
63
|
-
case
|
|
63
|
+
case F:
|
|
64
64
|
return "Activity";
|
|
65
65
|
}
|
|
66
66
|
if (typeof r == "object")
|
|
67
67
|
switch (typeof r.tag == "number" && console.error(
|
|
68
68
|
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
|
69
69
|
), r.$$typeof) {
|
|
70
|
-
case
|
|
70
|
+
case p:
|
|
71
71
|
return "Portal";
|
|
72
|
-
case
|
|
72
|
+
case T:
|
|
73
73
|
return r.displayName || "Context";
|
|
74
|
-
case
|
|
74
|
+
case R:
|
|
75
75
|
return (r._context.displayName || "Context") + ".Consumer";
|
|
76
|
-
case
|
|
77
|
-
var
|
|
78
|
-
return r = r.displayName, r || (r =
|
|
79
|
-
case
|
|
80
|
-
return
|
|
81
|
-
case
|
|
82
|
-
|
|
76
|
+
case _:
|
|
77
|
+
var b = r.render;
|
|
78
|
+
return r = r.displayName, r || (r = b.displayName || b.name || "", r = r !== "" ? "ForwardRef(" + r + ")" : "ForwardRef"), r;
|
|
79
|
+
case Y:
|
|
80
|
+
return b = r.displayName || null, b !== null ? b : o(r.type) || "Memo";
|
|
81
|
+
case S:
|
|
82
|
+
b = r._payload, r = r._init;
|
|
83
83
|
try {
|
|
84
|
-
return o(r(
|
|
84
|
+
return o(r(b));
|
|
85
85
|
} catch {
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
return null;
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function l(r) {
|
|
91
91
|
return "" + r;
|
|
92
92
|
}
|
|
93
|
-
function
|
|
93
|
+
function i(r) {
|
|
94
94
|
try {
|
|
95
|
-
|
|
96
|
-
var
|
|
95
|
+
l(r);
|
|
96
|
+
var b = !1;
|
|
97
97
|
} catch {
|
|
98
|
-
|
|
98
|
+
b = !0;
|
|
99
99
|
}
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
var
|
|
103
|
-
return
|
|
104
|
-
|
|
100
|
+
if (b) {
|
|
101
|
+
b = console;
|
|
102
|
+
var j = b.error, $ = typeof Symbol == "function" && Symbol.toStringTag && r[Symbol.toStringTag] || r.constructor.name || "Object";
|
|
103
|
+
return j.call(
|
|
104
|
+
b,
|
|
105
105
|
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
|
106
|
-
|
|
107
|
-
),
|
|
106
|
+
$
|
|
107
|
+
), l(r);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
function s(r) {
|
|
111
|
-
if (r ===
|
|
112
|
-
if (typeof r == "object" && r !== null && r.$$typeof ===
|
|
111
|
+
if (r === v) return "<>";
|
|
112
|
+
if (typeof r == "object" && r !== null && r.$$typeof === S)
|
|
113
113
|
return "<...>";
|
|
114
114
|
try {
|
|
115
|
-
var
|
|
116
|
-
return
|
|
115
|
+
var b = o(r);
|
|
116
|
+
return b ? "<" + b + ">" : "<...>";
|
|
117
117
|
} catch {
|
|
118
118
|
return "<...>";
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
-
function
|
|
122
|
-
var r =
|
|
121
|
+
function a() {
|
|
122
|
+
var r = A.A;
|
|
123
123
|
return r === null ? null : r.getOwner();
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function t() {
|
|
126
126
|
return Error("react-stack-top-frame");
|
|
127
127
|
}
|
|
128
|
-
function
|
|
129
|
-
if (
|
|
130
|
-
var
|
|
131
|
-
if (
|
|
128
|
+
function x(r) {
|
|
129
|
+
if (X.call(r, "key")) {
|
|
130
|
+
var b = Object.getOwnPropertyDescriptor(r, "key").get;
|
|
131
|
+
if (b && b.isReactWarning) return !1;
|
|
132
132
|
}
|
|
133
133
|
return r.key !== void 0;
|
|
134
134
|
}
|
|
135
|
-
function
|
|
136
|
-
function
|
|
137
|
-
|
|
135
|
+
function n(r, b) {
|
|
136
|
+
function j() {
|
|
137
|
+
J || (J = !0, console.error(
|
|
138
138
|
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
|
139
|
-
|
|
139
|
+
b
|
|
140
140
|
));
|
|
141
141
|
}
|
|
142
|
-
|
|
143
|
-
get:
|
|
142
|
+
j.isReactWarning = !0, Object.defineProperty(r, "key", {
|
|
143
|
+
get: j,
|
|
144
144
|
configurable: !0
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
|
-
function
|
|
147
|
+
function c() {
|
|
148
148
|
var r = o(this.type);
|
|
149
|
-
return
|
|
149
|
+
return Z[r] || (Z[r] = !0, console.error(
|
|
150
150
|
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
151
151
|
)), r = this.props.ref, r !== void 0 ? r : null;
|
|
152
152
|
}
|
|
153
|
-
function
|
|
154
|
-
var
|
|
153
|
+
function g(r, b, j, $, B, G) {
|
|
154
|
+
var y = j.ref;
|
|
155
155
|
return r = {
|
|
156
|
-
$$typeof:
|
|
156
|
+
$$typeof: h,
|
|
157
157
|
type: r,
|
|
158
|
-
key:
|
|
159
|
-
props:
|
|
160
|
-
_owner:
|
|
161
|
-
}, (
|
|
158
|
+
key: b,
|
|
159
|
+
props: j,
|
|
160
|
+
_owner: $
|
|
161
|
+
}, (y !== void 0 ? y : null) !== null ? Object.defineProperty(r, "ref", {
|
|
162
162
|
enumerable: !1,
|
|
163
|
-
get:
|
|
163
|
+
get: c
|
|
164
164
|
}) : Object.defineProperty(r, "ref", { enumerable: !1, value: null }), r._store = {}, Object.defineProperty(r._store, "validated", {
|
|
165
165
|
configurable: !1,
|
|
166
166
|
enumerable: !1,
|
|
@@ -175,364 +175,437 @@ function le() {
|
|
|
175
175
|
configurable: !1,
|
|
176
176
|
enumerable: !1,
|
|
177
177
|
writable: !0,
|
|
178
|
-
value:
|
|
178
|
+
value: B
|
|
179
179
|
}), Object.defineProperty(r, "_debugTask", {
|
|
180
180
|
configurable: !1,
|
|
181
181
|
enumerable: !1,
|
|
182
182
|
writable: !0,
|
|
183
|
-
value:
|
|
183
|
+
value: G
|
|
184
184
|
}), Object.freeze && (Object.freeze(r.props), Object.freeze(r)), r;
|
|
185
185
|
}
|
|
186
|
-
function
|
|
187
|
-
var
|
|
188
|
-
if (
|
|
189
|
-
if (
|
|
190
|
-
if (
|
|
191
|
-
for (
|
|
192
|
-
|
|
193
|
-
Object.freeze && Object.freeze(
|
|
186
|
+
function f(r, b, j, $, B, G) {
|
|
187
|
+
var y = b.children;
|
|
188
|
+
if (y !== void 0)
|
|
189
|
+
if ($)
|
|
190
|
+
if (ne(y)) {
|
|
191
|
+
for ($ = 0; $ < y.length; $++)
|
|
192
|
+
d(y[$]);
|
|
193
|
+
Object.freeze && Object.freeze(y);
|
|
194
194
|
} else
|
|
195
195
|
console.error(
|
|
196
196
|
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
|
197
197
|
);
|
|
198
|
-
else
|
|
199
|
-
if (
|
|
200
|
-
|
|
201
|
-
var
|
|
202
|
-
return
|
|
198
|
+
else d(y);
|
|
199
|
+
if (X.call(b, "key")) {
|
|
200
|
+
y = o(r);
|
|
201
|
+
var P = Object.keys(b).filter(function(oe) {
|
|
202
|
+
return oe !== "key";
|
|
203
203
|
});
|
|
204
|
-
|
|
204
|
+
$ = 0 < P.length ? "{key: someKey, " + P.join(": ..., ") + ": ...}" : "{key: someKey}", ee[y + $] || (P = 0 < P.length ? "{" + P.join(": ..., ") + ": ...}" : "{}", console.error(
|
|
205
205
|
`A props object containing a "key" prop is being spread into JSX:
|
|
206
206
|
let props = %s;
|
|
207
207
|
<%s {...props} />
|
|
208
208
|
React keys must be passed directly to JSX without using spread:
|
|
209
209
|
let props = %s;
|
|
210
210
|
<%s key={someKey} {...props} />`,
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
),
|
|
211
|
+
$,
|
|
212
|
+
y,
|
|
213
|
+
P,
|
|
214
|
+
y
|
|
215
|
+
), ee[y + $] = !0);
|
|
216
216
|
}
|
|
217
|
-
if (
|
|
218
|
-
|
|
219
|
-
for (var
|
|
220
|
-
|
|
221
|
-
} else
|
|
222
|
-
return
|
|
223
|
-
|
|
217
|
+
if (y = null, j !== void 0 && (i(j), y = "" + j), x(b) && (i(b.key), y = "" + b.key), "key" in b) {
|
|
218
|
+
j = {};
|
|
219
|
+
for (var H in b)
|
|
220
|
+
H !== "key" && (j[H] = b[H]);
|
|
221
|
+
} else j = b;
|
|
222
|
+
return y && n(
|
|
223
|
+
j,
|
|
224
224
|
typeof r == "function" ? r.displayName || r.name || "Unknown" : r
|
|
225
|
-
),
|
|
225
|
+
), g(
|
|
226
226
|
r,
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
y,
|
|
228
|
+
j,
|
|
229
|
+
a(),
|
|
230
|
+
B,
|
|
231
|
+
G
|
|
232
232
|
);
|
|
233
233
|
}
|
|
234
|
-
function
|
|
235
|
-
|
|
234
|
+
function d(r) {
|
|
235
|
+
m(r) ? r._store && (r._store.validated = 1) : typeof r == "object" && r !== null && r.$$typeof === S && (r._payload.status === "fulfilled" ? m(r._payload.value) && r._payload.value._store && (r._payload.value._store.validated = 1) : r._store && (r._store.validated = 1));
|
|
236
236
|
}
|
|
237
|
-
function
|
|
238
|
-
return typeof r == "object" && r !== null && r.$$typeof ===
|
|
237
|
+
function m(r) {
|
|
238
|
+
return typeof r == "object" && r !== null && r.$$typeof === h;
|
|
239
239
|
}
|
|
240
|
-
var
|
|
240
|
+
var u = I, h = Symbol.for("react.transitional.element"), p = Symbol.for("react.portal"), v = Symbol.for("react.fragment"), N = Symbol.for("react.strict_mode"), k = Symbol.for("react.profiler"), R = Symbol.for("react.consumer"), T = Symbol.for("react.context"), _ = Symbol.for("react.forward_ref"), w = Symbol.for("react.suspense"), E = Symbol.for("react.suspense_list"), Y = Symbol.for("react.memo"), S = Symbol.for("react.lazy"), F = Symbol.for("react.activity"), L = Symbol.for("react.client.reference"), A = u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, X = Object.prototype.hasOwnProperty, ne = Array.isArray, V = console.createTask ? console.createTask : function() {
|
|
241
241
|
return null;
|
|
242
242
|
};
|
|
243
|
-
|
|
243
|
+
u = {
|
|
244
244
|
react_stack_bottom_frame: function(r) {
|
|
245
245
|
return r();
|
|
246
246
|
}
|
|
247
247
|
};
|
|
248
|
-
var
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
)(),
|
|
252
|
-
|
|
253
|
-
var
|
|
254
|
-
return
|
|
248
|
+
var J, Z = {}, K = u.react_stack_bottom_frame.bind(
|
|
249
|
+
u,
|
|
250
|
+
t
|
|
251
|
+
)(), Q = V(s(t)), ee = {};
|
|
252
|
+
D.Fragment = v, D.jsx = function(r, b, j) {
|
|
253
|
+
var $ = 1e4 > A.recentlyCreatedOwnerStacks++;
|
|
254
|
+
return f(
|
|
255
255
|
r,
|
|
256
|
-
|
|
257
|
-
|
|
256
|
+
b,
|
|
257
|
+
j,
|
|
258
258
|
!1,
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
$ ? Error("react-stack-top-frame") : K,
|
|
260
|
+
$ ? V(s(r)) : Q
|
|
261
261
|
);
|
|
262
|
-
},
|
|
263
|
-
var
|
|
264
|
-
return
|
|
262
|
+
}, D.jsxs = function(r, b, j) {
|
|
263
|
+
var $ = 1e4 > A.recentlyCreatedOwnerStacks++;
|
|
264
|
+
return f(
|
|
265
265
|
r,
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
b,
|
|
267
|
+
j,
|
|
268
268
|
!0,
|
|
269
|
-
|
|
270
|
-
|
|
269
|
+
$ ? Error("react-stack-top-frame") : K,
|
|
270
|
+
$ ? V(s(r)) : Q
|
|
271
271
|
);
|
|
272
272
|
};
|
|
273
|
-
}()),
|
|
273
|
+
}()), D;
|
|
274
274
|
}
|
|
275
|
-
process.env.NODE_ENV === "production" ?
|
|
276
|
-
var e =
|
|
277
|
-
const
|
|
275
|
+
process.env.NODE_ENV === "production" ? q.exports = ce() : q.exports = de();
|
|
276
|
+
var e = q.exports;
|
|
277
|
+
const ue = ({
|
|
278
278
|
src: o,
|
|
279
|
-
alt:
|
|
280
|
-
size:
|
|
279
|
+
alt: l = "Avatar",
|
|
280
|
+
size: i = "md",
|
|
281
281
|
imageFit: s = "cover",
|
|
282
|
-
customStyles:
|
|
283
|
-
className:
|
|
284
|
-
borderColor:
|
|
285
|
-
darkBorderColor:
|
|
286
|
-
backgroundColor:
|
|
287
|
-
darkBackgroundColor:
|
|
288
|
-
loading:
|
|
282
|
+
customStyles: a = {},
|
|
283
|
+
className: t = "",
|
|
284
|
+
borderColor: x = "border-gray-200",
|
|
285
|
+
darkBorderColor: n = "dark:border-gray-700",
|
|
286
|
+
backgroundColor: c = "bg-gray-100",
|
|
287
|
+
darkBackgroundColor: g = "dark:bg-gray-800",
|
|
288
|
+
loading: f = "lazy"
|
|
289
289
|
}) => {
|
|
290
|
-
const
|
|
290
|
+
const d = {
|
|
291
291
|
sm: "h-8 w-8",
|
|
292
292
|
md: "h-12 w-12",
|
|
293
293
|
lg: "h-16 w-16",
|
|
294
294
|
xl: "h-32 w-32"
|
|
295
|
-
},
|
|
295
|
+
}, m = s === "contain" ? "object-contain" : "object-cover", u = `border ${x} ${n}`, h = `${c} ${g}`;
|
|
296
296
|
return /* @__PURE__ */ e.jsx("div", { className: `
|
|
297
297
|
ds-avatar relative rounded-full overflow-hidden flex-shrink-0
|
|
298
|
-
${
|
|
299
|
-
${
|
|
300
|
-
${
|
|
301
|
-
${
|
|
302
|
-
${
|
|
298
|
+
${d[i]}
|
|
299
|
+
${h}
|
|
300
|
+
${u}
|
|
301
|
+
${a.container || ""}
|
|
302
|
+
${t}
|
|
303
303
|
`, children: /* @__PURE__ */ e.jsx(
|
|
304
304
|
"img",
|
|
305
305
|
{
|
|
306
306
|
src: o,
|
|
307
|
-
alt:
|
|
308
|
-
loading:
|
|
307
|
+
alt: l,
|
|
308
|
+
loading: f,
|
|
309
309
|
decoding: "async",
|
|
310
310
|
className: `
|
|
311
311
|
w-full h-full
|
|
312
|
-
${
|
|
313
|
-
${
|
|
312
|
+
${m}
|
|
313
|
+
${a.image || ""}
|
|
314
314
|
`
|
|
315
315
|
}
|
|
316
316
|
) });
|
|
317
|
-
},
|
|
317
|
+
}, te = ({
|
|
318
318
|
label: o,
|
|
319
|
-
variant:
|
|
320
|
-
customStyles:
|
|
319
|
+
variant: l = "primary",
|
|
320
|
+
customStyles: i = {},
|
|
321
321
|
className: s = "",
|
|
322
|
-
endIcon:
|
|
322
|
+
endIcon: a,
|
|
323
323
|
// Default Colors
|
|
324
|
-
primaryColor:
|
|
325
|
-
darkPrimaryColor:
|
|
326
|
-
secondaryColor:
|
|
327
|
-
darkSecondaryColor:
|
|
328
|
-
outlineColor:
|
|
329
|
-
darkOutlineColor:
|
|
330
|
-
successColor:
|
|
331
|
-
darkSuccessColor:
|
|
324
|
+
primaryColor: t = "bg-blue-100 text-blue-800",
|
|
325
|
+
darkPrimaryColor: x = "dark:bg-blue-900/50 dark:text-blue-200",
|
|
326
|
+
secondaryColor: n = "bg-gray-100 text-gray-800",
|
|
327
|
+
darkSecondaryColor: c = "dark:bg-gray-700 dark:text-gray-300",
|
|
328
|
+
outlineColor: g = "border border-gray-300 text-gray-600 bg-transparent",
|
|
329
|
+
darkOutlineColor: f = "dark:border-gray-600 dark:text-gray-400",
|
|
330
|
+
successColor: d = "bg-green-100 text-green-800",
|
|
331
|
+
darkSuccessColor: m = "dark:bg-green-900/50 dark:text-green-200"
|
|
332
332
|
}) => {
|
|
333
|
-
const
|
|
334
|
-
primary: `${
|
|
335
|
-
secondary: `${
|
|
336
|
-
outline: `${
|
|
337
|
-
success: `${
|
|
333
|
+
const u = "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium transition-colors gap-1", h = {
|
|
334
|
+
primary: `${t} ${x}`,
|
|
335
|
+
secondary: `${n} ${c}`,
|
|
336
|
+
outline: `${g} ${f}`,
|
|
337
|
+
success: `${d} ${m}`
|
|
338
338
|
};
|
|
339
339
|
return /* @__PURE__ */ e.jsxs("span", { className: `
|
|
340
340
|
ds-badge
|
|
341
|
-
${
|
|
342
|
-
${
|
|
343
|
-
${
|
|
341
|
+
${u}
|
|
342
|
+
${h[l]}
|
|
343
|
+
${i.container || ""}
|
|
344
344
|
${s}
|
|
345
345
|
`, children: [
|
|
346
|
-
/* @__PURE__ */ e.jsx("span", { className:
|
|
347
|
-
|
|
346
|
+
/* @__PURE__ */ e.jsx("span", { className: i.label || "", children: o }),
|
|
347
|
+
a && /* @__PURE__ */ e.jsx("span", { className: "flex items-center", children: a })
|
|
348
348
|
] });
|
|
349
|
-
},
|
|
349
|
+
}, O = ({
|
|
350
350
|
label: o,
|
|
351
|
-
variant:
|
|
352
|
-
size:
|
|
351
|
+
variant: l = "primary",
|
|
352
|
+
size: i = "medium",
|
|
353
353
|
onClick: s,
|
|
354
|
-
className:
|
|
355
|
-
customStyles:
|
|
356
|
-
href:
|
|
357
|
-
target:
|
|
354
|
+
className: a = "",
|
|
355
|
+
customStyles: t = {},
|
|
356
|
+
href: x,
|
|
357
|
+
target: n,
|
|
358
358
|
// Default Colors
|
|
359
|
-
primaryColor:
|
|
360
|
-
primaryHoverColor:
|
|
361
|
-
darkPrimaryColor:
|
|
362
|
-
darkPrimaryHoverColor:
|
|
363
|
-
secondaryColor:
|
|
364
|
-
secondaryHoverColor:
|
|
365
|
-
darkSecondaryColor:
|
|
366
|
-
darkSecondaryHoverColor:
|
|
367
|
-
outlineColor:
|
|
368
|
-
outlineHoverColor:
|
|
359
|
+
primaryColor: c = "bg-blue-600",
|
|
360
|
+
primaryHoverColor: g = "hover:bg-blue-700",
|
|
361
|
+
darkPrimaryColor: f = "dark:bg-blue-600",
|
|
362
|
+
darkPrimaryHoverColor: d = "dark:hover:bg-blue-500",
|
|
363
|
+
secondaryColor: m = "bg-gray-100",
|
|
364
|
+
secondaryHoverColor: u = "hover:bg-gray-200",
|
|
365
|
+
darkSecondaryColor: h = "dark:bg-gray-800",
|
|
366
|
+
darkSecondaryHoverColor: p = "dark:hover:bg-gray-700",
|
|
367
|
+
outlineColor: v = "text-blue-600 border-blue-600",
|
|
368
|
+
outlineHoverColor: N = "hover:bg-blue-50",
|
|
369
369
|
darkOutlineColor: k = "dark:text-blue-400 dark:border-blue-400",
|
|
370
|
-
darkOutlineHoverColor:
|
|
370
|
+
darkOutlineHoverColor: R = "dark:hover:bg-blue-950",
|
|
371
|
+
ghostColor: T = "text-gray-600 bg-transparent",
|
|
372
|
+
ghostHoverColor: _ = "hover:bg-gray-100",
|
|
373
|
+
darkGhostColor: w = "dark:text-gray-300",
|
|
374
|
+
darkGhostHoverColor: E = "dark:hover:bg-gray-800"
|
|
371
375
|
}) => {
|
|
372
|
-
const
|
|
373
|
-
primary: `${
|
|
374
|
-
secondary: `${
|
|
375
|
-
outline: `bg-transparent ${
|
|
376
|
-
|
|
376
|
+
const Y = "relative group inline-flex justify-center items-center font-bold rounded-lg cursor-pointer transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 no-underline", S = {
|
|
377
|
+
primary: `${c} text-white ${g} focus:ring-blue-500 border-2 border-transparent ${f} ${d}`,
|
|
378
|
+
secondary: `${m} text-gray-800 ${u} focus:ring-gray-500 border-2 border-transparent ${h} dark:text-gray-100 ${p}`,
|
|
379
|
+
outline: `bg-transparent ${v} border-2 ${N} focus:ring-blue-500 ${k} ${R}`,
|
|
380
|
+
ghost: `${T} border-2 border-transparent ${_} focus:ring-gray-500 ${w} ${E}`
|
|
381
|
+
}, F = {
|
|
377
382
|
small: "px-3 py-1.5 text-sm",
|
|
378
383
|
medium: "px-5 py-2.5 text-base",
|
|
379
384
|
large: "px-8 py-3.5 text-lg"
|
|
380
|
-
},
|
|
381
|
-
return
|
|
385
|
+
}, L = `${Y} ${S[l]} ${F[i]} ${t.container || ""} ${a}`, A = /* @__PURE__ */ e.jsx("span", { className: `relative z-10 flex items-center justify-center gap-2 ${t.label || ""}`, children: o });
|
|
386
|
+
return x ? /* @__PURE__ */ e.jsx(
|
|
382
387
|
"a",
|
|
383
388
|
{
|
|
384
|
-
href:
|
|
385
|
-
className:
|
|
386
|
-
target:
|
|
387
|
-
rel:
|
|
389
|
+
href: x,
|
|
390
|
+
className: L,
|
|
391
|
+
target: n,
|
|
392
|
+
rel: n === "_blank" ? "noopener noreferrer" : void 0,
|
|
388
393
|
onClick: s,
|
|
389
|
-
children:
|
|
394
|
+
children: A
|
|
390
395
|
}
|
|
391
396
|
) : /* @__PURE__ */ e.jsx(
|
|
392
397
|
"button",
|
|
393
398
|
{
|
|
394
399
|
type: "button",
|
|
395
|
-
className:
|
|
400
|
+
className: L,
|
|
396
401
|
onClick: s,
|
|
397
|
-
children:
|
|
402
|
+
children: A
|
|
398
403
|
}
|
|
399
404
|
);
|
|
400
|
-
},
|
|
405
|
+
}, xe = le(({
|
|
401
406
|
label: o,
|
|
402
|
-
error:
|
|
403
|
-
className:
|
|
407
|
+
error: l,
|
|
408
|
+
className: i,
|
|
404
409
|
customStyles: s = {},
|
|
405
|
-
startIcon:
|
|
406
|
-
endIcon:
|
|
410
|
+
startIcon: a,
|
|
411
|
+
endIcon: t,
|
|
407
412
|
// Default Colors
|
|
408
|
-
labelColor:
|
|
409
|
-
darkLabelColor:
|
|
410
|
-
inputBgColor:
|
|
411
|
-
darkInputBgColor:
|
|
412
|
-
inputBorderColor:
|
|
413
|
-
darkInputBorderColor:
|
|
414
|
-
inputTextColor:
|
|
415
|
-
darkInputTextColor:
|
|
416
|
-
focusRingColor:
|
|
417
|
-
errorBorderColor:
|
|
418
|
-
darkErrorBorderColor:
|
|
419
|
-
errorTextColor:
|
|
413
|
+
labelColor: x = "text-gray-700",
|
|
414
|
+
darkLabelColor: n = "dark:text-gray-200",
|
|
415
|
+
inputBgColor: c = "bg-white",
|
|
416
|
+
darkInputBgColor: g = "dark:bg-gray-800",
|
|
417
|
+
inputBorderColor: f = "border-gray-300",
|
|
418
|
+
darkInputBorderColor: d = "dark:border-gray-600",
|
|
419
|
+
inputTextColor: m = "text-gray-900",
|
|
420
|
+
darkInputTextColor: u = "dark:text-white",
|
|
421
|
+
focusRingColor: h = "focus:ring-blue-500",
|
|
422
|
+
errorBorderColor: p = "border-red-500",
|
|
423
|
+
darkErrorBorderColor: v = "dark:border-red-500",
|
|
424
|
+
errorTextColor: N = "text-red-500",
|
|
420
425
|
darkErrorTextColor: k = "dark:text-red-400",
|
|
421
|
-
...
|
|
422
|
-
},
|
|
423
|
-
const
|
|
426
|
+
...R
|
|
427
|
+
}, T) => {
|
|
428
|
+
const _ = `
|
|
424
429
|
w-full py-2 border rounded-lg shadow-sm focus:outline-none focus:ring-2 transition-all
|
|
425
|
-
${
|
|
426
|
-
${
|
|
427
|
-
${
|
|
428
|
-
${
|
|
429
|
-
${
|
|
430
|
-
`,
|
|
431
|
-
return /* @__PURE__ */ e.jsxs("div", { className: `w-full ${s.container || ""} ${
|
|
432
|
-
o && /* @__PURE__ */ e.jsx("label", { className: `block text-sm font-medium ${
|
|
430
|
+
${a ? "pl-10" : "px-3"}
|
|
431
|
+
${t ? "pr-10" : "px-3"}
|
|
432
|
+
${c} ${g}
|
|
433
|
+
${m} ${u}
|
|
434
|
+
${h}
|
|
435
|
+
`, w = l ? `${p} focus:ring-red-500 ${v}` : `${f} ${d}`;
|
|
436
|
+
return /* @__PURE__ */ e.jsxs("div", { className: `w-full ${s.container || ""} ${i}`, children: [
|
|
437
|
+
o && /* @__PURE__ */ e.jsx("label", { className: `block text-sm font-medium ${x} ${n} mb-1 ${s.label || ""}`, children: o }),
|
|
433
438
|
/* @__PURE__ */ e.jsxs("div", { className: "relative", children: [
|
|
434
|
-
|
|
439
|
+
a && /* @__PURE__ */ e.jsx("div", { className: `absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none ${s.iconContainer || ""}`, children: a }),
|
|
435
440
|
/* @__PURE__ */ e.jsx(
|
|
436
441
|
"input",
|
|
437
442
|
{
|
|
438
|
-
ref:
|
|
443
|
+
ref: T,
|
|
439
444
|
className: `
|
|
440
|
-
${
|
|
441
|
-
${
|
|
445
|
+
${_}
|
|
446
|
+
${w}
|
|
442
447
|
${s.input || ""}
|
|
443
448
|
`,
|
|
444
|
-
...
|
|
449
|
+
...R
|
|
445
450
|
}
|
|
446
451
|
),
|
|
447
|
-
|
|
452
|
+
t && /* @__PURE__ */ e.jsx("div", { className: `absolute inset-y-0 right-0 pr-3 flex items-center ${s.iconContainer || ""}`, children: t })
|
|
448
453
|
] }),
|
|
449
|
-
|
|
454
|
+
l && /* @__PURE__ */ e.jsx("p", { className: `mt-1 text-xs ${N} ${k} ${s.error || ""}`, children: l })
|
|
450
455
|
] });
|
|
451
456
|
});
|
|
452
|
-
|
|
453
|
-
const
|
|
457
|
+
xe.displayName = "BasicInput";
|
|
458
|
+
const se = ({
|
|
454
459
|
isToggled: o,
|
|
455
|
-
onToggle:
|
|
456
|
-
iconOn:
|
|
460
|
+
onToggle: l,
|
|
461
|
+
iconOn: i,
|
|
457
462
|
iconOff: s,
|
|
458
|
-
imageOn:
|
|
459
|
-
imageOff:
|
|
460
|
-
imageFit:
|
|
461
|
-
customStyles:
|
|
462
|
-
className:
|
|
463
|
-
title:
|
|
463
|
+
imageOn: a,
|
|
464
|
+
imageOff: t,
|
|
465
|
+
imageFit: x = "contain",
|
|
466
|
+
customStyles: n = {},
|
|
467
|
+
className: c = "",
|
|
468
|
+
title: g
|
|
464
469
|
}) => {
|
|
465
|
-
const
|
|
466
|
-
const
|
|
467
|
-
return o ?
|
|
470
|
+
const f = `w-6 h-6 ${n.icon || ""}`, d = () => {
|
|
471
|
+
const m = x === "contain" ? "object-contain" : "object-cover";
|
|
472
|
+
return o ? a ? /* @__PURE__ */ e.jsx("img", { src: a, alt: "Toggled On", className: `${f} ${m}` }) : i : t ? /* @__PURE__ */ e.jsx("img", { src: t, alt: "Toggled Off", className: `${f} ${m}` }) : s;
|
|
468
473
|
};
|
|
469
474
|
return /* @__PURE__ */ e.jsx(
|
|
470
475
|
"button",
|
|
471
476
|
{
|
|
472
|
-
onClick:
|
|
473
|
-
title:
|
|
477
|
+
onClick: l,
|
|
478
|
+
title: g,
|
|
474
479
|
className: `
|
|
475
480
|
p-2 rounded-full transition-all duration-300 ease-in-out
|
|
476
481
|
focus:outline-none focus:ring-2 focus:ring-blue-500 hover:rotate-12 hover:scale-110 overflow-hidden
|
|
477
482
|
${o ? "bg-gray-800 text-white hover:bg-gray-700" : "bg-gray-200 text-gray-800 hover:bg-gray-300"}
|
|
478
|
-
${
|
|
479
|
-
${
|
|
483
|
+
${n.container || ""}
|
|
484
|
+
${c}
|
|
480
485
|
`,
|
|
481
|
-
children:
|
|
486
|
+
children: d()
|
|
482
487
|
}
|
|
483
488
|
);
|
|
484
|
-
},
|
|
489
|
+
}, z = ({
|
|
485
490
|
isDark: o,
|
|
486
|
-
onToggle:
|
|
487
|
-
iconSun:
|
|
491
|
+
onToggle: l,
|
|
492
|
+
iconSun: i,
|
|
488
493
|
iconMoon: s,
|
|
489
|
-
sunImage:
|
|
490
|
-
moonImage:
|
|
491
|
-
customStyles:
|
|
492
|
-
...
|
|
494
|
+
sunImage: a,
|
|
495
|
+
moonImage: t,
|
|
496
|
+
customStyles: x = {},
|
|
497
|
+
...n
|
|
493
498
|
}) => {
|
|
494
|
-
const [
|
|
495
|
-
|
|
496
|
-
const
|
|
497
|
-
const
|
|
498
|
-
|
|
499
|
+
const [c, g] = C(!1);
|
|
500
|
+
U(() => {
|
|
501
|
+
const p = () => {
|
|
502
|
+
const N = document.documentElement.classList.contains("dark");
|
|
503
|
+
g(N);
|
|
499
504
|
};
|
|
500
|
-
|
|
501
|
-
const
|
|
502
|
-
return
|
|
505
|
+
p();
|
|
506
|
+
const v = new MutationObserver(p);
|
|
507
|
+
return v.observe(document.documentElement, { attributes: !0, attributeFilter: ["class"] }), () => v.disconnect();
|
|
503
508
|
}, []);
|
|
504
|
-
const
|
|
505
|
-
const
|
|
506
|
-
|
|
507
|
-
},
|
|
509
|
+
const f = () => {
|
|
510
|
+
const p = document.documentElement;
|
|
511
|
+
p.classList.contains("dark") ? (p.classList.remove("dark"), localStorage.setItem("theme", "light")) : (p.classList.add("dark"), localStorage.setItem("theme", "dark")), l && l();
|
|
512
|
+
}, d = o !== void 0 ? o : c, m = `w-6 h-6 ${x.icon || ""}`, u = /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: m, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z" }) }), h = /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: m, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" }) });
|
|
508
513
|
return /* @__PURE__ */ e.jsx(
|
|
509
|
-
|
|
514
|
+
se,
|
|
510
515
|
{
|
|
511
|
-
...
|
|
512
|
-
isToggled:
|
|
513
|
-
onToggle:
|
|
514
|
-
iconOn:
|
|
515
|
-
iconOff: s ||
|
|
516
|
-
imageOn:
|
|
517
|
-
imageOff:
|
|
518
|
-
customStyles:
|
|
519
|
-
title:
|
|
516
|
+
...n,
|
|
517
|
+
isToggled: d,
|
|
518
|
+
onToggle: f,
|
|
519
|
+
iconOn: i || u,
|
|
520
|
+
iconOff: s || h,
|
|
521
|
+
imageOn: a,
|
|
522
|
+
imageOff: t,
|
|
523
|
+
customStyles: x,
|
|
524
|
+
title: n.title || (d ? "Switch to light mode" : "Switch to dark mode")
|
|
520
525
|
}
|
|
521
526
|
);
|
|
522
|
-
},
|
|
527
|
+
}, W = ({
|
|
528
|
+
initialLanguage: o = "en",
|
|
529
|
+
onLanguageChange: l,
|
|
530
|
+
className: i = "",
|
|
531
|
+
customStyles: s = {},
|
|
532
|
+
englishColor: a = "!bg-transparent hover:!bg-gray-100 dark:hover:!bg-gray-800",
|
|
533
|
+
englishBorderColor: t = "border-2 border-transparent",
|
|
534
|
+
englishTextColor: x = "!text-gray-600 dark:!text-gray-300",
|
|
535
|
+
spanishColor: n = "!bg-transparent hover:!bg-gray-100 dark:hover:!bg-gray-800",
|
|
536
|
+
spanishBorderColor: c = "border-2 border-transparent",
|
|
537
|
+
spanishTextColor: g = "!text-gray-600 dark:!text-gray-300",
|
|
538
|
+
isDark: f = !1
|
|
539
|
+
}) => {
|
|
540
|
+
const [d, m] = C(o === "es"), u = () => {
|
|
541
|
+
const p = !d;
|
|
542
|
+
m(p), l && l(p ? "es" : "en");
|
|
543
|
+
}, h = d ? `${n} ${g} ${c}` : `${a} ${x} ${t}`;
|
|
544
|
+
return /* @__PURE__ */ e.jsx("div", { className: f ? "dark" : "", children: /* @__PURE__ */ e.jsx(
|
|
545
|
+
se,
|
|
546
|
+
{
|
|
547
|
+
isToggled: d,
|
|
548
|
+
onToggle: u,
|
|
549
|
+
className: i,
|
|
550
|
+
title: d ? "Switch to English" : "Cambiar a Español",
|
|
551
|
+
iconOn: /* @__PURE__ */ e.jsx("span", { className: "font-bold text-xs", children: "ES" }),
|
|
552
|
+
iconOff: /* @__PURE__ */ e.jsx("span", { className: "font-bold text-xs", children: "EN" }),
|
|
553
|
+
customStyles: {
|
|
554
|
+
container: `${h} ${s.container || ""}`,
|
|
555
|
+
icon: `w-6 h-6 flex items-center justify-center ${s.icon || ""}`
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
) });
|
|
559
|
+
}, ge = ({
|
|
560
|
+
label: o,
|
|
561
|
+
value: l,
|
|
562
|
+
onChange: i,
|
|
563
|
+
min: s = 0,
|
|
564
|
+
max: a = 100,
|
|
565
|
+
step: t = 1,
|
|
566
|
+
className: x = "",
|
|
567
|
+
customStyles: n = {},
|
|
568
|
+
disabled: c,
|
|
569
|
+
...g
|
|
570
|
+
}) => /* @__PURE__ */ e.jsxs("div", { className: `flex flex-col gap-2 ${n.container || ""} ${x}`, children: [
|
|
571
|
+
o && /* @__PURE__ */ e.jsxs("div", { className: "flex justify-between items-center", children: [
|
|
572
|
+
/* @__PURE__ */ e.jsx("label", { className: `text-sm font-medium text-gray-700 dark:text-gray-300 ${n.label || ""}`, children: o }),
|
|
573
|
+
/* @__PURE__ */ e.jsx("span", { className: "text-xs text-gray-500 font-mono", children: l })
|
|
574
|
+
] }),
|
|
575
|
+
/* @__PURE__ */ e.jsx(
|
|
576
|
+
"input",
|
|
577
|
+
{
|
|
578
|
+
type: "range",
|
|
579
|
+
min: s,
|
|
580
|
+
max: a,
|
|
581
|
+
step: t,
|
|
582
|
+
value: l,
|
|
583
|
+
onChange: (f) => i(Number(f.target.value)),
|
|
584
|
+
disabled: c,
|
|
585
|
+
className: `
|
|
586
|
+
w-full h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer dark:bg-gray-700
|
|
587
|
+
accent-blue-600 dark:accent-blue-500
|
|
588
|
+
disabled:opacity-50 disabled:cursor-not-allowed
|
|
589
|
+
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900
|
|
590
|
+
${n.input || ""}
|
|
591
|
+
`,
|
|
592
|
+
...g
|
|
593
|
+
}
|
|
594
|
+
)
|
|
595
|
+
] }), Ne = (o) => /* @__PURE__ */ e.jsx(ge, { ...o }), fe = ({
|
|
523
596
|
title: o,
|
|
524
|
-
description:
|
|
525
|
-
image:
|
|
597
|
+
description: l,
|
|
598
|
+
image: i,
|
|
526
599
|
tags: s = [],
|
|
527
|
-
orientation:
|
|
528
|
-
actionLabel:
|
|
529
|
-
projectUrl:
|
|
530
|
-
linkTarget:
|
|
531
|
-
onViewProject:
|
|
532
|
-
customStyles:
|
|
533
|
-
className:
|
|
600
|
+
orientation: a = "vertical",
|
|
601
|
+
actionLabel: t = "View Project",
|
|
602
|
+
projectUrl: x,
|
|
603
|
+
linkTarget: n = "_self",
|
|
604
|
+
onViewProject: c,
|
|
605
|
+
customStyles: g = {},
|
|
606
|
+
className: f = ""
|
|
534
607
|
}) => {
|
|
535
|
-
const
|
|
608
|
+
const d = a === "horizontal";
|
|
536
609
|
return /* @__PURE__ */ e.jsxs("div", { className: `
|
|
537
610
|
/* 1. IDENTIFIER CLASS */
|
|
538
611
|
ds-card
|
|
@@ -540,7 +613,7 @@ const de = ({
|
|
|
540
613
|
/* 2. BASE STRUCTURE */
|
|
541
614
|
group w-full rounded-xl overflow-hidden border transition-all duration-300
|
|
542
615
|
/* Switch layout based on orientation prop */
|
|
543
|
-
${
|
|
616
|
+
${d ? "flex flex-col md:flex-row" : "flex flex-col"}
|
|
544
617
|
|
|
545
618
|
/* 3. LIGHT MODE (Default) */
|
|
546
619
|
/* White background, gray border, black shadow on hover */
|
|
@@ -564,18 +637,18 @@ const de = ({
|
|
|
564
637
|
dark:hover:!shadow-[0_20px_25px_-5px_rgba(255,255,255,0.30)]
|
|
565
638
|
|
|
566
639
|
/* 5. EXTERNAL INJECTIONS */
|
|
567
|
-
${
|
|
568
|
-
${
|
|
640
|
+
${g.container || ""}
|
|
641
|
+
${f}
|
|
569
642
|
`, children: [
|
|
570
643
|
/* @__PURE__ */ e.jsxs("div", { className: `
|
|
571
644
|
ds-card-image overflow-hidden relative
|
|
572
|
-
${
|
|
573
|
-
${
|
|
645
|
+
${d ? "w-full h-48 md:w-2/5 md:h-auto" : "w-full h-48"}
|
|
646
|
+
${g.imageWrapper || ""}
|
|
574
647
|
`, children: [
|
|
575
648
|
/* @__PURE__ */ e.jsx(
|
|
576
649
|
"img",
|
|
577
650
|
{
|
|
578
|
-
src:
|
|
651
|
+
src: i,
|
|
579
652
|
alt: o,
|
|
580
653
|
loading: "lazy",
|
|
581
654
|
decoding: "async",
|
|
@@ -584,25 +657,25 @@ const de = ({
|
|
|
584
657
|
),
|
|
585
658
|
/* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 bg-transparent dark:bg-black/20 transition-colors pointer-events-none" })
|
|
586
659
|
] }),
|
|
587
|
-
/* @__PURE__ */ e.jsxs("div", { className: `ds-card-content p-6 flex flex-col justify-between flex-1 ${
|
|
660
|
+
/* @__PURE__ */ e.jsxs("div", { className: `ds-card-content p-6 flex flex-col justify-between flex-1 ${g.content || ""}`, children: [
|
|
588
661
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
589
662
|
/* @__PURE__ */ e.jsx("h3", { className: `
|
|
590
663
|
ds-card-title text-2xl font-bold mb-3 transition-colors text-gray-900 dark:text-white
|
|
591
|
-
${
|
|
664
|
+
${g.title || ""}
|
|
592
665
|
`, children: o }),
|
|
593
666
|
/* @__PURE__ */ e.jsx("p", { className: `
|
|
594
667
|
ds-card-description mb-4 line-clamp-3 leading-relaxed transition-colors text-gray-600 dark:text-gray-300
|
|
595
|
-
${
|
|
596
|
-
`, children:
|
|
597
|
-
/* @__PURE__ */ e.jsx("div", { className: `ds-card-tags flex flex-wrap gap-2 mb-6 ${
|
|
668
|
+
${g.description || ""}
|
|
669
|
+
`, children: l }),
|
|
670
|
+
/* @__PURE__ */ e.jsx("div", { className: `ds-card-tags flex flex-wrap gap-2 mb-6 ${g.tagsContainer || ""}`, children: s.map((m) => /* @__PURE__ */ e.jsx(te, { label: m, variant: "secondary" }, m)) })
|
|
598
671
|
] }),
|
|
599
672
|
/* @__PURE__ */ e.jsx("div", { className: "ds-card-actions flex justify-start mt-auto", children: /* @__PURE__ */ e.jsx(
|
|
600
|
-
|
|
673
|
+
O,
|
|
601
674
|
{
|
|
602
|
-
label:
|
|
603
|
-
onClick:
|
|
604
|
-
href:
|
|
605
|
-
target:
|
|
675
|
+
label: t,
|
|
676
|
+
onClick: c,
|
|
677
|
+
href: x,
|
|
678
|
+
target: n,
|
|
606
679
|
size: "medium",
|
|
607
680
|
variant: "primary"
|
|
608
681
|
}
|
|
@@ -610,146 +683,172 @@ const de = ({
|
|
|
610
683
|
] })
|
|
611
684
|
] });
|
|
612
685
|
}, me = ({
|
|
686
|
+
children: o,
|
|
687
|
+
title: l,
|
|
688
|
+
actions: i,
|
|
689
|
+
className: s = "",
|
|
690
|
+
customStyles: a = {}
|
|
691
|
+
}) => /* @__PURE__ */ e.jsxs(
|
|
692
|
+
"div",
|
|
693
|
+
{
|
|
694
|
+
className: `
|
|
695
|
+
bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700
|
|
696
|
+
rounded-xl shadow-sm overflow-hidden
|
|
697
|
+
${a.container || ""} ${s}
|
|
698
|
+
`,
|
|
699
|
+
children: [
|
|
700
|
+
(l || i) && /* @__PURE__ */ e.jsxs("div", { className: `
|
|
701
|
+
px-4 py-3 border-b border-gray-100 dark:border-gray-700
|
|
702
|
+
flex justify-between items-center bg-gray-50/50 dark:bg-gray-900/50
|
|
703
|
+
${a.header || ""}
|
|
704
|
+
`, children: [
|
|
705
|
+
l && /* @__PURE__ */ e.jsx("h3", { className: `text-sm font-semibold text-gray-900 dark:text-gray-100 ${a.title || ""}`, children: l }),
|
|
706
|
+
i && /* @__PURE__ */ e.jsx("div", { className: `flex items-center gap-2 ${a.actions || ""}`, children: i })
|
|
707
|
+
] }),
|
|
708
|
+
/* @__PURE__ */ e.jsx("div", { className: `p-4 ${a.content || ""}`, children: o })
|
|
709
|
+
]
|
|
710
|
+
}
|
|
711
|
+
), ke = (o) => /* @__PURE__ */ e.jsx(me, { ...o }), he = ({
|
|
613
712
|
title: o = "Featured Content",
|
|
614
|
-
items:
|
|
615
|
-
layout:
|
|
713
|
+
items: l,
|
|
714
|
+
layout: i = "grid",
|
|
616
715
|
itemButtonLabel: s = "View Details",
|
|
617
|
-
onItemClick:
|
|
618
|
-
customStyles:
|
|
716
|
+
onItemClick: a,
|
|
717
|
+
customStyles: t = {},
|
|
619
718
|
// Default Colors
|
|
620
|
-
backgroundColor:
|
|
621
|
-
darkBackgroundColor:
|
|
622
|
-
titleColor:
|
|
623
|
-
darkTitleColor:
|
|
719
|
+
backgroundColor: x = "bg-gray-50",
|
|
720
|
+
darkBackgroundColor: n = "dark:bg-gray-900",
|
|
721
|
+
titleColor: c = "text-gray-900",
|
|
722
|
+
darkTitleColor: g = "dark:text-white"
|
|
624
723
|
}) => {
|
|
625
|
-
const
|
|
724
|
+
const f = i === "grid" ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8" : "flex flex-col gap-12 max-w-4xl mx-auto";
|
|
626
725
|
return /* @__PURE__ */ e.jsx("section", { className: `
|
|
627
726
|
py-16 px-4 transition-colors duration-300
|
|
628
|
-
${
|
|
629
|
-
${
|
|
727
|
+
${x} ${n}
|
|
728
|
+
${t.container || ""}
|
|
630
729
|
`, children: /* @__PURE__ */ e.jsxs("div", { className: "max-w-7xl mx-auto", children: [
|
|
631
730
|
o && /* @__PURE__ */ e.jsxs("div", { className: "mb-12 text-start", children: [
|
|
632
731
|
/* @__PURE__ */ e.jsx("h2", { className: `
|
|
633
732
|
text-4xl font-extrabold mb-4 tracking-tight transition-colors
|
|
634
|
-
${
|
|
635
|
-
${
|
|
733
|
+
${c} ${g}
|
|
734
|
+
${t.title || ""}
|
|
636
735
|
`, children: o }),
|
|
637
736
|
/* @__PURE__ */ e.jsx("div", { className: "h-1.5 w-24 bg-blue-600 mx-auto rounded-full" })
|
|
638
737
|
] }),
|
|
639
|
-
/* @__PURE__ */ e.jsx("div", { className:
|
|
640
|
-
|
|
738
|
+
/* @__PURE__ */ e.jsx("div", { className: f, children: l.map((d) => /* @__PURE__ */ e.jsx(
|
|
739
|
+
fe,
|
|
641
740
|
{
|
|
642
|
-
title:
|
|
643
|
-
description:
|
|
644
|
-
image:
|
|
645
|
-
tags:
|
|
646
|
-
projectUrl:
|
|
647
|
-
orientation:
|
|
741
|
+
title: d.title,
|
|
742
|
+
description: d.description,
|
|
743
|
+
image: d.image,
|
|
744
|
+
tags: d.tags,
|
|
745
|
+
projectUrl: d.url,
|
|
746
|
+
orientation: i === "list" ? "horizontal" : "vertical",
|
|
648
747
|
actionLabel: s,
|
|
649
|
-
onViewProject: () =>
|
|
748
|
+
onViewProject: () => a == null ? void 0 : a(d.id)
|
|
650
749
|
},
|
|
651
|
-
|
|
750
|
+
d.id
|
|
652
751
|
)) })
|
|
653
752
|
] }) });
|
|
654
|
-
},
|
|
753
|
+
}, be = ({
|
|
655
754
|
copyrightOwner: o,
|
|
656
|
-
copyrightText:
|
|
657
|
-
socialLinks:
|
|
755
|
+
copyrightText: l = `© ${(/* @__PURE__ */ new Date()).getFullYear()} All rights reserved.`,
|
|
756
|
+
socialLinks: i,
|
|
658
757
|
secondaryLinks: s = [],
|
|
659
|
-
customStyles:
|
|
758
|
+
customStyles: a = {},
|
|
660
759
|
// Default Colors
|
|
661
|
-
backgroundColor:
|
|
662
|
-
darkBackgroundColor:
|
|
663
|
-
borderColor:
|
|
664
|
-
darkBorderColor:
|
|
665
|
-
textColor:
|
|
666
|
-
darkTextColor:
|
|
667
|
-
linksColor:
|
|
668
|
-
linksHoverColor:
|
|
760
|
+
backgroundColor: t = "bg-gray-900",
|
|
761
|
+
darkBackgroundColor: x = "dark:bg-black",
|
|
762
|
+
borderColor: n = "border-gray-800",
|
|
763
|
+
darkBorderColor: c = "dark:border-gray-800",
|
|
764
|
+
textColor: g = "text-white",
|
|
765
|
+
darkTextColor: f = "dark:text-white",
|
|
766
|
+
linksColor: d = "text-gray-400",
|
|
767
|
+
linksHoverColor: m = "hover:text-white"
|
|
669
768
|
}) => /* @__PURE__ */ e.jsx("footer", { className: `
|
|
670
769
|
py-12 border-t transition-colors duration-300
|
|
671
|
-
${
|
|
672
|
-
${
|
|
673
|
-
${
|
|
770
|
+
${t} ${x}
|
|
771
|
+
${n} ${c}
|
|
772
|
+
${a.container || ""}
|
|
674
773
|
`, children: /* @__PURE__ */ e.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col md:flex-row justify-between items-center gap-6", children: [
|
|
675
|
-
/* @__PURE__ */ e.jsxs("div", { className: `text-center md:text-left ${
|
|
676
|
-
/* @__PURE__ */ e.jsx("p", { className: `text-lg font-bold ${
|
|
677
|
-
/* @__PURE__ */ e.jsx("p", { className: `text-sm mt-1 ${
|
|
774
|
+
/* @__PURE__ */ e.jsxs("div", { className: `text-center md:text-left ${a.text || ""}`, children: [
|
|
775
|
+
/* @__PURE__ */ e.jsx("p", { className: `text-lg font-bold ${g} ${f}`, children: o }),
|
|
776
|
+
/* @__PURE__ */ e.jsx("p", { className: `text-sm mt-1 ${d} opacity-80`, children: l })
|
|
678
777
|
] }),
|
|
679
|
-
s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "flex gap-6 flex-wrap justify-center", children: s.map((
|
|
778
|
+
s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "flex gap-6 flex-wrap justify-center", children: s.map((u) => /* @__PURE__ */ e.jsx(
|
|
680
779
|
"a",
|
|
681
780
|
{
|
|
682
|
-
href:
|
|
781
|
+
href: u.href,
|
|
683
782
|
className: `
|
|
684
783
|
text-sm transition-colors
|
|
685
|
-
${
|
|
686
|
-
${
|
|
784
|
+
${d} ${m}
|
|
785
|
+
${a.link || ""}
|
|
687
786
|
`,
|
|
688
|
-
children:
|
|
787
|
+
children: u.label
|
|
689
788
|
},
|
|
690
|
-
|
|
789
|
+
u.label
|
|
691
790
|
)) }),
|
|
692
|
-
/* @__PURE__ */ e.jsx("div", { className: "flex space-x-6", children:
|
|
791
|
+
/* @__PURE__ */ e.jsx("div", { className: "flex space-x-6", children: i.map((u) => /* @__PURE__ */ e.jsx(
|
|
693
792
|
"a",
|
|
694
793
|
{
|
|
695
|
-
href:
|
|
794
|
+
href: u.url,
|
|
696
795
|
target: "_blank",
|
|
697
796
|
rel: "noopener noreferrer",
|
|
698
797
|
className: `
|
|
699
798
|
transition-colors text-sm font-medium uppercase tracking-wider
|
|
700
|
-
${
|
|
701
|
-
${
|
|
799
|
+
${d} ${m}
|
|
800
|
+
${a.link || ""}
|
|
702
801
|
`,
|
|
703
|
-
children:
|
|
802
|
+
children: u.platform
|
|
704
803
|
},
|
|
705
|
-
|
|
804
|
+
u.platform
|
|
706
805
|
)) })
|
|
707
|
-
] }) }) }),
|
|
806
|
+
] }) }) }), pe = ({
|
|
708
807
|
greeting: o = "Hello",
|
|
709
|
-
title:
|
|
710
|
-
subtitle:
|
|
808
|
+
title: l,
|
|
809
|
+
subtitle: i,
|
|
711
810
|
imageUrl: s,
|
|
712
|
-
actions:
|
|
713
|
-
customStyles:
|
|
811
|
+
actions: a = [],
|
|
812
|
+
customStyles: t = {},
|
|
714
813
|
// Default Colors
|
|
715
|
-
backgroundColor:
|
|
716
|
-
darkBackgroundColor:
|
|
717
|
-
greetingColor:
|
|
718
|
-
darkGreetingColor:
|
|
719
|
-
titleColor:
|
|
720
|
-
darkTitleColor:
|
|
721
|
-
subtitleColor:
|
|
722
|
-
darkSubtitleColor:
|
|
814
|
+
backgroundColor: x = "bg-white",
|
|
815
|
+
darkBackgroundColor: n = "dark:bg-gray-900",
|
|
816
|
+
greetingColor: c = "text-blue-600",
|
|
817
|
+
darkGreetingColor: g = "dark:text-blue-400",
|
|
818
|
+
titleColor: f = "text-gray-900",
|
|
819
|
+
darkTitleColor: d = "dark:text-white",
|
|
820
|
+
subtitleColor: m = "text-gray-500",
|
|
821
|
+
darkSubtitleColor: u = "dark:text-gray-400"
|
|
723
822
|
}) => {
|
|
724
|
-
const
|
|
823
|
+
const h = s ? "flex flex-col lg:flex-row items-center gap-12 lg:gap-16" : "flex flex-col items-center text-center max-w-4xl mx-auto", p = s ? "flex-1 text-center lg:text-left" : "w-full", v = s ? "justify-center lg:justify-start" : "justify-center";
|
|
725
824
|
return /* @__PURE__ */ e.jsx("section", { className: `
|
|
726
825
|
relative pt-32 pb-16 lg:pt-40 lg:pb-24 overflow-hidden transition-colors duration-300
|
|
727
|
-
${
|
|
728
|
-
${
|
|
729
|
-
`, children: /* @__PURE__ */ e.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ e.jsxs("div", { className:
|
|
730
|
-
/* @__PURE__ */ e.jsxs("div", { className: `${
|
|
826
|
+
${x} ${n}
|
|
827
|
+
${t.container || ""}
|
|
828
|
+
`, children: /* @__PURE__ */ e.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ e.jsxs("div", { className: h, children: [
|
|
829
|
+
/* @__PURE__ */ e.jsxs("div", { className: `${p} ${t.content || ""}`, children: [
|
|
731
830
|
o && /* @__PURE__ */ e.jsx("p", { className: `
|
|
732
831
|
font-semibold tracking-wide uppercase text-sm mb-4
|
|
733
|
-
${
|
|
832
|
+
${c} ${g}
|
|
734
833
|
`, children: o }),
|
|
735
834
|
/* @__PURE__ */ e.jsx("h1", { className: `
|
|
736
835
|
text-4xl sm:text-5xl lg:text-6xl font-bold leading-tight mb-6 transition-colors
|
|
737
|
-
${
|
|
738
|
-
${
|
|
739
|
-
`, children:
|
|
836
|
+
${f} ${d}
|
|
837
|
+
${t.title || ""}
|
|
838
|
+
`, children: l }),
|
|
740
839
|
/* @__PURE__ */ e.jsx("p", { className: `
|
|
741
840
|
text-lg sm:text-xl mb-8 leading-relaxed transition-colors
|
|
742
|
-
${
|
|
841
|
+
${m} ${u}
|
|
743
842
|
${!s && "mx-auto max-w-2xl"}
|
|
744
|
-
${
|
|
745
|
-
`, children:
|
|
746
|
-
|
|
747
|
-
|
|
843
|
+
${t.subtitle || ""}
|
|
844
|
+
`, children: i }),
|
|
845
|
+
a.length > 0 && /* @__PURE__ */ e.jsx("div", { className: `flex flex-col sm:flex-row gap-4 ${v}`, children: a.map((N, k) => /* @__PURE__ */ e.jsx(
|
|
846
|
+
O,
|
|
748
847
|
{
|
|
749
|
-
label:
|
|
750
|
-
variant:
|
|
848
|
+
label: N.label,
|
|
849
|
+
variant: N.variant || "primary",
|
|
751
850
|
size: "large",
|
|
752
|
-
onClick:
|
|
851
|
+
onClick: N.onClick,
|
|
753
852
|
className: "w-full sm:w-auto"
|
|
754
853
|
},
|
|
755
854
|
k
|
|
@@ -757,7 +856,7 @@ const de = ({
|
|
|
757
856
|
] }),
|
|
758
857
|
s && /* @__PURE__ */ e.jsx("div", { className: `
|
|
759
858
|
flex-1 w-full max-w-md lg:max-w-full relative
|
|
760
|
-
${
|
|
859
|
+
${t.imageWrapper || ""}
|
|
761
860
|
`, children: /* @__PURE__ */ e.jsxs("div", { className: "relative rounded-2xl overflow-hidden shadow-2xl dark:shadow-none dark:border dark:border-gray-800 aspect-[4/3] group", children: [
|
|
762
861
|
/* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 bg-gray-900/5 dark:bg-black/20 group-hover:bg-transparent transition-colors duration-500" }),
|
|
763
862
|
/* @__PURE__ */ e.jsx(
|
|
@@ -771,58 +870,75 @@ const de = ({
|
|
|
771
870
|
)
|
|
772
871
|
] }) })
|
|
773
872
|
] }) }) });
|
|
774
|
-
},
|
|
873
|
+
}, ve = ({
|
|
775
874
|
logo: o = "Marc.Dev",
|
|
776
|
-
isLogoImage:
|
|
777
|
-
links:
|
|
875
|
+
isLogoImage: l = !1,
|
|
876
|
+
links: i,
|
|
778
877
|
actions: s = [],
|
|
779
|
-
customStyles:
|
|
780
|
-
isOpen:
|
|
781
|
-
isScrolled:
|
|
782
|
-
onToggleMenu:
|
|
783
|
-
onLinkClick:
|
|
784
|
-
onLogoClick:
|
|
878
|
+
customStyles: a = {},
|
|
879
|
+
isOpen: t = !1,
|
|
880
|
+
isScrolled: x = !1,
|
|
881
|
+
onToggleMenu: n,
|
|
882
|
+
onLinkClick: c,
|
|
883
|
+
onLogoClick: g,
|
|
884
|
+
enableLanguageToggle: f = !1,
|
|
885
|
+
language: d = "en",
|
|
886
|
+
onLanguageChange: m
|
|
785
887
|
}) => /* @__PURE__ */ e.jsxs(
|
|
786
888
|
"nav",
|
|
787
889
|
{
|
|
788
890
|
className: `
|
|
789
891
|
fixed top-0 left-0 right-0 z-50 transition-all duration-300
|
|
790
892
|
|
|
791
|
-
${
|
|
792
|
-
${
|
|
893
|
+
${x || t ? "bg-white/90 dark:bg-gray-900/90 backdrop-blur-md shadow-sm border-b border-gray-100 dark:border-gray-800" : "bg-transparent"}
|
|
894
|
+
${a.container || ""}
|
|
793
895
|
`,
|
|
794
896
|
children: [
|
|
795
897
|
/* @__PURE__ */ e.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ e.jsxs("div", { className: "flex justify-between items-center h-20", children: [
|
|
796
|
-
/* @__PURE__ */ e.jsx("div", { className: `flex-shrink-0 cursor-pointer flex items-center ${
|
|
898
|
+
/* @__PURE__ */ e.jsx("div", { className: `flex-shrink-0 cursor-pointer flex items-center ${a.logo || ""}`, onClick: g, children: l ? /* @__PURE__ */ e.jsx("img", { src: o, alt: "Logo", className: "h-8 w-auto" }) : /* @__PURE__ */ e.jsx("span", { className: "text-2xl font-bold text-gray-900 dark:text-white tracking-tighter hover:text-blue-600 dark:hover:text-blue-400 transition-colors", children: o }) }),
|
|
797
899
|
/* @__PURE__ */ e.jsxs("div", { className: "hidden md:flex space-x-8 items-center", children: [
|
|
798
|
-
|
|
900
|
+
i.map((u) => /* @__PURE__ */ e.jsx(
|
|
799
901
|
"a",
|
|
800
902
|
{
|
|
801
|
-
href:
|
|
802
|
-
onClick: (
|
|
903
|
+
href: u.href,
|
|
904
|
+
onClick: (h) => c == null ? void 0 : c(h, u.href),
|
|
803
905
|
className: `
|
|
804
906
|
text-sm font-medium transition-colors
|
|
805
907
|
hover:text-blue-600 dark:hover:text-blue-400
|
|
806
|
-
${
|
|
807
|
-
${
|
|
908
|
+
${u.active ? "text-blue-600 dark:text-blue-400" : "text-gray-600 dark:text-gray-300"}
|
|
909
|
+
${a.link || ""}
|
|
808
910
|
`,
|
|
809
|
-
children:
|
|
911
|
+
children: u.label
|
|
810
912
|
},
|
|
811
|
-
|
|
913
|
+
u.label
|
|
812
914
|
)),
|
|
813
915
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-4 pl-6 border-l border-gray-200 dark:border-gray-700", children: [
|
|
814
|
-
/* @__PURE__ */ e.jsx(
|
|
815
|
-
|
|
916
|
+
f && /* @__PURE__ */ e.jsx(
|
|
917
|
+
W,
|
|
918
|
+
{
|
|
919
|
+
initialLanguage: d,
|
|
920
|
+
onLanguageChange: m
|
|
921
|
+
}
|
|
922
|
+
),
|
|
923
|
+
/* @__PURE__ */ e.jsx(z, {}),
|
|
924
|
+
s.map((u, h) => /* @__PURE__ */ e.jsx(O, { ...u, size: "small" }, h))
|
|
816
925
|
] })
|
|
817
926
|
] }),
|
|
818
927
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-4 md:hidden", children: [
|
|
819
|
-
/* @__PURE__ */ e.jsx(
|
|
928
|
+
f && /* @__PURE__ */ e.jsx(
|
|
929
|
+
W,
|
|
930
|
+
{
|
|
931
|
+
initialLanguage: d,
|
|
932
|
+
onLanguageChange: m
|
|
933
|
+
}
|
|
934
|
+
),
|
|
935
|
+
/* @__PURE__ */ e.jsx(z, {}),
|
|
820
936
|
/* @__PURE__ */ e.jsx(
|
|
821
937
|
"button",
|
|
822
938
|
{
|
|
823
|
-
onClick:
|
|
939
|
+
onClick: n,
|
|
824
940
|
className: "p-2 rounded-md text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors focus:outline-none",
|
|
825
|
-
children: /* @__PURE__ */ e.jsx("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children:
|
|
941
|
+
children: /* @__PURE__ */ e.jsx("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: t ? /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) : /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
|
|
826
942
|
}
|
|
827
943
|
)
|
|
828
944
|
] })
|
|
@@ -834,119 +950,476 @@ const de = ({
|
|
|
834
950
|
md:hidden absolute top-20 left-0 w-full
|
|
835
951
|
bg-white dark:bg-gray-900 border-b border-gray-100 dark:border-gray-800
|
|
836
952
|
shadow-xl transition-all duration-300 ease-in-out origin-top
|
|
837
|
-
${
|
|
838
|
-
${
|
|
953
|
+
${t ? "opacity-100 scale-y-100" : "opacity-0 scale-y-0 h-0 overflow-hidden"}
|
|
954
|
+
${a.mobileMenu || ""}
|
|
839
955
|
`,
|
|
840
956
|
children: /* @__PURE__ */ e.jsxs("div", { className: "px-6 py-6 space-y-4 flex flex-col items-center", children: [
|
|
841
|
-
|
|
957
|
+
i.map((u) => /* @__PURE__ */ e.jsx(
|
|
842
958
|
"a",
|
|
843
959
|
{
|
|
844
|
-
href:
|
|
845
|
-
onClick: (
|
|
960
|
+
href: u.href,
|
|
961
|
+
onClick: (h) => c == null ? void 0 : c(h, u.href),
|
|
846
962
|
className: "block text-lg font-medium text-gray-800 dark:text-gray-200 hover:text-blue-600 dark:hover:text-blue-400 transition-colors",
|
|
847
|
-
children:
|
|
963
|
+
children: u.label
|
|
848
964
|
},
|
|
849
|
-
|
|
965
|
+
u.label
|
|
850
966
|
)),
|
|
851
|
-
s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "pt-4 w-full flex flex-col gap-3", children: s.map((
|
|
967
|
+
s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "pt-4 w-full flex flex-col gap-3", children: s.map((u, h) => /* @__PURE__ */ e.jsx(O, { ...u, size: "medium", className: "w-full" }, h)) })
|
|
852
968
|
] })
|
|
853
969
|
}
|
|
854
970
|
)
|
|
855
971
|
]
|
|
856
972
|
}
|
|
857
|
-
),
|
|
858
|
-
const [
|
|
859
|
-
|
|
860
|
-
let
|
|
861
|
-
const
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
}),
|
|
973
|
+
), Ee = (o) => {
|
|
974
|
+
const [l, i] = C(!1), [s, a] = C(!1);
|
|
975
|
+
U(() => {
|
|
976
|
+
let n = !1;
|
|
977
|
+
const c = () => {
|
|
978
|
+
n || (window.requestAnimationFrame(() => {
|
|
979
|
+
a(window.scrollY > 20), n = !1;
|
|
980
|
+
}), n = !0);
|
|
865
981
|
};
|
|
866
|
-
return window.addEventListener("scroll",
|
|
982
|
+
return window.addEventListener("scroll", c), () => window.removeEventListener("scroll", c);
|
|
867
983
|
}, []);
|
|
868
|
-
const
|
|
869
|
-
|
|
870
|
-
const
|
|
871
|
-
|
|
872
|
-
},
|
|
984
|
+
const t = (n, c) => {
|
|
985
|
+
n.preventDefault();
|
|
986
|
+
const g = document.querySelector(c);
|
|
987
|
+
g && (g.scrollIntoView({ behavior: "smooth" }), i(!1));
|
|
988
|
+
}, x = () => {
|
|
873
989
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
874
990
|
};
|
|
875
991
|
return /* @__PURE__ */ e.jsx(
|
|
876
|
-
|
|
992
|
+
ve,
|
|
877
993
|
{
|
|
878
994
|
...o,
|
|
879
|
-
isOpen:
|
|
995
|
+
isOpen: l,
|
|
880
996
|
isScrolled: s,
|
|
881
|
-
onToggleMenu: () =>
|
|
882
|
-
onLinkClick:
|
|
883
|
-
onLogoClick:
|
|
997
|
+
onToggleMenu: () => i(!l),
|
|
998
|
+
onLinkClick: t,
|
|
999
|
+
onLogoClick: x
|
|
884
1000
|
}
|
|
885
1001
|
);
|
|
886
|
-
},
|
|
1002
|
+
}, je = ({
|
|
887
1003
|
title: o = "About Me",
|
|
888
|
-
avatarUrl:
|
|
889
|
-
bio:
|
|
1004
|
+
avatarUrl: l,
|
|
1005
|
+
bio: i,
|
|
890
1006
|
skillsTitle: s = "Tech Stack",
|
|
891
|
-
skills:
|
|
892
|
-
customStyles:
|
|
893
|
-
id:
|
|
1007
|
+
skills: a = [],
|
|
1008
|
+
customStyles: t = {},
|
|
1009
|
+
id: x,
|
|
894
1010
|
// Default Colors
|
|
895
|
-
backgroundColor:
|
|
896
|
-
darkBackgroundColor:
|
|
897
|
-
borderColor:
|
|
898
|
-
darkBorderColor:
|
|
899
|
-
titleColor:
|
|
900
|
-
darkTitleColor:
|
|
901
|
-
textColor:
|
|
902
|
-
darkTextColor:
|
|
1011
|
+
backgroundColor: n = "bg-white",
|
|
1012
|
+
darkBackgroundColor: c = "dark:bg-gray-900",
|
|
1013
|
+
borderColor: g = "border-gray-100",
|
|
1014
|
+
darkBorderColor: f = "dark:border-gray-800",
|
|
1015
|
+
titleColor: d = "text-gray-900",
|
|
1016
|
+
darkTitleColor: m = "dark:text-white",
|
|
1017
|
+
textColor: u = "text-gray-600",
|
|
1018
|
+
darkTextColor: h = "dark:text-gray-300"
|
|
903
1019
|
}) => /* @__PURE__ */ e.jsx(
|
|
904
1020
|
"section",
|
|
905
1021
|
{
|
|
906
|
-
id:
|
|
1022
|
+
id: x,
|
|
907
1023
|
className: `
|
|
908
1024
|
py-20 transition-colors duration-300
|
|
909
1025
|
border-y
|
|
910
|
-
${
|
|
911
|
-
${
|
|
912
|
-
${
|
|
1026
|
+
${n} ${c}
|
|
1027
|
+
${g} ${f}
|
|
1028
|
+
${t.container || ""}
|
|
913
1029
|
`,
|
|
914
|
-
children: /* @__PURE__ */ e.jsxs("div", { className: `max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 ${
|
|
1030
|
+
children: /* @__PURE__ */ e.jsxs("div", { className: `max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 ${t.contentWrapper || ""}`, children: [
|
|
915
1031
|
o && /* @__PURE__ */ e.jsxs("div", { className: "text-center mb-12", children: [
|
|
916
1032
|
/* @__PURE__ */ e.jsx("h2", { className: `
|
|
917
1033
|
text-3xl font-bold transition-colors
|
|
918
|
-
${
|
|
919
|
-
${
|
|
1034
|
+
${d} ${m}
|
|
1035
|
+
${t.title || ""}
|
|
920
1036
|
`, children: o }),
|
|
921
1037
|
/* @__PURE__ */ e.jsx("div", { className: "mt-2 h-1 w-20 bg-blue-600 mx-auto rounded" })
|
|
922
1038
|
] }),
|
|
923
1039
|
/* @__PURE__ */ e.jsxs("div", { className: "flex flex-col md:flex-row items-center gap-12", children: [
|
|
924
|
-
/* @__PURE__ */ e.jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ e.jsx(
|
|
925
|
-
/* @__PURE__ */ e.jsxs("div", { className: `text-lg leading-relaxed ${
|
|
926
|
-
/* @__PURE__ */ e.jsx("p", { className: `mb-8 whitespace-pre-line ${
|
|
927
|
-
|
|
1040
|
+
/* @__PURE__ */ e.jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ e.jsx(ue, { src: l, size: "xl" }) }),
|
|
1041
|
+
/* @__PURE__ */ e.jsxs("div", { className: `text-lg leading-relaxed ${u} ${h} ${t.textWrapper || ""}`, children: [
|
|
1042
|
+
/* @__PURE__ */ e.jsx("p", { className: `mb-8 whitespace-pre-line ${t.bio || ""}`, children: i }),
|
|
1043
|
+
a.length > 0 && /* @__PURE__ */ e.jsxs("div", { children: [
|
|
928
1044
|
s && /* @__PURE__ */ e.jsx("h3", { className: `
|
|
929
1045
|
text-sm font-bold uppercase tracking-wide mb-3
|
|
930
|
-
${
|
|
931
|
-
${
|
|
1046
|
+
${d} ${m}
|
|
1047
|
+
${t.skillsTitle || ""}
|
|
932
1048
|
`, children: s }),
|
|
933
|
-
/* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children:
|
|
1049
|
+
/* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: a.map((p) => /* @__PURE__ */ e.jsx(te, { label: p, variant: "secondary" }, p)) })
|
|
934
1050
|
] })
|
|
935
1051
|
] })
|
|
936
1052
|
] })
|
|
937
1053
|
] })
|
|
938
1054
|
}
|
|
939
|
-
)
|
|
1055
|
+
), we = ({
|
|
1056
|
+
logo: o = "Marc.Dev",
|
|
1057
|
+
isLogoImage: l = !1,
|
|
1058
|
+
links: i,
|
|
1059
|
+
actions: s = [],
|
|
1060
|
+
customStyles: a = {},
|
|
1061
|
+
isOpen: t = !1,
|
|
1062
|
+
onToggleMenu: x,
|
|
1063
|
+
onLinkClick: n,
|
|
1064
|
+
onLogoClick: c,
|
|
1065
|
+
enableLanguageToggle: g = !1,
|
|
1066
|
+
language: f = "en",
|
|
1067
|
+
onLanguageChange: d,
|
|
1068
|
+
// Default Colors
|
|
1069
|
+
backgroundColor: m = "bg-white",
|
|
1070
|
+
darkBackgroundColor: u = "dark:bg-gray-900",
|
|
1071
|
+
borderColor: h = "border-gray-100",
|
|
1072
|
+
darkBorderColor: p = "dark:border-gray-800",
|
|
1073
|
+
textColor: v = "text-gray-900",
|
|
1074
|
+
darkTextColor: N = "dark:text-white",
|
|
1075
|
+
activeLinkColor: k = "text-blue-600",
|
|
1076
|
+
darkActiveLinkColor: R = "dark:text-blue-400",
|
|
1077
|
+
hoverLinkColor: T = "hover:text-blue-600",
|
|
1078
|
+
darkHoverLinkColor: _ = "dark:hover:text-blue-400"
|
|
1079
|
+
}) => /* @__PURE__ */ e.jsxs(
|
|
1080
|
+
"nav",
|
|
1081
|
+
{
|
|
1082
|
+
className: `
|
|
1083
|
+
w-full border-b transition-colors duration-300
|
|
1084
|
+
${m} ${u}
|
|
1085
|
+
${h} ${p}
|
|
1086
|
+
${a.container || ""}
|
|
1087
|
+
`,
|
|
1088
|
+
children: [
|
|
1089
|
+
/* @__PURE__ */ e.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ e.jsxs("div", { className: "flex justify-between items-center h-20", children: [
|
|
1090
|
+
/* @__PURE__ */ e.jsx("div", { className: `flex-shrink-0 cursor-pointer flex items-center ${a.logo || ""}`, onClick: c, children: l ? /* @__PURE__ */ e.jsx("img", { src: o, alt: "Logo", className: "h-8 w-auto" }) : /* @__PURE__ */ e.jsx("span", { className: `
|
|
1091
|
+
text-2xl font-bold tracking-tighter transition-colors
|
|
1092
|
+
${v} ${N}
|
|
1093
|
+
${T} ${_}
|
|
1094
|
+
`, children: o }) }),
|
|
1095
|
+
/* @__PURE__ */ e.jsxs("div", { className: "hidden md:flex space-x-8 items-center", children: [
|
|
1096
|
+
i.map((w) => /* @__PURE__ */ e.jsx(
|
|
1097
|
+
"a",
|
|
1098
|
+
{
|
|
1099
|
+
href: w.href,
|
|
1100
|
+
onClick: (E) => n == null ? void 0 : n(E, w.href),
|
|
1101
|
+
className: `
|
|
1102
|
+
text-sm font-medium transition-colors
|
|
1103
|
+
${w.active ? `${k} ${R}` : "text-gray-600 dark:text-gray-300"}
|
|
1104
|
+
${T} ${_}
|
|
1105
|
+
${a.link || ""}
|
|
1106
|
+
`,
|
|
1107
|
+
children: w.label
|
|
1108
|
+
},
|
|
1109
|
+
w.label
|
|
1110
|
+
)),
|
|
1111
|
+
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-4 pl-6 border-l border-gray-200 dark:border-gray-700", children: [
|
|
1112
|
+
g && /* @__PURE__ */ e.jsx(
|
|
1113
|
+
W,
|
|
1114
|
+
{
|
|
1115
|
+
initialLanguage: f,
|
|
1116
|
+
onLanguageChange: d
|
|
1117
|
+
}
|
|
1118
|
+
),
|
|
1119
|
+
/* @__PURE__ */ e.jsx(z, {}),
|
|
1120
|
+
s.map((w, E) => /* @__PURE__ */ e.jsx(O, { ...w, size: "small" }, E))
|
|
1121
|
+
] })
|
|
1122
|
+
] }),
|
|
1123
|
+
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-4 md:hidden", children: [
|
|
1124
|
+
g && /* @__PURE__ */ e.jsx(
|
|
1125
|
+
W,
|
|
1126
|
+
{
|
|
1127
|
+
initialLanguage: f,
|
|
1128
|
+
onLanguageChange: d
|
|
1129
|
+
}
|
|
1130
|
+
),
|
|
1131
|
+
/* @__PURE__ */ e.jsx(z, {}),
|
|
1132
|
+
/* @__PURE__ */ e.jsx(
|
|
1133
|
+
"button",
|
|
1134
|
+
{
|
|
1135
|
+
onClick: x,
|
|
1136
|
+
className: "p-2 rounded-md text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors focus:outline-none",
|
|
1137
|
+
children: /* @__PURE__ */ e.jsx("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: t ? /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) : /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
|
|
1138
|
+
}
|
|
1139
|
+
)
|
|
1140
|
+
] })
|
|
1141
|
+
] }) }),
|
|
1142
|
+
/* @__PURE__ */ e.jsx(
|
|
1143
|
+
"div",
|
|
1144
|
+
{
|
|
1145
|
+
className: `
|
|
1146
|
+
md:hidden
|
|
1147
|
+
border-b border-gray-100 dark:border-gray-800
|
|
1148
|
+
transition-all duration-300 ease-in-out
|
|
1149
|
+
${m} ${u}
|
|
1150
|
+
${t ? "opacity-100 max-h-screen py-4" : "opacity-0 max-h-0 overflow-hidden"}
|
|
1151
|
+
${a.mobileMenu || ""}
|
|
1152
|
+
`,
|
|
1153
|
+
children: /* @__PURE__ */ e.jsxs("div", { className: "px-6 space-y-4 flex flex-col items-center", children: [
|
|
1154
|
+
i.map((w) => /* @__PURE__ */ e.jsx(
|
|
1155
|
+
"a",
|
|
1156
|
+
{
|
|
1157
|
+
href: w.href,
|
|
1158
|
+
onClick: (E) => n == null ? void 0 : n(E, w.href),
|
|
1159
|
+
className: `
|
|
1160
|
+
block text-lg font-medium transition-colors
|
|
1161
|
+
text-gray-800 dark:text-gray-200
|
|
1162
|
+
${T} ${_}
|
|
1163
|
+
`,
|
|
1164
|
+
children: w.label
|
|
1165
|
+
},
|
|
1166
|
+
w.label
|
|
1167
|
+
)),
|
|
1168
|
+
s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "pt-4 w-full flex flex-col gap-3", children: s.map((w, E) => /* @__PURE__ */ e.jsx(O, { ...w, size: "medium", className: "w-full" }, E)) })
|
|
1169
|
+
] })
|
|
1170
|
+
}
|
|
1171
|
+
)
|
|
1172
|
+
]
|
|
1173
|
+
}
|
|
1174
|
+
), $e = [
|
|
1175
|
+
{
|
|
1176
|
+
id: "1",
|
|
1177
|
+
title: "E-commerce Dashboard",
|
|
1178
|
+
description: "Complete admin dashboard with real-time metrics and dark mode.",
|
|
1179
|
+
image: "https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&w=800&q=80",
|
|
1180
|
+
tags: ["React", "TypeScript", "Tailwind"],
|
|
1181
|
+
url: "https://google.com"
|
|
1182
|
+
},
|
|
1183
|
+
{
|
|
1184
|
+
id: "2",
|
|
1185
|
+
title: "Task App",
|
|
1186
|
+
description: "Kanban-style productivity app.",
|
|
1187
|
+
image: "https://images.unsplash.com/photo-1484480974693-6ca0a78fb36b?auto=format&fit=crop&w=800&q=80",
|
|
1188
|
+
tags: ["Next.js", "Supabase"],
|
|
1189
|
+
url: "#"
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
id: "3",
|
|
1193
|
+
title: "Landing Page",
|
|
1194
|
+
description: "High-performance corporate website.",
|
|
1195
|
+
image: "https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=800&q=80",
|
|
1196
|
+
tags: ["Astro", "CSS"],
|
|
1197
|
+
url: "#"
|
|
1198
|
+
}
|
|
1199
|
+
], Te = ({
|
|
1200
|
+
enableLanguageToggle: o = !1,
|
|
1201
|
+
language: l = "en",
|
|
1202
|
+
onLanguageChange: i,
|
|
1203
|
+
items: s = $e,
|
|
1204
|
+
text: a = {
|
|
1205
|
+
navbar: { contact: "Contact" },
|
|
1206
|
+
hero: {
|
|
1207
|
+
greeting: "Hi, I'm Marc",
|
|
1208
|
+
title: "I transform ideas into digital experiences.",
|
|
1209
|
+
subtitle: "Full Stack Developer passionate about clean code and scalable architecture.",
|
|
1210
|
+
viewProjects: "View Projects",
|
|
1211
|
+
downloadCv: "Download CV"
|
|
1212
|
+
},
|
|
1213
|
+
about: {
|
|
1214
|
+
title: "About Me",
|
|
1215
|
+
bio: `Hi, I'm Marc. I've been passionately developing software for several years.
|
|
1216
|
+
I specialize in the JavaScript/TypeScript ecosystem, building applications that only work well but feel good to use.`,
|
|
1217
|
+
skillsTitle: "Tech Stack"
|
|
1218
|
+
},
|
|
1219
|
+
projects: { title: "Featured Projects", viewCaseStudy: "View Case Study" },
|
|
1220
|
+
footer: { legalNotice: "Legal Notice" }
|
|
1221
|
+
}
|
|
1222
|
+
}) => {
|
|
1223
|
+
const t = () => {
|
|
1224
|
+
const n = document.createElement("a"), c = "/design-system/", g = c.endsWith("/") ? c + "cv.pdf" : c + "/cv.pdf";
|
|
1225
|
+
n.href = g, n.download = "Marc_Iniguez_CV.pdf", document.body.appendChild(n), n.click(), document.body.removeChild(n);
|
|
1226
|
+
}, x = () => {
|
|
1227
|
+
const g = `https://mail.google.com/mail/?view=cm&fs=1&to=marc@example.com&su=${encodeURIComponent("Hi Marc, I saw your portfolio")}`;
|
|
1228
|
+
window.open(g, "_blank");
|
|
1229
|
+
};
|
|
1230
|
+
return /* @__PURE__ */ e.jsxs("div", { className: "bg-gray-50 dark:bg-gray-900 min-h-screen font-sans transition-colors duration-300", children: [
|
|
1231
|
+
/* @__PURE__ */ e.jsx(
|
|
1232
|
+
we,
|
|
1233
|
+
{
|
|
1234
|
+
logo: "Marc.Dev",
|
|
1235
|
+
links: [],
|
|
1236
|
+
actions: [
|
|
1237
|
+
{
|
|
1238
|
+
label: a.navbar.contact,
|
|
1239
|
+
onClick: x,
|
|
1240
|
+
variant: "primary"
|
|
1241
|
+
}
|
|
1242
|
+
],
|
|
1243
|
+
enableLanguageToggle: o,
|
|
1244
|
+
language: l,
|
|
1245
|
+
onLanguageChange: i
|
|
1246
|
+
}
|
|
1247
|
+
),
|
|
1248
|
+
/* @__PURE__ */ e.jsxs("main", { children: [
|
|
1249
|
+
/* @__PURE__ */ e.jsx("div", { id: "home", children: /* @__PURE__ */ e.jsx(
|
|
1250
|
+
pe,
|
|
1251
|
+
{
|
|
1252
|
+
greeting: a.hero.greeting,
|
|
1253
|
+
title: a.hero.title,
|
|
1254
|
+
subtitle: a.hero.subtitle,
|
|
1255
|
+
actions: [
|
|
1256
|
+
{
|
|
1257
|
+
label: a.hero.viewProjects,
|
|
1258
|
+
variant: "primary",
|
|
1259
|
+
onClick: () => {
|
|
1260
|
+
var n;
|
|
1261
|
+
return (n = document.getElementById("projects")) == null ? void 0 : n.scrollIntoView({ behavior: "smooth" });
|
|
1262
|
+
}
|
|
1263
|
+
},
|
|
1264
|
+
{
|
|
1265
|
+
label: a.hero.downloadCv,
|
|
1266
|
+
variant: "secondary",
|
|
1267
|
+
onClick: t
|
|
1268
|
+
// 👈 Connected here
|
|
1269
|
+
}
|
|
1270
|
+
]
|
|
1271
|
+
}
|
|
1272
|
+
) }),
|
|
1273
|
+
/* @__PURE__ */ e.jsx(
|
|
1274
|
+
je,
|
|
1275
|
+
{
|
|
1276
|
+
id: "about",
|
|
1277
|
+
title: a.about.title,
|
|
1278
|
+
avatarUrl: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?fit=crop&w=300&h=300",
|
|
1279
|
+
bio: a.about.bio,
|
|
1280
|
+
skillsTitle: a.about.skillsTitle,
|
|
1281
|
+
skills: ["React", "TypeScript", "Tailwind CSS", "Node.js", "Git", "Docker", "Storybook"]
|
|
1282
|
+
}
|
|
1283
|
+
),
|
|
1284
|
+
/* @__PURE__ */ e.jsx("div", { id: "projects", children: /* @__PURE__ */ e.jsx(
|
|
1285
|
+
he,
|
|
1286
|
+
{
|
|
1287
|
+
title: a.projects.title,
|
|
1288
|
+
items: s,
|
|
1289
|
+
layout: "grid",
|
|
1290
|
+
itemButtonLabel: a.projects.viewCaseStudy
|
|
1291
|
+
}
|
|
1292
|
+
) })
|
|
1293
|
+
] }),
|
|
1294
|
+
/* @__PURE__ */ e.jsx(
|
|
1295
|
+
be,
|
|
1296
|
+
{
|
|
1297
|
+
copyrightOwner: "Marc Iñiguez",
|
|
1298
|
+
socialLinks: [{ platform: "GitHub", url: "#" }],
|
|
1299
|
+
secondaryLinks: [{ label: a.footer.legalNotice, href: "#" }]
|
|
1300
|
+
}
|
|
1301
|
+
)
|
|
1302
|
+
] });
|
|
1303
|
+
}, _e = ({
|
|
1304
|
+
leftContent: o,
|
|
1305
|
+
rightContent: l,
|
|
1306
|
+
initialLeftWidth: i = 30,
|
|
1307
|
+
minWidth: s = 20,
|
|
1308
|
+
className: a = "",
|
|
1309
|
+
customStyles: t = {}
|
|
1310
|
+
}) => {
|
|
1311
|
+
const [x, n] = I.useState(i), [c, g] = I.useState(!1), f = I.useRef(null), d = (m) => {
|
|
1312
|
+
m.preventDefault(), g(!0);
|
|
1313
|
+
};
|
|
1314
|
+
return I.useEffect(() => {
|
|
1315
|
+
const m = (h) => {
|
|
1316
|
+
if (!c || !f.current) return;
|
|
1317
|
+
const p = f.current.getBoundingClientRect(), v = (h.clientX - p.left) / p.width * 100;
|
|
1318
|
+
v >= s && v <= 100 - s && n(v);
|
|
1319
|
+
}, u = () => {
|
|
1320
|
+
g(!1);
|
|
1321
|
+
};
|
|
1322
|
+
return c && (document.addEventListener("mousemove", m), document.addEventListener("mouseup", u)), () => {
|
|
1323
|
+
document.removeEventListener("mousemove", m), document.removeEventListener("mouseup", u);
|
|
1324
|
+
};
|
|
1325
|
+
}, [c, s]), /* @__PURE__ */ e.jsxs(
|
|
1326
|
+
"div",
|
|
1327
|
+
{
|
|
1328
|
+
ref: f,
|
|
1329
|
+
className: `flex h-full w-full overflow-hidden ${a} ${t.container || ""}`,
|
|
1330
|
+
children: [
|
|
1331
|
+
/* @__PURE__ */ e.jsx(
|
|
1332
|
+
"div",
|
|
1333
|
+
{
|
|
1334
|
+
style: { width: `${x}%` },
|
|
1335
|
+
className: `h-full overflow-auto ${t.leftPanel || ""}`,
|
|
1336
|
+
children: o
|
|
1337
|
+
}
|
|
1338
|
+
),
|
|
1339
|
+
/* @__PURE__ */ e.jsx(
|
|
1340
|
+
"div",
|
|
1341
|
+
{
|
|
1342
|
+
className: `w-1 cursor-col-resize bg-gray-200 hover:bg-blue-500 active:bg-blue-600 transition-colors z-10 flex flex-col justify-center items-center ${t.resizer || ""}`,
|
|
1343
|
+
onMouseDown: d,
|
|
1344
|
+
children: /* @__PURE__ */ e.jsx("div", { className: "h-8 w-1 bg-gray-400 rounded-full mx-auto" })
|
|
1345
|
+
}
|
|
1346
|
+
),
|
|
1347
|
+
/* @__PURE__ */ e.jsx(
|
|
1348
|
+
"div",
|
|
1349
|
+
{
|
|
1350
|
+
style: { width: `${100 - x}%` },
|
|
1351
|
+
className: `h-full overflow-auto bg-gray-50 dark:bg-gray-900 ${t.rightPanel || ""}`,
|
|
1352
|
+
children: l
|
|
1353
|
+
}
|
|
1354
|
+
)
|
|
1355
|
+
]
|
|
1356
|
+
}
|
|
1357
|
+
);
|
|
1358
|
+
}, Re = ({
|
|
1359
|
+
rows: o,
|
|
1360
|
+
cols: l,
|
|
1361
|
+
renderCell: i,
|
|
1362
|
+
onCellClick: s,
|
|
1363
|
+
onCellMouseEnter: a,
|
|
1364
|
+
onCellMouseDown: t,
|
|
1365
|
+
onCellMouseUp: x,
|
|
1366
|
+
className: n = "",
|
|
1367
|
+
gap: c = 1
|
|
1368
|
+
}) => {
|
|
1369
|
+
const g = ie(null), [f, d] = C(!1), m = (h, p, v) => {
|
|
1370
|
+
h.preventDefault(), d(!0), t == null || t(p, v), s == null || s(p, v);
|
|
1371
|
+
}, u = (h, p) => {
|
|
1372
|
+
f && (a == null || a(h, p));
|
|
1373
|
+
};
|
|
1374
|
+
return U(() => {
|
|
1375
|
+
const h = () => {
|
|
1376
|
+
f && (d(!1), x == null || x(-1, -1));
|
|
1377
|
+
};
|
|
1378
|
+
return window.addEventListener("mouseup", h), () => window.removeEventListener("mouseup", h);
|
|
1379
|
+
}, [f, x]), /* @__PURE__ */ e.jsx(
|
|
1380
|
+
"div",
|
|
1381
|
+
{
|
|
1382
|
+
ref: g,
|
|
1383
|
+
className: `grid select-none ${n}`,
|
|
1384
|
+
style: {
|
|
1385
|
+
display: "grid",
|
|
1386
|
+
gridTemplateRows: `repeat(${o}, 1fr)`,
|
|
1387
|
+
gridTemplateColumns: `repeat(${l}, 1fr)`,
|
|
1388
|
+
gap: `${c}px`,
|
|
1389
|
+
width: "100%",
|
|
1390
|
+
height: "100%"
|
|
1391
|
+
},
|
|
1392
|
+
onMouseLeave: () => f && d(!1),
|
|
1393
|
+
children: Array.from({ length: o }).map(
|
|
1394
|
+
(h, p) => Array.from({ length: l }).map((v, N) => /* @__PURE__ */ e.jsx(
|
|
1395
|
+
"div",
|
|
1396
|
+
{
|
|
1397
|
+
onMouseDown: (k) => m(k, p, N),
|
|
1398
|
+
onMouseEnter: () => u(p, N),
|
|
1399
|
+
children: i(p, N)
|
|
1400
|
+
},
|
|
1401
|
+
`${p}-${N}`
|
|
1402
|
+
))
|
|
1403
|
+
)
|
|
1404
|
+
}
|
|
1405
|
+
);
|
|
1406
|
+
};
|
|
940
1407
|
export {
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
be as
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
1408
|
+
ue as Avatar,
|
|
1409
|
+
te as Badge,
|
|
1410
|
+
O as Button,
|
|
1411
|
+
he as ContentGrid,
|
|
1412
|
+
ke as ControlPanel,
|
|
1413
|
+
be as Footer,
|
|
1414
|
+
pe as Hero,
|
|
1415
|
+
xe as Input,
|
|
1416
|
+
Re as InteractiveGrid,
|
|
1417
|
+
W as LanguageToggle,
|
|
1418
|
+
Ee as Navbar,
|
|
1419
|
+
Te as PortfolioPage,
|
|
1420
|
+
je as ProfileSection,
|
|
1421
|
+
fe as ProjectCard,
|
|
1422
|
+
Ne as Slider,
|
|
1423
|
+
_e as SplitLayout,
|
|
1424
|
+
z as ThemeToggle
|
|
952
1425
|
};
|