@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
@@ -149,76 +149,76 @@
149
149
  );
150
150
  </script>
151
151
 
152
- <div class="space-y-6">
152
+ <div class="svadmin-u-b3542e058833">
153
153
  <div>
154
- <h2 class="text-xl font-semibold text-foreground">{i18n.t('profile.title')}</h2>
154
+ <h2 class="svadmin-u-d5c9b0001e7e svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{i18n.t('profile.title')}</h2>
155
155
  </div>
156
156
 
157
157
  <!-- Profile Info -->
158
158
  <Card.Card>
159
159
  <Card.CardHeader>
160
- <Card.CardTitle class="flex items-center gap-2 text-base">
161
- <User class="h-4 w-4 text-muted-foreground" />
160
+ <Card.CardTitle class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-4ee734926ff6">
161
+ <User class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-bfa603190748" />
162
162
  {i18n.t('profile.title')}
163
163
  </Card.CardTitle>
164
164
  </Card.CardHeader>
165
165
  <Card.CardContent>
166
166
  {#if identity.isLoading}
167
- <div class="flex items-center gap-2 text-muted-foreground">
168
- <Loader2 class="h-4 w-4 animate-spin" />
167
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-bfa603190748">
168
+ <Loader2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-afbdd13a380e" />
169
169
  {i18n.t('common.loading')}
170
170
  </div>
171
171
  {:else if identity.data}
172
- <div class="flex items-start gap-6">
172
+ <div class="svadmin-u-60fbb7713999 svadmin-u-60541e1e26f8 svadmin-u-0d304f904cb0">
173
173
  <!-- Avatar -->
174
- <div class="shrink-0 relative group">
174
+ <div class="svadmin-u-012fbd121f37 svadmin-u-d89972fe17d6 group">
175
175
  {#if identity.data.avatar}
176
176
  <img
177
177
  src={identity.data.avatar}
178
178
  alt={identity.data.name ?? ''}
179
- class="h-20 w-20 rounded-lg object-cover ring-2 ring-primary/20"
179
+ class="svadmin-u-0a769880db93 svadmin-u-ed831a4dff32 svadmin-u-5f22e64f2282 svadmin-u-7d85d0c21a32 svadmin-u-16b1efa5875e svadmin-u-2b6f77ad4036"
180
180
  />
181
181
  {:else}
182
- <div class="h-20 w-20 rounded-lg bg-primary/10 text-primary flex items-center justify-center text-2xl font-bold">
182
+ <div class="svadmin-u-0a769880db93 svadmin-u-ed831a4dff32 svadmin-u-5f22e64f2282 svadmin-u-375dc44df6e9 svadmin-u-20aaf08a7ed1 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-3febee094e85 svadmin-u-69450ef1487e">
183
183
  {initials}
184
184
  </div>
185
185
  {/if}
186
186
  {#if canUpdateProfile}
187
187
  <button
188
- class="absolute inset-0 rounded-lg bg-black/50 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity cursor-pointer"
188
+ class="svadmin-u-da4dbfbc4fdc svadmin-u-7b7df0449b80 svadmin-u-5f22e64f2282 svadmin-u-53bb3a280599 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-7065497e1ca0 svadmin-u-181f3d6c9821 svadmin-u-67d6184a0024 svadmin-u-34516836730d"
189
189
  onclick={() => fileInput?.click()}
190
190
  disabled={avatarUploading}
191
191
  >
192
192
  {#if avatarUploading}
193
- <Loader2 class="h-5 w-5 text-white animate-spin" />
193
+ <Loader2 class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e svadmin-u-72a4c7cdeef7 svadmin-u-afbdd13a380e" />
194
194
  {:else}
195
- <Camera class="h-5 w-5 text-white" />
195
+ <Camera class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e svadmin-u-72a4c7cdeef7" />
196
196
  {/if}
197
197
  </button>
198
198
  <input
199
199
  bind:this={fileInput}
200
200
  type="file"
201
201
  accept="image/*"
202
- class="hidden"
202
+ class="svadmin-u-99d72c7fc3e2"
203
203
  onchange={handleAvatarChange}
204
204
  />
205
205
  {/if}
206
206
  </div>
207
207
 
208
208
  <!-- Info -->
209
- <div class="space-y-3 flex-1 min-w-0">
209
+ <div class="svadmin-u-6ed543e2fbbb svadmin-u-36e579c0b41c svadmin-u-7e0b7cdf1a94">
210
210
  {#if editingProfile}
211
- <div class="space-y-3 max-w-sm">
211
+ <div class="svadmin-u-6ed543e2fbbb svadmin-u-2472e9b81a97">
212
212
  <div>
213
- <Label for="edit-name" class="text-xs text-muted-foreground">{i18n.t('profile.name')}</Label>
214
- <Input id="edit-name" bind:value={editName} class="mt-1" />
213
+ <Label for="edit-name" class="svadmin-u-359090c2d529 svadmin-u-bfa603190748">{i18n.t('profile.name')}</Label>
214
+ <Input id="edit-name" bind:value={editName} class="svadmin-u-b6b02c0ebef6" />
215
215
  </div>
216
216
  {#if profileError}
217
- <p class="text-xs text-destructive">{profileError}</p>
217
+ <p class="svadmin-u-359090c2d529 svadmin-u-811148b13d1e">{profileError}</p>
218
218
  {/if}
219
- <div class="flex gap-2">
219
+ <div class="svadmin-u-60fbb7713999 svadmin-u-77a2a20e90d4">
220
220
  <Button size="sm" onclick={saveProfile} disabled={profileSaving}>
221
- {#if profileSaving}<Loader2 class="h-3 w-3 animate-spin mr-1" />{/if}
221
+ {#if profileSaving}<Loader2 class="svadmin-u-6a60c09e6aaa svadmin-u-9cea05671a29 svadmin-u-afbdd13a380e svadmin-u-618162408e7a" />{/if}
222
222
  {i18n.t('common.save')}
223
223
  </Button>
224
224
  <Button size="sm" variant="outline" onclick={() => { editingProfile = false; }}>
@@ -228,23 +228,23 @@
228
228
  </div>
229
229
  {:else}
230
230
  <div>
231
- <Label class="text-xs text-muted-foreground">{i18n.t('profile.name')}</Label>
232
- <p class="text-lg font-semibold truncate">{identity.data.name ?? '—'}</p>
231
+ <Label class="svadmin-u-359090c2d529 svadmin-u-bfa603190748">{i18n.t('profile.name')}</Label>
232
+ <p class="svadmin-u-42536e69e639 svadmin-u-e83a7042bc91 svadmin-u-f283ea9bea0e">{identity.data.name ?? '—'}</p>
233
233
  </div>
234
234
 
235
235
  {#if identity.data.email || identity.data.username}
236
- <div class="flex items-center gap-2 text-sm text-muted-foreground">
236
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">
237
237
  {#if identity.data.email}
238
- <Mail class="h-4 w-4 shrink-0" />
238
+ <Mail class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-012fbd121f37" />
239
239
  {:else}
240
- <User class="h-4 w-4 shrink-0" />
240
+ <User class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-012fbd121f37" />
241
241
  {/if}
242
- <span class="truncate">{identity.data.email || identity.data.username}</span>
242
+ <span class="svadmin-u-f283ea9bea0e">{identity.data.email || identity.data.username}</span>
243
243
  </div>
244
244
  {/if}
245
245
 
246
246
  {#if identity.data.id}
247
- <div class="text-xs text-muted-foreground/60 font-mono">
247
+ <div class="svadmin-u-359090c2d529 svadmin-u-7be4d67a6256 svadmin-u-0e65706bcccd">
248
248
  ID: {identity.data.id}
249
249
  </div>
250
250
  {/if}
@@ -258,7 +258,7 @@
258
258
  </div>
259
259
  </div>
260
260
  {:else}
261
- <p class="text-sm text-muted-foreground">{i18n.t('profile.notAvailable')}</p>
261
+ <p class="svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">{i18n.t('profile.notAvailable')}</p>
262
262
  {/if}
263
263
  </Card.CardContent>
264
264
  </Card.Card>
@@ -266,16 +266,16 @@
266
266
  <!-- Change Password -->
267
267
  <Card.Card>
268
268
  <Card.CardHeader>
269
- <Card.CardTitle class="flex items-center gap-2 text-base">
270
- <Lock class="h-4 w-4 text-muted-foreground" />
269
+ <Card.CardTitle class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-4ee734926ff6">
270
+ <Lock class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-bfa603190748" />
271
271
  {i18n.t('profile.changePassword')}
272
272
  </Card.CardTitle>
273
273
  </Card.CardHeader>
274
274
  <Card.CardContent>
275
- <form onsubmit={handlePasswordChange} class="space-y-4 max-w-sm">
275
+ <form onsubmit={handlePasswordChange} class="svadmin-u-3e7ce58d64fa svadmin-u-2472e9b81a97">
276
276
  {#if pwError}
277
277
  <Alert.Root variant="destructive">
278
- <AlertCircle class="h-4 w-4" />
278
+ <AlertCircle class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
279
279
  <Alert.Description>{pwError}</Alert.Description>
280
280
  </Alert.Root>
281
281
  {/if}
@@ -304,7 +304,7 @@
304
304
 
305
305
  <Button type="submit" disabled={updatePw.isLoading}>
306
306
  {#if updatePw.isLoading}
307
- <Loader2 class="h-4 w-4 animate-spin mr-2" />
307
+ <Loader2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-afbdd13a380e svadmin-u-d2347e8497a9" />
308
308
  {/if}
309
309
  {i18n.t('profile.updatePassword')}
310
310
  </Button>
@@ -61,27 +61,27 @@
61
61
  data-svadmin-record-detail
62
62
  >
63
63
  {#if permissionPending || (canReadRecord && query.isLoading)}
64
- <div class="divide-y divide-border/60" role="status" aria-live="polite" aria-label={i18n.t('common.loading')} aria-busy="true">
64
+ <div class="svadmin-u-fa6acbf81d74 svadmin-u-d2c3932343f5" role="status" aria-live="polite" aria-label={i18n.t('common.loading')} aria-busy="true">
65
65
  {#each showFields.slice(0, 6) as field (field.key)}
66
- <div class="grid gap-2 py-4 sm:grid-cols-[minmax(8rem,1fr)_2fr] sm:gap-6">
67
- <Skeleton class="h-4 w-24" />
68
- <Skeleton class="h-4 w-full max-w-64" />
66
+ <div class="svadmin-u-f3c543ad5fe9 svadmin-u-77a2a20e90d4 svadmin-u-cb11fec3bb46 svadmin-u-d9bdd3d643a2 svadmin-u-022e8076dfea">
67
+ <Skeleton class="svadmin-u-11e59c6d5f6b svadmin-u-69da7e4ff95d" />
68
+ <Skeleton class="svadmin-u-11e59c6d5f6b svadmin-u-6da6a3c3f741 svadmin-u-35b2f3aff60f" />
69
69
  </div>
70
70
  {/each}
71
71
  </div>
72
72
  {:else if !canReadRecord}
73
- <div class="py-12 text-center" data-svadmin-access-denied>
74
- <p class="text-sm text-muted-foreground">{i18n.t('common.accessDenied')}</p>
73
+ <div class="svadmin-u-61357c0c2f29 svadmin-u-ca6bf63030aa" data-svadmin-access-denied>
74
+ <p class="svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">{i18n.t('common.accessDenied')}</p>
75
75
  </div>
76
76
  {:else if query.data?.data}
77
77
  {@const record = query.data.data as Record<string, unknown>}
78
- <dl class="divide-y divide-border/60">
78
+ <dl class="svadmin-u-fa6acbf81d74 svadmin-u-d2c3932343f5">
79
79
  {#each showFields as field (field.key)}
80
80
  {@const value = record[field.key]}
81
81
  {@const DisplayComponent = getDisplayComponent(field.type)}
82
- <div class="grid gap-1.5 py-4 sm:grid-cols-[minmax(8rem,1fr)_2fr] sm:gap-6">
83
- <dt class="text-xs font-medium text-muted-foreground sm:text-sm">{field.label}</dt>
84
- <dd class="min-w-0 break-words text-sm text-foreground">
82
+ <div class="svadmin-u-f3c543ad5fe9 svadmin-u-58284b4ea568 svadmin-u-cb11fec3bb46 svadmin-u-d9bdd3d643a2 svadmin-u-022e8076dfea">
83
+ <dt class="svadmin-u-359090c2d529 svadmin-u-2689f3958069 svadmin-u-bfa603190748 svadmin-u-e2327d142859">{field.label}</dt>
84
+ <dd class="svadmin-u-7e0b7cdf1a94 svadmin-u-170cee3ff4e4 svadmin-u-fc7473ca09eb svadmin-u-d4108abe6359">
85
85
  {#if DisplayComponent && value != null}
86
86
  <DisplayComponent {value} options={field.options} resourceName={field.resource} />
87
87
  {:else}
@@ -92,10 +92,10 @@
92
92
  {/each}
93
93
  </dl>
94
94
  {:else}
95
- <div class="py-12 text-center">
96
- <p class="text-sm text-muted-foreground">{i18n.t('common.noData')}</p>
95
+ <div class="svadmin-u-61357c0c2f29 svadmin-u-ca6bf63030aa">
96
+ <p class="svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">{i18n.t('common.noData')}</p>
97
97
  {#if query.isError}
98
- <p class="mt-2 text-sm text-destructive">{(query.error as Error)?.message ?? i18n.t('common.operationFailed')}</p>
98
+ <p class="svadmin-u-50d0d216a2f8 svadmin-u-fc7473ca09eb svadmin-u-811148b13d1e">{(query.error as Error)?.message ?? i18n.t('common.operationFailed')}</p>
99
99
  {/if}
100
100
  </div>
101
101
  {/if}
@@ -104,7 +104,7 @@
104
104
  {#if canReadRecord && recordId != null && resource.canShow !== false}
105
105
  <CanAccess resource={resourceName} action="show" params={{ id: recordId }}>
106
106
  <Button variant="outline" onclick={() => navigateTo('show')}>
107
- <Eye class="h-4 w-4" data-icon="inline-start" aria-hidden="true" />
107
+ <Eye class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" aria-hidden="true" />
108
108
  {i18n.t('common.openFullDetail')}
109
109
  </Button>
110
110
  </CanAccess>
@@ -112,7 +112,7 @@
112
112
  {#if canReadRecord && recordId != null && resource.canEdit !== false}
113
113
  <CanAccess resource={resourceName} action="edit" params={{ id: recordId }}>
114
114
  <Button onclick={() => navigateTo('edit')}>
115
- <Pencil class="h-4 w-4" data-icon="inline-start" aria-hidden="true" />
115
+ <Pencil class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" aria-hidden="true" />
116
116
  {i18n.t('common.edit')}
117
117
  </Button>
118
118
  </CanAccess>
@@ -42,28 +42,28 @@
42
42
  </script>
43
43
 
44
44
  {#snippet footer()}
45
- <div class="flex items-center justify-center gap-1"><span class="text-sm text-muted-foreground">{i18n.t('auth.hasAccount')}</span><Button variant="link" class="h-auto p-0 text-sm font-medium" onclick={() => adminContext.navigate('/login')}>{i18n.t('auth.login')}</Button></div>
45
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-44ee8ba0a421"><span class="svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">{i18n.t('auth.hasAccount')}</span><Button variant="link" class="svadmin-u-b8f0a08ece1e svadmin-u-8a539c7fe216 svadmin-u-fc7473ca09eb svadmin-u-2689f3958069" onclick={() => adminContext.navigate('/login')}>{i18n.t('auth.login')}</Button></div>
46
46
  {/snippet}
47
47
 
48
48
  <AuthPageShell brand={title} title={i18n.t('auth.createAccount')} description={i18n.t('auth.createAccountMessage')} {footer}>
49
- <form onsubmit={handleSubmit} class="space-y-5">
49
+ <form onsubmit={handleSubmit} class="svadmin-u-b43b4c086d9a">
50
50
  {#if error}
51
51
  <Alert.Root variant="destructive">
52
- <AlertCircle class="h-4 w-4" />
52
+ <AlertCircle class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
53
53
  <Alert.Description>{error}</Alert.Description>
54
54
  </Alert.Root>
55
55
  {/if}
56
56
 
57
- <div class="space-y-2">
57
+ <div class="svadmin-u-6f7e013d6499">
58
58
  <Label for="register-identifier">{i18n.t('auth.usernameOrEmail')}</Label>
59
- <div class="relative">
60
- <User class="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none z-[1]" />
59
+ <div class="svadmin-u-d89972fe17d6">
60
+ <User class="svadmin-u-da4dbfbc4fdc svadmin-u-22e59b722111 svadmin-u-d694ba66e322 svadmin-u-36b381be4df3 svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-bfa603190748 svadmin-u-a4326536b8f5 svadmin-u-536a7530a44f" />
61
61
  <Input
62
62
  id="register-identifier"
63
63
  type="text"
64
64
  placeholder={i18n.t('auth.identifierPlaceholder')}
65
65
  bind:value={identifier}
66
- class="pl-9"
66
+ class="svadmin-u-9e83b2412bc9"
67
67
  autocomplete="username"
68
68
  />
69
69
  </div>
@@ -84,9 +84,9 @@
84
84
  autocomplete="new-password"
85
85
  />
86
86
 
87
- <Button type="submit" class="h-10 w-full" disabled={register.isLoading}>
87
+ <Button type="submit" class="svadmin-u-426b8b75185b svadmin-u-6da6a3c3f741" disabled={register.isLoading}>
88
88
  {#if register.isLoading}
89
- <Loader2 class="h-4 w-4 animate-spin mr-2" />
89
+ <Loader2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-afbdd13a380e svadmin-u-d2347e8497a9" />
90
90
  {/if}
91
91
  {i18n.t('auth.registerButton')}
92
92
  </Button>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
- // ResourceInferencer — 一站式零配置 CRUD 渲染器
3
- // 根据 URL action(list/create/edit/show)自动分发到对应的 Inferencer 组件。
4
- // 用法:<ResourceInferencer resourceName="posts" />
2
+ // ResourceInferencer provides a zero-configuration CRUD renderer.
3
+ // It dispatches to the matching Inferencer component from the URL action: list, create, edit, or show.
4
+ // Usage: <ResourceInferencer resourceName="posts" />
5
5
  import { useParsed } from '@svadmin/core';
6
6
  import ListInferencer from './ListInferencer.svelte';
7
7
  import CreateInferencer from './CreateInferencer.svelte';