@iniguezmarc/design-system 0.0.12 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import se, { forwardRef as ne, useState as z, useEffect as Q } from "react";
1
+ import oe, { forwardRef as le, useState as M, useEffect as K } from "react";
2
2
  var W = { exports: {} }, A = {};
3
3
  /**
4
4
  * @license React
@@ -10,11 +10,11 @@ var W = { exports: {} }, A = {};
10
10
  * LICENSE file in the root directory of this source tree.
11
11
  */
12
12
  var X;
13
- function oe() {
13
+ function ie() {
14
14
  if (X) return A;
15
15
  X = 1;
16
- var o = Symbol.for("react.transitional.element"), x = Symbol.for("react.fragment");
17
- function d(s, t, a) {
16
+ var n = Symbol.for("react.transitional.element"), d = Symbol.for("react.fragment");
17
+ function x(s, t, a) {
18
18
  var f = null;
19
19
  if (a !== void 0 && (f = "" + a), t.key !== void 0 && (f = "" + t.key), "key" in t) {
20
20
  a = {};
@@ -22,14 +22,14 @@ function oe() {
22
22
  i !== "key" && (a[i] = t[i]);
23
23
  } else a = t;
24
24
  return t = a.ref, {
25
- $$typeof: o,
25
+ $$typeof: n,
26
26
  type: s,
27
27
  key: f,
28
28
  ref: t !== void 0 ? t : null,
29
29
  props: a
30
30
  };
31
31
  }
32
- return A.Fragment = x, A.jsx = d, A.jsxs = d, A;
32
+ return A.Fragment = d, A.jsx = x, A.jsxs = x, A;
33
33
  }
34
34
  var O = {};
35
35
  /**
@@ -42,12 +42,12 @@ var O = {};
42
42
  * LICENSE file in the root directory of this source tree.
43
43
  */
44
44
  var J;
45
- function le() {
45
+ function ce() {
46
46
  return J || (J = 1, process.env.NODE_ENV !== "production" && function() {
47
- function o(r) {
47
+ function n(r) {
48
48
  if (r == null) return null;
49
49
  if (typeof r == "function")
50
- return r.$$typeof === re ? null : r.displayName || r.name || null;
50
+ return r.$$typeof === ae ? null : r.displayName || r.name || null;
51
51
  if (typeof r == "string") return r;
52
52
  switch (r) {
53
53
  case w:
@@ -60,14 +60,14 @@ function le() {
60
60
  return "Suspense";
61
61
  case P:
62
62
  return "SuspenseList";
63
- case ee:
63
+ case te:
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 j:
70
+ case v:
71
71
  return "Portal";
72
72
  case _:
73
73
  return r.displayName || "Context";
@@ -76,50 +76,50 @@ function le() {
76
76
  case T:
77
77
  var c = r.render;
78
78
  return r = r.displayName, r || (r = c.displayName || c.name || "", r = r !== "" ? "ForwardRef(" + r + ")" : "ForwardRef"), r;
79
- case C:
80
- return c = r.displayName || null, c !== null ? c : o(r.type) || "Memo";
81
- case D:
79
+ case S:
80
+ return c = r.displayName || null, c !== null ? c : n(r.type) || "Memo";
81
+ case L:
82
82
  c = r._payload, r = r._init;
83
83
  try {
84
- return o(r(c));
84
+ return n(r(c));
85
85
  } catch {
86
86
  }
87
87
  }
88
88
  return null;
89
89
  }
90
- function x(r) {
90
+ function d(r) {
91
91
  return "" + r;
92
92
  }
93
- function d(r) {
93
+ function x(r) {
94
94
  try {
95
- x(r);
95
+ d(r);
96
96
  var c = !1;
97
97
  } catch {
98
98
  c = !0;
99
99
  }
100
100
  if (c) {
101
101
  c = console;
102
- var h = c.error, p = typeof Symbol == "function" && Symbol.toStringTag && r[Symbol.toStringTag] || r.constructor.name || "Object";
103
- return h.call(
102
+ var p = c.error, $ = typeof Symbol == "function" && Symbol.toStringTag && r[Symbol.toStringTag] || r.constructor.name || "Object";
103
+ return p.call(
104
104
  c,
105
105
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
106
- p
107
- ), x(r);
106
+ $
107
+ ), d(r);
108
108
  }
109
109
  }
110
110
  function s(r) {
111
111
  if (r === w) return "<>";
112
- if (typeof r == "object" && r !== null && r.$$typeof === D)
112
+ if (typeof r == "object" && r !== null && r.$$typeof === L)
113
113
  return "<...>";
114
114
  try {
115
- var c = o(r);
115
+ var c = n(r);
116
116
  return c ? "<" + c + ">" : "<...>";
117
117
  } catch {
118
118
  return "<...>";
119
119
  }
120
120
  }
121
121
  function t() {
122
- var r = L.A;
122
+ var r = B.A;
123
123
  return r === null ? null : r.getOwner();
124
124
  }
125
125
  function a() {
@@ -133,32 +133,32 @@ function le() {
133
133
  return r.key !== void 0;
134
134
  }
135
135
  function i(r, c) {
136
- function h() {
136
+ function p() {
137
137
  V || (V = !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
  c
140
140
  ));
141
141
  }
142
- h.isReactWarning = !0, Object.defineProperty(r, "key", {
143
- get: h,
142
+ p.isReactWarning = !0, Object.defineProperty(r, "key", {
143
+ get: p,
144
144
  configurable: !0
145
145
  });
146
146
  }
147
147
  function u() {
148
- var r = o(this.type);
148
+ var r = n(this.type);
149
149
  return H[r] || (H[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 m(r, c, h, p, S, Y) {
154
- var v = h.ref;
153
+ function g(r, c, p, $, C, Y) {
154
+ var j = p.ref;
155
155
  return r = {
156
- $$typeof: $,
156
+ $$typeof: h,
157
157
  type: r,
158
158
  key: c,
159
- props: h,
160
- _owner: p
161
- }, (v !== void 0 ? v : null) !== null ? Object.defineProperty(r, "ref", {
159
+ props: p,
160
+ _owner: $
161
+ }, (j !== void 0 ? j : null) !== null ? Object.defineProperty(r, "ref", {
162
162
  enumerable: !1,
163
163
  get: u
164
164
  }) : Object.defineProperty(r, "ref", { enumerable: !1, value: null }), r._store = {}, Object.defineProperty(r._store, "validated", {
@@ -175,7 +175,7 @@ function le() {
175
175
  configurable: !1,
176
176
  enumerable: !1,
177
177
  writable: !0,
178
- value: S
178
+ value: C
179
179
  }), Object.defineProperty(r, "_debugTask", {
180
180
  configurable: !1,
181
181
  enumerable: !1,
@@ -183,141 +183,141 @@ function le() {
183
183
  value: Y
184
184
  }), Object.freeze && (Object.freeze(r.props), Object.freeze(r)), r;
185
185
  }
186
- function l(r, c, h, p, S, Y) {
187
- var v = c.children;
188
- if (v !== void 0)
189
- if (p)
190
- if (te(v)) {
191
- for (p = 0; p < v.length; p++)
192
- n(v[p]);
193
- Object.freeze && Object.freeze(v);
186
+ function b(r, c, p, $, C, Y) {
187
+ var j = c.children;
188
+ if (j !== void 0)
189
+ if ($)
190
+ if (se(j)) {
191
+ for ($ = 0; $ < j.length; $++)
192
+ o(j[$]);
193
+ Object.freeze && Object.freeze(j);
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 n(v);
198
+ else o(j);
199
199
  if (F.call(c, "key")) {
200
- v = o(r);
201
- var N = Object.keys(c).filter(function(ae) {
202
- return ae !== "key";
200
+ j = n(r);
201
+ var N = Object.keys(c).filter(function(ne) {
202
+ return ne !== "key";
203
203
  });
204
- p = 0 < N.length ? "{key: someKey, " + N.join(": ..., ") + ": ...}" : "{key: someKey}", q[v + p] || (N = 0 < N.length ? "{" + N.join(": ..., ") + ": ...}" : "{}", console.error(
204
+ $ = 0 < N.length ? "{key: someKey, " + N.join(": ..., ") + ": ...}" : "{key: someKey}", q[j + $] || (N = 0 < N.length ? "{" + N.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
- p,
212
- v,
211
+ $,
212
+ j,
213
213
  N,
214
- v
215
- ), q[v + p] = !0);
214
+ j
215
+ ), q[j + $] = !0);
216
216
  }
217
- if (v = null, h !== void 0 && (d(h), v = "" + h), f(c) && (d(c.key), v = "" + c.key), "key" in c) {
218
- h = {};
219
- for (var I in c)
220
- I !== "key" && (h[I] = c[I]);
221
- } else h = c;
222
- return v && i(
223
- h,
217
+ if (j = null, p !== void 0 && (x(p), j = "" + p), f(c) && (x(c.key), j = "" + c.key), "key" in c) {
218
+ p = {};
219
+ for (var z in c)
220
+ z !== "key" && (p[z] = c[z]);
221
+ } else p = c;
222
+ return j && i(
223
+ p,
224
224
  typeof r == "function" ? r.displayName || r.name || "Unknown" : r
225
- ), m(
225
+ ), g(
226
226
  r,
227
- v,
228
- h,
227
+ j,
228
+ p,
229
229
  t(),
230
- S,
230
+ C,
231
231
  Y
232
232
  );
233
233
  }
234
- function n(r) {
235
- g(r) ? r._store && (r._store.validated = 1) : typeof r == "object" && r !== null && r.$$typeof === D && (r._payload.status === "fulfilled" ? g(r._payload.value) && r._payload.value._store && (r._payload.value._store.validated = 1) : r._store && (r._store.validated = 1));
234
+ function o(r) {
235
+ m(r) ? r._store && (r._store.validated = 1) : typeof r == "object" && r !== null && r.$$typeof === L && (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 g(r) {
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 b = se, $ = Symbol.for("react.transitional.element"), j = Symbol.for("react.portal"), w = Symbol.for("react.fragment"), y = Symbol.for("react.strict_mode"), k = Symbol.for("react.profiler"), E = Symbol.for("react.consumer"), _ = Symbol.for("react.context"), T = Symbol.for("react.forward_ref"), R = Symbol.for("react.suspense"), P = Symbol.for("react.suspense_list"), C = Symbol.for("react.memo"), D = Symbol.for("react.lazy"), ee = Symbol.for("react.activity"), re = Symbol.for("react.client.reference"), L = b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, F = Object.prototype.hasOwnProperty, te = Array.isArray, B = console.createTask ? console.createTask : function() {
240
+ var l = oe, h = Symbol.for("react.transitional.element"), v = Symbol.for("react.portal"), w = Symbol.for("react.fragment"), y = Symbol.for("react.strict_mode"), k = Symbol.for("react.profiler"), E = Symbol.for("react.consumer"), _ = Symbol.for("react.context"), T = Symbol.for("react.forward_ref"), R = Symbol.for("react.suspense"), P = Symbol.for("react.suspense_list"), S = Symbol.for("react.memo"), L = Symbol.for("react.lazy"), te = Symbol.for("react.activity"), ae = Symbol.for("react.client.reference"), B = l.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, F = Object.prototype.hasOwnProperty, se = Array.isArray, I = console.createTask ? console.createTask : function() {
241
241
  return null;
242
242
  };
243
- b = {
243
+ l = {
244
244
  react_stack_bottom_frame: function(r) {
245
245
  return r();
246
246
  }
247
247
  };
248
- var V, H = {}, G = b.react_stack_bottom_frame.bind(
249
- b,
248
+ var V, H = {}, G = l.react_stack_bottom_frame.bind(
249
+ l,
250
250
  a
251
- )(), U = B(s(a)), q = {};
252
- O.Fragment = w, O.jsx = function(r, c, h) {
253
- var p = 1e4 > L.recentlyCreatedOwnerStacks++;
254
- return l(
251
+ )(), U = I(s(a)), q = {};
252
+ O.Fragment = w, O.jsx = function(r, c, p) {
253
+ var $ = 1e4 > B.recentlyCreatedOwnerStacks++;
254
+ return b(
255
255
  r,
256
256
  c,
257
- h,
257
+ p,
258
258
  !1,
259
- p ? Error("react-stack-top-frame") : G,
260
- p ? B(s(r)) : U
259
+ $ ? Error("react-stack-top-frame") : G,
260
+ $ ? I(s(r)) : U
261
261
  );
262
- }, O.jsxs = function(r, c, h) {
263
- var p = 1e4 > L.recentlyCreatedOwnerStacks++;
264
- return l(
262
+ }, O.jsxs = function(r, c, p) {
263
+ var $ = 1e4 > B.recentlyCreatedOwnerStacks++;
264
+ return b(
265
265
  r,
266
266
  c,
267
- h,
267
+ p,
268
268
  !0,
269
- p ? Error("react-stack-top-frame") : G,
270
- p ? B(s(r)) : U
269
+ $ ? Error("react-stack-top-frame") : G,
270
+ $ ? I(s(r)) : U
271
271
  );
272
272
  };
273
273
  }()), O;
274
274
  }
275
- process.env.NODE_ENV === "production" ? W.exports = oe() : W.exports = le();
275
+ process.env.NODE_ENV === "production" ? W.exports = ie() : W.exports = ce();
276
276
  var e = W.exports;
277
- const ie = ({
278
- src: o,
279
- alt: x = "Avatar",
280
- size: d = "md",
277
+ const de = ({
278
+ src: n,
279
+ alt: d = "Avatar",
280
+ size: x = "md",
281
281
  imageFit: s = "cover",
282
282
  customStyles: t = {},
283
283
  className: a = "",
284
284
  borderColor: f = "border-gray-200",
285
285
  darkBorderColor: i = "dark:border-gray-700",
286
286
  backgroundColor: u = "bg-gray-100",
287
- darkBackgroundColor: m = "dark:bg-gray-800",
288
- loading: l = "lazy"
287
+ darkBackgroundColor: g = "dark:bg-gray-800",
288
+ loading: b = "lazy"
289
289
  }) => {
290
- const n = {
290
+ const o = {
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
- }, g = s === "contain" ? "object-contain" : "object-cover", b = `border ${f} ${i}`, $ = `${u} ${m}`;
295
+ }, m = s === "contain" ? "object-contain" : "object-cover", l = `border ${f} ${i}`, h = `${u} ${g}`;
296
296
  return /* @__PURE__ */ e.jsx("div", { className: `
297
297
  ds-avatar relative rounded-full overflow-hidden flex-shrink-0
298
- ${n[d]}
299
- ${$}
300
- ${b}
298
+ ${o[x]}
299
+ ${h}
300
+ ${l}
301
301
  ${t.container || ""}
302
302
  ${a}
303
303
  `, children: /* @__PURE__ */ e.jsx(
304
304
  "img",
305
305
  {
306
- src: o,
307
- alt: x,
308
- loading: l,
306
+ src: n,
307
+ alt: d,
308
+ loading: b,
309
309
  decoding: "async",
310
310
  className: `
311
311
  w-full h-full
312
- ${g}
312
+ ${m}
313
313
  ${t.image || ""}
314
314
  `
315
315
  }
316
316
  ) });
317
- }, K = ({
318
- label: o,
319
- variant: x = "primary",
320
- customStyles: d = {},
317
+ }, ee = ({
318
+ label: n,
319
+ variant: d = "primary",
320
+ customStyles: x = {},
321
321
  className: s = "",
322
322
  endIcon: t,
323
323
  // Default Colors
@@ -325,31 +325,31 @@ const ie = ({
325
325
  darkPrimaryColor: f = "dark:bg-blue-900/50 dark:text-blue-200",
326
326
  secondaryColor: i = "bg-gray-100 text-gray-800",
327
327
  darkSecondaryColor: u = "dark:bg-gray-700 dark:text-gray-300",
328
- outlineColor: m = "border border-gray-300 text-gray-600 bg-transparent",
329
- darkOutlineColor: l = "dark:border-gray-600 dark:text-gray-400",
330
- successColor: n = "bg-green-100 text-green-800",
331
- darkSuccessColor: g = "dark:bg-green-900/50 dark:text-green-200"
328
+ outlineColor: g = "border border-gray-300 text-gray-600 bg-transparent",
329
+ darkOutlineColor: b = "dark:border-gray-600 dark:text-gray-400",
330
+ successColor: o = "bg-green-100 text-green-800",
331
+ darkSuccessColor: m = "dark:bg-green-900/50 dark:text-green-200"
332
332
  }) => {
333
- const b = "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium transition-colors gap-1", $ = {
333
+ const l = "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium transition-colors gap-1", h = {
334
334
  primary: `${a} ${f}`,
335
335
  secondary: `${i} ${u}`,
336
- outline: `${m} ${l}`,
337
- success: `${n} ${g}`
336
+ outline: `${g} ${b}`,
337
+ success: `${o} ${m}`
338
338
  };
339
339
  return /* @__PURE__ */ e.jsxs("span", { className: `
340
340
  ds-badge
341
- ${b}
342
- ${$[x]}
343
- ${d.container || ""}
341
+ ${l}
342
+ ${h[d]}
343
+ ${x.container || ""}
344
344
  ${s}
345
345
  `, children: [
346
- /* @__PURE__ */ e.jsx("span", { className: d.label || "", children: o }),
346
+ /* @__PURE__ */ e.jsx("span", { className: x.label || "", children: n }),
347
347
  t && /* @__PURE__ */ e.jsx("span", { className: "flex items-center", children: t })
348
348
  ] });
349
- }, M = ({
350
- label: o,
351
- variant: x = "primary",
352
- size: d = "medium",
349
+ }, D = ({
350
+ label: n,
351
+ variant: d = "primary",
352
+ size: x = "medium",
353
353
  onClick: s,
354
354
  className: t = "",
355
355
  customStyles: a = {},
@@ -357,27 +357,27 @@ const ie = ({
357
357
  target: i,
358
358
  // Default Colors
359
359
  primaryColor: u = "bg-blue-600",
360
- primaryHoverColor: m = "hover:bg-blue-700",
361
- darkPrimaryColor: l = "dark:bg-blue-600",
362
- darkPrimaryHoverColor: n = "dark:hover:bg-blue-500",
363
- secondaryColor: g = "bg-gray-100",
364
- secondaryHoverColor: b = "hover:bg-gray-200",
365
- darkSecondaryColor: $ = "dark:bg-gray-800",
366
- darkSecondaryHoverColor: j = "dark:hover:bg-gray-700",
360
+ primaryHoverColor: g = "hover:bg-blue-700",
361
+ darkPrimaryColor: b = "dark:bg-blue-600",
362
+ darkPrimaryHoverColor: o = "dark:hover:bg-blue-500",
363
+ secondaryColor: m = "bg-gray-100",
364
+ secondaryHoverColor: l = "hover:bg-gray-200",
365
+ darkSecondaryColor: h = "dark:bg-gray-800",
366
+ darkSecondaryHoverColor: v = "dark:hover:bg-gray-700",
367
367
  outlineColor: w = "text-blue-600 border-blue-600",
368
368
  outlineHoverColor: y = "hover:bg-blue-50",
369
369
  darkOutlineColor: k = "dark:text-blue-400 dark:border-blue-400",
370
370
  darkOutlineHoverColor: E = "dark:hover:bg-blue-950"
371
371
  }) => {
372
372
  const _ = "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", T = {
373
- primary: `${u} text-white ${m} focus:ring-blue-500 border-2 border-transparent ${l} ${n}`,
374
- secondary: `${g} text-gray-800 ${b} focus:ring-gray-500 border-2 border-transparent ${$} dark:text-gray-100 ${j}`,
373
+ primary: `${u} text-white ${g} focus:ring-blue-500 border-2 border-transparent ${b} ${o}`,
374
+ secondary: `${m} text-gray-800 ${l} focus:ring-gray-500 border-2 border-transparent ${h} dark:text-gray-100 ${v}`,
375
375
  outline: `bg-transparent ${w} border-2 ${y} focus:ring-blue-500 ${k} ${E}`
376
376
  }, R = {
377
377
  small: "px-3 py-1.5 text-sm",
378
378
  medium: "px-5 py-2.5 text-base",
379
379
  large: "px-8 py-3.5 text-lg"
380
- }, P = `${_} ${T[x]} ${R[d]} ${a.container || ""} ${t}`, C = /* @__PURE__ */ e.jsx("span", { className: `relative z-10 flex items-center justify-center gap-2 ${a.label || ""}`, children: o });
380
+ }, P = `${_} ${T[d]} ${R[x]} ${a.container || ""} ${t}`, S = /* @__PURE__ */ e.jsx("span", { className: `relative z-10 flex items-center justify-center gap-2 ${a.label || ""}`, children: n });
381
381
  return f ? /* @__PURE__ */ e.jsx(
382
382
  "a",
383
383
  {
@@ -386,7 +386,7 @@ const ie = ({
386
386
  target: i,
387
387
  rel: i === "_blank" ? "noopener noreferrer" : void 0,
388
388
  onClick: s,
389
- children: C
389
+ children: S
390
390
  }
391
391
  ) : /* @__PURE__ */ e.jsx(
392
392
  "button",
@@ -394,13 +394,13 @@ const ie = ({
394
394
  type: "button",
395
395
  className: P,
396
396
  onClick: s,
397
- children: C
397
+ children: S
398
398
  }
399
399
  );
400
- }, ce = ne(({
401
- label: o,
402
- error: x,
403
- className: d,
400
+ }, xe = le(({
401
+ label: n,
402
+ error: d,
403
+ className: x,
404
404
  customStyles: s = {},
405
405
  startIcon: t,
406
406
  endIcon: a,
@@ -408,13 +408,13 @@ const ie = ({
408
408
  labelColor: f = "text-gray-700",
409
409
  darkLabelColor: i = "dark:text-gray-200",
410
410
  inputBgColor: u = "bg-white",
411
- darkInputBgColor: m = "dark:bg-gray-800",
412
- inputBorderColor: l = "border-gray-300",
413
- darkInputBorderColor: n = "dark:border-gray-600",
414
- inputTextColor: g = "text-gray-900",
415
- darkInputTextColor: b = "dark:text-white",
416
- focusRingColor: $ = "focus:ring-blue-500",
417
- errorBorderColor: j = "border-red-500",
411
+ darkInputBgColor: g = "dark:bg-gray-800",
412
+ inputBorderColor: b = "border-gray-300",
413
+ darkInputBorderColor: o = "dark:border-gray-600",
414
+ inputTextColor: m = "text-gray-900",
415
+ darkInputTextColor: l = "dark:text-white",
416
+ focusRingColor: h = "focus:ring-blue-500",
417
+ errorBorderColor: v = "border-red-500",
418
418
  darkErrorBorderColor: w = "dark:border-red-500",
419
419
  errorTextColor: y = "text-red-500",
420
420
  darkErrorTextColor: k = "dark:text-red-400",
@@ -424,12 +424,12 @@ const ie = ({
424
424
  w-full py-2 border rounded-lg shadow-sm focus:outline-none focus:ring-2 transition-all
425
425
  ${t ? "pl-10" : "px-3"}
426
426
  ${a ? "pr-10" : "px-3"}
427
- ${u} ${m}
428
- ${g} ${b}
429
- ${$}
430
- `, R = x ? `${j} focus:ring-red-500 ${w}` : `${l} ${n}`;
431
- return /* @__PURE__ */ e.jsxs("div", { className: `w-full ${s.container || ""} ${d}`, children: [
432
- o && /* @__PURE__ */ e.jsx("label", { className: `block text-sm font-medium ${f} ${i} mb-1 ${s.label || ""}`, children: o }),
427
+ ${u} ${g}
428
+ ${m} ${l}
429
+ ${h}
430
+ `, R = d ? `${v} focus:ring-red-500 ${w}` : `${b} ${o}`;
431
+ return /* @__PURE__ */ e.jsxs("div", { className: `w-full ${s.container || ""} ${x}`, children: [
432
+ n && /* @__PURE__ */ e.jsx("label", { className: `block text-sm font-medium ${f} ${i} mb-1 ${s.label || ""}`, children: n }),
433
433
  /* @__PURE__ */ e.jsxs("div", { className: "relative", children: [
434
434
  t && /* @__PURE__ */ e.jsx("div", { className: `absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none ${s.iconContainer || ""}`, children: t }),
435
435
  /* @__PURE__ */ e.jsx(
@@ -446,93 +446,125 @@ const ie = ({
446
446
  ),
447
447
  a && /* @__PURE__ */ e.jsx("div", { className: `absolute inset-y-0 right-0 pr-3 flex items-center ${s.iconContainer || ""}`, children: a })
448
448
  ] }),
449
- x && /* @__PURE__ */ e.jsx("p", { className: `mt-1 text-xs ${y} ${k} ${s.error || ""}`, children: x })
449
+ d && /* @__PURE__ */ e.jsx("p", { className: `mt-1 text-xs ${y} ${k} ${s.error || ""}`, children: d })
450
450
  ] });
451
451
  });
452
- ce.displayName = "BasicInput";
453
- const de = ({
454
- isToggled: o,
455
- onToggle: x,
456
- iconOn: d,
452
+ xe.displayName = "BasicInput";
453
+ const re = ({
454
+ isToggled: n,
455
+ onToggle: d,
456
+ iconOn: x,
457
457
  iconOff: s,
458
458
  imageOn: t,
459
459
  imageOff: a,
460
460
  imageFit: f = "contain",
461
461
  customStyles: i = {},
462
462
  className: u = "",
463
- title: m
463
+ title: g
464
464
  }) => {
465
- const l = `w-6 h-6 ${i.icon || ""}`, n = () => {
466
- const g = f === "contain" ? "object-contain" : "object-cover";
467
- return o ? t ? /* @__PURE__ */ e.jsx("img", { src: t, alt: "Toggled On", className: `${l} ${g}` }) : d : a ? /* @__PURE__ */ e.jsx("img", { src: a, alt: "Toggled Off", className: `${l} ${g}` }) : s;
465
+ const b = `w-6 h-6 ${i.icon || ""}`, o = () => {
466
+ const m = f === "contain" ? "object-contain" : "object-cover";
467
+ return n ? t ? /* @__PURE__ */ e.jsx("img", { src: t, alt: "Toggled On", className: `${b} ${m}` }) : x : a ? /* @__PURE__ */ e.jsx("img", { src: a, alt: "Toggled Off", className: `${b} ${m}` }) : s;
468
468
  };
469
469
  return /* @__PURE__ */ e.jsx(
470
470
  "button",
471
471
  {
472
- onClick: x,
473
- title: m,
472
+ onClick: d,
473
+ title: g,
474
474
  className: `
475
475
  p-2 rounded-full transition-all duration-300 ease-in-out
476
476
  focus:outline-none focus:ring-2 focus:ring-blue-500 hover:rotate-12 hover:scale-110 overflow-hidden
477
- ${o ? "bg-gray-800 text-white hover:bg-gray-700" : "bg-gray-200 text-gray-800 hover:bg-gray-300"}
477
+ ${n ? "bg-gray-800 text-white hover:bg-gray-700" : "bg-gray-200 text-gray-800 hover:bg-gray-300"}
478
478
  ${i.container || ""}
479
479
  ${u}
480
480
  `,
481
- children: n()
481
+ children: o()
482
482
  }
483
483
  );
484
484
  }, Z = ({
485
- isDark: o,
486
- onToggle: x,
487
- iconSun: d,
485
+ isDark: n,
486
+ onToggle: d,
487
+ iconSun: x,
488
488
  iconMoon: s,
489
489
  sunImage: t,
490
490
  moonImage: a,
491
491
  customStyles: f = {},
492
492
  ...i
493
493
  }) => {
494
- const [u, m] = z(!1);
495
- Q(() => {
496
- const j = () => {
494
+ const [u, g] = M(!1);
495
+ K(() => {
496
+ const v = () => {
497
497
  const y = document.documentElement.classList.contains("dark");
498
- m(y);
498
+ g(y);
499
499
  };
500
- j();
501
- const w = new MutationObserver(j);
500
+ v();
501
+ const w = new MutationObserver(v);
502
502
  return w.observe(document.documentElement, { attributes: !0, attributeFilter: ["class"] }), () => w.disconnect();
503
503
  }, []);
504
- const l = () => {
505
- const j = document.documentElement;
506
- j.classList.contains("dark") ? (j.classList.remove("dark"), localStorage.setItem("theme", "light")) : (j.classList.add("dark"), localStorage.setItem("theme", "dark")), x && x();
507
- }, n = o !== void 0 ? o : u, g = `w-6 h-6 ${f.icon || ""}`, b = /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: g, 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" }) }), $ = /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: g, 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" }) });
504
+ const b = () => {
505
+ const v = document.documentElement;
506
+ v.classList.contains("dark") ? (v.classList.remove("dark"), localStorage.setItem("theme", "light")) : (v.classList.add("dark"), localStorage.setItem("theme", "dark")), d && d();
507
+ }, o = n !== void 0 ? n : u, m = `w-6 h-6 ${f.icon || ""}`, l = /* @__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
508
  return /* @__PURE__ */ e.jsx(
509
- de,
509
+ re,
510
510
  {
511
511
  ...i,
512
- isToggled: n,
513
- onToggle: l,
514
- iconOn: d || b,
515
- iconOff: s || $,
512
+ isToggled: o,
513
+ onToggle: b,
514
+ iconOn: x || l,
515
+ iconOff: s || h,
516
516
  imageOn: t,
517
517
  imageOff: a,
518
518
  customStyles: f,
519
- title: i.title || (n ? "Switch to light mode" : "Switch to dark mode")
519
+ title: i.title || (o ? "Switch to light mode" : "Switch to dark mode")
520
520
  }
521
521
  );
522
+ }, Q = ({
523
+ initialLanguage: n = "en",
524
+ onLanguageChange: d,
525
+ className: x = "",
526
+ customStyles: s = {},
527
+ englishColor: t = "!bg-transparent hover:!bg-gray-100 dark:hover:!bg-gray-800",
528
+ englishBorderColor: a = "border-2 border-transparent",
529
+ englishTextColor: f = "!text-gray-600 dark:!text-gray-300",
530
+ spanishColor: i = "!bg-transparent hover:!bg-gray-100 dark:hover:!bg-gray-800",
531
+ spanishBorderColor: u = "border-2 border-transparent",
532
+ spanishTextColor: g = "!text-gray-600 dark:!text-gray-300",
533
+ isDark: b = !1
534
+ }) => {
535
+ const [o, m] = M(n === "es"), l = () => {
536
+ const v = !o;
537
+ m(v), d && d(v ? "es" : "en");
538
+ }, h = o ? `${i} ${g} ${u}` : `${t} ${f} ${a}`;
539
+ return /* @__PURE__ */ e.jsx("div", { className: b ? "dark" : "", children: /* @__PURE__ */ e.jsx(
540
+ re,
541
+ {
542
+ isToggled: o,
543
+ onToggle: l,
544
+ className: x,
545
+ title: o ? "Switch to English" : "Cambiar a Español",
546
+ iconOn: /* @__PURE__ */ e.jsx("span", { className: "font-bold text-xs", children: "ES" }),
547
+ iconOff: /* @__PURE__ */ e.jsx("span", { className: "font-bold text-xs", children: "EN" }),
548
+ customStyles: {
549
+ container: `${h} ${s.container || ""}`,
550
+ icon: `w-6 h-6 flex items-center justify-center ${s.icon || ""}`
551
+ }
552
+ }
553
+ ) });
522
554
  }, ue = ({
523
- title: o,
524
- description: x,
525
- image: d,
555
+ title: n,
556
+ description: d,
557
+ image: x,
526
558
  tags: s = [],
527
559
  orientation: t = "vertical",
528
560
  actionLabel: a = "View Project",
529
561
  projectUrl: f,
530
562
  linkTarget: i = "_self",
531
563
  onViewProject: u,
532
- customStyles: m = {},
533
- className: l = ""
564
+ customStyles: g = {},
565
+ className: b = ""
534
566
  }) => {
535
- const n = t === "horizontal";
567
+ const o = t === "horizontal";
536
568
  return /* @__PURE__ */ e.jsxs("div", { className: `
537
569
  /* 1. IDENTIFIER CLASS */
538
570
  ds-card
@@ -540,7 +572,7 @@ const de = ({
540
572
  /* 2. BASE STRUCTURE */
541
573
  group w-full rounded-xl overflow-hidden border transition-all duration-300
542
574
  /* Switch layout based on orientation prop */
543
- ${n ? "flex flex-col md:flex-row" : "flex flex-col"}
575
+ ${o ? "flex flex-col md:flex-row" : "flex flex-col"}
544
576
 
545
577
  /* 3. LIGHT MODE (Default) */
546
578
  /* White background, gray border, black shadow on hover */
@@ -564,19 +596,19 @@ const de = ({
564
596
  dark:hover:!shadow-[0_20px_25px_-5px_rgba(255,255,255,0.30)]
565
597
 
566
598
  /* 5. EXTERNAL INJECTIONS */
567
- ${m.container || ""}
568
- ${l}
599
+ ${g.container || ""}
600
+ ${b}
569
601
  `, children: [
570
602
  /* @__PURE__ */ e.jsxs("div", { className: `
571
603
  ds-card-image overflow-hidden relative
572
- ${n ? "w-full h-48 md:w-2/5 md:h-auto" : "w-full h-48"}
573
- ${m.imageWrapper || ""}
604
+ ${o ? "w-full h-48 md:w-2/5 md:h-auto" : "w-full h-48"}
605
+ ${g.imageWrapper || ""}
574
606
  `, children: [
575
607
  /* @__PURE__ */ e.jsx(
576
608
  "img",
577
609
  {
578
- src: d,
579
- alt: o,
610
+ src: x,
611
+ alt: n,
580
612
  loading: "lazy",
581
613
  decoding: "async",
582
614
  className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"
@@ -584,20 +616,20 @@ const de = ({
584
616
  ),
585
617
  /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 bg-transparent dark:bg-black/20 transition-colors pointer-events-none" })
586
618
  ] }),
587
- /* @__PURE__ */ e.jsxs("div", { className: `ds-card-content p-6 flex flex-col justify-between flex-1 ${m.content || ""}`, children: [
619
+ /* @__PURE__ */ e.jsxs("div", { className: `ds-card-content p-6 flex flex-col justify-between flex-1 ${g.content || ""}`, children: [
588
620
  /* @__PURE__ */ e.jsxs("div", { children: [
589
621
  /* @__PURE__ */ e.jsx("h3", { className: `
590
622
  ds-card-title text-2xl font-bold mb-3 transition-colors text-gray-900 dark:text-white
591
- ${m.title || ""}
592
- `, children: o }),
623
+ ${g.title || ""}
624
+ `, children: n }),
593
625
  /* @__PURE__ */ e.jsx("p", { className: `
594
626
  ds-card-description mb-4 line-clamp-3 leading-relaxed transition-colors text-gray-600 dark:text-gray-300
595
- ${m.description || ""}
596
- `, children: x }),
597
- /* @__PURE__ */ e.jsx("div", { className: `ds-card-tags flex flex-wrap gap-2 mb-6 ${m.tagsContainer || ""}`, children: s.map((g) => /* @__PURE__ */ e.jsx(K, { label: g, variant: "secondary" }, g)) })
627
+ ${g.description || ""}
628
+ `, children: d }),
629
+ /* @__PURE__ */ e.jsx("div", { className: `ds-card-tags flex flex-wrap gap-2 mb-6 ${g.tagsContainer || ""}`, children: s.map((m) => /* @__PURE__ */ e.jsx(ee, { label: m, variant: "secondary" }, m)) })
598
630
  ] }),
599
631
  /* @__PURE__ */ e.jsx("div", { className: "ds-card-actions flex justify-start mt-auto", children: /* @__PURE__ */ e.jsx(
600
- M,
632
+ D,
601
633
  {
602
634
  label: a,
603
635
  onClick: u,
@@ -610,9 +642,9 @@ const de = ({
610
642
  ] })
611
643
  ] });
612
644
  }, me = ({
613
- title: o = "Featured Content",
614
- items: x,
615
- layout: d = "grid",
645
+ title: n = "Featured Content",
646
+ items: d,
647
+ layout: x = "grid",
616
648
  itemButtonLabel: s = "View Details",
617
649
  onItemClick: t,
618
650
  customStyles: a = {},
@@ -620,41 +652,41 @@ const de = ({
620
652
  backgroundColor: f = "bg-gray-50",
621
653
  darkBackgroundColor: i = "dark:bg-gray-900",
622
654
  titleColor: u = "text-gray-900",
623
- darkTitleColor: m = "dark:text-white"
655
+ darkTitleColor: g = "dark:text-white"
624
656
  }) => {
625
- const l = d === "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";
657
+ const b = x === "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
658
  return /* @__PURE__ */ e.jsx("section", { className: `
627
659
  py-16 px-4 transition-colors duration-300
628
660
  ${f} ${i}
629
661
  ${a.container || ""}
630
662
  `, children: /* @__PURE__ */ e.jsxs("div", { className: "max-w-7xl mx-auto", children: [
631
- o && /* @__PURE__ */ e.jsxs("div", { className: "mb-12 text-start", children: [
663
+ n && /* @__PURE__ */ e.jsxs("div", { className: "mb-12 text-start", children: [
632
664
  /* @__PURE__ */ e.jsx("h2", { className: `
633
665
  text-4xl font-extrabold mb-4 tracking-tight transition-colors
634
- ${u} ${m}
666
+ ${u} ${g}
635
667
  ${a.title || ""}
636
- `, children: o }),
668
+ `, children: n }),
637
669
  /* @__PURE__ */ e.jsx("div", { className: "h-1.5 w-24 bg-blue-600 mx-auto rounded-full" })
638
670
  ] }),
639
- /* @__PURE__ */ e.jsx("div", { className: l, children: x.map((n) => /* @__PURE__ */ e.jsx(
671
+ /* @__PURE__ */ e.jsx("div", { className: b, children: d.map((o) => /* @__PURE__ */ e.jsx(
640
672
  ue,
641
673
  {
642
- title: n.title,
643
- description: n.description,
644
- image: n.image,
645
- tags: n.tags,
646
- projectUrl: n.url,
647
- orientation: d === "list" ? "horizontal" : "vertical",
674
+ title: o.title,
675
+ description: o.description,
676
+ image: o.image,
677
+ tags: o.tags,
678
+ projectUrl: o.url,
679
+ orientation: x === "list" ? "horizontal" : "vertical",
648
680
  actionLabel: s,
649
- onViewProject: () => t == null ? void 0 : t(n.id)
681
+ onViewProject: () => t == null ? void 0 : t(o.id)
650
682
  },
651
- n.id
683
+ o.id
652
684
  )) })
653
685
  ] }) });
654
- }, ge = ({
655
- copyrightOwner: o,
656
- copyrightText: x = `© ${(/* @__PURE__ */ new Date()).getFullYear()} All rights reserved.`,
657
- socialLinks: d,
686
+ }, be = ({
687
+ copyrightOwner: n,
688
+ copyrightText: d = `© ${(/* @__PURE__ */ new Date()).getFullYear()} All rights reserved.`,
689
+ socialLinks: x,
658
690
  secondaryLinks: s = [],
659
691
  customStyles: t = {},
660
692
  // Default Colors
@@ -662,10 +694,10 @@ const de = ({
662
694
  darkBackgroundColor: f = "dark:bg-black",
663
695
  borderColor: i = "border-gray-800",
664
696
  darkBorderColor: u = "dark:border-gray-800",
665
- textColor: m = "text-white",
666
- darkTextColor: l = "dark:text-white",
667
- linksColor: n = "text-gray-400",
668
- linksHoverColor: g = "hover:text-white"
697
+ textColor: g = "text-white",
698
+ darkTextColor: b = "dark:text-white",
699
+ linksColor: o = "text-gray-400",
700
+ linksHoverColor: m = "hover:text-white"
669
701
  }) => /* @__PURE__ */ e.jsx("footer", { className: `
670
702
  py-12 border-t transition-colors duration-300
671
703
  ${a} ${f}
@@ -673,41 +705,41 @@ const de = ({
673
705
  ${t.container || ""}
674
706
  `, 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
707
  /* @__PURE__ */ e.jsxs("div", { className: `text-center md:text-left ${t.text || ""}`, children: [
676
- /* @__PURE__ */ e.jsx("p", { className: `text-lg font-bold ${m} ${l}`, children: o }),
677
- /* @__PURE__ */ e.jsx("p", { className: `text-sm mt-1 ${n} opacity-80`, children: x })
708
+ /* @__PURE__ */ e.jsx("p", { className: `text-lg font-bold ${g} ${b}`, children: n }),
709
+ /* @__PURE__ */ e.jsx("p", { className: `text-sm mt-1 ${o} opacity-80`, children: d })
678
710
  ] }),
679
- s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "flex gap-6 flex-wrap justify-center", children: s.map((b) => /* @__PURE__ */ e.jsx(
711
+ s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "flex gap-6 flex-wrap justify-center", children: s.map((l) => /* @__PURE__ */ e.jsx(
680
712
  "a",
681
713
  {
682
- href: b.href,
714
+ href: l.href,
683
715
  className: `
684
716
  text-sm transition-colors
685
- ${n} ${g}
717
+ ${o} ${m}
686
718
  ${t.link || ""}
687
719
  `,
688
- children: b.label
720
+ children: l.label
689
721
  },
690
- b.label
722
+ l.label
691
723
  )) }),
692
- /* @__PURE__ */ e.jsx("div", { className: "flex space-x-6", children: d.map((b) => /* @__PURE__ */ e.jsx(
724
+ /* @__PURE__ */ e.jsx("div", { className: "flex space-x-6", children: x.map((l) => /* @__PURE__ */ e.jsx(
693
725
  "a",
694
726
  {
695
- href: b.url,
727
+ href: l.url,
696
728
  target: "_blank",
697
729
  rel: "noopener noreferrer",
698
730
  className: `
699
731
  transition-colors text-sm font-medium uppercase tracking-wider
700
- ${n} ${g}
732
+ ${o} ${m}
701
733
  ${t.link || ""}
702
734
  `,
703
- children: b.platform
735
+ children: l.platform
704
736
  },
705
- b.platform
737
+ l.platform
706
738
  )) })
707
- ] }) }) }), be = ({
708
- greeting: o = "Hello",
709
- title: x,
710
- subtitle: d,
739
+ ] }) }) }), he = ({
740
+ greeting: n = "Hello",
741
+ title: d,
742
+ subtitle: x,
711
743
  imageUrl: s,
712
744
  actions: t = [],
713
745
  customStyles: a = {},
@@ -715,36 +747,36 @@ const de = ({
715
747
  backgroundColor: f = "bg-white",
716
748
  darkBackgroundColor: i = "dark:bg-gray-900",
717
749
  greetingColor: u = "text-blue-600",
718
- darkGreetingColor: m = "dark:text-blue-400",
719
- titleColor: l = "text-gray-900",
720
- darkTitleColor: n = "dark:text-white",
721
- subtitleColor: g = "text-gray-500",
722
- darkSubtitleColor: b = "dark:text-gray-400"
750
+ darkGreetingColor: g = "dark:text-blue-400",
751
+ titleColor: b = "text-gray-900",
752
+ darkTitleColor: o = "dark:text-white",
753
+ subtitleColor: m = "text-gray-500",
754
+ darkSubtitleColor: l = "dark:text-gray-400"
723
755
  }) => {
724
- const $ = 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", j = s ? "flex-1 text-center lg:text-left" : "w-full", w = s ? "justify-center lg:justify-start" : "justify-center";
756
+ 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", v = s ? "flex-1 text-center lg:text-left" : "w-full", w = s ? "justify-center lg:justify-start" : "justify-center";
725
757
  return /* @__PURE__ */ e.jsx("section", { className: `
726
758
  relative pt-32 pb-16 lg:pt-40 lg:pb-24 overflow-hidden transition-colors duration-300
727
759
  ${f} ${i}
728
760
  ${a.container || ""}
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: $, children: [
730
- /* @__PURE__ */ e.jsxs("div", { className: `${j} ${a.content || ""}`, children: [
731
- o && /* @__PURE__ */ e.jsx("p", { className: `
761
+ `, 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: [
762
+ /* @__PURE__ */ e.jsxs("div", { className: `${v} ${a.content || ""}`, children: [
763
+ n && /* @__PURE__ */ e.jsx("p", { className: `
732
764
  font-semibold tracking-wide uppercase text-sm mb-4
733
- ${u} ${m}
734
- `, children: o }),
765
+ ${u} ${g}
766
+ `, children: n }),
735
767
  /* @__PURE__ */ e.jsx("h1", { className: `
736
768
  text-4xl sm:text-5xl lg:text-6xl font-bold leading-tight mb-6 transition-colors
737
- ${l} ${n}
769
+ ${b} ${o}
738
770
  ${a.title || ""}
739
- `, children: x }),
771
+ `, children: d }),
740
772
  /* @__PURE__ */ e.jsx("p", { className: `
741
773
  text-lg sm:text-xl mb-8 leading-relaxed transition-colors
742
- ${g} ${b}
774
+ ${m} ${l}
743
775
  ${!s && "mx-auto max-w-2xl"}
744
776
  ${a.subtitle || ""}
745
- `, children: d }),
777
+ `, children: x }),
746
778
  t.length > 0 && /* @__PURE__ */ e.jsx("div", { className: `flex flex-col sm:flex-row gap-4 ${w}`, children: t.map((y, k) => /* @__PURE__ */ e.jsx(
747
- M,
779
+ D,
748
780
  {
749
781
  label: y.label,
750
782
  variant: y.variant || "primary",
@@ -771,17 +803,20 @@ const de = ({
771
803
  )
772
804
  ] }) })
773
805
  ] }) }) });
774
- }, xe = ({
775
- logo: o = "Marc.Dev",
776
- isLogoImage: x = !1,
777
- links: d,
806
+ }, fe = ({
807
+ logo: n = "Marc.Dev",
808
+ isLogoImage: d = !1,
809
+ links: x,
778
810
  actions: s = [],
779
811
  customStyles: t = {},
780
812
  isOpen: a = !1,
781
813
  isScrolled: f = !1,
782
814
  onToggleMenu: i,
783
815
  onLinkClick: u,
784
- onLogoClick: m
816
+ onLogoClick: g,
817
+ enableLanguageToggle: b = !1,
818
+ language: o = "en",
819
+ onLanguageChange: m
785
820
  }) => /* @__PURE__ */ e.jsxs(
786
821
  "nav",
787
822
  {
@@ -793,13 +828,13 @@ const de = ({
793
828
  `,
794
829
  children: [
795
830
  /* @__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 ${t.logo || ""}`, onClick: m, children: x ? /* @__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 }) }),
831
+ /* @__PURE__ */ e.jsx("div", { className: `flex-shrink-0 cursor-pointer flex items-center ${t.logo || ""}`, onClick: g, children: d ? /* @__PURE__ */ e.jsx("img", { src: n, 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: n }) }),
797
832
  /* @__PURE__ */ e.jsxs("div", { className: "hidden md:flex space-x-8 items-center", children: [
798
- d.map((l) => /* @__PURE__ */ e.jsx(
833
+ x.map((l) => /* @__PURE__ */ e.jsx(
799
834
  "a",
800
835
  {
801
836
  href: l.href,
802
- onClick: (n) => u == null ? void 0 : u(n, l.href),
837
+ onClick: (h) => u == null ? void 0 : u(h, l.href),
803
838
  className: `
804
839
  text-sm font-medium transition-colors
805
840
  hover:text-blue-600 dark:hover:text-blue-400
@@ -811,11 +846,25 @@ const de = ({
811
846
  l.label
812
847
  )),
813
848
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-4 pl-6 border-l border-gray-200 dark:border-gray-700", children: [
849
+ b && /* @__PURE__ */ e.jsx(
850
+ Q,
851
+ {
852
+ initialLanguage: o,
853
+ onLanguageChange: m
854
+ }
855
+ ),
814
856
  /* @__PURE__ */ e.jsx(Z, {}),
815
- s.map((l, n) => /* @__PURE__ */ e.jsx(M, { ...l, size: "small" }, n))
857
+ s.map((l, h) => /* @__PURE__ */ e.jsx(D, { ...l, size: "small" }, h))
816
858
  ] })
817
859
  ] }),
818
860
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-4 md:hidden", children: [
861
+ b && /* @__PURE__ */ e.jsx(
862
+ Q,
863
+ {
864
+ initialLanguage: o,
865
+ onLanguageChange: m
866
+ }
867
+ ),
819
868
  /* @__PURE__ */ e.jsx(Z, {}),
820
869
  /* @__PURE__ */ e.jsx(
821
870
  "button",
@@ -838,25 +887,25 @@ const de = ({
838
887
  ${t.mobileMenu || ""}
839
888
  `,
840
889
  children: /* @__PURE__ */ e.jsxs("div", { className: "px-6 py-6 space-y-4 flex flex-col items-center", children: [
841
- d.map((l) => /* @__PURE__ */ e.jsx(
890
+ x.map((l) => /* @__PURE__ */ e.jsx(
842
891
  "a",
843
892
  {
844
893
  href: l.href,
845
- onClick: (n) => u == null ? void 0 : u(n, l.href),
894
+ onClick: (h) => u == null ? void 0 : u(h, l.href),
846
895
  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
896
  children: l.label
848
897
  },
849
898
  l.label
850
899
  )),
851
- s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "pt-4 w-full flex flex-col gap-3", children: s.map((l, n) => /* @__PURE__ */ e.jsx(M, { ...l, size: "medium", className: "w-full" }, n)) })
900
+ s.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "pt-4 w-full flex flex-col gap-3", children: s.map((l, h) => /* @__PURE__ */ e.jsx(D, { ...l, size: "medium", className: "w-full" }, h)) })
852
901
  ] })
853
902
  }
854
903
  )
855
904
  ]
856
905
  }
857
- ), he = (o) => {
858
- const [x, d] = z(!1), [s, t] = z(!1);
859
- Q(() => {
906
+ ), pe = (n) => {
907
+ const [d, x] = M(!1), [s, t] = M(!1);
908
+ K(() => {
860
909
  let i = !1;
861
910
  const u = () => {
862
911
  i || (window.requestAnimationFrame(() => {
@@ -867,26 +916,26 @@ const de = ({
867
916
  }, []);
868
917
  const a = (i, u) => {
869
918
  i.preventDefault();
870
- const m = document.querySelector(u);
871
- m && (m.scrollIntoView({ behavior: "smooth" }), d(!1));
919
+ const g = document.querySelector(u);
920
+ g && (g.scrollIntoView({ behavior: "smooth" }), x(!1));
872
921
  }, f = () => {
873
922
  window.scrollTo({ top: 0, behavior: "smooth" });
874
923
  };
875
924
  return /* @__PURE__ */ e.jsx(
876
- xe,
925
+ fe,
877
926
  {
878
- ...o,
879
- isOpen: x,
927
+ ...n,
928
+ isOpen: d,
880
929
  isScrolled: s,
881
- onToggleMenu: () => d(!x),
930
+ onToggleMenu: () => x(!d),
882
931
  onLinkClick: a,
883
932
  onLogoClick: f
884
933
  }
885
934
  );
886
- }, pe = ({
887
- title: o = "About Me",
888
- avatarUrl: x,
889
- bio: d,
935
+ }, ve = ({
936
+ title: n = "About Me",
937
+ avatarUrl: d,
938
+ bio: x,
890
939
  skillsTitle: s = "Tech Stack",
891
940
  skills: t = [],
892
941
  customStyles: a = {},
@@ -894,12 +943,12 @@ const de = ({
894
943
  // Default Colors
895
944
  backgroundColor: i = "bg-white",
896
945
  darkBackgroundColor: u = "dark:bg-gray-900",
897
- borderColor: m = "border-gray-100",
898
- darkBorderColor: l = "dark:border-gray-800",
899
- titleColor: n = "text-gray-900",
900
- darkTitleColor: g = "dark:text-white",
901
- textColor: b = "text-gray-600",
902
- darkTextColor: $ = "dark:text-gray-300"
946
+ borderColor: g = "border-gray-100",
947
+ darkBorderColor: b = "dark:border-gray-800",
948
+ titleColor: o = "text-gray-900",
949
+ darkTitleColor: m = "dark:text-white",
950
+ textColor: l = "text-gray-600",
951
+ darkTextColor: h = "dark:text-gray-300"
903
952
  }) => /* @__PURE__ */ e.jsx(
904
953
  "section",
905
954
  {
@@ -908,29 +957,29 @@ const de = ({
908
957
  py-20 transition-colors duration-300
909
958
  border-y
910
959
  ${i} ${u}
911
- ${m} ${l}
960
+ ${g} ${b}
912
961
  ${a.container || ""}
913
962
  `,
914
963
  children: /* @__PURE__ */ e.jsxs("div", { className: `max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 ${a.contentWrapper || ""}`, children: [
915
- o && /* @__PURE__ */ e.jsxs("div", { className: "text-center mb-12", children: [
964
+ n && /* @__PURE__ */ e.jsxs("div", { className: "text-center mb-12", children: [
916
965
  /* @__PURE__ */ e.jsx("h2", { className: `
917
966
  text-3xl font-bold transition-colors
918
- ${n} ${g}
967
+ ${o} ${m}
919
968
  ${a.title || ""}
920
- `, children: o }),
969
+ `, children: n }),
921
970
  /* @__PURE__ */ e.jsx("div", { className: "mt-2 h-1 w-20 bg-blue-600 mx-auto rounded" })
922
971
  ] }),
923
972
  /* @__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(ie, { src: x, size: "xl" }) }),
925
- /* @__PURE__ */ e.jsxs("div", { className: `text-lg leading-relaxed ${b} ${$} ${a.textWrapper || ""}`, children: [
926
- /* @__PURE__ */ e.jsx("p", { className: `mb-8 whitespace-pre-line ${a.bio || ""}`, children: d }),
973
+ /* @__PURE__ */ e.jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ e.jsx(de, { src: d, size: "xl" }) }),
974
+ /* @__PURE__ */ e.jsxs("div", { className: `text-lg leading-relaxed ${l} ${h} ${a.textWrapper || ""}`, children: [
975
+ /* @__PURE__ */ e.jsx("p", { className: `mb-8 whitespace-pre-line ${a.bio || ""}`, children: x }),
927
976
  t.length > 0 && /* @__PURE__ */ e.jsxs("div", { children: [
928
977
  s && /* @__PURE__ */ e.jsx("h3", { className: `
929
978
  text-sm font-bold uppercase tracking-wide mb-3
930
- ${n} ${g}
979
+ ${o} ${m}
931
980
  ${a.skillsTitle || ""}
932
981
  `, children: s }),
933
- /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: t.map((j) => /* @__PURE__ */ e.jsx(K, { label: j, variant: "secondary" }, j)) })
982
+ /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: t.map((v) => /* @__PURE__ */ e.jsx(ee, { label: v, variant: "secondary" }, v)) })
934
983
  ] })
935
984
  ] })
936
985
  ] })
@@ -938,15 +987,16 @@ const de = ({
938
987
  }
939
988
  );
940
989
  export {
941
- ie as Avatar,
942
- K as Badge,
943
- M as Button,
990
+ de as Avatar,
991
+ ee as Badge,
992
+ D as Button,
944
993
  me as ContentGrid,
945
- ge as Footer,
946
- be as Hero,
947
- ce as Input,
948
- he as Navbar,
949
- pe as ProfileSection,
994
+ be as Footer,
995
+ he as Hero,
996
+ xe as Input,
997
+ Q as LanguageToggle,
998
+ pe as Navbar,
999
+ ve as ProfileSection,
950
1000
  ue as ProjectCard,
951
1001
  Z as ThemeToggle
952
1002
  };