@mounaji_npm/saas-template 0.1.0 → 0.1.2
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/mounajimodules.es.js.map +1 -1
- package/dist/mounajimodules.umd.cjs.map +1 -1
- package/dist/mounajisaastemplate.es.js +1242 -0
- package/dist/mounajisaastemplate.es.js.map +1 -0
- package/dist/mounajisaastemplate.umd.cjs +58 -0
- package/dist/mounajisaastemplate.umd.cjs.map +1 -0
- package/package.json +7 -7
- package/src/index.js +1 -1
- package/src/modules/index.js +1 -1
- package/src/modules/manifests.js +1 -1
- package/src/modules/pages/DashboardPage.jsx +4 -4
- package/src/modules/pages/SettingsPage.jsx +2 -2
- package/src/registry/ModuleRegistry.jsx +1 -1
- package/src/shell/AppShell.jsx +80 -68
- package/src/shell/Sidebar.jsx +685 -265
- package/src/shell/TopNav.jsx +115 -134
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mounajimodules.es.js","sources":["../src/modules/manifests.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../src/modules/pages/DashboardPage.jsx","../src/modules/pages/SettingsPage.jsx"],"sourcesContent":["/**\n * @mounaji/saas-template — Pre-built Module Manifests\n *\n * These mirror the NAV_SECTIONS from mounaji-platform's sidebar.js.\n * Import the ones you need and pass them to <AppShell modules={[...]} />.\n *\n * Icons are string emojis by default (no external icon lib required).\n * Override the `icon` field with any React element or lucide-react icon.\n *\n * Each manifest follows the shape:\n * {\n * id: string — unique key\n * label: string — sidebar label\n * icon: string|node — emoji string or React node\n * path: string — route href\n * section: string|null — sidebar group (null = top, no header)\n * order: number — position in section\n * children: Manifest[] — sub-nav (optional)\n * badge: string|null — badge label\n * disabled: boolean\n * hidden: boolean\n * external: boolean\n * }\n */\n\n// ── Top section (no group label) ─────────────────────────────────────────────\n\nexport const HOME_MODULE = {\n id: 'home',\n label: 'Home',\n icon: '⌂',\n path: '/',\n section: null,\n order: 0,\n};\n\nexport const DASHBOARD_MODULE = {\n id: 'dashboard',\n label: 'Dashboard',\n icon: '▦',\n path: '/dashboard',\n section: null,\n order: 1,\n children: [\n { id: 'dashboard-overview', label: 'Overview', icon: '▦', path: '/dashboard', order: 0 },\n { id: 'dashboard-team', label: 'Team', icon: '👥', path: '/dashboard/team', order: 1 },\n { id: 'dashboard-billing', label: 'Billing', icon: '💳', path: '/dashboard/billing', order: 2 },\n { id: 'dashboard-usage', label: 'Usage', icon: '📈', path: '/dashboard/usage', order: 3 },\n ],\n};\n\nexport const CHAT_MODULE = {\n id: 'chat',\n label: 'Chat',\n icon: '💬',\n path: '/chat',\n section: null,\n order: 3,\n};\n\nexport const DISCOVER_MODULE = {\n id: 'discover',\n label: 'Discover',\n icon: '🧭',\n path: '/discover',\n section: null,\n order: 2,\n badge: 'Soon',\n disabled: true,\n};\n\n// ── Workspace ─────────────────────────────────────────────────────────────────\n\nexport const ASSISTANTS_MODULE = {\n id: 'assistants',\n label: 'Assistants',\n icon: '🤖',\n path: '/assistants',\n section: 'Workspace',\n order: 1,\n};\n\nexport const KNOWLEDGE_BASE_MODULE = {\n id: 'knowledge-base',\n label: 'Knowledge Base',\n icon: '🧠',\n path: '/knowledge-base',\n section: 'Workspace',\n order: 2,\n};\n\nexport const AGENT_WORKSPACE_MODULE = {\n id: 'agent-workspace',\n label: 'Agent Workspace',\n icon: '⊞',\n path: '/workspace',\n section: 'Workspace',\n order: 3,\n};\n\nexport const INVENTORY_MODULE = {\n id: 'inventory',\n label: 'Inventory',\n icon: '📦',\n path: '/inventory',\n section: 'Workspace',\n order: 4,\n};\n\n// ── Channels ──────────────────────────────────────────────────────────────────\n\nexport const PLATFORMS_MODULE = {\n id: 'platforms',\n label: 'Platforms',\n icon: '⚡',\n path: '/platforms',\n section: 'Channels',\n order: 1,\n children: [\n { id: 'platforms-all', label: 'All Platforms', icon: '⚡', path: '/platforms', order: 0 },\n { id: 'platforms-analytics', label: 'Analytics', icon: '📊', path: '/platforms/analytics', order: 1 },\n ],\n};\n\nexport const WORKFLOWS_MODULE = {\n id: 'workflows',\n label: 'Workflows',\n icon: '⎇',\n path: '/workflows',\n section: 'Channels',\n order: 2,\n};\n\nexport const TASKS_MODULE = {\n id: 'tasks',\n label: 'Tasks',\n icon: '☑',\n path: '/tasks',\n section: 'Channels',\n order: 3,\n};\n\nexport const CONNECTIONS_MODULE = {\n id: 'connections',\n label: 'Connections',\n icon: '⛓',\n path: '/connections',\n section: 'Channels',\n order: 4,\n};\n\n// ── Communication ─────────────────────────────────────────────────────────────\n\nexport const EMAIL_MODULE = {\n id: 'email',\n label: 'Email',\n icon: '✉',\n path: '/email',\n section: 'Communication',\n order: 1,\n};\n\nexport const CONTACTS_MODULE = {\n id: 'contacts',\n label: 'Contacts',\n icon: '👤',\n path: '/contacts',\n section: 'Communication',\n order: 2,\n};\n\n// ── Account ───────────────────────────────────────────────────────────────────\n\nexport const PRICING_MODULE = {\n id: 'pricing',\n label: 'Pricing',\n icon: '💲',\n path: '/pricing',\n section: 'Account',\n order: 1,\n};\n\nexport const API_KEYS_MODULE = {\n id: 'api-keys',\n label: 'API Keys',\n icon: '🔑',\n path: '/dashboard/api-keys',\n section: 'Account',\n order: 2,\n};\n\n// ── Bottom nav (Settings / Help) ──────────────────────────────────────────────\n\nexport const SETTINGS_MODULE = {\n id: 'settings',\n label: 'Settings',\n icon: '⚙',\n path: '/settings',\n order: 1,\n children: [\n { id: 'settings-design', label: 'Design Tokens', icon: '🎨', path: '/settings/design', order: 0 },\n { id: 'settings-models', label: 'AI Models', icon: '🤖', path: '/settings/models', order: 1 },\n ],\n};\n\nexport const HELP_MODULE = {\n id: 'help',\n label: 'Help',\n icon: '?',\n path: '/help',\n order: 2,\n};\n\n// ── Preset bundles ────────────────────────────────────────────────────────────\n\n/** The full platform nav — mirrors mounaji-platform exactly */\nexport const ALL_MODULES = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n DISCOVER_MODULE,\n CHAT_MODULE,\n ASSISTANTS_MODULE,\n KNOWLEDGE_BASE_MODULE,\n AGENT_WORKSPACE_MODULE,\n INVENTORY_MODULE,\n PLATFORMS_MODULE,\n WORKFLOWS_MODULE,\n TASKS_MODULE,\n CONNECTIONS_MODULE,\n EMAIL_MODULE,\n CONTACTS_MODULE,\n PRICING_MODULE,\n API_KEYS_MODULE,\n];\n\n/** Minimal starter — just the core 4 modules */\nexport const CORE_MODULES = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n CHAT_MODULE,\n ASSISTANTS_MODULE,\n KNOWLEDGE_BASE_MODULE,\n];\n\n/** AI-focused bundle */\nexport const AI_BUNDLE = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n CHAT_MODULE,\n ASSISTANTS_MODULE,\n KNOWLEDGE_BASE_MODULE,\n WORKFLOWS_MODULE,\n];\n\n/** Operations / team bundle */\nexport const OPS_BUNDLE = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n TASKS_MODULE,\n INVENTORY_MODULE,\n CONTACTS_MODULE,\n EMAIL_MODULE,\n];\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%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)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"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.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * DashboardPage — @mounaji/saas-template\n *\n * Pre-built dashboard page shell. Uses @mounaji/dashboard components.\n * Compose with your own data by passing metric/activity props.\n *\n * Props:\n * metrics — MetricCard[] props array (see @mounaji/dashboard)\n * activity — ActivityFeed items array\n * usageBars — UsageBar props array\n * header — React node (override page header)\n * tokens — Partial<DEFAULT_TOKENS>\n */\n\nimport { DASHBOARD_MODULE } from '../manifests.js';\nimport { TOKEN_CSS_MAP } from '@mounaji_npm/tokens';\n\nfunction buildInlineTokens(tokens) {\n if (!tokens) return {};\n const s = {};\n Object.entries(tokens).forEach(([k, v]) => { const c = TOKEN_CSS_MAP[k]; if (c) s[c] = v; });\n return s;\n}\n\nexport { DASHBOARD_MODULE as manifest };\n\nconst DEFAULT_METRICS = [\n { label: 'Total Messages', value: '—', icon: '💬', variant: 'primary' },\n { label: 'Active Assistants', value: '—', icon: '🤖', variant: 'success' },\n { label: 'Knowledge Docs', value: '—', icon: '🧠', variant: 'accent' },\n { label: 'API Calls (30d)', value: '—', icon: '⚡', variant: 'warning' },\n];\n\nexport function DashboardPage({ metrics = DEFAULT_METRICS, activity = [], usageBars = [], header, tokens, style }) {\n return (\n <div style={{\n padding: 'var(--mn-spacing-xl, 32px)',\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--mn-spacing-xl, 32px)',\n fontFamily: 'var(--mn-font-family, inherit)',\n ...buildInlineTokens(tokens),\n ...style,\n }}>\n {/* Header */}\n {header ?? (\n <div>\n <h1 style={{ margin: 0, fontSize: 'var(--mn-font-size-2xl, 1.5rem)', fontWeight: 700, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>\n Dashboard\n </h1>\n <p style={{ margin: '4px 0 0', fontSize: 'var(--mn-font-size-sm, 0.875rem)', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>\n Overview of your workspace activity\n </p>\n </div>\n )}\n\n {/* Metrics grid */}\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(200px, 1fr))', gap: 16 }}>\n {metrics.map((m, i) => (\n <MetricCardShell key={m.label ?? i} {...m} />\n ))}\n </div>\n\n {/* Usage + Activity row */}\n <div style={{ display: 'grid', gridTemplateColumns: usageBars.length ? '1fr 1fr' : '1fr', gap: 24 }}>\n {activity.length > 0 && (\n <SectionCard title=\"Recent Activity\">\n {activity.map((item, i) => (\n <ActivityItem key={i} item={item} />\n ))}\n </SectionCard>\n )}\n {usageBars.length > 0 && (\n <SectionCard title=\"Plan Usage\">\n <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n {usageBars.map((bar, i) => (\n <UsageBarShell key={i} {...bar} />\n ))}\n </div>\n </SectionCard>\n )}\n </div>\n </div>\n );\n}\n\n// Minimal inline implementations so DashboardPage has no hard dep on @mounaji/dashboard\nfunction MetricCardShell({ label, value, icon, variant = 'primary' }) {\n const colors = { primary: '#3B82F6', success: '#10B981', warning: '#F59E0B', danger: '#EF4444', accent: '#8B5CF6' };\n const c = colors[variant] ?? colors.primary;\n return (\n <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))' }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start' }}>\n <span style={{ fontSize: '0.8125rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>{label}</span>\n <div style={{ width: 32, height: 32, borderRadius: 'var(--mn-radius-md, 0.5rem)', backgroundColor: `${c}18`, display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 16 }}>{icon}</div>\n </div>\n <p style={{ margin: '12px 0 0', fontSize: '1.5rem', fontWeight: 700, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{value}</p>\n </div>\n );\n}\n\nfunction SectionCard({ title, children }) {\n return (\n <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' }}>\n <div style={{ padding: '14px 20px', borderBottom: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))' }}>\n <h2 style={{ margin: 0, fontSize: '0.875rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{title}</h2>\n </div>\n <div style={{ padding: '0 20px' }}>{children}</div>\n </div>\n );\n}\n\nfunction ActivityItem({ item }) {\n return (\n <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))' }}>\n {item.icon && <span style={{ fontSize: 16, marginTop: 1 }}>{item.icon}</span>}\n <div style={{ flex: 1 }}>\n <p style={{ margin: 0, fontSize: '0.8125rem', color: 'var(--mn-text-primary-dark, #F0F4FF)', fontWeight: 500 }}>{item.title}</p>\n {item.description && <p style={{ margin: '2px 0 0', fontSize: '0.75rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>{item.description}</p>}\n </div>\n {item.ts && <span style={{ fontSize: 11, color: 'var(--mn-text-muted-dark, #64748B)', flexShrink: 0 }}>{item.ts}</span>}\n </div>\n );\n}\n\nfunction UsageBarShell({ label, used, total, unit = '' }) {\n const pct = total > 0 ? Math.round((used / total) * 100) : 0;\n const color = pct >= 90 ? '#EF4444' : pct >= 70 ? '#F59E0B' : '#3B82F6';\n return (\n <div>\n <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 6 }}>\n <span style={{ fontSize: '0.8125rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>{label}</span>\n <span style={{ fontSize: '0.8125rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{used.toLocaleString()}{unit} / {total === Infinity ? '∞' : total.toLocaleString()}{unit}</span>\n </div>\n <div style={{ height: 6, borderRadius: 9999, backgroundColor: 'rgba(255,255,255,0.08)', overflow: 'hidden' }}>\n <div style={{ height: '100%', width: `${pct}%`, backgroundColor: color, borderRadius: 'inherit', transition: 'width 300ms' }} />\n </div>\n </div>\n );\n}\n","/**\n * SettingsPage — @mounaji/saas-template\n *\n * Pre-built settings page with tab navigation.\n * The \"Design\" tab renders the full TokenEditor from @mounaji/admin-controls.\n *\n * Props:\n * tabs — Tab[] — additional tabs beyond built-ins\n * [{ id, label, content: ReactNode }]\n * defaultTab — string (default: 'design')\n * tokens — Partial<DEFAULT_TOKENS>\n */\n\nimport { useState } from 'react';\nimport { useTokens, TOKEN_GROUPS, DEFAULT_TOKENS, tokensToCSS } from '@mounaji_npm/tokens';\nimport { SETTINGS_MODULE } from '../manifests.js';\n\nexport { SETTINGS_MODULE as manifest };\n\nexport function SettingsPage({ tabs: extraTabs = [], defaultTab = 'design', tokens, style }) {\n const { tokens: currentTokens, updateToken, updateTokens, resetTokens, saveTokens, isDirty } = useTokens();\n\n const builtinTabs = [\n { id: 'design', label: '🎨 Design Tokens', content: <DesignTab tokens={currentTokens} onChange={updateToken} onReset={resetTokens} onSave={saveTokens} isDirty={isDirty} /> },\n { id: 'account', label: '👤 Account', content: <PlaceholderTab label=\"Account settings\" /> },\n { id: 'billing', label: '💳 Billing', content: <PlaceholderTab label=\"Billing settings\" /> },\n { id: 'api-keys', label: '🔑 API Keys', content: <PlaceholderTab label=\"API key management\" /> },\n ];\n\n const allTabs = [...builtinTabs, ...extraTabs];\n const [active, setActive] = useState(defaultTab);\n const activeContent = allTabs.find(t => t.id === active)?.content;\n\n return (\n <div style={{\n padding: 'var(--mn-spacing-xl, 32px)',\n display: 'flex', flexDirection: 'column', gap: 24,\n fontFamily: 'var(--mn-font-family, inherit)',\n ...style,\n }}>\n <div>\n <h1 style={{ margin: 0, fontSize: 'var(--mn-font-size-2xl, 1.5rem)', fontWeight: 700, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>Settings</h1>\n <p style={{ margin: '4px 0 0', fontSize: '0.875rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>Configure your workspace and platform appearance</p>\n </div>\n\n {/* Tab bar */}\n <div style={{ display: 'flex', gap: 4, borderBottom: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))', paddingBottom: 0 }}>\n {allTabs.map(tab => (\n <button\n key={tab.id}\n onClick={() => setActive(tab.id)}\n style={{\n padding: '8px 16px',\n background: 'none', border: 'none',\n borderBottom: active === tab.id ? '2px solid var(--mn-color-primary, #3B82F6)' : '2px solid transparent',\n color: active === tab.id ? 'var(--mn-text-primary-dark, #F0F4FF)' : 'var(--mn-text-secondary-dark, #94A3B8)',\n fontSize: '0.875rem', fontWeight: 500,\n cursor: 'pointer',\n marginBottom: -1,\n fontFamily: 'inherit',\n transition: 'color 150ms, border-color 150ms',\n }}\n >\n {tab.label}\n </button>\n ))}\n </div>\n\n {/* Active tab content */}\n <div>{activeContent}</div>\n </div>\n );\n}\n\nfunction DesignTab({ tokens, onChange, onReset, onSave, isDirty }) {\n const [copied, setCopied] = useState('');\n\n function copy(text, key) {\n navigator.clipboard?.writeText(text).then(() => {\n setCopied(key);\n setTimeout(() => setCopied(''), 2000);\n });\n }\n\n return (\n <div style={{ display: 'grid', gridTemplateColumns: 'minmax(0,1fr) 320px', gap: 24, alignItems: 'start' }}>\n {/* Left — editor */}\n <div>\n {/* Actions */}\n <div style={{ display: 'flex', gap: 8, marginBottom: 16 }}>\n {isDirty && <ActionBtn onClick={onReset} variant=\"ghost\">Reset</ActionBtn>}\n <ActionBtn onClick={onSave} disabled={!isDirty} variant=\"primary\">{isDirty ? 'Save Changes' : 'Saved'}</ActionBtn>\n <ActionBtn onClick={() => copy(tokensToCSS(tokens), 'css')} variant=\"outline\">{copied === 'css' ? '✓ Copied' : 'Copy CSS'}</ActionBtn>\n <ActionBtn onClick={() => copy(JSON.stringify(tokens, null, 2), 'json')} variant=\"outline\">{copied === 'json' ? '✓ Copied' : 'Copy JSON'}</ActionBtn>\n </div>\n\n {/* Token groups */}\n {TOKEN_GROUPS.map(group => (\n <TokenGroupSection key={group.id} group={group} tokens={tokens} onChange={onChange} />\n ))}\n </div>\n\n {/* Right — live preview */}\n <div style={{ position: 'sticky', top: 70 }}>\n <TokenPreview tokens={tokens} />\n </div>\n </div>\n );\n}\n\nfunction TokenGroupSection({ group, tokens }) {\n const [open, setOpen] = useState(true);\n const { updateToken } = useTokens();\n\n return (\n <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' }}>\n <button\n onClick={() => setOpen(o => !o)}\n 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' }}\n >\n <span style={{ fontWeight: 600, fontSize: '0.8125rem' }}>{group.label}</span>\n <span style={{ fontSize: 10, color: 'var(--mn-text-muted-dark, #64748B)' }}>{open ? '▲' : '▼'}</span>\n </button>\n\n {open && group.tokens.map(meta => {\n const value = tokens[meta.key] ?? DEFAULT_TOKENS[meta.key];\n const isDefault = value === DEFAULT_TOKENS[meta.key];\n return (\n <div key={meta.key} 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))' }}>\n <div>\n <p style={{ margin: 0, fontSize: '0.8125rem', fontWeight: 500, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{meta.label}</p>\n <code style={{ fontSize: 11, color: 'var(--mn-text-muted-dark, #64748B)' }}>{meta.key}</code>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: 6 }}>\n {!isDefault && (\n <button onClick={() => updateToken(meta.key, DEFAULT_TOKENS[meta.key])} style={{ background: 'none', border: 'none', cursor: 'pointer', color: 'var(--mn-text-muted-dark, #64748B)', fontSize: 14 }}>↺</button>\n )}\n {meta.type === 'color' ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: 6 }}>\n <input type=\"color\" value={value.startsWith?.('#') ? value : '#000000'} onChange={e => updateToken(meta.key, e.target.value)} style={{ width: 28, height: 28, border: 'none', borderRadius: 4, cursor: 'pointer', padding: 0 }} />\n <input type=\"text\" value={value} onChange={e => updateToken(meta.key, e.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' }} />\n </div>\n ) : (\n <input type=\"text\" value={value} onChange={e => updateToken(meta.key, e.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' }} />\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction TokenPreview({ tokens }) {\n return (\n <div style={{ borderRadius: 'var(--mn-radius-lg, 0.75rem)', border: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))', overflow: 'hidden' }}>\n <div style={{ padding: '12px 16px', borderBottom: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))' }}>\n <p style={{ margin: 0, fontSize: '0.8125rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>Live Preview</p>\n </div>\n <div style={{ padding: 16, display: 'flex', flexDirection: 'column', gap: 12 }}>\n {/* Color swatches */}\n <div style={{ display: 'flex', gap: 6, flexWrap: 'wrap' }}>\n {['colorPrimary','colorAccent','colorAccentAlt','colorSuccess','colorWarning','colorDanger'].map(k => (\n <div key={k} title={k} style={{ width: 28, height: 28, borderRadius: 6, backgroundColor: tokens[k] ?? DEFAULT_TOKENS[k] }} />\n ))}\n </div>\n {/* Sample button */}\n <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' }}>Primary Button</button>\n <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' }}>Outline Button</button>\n {/* Sample card */}\n <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))' }}>\n <p style={{ margin: 0, fontSize: '0.875rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>Card surface</p>\n <p style={{ margin: '4px 0 0', fontSize: '0.75rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>Secondary text color</p>\n </div>\n {/* Radius preview */}\n <div style={{ display: 'flex', gap: 8 }}>\n {['radiusSm','radiusMd','radiusLg','radiusXl'].map(k => (\n <div key={k} style={{ width: 32, height: 32, backgroundColor: 'var(--mn-color-accent, #8B5CF6)', borderRadius: tokens[k] ?? DEFAULT_TOKENS[k] }} />\n ))}\n </div>\n </div>\n </div>\n );\n}\n\nfunction ActionBtn({ children, onClick, variant = 'primary', disabled = false }) {\n const styles = {\n primary: { backgroundColor: 'var(--mn-color-primary, #3B82F6)', color: '#fff', border: 'none' },\n ghost: { backgroundColor: 'rgba(255,255,255,0.06)', color: 'var(--mn-text-secondary-dark, #94A3B8)', border: 'none' },\n outline: { backgroundColor: 'transparent', color: 'var(--mn-text-secondary-dark, #94A3B8)', border: '1px solid var(--mn-border-md-dark, rgba(255,255,255,0.13))' },\n };\n return (\n <button onClick={onClick} disabled={disabled} style={{ ...styles[variant], padding: '6px 14px', borderRadius: 'var(--mn-radius-md, 0.5rem)', fontSize: '0.8125rem', fontWeight: 500, cursor: disabled ? 'not-allowed' : 'pointer', opacity: disabled ? 0.5 : 1, fontFamily: 'inherit' }}>\n {children}\n </button>\n );\n}\n\nfunction PlaceholderTab({ label }) {\n return (\n <div style={{ padding: '40px 0', textAlign: 'center', color: 'var(--mn-text-muted-dark, #64748B)', fontSize: '0.875rem' }}>\n {label} — configure with your own content\n </div>\n );\n}\n"],"names":["HOME_MODULE","DASHBOARD_MODULE","CHAT_MODULE","DISCOVER_MODULE","ASSISTANTS_MODULE","KNOWLEDGE_BASE_MODULE","AGENT_WORKSPACE_MODULE","INVENTORY_MODULE","PLATFORMS_MODULE","WORKFLOWS_MODULE","TASKS_MODULE","CONNECTIONS_MODULE","EMAIL_MODULE","CONTACTS_MODULE","PRICING_MODULE","API_KEYS_MODULE","SETTINGS_MODULE","HELP_MODULE","ALL_MODULES","CORE_MODULES","AI_BUNDLE","OPS_BUNDLE","REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","buildInlineTokens","tokens","s","v","c","TOKEN_CSS_MAP","DEFAULT_METRICS","DashboardPage","metrics","activity","usageBars","header","style","jsxs","jsx","m","i","MetricCardShell","SectionCard","item","ActivityItem","bar","UsageBarShell","label","icon","variant","colors","title","used","total","unit","pct","color","SettingsPage","extraTabs","defaultTab","currentTokens","updateToken","updateTokens","resetTokens","saveTokens","isDirty","useTokens","allTabs","DesignTab","PlaceholderTab","active","setActive","useState","activeContent","_a","t","tab","onChange","onReset","onSave","copied","setCopied","copy","text","ActionBtn","tokensToCSS","TOKEN_GROUPS","group","TokenGroupSection","TokenPreview","open","setOpen","o","meta","DEFAULT_TOKENS","isDefault","e","onClick","disabled","styles"],"mappings":";;AA2BY,MAACA,IAAc;AAAA,EACzB,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,IAAmB;AAAA,EAC9B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AAAA,IACR,EAAE,IAAI,sBAAsB,OAAO,YAAY,MAAM,KAAM,MAAM,cAAuB,OAAO,EAAC;AAAA,IAChG,EAAE,IAAI,kBAAsB,OAAO,QAAY,MAAM,MAAM,MAAM,mBAAuB,OAAO,EAAC;AAAA,IAChG,EAAE,IAAI,qBAAsB,OAAO,WAAY,MAAM,MAAM,MAAM,sBAAuB,OAAO,EAAC;AAAA,IAChG,EAAE,IAAI,mBAAsB,OAAO,SAAY,MAAM,MAAM,MAAM,oBAAuB,OAAO,EAAC;AAAA,EACpG;AACA,GAEaC,IAAc;AAAA,EACzB,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,KAAkB;AAAA,EAC7B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AACZ,GAIaC,IAAoB;AAAA,EAC/B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,IAAwB;AAAA,EACnC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,KAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,IAAmB;AAAA,EAC9B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAIaC,KAAmB;AAAA,EAC9B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AAAA,IACR,EAAE,IAAI,iBAAuB,OAAO,iBAAiB,MAAM,KAAK,MAAM,cAAwB,OAAO,EAAC;AAAA,IACtG,EAAE,IAAI,uBAAuB,OAAO,aAAiB,MAAM,MAAM,MAAM,wBAAwB,OAAO,EAAC;AAAA,EAC3G;AACA,GAEaC,KAAmB;AAAA,EAC9B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,KAAe;AAAA,EAC1B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,KAAqB;AAAA,EAChC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAIaC,KAAe;AAAA,EAC1B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,KAAkB;AAAA,EAC7B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAIaC,KAAiB;AAAA,EAC5B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,KAAkB;AAAA,EAC7B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT,GAIaC,KAAkB;AAAA,EAC7B,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,IACR,EAAE,IAAI,mBAAmB,OAAO,iBAAiB,MAAM,MAAM,MAAM,oBAAoB,OAAO,EAAC;AAAA,IAC/F,EAAE,IAAI,mBAAmB,OAAO,aAAiB,MAAM,MAAM,MAAM,oBAAoB,OAAO,EAAC;AAAA,EACnG;AACA,GAEaC,KAAc;AAAA,EACzB,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AACT,GAKaC,KAAc;AAAA,EACzBlB;AAAA,EACAC;AAAA,EACAE;AAAA,EACAD;AAAA,EACAE;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AACF,GAGaI,KAAe;AAAA,EAC1BnB;AAAA,EACAC;AAAA,EACAC;AAAA,EACAE;AAAA,EACAC;AACF,GAGae,KAAY;AAAA,EACvBpB;AAAA,EACAC;AAAA,EACAC;AAAA,EACAE;AAAA,EACAC;AAAA,EACAI;AACF,GAGaY,KAAa;AAAA,EACxBrB;AAAA,EACAC;AAAA,EACAS;AAAA,EACAH;AAAA,EACAM;AAAA,EACAD;AACF;;;;;;;;;;;;;;;AC3PA,MAAIU,IAAqB,OAAO,IAAI,4BAA4B,GAC9DC,IAAsB,OAAO,IAAI,gBAAgB;AACnD,WAASC,EAAQC,GAAMC,GAAQC,GAAU;AACvC,QAAIC,IAAM;AAGV,QAFWD,MAAX,WAAwBC,IAAM,KAAKD,IACxBD,EAAO,QAAlB,WAA0BE,IAAM,KAAKF,EAAO,MACxC,SAASA,GAAQ;AACnB,MAAAC,IAAW,CAAA;AACX,eAASE,KAAYH;AACnB,QAAUG,MAAV,UAAuBF,EAASE,CAAQ,IAAIH,EAAOG,CAAQ;AAAA,IACjE,MAAS,CAAAF,IAAWD;AAClB,WAAAA,IAASC,EAAS,KACX;AAAA,MACL,UAAUL;AAAA,MACV,MAAMG;AAAA,MACN,KAAKG;AAAA,MACL,KAAgBF,MAAX,SAAoBA,IAAS;AAAA,MAClC,OAAOC;AAAA;EAEX;AACA,SAAAG,EAAA,WAAmBP,GACnBO,EAAA,MAAcN,GACdM,EAAA,OAAeN;;;;;;;;;;;;;;sBCtBE,QAAQ,IAAI,aAA7B,iBACG,WAAY;AACX,aAASO,EAAyBN,GAAM;AACtC,UAAYA,KAAR,KAAc,QAAO;AACzB,UAAmB,OAAOA,KAAtB;AACF,eAAOA,EAAK,aAAaO,KACrB,OACAP,EAAK,eAAeA,EAAK,QAAQ;AACvC,UAAiB,OAAOA,KAApB,SAA0B,QAAOA;AACrC,cAAQA,GAAI;AAAA,QACV,KAAKF;AACH,iBAAO;AAAA,QACT,KAAKU;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA,MACjB;AACM,UAAiB,OAAOZ,KAApB;AACF,gBACgB,OAAOA,EAAK,OAAzB,YACC,QAAQ;AAAA,UACN;AAAA,WAEJA,EAAK,UACf;AAAA,UACU,KAAKa;AACH,mBAAO;AAAA,UACT,KAAKC;AACH,mBAAOd,EAAK,eAAe;AAAA,UAC7B,KAAKe;AACH,oBAAQf,EAAK,SAAS,eAAe,aAAa;AAAA,UACpD,KAAKgB;AACH,gBAAIC,IAAYjB,EAAK;AACrB,mBAAAA,IAAOA,EAAK,aACZA,MACIA,IAAOiB,EAAU,eAAeA,EAAU,QAAQ,IACnDjB,IAAcA,MAAP,KAAc,gBAAgBA,IAAO,MAAM,eAC9CA;AAAA,UACT,KAAKkB;AACH,mBACGD,IAAYjB,EAAK,eAAe,MACxBiB,MAAT,OACIA,IACAX,EAAyBN,EAAK,IAAI,KAAK;AAAA,UAE/C,KAAKmB;AACH,YAAAF,IAAYjB,EAAK,UACjBA,IAAOA,EAAK;AACZ,gBAAI;AACF,qBAAOM,EAAyBN,EAAKiB,CAAS,CAAC;AAAA,YAC7D,QAAwB;AAAA,YAAA;AAAA,QACxB;AACM,aAAO;AAAA,IACb;AACI,aAASG,EAAmBC,GAAO;AACjC,aAAO,KAAKA;AAAA,IAClB;AACI,aAASC,EAAuBD,GAAO;AACrC,UAAI;AACF,QAAAD,EAAmBC,CAAK;AACxB,YAAIE,IAA2B;AAAA,MACvC,QAAkB;AACV,QAAAA,IAA2B;AAAA,MACnC;AACM,UAAIA,GAA0B;AAC5B,QAAAA,IAA2B;AAC3B,YAAIC,IAAwBD,EAAyB,OACjDE,IACc,OAAO,UAAtB,cACC,OAAO,eACPJ,EAAM,OAAO,WAAW,KAC1BA,EAAM,YAAY,QAClB;AACF,eAAAG,EAAsB;AAAA,UACpBD;AAAA,UACA;AAAA,UACAE;AAAA,WAEKL,EAAmBC,CAAK;AAAA,MACvC;AAAA,IACA;AACI,aAASK,EAAY1B,GAAM;AACzB,UAAIA,MAASF,EAAqB,QAAO;AACzC,UACe,OAAOE,KAApB,YACSA,MAAT,QACAA,EAAK,aAAamB;AAElB,eAAO;AACT,UAAI;AACF,YAAIQ,IAAOrB,EAAyBN,CAAI;AACxC,eAAO2B,IAAO,MAAMA,IAAO,MAAM;AAAA,MACzC,QAAkB;AACV,eAAO;AAAA,MACf;AAAA,IACA;AACI,aAASC,IAAW;AAClB,UAAIC,IAAaC,EAAqB;AACtC,aAAgBD,MAAT,OAAsB,OAAOA,EAAW,SAAQ;AAAA,IAC7D;AACI,aAASE,IAAe;AACtB,aAAO,MAAM,uBAAuB;AAAA,IAC1C;AACI,aAASC,EAAY/B,GAAQ;AAC3B,UAAIgC,EAAe,KAAKhC,GAAQ,KAAK,GAAG;AACtC,YAAIiC,IAAS,OAAO,yBAAyBjC,GAAQ,KAAK,EAAE;AAC5D,YAAIiC,KAAUA,EAAO,eAAgB,QAAO;AAAA,MACpD;AACM,aAAkBjC,EAAO,QAAlB;AAAA,IACb;AACI,aAASkC,EAA2BC,GAAOC,GAAa;AACtD,eAASC,IAAwB;AAC/B,QAAAC,MACIA,IAA6B,IAC/B,QAAQ;AAAA,UACN;AAAA,UACAF;AAAA,QACZ;AAAA,MACA;AACM,MAAAC,EAAsB,iBAAiB,IACvC,OAAO,eAAeF,GAAO,OAAO;AAAA,QAClC,KAAKE;AAAA,QACL,cAAc;AAAA,MACtB,CAAO;AAAA,IACP;AACI,aAASE,IAAyC;AAChD,UAAIC,IAAgBnC,EAAyB,KAAK,IAAI;AACtD,aAAAoC,EAAuBD,CAAa,MAChCC,EAAuBD,CAAa,IAAI,IAC1C,QAAQ;AAAA,QACN;AAAA,MACV,IACMA,IAAgB,KAAK,MAAM,KACTA,MAAX,SAA2BA,IAAgB;AAAA,IACxD;AACI,aAASE,EAAa3C,GAAMG,GAAKiC,GAAOQ,GAAOC,GAAYC,GAAW;AACpE,UAAIC,IAAUX,EAAM;AACpB,aAAApC,IAAO;AAAA,QACL,UAAUH;AAAA,QACV,MAAMG;AAAA,QACN,KAAKG;AAAA,QACL,OAAOiC;AAAA,QACP,QAAQQ;AAAA,UAEWG,MAAX,SAAqBA,IAAU,UAAzC,OACI,OAAO,eAAe/C,GAAM,OAAO;AAAA,QACjC,YAAY;AAAA,QACZ,KAAKwC;AAAA,OACN,IACD,OAAO,eAAexC,GAAM,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM,GACtEA,EAAK,SAAS,CAAA,GACd,OAAO,eAAeA,EAAK,QAAQ,aAAa;AAAA,QAC9C,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,MACf,CAAO,GACD,OAAO,eAAeA,GAAM,cAAc;AAAA,QACxC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,MACf,CAAO,GACD,OAAO,eAAeA,GAAM,eAAe;AAAA,QACzC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO6C;AAAA,MACf,CAAO,GACD,OAAO,eAAe7C,GAAM,cAAc;AAAA,QACxC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO8C;AAAA,MACf,CAAO,GACD,OAAO,WAAW,OAAO,OAAO9C,EAAK,KAAK,GAAG,OAAO,OAAOA,CAAI,IACxDA;AAAA,IACb;AACI,aAASgD,EACPhD,GACAC,GACAC,GACA+C,GACAJ,GACAC,GACA;AACA,UAAII,IAAWjD,EAAO;AACtB,UAAeiD,MAAX;AACF,YAAID;AACF,cAAIE,GAAYD,CAAQ,GAAG;AACzB,iBACED,IAAmB,GACnBA,IAAmBC,EAAS,QAC5BD;AAEA,cAAAG,EAAkBF,EAASD,CAAgB,CAAC;AAC9C,mBAAO,UAAU,OAAO,OAAOC,CAAQ;AAAA,UACnD;AACY,oBAAQ;AAAA,cACN;AAAA;YAED,CAAAE,EAAkBF,CAAQ;AACjC,UAAIjB,EAAe,KAAKhC,GAAQ,KAAK,GAAG;AACtC,QAAAiD,IAAW5C,EAAyBN,CAAI;AACxC,YAAIqD,IAAO,OAAO,KAAKpD,CAAM,EAAE,OAAO,SAAUqD,IAAG;AACjD,iBAAiBA,OAAV;AAAA,QACjB,CAAS;AACD,QAAAL,IACE,IAAII,EAAK,SACL,oBAAoBA,EAAK,KAAK,SAAS,IAAI,WAC3C,kBACNE,EAAsBL,IAAWD,CAAgB,MAC7CI,IACA,IAAIA,EAAK,SAAS,MAAMA,EAAK,KAAK,SAAS,IAAI,WAAW,MAC5D,QAAQ;AAAA,UACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UACAJ;AAAA,UACAC;AAAA,UACAG;AAAA,UACAH;AAAA,WAEDK,EAAsBL,IAAWD,CAAgB,IAAI;AAAA,MAChE;AAMM,UALAC,IAAW,MACAhD,MAAX,WACGoB,EAAuBpB,CAAQ,GAAIgD,IAAW,KAAKhD,IACtD8B,EAAY/B,CAAM,MACfqB,EAAuBrB,EAAO,GAAG,GAAIiD,IAAW,KAAKjD,EAAO,MAC3D,SAASA,GAAQ;AACnB,QAAAC,IAAW,CAAA;AACX,iBAASE,KAAYH;AACnB,UAAUG,MAAV,UAAuBF,EAASE,CAAQ,IAAIH,EAAOG,CAAQ;AAAA,MACrE,MAAa,CAAAF,IAAWD;AAClB,aAAAiD,KACEf;AAAA,QACEjC;AAAA,QACe,OAAOF,KAAtB,aACIA,EAAK,eAAeA,EAAK,QAAQ,YACjCA;AAAA,SAED2C;AAAA,QACL3C;AAAA,QACAkD;AAAA,QACAhD;AAAA,QACA0B,EAAQ;AAAA,QACRiB;AAAA,QACAC;AAAA;IAER;AACI,aAASM,EAAkBI,GAAM;AAC/B,MAAAC,EAAeD,CAAI,IACfA,EAAK,WAAWA,EAAK,OAAO,YAAY,KAC3B,OAAOA,KAApB,YACSA,MAAT,QACAA,EAAK,aAAarC,MACDqC,EAAK,SAAS,WAA9B,cACGC,EAAeD,EAAK,SAAS,KAAK,KAClCA,EAAK,SAAS,MAAM,WACnBA,EAAK,SAAS,MAAM,OAAO,YAAY,KACxCA,EAAK,WAAWA,EAAK,OAAO,YAAY;AAAA,IACtD;AACI,aAASC,EAAeC,GAAQ;AAC9B,aACe,OAAOA,KAApB,YACSA,MAAT,QACAA,EAAO,aAAa7D;AAAA,IAE5B;AACI,QAAI8D,IAAQC,IACV/D,IAAqB,OAAO,IAAI,4BAA4B,GAC5DgB,IAAoB,OAAO,IAAI,cAAc,GAC7Cf,IAAsB,OAAO,IAAI,gBAAgB,GACjDW,KAAyB,OAAO,IAAI,mBAAmB,GACvDD,KAAsB,OAAO,IAAI,gBAAgB,GACjDO,KAAsB,OAAO,IAAI,gBAAgB,GACjDD,KAAqB,OAAO,IAAI,eAAe,GAC/CE,KAAyB,OAAO,IAAI,mBAAmB,GACvDN,KAAsB,OAAO,IAAI,gBAAgB,GACjDC,KAA2B,OAAO,IAAI,qBAAqB,GAC3DO,KAAkB,OAAO,IAAI,YAAY,GACzCC,IAAkB,OAAO,IAAI,YAAY,GACzCP,KAAsB,OAAO,IAAI,gBAAgB,GACjDL,KAAyB,OAAO,IAAI,wBAAwB,GAC5DuB,IACE6B,EAAM,iEACR1B,IAAiB,OAAO,UAAU,gBAClCkB,KAAc,MAAM,SACpBU,IAAa,QAAQ,aACjB,QAAQ,aACR,WAAY;AACV,aAAO;AAAA,IACnB;AACI,IAAAF,IAAQ;AAAA,MACN,0BAA0B,SAAUG,GAAmB;AACrD,eAAOA,EAAiB;AAAA,MAChC;AAAA;AAEI,QAAIvB,GACAG,IAAyB,CAAA,GACzBqB,IAAyBJ,EAAM,yBAAyB;AAAA,MAC1DA;AAAA,MACA5B;AAAA,IACN,EAAK,GACGiC,IAAwBH,EAAWnC,EAAYK,CAAY,CAAC,GAC5DwB,IAAwB,CAAA;AAC5B,IAAAU,EAAA,WAAmBnE,GACnBmE,EAAA,MAAc,SAAUjE,GAAMC,GAAQC,GAAU;AAC9C,UAAIgE,IACF,MAAMpC,EAAqB;AAC7B,aAAOkB;AAAA,QACLhD;AAAA,QACAC;AAAA,QACAC;AAAA,QACA;AAAA,QACAgE,IACI,MAAM,uBAAuB,IAC7BH;AAAA,QACJG,IAAmBL,EAAWnC,EAAY1B,CAAI,CAAC,IAAIgE;AAAA;IAE3D,GACIC,EAAA,OAAe,SAAUjE,GAAMC,GAAQC,GAAU;AAC/C,UAAIgE,IACF,MAAMpC,EAAqB;AAC7B,aAAOkB;AAAA,QACLhD;AAAA,QACAC;AAAA,QACAC;AAAA,QACA;AAAA,QACAgE,IACI,MAAM,uBAAuB,IAC7BH;AAAA,QACJG,IAAmBL,EAAWnC,EAAY1B,CAAI,CAAC,IAAIgE;AAAA;IAE3D;AAAA,EACA,GAAG;;;;sBC7VC,QAAQ,IAAI,aAAa,eAC3BG,EAAA,UAAiBP,GAAA,IAEjBO,EAAA,UAAiBC,GAAA;;;ACYnB,SAASC,GAAkBC,GAAQ;AACjC,MAAI,CAACA,EAAQ,QAAO,CAAA;AACpB,QAAMC,IAAI,CAAA;AACV,gBAAO,QAAQD,CAAM,EAAE,QAAQ,CAAC,CAAChB,GAAGkB,CAAC,MAAM;AAAE,UAAMC,IAAIC,GAAcpB,CAAC;AAAG,IAAImB,MAAGF,EAAEE,CAAC,IAAID;AAAA,EAAG,CAAC,GACpFD;AACT;AAIA,MAAMI,KAAkB;AAAA,EACtB,EAAE,OAAO,kBAAqB,OAAO,KAAK,MAAM,MAAM,SAAS,UAAA;AAAA,EAC/D,EAAE,OAAO,qBAAqB,OAAO,KAAK,MAAM,MAAM,SAAS,UAAA;AAAA,EAC/D,EAAE,OAAO,kBAAqB,OAAO,KAAK,MAAM,MAAM,SAAS,SAAA;AAAA,EAC/D,EAAE,OAAO,mBAAqB,OAAO,KAAK,MAAM,KAAK,SAAS,UAAA;AAChE;AAEO,SAASC,GAAc,EAAE,SAAAC,IAAUF,IAAiB,UAAAG,IAAW,CAAA,GAAI,WAAAC,IAAY,IAAI,QAAAC,GAAQ,QAAAV,GAAQ,OAAAW,KAAS;AACjH,SACEC,gBAAAA,EAAAA,KAAC,SAAI,OAAO;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,GAAGb,GAAkBC,CAAM;AAAA,IAC3B,GAAGW;AAAA,EAAA,GAGF,UAAA;AAAA,IAAAD,4BACE,OAAA,EACC,UAAA;AAAA,MAAAG,gBAAAA,EAAAA,IAAC,MAAA,EAAG,OAAO,EAAE,QAAQ,GAAG,UAAU,mCAAmC,YAAY,KAAK,OAAO,uCAAA,GAA0C,UAAA,aAEvI;AAAA,MACAA,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,WAAW,UAAU,oCAAoC,OAAO,4CAA4C,UAAA,sCAAA,CAEhI;AAAA,IAAA,GACF;AAAA,IAIFA,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,qBAAqB,yCAAyC,KAAK,GAAA,GAC/F,UAAAN,EAAQ,IAAI,CAACO,GAAGC,MACfF,gBAAAA,EAAAA,IAACG,IAAA,EAAoC,GAAGF,KAAlBA,EAAE,SAASC,CAAU,CAC5C,EAAA,CACH;AAAA,IAGAH,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,qBAAqBH,EAAU,SAAS,YAAY,OAAO,KAAK,MAC5F,UAAA;AAAA,MAAAD,EAAS,SAAS,KACjBK,gBAAAA,EAAAA,IAACI,GAAA,EAAY,OAAM,mBAChB,UAAAT,EAAS,IAAI,CAACU,GAAMH,MACnBF,gBAAAA,MAACM,IAAA,EAAqB,MAAAD,EAAA,GAAHH,CAAe,CACnC,GACH;AAAA,MAEDN,EAAU,SAAS,KAClBI,gBAAAA,EAAAA,IAACI,GAAA,EAAY,OAAM,cACjB,UAAAJ,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,GAAA,GAC1D,UAAAJ,EAAU,IAAI,CAACW,GAAKL,MACnBF,gBAAAA,EAAAA,IAACQ,IAAA,EAAuB,GAAGD,EAAA,GAAPL,CAAY,CACjC,GACH,EAAA,CACF;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;AAGA,SAASC,GAAgB,EAAE,OAAAM,GAAO,OAAAvE,GAAO,MAAAwE,GAAM,SAAAC,IAAU,aAAa;AACpE,QAAMC,IAAS,EAAE,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,QAAQ,WAAW,QAAQ,UAAA,GAClGtB,IAAIsB,EAAOD,CAAO,KAAKC,EAAO;AACpC,SACEb,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,IAAI,cAAc,gCAAgC,iBAAiB,sCAAsC,QAAQ,0DAAA,GACtI,UAAA;AAAA,IAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,gBAAgB,iBAAiB,YAAY,aAAA,GAC1E,UAAA;AAAA,MAAAC,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,UAAU,aAAa,OAAO,yCAAA,GAA6C,UAAAS,EAAA,CAAM;AAAA,MAChGT,gBAAAA,EAAAA,IAAC,SAAI,OAAO,EAAE,OAAO,IAAI,QAAQ,IAAI,cAAc,+BAA+B,iBAAiB,GAAGV,CAAC,MAAM,SAAS,QAAQ,YAAY,UAAU,gBAAgB,UAAU,UAAU,MAAO,UAAAoB,EAAA,CAAK;AAAA,IAAA,GACtM;AAAA,IACAV,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,YAAY,UAAU,UAAU,YAAY,KAAK,OAAO,uCAAA,GAA2C,UAAA9D,EAAA,CAAM;AAAA,EAAA,GAC/H;AAEJ;AAEA,SAASkE,EAAY,EAAE,OAAAS,GAAO,UAAA9C,KAAY;AACxC,SACEgC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,cAAc,gCAAgC,iBAAiB,sCAAsC,QAAQ,2DAA2D,UAAU,SAAA,GAC9L,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,SAAS,aAAa,cAAc,0DAAA,GAChD,UAAAA,gBAAAA,EAAAA,IAAC,MAAA,EAAG,OAAO,EAAE,QAAQ,GAAG,UAAU,YAAY,YAAY,KAAK,OAAO,uCAAA,GAA2C,UAAAa,EAAA,CAAM,EAAA,CACzH;AAAA,0BACC,OAAA,EAAI,OAAO,EAAE,SAAS,SAAA,GAAa,UAAA9C,EAAA,CAAS;AAAA,EAAA,GAC/C;AAEJ;AAEA,SAASuC,GAAa,EAAE,MAAAD,KAAQ;AAC9B,SACEN,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,IAAI,YAAY,cAAc,SAAS,UAAU,cAAc,6DAChG,UAAA;AAAA,IAAAM,EAAK,QAAQL,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,UAAU,IAAI,WAAW,EAAA,GAAM,UAAAK,EAAK,KAAA,CAAK;AAAA,2BACrE,OAAA,EAAI,OAAO,EAAE,MAAM,KAClB,UAAA;AAAA,MAAAL,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,aAAa,OAAO,wCAAwC,YAAY,IAAA,GAAQ,YAAK,OAAM;AAAA,MAC3HK,EAAK,eAAeL,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,WAAW,UAAU,WAAW,OAAO,yCAAA,GAA6C,YAAK,YAAA,CAAY;AAAA,IAAA,GAChJ;AAAA,IACCK,EAAK,MAAML,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,UAAU,IAAI,OAAO,sCAAsC,YAAY,EAAA,GAAM,YAAK,GAAA,CAAG;AAAA,EAAA,GAClH;AAEJ;AAEA,SAASQ,GAAc,EAAE,OAAAC,GAAO,MAAAK,GAAM,OAAAC,GAAO,MAAAC,IAAO,MAAM;AACxD,QAAMC,IAAMF,IAAQ,IAAI,KAAK,MAAOD,IAAOC,IAAS,GAAG,IAAI,GACrDG,IAAQD,KAAO,KAAK,YAAYA,KAAO,KAAK,YAAY;AAC9D,gCACG,OAAA,EACC,UAAA;AAAA,IAAAlB,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,gBAAgB,iBAAiB,cAAc,EAAA,GAC5E,UAAA;AAAA,MAAAC,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,UAAU,aAAa,OAAO,yCAAA,GAA6C,UAAAS,EAAA,CAAM;AAAA,MAChGV,gBAAAA,EAAAA,KAAC,QAAA,EAAK,OAAO,EAAE,UAAU,aAAa,YAAY,KAAK,OAAO,uCAAA,GAA2C,UAAA;AAAA,QAAAe,EAAK,eAAA;AAAA,QAAkBE;AAAA,QAAK;AAAA,QAAID,MAAU,QAAW,MAAMA,EAAM,eAAA;AAAA,QAAkBC;AAAA,MAAA,EAAA,CAAK;AAAA,IAAA,GACnM;AAAA,IACAhB,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,QAAQ,GAAG,cAAc,MAAM,iBAAiB,0BAA0B,UAAU,SAAA,GAChG,UAAAA,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,QAAQ,QAAQ,OAAO,GAAGiB,CAAG,KAAK,iBAAiBC,GAAO,cAAc,WAAW,YAAY,cAAA,GAAiB,EAAA,CAChI;AAAA,EAAA,GACF;AAEJ;ACxHO,SAASC,GAAa,EAAE,MAAMC,IAAY,CAAA,GAAI,YAAAC,IAAa,UAAU,QAAAlC,GAAQ,OAAAW,KAAS;;AAC3F,QAAM,EAAE,QAAQwB,GAAe,aAAAC,GAAa,cAAAC,GAAc,aAAAC,GAAa,YAAAC,GAAY,SAAAC,EAAA,IAAYC,EAAA,GASzFC,IAAU,CAAC,GAPG;AAAA,IAClB,EAAE,IAAI,UAAY,OAAO,oBAAqB,SAAS7B,gBAAAA,EAAAA,IAAC8B,IAAA,EAAU,QAAQR,GAAe,UAAUC,GAAa,SAASE,GAAa,QAAQC,GAAY,SAAAC,GAAkB,EAAA;AAAA,IAC5K,EAAE,IAAI,WAAY,OAAO,cAAuB,SAAS3B,gBAAAA,EAAAA,IAAC+B,GAAA,EAAe,OAAM,mBAAA,CAAmB,EAAA;AAAA,IAClG,EAAE,IAAI,WAAY,OAAO,cAAwB,SAAS/B,gBAAAA,EAAAA,IAAC+B,GAAA,EAAe,OAAM,mBAAA,CAAmB,EAAA;AAAA,IACnG,EAAE,IAAI,YAAY,OAAO,eAAwB,SAAS/B,gBAAAA,EAAAA,IAAC+B,GAAA,EAAe,OAAM,sBAAqB,EAAA;AAAA,EAAG,GAGzE,GAAGX,CAAS,GACvC,CAACY,GAAQC,CAAS,IAAIC,EAASb,CAAU,GACzCc,KAAgBC,IAAAP,EAAQ,KAAK,OAAKQ,EAAE,OAAOL,CAAM,MAAjC,gBAAAI,EAAoC;AAE1D,SACErC,gBAAAA,EAAAA,KAAC,SAAI,OAAO;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IAAQ,eAAe;AAAA,IAAU,KAAK;AAAA,IAC/C,YAAY;AAAA,IACZ,GAAGD;AAAA,EAAA,GAEH,UAAA;AAAA,IAAAC,gBAAAA,OAAC,OAAA,EACC,UAAA;AAAA,MAAAC,gBAAAA,EAAAA,IAAC,MAAA,EAAG,OAAO,EAAE,QAAQ,GAAG,UAAU,mCAAmC,YAAY,KAAK,OAAO,uCAAA,GAA0C,UAAA,YAAQ;AAAA,MAC/IA,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,WAAW,UAAU,YAAY,OAAO,4CAA4C,UAAA,mDAAA,CAAgD;AAAA,IAAA,GAC1J;AAAA,IAGAA,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,GAAG,cAAc,2DAA2D,eAAe,KAC5H,UAAA6B,EAAQ,IAAI,CAAAS,MACXtC,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEC,SAAS,MAAMiC,EAAUK,EAAI,EAAE;AAAA,QAC/B,OAAO;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,UAAQ,QAAQ;AAAA,UAC5B,cAAcN,MAAWM,EAAI,KAAK,+CAA+C;AAAA,UACjF,OAAON,MAAWM,EAAI,KAAK,yCAAyC;AAAA,UACpE,UAAU;AAAA,UAAY,YAAY;AAAA,UAClC,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,YAAY;AAAA,QAAA;AAAA,QAGb,UAAAA,EAAI;AAAA,MAAA;AAAA,MAdAA,EAAI;AAAA,IAAA,CAgBZ,GACH;AAAA,IAGAtC,gBAAAA,EAAAA,IAAC,SAAK,UAAAmC,EAAA,CAAc;AAAA,EAAA,GACtB;AAEJ;AAEA,SAASL,GAAU,EAAE,QAAA3C,GAAQ,UAAAoD,GAAU,SAAAC,GAAS,QAAAC,GAAQ,SAAAd,KAAW;AACjE,QAAM,CAACe,GAAQC,CAAS,IAAIT,EAAS,EAAE;AAEvC,WAASU,EAAKC,GAAM7H,GAAK;;AACvB,KAAAoH,IAAA,UAAU,cAAV,QAAAA,EAAqB,UAAUS,GAAM,KAAK,MAAM;AAC9C,MAAAF,EAAU3H,CAAG,GACb,WAAW,MAAM2H,EAAU,EAAE,GAAG,GAAI;AAAA,IACtC;AAAA,EACF;AAEA,SACE5C,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,qBAAqB,uBAAuB,KAAK,IAAI,YAAY,QAAA,GAE9F,UAAA;AAAA,IAAAA,gBAAAA,OAAC,OAAA,EAEC,UAAA;AAAA,MAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,GAAG,cAAc,GAAA,GAClD,UAAA;AAAA,QAAA4B,2BAAYmB,GAAA,EAAU,SAASN,GAAS,SAAQ,SAAQ,UAAA,SAAK;AAAA,QAC9DxC,gBAAAA,EAAAA,IAAC8C,GAAA,EAAU,SAASL,GAAQ,UAAU,CAACd,GAAS,SAAQ,WAAW,UAAAA,IAAU,iBAAiB,QAAA,CAAQ;AAAA,QACtG3B,gBAAAA,EAAAA,IAAC8C,GAAA,EAAU,SAAS,MAAMF,EAAKG,GAAY5D,CAAM,GAAG,KAAK,GAAG,SAAQ,WAAW,UAAAuD,MAAW,QAAQ,aAAa,YAAW;AAAA,8BACzHI,GAAA,EAAU,SAAS,MAAMF,EAAK,KAAK,UAAUzD,GAAQ,MAAM,CAAC,GAAG,MAAM,GAAG,SAAQ,WAAW,UAAAuD,MAAW,SAAS,aAAa,YAAA,CAAY;AAAA,MAAA,GAC3I;AAAA,MAGCM,GAAa,IAAI,CAAAC,MAChBjD,gBAAAA,EAAAA,IAACkD,IAAA,EAAiC,OAAAD,GAAc,QAAA9D,GAAgB,UAAAoD,KAAxCU,EAAM,EAAsD,CACrF;AAAA,IAAA,GACH;AAAA,IAGAjD,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,UAAU,UAAU,KAAK,GAAA,GACrC,UAAAA,gBAAAA,EAAAA,IAACmD,IAAA,EAAa,QAAAhE,EAAA,CAAgB,EAAA,CAChC;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS+D,GAAkB,EAAE,OAAAD,GAAO,QAAA9D,KAAU;AAC5C,QAAM,CAACiE,GAAMC,CAAO,IAAInB,EAAS,EAAI,GAC/B,EAAE,aAAAX,EAAA,IAAgBK,EAAA;AAExB,SACE7B,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,cAAc,IAAI,cAAc,gCAAgC,QAAQ,2DAA2D,UAAU,SAAA,GACzJ,UAAA;AAAA,IAAAA,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMsD,EAAQ,CAAAC,MAAK,CAACA,CAAC;AAAA,QAC9B,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,iBAAiB,OAAO,QAAQ,SAAS,aAAa,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,OAAO,wCAAwC,YAAY,UAAA;AAAA,QAExO,UAAA;AAAA,UAAAtD,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,YAAY,KAAK,UAAU,YAAA,GAAgB,UAAAiD,EAAM,MAAA,CAAM;AAAA,UACtEjD,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,UAAU,IAAI,OAAO,qCAAA,GAAyC,UAAAoD,IAAO,MAAM,IAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAG/FA,KAAQH,EAAM,OAAO,IAAI,CAAAM,MAAQ;;AAChC,YAAMrH,IAAQiD,EAAOoE,EAAK,GAAG,KAAKC,EAAeD,EAAK,GAAG,GACnDE,IAAYvH,MAAUsH,EAAeD,EAAK,GAAG;AACnD,oCACG,OAAA,EAAmB,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,iBAAiB,KAAK,IAAI,SAAS,YAAY,WAAW,6DAC5I,UAAA;AAAA,QAAAxD,gBAAAA,OAAC,OAAA,EACC,UAAA;AAAA,UAAAC,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,aAAa,YAAY,KAAK,OAAO,uCAAA,GAA2C,YAAK,OAAM;AAAA,UAC5HA,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,UAAU,IAAI,OAAO,qCAAA,GAAyC,UAAAuD,EAAK,IAAA,CAAI;AAAA,QAAA,GACxF;AAAA,QACAxD,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,EAAA,GACvD,UAAA;AAAA,UAAA,CAAC0D,KACAzD,gBAAAA,EAAAA,IAAC,UAAA,EAAO,SAAS,MAAMuB,EAAYgC,EAAK,KAAKC,EAAeD,EAAK,GAAG,CAAC,GAAG,OAAO,EAAE,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,OAAO,sCAAsC,UAAU,GAAA,GAAM,UAAA,IAAA,CAAC;AAAA,UAEvMA,EAAK,SAAS,UACbxD,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,KACxD,UAAA;AAAA,YAAAC,gBAAAA,EAAAA,IAAC,SAAA,EAAM,MAAK,SAAQ,QAAOoC,IAAAlG,EAAM,eAAN,QAAAkG,EAAA,KAAAlG,GAAmB,OAAOA,IAAQ,WAAW,UAAU,CAAAwH,MAAKnC,EAAYgC,EAAK,KAAKG,EAAE,OAAO,KAAK,GAAG,OAAO,EAAE,OAAO,IAAI,QAAQ,IAAI,QAAQ,QAAQ,cAAc,GAAG,QAAQ,WAAW,SAAS,KAAK;AAAA,YAChO1D,gBAAAA,EAAAA,IAAC,SAAA,EAAM,MAAK,QAAO,OAAA9D,GAAc,UAAU,CAAAwH,MAAKnC,EAAYgC,EAAK,KAAKG,EAAE,OAAO,KAAK,GAAG,OAAO,EAAE,OAAO,IAAI,SAAS,WAAW,cAAc,GAAG,QAAQ,0DAA0D,iBAAiB,0BAA0B,OAAO,wCAAwC,UAAU,IAAI,SAAS,QAAQ,YAAY,cAAY,CAAG;AAAA,UAAA,EAAA,CACxW,IAEA1D,gBAAAA,EAAAA,IAAC,SAAA,EAAM,MAAK,QAAO,OAAA9D,GAAc,UAAU,CAAAwH,MAAKnC,EAAYgC,EAAK,KAAKG,EAAE,OAAO,KAAK,GAAG,OAAO,EAAE,OAAO,KAAK,SAAS,WAAW,cAAc,GAAG,QAAQ,0DAA0D,iBAAiB,0BAA0B,OAAO,wCAAwC,UAAU,IAAI,SAAS,SAAO,CAAG;AAAA,QAAA,EAAA,CAElV;AAAA,MAAA,EAAA,GAjBQH,EAAK,GAkBf;AAAA,IAEJ,CAAC;AAAA,EAAA,GACH;AAEJ;AAEA,SAASJ,GAAa,EAAE,QAAAhE,KAAU;AAChC,SACEY,gBAAAA,OAAC,OAAA,EAAI,OAAO,EAAE,cAAc,gCAAgC,QAAQ,2DAA2D,UAAU,SAAA,GACvI,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,SAAS,aAAa,cAAc,0DAAA,GAChD,UAAAA,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,aAAa,YAAY,KAAK,OAAO,uCAAA,GAA0C,UAAA,eAAA,CAAY,EAAA,CAC9H;AAAA,IACAD,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,IAAI,SAAS,QAAQ,eAAe,UAAU,KAAK,GAAA,GAExE,UAAA;AAAA,MAAAC,gBAAAA,MAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,GAAG,UAAU,OAAA,GAC9C,UAAA,CAAC,gBAAe,eAAc,kBAAiB,gBAAe,gBAAe,aAAa,EAAE,IAAI,CAAA7B,MAC/F6B,gBAAAA,EAAAA,IAAC,OAAA,EAAY,OAAO7B,GAAG,OAAO,EAAE,OAAO,IAAI,QAAQ,IAAI,cAAc,GAAG,iBAAiBgB,EAAOhB,CAAC,KAAKqF,EAAerF,CAAC,IAAE,GAA9GA,CAAiH,CAC5H,GACH;AAAA,MAEA6B,gBAAAA,EAAAA,IAAC,YAAO,OAAO,EAAE,SAAS,YAAY,cAAc,+BAA+B,iBAAiB,oCAAoC,OAAO,QAAQ,QAAQ,QAAQ,YAAY,kCAAkC,UAAU,YAAY,YAAY,KAAK,QAAQ,UAAA,GAAa,UAAA,iBAAA,CAAc;AAAA,MAC/RA,gBAAAA,EAAAA,IAAC,YAAO,OAAO,EAAE,SAAS,YAAY,cAAc,+BAA+B,iBAAiB,eAAe,OAAO,oCAAoC,QAAQ,8CAA8C,YAAY,kCAAkC,UAAU,YAAY,YAAY,KAAK,QAAQ,UAAA,GAAa,UAAA,iBAAA,CAAc;AAAA,MAE5UD,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,IAAI,cAAc,gCAAgC,iBAAiB,sCAAsC,QAAQ,0DAAA,GACtI,UAAA;AAAA,QAAAC,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,YAAY,YAAY,KAAK,OAAO,uCAAA,GAA0C,UAAA,gBAAY;AAAA,QAC3HA,gBAAAA,EAAAA,IAAC,KAAA,EAAE,OAAO,EAAE,QAAQ,WAAW,UAAU,WAAW,OAAO,4CAA4C,UAAA,uBAAA,CAAoB;AAAA,MAAA,GAC7H;AAAA,4BAEC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,EAAA,GACjC,UAAA,CAAC,YAAW,YAAW,YAAW,UAAU,EAAE,IAAI,CAAA7B,MACjD6B,gBAAAA,EAAAA,IAAC,OAAA,EAAY,OAAO,EAAE,OAAO,IAAI,QAAQ,IAAI,iBAAiB,mCAAmC,cAAcb,EAAOhB,CAAC,KAAKqF,EAAerF,CAAC,IAAE,GAApIA,CAAuI,CAClJ,EAAA,CACH;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS2E,EAAU,EAAE,UAAA/E,GAAU,SAAA4F,GAAS,SAAAhD,IAAU,WAAW,UAAAiD,IAAW,MAAS;AAC/E,QAAMC,IAAS;AAAA,IACb,SAAS,EAAE,iBAAiB,oCAAoC,OAAO,QAAQ,QAAQ,OAAA;AAAA,IACvF,OAAS,EAAE,iBAAiB,0BAA0B,OAAO,0CAA0C,QAAQ,OAAA;AAAA,IAC/G,SAAS,EAAE,iBAAiB,eAAe,OAAO,0CAA0C,QAAQ,6DAAA;AAAA,EAA6D;AAEnK,SACE7D,gBAAAA,EAAAA,IAAC,UAAA,EAAO,SAAA2D,GAAkB,UAAAC,GAAoB,OAAO,EAAE,GAAGC,EAAOlD,CAAO,GAAG,SAAS,YAAY,cAAc,+BAA+B,UAAU,aAAa,YAAY,KAAK,QAAQiD,IAAW,gBAAgB,WAAW,SAASA,IAAW,MAAM,GAAG,YAAY,UAAA,GACzQ,UAAA7F,EAAA,CACH;AAEJ;AAEA,SAASgE,EAAe,EAAE,OAAAtB,KAAS;AACjC,SACEV,gBAAAA,EAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,UAAU,WAAW,UAAU,OAAO,sCAAsC,UAAU,WAAA,GAC1G,UAAA;AAAA,IAAAU;AAAA,IAAM;AAAA,EAAA,GACT;AAEJ;","x_google_ignoreList":[1,2,3]}
|
|
1
|
+
{"version":3,"file":"mounajimodules.es.js","sources":["../src/modules/manifests.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../src/modules/pages/DashboardPage.jsx","../src/modules/pages/SettingsPage.jsx"],"sourcesContent":["/**\n * @mounaji_npm/saas-template — Pre-built Module Manifests\n *\n * These mirror the NAV_SECTIONS from mounaji-platform's sidebar.js.\n * Import the ones you need and pass them to <AppShell modules={[...]} />.\n *\n * Icons are string emojis by default (no external icon lib required).\n * Override the `icon` field with any React element or lucide-react icon.\n *\n * Each manifest follows the shape:\n * {\n * id: string — unique key\n * label: string — sidebar label\n * icon: string|node — emoji string or React node\n * path: string — route href\n * section: string|null — sidebar group (null = top, no header)\n * order: number — position in section\n * children: Manifest[] — sub-nav (optional)\n * badge: string|null — badge label\n * disabled: boolean\n * hidden: boolean\n * external: boolean\n * }\n */\n\n// ── Top section (no group label) ─────────────────────────────────────────────\n\nexport const HOME_MODULE = {\n id: 'home',\n label: 'Home',\n icon: '⌂',\n path: '/',\n section: null,\n order: 0,\n};\n\nexport const DASHBOARD_MODULE = {\n id: 'dashboard',\n label: 'Dashboard',\n icon: '▦',\n path: '/dashboard',\n section: null,\n order: 1,\n children: [\n { id: 'dashboard-overview', label: 'Overview', icon: '▦', path: '/dashboard', order: 0 },\n { id: 'dashboard-team', label: 'Team', icon: '👥', path: '/dashboard/team', order: 1 },\n { id: 'dashboard-billing', label: 'Billing', icon: '💳', path: '/dashboard/billing', order: 2 },\n { id: 'dashboard-usage', label: 'Usage', icon: '📈', path: '/dashboard/usage', order: 3 },\n ],\n};\n\nexport const CHAT_MODULE = {\n id: 'chat',\n label: 'Chat',\n icon: '💬',\n path: '/chat',\n section: null,\n order: 3,\n};\n\nexport const DISCOVER_MODULE = {\n id: 'discover',\n label: 'Discover',\n icon: '🧭',\n path: '/discover',\n section: null,\n order: 2,\n badge: 'Soon',\n disabled: true,\n};\n\n// ── Workspace ─────────────────────────────────────────────────────────────────\n\nexport const ASSISTANTS_MODULE = {\n id: 'assistants',\n label: 'Assistants',\n icon: '🤖',\n path: '/assistants',\n section: 'Workspace',\n order: 1,\n};\n\nexport const KNOWLEDGE_BASE_MODULE = {\n id: 'knowledge-base',\n label: 'Knowledge Base',\n icon: '🧠',\n path: '/knowledge-base',\n section: 'Workspace',\n order: 2,\n};\n\nexport const AGENT_WORKSPACE_MODULE = {\n id: 'agent-workspace',\n label: 'Agent Workspace',\n icon: '⊞',\n path: '/workspace',\n section: 'Workspace',\n order: 3,\n};\n\nexport const INVENTORY_MODULE = {\n id: 'inventory',\n label: 'Inventory',\n icon: '📦',\n path: '/inventory',\n section: 'Workspace',\n order: 4,\n};\n\n// ── Channels ──────────────────────────────────────────────────────────────────\n\nexport const PLATFORMS_MODULE = {\n id: 'platforms',\n label: 'Platforms',\n icon: '⚡',\n path: '/platforms',\n section: 'Channels',\n order: 1,\n children: [\n { id: 'platforms-all', label: 'All Platforms', icon: '⚡', path: '/platforms', order: 0 },\n { id: 'platforms-analytics', label: 'Analytics', icon: '📊', path: '/platforms/analytics', order: 1 },\n ],\n};\n\nexport const WORKFLOWS_MODULE = {\n id: 'workflows',\n label: 'Workflows',\n icon: '⎇',\n path: '/workflows',\n section: 'Channels',\n order: 2,\n};\n\nexport const TASKS_MODULE = {\n id: 'tasks',\n label: 'Tasks',\n icon: '☑',\n path: '/tasks',\n section: 'Channels',\n order: 3,\n};\n\nexport const CONNECTIONS_MODULE = {\n id: 'connections',\n label: 'Connections',\n icon: '⛓',\n path: '/connections',\n section: 'Channels',\n order: 4,\n};\n\n// ── Communication ─────────────────────────────────────────────────────────────\n\nexport const EMAIL_MODULE = {\n id: 'email',\n label: 'Email',\n icon: '✉',\n path: '/email',\n section: 'Communication',\n order: 1,\n};\n\nexport const CONTACTS_MODULE = {\n id: 'contacts',\n label: 'Contacts',\n icon: '👤',\n path: '/contacts',\n section: 'Communication',\n order: 2,\n};\n\n// ── Account ───────────────────────────────────────────────────────────────────\n\nexport const PRICING_MODULE = {\n id: 'pricing',\n label: 'Pricing',\n icon: '💲',\n path: '/pricing',\n section: 'Account',\n order: 1,\n};\n\nexport const API_KEYS_MODULE = {\n id: 'api-keys',\n label: 'API Keys',\n icon: '🔑',\n path: '/dashboard/api-keys',\n section: 'Account',\n order: 2,\n};\n\n// ── Bottom nav (Settings / Help) ──────────────────────────────────────────────\n\nexport const SETTINGS_MODULE = {\n id: 'settings',\n label: 'Settings',\n icon: '⚙',\n path: '/settings',\n order: 1,\n children: [\n { id: 'settings-design', label: 'Design Tokens', icon: '🎨', path: '/settings/design', order: 0 },\n { id: 'settings-models', label: 'AI Models', icon: '🤖', path: '/settings/models', order: 1 },\n ],\n};\n\nexport const HELP_MODULE = {\n id: 'help',\n label: 'Help',\n icon: '?',\n path: '/help',\n order: 2,\n};\n\n// ── Preset bundles ────────────────────────────────────────────────────────────\n\n/** The full platform nav — mirrors mounaji-platform exactly */\nexport const ALL_MODULES = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n DISCOVER_MODULE,\n CHAT_MODULE,\n ASSISTANTS_MODULE,\n KNOWLEDGE_BASE_MODULE,\n AGENT_WORKSPACE_MODULE,\n INVENTORY_MODULE,\n PLATFORMS_MODULE,\n WORKFLOWS_MODULE,\n TASKS_MODULE,\n CONNECTIONS_MODULE,\n EMAIL_MODULE,\n CONTACTS_MODULE,\n PRICING_MODULE,\n API_KEYS_MODULE,\n];\n\n/** Minimal starter — just the core 4 modules */\nexport const CORE_MODULES = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n CHAT_MODULE,\n ASSISTANTS_MODULE,\n KNOWLEDGE_BASE_MODULE,\n];\n\n/** AI-focused bundle */\nexport const AI_BUNDLE = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n CHAT_MODULE,\n ASSISTANTS_MODULE,\n KNOWLEDGE_BASE_MODULE,\n WORKFLOWS_MODULE,\n];\n\n/** Operations / team bundle */\nexport const OPS_BUNDLE = [\n HOME_MODULE,\n DASHBOARD_MODULE,\n TASKS_MODULE,\n INVENTORY_MODULE,\n CONTACTS_MODULE,\n EMAIL_MODULE,\n];\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%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)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"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.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * DashboardPage — @mounaji_npm/saas-template\n *\n * Pre-built dashboard page shell. Uses @mounaji_npm/dashboard components.\n * Compose with your own data by passing metric/activity props.\n *\n * Props:\n * metrics — MetricCard[] props array (see @mounaji_npm/dashboard)\n * activity — ActivityFeed items array\n * usageBars — UsageBar props array\n * header — React node (override page header)\n * tokens — Partial<DEFAULT_TOKENS>\n */\n\nimport { DASHBOARD_MODULE } from '../manifests.js';\nimport { TOKEN_CSS_MAP } from '@mounaji_npm/tokens';\n\nfunction buildInlineTokens(tokens) {\n if (!tokens) return {};\n const s = {};\n Object.entries(tokens).forEach(([k, v]) => { const c = TOKEN_CSS_MAP[k]; if (c) s[c] = v; });\n return s;\n}\n\nexport { DASHBOARD_MODULE as manifest };\n\nconst DEFAULT_METRICS = [\n { label: 'Total Messages', value: '—', icon: '💬', variant: 'primary' },\n { label: 'Active Assistants', value: '—', icon: '🤖', variant: 'success' },\n { label: 'Knowledge Docs', value: '—', icon: '🧠', variant: 'accent' },\n { label: 'API Calls (30d)', value: '—', icon: '⚡', variant: 'warning' },\n];\n\nexport function DashboardPage({ metrics = DEFAULT_METRICS, activity = [], usageBars = [], header, tokens, style }) {\n return (\n <div style={{\n padding: 'var(--mn-spacing-xl, 32px)',\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--mn-spacing-xl, 32px)',\n fontFamily: 'var(--mn-font-family, inherit)',\n ...buildInlineTokens(tokens),\n ...style,\n }}>\n {/* Header */}\n {header ?? (\n <div>\n <h1 style={{ margin: 0, fontSize: 'var(--mn-font-size-2xl, 1.5rem)', fontWeight: 700, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>\n Dashboard\n </h1>\n <p style={{ margin: '4px 0 0', fontSize: 'var(--mn-font-size-sm, 0.875rem)', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>\n Overview of your workspace activity\n </p>\n </div>\n )}\n\n {/* Metrics grid */}\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(200px, 1fr))', gap: 16 }}>\n {metrics.map((m, i) => (\n <MetricCardShell key={m.label ?? i} {...m} />\n ))}\n </div>\n\n {/* Usage + Activity row */}\n <div style={{ display: 'grid', gridTemplateColumns: usageBars.length ? '1fr 1fr' : '1fr', gap: 24 }}>\n {activity.length > 0 && (\n <SectionCard title=\"Recent Activity\">\n {activity.map((item, i) => (\n <ActivityItem key={i} item={item} />\n ))}\n </SectionCard>\n )}\n {usageBars.length > 0 && (\n <SectionCard title=\"Plan Usage\">\n <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n {usageBars.map((bar, i) => (\n <UsageBarShell key={i} {...bar} />\n ))}\n </div>\n </SectionCard>\n )}\n </div>\n </div>\n );\n}\n\n// Minimal inline implementations so DashboardPage has no hard dep on @mounaji_npm/dashboard\nfunction MetricCardShell({ label, value, icon, variant = 'primary' }) {\n const colors = { primary: '#3B82F6', success: '#10B981', warning: '#F59E0B', danger: '#EF4444', accent: '#8B5CF6' };\n const c = colors[variant] ?? colors.primary;\n return (\n <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))' }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start' }}>\n <span style={{ fontSize: '0.8125rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>{label}</span>\n <div style={{ width: 32, height: 32, borderRadius: 'var(--mn-radius-md, 0.5rem)', backgroundColor: `${c}18`, display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 16 }}>{icon}</div>\n </div>\n <p style={{ margin: '12px 0 0', fontSize: '1.5rem', fontWeight: 700, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{value}</p>\n </div>\n );\n}\n\nfunction SectionCard({ title, children }) {\n return (\n <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' }}>\n <div style={{ padding: '14px 20px', borderBottom: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))' }}>\n <h2 style={{ margin: 0, fontSize: '0.875rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{title}</h2>\n </div>\n <div style={{ padding: '0 20px' }}>{children}</div>\n </div>\n );\n}\n\nfunction ActivityItem({ item }) {\n return (\n <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))' }}>\n {item.icon && <span style={{ fontSize: 16, marginTop: 1 }}>{item.icon}</span>}\n <div style={{ flex: 1 }}>\n <p style={{ margin: 0, fontSize: '0.8125rem', color: 'var(--mn-text-primary-dark, #F0F4FF)', fontWeight: 500 }}>{item.title}</p>\n {item.description && <p style={{ margin: '2px 0 0', fontSize: '0.75rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>{item.description}</p>}\n </div>\n {item.ts && <span style={{ fontSize: 11, color: 'var(--mn-text-muted-dark, #64748B)', flexShrink: 0 }}>{item.ts}</span>}\n </div>\n );\n}\n\nfunction UsageBarShell({ label, used, total, unit = '' }) {\n const pct = total > 0 ? Math.round((used / total) * 100) : 0;\n const color = pct >= 90 ? '#EF4444' : pct >= 70 ? '#F59E0B' : '#3B82F6';\n return (\n <div>\n <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 6 }}>\n <span style={{ fontSize: '0.8125rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>{label}</span>\n <span style={{ fontSize: '0.8125rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{used.toLocaleString()}{unit} / {total === Infinity ? '∞' : total.toLocaleString()}{unit}</span>\n </div>\n <div style={{ height: 6, borderRadius: 9999, backgroundColor: 'rgba(255,255,255,0.08)', overflow: 'hidden' }}>\n <div style={{ height: '100%', width: `${pct}%`, backgroundColor: color, borderRadius: 'inherit', transition: 'width 300ms' }} />\n </div>\n </div>\n );\n}\n","/**\n * SettingsPage — @mounaji_npm/saas-template\n *\n * Pre-built settings page with tab navigation.\n * The \"Design\" tab renders the full TokenEditor from @mounaji_npm/admin-controls.\n *\n * Props:\n * tabs — Tab[] — additional tabs beyond built-ins\n * [{ id, label, content: ReactNode }]\n * defaultTab — string (default: 'design')\n * tokens — Partial<DEFAULT_TOKENS>\n */\n\nimport { useState } from 'react';\nimport { useTokens, TOKEN_GROUPS, DEFAULT_TOKENS, tokensToCSS } from '@mounaji_npm/tokens';\nimport { SETTINGS_MODULE } from '../manifests.js';\n\nexport { SETTINGS_MODULE as manifest };\n\nexport function SettingsPage({ tabs: extraTabs = [], defaultTab = 'design', tokens, style }) {\n const { tokens: currentTokens, updateToken, updateTokens, resetTokens, saveTokens, isDirty } = useTokens();\n\n const builtinTabs = [\n { id: 'design', label: '🎨 Design Tokens', content: <DesignTab tokens={currentTokens} onChange={updateToken} onReset={resetTokens} onSave={saveTokens} isDirty={isDirty} /> },\n { id: 'account', label: '👤 Account', content: <PlaceholderTab label=\"Account settings\" /> },\n { id: 'billing', label: '💳 Billing', content: <PlaceholderTab label=\"Billing settings\" /> },\n { id: 'api-keys', label: '🔑 API Keys', content: <PlaceholderTab label=\"API key management\" /> },\n ];\n\n const allTabs = [...builtinTabs, ...extraTabs];\n const [active, setActive] = useState(defaultTab);\n const activeContent = allTabs.find(t => t.id === active)?.content;\n\n return (\n <div style={{\n padding: 'var(--mn-spacing-xl, 32px)',\n display: 'flex', flexDirection: 'column', gap: 24,\n fontFamily: 'var(--mn-font-family, inherit)',\n ...style,\n }}>\n <div>\n <h1 style={{ margin: 0, fontSize: 'var(--mn-font-size-2xl, 1.5rem)', fontWeight: 700, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>Settings</h1>\n <p style={{ margin: '4px 0 0', fontSize: '0.875rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>Configure your workspace and platform appearance</p>\n </div>\n\n {/* Tab bar */}\n <div style={{ display: 'flex', gap: 4, borderBottom: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))', paddingBottom: 0 }}>\n {allTabs.map(tab => (\n <button\n key={tab.id}\n onClick={() => setActive(tab.id)}\n style={{\n padding: '8px 16px',\n background: 'none', border: 'none',\n borderBottom: active === tab.id ? '2px solid var(--mn-color-primary, #3B82F6)' : '2px solid transparent',\n color: active === tab.id ? 'var(--mn-text-primary-dark, #F0F4FF)' : 'var(--mn-text-secondary-dark, #94A3B8)',\n fontSize: '0.875rem', fontWeight: 500,\n cursor: 'pointer',\n marginBottom: -1,\n fontFamily: 'inherit',\n transition: 'color 150ms, border-color 150ms',\n }}\n >\n {tab.label}\n </button>\n ))}\n </div>\n\n {/* Active tab content */}\n <div>{activeContent}</div>\n </div>\n );\n}\n\nfunction DesignTab({ tokens, onChange, onReset, onSave, isDirty }) {\n const [copied, setCopied] = useState('');\n\n function copy(text, key) {\n navigator.clipboard?.writeText(text).then(() => {\n setCopied(key);\n setTimeout(() => setCopied(''), 2000);\n });\n }\n\n return (\n <div style={{ display: 'grid', gridTemplateColumns: 'minmax(0,1fr) 320px', gap: 24, alignItems: 'start' }}>\n {/* Left — editor */}\n <div>\n {/* Actions */}\n <div style={{ display: 'flex', gap: 8, marginBottom: 16 }}>\n {isDirty && <ActionBtn onClick={onReset} variant=\"ghost\">Reset</ActionBtn>}\n <ActionBtn onClick={onSave} disabled={!isDirty} variant=\"primary\">{isDirty ? 'Save Changes' : 'Saved'}</ActionBtn>\n <ActionBtn onClick={() => copy(tokensToCSS(tokens), 'css')} variant=\"outline\">{copied === 'css' ? '✓ Copied' : 'Copy CSS'}</ActionBtn>\n <ActionBtn onClick={() => copy(JSON.stringify(tokens, null, 2), 'json')} variant=\"outline\">{copied === 'json' ? '✓ Copied' : 'Copy JSON'}</ActionBtn>\n </div>\n\n {/* Token groups */}\n {TOKEN_GROUPS.map(group => (\n <TokenGroupSection key={group.id} group={group} tokens={tokens} onChange={onChange} />\n ))}\n </div>\n\n {/* Right — live preview */}\n <div style={{ position: 'sticky', top: 70 }}>\n <TokenPreview tokens={tokens} />\n </div>\n </div>\n );\n}\n\nfunction TokenGroupSection({ group, tokens }) {\n const [open, setOpen] = useState(true);\n const { updateToken } = useTokens();\n\n return (\n <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' }}>\n <button\n onClick={() => setOpen(o => !o)}\n 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' }}\n >\n <span style={{ fontWeight: 600, fontSize: '0.8125rem' }}>{group.label}</span>\n <span style={{ fontSize: 10, color: 'var(--mn-text-muted-dark, #64748B)' }}>{open ? '▲' : '▼'}</span>\n </button>\n\n {open && group.tokens.map(meta => {\n const value = tokens[meta.key] ?? DEFAULT_TOKENS[meta.key];\n const isDefault = value === DEFAULT_TOKENS[meta.key];\n return (\n <div key={meta.key} 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))' }}>\n <div>\n <p style={{ margin: 0, fontSize: '0.8125rem', fontWeight: 500, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>{meta.label}</p>\n <code style={{ fontSize: 11, color: 'var(--mn-text-muted-dark, #64748B)' }}>{meta.key}</code>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: 6 }}>\n {!isDefault && (\n <button onClick={() => updateToken(meta.key, DEFAULT_TOKENS[meta.key])} style={{ background: 'none', border: 'none', cursor: 'pointer', color: 'var(--mn-text-muted-dark, #64748B)', fontSize: 14 }}>↺</button>\n )}\n {meta.type === 'color' ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: 6 }}>\n <input type=\"color\" value={value.startsWith?.('#') ? value : '#000000'} onChange={e => updateToken(meta.key, e.target.value)} style={{ width: 28, height: 28, border: 'none', borderRadius: 4, cursor: 'pointer', padding: 0 }} />\n <input type=\"text\" value={value} onChange={e => updateToken(meta.key, e.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' }} />\n </div>\n ) : (\n <input type=\"text\" value={value} onChange={e => updateToken(meta.key, e.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' }} />\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction TokenPreview({ tokens }) {\n return (\n <div style={{ borderRadius: 'var(--mn-radius-lg, 0.75rem)', border: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))', overflow: 'hidden' }}>\n <div style={{ padding: '12px 16px', borderBottom: '1px solid var(--mn-border-dark, rgba(255,255,255,0.07))' }}>\n <p style={{ margin: 0, fontSize: '0.8125rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>Live Preview</p>\n </div>\n <div style={{ padding: 16, display: 'flex', flexDirection: 'column', gap: 12 }}>\n {/* Color swatches */}\n <div style={{ display: 'flex', gap: 6, flexWrap: 'wrap' }}>\n {['colorPrimary','colorAccent','colorAccentAlt','colorSuccess','colorWarning','colorDanger'].map(k => (\n <div key={k} title={k} style={{ width: 28, height: 28, borderRadius: 6, backgroundColor: tokens[k] ?? DEFAULT_TOKENS[k] }} />\n ))}\n </div>\n {/* Sample button */}\n <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' }}>Primary Button</button>\n <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' }}>Outline Button</button>\n {/* Sample card */}\n <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))' }}>\n <p style={{ margin: 0, fontSize: '0.875rem', fontWeight: 600, color: 'var(--mn-text-primary-dark, #F0F4FF)' }}>Card surface</p>\n <p style={{ margin: '4px 0 0', fontSize: '0.75rem', color: 'var(--mn-text-secondary-dark, #94A3B8)' }}>Secondary text color</p>\n </div>\n {/* Radius preview */}\n <div style={{ display: 'flex', gap: 8 }}>\n {['radiusSm','radiusMd','radiusLg','radiusXl'].map(k => (\n <div key={k} style={{ width: 32, height: 32, backgroundColor: 'var(--mn-color-accent, #8B5CF6)', borderRadius: tokens[k] ?? DEFAULT_TOKENS[k] }} />\n ))}\n </div>\n </div>\n </div>\n );\n}\n\nfunction ActionBtn({ children, onClick, variant = 'primary', disabled = false }) {\n const styles = {\n primary: { backgroundColor: 'var(--mn-color-primary, #3B82F6)', color: '#fff', border: 'none' },\n ghost: { backgroundColor: 'rgba(255,255,255,0.06)', color: 'var(--mn-text-secondary-dark, #94A3B8)', border: 'none' },\n outline: { backgroundColor: 'transparent', color: 'var(--mn-text-secondary-dark, #94A3B8)', border: '1px solid var(--mn-border-md-dark, rgba(255,255,255,0.13))' },\n };\n return (\n <button onClick={onClick} disabled={disabled} style={{ ...styles[variant], padding: '6px 14px', borderRadius: 'var(--mn-radius-md, 0.5rem)', fontSize: '0.8125rem', fontWeight: 500, cursor: disabled ? 'not-allowed' : 'pointer', opacity: disabled ? 0.5 : 1, fontFamily: 'inherit' }}>\n {children}\n </button>\n );\n}\n\nfunction PlaceholderTab({ label }) {\n return (\n <div style={{ padding: '40px 0', textAlign: 'center', color: 'var(--mn-text-muted-dark, #64748B)', fontSize: '0.875rem' }}>\n {label} — configure with your own content\n </div>\n );\n}\n"],"names":["HOME_MODULE","DASHBOARD_MODULE","CHAT_MODULE","DISCOVER_MODULE","ASSISTANTS_MODULE","KNOWLEDGE_BASE_MODULE","AGENT_WORKSPACE_MODULE","INVENTORY_MODULE","PLATFORMS_MODULE","WORKFLOWS_MODULE","TASKS_MODULE","CONNECTIONS_MODULE","EMAIL_MODULE","CONTACTS_MODULE","PRICING_MODULE","API_KEYS_MODULE","SETTINGS_MODULE","HELP_MODULE","ALL_MODULES","CORE_MODULES","AI_BUNDLE","OPS_BUNDLE","REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","buildInlineTokens","tokens","s","v","c","TOKEN_CSS_MAP","DEFAULT_METRICS","DashboardPage","metrics","activity","usageBars","header","style","jsxs","jsx","m","i","MetricCardShell","SectionCard","item","ActivityItem","bar","UsageBarShell","label","icon","variant","colors","title","used","total","unit","pct","color","SettingsPage","extraTabs","defaultTab","currentTokens","updateToken","updateTokens","resetTokens","saveTokens","isDirty","useTokens","allTabs","DesignTab","PlaceholderTab","active","setActive","useState","activeContent","_a","t","tab","onChange","onReset","onSave","copied","setCopied","copy","text","ActionBtn","tokensToCSS","TOKEN_GROUPS","group","TokenGroupSection","TokenPreview","open","setOpen","o","meta","DEFAULT_TOKENS","isDefault","e","onClick","disabled","styles"],"mappings":"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","x_google_ignoreList":[1,2,3]}
|