@mounaji_npm/saas-template 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.
@@ -0,0 +1,689 @@
1
+ import be, { useState as I } from "react";
2
+ import { TOKEN_CSS_MAP as ge, useTokens as Z, tokensToCSS as he, TOKEN_GROUPS as ve, DEFAULT_TOKENS as S } from "@mounaji_npm/tokens";
3
+ const A = {
4
+ id: "home",
5
+ label: "Home",
6
+ icon: "⌂",
7
+ path: "/",
8
+ section: null,
9
+ order: 0
10
+ }, O = {
11
+ id: "dashboard",
12
+ label: "Dashboard",
13
+ icon: "▦",
14
+ path: "/dashboard",
15
+ section: null,
16
+ order: 1,
17
+ children: [
18
+ { id: "dashboard-overview", label: "Overview", icon: "▦", path: "/dashboard", order: 0 },
19
+ { id: "dashboard-team", label: "Team", icon: "👥", path: "/dashboard/team", order: 1 },
20
+ { id: "dashboard-billing", label: "Billing", icon: "💳", path: "/dashboard/billing", order: 2 },
21
+ { id: "dashboard-usage", label: "Usage", icon: "📈", path: "/dashboard/usage", order: 3 }
22
+ ]
23
+ }, M = {
24
+ id: "chat",
25
+ label: "Chat",
26
+ icon: "💬",
27
+ path: "/chat",
28
+ section: null,
29
+ order: 3
30
+ }, ye = {
31
+ id: "discover",
32
+ label: "Discover",
33
+ icon: "🧭",
34
+ path: "/discover",
35
+ section: null,
36
+ order: 2,
37
+ badge: "Soon",
38
+ disabled: !0
39
+ }, z = {
40
+ id: "assistants",
41
+ label: "Assistants",
42
+ icon: "🤖",
43
+ path: "/assistants",
44
+ section: "Workspace",
45
+ order: 1
46
+ }, U = {
47
+ id: "knowledge-base",
48
+ label: "Knowledge Base",
49
+ icon: "🧠",
50
+ path: "/knowledge-base",
51
+ section: "Workspace",
52
+ order: 2
53
+ }, ke = {
54
+ id: "agent-workspace",
55
+ label: "Agent Workspace",
56
+ icon: "⊞",
57
+ path: "/workspace",
58
+ section: "Workspace",
59
+ order: 3
60
+ }, Q = {
61
+ id: "inventory",
62
+ label: "Inventory",
63
+ icon: "📦",
64
+ path: "/inventory",
65
+ section: "Workspace",
66
+ order: 4
67
+ }, je = {
68
+ id: "platforms",
69
+ label: "Platforms",
70
+ icon: "⚡",
71
+ path: "/platforms",
72
+ section: "Channels",
73
+ order: 1,
74
+ children: [
75
+ { id: "platforms-all", label: "All Platforms", icon: "⚡", path: "/platforms", order: 0 },
76
+ { id: "platforms-analytics", label: "Analytics", icon: "📊", path: "/platforms/analytics", order: 1 }
77
+ ]
78
+ }, ee = {
79
+ id: "workflows",
80
+ label: "Workflows",
81
+ icon: "⎇",
82
+ path: "/workflows",
83
+ section: "Channels",
84
+ order: 2
85
+ }, re = {
86
+ id: "tasks",
87
+ label: "Tasks",
88
+ icon: "☑",
89
+ path: "/tasks",
90
+ section: "Channels",
91
+ order: 3
92
+ }, Ee = {
93
+ id: "connections",
94
+ label: "Connections",
95
+ icon: "⛓",
96
+ path: "/connections",
97
+ section: "Channels",
98
+ order: 4
99
+ }, ne = {
100
+ id: "email",
101
+ label: "Email",
102
+ icon: "✉",
103
+ path: "/email",
104
+ section: "Communication",
105
+ order: 1
106
+ }, te = {
107
+ id: "contacts",
108
+ label: "Contacts",
109
+ icon: "👤",
110
+ path: "/contacts",
111
+ section: "Communication",
112
+ order: 2
113
+ }, Se = {
114
+ id: "pricing",
115
+ label: "Pricing",
116
+ icon: "💲",
117
+ path: "/pricing",
118
+ section: "Account",
119
+ order: 1
120
+ }, _e = {
121
+ id: "api-keys",
122
+ label: "API Keys",
123
+ icon: "🔑",
124
+ path: "/dashboard/api-keys",
125
+ section: "Account",
126
+ order: 2
127
+ }, Me = {
128
+ id: "settings",
129
+ label: "Settings",
130
+ icon: "⚙",
131
+ path: "/settings",
132
+ order: 1,
133
+ children: [
134
+ { id: "settings-design", label: "Design Tokens", icon: "🎨", path: "/settings/design", order: 0 },
135
+ { id: "settings-models", label: "AI Models", icon: "🤖", path: "/settings/models", order: 1 }
136
+ ]
137
+ }, ze = {
138
+ id: "help",
139
+ label: "Help",
140
+ icon: "?",
141
+ path: "/help",
142
+ order: 2
143
+ }, Ue = [
144
+ A,
145
+ O,
146
+ ye,
147
+ M,
148
+ z,
149
+ U,
150
+ ke,
151
+ Q,
152
+ je,
153
+ ee,
154
+ re,
155
+ Ee,
156
+ ne,
157
+ te,
158
+ Se,
159
+ _e
160
+ ], We = [
161
+ A,
162
+ O,
163
+ M,
164
+ z,
165
+ U
166
+ ], Ye = [
167
+ A,
168
+ O,
169
+ M,
170
+ z,
171
+ U,
172
+ ee
173
+ ], $e = [
174
+ A,
175
+ O,
176
+ re,
177
+ Q,
178
+ te,
179
+ ne
180
+ ];
181
+ var F = { exports: {} }, j = {};
182
+ /**
183
+ * @license React
184
+ * react-jsx-runtime.production.js
185
+ *
186
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
187
+ *
188
+ * This source code is licensed under the MIT license found in the
189
+ * LICENSE file in the root directory of this source tree.
190
+ */
191
+ var V;
192
+ function Te() {
193
+ if (V) return j;
194
+ V = 1;
195
+ var n = Symbol.for("react.transitional.element"), i = Symbol.for("react.fragment");
196
+ function s(l, o, a) {
197
+ var d = null;
198
+ if (a !== void 0 && (d = "" + a), o.key !== void 0 && (d = "" + o.key), "key" in o) {
199
+ a = {};
200
+ for (var m in o)
201
+ m !== "key" && (a[m] = o[m]);
202
+ } else a = o;
203
+ return o = a.ref, {
204
+ $$typeof: n,
205
+ type: l,
206
+ key: d,
207
+ ref: o !== void 0 ? o : null,
208
+ props: a
209
+ };
210
+ }
211
+ return j.Fragment = i, j.jsx = s, j.jsxs = s, j;
212
+ }
213
+ var E = {};
214
+ /**
215
+ * @license React
216
+ * react-jsx-runtime.development.js
217
+ *
218
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
219
+ *
220
+ * This source code is licensed under the MIT license found in the
221
+ * LICENSE file in the root directory of this source tree.
222
+ */
223
+ var q;
224
+ function Re() {
225
+ return q || (q = 1, process.env.NODE_ENV !== "production" && (function() {
226
+ function n(e) {
227
+ if (e == null) return null;
228
+ if (typeof e == "function")
229
+ return e.$$typeof === me ? null : e.displayName || e.name || null;
230
+ if (typeof e == "string") return e;
231
+ switch (e) {
232
+ case b:
233
+ return "Fragment";
234
+ case ae:
235
+ return "Profiler";
236
+ case oe:
237
+ return "StrictMode";
238
+ case de:
239
+ return "Suspense";
240
+ case ce:
241
+ return "SuspenseList";
242
+ case pe:
243
+ return "Activity";
244
+ }
245
+ if (typeof e == "object")
246
+ switch (typeof e.tag == "number" && console.error(
247
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
248
+ ), e.$$typeof) {
249
+ case T:
250
+ return "Portal";
251
+ case se:
252
+ return e.displayName || "Context";
253
+ case ie:
254
+ return (e._context.displayName || "Context") + ".Consumer";
255
+ case le:
256
+ var t = e.render;
257
+ return e = e.displayName, e || (e = t.displayName || t.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
258
+ case ue:
259
+ return t = e.displayName || null, t !== null ? t : n(e.type) || "Memo";
260
+ case w:
261
+ t = e._payload, e = e._init;
262
+ try {
263
+ return n(e(t));
264
+ } catch {
265
+ }
266
+ }
267
+ return null;
268
+ }
269
+ function i(e) {
270
+ return "" + e;
271
+ }
272
+ function s(e) {
273
+ try {
274
+ i(e);
275
+ var t = !1;
276
+ } catch {
277
+ t = !0;
278
+ }
279
+ if (t) {
280
+ t = console;
281
+ var c = t.error, u = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
282
+ return c.call(
283
+ t,
284
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
285
+ u
286
+ ), i(e);
287
+ }
288
+ }
289
+ function l(e) {
290
+ if (e === b) return "<>";
291
+ if (typeof e == "object" && e !== null && e.$$typeof === w)
292
+ return "<...>";
293
+ try {
294
+ var t = n(e);
295
+ return t ? "<" + t + ">" : "<...>";
296
+ } catch {
297
+ return "<...>";
298
+ }
299
+ }
300
+ function o() {
301
+ var e = P.A;
302
+ return e === null ? null : e.getOwner();
303
+ }
304
+ function a() {
305
+ return Error("react-stack-top-frame");
306
+ }
307
+ function d(e) {
308
+ if (W.call(e, "key")) {
309
+ var t = Object.getOwnPropertyDescriptor(e, "key").get;
310
+ if (t && t.isReactWarning) return !1;
311
+ }
312
+ return e.key !== void 0;
313
+ }
314
+ function m(e, t) {
315
+ function c() {
316
+ Y || (Y = !0, console.error(
317
+ "%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)",
318
+ t
319
+ ));
320
+ }
321
+ c.isReactWarning = !0, Object.defineProperty(e, "key", {
322
+ get: c,
323
+ configurable: !0
324
+ });
325
+ }
326
+ function f() {
327
+ var e = n(this.type);
328
+ return $[e] || ($[e] = !0, console.error(
329
+ "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."
330
+ )), e = this.props.ref, e !== void 0 ? e : null;
331
+ }
332
+ function x(e, t, c, u, R, B) {
333
+ var p = c.ref;
334
+ return e = {
335
+ $$typeof: _,
336
+ type: e,
337
+ key: t,
338
+ props: c,
339
+ _owner: u
340
+ }, (p !== void 0 ? p : null) !== null ? Object.defineProperty(e, "ref", {
341
+ enumerable: !1,
342
+ get: f
343
+ }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
344
+ configurable: !1,
345
+ enumerable: !1,
346
+ writable: !0,
347
+ value: 0
348
+ }), Object.defineProperty(e, "_debugInfo", {
349
+ configurable: !1,
350
+ enumerable: !1,
351
+ writable: !0,
352
+ value: null
353
+ }), Object.defineProperty(e, "_debugStack", {
354
+ configurable: !1,
355
+ enumerable: !1,
356
+ writable: !0,
357
+ value: R
358
+ }), Object.defineProperty(e, "_debugTask", {
359
+ configurable: !1,
360
+ enumerable: !1,
361
+ writable: !0,
362
+ value: B
363
+ }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
364
+ }
365
+ function g(e, t, c, u, R, B) {
366
+ var p = t.children;
367
+ if (p !== void 0)
368
+ if (u)
369
+ if (fe(p)) {
370
+ for (u = 0; u < p.length; u++)
371
+ k(p[u]);
372
+ Object.freeze && Object.freeze(p);
373
+ } else
374
+ console.error(
375
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
376
+ );
377
+ else k(p);
378
+ if (W.call(t, "key")) {
379
+ p = n(e);
380
+ var y = Object.keys(t).filter(function(xe) {
381
+ return xe !== "key";
382
+ });
383
+ u = 0 < y.length ? "{key: someKey, " + y.join(": ..., ") + ": ...}" : "{key: someKey}", K[p + u] || (y = 0 < y.length ? "{" + y.join(": ..., ") + ": ...}" : "{}", console.error(
384
+ `A props object containing a "key" prop is being spread into JSX:
385
+ let props = %s;
386
+ <%s {...props} />
387
+ React keys must be passed directly to JSX without using spread:
388
+ let props = %s;
389
+ <%s key={someKey} {...props} />`,
390
+ u,
391
+ p,
392
+ y,
393
+ p
394
+ ), K[p + u] = !0);
395
+ }
396
+ if (p = null, c !== void 0 && (s(c), p = "" + c), d(t) && (s(t.key), p = "" + t.key), "key" in t) {
397
+ c = {};
398
+ for (var N in t)
399
+ N !== "key" && (c[N] = t[N]);
400
+ } else c = t;
401
+ return p && m(
402
+ c,
403
+ typeof e == "function" ? e.displayName || e.name || "Unknown" : e
404
+ ), x(
405
+ e,
406
+ p,
407
+ c,
408
+ o(),
409
+ R,
410
+ B
411
+ );
412
+ }
413
+ function k(e) {
414
+ h(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === w && (e._payload.status === "fulfilled" ? h(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
415
+ }
416
+ function h(e) {
417
+ return typeof e == "object" && e !== null && e.$$typeof === _;
418
+ }
419
+ var v = be, _ = Symbol.for("react.transitional.element"), T = Symbol.for("react.portal"), b = Symbol.for("react.fragment"), oe = Symbol.for("react.strict_mode"), ae = Symbol.for("react.profiler"), ie = Symbol.for("react.consumer"), se = Symbol.for("react.context"), le = Symbol.for("react.forward_ref"), de = Symbol.for("react.suspense"), ce = Symbol.for("react.suspense_list"), ue = Symbol.for("react.memo"), w = Symbol.for("react.lazy"), pe = Symbol.for("react.activity"), me = Symbol.for("react.client.reference"), P = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, W = Object.prototype.hasOwnProperty, fe = Array.isArray, D = console.createTask ? console.createTask : function() {
420
+ return null;
421
+ };
422
+ v = {
423
+ react_stack_bottom_frame: function(e) {
424
+ return e();
425
+ }
426
+ };
427
+ var Y, $ = {}, G = v.react_stack_bottom_frame.bind(
428
+ v,
429
+ a
430
+ )(), J = D(l(a)), K = {};
431
+ E.Fragment = b, E.jsx = function(e, t, c) {
432
+ var u = 1e4 > P.recentlyCreatedOwnerStacks++;
433
+ return g(
434
+ e,
435
+ t,
436
+ c,
437
+ !1,
438
+ u ? Error("react-stack-top-frame") : G,
439
+ u ? D(l(e)) : J
440
+ );
441
+ }, E.jsxs = function(e, t, c) {
442
+ var u = 1e4 > P.recentlyCreatedOwnerStacks++;
443
+ return g(
444
+ e,
445
+ t,
446
+ c,
447
+ !0,
448
+ u ? Error("react-stack-top-frame") : G,
449
+ u ? D(l(e)) : J
450
+ );
451
+ };
452
+ })()), E;
453
+ }
454
+ var H;
455
+ function Fe() {
456
+ return H || (H = 1, process.env.NODE_ENV === "production" ? F.exports = Te() : F.exports = Re()), F.exports;
457
+ }
458
+ var r = Fe();
459
+ function Ce(n) {
460
+ if (!n) return {};
461
+ const i = {};
462
+ return Object.entries(n).forEach(([s, l]) => {
463
+ const o = ge[s];
464
+ o && (i[o] = l);
465
+ }), i;
466
+ }
467
+ const Ae = [
468
+ { label: "Total Messages", value: "—", icon: "💬", variant: "primary" },
469
+ { label: "Active Assistants", value: "—", icon: "🤖", variant: "success" },
470
+ { label: "Knowledge Docs", value: "—", icon: "🧠", variant: "accent" },
471
+ { label: "API Calls (30d)", value: "—", icon: "⚡", variant: "warning" }
472
+ ];
473
+ function Ge({ metrics: n = Ae, activity: i = [], usageBars: s = [], header: l, tokens: o, style: a }) {
474
+ return /* @__PURE__ */ r.jsxs("div", { style: {
475
+ padding: "var(--mn-spacing-xl, 32px)",
476
+ display: "flex",
477
+ flexDirection: "column",
478
+ gap: "var(--mn-spacing-xl, 32px)",
479
+ fontFamily: "var(--mn-font-family, inherit)",
480
+ ...Ce(o),
481
+ ...a
482
+ }, children: [
483
+ l ?? /* @__PURE__ */ r.jsxs("div", { children: [
484
+ /* @__PURE__ */ r.jsx("h1", { style: { margin: 0, fontSize: "var(--mn-font-size-2xl, 1.5rem)", fontWeight: 700, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: "Dashboard" }),
485
+ /* @__PURE__ */ r.jsx("p", { style: { margin: "4px 0 0", fontSize: "var(--mn-font-size-sm, 0.875rem)", color: "var(--mn-text-secondary-dark, #94A3B8)" }, children: "Overview of your workspace activity" })
486
+ ] }),
487
+ /* @__PURE__ */ r.jsx("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fill, minmax(200px, 1fr))", gap: 16 }, children: n.map((d, m) => /* @__PURE__ */ r.jsx(Oe, { ...d }, d.label ?? m)) }),
488
+ /* @__PURE__ */ r.jsxs("div", { style: { display: "grid", gridTemplateColumns: s.length ? "1fr 1fr" : "1fr", gap: 24 }, children: [
489
+ i.length > 0 && /* @__PURE__ */ r.jsx(X, { title: "Recent Activity", children: i.map((d, m) => /* @__PURE__ */ r.jsx(we, { item: d }, m)) }),
490
+ s.length > 0 && /* @__PURE__ */ r.jsx(X, { title: "Plan Usage", children: /* @__PURE__ */ r.jsx("div", { style: { display: "flex", flexDirection: "column", gap: 16 }, children: s.map((d, m) => /* @__PURE__ */ r.jsx(Pe, { ...d }, m)) }) })
491
+ ] })
492
+ ] });
493
+ }
494
+ function Oe({ label: n, value: i, icon: s, variant: l = "primary" }) {
495
+ const o = { primary: "#3B82F6", success: "#10B981", warning: "#F59E0B", danger: "#EF4444", accent: "#8B5CF6" }, a = o[l] ?? o.primary;
496
+ return /* @__PURE__ */ r.jsxs("div", { style: { padding: 20, borderRadius: "var(--mn-radius-lg, 0.75rem)", backgroundColor: "var(--mn-color-card-dark, #0B0F23)", border: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))" }, children: [
497
+ /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "flex-start" }, children: [
498
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: "0.8125rem", color: "var(--mn-text-secondary-dark, #94A3B8)" }, children: n }),
499
+ /* @__PURE__ */ r.jsx("div", { style: { width: 32, height: 32, borderRadius: "var(--mn-radius-md, 0.5rem)", backgroundColor: `${a}18`, display: "flex", alignItems: "center", justifyContent: "center", fontSize: 16 }, children: s })
500
+ ] }),
501
+ /* @__PURE__ */ r.jsx("p", { style: { margin: "12px 0 0", fontSize: "1.5rem", fontWeight: 700, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: i })
502
+ ] });
503
+ }
504
+ function X({ title: n, children: i }) {
505
+ return /* @__PURE__ */ r.jsxs("div", { style: { borderRadius: "var(--mn-radius-lg, 0.75rem)", backgroundColor: "var(--mn-color-card-dark, #0B0F23)", border: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))", overflow: "hidden" }, children: [
506
+ /* @__PURE__ */ r.jsx("div", { style: { padding: "14px 20px", borderBottom: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))" }, children: /* @__PURE__ */ r.jsx("h2", { style: { margin: 0, fontSize: "0.875rem", fontWeight: 600, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: n }) }),
507
+ /* @__PURE__ */ r.jsx("div", { style: { padding: "0 20px" }, children: i })
508
+ ] });
509
+ }
510
+ function we({ item: n }) {
511
+ return /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", gap: 10, alignItems: "flex-start", padding: "12px 0", borderBottom: "1px solid var(--mn-border-dark, rgba(255,255,255,0.05))" }, children: [
512
+ n.icon && /* @__PURE__ */ r.jsx("span", { style: { fontSize: 16, marginTop: 1 }, children: n.icon }),
513
+ /* @__PURE__ */ r.jsxs("div", { style: { flex: 1 }, children: [
514
+ /* @__PURE__ */ r.jsx("p", { style: { margin: 0, fontSize: "0.8125rem", color: "var(--mn-text-primary-dark, #F0F4FF)", fontWeight: 500 }, children: n.title }),
515
+ n.description && /* @__PURE__ */ r.jsx("p", { style: { margin: "2px 0 0", fontSize: "0.75rem", color: "var(--mn-text-secondary-dark, #94A3B8)" }, children: n.description })
516
+ ] }),
517
+ n.ts && /* @__PURE__ */ r.jsx("span", { style: { fontSize: 11, color: "var(--mn-text-muted-dark, #64748B)", flexShrink: 0 }, children: n.ts })
518
+ ] });
519
+ }
520
+ function Pe({ label: n, used: i, total: s, unit: l = "" }) {
521
+ const o = s > 0 ? Math.round(i / s * 100) : 0, a = o >= 90 ? "#EF4444" : o >= 70 ? "#F59E0B" : "#3B82F6";
522
+ return /* @__PURE__ */ r.jsxs("div", { children: [
523
+ /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: 6 }, children: [
524
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: "0.8125rem", color: "var(--mn-text-secondary-dark, #94A3B8)" }, children: n }),
525
+ /* @__PURE__ */ r.jsxs("span", { style: { fontSize: "0.8125rem", fontWeight: 600, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: [
526
+ i.toLocaleString(),
527
+ l,
528
+ " / ",
529
+ s === 1 / 0 ? "∞" : s.toLocaleString(),
530
+ l
531
+ ] })
532
+ ] }),
533
+ /* @__PURE__ */ r.jsx("div", { style: { height: 6, borderRadius: 9999, backgroundColor: "rgba(255,255,255,0.08)", overflow: "hidden" }, children: /* @__PURE__ */ r.jsx("div", { style: { height: "100%", width: `${o}%`, backgroundColor: a, borderRadius: "inherit", transition: "width 300ms" } }) })
534
+ ] });
535
+ }
536
+ function Je({ tabs: n = [], defaultTab: i = "design", tokens: s, style: l }) {
537
+ var T;
538
+ const { tokens: o, updateToken: a, updateTokens: d, resetTokens: m, saveTokens: f, isDirty: x } = Z(), k = [...[
539
+ { id: "design", label: "🎨 Design Tokens", content: /* @__PURE__ */ r.jsx(De, { tokens: o, onChange: a, onReset: m, onSave: f, isDirty: x }) },
540
+ { id: "account", label: "👤 Account", content: /* @__PURE__ */ r.jsx(L, { label: "Account settings" }) },
541
+ { id: "billing", label: "💳 Billing", content: /* @__PURE__ */ r.jsx(L, { label: "Billing settings" }) },
542
+ { id: "api-keys", label: "🔑 API Keys", content: /* @__PURE__ */ r.jsx(L, { label: "API key management" }) }
543
+ ], ...n], [h, v] = I(i), _ = (T = k.find((b) => b.id === h)) == null ? void 0 : T.content;
544
+ return /* @__PURE__ */ r.jsxs("div", { style: {
545
+ padding: "var(--mn-spacing-xl, 32px)",
546
+ display: "flex",
547
+ flexDirection: "column",
548
+ gap: 24,
549
+ fontFamily: "var(--mn-font-family, inherit)",
550
+ ...l
551
+ }, children: [
552
+ /* @__PURE__ */ r.jsxs("div", { children: [
553
+ /* @__PURE__ */ r.jsx("h1", { style: { margin: 0, fontSize: "var(--mn-font-size-2xl, 1.5rem)", fontWeight: 700, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: "Settings" }),
554
+ /* @__PURE__ */ r.jsx("p", { style: { margin: "4px 0 0", fontSize: "0.875rem", color: "var(--mn-text-secondary-dark, #94A3B8)" }, children: "Configure your workspace and platform appearance" })
555
+ ] }),
556
+ /* @__PURE__ */ r.jsx("div", { style: { display: "flex", gap: 4, borderBottom: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))", paddingBottom: 0 }, children: k.map((b) => /* @__PURE__ */ r.jsx(
557
+ "button",
558
+ {
559
+ onClick: () => v(b.id),
560
+ style: {
561
+ padding: "8px 16px",
562
+ background: "none",
563
+ border: "none",
564
+ borderBottom: h === b.id ? "2px solid var(--mn-color-primary, #3B82F6)" : "2px solid transparent",
565
+ color: h === b.id ? "var(--mn-text-primary-dark, #F0F4FF)" : "var(--mn-text-secondary-dark, #94A3B8)",
566
+ fontSize: "0.875rem",
567
+ fontWeight: 500,
568
+ cursor: "pointer",
569
+ marginBottom: -1,
570
+ fontFamily: "inherit",
571
+ transition: "color 150ms, border-color 150ms"
572
+ },
573
+ children: b.label
574
+ },
575
+ b.id
576
+ )) }),
577
+ /* @__PURE__ */ r.jsx("div", { children: _ })
578
+ ] });
579
+ }
580
+ function De({ tokens: n, onChange: i, onReset: s, onSave: l, isDirty: o }) {
581
+ const [a, d] = I("");
582
+ function m(f, x) {
583
+ var g;
584
+ (g = navigator.clipboard) == null || g.writeText(f).then(() => {
585
+ d(x), setTimeout(() => d(""), 2e3);
586
+ });
587
+ }
588
+ return /* @__PURE__ */ r.jsxs("div", { style: { display: "grid", gridTemplateColumns: "minmax(0,1fr) 320px", gap: 24, alignItems: "start" }, children: [
589
+ /* @__PURE__ */ r.jsxs("div", { children: [
590
+ /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", gap: 8, marginBottom: 16 }, children: [
591
+ o && /* @__PURE__ */ r.jsx(C, { onClick: s, variant: "ghost", children: "Reset" }),
592
+ /* @__PURE__ */ r.jsx(C, { onClick: l, disabled: !o, variant: "primary", children: o ? "Save Changes" : "Saved" }),
593
+ /* @__PURE__ */ r.jsx(C, { onClick: () => m(he(n), "css"), variant: "outline", children: a === "css" ? "✓ Copied" : "Copy CSS" }),
594
+ /* @__PURE__ */ r.jsx(C, { onClick: () => m(JSON.stringify(n, null, 2), "json"), variant: "outline", children: a === "json" ? "✓ Copied" : "Copy JSON" })
595
+ ] }),
596
+ ve.map((f) => /* @__PURE__ */ r.jsx(Be, { group: f, tokens: n, onChange: i }, f.id))
597
+ ] }),
598
+ /* @__PURE__ */ r.jsx("div", { style: { position: "sticky", top: 70 }, children: /* @__PURE__ */ r.jsx(Ne, { tokens: n }) })
599
+ ] });
600
+ }
601
+ function Be({ group: n, tokens: i }) {
602
+ const [s, l] = I(!0), { updateToken: o } = Z();
603
+ return /* @__PURE__ */ r.jsxs("div", { style: { marginBottom: 12, borderRadius: "var(--mn-radius-lg, 0.75rem)", border: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))", overflow: "hidden" }, children: [
604
+ /* @__PURE__ */ r.jsxs(
605
+ "button",
606
+ {
607
+ onClick: () => l((a) => !a),
608
+ style: { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", padding: "12px 16px", background: "none", border: "none", cursor: "pointer", color: "var(--mn-text-primary-dark, #F0F4FF)", fontFamily: "inherit" },
609
+ children: [
610
+ /* @__PURE__ */ r.jsx("span", { style: { fontWeight: 600, fontSize: "0.8125rem" }, children: n.label }),
611
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 10, color: "var(--mn-text-muted-dark, #64748B)" }, children: s ? "▲" : "▼" })
612
+ ]
613
+ }
614
+ ),
615
+ s && n.tokens.map((a) => {
616
+ var f;
617
+ const d = i[a.key] ?? S[a.key], m = d === S[a.key];
618
+ return /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 12, padding: "8px 16px", borderTop: "1px solid var(--mn-border-dark, rgba(255,255,255,0.05))" }, children: [
619
+ /* @__PURE__ */ r.jsxs("div", { children: [
620
+ /* @__PURE__ */ r.jsx("p", { style: { margin: 0, fontSize: "0.8125rem", fontWeight: 500, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: a.label }),
621
+ /* @__PURE__ */ r.jsx("code", { style: { fontSize: 11, color: "var(--mn-text-muted-dark, #64748B)" }, children: a.key })
622
+ ] }),
623
+ /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [
624
+ !m && /* @__PURE__ */ r.jsx("button", { onClick: () => o(a.key, S[a.key]), style: { background: "none", border: "none", cursor: "pointer", color: "var(--mn-text-muted-dark, #64748B)", fontSize: 14 }, children: "↺" }),
625
+ a.type === "color" ? /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [
626
+ /* @__PURE__ */ r.jsx("input", { type: "color", value: (f = d.startsWith) != null && f.call(d, "#") ? d : "#000000", onChange: (x) => o(a.key, x.target.value), style: { width: 28, height: 28, border: "none", borderRadius: 4, cursor: "pointer", padding: 0 } }),
627
+ /* @__PURE__ */ r.jsx("input", { type: "text", value: d, onChange: (x) => o(a.key, x.target.value), style: { width: 88, padding: "3px 8px", borderRadius: 6, border: "1px solid var(--mn-border-dark, rgba(255,255,255,0.1))", backgroundColor: "rgba(255,255,255,0.05)", color: "var(--mn-text-primary-dark, #F0F4FF)", fontSize: 12, outline: "none", fontFamily: "monospace" } })
628
+ ] }) : /* @__PURE__ */ r.jsx("input", { type: "text", value: d, onChange: (x) => o(a.key, x.target.value), style: { width: 120, padding: "3px 8px", borderRadius: 6, border: "1px solid var(--mn-border-dark, rgba(255,255,255,0.1))", backgroundColor: "rgba(255,255,255,0.05)", color: "var(--mn-text-primary-dark, #F0F4FF)", fontSize: 12, outline: "none" } })
629
+ ] })
630
+ ] }, a.key);
631
+ })
632
+ ] });
633
+ }
634
+ function Ne({ tokens: n }) {
635
+ return /* @__PURE__ */ r.jsxs("div", { style: { borderRadius: "var(--mn-radius-lg, 0.75rem)", border: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))", overflow: "hidden" }, children: [
636
+ /* @__PURE__ */ r.jsx("div", { style: { padding: "12px 16px", borderBottom: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))" }, children: /* @__PURE__ */ r.jsx("p", { style: { margin: 0, fontSize: "0.8125rem", fontWeight: 600, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: "Live Preview" }) }),
637
+ /* @__PURE__ */ r.jsxs("div", { style: { padding: 16, display: "flex", flexDirection: "column", gap: 12 }, children: [
638
+ /* @__PURE__ */ r.jsx("div", { style: { display: "flex", gap: 6, flexWrap: "wrap" }, children: ["colorPrimary", "colorAccent", "colorAccentAlt", "colorSuccess", "colorWarning", "colorDanger"].map((i) => /* @__PURE__ */ r.jsx("div", { title: i, style: { width: 28, height: 28, borderRadius: 6, backgroundColor: n[i] ?? S[i] } }, i)) }),
639
+ /* @__PURE__ */ r.jsx("button", { style: { padding: "8px 16px", borderRadius: "var(--mn-radius-md, 0.5rem)", backgroundColor: "var(--mn-color-primary, #3B82F6)", color: "#fff", border: "none", fontFamily: "var(--mn-font-family, inherit)", fontSize: "0.875rem", fontWeight: 500, cursor: "default" }, children: "Primary Button" }),
640
+ /* @__PURE__ */ r.jsx("button", { style: { padding: "8px 16px", borderRadius: "var(--mn-radius-md, 0.5rem)", backgroundColor: "transparent", color: "var(--mn-color-primary, #3B82F6)", border: "1px solid var(--mn-color-primary, #3B82F6)", fontFamily: "var(--mn-font-family, inherit)", fontSize: "0.875rem", fontWeight: 500, cursor: "default" }, children: "Outline Button" }),
641
+ /* @__PURE__ */ r.jsxs("div", { style: { padding: 12, borderRadius: "var(--mn-radius-lg, 0.75rem)", backgroundColor: "var(--mn-color-card-dark, #0B0F23)", border: "1px solid var(--mn-border-dark, rgba(255,255,255,0.07))" }, children: [
642
+ /* @__PURE__ */ r.jsx("p", { style: { margin: 0, fontSize: "0.875rem", fontWeight: 600, color: "var(--mn-text-primary-dark, #F0F4FF)" }, children: "Card surface" }),
643
+ /* @__PURE__ */ r.jsx("p", { style: { margin: "4px 0 0", fontSize: "0.75rem", color: "var(--mn-text-secondary-dark, #94A3B8)" }, children: "Secondary text color" })
644
+ ] }),
645
+ /* @__PURE__ */ r.jsx("div", { style: { display: "flex", gap: 8 }, children: ["radiusSm", "radiusMd", "radiusLg", "radiusXl"].map((i) => /* @__PURE__ */ r.jsx("div", { style: { width: 32, height: 32, backgroundColor: "var(--mn-color-accent, #8B5CF6)", borderRadius: n[i] ?? S[i] } }, i)) })
646
+ ] })
647
+ ] });
648
+ }
649
+ function C({ children: n, onClick: i, variant: s = "primary", disabled: l = !1 }) {
650
+ const o = {
651
+ primary: { backgroundColor: "var(--mn-color-primary, #3B82F6)", color: "#fff", border: "none" },
652
+ ghost: { backgroundColor: "rgba(255,255,255,0.06)", color: "var(--mn-text-secondary-dark, #94A3B8)", border: "none" },
653
+ outline: { backgroundColor: "transparent", color: "var(--mn-text-secondary-dark, #94A3B8)", border: "1px solid var(--mn-border-md-dark, rgba(255,255,255,0.13))" }
654
+ };
655
+ return /* @__PURE__ */ r.jsx("button", { onClick: i, disabled: l, style: { ...o[s], padding: "6px 14px", borderRadius: "var(--mn-radius-md, 0.5rem)", fontSize: "0.8125rem", fontWeight: 500, cursor: l ? "not-allowed" : "pointer", opacity: l ? 0.5 : 1, fontFamily: "inherit" }, children: n });
656
+ }
657
+ function L({ label: n }) {
658
+ return /* @__PURE__ */ r.jsxs("div", { style: { padding: "40px 0", textAlign: "center", color: "var(--mn-text-muted-dark, #64748B)", fontSize: "0.875rem" }, children: [
659
+ n,
660
+ " — configure with your own content"
661
+ ] });
662
+ }
663
+ export {
664
+ ke as AGENT_WORKSPACE_MODULE,
665
+ Ye as AI_BUNDLE,
666
+ Ue as ALL_MODULES,
667
+ _e as API_KEYS_MODULE,
668
+ z as ASSISTANTS_MODULE,
669
+ M as CHAT_MODULE,
670
+ Ee as CONNECTIONS_MODULE,
671
+ te as CONTACTS_MODULE,
672
+ We as CORE_MODULES,
673
+ O as DASHBOARD_MODULE,
674
+ ye as DISCOVER_MODULE,
675
+ Ge as DashboardPage,
676
+ ne as EMAIL_MODULE,
677
+ ze as HELP_MODULE,
678
+ A as HOME_MODULE,
679
+ Q as INVENTORY_MODULE,
680
+ U as KNOWLEDGE_BASE_MODULE,
681
+ $e as OPS_BUNDLE,
682
+ je as PLATFORMS_MODULE,
683
+ Se as PRICING_MODULE,
684
+ Me as SETTINGS_MODULE,
685
+ Je as SettingsPage,
686
+ re as TASKS_MODULE,
687
+ ee as WORKFLOWS_MODULE
688
+ };
689
+ //# sourceMappingURL=mounajimodules.es.js.map