@svadmin/ui 0.68.0 → 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 +14 -9
@@ -117,17 +117,17 @@
117
117
  </script>
118
118
 
119
119
  <Card.Root>
120
- <Card.CardHeader class="pb-3">
121
- <Card.CardTitle class="flex items-center gap-2 text-base">
122
- <Wand2 class="h-4 w-4" />
120
+ <Card.CardHeader class="svadmin-u-7fcf9124b5df">
121
+ <Card.CardTitle class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-4ee734926ff6">
122
+ <Wand2 class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
123
123
  Resource Inferencer
124
124
  </Card.CardTitle>
125
125
  </Card.CardHeader>
126
- <Card.CardContent class="space-y-4">
126
+ <Card.CardContent class="svadmin-u-3e7ce58d64fa">
127
127
  <!-- Resource selector -->
128
- <div class="flex gap-2">
128
+ <div class="svadmin-u-60fbb7713999 svadmin-u-77a2a20e90d4">
129
129
  <Select
130
- class="flex-1"
130
+ class="svadmin-u-36e579c0b41c"
131
131
  bind:value={selectedResource}
132
132
  placeholder="— Select a resource —"
133
133
  >
@@ -135,10 +135,10 @@
135
135
  <option value={res.name}>{res.label} ({res.name})</option>
136
136
  {/each}
137
137
  </Select>
138
- <span class="flex items-center text-xs text-muted-foreground">or</span>
138
+ <span class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-359090c2d529 svadmin-u-bfa603190748">or</span>
139
139
  <Input
140
140
  type="text"
141
- class="w-36"
141
+ class="svadmin-u-df403bbae8fc"
142
142
  placeholder="custom endpoint"
143
143
  bind:value={customEndpoint}
144
144
  />
@@ -146,53 +146,53 @@
146
146
 
147
147
  <Button size="sm" onclick={runInference} disabled={loading || (!selectedResource && !customEndpoint.trim())}>
