@svadmin/ui 0.70.0 → 0.73.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 (372) hide show
  1. package/README.md +40 -25
  2. package/THIRD_PARTY_NOTICES.md +52 -0
  3. package/dist/actions.js +1 -1
  4. package/dist/app.css +7804 -5188
  5. package/dist/app.theme.css +7738 -5173
  6. package/dist/class-properties.generated.d.ts +1 -0
  7. package/dist/class-properties.generated.js +2 -0
  8. package/dist/classnames.d.ts +8 -0
  9. package/dist/classnames.js +26 -0
  10. package/dist/component-registry.svelte.d.ts +33 -19
  11. package/dist/component-registry.svelte.js +6 -4
  12. package/dist/components/AdminApp.svelte +55 -53
  13. package/dist/components/AdminApp.svelte.d.ts +2 -2
  14. package/dist/components/ApiSettings.svelte +19 -1
  15. package/dist/components/AuditLogDrawer.svelte +14 -3
  16. package/dist/components/AutoForm.svelte +162 -50
  17. package/dist/components/AutoForm.svelte.d.ts +4 -0
  18. package/dist/components/AutoTable.svelte +599 -259
  19. package/dist/components/AutoTable.svelte.d.ts +6 -0
  20. package/dist/components/BoundRecordDetailDrawer.svelte +172 -0
  21. package/dist/components/BoundRecordDetailDrawer.svelte.d.ts +11 -0
  22. package/dist/components/Breadcrumbs.svelte +7 -4
  23. package/dist/components/CancelTaskButton.svelte +9 -5
  24. package/dist/components/ColumnHeaderFilter.svelte +4 -3
  25. package/dist/components/ColumnSettings.svelte +1 -0
  26. package/dist/components/ComboboxField.svelte +118 -36
  27. package/dist/components/ComboboxField.svelte.d.ts +5 -4
  28. package/dist/components/CreatePage.svelte +7 -1
  29. package/dist/components/CreatePage.svelte.d.ts +2 -0
  30. package/dist/components/DateRangeInput.svelte +75 -0
  31. package/dist/components/DateRangeInput.svelte.d.ts +25 -0
  32. package/dist/components/DateTimeInput.svelte +65 -0
  33. package/dist/components/DateTimeInput.svelte.d.ts +19 -0
  34. package/dist/components/DetailDrawer.svelte +4 -0
  35. package/dist/components/DetailDrawer.svelte.d.ts +1 -0
  36. package/dist/components/DevTools.svelte +8 -21
  37. package/dist/components/DraggableGrid.svelte +1 -0
  38. package/dist/components/DraggableHeader.svelte +5 -9
  39. package/dist/components/DraggableHeader.svelte.d.ts +43 -18
  40. package/dist/components/DraggableRowTable.svelte +2 -2
  41. package/dist/components/DynamicFormList.svelte +17 -17
  42. package/dist/components/DynamicFormList.svelte.d.ts +2 -1
  43. package/dist/components/EditPage.svelte +7 -1
  44. package/dist/components/EditPage.svelte.d.ts +2 -0
  45. package/dist/components/EditableTable.svelte +4 -0
  46. package/dist/components/ErrorPage.svelte +3 -1
  47. package/dist/components/FieldDisplay.svelte +14 -0
  48. package/dist/components/FieldDisplay.svelte.d.ts +7 -0
  49. package/dist/components/FieldRenderer.svelte +96 -20
  50. package/dist/components/FileUpload.svelte +250 -0
  51. package/dist/components/FileUpload.svelte.d.ts +32 -0
  52. package/dist/components/FilterBuilder.svelte +236 -268
  53. package/dist/components/FilterBuilder.svelte.d.ts +3 -0
  54. package/dist/components/FilterDropdown.svelte.d.ts +1 -1
  55. package/dist/components/Header.svelte +5 -6
  56. package/dist/components/ImportWizard.svelte +182 -94
  57. package/dist/components/InfiniteList.svelte +22 -8
  58. package/dist/components/InfiniteList.svelte.d.ts +5 -3
  59. package/dist/components/InlineEdit.svelte +114 -44
  60. package/dist/components/JsonSchemaForm.svelte +256 -95
  61. package/dist/components/JsonSchemaForm.svelte.d.ts +12 -1
  62. package/dist/components/Layout.svelte +20 -17
  63. package/dist/components/LazyTaskQueueDrawer.svelte +26 -0
  64. package/dist/components/LazyTaskQueueDrawer.svelte.d.ts +8 -0
  65. package/dist/components/ListPage.svelte +11 -6
  66. package/dist/components/ListPage.svelte.d.ts +2 -0
  67. package/dist/components/LoginPage.svelte +1 -1
  68. package/dist/components/MasterDetailView.svelte +3 -3
  69. package/dist/components/MediaLibraryModal.svelte +5 -2
  70. package/dist/components/MentionsInput.svelte +4 -3
  71. package/dist/components/MoneyInput.svelte +25 -0
  72. package/dist/components/MoneyInput.svelte.d.ts +20 -0
  73. package/dist/components/NavigateToResource.svelte +3 -2
  74. package/dist/components/NumberInput.svelte +25 -0
  75. package/dist/components/NumberInput.svelte.d.ts +19 -0
  76. package/dist/components/NumericInput.svelte +110 -0
  77. package/dist/components/NumericInput.svelte.d.ts +23 -0
  78. package/dist/components/PercentInput.svelte +25 -0
  79. package/dist/components/PercentInput.svelte.d.ts +20 -0
  80. package/dist/components/PermissionMatrix.svelte +4 -3
  81. package/dist/components/ProfilePage.svelte +2 -2
  82. package/dist/components/QuickEditDrawer.svelte +42 -0
  83. package/dist/components/QuickEditDrawer.svelte.d.ts +10 -0
  84. package/dist/components/RecordDetailDrawer.svelte +16 -108
  85. package/dist/components/RecordDetailDrawer.svelte.d.ts +2 -0
  86. package/dist/components/RecordRowActions.svelte +41 -0
  87. package/dist/components/RecordRowActions.svelte.d.ts +14 -0
  88. package/dist/components/ResourceAccessGuard.svelte +7 -5
  89. package/dist/components/ResourceOperationsPage.svelte +25 -19
  90. package/dist/components/ResourceOperationsPage.svelte.d.ts +5 -1
  91. package/dist/components/RetryTaskButton.svelte +9 -5
  92. package/dist/components/RowActions.svelte +5 -3
  93. package/dist/components/SensitiveDataMask.svelte +3 -3
  94. package/dist/components/SettingsPage.svelte +1 -1
  95. package/dist/components/ShowInferencer.svelte +4 -2
  96. package/dist/components/ShowInferencer.svelte.d.ts +2 -0
  97. package/dist/components/ShowPage.svelte +49 -39
  98. package/dist/components/ShowPage.svelte.d.ts +2 -0
  99. package/dist/components/Sidebar.svelte +15 -13
  100. package/dist/components/SplitPaneLayout.svelte +4 -2
  101. package/dist/components/SpreadsheetView.svelte +81 -286
  102. package/dist/components/StepsForm.svelte +166 -49
  103. package/dist/components/StepsForm.svelte.d.ts +1 -0
  104. package/dist/components/SvarAutoTable.svelte +39 -0
  105. package/dist/components/SvarAutoTable.svelte.d.ts +13 -0
  106. package/dist/components/SvarDataGrid.svelte +362 -0
  107. package/dist/components/SvarDataGrid.svelte.d.ts +57 -0
  108. package/dist/components/SvarGridCell.svelte +10 -0
  109. package/dist/components/SvarGridCell.svelte.d.ts +7 -0
  110. package/dist/components/SvarResourceRead.svelte +50 -0
  111. package/dist/components/SvarResourceRead.svelte.d.ts +23 -0
  112. package/dist/components/SvarResourceTable.svelte +63 -0
  113. package/dist/components/SvarResourceTable.svelte.d.ts +42 -0
  114. package/dist/components/SvarResourceTableView.svelte +364 -0
  115. package/dist/components/SvarResourceTableView.svelte.d.ts +4 -0
  116. package/dist/components/TaskDetails.svelte +20 -7
  117. package/dist/components/TaskList.svelte +19 -7
  118. package/dist/components/TaskQueueDrawer.svelte +92 -37
  119. package/dist/components/Toast.svelte +4 -2
  120. package/dist/components/TooltipButton.svelte +1 -1
  121. package/dist/components/TreeSelect.svelte +212 -30
  122. package/dist/components/TreeSelect.svelte.d.ts +3 -1
  123. package/dist/components/ValidatedField.svelte +27 -0
  124. package/dist/components/ValidatedField.svelte.d.ts +35 -0
  125. package/dist/components/account/ImportMembersPage.svelte +2 -2
  126. package/dist/components/account/SecurityLogPage.svelte +3 -1
  127. package/dist/components/account/SettingsEnterprisePage.svelte +7 -5
  128. package/dist/components/account/TeamMembersPage.svelte +1 -1
  129. package/dist/components/auto-table-grid.d.ts +26 -0
  130. package/dist/components/auto-table-grid.js +1 -0
  131. package/dist/components/buttons/CloneButton.svelte +6 -4
  132. package/dist/components/buttons/DeleteButton.svelte +95 -29
  133. package/dist/components/buttons/DeleteButton.svelte.d.ts +2 -0
  134. package/dist/components/buttons/EditButton.svelte +6 -4
  135. package/dist/components/buttons/ExportButton.svelte +22 -4
  136. package/dist/components/buttons/ImportButton.svelte +83 -38
  137. package/dist/components/buttons/ImportButton.svelte.d.ts +6 -10
  138. package/dist/components/buttons/RefreshButton.svelte +48 -8
  139. package/dist/components/buttons/ShowButton.svelte +6 -4
  140. package/dist/components/content/ApiKeyList.svelte +3 -1
  141. package/dist/components/content/ContentPageHeader.svelte +12 -9
  142. package/dist/components/content/ContentPageShell.svelte +8 -9
  143. package/dist/components/content/FileBrowser.svelte +35 -0
  144. package/dist/components/content/FileBrowser.svelte.d.ts +14 -0
  145. package/dist/components/content/FileList.svelte +3 -1
  146. package/dist/components/content/MemberList.svelte +3 -1
  147. package/dist/components/content/MetricBlock.svelte +10 -13
  148. package/dist/components/content/NetworkTable.svelte +6 -4
  149. package/dist/components/content/NetworkTable.svelte.d.ts +1 -0
  150. package/dist/components/content/PageToolbar.svelte +6 -10
  151. package/dist/components/content/SectionHeader.svelte +8 -13
  152. package/dist/components/content/SecurityEventTable.svelte +3 -1
  153. package/dist/components/content/SettingsFieldRow.svelte +9 -23
  154. package/dist/components/content/SettingsGroup.svelte +11 -27
  155. package/dist/components/content/StatusBadge.svelte +3 -8
  156. package/dist/components/content/StatusTabs.svelte +2 -2
  157. package/dist/components/content/WorkspaceLayout.svelte +8 -12
  158. package/dist/components/enterprise/filter-tree.d.ts +48 -0
  159. package/dist/components/enterprise/filter-tree.js +224 -0
  160. package/dist/components/enterprise/json-schema-form.d.ts +39 -0
  161. package/dist/components/enterprise/json-schema-form.js +195 -0
  162. package/dist/components/enterprise/recursive-schema-form.d.ts +30 -0
  163. package/dist/components/enterprise/recursive-schema-form.js +196 -0
  164. package/dist/components/enterprise/spreadsheet-formula.d.ts +12 -0
  165. package/dist/components/enterprise/spreadsheet-formula.js +245 -0
  166. package/dist/components/fieldComponentMap.d.ts +18 -13
  167. package/dist/components/fieldComponentMap.js +100 -47
  168. package/dist/components/fields/AvatarField.svelte +1 -1
  169. package/dist/components/fields/ChoiceField.svelte +16 -0
  170. package/dist/components/fields/ChoiceField.svelte.d.ts +10 -0
  171. package/dist/components/fields/CodeField.svelte +11 -12
  172. package/dist/components/fields/CodeField.svelte.d.ts +1 -1
  173. package/dist/components/fields/DateField.svelte +4 -3
  174. package/dist/components/fields/DateRangeField.svelte +2 -4
  175. package/dist/components/fields/ImageField.svelte +3 -1
  176. package/dist/components/fields/ImagesField.svelte +23 -0
  177. package/dist/components/fields/ImagesField.svelte.d.ts +6 -0
  178. package/dist/components/fields/JsonField.svelte +19 -13
  179. package/dist/components/fields/PasswordField.svelte +5 -0
  180. package/dist/components/fields/PasswordField.svelte.d.ts +6 -0
  181. package/dist/components/fields/date-field-value.d.ts +2 -0
  182. package/dist/components/fields/date-field-value.js +13 -0
  183. package/dist/components/fields/json-value.d.ts +11 -0
  184. package/dist/components/fields/json-value.js +28 -0
  185. package/dist/components/json-schema-form-state.d.ts +37 -0
  186. package/dist/components/json-schema-form-state.js +168 -0
  187. package/dist/components/profile/ActivityTimeline.svelte +2 -2
  188. package/dist/components/record-detail.svelte.d.ts +19 -0
  189. package/dist/components/record-detail.svelte.js +34 -0
  190. package/dist/components/saved-list-views.js +29 -29
  191. package/dist/components/svar-grid-cells.d.ts +14 -0
  192. package/dist/components/svar-grid-cells.js +2 -0
  193. package/dist/components/svar-grid-contract.d.ts +80 -0
  194. package/dist/components/svar-grid-contract.js +159 -0
  195. package/dist/components/svar-grid-interactions.d.ts +54 -0
  196. package/dist/components/svar-grid-interactions.js +174 -0
  197. package/dist/components/svar-grid-loading.d.ts +40 -0
  198. package/dist/components/svar-grid-loading.js +180 -0
  199. package/dist/components/svar-grid-operations.d.ts +37 -0
  200. package/dist/components/svar-grid-operations.js +186 -0
  201. package/dist/components/svar-grid-panes.d.ts +34 -0
  202. package/dist/components/svar-grid-panes.js +66 -0
  203. package/dist/components/svar-grid-resource-loading.d.ts +18 -0
  204. package/dist/components/svar-grid-resource-loading.js +68 -0
  205. package/dist/components/svar-grid-resource-session.svelte.d.ts +29 -0
  206. package/dist/components/svar-grid-resource-session.svelte.js +61 -0
  207. package/dist/components/table-contract.d.ts +13 -0
  208. package/dist/components/table-contract.js +42 -0
  209. package/dist/components/task-utils.js +4 -2
  210. package/dist/components/ui/alert/alert-variants.d.ts +2 -3
  211. package/dist/components/ui/alert/alert-variants.js +1 -2
  212. package/dist/components/ui/alert/alert.svelte +4 -5
  213. package/dist/components/ui/alert/alert.svelte.d.ts +3 -8
  214. package/dist/components/ui/alert/index.js +0 -2
  215. package/dist/components/ui/avatar/avatar-variants.d.ts +2 -3
  216. package/dist/components/ui/avatar/avatar-variants.js +1 -2
  217. package/dist/components/ui/avatar/avatar.svelte +5 -6
  218. package/dist/components/ui/avatar/avatar.svelte.d.ts +3 -8
  219. package/dist/components/ui/badge/badge-variants.d.ts +2 -3
  220. package/dist/components/ui/badge/badge-variants.js +3 -2
  221. package/dist/components/ui/badge/badge.svelte +4 -5
  222. package/dist/components/ui/badge/badge.svelte.d.ts +3 -8
  223. package/dist/components/ui/badge/index.js +0 -2
  224. package/dist/components/ui/button/button-variants.d.ts +2 -3
  225. package/dist/components/ui/button/button-variants.js +5 -3
  226. package/dist/components/ui/button/button.svelte +100 -44
  227. package/dist/components/ui/button/button.svelte.d.ts +8 -12
  228. package/dist/components/ui/button/index.js +0 -2
  229. package/dist/components/ui/command/command-dialog.svelte +3 -1
  230. package/dist/components/ui/command/command-dialog.svelte.d.ts +1 -1
  231. package/dist/components/ui/command/command-group.svelte +4 -2
  232. package/dist/components/ui/command/command-item.svelte +4 -2
  233. package/dist/components/ui/command/command-separator.svelte +3 -1
  234. package/dist/components/ui/command/index.d.ts +5 -5
  235. package/dist/components/ui/input/input.svelte +41 -24
  236. package/dist/components/ui/input/input.svelte.d.ts +5 -4
  237. package/dist/components/ui/sheet/sheet.svelte +9 -3
  238. package/dist/components/ui/sheet/sheet.svelte.d.ts +1 -0
  239. package/dist/components/ui/textarea/textarea.svelte +2 -1
  240. package/dist/components/ui/tooltip/tooltip.svelte +4 -2
  241. package/dist/components.css +3079 -0
  242. package/dist/design-contract.d.ts +13 -0
  243. package/dist/design-contract.js +11 -0
  244. package/dist/design-system.d.ts +15 -0
  245. package/dist/design-system.js +7 -0
  246. package/dist/index.d.ts +15 -1
  247. package/dist/index.js +9 -0
  248. package/dist/inline-value.d.ts +5 -0
  249. package/dist/inline-value.js +24 -0
  250. package/dist/numeric-input.d.ts +2 -0
  251. package/dist/numeric-input.js +9 -0
  252. package/dist/page-chrome.css +12 -49
  253. package/dist/recipes.d.ts +4 -0
  254. package/dist/recipes.js +4 -0
  255. package/dist/rendering/index.d.ts +87 -0
  256. package/dist/rendering/index.js +117 -0
  257. package/dist/styled-system/css/conditions.js +36 -0
  258. package/dist/styled-system/css/css.d.ts +22 -0
  259. package/dist/styled-system/css/css.js +45 -0
  260. package/dist/styled-system/css/cva.d.ts +6 -0
  261. package/dist/styled-system/css/cva.js +87 -0
  262. package/dist/styled-system/css/cx.d.ts +5 -0
  263. package/dist/styled-system/css/cx.js +15 -0
  264. package/dist/styled-system/css/index.d.ts +5 -0
  265. package/dist/styled-system/css/index.js +4 -0
  266. package/dist/styled-system/css/sva.d.ts +4 -0
  267. package/dist/styled-system/css/sva.js +46 -0
  268. package/dist/styled-system/helpers.js +316 -0
  269. package/dist/styled-system/patterns/aspect-ratio.d.ts +20 -0
  270. package/dist/styled-system/patterns/aspect-ratio.js +38 -0
  271. package/dist/styled-system/patterns/bleed.d.ts +21 -0
  272. package/dist/styled-system/patterns/bleed.js +24 -0
  273. package/dist/styled-system/patterns/box.d.ts +20 -0
  274. package/dist/styled-system/patterns/box.js +15 -0
  275. package/dist/styled-system/patterns/center.d.ts +20 -0
  276. package/dist/styled-system/patterns/center.js +21 -0
  277. package/dist/styled-system/patterns/circle.d.ts +20 -0
  278. package/dist/styled-system/patterns/circle.js +25 -0
  279. package/dist/styled-system/patterns/container.d.ts +20 -0
  280. package/dist/styled-system/patterns/container.js +21 -0
  281. package/dist/styled-system/patterns/cq.d.ts +21 -0
  282. package/dist/styled-system/patterns/cq.js +21 -0
  283. package/dist/styled-system/patterns/divider.d.ts +22 -0
  284. package/dist/styled-system/patterns/divider.js +25 -0
  285. package/dist/styled-system/patterns/flex.d.ts +26 -0
  286. package/dist/styled-system/patterns/flex.js +26 -0
  287. package/dist/styled-system/patterns/float.d.ts +23 -0
  288. package/dist/styled-system/patterns/float.js +52 -0
  289. package/dist/styled-system/patterns/grid-item.d.ts +25 -0
  290. package/dist/styled-system/patterns/grid-item.js +25 -0
  291. package/dist/styled-system/patterns/grid.d.ts +24 -0
  292. package/dist/styled-system/patterns/grid.js +27 -0
  293. package/dist/styled-system/patterns/hstack.d.ts +21 -0
  294. package/dist/styled-system/patterns/hstack.js +24 -0
  295. package/dist/styled-system/patterns/index.d.ts +21 -0
  296. package/dist/styled-system/patterns/index.js +20 -0
  297. package/dist/styled-system/patterns/link-overlay.d.ts +20 -0
  298. package/dist/styled-system/patterns/link-overlay.js +24 -0
  299. package/dist/styled-system/patterns/spacer.d.ts +20 -0
  300. package/dist/styled-system/patterns/spacer.js +25 -0
  301. package/dist/styled-system/patterns/square.d.ts +20 -0
  302. package/dist/styled-system/patterns/square.js +24 -0
  303. package/dist/styled-system/patterns/stack.d.ts +23 -0
  304. package/dist/styled-system/patterns/stack.js +24 -0
  305. package/dist/styled-system/patterns/visually-hidden.d.ts +20 -0
  306. package/dist/styled-system/patterns/visually-hidden.js +18 -0
  307. package/dist/styled-system/patterns/vstack.d.ts +21 -0
  308. package/dist/styled-system/patterns/vstack.js +24 -0
  309. package/dist/styled-system/patterns/wrap.d.ts +24 -0
  310. package/dist/styled-system/patterns/wrap.js +25 -0
  311. package/dist/styled-system/recipes/content-header.d.ts +31 -0
  312. package/dist/styled-system/recipes/content-header.js +65 -0
  313. package/dist/styled-system/recipes/content-page.d.ts +34 -0
  314. package/dist/styled-system/recipes/content-page.js +43 -0
  315. package/dist/styled-system/recipes/create-recipe.js +82 -0
  316. package/dist/styled-system/recipes/index.d.ts +17 -0
  317. package/dist/styled-system/recipes/index.js +16 -0
  318. package/dist/styled-system/recipes/metric-block.d.ts +34 -0
  319. package/dist/styled-system/recipes/metric-block.js +76 -0
  320. package/dist/styled-system/recipes/product-list.d.ts +31 -0
  321. package/dist/styled-system/recipes/product-list.js +73 -0
  322. package/dist/styled-system/recipes/product-section.d.ts +31 -0
  323. package/dist/styled-system/recipes/product-section.js +49 -0
  324. package/dist/styled-system/recipes/product-settings-row.d.ts +34 -0
  325. package/dist/styled-system/recipes/product-settings-row.js +58 -0
  326. package/dist/styled-system/recipes/product-settings.d.ts +31 -0
  327. package/dist/styled-system/recipes/product-settings.js +57 -0
  328. package/dist/styled-system/recipes/product-status.d.ts +34 -0
  329. package/dist/styled-system/recipes/product-status.js +45 -0
  330. package/dist/styled-system/recipes/product-toolbar.d.ts +31 -0
  331. package/dist/styled-system/recipes/product-toolbar.js +41 -0
  332. package/dist/styled-system/recipes/product-workspace.d.ts +34 -0
  333. package/dist/styled-system/recipes/product-workspace.js +58 -0
  334. package/dist/styled-system/recipes/surface-metric.d.ts +38 -0
  335. package/dist/styled-system/recipes/surface-metric.js +63 -0
  336. package/dist/styled-system/recipes/surface-table.d.ts +34 -0
  337. package/dist/styled-system/recipes/surface-table.js +62 -0
  338. package/dist/styled-system/recipes/ui-badge.d.ts +31 -0
  339. package/dist/styled-system/recipes/ui-badge.js +38 -0
  340. package/dist/styled-system/recipes/ui-button.d.ts +32 -0
  341. package/dist/styled-system/recipes/ui-button.js +43 -0
  342. package/dist/styled-system/recipes/ui-input.d.ts +31 -0
  343. package/dist/styled-system/recipes/ui-input.js +49 -0
  344. package/dist/styled-system/recipes/ui-textarea.d.ts +31 -0
  345. package/dist/styled-system/recipes/ui-textarea.js +24 -0
  346. package/dist/styled-system/styles.css +1257 -0
  347. package/dist/styled-system/tokens/index.d.ts +9 -0
  348. package/dist/styled-system/tokens/index.js +268 -0
  349. package/dist/styled-system/tokens/tokens.d.ts +36 -0
  350. package/dist/styled-system/types/composition.d.ts +227 -0
  351. package/dist/styled-system/types/conditions.d.ts +236 -0
  352. package/dist/styled-system/types/csstype.d.ts +22570 -0
  353. package/dist/styled-system/types/index.d.ts +6 -0
  354. package/dist/styled-system/types/parts.d.ts +8 -0
  355. package/dist/styled-system/types/pattern.d.ts +78 -0
  356. package/dist/styled-system/types/prop-type.d.ts +223 -0
  357. package/dist/styled-system/types/recipe.d.ts +181 -0
  358. package/dist/styled-system/types/selectors.d.ts +59 -0
  359. package/dist/styled-system/types/static-css.d.ts +56 -0
  360. package/dist/styled-system/types/style-props.d.ts +8088 -0
  361. package/dist/styled-system/types/system-types.d.ts +151 -0
  362. package/dist/styles/aliases.css +49 -0
  363. package/dist/styles/compatibility.epilogue.css +384 -0
  364. package/dist/styles/compatibility.prelude.css +5513 -0
  365. package/dist/styles/conditional-states.css +28 -0
  366. package/dist/styles/conditional-utilities.css +22 -0
  367. package/dist/styles/recipes.css +1262 -0
  368. package/dist/types.d.ts +3 -3
  369. package/dist/utils.d.ts +1 -1
  370. package/dist/utils.js +1 -1
  371. package/package.json +38 -14
  372. package/styles-compatibility.json +12 -0
