@orbit_ui_toolkit/orbitui-kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +73 -0
  2. package/dist/App.d.ts +2 -0
  3. package/dist/components/Alert/Alert.d.ts +24 -0
  4. package/dist/components/Alert/Alert.stories.d.ts +11 -0
  5. package/dist/components/Avatar/Avatar.d.ts +11 -0
  6. package/dist/components/Avatar/Avatar.stories.d.ts +9 -0
  7. package/dist/components/Badge/Badge.d.ts +9 -0
  8. package/dist/components/Badge/Badge.stories.d.ts +9 -0
  9. package/dist/components/Box/Box.d.ts +12 -0
  10. package/dist/components/Box/Box.stories.d.ts +8 -0
  11. package/dist/components/Button/Button.d.ts +11 -0
  12. package/dist/components/Button/Button.stories.d.ts +10 -0
  13. package/dist/components/Card/Card.d.ts +10 -0
  14. package/dist/components/Card/Card.stories.d.ts +8 -0
  15. package/dist/components/Dialog/BaseDialog.d.ts +11 -0
  16. package/dist/components/Dialog/BaseDialog.stories.d.ts +8 -0
  17. package/dist/components/Grid/Grid.d.ts +35 -0
  18. package/dist/components/Grid/Grid.stories.d.ts +8 -0
  19. package/dist/components/Input/Input.d.ts +8 -0
  20. package/dist/components/Input/Input.stories.d.ts +11 -0
  21. package/dist/components/Loader/Loader.d.ts +9 -0
  22. package/dist/components/Loader/Loader.stories.d.ts +10 -0
  23. package/dist/components/Post/Post.d.ts +16 -0
  24. package/dist/components/Post/Post.stories.d.ts +9 -0
  25. package/dist/components/Skeleton/Skeleton.d.ts +8 -0
  26. package/dist/components/Skeleton/Skeleton.stories.d.ts +9 -0
  27. package/dist/components/Typography/Typography.d.ts +18 -0
  28. package/dist/components/Typography/Typography.stories.d.ts +8 -0
  29. package/dist/index.d.ts +9 -0
  30. package/dist/main.d.ts +1 -0
  31. package/dist/orbitui.cjs.js +24 -0
  32. package/dist/orbitui.es.js +783 -0
  33. package/package.json +63 -0
