@actuate-media/cms-admin 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/dist/AdminRoot.d.ts +21 -0
  2. package/dist/AdminRoot.d.ts.map +1 -0
  3. package/dist/AdminRoot.js +136 -0
  4. package/dist/AdminRoot.js.map +1 -0
  5. package/dist/components/Breadcrumbs.d.ts +6 -0
  6. package/dist/components/Breadcrumbs.d.ts.map +1 -0
  7. package/dist/components/Breadcrumbs.js +52 -0
  8. package/dist/components/Breadcrumbs.js.map +1 -0
  9. package/dist/components/CommandPalette.d.ts +7 -0
  10. package/dist/components/CommandPalette.d.ts.map +1 -0
  11. package/dist/components/CommandPalette.js +152 -0
  12. package/dist/components/CommandPalette.js.map +1 -0
  13. package/dist/components/ErrorBoundary.d.ts +17 -0
  14. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  15. package/dist/components/ErrorBoundary.js +24 -0
  16. package/dist/components/ErrorBoundary.js.map +1 -0
  17. package/dist/components/FocalPointPicker.d.ts +9 -0
  18. package/dist/components/FocalPointPicker.d.ts.map +1 -0
  19. package/dist/components/FocalPointPicker.js +19 -0
  20. package/dist/components/FocalPointPicker.js.map +1 -0
  21. package/dist/components/FolderTree.d.ts +28 -0
  22. package/dist/components/FolderTree.d.ts.map +1 -0
  23. package/dist/components/FolderTree.js +198 -0
  24. package/dist/components/FolderTree.js.map +1 -0
  25. package/dist/components/LivePreview.d.ts +10 -0
  26. package/dist/components/LivePreview.d.ts.map +1 -0
  27. package/dist/components/LivePreview.js +62 -0
  28. package/dist/components/LivePreview.js.map +1 -0
  29. package/dist/components/LocaleProvider.d.ts +28 -0
  30. package/dist/components/LocaleProvider.d.ts.map +1 -0
  31. package/dist/components/LocaleProvider.js +29 -0
  32. package/dist/components/LocaleProvider.js.map +1 -0
  33. package/dist/components/LocaleSwitcher.d.ts +2 -0
  34. package/dist/components/LocaleSwitcher.d.ts.map +1 -0
  35. package/dist/components/LocaleSwitcher.js +13 -0
  36. package/dist/components/LocaleSwitcher.js.map +1 -0
  37. package/dist/components/MediaPickerModal.d.ts +8 -0
  38. package/dist/components/MediaPickerModal.d.ts.map +1 -0
  39. package/dist/components/MediaPickerModal.js +53 -0
  40. package/dist/components/MediaPickerModal.js.map +1 -0
  41. package/dist/components/PresenceIndicator.d.ts +7 -0
  42. package/dist/components/PresenceIndicator.d.ts.map +1 -0
  43. package/dist/components/PresenceIndicator.js +37 -0
  44. package/dist/components/PresenceIndicator.js.map +1 -0
  45. package/dist/components/SEOPanel.d.ts +26 -0
  46. package/dist/components/SEOPanel.d.ts.map +1 -0
  47. package/dist/components/SEOPanel.js +249 -0
  48. package/dist/components/SEOPanel.js.map +1 -0
  49. package/dist/components/ThemeProvider.d.ts +13 -0
  50. package/dist/components/ThemeProvider.d.ts.map +1 -0
  51. package/dist/components/ThemeProvider.js +62 -0
  52. package/dist/components/ThemeProvider.js.map +1 -0
  53. package/dist/components/TipTapEditor.d.ts +9 -0
  54. package/dist/components/TipTapEditor.d.ts.map +1 -0
  55. package/dist/components/TipTapEditor.js +167 -0
  56. package/dist/components/TipTapEditor.js.map +1 -0
  57. package/dist/components/VersionHistory.d.ts +9 -0
  58. package/dist/components/VersionHistory.d.ts.map +1 -0
  59. package/dist/components/VersionHistory.js +70 -0
  60. package/dist/components/VersionHistory.js.map +1 -0
  61. package/dist/components/ui/Avatar.d.ts +9 -0
  62. package/dist/components/ui/Avatar.d.ts.map +1 -0
  63. package/dist/components/ui/Avatar.js +21 -0
  64. package/dist/components/ui/Avatar.js.map +1 -0
  65. package/dist/components/ui/Badge.d.ts +5 -0
  66. package/dist/components/ui/Badge.d.ts.map +1 -0
  67. package/dist/components/ui/Badge.js +17 -0
  68. package/dist/components/ui/Badge.js.map +1 -0
  69. package/dist/components/ui/Button.d.ts +12 -0
  70. package/dist/components/ui/Button.d.ts.map +1 -0
  71. package/dist/components/ui/Button.js +17 -0
  72. package/dist/components/ui/Button.js.map +1 -0
  73. package/dist/components/ui/CommandPalette.d.ts +14 -0
  74. package/dist/components/ui/CommandPalette.d.ts.map +1 -0
  75. package/dist/components/ui/CommandPalette.js +52 -0
  76. package/dist/components/ui/CommandPalette.js.map +1 -0
  77. package/dist/components/ui/ConfirmDialog.d.ts +12 -0
  78. package/dist/components/ui/ConfirmDialog.d.ts.map +1 -0
  79. package/dist/components/ui/ConfirmDialog.js +11 -0
  80. package/dist/components/ui/ConfirmDialog.js.map +1 -0
  81. package/dist/components/ui/DataTable.d.ts +30 -0
  82. package/dist/components/ui/DataTable.d.ts.map +1 -0
  83. package/dist/components/ui/DataTable.js +40 -0
  84. package/dist/components/ui/DataTable.js.map +1 -0
  85. package/dist/components/ui/EmptyState.d.ts +10 -0
  86. package/dist/components/ui/EmptyState.d.ts.map +1 -0
  87. package/dist/components/ui/EmptyState.js +6 -0
  88. package/dist/components/ui/EmptyState.js.map +1 -0
  89. package/dist/components/ui/Modal.d.ts +10 -0
  90. package/dist/components/ui/Modal.d.ts.map +1 -0
  91. package/dist/components/ui/Modal.js +19 -0
  92. package/dist/components/ui/Modal.js.map +1 -0
  93. package/dist/components/ui/Pagination.d.ts +9 -0
  94. package/dist/components/ui/Pagination.d.ts.map +1 -0
  95. package/dist/components/ui/Pagination.js +21 -0
  96. package/dist/components/ui/Pagination.js.map +1 -0
  97. package/dist/components/ui/SearchInput.d.ts +7 -0
  98. package/dist/components/ui/SearchInput.d.ts.map +1 -0
  99. package/dist/components/ui/SearchInput.js +6 -0
  100. package/dist/components/ui/SearchInput.js.map +1 -0
  101. package/dist/components/ui/Skeleton.d.ts +9 -0
  102. package/dist/components/ui/Skeleton.d.ts.map +1 -0
  103. package/dist/components/ui/Skeleton.js +11 -0
  104. package/dist/components/ui/Skeleton.js.map +1 -0
  105. package/dist/components/ui/Toast.d.ts +18 -0
  106. package/dist/components/ui/Toast.d.ts.map +1 -0
  107. package/dist/components/ui/Toast.js +29 -0
  108. package/dist/components/ui/Toast.js.map +1 -0
  109. package/dist/components/ui/index.d.ts +25 -0
  110. package/dist/components/ui/index.d.ts.map +1 -0
  111. package/dist/components/ui/index.js +13 -0
  112. package/dist/components/ui/index.js.map +1 -0
  113. package/dist/fields/ArrayField.d.ts +9 -0
  114. package/dist/fields/ArrayField.d.ts.map +1 -0
  115. package/dist/fields/ArrayField.js +21 -0
  116. package/dist/fields/ArrayField.js.map +1 -0
  117. package/dist/fields/BlockBuilderField.d.ts +16 -0
  118. package/dist/fields/BlockBuilderField.d.ts.map +1 -0
  119. package/dist/fields/BlockBuilderField.js +110 -0
  120. package/dist/fields/BlockBuilderField.js.map +1 -0
  121. package/dist/fields/DateField.d.ts +9 -0
  122. package/dist/fields/DateField.d.ts.map +1 -0
  123. package/dist/fields/DateField.js +6 -0
  124. package/dist/fields/DateField.js.map +1 -0
  125. package/dist/fields/FieldRenderer.d.ts +22 -0
  126. package/dist/fields/FieldRenderer.d.ts.map +1 -0
  127. package/dist/fields/FieldRenderer.js +38 -0
  128. package/dist/fields/FieldRenderer.js.map +1 -0
  129. package/dist/fields/GroupField.d.ts +8 -0
  130. package/dist/fields/GroupField.d.ts.map +1 -0
  131. package/dist/fields/GroupField.js +8 -0
  132. package/dist/fields/GroupField.js.map +1 -0
  133. package/dist/fields/MediaField.d.ts +13 -0
  134. package/dist/fields/MediaField.d.ts.map +1 -0
  135. package/dist/fields/MediaField.js +6 -0
  136. package/dist/fields/MediaField.js.map +1 -0
  137. package/dist/fields/NavBuilderField.d.ts +15 -0
  138. package/dist/fields/NavBuilderField.d.ts.map +1 -0
  139. package/dist/fields/NavBuilderField.js +19 -0
  140. package/dist/fields/NavBuilderField.js.map +1 -0
  141. package/dist/fields/NumberField.d.ts +12 -0
  142. package/dist/fields/NumberField.d.ts.map +1 -0
  143. package/dist/fields/NumberField.js +6 -0
  144. package/dist/fields/NumberField.js.map +1 -0
  145. package/dist/fields/RelationshipField.d.ts +13 -0
  146. package/dist/fields/RelationshipField.d.ts.map +1 -0
  147. package/dist/fields/RelationshipField.js +119 -0
  148. package/dist/fields/RelationshipField.js.map +1 -0
  149. package/dist/fields/RichTextField.d.ts +9 -0
  150. package/dist/fields/RichTextField.d.ts.map +1 -0
  151. package/dist/fields/RichTextField.js +7 -0
  152. package/dist/fields/RichTextField.js.map +1 -0
  153. package/dist/fields/SelectField.d.ts +11 -0
  154. package/dist/fields/SelectField.d.ts.map +1 -0
  155. package/dist/fields/SelectField.js +31 -0
  156. package/dist/fields/SelectField.js.map +1 -0
  157. package/dist/fields/SlugField.d.ts +10 -0
  158. package/dist/fields/SlugField.d.ts.map +1 -0
  159. package/dist/fields/SlugField.js +15 -0
  160. package/dist/fields/SlugField.js.map +1 -0
  161. package/dist/fields/TextField.d.ts +11 -0
  162. package/dist/fields/TextField.d.ts.map +1 -0
  163. package/dist/fields/TextField.js +8 -0
  164. package/dist/fields/TextField.js.map +1 -0
  165. package/dist/fields/ToggleField.d.ts +8 -0
  166. package/dist/fields/ToggleField.d.ts.map +1 -0
  167. package/dist/fields/ToggleField.js +6 -0
  168. package/dist/fields/ToggleField.js.map +1 -0
  169. package/dist/fields/block-types.d.ts +18 -0
  170. package/dist/fields/block-types.d.ts.map +1 -0
  171. package/dist/fields/block-types.js +88 -0
  172. package/dist/fields/block-types.js.map +1 -0
  173. package/dist/fields/index.d.ts +18 -0
  174. package/dist/fields/index.d.ts.map +1 -0
  175. package/dist/fields/index.js +16 -0
  176. package/dist/fields/index.js.map +1 -0
  177. package/dist/hooks/useContentLock.d.ts +12 -0
  178. package/dist/hooks/useContentLock.d.ts.map +1 -0
  179. package/dist/hooks/useContentLock.js +38 -0
  180. package/dist/hooks/useContentLock.js.map +1 -0
  181. package/dist/hooks/useDebounce.d.ts +2 -0
  182. package/dist/hooks/useDebounce.d.ts.map +1 -0
  183. package/dist/hooks/useDebounce.js +11 -0
  184. package/dist/hooks/useDebounce.js.map +1 -0
  185. package/dist/hooks/useKeyboardShortcuts.d.ts +6 -0
  186. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  187. package/dist/hooks/useKeyboardShortcuts.js +26 -0
  188. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  189. package/dist/index.d.ts +52 -0
  190. package/dist/index.d.ts.map +1 -0
  191. package/dist/index.js +39 -0
  192. package/dist/index.js.map +1 -0
  193. package/dist/layout/Header.d.ts +7 -0
  194. package/dist/layout/Header.d.ts.map +1 -0
  195. package/dist/layout/Header.js +18 -0
  196. package/dist/layout/Header.js.map +1 -0
  197. package/dist/layout/Layout.d.ts +10 -0
  198. package/dist/layout/Layout.d.ts.map +1 -0
  199. package/dist/layout/Layout.js +25 -0
  200. package/dist/layout/Layout.js.map +1 -0
  201. package/dist/layout/Sidebar.d.ts +9 -0
  202. package/dist/layout/Sidebar.d.ts.map +1 -0
  203. package/dist/layout/Sidebar.js +63 -0
  204. package/dist/layout/Sidebar.js.map +1 -0
  205. package/dist/lib/api.d.ts +8 -0
  206. package/dist/lib/api.d.ts.map +1 -0
  207. package/dist/lib/api.js +59 -0
  208. package/dist/lib/api.js.map +1 -0
  209. package/dist/lib/search.d.ts +11 -0
  210. package/dist/lib/search.d.ts.map +1 -0
  211. package/dist/lib/search.js +46 -0
  212. package/dist/lib/search.js.map +1 -0
  213. package/dist/lib/useApiData.d.ts +8 -0
  214. package/dist/lib/useApiData.d.ts.map +1 -0
  215. package/dist/lib/useApiData.js +36 -0
  216. package/dist/lib/useApiData.js.map +1 -0
  217. package/dist/lib/utils.d.ts +3 -0
  218. package/dist/lib/utils.d.ts.map +1 -0
  219. package/dist/lib/utils.js +6 -0
  220. package/dist/lib/utils.js.map +1 -0
  221. package/dist/router/index.d.ts +10 -0
  222. package/dist/router/index.d.ts.map +1 -0
  223. package/dist/router/index.js +61 -0
  224. package/dist/router/index.js.map +1 -0
  225. package/dist/views/CollectionList.d.ts +7 -0
  226. package/dist/views/CollectionList.d.ts.map +1 -0
  227. package/dist/views/CollectionList.js +107 -0
  228. package/dist/views/CollectionList.js.map +1 -0
  229. package/dist/views/Dashboard.d.ts +5 -0
  230. package/dist/views/Dashboard.d.ts.map +1 -0
  231. package/dist/views/Dashboard.js +17 -0
  232. package/dist/views/Dashboard.js.map +1 -0
  233. package/dist/views/DocumentEdit.d.ts +8 -0
  234. package/dist/views/DocumentEdit.d.ts.map +1 -0
  235. package/dist/views/DocumentEdit.js +210 -0
  236. package/dist/views/DocumentEdit.js.map +1 -0
  237. package/dist/views/FormEditor.d.ts +6 -0
  238. package/dist/views/FormEditor.d.ts.map +1 -0
  239. package/dist/views/FormEditor.js +126 -0
  240. package/dist/views/FormEditor.js.map +1 -0
  241. package/dist/views/FormSubmissions.d.ts +6 -0
  242. package/dist/views/FormSubmissions.d.ts.map +1 -0
  243. package/dist/views/FormSubmissions.js +88 -0
  244. package/dist/views/FormSubmissions.js.map +1 -0
  245. package/dist/views/Forms.d.ts +5 -0
  246. package/dist/views/Forms.d.ts.map +1 -0
  247. package/dist/views/Forms.js +24 -0
  248. package/dist/views/Forms.js.map +1 -0
  249. package/dist/views/Login.d.ts +10 -0
  250. package/dist/views/Login.d.ts.map +1 -0
  251. package/dist/views/Login.js +83 -0
  252. package/dist/views/Login.js.map +1 -0
  253. package/dist/views/MediaBrowser.d.ts +5 -0
  254. package/dist/views/MediaBrowser.d.ts.map +1 -0
  255. package/dist/views/MediaBrowser.js +245 -0
  256. package/dist/views/MediaBrowser.js.map +1 -0
  257. package/dist/views/PageEditor.d.ts +6 -0
  258. package/dist/views/PageEditor.d.ts.map +1 -0
  259. package/dist/views/PageEditor.js +74 -0
  260. package/dist/views/PageEditor.js.map +1 -0
  261. package/dist/views/Pages.d.ts +5 -0
  262. package/dist/views/Pages.d.ts.map +1 -0
  263. package/dist/views/Pages.js +127 -0
  264. package/dist/views/Pages.js.map +1 -0
  265. package/dist/views/PostEditor.d.ts +6 -0
  266. package/dist/views/PostEditor.d.ts.map +1 -0
  267. package/dist/views/PostEditor.js +79 -0
  268. package/dist/views/PostEditor.js.map +1 -0
  269. package/dist/views/Posts.d.ts +5 -0
  270. package/dist/views/Posts.d.ts.map +1 -0
  271. package/dist/views/Posts.js +67 -0
  272. package/dist/views/Posts.js.map +1 -0
  273. package/dist/views/Redirects.d.ts +5 -0
  274. package/dist/views/Redirects.d.ts.map +1 -0
  275. package/dist/views/Redirects.js +79 -0
  276. package/dist/views/Redirects.js.map +1 -0
  277. package/dist/views/SEO.d.ts +6 -0
  278. package/dist/views/SEO.d.ts.map +1 -0
  279. package/dist/views/SEO.js +120 -0
  280. package/dist/views/SEO.js.map +1 -0
  281. package/dist/views/Settings.d.ts +5 -0
  282. package/dist/views/Settings.d.ts.map +1 -0
  283. package/dist/views/Settings.js +95 -0
  284. package/dist/views/Settings.js.map +1 -0
  285. package/dist/views/SetupWizard.d.ts +13 -0
  286. package/dist/views/SetupWizard.d.ts.map +1 -0
  287. package/dist/views/SetupWizard.js +68 -0
  288. package/dist/views/SetupWizard.js.map +1 -0
  289. package/dist/views/Users.d.ts +5 -0
  290. package/dist/views/Users.d.ts.map +1 -0
  291. package/dist/views/Users.js +69 -0
  292. package/dist/views/Users.js.map +1 -0
  293. package/package.json +71 -0
  294. package/src/styles/tailwind.css +2 -0
  295. package/src/styles/theme.css +175 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SEO.js","sourceRoot":"","sources":["../../src/views/SEO.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface SettingsProps {
2
+ onNavigate?: (path: string) => void;
3
+ }
4
+ export declare function Settings(_props?: SettingsProps): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=Settings.d.ts.map
@@ -0,0 +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,2CA+XlD"}
@@ -0,0 +1,95 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as Tabs from '@radix-ui/react-tabs';
4
+ import { Bot, Eye, EyeOff, Image, FileCode2, BookOpen, Sparkles, MessageSquare, Loader2, AlertTriangle } from 'lucide-react';
5
+ import { useState, useEffect } from 'react';
6
+ import { toast } from 'sonner';
7
+ import { useApiData } from '../lib/useApiData';
8
+ import { cmsApi } from '../lib/api';
9
+ import { useTheme } from '../components/ThemeProvider';
10
+ export function Settings(_props = {}) {
11
+ const { data, loading, error, refetch } = useApiData('/globals/settings');
12
+ const [siteTitle, setSiteTitle] = useState('My CMS');
13
+ const [tagline, setTagline] = useState('A lightweight content management system');
14
+ const [siteUrl, setSiteUrl] = useState('https://example.com');
15
+ const [language, setLanguage] = useState('en');
16
+ const [timezone, setTimezone] = useState('UTC');
17
+ const [twoFactorEnabled, setTwoFactorEnabled] = useState(false);
18
+ const [sessionTimeout, setSessionTimeout] = useState(false);
19
+ const [ipWhitelist, setIpWhitelist] = useState(false);
20
+ const [activeTab, setActiveTab] = useState('general');
21
+ const [saving, setSaving] = useState(false);
22
+ // AI settings
23
+ const [aiProvider, setAiProvider] = useState('anthropic');
24
+ const [aiApiKey, setAiApiKey] = useState('');
25
+ const [showApiKey, setShowApiKey] = useState(false);
26
+ const [aiAltTags, setAiAltTags] = useState(true);
27
+ const [aiMediaCategorize, setAiMediaCategorize] = useState(false);
28
+ const [aiMetaDescriptions, setAiMetaDescriptions] = useState(true);
29
+ const [aiReadability, setAiReadability] = useState(true);
30
+ const [aiSchema, setAiSchema] = useState(true);
31
+ const [aiBrandVoice, setAiBrandVoice] = useState(false);
32
+ const [aiWritingAssistant, setAiWritingAssistant] = useState(true);
33
+ const [aiContentScoring, setAiContentScoring] = useState(true);
34
+ const [aiTranslation, setAiTranslation] = useState(false);
35
+ useEffect(() => {
36
+ if (data) {
37
+ setSiteTitle(data.siteTitle ?? 'My CMS');
38
+ setTagline(data.tagline ?? '');
39
+ setSiteUrl(data.siteUrl ?? '');
40
+ setLanguage(data.language ?? 'en');
41
+ setTimezone(data.timezone ?? 'UTC');
42
+ setTwoFactorEnabled(data.twoFactorEnabled ?? false);
43
+ setSessionTimeout(data.sessionTimeout ?? false);
44
+ setIpWhitelist(data.ipWhitelist ?? false);
45
+ setAiProvider(data.aiProvider ?? 'anthropic');
46
+ setAiAltTags(data.aiAltTags ?? true);
47
+ setAiMediaCategorize(data.aiMediaCategorize ?? false);
48
+ setAiMetaDescriptions(data.aiMetaDescriptions ?? true);
49
+ setAiReadability(data.aiReadability ?? true);
50
+ setAiSchema(data.aiSchema ?? true);
51
+ setAiBrandVoice(data.aiBrandVoice ?? false);
52
+ setAiWritingAssistant(data.aiWritingAssistant ?? true);
53
+ setAiContentScoring(data.aiContentScoring ?? true);
54
+ setAiTranslation(data.aiTranslation ?? false);
55
+ }
56
+ }, [data]);
57
+ const handleSave = async () => {
58
+ setSaving(true);
59
+ const res = await cmsApi('/globals/settings', {
60
+ method: 'PUT',
61
+ body: JSON.stringify({
62
+ siteTitle, tagline, siteUrl, language, timezone,
63
+ twoFactorEnabled, sessionTimeout, ipWhitelist,
64
+ aiProvider, aiAltTags, aiMediaCategorize, aiMetaDescriptions,
65
+ aiReadability, aiSchema, aiBrandVoice, aiWritingAssistant,
66
+ aiContentScoring, aiTranslation,
67
+ }),
68
+ });
69
+ setSaving(false);
70
+ if (res.error) {
71
+ toast.error(res.error);
72
+ }
73
+ else {
74
+ toast.success('Settings saved successfully!');
75
+ }
76
+ };
77
+ const tabTriggerClass = "px-4 py-2 text-sm font-medium text-gray-600 transition-colors hover:text-gray-900 data-[state=active]:border-b-2 data-[state=active]:border-blue-600 data-[state=active]:text-blue-600";
78
+ if (loading) {
79
+ 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
+ }
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" })] }), _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: () => {
82
+ if (aiApiKey)
83
+ toast.success('API key verified successfully');
84
+ else
85
+ toast.error('Please enter an API key first');
86
+ }, className: "rounded-lg border border-gray-300 px-4 py-2 text-sm transition-colors hover:bg-gray-50", children: "Verify" })] }), _jsx("p", { className: "mt-1 text-xs text-gray-500", children: "Your key is encrypted at rest (AES-256-GCM) and never exposed to the client" })] })] })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx(Image, { className: "w-4 h-4 text-blue-600" }), _jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "Media Intelligence" })] }), _jsx("p", { className: "mb-4 text-xs text-gray-500", children: "AI-powered image and media analysis" }), _jsxs("div", { className: "space-y-4", children: [_jsx(ToggleSetting, { label: "Auto Alt-Tag Generation", description: "Scan uploaded images and automatically generate descriptive alt text for accessibility and SEO", checked: aiAltTags, onChange: setAiAltTags }), _jsx(ToggleSetting, { label: "Media Auto-Categorization", description: "Automatically tag and categorize uploaded media based on visual content analysis", checked: aiMediaCategorize, onChange: setAiMediaCategorize })] })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx(FileCode2, { className: "w-4 h-4 text-purple-600" }), _jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "Content SEO" })] }), _jsx("p", { className: "mb-4 text-xs text-gray-500", children: "AI-driven SEO optimization for your content" }), _jsxs("div", { className: "space-y-4", children: [_jsx(ToggleSetting, { label: "Meta Description Generation", description: "Auto-generate optimized meta descriptions by digesting page content", checked: aiMetaDescriptions, onChange: setAiMetaDescriptions }), _jsx(ToggleSetting, { label: "Readability Analysis", description: "Score content readability (Flesch-Kincaid, Gunning Fog) with improvement suggestions", checked: aiReadability, onChange: setAiReadability }), _jsx(ToggleSetting, { label: "Schema.org Enrichment", description: "Automatically detect content types and generate appropriate Schema.org JSON-LD markup", checked: aiSchema, onChange: setAiSchema })] })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx(MessageSquare, { className: "w-4 h-4 text-green-600" }), _jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "Brand Voice & Writing" })] }), _jsx("p", { className: "mb-4 text-xs text-gray-500", children: "AI that understands and writes in your brand's voice" }), _jsxs("div", { className: "space-y-4", children: [_jsx(ToggleSetting, { label: "Brand Voice Training", description: "Analyze existing content to learn your brand's tone, style, and vocabulary", checked: aiBrandVoice, onChange: setAiBrandVoice }), _jsx(ToggleSetting, { label: "AI Writing Assistant", description: "In-editor AI helper for drafting, rewriting, and expanding content in your brand voice", checked: aiWritingAssistant, onChange: setAiWritingAssistant })] })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx(Sparkles, { className: "w-4 h-4 text-yellow-600" }), _jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "Content Quality" })] }), _jsx("p", { className: "mb-4 text-xs text-gray-500", children: "Automated quality scoring and content intelligence" }), _jsxs("div", { className: "space-y-4", children: [_jsx(ToggleSetting, { label: "Content Scoring", description: "Automatically score content quality based on structure, readability, SEO, and completeness", checked: aiContentScoring, onChange: setAiContentScoring }), _jsx(ToggleSetting, { label: "AI-Powered Translation", description: "Translate content into target languages while preserving tone and meaning", checked: aiTranslation, onChange: setAiTranslation })] })] }), _jsxs("div", { className: "rounded-lg border border-indigo-200 bg-indigo-50 p-4", children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx(BookOpen, { className: "w-4 h-4 text-indigo-600" }), _jsx("h3", { className: "text-sm font-semibold text-indigo-900", children: "AI Usage This Month" })] }), _jsxs("div", { className: "grid grid-cols-3 gap-4 mt-3", children: [_jsxs("div", { children: [_jsx("div", { className: "text-lg font-semibold text-indigo-900", children: "0" }), _jsx("div", { className: "text-xs text-indigo-700", children: "API Calls" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-lg font-semibold text-indigo-900", children: "0" }), _jsx("div", { className: "text-xs text-indigo-700", children: "Tokens Used" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-lg font-semibold text-indigo-900", children: "$0.00" }), _jsx("div", { className: "text-xs text-indigo-700", children: "Estimated Cost" })] })] }), _jsx("p", { className: "mt-2 text-xs text-indigo-600", children: "Add an API key above to start using AI features" })] })] }), _jsx(Tabs.Content, { value: "integrations", 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: "API Keys" }), _jsx("div", { className: "space-y-4", children: _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: [_jsx("input", { type: "text", value: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", readOnly: true, className: "flex-1 rounded-lg border border-gray-300 bg-gray-50 px-3 py-2 text-sm" }), _jsx("button", { type: "button", className: "rounded-lg border border-gray-300 px-4 py-2 text-sm transition-colors hover:bg-gray-50", children: "Regenerate" })] })] }) })] }) })] }), _jsx("div", { className: "mt-6 flex justify-end", children: _jsx("button", { type: "button", onClick: handleSave, disabled: saving, className: "rounded-lg bg-blue-600 px-6 py-2 text-sm text-white transition-colors hover:bg-blue-700 disabled:opacity-50", children: saving ? 'Saving...' : 'Save Changes' }) })] }));
87
+ }
88
+ function ThemeSelect() {
89
+ const { theme, setTheme } = useTheme();
90
+ return (_jsxs("select", { value: theme, onChange: (e) => setTheme(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: "light", children: "Light" }), _jsx("option", { value: "dark", children: "Dark" }), _jsx("option", { value: "system", children: "Auto (System)" })] }));
91
+ }
92
+ function ToggleSetting({ label, description, checked, onChange, }) {
93
+ return (_jsxs("div", { className: "flex items-center justify-between gap-4", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "text-sm font-medium text-gray-700", children: label }), _jsx("p", { className: "mt-0.5 text-xs text-gray-500", children: description })] }), _jsx("button", { type: "button", onClick: () => onChange(!checked), className: `relative h-6 w-11 shrink-0 rounded-full transition-colors ${checked ? 'bg-blue-600' : 'bg-gray-300'}`, "aria-pressed": checked, children: _jsx("span", { className: `absolute top-0.5 block h-5 w-5 rounded-full bg-white transition-transform ${checked ? 'translate-x-[22px]' : 'translate-x-0.5'}` }) })] }));
94
+ }
95
+ //# sourceMappingURL=Settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/views/Settings.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface SetupWizardProps {
2
+ onComplete: (data: {
3
+ name: string;
4
+ email: string;
5
+ password: string;
6
+ }) => Promise<{
7
+ success: boolean;
8
+ error?: string;
9
+ }>;
10
+ siteName?: string;
11
+ }
12
+ export declare function SetupWizard({ onComplete, siteName }: SetupWizardProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=SetupWizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetupWizard.d.ts","sourceRoot":"","sources":["../../src/views/SetupWizard.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgBD,wBAAgB,WAAW,CAAC,EAAE,UAAU,EAAE,QAAwB,EAAE,EAAE,gBAAgB,2CAsLrF"}
@@ -0,0 +1,68 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { Shield, Eye, EyeOff, CheckCircle2, AlertTriangle } from 'lucide-react';
5
+ function passwordStrength(pw) {
6
+ let score = 0;
7
+ if (pw.length >= 12)
8
+ score++;
9
+ if (pw.length >= 16)
10
+ score++;
11
+ if (/[A-Z]/.test(pw))
12
+ score++;
13
+ if (/[a-z]/.test(pw))
14
+ score++;
15
+ if (/\d/.test(pw))
16
+ score++;
17
+ if (/[^a-zA-Z0-9]/.test(pw))
18
+ score++;
19
+ if (score <= 2)
20
+ return { score, label: 'Weak', color: 'bg-red-500' };
21
+ if (score <= 4)
22
+ return { score, label: 'Fair', color: 'bg-yellow-500' };
23
+ return { score, label: 'Strong', color: 'bg-green-500' };
24
+ }
25
+ export function SetupWizard({ onComplete, siteName = 'Actuate CMS' }) {
26
+ const [name, setName] = useState('');
27
+ const [email, setEmail] = useState('');
28
+ const [password, setPassword] = useState('');
29
+ const [confirmPassword, setConfirmPassword] = useState('');
30
+ const [showPassword, setShowPassword] = useState(false);
31
+ const [submitting, setSubmitting] = useState(false);
32
+ const [error, setError] = useState('');
33
+ const [done, setDone] = useState(false);
34
+ const strength = passwordStrength(password);
35
+ const passwordsMatch = password === confirmPassword;
36
+ const canSubmit = name.trim() && email.trim() && password.length >= 12 && passwordsMatch && !submitting;
37
+ const handleSubmit = async (e) => {
38
+ e.preventDefault();
39
+ if (!canSubmit)
40
+ return;
41
+ setError('');
42
+ setSubmitting(true);
43
+ try {
44
+ const result = await onComplete({
45
+ name: name.trim(),
46
+ email: email.trim(),
47
+ password,
48
+ });
49
+ if (result.success) {
50
+ setDone(true);
51
+ }
52
+ else {
53
+ setError(result.error ?? 'Failed to create admin account');
54
+ }
55
+ }
56
+ catch (err) {
57
+ setError(err instanceof Error ? err.message : 'An unexpected error occurred');
58
+ }
59
+ finally {
60
+ setSubmitting(false);
61
+ }
62
+ };
63
+ if (done) {
64
+ return (_jsx("div", { className: "min-h-screen flex items-center justify-center bg-gray-50 px-4", children: _jsxs("div", { className: "w-full max-w-md text-center", children: [_jsx("div", { className: "mx-auto mb-6 w-16 h-16 bg-green-100 rounded-full flex items-center justify-center", children: _jsx(CheckCircle2, { className: "w-8 h-8 text-green-600" }) }), _jsx("h1", { className: "text-2xl font-bold text-gray-900 mb-2", children: "Setup Complete" }), _jsx("p", { className: "text-gray-600 mb-6", children: "Your admin account has been created. You can now sign in to manage your content." }), _jsx("button", { onClick: () => window.location.reload(), className: "w-full px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors font-medium", children: "Go to Login" })] }) }));
65
+ }
66
+ return (_jsx("div", { className: "min-h-screen flex items-center justify-center bg-gray-50 px-4", children: _jsxs("div", { className: "w-full max-w-md", children: [_jsxs("div", { className: "text-center mb-8", children: [_jsx("div", { className: "mx-auto mb-4 w-14 h-14 bg-blue-600 rounded-xl flex items-center justify-center", children: _jsx(Shield, { className: "w-7 h-7 text-white" }) }), _jsxs("h1", { className: "text-2xl font-bold text-gray-900", children: ["Welcome to ", siteName] }), _jsx("p", { className: "text-gray-600 mt-2", children: "Create your admin account to get started" })] }), _jsxs("form", { onSubmit: handleSubmit, className: "bg-white rounded-xl border border-gray-200 p-6 shadow-sm space-y-5", children: [error && (_jsxs("div", { className: "flex items-start gap-3 p-3 bg-red-50 border border-red-200 rounded-lg", children: [_jsx(AlertTriangle, { className: "w-5 h-5 text-red-600 mt-0.5 shrink-0" }), _jsx("p", { className: "text-sm text-red-800", children: error })] })), _jsxs("div", { children: [_jsx("label", { htmlFor: "setup-name", className: "block text-sm font-medium text-gray-700 mb-1.5", children: "Full Name" }), _jsx("input", { id: "setup-name", type: "text", value: name, onChange: (e) => setName(e.target.value), placeholder: "Jane Smith", className: "w-full px-3 py-2.5 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500", required: true, autoFocus: true, autoComplete: "name" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "setup-email", className: "block text-sm font-medium text-gray-700 mb-1.5", children: "Email Address" }), _jsx("input", { id: "setup-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), placeholder: "admin@example.com", className: "w-full px-3 py-2.5 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500", required: true, autoComplete: "email" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "setup-password", className: "block text-sm font-medium text-gray-700 mb-1.5", children: "Password" }), _jsxs("div", { className: "relative", children: [_jsx("input", { id: "setup-password", type: showPassword ? 'text' : 'password', value: password, onChange: (e) => setPassword(e.target.value), placeholder: "Minimum 12 characters", className: "w-full px-3 py-2.5 pr-10 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500", required: true, minLength: 12, autoComplete: "new-password" }), _jsx("button", { type: "button", onClick: () => setShowPassword(!showPassword), className: "absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600", tabIndex: -1, children: showPassword ? _jsx(EyeOff, { className: "w-4 h-4" }) : _jsx(Eye, { className: "w-4 h-4" }) })] }), password && (_jsx("div", { className: "mt-2", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "flex-1 h-1.5 bg-gray-200 rounded-full overflow-hidden", children: _jsx("div", { className: `h-full rounded-full transition-all ${strength.color}`, style: { width: `${(strength.score / 6) * 100}%` } }) }), _jsx("span", { className: "text-xs text-gray-600", children: strength.label })] }) }))] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "setup-confirm", className: "block text-sm font-medium text-gray-700 mb-1.5", children: "Confirm Password" }), _jsx("input", { id: "setup-confirm", type: showPassword ? 'text' : 'password', value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), placeholder: "Re-enter your password", className: `w-full px-3 py-2.5 border rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 ${confirmPassword && !passwordsMatch ? 'border-red-300' : 'border-gray-300'}`, required: true, autoComplete: "new-password" }), confirmPassword && !passwordsMatch && (_jsx("p", { className: "text-xs text-red-600 mt-1", children: "Passwords do not match" }))] }), _jsx("button", { type: "submit", disabled: !canSubmit, className: "w-full py-2.5 bg-blue-600 text-white rounded-lg font-medium hover:bg-blue-700 transition-colors disabled:opacity-50 disabled:cursor-not-allowed", children: submitting ? 'Creating Account...' : 'Create Admin Account' }), _jsx("p", { className: "text-xs text-gray-500 text-center", children: "This form is only available during initial setup. Once an admin account exists, it will be replaced by the login screen." })] })] }) }));
67
+ }
68
+ //# sourceMappingURL=SetupWizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetupWizard.js","sourceRoot":"","sources":["../../src/views/SetupWizard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAOhF,SAAS,gBAAgB,CAAC,EAAU;IAClC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;QAAE,KAAK,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;QAAE,KAAK,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,KAAK,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,KAAK,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,KAAK,EAAE,CAAC;IAC3B,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,KAAK,EAAE,CAAC;IAErC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACrE,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IACxE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,UAAU,EAAE,QAAQ,GAAG,aAAa,EAAoB;IACpF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,QAAQ,KAAK,eAAe,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,IAAI,cAAc,IAAI,CAAC,UAAU,CAAC;IAExG,MAAM,YAAY,GAAG,KAAK,EAAE,CAAY,EAAE,EAAE;QAC1C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,aAAa,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;gBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;gBACnB,QAAQ;aACT,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,gCAAgC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAChF,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,cAAK,SAAS,EAAC,+DAA+D,YAC5E,eAAK,SAAS,EAAC,6BAA6B,aAC1C,cAAK,SAAS,EAAC,mFAAmF,YAChG,KAAC,YAAY,IAAC,SAAS,EAAC,wBAAwB,GAAG,GAC/C,EACN,aAAI,SAAS,EAAC,uCAAuC,+BAAoB,EACzE,YAAG,SAAS,EAAC,oBAAoB,iGAE7B,EACJ,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EACvC,SAAS,EAAC,oGAAoG,4BAGvG,IACL,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,+DAA+D,YAC5E,eAAK,SAAS,EAAC,iBAAiB,aAC9B,eAAK,SAAS,EAAC,kBAAkB,aAC/B,cAAK,SAAS,EAAC,gFAAgF,YAC7F,KAAC,MAAM,IAAC,SAAS,EAAC,oBAAoB,GAAG,GACrC,EACN,cAAI,SAAS,EAAC,kCAAkC,4BAAa,QAAQ,IAAM,EAC3E,YAAG,SAAS,EAAC,oBAAoB,yDAA6C,IAC1E,EAEN,gBAAM,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,oEAAoE,aACzG,KAAK,IAAI,CACR,eAAK,SAAS,EAAC,uEAAuE,aACpF,KAAC,aAAa,IAAC,SAAS,EAAC,sCAAsC,GAAG,EAClE,YAAG,SAAS,EAAC,sBAAsB,YAAE,KAAK,GAAK,IAC3C,CACP,EAED,0BACE,gBAAO,OAAO,EAAC,YAAY,EAAC,SAAS,EAAC,gDAAgD,0BAAkB,EACxG,gBACE,EAAE,EAAC,YAAY,EACf,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,WAAW,EAAC,YAAY,EACxB,SAAS,EAAC,wIAAwI,EAClJ,QAAQ,QACR,SAAS,QACT,YAAY,EAAC,MAAM,GACnB,IACE,EAEN,0BACE,gBAAO,OAAO,EAAC,aAAa,EAAC,SAAS,EAAC,gDAAgD,8BAAsB,EAC7G,gBACE,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAC,mBAAmB,EAC/B,SAAS,EAAC,wIAAwI,EAClJ,QAAQ,QACR,YAAY,EAAC,OAAO,GACpB,IACE,EAEN,0BACE,gBAAO,OAAO,EAAC,gBAAgB,EAAC,SAAS,EAAC,gDAAgD,yBAAiB,EAC3G,eAAK,SAAS,EAAC,UAAU,aACvB,gBACE,EAAE,EAAC,gBAAgB,EACnB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EACxC,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,WAAW,EAAC,uBAAuB,EACnC,SAAS,EAAC,8IAA8I,EACxJ,QAAQ,QACR,SAAS,EAAE,EAAE,EACb,YAAY,EAAC,cAAc,GAC3B,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,EAC7C,SAAS,EAAC,6EAA6E,EACvF,QAAQ,EAAE,CAAC,CAAC,YAEX,YAAY,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,GACrE,IACL,EACL,QAAQ,IAAI,CACX,cAAK,SAAS,EAAC,MAAM,YACnB,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,uDAAuD,YACpE,cACE,SAAS,EAAE,sCAAsC,QAAQ,CAAC,KAAK,EAAE,EACjE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAClD,GACE,EACN,eAAM,SAAS,EAAC,uBAAuB,YAAE,QAAQ,CAAC,KAAK,GAAQ,IAC3D,GACF,CACP,IACG,EAEN,0BACE,gBAAO,OAAO,EAAC,eAAe,EAAC,SAAS,EAAC,gDAAgD,iCAAyB,EAClH,gBACE,EAAE,EAAC,eAAe,EAClB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EACxC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACnD,WAAW,EAAC,wBAAwB,EACpC,SAAS,EAAE,0HACT,eAAe,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAC1D,EAAE,EACF,QAAQ,QACR,YAAY,EAAC,cAAc,GAC3B,EACD,eAAe,IAAI,CAAC,cAAc,IAAI,CACrC,YAAG,SAAS,EAAC,2BAA2B,uCAA2B,CACpE,IACG,EAEN,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,SAAS,EACpB,SAAS,EAAC,iJAAiJ,YAE1J,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,GACrD,EAET,YAAG,SAAS,EAAC,mCAAmC,yIAE5C,IACC,IACH,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface UsersProps {
2
+ onNavigate?: (path: string) => void;
3
+ }
4
+ export declare function Users({ onNavigate }: UsersProps): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=Users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Users.d.ts","sourceRoot":"","sources":["../../src/views/Users.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,UAAU,2CAyQ/C"}
@@ -0,0 +1,69 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as Dialog from '@radix-ui/react-dialog';
4
+ import { Pencil, Trash2, UserPlus, Search, ArrowUpDown, ArrowUp, ArrowDown, Loader2, AlertTriangle } from 'lucide-react';
5
+ import { useState, useMemo } from 'react';
6
+ import { toast } from 'sonner';
7
+ import { sortByRelevance, toggleSort } from '../lib/search';
8
+ import { useApiData } from '../lib/useApiData';
9
+ import { cmsApi } from '../lib/api';
10
+ export function Users({ onNavigate }) {
11
+ const { data, loading, error, refetch } = useApiData('/users');
12
+ const [showInviteDialog, setShowInviteDialog] = useState(false);
13
+ const [inviteEmail, setInviteEmail] = useState('');
14
+ const [inviteRole, setInviteRole] = useState('editor');
15
+ const [searchQuery, setSearchQuery] = useState('');
16
+ const [filterRole, setFilterRole] = useState('all');
17
+ const [sortConfig, setSortConfig] = useState(null);
18
+ const users = data ?? [];
19
+ const filteredAndSorted = useMemo(() => {
20
+ let results = users.filter((user) => {
21
+ const matchesSearch = user.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
22
+ user.email.toLowerCase().includes(searchQuery.toLowerCase());
23
+ const matchesRole = filterRole === 'all' || user.role.toLowerCase() === filterRole.toLowerCase();
24
+ return matchesSearch && matchesRole;
25
+ });
26
+ if (searchQuery.trim()) {
27
+ results = sortByRelevance(results, searchQuery, (u) => [u.name, u.email, u.role]);
28
+ }
29
+ else if (sortConfig) {
30
+ results = [...results].sort((a, b) => {
31
+ const aVal = a[sortConfig.key] ?? '';
32
+ const bVal = b[sortConfig.key] ?? '';
33
+ const cmp = String(aVal).localeCompare(String(bVal));
34
+ return sortConfig.direction === 'asc' ? cmp : -cmp;
35
+ });
36
+ }
37
+ return results;
38
+ }, [users, searchQuery, filterRole, sortConfig]);
39
+ const handleInvite = (e) => {
40
+ e.preventDefault();
41
+ toast.success(`Invitation sent to ${inviteEmail}`);
42
+ setShowInviteDialog(false);
43
+ setInviteEmail('');
44
+ setInviteRole('editor');
45
+ };
46
+ const handleDelete = async (userId) => {
47
+ const res = await cmsApi(`/users/${userId}`, { method: 'DELETE' });
48
+ if (res.error) {
49
+ toast.error(res.error);
50
+ }
51
+ else {
52
+ toast.success('User removed');
53
+ refetch();
54
+ }
55
+ };
56
+ function SortHeader({ label, sortKey }) {
57
+ const active = sortConfig?.key === sortKey;
58
+ return (_jsxs("button", { type: "button", onClick: () => setSortConfig(toggleSort(sortConfig, sortKey)), className: "flex items-center gap-1 text-xs font-medium text-gray-700 hover:text-gray-900 transition-colors", children: [label, active ? (sortConfig.direction === 'asc' ? _jsx(ArrowUp, { className: "w-3 h-3" }) : _jsx(ArrowDown, { className: "w-3 h-3" })) : (_jsx(ArrowUpDown, { className: "w-3 h-3 text-gray-400" }))] }));
59
+ }
60
+ if (loading) {
61
+ 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" }) }));
62
+ }
63
+ 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: "Users" }), _jsxs("p", { className: "text-sm text-gray-600", children: [filteredAndSorted.length, " total users"] })] }), _jsxs("button", { type: "button", onClick: () => setShowInviteDialog(true), className: "flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-700", children: [_jsx(UserPlus, { className: "h-4 w-4" }), "Invite User"] })] }), _jsx("div", { className: "bg-white rounded-lg border border-gray-200 mb-4", children: _jsxs("div", { className: "p-3 flex flex-col sm:flex-row gap-3", children: [_jsxs("div", { className: "relative flex-1", children: [_jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400" }), _jsx("input", { type: "text", placeholder: "Search users by name or email...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), className: "w-full pl-9 pr-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" })] }), _jsxs("select", { value: filterRole, onChange: (e) => setFilterRole(e.target.value), className: "px-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "all", children: "All Roles" }), _jsx("option", { value: "admin", children: "Admin" }), _jsx("option", { value: "editor", children: "Editor" }), _jsx("option", { value: "author", children: "Author" }), _jsx("option", { value: "client", children: "Client" })] })] }) }), filteredAndSorted.length === 0 && !loading ? (_jsxs("div", { className: "flex flex-col items-center justify-center py-16 text-center", children: [_jsx("div", { className: "w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center mb-4", children: _jsx(UserPlus, { className: "w-6 h-6 text-gray-400" }) }), _jsx("h3", { className: "text-sm font-medium text-gray-900 mb-1", children: "No users yet" }), _jsx("p", { className: "text-sm text-gray-500", children: "Invite your first user to get started." })] })) : (_jsx("div", { className: "rounded-lg border border-gray-200 bg-white", children: _jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { className: "border-b border-gray-200 bg-gray-50", children: _jsxs("tr", { children: [_jsx("th", { className: "px-4 py-2 text-left", children: _jsx(SortHeader, { label: "User", sortKey: "name" }) }), _jsx("th", { className: "px-4 py-2 text-left", children: _jsx(SortHeader, { label: "Role", sortKey: "role" }) }), _jsx("th", { className: "px-4 py-2 text-left", children: _jsx(SortHeader, { label: "Status", sortKey: "status" }) }), _jsx("th", { className: "px-4 py-2 text-left", children: _jsx(SortHeader, { label: "Last Active", sortKey: "lastLogin" }) }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Actions" })] }) }), _jsx("tbody", { className: "divide-y divide-gray-200", children: filteredAndSorted.map((user) => (_jsxs("tr", { className: "transition-colors hover:bg-gray-50", children: [_jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-linear-to-br from-blue-500 to-purple-600 text-sm font-medium text-white", children: user.name.charAt(0) }), _jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium text-gray-900", children: user.name }), _jsx("div", { className: "text-xs text-gray-600", children: user.email })] })] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("span", { className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${user.role === 'Admin'
64
+ ? 'bg-purple-100 text-purple-800'
65
+ : user.role === 'Editor'
66
+ ? 'bg-blue-100 text-blue-800'
67
+ : 'bg-gray-100 text-gray-800'}`, children: user.role }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("span", { className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${user.status === 'Active' ? 'bg-green-100 text-green-800' : 'bg-gray-100 text-gray-800'}`, children: user.status }) }), _jsx("td", { className: "px-4 py-3 text-sm text-gray-600", children: user.lastLogin }), _jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("button", { type: "button", onClick: () => onNavigate?.(`/users/${user.id}`), className: "rounded p-1.5 transition-colors hover:bg-gray-100", "aria-label": `Edit ${user.name}`, children: _jsx(Pencil, { className: "h-4 w-4 text-gray-600" }) }), _jsx("button", { type: "button", onClick: () => handleDelete(user.id), className: "rounded p-1.5 transition-colors hover:bg-gray-100", "aria-label": `Remove ${user.name}`, children: _jsx(Trash2, { className: "h-4 w-4 text-red-600" }) })] }) })] }, user.id))) })] }) }) })), _jsx(Dialog.Root, { open: showInviteDialog, onOpenChange: setShowInviteDialog, children: _jsxs(Dialog.Portal, { children: [_jsx(Dialog.Overlay, { className: "fixed inset-0 z-50 bg-black/50" }), _jsxs(Dialog.Content, { className: "fixed left-1/2 top-1/2 z-50 w-full max-w-md -translate-x-1/2 -translate-y-1/2 rounded-lg bg-white p-6 shadow-lg", children: [_jsx(Dialog.Title, { className: "mb-4 text-lg font-semibold text-gray-900", children: "Invite User" }), _jsxs("form", { onSubmit: handleInvite, className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Email Address" }), _jsx("input", { type: "email", value: inviteEmail, onChange: (e) => setInviteEmail(e.target.value), placeholder: "user@example.com", 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", required: true })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Role" }), _jsxs("select", { value: inviteRole, onChange: (e) => setInviteRole(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: "viewer", children: "Viewer" }), _jsx("option", { value: "editor", children: "Editor" }), _jsx("option", { value: "admin", children: "Admin" })] })] }), _jsxs("div", { className: "flex items-center justify-end gap-3 pt-4", children: [_jsx(Dialog.Close, { asChild: true, children: _jsx("button", { type: "button", className: "rounded-lg border border-gray-300 px-4 py-2 text-sm transition-colors hover:bg-gray-50", children: "Cancel" }) }), _jsx("button", { type: "submit", className: "rounded-lg bg-blue-600 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-700", children: "Send Invite" })] })] })] })] }) })] }));
68
+ }
69
+ //# sourceMappingURL=Users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/views/Users.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@actuate-media/cms-admin",
3
+ "version": "0.1.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/actuate-media/actuatecms.git",
7
+ "directory": "packages/cms-admin"
8
+ },
9
+ "publishConfig": {
10
+ "access": "restricted"
11
+ },
12
+ "type": "module",
13
+ "main": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./styles": "./src/styles/tailwind.css",
22
+ "./styles/theme.css": "./src/styles/theme.css"
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "src/styles"
27
+ ],
28
+ "scripts": {
29
+ "build": "tsc --project tsconfig.json",
30
+ "type-check": "tsc --noEmit",
31
+ "clean": "rm -rf dist .turbo"
32
+ },
33
+ "dependencies": {
34
+ "@actuate-media/cms-core": "workspace:*",
35
+ "@dnd-kit/core": "^6.3.1",
36
+ "@dnd-kit/sortable": "^10.0.0",
37
+ "@dnd-kit/utilities": "^3.2.2",
38
+ "@radix-ui/react-accordion": "^1.2.0",
39
+ "@radix-ui/react-dialog": "^1.1.0",
40
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
41
+ "@radix-ui/react-switch": "^1.1.0",
42
+ "@radix-ui/react-tabs": "^1.1.0",
43
+ "@tiptap/extension-code-block-lowlight": "^2.11.0",
44
+ "@tiptap/extension-horizontal-rule": "^2.11.0",
45
+ "@tiptap/extension-image": "^2.11.0",
46
+ "@tiptap/extension-link": "^2.11.0",
47
+ "@tiptap/extension-placeholder": "^2.11.0",
48
+ "@tiptap/extension-table": "^2.11.0",
49
+ "@tiptap/extension-table-cell": "^2.11.0",
50
+ "@tiptap/extension-table-header": "^2.11.0",
51
+ "@tiptap/extension-table-row": "^2.11.0",
52
+ "@tiptap/extension-text-align": "^2.11.0",
53
+ "@tiptap/extension-underline": "^2.11.0",
54
+ "@tiptap/react": "^2.11.0",
55
+ "@tiptap/starter-kit": "^2.11.0",
56
+ "clsx": "^2.1.1",
57
+ "cmdk": "^1.1.1",
58
+ "lowlight": "^3.0.0",
59
+ "lucide-react": "^1.7.0",
60
+ "react": "^19.2.0",
61
+ "react-dom": "^19.2.0",
62
+ "sonner": "^2.0.7",
63
+ "tailwind-merge": "^3.5.0"
64
+ },
65
+ "devDependencies": {
66
+ "@types/react": "^19.0.0",
67
+ "@types/react-dom": "^19.0.0",
68
+ "tailwindcss": "^4.0.0",
69
+ "typescript": "^5.7.0"
70
+ }
71
+ }
@@ -0,0 +1,2 @@
1
+ @import "tailwindcss";
2
+ @import "./theme.css";