@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
@@ -10,13 +10,16 @@
10
10
 
11
11
  <button
12
12
  aria-label="Go to previous page"
13
+ data-svadmin-button
14
+ data-variant="ghost"
15
+ data-size="icon-sm"
13
16
  data-slot="pagination-previous"
14
- class={cn(buttonVariants({ variant: 'ghost', size: 'icon-sm' }), "gap-1", className)}
17
+ class={cn(buttonVariants({ variant: 'ghost', size: 'icon-sm' }), "svadmin-pagination-control", className)}
15
18
  {...restProps}
16
19
  >
17
20
  {#if children}
18
21
  {@render children()}
19
22
  {:else}
20
- <ChevronLeft class="size-4" />
23
+ <ChevronLeft class="svadmin-pagination-icon" />
21
24
  {/if}
22
25
  </button>
@@ -6,6 +6,6 @@
6
6
  let { class: className, children, ...restProps }: HTMLAttributes<HTMLElement> & { children?: Snippet } = $props();
7
7
  </script>
8
8
 
9
- <nav aria-label="pagination" data-slot="pagination" class={cn("mx-auto flex w-full justify-center", className)} {...restProps}>
9
+ <nav aria-label="pagination" data-slot="pagination" class={cn("svadmin-pagination", className)} {...restProps}>
10
10
  {@render children?.()}
11
11
  </nav>
@@ -16,10 +16,7 @@
16
16
  bind:ref
17
17
  {align}
18
18
  {sideOffset}
19
- class={cn(
20
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
21
- className,
22
- )}
19
+ class={cn("svadmin-popover-content", className)}
23
20
  {...restProps}
24
21
  />
25
22
  </PopoverPrimitive.Portal>
@@ -8,7 +8,7 @@
8
8
  </script>
9
9
 
10
10
  <div
11
- class={cn("relative h-2 w-full overflow-hidden rounded-full bg-primary/20", className)}
11
+ class={cn("svadmin-progress", className)}
12
12
  role="progressbar"
13
13
  aria-valuenow={value}
14
14
  aria-valuemin={0}
@@ -16,7 +16,7 @@
16
16
  {...restProps}
17
17
  >
18
18
  <div
19
- class="h-full w-full flex-1 bg-primary transition-all duration-200"
19
+ class="svadmin-progress-value"
20
20
  style="transform: translateX(-{100 - percentage}%)"
21
21
  ></div>
22
22
  </div>
@@ -7,14 +7,13 @@
7
7
  </script>
8
8
 
9
9
  <div
10
- class={cn("relative overflow-hidden", className)}
10
+ class={cn("svadmin-scroll-area", className)}
11
11
  {...restProps}
12
12
  >
13
13
  <div class={cn(
14
- "h-full w-full overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-border hover:scrollbar-thumb-muted-foreground/50",
15
- orientation === 'horizontal' ? 'overflow-x-auto overflow-y-hidden' : 'overflow-y-auto overflow-x-hidden'
14
+ "svadmin-scroll-area-viewport",
15
+ orientation === 'horizontal' ? 'svadmin-scroll-area-horizontal' : 'svadmin-scroll-area-vertical'
16
16
  )}>
17
17
  {@render children()}
18
18
  </div>
19
19
  </div>
20
-
@@ -22,8 +22,7 @@
22
22
  bind:this={ref}
23
23
  data-slot="select"
24
24
  class={cn(
25
- "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-9 w-full appearance-none rounded-lg border bg-transparent px-3 py-1.5 text-base transition-colors focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 bg-[length:16px] bg-[right_8px_center] bg-no-repeat",
26
- "bg-[url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\")]",
25
+ "svadmin-select",
27
26
  className
28
27
  )}
29
28
  bind:value
@@ -13,11 +13,6 @@
13
13
  <SeparatorPrimitive.Root
14
14
  bind:ref
15
15
  data-slot={dataSlot}
16
- class={cn(
17
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px",
18
- // this is different in shadcn/ui but self-stretch breaks things for us
19
- "data-[orientation=vertical]:h-full",
20
- className
21
- )}
16
+ class={cn("svadmin-separator", className)}
22
17
  {...restProps}
23
18
  />
@@ -15,10 +15,7 @@
15
15
  <div
16
16
  bind:this={ref}
17
17
  data-slot="sheet-content"
18
- class={cn(
19
- "flex flex-col gap-4 h-full",
20
- className
21
- )}
18
+ class={cn("svadmin-sheet-content", className)}
22
19
  {...restProps}
23
20
  >
24
21
  {@render children?.()}
@@ -15,7 +15,7 @@
15
15
  <p
16
16
  bind:this={ref}
17
17
  data-slot="sheet-description"
18
- class={cn("text-sm text-muted-foreground", className)}
18
+ class={cn("svadmin-sheet-description", className)}
19
19
  {...restProps}
20
20
  >
21
21
  {@render children?.()}
@@ -15,7 +15,7 @@
15
15
  <div
16
16
  bind:this={ref}
17
17
  data-slot="sheet-footer"
18
- class={cn("mt-auto flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className)}
18
+ class={cn("svadmin-sheet-footer", className)}
19
19
  {...restProps}
20
20
  >
21
21
  {@render children?.()}
@@ -15,7 +15,7 @@
15
15
  <div
16
16
  bind:this={ref}
17
17
  data-slot="sheet-header"
18
- class={cn("flex flex-col gap-1.5 pb-4", className)}
18
+ class={cn("svadmin-sheet-header", className)}
19
19
  {...restProps}
20
20
  >
21
21
  {@render children?.()}
@@ -15,7 +15,7 @@
15
15
  <h3
16
16
  bind:this={ref}
17
17
  data-slot="sheet-title"
18
- class={cn("text-lg font-semibold text-foreground", className)}
18
+ class={cn("svadmin-sheet-title", className)}
19
19
  {...restProps}
20
20
  >
21
21
  {@render children?.()}
@@ -157,7 +157,7 @@
157
157
  <!-- svelte-ignore a11y_click_events_have_key_events a11y_no_static_element_interactions -->
158
158
  <div
159
159
  role="presentation"
160
- class="fixed inset-0 z-50 bg-black/80 animate-in fade-in-0"
160
+ class="svadmin-sheet-overlay"
161
161
  onclick={close}
162
162
  ></div>
163
163
 
@@ -167,13 +167,8 @@
167
167
  bind:this={ref}
168
168
  data-slot="sheet"
169
169
  {tabindex}
170
- class={cn(
171
- "fixed z-50 flex translate-x-0 flex-col gap-4 bg-background p-6 shadow-lg",
172
- side === "right"
173
- ? "inset-y-0 right-0 h-full w-3/4 max-w-sm border-l"
174
- : "inset-y-0 left-0 h-full w-3/4 max-w-sm border-r",
175
- className
176
- )}
170
+ data-side={side}
171
+ class={cn("svadmin-sheet-panel", className)}
177
172
  {...restProps}
178
173
  >
179
174
  {@render children?.()}
@@ -181,13 +176,13 @@
181
176
  <!-- Close button -->
182
177
  <button
183
178
  type="button"
184
- class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2"
179
+ class="svadmin-sheet-close"
185
180
  onclick={close}
186
181
  >
187
182
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
188
183
  <path d="M18 6 6 18"/><path d="m6 6 12 12"/>
189
184
  </svg>
190
- <span class="sr-only">{closeLabel}</span>
185
+ <span class="svadmin-sr-only">{closeLabel}</span>
191
186
  </button>
192
187
  </div>
193
188
  {/if}
@@ -16,6 +16,6 @@
16
16
  <div
17
17
  bind:this={ref}
18
18
  data-slot="skeleton"
19
- class={cn("animate-pulse rounded-md bg-muted", className)}
19
+ class={cn("svadmin-skeleton", className)}
20
20
  {...restProps}
21
21
  ></div>
@@ -32,18 +32,11 @@
32
32
  data-state={checked ? "checked" : "unchecked"}
33
33
  data-slot="switch"
34
34
  {disabled}
35
- class={cn(
36
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-all outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",
37
- checked ? "bg-primary" : "bg-input dark:bg-input/80",
38
- className
39
- )}
35
+ class={cn("svadmin-switch", className)}
40
36
  onclick={toggle}
41
37
  {...restProps}
42
38
  >
43
39
  <span
44
- class={cn(
45
- "pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform",
46
- checked ? "translate-x-4" : "translate-x-0"
47
- )}
40
+ class="svadmin-switch-thumb"
48
41
  ></span>
49
42
  </button>
@@ -13,7 +13,7 @@
13
13
  <caption
14
14
  bind:this={ref}
15
15
  data-slot="table-caption"
16
- class={cn("text-muted-foreground mt-4 text-sm", className)}
16
+ class={cn("svadmin-table-caption", className)}
17
17
  {...restProps}
18
18
  >
19
19
  {@render children?.()}
@@ -17,18 +17,15 @@
17
17
  }: Props = $props();
18
18
 
19
19
  const getDensity = getContext<() => TableDensity>("svadmin-table-density");
20
- const densityClass = $derived(getDensity?.() === "compact"
21
- ? "h-8 px-2 py-1 text-xs"
22
- : "p-2");
23
- const stickyClass = $derived(
24
- sticky === "right" || sticky === true
25
- ? "sticky right-0 z-10 bg-background shadow-[-1px_0_0_var(--border)] group-hover/row:bg-muted/50 group-data-[state=selected]/row:bg-muted"
26
- : sticky === "left"
27
- ? "sticky left-0 z-10 bg-background shadow-[1px_0_0_var(--border)] group-hover/row:bg-muted/50 group-data-[state=selected]/row:bg-muted"
28
- : ""
29
- );
30
20
  </script>
31
21
 
32
- <td bind:this={ref} data-slot="table-cell" data-sticky={sticky ? (typeof sticky === "string" ? sticky : "right") : undefined} class={cn("align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", densityClass, stickyClass, className)} {...restProps}>
22
+ <td
23
+ bind:this={ref}
24
+ data-slot="table-cell"
25
+ data-sticky={sticky ? (typeof sticky === "string" ? sticky : "right") : undefined}
26
+ data-density={getDensity?.() === "compact" ? "compact" : "default"}
27
+ class={cn("svadmin-table-cell", className)}
28
+ {...restProps}
29
+ >
33
30
  {@render children?.()}
34
31
  </td>
@@ -13,7 +13,7 @@
13
13
  <tfoot
14
14
  bind:this={ref}
15
15
  data-slot="table-footer"
16
- class={cn("bg-muted/50 font-medium", className)}
16
+ class={cn("svadmin-table-footer", className)}
17
17
  {...restProps}
18
18
  >
19
19
  {@render children?.()}
@@ -17,18 +17,8 @@
17
17
  }: Props = $props();
18
18
 
19
19
  const getDensity = getContext<() => TableDensity>("svadmin-table-density");
20
- const densityClass = $derived(getDensity?.() === "compact"
21
- ? "h-8 px-2 py-1 text-xs"
22
- : "h-9 px-2");
23
- const stickyClass = $derived(
24
- sticky === "right" || sticky === true
25
- ? "sticky right-0 z-20 bg-background shadow-[-1px_0_0_var(--border)]"
26
- : sticky === "left"
27
- ? "sticky left-0 z-20 bg-background shadow-[1px_0_0_var(--border)]"
28
- : ""
29
- );
30
20
  </script>
31
21
 
32
- <th bind:this={ref} data-slot="table-head" data-sticky={sticky ? (typeof sticky === "string" ? sticky : "right") : undefined} class={cn("text-foreground text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0", densityClass, stickyClass, className)} {...restProps}>
22
+ <th bind:this={ref} data-slot="table-head" data-sticky={sticky ? (typeof sticky === "string" ? sticky : "right") : undefined} data-density={getDensity?.() === "compact" ? "compact" : "default"} class={cn("svadmin-table-head", className)} {...restProps}>
33
23
  {@render children?.()}
34
24
  </th>
@@ -13,7 +13,7 @@
13
13
  <thead
14
14
  bind:this={ref}
15
15
  data-slot="table-header"
16
- class={cn(className)}
16
+ class={cn("svadmin-table-header", className)}
17
17
  {...restProps}
18
18
  >
19
19
  {@render children?.()}
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
2
+ import type { WithElementRef } from "../../../utils.js";
3
3
  import type { HTMLAttributes } from "svelte/elements";
4
4
 
5
5
  let {
@@ -10,6 +10,6 @@
10
10
  }: WithElementRef<HTMLAttributes<HTMLTableRowElement>> = $props();
11
11
  </script>
12
12
 
13
- <tr bind:this={ref} data-slot="table-row" class={cn("group/row hover:bg-muted/50 data-[state=selected]:bg-muted transition-colors", className)} {...restProps}>
13
+ <tr bind:this={ref} data-slot="table-row" class="svadmin-table-row {className ?? ''}" {...restProps}>
14
14
  {@render children?.()}
15
15
  </tr>
@@ -1,4 +1,4 @@
1
- import { type WithElementRef } from "../../../utils.js";
1
+ import type { WithElementRef } from "../../../utils.js";
2
2
  import type { HTMLAttributes } from "svelte/elements";
3
3
  declare const TableRow: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLTableRowElement>>, {}, "ref">;
4
4
  type TableRow = ReturnType<typeof TableRow>;
@@ -20,8 +20,8 @@
20
20
  setContext("svadmin-table-density", () => density);
21
21
  </script>
22
22
 
23
- <div data-slot="table-container" data-table-density={density} class="relative w-full overflow-x-auto">
24
- <table bind:this={ref} data-slot="table" class={cn("w-full caption-bottom text-sm", className)} {...restProps}>
23
+ <div data-slot="table-container" data-table-density={density} class="svadmin-table-container">
24
+ <table bind:this={ref} data-slot="table" class={cn("svadmin-table", className)} {...restProps}>
25
25
  {@render children?.()}
26
26
  </table>
27
27
  </div>
@@ -26,7 +26,7 @@
26
26
  bind:this={ref}
27
27
  data-slot="tabs-content"
28
28
  role="tabpanel"
29
- class={cn("flex-1 outline-none", className)}
29
+ class={cn("svadmin-tabs-content", className)}
30
30
  {...restProps}
31
31
  >
32
32
  {@render children?.()}
@@ -15,10 +15,7 @@
15
15
  <div
16
16
  bind:this={ref}
17
17
  data-slot="tabs-list"
18
- class={cn(
19
- "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px] gap-1",
20
- className
21
- )}
18
+ class={cn("svadmin-tabs-list", className)}
22
19
  role="tablist"
23
20
  {...restProps}
24
21
  >
@@ -67,13 +67,7 @@
67
67
  data-state={isActive ? "active" : "inactive"}
68
68
  aria-selected={isActive}
69
69
  tabindex={tabindex ?? (isActive ? 0 : -1)}
70
- class={cn(
71
- "inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-2.5 py-1 text-sm font-medium transition-all outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0",
72
- isActive
73
- ? "bg-background text-foreground shadow-sm"
74
- : "text-muted-foreground hover:text-foreground",
75
- className
76
- )}
70
+ class={cn("svadmin-tabs-trigger", className)}
77
71
  {...restProps}
78
72
  onclick={handleClick}
79
73
  onkeydown={handleKeydown}
@@ -32,7 +32,7 @@
32
32
  <div
33
33
  bind:this={ref}
34
34
  data-slot="tabs"
35
- class={cn("flex flex-col gap-2", className)}
35
+ class={cn("svadmin-tabs", className)}
36
36
  {...restProps}
37
37
  >
38
38
  {@render children?.()}
@@ -15,10 +15,7 @@
15
15
  <textarea
16
16
  bind:this={ref}
17
17
  data-slot="textarea"
18
- class={cn(
19
- "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 w-full rounded-lg border bg-transparent px-3 py-2 text-base transition-colors focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground min-h-[80px] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 resize-y",
20
- className
21
- )}
18
+ class={cn("svadmin-textarea", className)}
22
19
  bind:value
23
20
  {...restProps}
24
21
  ></textarea>
@@ -317,7 +317,7 @@
317
317
  aria-hidden="true"
318
318
  data-side={resolvedSide}
319
319
  style={arrowStyle}
320
- class={cn("absolute size-2.5 rotate-45 rounded-[2px] bg-primary -z-10", arrowClasses)}
320
+ class={cn("svadmin-tooltip-arrow", arrowClasses)}
321
321
  ></div>
322
322
  </div>
323
323
  {/if}
@@ -0,0 +1,228 @@
1
+ @layer components {
2
+ .svadmin-page-header {
3
+ --svadmin-page-header-gap: 0.5rem;
4
+ min-width: 0;
5
+ }
6
+
7
+ .svadmin-page-header[data-density="compact"] {
8
+ --svadmin-page-header-gap: 0.375rem;
9
+ }
10
+
11
+ .svadmin-page-header__breadcrumbs {
12
+ margin-bottom: 1rem;
13
+ }
14
+
15
+ .svadmin-page-header[data-density="compact"] .svadmin-page-header__breadcrumbs {
16
+ margin-bottom: 0.375rem;
17
+ font-size: 0.75rem;
18
+ }
19
+
20
+ .svadmin-page-header__row,
21
+ .svadmin-filter-toolbar__row {
22
+ display: flex;
23
+ flex-direction: column;
24
+ min-width: 0;
25
+ gap: 0.5rem;
26
+ }
27
+
28
+ .svadmin-page-header__row {
29
+ gap: var(--svadmin-page-header-gap);
30
+ }
31
+
32
+ .svadmin-page-header__heading {
33
+ display: flex;
34
+ align-items: center;
35
+ min-width: 0;
36
+ gap: 0.625rem;
37
+ }
38
+
39
+ .svadmin-page-header__text {
40
+ min-width: 0;
41
+ }
42
+
43
+ .svadmin-page-header__title-row,
44
+ .svadmin-page-header__tags,
45
+ .svadmin-page-header__actions,
46
+ .svadmin-filter-toolbar__filters,
47
+ .svadmin-filter-toolbar__actions {
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ align-items: center;
51
+ min-width: 0;
52
+ gap: 0.5rem;
53
+ }
54
+
55
+ .svadmin-page-header__tags,
56
+ .svadmin-page-header__actions {
57
+ max-width: 100%;
58
+ gap: var(--svadmin-page-header-gap);
59
+ }
60
+
61
+ .svadmin-page-header__title {
62
+ min-width: 0;
63
+ color: var(--foreground);
64
+ font-size: 1.25rem;
65
+ font-weight: 600;
66
+ line-height: 1.75rem;
67
+ overflow-wrap: anywhere;
68
+ }
69
+
70
+ .svadmin-page-header__description {
71
+ color: var(--muted-foreground);
72
+ font-size: 0.875rem;
73
+ line-height: 1.25rem;
74
+ overflow-wrap: anywhere;
75
+ }
76
+
77
+ .svadmin-page-header[data-density="compact"] .svadmin-page-header__title {
78
+ font-size: 1.125rem;
79
+ }
80
+
81
+ .svadmin-page-header[data-density="compact"] .svadmin-page-header__description {
82
+ font-size: 0.75rem;
83
+ line-height: 1rem;
84
+ }
85
+
86
+ .svadmin-page-header .svadmin-page-header__back {
87
+ flex-shrink: 0;
88
+ color: var(--muted-foreground);
89
+ }
90
+
91
+ .svadmin-page-header .svadmin-page-header__back:hover {
92
+ color: var(--foreground);
93
+ }
94
+
95
+ .svadmin-page-header .svadmin-page-header__back-icon {
96
+ width: 1rem;
97
+ height: 1rem;
98
+ }
99
+
100
+ .svadmin-breadcrumbs {
101
+ min-width: 0;
102
+ }
103
+
104
+ .svadmin-breadcrumbs--spaced {
105
+ margin-bottom: 1rem;
106
+ }
107
+
108
+ .svadmin-breadcrumbs__item {
109
+ display: inline-flex;
110
+ min-width: 0;
111
+ overflow-wrap: anywhere;
112
+ }
113
+
114
+ .svadmin-breadcrumbs__label {
115
+ color: var(--muted-foreground);
116
+ }
117
+
118
+ .svadmin-filter-toolbar {
119
+ --svadmin-filter-control-height: 2.25rem;
120
+ --svadmin-filter-control-font: 0.875rem;
121
+ --svadmin-filter-search-icon-size: 1rem;
122
+ min-width: 0;
123
+ }
124
+
125
+ .svadmin-filter-toolbar[data-density="compact"] {
126
+ --svadmin-filter-control-height: 2rem;
127
+ --svadmin-filter-control-font: 0.75rem;
128
+ --svadmin-filter-search-icon-size: 0.875rem;
129
+ }
130
+
131
+ .svadmin-filter-toolbar__search {
132
+ position: relative;
133
+ min-width: 0;
134
+ }
135
+
136
+ .svadmin-filter-toolbar__search-icon {
137
+ position: absolute;
138
+ top: 50%;
139
+ left: 0.75rem;
140
+ width: var(--svadmin-filter-search-icon-size);
141
+ height: var(--svadmin-filter-search-icon-size);
142
+ color: var(--muted-foreground);
143
+ transform: translateY(-50%);
144
+ pointer-events: none;
145
+ }
146
+
147
+ .svadmin-filter-toolbar[data-density] .svadmin-filter-toolbar__input {
148
+ height: var(--svadmin-filter-control-height);
149
+ padding-inline: 2.25rem;
150
+ font-size: var(--svadmin-filter-control-font);
151
+ line-height: 1rem;
152
+ }
153
+
154
+ .svadmin-filter-toolbar[data-density] .svadmin-filter-toolbar__clear {
155
+ position: absolute;
156
+ top: 50%;
157
+ right: 0.25rem;
158
+ transform: translateY(-50%);
159
+ }
160
+
161
+ .svadmin-filter-toolbar[data-density] .svadmin-filter-toolbar__toggle {
162
+ flex-shrink: 0;
163
+ gap: 0.375rem;
164
+ height: var(--svadmin-filter-control-height);
165
+ font-size: var(--svadmin-filter-control-font);
166
+ max-width: 100%;
167
+ white-space: normal;
168
+ overflow-wrap: anywhere;
169
+ }
170
+
171
+ .svadmin-filter-toolbar[data-density="compact"] .svadmin-filter-toolbar__toggle {
172
+ padding-inline: 0.625rem;
173
+ }
174
+
175
+ .svadmin-filter-toolbar .svadmin-filter-toolbar__control-icon {
176
+ width: 0.875rem;
177
+ height: 0.875rem;
178
+ }
179
+
180
+ .svadmin-filter-toolbar .svadmin-filter-toolbar__chevron {
181
+ width: 0.75rem;
182
+ height: 0.75rem;
183
+ margin-left: 0.125rem;
184
+ color: var(--muted-foreground);
185
+ }
186
+
187
+ .svadmin-filter-toolbar[data-density] .svadmin-filter-toolbar__count {
188
+ height: 1rem;
189
+ min-height: 1rem;
190
+ min-width: 1rem;
191
+ margin-left: 0.125rem;
192
+ padding: 0 0.25rem;
193
+ font-size: 0.625rem;
194
+ font-weight: 600;
195
+ line-height: 1;
196
+ font-variant-numeric: tabular-nums;
197
+ }
198
+
199
+ .svadmin-filter-toolbar .svadmin-filter-toolbar-advanced {
200
+ margin-top: 0.5rem;
201
+ border: 1px solid color-mix(in oklch, var(--border) 60%, transparent);
202
+ border-radius: var(--radius-lg);
203
+ background: color-mix(in oklch, var(--muted) 20%, transparent);
204
+ padding: 0.75rem;
205
+ overflow-wrap: anywhere;
206
+ }
207
+
208
+ @media (min-width: 640px) {
209
+ .svadmin-page-header__row,
210
+ .svadmin-filter-toolbar__row {
211
+ flex-direction: row;
212
+ flex-wrap: wrap;
213
+ align-items: center;
214
+ }
215
+
216
+ .svadmin-page-header__row {
217
+ justify-content: space-between;
218
+ }
219
+
220
+ .svadmin-page-header__heading {
221
+ flex: 1 1 16rem;
222
+ }
223
+
224
+ .svadmin-filter-toolbar__search {
225
+ flex: 1 1 14rem;
226
+ }
227
+ }
228
+ }