@@ -0,0 +1,783 @@
1
+ import G from "react";
2
+ var R = { exports: {} }, C = {};
3
+ var F;
4
+ function te() {
5
+ if (F) return C;
6
+ F = 1;
7
+ var n = /* @__PURE__ */ Symbol.for("react.transitional.element"), a = /* @__PURE__ */ Symbol.for("react.fragment");
8
+ function l(t, o, i) {
9
+ var c = null;
10
+ if (i !== void 0 && (c = "" + i), o.key !== void 0 && (c = "" + o.key), "key" in o) {
11
+ i = {};
12
+ for (var d in o)
13
+ d !== "key" && (i[d] = o[d]);
14
+ } else i = o;
15
+ return o = i.ref, {
16
+ $$typeof: n,
17
+ type: t,
18
+ key: c,
19
+ ref: o !== void 0 ? o : null,
20
+ props: i
21
+ };
22
+ }
23
+ return C.Fragment = a, C.jsx = l, C.jsxs = l, C;
24
+ }
25
+ var _ = {};
26
+ var U;
27
+ function se() {
28
+ return U || (U = 1, process.env.NODE_ENV !== "production" && (function() {
29
+ function n(e) {
30
+ if (e == null) return null;
31
+ if (typeof e == "function")
32
+ return e.$$typeof === K ? null : e.displayName || e.name || null;
33
+ if (typeof e == "string") return e;
34
+ switch (e) {
35
+ case N:
36
+ return "Fragment";
37
+ case M:
38
+ return "Profiler";
39
+ case L:
40
+ return "StrictMode";
41
+ case J:
42
+ return "Suspense";
43
+ case Z:
44
+ return "SuspenseList";
45
+ case Q:
46
+ return "Activity";
47
+ }
48
+ if (typeof e == "object")
49
+ switch (typeof e.tag == "number" && console.error(
50
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
51
+ ), e.$$typeof) {
52
+ case k:
53
+ return "Portal";
54
+ case q:
55
+ return e.displayName || "Context";
56
+ case T:
57
+ return (e._context.displayName || "Context") + ".Consumer";
58
+ case H:
59
+ var s = e.render;
60
+ return e = e.displayName, e || (e = s.displayName || s.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
61
+ case X:
62
+ return s = e.displayName || null, s !== null ? s : n(e.type) || "Memo";
63
+ case $:
64
+ s = e._payload, e = e._init;
65
+ try {
66
+ return n(e(s));
67
+ } catch {
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+ function a(e) {
73
+ return "" + e;
74
+ }
75
+ function l(e) {
76
+ try {
77
+ a(e);
78
+ var s = !1;
79
+ } catch {
80
+ s = !0;
81
+ }
82
+ if (s) {
83
+ s = console;
84
+ var u = s.error, x = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
85
+ return u.call(
86
+ s,
87
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
88
+ x
89
+ ), a(e);
90
+ }
91
+ }
92
+ function t(e) {
93
+ if (e === N) return "<>";
94
+ if (typeof e == "object" && e !== null && e.$$typeof === $)
95
+ return "<...>";
96
+ try {
97
+ var s = n(e);
98
+ return s ? "<" + s + ">" : "<...>";
99
+ } catch {
100
+ return "<...>";
101
+ }
102
+ }
103
+ function o() {
104
+ var e = S.A;
105
+ return e === null ? null : e.getOwner();
106
+ }
107
+ function i() {
108
+ return Error("react-stack-top-frame");
109
+ }
110
+ function c(e) {
111
+ if (z.call(e, "key")) {
112
+ var s = Object.getOwnPropertyDescriptor(e, "key").get;
113
+ if (s && s.isReactWarning) return !1;
114
+ }
115
+ return e.key !== void 0;
116
+ }
117
+ function d(e, s) {
118
+ function u() {
119
+ W || (W = !0, console.error(
120
+ "%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)",
121
+ s
122
+ ));
123
+ }
124
+ u.isReactWarning = !0, Object.defineProperty(e, "key", {
125
+ get: u,
126
+ configurable: !0
127
+ });
128
+ }
129
+ function h() {
130
+ var e = n(this.type);
131
+ return B[e] || (B[e] = !0, console.error(
132
+ "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."
133
+ )), e = this.props.ref, e !== void 0 ? e : null;
134
+ }
135
+ function p(e, s, u, x, E, O) {
136
+ var m = u.ref;
137
+ return e = {
138
+ $$typeof: v,
139
+ type: e,
140
+ key: s,
141
+ props: u,
142
+ _owner: x
143
+ }, (m !== void 0 ? m : null) !== null ? Object.defineProperty(e, "ref", {
144
+ enumerable: !1,
145
+ get: h
146
+ }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
147
+ configurable: !1,
148
+ enumerable: !1,
149
+ writable: !0,
150
+ value: 0
151
+ }), Object.defineProperty(e, "_debugInfo", {
152
+ configurable: !1,
153
+ enumerable: !1,
154
+ writable: !0,
155
+ value: null
156
+ }), Object.defineProperty(e, "_debugStack", {
157
+ configurable: !1,
158
+ enumerable: !1,
159
+ writable: !0,
160
+ value: E
161
+ }), Object.defineProperty(e, "_debugTask", {
162
+ configurable: !1,
163
+ enumerable: !1,
164
+ writable: !0,
165
+ value: O
166
+ }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
167
+ }
168
+ function g(e, s, u, x, E, O) {
169
+ var m = s.children;
170
+ if (m !== void 0)
171
+ if (x)
172
+ if (ee(m)) {
173
+ for (x = 0; x < m.length; x++)
174
+ b(m[x]);
175
+ Object.freeze && Object.freeze(m);
176
+ } else
177
+ console.error(
178
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
179
+ );
180
+ else b(m);
181
+ if (z.call(s, "key")) {
182
+ m = n(e);
183
+ var y = Object.keys(s).filter(function(re) {
184
+ return re !== "key";
185
+ });
186
+ x = 0 < y.length ? "{key: someKey, " + y.join(": ..., ") + ": ...}" : "{key: someKey}", Y[m + x] || (y = 0 < y.length ? "{" + y.join(": ..., ") + ": ...}" : "{}", console.error(
187
+ `A props object containing a "key" prop is being spread into JSX:
188
+ let props = %s;
189
+ <%s {...props} />
190
+ React keys must be passed directly to JSX without using spread:
191
+ let props = %s;
192
+ <%s key={someKey} {...props} />`,
193
+ x,
194
+ m,
195
+ y,
196
+ m
197
+ ), Y[m + x] = !0);
198
+ }
199
+ if (m = null, u !== void 0 && (l(u), m = "" + u), c(s) && (l(s.key), m = "" + s.key), "key" in s) {
200
+ u = {};
201
+ for (var P in s)
202
+ P !== "key" && (u[P] = s[P]);
203
+ } else u = s;
204
+ return m && d(
205
+ u,
206
+ typeof e == "function" ? e.displayName || e.name || "Unknown" : e
207
+ ), p(
208
+ e,
209
+ m,
210
+ u,
211
+ o(),
212
+ E,
213
+ O
214
+ );
215
+ }
216
+ function b(e) {
217
+ j(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === $ && (e._payload.status === "fulfilled" ? j(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
218
+ }
219
+ function j(e) {
220
+ return typeof e == "object" && e !== null && e.$$typeof === v;
221
+ }
222
+ var f = G, v = /* @__PURE__ */ Symbol.for("react.transitional.element"), k = /* @__PURE__ */ Symbol.for("react.portal"), N = /* @__PURE__ */ Symbol.for("react.fragment"), L = /* @__PURE__ */ Symbol.for("react.strict_mode"), M = /* @__PURE__ */ Symbol.for("react.profiler"), T = /* @__PURE__ */ Symbol.for("react.consumer"), q = /* @__PURE__ */ Symbol.for("react.context"), H = /* @__PURE__ */ Symbol.for("react.forward_ref"), J = /* @__PURE__ */ Symbol.for("react.suspense"), Z = /* @__PURE__ */ Symbol.for("react.suspense_list"), X = /* @__PURE__ */ Symbol.for("react.memo"), $ = /* @__PURE__ */ Symbol.for("react.lazy"), Q = /* @__PURE__ */ Symbol.for("react.activity"), K = /* @__PURE__ */ Symbol.for("react.client.reference"), S = f.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, z = Object.prototype.hasOwnProperty, ee = Array.isArray, A = console.createTask ? console.createTask : function() {
223
+ return null;
224
+ };
225
+ f = {
226
+ react_stack_bottom_frame: function(e) {
227
+ return e();
228
+ }
229
+ };
230
+ var W, B = {}, D = f.react_stack_bottom_frame.bind(
231
+ f,
232
+ i
233
+ )(), I = A(t(i)), Y = {};
234
+ _.Fragment = N, _.jsx = function(e, s, u) {
235
+ var x = 1e4 > S.recentlyCreatedOwnerStacks++;
236
+ return g(
237
+ e,
238
+ s,
239
+ u,
240
+ !1,
241
+ x ? Error("react-stack-top-frame") : D,
242
+ x ? A(t(e)) : I
243
+ );
244
+ }, _.jsxs = function(e, s, u) {
245
+ var x = 1e4 > S.recentlyCreatedOwnerStacks++;
246
+ return g(
247
+ e,
248
+ s,
249
+ u,
250
+ !0,
251
+ x ? Error("react-stack-top-frame") : D,
252
+ x ? A(t(e)) : I
253
+ );
254
+ };
255
+ })()), _;
256
+ }
257
+ var V;
258
+ function ne() {
259
+ return V || (V = 1, process.env.NODE_ENV === "production" ? R.exports = te() : R.exports = se()), R.exports;
260
+ }
261
+ var r = ne();
262
+ const w = ({
263
+ variant: n = "primary",
264
+ size: a = "md",
265
+ rounded: l = "full",
266
+ isLoading: t = !1,
267
+ fullWidth: o = !1,
268
+ leftIcon: i,
269
+ rightIcon: c,
270
+ className: d = "",
271
+ children: h,
272
+ disabled: p,
273
+ ...g
274
+ }) => {
275
+ const b = "inline-flex items-center justify-center font-medium disabled:opacity-50 disabled:pointer-events-none transition-colors duration-150", j = {
276
+ primary: "bg-[#0070f3] text-white hover:bg-[#0060df] border border-transparent",
277
+ secondary: "bg-transparent text-[#0070f3] border border-[#0070f3] hover:bg-blue-50",
278
+ // White with Blue Border
279
+ tertiary: "bg-transparent text-[#0070f3] border border-gray-300 hover:border-gray-400 hover:bg-gray-50",
280
+ // White with Gray Border
281
+ danger: "bg-[#c23b22] text-white hover:bg-[#a0301b] border border-transparent",
282
+ // Burnt Orange/Red
283
+ link: "bg-transparent text-[#0070f3] hover:underline px-0 py-0 h-auto border-none",
284
+ // Text only
285
+ ghost: "bg-transparent text-gray-700 hover:bg-gray-100 border-transparent"
286
+ // Transparent with hover bg
287
+ }, f = {
288
+ sm: "px-4 py-1.5 text-xs gap-1.5 min-w-[80px]",
289
+ md: "px-6 py-2 text-sm gap-2 min-w-[100px]",
290
+ lg: "px-8 py-3 text-base gap-2 min-w-[120px]",
291
+ icon: "w-10 h-10 p-0 min-w-0"
292
+ }, v = {
293
+ none: "rounded-none",
294
+ sm: "rounded-sm",
295
+ md: "rounded-md",
296
+ lg: "rounded-lg",
297
+ full: "rounded-full"
298
+ }, k = o ? "w-full" : "";
299
+ return /* @__PURE__ */ r.jsxs(
300
+ "button",
301
+ {
302
+ className: `${b} ${j[n]} ${f[a]} ${v[l]} ${k} ${d}`,
303
+ disabled: p || t,
304
+ ...g,
305
+ children: [
306
+ t && /* @__PURE__ */ r.jsxs("svg", { className: "animate-spin -ml-1 mr-2 h-4 w-4", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [
307
+ /* @__PURE__ */ r.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
308
+ /* @__PURE__ */ r.jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })
309
+ ] }),
310
+ !t && i && /* @__PURE__ */ r.jsx("span", { className: "shrink-0", children: i }),
311
+ /* @__PURE__ */ r.jsx("span", { className: "truncate", children: t ? "Loading..." : h }),
312
+ !t && c && /* @__PURE__ */ r.jsx("span", { className: "shrink-0", children: c })
313
+ ]
314
+ }
315
+ );
316
+ }, ce = ({
317
+ label: n,
318
+ error: a,
319
+ leftIcon: l,
320
+ rightIcon: t,
321
+ className: o = "",
322
+ ...i
323
+ }) => /* @__PURE__ */ r.jsxs("div", { className: "flex flex-col gap-1.5 w-full", children: [
324
+ n && /* @__PURE__ */ r.jsx("label", { className: "text-sm font-medium text-gray-700", children: n }),
325
+ /* @__PURE__ */ r.jsxs("div", { className: "relative", children: [
326
+ l && /* @__PURE__ */ r.jsx("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none text-gray-400", children: l }),
327
+ /* @__PURE__ */ r.jsx(
328
+ "input",
329
+ {
330
+ className: `
331
+ w-full
332
+ ${l ? "pl-10" : "px-3"}
333
+ ${t ? "pr-10" : "px-3"}
334
+ py-2
335
+ bg-white
336
+ border
337
+ ${a ? "border-red-500" : "border-gray-300"}
338
+ rounded-md
339
+ shadow-sm
340
+ focus:outline-none
341
+ focus:ring-2
342
+ ${a ? "focus:ring-red-500" : "focus:ring-blue-500"}
343
+ focus:border-transparent
344
+ transition-all
345
+ duration-200
346
+ hover:border-gray-400
347
+ ${o}
348
+ `,
349
+ ...i
350
+ }
351
+ ),
352
+ t && /* @__PURE__ */ r.jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400", children: t })
353
+ ] }),
354
+ a && /* @__PURE__ */ r.jsx("span", { className: "text-xs text-red-500", children: a })
355
+ ] }), de = ({
356
+ title: n,
357
+ subtitle: a,
358
+ children: l,
359
+ footer: t,
360
+ className: o = ""
361
+ }) => /* @__PURE__ */ r.jsxs("div", { className: `bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden ${o}`, children: [
362
+ (n || a) && /* @__PURE__ */ r.jsxs("div", { className: "px-6 py-4 border-b border-gray-100", children: [
363
+ n && /* @__PURE__ */ r.jsx("h3", { className: "text-lg font-semibold text-gray-900", children: n }),
364
+ a && /* @__PURE__ */ r.jsx("p", { className: "text-sm text-gray-500 mt-1", children: a })
365
+ ] }),
366
+ /* @__PURE__ */ r.jsx("div", { className: "px-6 py-4", children: l }),
367
+ t && /* @__PURE__ */ r.jsx("div", { className: "px-6 py-4 bg-gray-50 border-t border-gray-100", children: t })
368
+ ] }), ue = ({
369
+ username: n,
370
+ profilePic: a,
371
+ postImage: l,
372
+ likesCount: t,
373
+ caption: o,
374
+ location: i,
375
+ isLiked: c = !1,
376
+ isBookmarked: d = !1,
377
+ onLike: h,
378
+ onComment: p,
379
+ onShare: g,
380
+ onBookmark: b
381
+ }) => /* @__PURE__ */ r.jsxs("div", { className: "group relative max-w-[420px] mx-auto bg-white rounded-3xl overflow-hidden shadow-sm hover:shadow-xl transition-all duration-300 border border-gray-100/50", children: [
382
+ /* @__PURE__ */ r.jsxs("div", { className: "relative w-full aspect-4/5 bg-gray-100 overflow-hidden", children: [
383
+ /* @__PURE__ */ r.jsx(
384
+ "img",
385
+ {
386
+ src: l,
387
+ alt: "Post content",
388
+ className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"
389
+ }
390
+ ),
391
+ /* @__PURE__ */ r.jsx("div", { className: "absolute top-4 right-4 opacity-0 group-hover:opacity-100 transition-opacity", children: /* @__PURE__ */ r.jsx(
392
+ w,
393
+ {
394
+ variant: "ghost",
395
+ size: "icon",
396
+ rounded: "full",
397
+ className: "bg-black/20 backdrop-blur-md text-white hover:bg-black/40 border-none",
398
+ children: /* @__PURE__ */ r.jsxs("svg", { "aria-label": "More options", fill: "currentColor", height: "24", role: "img", viewBox: "0 0 24 24", width: "24", children: [
399
+ /* @__PURE__ */ r.jsx("circle", { cx: "12", cy: "12", r: "1.5" }),
400
+ /* @__PURE__ */ r.jsx("circle", { cx: "6", cy: "12", r: "1.5" }),
401
+ /* @__PURE__ */ r.jsx("circle", { cx: "18", cy: "12", r: "1.5" })
402
+ ] })
403
+ }
404
+ ) })
405
+ ] }),
406
+ /* @__PURE__ */ r.jsxs("div", { className: "p-5", children: [
407
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between mb-4", children: [
408
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center gap-3", children: [
409
+ /* @__PURE__ */ r.jsx("div", { className: "relative", children: /* @__PURE__ */ r.jsx(
410
+ "img",
411
+ {
412
+ src: a,
413
+ alt: n,
414
+ className: "w-10 h-10 rounded-full object-cover ring-2 ring-offset-2 ring-indigo-500"
415
+ }
416
+ ) }),
417
+ /* @__PURE__ */ r.jsxs("div", { className: "flex flex-col", children: [
418
+ /* @__PURE__ */ r.jsx("span", { className: "font-bold text-gray-900 text-sm leading-tight hover:text-indigo-600 cursor-pointer transition-colors", children: n }),
419
+ i && /* @__PURE__ */ r.jsx("span", { className: "text-[11px] font-medium text-gray-400 uppercase tracking-wide", children: i })
420
+ ] })
421
+ ] }),
422
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center gap-2", children: [
423
+ /* @__PURE__ */ r.jsx(
424
+ w,
425
+ {
426
+ variant: "ghost",
427
+ size: "icon",
428
+ rounded: "full",
429
+ onClick: h,
430
+ className: `transition-colors ${c ? "text-rose-500 hover:bg-rose-50" : "text-gray-400 hover:text-rose-500"}`,
431
+ children: c ? /* @__PURE__ */ r.jsx("svg", { "aria-label": "Unlike", fill: "currentColor", height: "26", role: "img", viewBox: "0 0 48 48", width: "26", children: /* @__PURE__ */ r.jsx("path", { d: "M34.6 3.1c-4.5 0-7.9 1.8-10.6 5.6-2.7-3.7-6.1-5.5-10.6-5.5C6 3.1 0 9.6 0 17.6c0 14.9 17.8 29.1 23.9 30.2h.2c6.1-1.1 23.9-15.3 23.9-30.2 0-8-6-14.5-13.4-14.5z" }) }) : /* @__PURE__ */ r.jsx("svg", { "aria-label": "Like", fill: "currentColor", height: "26", role: "img", viewBox: "0 0 24 24", width: "26", children: /* @__PURE__ */ r.jsx("path", { d: "M16.792 3.904A4.989 4.989 0 0 1 21.5 9.122c0 3.072-2.652 4.959-5.197 7.222-2.512 2.243-3.865 3.469-4.303 3.752-.477-.309-2.143-1.823-4.303-3.752C5.141 14.072 2.5 12.194 2.5 9.122a4.989 4.989 0 0 1 4.708-5.218 4.21 4.21 0 0 1 3.675 1.941c.252.342.392.545.517.545s.265-.203.517-.545a4.21 4.21 0 0 1 3.675-1.941m0-2a6.21 6.21 0 0 0-5.292 2.768 6.21 6.21 0 0 0-5.292-2.768 6.989 6.989 0 0 0-6.708 7.218c0 4.19 2.923 6.64 5.642 9.066 2.057 1.838 4.19 3.744 5.358 5.485.474-.707 2.112-2.298 5.358-5.188 2.308-2.053 5.358-4.706 5.358-9.363a6.989 6.989 0 0 0-6.708-7.218Z" }) })
432
+ }
433
+ ),
434
+ /* @__PURE__ */ r.jsx(
435
+ w,
436
+ {
437
+ variant: "ghost",
438
+ size: "icon",
439
+ rounded: "full",
440
+ onClick: p,
441
+ className: "text-gray-400 hover:text-indigo-500",
442
+ children: /* @__PURE__ */ r.jsx("svg", { "aria-label": "Comment", fill: "currentColor", height: "26", role: "img", viewBox: "0 0 24 24", width: "26", children: /* @__PURE__ */ r.jsx("path", { d: "M20.656 17.008a9.993 9.993 0 1 0-3.59 3.615L22 22Z", fill: "none", stroke: "currentColor", strokeLinejoin: "round", strokeWidth: "2" }) })
443
+ }
444
+ ),
445
+ /* @__PURE__ */ r.jsx(
446
+ w,
447
+ {
448
+ variant: "ghost",
449
+ size: "icon",
450
+ rounded: "full",
451
+ onClick: g,
452
+ className: "text-gray-400 hover:text-indigo-500",
453
+ children: /* @__PURE__ */ r.jsxs("svg", { "aria-label": "Share Post", fill: "currentColor", height: "26", role: "img", viewBox: "0 0 24 24", width: "26", children: [
454
+ /* @__PURE__ */ r.jsx("line", { fill: "none", stroke: "currentColor", strokeLinejoin: "round", strokeWidth: "2", x1: "22", x2: "9.218", y1: "3", y2: "10.083" }),
455
+ /* @__PURE__ */ r.jsx("polygon", { fill: "none", points: "11.698 20.334 22 3.001 2 3.001 9.218 10.084 11.698 20.334", stroke: "currentColor", strokeLinejoin: "round", strokeWidth: "2" })
456
+ ] })
457
+ }
458
+ )
459
+ ] })
460
+ ] }),
461
+ /* @__PURE__ */ r.jsxs("div", { className: "space-y-3", children: [
462
+ /* @__PURE__ */ r.jsx("p", { className: "text-gray-800 text-sm leading-relaxed", children: o }),
463
+ /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between pt-2 border-t border-gray-50", children: [
464
+ /* @__PURE__ */ r.jsxs("span", { className: "font-semibold text-xs text-gray-500", children: [
465
+ t.toLocaleString(),
466
+ " Likes"
467
+ ] }),
468
+ /* @__PURE__ */ r.jsx("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ r.jsx(
469
+ w,
470
+ {
471
+ variant: "ghost",
472
+ size: "icon",
473
+ rounded: "full",
474
+ onClick: b,
475
+ className: `transition-colors ${d ? "text-gray-900" : "text-gray-400 hover:text-gray-900"}`,
476
+ children: d ? /* @__PURE__ */ r.jsx("svg", { "aria-label": "Remove", fill: "currentColor", height: "22", role: "img", viewBox: "0 0 24 24", width: "22", children: /* @__PURE__ */ r.jsx("path", { d: "M20 22a.999.999 0 0 1-.687-.273L12 14.89l-7.313 6.837A1 1 0 0 1 3 21V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1Z" }) }) : /* @__PURE__ */ r.jsx("svg", { "aria-label": "Save", fill: "currentColor", height: "22", role: "img", viewBox: "0 0 24 24", width: "22", children: /* @__PURE__ */ r.jsx("path", { d: "M20 22a.999.999 0 0 1-.687-.273L12 14.89l-7.313 6.837A1 1 0 0 1 3 21V3a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1Z", fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2" }) })
477
+ }
478
+ ) })
479
+ ] }),
480
+ /* @__PURE__ */ r.jsxs("div", { className: "relative mt-2", children: [
481
+ /* @__PURE__ */ r.jsx(
482
+ "input",
483
+ {
484
+ type: "text",
485
+ placeholder: "Add a comment...",
486
+ className: "w-full text-xs text-gray-600 bg-gray-50 rounded-full px-3 py-2 outline-none focus:ring-1 focus:ring-indigo-200 transition-all"
487
+ }
488
+ ),
489
+ /* @__PURE__ */ r.jsx("div", { className: "absolute right-2 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ r.jsx(w, { variant: "ghost", size: "sm", className: "text-indigo-500 font-bold px-2 py-0 h-auto hover:bg-transparent hover:text-indigo-700 min-w-0", children: "Post" }) })
490
+ ] })
491
+ ] })
492
+ ] })
493
+ ] }), xe = ({
494
+ variant: n = "spinner",
495
+ size: a = "md",
496
+ className: l = "",
497
+ color: t,
498
+ colors: o
499
+ }) => {
500
+ const i = {
501
+ sm: "w-4 h-4",
502
+ md: "w-8 h-8",
503
+ lg: "w-12 h-12",
504
+ xl: "w-16 h-16"
505
+ }, c = {
506
+ sm: "w-1 h-1",
507
+ md: "w-2 h-2",
508
+ lg: "w-3 h-3",
509
+ xl: "w-4 h-4"
510
+ }, d = i[a], h = "bg-gradient-to-tr from-yellow-400 via-red-500 to-purple-600";
511
+ if (n === "dots") {
512
+ const p = c[a], g = !!t || !!o?.length, b = (f) => {
513
+ if (!g) return {};
514
+ const v = o?.[f] || t;
515
+ return v ? { backgroundColor: v } : {};
516
+ }, j = () => g ? "" : h;
517
+ return /* @__PURE__ */ r.jsx("div", { className: `flex items-center justify-center gap-1 ${l}`, children: [0, 1, 2].map((f) => /* @__PURE__ */ r.jsx(
518
+ "div",
519
+ {
520
+ className: `${p} rounded-full animate-bounce ${j()}`,
521
+ style: {
522
+ ...b(f),
523
+ animationDelay: f === 0 ? "-0.3s" : f === 1 ? "-0.15s" : "0s"
524
+ }
525
+ },
526
+ f
527
+ )) });
528
+ }
529
+ if (n === "pulse") {
530
+ const p = t ? "" : h;
531
+ return /* @__PURE__ */ r.jsxs("div", { className: `relative flex items-center justify-center ${d} ${l}`, children: [
532
+ /* @__PURE__ */ r.jsx(
533
+ "span",
534
+ {
535
+ className: `absolute inline-flex h-full w-full rounded-full opacity-75 animate-ping ${p}`,
536
+ style: t ? { backgroundColor: t } : {}
537
+ }
538
+ ),
539
+ /* @__PURE__ */ r.jsx(
540
+ "span",
541
+ {
542
+ className: `relative inline-flex rounded-full h-3/4 w-3/4 ${p}`,
543
+ style: t ? { backgroundColor: t } : {}
544
+ }
545
+ )
546
+ ] });
547
+ }
548
+ return n === "multicolor" ? /* @__PURE__ */ r.jsx("div", { className: `${d} relative ${l}`, children: /* @__PURE__ */ r.jsx("div", { className: `absolute inset-0 rounded-full ${h} animate-spin`, children: /* @__PURE__ */ r.jsx("div", { className: "absolute inset-[3px] bg-white rounded-full" }) }) }) : n === "orbit" ? t ? /* @__PURE__ */ r.jsxs("div", { className: `relative ${d} ${l}`, children: [
549
+ /* @__PURE__ */ r.jsx(
550
+ "div",
551
+ {
552
+ className: "absolute inset-0 rounded-full border-2 border-t-transparent border-b-transparent animate-spin",
553
+ style: { borderColor: t, borderTopColor: "transparent", borderBottomColor: "transparent" }
554
+ }
555
+ ),
556
+ /* @__PURE__ */ r.jsx(
557
+ "div",
558
+ {
559
+ className: "absolute inset-1 rounded-full border-2 border-l-transparent border-r-transparent animate-spin-reverse opacity-75",
560
+ style: { borderColor: t, borderLeftColor: "transparent", borderRightColor: "transparent", animationDirection: "reverse", animationDuration: "1.5s" }
561
+ }
562
+ )
563
+ ] }) : /* @__PURE__ */ r.jsxs("div", { className: `relative ${d} ${l}`, children: [
564
+ /* @__PURE__ */ r.jsx("div", { className: `absolute inset-0 rounded-full ${h} animate-spin`, children: /* @__PURE__ */ r.jsx("div", { className: "absolute inset-[2px] bg-white rounded-full" }) }),
565
+ /* @__PURE__ */ r.jsx("div", { className: `absolute inset-1 rounded-full ${h} animate-spin-reverse opacity-75`, style: { animationDirection: "reverse", animationDuration: "1.5s" }, children: /* @__PURE__ */ r.jsx("div", { className: "absolute inset-[2px] bg-white rounded-full" }) })
566
+ ] }) : null;
567
+ }, me = ({
568
+ variant: n = "info",
569
+ title: a,
570
+ children: l,
571
+ onClose: t,
572
+ className: o = ""
573
+ }) => {
574
+ const c = {
575
+ success: {
576
+ container: "bg-green-50 text-green-900 border-green-200",
577
+ iconColor: "text-green-600",
578
+ closeHover: "hover:bg-green-100 text-green-600",
579
+ Icon: () => /* @__PURE__ */ r.jsx("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ r.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) })
580
+ },
581
+ error: {
582
+ container: "bg-red-50 text-red-900 border-red-200",
583
+ iconColor: "text-red-600",
584
+ closeHover: "hover:bg-red-100 text-red-600",
585
+ Icon: () => /* @__PURE__ */ r.jsx("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ r.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) })
586
+ },
587
+ warning: {
588
+ container: "bg-yellow-50 text-yellow-900 border-yellow-200",
589
+ iconColor: "text-yellow-600",
590
+ closeHover: "hover:bg-yellow-100 text-yellow-600",
591
+ Icon: () => /* @__PURE__ */ r.jsx("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ r.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) })
592
+ },
593
+ info: {
594
+ container: "bg-blue-50 text-blue-900 border-blue-200",
595
+ iconColor: "text-blue-600",
596
+ closeHover: "hover:bg-blue-100 text-blue-600",
597
+ Icon: () => /* @__PURE__ */ r.jsx("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ r.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) })
598
+ }
599
+ }[n], d = c.Icon;
600
+ return /* @__PURE__ */ r.jsxs(
601
+ "div",
602
+ {
603
+ role: "alert",
604
+ className: `flex p-4 rounded-lg border ${c.container} ${o}`,
605
+ children: [
606
+ /* @__PURE__ */ r.jsx("div", { className: `shrink-0 ${c.iconColor}`, children: /* @__PURE__ */ r.jsx(d, {}) }),
607
+ /* @__PURE__ */ r.jsxs("div", { className: "ml-3 text-sm flex-1", children: [
608
+ a && /* @__PURE__ */ r.jsx("span", { className: "font-semibold block mb-1", children: a }),
609
+ /* @__PURE__ */ r.jsx("div", { className: "leading-relaxed", children: l })
610
+ ] }),
611
+ t && /* @__PURE__ */ r.jsx(
612
+ "button",
613
+ {
614
+ onClick: t,
615
+ className: `ml-auto -mx-1.5 -my-1.5 rounded-lg p-1.5 inline-flex h-8 w-8 items-center justify-center transition-colors ${c.closeHover}`,
616
+ "aria-label": "Close",
617
+ children: /* @__PURE__ */ r.jsx("svg", { className: "w-4 h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ r.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
618
+ }
619
+ )
620
+ ]
621
+ }
622
+ );
623
+ }, oe = ({
624
+ children: n,
625
+ colSpan: a,
626
+ rowSpan: l,
627
+ colStart: t,
628
+ className: o = ""
629
+ }) => {
630
+ const i = {
631
+ 1: "col-span-1",
632
+ 2: "col-span-2",
633
+ 3: "col-span-3",
634
+ 4: "col-span-4",
635
+ 5: "col-span-5",
636
+ 6: "col-span-6",
637
+ 7: "col-span-7",
638
+ 8: "col-span-8",
639
+ 9: "col-span-9",
640
+ 10: "col-span-10",
641
+ 11: "col-span-11",
642
+ 12: "col-span-12",
643
+ full: "col-span-full"
644
+ }, c = {
645
+ 1: "row-span-1",
646
+ 2: "row-span-2",
647
+ 3: "row-span-3",
648
+ 4: "row-span-4",
649
+ 5: "row-span-5",
650
+ 6: "row-span-6"
651
+ }, d = [
652
+ a ? i[a] : "",
653
+ l ? c[l] : "",
654
+ t ? `col-start-${t}` : "",
655
+ o
656
+ ].filter(Boolean).join(" ");
657
+ return /* @__PURE__ */ r.jsx("div", { className: d, children: n });
658
+ }, ae = ({
659
+ children: n,
660
+ cols: a = 1,
661
+ gap: l = 4,
662
+ gapX: t,
663
+ gapY: o,
664
+ flow: i = "row",
665
+ align: c,
666
+ justify: d,
667
+ className: h = ""
668
+ }) => {
669
+ const p = {
670
+ 1: "grid-cols-1",
671
+ 2: "grid-cols-2",
672
+ 3: "grid-cols-3",
673
+ 4: "grid-cols-4",
674
+ 5: "grid-cols-5",
675
+ 6: "grid-cols-6",
676
+ 8: "grid-cols-8",
677
+ 10: "grid-cols-10",
678
+ 12: "grid-cols-12"
679
+ }, g = {
680
+ 0: "gap-0",
681
+ 1: "gap-1",
682
+ 2: "gap-2",
683
+ 3: "gap-3",
684
+ 4: "gap-4",
685
+ 5: "gap-5",
686
+ 6: "gap-6",
687
+ 8: "gap-8",
688
+ 10: "gap-10",
689
+ 12: "gap-12"
690
+ }, b = [
691
+ "grid",
692
+ p[a],
693
+ t === void 0 && o === void 0 ? g[l] : "",
694
+ // Use standard gap if no X/Y overrides
695
+ t ? `gap-x-${t}` : "",
696
+ o ? `gap-y-${o}` : "",
697
+ i ? `grid-flow-${i}` : "",
698
+ c ? `items-${c}` : "",
699
+ d ? `justify-${d}` : "",
700
+ h
701
+ ].filter(Boolean).join(" ");
702
+ return /* @__PURE__ */ r.jsx("div", { className: b, children: n });
703
+ };
704
+ ae.Item = oe;
705
+ const fe = ({
706
+ variant: n = "body1",
707
+ component: a,
708
+ children: l,
709
+ weight: t,
710
+ align: o = "left",
711
+ color: i,
712
+ className: c = "",
713
+ noWrap: d = !1
714
+ }) => {
715
+ const p = a || {
716
+ h1: "h1",
717
+ h2: "h2",
718
+ h3: "h3",
719
+ h4: "h4",
720
+ h5: "h5",
721
+ h6: "h6",
722
+ body1: "p",
723
+ body2: "p",
724
+ caption: "span",
725
+ overline: "span"
726
+ }[n] || "p", g = {
727
+ h1: "text-5xl md:text-6xl tracking-tight leading-tight",
728
+ h2: "text-4xl md:text-5xl tracking-tight leading-tight",
729
+ h3: "text-3xl md:text-4xl tracking-tight",
730
+ h4: "text-2xl md:text-3xl tracking-tight",
731
+ h5: "text-xl md:text-2xl tracking-normal",
732
+ h6: "text-lg md:text-xl tracking-normal",
733
+ body1: "text-base md:text-lg leading-relaxed",
734
+ body2: "text-sm md:text-base leading-relaxed",
735
+ caption: "text-xs md:text-sm text-gray-500",
736
+ overline: "text-xs uppercase tracking-widest font-semibold"
737
+ }, b = {
738
+ h1: "font-extrabold",
739
+ h2: "font-bold",
740
+ h3: "font-bold",
741
+ h4: "font-bold",
742
+ h5: "font-semibold",
743
+ h6: "font-semibold",
744
+ body1: "font-normal",
745
+ body2: "font-normal",
746
+ caption: "font-normal",
747
+ overline: "font-bold"
748
+ }, j = {
749
+ normal: "font-normal",
750
+ medium: "font-medium",
751
+ semibold: "font-semibold",
752
+ bold: "font-bold",
753
+ extrabold: "font-extrabold"
754
+ }, f = {
755
+ left: "text-left",
756
+ center: "text-center",
757
+ right: "text-right",
758
+ justify: "text-justify"
759
+ }, v = g[n], k = t ? j[t] : b[n], N = f[o], T = [
760
+ v,
761
+ k,
762
+ N,
763
+ i || "text-gray-900",
764
+ d ? "truncate" : "",
765
+ c
766
+ ].filter(Boolean).join(" ");
767
+ return /* @__PURE__ */ r.jsx(p, { className: T, children: l });
768
+ }, le = G.forwardRef(({ as: n, className: a = "", children: l, ...t }, o) => {
769
+ const i = n || "div";
770
+ return /* @__PURE__ */ r.jsx(i, { ref: o, className: a, ...t, children: l });
771
+ });
772
+ le.displayName = "Box";
773
+ export {
774
+ me as Alert,
775
+ le as Box,
776
+ w as Button,
777
+ de as Card,
778
+ ae as Grid,
779
+ ce as Input,
780
+ xe as Loader,
781
+ ue as Post,
782
+ fe as Typography
783
+ };