@actuate-media/cms-admin 0.3.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/AdminRoot.d.ts.map +1 -1
  2. package/dist/AdminRoot.js +23 -1
  3. package/dist/AdminRoot.js.map +1 -1
  4. package/dist/actuate-admin.css +1 -1
  5. package/dist/components/Breadcrumbs.d.ts.map +1 -1
  6. package/dist/components/Breadcrumbs.js +1 -0
  7. package/dist/components/Breadcrumbs.js.map +1 -1
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/layout/Sidebar.d.ts +7 -0
  13. package/dist/layout/Sidebar.d.ts.map +1 -1
  14. package/dist/layout/Sidebar.js +35 -11
  15. package/dist/layout/Sidebar.js.map +1 -1
  16. package/dist/views/DocumentEdit.d.ts.map +1 -1
  17. package/dist/views/DocumentEdit.js +49 -5
  18. package/dist/views/DocumentEdit.js.map +1 -1
  19. package/dist/views/ForgotPassword.d.ts +5 -0
  20. package/dist/views/ForgotPassword.d.ts.map +1 -0
  21. package/dist/views/ForgotPassword.js +41 -0
  22. package/dist/views/ForgotPassword.js.map +1 -0
  23. package/dist/views/ResetPassword.d.ts +6 -0
  24. package/dist/views/ResetPassword.d.ts.map +1 -0
  25. package/dist/views/ResetPassword.js +46 -0
  26. package/dist/views/ResetPassword.js.map +1 -0
  27. package/dist/views/ScriptTagEditor.d.ts +6 -0
  28. package/dist/views/ScriptTagEditor.d.ts.map +1 -0
  29. package/dist/views/ScriptTagEditor.js +109 -0
  30. package/dist/views/ScriptTagEditor.js.map +1 -0
  31. package/dist/views/ScriptTags.d.ts +5 -0
  32. package/dist/views/ScriptTags.d.ts.map +1 -0
  33. package/dist/views/ScriptTags.js +54 -0
  34. package/dist/views/ScriptTags.js.map +1 -0
  35. package/dist/views/Settings.d.ts +2 -1
  36. package/dist/views/Settings.d.ts.map +1 -1
  37. package/dist/views/Settings.js +31 -3
  38. package/dist/views/Settings.js.map +1 -1
  39. package/package.json +5 -3
  40. package/src/AdminRoot.tsx +26 -1
  41. package/src/components/Breadcrumbs.tsx +1 -0
  42. package/src/index.ts +4 -0
  43. package/src/layout/Sidebar.tsx +72 -22
  44. package/src/views/DocumentEdit.tsx +82 -4
  45. package/src/views/ForgotPassword.tsx +136 -0
  46. package/src/views/ResetPassword.tsx +192 -0
  47. package/src/views/ScriptTagEditor.tsx +361 -0
  48. package/src/views/ScriptTags.tsx +174 -0
  49. package/src/views/Settings.tsx +79 -2
