@svadmin/ui 0.68.1 → 0.69.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 (315) hide show
  1. package/README.md +52 -0
  2. package/dist/app.css +7627 -853
  3. package/dist/app.theme.css +7676 -850
  4. package/dist/components/AboutSettings.svelte +8 -8
  5. package/dist/components/ActivityFeed.svelte +25 -40
  6. package/dist/components/AdminApp.svelte +14 -14
  7. package/dist/components/AnomalyBadge.svelte +6 -5
  8. package/dist/components/ApiSettings.svelte +8 -8
  9. package/dist/components/AppearanceSettings.svelte +13 -13
  10. package/dist/components/ApprovalActionCard.svelte +35 -35
  11. package/dist/components/AuditLogDrawer.svelte +17 -17
  12. package/dist/components/AuditLogViewer.svelte +42 -42
  13. package/dist/components/AuthPageShell.svelte +11 -11
  14. package/dist/components/AutoForm.svelte +28 -28
  15. package/dist/components/AutoSaveIndicator.svelte +8 -8
  16. package/dist/components/AutoTable.svelte +141 -141
  17. package/dist/components/BatchActionBar.svelte +15 -15
  18. package/dist/components/Breadcrumbs.svelte +4 -4
  19. package/dist/components/CancelTaskButton.svelte +2 -2
  20. package/dist/components/CanvasAnnotation.svelte +27 -27
  21. package/dist/components/Cascader.svelte +20 -20
  22. package/dist/components/CatchAllNavigate.svelte +2 -2
  23. package/dist/components/ColumnHeaderFilter.svelte +21 -21
  24. package/dist/components/ColumnSettings.svelte +20 -20
  25. package/dist/components/ComboboxField.svelte +17 -17
  26. package/dist/components/CommandPalette.svelte +23 -23
  27. package/dist/components/ConfigErrorScreen.svelte +27 -27
  28. package/dist/components/ConfirmDialog.svelte +1 -1
  29. package/dist/components/CreateInferencer.svelte +1 -1
  30. package/dist/components/CreatePage.svelte +1 -1
  31. package/dist/components/DecisionTable.svelte +39 -39
  32. package/dist/components/DetailDrawer.svelte +9 -9
  33. package/dist/components/DevTools.svelte +96 -96
  34. package/dist/components/DraggableGrid.svelte +6 -6
  35. package/dist/components/DraggableHeader.svelte +1 -1
  36. package/dist/components/DraggableRowTable.svelte +13 -13
  37. package/dist/components/DrawerForm.svelte +10 -10
  38. package/dist/components/DynamicFormList.svelte +19 -19
  39. package/dist/components/EditInferencer.svelte +3 -3
  40. package/dist/components/EditInferencer.svelte.d.ts +1 -1
  41. package/dist/components/EditPage.svelte +1 -1
  42. package/dist/components/EditableTable.svelte +30 -30
  43. package/dist/components/EmptyState.svelte +6 -6
  44. package/dist/components/ErrorBoundary.svelte +8 -8
  45. package/dist/components/ErrorComponent.svelte +5 -5
  46. package/dist/components/FieldRenderer.svelte +30 -30
  47. package/dist/components/FilterBuilder.svelte +31 -31
  48. package/dist/components/FilterDropdown.svelte +26 -26
  49. package/dist/components/ForgotPasswordPage.svelte +14 -14
  50. package/dist/components/GanttChart.svelte +30 -30
  51. package/dist/components/Header.svelte +13 -13
  52. package/dist/components/ImageCropper.svelte +21 -21
  53. package/dist/components/ImportWizard.svelte +49 -49
  54. package/dist/components/InferencerPanel.svelte +35 -35
  55. package/dist/components/InfiniteList.svelte +8 -8
  56. package/dist/components/InlineEdit.svelte +5 -5
  57. package/dist/components/IntegrationsSettings.svelte +5 -5
  58. package/dist/components/JsonSchemaForm.svelte +18 -18
  59. package/dist/components/KanbanBoard.svelte +30 -30
  60. package/dist/components/KeyboardShortcuts.svelte +8 -8
  61. package/dist/components/Layout.svelte +22 -22
  62. package/dist/components/LazyPage.svelte +4 -4
  63. package/dist/components/ListInferencer.svelte +2 -2
  64. package/dist/components/ListPage.svelte +1 -1
  65. package/dist/components/LiveIndicator.svelte +11 -11
  66. package/dist/components/LoginPage.svelte +27 -27
  67. package/dist/components/MasterDetailView.svelte +24 -24
  68. package/dist/components/MediaLibraryModal.svelte +37 -37
  69. package/dist/components/MentionsInput.svelte +11 -11
  70. package/dist/components/MetricStrip.svelte +18 -58
  71. package/dist/components/ModalForm.svelte +8 -8
  72. package/dist/components/MultiTabKeepAlive.svelte +14 -14
  73. package/dist/components/NavigateToResource.svelte +3 -3
  74. package/dist/components/NotificationsSettings.svelte +4 -4
  75. package/dist/components/OfflineSyncBanner.svelte +28 -28
  76. package/dist/components/PageHeader.svelte +12 -13
  77. package/dist/components/PageSkeleton.svelte +26 -26
  78. package/dist/components/PasswordInput.svelte +11 -11
  79. package/dist/components/PdfDocumentViewer.svelte +45 -45
  80. package/dist/components/PermissionMatrix.svelte +48 -48
  81. package/dist/components/PivotTable.svelte +21 -21
  82. package/dist/components/PresenceAvatarGroup.svelte +11 -11
  83. package/dist/components/PrintableBill.svelte +43 -43
  84. package/dist/components/ProfilePage.svelte +34 -34
  85. package/dist/components/RecordDetailDrawer.svelte +15 -15
  86. package/dist/components/RegisterPage.svelte +9 -9
  87. package/dist/components/ResourceInferencer.svelte +3 -3
  88. package/dist/components/ResourceOperationsPage.svelte +44 -44
  89. package/dist/components/RetryTaskButton.svelte +2 -2
  90. package/dist/components/RolesSettings.svelte +4 -4
  91. package/dist/components/RowActions.svelte +10 -10
  92. package/dist/components/SecuritySettings.svelte +8 -8
  93. package/dist/components/SensitiveDataMask.svelte +8 -8
  94. package/dist/components/SettingsPage.svelte +17 -17
  95. package/dist/components/ShowInferencer.svelte +3 -3
  96. package/dist/components/ShowInferencer.svelte.d.ts +1 -1
  97. package/dist/components/ShowPage.svelte +24 -24
  98. package/dist/components/Sidebar.svelte +63 -63
  99. package/dist/components/SidebarItem.svelte +35 -35
  100. package/dist/components/SignaturePad.svelte +16 -16
  101. package/dist/components/SplitPaneLayout.svelte +10 -10
  102. package/dist/components/SpreadsheetView.svelte +35 -35
  103. package/dist/components/StatsCard.svelte +12 -25
  104. package/dist/components/StepForm.svelte +23 -23
  105. package/dist/components/StepsForm.svelte +17 -17
  106. package/dist/components/SvadminLogo.svelte +1 -1
  107. package/dist/components/SystemPageShell.svelte +6 -6
  108. package/dist/components/TableSummary.svelte +8 -8
  109. package/dist/components/TaskDetails.svelte +29 -29
  110. package/dist/components/TaskList.svelte +17 -17
  111. package/dist/components/TaskProgressBar.svelte +4 -4
  112. package/dist/components/TaskQueueDrawer.svelte +44 -44
  113. package/dist/components/TaskStatusBadge.svelte +5 -5
  114. package/dist/components/TenantSwitcher.svelte +17 -17
  115. package/dist/components/ThemedTitle.svelte +4 -4
  116. package/dist/components/Toast.svelte +2 -2
  117. package/dist/components/Transfer.svelte +40 -40
  118. package/dist/components/TreeSelect.svelte +32 -32
  119. package/dist/components/TreeTable.svelte +28 -28
  120. package/dist/components/TwoFactorAuthPage.svelte +15 -15
  121. package/dist/components/UndoableNotification.svelte +10 -10
  122. package/dist/components/UpdatePasswordPage.svelte +6 -6
  123. package/dist/components/VersionDiffViewer.svelte +38 -38
  124. package/dist/components/VirtualTable.svelte +9 -9
  125. package/dist/components/Watermark.svelte +2 -2
  126. package/dist/components/account/CompanyProfilePage.svelte +4 -4
  127. package/dist/components/account/GetStartedPage.svelte +19 -19
  128. package/dist/components/account/ImportMembersPage.svelte +42 -42
  129. package/dist/components/account/MembersStarterPage.svelte +18 -18
  130. package/dist/components/account/SecurityLogPage.svelte +1 -1
  131. package/dist/components/account/SettingsEnterprisePage.svelte +7 -7
  132. package/dist/components/account/SettingsPlainPage.svelte +3 -3
  133. package/dist/components/account/SettingsSidebarPage.svelte +5 -5
  134. package/dist/components/account/TeamMembersPage.svelte +2 -2
  135. package/dist/components/account/UserProfilePage.svelte +3 -3
  136. package/dist/components/buttons/CloneButton.svelte +2 -2
  137. package/dist/components/buttons/CreateButton.svelte +2 -2
  138. package/dist/components/buttons/DeleteButton.svelte +4 -4
  139. package/dist/components/buttons/EditButton.svelte +2 -2
  140. package/dist/components/buttons/ExportButton.svelte +2 -2
  141. package/dist/components/buttons/ImportButton.svelte +3 -3
  142. package/dist/components/buttons/ListButton.svelte +2 -2
  143. package/dist/components/buttons/RefreshButton.svelte +2 -2
  144. package/dist/components/buttons/SaveButton.svelte +3 -3
  145. package/dist/components/buttons/ShowButton.svelte +2 -2
  146. package/dist/components/charts/BarChart.svelte +3 -3
  147. package/dist/components/charts/LineChart.svelte +3 -3
  148. package/dist/components/charts/PieChart.svelte +7 -7
  149. package/dist/components/content/ApiKeyList.svelte +12 -12
  150. package/dist/components/content/AuditTimeline.svelte +18 -18
  151. package/dist/components/content/ContentPageHeader.svelte +9 -9
  152. package/dist/components/content/ContentPageShell.svelte +2 -2
  153. package/dist/components/content/DataState.svelte +8 -8
  154. package/dist/components/content/DescriptionList.svelte +25 -25
  155. package/dist/components/content/FeedbackNotice.svelte +11 -11
  156. package/dist/components/content/FileList.svelte +2 -2
  157. package/dist/components/content/FilterToolbar.svelte +15 -15
  158. package/dist/components/content/ImportDropzone.svelte +6 -6
  159. package/dist/components/content/IntegrationCard.svelte +4 -4
  160. package/dist/components/content/MediaThumbnail.svelte +16 -16
  161. package/dist/components/content/MemberList.svelte +2 -2
  162. package/dist/components/content/MetricBlock.svelte +7 -7
  163. package/dist/components/content/NetworkTable.svelte +1 -1
  164. package/dist/components/content/NetworkUserCard.svelte +12 -12
  165. package/dist/components/content/OtpInput.svelte +2 -2
  166. package/dist/components/content/PageToolbar.svelte +3 -3
  167. package/dist/components/content/ProjectCard.svelte +11 -11
  168. package/dist/components/content/SectionHeader.svelte +5 -5
  169. package/dist/components/content/SecurityEventTable.svelte +2 -2
  170. package/dist/components/content/SettingsFieldRow.svelte +5 -5
  171. package/dist/components/content/SettingsGroup.svelte +7 -7
  172. package/dist/components/content/StatusBadge.svelte +6 -6
  173. package/dist/components/content/StatusTabs.svelte +28 -28
  174. package/dist/components/content/SystemErrorState.svelte +2 -2
  175. package/dist/components/content/TeamCard.svelte +6 -6
  176. package/dist/components/content/TwoFactorStepper.svelte +3 -3
  177. package/dist/components/content/WorkspaceActionBar.svelte +12 -12
  178. package/dist/components/content/WorkspaceInspector.svelte +11 -11
  179. package/dist/components/content/WorkspaceLayout.svelte +5 -5
  180. package/dist/components/content/WorkspaceSplitPane.svelte +4 -4
  181. package/dist/components/content/WorkspaceStageStepper.svelte +16 -16
  182. package/dist/components/content/WorkspaceTabBar.svelte +16 -16
  183. package/dist/components/fields/ArrayField.svelte +12 -12
  184. package/dist/components/fields/AvatarField.svelte +15 -15
  185. package/dist/components/fields/BooleanField.svelte +14 -14
  186. package/dist/components/fields/CodeField.svelte +10 -10
  187. package/dist/components/fields/CopyField.svelte +6 -6
  188. package/dist/components/fields/CurrencyField.svelte +6 -6
  189. package/dist/components/fields/DateField.svelte +1 -1
  190. package/dist/components/fields/DateRangeField.svelte +2 -2
  191. package/dist/components/fields/EmailField.svelte +2 -2
  192. package/dist/components/fields/FileField.svelte +3 -3
  193. package/dist/components/fields/ImageField.svelte +1 -1
  194. package/dist/components/fields/JsonField.svelte +11 -11
  195. package/dist/components/fields/MarkdownField.svelte +2 -2
  196. package/dist/components/fields/MultiSelectField.svelte +3 -3
  197. package/dist/components/fields/NumberField.svelte +1 -1
  198. package/dist/components/fields/PercentField.svelte +9 -9
  199. package/dist/components/fields/PhoneField.svelte +8 -8
  200. package/dist/components/fields/RatingField.svelte +10 -10
  201. package/dist/components/fields/RelationField.svelte +3 -3
  202. package/dist/components/fields/RichTextField.svelte +4 -4
  203. package/dist/components/fields/TagField.svelte +11 -11
  204. package/dist/components/fields/TextField.svelte +2 -2
  205. package/dist/components/fields/UrlField.svelte +3 -3
  206. package/dist/components/network/TeamCrewTablePage.svelte +2 -2
  207. package/dist/components/network/UserCardsNFTPage.svelte +1 -1
  208. package/dist/components/profile/ActivityTimeline.svelte +8 -8
  209. package/dist/components/profile/ProfileCard.svelte +47 -47
  210. package/dist/components/profile/ProfileVariantSections.svelte +158 -158
  211. package/dist/components/profile/ProjectsGrid.svelte +6 -6
  212. package/dist/components/profile/PublicProfilePage.svelte +6 -6
  213. package/dist/components/profile/TeamsShowcase.svelte +3 -3
  214. package/dist/components/ui/alert/alert-description.svelte +1 -1
  215. package/dist/components/ui/alert/alert-title.svelte +1 -1
  216. package/dist/components/ui/alert/alert-variants.d.ts +7 -0
  217. package/dist/components/ui/alert/alert-variants.js +2 -0
  218. package/dist/components/ui/alert/alert.svelte +4 -15
  219. package/dist/components/ui/alert/alert.svelte.d.ts +7 -24
  220. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +2 -2
  221. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +1 -1
  222. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +1 -1
  223. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +1 -1
  224. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +1 -1
  225. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +1 -1
  226. package/dist/components/ui/avatar/avatar-variants.d.ts +7 -0
  227. package/dist/components/ui/avatar/avatar-variants.js +2 -0
  228. package/dist/components/ui/avatar/avatar.svelte +11 -20
  229. package/dist/components/ui/avatar/avatar.svelte.d.ts +12 -28
  230. package/dist/components/ui/badge/badge-variants.d.ts +7 -0
  231. package/dist/components/ui/badge/badge-variants.js +2 -0
  232. package/dist/components/ui/badge/badge.svelte +4 -24
  233. package/dist/components/ui/badge/badge.svelte.d.ts +7 -45
  234. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +3 -3
  235. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +1 -1
  236. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +1 -1
  237. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +1 -1
  238. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +1 -1
  239. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +2 -2
  240. package/dist/components/ui/button/button-variants.d.ts +9 -0
  241. package/dist/components/ui/button/button-variants.js +3 -0
  242. package/dist/components/ui/button/button.svelte +12 -31
  243. package/dist/components/ui/button/button.svelte.d.ts +9 -61
  244. package/dist/components/ui/card/card-action.svelte +1 -4
  245. package/dist/components/ui/card/card-content.svelte +1 -1
  246. package/dist/components/ui/card/card-description.svelte +1 -1
  247. package/dist/components/ui/card/card-footer.svelte +1 -1
  248. package/dist/components/ui/card/card-header.svelte +1 -4
  249. package/dist/components/ui/card/card-title.svelte +1 -1
  250. package/dist/components/ui/card/card.svelte +1 -1
  251. package/dist/components/ui/checkbox/checkbox.svelte +2 -5
  252. package/dist/components/ui/command/command-dialog.svelte +3 -3
  253. package/dist/components/ui/command/command-empty.svelte +1 -1
  254. package/dist/components/ui/command/command-group.svelte +2 -2
  255. package/dist/components/ui/command/command-input.svelte +1 -4
  256. package/dist/components/ui/command/command-item.svelte +1 -4
  257. package/dist/components/ui/command/command-list.svelte +1 -1
  258. package/dist/components/ui/command/command-separator.svelte +1 -1
  259. package/dist/components/ui/command/command.svelte +1 -4
  260. package/dist/components/ui/dialog/dialog-content.svelte +3 -3
  261. package/dist/components/ui/dialog/dialog-description.svelte +1 -1
  262. package/dist/components/ui/dialog/dialog-footer.svelte +1 -1
  263. package/dist/components/ui/dialog/dialog-header.svelte +1 -1
  264. package/dist/components/ui/dialog/dialog-overlay.svelte +1 -1
  265. package/dist/components/ui/dialog/dialog-title.svelte +1 -1
  266. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +2 -5
  267. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +1 -6
  268. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +3 -9
  269. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +1 -1
  270. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +1 -1
  271. package/dist/components/ui/input/input.svelte +3 -2
  272. package/dist/components/ui/label/label.svelte +1 -4
  273. package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +1 -5
  274. package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +2 -5
  275. package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +1 -1
  276. package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +1 -4
  277. package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +1 -1
  278. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +2 -5
  279. package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +2 -5
  280. package/dist/components/ui/navigation-menu/navigation-menu.svelte +1 -1
  281. package/dist/components/ui/pagination/pagination-content.svelte +1 -1
  282. package/dist/components/ui/pagination/pagination-ellipsis.svelte +3 -3
  283. package/dist/components/ui/pagination/pagination-link.svelte +3 -0
  284. package/dist/components/ui/pagination/pagination-next.svelte +5 -2
  285. package/dist/components/ui/pagination/pagination-previous.svelte +5 -2
  286. package/dist/components/ui/pagination/pagination.svelte +1 -1
  287. package/dist/components/ui/popover/popover-content.svelte +1 -4
  288. package/dist/components/ui/progress/progress.svelte +2 -2
  289. package/dist/components/ui/scroll-area/scroll-area.svelte +3 -4
  290. package/dist/components/ui/select/select.svelte +1 -2
  291. package/dist/components/ui/separator/separator.svelte +1 -6
  292. package/dist/components/ui/sheet/sheet-content.svelte +1 -4
  293. package/dist/components/ui/sheet/sheet-description.svelte +1 -1
  294. package/dist/components/ui/sheet/sheet-footer.svelte +1 -1
  295. package/dist/components/ui/sheet/sheet-header.svelte +1 -1
  296. package/dist/components/ui/sheet/sheet-title.svelte +1 -1
  297. package/dist/components/ui/sheet/sheet.svelte +5 -10
  298. package/dist/components/ui/skeleton/skeleton.svelte +1 -1
  299. package/dist/components/ui/switch/switch.svelte +2 -9
  300. package/dist/components/ui/table/table-caption.svelte +1 -1
  301. package/dist/components/ui/table/table-cell.svelte +8 -11
  302. package/dist/components/ui/table/table-footer.svelte +1 -1
  303. package/dist/components/ui/table/table-head.svelte +1 -11
  304. package/dist/components/ui/table/table-header.svelte +1 -1
  305. package/dist/components/ui/table/table-row.svelte +2 -2
  306. package/dist/components/ui/table/table-row.svelte.d.ts +1 -1
  307. package/dist/components/ui/table/table.svelte +2 -2
  308. package/dist/components/ui/tabs/tabs-content.svelte +1 -1
  309. package/dist/components/ui/tabs/tabs-list.svelte +1 -4
  310. package/dist/components/ui/tabs/tabs-trigger.svelte +1 -7
  311. package/dist/components/ui/tabs/tabs.svelte +1 -1
  312. package/dist/components/ui/textarea/textarea.svelte +1 -4
  313. package/dist/components/ui/tooltip/tooltip-content.svelte +1 -1
  314. package/dist/page-chrome.css +228 -0
  315. package/package.json +12 -7
