@iniguezmarc/design-system 0.0.3 → 0.0.7

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