@@ -0,0 +1,54 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { Code2, Plus, Loader2, AlertTriangle } from 'lucide-react';
5
+ import { toast } from 'sonner';
6
+ import { useApiData } from '../lib/useApiData.js';
7
+ import { cmsApi } from '../lib/api.js';
8
+ const PLACEMENT_LABELS = {
9
+ head: 'Head',
10
+ body_open: 'Body Open',
11
+ body_close: 'Body Close',
12
+ };
13
+ const PLACEMENT_COLORS = {
14
+ head: 'bg-purple-100 text-purple-700',
15
+ body_open: 'bg-blue-100 text-blue-700',
16
+ body_close: 'bg-green-100 text-green-700',
17
+ };
18
+ function scopeLabel(tag) {
19
+ if (tag.scope === 'site')
20
+ return 'Entire Site';
21
+ if (tag.scope === 'parents') {
22
+ const count = tag.targetPaths?.length ?? 0;
23
+ return `${count} parent path${count !== 1 ? 's' : ''} + children`;
24
+ }
25
+ if (tag.scope === 'urls') {
26
+ const count = tag.targetPaths?.length ?? 0;
27
+ return `${count} URL${count !== 1 ? 's' : ''}`;
28
+ }
29
+ return tag.scope;
30
+ }
31
+ export function ScriptTags({ onNavigate }) {
32
+ const { data, loading, error, refetch } = useApiData('/script-tags');
33
+ const [togglingId, setTogglingId] = useState(null);
34
+ const tags = data ?? [];
35
+ const toggleEnabled = async (tag) => {
36
+ setTogglingId(tag.id);
37
+ const res = await cmsApi(`/script-tags/${tag.id}`, {
38
+ method: 'PUT',
39
+ body: JSON.stringify({ enabled: !tag.enabled }),
40
+ });
41
+ setTogglingId(null);
42
+ if (res.error) {
43
+ toast.error(res.error);
44
+ }
45
+ else {
46
+ refetch();
47
+ }
48
+ };
49
+ if (loading) {
50
+ return (_jsx("div", { className: "p-3 pr-6 sm:p-4 sm:pr-8 flex items-center justify-center h-64", children: _jsx(Loader2, { className: "w-6 h-6 animate-spin text-blue-600" }) }));
51
+ }
52
+ return (_jsxs("div", { className: "p-3 pr-6 sm:p-4 sm:pr-8", children: [error && (_jsxs("div", { className: "mb-4 flex items-center gap-3 rounded-lg border border-red-200 bg-red-50 p-3", children: [_jsx(AlertTriangle, { className: "w-5 h-5 text-red-600 shrink-0" }), _jsx("span", { className: "text-sm text-red-800 flex-1", children: error }), _jsx("button", { onClick: refetch, className: "px-3 py-1 text-sm text-red-700 border border-red-300 rounded-lg hover:bg-red-100 transition-colors", children: "Retry" })] })), _jsxs("div", { className: "mb-4 flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h1", { className: "mb-1 text-2xl font-semibold text-gray-900", children: "Script Tags" }), _jsx("p", { className: "text-sm text-gray-600", children: "Manage tracking codes, analytics, and custom scripts injected into your site" })] }), _jsxs("button", { type: "button", onClick: () => onNavigate?.('/script-tags/new'), className: "flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-700", children: [_jsx(Plus, { className: "w-4 h-4" }), "New Tag"] })] }), tags.length === 0 && !error ? (_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-12 text-center", children: [_jsx(Code2, { className: "mx-auto mb-3 h-10 w-10 text-gray-300" }), _jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "No script tags yet" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Add tracking codes like Google Analytics, Tag Manager, or Facebook Pixel." }), _jsxs("button", { type: "button", onClick: () => onNavigate?.('/script-tags/new'), className: "mt-4 inline-flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-700", children: [_jsx(Plus, { className: "w-4 h-4" }), "Add Your First Tag"] })] })) : (_jsx("div", { className: "rounded-lg border border-gray-200 bg-white overflow-hidden", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-gray-200 bg-gray-50", children: [_jsx("th", { className: "px-4 py-3 text-left font-medium text-gray-600", children: "Name" }), _jsx("th", { className: "px-4 py-3 text-left font-medium text-gray-600", children: "Placement" }), _jsx("th", { className: "px-4 py-3 text-left font-medium text-gray-600", children: "Scope" }), _jsx("th", { className: "px-4 py-3 text-center font-medium text-gray-600", children: "Priority" }), _jsx("th", { className: "px-4 py-3 text-center font-medium text-gray-600", children: "Enabled" })] }) }), _jsx("tbody", { children: tags.map((tag) => (_jsxs("tr", { className: "border-b border-gray-100 last:border-0 hover:bg-gray-50 transition-colors", children: [_jsx("td", { className: "px-4 py-3", children: _jsx("button", { type: "button", onClick: () => onNavigate?.(`/script-tags/${tag.id}`), className: "font-medium text-blue-600 hover:text-blue-800 hover:underline", children: tag.name }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("span", { className: `inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${PLACEMENT_COLORS[tag.placement] ?? 'bg-gray-100 text-gray-700'}`, children: PLACEMENT_LABELS[tag.placement] ?? tag.placement }) }), _jsx("td", { className: "px-4 py-3 text-gray-600", children: scopeLabel(tag) }), _jsx("td", { className: "px-4 py-3 text-center text-gray-600 font-mono", children: tag.priority }), _jsx("td", { className: "px-4 py-3 text-center", children: _jsx("button", { type: "button", onClick: () => toggleEnabled(tag), disabled: togglingId === tag.id, className: `relative h-6 w-11 shrink-0 rounded-full transition-colors ${tag.enabled ? 'bg-blue-600' : 'bg-gray-300'}`, "aria-pressed": tag.enabled, children: _jsx("span", { className: `absolute top-0.5 block h-5 w-5 rounded-full bg-white transition-transform ${tag.enabled ? 'translate-x-[22px]' : 'translate-x-0.5'}` }) }) })] }, tag.id))) })] }) }))] }));
53
+ }
54
+ //# sourceMappingURL=ScriptTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptTags.js","sourceRoot":"","sources":["../../src/views/ScriptTags.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export interface SettingsProps {
2
2
  onNavigate?: (path: string) => void;
3
+ config?: any;
3
4
  }
4
- export declare function Settings(_props?: SettingsProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function Settings({ config, ..._props }?: SettingsProps): import("react/jsx-runtime").JSX.Element;
5
6
  //# sourceMappingURL=Settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.d.ts","sourceRoot":"","sources":["../../src/views/Settings.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,QAAQ,CAAC,MAAM,GAAE,aAAkB,2CAyYlD"}
1
+ {"version":3,"file":"Settings.d.ts","sourceRoot":"","sources":["../../src/views/Settings.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAE,aAAkB,2CAodjE"}
@@ -1,13 +1,14 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import * as Tabs from '@radix-ui/react-tabs';
4
- import { Bot, Eye, EyeOff, Image, FileCode2, BookOpen, Sparkles, MessageSquare, Loader2, AlertTriangle, Download, CheckCircle2, ArrowUpCircle, ExternalLink, RefreshCw, GitPullRequest } from 'lucide-react';
4
+ import { Bot, Eye, EyeOff, Image, FileCode2, BookOpen, Sparkles, MessageSquare, Loader2, AlertTriangle, Download, CheckCircle2, ArrowUpCircle, ExternalLink, RefreshCw, GitPullRequest, Layers } from 'lucide-react';
5
5
  import { useState, useEffect } from 'react';
6
6
  import { toast } from 'sonner';
7
7
  import { useApiData } from '../lib/useApiData.js';
8
8
  import { cmsApi } from '../lib/api.js';
9
9
  import { useTheme } from '../components/ThemeProvider.js';
10
- export function Settings(_props = {}) {
10
+ import { RelationshipField } from '../fields/RelationshipField.js';
11
+ export function Settings({ config, ..._props } = {}) {
11
12
  const { data, loading, error, refetch } = useApiData('/globals/settings');
12
13
  const [siteTitle, setSiteTitle] = useState('My CMS');
13
14
  const [tagline, setTagline] = useState('A lightweight content management system');
@@ -19,6 +20,17 @@ export function Settings(_props = {}) {
19
20
  const [ipWhitelist, setIpWhitelist] = useState(false);
20
21
  const [activeTab, setActiveTab] = useState('general');
21
22
  const [saving, setSaving] = useState(false);
23
+ // Layout defaults
24
+ const [defaultLayout, setDefaultLayout] = useState({});
25
+ const layoutConfig = config?.layout;
26
+ const layoutRegions = layoutConfig?.regions
27
+ ? Object.entries(layoutConfig.regions).map(([name, region]) => ({
28
+ name,
29
+ collection: region.collection,
30
+ label: region.label ?? name.charAt(0).toUpperCase() + name.slice(1),
31
+ }))
32
+ : [];
33
+ const hasLayoutRegions = layoutRegions.length > 0;
22
34
  // AI settings
23
35
  const [aiProvider, setAiProvider] = useState('anthropic');
24
36
  const [aiApiKey, setAiApiKey] = useState('');
@@ -52,10 +64,14 @@ export function Settings(_props = {}) {
52
64
  setAiWritingAssistant(data.aiWritingAssistant ?? true);
53
65
  setAiContentScoring(data.aiContentScoring ?? true);
54
66
  setAiTranslation(data.aiTranslation ?? false);
67
+ if (data.defaultLayout && typeof data.defaultLayout === 'object') {
68
+ setDefaultLayout(data.defaultLayout);
69
+ }
55
70
  }
56
71
  }, [data]);
57
72
  const handleSave = async () => {
58
73
  setSaving(true);
74
+ const layoutPayload = Object.keys(defaultLayout).length > 0 ? { defaultLayout } : {};
59
75
  const res = await cmsApi('/globals/settings', {
60
76
  method: 'PUT',
61
77
  body: JSON.stringify({
@@ -64,6 +80,7 @@ export function Settings(_props = {}) {
64
80
  aiProvider, aiAltTags, aiMediaCategorize, aiMetaDescriptions,
65
81
  aiReadability, aiSchema, aiBrandVoice, aiWritingAssistant,
66
82
  aiContentScoring, aiTranslation,
83
+ ...layoutPayload,
67
84
  }),
68
85
  });
69
86
  setSaving(false);
@@ -78,7 +95,18 @@ export function Settings(_props = {}) {
78
95
  if (loading) {
79
96
  return (_jsx("div", { className: "p-3 pr-6 sm:p-4 sm:pr-8 flex items-center justify-center h-64", children: _jsx(Loader2, { className: "w-6 h-6 animate-spin text-blue-600" }) }));
80
97
  }
81
- return (_jsxs("div", { className: "p-3 pr-6 sm:p-4 sm:pr-8", children: [error && (_jsxs("div", { className: "mb-4 flex items-center gap-3 rounded-lg border border-red-200 bg-red-50 p-3", children: [_jsx(AlertTriangle, { className: "w-5 h-5 text-red-600 shrink-0" }), _jsx("span", { className: "text-sm text-red-800 flex-1", children: error }), _jsx("button", { onClick: refetch, className: "px-3 py-1 text-sm text-red-700 border border-red-300 rounded-lg hover:bg-red-100 transition-colors", children: "Retry" })] })), _jsxs("div", { className: "mb-4", children: [_jsx("h1", { className: "mb-1 text-2xl font-semibold text-gray-900", children: "Settings" }), _jsx("p", { className: "text-sm text-gray-600", children: "Manage your CMS configuration" })] }), _jsxs(Tabs.Root, { value: activeTab, onValueChange: setActiveTab, children: [_jsxs(Tabs.List, { className: "mb-4 flex gap-1 border-b border-gray-200 overflow-x-auto", children: [_jsx(Tabs.Trigger, { value: "general", className: tabTriggerClass, children: "General" }), _jsx(Tabs.Trigger, { value: "appearance", className: tabTriggerClass, children: "Appearance" }), _jsx(Tabs.Trigger, { value: "security", className: tabTriggerClass, children: "Security" }), _jsx(Tabs.Trigger, { value: "ai", className: tabTriggerClass, children: _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(Bot, { className: "w-4 h-4" }), "AI"] }) }), _jsx(Tabs.Trigger, { value: "integrations", className: tabTriggerClass, children: "Integrations" }), _jsx(Tabs.Trigger, { value: "updates", className: tabTriggerClass, children: _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(Download, { className: "w-4 h-4" }), "Updates"] }) })] }), _jsxs(Tabs.Content, { value: "general", className: "space-y-4", children: [_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Site Information" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Site Title" }), _jsx("input", { type: "text", value: siteTitle, onChange: (e) => setSiteTitle(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Tagline" }), _jsx("input", { type: "text", value: tagline, onChange: (e) => setTagline(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Site URL" }), _jsx("input", { type: "url", value: siteUrl, onChange: (e) => setSiteUrl(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" })] })] })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Language & Region" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Language" }), _jsxs("select", { value: language, onChange: (e) => setLanguage(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "en", children: "English" }), _jsx("option", { value: "es", children: "Spanish" }), _jsx("option", { value: "fr", children: "French" }), _jsx("option", { value: "de", children: "German" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Timezone" }), _jsxs("select", { value: timezone, onChange: (e) => setTimezone(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "UTC", children: "UTC" }), _jsx("option", { value: "America/New_York", children: "Eastern Time" }), _jsx("option", { value: "America/Chicago", children: "Central Time" }), _jsx("option", { value: "America/Denver", children: "Mountain Time" }), _jsx("option", { value: "America/Los_Angeles", children: "Pacific Time" })] })] })] })] })] }), _jsx(Tabs.Content, { value: "appearance", className: "space-y-4", children: _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Theme" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Color Scheme" }), _jsx(ThemeSelect, {})] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Primary Color" }), _jsx("input", { type: "color", defaultValue: "#3b82f6", className: "h-10 w-full rounded-lg border border-gray-300 px-3 py-2" })] })] })] }) }), _jsx(Tabs.Content, { value: "security", className: "space-y-4", children: _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Security Settings" }), _jsxs("div", { className: "space-y-4", children: [_jsx(ToggleSetting, { label: "Two-Factor Authentication", description: "Require 2FA for all admin users", checked: twoFactorEnabled, onChange: setTwoFactorEnabled }), _jsx(ToggleSetting, { label: "Session Timeout", description: "Automatically log out inactive users after 30 minutes", checked: sessionTimeout, onChange: setSessionTimeout }), _jsx(ToggleSetting, { label: "IP Whitelist", description: "Only allow access from approved IP addresses", checked: ipWhitelist, onChange: setIpWhitelist })] })] }) }), _jsxs(Tabs.Content, { value: "ai", className: "space-y-4", children: [_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-1 text-sm font-semibold text-gray-900", children: "AI Provider & API Key" }), _jsx("p", { className: "mb-4 text-xs text-gray-500", children: "Connect an AI provider to enable intelligent content features" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Provider" }), _jsxs("select", { value: aiProvider, onChange: (e) => setAiProvider(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "anthropic", children: "Anthropic (Claude)" }), _jsx("option", { value: "openai", children: "OpenAI (GPT)" }), _jsx("option", { value: "google", children: "Google (Gemini)" })] }), _jsxs("p", { className: "mt-1 text-xs text-gray-500", children: [aiProvider === 'anthropic' && 'Recommended. Best for content analysis, brand voice learning, and nuanced writing.', aiProvider === 'openai' && 'Strong alternative. Good for general content generation and image understanding.', aiProvider === 'google' && 'Multimodal. Excellent for image analysis and multilingual content.'] })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "API Key" }), _jsxs("div", { className: "flex gap-2", children: [_jsxs("div", { className: "relative flex-1", children: [_jsx("input", { type: showApiKey ? 'text' : 'password', value: aiApiKey, onChange: (e) => setAiApiKey(e.target.value), placeholder: aiProvider === 'anthropic' ? 'sk-ant-...' : aiProvider === 'openai' ? 'sk-...' : 'AIza...', className: "w-full rounded-lg border border-gray-300 px-3 py-2 pr-10 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" }), _jsx("button", { type: "button", onClick: () => setShowApiKey(!showApiKey), className: "absolute right-2 top-1/2 -translate-y-1/2 p-1 text-gray-400 hover:text-gray-600", children: showApiKey ? _jsx(EyeOff, { className: "w-4 h-4" }) : _jsx(Eye, { className: "w-4 h-4" }) })] }), _jsx("button", { type: "button", onClick: () => {
98
+ return (_jsxs("div", { className: "p-3 pr-6 sm:p-4 sm:pr-8", children: [error && (_jsxs("div", { className: "mb-4 flex items-center gap-3 rounded-lg border border-red-200 bg-red-50 p-3", children: [_jsx(AlertTriangle, { className: "w-5 h-5 text-red-600 shrink-0" }), _jsx("span", { className: "text-sm text-red-800 flex-1", children: error }), _jsx("button", { onClick: refetch, className: "px-3 py-1 text-sm text-red-700 border border-red-300 rounded-lg hover:bg-red-100 transition-colors", children: "Retry" })] })), _jsxs("div", { className: "mb-4", children: [_jsx("h1", { className: "mb-1 text-2xl font-semibold text-gray-900", children: "Settings" }), _jsx("p", { className: "text-sm text-gray-600", children: "Manage your CMS configuration" })] }), _jsxs(Tabs.Root, { value: activeTab, onValueChange: setActiveTab, children: [_jsxs(Tabs.List, { className: "mb-4 flex gap-1 border-b border-gray-200 overflow-x-auto", children: [_jsx(Tabs.Trigger, { value: "general", className: tabTriggerClass, children: "General" }), _jsx(Tabs.Trigger, { value: "appearance", className: tabTriggerClass, children: "Appearance" }), hasLayoutRegions && (_jsx(Tabs.Trigger, { value: "layout", className: tabTriggerClass, children: _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(Layers, { className: "w-4 h-4" }), "Layout"] }) })), _jsx(Tabs.Trigger, { value: "security", className: tabTriggerClass, children: "Security" }), _jsx(Tabs.Trigger, { value: "ai", className: tabTriggerClass, children: _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(Bot, { className: "w-4 h-4" }), "AI"] }) }), _jsx(Tabs.Trigger, { value: "integrations", className: tabTriggerClass, children: "Integrations" }), _jsx(Tabs.Trigger, { value: "updates", className: tabTriggerClass, children: _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(Download, { className: "w-4 h-4" }), "Updates"] }) })] }), _jsxs(Tabs.Content, { value: "general", className: "space-y-4", children: [_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Site Information" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Site Title" }), _jsx("input", { type: "text", value: siteTitle, onChange: (e) => setSiteTitle(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Tagline" }), _jsx("input", { type: "text", value: tagline, onChange: (e) => setTagline(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Site URL" }), _jsx("input", { type: "url", value: siteUrl, onChange: (e) => setSiteUrl(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" })] })] })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Language & Region" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Language" }), _jsxs("select", { value: language, onChange: (e) => setLanguage(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "en", children: "English" }), _jsx("option", { value: "es", children: "Spanish" }), _jsx("option", { value: "fr", children: "French" }), _jsx("option", { value: "de", children: "German" })] })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Timezone" }), _jsxs("select", { value: timezone, onChange: (e) => setTimezone(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "UTC", children: "UTC" }), _jsx("option", { value: "America/New_York", children: "Eastern Time" }), _jsx("option", { value: "America/Chicago", children: "Central Time" }), _jsx("option", { value: "America/Denver", children: "Mountain Time" }), _jsx("option", { value: "America/Los_Angeles", children: "Pacific Time" })] })] })] })] })] }), _jsx(Tabs.Content, { value: "appearance", className: "space-y-4", children: _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Theme" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Color Scheme" }), _jsx(ThemeSelect, {})] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Primary Color" }), _jsx("input", { type: "color", defaultValue: "#3b82f6", className: "h-10 w-full rounded-lg border border-gray-300 px-3 py-2" })] })] })] }) }), hasLayoutRegions && (_jsxs(Tabs.Content, { value: "layout", className: "space-y-4", children: [_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-1 text-sm font-semibold text-gray-900", children: "Default Layout Variants" }), _jsx("p", { className: "mb-4 text-xs text-gray-500", children: "Select the default header, footer, and other layout variants used site-wide. Pages can override these individually or inherit from parent pages." }), _jsx("div", { className: "space-y-4", children: layoutRegions.map((region) => (_jsx(RelationshipField, { label: `Default ${region.label}`, value: defaultLayout[region.name] ?? '', onChange: (val) => {
99
+ setDefaultLayout((prev) => {
100
+ const next = { ...prev };
101
+ if (val && typeof val === 'string') {
102
+ next[region.name] = val;
103
+ }
104
+ else {
105
+ delete next[region.name];
106
+ }
107
+ return next;
108
+ });
109
+ }, relationTo: region.collection, helpText: `The ${region.label.toLowerCase()} variant used when no page in the ancestor chain specifies one` }, region.name))) })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-4", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-700 mb-2", children: "How Layout Inheritance Works" }), _jsxs("ul", { className: "space-y-1.5 text-xs text-gray-600", children: [_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "w-4 h-4 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center text-[10px] font-bold shrink-0 mt-0.5", children: "1" }), _jsx("span", { children: "Each page can assign specific layout variants (header, footer, etc.) from the document editor." })] }), _jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "w-4 h-4 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center text-[10px] font-bold shrink-0 mt-0.5", children: "2" }), _jsxs("span", { children: ["Child pages automatically inherit their parent's layout. For example, ", _jsx("code", { className: "font-mono bg-gray-200 px-1 rounded", children: "/hampton-roads/thank-you" }), " inherits from ", _jsx("code", { className: "font-mono bg-gray-200 px-1 rounded", children: "/hampton-roads" }), "."] })] }), _jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "w-4 h-4 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center text-[10px] font-bold shrink-0 mt-0.5", children: "3" }), _jsx("span", { children: "If no page in the ancestor chain sets a variant, the defaults configured above are used." })] })] })] })] })), _jsx(Tabs.Content, { value: "security", className: "space-y-4", children: _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-4 text-sm font-semibold text-gray-900", children: "Security Settings" }), _jsxs("div", { className: "space-y-4", children: [_jsx(ToggleSetting, { label: "Two-Factor Authentication", description: "Require 2FA for all admin users", checked: twoFactorEnabled, onChange: setTwoFactorEnabled }), _jsx(ToggleSetting, { label: "Session Timeout", description: "Automatically log out inactive users after 30 minutes", checked: sessionTimeout, onChange: setSessionTimeout }), _jsx(ToggleSetting, { label: "IP Whitelist", description: "Only allow access from approved IP addresses", checked: ipWhitelist, onChange: setIpWhitelist })] })] }) }), _jsxs(Tabs.Content, { value: "ai", className: "space-y-4", children: [_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-1 text-sm font-semibold text-gray-900", children: "AI Provider & API Key" }), _jsx("p", { className: "mb-4 text-xs text-gray-500", children: "Connect an AI provider to enable intelligent content features" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Provider" }), _jsxs("select", { value: aiProvider, onChange: (e) => setAiProvider(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "anthropic", children: "Anthropic (Claude)" }), _jsx("option", { value: "openai", children: "OpenAI (GPT)" }), _jsx("option", { value: "google", children: "Google (Gemini)" })] }), _jsxs("p", { className: "mt-1 text-xs text-gray-500", children: [aiProvider === 'anthropic' && 'Recommended. Best for content analysis, brand voice learning, and nuanced writing.', aiProvider === 'openai' && 'Strong alternative. Good for general content generation and image understanding.', aiProvider === 'google' && 'Multimodal. Excellent for image analysis and multilingual content.'] })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "API Key" }), _jsxs("div", { className: "flex gap-2", children: [_jsxs("div", { className: "relative flex-1", children: [_jsx("input", { type: showApiKey ? 'text' : 'password', value: aiApiKey, onChange: (e) => setAiApiKey(e.target.value), placeholder: aiProvider === 'anthropic' ? 'sk-ant-...' : aiProvider === 'openai' ? 'sk-...' : 'AIza...', className: "w-full rounded-lg border border-gray-300 px-3 py-2 pr-10 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" }), _jsx("button", { type: "button", onClick: () => setShowApiKey(!showApiKey), className: "absolute right-2 top-1/2 -translate-y-1/2 p-1 text-gray-400 hover:text-gray-600", children: showApiKey ? _jsx(EyeOff, { className: "w-4 h-4" }) : _jsx(Eye, { className: "w-4 h-4" }) })] }), _jsx("button", { type: "button", onClick: () => {
82
110
  if (aiApiKey)
83
111
  toast.success('API key verified successfully');
84
112
  else
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/views/Settings.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAa,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxN,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAM1D,MAAM,UAAU,QAAQ,CAAC,SAAwB,EAAE;IACjD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAM,mBAAmB,CAAC,CAAC;IAE/E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,yCAAyC,CAAC,CAAC;IAClF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,cAAc;IACd,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;YACpC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC;YACpD,iBAAiB,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC;YAChD,cAAc,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;YAC1C,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,CAAC;YAC9C,YAAY,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;YACrC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,CAAC;YACtD,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC;YACvD,gBAAgB,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;YAC7C,WAAW,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;YAC5C,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC;YACvD,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;YACnD,gBAAgB,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE;YAC5C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;gBAC/C,gBAAgB,EAAE,cAAc,EAAE,WAAW;gBAC7C,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB;gBAC5D,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB;gBACzD,gBAAgB,EAAE,aAAa;aAChC,CAAC;SACH,CAAC,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,wLAAwL,CAAC;IAEjN,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,cAAK,SAAS,EAAC,+DAA+D,YAC5E,KAAC,OAAO,IAAC,SAAS,EAAC,oCAAoC,GAAG,GACtD,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACrC,KAAK,IAAI,CACR,eAAK,SAAS,EAAC,6EAA6E,aAC1F,KAAC,aAAa,IAAC,SAAS,EAAC,+BAA+B,GAAG,EAC3D,eAAM,SAAS,EAAC,6BAA6B,YAAE,KAAK,GAAQ,EAC5D,iBAAQ,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,oGAAoG,sBAAe,IACnJ,CACP,EAED,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,2CAA2C,yBAAc,EACvE,YAAG,SAAS,EAAC,uBAAuB,8CAAkC,IAClE,EAEN,MAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,aACtD,MAAC,IAAI,CAAC,IAAI,IAAC,SAAS,EAAC,0DAA0D,aAC7E,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAE,eAAe,wBAAwB,EAChF,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAE,eAAe,2BAA2B,EACtF,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,UAAU,EAAC,SAAS,EAAE,eAAe,yBAAyB,EAClF,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,IAAI,EAAC,SAAS,EAAE,eAAe,YACjD,gBAAM,SAAS,EAAC,2BAA2B,aACzC,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,UAEtB,GACM,EACf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,cAAc,EAAC,SAAS,EAAE,eAAe,6BAA6B,EAC1F,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAE,eAAe,YACtD,gBAAM,SAAS,EAAC,2BAA2B,aACzC,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,GAAG,eAE3B,GACM,IACL,EAEZ,MAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,aACjD,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,iCAAsB,EAC9E,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,gBAAO,SAAS,EAAC,8CAA8C,2BAAmB,EAClF,gBAAO,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,gHAAgH,GAAG,IAC7M,EACN,0BACE,gBAAO,SAAS,EAAC,8CAA8C,wBAAgB,EAC/E,gBAAO,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,gHAAgH,GAAG,IACzM,EACN,0BACE,gBAAO,SAAS,EAAC,8CAA8C,yBAAiB,EAChF,gBAAO,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,gHAAgH,GAAG,IACxM,IACF,IACF,EACN,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,kCAAuB,EAC/E,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,gBAAO,SAAS,EAAC,8CAA8C,yBAAiB,EAChF,kBAAQ,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,gHAAgH,aAC/L,iBAAQ,KAAK,EAAC,IAAI,wBAAiB,EACnC,iBAAQ,KAAK,EAAC,IAAI,wBAAiB,EACnC,iBAAQ,KAAK,EAAC,IAAI,uBAAgB,EAClC,iBAAQ,KAAK,EAAC,IAAI,uBAAgB,IAC3B,IACL,EACN,0BACE,gBAAO,SAAS,EAAC,8CAA8C,yBAAiB,EAChF,kBAAQ,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,gHAAgH,aAC/L,iBAAQ,KAAK,EAAC,KAAK,oBAAa,EAChC,iBAAQ,KAAK,EAAC,kBAAkB,6BAAsB,EACtD,iBAAQ,KAAK,EAAC,iBAAiB,6BAAsB,EACrD,iBAAQ,KAAK,EAAC,gBAAgB,8BAAuB,EACrD,iBAAQ,KAAK,EAAC,qBAAqB,6BAAsB,IAClD,IACL,IACF,IACF,IACO,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,WAAW,YACpD,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,sBAAW,EACnE,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,gBAAO,SAAS,EAAC,8CAA8C,6BAAqB,EACpF,KAAC,WAAW,KAAG,IACX,EACN,0BACE,gBAAO,SAAS,EAAC,8CAA8C,8BAAsB,EACrF,gBAAO,IAAI,EAAC,OAAO,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,yDAAyD,GAAG,IAC7G,IACF,IACF,GACO,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,UAAU,EAAC,SAAS,EAAC,WAAW,YAClD,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,kCAAuB,EAC/E,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,aAAa,IAAC,KAAK,EAAC,2BAA2B,EAAC,WAAW,EAAC,iCAAiC,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,GAAI,EAC3J,KAAC,aAAa,IAAC,KAAK,EAAC,iBAAiB,EAAC,WAAW,EAAC,uDAAuD,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAI,EACnK,KAAC,aAAa,IAAC,KAAK,EAAC,cAAc,EAAC,WAAW,EAAC,8CAA8C,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,GAAI,IAC7I,IACF,GACO,EAEf,MAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,aAC5C,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,sCAA2B,EACnF,YAAG,SAAS,EAAC,4BAA4B,8EAAkE,EAC3G,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,gBAAO,SAAS,EAAC,8CAA8C,yBAAiB,EAChF,kBACE,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,SAAS,EAAC,gHAAgH,aAE1H,iBAAQ,KAAK,EAAC,WAAW,mCAA4B,EACrD,iBAAQ,KAAK,EAAC,QAAQ,6BAAsB,EAC5C,iBAAQ,KAAK,EAAC,QAAQ,gCAAyB,IACxC,EACT,aAAG,SAAS,EAAC,4BAA4B,aACtC,UAAU,KAAK,WAAW,IAAI,oFAAoF,EAClH,UAAU,KAAK,QAAQ,IAAI,kFAAkF,EAC7G,UAAU,KAAK,QAAQ,IAAI,oEAAoE,IAC9F,IACA,EACN,0BACE,gBAAO,SAAS,EAAC,8CAA8C,wBAAgB,EAC/E,eAAK,SAAS,EAAC,YAAY,aACzB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBACE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EACtC,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,WAAW,EAAE,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACvG,SAAS,EAAC,sHAAsH,GAChI,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,SAAS,EAAC,iFAAiF,YAE1F,UAAU,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,GACnE,IACL,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;oEACZ,IAAI,QAAQ;wEAAE,KAAK,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;;wEACxD,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gEACpD,CAAC,EACD,SAAS,EAAC,wFAAwF,uBAG3F,IACL,EACN,YAAG,SAAS,EAAC,4BAA4B,4FAAgF,IACrH,IACF,IACF,EAEN,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,KAAK,IAAC,SAAS,EAAC,uBAAuB,GAAG,EAC3C,aAAI,SAAS,EAAC,qCAAqC,mCAAwB,IACvE,EACN,YAAG,SAAS,EAAC,4BAA4B,oDAAwC,EACjF,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,aAAa,IACZ,KAAK,EAAC,yBAAyB,EAC/B,WAAW,EAAC,gGAAgG,EAC5G,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,YAAY,GACtB,EACF,KAAC,aAAa,IACZ,KAAK,EAAC,2BAA2B,EACjC,WAAW,EAAC,kFAAkF,EAC9F,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,oBAAoB,GAC9B,IACE,IACF,EAEN,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,SAAS,IAAC,SAAS,EAAC,yBAAyB,GAAG,EACjD,aAAI,SAAS,EAAC,qCAAqC,4BAAiB,IAChE,EACN,YAAG,SAAS,EAAC,4BAA4B,4DAAgD,EACzF,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,aAAa,IACZ,KAAK,EAAC,6BAA6B,EACnC,WAAW,EAAC,qEAAqE,EACjF,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,qBAAqB,GAC/B,EACF,KAAC,aAAa,IACZ,KAAK,EAAC,sBAAsB,EAC5B,WAAW,EAAC,sFAAsF,EAClG,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,gBAAgB,GAC1B,EACF,KAAC,aAAa,IACZ,KAAK,EAAC,uBAAuB,EAC7B,WAAW,EAAC,uFAAuF,EACnG,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,WAAW,GACrB,IACE,IACF,EAEN,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,aAAa,IAAC,SAAS,EAAC,wBAAwB,GAAG,EACpD,aAAI,SAAS,EAAC,qCAAqC,sCAA2B,IAC1E,EACN,YAAG,SAAS,EAAC,4BAA4B,qEAA8D,EACvG,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,aAAa,IACZ,KAAK,EAAC,sBAAsB,EAC5B,WAAW,EAAC,4EAA4E,EACxF,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,eAAe,GACzB,EACF,KAAC,aAAa,IACZ,KAAK,EAAC,sBAAsB,EAC5B,WAAW,EAAC,wFAAwF,EACpG,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,qBAAqB,GAC/B,IACE,IACF,EAEN,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,QAAQ,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAChD,aAAI,SAAS,EAAC,qCAAqC,gCAAqB,IACpE,EACN,YAAG,SAAS,EAAC,4BAA4B,mEAAuD,EAChG,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,aAAa,IACZ,KAAK,EAAC,iBAAiB,EACvB,WAAW,EAAC,4FAA4F,EACxG,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,mBAAmB,GAC7B,EACF,KAAC,aAAa,IACZ,KAAK,EAAC,wBAAwB,EAC9B,WAAW,EAAC,2EAA2E,EACvF,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,gBAAgB,GAC1B,IACE,IACF,EAEN,eAAK,SAAS,EAAC,sDAAsD,aACnE,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,QAAQ,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAChD,aAAI,SAAS,EAAC,uCAAuC,oCAAyB,IAC1E,EACN,eAAK,SAAS,EAAC,6BAA6B,aAC1C,0BACE,cAAK,SAAS,EAAC,uCAAuC,kBAAQ,EAC9D,cAAK,SAAS,EAAC,yBAAyB,0BAAgB,IACpD,EACN,0BACE,cAAK,SAAS,EAAC,uCAAuC,kBAAQ,EAC9D,cAAK,SAAS,EAAC,yBAAyB,4BAAkB,IACtD,EACN,0BACE,cAAK,SAAS,EAAC,uCAAuC,sBAAY,EAClE,cAAK,SAAS,EAAC,yBAAyB,+BAAqB,IACzD,IACF,EACN,YAAG,SAAS,EAAC,8BAA8B,gEAAoD,IAC3F,IACO,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,cAAc,EAAC,SAAS,EAAC,WAAW,YACtD,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,yBAAc,EACtE,cAAK,SAAS,EAAC,WAAW,YACxB,0BACE,gBAAO,SAAS,EAAC,8CAA8C,wBAAgB,EAC/E,eAAK,SAAS,EAAC,YAAY,aACzB,gBAAO,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,wJAA2B,EAAC,QAAQ,QAAC,SAAS,EAAC,uEAAuE,GAAG,EAClJ,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wFAAwF,2BAAoB,IACxI,IACF,GACF,IACF,GACO,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,YACjD,KAAC,YAAY,KAAG,GACH,IACL,EAEZ,cAAK,SAAS,EAAC,uBAAuB,YACpC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAC,6GAA6G,YAEtH,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,GAC/B,GACL,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,OAAO,CACL,kBACE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAoC,CAAC,EACxE,SAAS,EAAC,gHAAgH,aAE1H,iBAAQ,KAAK,EAAC,OAAO,sBAAe,EACpC,iBAAQ,KAAK,EAAC,MAAM,qBAAc,EAClC,iBAAQ,KAAK,EAAC,QAAQ,8BAAuB,IACtC,CACV,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAQ,GAMT;IACC,OAAO,CACL,eAAK,SAAS,EAAC,yCAAyC,aACtD,eAAK,SAAS,EAAC,QAAQ,aACrB,gBAAO,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAS,EACpE,YAAG,SAAS,EAAC,8BAA8B,YAAE,WAAW,GAAK,IACzD,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EACjC,SAAS,EAAE,6DAA6D,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,kBACnG,OAAO,YAErB,eACE,SAAS,EAAE,6EACT,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBACnC,EAAE,GACF,GACK,IACL,CACP,CAAC;AACJ,CAAC;AAkBD,SAAS,YAAY;IACnB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA6C,IAAI,CAAC,CAAC;IAC3F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,gBAAgB;IAChB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,WAAW,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAa,gBAAgB,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACpB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU;oBAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,CAAC,gDAAgD,CAAC,CAAC;QAClE,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,EAAE;gBAC1C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C,CAAC;aACH,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;gBAC3D,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,UAAU,CAAC,EAAE,CAAC,CAAC;gBACf,IAAI,UAAU,EAAE,CAAC;oBACf,aAAa,CAAC,EAAE,GAAG,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE,MAAM;YAAE,OAAO;QAChC,WAAW,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAsC,gBAAgB,EAAE;gBAC9E,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;aAC3D,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC9E,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,EAAE,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAgF;QAClG,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE;QAC7F,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE;QACnG,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;KAC3F,CAAC;IAEF,OAAO,CACL,8BAEE,cAAK,SAAS,EAAC,gDAAgD,YAC7D,eAAK,SAAS,EAAC,mCAAmC,aAChD,0BACE,aAAI,SAAS,EAAC,qCAAqC,4BAAiB,EACpE,aAAG,SAAS,EAAC,4BAA4B,kCACtB,eAAM,SAAS,EAAC,uBAAuB,YAAE,UAAU,EAAE,OAAO,IAAI,KAAK,GAAQ,IAC5F,IACA,EACN,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,8JAA8J,aAExK,KAAC,SAAS,IAAC,SAAS,EAAE,WAAW,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,GAAI,EACpE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,IACxC,IACL,GACF,EAGL,UAAU,IAAI,CACb,eAAK,SAAS,EAAC,wEAAwE,aACrF,KAAC,aAAa,IAAC,SAAS,EAAC,+BAA+B,GAAG,EAC3D,eAAM,SAAS,EAAC,6BAA6B,YAAE,UAAU,GAAQ,EACjE,iBAAQ,OAAO,EAAE,eAAe,EAAE,SAAS,EAAC,oGAAoG,sBAAe,IAC3J,CACP,EAGA,UAAU,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,UAAU,IAAI,CACzE,eAAK,SAAS,EAAC,4EAA4E,aACzF,KAAC,YAAY,IAAC,SAAS,EAAC,iCAAiC,GAAG,EAC5D,0BACE,aAAI,SAAS,EAAC,sCAAsC,mCAA6B,EACjF,aAAG,SAAS,EAAC,+BAA+B,6BAC9B,eAAM,SAAS,EAAC,WAAW,YAAE,UAAU,CAAC,OAAO,GAAQ,+BACjE,IACA,IACF,CACP,EAGA,UAAU,EAAE,eAAe,IAAI,CAC9B,8BACE,eAAK,SAAS,EAAE,yBAAyB,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,MAAM,IAAI,iBAAiB,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,YAAY,EAAE,aAC1L,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,aAAa,IAAC,SAAS,EAAE,2BAA2B,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,eAAe,EAAE,GAAI,EAClI,eAAK,SAAS,EAAC,QAAQ,aACrB,eAAK,SAAS,EAAC,yBAAyB,aACtC,aAAI,SAAS,EAAE,yBAAyB,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,eAAe,EAAE,iCAE5G,EACL,eAAM,SAAS,EAAE,oEAAoE,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,YAAY,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,eAAe,WAAW,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,MAAM,IAAI,iBAAiB,EAAE,YACvT,cAAc,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,QAAQ,GAC7D,IACH,EACN,aAAG,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aACrD,eAAM,SAAS,EAAC,WAAW,YAAE,UAAU,CAAC,OAAO,GAAQ,EACtD,GAAG,YAAQ,GAAG,EACf,eAAM,SAAS,EAAC,yBAAyB,YAAE,UAAU,CAAC,MAAM,GAAQ,EACnE,UAAU,CAAC,WAAW,IAAI,CACzB,gBAAM,SAAS,EAAC,yBAAyB,0BAAW,UAAU,CAAC,WAAW,IAAQ,CACnF,IACC,IACA,IACF,EAEN,eAAK,SAAS,EAAC,8BAA8B,aAC3C,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,iJAAiJ,YAE1J,QAAQ,CAAC,CAAC,CAAC,CACV,8BACE,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,GAAG,sBAE3C,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,cAAc,IAAC,SAAS,EAAC,SAAS,GAAG,wBAErC,CACJ,GACM,EACT,eAAM,SAAS,EAAC,uBAAuB,wDAA+C,IAClF,EAEL,UAAU,CAAC,aAAa,IAAI,CAC3B,eAAK,SAAS,EAAC,kDAAkD,aAC/D,YAAG,SAAS,EAAC,4BAA4B,oCAAwB,EACjE,eAAM,SAAS,EAAC,iFAAiF,YAC9F,UAAU,CAAC,aAAa,GACpB,IACH,CACP,IACG,EAGL,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1D,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,0BAAe,EACvE,cAAK,SAAS,EAAC,oCAAoC,YAChD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACnC,eAAyB,SAAS,EAAC,mCAAmC,aACpE,eAAM,SAAS,EAAC,+CAA+C,YAAE,KAAK,CAAC,OAAO,GAAQ,EACtF,eAAM,SAAS,EAAC,qCAAqC,YAAE,KAAK,CAAC,IAAI,GAAQ,EACzE,eAAM,SAAS,EAAC,eAAe,YAAE,KAAK,CAAC,OAAO,GAAQ,KAH9C,KAAK,CAAC,OAAO,CAIjB,CACP,CAAC,GACE,IACF,CACP,IACA,CACJ,EAGA,QAAQ,IAAI,CACX,cAAK,SAAS,EAAC,oDAAoD,YACjE,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,cAAc,IAAC,SAAS,EAAC,wCAAwC,GAAG,EACrE,0BACE,aAAI,SAAS,EAAC,sCAAsC,qCAA0B,EAC9E,aAAG,SAAS,EAAC,6BAA6B,qBACnC,QAAQ,CAAC,QAAQ,8FAC4B,eAAM,SAAS,EAAC,6CAA6C,0CAAiC,SAC9I,EACJ,aACE,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,+FAA+F,aAEzG,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,GAAG,yBAElC,IACA,IACF,GACF,CACP,EAGD,eAAK,SAAS,EAAC,gDAAgD,aAC7D,aAAI,SAAS,EAAC,0CAA0C,mCAAwB,EAChF,YAAG,SAAS,EAAC,4BAA4B,yHAErC,EAEJ,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,gBAAO,SAAS,EAAC,8CAA8C,2BAAmB,EAClF,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAC,YAAY,EACxB,SAAS,EAAC,gHAAgH,GAC1H,EACF,aAAG,SAAS,EAAC,4BAA4B,sBAAM,eAAM,SAAS,EAAC,oCAAoC,6CAAoC,IAAI,IACvI,EACN,0BACE,iBAAO,SAAS,EAAC,8CAA8C,6BAE5D,UAAU,EAAE,cAAc,IAAI,CAAC,OAAO,IAAI,CACzC,eAAM,SAAS,EAAC,yCAAyC,sBAAa,CACvE,IACK,EACR,cAAK,SAAS,EAAC,YAAY,YACzB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBACE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EACvC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,2BAA2B,EAC1F,SAAS,EAAC,sHAAsH,GAChI,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,EAC3C,SAAS,EAAC,iFAAiF,YAE1F,WAAW,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,GACpE,IACL,GACF,EACN,aAAG,SAAS,EAAC,4BAA4B,uBACjC,eAAM,SAAS,EAAC,oCAAoC,qBAAY,uBAAkB,GAAG,EAC3F,YAAG,IAAI,EAAC,oCAAoC,EAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,SAAS,EAAC,+BAA+B,2CAE5H,IACF,IACA,EAEN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,YAAY,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,EAC/C,SAAS,EAAC,iJAAiJ,YAE1J,YAAY,CAAC,CAAC,CAAC,CACd,8BACE,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,GAAG,8BAE3C,CACJ,CAAC,CAAC,CAAC,CACF,oBAAoB,CACrB,GACM,IACL,IACF,EAGN,eAAK,SAAS,EAAC,kDAAkD,aAC/D,aAAI,SAAS,EAAC,0CAA0C,iCAAsB,EAC9E,cAAI,SAAS,EAAC,mCAAmC,aAC/C,cAAI,SAAS,EAAC,wBAAwB,aACpC,eAAM,SAAS,EAAC,uHAAuH,kBAAS,EAChJ,sGAA6F,IAC1F,EACL,cAAI,SAAS,EAAC,wBAAwB,aACpC,eAAM,SAAS,EAAC,uHAAuH,kBAAS,EAChJ,qIAAoH,IACjH,EACL,cAAI,SAAS,EAAC,wBAAwB,aACpC,eAAM,SAAS,EAAC,uHAAuH,kBAAS,EAChJ,2HAAkH,IAC/G,EACL,cAAI,SAAS,EAAC,wBAAwB,aACpC,eAAM,SAAS,EAAC,uHAAuH,kBAAS,EAChJ,+GAAsF,eAAM,SAAS,EAAC,oCAAoC,sCAA6B,SAAQ,IAC5K,IACF,IACD,IACL,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/views/Settings.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actuate-media/cms-admin",
3
- "version": "0.3.0",
3
+ "version": "0.6.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/actuate-media/actuatecms.git",
@@ -58,8 +58,10 @@
58
58
  "react-dom": "^19.2.0",
59
59
  "recharts": "^3.8.1",
60
60
  "sonner": "^2.0.7",
61
- "tailwind-merge": "^3.5.0",
62
- "@actuate-media/cms-core": "0.4.0"
61
+ "tailwind-merge": "^3.5.0"
62
+ },
63
+ "peerDependencies": {
64
+ "@actuate-media/cms-core": ">=0.1.0"
63
65
  },
64
66
  "devDependencies": {
65
67
  "@tailwindcss/cli": "^4.0.0",
package/src/AdminRoot.tsx CHANGED
@@ -13,8 +13,12 @@ import { FormEditor } from './views/FormEditor.js';
13
13
  import { FormSubmissions } from './views/FormSubmissions.js';
14
14
  import { Users } from './views/Users.js';
15
15
  import { SEO } from './views/SEO.js';
16
+ import { ScriptTags } from './views/ScriptTags.js';
17
+ import { ScriptTagEditor } from './views/ScriptTagEditor.js';
16
18
  import { SetupWizard } from './views/SetupWizard.js';
17
19
  import { Login } from './views/Login.js';
20
+ import { ForgotPassword } from './views/ForgotPassword.js';
21
+ import { ResetPassword } from './views/ResetPassword.js';
18
22
  import { ErrorBoundary } from './components/ErrorBoundary.js';
19
23
  import { ThemeProvider } from './components/ThemeProvider.js';
20
24
  import { LocaleProvider } from './components/LocaleProvider.js';
@@ -63,6 +67,16 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', s
63
67
  }
64
68
 
65
69
  if (!session && !setupRequired) {
70
+ if (matchRoute('/forgot-password')) {
71
+ return <ForgotPassword onNavigate={navigate} />;
72
+ }
73
+
74
+ const resetMatch = matchRoute('/reset-password');
75
+ if (resetMatch) {
76
+ const params = new URLSearchParams(typeof window !== 'undefined' ? window.location.search : '');
77
+ return <ResetPassword onNavigate={navigate} token={params.get('token')} />;
78
+ }
79
+
66
80
  if (onLogin) {
67
81
  return <Login onLogin={onLogin} onNavigate={navigate} captchaConfig={captchaConfig} />;
68
82
  }
@@ -146,12 +160,23 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', s
146
160
  return <SEO onNavigate={navigate} initialTab="pages" />;
147
161
  }
148
162
 
163
+ if (matchRoute('/script-tags/new')) {
164
+ return <ScriptTagEditor onNavigate={navigate} />;
165
+ }
166
+ const scriptTagEdit = matchRoute('/script-tags/:id');
167
+ if (scriptTagEdit?.id) {
168
+ return <ScriptTagEditor tagId={scriptTagEdit.id} onNavigate={navigate} />;
169
+ }
170
+ if (matchRoute('/script-tags')) {
171
+ return <ScriptTags onNavigate={navigate} />;
172
+ }
173
+
149
174
  if (matchRoute('/users')) {
150
175
  return <Users onNavigate={navigate} />;
151
176
  }
152
177
 
153
178
  if (matchRoute('/settings')) {
154
- return <Settings onNavigate={navigate} />;
179
+ return <Settings onNavigate={navigate} config={config} />;
155
180
  }
156
181
 
157
182
  return (
@@ -12,6 +12,7 @@ const LABEL_MAP: Record<string, string> = {
12
12
  canonicals: 'Canonicalization',
13
13
  links: 'Link Health',
14
14
  users: 'Users',
15
+ 'script-tags': 'Script Tags',
15
16
  settings: 'Settings',
16
17
  collections: 'Collections',
17
18
  submissions: 'Submissions',
package/src/index.ts CHANGED
@@ -26,6 +26,10 @@ export { SetupWizard } from './views/SetupWizard.js';
26
26
  export type { SetupWizardProps } from './views/SetupWizard.js';
27
27
  export { Login } from './views/Login.js';
28
28
  export type { LoginProps, CaptchaConfig } from './views/Login.js';
29
+ export { ForgotPassword } from './views/ForgotPassword.js';
30
+ export type { ForgotPasswordProps } from './views/ForgotPassword.js';
31
+ export { ResetPassword } from './views/ResetPassword.js';
32
+ export type { ResetPasswordProps } from './views/ResetPassword.js';
29
33
  export { CollectionList } from './views/CollectionList.js';
30
34
  export { DocumentEdit } from './views/DocumentEdit.js';
31
35
 
@@ -16,6 +16,10 @@ import {
16
16
  BookOpen,
17
17
  HelpCircle,
18
18
  Newspaper,
19
+ PanelTop,
20
+ PanelBottom,
21
+ Layers,
22
+ Code2,
19
23
  } from 'lucide-react';
20
24
  import type { LucideIcon } from 'lucide-react';
21
25
 
@@ -53,6 +57,9 @@ const ICON_MAP: Record<string, LucideIcon> = {
53
57
  book: BookOpen,
54
58
  help: HelpCircle,
55
59
  newspaper: Newspaper,
60
+ PanelTop: PanelTop,
61
+ PanelBottom: PanelBottom,
62
+ Layers: Layers,
56
63
  };
57
64
 
58
65
  function BrandLogo({ config, collapsed }: { config?: any; collapsed: boolean }) {
@@ -143,28 +150,44 @@ export function Sidebar({ collapsed, onToggleCollapse, currentPath, onNavigate,
143
150
  </div>
144
151
 
145
152
  <nav className="p-3 space-y-1">
146
- {navItems.map((item) => {
153
+ {navItems.map((item, idx) => {
147
154
  const Icon = item.icon;
148
155
  const isActive =
149
156
  currentPath === item.path ||
150
157
  (item.path !== '/' && currentPath.startsWith(item.path));
151
158
 
159
+ const prevGroup = idx > 0 ? navItems[idx - 1]?.group : undefined;
160
+ const showGroupLabel = item.group && item.group !== prevGroup;
161
+
152
162
  return (
153
- <button
154
- key={item.path}
155
- onClick={() => onNavigate(item.path)}
156
- className={`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors w-full text-left ${
157
- isActive
158
- ? 'bg-sidebar-accent text-sidebar-primary'
159
- : 'text-sidebar-foreground hover:bg-sidebar-accent'
160
- } ${collapsed ? 'justify-center' : ''}`}
161
- title={collapsed ? item.label : ''}
162
- >
163
- <Icon className="w-5 h-5 shrink-0" />
164
- {!collapsed && (
165
- <span className="text-sm font-medium">{item.label}</span>
163
+ <div key={item.path}>
164
+ {showGroupLabel && !collapsed && (
165
+ <div className="pt-3 pb-1 px-3">
166
+ <span className="text-[10px] font-semibold uppercase tracking-wider text-sidebar-foreground/50">
167
+ {item.group}
168
+ </span>
169
+ </div>
170
+ )}
171
+ {showGroupLabel && collapsed && (
172
+ <div className="pt-2 pb-1 flex justify-center">
173
+ <span className="w-4 border-t border-sidebar-foreground/20" />
174
+ </div>
166
175
  )}
167
- </button>
176
+ <button
177
+ onClick={() => onNavigate(item.path)}
178
+ className={`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors w-full text-left ${
179
+ isActive
180
+ ? 'bg-sidebar-accent text-sidebar-primary'
181
+ : 'text-sidebar-foreground hover:bg-sidebar-accent'
182
+ } ${collapsed ? 'justify-center' : ''}`}
183
+ title={collapsed ? item.label : ''}
184
+ >
185
+ <Icon className="w-5 h-5 shrink-0" />
186
+ {!collapsed && (
187
+ <span className="text-sm font-medium">{item.label}</span>
188
+ )}
189
+ </button>
190
+ </div>
168
191
  );
169
192
  })}
170
193
  </nav>
@@ -178,7 +201,14 @@ function resolveIcon(collection: any): LucideIcon {
178
201
  return collection.type === 'page' ? File : FileText;
179
202
  }
180
203
 
181
- function buildNavItems(config: any) {
204
+ export interface NavItem {
205
+ path: string;
206
+ label: string;
207
+ icon: LucideIcon;
208
+ group?: string;
209
+ }
210
+
211
+ function buildNavItems(config: any): NavItem[] {
182
212
  if (!config?.collections) return defaultNavItems;
183
213
 
184
214
  const raw = config.collections;
@@ -186,17 +216,19 @@ function buildNavItems(config: any) {
186
216
 
187
217
  const visible = collectionsList.filter((c) => !c.admin?.hidden);
188
218
 
189
- const pages = visible.filter((c) => c.type === 'page');
190
- const posts = visible.filter((c) => c.type === 'post');
191
- const other = visible.filter((c) => c.type !== 'page' && c.type !== 'post');
219
+ const ungrouped = visible.filter((c) => !c.admin?.group);
220
+ const grouped = visible.filter((c) => c.admin?.group);
192
221
 
193
- const sorted = [...pages, ...posts, ...other];
222
+ const pages = ungrouped.filter((c) => c.type === 'page');
223
+ const posts = ungrouped.filter((c) => c.type === 'post');
224
+ const other = ungrouped.filter((c) => c.type !== 'page' && c.type !== 'post');
225
+ const sortedUngrouped = [...pages, ...posts, ...other];
194
226
 
195
- const items: typeof defaultNavItems = [
227
+ const items: NavItem[] = [
196
228
  { path: '/', label: 'Dashboard', icon: LayoutDashboard },
197
229
  ];
198
230
 
199
- for (const collection of sorted) {
231
+ for (const collection of sortedUngrouped) {
200
232
  items.push({
201
233
  label: collection.labels?.plural ?? collection.slug,
202
234
  path: `/${collection.slug}`,
@@ -204,10 +236,28 @@ function buildNavItems(config: any) {
204
236
  });
205
237
  }
206
238
 
239
+ const groups = new Map<string, typeof grouped>();
240
+ for (const col of grouped) {
241
+ const group = col.admin.group as string;
242
+ if (!groups.has(group)) groups.set(group, []);
243
+ groups.get(group)!.push(col);
244
+ }
245
+ for (const [groupName, cols] of groups) {
246
+ for (const collection of cols) {
247
+ items.push({
248
+ label: collection.labels?.plural ?? collection.slug,
249
+ path: `/${collection.slug}`,
250
+ icon: resolveIcon(collection),
251
+ group: groupName,
252
+ });
253
+ }
254
+ }
255
+
207
256
  items.push(
208
257
  { path: '/media', label: 'Media', icon: Image },
209
258
  { path: '/forms', label: 'Forms', icon: ClipboardList },
210
259
  { path: '/seo', label: 'SEO', icon: SearchIcon },
260
+ { path: '/script-tags', label: 'Script Tags', icon: Code2 },
211
261
  { path: '/users', label: 'Users', icon: Users },
212
262
  { path: '/settings', label: 'Settings', icon: Settings },
213
263
  );