@@ -0,0 +1,3079 @@
1
+ /* @svadmin/ui - Stripe-first product tokens
2
+ * Imported by AdminApp and overridable by consumer CSS.
3
+ * Metronic references inform capability coverage, never visual styling.
4
+ */
5
+
6
+ /* Tailwind v4 resolves this path relative to the published CSS file, so both
7
+ * src/app.css in the workspace and dist/app*.css on npm scan real components. */
8
+ @layer base {
9
+ *, ::after, ::before {
10
+ border-color: var(--color-border, var(--border));
11
+ }
12
+ :root {
13
+ --radius: 0.5rem;
14
+ --background: oklch(0.982 0.003 264);
15
+ --foreground: oklch(0.205 0.012 264);
16
+ --card: oklch(1 0 0);
17
+ --card-foreground: oklch(0.205 0.012 264);
18
+ --popover: oklch(1 0 0);
19
+ --popover-foreground: oklch(0.205 0.012 264);
20
+ --primary: oklch(0.558 0.22 278);
21
+ --primary-foreground: oklch(0.99 0 0);
22
+ --secondary: oklch(0.965 0.004 264);
23
+ --secondary-foreground: oklch(0.265 0.014 264);
24
+ --muted: oklch(0.96 0.004 264);
25
+ --muted-foreground: oklch(0.493 0.018 264);
26
+ --accent: oklch(0.962 0.012 278);
27
+ --accent-foreground: oklch(0.34 0.105 278);
28
+ --destructive: oklch(0.58 0.22 27);
29
+ --destructive-foreground: oklch(0.99 0 0);
30
+ --border: oklch(0.914 0.006 264);
31
+ --input: oklch(0.88 0.008 264);
32
+ --ring: oklch(0.558 0.22 278);
33
+ --chart-1: oklch(0.558 0.22 278);
34
+ --chart-2: oklch(0.57 0.12 196);
35
+ --chart-3: oklch(0.56 0.13 244);
36
+ --chart-4: oklch(0.72 0.15 78);
37
+ --chart-5: oklch(0.62 0.17 19);
38
+ --success: oklch(0.55 0.16 151);
39
+ --success-foreground: oklch(0.99 0 0);
40
+ --warning: oklch(0.7 0.15 75);
41
+ --warning-foreground: oklch(0.25 0.04 60);
42
+ --info: oklch(0.58 0.14 244);
43
+ --info-foreground: oklch(0.99 0 0);
44
+ --sidebar: oklch(0.995 0.001 264);
45
+ --sidebar-foreground: oklch(0.265 0.014 264);
46
+ --sidebar-primary: oklch(0.558 0.22 278);
47
+ --sidebar-primary-foreground: oklch(0.99 0 0);
48
+ --sidebar-accent: oklch(0.962 0.012 278);
49
+ --sidebar-accent-foreground: oklch(0.34 0.105 278);
50
+ --sidebar-border: oklch(0.914 0.006 264);
51
+ --sidebar-ring: oklch(0.558 0.22 278);
52
+ --svadmin-shadow-control: 0 1px 2px rgb(15 23 42 / 0.05), 0 0 0 1px rgb(15 23 42 / 0.025);
53
+ --svadmin-shadow-surface: 0 1px 2px rgb(15 23 42 / 0.035), 0 1px 3px rgb(15 23 42 / 0.025);
54
+ --svadmin-shadow-surface-hover: 0 2px 5px rgb(15 23 42 / 0.055), 0 1px 2px rgb(15 23 42 / 0.035);
55
+ --svadmin-shadow-overlay: 0 18px 48px rgb(15 23 42 / 0.14), 0 4px 12px rgb(15 23 42 / 0.08);
56
+ }
57
+ .dark {
58
+ --background: oklch(0.15 0.01 264);
59
+ --foreground: oklch(0.96 0.004 264);
60
+ --card: oklch(0.185 0.012 264);
61
+ --card-foreground: oklch(0.96 0.004 264);
62
+ --popover: oklch(0.195 0.012 264);
63
+ --popover-foreground: oklch(0.96 0.004 264);
64
+ --primary: oklch(0.68 0.18 278);
65
+ --primary-foreground: oklch(0.15 0.03 278);
66
+ --secondary: oklch(0.235 0.012 264);
67
+ --secondary-foreground: oklch(0.94 0.004 264);
68
+ --muted: oklch(0.235 0.012 264);
69
+ --muted-foreground: oklch(0.7 0.012 264);
70
+ --accent: oklch(0.245 0.035 278);
71
+ --accent-foreground: oklch(0.84 0.09 278);
72
+ --destructive: oklch(0.68 0.19 24);
73
+ --destructive-foreground: oklch(0.98 0 0);
74
+ --border: oklch(0.3 0.012 264);
75
+ --input: oklch(0.335 0.014 264);
76
+ --ring: oklch(0.68 0.18 278);
77
+ --chart-1: oklch(0.68 0.18 278);
78
+ --chart-2: oklch(0.7 0.13 177);
79
+ --chart-3: oklch(0.72 0.13 230);
80
+ --chart-4: oklch(0.78 0.14 83);
81
+ --chart-5: oklch(0.72 0.16 22);
82
+ --success: oklch(0.68 0.15 151);
83
+ --success-foreground: oklch(0.15 0.03 151);
84
+ --warning: oklch(0.8 0.14 78);
85
+ --warning-foreground: oklch(0.22 0.04 60);
86
+ --info: oklch(0.7 0.13 244);
87
+ --info-foreground: oklch(0.15 0.03 244);
88
+ --sidebar: oklch(0.17 0.01 264);
89
+ --sidebar-foreground: oklch(0.9 0.006 264);
90
+ --sidebar-primary: oklch(0.68 0.18 278);
91
+ --sidebar-primary-foreground: oklch(0.15 0.03 278);
92
+ --sidebar-accent: oklch(0.245 0.035 278);
93
+ --sidebar-accent-foreground: oklch(0.84 0.09 278);
94
+ --sidebar-border: oklch(0.3 0.012 264);
95
+ --sidebar-ring: oklch(0.68 0.18 278);
96
+ --svadmin-shadow-control: 0 1px 2px rgb(0 0 0 / 0.24), 0 0 0 1px rgb(255 255 255 / 0.025);
97
+ --svadmin-shadow-surface: 0 1px 2px rgb(0 0 0 / 0.22), 0 1px 3px rgb(0 0 0 / 0.16);
98
+ --svadmin-shadow-surface-hover: 0 2px 5px rgb(0 0 0 / 0.28), 0 1px 2px rgb(0 0 0 / 0.2);
99
+ --svadmin-shadow-overlay: 0 20px 56px rgb(0 0 0 / 0.5), 0 4px 16px rgb(0 0 0 / 0.32);
100
+ }
101
+ [data-theme="neutral"] {
102
+ --primary: oklch(0.205 0.006 286);
103
+ --primary-foreground: oklch(0.985 0 0);
104
+ --ring: oklch(0.205 0.006 286);
105
+ --sidebar-primary: oklch(0.205 0.006 286);
106
+ --sidebar-primary-foreground: oklch(0.985 0 0);
107
+ --sidebar-ring: oklch(0.205 0.006 286);
108
+ --chart-1: oklch(0.558 0.22 278);
109
+ }
110
+ .dark[data-theme="neutral"], .dark [data-theme="neutral"] {
111
+ --primary: oklch(0.922 0.004 286);
112
+ --primary-foreground: oklch(0.205 0.006 286);
113
+ --ring: oklch(0.556 0.004 286);
114
+ --sidebar-primary: oklch(0.922 0.004 286);
115
+ --sidebar-primary-foreground: oklch(0.205 0.006 286);
116
+ --sidebar-ring: oklch(0.556 0.004 286);
117
+ --chart-1: oklch(0.68 0.18 278);
118
+ }
119
+ [data-theme="indigo"] {
120
+ --primary: oklch(0.558 0.22 278);
121
+ --primary-foreground: oklch(0.985 0 0);
122
+ --ring: oklch(0.558 0.22 278);
123
+ --sidebar-primary: oklch(0.558 0.22 278);
124
+ --sidebar-primary-foreground: oklch(0.985 0 0);
125
+ --sidebar-ring: oklch(0.558 0.22 278);
126
+ --chart-1: oklch(0.558 0.22 278);
127
+ }
128
+ .dark[data-theme="indigo"], .dark [data-theme="indigo"] {
129
+ --primary: oklch(0.68 0.18 278);
130
+ --primary-foreground: oklch(0.15 0.04 265);
131
+ --ring: oklch(0.68 0.18 278);
132
+ --sidebar-primary: oklch(0.68 0.18 278);
133
+ --sidebar-primary-foreground: oklch(0.985 0 0);
134
+ --sidebar-ring: oklch(0.68 0.18 278);
135
+ --chart-1: oklch(0.68 0.18 278);
136
+ }
137
+ [data-theme="blue"] {
138
+ --primary: oklch(0.546 0.245 262.881);
139
+ --primary-foreground: oklch(0.985 0 0);
140
+ --ring: oklch(0.546 0.245 262.881);
141
+ --sidebar-primary: oklch(0.546 0.245 262.881);
142
+ --sidebar-primary-foreground: oklch(0.985 0 0);
143
+ --sidebar-ring: oklch(0.546 0.245 262.881);
144
+ --chart-1: oklch(0.546 0.245 262.881);
145
+ }
146
+ .dark[data-theme="blue"], .dark [data-theme="blue"] {
147
+ --primary: oklch(0.623 0.214 259.815);
148
+ --primary-foreground: oklch(0.15 0.04 265);
149
+ --ring: oklch(0.546 0.245 262.881);
150
+ --sidebar-primary: oklch(0.623 0.214 259.815);
151
+ --sidebar-primary-foreground: oklch(0.985 0 0);
152
+ --sidebar-ring: oklch(0.546 0.245 262.881);
153
+ --chart-1: oklch(0.623 0.214 259.815);
154
+ }
155
+ [data-theme="green"] {
156
+ --primary: oklch(0.527 0.185 150.069);
157
+ --primary-foreground: oklch(0.985 0 0);
158
+ --ring: oklch(0.527 0.185 150.069);
159
+ --sidebar-primary: oklch(0.527 0.185 150.069);
160
+ --sidebar-primary-foreground: oklch(0.985 0 0);
161
+ --sidebar-ring: oklch(0.527 0.185 150.069);
162
+ --chart-1: oklch(0.527 0.185 150.069);
163
+ }
164
+ .dark[data-theme="green"], .dark [data-theme="green"] {
165
+ --primary: oklch(0.627 0.194 149.214);
166
+ --primary-foreground: oklch(0.15 0.05 150);
167
+ --ring: oklch(0.527 0.185 150.069);
168
+ --sidebar-primary: oklch(0.627 0.194 149.214);
169
+ --sidebar-primary-foreground: oklch(0.985 0 0);
170
+ --sidebar-ring: oklch(0.527 0.185 150.069);
171
+ --chart-1: oklch(0.627 0.194 149.214);
172
+ }
173
+ [data-theme="rose"] {
174
+ --primary: oklch(0.577 0.245 27.325);
175
+ --primary-foreground: oklch(0.985 0 0);
176
+ --ring: oklch(0.577 0.245 27.325);
177
+ --sidebar-primary: oklch(0.577 0.245 27.325);
178
+ --sidebar-primary-foreground: oklch(0.985 0 0);
179
+ --sidebar-ring: oklch(0.577 0.245 27.325);
180
+ --chart-1: oklch(0.577 0.245 27.325);
181
+ }
182
+ .dark[data-theme="rose"], .dark [data-theme="rose"] {
183
+ --primary: oklch(0.577 0.245 27.325);
184
+ --primary-foreground: oklch(0.985 0 0);
185
+ --ring: oklch(0.577 0.245 27.325);
186
+ --sidebar-primary: oklch(0.577 0.245 27.325);
187
+ --sidebar-primary-foreground: oklch(0.985 0 0);
188
+ --sidebar-ring: oklch(0.577 0.245 27.325);
189
+ --chart-1: oklch(0.577 0.245 27.325);
190
+ }
191
+ [data-theme="orange"] {
192
+ --primary: oklch(0.646 0.222 41.116);
193
+ --primary-foreground: oklch(0.985 0 0);
194
+ --ring: oklch(0.646 0.222 41.116);
195
+ --sidebar-primary: oklch(0.646 0.222 41.116);
196
+ --sidebar-primary-foreground: oklch(0.985 0 0);
197
+ --sidebar-ring: oklch(0.646 0.222 41.116);
198
+ --chart-1: oklch(0.646 0.222 41.116);
199
+ }
200
+ .dark[data-theme="orange"], .dark [data-theme="orange"] {
201
+ --primary: oklch(0.646 0.222 41.116);
202
+ --primary-foreground: oklch(0.985 0 0);
203
+ --ring: oklch(0.646 0.222 41.116);
204
+ --sidebar-primary: oklch(0.646 0.222 41.116);
205
+ --sidebar-primary-foreground: oklch(0.985 0 0);
206
+ --sidebar-ring: oklch(0.646 0.222 41.116);
207
+ --chart-1: oklch(0.646 0.222 41.116);
208
+ }
209
+ [data-theme="violet"] {
210
+ --primary: oklch(0.541 0.281 293.009);
211
+ --primary-foreground: oklch(0.985 0 0);
212
+ --ring: oklch(0.541 0.281 293.009);
213
+ --sidebar-primary: oklch(0.541 0.281 293.009);
214
+ --sidebar-primary-foreground: oklch(0.985 0 0);
215
+ --sidebar-ring: oklch(0.541 0.281 293.009);
216
+ --chart-1: oklch(0.541 0.281 293.009);
217
+ }
218
+ .dark[data-theme="violet"], .dark [data-theme="violet"] {
219
+ --primary: oklch(0.541 0.281 293.009);
220
+ --primary-foreground: oklch(0.985 0 0);
221
+ --ring: oklch(0.541 0.281 293.009);
222
+ --sidebar-primary: oklch(0.541 0.281 293.009);
223
+ --sidebar-primary-foreground: oklch(0.985 0 0);
224
+ --sidebar-ring: oklch(0.541 0.281 293.009);
225
+ --chart-1: oklch(0.541 0.281 293.009);
226
+ }
227
+ }
228
+ @layer components {
229
+ details.svadmin-collapsible:not([open]), [data-svadmin-collapsible]:not([data-open="true"]) {
230
+ margin: 0 !important;
231
+ padding: 0 !important;
232
+ border: 0 !important;
233
+ background: transparent !important;
234
+ box-shadow: none !important;
235
+ }
236
+ [data-svadmin-filter-toolbar] .svadmin-filter-toolbar-advanced[hidden] {
237
+ display: none !important;
238
+ }
239
+ [data-svadmin-filter-toolbar] .svadmin-filter-toolbar-advanced:not([hidden]) {
240
+ min-width: 0;
241
+ }
242
+ }
243
+ body {
244
+ background: var(--background);
245
+ color: var(--foreground);
246
+ font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
247
+ font-size: 0.875rem;
248
+ line-height: 1.5;
249
+ -webkit-font-smoothing: antialiased;
250
+ -moz-osx-font-smoothing: grayscale;
251
+ }
252
+ h1, h2, h3, h4, h5, h6, [data-slot="card-title"] {
253
+ letter-spacing: 0;
254
+ }
255
+ :is([data-slot="button"], .svadmin-button), :is([data-svadmin-button], .svadmin-button), [data-slot="input"], [data-slot="select-trigger"], [data-slot="select"], [data-slot="textarea"] {
256
+ box-shadow: var(--shadow-control);
257
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;
258
+ }
259
+ [data-slot="input"], [data-slot="textarea"], [data-slot="select"], [data-slot="select-trigger"] {
260
+ background-color: var(--card);
261
+ }
262
+ [data-slot="card"] {
263
+ box-shadow: var(--shadow-surface);
264
+ transition: border-color 160ms ease, box-shadow 160ms ease;
265
+ }
266
+ [data-slot="card"][data-interactive="true"]:hover {
267
+ border-color: var(--primary);
268
+ @supports (color: color-mix(in lab, red, red)) {
269
+ border-color: color-mix(in oklch, var(--primary) 24%, var(--border));
270
+ }
271
+ box-shadow: var(--shadow-surface-hover);
272
+ }
273
+ [data-slot="dialog-content"], [data-slot="sheet-content"], [data-slot="popover-content"], [data-slot="dropdown-menu-content"], [data-slot="context-menu-content"] {
274
+ box-shadow: var(--shadow-overlay);
275
+ }
276
+ :is([data-slot="button"], .svadmin-button):focus-visible, :is([data-svadmin-button], .svadmin-button):focus-visible, [data-slot="input"]:focus-visible, [data-slot="textarea"]:focus-visible, [data-slot="select-trigger"]:focus-visible, .sidebar-menu-item:focus-visible {
277
+ border-color: var(--ring);
278
+ outline: 2px solid var(--ring);
279
+ @supports (color: color-mix(in lab, red, red)) {
280
+ outline: 2px solid color-mix(in oklch, var(--ring) 48%, transparent);
281
+ }
282
+ outline-offset: 2px;
283
+ }
284
+
285
+ /* Keep primitive defaults below consumer utility overrides. */
286
+ @layer components {
287
+ :is([data-slot="button"], .svadmin-button), :is([data-svadmin-button], .svadmin-button) {
288
+ display: inline-flex;
289
+ flex-shrink: 0;
290
+ align-items: center;
291
+ justify-content: center;
292
+ gap: 0.375rem;
293
+ border: 1px solid transparent;
294
+ border-radius: var(--radius-md);
295
+ background-clip: padding-box;
296
+ font-size: 0.875rem;
297
+ font-weight: 500;
298
+ line-height: 1;
299
+ white-space: nowrap;
300
+ user-select: none;
301
+ outline: none;
302
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
303
+ }
304
+ :is([data-slot="button"], .svadmin-button) > svg, :is([data-svadmin-button], .svadmin-button) > svg {
305
+ width: 1rem;
306
+ height: 1rem;
307
+ flex-shrink: 0;
308
+ pointer-events: none;
309
+ }
310
+ :is([data-slot="button"], .svadmin-button):active, :is([data-svadmin-button], .svadmin-button):active {
311
+ transform: translateY(1px);
312
+ }
313
+ :is([data-slot="button"], .svadmin-button):disabled, :is([data-svadmin-button], .svadmin-button):disabled, :is([data-slot="button"], .svadmin-button)[aria-disabled="true"], :is([data-svadmin-button], .svadmin-button)[aria-disabled="true"] {
314
+ pointer-events: none;
315
+ opacity: 0.5;
316
+ }
317
+ :is([data-slot="button"], .svadmin-button):is([data-variant="default"], .svadmin-button--default), :is([data-svadmin-button], .svadmin-button):is([data-variant="default"], .svadmin-button--default) {
318
+ background: var(--primary);
319
+ color: var(--primary-foreground);
320
+ }
321
+ :is([data-slot="button"], .svadmin-button):is([data-variant="default"], .svadmin-button--default):hover, :is([data-svadmin-button], .svadmin-button):is([data-variant="default"], .svadmin-button--default):hover {
322
+ background: var(--primary);
323
+ @supports (color: color-mix(in lab, red, red)) {
324
+ background: color-mix(in oklch, var(--primary) 80%, var(--foreground));
325
+ }
326
+ }
327
+ :is([data-slot="button"], .svadmin-button):is([data-variant="outline"], .svadmin-button--outline), :is([data-svadmin-button], .svadmin-button):is([data-variant="outline"], .svadmin-button--outline) {
328
+ border-color: var(--color-border, var(--border));
329
+ background: var(--background);
330
+ color: var(--foreground);
331
+ }
332
+ :is([data-slot="button"], .svadmin-button):is([data-variant="outline"], .svadmin-button--outline):hover, :is([data-svadmin-button], .svadmin-button):is([data-variant="outline"], .svadmin-button--outline):hover {
333
+ background: var(--muted);
334
+ }
335
+ :is([data-slot="button"], .svadmin-button):is([data-variant="secondary"], .svadmin-button--secondary), :is([data-svadmin-button], .svadmin-button):is([data-variant="secondary"], .svadmin-button--secondary) {
336
+ background: var(--secondary);
337
+ color: var(--secondary-foreground);
338
+ }
339
+ :is([data-slot="button"], .svadmin-button):is([data-variant="secondary"], .svadmin-button--secondary):hover, :is([data-svadmin-button], .svadmin-button):is([data-variant="secondary"], .svadmin-button--secondary):hover, :is([data-slot="button"], .svadmin-button):is([data-variant="ghost"], .svadmin-button--ghost):hover, :is([data-svadmin-button], .svadmin-button):is([data-variant="ghost"], .svadmin-button--ghost):hover {
340
+ background: var(--muted);
341
+ color: var(--foreground);
342
+ }
343
+ :is([data-slot="button"], .svadmin-button):is([data-variant="destructive"], .svadmin-button--destructive), :is([data-svadmin-button], .svadmin-button):is([data-variant="destructive"], .svadmin-button--destructive) {
344
+ background: var(--destructive);
345
+ @supports (color: color-mix(in lab, red, red)) {
346
+ background: color-mix(in oklch, var(--destructive) 10%, transparent);
347
+ }
348
+ color: var(--destructive);
349
+ }
350
+ :is([data-slot="button"], .svadmin-button):is([data-variant="destructive"], .svadmin-button--destructive):hover, :is([data-svadmin-button], .svadmin-button):is([data-variant="destructive"], .svadmin-button--destructive):hover {
351
+ background: var(--destructive);
352
+ @supports (color: color-mix(in lab, red, red)) {
353
+ background: color-mix(in oklch, var(--destructive) 20%, transparent);
354
+ }
355
+ }
356
+ :is([data-slot="button"], .svadmin-button):is([data-variant="link"], .svadmin-button--link), :is([data-svadmin-button], .svadmin-button):is([data-variant="link"], .svadmin-button--link) {
357
+ color: var(--primary);
358
+ text-decoration: underline;
359
+ text-underline-offset: 0.25rem;
360
+ }
361
+ :is([data-slot="button"], .svadmin-button):is([data-size="default"], .svadmin-button-size--default), :is([data-svadmin-button], .svadmin-button):is([data-size="default"], .svadmin-button-size--default) {
362
+ min-height: 2.25rem;
363
+ padding: 0 0.75rem;
364
+ }
365
+ :is([data-slot="button"], .svadmin-button):is([data-size="xs"], .svadmin-button-size--xs), :is([data-svadmin-button], .svadmin-button):is([data-size="xs"], .svadmin-button-size--xs) {
366
+ min-height: 1.5rem;
367
+ padding: 0 0.5rem;
368
+ font-size: 0.75rem;
369
+ }
370
+ :is([data-slot="button"], .svadmin-button):is([data-size="sm"], .svadmin-button-size--sm), :is([data-svadmin-button], .svadmin-button):is([data-size="sm"], .svadmin-button-size--sm) {
371
+ min-height: 2rem;
372
+ padding: 0 0.75rem;
373
+ font-size: 0.8rem;
374
+ }
375
+ :is([data-slot="button"], .svadmin-button):is([data-size="lg"], .svadmin-button-size--lg), :is([data-svadmin-button], .svadmin-button):is([data-size="lg"], .svadmin-button-size--lg) {
376
+ min-height: 2.5rem;
377
+ padding: 0 1rem;
378
+ }
379
+ :is([data-slot="button"], .svadmin-button):is([data-size="icon"], .svadmin-button-size--icon), :is([data-svadmin-button], .svadmin-button):is([data-size="icon"], .svadmin-button-size--icon) {
380
+ width: 2.25rem;
381
+ height: 2.25rem;
382
+ }
383
+ :is([data-slot="button"], .svadmin-button):is([data-size="icon-xs"], .svadmin-button-size--icon-xs), :is([data-svadmin-button], .svadmin-button):is([data-size="icon-xs"], .svadmin-button-size--icon-xs) {
384
+ width: 1.5rem;
385
+ height: 1.5rem;
386
+ }
387
+ :is([data-slot="button"], .svadmin-button):is([data-size="icon-sm"], .svadmin-button-size--icon-sm), :is([data-svadmin-button], .svadmin-button):is([data-size="icon-sm"], .svadmin-button-size--icon-sm) {
388
+ width: 2rem;
389
+ height: 2rem;
390
+ }
391
+ :is([data-slot="button"], .svadmin-button):is([data-size="icon-lg"], .svadmin-button-size--icon-lg), :is([data-svadmin-button], .svadmin-button):is([data-size="icon-lg"], .svadmin-button-size--icon-lg) {
392
+ width: 2.5rem;
393
+ height: 2.5rem;
394
+ }
395
+ :is([data-slot="alert"], .svadmin-alert).svadmin-alert {
396
+ position: relative;
397
+ display: grid;
398
+ grid-template-columns: 1fr;
399
+ row-gap: 0.125rem;
400
+ align-items: start;
401
+ width: 100%;
402
+ border: 1px solid var(--border);
403
+ border-radius: var(--radius-lg);
404
+ padding: 0.75rem 1rem;
405
+ background: var(--card);
406
+ color: var(--foreground);
407
+ font-size: 0.875rem;
408
+ }
409
+ :is([data-slot="alert"], .svadmin-alert).svadmin-alert > svg {
410
+ width: 1rem;
411
+ height: 1rem;
412
+ color: currentColor;
413
+ transform: translateY(0.125rem);
414
+ }
415
+ :is([data-slot="alert"], .svadmin-alert).svadmin-alert:is([data-variant="destructive"], .svadmin-alert--destructive) {
416
+ color: var(--destructive);
417
+ }
418
+ :is([data-slot="alert"], .svadmin-alert).svadmin-alert:is([data-variant="destructive"], .svadmin-alert--destructive) [data-slot="alert-description"] {
419
+ color: var(--destructive);
420
+ @supports (color: color-mix(in lab, red, red)) {
421
+ color: color-mix(in oklch, var(--destructive) 90%, transparent);
422
+ }
423
+ }
424
+ :is([data-slot="alert"], .svadmin-alert).svadmin-alert:is([data-variant="warning"], .svadmin-alert--warning) {
425
+ border-color: var(--warning);
426
+ @supports (color: color-mix(in lab, red, red)) {
427
+ border-color: color-mix(in oklch, var(--warning) 50%, var(--border));
428
+ }
429
+ background: var(--warning);
430
+ @supports (color: color-mix(in lab, red, red)) {
431
+ background: color-mix(in oklch, var(--warning) 10%, transparent);
432
+ }
433
+ color: var(--warning-foreground);
434
+ }
435
+ :is([data-slot="alert"], .svadmin-alert).svadmin-alert:is([data-variant="success"], .svadmin-alert--success) {
436
+ border-color: var(--success);
437
+ @supports (color: color-mix(in lab, red, red)) {
438
+ border-color: color-mix(in oklch, var(--success) 50%, var(--border));
439
+ }
440
+ background: var(--success);
441
+ @supports (color: color-mix(in lab, red, red)) {
442
+ background: color-mix(in oklch, var(--success) 10%, transparent);
443
+ }
444
+ color: var(--success);
445
+ }
446
+ .svadmin-avatar {
447
+ display: flex;
448
+ flex-shrink: 0;
449
+ overflow: hidden;
450
+ align-items: center;
451
+ justify-content: center;
452
+ border-radius: 999px;
453
+ }
454
+ .svadmin-avatar:is([data-size="default"], .svadmin-avatar-size--default) {
455
+ width: 2.5rem;
456
+ height: 2.5rem;
457
+ }
458
+ .svadmin-avatar:is([data-size="sm"], .svadmin-avatar-size--sm) {
459
+ width: 2rem;
460
+ height: 2rem;
461
+ }
462
+ .svadmin-avatar:is([data-size="lg"], .svadmin-avatar-size--lg) {
463
+ width: 3rem;
464
+ height: 3rem;
465
+ }
466
+ .svadmin-avatar:is([data-size="xl"], .svadmin-avatar-size--xl) {
467
+ width: 4rem;
468
+ height: 4rem;
469
+ }
470
+ [data-slot="avatar"] {
471
+ width: 100%;
472
+ height: 100%;
473
+ aspect-ratio: 1;
474
+ object-fit: cover;
475
+ }
476
+ [data-slot="avatar-fallback"] {
477
+ background: var(--muted);
478
+ color: var(--muted-foreground);
479
+ font-size: 0.875rem;
480
+ font-weight: 500;
481
+ }
482
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge {
483
+ display: inline-flex;
484
+ flex-shrink: 0;
485
+ align-items: center;
486
+ justify-content: center;
487
+ gap: 0.25rem;
488
+ width: fit-content;
489
+ min-height: 1.25rem;
490
+ overflow: hidden;
491
+ border: 1px solid transparent;
492
+ border-radius: var(--radius-sm);
493
+ padding: 0.125rem 0.625rem;
494
+ font-size: 0.75rem;
495
+ font-weight: 600;
496
+ line-height: 1;
497
+ white-space: nowrap;
498
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
499
+ }
500
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge > svg {
501
+ width: 0.75rem;
502
+ height: 0.75rem;
503
+ pointer-events: none;
504
+ }
505
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="default"], .svadmin-badge--default) {
506
+ background: var(--primary);
507
+ color: var(--primary-foreground);
508
+ }
509
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="secondary"], .svadmin-badge--secondary) {
510
+ background: var(--secondary);
511
+ color: var(--secondary-foreground);
512
+ }
513
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="destructive"], .svadmin-badge--destructive), :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="subtle-destructive"], .svadmin-badge--subtle-destructive) {
514
+ border-color: var(--destructive);
515
+ @supports (color: color-mix(in lab, red, red)) {
516
+ border-color: color-mix(in oklch, var(--destructive) 20%, transparent);
517
+ }
518
+ background: var(--destructive);
519
+ @supports (color: color-mix(in lab, red, red)) {
520
+ background: color-mix(in oklch, var(--destructive) 10%, transparent);
521
+ }
522
+ color: var(--destructive);
523
+ }
524
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="subtle"], .svadmin-badge--subtle) {
525
+ border-color: var(--primary);
526
+ @supports (color: color-mix(in lab, red, red)) {
527
+ border-color: color-mix(in oklch, var(--primary) 20%, transparent);
528
+ }
529
+ background: var(--primary);
530
+ @supports (color: color-mix(in lab, red, red)) {
531
+ background: color-mix(in oklch, var(--primary) 10%, transparent);
532
+ }
533
+ color: var(--primary);
534
+ }
535
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="subtle-success"], .svadmin-badge--subtle-success) {
536
+ border-color: var(--success);
537
+ @supports (color: color-mix(in lab, red, red)) {
538
+ border-color: color-mix(in oklch, var(--success) 20%, transparent);
539
+ }
540
+ background: var(--success);
541
+ @supports (color: color-mix(in lab, red, red)) {
542
+ background: color-mix(in oklch, var(--success) 10%, transparent);
543
+ }
544
+ color: var(--success);
545
+ }
546
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="subtle-warning"], .svadmin-badge--subtle-warning) {
547
+ border-color: var(--warning);
548
+ @supports (color: color-mix(in lab, red, red)) {
549
+ border-color: color-mix(in oklch, var(--warning) 20%, transparent);
550
+ }
551
+ background: var(--warning);
552
+ @supports (color: color-mix(in lab, red, red)) {
553
+ background: color-mix(in oklch, var(--warning) 10%, transparent);
554
+ }
555
+ color: var(--warning);
556
+ }
557
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="subtle-pill"], .svadmin-badge--subtle-pill) {
558
+ border-color: var(--border);
559
+ @supports (color: color-mix(in lab, red, red)) {
560
+ border-color: color-mix(in oklch, var(--border) 80%, transparent);
561
+ }
562
+ border-radius: 999px;
563
+ background: var(--muted);
564
+ @supports (color: color-mix(in lab, red, red)) {
565
+ background: color-mix(in oklch, var(--muted) 70%, transparent);
566
+ }
567
+ color: var(--muted-foreground);
568
+ font-weight: 500;
569
+ }
570
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="outline"], .svadmin-badge--outline) {
571
+ border-color: var(--color-border, var(--border));
572
+ color: var(--foreground);
573
+ }
574
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="ghost"], .svadmin-badge--ghost):hover, :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="outline"], .svadmin-badge--outline):hover {
575
+ background: var(--muted);
576
+ color: var(--muted-foreground);
577
+ }
578
+ :is([data-slot="badge"], .svadmin-badge).svadmin-badge:is([data-variant="link"], .svadmin-badge--link) {
579
+ color: var(--primary);
580
+ text-decoration: underline;
581
+ text-underline-offset: 0.25rem;
582
+ }
583
+ }
584
+ * {
585
+ scrollbar-color: var(--muted-foreground) transparent;
586
+ @supports (color: color-mix(in lab, red, red)) {
587
+ scrollbar-color: color-mix(in oklch, var(--muted-foreground) 42%, transparent) transparent;
588
+ }
589
+ scrollbar-width: thin;
590
+ }
591
+ ::-webkit-scrollbar {
592
+ width: 6px;
593
+ height: 6px;
594
+ }
595
+ ::-webkit-scrollbar-track {
596
+ background: transparent;
597
+ }
598
+ ::-webkit-scrollbar-thumb {
599
+ background: var(--muted-foreground);
600
+ @supports (color: color-mix(in lab, red, red)) {
601
+ background: color-mix(in oklch, var(--muted-foreground) 42%, transparent);
602
+ }
603
+ border-radius: 3px;
604
+ }
605
+ ::-webkit-scrollbar-thumb:hover {
606
+ background: var(--muted-foreground);
607
+ @supports (color: color-mix(in lab, red, red)) {
608
+ background: color-mix(in oklch, var(--muted-foreground) 62%, transparent);
609
+ }
610
+ }
611
+ [data-slot="table-row"] {
612
+ transition: background-color 140ms ease;
613
+ }
614
+ [data-slot="table-row"]:hover {
615
+ background-color: var(--primary);
616
+ @supports (color: color-mix(in lab, red, red)) {
617
+ background-color: color-mix(in oklch, var(--primary) 4%, var(--background));
618
+ }
619
+ }
620
+ @keyframes svadmin-skeleton-pulse {
621
+ 50% {
622
+ opacity: 0.62;
623
+ }
624
+ }
625
+ [data-slot="skeleton"] {
626
+ animation: svadmin-skeleton-pulse 1.5s ease-in-out infinite;
627
+ background: var(--muted);
628
+ }
629
+ @keyframes svadmin-page-enter {
630
+ from {
631
+ opacity: 0;
632
+ }
633
+ to {
634
+ opacity: 1;
635
+ }
636
+ }
637
+ .svadmin-page-enter {
638
+ animation: svadmin-page-enter 180ms ease-out;
639
+ }
640
+ [data-sonner-toaster] [data-sonner-toast] {
641
+ transition-duration: 180ms;
642
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
643
+ }
644
+ @keyframes svadmin-row-delete {
645
+ to {
646
+ opacity: 0;
647
+ transform: translateX(12px);
648
+ height: 0;
649
+ padding: 0;
650
+ margin: 0;
651
+ }
652
+ }
653
+ .svadmin-deleting {
654
+ animation: svadmin-row-delete 240ms ease-out forwards;
655
+ pointer-events: none;
656
+ }
657
+ [data-slot="tooltip-content"] {
658
+ animation: svadmin-tooltip-enter 120ms ease-out;
659
+ }
660
+ @keyframes svadmin-tooltip-enter {
661
+ from {
662
+ opacity: 0;
663
+ }
664
+ to {
665
+ opacity: 1;
666
+ }
667
+ }
668
+ main {
669
+ scroll-behavior: smooth;
670
+ }
671
+ [dir="rtl"] {
672
+ direction: rtl;
673
+ }
674
+ [dir="rtl"] aside {
675
+ left: auto;
676
+ right: 0;
677
+ }
678
+ .sidebar-menu-item, .sidebar-menu-item-active {
679
+ position: relative;
680
+ }
681
+ .sidebar-menu-item {
682
+ cursor: pointer;
683
+ -webkit-tap-highlight-color: transparent;
684
+ }
685
+ .sidebar-scroll [data-radix-scroll-area-viewport] > div {
686
+ display: flex;
687
+ min-height: 100%;
688
+ flex-direction: column;
689
+ }
690
+ @media (prefers-reduced-motion: reduce) {
691
+ *, *::before, *::after {
692
+ animation-duration: 0.01ms !important;
693
+ animation-iteration-count: 1 !important;
694
+ scroll-behavior: auto !important;
695
+ transition-duration: 0.01ms !important;
696
+ }
697
+ }
698
+ @supports (padding-bottom: env(safe-area-inset-bottom)) {
699
+ main {
700
+ padding-bottom: env(safe-area-inset-bottom);
701
+ }
702
+ }
703
+ @media (max-width: 640px) and (pointer: coarse) {
704
+ :is([data-slot="button"], .svadmin-button) {
705
+ position: relative;
706
+ }
707
+ :is([data-slot="button"], .svadmin-button)::after {
708
+ position: absolute;
709
+ z-index: 1;
710
+ top: 50%;
711
+ left: 50%;
712
+ width: 100%;
713
+ min-width: 44px;
714
+ height: 100%;
715
+ min-height: 44px;
716
+ content: '';
717
+ transform: translate(-50%, -50%);
718
+ }
719
+ }
720
+ @layer components {
721
+ .svadmin-line-chart-point:hover {
722
+ r: 6px;
723
+ }
724
+ .svadmin-rich-text {
725
+ color: var(--foreground);
726
+ }
727
+ .svadmin-file-input {
728
+ position: relative;
729
+ width: 100%;
730
+ min-width: 0;
731
+ height: 2.25rem;
732
+ }
733
+ .svadmin-file-input__visual {
734
+ display: flex;
735
+ align-items: center;
736
+ gap: 0.75rem;
737
+ width: 100%;
738
+ height: 100%;
739
+ overflow: hidden;
740
+ border: 1px solid var(--border);
741
+ border-radius: 0.5rem;
742
+ background: var(--card);
743
+ box-shadow: var(--shadow-control);
744
+ padding: 0.25rem 0.75rem 0.25rem 0.25rem;
745
+ color: var(--muted-foreground);
746
+ pointer-events: none;
747
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;
748
+ }
749
+ .svadmin-file-input__button {
750
+ flex: 0 0 auto;
751
+ display: inline-flex;
752
+ align-items: center;
753
+ height: 1.75rem;
754
+ border: 1px solid var(--border);
755
+ @supports (color: color-mix(in lab, red, red)) {
756
+ border: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
757
+ }
758
+ border-radius: 0.375rem;
759
+ padding: 0 0.625rem;
760
+ background: var(--muted);
761
+ color: var(--foreground);
762
+ font: inherit;
763
+ font-size: 0.75rem;
764
+ white-space: nowrap;
765
+ }
766
+ .svadmin-file-input__name {
767
+ overflow: hidden;
768
+ text-overflow: ellipsis;
769
+ white-space: nowrap;
770
+ }
771
+ .svadmin-file-input[data-disabled="true"] .svadmin-file-input__visual {
772
+ opacity: 0.5;
773
+ }
774
+ .svadmin-input {
775
+ width: 100%;
776
+ min-width: 0;
777
+ height: 2.25rem;
778
+ border: 1px solid var(--border);
779
+ border-radius: 0.5rem;
780
+ background: transparent;
781
+ color: var(--foreground);
782
+ outline: none;
783
+ transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
784
+ }
785
+ .svadmin-input:not([data-input-type="file"]) {
786
+ padding: 0.375rem 0.75rem;
787
+ font-size: 0.875rem;
788
+ }
789
+ .svadmin-input[data-input-type="file"] {
790
+ position: absolute;
791
+ z-index: 1;
792
+ inset: 0;
793
+ height: 100%;
794
+ border: 0;
795
+ padding: 0;
796
+ opacity: 0;
797
+ appearance: none;
798
+ cursor: pointer;
799
+ }
800
+ .svadmin-input[data-input-type="file"]:focus-visible + .svadmin-file-input__visual {
801
+ border-color: var(--ring);
802
+ box-shadow: 0 0 0 3px var(--ring);
803
+ @supports (color: color-mix(in lab, red, red)) {
804
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 20%, transparent);
805
+ }
806
+ }
807
+ .svadmin-input:focus-visible {
808
+ border-color: var(--ring);
809
+ box-shadow: 0 0 0 3px var(--ring);
810
+ @supports (color: color-mix(in lab, red, red)) {
811
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 20%, transparent);
812
+ }
813
+ }
814
+ .svadmin-input[aria-invalid="true"] {
815
+ border-color: var(--destructive);
816
+ box-shadow: 0 0 0 3px var(--destructive);
817
+ @supports (color: color-mix(in lab, red, red)) {
818
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--destructive) 20%, transparent);
819
+ }
820
+ }
821
+ .svadmin-input:disabled {
822
+ cursor: not-allowed;
823
+ opacity: 0.5;
824
+ }
825
+ .svadmin-input::placeholder {
826
+ color: var(--muted-foreground);
827
+ }
828
+ .svadmin-card {
829
+ display: flex;
830
+ flex-direction: column;
831
+ gap: 1rem;
832
+ overflow: hidden;
833
+ border-radius: 0.5rem;
834
+ padding: 1rem 0;
835
+ background: var(--card);
836
+ color: var(--card-foreground);
837
+ font-size: 0.875rem;
838
+ box-shadow: var(--svadmin-shadow-surface);
839
+ }
840
+ .svadmin-card[data-size="sm"] {
841
+ gap: 0.75rem;
842
+ padding-top: 0.75rem;
843
+ padding-bottom: 0.75rem;
844
+ }
845
+ .svadmin-card:has([data-slot="card-footer"]) {
846
+ padding-bottom: 0;
847
+ }
848
+ .svadmin-card > img:first-child {
849
+ border-top-left-radius: 0.5rem;
850
+ border-top-right-radius: 0.5rem;
851
+ }
852
+ .svadmin-card > img:last-child {
853
+ border-bottom-left-radius: 0.5rem;
854
+ border-bottom-right-radius: 0.5rem;
855
+ }
856
+ .svadmin-table-cell {
857
+ padding: 0.5rem;
858
+ vertical-align: middle;
859
+ white-space: nowrap;
860
+ }
861
+ .svadmin-table-cell[data-density="compact"] {
862
+ height: 2rem;
863
+ padding: 0.25rem 0.5rem;
864
+ font-size: 0.75rem;
865
+ }
866
+ .svadmin-table-cell[data-sticky="right"], .svadmin-table-cell[data-sticky="left"] {
867
+ position: sticky;
868
+ z-index: 10;
869
+ background: var(--background);
870
+ }
871
+ .svadmin-table-cell[data-sticky="right"] {
872
+ right: 0;
873
+ box-shadow: -1px 0 0 var(--border);
874
+ }
875
+ .svadmin-table-cell[data-sticky="left"] {
876
+ left: 0;
877
+ box-shadow: 1px 0 0 var(--border);
878
+ }
879
+ .svadmin-table-row:hover .svadmin-table-cell[data-sticky], .svadmin-table-row[data-state="selected"] .svadmin-table-cell[data-sticky] {
880
+ background: var(--muted);
881
+ }
882
+ .svadmin-dialog-content {
883
+ position: fixed;
884
+ top: 50%;
885
+ left: 50%;
886
+ z-index: 50;
887
+ display: grid;
888
+ width: 100%;
889
+ max-width: min(32rem, calc(100% - 2rem));
890
+ gap: 1rem;
891
+ border-radius: 0.75rem;
892
+ padding: 1.5rem;
893
+ background: var(--background);
894
+ color: var(--foreground);
895
+ outline: none;
896
+ box-shadow: var(--svadmin-shadow-overlay);
897
+ transform: translate(-50%, -50%);
898
+ transition: opacity 300ms ease, transform 300ms ease;
899
+ }
900
+ .svadmin-dialog-content[data-state="closed"] {
901
+ opacity: 0;
902
+ transform: translate(-50%, -50%) scale(0.98);
903
+ }
904
+ .svadmin-dialog-overlay, .svadmin-alert-dialog-overlay, .svadmin-sheet-overlay {
905
+ position: fixed;
906
+ inset: 0;
907
+ z-index: 50;
908
+ background: var(--foreground);
909
+ @supports (color: color-mix(in lab, red, red)) {
910
+ background: color-mix(in srgb, var(--foreground) 20%, transparent);
911
+ }
912
+ isolation: isolate;
913
+ backdrop-filter: blur(4px);
914
+ animation: svadmin-overlay-enter 160ms ease-out;
915
+ }
916
+ .svadmin-alert-dialog-overlay, .svadmin-sheet-overlay {
917
+ background: var(--foreground);
918
+ @supports (color: color-mix(in lab, red, red)) {
919
+ background: color-mix(in srgb, var(--foreground) 80%, transparent);
920
+ }
921
+ }
922
+ .svadmin-alert-dialog-content {
923
+ position: fixed;
924
+ top: 50%;
925
+ left: 50%;
926
+ z-index: 50;
927
+ display: grid;
928
+ width: 100%;
929
+ max-width: 32rem;
930
+ gap: 1rem;
931
+ border: 1px solid var(--border);
932
+ border-radius: 0.5rem;
933
+ padding: 1.5rem;
934
+ background: var(--background);
935
+ color: var(--foreground);
936
+ box-shadow: var(--svadmin-shadow-overlay);
937
+ transform: translate(-50%, -50%);
938
+ animation: svadmin-dialog-enter 200ms ease-out;
939
+ }
940
+ .svadmin-alert-dialog-content[data-state="closed"] {
941
+ opacity: 0;
942
+ transform: translate(-50%, -50%) scale(0.95);
943
+ }
944
+ .svadmin-sheet-panel {
945
+ position: fixed;
946
+ z-index: 50;
947
+ display: flex;
948
+ height: 100%;
949
+ width: 75%;
950
+ max-width: 24rem;
951
+ flex-direction: column;
952
+ gap: 1rem;
953
+ padding: 1.5rem;
954
+ background: var(--background);
955
+ color: var(--foreground);
956
+ box-shadow: var(--svadmin-shadow-overlay);
957
+ }
958
+ .svadmin-sheet-panel[data-side="right"] {
959
+ inset: 0 0 0 auto;
960
+ border-left: 1px solid var(--border);
961
+ }
962
+ .svadmin-sheet-panel[data-side="left"] {
963
+ inset: 0 auto 0 0;
964
+ border-right: 1px solid var(--border);
965
+ }
966
+ .svadmin-sheet-content {
967
+ display: flex;
968
+ height: 100%;
969
+ flex-direction: column;
970
+ gap: 1rem;
971
+ }
972
+ .svadmin-sheet-close {
973
+ position: absolute;
974
+ top: 1rem;
975
+ right: 1rem;
976
+ border: 0;
977
+ border-radius: 0.25rem;
978
+ padding: 0.25rem;
979
+ background: transparent;
980
+ color: inherit;
981
+ opacity: 0.7;
982
+ cursor: pointer;
983
+ transition: opacity 120ms ease, box-shadow 120ms ease;
984
+ }
985
+ .svadmin-sheet-close:hover {
986
+ opacity: 1;
987
+ }
988
+ .svadmin-sheet-close:focus-visible {
989
+ outline: none;
990
+ box-shadow: 0 0 0 2px var(--ring);
991
+ }
992
+ @keyframes svadmin-overlay-enter {
993
+ from {
994
+ opacity: 0;
995
+ }
996
+ to {
997
+ opacity: 1;
998
+ }
999
+ }
1000
+ @keyframes svadmin-dialog-enter {
1001
+ from {
1002
+ opacity: 0;
1003
+ transform: translate(-50%, -48%) scale(0.98);
1004
+ }
1005
+ to {
1006
+ opacity: 1;
1007
+ transform: translate(-50%, -50%) scale(1);
1008
+ }
1009
+ }
1010
+ .svadmin-label {
1011
+ display: flex;
1012
+ align-items: center;
1013
+ gap: 0.5rem;
1014
+ color: var(--foreground);
1015
+ font-size: 0.875rem;
1016
+ line-height: 1;
1017
+ font-weight: 500;
1018
+ user-select: none;
1019
+ }
1020
+ .svadmin-label:has(+ :disabled), .svadmin-label[data-disabled="true"] {
1021
+ cursor: not-allowed;
1022
+ opacity: 0.5;
1023
+ }
1024
+ .svadmin-textarea {
1025
+ width: 100%;
1026
+ min-height: 5rem;
1027
+ resize: vertical;
1028
+ border: 1px solid var(--border);
1029
+ border-radius: 0.5rem;
1030
+ padding: 0.5rem 0.75rem;
1031
+ background: transparent;
1032
+ color: var(--foreground);
1033
+ font: inherit;
1034
+ font-size: 0.875rem;
1035
+ outline: none;
1036
+ transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
1037
+ }
1038
+ .svadmin-textarea:focus-visible {
1039
+ border-color: var(--ring);
1040
+ box-shadow: 0 0 0 3px var(--ring);
1041
+ @supports (color: color-mix(in lab, red, red)) {
1042
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 20%, transparent);
1043
+ }
1044
+ }
1045
+ .svadmin-textarea[aria-invalid="true"] {
1046
+ border-color: var(--destructive);
1047
+ box-shadow: 0 0 0 3px var(--destructive);
1048
+ @supports (color: color-mix(in lab, red, red)) {
1049
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--destructive) 20%, transparent);
1050
+ }
1051
+ }
1052
+ .svadmin-textarea:disabled {
1053
+ cursor: not-allowed;
1054
+ opacity: 0.5;
1055
+ }
1056
+ .svadmin-textarea::placeholder {
1057
+ color: var(--muted-foreground);
1058
+ }
1059
+ .svadmin-skeleton {
1060
+ border-radius: 0.375rem;
1061
+ background: var(--muted);
1062
+ animation: svadmin-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1063
+ }
1064
+ @keyframes svadmin-pulse {
1065
+ 50% {
1066
+ opacity: 0.5;
1067
+ }
1068
+ }
1069
+ .svadmin-progress {
1070
+ position: relative;
1071
+ width: 100%;
1072
+ height: 0.5rem;
1073
+ overflow: hidden;
1074
+ border-radius: 999px;
1075
+ background: var(--primary);
1076
+ @supports (color: color-mix(in lab, red, red)) {
1077
+ background: color-mix(in srgb, var(--primary) 20%, transparent);
1078
+ }
1079
+ }
1080
+ .svadmin-progress-value {
1081
+ width: 100%;
1082
+ height: 100%;
1083
+ flex: 1;
1084
+ background: var(--primary);
1085
+ transition: transform 200ms ease;
1086
+ }
1087
+ .svadmin-separator {
1088
+ flex-shrink: 0;
1089
+ background: var(--border);
1090
+ }
1091
+ .svadmin-separator[data-orientation="horizontal"] {
1092
+ width: 100%;
1093
+ height: 1px;
1094
+ }
1095
+ .svadmin-separator[data-orientation="vertical"] {
1096
+ width: 1px;
1097
+ height: 100%;
1098
+ }
1099
+ .svadmin-card-header {
1100
+ display: grid;
1101
+ grid-auto-rows: min-content;
1102
+ grid-template-columns: 1fr;
1103
+ align-items: start;
1104
+ gap: 0.25rem;
1105
+ padding: 0 1rem;
1106
+ }
1107
+ .svadmin-card-header:has([data-slot="card-action"]) {
1108
+ grid-template-columns: 1fr auto;
1109
+ }
1110
+ .svadmin-card-header:has([data-slot="card-description"]) {
1111
+ grid-template-rows: auto auto;
1112
+ }
1113
+ .svadmin-card[data-size="sm"] .svadmin-card-header, .svadmin-card[data-size="sm"] .svadmin-card-content {
1114
+ padding-right: 0.75rem;
1115
+ padding-left: 0.75rem;
1116
+ }
1117
+ .svadmin-card-header:has(+ .svadmin-card-content), .svadmin-card-header[class*="border-b"] {
1118
+ padding-bottom: 1rem;
1119
+ }
1120
+ .svadmin-card-content {
1121
+ padding: 0 1rem;
1122
+ }
1123
+ .svadmin-card-footer {
1124
+ display: flex;
1125
+ align-items: center;
1126
+ border-radius: 0 0 0.75rem 0.75rem;
1127
+ padding: 1rem;
1128
+ background: var(--muted);
1129
+ @supports (color: color-mix(in lab, red, red)) {
1130
+ background: color-mix(in srgb, var(--muted) 50%, transparent);
1131
+ }
1132
+ }
1133
+ .svadmin-card[data-size="sm"] .svadmin-card-footer {
1134
+ padding: 0.75rem;
1135
+ }
1136
+ .svadmin-card-title {
1137
+ color: var(--card-foreground);
1138
+ font-size: inherit;
1139
+ font-weight: 600;
1140
+ line-height: 1;
1141
+ letter-spacing: 0;
1142
+ }
1143
+ .svadmin-card[data-size="sm"] .svadmin-card-title {
1144
+ font-size: 0.875rem;
1145
+ }
1146
+ .svadmin-card-description {
1147
+ color: var(--muted-foreground);
1148
+ font-size: 0.875rem;
1149
+ }
1150
+ .svadmin-card-action {
1151
+ grid-column: 2;
1152
+ grid-row: span 2;
1153
+ grid-row-start: 1;
1154
+ align-self: start;
1155
+ justify-self: end;
1156
+ }
1157
+ .svadmin-table-caption {
1158
+ margin-top: 1rem;
1159
+ color: var(--muted-foreground);
1160
+ font-size: 0.875rem;
1161
+ }
1162
+ .svadmin-table-footer {
1163
+ background: var(--muted);
1164
+ @supports (color: color-mix(in lab, red, red)) {
1165
+ background: color-mix(in srgb, var(--muted) 50%, transparent);
1166
+ }
1167
+ font-weight: 500;
1168
+ }
1169
+ .svadmin-breadcrumb-list {
1170
+ display: flex;
1171
+ flex-wrap: wrap;
1172
+ align-items: center;
1173
+ gap: 0.375rem;
1174
+ color: var(--muted-foreground);
1175
+ font-size: 0.875rem;
1176
+ overflow-wrap: break-word;
1177
+ }
1178
+ .svadmin-breadcrumb-item {
1179
+ display: inline-flex;
1180
+ align-items: center;
1181
+ gap: 0.375rem;
1182
+ }
1183
+ .svadmin-breadcrumb-link {
1184
+ transition: color 120ms ease;
1185
+ }
1186
+ .svadmin-breadcrumb-link:hover {
1187
+ color: var(--foreground);
1188
+ }
1189
+ .svadmin-breadcrumb-page {
1190
+ color: var(--foreground);
1191
+ font-weight: 400;
1192
+ }
1193
+ .svadmin-breadcrumb-separator {
1194
+ display: inline-flex;
1195
+ align-items: center;
1196
+ }
1197
+ .svadmin-breadcrumb-ellipsis {
1198
+ display: flex;
1199
+ width: 2.25rem;
1200
+ height: 2.25rem;
1201
+ align-items: center;
1202
+ justify-content: center;
1203
+ }
1204
+ .svadmin-breadcrumb-icon {
1205
+ width: 0.875rem;
1206
+ height: 0.875rem;
1207
+ }
1208
+ .svadmin-alert-dialog-header {
1209
+ display: flex;
1210
+ flex-direction: column;
1211
+ gap: 0.5rem;
1212
+ text-align: center;
1213
+ }
1214
+ .svadmin-alert-dialog-footer {
1215
+ display: flex;
1216
+ flex-direction: column-reverse;
1217
+ gap: 0.5rem;
1218
+ }
1219
+ .svadmin-alert-dialog-title, .svadmin-dialog-title {
1220
+ color: var(--foreground);
1221
+ font-size: 1.125rem;
1222
+ line-height: 1;
1223
+ font-weight: 600;
1224
+ }
1225
+ .svadmin-alert-dialog-description, .svadmin-dialog-description, .svadmin-sheet-description {
1226
+ color: var(--muted-foreground);
1227
+ font-size: 0.875rem;
1228
+ }
1229
+ .svadmin-dialog-description a {
1230
+ text-decoration: underline;
1231
+ text-underline-offset: 3px;
1232
+ }
1233
+ .svadmin-dialog-description a:hover {
1234
+ color: var(--foreground);
1235
+ }
1236
+ .svadmin-dialog-header {
1237
+ display: flex;
1238
+ flex-direction: column;
1239
+ gap: 0.5rem;
1240
+ }
1241
+ .svadmin-dialog-footer {
1242
+ display: flex;
1243
+ flex-direction: column-reverse;
1244
+ gap: 0.5rem;
1245
+ margin: 0 -1.5rem -1.5rem;
1246
+ border-top: 1px solid var(--border);
1247
+ border-radius: 0 0 0.75rem 0.75rem;
1248
+ padding: 1rem;
1249
+ background: var(--muted);
1250
+ @supports (color: color-mix(in lab, red, red)) {
1251
+ background: color-mix(in srgb, var(--muted) 50%, transparent);
1252
+ }
1253
+ }
1254
+ .svadmin-sheet-header {
1255
+ display: flex;
1256
+ flex-direction: column;
1257
+ gap: 0.375rem;
1258
+ padding-bottom: 1rem;
1259
+ }
1260
+ .svadmin-sheet-footer {
1261
+ display: flex;
1262
+ flex-direction: column-reverse;
1263
+ gap: 0.5rem;
1264
+ margin-top: auto;
1265
+ }
1266
+ .svadmin-sheet-title {
1267
+ color: var(--foreground);
1268
+ font-size: 1.125rem;
1269
+ font-weight: 600;
1270
+ }
1271
+ .svadmin-dropdown-separator, .svadmin-command-separator {
1272
+ height: 1px;
1273
+ margin: 0.25rem -0.25rem;
1274
+ background: var(--border);
1275
+ }
1276
+ .svadmin-command-group {
1277
+ overflow: hidden;
1278
+ padding: 0.25rem;
1279
+ color: var(--foreground);
1280
+ }
1281
+ .svadmin-command-heading {
1282
+ padding: 0.375rem 0.5rem;
1283
+ color: var(--muted-foreground);
1284
+ font-size: 0.75rem;
1285
+ font-weight: 500;
1286
+ }
1287
+ .svadmin-command-empty {
1288
+ padding: 1.5rem 0;
1289
+ text-align: center;
1290
+ font-size: 0.875rem;
1291
+ }
1292
+ .svadmin-select {
1293
+ width: 100%;
1294
+ height: 2.25rem;
1295
+ border: 1px solid var(--border);
1296
+ border-radius: 0.5rem;
1297
+ padding: 0.375rem 0.75rem;
1298
+ background: var(--background);
1299
+ color: var(--foreground);
1300
+ font: inherit;
1301
+ font-size: 0.875rem;
1302
+ outline: none;
1303
+ transition: border-color 120ms ease, box-shadow 120ms ease;
1304
+ }
1305
+ .svadmin-select:focus-visible {
1306
+ border-color: var(--ring);
1307
+ box-shadow: 0 0 0 3px var(--ring);
1308
+ @supports (color: color-mix(in lab, red, red)) {
1309
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 20%, transparent);
1310
+ }
1311
+ }
1312
+ .svadmin-select:disabled {
1313
+ cursor: not-allowed;
1314
+ opacity: 0.5;
1315
+ }
1316
+ .svadmin-tabs {
1317
+ display: flex;
1318
+ flex-direction: column;
1319
+ gap: 0.5rem;
1320
+ }
1321
+ .svadmin-tabs-list {
1322
+ display: inline-flex;
1323
+ width: fit-content;
1324
+ height: 2.25rem;
1325
+ align-items: center;
1326
+ justify-content: center;
1327
+ gap: 0.25rem;
1328
+ border-radius: 0.5rem;
1329
+ padding: 0.1875rem;
1330
+ background: var(--muted);
1331
+ color: var(--muted-foreground);
1332
+ }
1333
+ .svadmin-tabs-trigger {
1334
+ display: inline-flex;
1335
+ align-items: center;
1336
+ justify-content: center;
1337
+ gap: 0.375rem;
1338
+ white-space: nowrap;
1339
+ border: 0;
1340
+ border-radius: 0.375rem;
1341
+ padding: 0.25rem 0.625rem;
1342
+ background: transparent;
1343
+ color: var(--muted-foreground);
1344
+ font: inherit;
1345
+ font-size: 0.875rem;
1346
+ font-weight: 500;
1347
+ outline: none;
1348
+ cursor: pointer;
1349
+ transition: color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
1350
+ }
1351
+ .svadmin-tabs-trigger[data-state="active"] {
1352
+ background: var(--background);
1353
+ color: var(--foreground);
1354
+ box-shadow: var(--svadmin-shadow-control);
1355
+ }
1356
+ .svadmin-tabs-trigger:hover {
1357
+ color: var(--foreground);
1358
+ }
1359
+ .svadmin-tabs-trigger:focus-visible {
1360
+ box-shadow: 0 0 0 2px var(--ring);
1361
+ @supports (color: color-mix(in lab, red, red)) {
1362
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--ring) 50%, transparent);
1363
+ }
1364
+ }
1365
+ .svadmin-tabs-trigger:disabled {
1366
+ cursor: not-allowed;
1367
+ opacity: 0.5;
1368
+ }
1369
+ .svadmin-tabs-trigger svg {
1370
+ width: 1rem;
1371
+ height: 1rem;
1372
+ flex-shrink: 0;
1373
+ }
1374
+ .svadmin-tabs-content {
1375
+ flex: 1;
1376
+ outline: none;
1377
+ }
1378
+ .svadmin-command {
1379
+ display: flex;
1380
+ width: 100%;
1381
+ height: 100%;
1382
+ flex-direction: column;
1383
+ overflow: hidden;
1384
+ border-radius: 0.375rem;
1385
+ background: var(--popover);
1386
+ color: var(--popover-foreground);
1387
+ }
1388
+ .svadmin-command-input {
1389
+ width: 100%;
1390
+ border: 0;
1391
+ background: transparent;
1392
+ color: inherit;
1393
+ font-size: 0.875rem;
1394
+ outline: none;
1395
+ }
1396
+ .svadmin-command-input:disabled {
1397
+ cursor: not-allowed;
1398
+ opacity: 0.5;
1399
+ }
1400
+ .svadmin-command-list {
1401
+ max-height: 18rem;
1402
+ overflow-x: hidden;
1403
+ overflow-y: auto;
1404
+ }
1405
+ .svadmin-command-item {
1406
+ position: relative;
1407
+ display: flex;
1408
+ align-items: center;
1409
+ gap: 0.5rem;
1410
+ border-radius: 0.125rem;
1411
+ padding: 0.375rem 0.5rem;
1412
+ color: var(--foreground);
1413
+ font-size: 0.875rem;
1414
+ outline: none;
1415
+ cursor: default;
1416
+ user-select: none;
1417
+ }
1418
+ .svadmin-command-item[data-selected] {
1419
+ background: var(--accent);
1420
+ color: var(--accent-foreground);
1421
+ }
1422
+ .svadmin-command-item[data-disabled] {
1423
+ pointer-events: none;
1424
+ opacity: 0.5;
1425
+ }
1426
+ .svadmin-dropdown-menu {
1427
+ position: relative;
1428
+ display: inline-block;
1429
+ }
1430
+ .svadmin-dropdown-content {
1431
+ position: absolute;
1432
+ z-index: 50;
1433
+ min-width: 8rem;
1434
+ margin-top: 0.25rem;
1435
+ overflow: hidden;
1436
+ border: 1px solid var(--border);
1437
+ border-radius: 0.5rem;
1438
+ padding: 0.25rem;
1439
+ background: var(--popover);
1440
+ color: var(--popover-foreground);
1441
+ box-shadow: var(--svadmin-shadow-overlay);
1442
+ animation: svadmin-menu-enter 120ms ease-out;
1443
+ }
1444
+ .svadmin-dropdown-align-start {
1445
+ left: 0;
1446
+ }
1447
+ .svadmin-dropdown-align-center {
1448
+ left: 50%;
1449
+ transform: translateX(-50%);
1450
+ }
1451
+ .svadmin-dropdown-align-end {
1452
+ right: 0;
1453
+ }
1454
+ .svadmin-dropdown-item, .svadmin-dropdown-checkbox-item {
1455
+ position: relative;
1456
+ display: flex;
1457
+ width: 100%;
1458
+ align-items: center;
1459
+ gap: 0.5rem;
1460
+ border: 0;
1461
+ border-radius: 0.375rem;
1462
+ padding: 0.375rem 0.5rem;
1463
+ background: transparent;
1464
+ color: var(--foreground);
1465
+ font: inherit;
1466
+ font-size: 0.875rem;
1467
+ outline: none;
1468
+ cursor: pointer;
1469
+ user-select: none;
1470
+ transition: background-color 120ms ease, color 120ms ease;
1471
+ }
1472
+ .svadmin-dropdown-item[data-inset="true"] {
1473
+ padding-left: 2rem;
1474
+ }
1475
+ .svadmin-dropdown-item:hover, .svadmin-dropdown-item:focus, .svadmin-dropdown-checkbox-item:hover, .svadmin-dropdown-checkbox-item:focus {
1476
+ background: var(--accent);
1477
+ color: var(--accent-foreground);
1478
+ }
1479
+ .svadmin-dropdown-item[data-variant="destructive"] {
1480
+ color: var(--destructive);
1481
+ }
1482
+ .svadmin-dropdown-item[data-variant="destructive"]:hover, .svadmin-dropdown-item[data-variant="destructive"]:focus {
1483
+ background: var(--destructive);
1484
+ @supports (color: color-mix(in lab, red, red)) {
1485
+ background: color-mix(in srgb, var(--destructive) 10%, transparent);
1486
+ }
1487
+ }
1488
+ .svadmin-dropdown-item:disabled, .svadmin-dropdown-checkbox-item[data-disabled] {
1489
+ pointer-events: none;
1490
+ opacity: 0.5;
1491
+ }
1492
+ .svadmin-dropdown-item svg, .svadmin-dropdown-checkbox-item svg {
1493
+ width: 1rem;
1494
+ height: 1rem;
1495
+ flex-shrink: 0;
1496
+ }
1497
+ .svadmin-dropdown-checkbox-item {
1498
+ padding-right: 0.5rem;
1499
+ padding-left: 2rem;
1500
+ cursor: default;
1501
+ }
1502
+ .svadmin-dropdown-checkbox-indicator {
1503
+ position: absolute;
1504
+ left: 0.5rem;
1505
+ display: flex;
1506
+ width: 0.875rem;
1507
+ height: 0.875rem;
1508
+ align-items: center;
1509
+ justify-content: center;
1510
+ pointer-events: none;
1511
+ }
1512
+ .svadmin-dropdown-checkbox-indicator svg {
1513
+ width: 1rem;
1514
+ height: 1rem;
1515
+ }
1516
+ .svadmin-checkbox {
1517
+ position: relative;
1518
+ display: flex;
1519
+ width: 1rem;
1520
+ height: 1rem;
1521
+ flex-shrink: 0;
1522
+ align-items: center;
1523
+ justify-content: center;
1524
+ border: 1px solid var(--border);
1525
+ border-radius: 0.25rem;
1526
+ background: var(--background);
1527
+ color: var(--primary-foreground);
1528
+ outline: none;
1529
+ cursor: pointer;
1530
+ transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
1531
+ }
1532
+ .svadmin-checkbox[data-state="checked"], .svadmin-checkbox[data-state="indeterminate"], .svadmin-checkbox[data-checked] {
1533
+ border-color: var(--primary);
1534
+ background: var(--primary);
1535
+ }
1536
+ .svadmin-checkbox:focus-visible {
1537
+ border-color: var(--ring);
1538
+ box-shadow: 0 0 0 3px var(--ring);
1539
+ @supports (color: color-mix(in lab, red, red)) {
1540
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 50%, transparent);
1541
+ }
1542
+ }
1543
+ .svadmin-checkbox:disabled {
1544
+ cursor: not-allowed;
1545
+ opacity: 0.5;
1546
+ }
1547
+ .svadmin-checkbox-indicator {
1548
+ display: grid;
1549
+ place-content: center;
1550
+ color: currentColor;
1551
+ }
1552
+ .svadmin-checkbox-indicator svg {
1553
+ width: 0.875rem;
1554
+ height: 0.875rem;
1555
+ }
1556
+ .svadmin-switch {
1557
+ display: inline-flex;
1558
+ width: 2.25rem;
1559
+ height: 1.25rem;
1560
+ flex-shrink: 0;
1561
+ align-items: center;
1562
+ border: 2px solid transparent;
1563
+ border-radius: 999px;
1564
+ padding: 0;
1565
+ background: var(--input);
1566
+ outline: none;
1567
+ cursor: pointer;
1568
+ box-shadow: var(--svadmin-shadow-control);
1569
+ transition: background-color 160ms ease, box-shadow 160ms ease;
1570
+ }
1571
+ .svadmin-switch[data-state="checked"] {
1572
+ background: var(--primary);
1573
+ }
1574
+ .svadmin-switch:focus-visible {
1575
+ box-shadow: 0 0 0 3px var(--ring);
1576
+ @supports (color: color-mix(in lab, red, red)) {
1577
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 50%, transparent);
1578
+ }
1579
+ }
1580
+ .svadmin-switch:disabled {
1581
+ cursor: not-allowed;
1582
+ opacity: 0.5;
1583
+ }
1584
+ .svadmin-switch-thumb {
1585
+ display: block;
1586
+ width: 1rem;
1587
+ height: 1rem;
1588
+ border-radius: 999px;
1589
+ background: var(--background);
1590
+ box-shadow: var(--svadmin-shadow-overlay);
1591
+ transform: translateX(0);
1592
+ transition: transform 160ms ease;
1593
+ pointer-events: none;
1594
+ }
1595
+ .svadmin-switch[data-state="checked"] .svadmin-switch-thumb {
1596
+ transform: translateX(1rem);
1597
+ }
1598
+ .svadmin-navigation-menu {
1599
+ position: relative;
1600
+ z-index: 10;
1601
+ display: flex;
1602
+ max-width: max-content;
1603
+ flex: 1;
1604
+ align-items: center;
1605
+ justify-content: center;
1606
+ }
1607
+ .svadmin-navigation-list {
1608
+ display: flex;
1609
+ flex: 1;
1610
+ align-items: center;
1611
+ justify-content: center;
1612
+ gap: 0.25rem;
1613
+ margin: 0;
1614
+ padding: 0;
1615
+ list-style: none;
1616
+ }
1617
+ .svadmin-navigation-item {
1618
+ position: relative;
1619
+ }
1620
+ .svadmin-navigation-link, .svadmin-navigation-trigger {
1621
+ display: inline-flex;
1622
+ width: max-content;
1623
+ height: 2.25rem;
1624
+ align-items: center;
1625
+ justify-content: center;
1626
+ gap: 0.25rem;
1627
+ border: 0;
1628
+ border-radius: 0.375rem;
1629
+ padding: 0.5rem 1rem;
1630
+ background: transparent;
1631
+ color: var(--muted-foreground);
1632
+ font: inherit;
1633
+ font-size: 0.875rem;
1634
+ font-weight: 500;
1635
+ outline: none;
1636
+ cursor: pointer;
1637
+ transition: background-color 120ms ease, color 120ms ease;
1638
+ }
1639
+ .svadmin-navigation-link:hover, .svadmin-navigation-link:focus, .svadmin-navigation-trigger:hover, .svadmin-navigation-trigger:focus, .svadmin-navigation-trigger[data-state="open"] {
1640
+ background: var(--muted);
1641
+ color: var(--foreground);
1642
+ }
1643
+ .svadmin-navigation-link:focus-visible, .svadmin-navigation-trigger:focus-visible {
1644
+ box-shadow: 0 0 0 2px var(--ring);
1645
+ @supports (color: color-mix(in lab, red, red)) {
1646
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--ring) 50%, transparent);
1647
+ }
1648
+ }
1649
+ .svadmin-navigation-link:disabled, .svadmin-navigation-trigger:disabled {
1650
+ pointer-events: none;
1651
+ opacity: 0.5;
1652
+ }
1653
+ .svadmin-navigation-trigger-icon {
1654
+ width: 0.75rem;
1655
+ height: 0.75rem;
1656
+ margin-left: 0.25rem;
1657
+ transition: transform 160ms ease;
1658
+ }
1659
+ .svadmin-navigation-trigger[data-state="open"] .svadmin-navigation-trigger-icon {
1660
+ transform: rotate(180deg);
1661
+ }
1662
+ .svadmin-navigation-content {
1663
+ top: 0;
1664
+ left: 0;
1665
+ width: 100%;
1666
+ }
1667
+ .svadmin-navigation-indicator {
1668
+ top: 100%;
1669
+ z-index: 1;
1670
+ display: flex;
1671
+ height: 0.375rem;
1672
+ align-items: flex-end;
1673
+ justify-content: center;
1674
+ overflow: hidden;
1675
+ }
1676
+ .svadmin-navigation-indicator-arrow {
1677
+ position: relative;
1678
+ top: 60%;
1679
+ width: 0.5rem;
1680
+ height: 0.5rem;
1681
+ border-top-left-radius: 0.125rem;
1682
+ background: var(--border);
1683
+ box-shadow: var(--svadmin-shadow-control);
1684
+ transform: rotate(45deg);
1685
+ }
1686
+ .svadmin-navigation-viewport-wrapper {
1687
+ position: absolute;
1688
+ top: 100%;
1689
+ left: 0;
1690
+ display: flex;
1691
+ justify-content: center;
1692
+ }
1693
+ .svadmin-navigation-viewport {
1694
+ position: relative;
1695
+ width: 100%;
1696
+ margin-top: 0.375rem;
1697
+ overflow: hidden;
1698
+ border: 1px solid var(--border);
1699
+ border-radius: 0.375rem;
1700
+ background: var(--popover);
1701
+ color: var(--popover-foreground);
1702
+ box-shadow: var(--svadmin-shadow-overlay);
1703
+ backdrop-filter: blur(12px);
1704
+ transition: width 300ms ease, height 300ms ease;
1705
+ }
1706
+ .svadmin-popover-content {
1707
+ z-index: 50;
1708
+ width: 18rem;
1709
+ border: 1px solid var(--border);
1710
+ border-radius: 0.375rem;
1711
+ padding: 1rem;
1712
+ background: var(--popover);
1713
+ color: var(--popover-foreground);
1714
+ outline: none;
1715
+ box-shadow: var(--svadmin-shadow-overlay);
1716
+ animation: svadmin-dialog-enter 120ms ease-out;
1717
+ }
1718
+ .svadmin-popover-content[data-state="closed"] {
1719
+ opacity: 0;
1720
+ transform: scale(0.95);
1721
+ }
1722
+ .svadmin-avatar-image {
1723
+ display: block;
1724
+ width: 100%;
1725
+ height: 100%;
1726
+ aspect-ratio: 1;
1727
+ object-fit: cover;
1728
+ }
1729
+ .svadmin-avatar-fallback {
1730
+ display: flex;
1731
+ align-items: center;
1732
+ justify-content: center;
1733
+ background: var(--muted);
1734
+ color: var(--muted-foreground);
1735
+ font-size: 0.875rem;
1736
+ font-weight: 500;
1737
+ }
1738
+ .svadmin-tooltip-arrow {
1739
+ position: absolute;
1740
+ z-index: -1;
1741
+ width: 0.625rem;
1742
+ height: 0.625rem;
1743
+ border-radius: 0.125rem;
1744
+ background: var(--primary);
1745
+ transform: rotate(45deg);
1746
+ }
1747
+ .svadmin-command-dialog-content {
1748
+ overflow: hidden;
1749
+ padding: 0;
1750
+ }
1751
+ .svadmin-command-dialog-root {
1752
+ display: flex;
1753
+ width: 100%;
1754
+ height: 100%;
1755
+ flex-direction: column;
1756
+ overflow: hidden;
1757
+ border-radius: 0.375rem;
1758
+ background: var(--popover);
1759
+ color: var(--popover-foreground);
1760
+ }
1761
+ .svadmin-command-dialog-root [data-command-group-heading] {
1762
+ padding: 0 0.5rem;
1763
+ color: var(--muted-foreground);
1764
+ font-weight: 500;
1765
+ }
1766
+ .svadmin-command-dialog-root [data-command-group]:not([hidden]) ~ [data-command-group] {
1767
+ padding-top: 0;
1768
+ }
1769
+ .svadmin-command-dialog-root [data-cmdk-input-wrapper] svg {
1770
+ width: 1.25rem;
1771
+ height: 1.25rem;
1772
+ }
1773
+ .svadmin-command-dialog-root [data-command-input] {
1774
+ height: 3rem;
1775
+ }
1776
+ .svadmin-command-dialog-root [data-command-item] {
1777
+ padding: 0.75rem 0.5rem;
1778
+ }
1779
+ .svadmin-sr-only {
1780
+ position: absolute;
1781
+ width: 1px;
1782
+ height: 1px;
1783
+ padding: 0;
1784
+ overflow: hidden;
1785
+ clip: rect(0, 0, 0, 0);
1786
+ white-space: nowrap;
1787
+ border: 0;
1788
+ }
1789
+ .svadmin-metric-strip {
1790
+ display: grid;
1791
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1792
+ gap: 1px;
1793
+ overflow: hidden;
1794
+ border: 1px solid var(--border);
1795
+ border-radius: 0.5rem;
1796
+ background: var(--border);
1797
+ box-shadow: var(--svadmin-shadow-surface);
1798
+ }
1799
+ .svadmin-metric-strip[data-columns="2"] {
1800
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1801
+ }
1802
+ .svadmin-metric-strip[data-columns="3"] {
1803
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1804
+ }
1805
+ .svadmin-metric-strip[data-columns="4"], .svadmin-metric-strip[data-columns="5"], .svadmin-metric-strip[data-columns="6"], .svadmin-metric-strip[data-columns="auto"] {
1806
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1807
+ }
1808
+ .svadmin-metric-item {
1809
+ display: flex;
1810
+ min-width: 0;
1811
+ flex-direction: column;
1812
+ justify-content: space-between;
1813
+ gap: 0.25rem;
1814
+ padding: 0.875rem;
1815
+ background: var(--card);
1816
+ color: var(--foreground);
1817
+ text-align: left;
1818
+ text-decoration: none;
1819
+ transition: background-color 150ms ease;
1820
+ }
1821
+ .svadmin-metric-item[data-interactive="true"] {
1822
+ cursor: pointer;
1823
+ }
1824
+ .svadmin-metric-item[data-interactive="true"]:hover {
1825
+ background: var(--muted);
1826
+ @supports (color: color-mix(in lab, red, red)) {
1827
+ background: color-mix(in srgb, var(--muted) 40%, transparent);
1828
+ }
1829
+ }
1830
+ .svadmin-metric-heading, .svadmin-metric-value-row {
1831
+ display: flex;
1832
+ align-items: center;
1833
+ justify-content: space-between;
1834
+ gap: 0.5rem;
1835
+ }
1836
+ .svadmin-metric-value-row {
1837
+ align-items: baseline;
1838
+ }
1839
+ .svadmin-metric-label {
1840
+ overflow: hidden;
1841
+ color: var(--muted-foreground);
1842
+ font-size: 0.75rem;
1843
+ font-weight: 600;
1844
+ text-overflow: ellipsis;
1845
+ white-space: nowrap;
1846
+ }
1847
+ .svadmin-metric-icon {
1848
+ flex-shrink: 0;
1849
+ color: var(--muted-foreground);
1850
+ @supports (color: color-mix(in lab, red, red)) {
1851
+ color: color-mix(in srgb, var(--muted-foreground) 70%, transparent);
1852
+ }
1853
+ }
1854
+ .svadmin-metric-icon svg {
1855
+ width: 0.875rem;
1856
+ height: 0.875rem;
1857
+ }
1858
+ .svadmin-metric-value {
1859
+ color: var(--foreground);
1860
+ font-size: 1.25rem;
1861
+ font-weight: 700;
1862
+ letter-spacing: 0;
1863
+ font-variant-numeric: tabular-nums;
1864
+ }
1865
+ .svadmin-metric-item[data-tone="primary"] .svadmin-metric-value {
1866
+ color: var(--primary);
1867
+ }
1868
+ .svadmin-metric-item[data-tone="success"] .svadmin-metric-value {
1869
+ color: var(--success);
1870
+ }
1871
+ .svadmin-metric-item[data-tone="warning"] .svadmin-metric-value {
1872
+ color: var(--warning);
1873
+ }
1874
+ .svadmin-metric-item[data-tone="danger"] .svadmin-metric-value {
1875
+ color: var(--destructive);
1876
+ }
1877
+ .svadmin-metric-item[data-tone="info"] .svadmin-metric-value {
1878
+ color: var(--info);
1879
+ }
1880
+ .svadmin-metric-skeleton {
1881
+ width: 4rem;
1882
+ height: 1.5rem;
1883
+ }
1884
+ .svadmin-metric-badge {
1885
+ display: inline-flex;
1886
+ align-items: center;
1887
+ border: 1px solid var(--border);
1888
+ border-radius: 999px;
1889
+ padding: 0.125rem 0.375rem;
1890
+ background: var(--muted);
1891
+ color: var(--muted-foreground);
1892
+ font-size: 0.6875rem;
1893
+ font-weight: 600;
1894
+ }
1895
+ .svadmin-metric-badge[data-tone="success"] {
1896
+ border-color: var(--success);
1897
+ @supports (color: color-mix(in lab, red, red)) {
1898
+ border-color: color-mix(in srgb, var(--success) 20%, transparent);
1899
+ }
1900
+ background: var(--success);
1901
+ @supports (color: color-mix(in lab, red, red)) {
1902
+ background: color-mix(in srgb, var(--success) 10%, transparent);
1903
+ }
1904
+ color: var(--success);
1905
+ }
1906
+ .svadmin-metric-badge[data-tone="warning"] {
1907
+ border-color: var(--warning);
1908
+ @supports (color: color-mix(in lab, red, red)) {
1909
+ border-color: color-mix(in srgb, var(--warning) 20%, transparent);
1910
+ }
1911
+ background: var(--warning);
1912
+ @supports (color: color-mix(in lab, red, red)) {
1913
+ background: color-mix(in srgb, var(--warning) 10%, transparent);
1914
+ }
1915
+ color: var(--warning);
1916
+ }
1917
+ .svadmin-metric-badge[data-tone="danger"] {
1918
+ border-color: var(--destructive);
1919
+ @supports (color: color-mix(in lab, red, red)) {
1920
+ border-color: color-mix(in srgb, var(--destructive) 20%, transparent);
1921
+ }
1922
+ background: var(--destructive);
1923
+ @supports (color: color-mix(in lab, red, red)) {
1924
+ background: color-mix(in srgb, var(--destructive) 10%, transparent);
1925
+ }
1926
+ color: var(--destructive);
1927
+ }
1928
+ .svadmin-metric-badge[data-tone="info"] {
1929
+ border-color: var(--info);
1930
+ @supports (color: color-mix(in lab, red, red)) {
1931
+ border-color: color-mix(in srgb, var(--info) 20%, transparent);
1932
+ }
1933
+ background: var(--info);
1934
+ @supports (color: color-mix(in lab, red, red)) {
1935
+ background: color-mix(in srgb, var(--info) 10%, transparent);
1936
+ }
1937
+ color: var(--info);
1938
+ }
1939
+ .svadmin-metric-trend {
1940
+ display: inline-flex;
1941
+ align-items: center;
1942
+ gap: 0.125rem;
1943
+ font-size: 0.75rem;
1944
+ font-weight: 500;
1945
+ font-variant-numeric: tabular-nums;
1946
+ }
1947
+ .svadmin-metric-trend[data-direction="up"] {
1948
+ color: var(--success);
1949
+ }
1950
+ .svadmin-metric-trend[data-direction="down"] {
1951
+ color: var(--destructive);
1952
+ }
1953
+ .svadmin-metric-trend-label {
1954
+ margin-left: 0.125rem;
1955
+ color: var(--muted-foreground);
1956
+ }
1957
+ .svadmin-alert-description {
1958
+ grid-column: 2;
1959
+ color: var(--muted-foreground);
1960
+ font-size: 0.875rem;
1961
+ }
1962
+ .svadmin-alert-description p {
1963
+ line-height: 1.625;
1964
+ }
1965
+ .svadmin-alert-title {
1966
+ grid-column: 2;
1967
+ min-height: 1rem;
1968
+ overflow: hidden;
1969
+ color: var(--foreground);
1970
+ font-weight: 500;
1971
+ letter-spacing: 0;
1972
+ text-overflow: ellipsis;
1973
+ white-space: nowrap;
1974
+ }
1975
+ .svadmin-scroll-area {
1976
+ position: relative;
1977
+ overflow: hidden;
1978
+ }
1979
+ .svadmin-scroll-area-viewport {
1980
+ width: 100%;
1981
+ height: 100%;
1982
+ overflow: auto;
1983
+ scrollbar-width: thin;
1984
+ scrollbar-color: var(--border) transparent;
1985
+ }
1986
+ .svadmin-scroll-area-horizontal {
1987
+ overflow-x: auto;
1988
+ overflow-y: hidden;
1989
+ }
1990
+ .svadmin-scroll-area-vertical {
1991
+ overflow-x: hidden;
1992
+ overflow-y: auto;
1993
+ }
1994
+ .svadmin-table-container {
1995
+ position: relative;
1996
+ width: 100%;
1997
+ overflow-x: auto;
1998
+ }
1999
+ .svadmin-table {
2000
+ width: 100%;
2001
+ caption-side: bottom;
2002
+ font-size: 0.875rem;
2003
+ }
2004
+ .svadmin-table-head {
2005
+ height: 2.25rem;
2006
+ padding: 0.5rem;
2007
+ color: var(--foreground);
2008
+ text-align: left;
2009
+ vertical-align: middle;
2010
+ font-weight: 500;
2011
+ white-space: nowrap;
2012
+ }
2013
+ .svadmin-table-head[data-density="compact"] {
2014
+ height: 2rem;
2015
+ padding: 0.25rem 0.5rem;
2016
+ font-size: 0.75rem;
2017
+ }
2018
+ .svadmin-table-head[data-sticky="right"], .svadmin-table-head[data-sticky="left"] {
2019
+ position: sticky;
2020
+ z-index: 20;
2021
+ background: var(--background);
2022
+ }
2023
+ .svadmin-table-head[data-sticky="right"] {
2024
+ right: 0;
2025
+ box-shadow: -1px 0 0 var(--border);
2026
+ }
2027
+ .svadmin-table-head[data-sticky="left"] {
2028
+ left: 0;
2029
+ box-shadow: 1px 0 0 var(--border);
2030
+ }
2031
+ .svadmin-pagination {
2032
+ display: flex;
2033
+ width: 100%;
2034
+ justify-content: center;
2035
+ margin: 0 auto;
2036
+ }
2037
+ .svadmin-pagination-content {
2038
+ display: flex;
2039
+ flex-direction: row;
2040
+ align-items: center;
2041
+ gap: 0.25rem;
2042
+ margin: 0;
2043
+ padding: 0;
2044
+ list-style: none;
2045
+ }
2046
+ .svadmin-pagination-control {
2047
+ gap: 0.25rem;
2048
+ }
2049
+ .svadmin-pagination-ellipsis {
2050
+ display: flex;
2051
+ width: 2rem;
2052
+ height: 2rem;
2053
+ align-items: center;
2054
+ justify-content: center;
2055
+ }
2056
+ .svadmin-pagination-icon {
2057
+ width: 1rem;
2058
+ height: 1rem;
2059
+ }
2060
+ @keyframes svadmin-menu-enter {
2061
+ from {
2062
+ opacity: 0;
2063
+ transform: scale(0.98);
2064
+ }
2065
+ to {
2066
+ opacity: 1;
2067
+ transform: scale(1);
2068
+ }
2069
+ }
2070
+ @media (min-width: 640px) {
2071
+ .svadmin-metric-strip[data-columns="2"] {
2072
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2073
+ }
2074
+ .svadmin-metric-strip[data-columns="3"], .svadmin-metric-strip[data-columns="4"] {
2075
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2076
+ }
2077
+ .svadmin-metric-strip[data-columns="5"], .svadmin-metric-strip[data-columns="6"], .svadmin-metric-strip[data-columns="auto"] {
2078
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2079
+ }
2080
+ .svadmin-alert-dialog-header {
2081
+ text-align: left;
2082
+ }
2083
+ .svadmin-alert-dialog-footer, .svadmin-dialog-footer, .svadmin-sheet-footer {
2084
+ flex-direction: row;
2085
+ justify-content: flex-end;
2086
+ }
2087
+ .svadmin-breadcrumb-list {
2088
+ gap: 0.625rem;
2089
+ }
2090
+ .svadmin-dialog-content {
2091
+ max-width: 32rem;
2092
+ }
2093
+ }
2094
+ @media (min-width: 1024px) {
2095
+ .svadmin-metric-strip[data-columns="4"] {
2096
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2097
+ }
2098
+ .svadmin-metric-strip[data-columns="5"] {
2099
+ grid-template-columns: repeat(5, minmax(0, 1fr));
2100
+ }
2101
+ .svadmin-metric-strip[data-columns="6"], .svadmin-metric-strip[data-columns="auto"] {
2102
+ grid-template-columns: repeat(6, minmax(0, 1fr));
2103
+ }
2104
+ }
2105
+ }
2106
+
2107
+ /* Tailwind CSS v4 — Map design tokens to utility classes */
2108
+
2109
+ /* ─── svadmin UI Components CSS ─────────────────────────────── */
2110
+ /* These rules were moved from .svelte files to eliminate \3c style> tags */
2111
+
2112
+ /* Collapsible details normalization stays scoped to svadmin-owned hooks. */
2113
+ details[data-svadmin-filter]:not([open]) > :not(summary), details.svadmin-collapsible-filter:not([open]) > :not(summary), details.svadmin-collapsible:not([open]) > :not(summary) {
2114
+ display: none !important;
2115
+ }
2116
+
2117
+ /* --- Stripe-first layout preset (clean-flat) --- */
2118
+ /* Keep this public class for layoutPreset API compatibility. The preset only
2119
+ * adjusts density and composition; color, focus, and elevation stay semantic. */
2120
+ .layout-clean-flat {
2121
+ --radius: 0.5rem;
2122
+ --svadmin-content-width: 74rem;
2123
+ --svadmin-surface: var(--card);
2124
+ --svadmin-surface-muted: var(--muted);
2125
+ @supports (color: color-mix(in lab, red, red)) {
2126
+ --svadmin-surface-muted: color-mix(in oklch, var(--muted) 72%, var(--card));
2127
+ }
2128
+ --svadmin-surface-hover: var(--primary);
2129
+ @supports (color: color-mix(in lab, red, red)) {
2130
+ --svadmin-surface-hover: color-mix(in oklch, var(--primary) 4%, var(--card));
2131
+ }
2132
+ --svadmin-border: var(--border);
2133
+ --svadmin-border-strong: var(--border);
2134
+ @supports (color: color-mix(in lab, red, red)) {
2135
+ --svadmin-border-strong: color-mix(in oklch, var(--border) 74%, var(--foreground));
2136
+ }
2137
+ --svadmin-text: var(--foreground);
2138
+ --svadmin-text-muted: var(--muted-foreground);
2139
+ --svadmin-focus-ring: var(--ring);
2140
+ --svadmin-control-shadow: var(--shadow-control);
2141
+ --svadmin-surface-shadow: var(--shadow-surface);
2142
+ --svadmin-surface-hover-shadow: var(--shadow-surface-hover);
2143
+ --svadmin-floating-shadow: var(--shadow-overlay);
2144
+ }
2145
+ .layout-clean-flat [data-svadmin-main] {
2146
+ background: var(--background);
2147
+ color: var(--svadmin-text);
2148
+ }
2149
+ .layout-clean-flat [data-svadmin-main] > div, .layout-clean-flat [data-svadmin-main] section, .layout-clean-flat [data-svadmin-main] [data-slot="card-content"] {
2150
+ min-width: 0;
2151
+ }
2152
+ .layout-clean-flat [data-svadmin-sidebar] {
2153
+ border-color: var(--sidebar-border);
2154
+ background: var(--sidebar);
2155
+ color: var(--sidebar-foreground);
2156
+ box-shadow: inset -1px 0 0 var(--sidebar-border);
2157
+ }
2158
+ .layout-clean-flat .sidebar-menu-item {
2159
+ border-radius: var(--radius-md);
2160
+ color: var(--svadmin-text-muted);
2161
+ box-shadow: none;
2162
+ transition: background-color 140ms ease, color 140ms ease;
2163
+ }
2164
+ .layout-clean-flat .sidebar-menu-item:hover {
2165
+ background: var(--sidebar-accent);
2166
+ @supports (color: color-mix(in lab, red, red)) {
2167
+ background: color-mix(in oklch, var(--sidebar-accent) 72%, transparent);
2168
+ }
2169
+ color: var(--sidebar-foreground);
2170
+ }
2171
+ .layout-clean-flat .sidebar-menu-item-active {
2172
+ background: var(--sidebar-accent);
2173
+ color: var(--sidebar-primary);
2174
+ font-weight: 600;
2175
+ }
2176
+ .layout-clean-flat .sidebar-menu-item-active svg {
2177
+ color: var(--sidebar-primary);
2178
+ opacity: 1;
2179
+ }
2180
+ .layout-clean-flat [data-svadmin-content-page] .svadmin-u-cd0ad9a56558, .layout-clean-flat [data-slot="card"] {
2181
+ min-width: 0;
2182
+ border-color: var(--svadmin-border);
2183
+ border-radius: var(--radius-lg);
2184
+ background: var(--svadmin-surface);
2185
+ box-shadow: var(--svadmin-surface-shadow);
2186
+ }
2187
+ .layout-clean-flat [data-slot="card"][data-interactive="true"]:hover {
2188
+ border-color: var(--primary);
2189
+ @supports (color: color-mix(in lab, red, red)) {
2190
+ border-color: color-mix(in oklch, var(--primary) 24%, var(--svadmin-border));
2191
+ }
2192
+ box-shadow: var(--svadmin-surface-hover-shadow);
2193
+ }
2194
+ .layout-clean-flat :is([data-slot="button"], .svadmin-button) {
2195
+ border-radius: var(--radius-md);
2196
+ box-shadow: var(--svadmin-control-shadow);
2197
+ }
2198
+ .layout-clean-flat :is([data-slot="button"], .svadmin-button):is([data-variant="default"], .svadmin-button--default) {
2199
+ background: var(--primary);
2200
+ color: var(--primary-foreground);
2201
+ }
2202
+ .layout-clean-flat :is([data-slot="button"], .svadmin-button):is([data-variant="default"], .svadmin-button--default):hover {
2203
+ background: var(--primary);
2204
+ @supports (color: color-mix(in lab, red, red)) {
2205
+ background: color-mix(in oklch, var(--primary) 90%, var(--foreground));
2206
+ }
2207
+ }
2208
+ .layout-clean-flat :is([data-slot="button"], .svadmin-button):is([data-variant="outline"], .svadmin-button--outline) {
2209
+ border-color: var(--svadmin-border-strong);
2210
+ background: var(--svadmin-surface);
2211
+ color: var(--svadmin-text);
2212
+ }
2213
+ .layout-clean-flat :is([data-slot="button"], .svadmin-button):is([data-variant="outline"], .svadmin-button--outline):hover {
2214
+ border-color: var(--primary);
2215
+ @supports (color: color-mix(in lab, red, red)) {
2216
+ border-color: color-mix(in oklch, var(--primary) 18%, var(--svadmin-border-strong));
2217
+ }
2218
+ background: var(--svadmin-surface-muted);
2219
+ color: var(--svadmin-text);
2220
+ }
2221
+ .layout-clean-flat [data-slot="input"], .layout-clean-flat [data-slot="textarea"], .layout-clean-flat [data-slot="select"], .layout-clean-flat [data-slot="select-trigger"] {
2222
+ border-color: var(--svadmin-border-strong);
2223
+ border-radius: var(--radius-md);
2224
+ background: var(--svadmin-surface);
2225
+ color: var(--svadmin-text);
2226
+ box-shadow: var(--svadmin-control-shadow);
2227
+ }
2228
+ .layout-clean-flat [data-slot="input"]:focus-visible, .layout-clean-flat [data-slot="textarea"]:focus-visible, .layout-clean-flat [data-slot="select-trigger"]:focus-visible {
2229
+ border-color: var(--svadmin-focus-ring);
2230
+ outline-color: var(--svadmin-focus-ring);
2231
+ @supports (color: color-mix(in lab, red, red)) {
2232
+ outline-color: color-mix(in oklch, var(--svadmin-focus-ring) 48%, transparent);
2233
+ }
2234
+ }
2235
+ .layout-clean-flat [data-svadmin-table-head] [data-slot="table-head"] {
2236
+ height: 3rem;
2237
+ border-bottom-color: var(--svadmin-border);
2238
+ background: var(--svadmin-surface-muted);
2239
+ color: var(--svadmin-text-muted);
2240
+ font-size: 0.75rem;
2241
+ font-weight: 600;
2242
+ letter-spacing: 0;
2243
+ text-transform: none;
2244
+ }
2245
+ .layout-clean-flat [data-svadmin-table-row] [data-slot="table-cell"] {
2246
+ height: 3.5rem;
2247
+ border-bottom-color: var(--svadmin-border);
2248
+ color: var(--svadmin-text);
2249
+ font-size: 0.8125rem;
2250
+ }
2251
+ .layout-clean-flat [data-svadmin-table-row]:hover [data-slot="table-cell"] {
2252
+ background: var(--svadmin-surface-hover);
2253
+ }
2254
+ .layout-clean-flat [data-svadmin-list-header], .layout-clean-flat [data-svadmin-form-header], .layout-clean-flat [data-svadmin-page-header] {
2255
+ border-top: 0;
2256
+ border-right: 0;
2257
+ border-left: 0;
2258
+ border-radius: 0;
2259
+ background: transparent;
2260
+ padding-right: 0;
2261
+ padding-left: 0;
2262
+ }
2263
+ .layout-clean-flat [data-svadmin-page-header] h1, .layout-clean-flat [data-svadmin-list-header] h1, .layout-clean-flat [data-svadmin-form-header] h1, .layout-clean-flat [data-svadmin-resource-operations] h1 {
2264
+ line-height: 1.2;
2265
+ letter-spacing: 0;
2266
+ }
2267
+ .layout-clean-flat [data-svadmin-table-card], .layout-clean-flat [data-svadmin-show-card], .layout-clean-flat [data-svadmin-form-card] {
2268
+ width: 100%;
2269
+ max-width: 100%;
2270
+ min-width: 0;
2271
+ }
2272
+ .layout-clean-flat [data-svadmin-table-toolbar] {
2273
+ border-color: var(--svadmin-border);
2274
+ border-radius: var(--radius-lg);
2275
+ background: var(--svadmin-surface);
2276
+ padding: 0.875rem;
2277
+ box-shadow: var(--svadmin-surface-shadow);
2278
+ }
2279
+ .layout-clean-flat [data-svadmin-table-toolbar] [data-slot="input"] {
2280
+ height: 2.625rem;
2281
+ background: var(--svadmin-surface-muted);
2282
+ }
2283
+ .layout-clean-flat [data-svadmin-list-actions] :is([data-slot="button"], .svadmin-button), .layout-clean-flat [data-svadmin-table-toolbar] :is([data-slot="button"], .svadmin-button), .layout-clean-flat [data-svadmin-form-actions] :is([data-slot="button"], .svadmin-button) {
2284
+ height: 2.5rem;
2285
+ flex-shrink: 0;
2286
+ }
2287
+ .layout-clean-flat [data-svadmin-datatable] {
2288
+ min-width: 0;
2289
+ border-collapse: separate;
2290
+ border-spacing: 0;
2291
+ table-layout: fixed;
2292
+ }
2293
+ .layout-clean-flat [data-svadmin-table-scroll] {
2294
+ max-width: 100%;
2295
+ min-width: 0;
2296
+ scrollbar-gutter: stable both-edges;
2297
+ }
2298
+ .layout-clean-flat [data-svadmin-table-head] [data-slot="table-head"], .layout-clean-flat [data-svadmin-table-row] [data-slot="table-cell"] {
2299
+ overflow: hidden;
2300
+ text-overflow: ellipsis;
2301
+ white-space: nowrap;
2302
+ }
2303
+ .layout-clean-flat [data-svadmin-pagination] {
2304
+ border-top: 1px solid var(--svadmin-border);
2305
+ border-radius: 0;
2306
+ padding: 0.75rem 0.15rem 0.35rem;
2307
+ }
2308
+ .layout-clean-flat [data-svadmin-pagination] [data-slot="pagination-content"] {
2309
+ flex-wrap: wrap;
2310
+ justify-content: center;
2311
+ }
2312
+ .layout-clean-flat [data-svadmin-form-content] {
2313
+ padding-top: 0;
2314
+ padding-bottom: 0;
2315
+ }
2316
+ .layout-clean-flat [data-svadmin-form-row] {
2317
+ border-bottom: 1px solid var(--svadmin-border);
2318
+ padding: 1.25rem 0;
2319
+ }
2320
+ .layout-clean-flat [data-svadmin-form-row]:last-child {
2321
+ border-bottom: 0;
2322
+ }
2323
+ .layout-clean-flat [data-svadmin-field-label] {
2324
+ color: var(--svadmin-text);
2325
+ font-weight: 600;
2326
+ }
2327
+ .layout-clean-flat [data-svadmin-form-settings] [data-slot="input"], .layout-clean-flat [data-svadmin-form-settings] textarea, .layout-clean-flat [data-svadmin-form-settings] [data-slot="select-trigger"] {
2328
+ min-height: 2.625rem;
2329
+ background: var(--svadmin-surface);
2330
+ }
2331
+ .layout-clean-flat [data-svadmin-form-actions] {
2332
+ width: fit-content;
2333
+ max-width: 100%;
2334
+ border-color: var(--svadmin-border);
2335
+ border-radius: var(--radius-lg);
2336
+ background: var(--svadmin-surface);
2337
+ box-shadow: var(--svadmin-floating-shadow);
2338
+ }
2339
+ .layout-clean-flat [data-svadmin-main] h1, .layout-clean-flat [data-svadmin-main] h2, .layout-clean-flat [data-svadmin-main] h3, .layout-clean-flat [data-svadmin-main] [data-slot="card-title"] {
2340
+ max-width: 100%;
2341
+ overflow-wrap: anywhere;
2342
+ letter-spacing: 0;
2343
+ }
2344
+ .layout-clean-flat [data-svadmin-main] p, .layout-clean-flat [data-svadmin-main] [data-slot="card-description"] {
2345
+ max-width: 100%;
2346
+ overflow-wrap: break-word;
2347
+ }
2348
+ .layout-clean-flat [data-svadmin-main] :is([data-slot="badge"], .svadmin-badge), .layout-clean-flat [data-svadmin-main] [data-slot="tabs-trigger"] {
2349
+ min-width: 0;
2350
+ max-width: 100%;
2351
+ overflow: hidden;
2352
+ text-overflow: ellipsis;
2353
+ white-space: nowrap;
2354
+ }
2355
+ .layout-clean-flat [data-svadmin-main] [data-slot="tabs-list"] {
2356
+ min-width: 0;
2357
+ border-radius: var(--radius-md);
2358
+ }
2359
+ .layout-clean-flat [data-svadmin-ops-hero] {
2360
+ align-items: stretch;
2361
+ }
2362
+ .layout-clean-flat [data-svadmin-metric-card] [data-slot="card-content"] {
2363
+ min-height: 8rem;
2364
+ }
2365
+ .layout-clean-flat [data-svadmin-panel-card] [data-slot="card-content"] > * + * {
2366
+ border-top: 1px solid var(--svadmin-border);
2367
+ }
2368
+ .layout-clean-flat [data-svadmin-content-page] {
2369
+ --svadmin-content-border: var(--svadmin-border);
2370
+ --svadmin-content-muted: var(--svadmin-surface-muted);
2371
+ width: min(100%, var(--svadmin-content-width));
2372
+ margin-inline: auto;
2373
+ }
2374
+ .layout-clean-flat [data-svadmin-content-page] > div:first-child, .layout-clean-flat [data-svadmin-content-page] > .svadmin-u-60fbb7713999:first-child, .layout-clean-flat [data-svadmin-content-page] > .svadmin-u-d89972fe17d6:first-child {
2375
+ min-width: 0;
2376
+ }
2377
+ .layout-clean-flat [data-svadmin-content-page] h1, .layout-clean-flat [data-svadmin-content-page] h2 {
2378
+ line-height: 1.2;
2379
+ letter-spacing: 0;
2380
+ }
2381
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card"] {
2382
+ border-color: var(--svadmin-content-border);
2383
+ border-radius: var(--radius-lg);
2384
+ background: var(--svadmin-surface);
2385
+ box-shadow: var(--svadmin-surface-shadow);
2386
+ }
2387
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card"][data-interactive="true"]:hover {
2388
+ border-color: var(--primary);
2389
+ @supports (color: color-mix(in lab, red, red)) {
2390
+ border-color: color-mix(in oklch, var(--primary) 24%, var(--svadmin-content-border));
2391
+ }
2392
+ box-shadow: var(--svadmin-surface-hover-shadow);
2393
+ }
2394
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="tabs-list"] {
2395
+ border-bottom: 1px solid var(--svadmin-content-border);
2396
+ border-radius: 0;
2397
+ background: transparent;
2398
+ padding: 0;
2399
+ }
2400
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="tabs-trigger"] {
2401
+ min-height: 2.5rem;
2402
+ border-radius: 0;
2403
+ }
2404
+ .layout-clean-flat [data-svadmin-content-page] table {
2405
+ min-width: 0;
2406
+ }
2407
+ .layout-clean-flat [data-svadmin-content-page] th, .layout-clean-flat [data-svadmin-content-page] td {
2408
+ overflow-wrap: break-word;
2409
+ }
2410
+ .layout-clean-flat [data-svadmin-content-page="error"] [data-slot="card"], .layout-clean-flat [data-svadmin-content-page="auth-2fa"] [data-slot="card"] {
2411
+ width: 100%;
2412
+ max-width: 32rem;
2413
+ }
2414
+ @media (min-width: 768px) {
2415
+ .layout-clean-flat [data-svadmin-form-settings] [data-svadmin-field] {
2416
+ display: grid;
2417
+ grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
2418
+ align-items: start;
2419
+ column-gap: 2rem;
2420
+ row-gap: 0.35rem;
2421
+ }
2422
+ .layout-clean-flat [data-svadmin-form-settings] [data-svadmin-field] > [data-svadmin-field-label] {
2423
+ padding-top: 0.75rem;
2424
+ }
2425
+ .layout-clean-flat [data-svadmin-form-settings] [data-svadmin-field] > :not([data-svadmin-field-label]) {
2426
+ grid-column: 2;
2427
+ }
2428
+ }
2429
+ @media (min-width: 1024px) {
2430
+ .layout-clean-flat [data-svadmin-datatable] {
2431
+ min-width: 760px;
2432
+ }
2433
+ }
2434
+ @media (max-width: 767px) {
2435
+ .layout-clean-flat [data-svadmin-main] h1 {
2436
+ font-size: 1.625rem;
2437
+ }
2438
+ .layout-clean-flat [data-svadmin-list-actions] :is([data-slot="button"], .svadmin-button), .layout-clean-flat [data-svadmin-table-toolbar] :is([data-slot="button"], .svadmin-button), .layout-clean-flat [data-svadmin-form-actions] :is([data-slot="button"], .svadmin-button) {
2439
+ max-width: 100%;
2440
+ min-width: 0;
2441
+ }
2442
+ .layout-clean-flat [data-svadmin-form-actions] {
2443
+ width: 100%;
2444
+ }
2445
+ .layout-clean-flat [data-svadmin-content-page] {
2446
+ width: 100%;
2447
+ }
2448
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card-content"], .layout-clean-flat [data-svadmin-content-page] [data-slot="card-header"] {
2449
+ padding-right: 1rem;
2450
+ padding-left: 1rem;
2451
+ }
2452
+ }
2453
+
2454
+ /* Business components use semantic hooks so consumers do not need utility CSS. */
2455
+ .svadmin-activity-feed {
2456
+ display: flex;
2457
+ flex-direction: column;
2458
+ gap: 1rem;
2459
+ border: 1px solid var(--border);
2460
+ border-radius: 0.75rem;
2461
+ background: var(--card);
2462
+ padding: 1rem;
2463
+ color: var(--foreground);
2464
+ font-size: 0.75rem;
2465
+ line-height: 1rem;
2466
+ box-shadow: var(--shadow-surface);
2467
+ }
2468
+ .svadmin-activity-feed__header, .svadmin-activity-feed__meta, .svadmin-activity-feed__summary, .svadmin-activity-feed__timestamp, .svadmin-batch-action-bar, .svadmin-batch-action-bar__selection, .svadmin-batch-action-bar__actions, .svadmin-approval-card__header, .svadmin-approval-card__title-row, .svadmin-approval-card__actions, .svadmin-stats-card, .svadmin-stats-card__value-row {
2469
+ display: flex;
2470
+ align-items: center;
2471
+ }
2472
+ .svadmin-activity-feed__header {
2473
+ justify-content: space-between;
2474
+ padding-bottom: 0.5rem;
2475
+ border-bottom: 1px solid var(--border);
2476
+ @supports (color: color-mix(in lab, red, red)) {
2477
+ border-bottom: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
2478
+ }
2479
+ }
2480
+ .svadmin-activity-feed__title, .svadmin-activity-feed__user, .svadmin-activity-feed__target, .svadmin-stats-card__value {
2481
+ font-weight: 600;
2482
+ }
2483
+ .svadmin-activity-feed__title, .svadmin-activity-feed__summary, .svadmin-activity-feed__timestamp {
2484
+ display: flex;
2485
+ align-items: center;
2486
+ gap: 0.375rem;
2487
+ }
2488
+ .svadmin-activity-feed__icon, .svadmin-activity-feed__timestamp-icon, .svadmin-batch-action-bar__icon, .svadmin-approval-card__status-icon, .svadmin-approval-card__action-icon, .svadmin-anomaly-badge__icon {
2489
+ width: 1rem;
2490
+ height: 1rem;
2491
+ }
2492
+ .svadmin-activity-feed__icon, .svadmin-batch-action-bar__icon {
2493
+ color: var(--primary);
2494
+ }
2495
+ .svadmin-activity-feed__count, .svadmin-activity-feed__action, .svadmin-activity-feed__timestamp, .svadmin-activity-feed__empty, .svadmin-approval-card__applicant {
2496
+ color: var(--muted-foreground);
2497
+ }
2498
+ .svadmin-activity-feed__count, .svadmin-activity-feed__timestamp {
2499
+ font-size: 0.6875rem;
2500
+ }
2501
+ .svadmin-activity-feed__timestamp-icon, .svadmin-approval-card__status-icon, .svadmin-anomaly-badge__icon {
2502
+ width: 0.75rem;
2503
+ height: 0.75rem;
2504
+ }
2505
+ .svadmin-activity-feed__timestamp {
2506
+ gap: 0.25rem;
2507
+ }
2508
+ .svadmin-activity-feed :is([data-slot="badge"], .svadmin-badge).svadmin-badge[data-status] {
2509
+ --activity-tone: var(--primary);
2510
+ --activity-text: var(--primary);
2511
+ border-color: var(--activity-tone);
2512
+ @supports (color: color-mix(in lab, red, red)) {
2513
+ border-color: color-mix(in oklch, var(--activity-tone) 20%, transparent);
2514
+ }
2515
+ background: var(--activity-tone);
2516
+ @supports (color: color-mix(in lab, red, red)) {
2517
+ background: color-mix(in oklch, var(--activity-tone) 15%, transparent);
2518
+ }
2519
+ color: var(--activity-text);
2520
+ padding: 0 0.25rem;
2521
+ font-size: 0.625rem;
2522
+ }
2523
+ .svadmin-activity-feed :is([data-slot="badge"], .svadmin-badge)[data-status="success"] {
2524
+ --activity-tone: var(--success);
2525
+ --activity-text: var(--success);
2526
+ }
2527
+ .svadmin-activity-feed :is([data-slot="badge"], .svadmin-badge)[data-status="warning"] {
2528
+ --activity-tone: var(--warning);
2529
+ --activity-text: var(--warning-foreground);
2530
+ }
2531
+ .svadmin-activity-feed :is([data-slot="badge"], .svadmin-badge)[data-status="destructive"] {
2532
+ --activity-tone: var(--destructive);
2533
+ --activity-text: var(--destructive);
2534
+ }
2535
+ .svadmin-activity-feed :is([data-slot="badge"], .svadmin-badge).svadmin-badge[data-status="info"] {
2536
+ background: var(--primary);
2537
+ @supports (color: color-mix(in lab, red, red)) {
2538
+ background: color-mix(in oklch, var(--primary) 10%, transparent);
2539
+ }
2540
+ }
2541
+ .svadmin-activity-feed__timeline {
2542
+ position: relative;
2543
+ display: flex;
2544
+ flex-direction: column;
2545
+ gap: 1rem;
2546
+ padding-left: 1rem;
2547
+ }
2548
+ .svadmin-activity-feed__timeline:before {
2549
+ position: absolute;
2550
+ top: 0.5rem;
2551
+ bottom: 0.5rem;
2552
+ left: 0.375rem;
2553
+ width: 0.125rem;
2554
+ background: var(--border);
2555
+ @supports (color: color-mix(in lab, red, red)) {
2556
+ background: color-mix(in srgb, var(--border) 60%, transparent);
2557
+ }
2558
+ content: "";
2559
+ }
2560
+ .svadmin-activity-feed__item {
2561
+ position: relative;
2562
+ display: flex;
2563
+ align-items: flex-start;
2564
+ gap: 0.75rem;
2565
+ }
2566
+ .svadmin-activity-feed__dot {
2567
+ position: absolute;
2568
+ top: 0.25rem;
2569
+ left: -1rem;
2570
+ width: 0.75rem;
2571
+ height: 0.75rem;
2572
+ border: 2px solid var(--card);
2573
+ border-radius: 999px;
2574
+ background: var(--primary);
2575
+ box-shadow: 0 0 0 2px var(--primary);
2576
+ @supports (color: color-mix(in lab, red, red)) {
2577
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 20%, transparent);
2578
+ }
2579
+ }
2580
+ .svadmin-activity-feed__body, .svadmin-activity-feed__summary, .svadmin-approval-card__heading, .svadmin-approval-card__content, .svadmin-approval-card__dialog-form, .svadmin-stats-card__body {
2581
+ display: flex;
2582
+ flex-direction: column;
2583
+ }
2584
+ .svadmin-activity-feed__body {
2585
+ flex: 1;
2586
+ min-width: 0;
2587
+ gap: 0.375rem;
2588
+ }
2589
+ .svadmin-activity-feed__meta {
2590
+ justify-content: space-between;
2591
+ flex-wrap: wrap;
2592
+ gap: 0.25rem;
2593
+ }
2594
+ .svadmin-activity-feed__summary {
2595
+ flex-direction: row;
2596
+ flex-wrap: wrap;
2597
+ }
2598
+ .svadmin-activity-feed__comment {
2599
+ border: 1px solid var(--border);
2600
+ @supports (color: color-mix(in lab, red, red)) {
2601
+ border: 1px solid color-mix(in oklch, var(--border) 40%, transparent);
2602
+ }
2603
+ border-radius: 0.5rem;
2604
+ background: var(--muted);
2605
+ @supports (color: color-mix(in lab, red, red)) {
2606
+ background: color-mix(in oklch, var(--muted) 40%, transparent);
2607
+ }
2608
+ padding: 0.625rem;
2609
+ overflow-wrap: anywhere;
2610
+ }
2611
+ .svadmin-activity-feed__empty {
2612
+ padding: 1.5rem 0;
2613
+ text-align: center;
2614
+ }
2615
+ .svadmin-activity-feed__composer {
2616
+ display: flex;
2617
+ flex-direction: column;
2618
+ gap: 0.5rem;
2619
+ border-top: 1px solid var(--border);
2620
+ @supports (color: color-mix(in lab, red, red)) {
2621
+ border-top: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
2622
+ }
2623
+ padding-top: 0.75rem;
2624
+ }
2625
+ .svadmin-activity-feed__textarea, .svadmin-approval-card__textarea, .svadmin-approval-card__input {
2626
+ width: 100%;
2627
+ border: 1px solid var(--input);
2628
+ border-radius: 0.375rem;
2629
+ background: var(--background);
2630
+ padding: 0.5rem;
2631
+ color: var(--foreground);
2632
+ font-size: 0.75rem;
2633
+ line-height: 1rem;
2634
+ }
2635
+ .svadmin-activity-feed__textarea:focus-visible, .svadmin-approval-card__textarea:focus-visible, .svadmin-approval-card__input:focus-visible {
2636
+ outline: 1px solid var(--ring);
2637
+ outline-offset: 0;
2638
+ }
2639
+ .svadmin-activity-feed__textarea {
2640
+ min-height: 4rem;
2641
+ resize: vertical;
2642
+ }
2643
+ .svadmin-activity-feed__send {
2644
+ display: flex;
2645
+ justify-content: flex-end;
2646
+ }
2647
+ .svadmin-activity-feed__send-button:is([data-slot="button"], .svadmin-button) {
2648
+ min-height: 1.75rem;
2649
+ height: 1.75rem;
2650
+ gap: 0.25rem;
2651
+ font-size: 0.75rem;
2652
+ }
2653
+ .svadmin-activity-feed__send-icon {
2654
+ width: 0.875rem;
2655
+ height: 0.875rem;
2656
+ }
2657
+ .svadmin-activity-feed__send-icon--loading {
2658
+ animation: svadmin-spin 1s linear infinite;
2659
+ }
2660
+ @keyframes svadmin-spin {
2661
+ to {
2662
+ transform: rotate(360deg);
2663
+ }
2664
+ }
2665
+ .svadmin-batch-action-bar {
2666
+ justify-content: space-between;
2667
+ flex-wrap: wrap;
2668
+ gap: 0.5rem;
2669
+ border: 1px solid var(--primary);
2670
+ @supports (color: color-mix(in lab, red, red)) {
2671
+ border: 1px solid color-mix(in srgb, var(--primary) 20%, transparent);
2672
+ }
2673
+ border-radius: 0.375rem;
2674
+ background: var(--primary);
2675
+ @supports (color: color-mix(in lab, red, red)) {
2676
+ background: color-mix(in srgb, var(--primary) 5%, transparent);
2677
+ }
2678
+ padding: 0.5rem 0.75rem;
2679
+ font-size: 0.75rem;
2680
+ }
2681
+ .svadmin-batch-action-bar--floating {
2682
+ position: fixed;
2683
+ z-index: 40;
2684
+ bottom: 1.5rem;
2685
+ left: 50%;
2686
+ transform: translateX(-50%);
2687
+ width: max-content;
2688
+ max-width: calc(100% - 2rem);
2689
+ gap: 0.75rem;
2690
+ border-color: var(--border);
2691
+ @supports (color: color-mix(in lab, red, red)) {
2692
+ border-color: color-mix(in oklch, var(--border) 80%, transparent);
2693
+ }
2694
+ border-radius: 0.5rem;
2695
+ background: var(--background);
2696
+ @supports (color: color-mix(in lab, red, red)) {
2697
+ background: color-mix(in oklch, var(--background) 95%, transparent);
2698
+ }
2699
+ padding: 0.625rem 1rem;
2700
+ box-shadow: var(--shadow-overlay);
2701
+ backdrop-filter: blur(12px);
2702
+ animation: svadmin-batch-enter 200ms ease-out;
2703
+ }
2704
+ .svadmin-batch-action-bar--subtle {
2705
+ border-color: var(--border);
2706
+ @supports (color: color-mix(in lab, red, red)) {
2707
+ border-color: color-mix(in srgb, var(--border) 60%, transparent);
2708
+ }
2709
+ background: var(--muted);
2710
+ @supports (color: color-mix(in lab, red, red)) {
2711
+ background: color-mix(in srgb, var(--muted) 40%, transparent);
2712
+ }
2713
+ }
2714
+ .svadmin-batch-action-bar__selection {
2715
+ gap: 0.5rem;
2716
+ }
2717
+ .svadmin-batch-action-bar--floating .svadmin-batch-action-bar__selection {
2718
+ border-right: 1px solid var(--border);
2719
+ @supports (color: color-mix(in lab, red, red)) {
2720
+ border-right: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
2721
+ }
2722
+ padding-right: 0.5rem;
2723
+ }
2724
+ .svadmin-batch-action-bar__actions {
2725
+ gap: 0.375rem;
2726
+ }
2727
+ .svadmin-batch-action-bar__label {
2728
+ color: var(--foreground);
2729
+ font-weight: 500;
2730
+ font-variant-numeric: tabular-nums;
2731
+ }
2732
+ .svadmin-batch-action-bar__clear {
2733
+ border-radius: 0.125rem;
2734
+ color: var(--muted-foreground);
2735
+ font-size: 0.75rem;
2736
+ cursor: pointer;
2737
+ }
2738
+ .svadmin-batch-action-bar__clear:not([data-slot="button"]) {
2739
+ margin-left: 0.25rem;
2740
+ text-decoration: underline;
2741
+ text-underline-offset: 2px;
2742
+ }
2743
+ .svadmin-batch-action-bar__clear:not([data-slot="button"]):focus-visible {
2744
+ outline: 2px solid var(--ring);
2745
+ outline-offset: 1px;
2746
+ }
2747
+ .svadmin-batch-action-bar__clear:is([data-slot="button"], .svadmin-button) {
2748
+ min-height: 1.75rem;
2749
+ height: 1.75rem;
2750
+ padding: 0 0.5rem;
2751
+ font-size: 0.75rem;
2752
+ }
2753
+ .svadmin-batch-action-bar__clear:hover {
2754
+ color: var(--foreground);
2755
+ }
2756
+ .svadmin-batch-action-bar__clear-icon {
2757
+ width: 0.875rem;
2758
+ height: 0.875rem;
2759
+ margin-right: 0.25rem;
2760
+ }
2761
+ .svadmin-batch-action-bar__count:is([data-slot="badge"], .svadmin-badge).svadmin-badge {
2762
+ height: 1.25rem;
2763
+ border-color: var(--primary);
2764
+ @supports (color: color-mix(in lab, red, red)) {
2765
+ border-color: color-mix(in oklch, var(--primary) 20%, transparent);
2766
+ }
2767
+ background: var(--primary);
2768
+ @supports (color: color-mix(in lab, red, red)) {
2769
+ background: color-mix(in oklch, var(--primary) 15%, transparent);
2770
+ }
2771
+ color: var(--primary);
2772
+ padding-right: 0.375rem;
2773
+ padding-left: 0.375rem;
2774
+ font-size: 0.6875rem;
2775
+ font-variant-numeric: tabular-nums;
2776
+ }
2777
+ @keyframes svadmin-batch-enter {
2778
+ from {
2779
+ opacity: 0;
2780
+ translate: 0 1rem;
2781
+ }
2782
+ to {
2783
+ opacity: 1;
2784
+ translate: 0 0;
2785
+ }
2786
+ }
2787
+ @media (prefers-reduced-motion: reduce) {
2788
+ .svadmin-batch-action-bar--floating, .svadmin-activity-feed__send-icon--loading {
2789
+ animation: none;
2790
+ }
2791
+ }
2792
+ .svadmin-approval-card {
2793
+ display: flex;
2794
+ flex-direction: column;
2795
+ gap: 0.75rem;
2796
+ border: 1px solid var(--border);
2797
+ border-radius: 0.75rem;
2798
+ background: var(--card);
2799
+ padding: 1rem;
2800
+ color: var(--foreground);
2801
+ box-shadow: var(--shadow-surface);
2802
+ }
2803
+ .svadmin-approval-card__header {
2804
+ justify-content: space-between;
2805
+ flex-wrap: wrap;
2806
+ gap: 0.5rem;
2807
+ border-bottom: 1px solid var(--border);
2808
+ @supports (color: color-mix(in lab, red, red)) {
2809
+ border-bottom: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
2810
+ }
2811
+ padding-bottom: 0.75rem;
2812
+ }
2813
+ .svadmin-approval-card__heading {
2814
+ gap: 0.125rem;
2815
+ }
2816
+ .svadmin-approval-card__title-row {
2817
+ gap: 0.5rem;
2818
+ flex-wrap: wrap;
2819
+ }
2820
+ .svadmin-approval-card__title {
2821
+ font-size: 0.875rem;
2822
+ font-weight: 600;
2823
+ }
2824
+ .svadmin-approval-card__applicant {
2825
+ font-size: 0.75rem;
2826
+ }
2827
+ .svadmin-approval-card__applicant strong {
2828
+ color: var(--foreground);
2829
+ }
2830
+ .svadmin-approval-card__actions {
2831
+ gap: 0.375rem;
2832
+ }
2833
+ .svadmin-approval-card__action:is([data-slot="button"], .svadmin-button) {
2834
+ height: 2rem;
2835
+ gap: 0.25rem;
2836
+ color: var(--muted-foreground);
2837
+ font-size: 0.75rem;
2838
+ }
2839
+ .svadmin-approval-card__action--reject:is([data-slot="button"], .svadmin-button) {
2840
+ border-color: var(--destructive);
2841
+ @supports (color: color-mix(in lab, red, red)) {
2842
+ border-color: color-mix(in oklch, var(--destructive) 30%, transparent);
2843
+ }
2844
+ color: var(--destructive);
2845
+ }
2846
+ .svadmin-approval-card__action--reject:is([data-slot="button"], .svadmin-button):hover {
2847
+ background: var(--destructive);
2848
+ @supports (color: color-mix(in lab, red, red)) {
2849
+ background: color-mix(in oklch, var(--destructive) 10%, transparent);
2850
+ }
2851
+ }
2852
+ .svadmin-approval-card__action--approve:is([data-slot="button"], .svadmin-button), .svadmin-approval-card__confirm--approve:is([data-slot="button"], .svadmin-button) {
2853
+ background: var(--success);
2854
+ color: var(--success-foreground);
2855
+ }
2856
+ .svadmin-approval-card__action--approve:is([data-slot="button"], .svadmin-button):hover, .svadmin-approval-card__confirm--approve:is([data-slot="button"], .svadmin-button):hover {
2857
+ background: var(--success);
2858
+ @supports (color: color-mix(in lab, red, red)) {
2859
+ background: color-mix(in oklch, var(--success) 90%, transparent);
2860
+ }
2861
+ }
2862
+ .svadmin-approval-card__action-icon {
2863
+ width: 0.875rem;
2864
+ height: 0.875rem;
2865
+ }
2866
+ .svadmin-approval-card :is([data-slot="badge"], .svadmin-badge).svadmin-badge[data-status] {
2867
+ --approval-tone: var(--warning);
2868
+ --approval-text: var(--warning-foreground);
2869
+ border-color: var(--approval-tone);
2870
+ @supports (color: color-mix(in lab, red, red)) {
2871
+ border-color: color-mix(in oklch, var(--approval-tone) 20%, transparent);
2872
+ }
2873
+ background: var(--approval-tone);
2874
+ @supports (color: color-mix(in lab, red, red)) {
2875
+ background: color-mix(in oklch, var(--approval-tone) 15%, transparent);
2876
+ }
2877
+ color: var(--approval-text);
2878
+ font-size: 0.6875rem;
2879
+ font-weight: 500;
2880
+ }
2881
+ .svadmin-approval-card :is([data-slot="badge"], .svadmin-badge)[data-status="approved"] {
2882
+ --approval-tone: var(--success);
2883
+ --approval-text: var(--success);
2884
+ }
2885
+ .svadmin-approval-card :is([data-slot="badge"], .svadmin-badge)[data-status="rejected"] {
2886
+ --approval-tone: var(--destructive);
2887
+ --approval-text: var(--destructive);
2888
+ }
2889
+ .svadmin-approval-card :is([data-slot="badge"], .svadmin-badge).svadmin-badge[data-status="recalled"] {
2890
+ border-color: var(--color-border, var(--border));
2891
+ background: var(--muted);
2892
+ color: var(--muted-foreground);
2893
+ }
2894
+ .svadmin-approval-card__content {
2895
+ gap: 0.5rem;
2896
+ font-size: 0.75rem;
2897
+ }
2898
+ .svadmin-approval-card__dialog-form {
2899
+ gap: 0.75rem;
2900
+ padding: 0.5rem 0;
2901
+ font-size: 0.75rem;
2902
+ }
2903
+ .svadmin-approval-card__dialog.svadmin-dialog-content {
2904
+ width: calc(100% - 2rem);
2905
+ max-width: 28rem;
2906
+ }
2907
+ .svadmin-approval-card__dialog-label {
2908
+ font-weight: 500;
2909
+ }
2910
+ .svadmin-approval-card__textarea {
2911
+ min-height: 5rem;
2912
+ resize: vertical;
2913
+ }
2914
+ .svadmin-approval-card__textarea--reject {
2915
+ border-color: var(--destructive);
2916
+ @supports (color: color-mix(in lab, red, red)) {
2917
+ border-color: color-mix(in srgb, var(--destructive) 40%, transparent);
2918
+ }
2919
+ }
2920
+ .svadmin-approval-card__textarea--reject:focus-visible {
2921
+ outline-color: var(--destructive);
2922
+ }
2923
+ .svadmin-approval-card__reject-title {
2924
+ color: var(--destructive);
2925
+ }
2926
+ .svadmin-approval-card__input {
2927
+ height: 2rem;
2928
+ }
2929
+ .svadmin-anomaly-badge__value {
2930
+ color: var(--muted-foreground);
2931
+ font-size: 0.875rem;
2932
+ font-weight: 500;
2933
+ font-variant-numeric: tabular-nums;
2934
+ }
2935
+ .svadmin-anomaly-badge__trigger:is([data-slot="button"], .svadmin-button) {
2936
+ min-height: 0;
2937
+ height: auto;
2938
+ padding: 0;
2939
+ }
2940
+ .svadmin-anomaly-badge__trigger:is([data-slot="button"], .svadmin-button):hover {
2941
+ background: transparent;
2942
+ }
2943
+ .svadmin-anomaly-badge:is([data-slot="badge"], .svadmin-badge) {
2944
+ display: inline-flex;
2945
+ align-items: center;
2946
+ gap: 0.25rem;
2947
+ padding: 0 0.375rem;
2948
+ font-family: var(--font-mono);
2949
+ font-size: 0.75rem;
2950
+ font-variant-numeric: tabular-nums;
2951
+ }
2952
+ .svadmin-anomaly-badge:is([data-slot="badge"], .svadmin-badge)[data-good="true"] {
2953
+ background: var(--success);
2954
+ color: var(--success-foreground);
2955
+ }
2956
+ .svadmin-anomaly-badge:is([data-slot="badge"], .svadmin-badge)[data-good="true"]:hover {
2957
+ background: var(--success);
2958
+ @supports (color: color-mix(in lab, red, red)) {
2959
+ background: color-mix(in oklch, var(--success) 90%, transparent);
2960
+ }
2961
+ }
2962
+ .svadmin-stats-card {
2963
+ gap: 1rem;
2964
+ border-radius: 0.5rem;
2965
+ padding: 1.25rem;
2966
+ }
2967
+ .svadmin-stats-card[data-variant="default"] {
2968
+ background: var(--card);
2969
+ box-shadow: var(--shadow-surface);
2970
+ transition: box-shadow 300ms;
2971
+ }
2972
+ .svadmin-stats-card[data-variant="default"]:hover {
2973
+ box-shadow: var(--shadow-surface-hover);
2974
+ }
2975
+ .svadmin-stats-card[data-variant="outline"] {
2976
+ border: 2px solid var(--border);
2977
+ background: transparent;
2978
+ }
2979
+ .svadmin-stats-card[data-variant="filled"] {
2980
+ border: 0;
2981
+ background: var(--muted);
2982
+ @supports (color: color-mix(in lab, red, red)) {
2983
+ background: color-mix(in srgb, var(--muted) 50%, transparent);
2984
+ }
2985
+ box-shadow: var(--shadow-surface);
2986
+ }
2987
+ .svadmin-stats-card__icon {
2988
+ display: flex;
2989
+ flex-shrink: 0;
2990
+ align-items: center;
2991
+ justify-content: center;
2992
+ width: 3rem;
2993
+ height: 3rem;
2994
+ border-radius: 0.5rem;
2995
+ }
2996
+ .svadmin-stats-card__icon-glyph {
2997
+ width: 1.5rem;
2998
+ height: 1.5rem;
2999
+ }
3000
+ .svadmin-stats-card[data-color="primary"] .svadmin-stats-card__icon {
3001
+ background: var(--primary);
3002
+ @supports (color: color-mix(in lab, red, red)) {
3003
+ background: color-mix(in srgb, var(--primary) 10%, transparent);
3004
+ }
3005
+ color: var(--primary);
3006
+ }
3007
+ .svadmin-stats-card[data-color="success"] .svadmin-stats-card__icon {
3008
+ background: var(--success);
3009
+ @supports (color: color-mix(in lab, red, red)) {
3010
+ background: color-mix(in srgb, var(--success) 10%, transparent);
3011
+ }
3012
+ color: var(--success);
3013
+ }
3014
+ .svadmin-stats-card[data-color="warning"] .svadmin-stats-card__icon {
3015
+ background: var(--warning);
3016
+ @supports (color: color-mix(in lab, red, red)) {
3017
+ background: color-mix(in srgb, var(--warning) 10%, transparent);
3018
+ }
3019
+ color: var(--warning);
3020
+ }
3021
+ .svadmin-stats-card[data-color="danger"] .svadmin-stats-card__icon {
3022
+ background: var(--destructive);
3023
+ @supports (color: color-mix(in lab, red, red)) {
3024
+ background: color-mix(in srgb, var(--destructive) 10%, transparent);
3025
+ }
3026
+ color: var(--destructive);
3027
+ }
3028
+ .svadmin-stats-card[data-color="info"] .svadmin-stats-card__icon {
3029
+ background: var(--info);
3030
+ @supports (color: color-mix(in lab, red, red)) {
3031
+ background: color-mix(in srgb, var(--info) 10%, transparent);
3032
+ }
3033
+ color: var(--info);
3034
+ }
3035
+ .svadmin-stats-card__body {
3036
+ min-width: 0;
3037
+ flex: 1;
3038
+ }
3039
+ .svadmin-stats-card__label {
3040
+ color: var(--muted-foreground);
3041
+ font-size: 0.875rem;
3042
+ }
3043
+ .svadmin-stats-card__value-row {
3044
+ align-items: baseline;
3045
+ flex-wrap: wrap;
3046
+ gap: 0.5rem;
3047
+ }
3048
+ .svadmin-stats-card__value {
3049
+ color: var(--foreground);
3050
+ font-family: var(--font-mono);
3051
+ font-size: 1.25rem;
3052
+ line-height: 1.75rem;
3053
+ overflow-wrap: anywhere;
3054
+ }
3055
+ .svadmin-stats-card__skeleton {
3056
+ width: 5rem;
3057
+ height: 1.75rem;
3058
+ margin-top: 0.25rem;
3059
+ }
3060
+ .svadmin-stats-card__trend {
3061
+ display: inline-flex;
3062
+ align-items: center;
3063
+ gap: 0.125rem;
3064
+ font-size: 0.75rem;
3065
+ font-weight: 500;
3066
+ }
3067
+ .svadmin-stats-card__trend[data-positive="true"] {
3068
+ color: var(--success);
3069
+ }
3070
+ .svadmin-stats-card__trend[data-positive="false"] {
3071
+ color: var(--destructive);
3072
+ }
3073
+ .svadmin-stats-card__trend-label {
3074
+ margin-left: 0.125rem;
3075
+ color: var(--muted-foreground);
3076
+ }
3077
+ .svadmin-stats-card__footer {
3078
+ margin-top: 0.5rem;
3079
+ }