@@ -75,10 +75,10 @@
75
75
  </script>
76
76
 
77
77
  <Sheet.Root bind:open>
78
- <Sheet.Content class="w-full sm:max-w-md overflow-y-auto">
78
+ <Sheet.Content class="svadmin-u-6da6a3c3f741 svadmin-u-c0bedbbc0c34 svadmin-u-92bf82f493b1">
79
79
  <Sheet.Header>
80
- <Sheet.Title class="flex items-center gap-2">
81
- <History class="h-5 w-5" />
80
+ <Sheet.Title class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
81
+ <History class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e" />
82
82
  {i18n.t('common.history') || 'History'}
83
83
  </Sheet.Title>
84
84
  <Sheet.Description>
@@ -86,32 +86,32 @@
86
86
  </Sheet.Description>
87
87
  </Sheet.Header>
88
88
 
89
- <div class="mt-8 space-y-4">
89
+ <div class="svadmin-u-4e5d2af5fc1f svadmin-u-3e7ce58d64fa">
90
90
  {#if isLoading}
91
- <div class="flex justify-center py-8 text-muted-foreground">
92
- <Loader2 class="h-6 w-6 animate-spin" />
91
+ <div class="svadmin-u-60fbb7713999 svadmin-u-86843cf1e227 svadmin-u-a1f611f027dd svadmin-u-bfa603190748">
92
+ <Loader2 class="svadmin-u-f6fe902450dc svadmin-u-7ec10f86d9b1 svadmin-u-afbdd13a380e" />
93
93
  </div>
94
94
  {:else if logs.length === 0}
95
- <div class="text-center py-10">
96
- <History class="h-8 w-8 mx-auto text-muted-foreground/30 mb-3" />
97
- <p class="text-sm text-muted-foreground">
95
+ <div class="svadmin-u-ca6bf63030aa svadmin-u-1100bef66e60">
96
+ <History class="svadmin-u-ed8a5df7b2fb svadmin-u-2bbcfc3b5179 svadmin-u-0e12dc7de920 svadmin-u-106b502aac96 svadmin-u-1bb883263ed2" />
97
+ <p class="svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">
98
98
  {i18n.t('common.noData') || 'No audit logs found'}
99
99
  </p>
100
100
  </div>
101
101
  {:else}
102
- <div class="relative border-l border-border ml-3 pl-6 space-y-8">
102
+ <div class="svadmin-u-d89972fe17d6 svadmin-u-d4f78465b34d svadmin-u-18049387f0af svadmin-u-fd9bb0dd33ac svadmin-u-9079b62ef1cb svadmin-u-793f9e26e29b">
103
103
  {#each logs as log, _i (_i)}
104
- <div class="relative">
105
- <span class="absolute -left-7 top-1 flex h-2 w-2 items-center justify-center rounded-full ring-4 ring-background {getActionColor(log.action)}"></span>
106
- <div class="flex flex-col gap-1.5">
107
- <div class="flex items-center gap-2 justify-between">
108
- <span class="text-sm font-semibold capitalize">{log.action}</span>
109
- <span class="text-xs text-muted-foreground">
104
+ <div class="svadmin-u-d89972fe17d6">
105
+ <span class="svadmin-u-da4dbfbc4fdc svadmin-u-ea875e48d525 svadmin-u-c55dcda26eec svadmin-u-60fbb7713999 svadmin-u-2f2a842e50fa svadmin-u-940924b6e2d9 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-ac204c108886 svadmin-u-44559afbdbd7 svadmin-u-85399de17097 {getActionColor(log.action)}"></span>
106
+ <div class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-58284b4ea568">
107
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-8ef2268efbbc">
108
+ <span class="svadmin-u-fc7473ca09eb svadmin-u-e83a7042bc91 capitalize">{log.action}</span>
109
+ <span class="svadmin-u-359090c2d529 svadmin-u-bfa603190748">
110
110
  {new Date(log.timestamp).toLocaleString()}
111
111
  </span>
112
112
  </div>
113
113
  {#if log.userId}
114
- <span class="text-xs text-muted-foreground font-mono bg-muted inline-flex px-1.5 py-0.5 rounded w-fit">
114
+ <span class="svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-0e65706bcccd svadmin-u-2ef11f1cb219 svadmin-u-52083e7da442 svadmin-u-45d828117213 svadmin-u-465609a240a8 svadmin-u-07389a777c1f svadmin-u-92e7450ad20d">
115
115
  User: {log.userId}
116
116
  </span>
117
117
  {/if}
@@ -103,76 +103,76 @@
103
103
  }
104
104
  </script>
105
105
 
106
- <div class="h-full flex flex-col">
106
+ <div class="svadmin-u-668b21aa5409 svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed">
107
107
  <!-- Header -->
108
- <div class="mb-6">
109
- <h2 class="text-xl font-semibold text-foreground flex items-center gap-2">
110
- <FileSearch class="h-5 w-5 text-muted-foreground" />
108
+ <div class="svadmin-u-b6777c6db914">
109
+ <h2 class="svadmin-u-d5c9b0001e7e svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
110
+ <FileSearch class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e svadmin-u-bfa603190748" />
111
111
  {i18n.t('settings.auditLogs') ?? 'Audit Logs'}
112
112
  </h2>
113
- <p class="text-sm text-muted-foreground mt-1">
113
+ <p class="svadmin-u-fc7473ca09eb svadmin-u-bfa603190748 svadmin-u-b6b02c0ebef6">
114
114
  {i18n.t('settings.auditDescription') ?? 'Track and review all system operations for compliance and debugging.'}
115
115
  </p>
116
116
  </div>
117
117
 
118
118
  {#if error}
119
- <div class="p-6 border border-destructive/20 bg-destructive/5 text-destructive rounded-lg text-center">
119
+ <div class="svadmin-u-0478c89a150f svadmin-u-ca6bcd4b6f3f svadmin-u-f0c1e65bd6f2 svadmin-u-7a0854fdbc30 svadmin-u-811148b13d1e svadmin-u-5f22e64f2282 svadmin-u-ca6bf63030aa">
120
120
  <p>{error}</p>
121
121
  </div>
122
122
  {:else}
123
123
  <!-- Search Bar -->
124
- <div class="mb-4 relative">
125
- <Search class="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" />
124
+ <div class="svadmin-u-da019856f2cc svadmin-u-d89972fe17d6">
125
+ <Search class="svadmin-u-da4dbfbc4fdc svadmin-u-22e59b722111 svadmin-u-d694ba66e322 svadmin-u-36b381be4df3 svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-bfa603190748" />
126
126
  <Input
127
127
  bind:value={searchQuery}
128
128
  placeholder={i18n.t('settings.searchLogs') ?? 'Search by user, action, or resource...'}
129
- class="pl-9"
129
+ class="svadmin-u-9e83b2412bc9"
130
130
  />
131
131
  </div>
132
132
 
133
133
  <!-- Table -->
134
- <div class="flex-1 shadow-sm ring-1 ring-border/10 rounded-lg bg-card overflow-hidden">
134
+ <div class="svadmin-u-36e579c0b41c svadmin-u-438b2237b8d6 svadmin-u-3daca9af0861 svadmin-u-a10fdd7667ee svadmin-u-5f22e64f2282 svadmin-u-cd0ad9a56558 svadmin-u-2cd02d11d1af">
135
135
  {#if loading}
136
- <div class="flex items-center justify-center h-48 text-muted-foreground">
137
- <Loader2 class="h-5 w-5 animate-spin mr-2" />
136
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-3c8ea328c09e svadmin-u-bfa603190748">
137
+ <Loader2 class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e svadmin-u-afbdd13a380e svadmin-u-d2347e8497a9" />
138
138
  {i18n.t('common.loading')}
139
139
  </div>
140
140
  {:else}
141
- <div class="overflow-auto">
141
+ <div class="svadmin-u-73fc3fb18ceb">
142
142
  <Table.Root>
143
143
  <Table.Header>
144
144
  <Table.Row>
145
- <Table.Head class="w-[160px]">{i18n.t('settings.auditTime') ?? 'Time'}</Table.Head>
145
+ <Table.Head class="svadmin-u-1e3de5ebbb2f">{i18n.t('settings.auditTime') ?? 'Time'}</Table.Head>
146
146
  <Table.Head>{i18n.t('settings.auditUser') ?? 'User'}</Table.Head>
147
147
  <Table.Head>{i18n.t('settings.auditAction') ?? 'Action'}</Table.Head>
148
148
  <Table.Head>{i18n.t('settings.auditResource') ?? 'Resource'}</Table.Head>
149
- <Table.Head class="w-[120px]">{i18n.t('settings.auditIp') ?? 'IP Address'}</Table.Head>
150
- <Table.Head class="w-[60px] text-center">{i18n.t('common.detail') ?? 'Detail'}</Table.Head>
149
+ <Table.Head class="svadmin-u-c1ca66f139f6">{i18n.t('settings.auditIp') ?? 'IP Address'}</Table.Head>
150
+ <Table.Head class="svadmin-u-4f98da6f3301 svadmin-u-ca6bf63030aa">{i18n.t('common.detail') ?? 'Detail'}</Table.Head>
151
151
  </Table.Row>
152
152
  </Table.Header>
153
153
  <Table.Body>
154
154
  {#each filteredLogs as log, _i (_i)}
155
- <Table.Row class="border-0 even:bg-muted/20 hover:bg-muted/40 transition-colors">
156
- <Table.Cell class="text-xs text-muted-foreground font-mono">
155
+ <Table.Row class="svadmin-u-119b2aa0b8f6 svadmin-u-83afbb7f41b3 svadmin-u-f6e31b39b8e4 svadmin-u-ceb69a6b0e5f">
156
+ <Table.Cell class="svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-0e65706bcccd">
157
157
  {formatDate(log.createdAt)}
158
158
  </Table.Cell>
159
- <Table.Cell class="text-sm font-medium">{log.userName ?? log.userId ?? '—'}</Table.Cell>
159
+ <Table.Cell class="svadmin-u-fc7473ca09eb svadmin-u-2689f3958069">{log.userName ?? log.userId ?? '—'}</Table.Cell>
160
160
  <Table.Cell>
161
161
  <Badge variant={getActionColor(log.action)}>{log.action}</Badge>
162
162
  </Table.Cell>
163
- <Table.Cell class="text-sm text-muted-foreground">{log.resource ?? '—'}</Table.Cell>
164
- <Table.Cell class="text-xs text-muted-foreground font-mono">{log.ipAddress ?? '—'}</Table.Cell>
165
- <Table.Cell class="text-center">
163
+ <Table.Cell class="svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">{log.resource ?? '—'}</Table.Cell>
164
+ <Table.Cell class="svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-0e65706bcccd">{log.ipAddress ?? '—'}</Table.Cell>
165
+ <Table.Cell class="svadmin-u-ca6bf63030aa">
166
166
  {#if log.details}
167
- <Button variant="ghost" size="icon" class="h-7 w-7" onclick={() => openSnapshot(log)}>
168
- <Eye class="h-3.5 w-3.5" />
167
+ <Button variant="ghost" size="icon" class="svadmin-u-d0a52b312f7d svadmin-u-cbbf90f9a828" onclick={() => openSnapshot(log)}>
168
+ <Eye class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c" />
169
169
  </Button>
170
170
  {/if}
171
171
  </Table.Cell>
172
172
  </Table.Row>
173
173
  {:else}
174
174
  <Table.Row>
175
- <Table.Cell colspan={6} class="h-24 text-center text-muted-foreground">
175
+ <Table.Cell colspan={6} class="svadmin-u-9678c61eaac3 svadmin-u-ca6bf63030aa svadmin-u-bfa603190748">
176
176
  {i18n.t('common.noData')}
177
177
  </Table.Cell>
178
178
  </Table.Row>
@@ -184,15 +184,15 @@
184
184
  </div>
185
185
 
186
186
  <!-- Pagination -->
187
- <div class="mt-4 flex items-center justify-between text-sm text-muted-foreground">
187
+ <div class="svadmin-u-0ab8667228fd svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">
188
188
  <span>{total} {i18n.t('settings.auditTotal') ?? 'total records'}</span>
189
- <div class="flex items-center gap-2">
189
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
190
190
  <Button
191
191
  variant="outline" size="sm"
192
192
  disabled={page <= 1}
193
193
  onclick={() => { page--; }}
194
194
  >
195
- <ChevronLeft class="h-4 w-4" />
195
+ <ChevronLeft class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
196
196
  </Button>
197
197
  <span>{page} / {totalPages}</span>
198
198
  <Button
@@ -200,7 +200,7 @@
200
200
  disabled={page >= totalPages}
201
201
  onclick={() => { page++; }}
202
202
  >
203
- <ChevronRight class="h-4 w-4" />
203
+ <ChevronRight class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
204
204
  </Button>
205
205
  </div>
206
206
  </div>
@@ -211,42 +211,42 @@
211
211
  {#if drawerOpen && drawerLog}
212
212
  <!-- svelte-ignore a11y_no_static_element_interactions -->
213
213
  <!-- svelte-ignore a11y_click_events_have_key_events -->
214
- <div class="fixed inset-0 z-[100] flex justify-end bg-black/40 backdrop-blur-sm" onclick={closeSnapshot}>
214
+ <div class="svadmin-u-7bc555991dba svadmin-u-7b7df0449b80 svadmin-u-db5a366a0e21 svadmin-u-60fbb7713999 svadmin-u-77c08e015d14 svadmin-u-fd9dca32f483 svadmin-u-1ca6dd1e47c4" onclick={closeSnapshot}>
215
215
  <!-- svelte-ignore a11y_no_static_element_interactions -->
216
216
  <!-- svelte-ignore a11y_click_events_have_key_events -->
217
- <div class="bg-card shadow-2xl w-full max-w-2xl h-full flex flex-col animate-in slide-in-from-right duration-300" onclick={(e) => e.stopPropagation()}>
217
+ <div class="svadmin-u-cd0ad9a56558 svadmin-u-14e46609fd68 svadmin-u-6da6a3c3f741 svadmin-u-2cc8041eca99 svadmin-u-668b21aa5409 svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-40137e897961 slide-in-from-right svadmin-u-7890552ecd63" onclick={(e) => e.stopPropagation()}>
218
218
  <!-- Drawer Header -->
219
- <div class="p-6 shadow-[0_1px_0_rgba(0,0,0,0.05)] dark:shadow-[0_1px_0_rgba(255,255,255,0.05)] flex items-center justify-between bg-muted/30">
219
+ <div class="svadmin-u-0478c89a150f svadmin-u-a4ba1a079087 svadmin-u-dd90176a46af svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-2859c861d7de">
220
220
  <div>
221
- <h2 class="text-lg font-bold text-foreground flex items-center gap-2">
222
- <FileSearch class="h-5 w-5 text-primary" />
221
+ <h2 class="svadmin-u-42536e69e639 svadmin-u-69450ef1487e svadmin-u-d4108abe6359 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
222
+ <FileSearch class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e svadmin-u-20aaf08a7ed1" />
223
223
  {i18n.t('settings.auditSnapshot') ?? 'Change Snapshot'}
224
224
  </h2>
225
- <p class="text-xs text-muted-foreground mt-1">{formatDate(drawerLog.createdAt)} · {drawerLog.userName ?? drawerLog.userId}</p>
225
+ <p class="svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-b6b02c0ebef6">{formatDate(drawerLog.createdAt)} · {drawerLog.userName ?? drawerLog.userId}</p>
226
226
  </div>
227
- <button onclick={closeSnapshot} class="text-muted-foreground hover:text-foreground transition p-2 rounded-lg hover:bg-muted">
228
- <X class="w-5 h-5" />
227
+ <button onclick={closeSnapshot} class="svadmin-u-bfa603190748 svadmin-u-ea7b2e9e070e svadmin-u-56bf8ae82a10 svadmin-u-7660b450905a svadmin-u-5f22e64f2282 svadmin-u-8e551981c8d7">
228
+ <X class="svadmin-u-72470489ff4e svadmin-u-cd0d9c512cdc" />
229
229
  </button>
230
230
  </div>
231
231
 
232
232
  <!-- Meta Tags -->
233
- <div class="px-6 py-3 shadow-[0_1px_0_rgba(0,0,0,0.05)] dark:shadow-[0_1px_0_rgba(255,255,255,0.05)] flex items-center gap-2 flex-wrap">
233
+ <div class="svadmin-u-f92d02360b8f svadmin-u-1b2d54a3fd12 svadmin-u-a4ba1a079087 svadmin-u-dd90176a46af svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-1eb5c6df38c1">
234
234
  <Badge variant="outline">{drawerLog.action}</Badge>
235
235
  {#if drawerLog.resource}
236
236
  <Badge variant="secondary">{drawerLog.resource}</Badge>
237
237
  {/if}
238
238
  {#if drawerLog.ipAddress}
239
- <Badge variant="outline" class="font-mono text-xs">{drawerLog.ipAddress}</Badge>
239
+ <Badge variant="outline" class="svadmin-u-0e65706bcccd svadmin-u-359090c2d529">{drawerLog.ipAddress}</Badge>
240
240
  {/if}
241
241
  </div>
242
242
 
243
243
  <!-- JSON Diff Viewer -->
244
- <div class="flex-1 p-6 overflow-y-auto bg-foreground/[0.03] dark:bg-background/50">
245
- <pre class="whitespace-pre-wrap text-xs font-mono leading-relaxed text-foreground/80 bg-muted/30 rounded-lg p-4 border border-border">{typeof drawerLog.details === 'object' ? JSON.stringify(drawerLog.details, null, 2) : drawerLog.details}</pre>
244
+ <div class="svadmin-u-36e579c0b41c svadmin-u-0478c89a150f svadmin-u-92bf82f493b1 svadmin-u-ba1dab71e35e svadmin-u-22a0a8a25f55">
245
+ <pre class="svadmin-u-a2edcb1a3a6b svadmin-u-359090c2d529 svadmin-u-0e65706bcccd svadmin-u-6b189c6edadb svadmin-u-f93148569c39 svadmin-u-2859c861d7de svadmin-u-5f22e64f2282 svadmin-u-8e63407b5ceb svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af">{typeof drawerLog.details === 'object' ? JSON.stringify(drawerLog.details, null, 2) : drawerLog.details}</pre>
246
246
  </div>
247
247
 
248
248
  <!-- Footer -->
249
- <div class="p-4 shadow-[0_-1px_0_rgba(0,0,0,0.05)] dark:shadow-[0_-1px_0_rgba(255,255,255,0.05)] bg-muted/20 text-right text-[11px] text-muted-foreground font-medium">
249
+ <div class="svadmin-u-8e63407b5ceb svadmin-u-7b32fba79b0f svadmin-u-33787152c8e8 svadmin-u-967d113a1451 svadmin-u-308fc069e46e svadmin-u-d058ca6de60f svadmin-u-bfa603190748 svadmin-u-2689f3958069">
250
250
  System audit snapshot · Read-only
251
251
  </div>
252
252
  </div>
@@ -13,20 +13,20 @@
13
13
  let { brand, title, description, children, footer }: Props = $props();
14
14
  </script>
15
15
 
16
- <div class="grid min-h-screen bg-muted/20 lg:grid-cols-[minmax(18rem,0.72fr)_minmax(0,1.28fr)]" data-svadmin-auth-page>
17
- <aside class="hidden border-r border-border bg-card p-10 lg:flex lg:flex-col lg:justify-between xl:p-12">
18
- <div class="flex items-center gap-3"><SvadminLogo size={40} /><span class="text-lg font-semibold text-foreground">{brand}</span></div>
19
- <div class="max-w-sm space-y-3"><h2 class="text-2xl font-semibold leading-tight text-foreground">{title}</h2>{#if description}<p class="text-sm leading-6 text-muted-foreground">{description}</p>{/if}</div>
20
- <p class="text-xs text-muted-foreground">{brand}</p>
16
+ <div class="svadmin-u-f3c543ad5fe9 svadmin-u-793346c7362c svadmin-u-967d113a1451 svadmin-u-5d17652eacdf" data-svadmin-auth-page>
17
+ <aside class="svadmin-u-99d72c7fc3e2 svadmin-u-5ceb636bd9f3 svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-a4d0f420b78d svadmin-u-3eb153dc198f svadmin-u-a94f89d92058 svadmin-u-62c392c49841 svadmin-u-a06ab179a5d5">
18
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-1004c0c3954c"><SvadminLogo size={40} /><span class="svadmin-u-42536e69e639 svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{brand}</span></div>
19
+ <div class="svadmin-u-2472e9b81a97 svadmin-u-6ed543e2fbbb"><h2 class="svadmin-u-3febee094e85 svadmin-u-e83a7042bc91 svadmin-u-e9fadafbd4a2 svadmin-u-d4108abe6359">{title}</h2>{#if description}<p class="svadmin-u-fc7473ca09eb svadmin-u-18550d5945ae svadmin-u-bfa603190748">{description}</p>{/if}</div>
20
+ <p class="svadmin-u-359090c2d529 svadmin-u-bfa603190748">{brand}</p>
21
21
  </aside>
22
- <main class="flex items-center justify-center p-5 sm:p-8 lg:p-12">
23
- <div class="w-full max-w-md space-y-5">
24
- <div class="flex items-center gap-3 lg:hidden"><SvadminLogo size={36} /><span class="text-base font-semibold text-foreground">{brand}</span></div>
25
- <section class="rounded-lg border border-border bg-card p-5 shadow-sm sm:p-7">
26
- <header class="mb-6 space-y-2"><h1 class="text-xl font-semibold leading-tight text-foreground">{title}</h1>{#if description}<p class="text-sm leading-6 text-muted-foreground">{description}</p>{/if}</header>
22
+ <main class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-c07e54fd1439 svadmin-u-e91f4cd3974c svadmin-u-de2d5f919ba9">
23
+ <div class="svadmin-u-6da6a3c3f741 svadmin-u-9794ab45094d svadmin-u-b43b4c086d9a">
24
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-1004c0c3954c svadmin-u-a327049cac5b"><SvadminLogo size={36} /><span class="svadmin-u-4ee734926ff6 svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{brand}</span></div>
25
+ <section class="svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-c07e54fd1439 svadmin-u-438b2237b8d6 svadmin-u-e299d4635ea7">
26
+ <header class="svadmin-u-b6777c6db914 svadmin-u-6f7e013d6499"><h1 class="svadmin-u-d5c9b0001e7e svadmin-u-e83a7042bc91 svadmin-u-e9fadafbd4a2 svadmin-u-d4108abe6359">{title}</h1>{#if description}<p class="svadmin-u-fc7473ca09eb svadmin-u-18550d5945ae svadmin-u-bfa603190748">{description}</p>{/if}</header>
27
27
  {@render children()}
28
28
  </section>
29
- {#if footer}<div class="text-center">{@render footer()}</div>{/if}
29
+ {#if footer}<div class="svadmin-u-ca6bf63030aa">{@render footer()}</div>{/if}
30
30
  </div>
31
31
  </main>
32
32
  </div>
@@ -77,11 +77,11 @@
77
77
 
78
78
  const gridClass = $derived(
79
79
  columns === 4
80
- ? 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4'
80
+ ? 'svadmin-u-f3c543ad5fe9 svadmin-u-d7c8339810d3 svadmin-u-e4d6f343b9ff svadmin-u-4558bce6d8c0 svadmin-u-0c3bc98565dd'
81
81
  : columns === 3
82
- ? 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4'
82
+ ? 'svadmin-u-f3c543ad5fe9 svadmin-u-d7c8339810d3 svadmin-u-e4d6f343b9ff svadmin-u-19d9b25e8fae svadmin-u-0c3bc98565dd'
83
83
  : columns === 2
84
- ? 'grid grid-cols-1 md:grid-cols-2 gap-4'
84
+ ? 'svadmin-u-f3c543ad5fe9 svadmin-u-d7c8339810d3 svadmin-u-e4d6f343b9ff svadmin-u-0c3bc98565dd'
85
85
  : 'space-y-5'
86
86
  );
87
87
 
@@ -191,42 +191,42 @@
191
191
  }
192
192
  </script>
193
193
 
194
- <div class={isCompact ? 'space-y-4' : 'space-y-6'}>
194
+ <div class={isCompact ? 'svadmin-u-3e7ce58d64fa' : 'svadmin-u-b3542e058833'}>
195
195
  {#if showHeader}
196
- <div class="flex items-center gap-4">
196
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-0c3bc98565dd">
197
197
  <TooltipButton
198
198
  tooltip={i18n.t('common.back')}
199
199
  onclick={() => guardNavigate(() => navigation.list(resourceName))}
200
200
  >
201
- <ArrowLeft class="h-5 w-5" aria-hidden="true" />
201
+ <ArrowLeft class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e" aria-hidden="true" />
202
202
  </TooltipButton>
203
- <h1 class="text-xl font-semibold text-foreground">{pageTitle}</h1>
203
+ <h1 class="svadmin-u-d5c9b0001e7e svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{pageTitle}</h1>
204
204
  {#if headerContent}
205
205
  {@render headerContent()}
206
206
  {/if}
207
207
  {#if form.isTainted()}
208
- <Badge variant="outline" role="status" aria-live="polite" class="border-warning/30 bg-warning/10 text-warning-foreground">{i18n.t('common.unsaved')}</Badge>
208
+ <Badge variant="outline" role="status" aria-live="polite" class="svadmin-u-2f960aa0c478 svadmin-u-283481e780bb svadmin-u-3a4ff758c2ab">{i18n.t('common.unsaved')}</Badge>
209
209
  {/if}
210
210
  </div>
211
211
  {/if}
212
212
 
213
213
  {#if form.loading}
214
- <div class="max-w-4xl space-y-6">
215
- <div class="rounded-lg shadow-sm ring-1 ring-border/10 p-6 space-y-5">
214
+ <div class="svadmin-u-cf3893e36c22 svadmin-u-b3542e058833">
215
+ <div class="svadmin-u-5f22e64f2282 svadmin-u-438b2237b8d6 svadmin-u-3daca9af0861 svadmin-u-a10fdd7667ee svadmin-u-0478c89a150f svadmin-u-b43b4c086d9a">
216
216
  {#each Array(4) as _, _i (_i)}
217
- <div class="space-y-2">
218
- <Skeleton class="h-4 w-24" />
219
- <Skeleton class="h-10 w-full" />
217
+ <div class="svadmin-u-6f7e013d6499">
218
+ <Skeleton class="svadmin-u-11e59c6d5f6b svadmin-u-69da7e4ff95d" />
219
+ <Skeleton class="svadmin-u-426b8b75185b svadmin-u-6da6a3c3f741" />
220
220
  </div>
221
221
  {/each}
222
222
  </div>
223
223
  </div>
224
224
  {:else}
225
- <form bind:this={formElement} onsubmit={(e: Event) => { e.preventDefault(); handleSubmit(); }} class="max-w-4xl space-y-6" novalidate>
225
+ <form bind:this={formElement} onsubmit={(e: Event) => { e.preventDefault(); handleSubmit(); }} class="svadmin-u-cf3893e36c22 svadmin-u-b3542e058833" novalidate>
226
226
  {#if submitError}
227
227
  <div transition:slide={{ duration: 300, axis: 'y' }} class="svadmin-shake">
228
228
  <Alert.Root variant="destructive">
229
- <AlertCircle class="h-4 w-4" aria-hidden="true" />
229
+ <AlertCircle class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" aria-hidden="true" />
230
230
  <Alert.Description>{submitError}</Alert.Description>
231
231
  </Alert.Root>
232
232
  </div>
@@ -234,16 +234,16 @@
234
234
 
235
235
  {#if hasGroups}
236
236
  {#each groups as group, _i (_i)}
237
- <Card.Root class="border-border/40 shadow-sm">
237
+ <Card.Root class="svadmin-u-6ee2d41e2d2d svadmin-u-438b2237b8d6">
238
238
  {#if group.name}
239
- <Card.Header class={isCompact ? 'px-4 py-3' : ''}>
240
- <Card.Title class="text-lg">{group.name}</Card.Title>
239
+ <Card.Header class={isCompact ? 'svadmin-u-f0faeb26d656 svadmin-u-1b2d54a3fd12' : ''}>
240
+ <Card.Title class="svadmin-u-42536e69e639">{group.name}</Card.Title>
241
241
  </Card.Header>
242
242
  {/if}
243
- <Card.Content class={isCompact ? 'px-4 pb-4 pt-0' : 'px-4 sm:px-6 pb-4 sm:pb-6 pt-0'}>
243
+ <Card.Content class={isCompact ? 'svadmin-u-f0faeb26d656 svadmin-u-9fcd8a13827e svadmin-u-9335c39f6eff' : 'svadmin-u-f0faeb26d656 svadmin-u-7a9aabfcd059 svadmin-u-9fcd8a13827e svadmin-u-050494726fba svadmin-u-9335c39f6eff'}>
244
244
  <div class={gridClass}>
245
245
  {#each group.fields as field (field.key)}
246
- <div class={cn(columns > 1 && isFullWidthField(field) && 'col-span-full', !!form.errors[field.key] && 'border-destructive')}>
246
+ <div class={cn(columns > 1 && isFullWidthField(field) && 'svadmin-u-2c955d1b45df', !!form.errors[field.key] && 'svadmin-u-ee1a5af3aa10')}>
247
247
  {#if fieldRenderer}
248
248
  {@render fieldRenderer({ field, value: form.values[field.key], onchange: (val: unknown) => form.setFieldValue(field.key, val) })}
249
249
  {:else}
@@ -258,7 +258,7 @@
258
258
  />
259
259
  {/if}
260
260
  {#if form.errors[field.key]}
261
- <p id={fieldErrorId(field.key)} class="text-destructive text-[0.8125rem] mt-1" role="alert" aria-live="polite">{form.errors[field.key]}</p>
261
+ <p id={fieldErrorId(field.key)} class="svadmin-u-811148b13d1e svadmin-u-1d5904e7e755 svadmin-u-b6b02c0ebef6" role="alert" aria-live="polite">{form.errors[field.key]}</p>
262
262
  {/if}
263
263
  </div>
264
264
  {/each}
@@ -267,11 +267,11 @@
267
267
  </Card.Root>
268
268
  {/each}
269
269
  {:else}
270
- <Card.Root class="border-border/40 shadow-sm">
271
- <Card.Content class={isCompact ? 'p-4' : 'px-4 pt-5 pb-4 sm:px-6 sm:pt-6 sm:pb-6'}>
270
+ <Card.Root class="svadmin-u-6ee2d41e2d2d svadmin-u-438b2237b8d6">
271
+ <Card.Content class={isCompact ? 'svadmin-u-8e63407b5ceb' : 'svadmin-u-f0faeb26d656 svadmin-u-52be28846b5f svadmin-u-9fcd8a13827e svadmin-u-7a9aabfcd059 svadmin-u-0a58453f3755 svadmin-u-050494726fba'}>
272
272
  <div class={gridClass} data-svadmin-form-grid data-columns={columns} data-density={density}>
273
273
  {#each formFields as field (field.key)}
274
- <div class={cn(columns > 1 && isFullWidthField(field) && 'col-span-full', !!form.errors[field.key] && 'border-destructive')}>
274
+ <div class={cn(columns > 1 && isFullWidthField(field) && 'svadmin-u-2c955d1b45df', !!form.errors[field.key] && 'svadmin-u-ee1a5af3aa10')}>
275
275
  {#if fieldRenderer}
276
276
  {@render fieldRenderer({ field, value: form.values[field.key], onchange: (val: unknown) => form.setFieldValue(field.key, val) })}
277
277
  {:else}
@@ -286,7 +286,7 @@
286
286
  />
287
287
  {/if}
288
288
  {#if form.errors[field.key]}
289
- <p id={fieldErrorId(field.key)} class="text-destructive text-[0.8125rem] mt-1" role="alert" aria-live="polite">{form.errors[field.key]}</p>
289
+ <p id={fieldErrorId(field.key)} class="svadmin-u-811148b13d1e svadmin-u-1d5904e7e755 svadmin-u-b6b02c0ebef6" role="alert" aria-live="polite">{form.errors[field.key]}</p>
290
290
  {/if}
291
291
  </div>
292
292
  {/each}
@@ -295,15 +295,15 @@
295
295
  </Card.Root>
296
296
  {/if}
297
297
 
298
- <div class="flex items-center gap-3">
298
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-1004c0c3954c">
299
299
  {#if formActions}
300
300
  {@render formActions({ isLoading: form.submitting, onSubmit: handleSubmit })}
301
301
  {:else if !isReadonly}
302
302
  <Button type="submit" size={isCompact ? 'sm' : 'default'} disabled={form.submitting}>
303
303
  {#if form.submitting}
304
- <Loader2 class="h-4 w-4 animate-spin" data-icon="inline-start" aria-hidden="true" />
304
+ <Loader2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-afbdd13a380e" data-icon="inline-start" aria-hidden="true" />
305
305
  {:else}
306
- <Save class="h-4 w-4" data-icon="inline-start" aria-hidden="true" />
306
+ <Save class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" aria-hidden="true" />
307
307
  {/if}
308
308
  {i18n.t('common.save')}
309
309
  </Button>
@@ -16,21 +16,21 @@
16
16
  }>();
17
17
  </script>
18
18
 
19
- <div class="flex items-center gap-2 text-sm text-muted-foreground" role="status" aria-live="polite">
19
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-fc7473ca09eb svadmin-u-bfa603190748" role="status" aria-live="polite">
20
20
  {#key status}
21
- <div class="flex items-center gap-2" in:fly={{ y: -8, duration: 200 }} out:fade={{ duration: 150 }}>
21
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4" in:fly={{ y: -8, duration: 200 }} out:fade={{ duration: 150 }}>
22
22
  {#if status === 'idle'}
23
- <Cloud class="h-4 w-4" aria-hidden="true" />
23
+ <Cloud class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" aria-hidden="true" />
24
24
  <span>{i18n.t('autoSave.idle')}</span>
25
25
  {:else if status === 'loading'}
26
- <Loader2 class="h-4 w-4 animate-spin text-primary" aria-hidden="true" />
26
+ <Loader2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-afbdd13a380e svadmin-u-20aaf08a7ed1" aria-hidden="true" />
27
27
  <span>{i18n.t('autoSave.saving')}</span>
28
28
  {:else if status === 'success'}
29
- <Check class="h-4 w-4 text-success" aria-hidden="true" />
30
- <span class="text-success">{i18n.t('autoSave.saved')}</span>
29
+ <Check class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-76747e5e02ff" aria-hidden="true" />
30
+ <span class="svadmin-u-76747e5e02ff">{i18n.t('autoSave.saved')}</span>
31
31
  {:else if status === 'error'}
32
- <X class="h-4 w-4 text-destructive" aria-hidden="true" />
33
- <span class="text-destructive" title={error}>{i18n.t('autoSave.error')}</span>
32
+ <X class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-811148b13d1e" aria-hidden="true" />
33
+ <span class="svadmin-u-811148b13d1e" title={error}>{i18n.t('autoSave.error')}</span>
34
34
  {/if}
35
35
  </div>
36
36
  {/key}