@svadmin/ui 0.68.1 → 0.69.1

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 +13 -8
@@ -1076,15 +1076,15 @@
1076
1076
  }
1077
1077
  </script>
1078
1078
 
1079
- <div class="space-y-3">
1079
+ <div class="svadmin-u-6ed543e2fbbb">
1080
1080
  {#if showHeader}
1081
1081
  <!-- Header -->
1082
- <div class="flex flex-wrap items-center justify-between gap-2">
1083
- <h1 class="text-lg sm:text-xl font-semibold text-foreground">{title ?? resource.label}</h1>
1084
- <div class="flex flex-wrap items-center gap-2">
1082
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-77a2a20e90d4">
1083
+ <h1 class="svadmin-u-42536e69e639 svadmin-u-998e0b29fe9e svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{title ?? resource.label}</h1>
1084
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
1085
1085
  {#if canExport}
1086
1086
  <Button variant="outline" size="sm" onclick={exportCSV}>
1087
- <Download class="h-4 w-4" data-icon="inline-start" /> {i18n.t("common.export")}
1087
+ <Download class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" /> {i18n.t("common.export")}
1088
1088
  </Button>
1089
1089
  {/if}
1090
1090
  {#if headerActions}
@@ -1092,7 +1092,7 @@
1092
1092
  {/if}
1093
1093
  {#if canCreate}
1094
1094
  <Button onclick={() => navigation.create(resourceName)}>
1095
- <Plus class="h-4 w-4" data-icon="inline-start" /> {i18n.t("common.create")}
1095
+ <Plus class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" /> {i18n.t("common.create")}
1096
1096
  </Button>
1097
1097
  {/if}
1098
1098
  </div>
@@ -1102,17 +1102,17 @@
1102
1102
  <!-- Selection Banner (Enterprise Batch Actions) -->
1103
1103
  {#if selectedCount > 0}
1104
1104
  <div
1105
- class="flex flex-col gap-3 border border-primary/20 bg-primary/10 px-3.5 py-2 rounded-lg text-sm text-foreground animate-in fade-in duration-200 motion-reduce:animate-none sm:flex-row sm:items-center sm:justify-between"
1105
+ class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-1004c0c3954c svadmin-u-ca6bcd4b6f3f svadmin-u-a6afccfc915b svadmin-u-375dc44df6e9 svadmin-u-e0d9cc7f0647 svadmin-u-03b4dd7f172b svadmin-u-5f22e64f2282 svadmin-u-fc7473ca09eb svadmin-u-d4108abe6359 svadmin-u-40137e897961 fade-in svadmin-u-625a4c3fbeb2 svadmin-u-259ce51fc8f3 svadmin-u-020ba687fa12 svadmin-u-9f76a62f4f44 svadmin-u-3b9871a0bf93"
1106
1106
  aria-label={i18n.t("common.selectedCount", { count: selectedCount })}
1107
1107
  data-svadmin-batch-toolbar
1108
1108
  >
1109
- <div class="flex min-w-0 items-center gap-2 text-sm">
1110
- <span class="font-medium text-foreground tabular-nums">{i18n.t("common.selectedCount", { count: selectedCount })}</span>
1109
+ <div class="svadmin-u-60fbb7713999 svadmin-u-7e0b7cdf1a94 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-fc7473ca09eb">
1110
+ <span class="svadmin-u-2689f3958069 svadmin-u-d4108abe6359 svadmin-u-3032cae0badb">{i18n.t("common.selectedCount", { count: selectedCount })}</span>
1111
1111
  {#if deleteManyMutation.isPending}
1112
- <span class="text-muted-foreground" role="status">{i18n.t("common.processing")}</span>
1112
+ <span class="svadmin-u-bfa603190748" role="status">{i18n.t("common.processing")}</span>
1113
1113
  {/if}
1114
1114
  </div>
1115
- <div class="flex flex-wrap items-center gap-2">
1115
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
1116
1116
  {#if batchActions}
1117
1117
  {@render batchActions({ selectedIds })}
1118
1118
  {/if}
@@ -1120,17 +1120,17 @@
1120
1120
  <Button
1121
1121
  variant="destructive"
1122
1122
  size="sm"
1123
- class="h-8 text-xs whitespace-nowrap"
1123
+ class="svadmin-u-ed8a5df7b2fb svadmin-u-359090c2d529 svadmin-u-e82ae8be04aa"
1124
1124
  disabled={deleteManyMutation.isPending}
1125
1125
  onclick={confirmBatchDelete}
1126
1126
  >
1127
- <Trash2 class="h-3.5 w-3.5" data-icon="inline-start" aria-hidden="true" /> {i18n.t("common.batchDelete", { count: selectedCount })}
1127
+ <Trash2 class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c" data-icon="inline-start" aria-hidden="true" /> {i18n.t("common.batchDelete", { count: selectedCount })}
1128
1128
  </Button>
1129
1129
  {/if}
1130
1130
  <Button
1131
1131
  variant="ghost"
1132
1132
  size="sm"
1133
- class="h-8 text-xs text-muted-foreground hover:text-foreground"
1133
+ class="svadmin-u-ed8a5df7b2fb svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-ea7b2e9e070e"
1134
1134
  disabled={deleteManyMutation.isPending}
1135
1135
  onclick={clearSelection}
1136
1136
  >
@@ -1141,18 +1141,18 @@
1141
1141
  {/if}
1142
1142
 
1143
1143
  <!-- Search, Filter & Table Utility Toolbar -->
1144
- <div class="flex flex-wrap items-center justify-between gap-2">
1144
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-77a2a20e90d4">
1145
1145
  <!-- Left: Search and Advanced Filters -->
1146
- <div class="flex flex-wrap items-center gap-2 flex-1 min-w-[200px]">
1146
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-36e579c0b41c svadmin-u-c614099df7f7">
1147
1147
  {#if searchableFields.length > 0}
1148
- <div class="relative max-w-sm flex-1 sm:min-w-[220px]">
1149
- <Search class="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" aria-hidden="true" />
1148
+ <div class="svadmin-u-d89972fe17d6 svadmin-u-2472e9b81a97 svadmin-u-36e579c0b41c svadmin-u-c80f3ab59fae">
1149
+ <Search class="svadmin-u-da4dbfbc4fdc svadmin-u-22e59b722111 svadmin-u-d694ba66e322 svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-36b381be4df3 svadmin-u-bfa603190748" aria-hidden="true" />
1150
1150
  <Input
1151
1151
  type="text"
1152
1152
  value={searchText}
1153
1153
  oninput={scheduleSearch}
1154
1154
  placeholder={i18n.t("common.search")}
1155
- class="pl-9 h-9 text-sm"
1155
+ class="svadmin-u-9e83b2412bc9 svadmin-u-e7a768f922d2 svadmin-u-fc7473ca09eb"
1156
1156
  />
1157
1157
  </div>
1158
1158
  {/if}
@@ -1161,25 +1161,25 @@
1161
1161
  <Popover.Root>
1162
1162
  <Popover.Trigger>
1163
1163
  {#snippet child({ props })}
1164
- <Button variant="outline" size="sm" class="h-9 px-3" {...props}>
1165
- <FilterIcon class="h-4 w-4" data-icon="inline-start" aria-hidden="true" />
1164
+ <Button variant="outline" size="sm" class="svadmin-u-e7a768f922d2 svadmin-u-0e17f2bd9074" {...props}>
1165
+ <FilterIcon class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" aria-hidden="true" />
1166
1166
  {i18n.t("common.filter")}
1167
1167
  {#if activeFilterCount > 0}
1168
- <Badge variant="secondary" class="ml-1 h-5 min-w-5 px-1 tabular-nums">{activeFilterCount}</Badge>
1168
+ <Badge variant="secondary" class="svadmin-u-f58b02572ab2 svadmin-u-cd0d9c512cdc svadmin-u-f8516763aedd svadmin-u-d8e0e382c67b svadmin-u-3032cae0badb">{activeFilterCount}</Badge>
1169
1169
  {/if}
1170
1170
  </Button>
1171
1171
  {/snippet}
1172
1172
  </Popover.Trigger>
1173
- <Popover.Content class="w-80">
1174
- <div class="space-y-3">
1175
- <h4 class="font-medium text-sm">{i18n.t("common.filter")}</h4>
1173
+ <Popover.Content class="svadmin-u-7ab81aede9d8">
1174
+ <div class="svadmin-u-6ed543e2fbbb">
1175
+ <h4 class="svadmin-u-2689f3958069 svadmin-u-fc7473ca09eb">{i18n.t("common.filter")}</h4>
1176
1176
  {#each filterableFields as field, _i (_i)}
1177
- <div class="space-y-1">
1178
- <label class="text-xs text-muted-foreground" for="filter-{field.key}">{field.label}</label>
1177
+ <div class="svadmin-u-da7c36cd8867">
1178
+ <label class="svadmin-u-359090c2d529 svadmin-u-bfa603190748" for="filter-{field.key}">{field.label}</label>
1179
1179
  {#if field.type === "select" && field.options}
1180
1180
  <Select.Root
1181
1181
  id="filter-{field.key}"
1182
- class="h-9 text-sm"
1182
+ class="svadmin-u-e7a768f922d2 svadmin-u-fc7473ca09eb"
1183
1183
  value={filterValues[field.key] ?? ""}
1184
1184
  onchange={(e) => setFilterValue(field.key, (e.currentTarget as HTMLSelectElement).value)}
1185
1185
  >
@@ -1195,13 +1195,13 @@
1195
1195
  value={filterValues[field.key] ?? ""}
1196
1196
  oninput={(e) => setFilterValue(field.key, e.currentTarget.value)}
1197
1197
  placeholder={field.label}
1198
- class="h-9 text-sm"
1198
+ class="svadmin-u-e7a768f922d2 svadmin-u-fc7473ca09eb"
1199
1199
  />
1200
1200
  {/if}
1201
1201
  </div>
1202
1202
  {/each}
1203
- <div class="flex gap-2 pt-2">
1204
- <Button size="sm" class="flex-1" onclick={() => { pagination = { ...pagination, current: 1 }; }}>
1203
+ <div class="svadmin-u-60fbb7713999 svadmin-u-77a2a20e90d4 svadmin-u-f46b61a9b310">
1204
+ <Button size="sm" class="svadmin-u-36e579c0b41c" onclick={() => { pagination = { ...pagination, current: 1 }; }}>
1205
1205
  {i18n.t("common.confirm")}
1206
1206
  </Button>
1207
1207
  <Button variant="outline" size="sm" onclick={clearFilters}>
@@ -1215,10 +1215,10 @@
1215
1215
  </div>
1216
1216
 
1217
1217
  <!-- Right: Table Controls (Density, Columns, Saved Views, Refresh, Export if !showHeader) -->
1218
- <div class="flex items-center gap-1.5 shrink-0">
1218
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-58284b4ea568 svadmin-u-012fbd121f37">
1219
1219
  {#if !showHeader && canExport}
1220
- <TooltipButton tooltip={i18n.t("common.export")} variant="outline" size="sm" class="h-9 px-2.5" onclick={exportCSV}>
1221
- <Download class="h-4 w-4" aria-hidden="true" />
1220
+ <TooltipButton tooltip={i18n.t("common.export")} variant="outline" size="sm" class="svadmin-u-e7a768f922d2 svadmin-u-0b91436debbd" onclick={exportCSV}>
1221
+ <Download class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" aria-hidden="true" />
1222
1222
  </TooltipButton>
1223
1223
  {/if}
1224
1224
 
@@ -1226,16 +1226,16 @@
1226
1226
  <DropdownMenu.Root>
1227
1227
  <DropdownMenu.Trigger>
1228
1228
  {#snippet child({ props })}
1229
- <TooltipButton tooltip={i18n.t("common.density")} variant="outline" size="sm" class="h-9 px-2.5" {...props}>
1230
- <Rows class="h-4 w-4" aria-hidden="true" />
1229
+ <TooltipButton tooltip={i18n.t("common.density")} variant="outline" size="sm" class="svadmin-u-e7a768f922d2 svadmin-u-0b91436debbd" {...props}>
1230
+ <Rows class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" aria-hidden="true" />
1231
1231
  </TooltipButton>
1232
1232
  {/snippet}
1233
1233
  </DropdownMenu.Trigger>
1234
- <DropdownMenu.Content align="end" class="w-36">
1235
- <DropdownMenu.Item onclick={() => { densityOverride = "comfortable"; }} class={currentDensity === "comfortable" ? "font-semibold text-primary" : ""}>
1234
+ <DropdownMenu.Content align="end" class="svadmin-u-df403bbae8fc">
1235
+ <DropdownMenu.Item onclick={() => { densityOverride = "comfortable"; }} class={currentDensity === "comfortable" ? "svadmin-u-e83a7042bc91 svadmin-u-20aaf08a7ed1" : ""}>
1236
1236
  {i18n.t("common.densityComfortable")}
1237
1237
  </DropdownMenu.Item>
1238
- <DropdownMenu.Item onclick={() => { densityOverride = "compact"; }} class={currentDensity === "compact" ? "font-semibold text-primary" : ""}>
1238
+ <DropdownMenu.Item onclick={() => { densityOverride = "compact"; }} class={currentDensity === "compact" ? "svadmin-u-e83a7042bc91 svadmin-u-20aaf08a7ed1" : ""}>
1239
1239
  {i18n.t("common.densityCompact")}
1240
1240
  </DropdownMenu.Item>
1241
1241
  </DropdownMenu.Content>
@@ -1246,12 +1246,12 @@
1246
1246
  <DropdownMenu.Root>
1247
1247
  <DropdownMenu.Trigger>
1248
1248
  {#snippet child({ props })}
1249
- <TooltipButton tooltip={i18n.t("common.columns")} variant="outline" size="sm" class="h-9 px-2.5" {...props}>
1250
- <SlidersHorizontal class="h-4 w-4" />
1249
+ <TooltipButton tooltip={i18n.t("common.columns")} variant="outline" size="sm" class="svadmin-u-e7a768f922d2 svadmin-u-0b91436debbd" {...props}>
1250
+ <SlidersHorizontal class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1251
1251
  </TooltipButton>
1252
1252
  {/snippet}
1253
1253
  </DropdownMenu.Trigger>
1254
- <DropdownMenu.Content align="end" class="w-48">
1254
+ <DropdownMenu.Content align="end" class="svadmin-u-74b2435a1d40">
1255
1255
  {#each table_getAllLeafColumns(tbl).filter((column) => !column.id.startsWith("_")) as column, _i (_i)}
1256
1256
  <DropdownMenu.CheckboxItem
1257
1257
  checked={tableColumnVisibility.current[column.id] ?? true}
@@ -1267,22 +1267,22 @@
1267
1267
  <Popover.Root bind:open={savedViewsOpen}>
1268
1268
  <Popover.Trigger>
1269
1269
  {#snippet child({ props })}
1270
- <Button variant="outline" size="sm" class="h-9 px-2.5" {...props} aria-label={i18n.t("common.savedViews")}>
1271
- <Bookmark class="h-4 w-4" data-icon="inline-start" /> {activeSavedViewName ?? i18n.t("common.savedViews")}
1270
+ <Button variant="outline" size="sm" class="svadmin-u-e7a768f922d2 svadmin-u-0b91436debbd" {...props} aria-label={i18n.t("common.savedViews")}>
1271
+ <Bookmark class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" /> {activeSavedViewName ?? i18n.t("common.savedViews")}
1272
1272
  </Button>
1273
1273
  {/snippet}
1274
1274
  </Popover.Trigger>
1275
- <Popover.Content align="end" class="w-80">
1276
- <div class="space-y-3">
1275
+ <Popover.Content align="end" class="svadmin-u-7ab81aede9d8">
1276
+ <div class="svadmin-u-6ed543e2fbbb">
1277
1277
  <div>
1278
- <h4 class="font-medium text-sm">{i18n.t("common.savedViews")}</h4>
1279
- <p class="mt-1 text-xs text-muted-foreground">{i18n.t("common.savedViewsHint")}</p>
1278
+ <h4 class="svadmin-u-2689f3958069 svadmin-u-fc7473ca09eb">{i18n.t("common.savedViews")}</h4>
1279
+ <p class="svadmin-u-b6b02c0ebef6 svadmin-u-359090c2d529 svadmin-u-bfa603190748">{i18n.t("common.savedViewsHint")}</p>
1280
1280
  </div>
1281
- <div class="space-y-1">
1282
- <label class="text-xs text-muted-foreground" for="saved-list-view">{i18n.t("common.currentView")}</label>
1281
+ <div class="svadmin-u-da7c36cd8867">
1282
+ <label class="svadmin-u-359090c2d529 svadmin-u-bfa603190748" for="saved-list-view">{i18n.t("common.currentView")}</label>
1283
1283
  <Select.Root
1284
1284
  id="saved-list-view"
1285
- class="h-9 w-full"
1285
+ class="svadmin-u-e7a768f922d2 svadmin-u-6da6a3c3f741"
1286
1286
  value={activeSavedViewId ?? ""}
1287
1287
  onchange={(event) => {
1288
1288
  const id = (event.currentTarget as HTMLSelectElement).value;
@@ -1300,31 +1300,31 @@
1300
1300
  {/each}
1301
1301
  </Select.Root>
1302
1302
  </div>
1303
- <div class="flex gap-2">
1303
+ <div class="svadmin-u-60fbb7713999 svadmin-u-77a2a20e90d4">
1304
1304
  <Input
1305
1305
  aria-label={i18n.t("common.viewName")}
1306
1306
  placeholder={i18n.t("common.viewName")}
1307
1307
  maxlength={60}
1308
1308
  bind:value={savedViewName}
1309
- class="h-9"
1309
+ class="svadmin-u-e7a768f922d2"
1310
1310
  />
1311
- <Button size="sm" class="shrink-0" disabled={!savedViewName.trim()} onclick={saveCurrentView}>
1312
- <Check class="h-4 w-4" data-icon="inline-start" /> {i18n.t("common.saveView")}
1311
+ <Button size="sm" class="svadmin-u-012fbd121f37" disabled={!savedViewName.trim()} onclick={saveCurrentView}>
1312
+ <Check class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" /> {i18n.t("common.saveView")}
1313
1313
  </Button>
1314
1314
  </div>
1315
1315
  {#if savedViews.length > 0}
1316
- <div class="space-y-1 border-t border-border pt-2">
1316
+ <div class="svadmin-u-da7c36cd8867 svadmin-u-b950dda299d3 svadmin-u-18049387f0af svadmin-u-f46b61a9b310">
1317
1317
  {#each savedViews as view (view.id)}
1318
- <div class="flex items-center justify-between gap-2 text-sm">
1319
- <span class="min-w-0 truncate">{view.name}</span>
1318
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-77a2a20e90d4 svadmin-u-fc7473ca09eb">
1319
+ <span class="svadmin-u-7e0b7cdf1a94 svadmin-u-f283ea9bea0e">{view.name}</span>
1320
1320
  <button
1321
1321
  type="button"
1322
- class="inline-flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
1322
+ class="svadmin-u-52083e7da442 svadmin-u-cc46d0fa277d svadmin-u-012fbd121f37 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-421ac2be5045 svadmin-u-bfa603190748 svadmin-u-8e551981c8d7 svadmin-u-ea7b2e9e070e svadmin-u-f10f771f87e9 svadmin-u-793c80e97ffb svadmin-u-9c1295a6914a"
1323
1323
  aria-label="{i18n.t("common.delete")} {view.name}"
1324
1324
  title="{i18n.t("common.delete")} {view.name}"
1325
1325
  onclick={() => deleteSavedView(view.id)}
1326
1326
  >
1327
- <Trash2 class="size-3.5" />
1327
+ <Trash2 class="svadmin-u-783b0d9d1e2c" />
1328
1328
  </button>
1329
1329
  </div>
1330
1330
  {/each}
@@ -1339,16 +1339,16 @@
1339
1339
  tooltip={i18n.t("common.refresh")}
1340
1340
  variant="outline"
1341
1341
  size="sm"
1342
- class="h-9 px-2.5"
1342
+ class="svadmin-u-e7a768f922d2 svadmin-u-0b91436debbd"
1343
1343
  onclick={() => listResult.refetch()}
1344
1344
  >
1345
- <RefreshCw class="h-4 w-4 {query.isFetching ? "animate-spin" : ""}" />
1345
+ <RefreshCw class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 {query.isFetching ? "svadmin-u-afbdd13a380e" : ""}" />
1346
1346
  </TooltipButton>
1347
1347
  {/if}
1348
1348
 
1349
1349
  {#if !showHeader && canCreate}
1350
1350
  <Button onclick={() => navigation.create(resourceName)}>
1351
- <Plus class="h-4 w-4" data-icon="inline-start" /> {i18n.t("common.create")}
1351
+ <Plus class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" data-icon="inline-start" /> {i18n.t("common.create")}
1352
1352
  </Button>
1353
1353
  {/if}
1354
1354
  </div>
@@ -1357,58 +1357,58 @@
1357
1357
  <!-- Active Filter Tags -->
1358
1358
  {#if showFilterTags && ((appliedSearchText || searchText).trim() || activeFilterItems.length > 0)}
1359
1359
  <div
1360
- class="flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground pt-0.5 border-y border-border py-2"
1360
+ class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-58284b4ea568 svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-087ea857932e svadmin-u-8b8196092091 svadmin-u-18049387f0af svadmin-u-03b4dd7f172b"
1361
1361
  aria-label={i18n.t('common.filterTags')}
1362
1362
  data-svadmin-active-filters
1363
1363
  >
1364
- <span class="font-medium text-foreground">{i18n.t('common.filterTags')}:</span>
1364
+ <span class="svadmin-u-2689f3958069 svadmin-u-d4108abe6359">{i18n.t('common.filterTags')}:</span>
1365
1365
  {#if (appliedSearchText || searchText).trim()}
1366
- <Badge variant="secondary" class="gap-1 pr-1 font-normal text-xs">
1366
+ <Badge variant="secondary" class="svadmin-u-44ee8ba0a421 svadmin-u-eda955402ba6 svadmin-u-8ecebc9f80e6 svadmin-u-359090c2d529">
1367
1367
  <span>{i18n.t('common.search')}: "{(appliedSearchText || searchText).trim()}"</span>
1368
1368
  <button
1369
1369
  type="button"
1370
- class="hover:text-foreground cursor-pointer inline-flex size-4 items-center justify-center rounded-sm"
1370
+ class="svadmin-u-ea7b2e9e070e svadmin-u-34516836730d svadmin-u-52083e7da442 svadmin-u-f7b5fa971871 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-36d4469299aa"
1371
1371
  aria-label="{i18n.t('common.clear')}: {i18n.t('common.search')}"
1372
1372
  title="{i18n.t('common.clear')}: {i18n.t('common.search')}"
1373
1373
  onclick={() => { searchText = ""; appliedSearchText = ""; pagination = { ...pagination, current: 1 }; }}
1374
1374
  >
1375
- <X class="size-3" />
1375
+ <X class="svadmin-u-ef2d6f74d3d0" />
1376
1376
  </button>
1377
1377
  </Badge>
1378
1378
  {/if}
1379
1379
  {#each activeFilterItems as item (`${item.label}-${item.index}`)}
1380
- <Badge variant="outline" class="max-w-full gap-1 pr-1 font-normal">
1381
- <span class="truncate">{item.label}</span>
1380
+ <Badge variant="outline" class="svadmin-u-c0980a65a70d svadmin-u-44ee8ba0a421 svadmin-u-eda955402ba6 svadmin-u-8ecebc9f80e6">
1381
+ <span class="svadmin-u-f283ea9bea0e">{item.label}</span>
1382
1382
  <button
1383
1383
  type="button"
1384
- class="inline-flex size-5 shrink-0 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring cursor-pointer"
1384
+ class="svadmin-u-52083e7da442 svadmin-u-add63bc6753d svadmin-u-012fbd121f37 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-36d4469299aa svadmin-u-bfa603190748 svadmin-u-8e551981c8d7 svadmin-u-ea7b2e9e070e svadmin-u-f10f771f87e9 svadmin-u-793c80e97ffb svadmin-u-9c1295a6914a svadmin-u-34516836730d"
1385
1385
  aria-label="{i18n.t('common.clear')}: {item.label}"
1386
1386
  title="{i18n.t('common.clear')}: {item.label}"
1387
1387
  onclick={() => removeActiveFilter(item.index)}
1388
1388
  >
1389
- <X class="size-3" />
1389
+ <X class="svadmin-u-ef2d6f74d3d0" />
1390
1390
  </button>
1391
1391
  </Badge>
1392
1392
  {/each}
1393
- <Button variant="ghost" size="sm" class="h-6 px-2 text-xs text-muted-foreground hover:text-foreground" onclick={clearFilters}>
1393
+ <Button variant="ghost" size="sm" class="svadmin-u-f6fe902450dc svadmin-u-d5eab218aa34 svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-ea7b2e9e070e" onclick={clearFilters}>
1394
1394
  {i18n.t('common.clearAllFilters')}
1395
1395
  </Button>
1396
1396
  </div>
1397
1397
  {/if}
1398
1398
 
1399
1399
  <!-- Table (TanStack-powered) -->
1400
- <div class="overflow-hidden rounded-lg border border-border bg-card shadow-sm" role="region" aria-label="{resource.label} {i18n.t('common.list')}" data-table-density={currentDensity}>
1400
+ <div class="svadmin-u-2cd02d11d1af svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-438b2237b8d6" role="region" aria-label="{resource.label} {i18n.t('common.list')}" data-table-density={currentDensity}>
1401
1401
  {#if query.isLoading}
1402
- <div class="p-4 space-y-3">
1403
- <div class="flex gap-4 mb-2">
1402
+ <div class="svadmin-u-8e63407b5ceb svadmin-u-6ed543e2fbbb">
1403
+ <div class="svadmin-u-60fbb7713999 svadmin-u-0c3bc98565dd svadmin-u-a77ed4d908c0">
1404
1404
  {#each visibleFields.slice(0, 4) as _, _i (_i)}
1405
- <Skeleton class="h-4 flex-1" />
1405
+ <Skeleton class="svadmin-u-11e59c6d5f6b svadmin-u-36e579c0b41c" />
1406
1406
  {/each}
1407
1407
  </div>
1408
1408
  {#each Array(5) as _, _i (_i)}
1409
- <div class="flex gap-4">
1409
+ <div class="svadmin-u-60fbb7713999 svadmin-u-0c3bc98565dd">
1410
1410
  {#each visibleFields.slice(0, 4) as __, _i (_i)}
1411
- <Skeleton class="h-8 flex-1" />
1411
+ <Skeleton class="svadmin-u-ed8a5df7b2fb svadmin-u-36e579c0b41c" />
1412
1412
  {/each}
1413
1413
  </div>
1414
1414
  {/each}
@@ -1422,7 +1422,7 @@
1422
1422
  {:else}
1423
1423
  <div in:fade={{ duration: 150 }}>
1424
1424
  <!-- Desktop Table (hidden on mobile) -->
1425
- <div class="hidden md:block">
1425
+ <div class="svadmin-u-99d72c7fc3e2 svadmin-u-9d60be3a6d80">
1426
1426
  <Table.Root density={currentDensity}>
1427
1427
  <Table.Header>
1428
1428
  {#each tableView.headerGroups as headerGroup, _i (_i)}
@@ -1435,7 +1435,7 @@
1435
1435
  {@const header = col.header as typeof headerGroup.headers[0]}
1436
1436
  <Table.Head
1437
1437
  {...dragProps}
1438
- class={cn('border-b border-border bg-muted/25 font-medium tracking-normal text-muted-foreground hover:bg-muted/40', dragProps.class)}
1438
+ class={cn('svadmin-u-65fdbade2025 svadmin-u-18049387f0af svadmin-u-b247a17a0d75 svadmin-u-2689f3958069 svadmin-u-d9256981a032 svadmin-u-bfa603190748 svadmin-u-f6e31b39b8e4', dragProps.class)}
1439
1439
  style={header_getSize(header) != null && header_getSize(header) !== 150 ? `width:${header_getSize(header)}px` : undefined}
1440
1440
  >
1441
1441
  {#if header.id === '_select'}
@@ -1457,16 +1457,16 @@
1457
1457
  {:else if header.id === '_expand'}
1458
1458
  <!-- empty -->
1459
1459
  {:else if header.id === '_actions'}
1460
- <span class="text-right block">{i18n.t('common.actions')}</span>
1460
+ <span class="svadmin-u-308fc069e46e svadmin-u-0214b4b355d1">{i18n.t('common.actions')}</span>
1461
1461
  {:else if column_getCanSort(header.column)}
1462
1462
  <Button
1463
1463
  variant="ghost"
1464
1464
  size="sm"
1465
- class="flex items-center gap-1 hover:text-foreground -ml-2 h-auto py-1 px-2 uppercase tracking-wide text-[0.7rem] font-semibold"
1465
+ class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-44ee8ba0a421 svadmin-u-ea7b2e9e070e svadmin-u-8ffe7a29179a svadmin-u-b8f0a08ece1e svadmin-u-660d2effb880 svadmin-u-d5eab218aa34 uppercase svadmin-u-8baf13a3e9d7 svadmin-u-7357df2b2e0c svadmin-u-e83a7042bc91"
1466
1466
  onclick={() => toggleColumnSort(header.column)}
1467
1467
  >
1468
1468
  {visibleFields.find(f => f.key === header.id)?.label ?? header.id}
1469
- <span class="text-xs opacity-50">
1469
+ <span class="svadmin-u-359090c2d529 svadmin-u-0b8c506a0596">
1470
1470
  {#if column_getIsSorted(header.column) === 'asc'}↑
1471
1471
  {:else if column_getIsSorted(header.column) === 'desc'}↓
1472
1472
  {:else}⇅
@@ -1489,7 +1489,7 @@
1489
1489
  <ContextMenu.Root>
1490
1490
  <ContextMenu.Trigger>
1491
1491
  {#snippet child({ props })}
1492
- <Table.Row {...props} class="transition-all duration-300 border-b border-border/10 {rowIsSelected(row.id) ? 'bg-primary/5' : 'hover:bg-muted/20'}">
1492
+ <Table.Row {...props} class="svadmin-u-0fe7d7d814d0 svadmin-u-7890552ecd63 svadmin-u-65fdbade2025 svadmin-u-945ecb9a9005 {rowIsSelected(row.id) ? 'svadmin-u-989c466fdbe7' : 'svadmin-u-c4b5eaba40e3'}">
1493
1493
  {#each visibleCells as cell, _i (_i)}
1494
1494
  <Table.Cell>
1495
1495
  {#if cell.column.id === '_select'}
@@ -1509,36 +1509,36 @@
1509
1509
  </CanAccess>
1510
1510
  {/if}
1511
1511
  {:else if cell.column.id === '_expand'}
1512
- <TooltipButton tooltip={rowIsExpanded(row.id) ? i18n.t('common.collapse') : i18n.t('common.expand')} variant="ghost" size="icon" class="h-7 w-7" onclick={() => toggleRowExpanded(row.id)}>
1512
+ <TooltipButton tooltip={rowIsExpanded(row.id) ? i18n.t('common.collapse') : i18n.t('common.expand')} variant="ghost" size="icon" class="svadmin-u-d0a52b312f7d svadmin-u-cbbf90f9a828" onclick={() => toggleRowExpanded(row.id)}>
1513
1513
  {#if rowIsExpanded(row.id)}
1514
- <ChevronUp class="h-4 w-4" />
1514
+ <ChevronUp class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1515
1515
  {:else}
1516
- <ChevronDown class="h-4 w-4" />
1516
+ <ChevronDown class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1517
1517
  {/if}
1518
1518
  </TooltipButton>
1519
1519
  {:else if cell.column.id === '_actions'}
1520
- <div class="flex items-center justify-end gap-1">
1520
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77c08e015d14 svadmin-u-44ee8ba0a421">
1521
1521
  {#if rowActions}
1522
1522
  {@render rowActions({ record, id })}
1523
1523
  {:else}
1524
1524
  {#if canShow}
1525
1525
  <CanAccess resource={resourceName} action="show" params={{ id }}>
1526
1526
  <TooltipButton tooltip={i18n.t('common.detail')} variant="ghost" size="icon-sm" onclick={() => openDetail(id)}>
1527
- <Eye class="h-4 w-4" />
1527
+ <Eye class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1528
1528
  </TooltipButton>
1529
1529
  </CanAccess>
1530
1530
  {/if}
1531
1531
  {#if canEdit}
1532
1532
  <CanAccess resource={resourceName} action="edit" params={{ id }}>
1533
1533
  <TooltipButton tooltip={i18n.t('common.edit')} variant="ghost" size="icon-sm" onclick={() => navigation.edit(resourceName, id)}>
1534
- <Pencil class="h-4 w-4" />
1534
+ <Pencil class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1535
1535
  </TooltipButton>
1536
1536
  </CanAccess>
1537
1537
  {/if}
1538
1538
  {#if canDelete}
1539
1539
  <CanAccess resource={resourceName} action="delete" params={{ id }}>
1540
- <TooltipButton tooltip={i18n.t('common.delete')} variant="ghost" size="icon-sm" onclick={() => confirmDelete(id)} class="hover:text-destructive">
1541
- <Trash2 class="h-4 w-4" />
1540
+ <TooltipButton tooltip={i18n.t('common.delete')} variant="ghost" size="icon-sm" onclick={() => confirmDelete(id)} class="svadmin-u-51e95020d6f2">
1541
+ <Trash2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1542
1542
  </TooltipButton>
1543
1543
  </CanAccess>
1544
1544
  {/if}
@@ -1551,11 +1551,11 @@
1551
1551
  {:else if defaultCellRenderer && field}
1552
1552
  {@render defaultCellRenderer({ field, value: cell_getValue(cell), record })}
1553
1553
  {:else if field?.type === 'boolean'}
1554
- <span class="inline-block h-2 w-2 rounded-full {cell_getValue(cell) ? 'bg-success' : 'bg-muted-foreground/30'}"></span>
1554
+ <span class="svadmin-u-bb0c4bfc52bd svadmin-u-2f2a842e50fa svadmin-u-940924b6e2d9 svadmin-u-ac204c108886 {cell_getValue(cell) ? 'svadmin-u-3355648fe22b' : 'svadmin-u-2d56f1807e51'}"></span>
1555
1555
  {:else if field?.type === 'date' && cell_getValue(cell)}
1556
1556
  {new Date(cell_getValue(cell) as string).toLocaleDateString()}
1557
1557
  {:else if field?.type === 'tags' && Array.isArray(cell_getValue(cell))}
1558
- <div class="flex flex-wrap gap-1">
1558
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-44ee8ba0a421">
1559
1559
  {#each (cell_getValue(cell) as string[]).slice(0, 3) as tag, _i (_i)}
1560
1560
  <Badge variant="secondary">{tag}</Badge>
1561
1561
  {/each}
@@ -1573,13 +1573,13 @@
1573
1573
  onSave={() => listResult.refetch()}
1574
1574
  />
1575
1575
  {#snippet fallback()}
1576
- <span class="block truncate" title={String(cell_getValue(cell) ?? '—')}>{cell_getValue(cell) ?? '—'}</span>
1576
+ <span class="svadmin-u-0214b4b355d1 svadmin-u-f283ea9bea0e" title={String(cell_getValue(cell) ?? '—')}>{cell_getValue(cell) ?? '—'}</span>
1577
1577
  {/snippet}
1578
1578
  </CanAccess>
1579
1579
  {:else if field?.key === primaryKey}
1580
- <span class="block truncate font-mono text-xs" title={String(cell_getValue(cell) ?? '—')}>{cell_getValue(cell) ?? '—'}</span>
1580
+ <span class="svadmin-u-0214b4b355d1 svadmin-u-f283ea9bea0e svadmin-u-0e65706bcccd svadmin-u-359090c2d529" title={String(cell_getValue(cell) ?? '—')}>{cell_getValue(cell) ?? '—'}</span>
1581
1581
  {:else}
1582
- <span class="block truncate" title={String(cell_getValue(cell) ?? '—')}>{cell_getValue(cell) ?? '—'}</span>
1582
+ <span class="svadmin-u-0214b4b355d1 svadmin-u-f283ea9bea0e" title={String(cell_getValue(cell) ?? '—')}>{cell_getValue(cell) ?? '—'}</span>
1583
1583
  {/if}
1584
1584
  {/if}
1585
1585
  </Table.Cell>
@@ -1587,36 +1587,36 @@
1587
1587
  </Table.Row>
1588
1588
  {/snippet}
1589
1589
  </ContextMenu.Trigger>
1590
- <ContextMenu.Content class="w-48">
1590
+ <ContextMenu.Content class="svadmin-u-74b2435a1d40">
1591
1591
  {#if canEdit}
1592
1592
  <CanAccess resource={resourceName} action="edit" params={{ id }}>
1593
- <ContextMenu.Item onclick={() => navigation.edit(resourceName, id)} class="gap-2">
1594
- <Pencil class="h-4 w-4" /> {i18n.t('common.edit')}
1593
+ <ContextMenu.Item onclick={() => navigation.edit(resourceName, id)} class="svadmin-u-77a2a20e90d4">
1594
+ <Pencil class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" /> {i18n.t('common.edit')}
1595
1595
  </ContextMenu.Item>
1596
1596
  </CanAccess>
1597
1597
  {/if}
1598
1598
  {#if canShow}
1599
1599
  <CanAccess resource={resourceName} action="show" params={{ id }}>
1600
- <ContextMenu.Item onclick={() => openDetail(id)} class="gap-2">
1601
- <Eye class="h-4 w-4" /> {i18n.t('common.detail')}
1600
+ <ContextMenu.Item onclick={() => openDetail(id)} class="svadmin-u-77a2a20e90d4">
1601
+ <Eye class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" /> {i18n.t('common.detail')}
1602
1602
  </ContextMenu.Item>
1603
1603
  </CanAccess>
1604
1604
  {/if}
1605
- <ContextMenu.Item onclick={() => navigator.clipboard?.writeText(String(id))} class="gap-2">
1606
- <Copy class="h-4 w-4" /> {i18n.t('common.copyId')}
1605
+ <ContextMenu.Item onclick={() => navigator.clipboard?.writeText(String(id))} class="svadmin-u-77a2a20e90d4">
1606
+ <Copy class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" /> {i18n.t('common.copyId')}
1607
1607
  </ContextMenu.Item>
1608
1608
  {#if canDelete}
1609
1609
  <CanAccess resource={resourceName} action="delete" params={{ id }}>
1610
1610
  <ContextMenu.Separator />
1611
- <ContextMenu.Item onclick={() => confirmDelete(id)} class="gap-2 text-destructive">
1612
- <Trash2 class="h-4 w-4" /> {i18n.t('common.delete')}
1611
+ <ContextMenu.Item onclick={() => confirmDelete(id)} class="svadmin-u-77a2a20e90d4 svadmin-u-811148b13d1e">
1612
+ <Trash2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" /> {i18n.t('common.delete')}
1613
1613
  </ContextMenu.Item>
1614
1614
  </CanAccess>
1615
1615
  {/if}
1616
1616
  </ContextMenu.Content>
1617
1617
  </ContextMenu.Root>
1618
1618
  {#if expandedRowRender && rowIsExpanded(row.id)}
1619
- <Table.Row class="bg-muted/10 border-b border-border/10 transition-all">
1619
+ <Table.Row class="svadmin-u-8a25a995eb8e svadmin-u-65fdbade2025 svadmin-u-945ecb9a9005 svadmin-u-0fe7d7d814d0">
1620
1620
  <Table.Cell colspan={visibleCells.length}>
1621
1621
  {@render expandedRowRender({ record })}
1622
1622
  </Table.Cell>
@@ -1624,19 +1624,19 @@
1624
1624
  {/if}
1625
1625
  {:else}
1626
1626
  <Table.Row>
1627
- <Table.Cell colspan={columns.length} class="h-48 text-center">
1627
+ <Table.Cell colspan={columns.length} class="svadmin-u-3c8ea328c09e svadmin-u-ca6bf63030aa">
1628
1628
  {#if emptyState}
1629
1629
  {@render emptyState()}
1630
1630
  {:else}
1631
- <div class="flex flex-col items-center justify-center py-8">
1632
- <svg class="h-16 w-16 text-muted-foreground/30 mb-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor">
1631
+ <div class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-a1f611f027dd">
1632
+ <svg class="svadmin-u-acaee62117b1 svadmin-u-baceed3462fd svadmin-u-106b502aac96 svadmin-u-da019856f2cc" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor">
1633
1633
  <path stroke-linecap="round" stroke-linejoin="round" d="M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4" />
1634
1634
  </svg>
1635
- <p class="text-sm font-medium text-muted-foreground mb-1">{i18n.t('common.noData')}</p>
1636
- <p class="text-xs text-muted-foreground/60 mb-4">{i18n.t('common.noDataHint')}</p>
1635
+ <p class="svadmin-u-fc7473ca09eb svadmin-u-2689f3958069 svadmin-u-bfa603190748 svadmin-u-65281709dacf">{i18n.t('common.noData')}</p>
1636
+ <p class="svadmin-u-359090c2d529 svadmin-u-7be4d67a6256 svadmin-u-da019856f2cc">{i18n.t('common.noDataHint')}</p>
1637
1637
  {#if canCreate}
1638
- <Button variant="outline" size="sm" class="gap-2" onclick={() => navigation.create(resourceName)}>
1639
- <Plus class="h-3.5 w-3.5" />
1638
+ <Button variant="outline" size="sm" class="svadmin-u-77a2a20e90d4" onclick={() => navigation.create(resourceName)}>
1639
+ <Plus class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c" />
1640
1640
  {i18n.t('common.create')}
1641
1641
  </Button>
1642
1642
  {/if}
@@ -1647,7 +1647,7 @@
1647
1647
  {/each}
1648
1648
  </Table.Body>
1649
1649
  {#if summary}
1650
- <Table.Footer class="bg-muted/30 font-medium">
1650
+ <Table.Footer class="svadmin-u-2859c861d7de svadmin-u-2689f3958069">
1651
1651
  {@render summary({ data: (query.data?.data as BaseRecord[]) ?? [], total: query.data?.total ?? 0, visibleColumnsCount: columns.filter((c) => c.id != null && isColumnVisible(c.id)).length })}
1652
1652
  </Table.Footer>
1653
1653
  {/if}
@@ -1655,16 +1655,16 @@
1655
1655
  </div>
1656
1656
 
1657
1657
  <!-- Mobile Card View (visible only on small screens) -->
1658
- <div class="md:hidden space-y-3 p-2">
1658
+ <div class="svadmin-u-e477a6af4cb6 svadmin-u-6ed543e2fbbb svadmin-u-7660b450905a">
1659
1659
  {#each tableView.rows as row, _i (_i)}
1660
1660
  {@const record = row.original}
1661
1661
  {@const id = record[primaryKey] as string | number}
1662
1662
  <div
1663
- class="rounded-[20px] shadow-[0_4px_20px_rgb(0,0,0,0.03)] ring-1 ring-border/20 bg-card p-5 transition-all {rowIsSelected(row.id) ? 'ring-2 ring-primary/50 bg-primary/5' : ''}"
1663
+ class="svadmin-u-f5c8cc114f47 svadmin-u-633ef3c47872 svadmin-u-3daca9af0861 svadmin-u-a3158643e114 svadmin-u-cd0ad9a56558 svadmin-u-c07e54fd1439 svadmin-u-0fe7d7d814d0 {rowIsSelected(row.id) ? 'svadmin-u-16b1efa5875e svadmin-u-f42e9fee68a1 svadmin-u-989c466fdbe7' : ''}"
1664
1664
  >
1665
1665
  <!-- Card header: ID + select + actions -->
1666
- <div class="flex items-center justify-between mb-3">
1667
- <div class="flex items-center gap-2">
1666
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-1bb883263ed2">
1667
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
1668
1668
  {#if selectable && (canDelete || batchActions)}
1669
1669
  {#if batchActions}
1670
1670
  <Checkbox
@@ -1682,30 +1682,30 @@
1682
1682
  </CanAccess>
1683
1683
  {/if}
1684
1684
  {/if}
1685
- <span class="text-xs font-mono text-muted-foreground">#{id}</span>
1685
+ <span class="svadmin-u-359090c2d529 svadmin-u-0e65706bcccd svadmin-u-bfa603190748">#{id}</span>
1686
1686
  </div>
1687
- <div class="flex items-center gap-1">
1687
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-44ee8ba0a421">
1688
1688
  {#if rowActions}
1689
1689
  {@render rowActions({ record, id })}
1690
1690
  {:else}
1691
1691
  {#if canEdit}
1692
1692
  <CanAccess resource={resourceName} action="edit" params={{ id }}>
1693
1693
  <TooltipButton tooltip={i18n.t('common.edit')} variant="ghost" size="icon-sm" onclick={() => navigation.edit(resourceName, id)}>
1694
- <Pencil class="h-4 w-4" />
1694
+ <Pencil class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1695
1695
  </TooltipButton>
1696
1696
  </CanAccess>
1697
1697
  {/if}
1698
1698
  {#if canShow}
1699
1699
  <CanAccess resource={resourceName} action="show" params={{ id }}>
1700
1700
  <TooltipButton tooltip={i18n.t('common.detail')} variant="ghost" size="icon-sm" onclick={() => openDetail(id)}>
1701
- <Eye class="h-4 w-4" />
1701
+ <Eye class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1702
1702
  </TooltipButton>
1703
1703
  </CanAccess>
1704
1704
  {/if}
1705
1705
  {#if canDelete}
1706
1706
  <CanAccess resource={resourceName} action="delete" params={{ id }}>
1707
- <TooltipButton tooltip={i18n.t('common.delete')} variant="ghost" size="icon-sm" onclick={() => confirmDelete(id)} class="hover:text-destructive">
1708
- <Trash2 class="h-4 w-4" />
1707
+ <TooltipButton tooltip={i18n.t('common.delete')} variant="ghost" size="icon-sm" onclick={() => confirmDelete(id)} class="svadmin-u-51e95020d6f2">
1708
+ <Trash2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
1709
1709
  </TooltipButton>
1710
1710
  </CanAccess>
1711
1711
  {/if}
@@ -1713,29 +1713,29 @@
1713
1713
  </div>
1714
1714
  </div>
1715
1715
  <!-- Card fields -->
1716
- <div class="space-y-2">
1716
+ <div class="svadmin-u-6f7e013d6499">
1717
1717
  {#each visibleFields.filter((field) => isColumnVisible(field.key)).slice(0, 6) as field (field.key)}
1718
1718
  {@const value = record[field.key]}
1719
- <div class="flex items-start justify-between gap-4">
1720
- <span class="text-xs font-medium text-muted-foreground shrink-0">{field.label}</span>
1721
- <span class="text-sm text-right truncate max-w-[60%]">
1719
+ <div class="svadmin-u-60fbb7713999 svadmin-u-60541e1e26f8 svadmin-u-8ef2268efbbc svadmin-u-0c3bc98565dd">
1720
+ <span class="svadmin-u-359090c2d529 svadmin-u-2689f3958069 svadmin-u-bfa603190748 svadmin-u-012fbd121f37">{field.label}</span>
1721
+ <span class="svadmin-u-fc7473ca09eb svadmin-u-308fc069e46e svadmin-u-f283ea9bea0e svadmin-u-897d497e57b6">
1722
1722
  {#if customColumns && field && customColumns[field.key]}
1723
1723
  {@render customColumns[field.key]({ value, record })}
1724
1724
  {:else if defaultCellRenderer && field}
1725
1725
  {@render defaultCellRenderer({ field, value, record })}
1726
1726
  {:else if field.type === 'boolean'}
1727
- <span class="inline-block h-2 w-2 rounded-full {value ? 'bg-success' : 'bg-muted-foreground/30'}"></span>
1727
+ <span class="svadmin-u-bb0c4bfc52bd svadmin-u-2f2a842e50fa svadmin-u-940924b6e2d9 svadmin-u-ac204c108886 {value ? 'svadmin-u-3355648fe22b' : 'svadmin-u-2d56f1807e51'}"></span>
1728
1728
  {:else if field.type === 'date' && value}
1729
1729
  {new Date(value as string).toLocaleDateString()}
1730
1730
  {:else if field.type === 'tags' && Array.isArray(value)}
1731
- <div class="flex flex-wrap gap-1 justify-end">
1731
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-44ee8ba0a421 svadmin-u-77c08e015d14">
1732
1732
  {#each (value as string[]).slice(0, 2) as tag, _i (_i)}
1733
- <Badge variant="secondary" class="text-[10px]">{tag}</Badge>
1733
+ <Badge variant="secondary" class="svadmin-u-1dc571a3609f">{tag}</Badge>
1734
1734
  {/each}
1735
1735
  </div>
1736
1736
  {:else if field.type === 'select' && field.options}
1737
1737
  {@const opt = field.options.find(o => o.value === value)}
1738
- <Badge variant="outline" class="text-[10px]">{opt?.label ?? value ?? '—'}</Badge>
1738
+ <Badge variant="outline" class="svadmin-u-1dc571a3609f">{opt?.label ?? value ?? '—'}</Badge>
1739
1739
  {:else}
1740
1740
  {value ?? '—'}
1741
1741
  {/if}
@@ -1745,11 +1745,11 @@
1745
1745
  </div>
1746
1746
  </div>
1747
1747
  {:else}
1748
- <div class="text-center py-10 text-muted-foreground">
1748
+ <div class="svadmin-u-ca6bf63030aa svadmin-u-1100bef66e60 svadmin-u-bfa603190748">
1749
1749
  {#if emptyState}
1750
1750
  {@render emptyState()}
1751
1751
  {:else}
1752
- <DataState state="empty" class="border-0 bg-transparent px-2 py-4" />
1752
+ <DataState state="empty" class="svadmin-u-119b2aa0b8f6 svadmin-u-7f19cdf4c5bb svadmin-u-d5eab218aa34 svadmin-u-cb11fec3bb46" />
1753
1753
  {/if}
1754
1754
  </div>
1755
1755
  {/each}
@@ -1760,12 +1760,12 @@
1760
1760
 
1761
1761
  <!-- Pagination (shadcn) -->
1762
1762
  {#if totalPages > 0}
1763
- <div class="flex flex-col sm:flex-row items-center justify-between gap-3 px-1 py-2 text-sm text-muted-foreground">
1764
- <div class="flex shrink-0 items-center gap-3 leading-8">
1765
- <span class="shrink-0 whitespace-nowrap tabular-nums">{i18n.t('common.total', { total: query.data?.total ?? 0 })}</span>
1763
+ <div class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-020ba687fa12 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-1004c0c3954c svadmin-u-d8e0e382c67b svadmin-u-03b4dd7f172b svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">
1764
+ <div class="svadmin-u-60fbb7713999 svadmin-u-012fbd121f37 svadmin-u-3960ffc248d9 svadmin-u-1004c0c3954c svadmin-u-c6b7e58a30d8">
1765
+ <span class="svadmin-u-012fbd121f37 svadmin-u-e82ae8be04aa svadmin-u-3032cae0badb">{i18n.t('common.total', { total: query.data?.total ?? 0 })}</span>
1766
1766
  <Select.Root
1767
1767
  aria-label={i18n.t('common.perPage')}
1768
- class="h-8 w-[78px] shrink-0 tabular-nums"
1768
+ class="svadmin-u-ed8a5df7b2fb svadmin-u-d043cad8e3fa svadmin-u-012fbd121f37 svadmin-u-3032cae0badb"
1769
1769
  value={String(pagination.pageSize ?? 10)}
1770
1770
  onchange={(e) => {
1771
1771
  const size = Number((e.currentTarget as HTMLSelectElement).value);
@@ -1795,7 +1795,7 @@
1795
1795
  <PaginationUI.Ellipsis />
1796
1796
  {:else}
1797
1797
  <PaginationUI.Link
1798
- class="tabular-nums"
1798
+ class="svadmin-u-3032cae0badb"
1799
1799
  isActive={page === currentPage}
1800
1800
  onclick={() => goToPage(page as number)}
1801
1801
  >