148
148
  {#if loading}
149
- <Loader2 class="h-3 w-3 animate-spin" data-icon="inline-start" />
149
+ <Loader2 class="svadmin-u-6a60c09e6aaa svadmin-u-9cea05671a29 svadmin-u-afbdd13a380e" data-icon="inline-start" />
150
150
  Inferring...
151
151
  {:else}
152
- <RefreshCw class="h-3 w-3" data-icon="inline-start" />
152
+ <RefreshCw class="svadmin-u-6a60c09e6aaa svadmin-u-9cea05671a29" data-icon="inline-start" />
153
153
  Infer Fields
154
154
  {/if}
155
155
  </Button>
156
156
 
157
157
  {#if error}
158
158
  <Alert.Root variant="destructive">
159
- <AlertCircle class="h-4 w-4" />
159
+ <AlertCircle class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
160
160
  <Alert.Description>{error}</Alert.Description>
161
161
  </Alert.Root>
162
162
  {/if}
163
163
 
164
164
  {#if loading}
165
- <div class="space-y-2">
165
+ <div class="svadmin-u-6f7e013d6499">
166
166
  {#each Array(4) as _, _i (_i)}
167
- <Skeleton class="h-8 w-full" />
167
+ <Skeleton class="svadmin-u-ed8a5df7b2fb svadmin-u-6da6a3c3f741" />
168
168
  {/each}
169
169
  </div>
170
170
  {/if}
171
171
 
172
172
  {#if inferResult}
173
173
  <!-- Field table -->
174
- <ScrollArea class="max-h-80">
174
+ <ScrollArea class="svadmin-u-e5738cbd2714">
175
175
  <Table.Root>
176
176
  <Table.Header>
177
- <Table.Row class="bg-muted/50">
177
+ <Table.Row class="svadmin-u-358af0b65a31">
178
178
  <Table.Head>Field</Table.Head>
179
179
  <Table.Head>Type</Table.Head>
180
- <Table.Head class="text-center">List</Table.Head>
181
- <Table.Head class="text-center">Form</Table.Head>
180
+ <Table.Head class="svadmin-u-ca6bf63030aa">List</Table.Head>
181
+ <Table.Head class="svadmin-u-ca6bf63030aa">Form</Table.Head>
182
182
  </Table.Row>
183
183
  </Table.Header>
184
184
  <Table.Body>
185
185
  {#each inferResult.fields as field, _i (_i)}
186
186
  <Table.Row>
187
- <Table.Cell class="font-mono text-xs">{field.key}</Table.Cell>
187
+ <Table.Cell class="svadmin-u-0e65706bcccd svadmin-u-359090c2d529">{field.key}</Table.Cell>
188
188
  <Table.Cell>
189
189
  <Badge variant={typeVariants[field.type] ?? 'secondary'}>
190
190
  {field.type}
191
191
  {#if field.resource}→ {field.resource}{/if}
192
192
  </Badge>
193
193
  </Table.Cell>
194
- <Table.Cell class="text-center">{field.showInList ? '✓' : '—'}</Table.Cell>
195
- <Table.Cell class="text-center">{field.showInForm ? '✓' : '—'}</Table.Cell>
194
+ <Table.Cell class="svadmin-u-ca6bf63030aa">{field.showInList ? '✓' : '—'}</Table.Cell>
195
+ <Table.Cell class="svadmin-u-ca6bf63030aa">{field.showInForm ? '✓' : '—'}</Table.Cell>
196
196
  </Table.Row>
197
197
  {/each}
198
198
  </Table.Body>
@@ -200,13 +200,13 @@
200
200
  </ScrollArea>
201
201
 
202
202
  <!-- Generated code -->
203
- <div class="rounded-lg border overflow-hidden">
204
- <div class="flex flex-wrap items-center justify-between gap-1 bg-muted px-3 py-1.5 text-xs text-muted-foreground border-b">
205
- <div class="flex items-center gap-1">
203
+ <div class="svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-2cd02d11d1af">
204
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-44ee8ba0a421 svadmin-u-2ef11f1cb219 svadmin-u-0e17f2bd9074 svadmin-u-ec0091ee009b svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-65fdbade2025">
205
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-44ee8ba0a421">
206
206
  <Button
207
207
  variant={codeTarget === 'resource' ? 'secondary' : 'ghost'}
208
208
  size="sm"
209
- class="h-6 text-xs px-2"
209
+ class="svadmin-u-f6fe902450dc svadmin-u-359090c2d529 svadmin-u-d5eab218aa34"
210
210
  onclick={() => { codeTarget = 'resource'; }}
211
211
  >
212
212
  Resource (TS)
@@ -214,7 +214,7 @@
214
214
  <Button
215
215
  variant={codeTarget === 'typebox' ? 'secondary' : 'ghost'}
216
216
  size="sm"
217
- class="h-6 text-xs px-2"
217
+ class="svadmin-u-f6fe902450dc svadmin-u-359090c2d529 svadmin-u-d5eab218aa34"
218
218
  onclick={() => { codeTarget = 'typebox'; }}
219
219
  >
220
220
  TypeBox Schema
@@ -222,7 +222,7 @@
222
222
  <Button
223
223
  variant={codeTarget === 'list' ? 'secondary' : 'ghost'}
224
224
  size="sm"
225
- class="h-6 text-xs px-2"
225
+ class="svadmin-u-f6fe902450dc svadmin-u-359090c2d529 svadmin-u-d5eab218aa34"
226
226
  onclick={() => { codeTarget = 'list'; }}
227
227
  >
228
228
  List Page
@@ -230,7 +230,7 @@
230
230
  <Button
231
231
  variant={codeTarget === 'create' ? 'secondary' : 'ghost'}
232
232
  size="sm"
233
- class="h-6 text-xs px-2"
233
+ class="svadmin-u-f6fe902450dc svadmin-u-359090c2d529 svadmin-u-d5eab218aa34"
234
234
  onclick={() => { codeTarget = 'create'; }}
235
235
  >
236
236
  Create Form
@@ -238,7 +238,7 @@
238
238
  <Button
239
239
  variant={codeTarget === 'edit' ? 'secondary' : 'ghost'}
240
240
  size="sm"
241
- class="h-6 text-xs px-2"
241
+ class="svadmin-u-f6fe902450dc svadmin-u-359090c2d529 svadmin-u-d5eab218aa34"
242
242
  onclick={() => { codeTarget = 'edit'; }}
243
243
  >
244
244
  Edit Form
@@ -246,26 +246,26 @@
246
246
  <Button
247
247
  variant={codeTarget === 'show' ? 'secondary' : 'ghost'}
248
248
  size="sm"
249
- class="h-6 text-xs px-2"
249
+ class="svadmin-u-f6fe902450dc svadmin-u-359090c2d529 svadmin-u-d5eab218aa34"
250
250
  onclick={() => { codeTarget = 'show'; }}
251
251
  >
252
252
  Show Page
253
253
  </Button>
254
254
  </div>
255
- <Button variant="ghost" size="sm" class="h-6 text-xs gap-1" onclick={copyCode}>
255
+ <Button variant="ghost" size="sm" class="svadmin-u-f6fe902450dc svadmin-u-359090c2d529 svadmin-u-44ee8ba0a421" onclick={copyCode}>
256
256
  {#if copied}
257
- <Check class="h-3 w-3 text-success" />
258
- <span class="text-success">Copied!</span>
257
+ <Check class="svadmin-u-6a60c09e6aaa svadmin-u-9cea05671a29 svadmin-u-76747e5e02ff" />
258
+ <span class="svadmin-u-76747e5e02ff">Copied!</span>
259
259
  {:else}
260
- <Copy class="h-3 w-3" />
260
+ <Copy class="svadmin-u-6a60c09e6aaa svadmin-u-9cea05671a29" />
261
261
  Copy
262
262
  {/if}
263
263
  </Button>
264
264
  </div>
265
- <pre class="max-h-64 overflow-auto bg-muted/30 p-3 text-xs text-foreground font-mono">{activeCode}</pre>
265
+ <pre class="svadmin-u-8aee2b07b47d svadmin-u-73fc3fb18ceb svadmin-u-2859c861d7de svadmin-u-eb6e8b881acd svadmin-u-359090c2d529 svadmin-u-d4108abe6359 svadmin-u-0e65706bcccd">{activeCode}</pre>
266
266
  </div>
267
267
 
268
- <p class="text-xs text-muted-foreground">
268
+ <p class="svadmin-u-359090c2d529 svadmin-u-bfa603190748">
269
269
  Inferred {inferResult.fields.length} fields from sample data. Copy the code above into your Svelte 5 application files.
270
270
  </p>
271
271
  {/if}
@@ -55,14 +55,14 @@
55
55
  }
56
56
  </script>
57
57
 
58
- <div class="space-y-2">
58
+ <div class="svadmin-u-6f7e013d6499">
59
59
  {#if query.isLoading}
60
60
  {#if loadingSkeleton}
61
61
  {@render loadingSkeleton()}
62
62
  {:else}
63
- <div class="space-y-3">
63
+ <div class="svadmin-u-6ed543e2fbbb">
64
64
  {#each Array(5) as _, _i (_i)}
65
- <Skeleton class="h-16 w-full rounded-lg" />
65
+ <Skeleton class="svadmin-u-acaee62117b1 svadmin-u-6da6a3c3f741 svadmin-u-5f22e64f2282" />
66
66
  {/each}
67
67
  </div>
68
68
  {/if}
@@ -70,7 +70,7 @@
70
70
  {#if empty}
71
71
  {@render empty()}
72
72
  {:else}
73
- <p class="text-center text-sm text-muted-foreground py-8">{i18n.t('empty.title')}</p>
73
+ <p class="svadmin-u-ca6bf63030aa svadmin-u-fc7473ca09eb svadmin-u-bfa603190748 svadmin-u-a1f611f027dd">{i18n.t('empty.title')}</p>
74
74
  {/if}
75
75
  {:else}
76
76
  {#each allItems as item, index (index)}
@@ -80,16 +80,16 @@
80
80
  {/each}
81
81
 
82
82
  {#if isFetchingNextPage}
83
- <div class="flex justify-center py-4">
84
- <Loader2 class="h-5 w-5 animate-spin text-muted-foreground" />
83
+ <div class="svadmin-u-60fbb7713999 svadmin-u-86843cf1e227 svadmin-u-cb11fec3bb46">
84
+ <Loader2 class="svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e svadmin-u-afbdd13a380e svadmin-u-bfa603190748" />
85
85
  </div>
86
86
  {/if}
87
87
 
88
88
  {#if hasNextPage}
89
89
  <!-- Sentinel for infinite scroll -->
90
- <div use:intersect={loadMore} class="h-1"></div>
90
+ <div use:intersect={loadMore} class="svadmin-u-3a1268a4e17f"></div>
91
91
  {:else}
92
- <p class="text-center text-xs text-muted-foreground py-2">{i18n.t('empty.noMore')}</p>
92
+ <p class="svadmin-u-ca6bf63030aa svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-03b4dd7f172b">{i18n.t('empty.noMore')}</p>
93
93
  {/if}
94
94
  {/if}
95
95
  </div>
@@ -77,7 +77,7 @@
77
77
  </script>
78
78
 
79
79
  {#if editing}
80
- <div class="relative flex items-center w-full">
80
+ <div class="svadmin-u-d89972fe17d6 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-6da6a3c3f741">
81
81
  <input
82
82
  bind:this={inputRef}
83
83
  type={field.type === 'number' ? 'number' : 'text'}
@@ -86,17 +86,17 @@
86
86
  onblur={handleBlur}
87
87
  disabled={saving}
88
88
  aria-label={fieldLabel}
89
- class="h-7 w-full rounded border bg-background px-2 text-sm outline-none ring-1 ring-primary/50 focus:ring-2 focus:ring-primary transition-all disabled:opacity-60"
89
+ class="svadmin-u-d0a52b312f7d svadmin-u-6da6a3c3f741 svadmin-u-07389a777c1f svadmin-u-ca6bcd4b6f3f svadmin-u-e6f9e383a762 svadmin-u-d5eab218aa34 svadmin-u-fc7473ca09eb svadmin-u-df37b1fd9495 svadmin-u-3daca9af0861 svadmin-u-f42e9fee68a1 svadmin-u-608dd26cd5ba svadmin-u-1a5f9520d7fa svadmin-u-0fe7d7d814d0 svadmin-u-d463b664011d"
90
90
  />
91
91
  {#if saving}
92
- <span class="absolute right-2 flex items-center pointer-events-none" role="status" aria-label="Saving...">
93
- <Loader2 class="size-3.5 animate-spin text-muted-foreground" aria-hidden="true" />
92
+ <span class="svadmin-u-da4dbfbc4fdc svadmin-u-7b2d63937d23 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-a4326536b8f5" role="status" aria-label="Saving...">
93
+ <Loader2 class="svadmin-u-783b0d9d1e2c svadmin-u-afbdd13a380e svadmin-u-bfa603190748" aria-hidden="true" />
94
94
  </span>
95
95
  {/if}
96
96
  </div>
97
97
  {:else}
98
98
  <span
99
- class="inline-flex items-center cursor-pointer rounded px-1.5 py-0.5 -mx-1 text-sm text-foreground hover:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 transition-colors"
99
+ class="svadmin-u-52083e7da442 svadmin-u-3960ffc248d9 svadmin-u-34516836730d svadmin-u-07389a777c1f svadmin-u-45d828117213 svadmin-u-465609a240a8 svadmin-u-76610325273f svadmin-u-fc7473ca09eb svadmin-u-d4108abe6359 svadmin-u-2a6233dc87a9 svadmin-u-f10f771f87e9 svadmin-u-793c80e97ffb svadmin-u-9c1295a6914a svadmin-u-ce4edccf4cbb svadmin-u-ceb69a6b0e5f"
100
100
  ondblclick={startEdit}
101
101
  title={`Double-click to edit ${fieldLabel}`}
102
102
  role="button"
@@ -32,21 +32,21 @@
32
32
  const displayedIntegrations = $derived(integrations ?? defaultIntegrations);
33
33
  </script>
34
34
 
35
- <div class="space-y-6">
36
- <div><h2 class="text-xl font-semibold text-foreground">{i18n.t('settings.integrations')}</h2><p class="mt-1 text-sm text-muted-foreground">{i18n.t('settings.integrationsDescription')}</p></div>
35
+ <div class="svadmin-u-b3542e058833">
36
+ <div><h2 class="svadmin-u-d5c9b0001e7e svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{i18n.t('settings.integrations')}</h2><p class="svadmin-u-b6b02c0ebef6 svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">{i18n.t('settings.integrationsDescription')}</p></div>
37
37
  <SettingsGroup title={i18n.t('settings.integrations')} description={i18n.t('integrations.addMoreHint')}>
38
- <div class="divide-y divide-border">
38
+ <div class="svadmin-u-fa6acbf81d74 svadmin-u-e783642739e3">
39
39
  {#each displayedIntegrations as integration (integration.id)}
40
40
  <SettingsFieldRow label={integration.name} description={integration.description}>
41
41
  {#snippet control()}
42
- <div class="flex items-center gap-3">
42
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-1004c0c3954c">
43
43
  {#if integration.connected !== undefined}
44
44
  <StatusBadge status={integration.connected ? 'success' : 'neutral'} label={integration.connected ? i18n.t('integrations.statusConnected') : i18n.t('integrations.statusDisconnected')} />
45
45
  {#if onConnectionChange}
46
46
  <Switch checked={integration.connected} onCheckedChange={(checked) => onConnectionChange?.(integration.id, checked)} aria-label={integration.name} />
47
47
  {/if}
48
48
  {:else}
49
- <span class="text-xs text-muted-foreground">{i18n.t('integrations.statusProvidedByHost')}</span>
49
+ <span class="svadmin-u-359090c2d529 svadmin-u-bfa603190748">{i18n.t('integrations.statusProvidedByHost')}</span>
50
50
  {/if}
51
51
  </div>
52
52
  {/snippet}
@@ -66,29 +66,29 @@
66
66
 
67
67
  <form
68
68
  onsubmit={handleSubmit}
69
- class={cn('space-y-4 rounded-xl border border-border bg-card p-6 shadow-xs text-xs', className)}
69
+ class={cn('svadmin-u-3e7ce58d64fa svadmin-u-a217b4eaa918 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-0478c89a150f svadmin-u-cef5b893cf23 svadmin-u-359090c2d529', className)}
70
70
  >
71
71
  {#if schema.title}
72
- <div class="pb-2 border-b border-border/60">
73
- <h3 class="text-sm font-semibold text-foreground">{schema.title}</h3>
72
+ <div class="svadmin-u-f4cc511ff0c1 svadmin-u-65fdbade2025 svadmin-u-05faf5c801ff">
73
+ <h3 class="svadmin-u-fc7473ca09eb svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{schema.title}</h3>
74
74
  {#if schema.description}
75
- <p class="text-xs text-muted-foreground mt-0.5">{schema.description}</p>
75
+ <p class="svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-15e1b1f444fe">{schema.description}</p>
76
76
  {/if}
77
77
  </div>
78
78
  {/if}
79
79
 
80
- <div class="space-y-3.5">
80
+ <div class="svadmin-u-9c6cdfa2ba3d">
81
81
  {#each properties as field (field.key)}
82
- <div class="space-y-1">
83
- <label for="json_field_{field.key}" class="block font-medium text-foreground">
82
+ <div class="svadmin-u-da7c36cd8867">
83
+ <label for="json_field_{field.key}" class="svadmin-u-0214b4b355d1 svadmin-u-2689f3958069 svadmin-u-d4108abe6359">
84
84
  {field.title}
85
85
  {#if field.required}
86
- <span class="text-destructive">*</span>
86
+ <span class="svadmin-u-811148b13d1e">*</span>
87
87
  {/if}
88
88
  </label>
89
89
 
90
90
  {#if field.description}
91
- <p class="text-[11px] text-muted-foreground">{field.description}</p>
91
+ <p class="svadmin-u-d058ca6de60f svadmin-u-bfa603190748">{field.description}</p>
92
92
  {/if}
93
93
 
94
94
  {#if field.enum}
@@ -97,7 +97,7 @@
97
97
  required={field.required}
98
98
  value={String(value[field.key] ?? field.default ?? '')}
99
99
  onchange={(e) => updateValue(field.key, e.currentTarget.value)}
100
- class="h-8 w-full rounded-md border border-input bg-background px-2 text-xs focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
100
+ class="svadmin-u-ed8a5df7b2fb svadmin-u-6da6a3c3f741 svadmin-u-421ac2be5045 svadmin-u-ca6bcd4b6f3f svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-d5eab218aa34 svadmin-u-359090c2d529 svadmin-u-f10f771f87e9 svadmin-u-3e94a98e1466 svadmin-u-9c1295a6914a"
101
101
  >
102
102
  <option value="">Select an option...</option>
103
103
  {#each field.enum as option (option)}
@@ -105,15 +105,15 @@
105
105
  {/each}
106
106
  </select>
107
107
  {:else if field.type === 'boolean'}
108
- <div class="flex items-center gap-2 pt-1">
108
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-6b7d6e21ccbd">
109
109
  <input
110
110
  id="json_field_{field.key}"
111
111
  type="checkbox"
112
112
  checked={Boolean(value[field.key] ?? field.default)}
113
113
  onchange={(e) => updateValue(field.key, e.currentTarget.checked)}
114
- class="h-4 w-4 rounded border-border text-primary focus:ring-primary/20 cursor-pointer"
114
+ class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-07389a777c1f svadmin-u-18049387f0af svadmin-u-20aaf08a7ed1 svadmin-u-4df2b13689a4 svadmin-u-34516836730d"
115
115
  />
116
- <span class="text-xs text-muted-foreground">{field.title}</span>
116
+ <span class="svadmin-u-359090c2d529 svadmin-u-bfa603190748">{field.title}</span>
117
117
  </div>
118
118
  {:else if field.type === 'number' || field.type === 'integer'}
119
119
  <input
@@ -122,7 +122,7 @@
122
122
  required={field.required}
123
123
  value={Number(value[field.key] ?? field.default ?? 0)}
124
124
  oninput={(e) => updateValue(field.key, Number(e.currentTarget.value))}
125
- class="h-8 w-full rounded-md border border-input bg-background px-2 text-xs focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
125
+ class="svadmin-u-ed8a5df7b2fb svadmin-u-6da6a3c3f741 svadmin-u-421ac2be5045 svadmin-u-ca6bcd4b6f3f svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-d5eab218aa34 svadmin-u-359090c2d529 svadmin-u-f10f771f87e9 svadmin-u-3e94a98e1466 svadmin-u-9c1295a6914a"
126
126
  />
127
127
  {:else}
128
128
  <input
@@ -131,17 +131,17 @@
131
131
  required={field.required}
132
132
  value={String(value[field.key] ?? field.default ?? '')}
133
133
  oninput={(e) => updateValue(field.key, e.currentTarget.value)}
134
- class="h-8 w-full rounded-md border border-input bg-background px-2 text-xs focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
134
+ class="svadmin-u-ed8a5df7b2fb svadmin-u-6da6a3c3f741 svadmin-u-421ac2be5045 svadmin-u-ca6bcd4b6f3f svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-d5eab218aa34 svadmin-u-359090c2d529 svadmin-u-f10f771f87e9 svadmin-u-3e94a98e1466 svadmin-u-9c1295a6914a"
135
135
  />
136
136
  {/if}
137
137
  </div>
138
138
  {/each}
139
139
  </div>
140
140
 
141
- <div class="pt-4 border-t border-border/60 flex justify-end">
142
- <Button type="submit" size="sm" disabled={isSubmitting} class="gap-1 min-w-24">
141
+ <div class="svadmin-u-173fa8f06789 svadmin-u-b950dda299d3 svadmin-u-05faf5c801ff svadmin-u-60fbb7713999 svadmin-u-77c08e015d14">
142
+ <Button type="submit" size="sm" disabled={isSubmitting} class="svadmin-u-44ee8ba0a421 svadmin-u-25effcb585ab">
143
143
  {#if isSubmitting}
144
- <Loader2 class="h-3.5 w-3.5 animate-spin" />
144
+ <Loader2 class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c svadmin-u-afbdd13a380e" />
145
145
  {/if}
146
146
  {submitText}
147
147
  </Button>
@@ -91,32 +91,32 @@
91
91
  function getPriorityClass(priority?: string) {
92
92
  switch (priority) {
93
93
  case 'urgent':
94
- return 'bg-destructive/15 text-destructive border-destructive/30';
94
+ return 'svadmin-u-c698f77c9ba5 svadmin-u-811148b13d1e svadmin-u-9d5d8b4711b4';
95
95
  case 'high':
96
- return 'bg-warning/15 text-warning border-warning/30';
96
+ return 'svadmin-u-d9c3c520f7d5 svadmin-u-918184635b1d svadmin-u-2f960aa0c478';
97
97
  case 'medium':
98
- return 'bg-primary/10 text-primary border-primary/20';
98
+ return 'svadmin-u-375dc44df6e9 svadmin-u-20aaf08a7ed1 svadmin-u-a6afccfc915b';
99
99
  default:
100
- return 'bg-muted text-muted-foreground border-border/40';
100
+ return 'svadmin-u-2ef11f1cb219 svadmin-u-bfa603190748 svadmin-u-6ee2d41e2d2d';
101
101
  }
102
102
  }
103
103
  </script>
104
104
 
105
- <div class={cn('flex gap-4 overflow-x-auto pb-4 text-xs select-none', className)}>
105
+ <div class={cn('svadmin-u-60fbb7713999 svadmin-u-0c3bc98565dd svadmin-u-1384f66f41d0 svadmin-u-9fcd8a13827e svadmin-u-359090c2d529 svadmin-u-7f6912283f11', className)}>
106
106
  {#each columns as col (col.id)}
107
107
  {@const colCards = cards.filter((c) => c.columnId === col.id)}
108
108
  <div
109
109
  role="region"
110
110
  aria-label={col.title}
111
- class="flex flex-col w-72 shrink-0 rounded-xl border border-border/70 bg-card/60 shadow-xs max-h-[80vh]"
111
+ class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-92e13d146fd7 svadmin-u-012fbd121f37 svadmin-u-a217b4eaa918 svadmin-u-ca6bcd4b6f3f svadmin-u-22bb278694b4 svadmin-u-7f351d50b6e6 svadmin-u-cef5b893cf23 svadmin-u-a4805b5f5b63"
112
112
  ondragover={handleDragOver}
113
113
  ondrop={() => handleDrop(col.id)}
114
114
  >
115
115
  <!-- Column Header -->
116
- <div class="flex items-center justify-between p-3 border-b border-border/50">
117
- <div class="flex items-center gap-2 font-semibold text-foreground">
116
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-eb6e8b881acd svadmin-u-65fdbade2025 svadmin-u-591f378e24a1">
117
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">
118
118
  <span>{col.title}</span>
119
- <span class="flex h-5 w-5 items-center justify-center rounded-full bg-muted text-[10px] font-mono text-muted-foreground">
119
+ <span class="svadmin-u-60fbb7713999 svadmin-u-cd0d9c512cdc svadmin-u-72470489ff4e svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-ac204c108886 svadmin-u-2ef11f1cb219 svadmin-u-1dc571a3609f svadmin-u-0e65706bcccd svadmin-u-bfa603190748">
120
120
  {colCards.length}
121
121
  </span>
122
122
  </div>
@@ -125,59 +125,59 @@
125
125
  <Button
126
126
  variant="ghost"
127
127
  size="sm"
128
- class="h-6 w-6 p-0 text-muted-foreground hover:text-foreground"
128
+ class="svadmin-u-f6fe902450dc svadmin-u-7ec10f86d9b1 svadmin-u-8a539c7fe216 svadmin-u-bfa603190748 svadmin-u-ea7b2e9e070e"
129
129
  onclick={() => {
130
130
  addingColumnId = col.id;
131
131
  newCardTitle = '';
132
132
  }}
133
133
  >
134
- <Plus class="h-3.5 w-3.5" />
134
+ <Plus class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c" />
135
135
  </Button>
136
136
  {/if}
137
137
  </div>
138
138
 
139
139
  <!-- Column Card List -->
140
- <div class="flex-1 overflow-y-auto p-2 space-y-2 min-h-24">
140
+ <div class="svadmin-u-36e579c0b41c svadmin-u-92bf82f493b1 svadmin-u-7660b450905a svadmin-u-6f7e013d6499 svadmin-u-53ecdb131b58">
141
141
  {#each colCards as card (card.id)}
142
142
  <div
143
143
  role="button"
144
144
  tabindex="0"
145
145
  draggable="true"
146
146
  class={cn(
147
- 'group relative flex flex-col gap-2 rounded-lg border border-border/60 bg-card p-3 shadow-xs transition-all cursor-grab active:cursor-grabbing hover:border-border hover:shadow-sm text-left',
148
- draggedCardId === card.id ? 'opacity-40 ring-2 ring-primary/40' : ''
147
+ 'group svadmin-u-d89972fe17d6 svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-77a2a20e90d4 svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-05faf5c801ff svadmin-u-cd0ad9a56558 svadmin-u-eb6e8b881acd svadmin-u-cef5b893cf23 svadmin-u-0fe7d7d814d0 svadmin-u-8d08385288a6 svadmin-u-d9bff91ef7ee svadmin-u-512e82e6a68f svadmin-u-ab1dd417ce7d svadmin-u-2eba0d65d059',
148
+ draggedCardId === card.id ? 'svadmin-u-2a2db4667b27 svadmin-u-16b1efa5875e svadmin-u-2691847b25ed' : ''
149
149
  )}
150
150
  ondragstart={(e) => handleDragStart(e, card.id)}
151
151
  onclick={() => oncardclick?.(card)}
152
152
  onkeydown={(e) => { if (e.key === 'Enter') oncardclick?.(card); }}
153
153
  >
154
- <div class="flex items-start justify-between gap-2">
155
- <div class="font-medium text-foreground leading-snug">{card.title}</div>
156
- <GripVertical class="h-3.5 w-3.5 text-muted-foreground/40 opacity-0 group-hover:opacity-100 transition-opacity shrink-0" />
154
+ <div class="svadmin-u-60fbb7713999 svadmin-u-60541e1e26f8 svadmin-u-8ef2268efbbc svadmin-u-77a2a20e90d4">
155
+ <div class="svadmin-u-2689f3958069 svadmin-u-d4108abe6359 svadmin-u-e25ca6535dea">{card.title}</div>
156
+ <GripVertical class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c svadmin-u-52183a1cca53 svadmin-u-7065497e1ca0 svadmin-u-181f3d6c9821 svadmin-u-67d6184a0024 svadmin-u-012fbd121f37" />
157
157
  </div>
158
158
 
159
159
  {#if card.description}
160
- <div class="text-[11px] text-muted-foreground line-clamp-2">{card.description}</div>
160
+ <div class="svadmin-u-d058ca6de60f svadmin-u-bfa603190748 svadmin-u-054cb4e36116">{card.description}</div>
161
161
  {/if}
162
162
 
163
- <div class="flex flex-wrap items-center justify-between gap-1.5 pt-1 border-t border-border/40 text-[10px]">
164
- <div class="flex flex-wrap items-center gap-1">
163
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-58284b4ea568 svadmin-u-6b7d6e21ccbd svadmin-u-b950dda299d3 svadmin-u-6ee2d41e2d2d svadmin-u-1dc571a3609f">
164
+ <div class="svadmin-u-60fbb7713999 svadmin-u-1eb5c6df38c1 svadmin-u-3960ffc248d9 svadmin-u-44ee8ba0a421">
165
165
  {#if card.priority}
166
- <Badge variant="outline" class={cn('text-[9px] px-1 py-0 uppercase font-mono font-medium', getPriorityClass(card.priority))}>
166
+ <Badge variant="outline" class={cn('svadmin-u-e09880869d1f svadmin-u-d8e0e382c67b svadmin-u-68ecb30dbec6 uppercase svadmin-u-0e65706bcccd svadmin-u-2689f3958069', getPriorityClass(card.priority))}>
167
167
  {card.priority}
168
168
  </Badge>
169
169
  {/if}
170
170
  {#each card.tags ?? [] as tag (tag)}
171
- <span class="rounded bg-muted/60 px-1 py-0.5 text-muted-foreground">#{tag}</span>
171
+ <span class="svadmin-u-07389a777c1f svadmin-u-706701550477 svadmin-u-d8e0e382c67b svadmin-u-465609a240a8 svadmin-u-bfa603190748">#{tag}</span>
172
172
  {/each}
173
173
  </div>
174
174
 
175
175
  {#if card.assignee}
176
- <div class="flex items-center gap-1 text-muted-foreground">
177
- <div class="flex h-4 w-4 items-center justify-center rounded-full bg-primary/20 text-[9px] font-semibold text-primary">
176
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-44ee8ba0a421 svadmin-u-bfa603190748">
177
+ <div class="svadmin-u-60fbb7713999 svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-ac204c108886 svadmin-u-6a1572b6bf5a svadmin-u-e09880869d1f svadmin-u-e83a7042bc91 svadmin-u-20aaf08a7ed1">
178
178
  {card.assignee.name.slice(0, 1).toUpperCase()}
179
179
  </div>
180
- <span class="truncate max-w-16">{card.assignee.name}</span>
180
+ <span class="svadmin-u-f283ea9bea0e svadmin-u-2534f14adad5">{card.assignee.name}</span>
181
181
  </div>
182
182
  {/if}
183
183
  </div>
@@ -185,12 +185,12 @@
185
185
  {/each}
186
186
 
187
187
  {#if addingColumnId === col.id}
188
- <div class="rounded-lg border border-primary/40 bg-card p-2.5 space-y-2 shadow-xs">
188
+ <div class="svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-f5583b2907be svadmin-u-cd0ad9a56558 svadmin-u-9fe52d5d506c svadmin-u-6f7e013d6499 svadmin-u-cef5b893cf23">
189
189
  <textarea
190
190
  bind:value={newCardTitle}
191
191
  placeholder="Card title..."
192
192
  rows={2}
193
- class="w-full rounded border border-input bg-background p-1.5 text-xs text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-none"
193
+ class="svadmin-u-6da6a3c3f741 svadmin-u-07389a777c1f svadmin-u-ca6bcd4b6f3f svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-cd009d7d208c svadmin-u-359090c2d529 svadmin-u-d4108abe6359 svadmin-u-9c24ab70af61 svadmin-u-f10f771f87e9 svadmin-u-3e94a98e1466 svadmin-u-9c1295a6914a svadmin-u-6aef32016896"
194
194
  onkeydown={(e) => {
195
195
  if (e.key === 'Enter' && !e.shiftKey) {
196
196
  e.preventDefault();
@@ -200,9 +200,9 @@
200
200
  }
201
201
  }}
202
202
  ></textarea>
203
- <div class="flex items-center justify-end gap-1.5">
204
- <Button variant="ghost" size="sm" class="h-6 text-[11px] px-2" onclick={() => { addingColumnId = null; }}>Cancel</Button>
205
- <Button size="sm" class="h-6 text-[11px] px-2" onclick={() => submitAddCard(col.id)}>Add</Button>
203
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77c08e015d14 svadmin-u-58284b4ea568">
204
+ <Button variant="ghost" size="sm" class="svadmin-u-f6fe902450dc svadmin-u-d058ca6de60f svadmin-u-d5eab218aa34" onclick={() => { addingColumnId = null; }}>Cancel</Button>
205
+ <Button size="sm" class="svadmin-u-f6fe902450dc svadmin-u-d058ca6de60f svadmin-u-d5eab218aa34" onclick={() => submitAddCard(col.id)}>Add</Button>
206
206
  </div>
207
207
  </div>
208
208
  {/if}
@@ -36,21 +36,21 @@
36
36
  </script>
37
37
 
38
38
  <Dialog.Root bind:open>
39
- <Dialog.Content class="max-w-md">
39
+ <Dialog.Content class="svadmin-u-9794ab45094d">
40
40
  <Dialog.Header>
41
41
  <Dialog.Title>{i18n.t('common.keyboardShortcuts') || 'Keyboard Shortcuts'}</Dialog.Title>
42
42
  </Dialog.Header>
43
- <div class="space-y-4 py-2">
43
+ <div class="svadmin-u-3e7ce58d64fa svadmin-u-03b4dd7f172b">
44
44
  {#each shortcuts as group, _i (_i)}
45
45
  <div>
46
- <h4 class="text-xs font-semibold uppercase tracking-wider text-muted-foreground mb-2">{group.group}</h4>
47
- <div class="space-y-1.5">
46
+ <h4 class="svadmin-u-359090c2d529 svadmin-u-e83a7042bc91 uppercase svadmin-u-09ace3a4d9f5 svadmin-u-bfa603190748 svadmin-u-a77ed4d908c0">{group.group}</h4>
47
+ <div class="svadmin-u-5a2508227c6a">
48
48
  {#each group.items as shortcut, _i (_i)}
49
- <div class="flex items-center justify-between py-1">
50
- <span class="text-sm text-foreground">{shortcut.label}</span>
51
- <div class="flex items-center gap-1">
49
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-660d2effb880">
50
+ <span class="svadmin-u-fc7473ca09eb svadmin-u-d4108abe6359">{shortcut.label}</span>
51
+ <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-44ee8ba0a421">
52
52
  {#each shortcut.keys as key, _i (_i)}
53
- <kbd class="inline-flex h-5 min-w-5 items-center justify-center rounded border bg-muted px-1.5 text-[10px] font-medium font-mono text-muted-foreground">{key}</kbd>
53
+ <kbd class="svadmin-u-52083e7da442 svadmin-u-cd0d9c512cdc svadmin-u-f8516763aedd svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-07389a777c1f svadmin-u-ca6bcd4b6f3f svadmin-u-2ef11f1cb219 svadmin-u-45d828117213 svadmin-u-1dc571a3609f svadmin-u-2689f3958069 svadmin-u-0e65706bcccd svadmin-u-bfa603190748">{key}</kbd>
54
54
  {/each}
55
55
  </div>
56
56
  </div>