@svadmin/ui 0.76.0 → 0.78.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 (57) hide show
  1. package/dist/app.css +439 -72
  2. package/dist/app.theme.css +439 -72
  3. package/dist/component-registry.d.ts +300 -0
  4. package/dist/component-registry.js +2 -0
  5. package/dist/components/AboutSettings.svelte +4 -3
  6. package/dist/components/AboutSettings.svelte.d.ts +1 -0
  7. package/dist/components/AdminApp.svelte +30 -15
  8. package/dist/components/ApiSettings.svelte +39 -2
  9. package/dist/components/AppearanceSettings.svelte +35 -9
  10. package/dist/components/AppearanceSettings.svelte.d.ts +4 -1
  11. package/dist/components/AutoTable.svelte +10 -6
  12. package/dist/components/AutoTable.svelte.d.ts +2 -0
  13. package/dist/components/IntegrationsSettings.svelte +5 -3
  14. package/dist/components/IntegrationsSettings.svelte.d.ts +1 -0
  15. package/dist/components/Layout.svelte +38 -5
  16. package/dist/components/Layout.svelte.d.ts +4 -3
  17. package/dist/components/NotificationsSettings.svelte +18 -12
  18. package/dist/components/NotificationsSettings.svelte.d.ts +1 -0
  19. package/dist/components/ProfilePage.svelte +3 -3
  20. package/dist/components/ProfilePage.svelte.d.ts +4 -1
  21. package/dist/components/ResourceOverview.svelte +36 -0
  22. package/dist/components/ResourceOverview.svelte.d.ts +6 -0
  23. package/dist/components/ResourceOverviewCard.svelte +50 -0
  24. package/dist/components/ResourceOverviewCard.svelte.d.ts +7 -0
  25. package/dist/components/SecuritySettings.svelte +9 -6
  26. package/dist/components/SecuritySettings.svelte.d.ts +4 -1
  27. package/dist/components/Sidebar.svelte +1 -1
  28. package/dist/components/account/SettingsEnterprisePage.svelte +19 -19
  29. package/dist/components/account/SettingsPlainPage.svelte +7 -3
  30. package/dist/components/account/SettingsSidebarPage.svelte +3 -3
  31. package/dist/components/content/ContentPageHeader.svelte +20 -4
  32. package/dist/components/content/ContentPageHeader.svelte.d.ts +2 -0
  33. package/dist/components/content/ContentPageShell.svelte +12 -3
  34. package/dist/components/content/ContentPageShell.svelte.d.ts +1 -0
  35. package/dist/components/content/DashboardPage.svelte +35 -0
  36. package/dist/components/content/DashboardPage.svelte.d.ts +13 -0
  37. package/dist/components/content/FeedbackNotice.svelte +1 -1
  38. package/dist/components/content/MetricBlock.svelte +1 -1
  39. package/dist/components/content/PageSection.svelte +28 -0
  40. package/dist/components/content/PageSection.svelte.d.ts +10 -0
  41. package/dist/components/content/SettingsFieldRow.svelte +10 -5
  42. package/dist/components/content/SettingsFieldRow.svelte.d.ts +1 -0
  43. package/dist/components/content/SettingsGroup.svelte +3 -3
  44. package/dist/components/content/SettingsGroup.svelte.d.ts +1 -0
  45. package/dist/components/content/index.d.ts +2 -0
  46. package/dist/components/content/index.js +2 -0
  47. package/dist/components/ui/button/button.svelte +17 -1
  48. package/dist/components/ui/button/button.svelte.d.ts +1 -0
  49. package/dist/components/ui/sheet/sheet.svelte +3 -0
  50. package/dist/default-theme.d.ts +3 -0
  51. package/dist/default-theme.js +4 -0
  52. package/dist/index.d.ts +3 -0
  53. package/dist/index.js +3 -0
  54. package/dist/page-chrome.css +4 -4
  55. package/dist/recipes.d.ts +77 -38
  56. package/dist/recipes.js +33 -8
  57. package/package.json +3 -3
@@ -5530,6 +5530,8 @@
5530
5530
  --text-sm--line-height: calc(1.25 / 0.875);
5531
5531
  --text-base: 1rem;
5532
5532
  --text-base--line-height: calc(1.5 / 1);
5533
+ --text-lg: 1.125rem;
5534
+ --text-lg--line-height: calc(1.75 / 1.125);
5533
5535
  --text-xl: 1.25rem;
5534
5536
  --text-xl--line-height: calc(1.75 / 1.25);
5535
5537
  --text-2xl: 1.5rem;
@@ -5542,6 +5544,7 @@
5542
5544
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
5543
5545
  --default-transition-duration: 150ms;
5544
5546
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
5547
+ --shadow-surface: var(--svadmin-shadow-surface);
5545
5548
  }
5546
5549
  }
5547
5550
  @layer utilities.svadmin-ui {
@@ -5617,6 +5620,9 @@
5617
5620
  .hidden {
5618
5621
  display: none;
5619
5622
  }
5623
+ .inline {
5624
+ display: inline;
5625
+ }
5620
5626
  .inline-flex {
5621
5627
  display: inline-flex;
5622
5628
  }
@@ -5764,6 +5770,11 @@
5764
5770
  .gap-8 {
5765
5771
  gap: calc(var(--spacing) * 8);
5766
5772
  }
5773
+ :where(.space-y-0\.5 > :not(:last-child)) {
5774
+ --tw-space-y-reverse: 0;
5775
+ margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
5776
+ margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
5777
+ }
5767
5778
  :where(.space-y-1 > :not(:last-child)) {
5768
5779
  --tw-space-y-reverse: 0;
5769
5780
  margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));
@@ -5931,6 +5942,10 @@
5931
5942
  font-size: var(--text-base);
5932
5943
  line-height: var(--tw-leading, var(--text-base--line-height));
5933
5944
  }
5945
+ .text-lg {
5946
+ font-size: var(--text-lg);
5947
+ line-height: var(--tw-leading, var(--text-lg--line-height));
5948
+ }
5934
5949
  .text-sm {
5935
5950
  font-size: var(--text-sm);
5936
5951
  line-height: var(--tw-leading, var(--text-sm--line-height));
@@ -5946,6 +5961,10 @@
5946
5961
  .text-\[0\.8125rem\] {
5947
5962
  font-size: 0.8125rem;
5948
5963
  }
5964
+ .leading-5 {
5965
+ --tw-leading: calc(var(--spacing) * 5);
5966
+ line-height: calc(var(--spacing) * 5);
5967
+ }
5949
5968
  .leading-6 {
5950
5969
  --tw-leading: calc(var(--spacing) * 6);
5951
5970
  line-height: calc(var(--spacing) * 6);
@@ -6559,7 +6578,7 @@
6559
6578
  .svadmin-filter-toolbar__search-icon {
6560
6579
  position: absolute;
6561
6580
  top: 50%;
6562
- left: 0.75rem;
6581
+ inset-inline-start: 0.75rem;
6563
6582
  width: var(--svadmin-filter-search-icon-size);
6564
6583
  height: var(--svadmin-filter-search-icon-size);
6565
6584
  color: var(--muted-foreground);
@@ -6575,7 +6594,7 @@
6575
6594
  .svadmin-filter-toolbar[data-density] .svadmin-filter-toolbar__clear {
6576
6595
  position: absolute;
6577
6596
  top: 50%;
6578
- right: 0.25rem;
6597
+ inset-inline-end: 0.25rem;
6579
6598
  transform: translateY(-50%);
6580
6599
  }
6581
6600
  .svadmin-filter-toolbar[data-density] .svadmin-filter-toolbar__toggle {
@@ -6597,14 +6616,14 @@
6597
6616
  .svadmin-filter-toolbar .svadmin-filter-toolbar__chevron {
6598
6617
  width: 0.75rem;
6599
6618
  height: 0.75rem;
6600
- margin-left: 0.125rem;
6619
+ margin-inline-start: 0.125rem;
6601
6620
  color: var(--muted-foreground);
6602
6621
  }
6603
6622
  .svadmin-filter-toolbar[data-density] .svadmin-filter-toolbar__count {
6604
6623
  height: 1rem;
6605
6624
  min-height: 1rem;
6606
6625
  min-width: 1rem;
6607
- margin-left: 0.125rem;
6626
+ margin-inline-start: 0.125rem;
6608
6627
  padding: 0 0.25rem;
6609
6628
  font-size: 0.625rem;
6610
6629
  font-weight: 600;
@@ -6684,7 +6703,8 @@
6684
6703
  --card-foreground: oklch(0.205 0.012 264);
6685
6704
  --popover: oklch(1 0 0);
6686
6705
  --popover-foreground: oklch(0.205 0.012 264);
6687
- --primary: oklch(0.558 0.22 278);
6706
+ /* Stripe is the default when no persisted or explicit preset exists. */
6707
+ --primary: oklch(0.54 0.24 293);
6688
6708
  --primary-foreground: oklch(0.99 0 0);
6689
6709
  --secondary: oklch(0.95 0.006 264);
6690
6710
  --secondary-foreground: oklch(0.265 0.014 264);
@@ -6696,8 +6716,8 @@
6696
6716
  --destructive-foreground: oklch(0.99 0 0);
6697
6717
  --border: oklch(0.925 0.003 264);
6698
6718
  --input: oklch(0.84 0.01 264);
6699
- --ring: oklch(0.558 0.22 278);
6700
- --chart-1: oklch(0.558 0.22 278);
6719
+ --ring: oklch(0.54 0.24 293);
6720
+ --chart-1: oklch(0.54 0.24 293);
6701
6721
  --chart-2: oklch(0.57 0.12 196);
6702
6722
  --chart-3: oklch(0.56 0.13 244);
6703
6723
  --chart-4: oklch(0.72 0.15 78);
@@ -6710,12 +6730,12 @@
6710
6730
  --info-foreground: oklch(0.99 0 0);
6711
6731
  --sidebar: oklch(1 0 0);
6712
6732
  --sidebar-foreground: oklch(0.265 0.014 264);
6713
- --sidebar-primary: oklch(0.558 0.22 278);
6733
+ --sidebar-primary: oklch(0.54 0.24 293);
6714
6734
  --sidebar-primary-foreground: oklch(0.99 0 0);
6715
6735
  --sidebar-accent: oklch(0.962 0.012 278);
6716
6736
  --sidebar-accent-foreground: oklch(0.34 0.105 278);
6717
6737
  --sidebar-border: var(--border);
6718
- --sidebar-ring: oklch(0.558 0.22 278);
6738
+ --sidebar-ring: oklch(0.54 0.24 293);
6719
6739
  --svadmin-shadow-control: 0 1px 2px rgb(15 23 42 / 0.04);
6720
6740
  --svadmin-shadow-surface: 0 1px 2px rgb(15 23 42 / 0.035);
6721
6741
  --svadmin-shadow-surface-hover: 0 2px 5px rgb(15 23 42 / 0.06);
@@ -6729,8 +6749,8 @@
6729
6749
  --card-foreground: oklch(0.96 0.004 264);
6730
6750
  --popover: oklch(0.195 0.012 264);
6731
6751
  --popover-foreground: oklch(0.96 0.004 264);
6732
- --primary: oklch(0.68 0.18 278);
6733
- --primary-foreground: oklch(0.15 0.03 278);
6752
+ --primary: oklch(0.72 0.19 293);
6753
+ --primary-foreground: oklch(0.16 0.02 270);
6734
6754
  --secondary: oklch(0.235 0.012 264);
6735
6755
  --secondary-foreground: oklch(0.94 0.004 264);
6736
6756
  --muted: oklch(0.235 0.012 264);
@@ -6741,8 +6761,8 @@
6741
6761
  --destructive-foreground: oklch(0.98 0 0);
6742
6762
  --border: oklch(0.3 0.012 264);
6743
6763
  --input: oklch(0.335 0.014 264);
6744
- --ring: oklch(0.68 0.18 278);
6745
- --chart-1: oklch(0.68 0.18 278);
6764
+ --ring: oklch(0.72 0.19 293);
6765
+ --chart-1: oklch(0.72 0.19 293);
6746
6766
  --chart-2: oklch(0.7 0.13 177);
6747
6767
  --chart-3: oklch(0.72 0.13 230);
6748
6768
  --chart-4: oklch(0.78 0.14 83);
@@ -6755,12 +6775,12 @@
6755
6775
  --info-foreground: oklch(0.15 0.03 244);
6756
6776
  --sidebar: oklch(0.17 0.01 264);
6757
6777
  --sidebar-foreground: oklch(0.9 0.006 264);
6758
- --sidebar-primary: oklch(0.68 0.18 278);
6759
- --sidebar-primary-foreground: oklch(0.15 0.03 278);
6778
+ --sidebar-primary: oklch(0.72 0.19 293);
6779
+ --sidebar-primary-foreground: oklch(0.16 0.02 270);
6760
6780
  --sidebar-accent: oklch(0.245 0.035 278);
6761
6781
  --sidebar-accent-foreground: oklch(0.84 0.09 278);
6762
6782
  --sidebar-border: oklch(0.3 0.012 264);
6763
- --sidebar-ring: oklch(0.68 0.18 278);
6783
+ --sidebar-ring: oklch(0.72 0.19 293);
6764
6784
  --svadmin-shadow-control: 0 1px 2px rgb(0 0 0 / 0.24), 0 0 0 1px rgb(255 255 255 / 0.025);
6765
6785
  --svadmin-shadow-surface: 0 1px 2px rgb(0 0 0 / 0.22), 0 1px 3px rgb(0 0 0 / 0.16);
6766
6786
  --svadmin-shadow-surface-hover: 0 2px 5px rgb(0 0 0 / 0.28), 0 1px 2px rgb(0 0 0 / 0.2);
@@ -6795,7 +6815,7 @@
6795
6815
  --chart-1: oklch(0.68 0.18 278);
6796
6816
  }
6797
6817
 
6798
- /* Indigo (default) */
6818
+ /* Indigo (compatibility preset) */
6799
6819
  [data-theme="indigo"] {
6800
6820
  --primary: oklch(0.558 0.22 278);
6801
6821
  --primary-foreground: oklch(0.985 0 0);
@@ -6816,6 +6836,28 @@
6816
6836
  --chart-1: oklch(0.68 0.18 278);
6817
6837
  }
6818
6838
 
6839
+ /* Stripe-inspired preset (matches @svadmin/core builtinPresets.stripe). */
6840
+ [data-theme="stripe"] {
6841
+ --primary: oklch(0.54 0.24 293);
6842
+ --primary-foreground: oklch(0.99 0 0);
6843
+ --ring: oklch(0.54 0.24 293);
6844
+ --sidebar-primary: oklch(0.54 0.24 293);
6845
+ --sidebar-primary-foreground: oklch(0.99 0 0);
6846
+ --sidebar-ring: oklch(0.54 0.24 293);
6847
+ --chart-1: oklch(0.54 0.24 293);
6848
+ }
6849
+ .dark[data-theme="stripe"],
6850
+ .dark [data-theme="stripe"],
6851
+ [data-theme="stripe"][data-theme-mode="dark"] {
6852
+ --primary: oklch(0.72 0.19 293);
6853
+ --primary-foreground: oklch(0.16 0.02 270);
6854
+ --ring: oklch(0.72 0.19 293);
6855
+ --sidebar-primary: oklch(0.72 0.19 293);
6856
+ --sidebar-primary-foreground: oklch(0.16 0.02 270);
6857
+ --sidebar-ring: oklch(0.72 0.19 293);
6858
+ --chart-1: oklch(0.72 0.19 293);
6859
+ }
6860
+
6819
6861
  /* Blue */
6820
6862
  [data-theme="blue"] {
6821
6863
  --primary: oklch(0.546 0.245 262.881);
@@ -6947,7 +6989,7 @@
6947
6989
  body {
6948
6990
  background: var(--background);
6949
6991
  color: var(--foreground);
6950
- font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
6992
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
6951
6993
  font-size: 0.875rem;
6952
6994
  line-height: 1.5;
6953
6995
  -webkit-font-smoothing: antialiased;
@@ -6972,10 +7014,10 @@ h6,
6972
7014
  [data-slot="textarea"] {
6973
7015
  box-shadow: var(--shadow-control);
6974
7016
  transition:
6975
- background-color 140ms ease,
6976
- border-color 140ms ease,
6977
- color 140ms ease,
6978
- box-shadow 140ms ease;
7017
+ background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7018
+ border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7019
+ color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7020
+ box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
6979
7021
  }
6980
7022
 
6981
7023
  [data-slot="input"],
@@ -6988,8 +7030,8 @@ h6,
6988
7030
  [data-slot="card"] {
6989
7031
  box-shadow: var(--shadow-surface);
6990
7032
  transition:
6991
- border-color 160ms ease,
6992
- box-shadow 160ms ease;
7033
+ border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7034
+ box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
6993
7035
  }
6994
7036
 
6995
7037
  [data-slot="card"][data-interactive="true"]:hover {
@@ -7037,11 +7079,11 @@ h6,
7037
7079
  user-select: none;
7038
7080
  outline: none;
7039
7081
  transition:
7040
- background-color 140ms ease,
7041
- border-color 140ms ease,
7042
- color 140ms ease,
7043
- box-shadow 140ms ease,
7044
- transform 140ms ease;
7082
+ background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7083
+ border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7084
+ color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7085
+ box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7086
+ transform var(--svadmin-motion-fast) var(--svadmin-motion-easing);
7045
7087
  }
7046
7088
 
7047
7089
  :is([data-slot="button"], .svadmin-button) > svg,
@@ -7052,8 +7094,8 @@ h6,
7052
7094
  pointer-events: none;
7053
7095
  }
7054
7096
 
7055
- :is([data-slot="button"], .svadmin-button):active,
7056
- :is([data-svadmin-button], .svadmin-button):active {
7097
+ :is([data-slot="button"], .svadmin-button):not(:disabled, [aria-disabled="true"], [data-disabled]):active,
7098
+ :is([data-svadmin-button], .svadmin-button):not(:disabled, [aria-disabled="true"], [data-disabled]):active {
7057
7099
  transform: translateY(1px);
7058
7100
  }
7059
7101
 
@@ -7224,7 +7266,7 @@ h6,
7224
7266
  font-weight: 600;
7225
7267
  line-height: 1;
7226
7268
  white-space: nowrap;
7227
- transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
7269
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
7228
7270
  }
7229
7271
 
7230
7272
  :is([data-slot="badge"], .svadmin-badge).svadmin-badge > svg {
@@ -7324,7 +7366,7 @@ h6,
7324
7366
  }
7325
7367
 
7326
7368
  [data-slot="table-row"] {
7327
- transition: background-color 140ms ease;
7369
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
7328
7370
  }
7329
7371
 
7330
7372
  [data-slot="table-row"]:hover {
@@ -7357,7 +7399,7 @@ h6,
7357
7399
  }
7358
7400
 
7359
7401
  [data-sonner-toaster] [data-sonner-toast] {
7360
- transition-duration: 180ms;
7402
+ transition-duration: var(--svadmin-motion-fast);
7361
7403
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
7362
7404
  }
7363
7405
 
@@ -7548,10 +7590,10 @@ main {
7548
7590
  color: var(--muted-foreground);
7549
7591
  pointer-events: none;
7550
7592
  transition:
7551
- background-color 140ms ease,
7552
- border-color 140ms ease,
7553
- color 140ms ease,
7554
- box-shadow 140ms ease;
7593
+ background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7594
+ border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7595
+ color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
7596
+ box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
7555
7597
  }
7556
7598
 
7557
7599
  .svadmin-file-input__button {
@@ -7588,7 +7630,7 @@ main {
7588
7630
  background: transparent;
7589
7631
  color: var(--foreground);
7590
7632
  outline: none;
7591
- transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
7633
+ transition: border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing), background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
7592
7634
  }
7593
7635
 
7594
7636
  .svadmin-input:not([data-input-type="file"]) {
@@ -7714,14 +7756,14 @@ main {
7714
7756
  width: 100%;
7715
7757
  max-width: min(32rem, calc(100% - 2rem));
7716
7758
  gap: 1rem;
7717
- border-radius: 0.75rem;
7759
+ border-radius: var(--radius-lg);
7718
7760
  padding: 1.5rem;
7719
7761
  background: var(--background);
7720
7762
  color: var(--foreground);
7721
7763
  outline: none;
7722
7764
  box-shadow: var(--svadmin-shadow-overlay);
7723
7765
  transform: translate(-50%, -50%);
7724
- transition: opacity 300ms ease, transform 300ms ease;
7766
+ transition: opacity var(--svadmin-motion-standard) var(--svadmin-motion-easing), transform var(--svadmin-motion-standard) var(--svadmin-motion-easing);
7725
7767
  }
7726
7768
 
7727
7769
  .svadmin-dialog-content[data-state="closed"] {
@@ -7813,7 +7855,7 @@ main {
7813
7855
  color: inherit;
7814
7856
  opacity: 0.7;
7815
7857
  cursor: pointer;
7816
- transition: opacity 120ms ease, box-shadow 120ms ease;
7858
+ transition: opacity var(--svadmin-motion-fast) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
7817
7859
  }
7818
7860
 
7819
7861
  .svadmin-sheet-close:hover {
@@ -7870,7 +7912,7 @@ main {
7870
7912
  font: inherit;
7871
7913
  font-size: 0.875rem;
7872
7914
  outline: none;
7873
- transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
7915
+ transition: border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing), background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
7874
7916
  }
7875
7917
 
7876
7918
  .svadmin-textarea:focus-visible {
@@ -7918,7 +7960,7 @@ main {
7918
7960
  height: 100%;
7919
7961
  flex: 1;
7920
7962
  background: var(--primary);
7921
- transition: transform 200ms ease;
7963
+ transition: transform var(--svadmin-motion-standard) var(--svadmin-motion-easing);
7922
7964
  }
7923
7965
 
7924
7966
  .svadmin-separator {
@@ -7971,7 +8013,7 @@ main {
7971
8013
  .svadmin-card-footer {
7972
8014
  display: flex;
7973
8015
  align-items: center;
7974
- border-radius: 0 0 0.75rem 0.75rem;
8016
+ border-radius: 0 0 var(--radius-lg) var(--radius-lg);
7975
8017
  padding: 1rem;
7976
8018
  background: color-mix(in srgb, var(--muted) 50%, transparent);
7977
8019
  }
@@ -8033,7 +8075,7 @@ main {
8033
8075
  }
8034
8076
 
8035
8077
  .svadmin-breadcrumb-link {
8036
- transition: color 120ms ease;
8078
+ transition: color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8037
8079
  }
8038
8080
 
8039
8081
  .svadmin-breadcrumb-link:hover {
@@ -8112,7 +8154,7 @@ main {
8112
8154
  gap: 0.5rem;
8113
8155
  margin: 0 -1.5rem -1.5rem;
8114
8156
  border-top: 1px solid var(--border);
8115
- border-radius: 0 0 0.75rem 0.75rem;
8157
+ border-radius: 0 0 var(--radius-lg) var(--radius-lg);
8116
8158
  padding: 1rem;
8117
8159
  background: color-mix(in srgb, var(--muted) 50%, transparent);
8118
8160
  }
@@ -8174,7 +8216,7 @@ main {
8174
8216
  font: inherit;
8175
8217
  font-size: 0.875rem;
8176
8218
  outline: none;
8177
- transition: border-color 120ms ease, box-shadow 120ms ease;
8219
+ transition: border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8178
8220
  }
8179
8221
 
8180
8222
  .svadmin-select:focus-visible {
@@ -8228,7 +8270,7 @@ main {
8228
8270
  font-weight: 500;
8229
8271
  outline: none;
8230
8272
  cursor: pointer;
8231
- transition: color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
8273
+ transition: color var(--svadmin-motion-fast) var(--svadmin-motion-easing), background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8232
8274
  }
8233
8275
 
8234
8276
  .svadmin-tabs-trigger[data-state="active"] {
@@ -8366,7 +8408,7 @@ main {
8366
8408
  outline: none;
8367
8409
  cursor: pointer;
8368
8410
  user-select: none;
8369
- transition: background-color 120ms ease, color 120ms ease;
8411
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8370
8412
  }
8371
8413
 
8372
8414
  .svadmin-dropdown-item[data-inset="true"] {
@@ -8439,7 +8481,7 @@ main {
8439
8481
  color: var(--primary-foreground);
8440
8482
  outline: none;
8441
8483
  cursor: pointer;
8442
- transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
8484
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), border-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8443
8485
  }
8444
8486
 
8445
8487
  .svadmin-checkbox[data-state="checked"],
@@ -8488,7 +8530,7 @@ main {
8488
8530
  outline: none;
8489
8531
  cursor: pointer;
8490
8532
  box-shadow: var(--svadmin-shadow-control);
8491
- transition: background-color 160ms ease, box-shadow 160ms ease;
8533
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8492
8534
  }
8493
8535
 
8494
8536
  .svadmin-switch[data-state="checked"] {
@@ -8512,7 +8554,7 @@ main {
8512
8554
  background: var(--background);
8513
8555
  box-shadow: var(--svadmin-shadow-overlay);
8514
8556
  transform: translateX(0);
8515
- transition: transform 160ms ease;
8557
+ transition: transform var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8516
8558
  pointer-events: none;
8517
8559
  }
8518
8560
 
@@ -8563,7 +8605,7 @@ main {
8563
8605
  font-weight: 500;
8564
8606
  outline: none;
8565
8607
  cursor: pointer;
8566
- transition: background-color 120ms ease, color 120ms ease;
8608
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8567
8609
  }
8568
8610
 
8569
8611
  .svadmin-navigation-link:hover,
@@ -8590,7 +8632,7 @@ main {
8590
8632
  width: 0.75rem;
8591
8633
  height: 0.75rem;
8592
8634
  margin-left: 0.25rem;
8593
- transition: transform 160ms ease;
8635
+ transition: transform var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8594
8636
  }
8595
8637
 
8596
8638
  .svadmin-navigation-trigger[data-state="open"] .svadmin-navigation-trigger-icon {
@@ -8643,7 +8685,7 @@ main {
8643
8685
  color: var(--popover-foreground);
8644
8686
  box-shadow: var(--svadmin-shadow-overlay);
8645
8687
  backdrop-filter: blur(12px);
8646
- transition: width 300ms ease, height 300ms ease;
8688
+ transition: width var(--svadmin-motion-standard) var(--svadmin-motion-easing), height var(--svadmin-motion-standard) var(--svadmin-motion-easing);
8647
8689
  }
8648
8690
 
8649
8691
  .svadmin-popover-content {
@@ -8779,7 +8821,7 @@ main {
8779
8821
  color: var(--foreground);
8780
8822
  text-align: left;
8781
8823
  text-decoration: none;
8782
- transition: background-color 150ms ease;
8824
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
8783
8825
  }
8784
8826
 
8785
8827
  .svadmin-metric-item[data-interactive="true"] {
@@ -9107,6 +9149,10 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9107
9149
  --svadmin-surface-shadow: var(--shadow-surface);
9108
9150
  --svadmin-surface-hover-shadow: var(--shadow-surface-hover);
9109
9151
  --svadmin-floating-shadow: var(--shadow-overlay);
9152
+ --svadmin-motion-fast: 150ms;
9153
+ --svadmin-motion-standard: 200ms;
9154
+ --svadmin-motion-slow: 900ms;
9155
+ --svadmin-focus-offset: 2px;
9110
9156
  }
9111
9157
 
9112
9158
  .layout-clean-flat [data-svadmin-main] {
@@ -9136,8 +9182,8 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9136
9182
  color: color-mix(in oklch, var(--sidebar-foreground) 80%, var(--sidebar));
9137
9183
  box-shadow: none;
9138
9184
  transition:
9139
- background-color 140ms ease,
9140
- color 140ms ease;
9185
+ background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing),
9186
+ color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
9141
9187
  }
9142
9188
 
9143
9189
  .layout-clean-flat .sidebar-menu-item:hover {
@@ -9239,7 +9285,7 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9239
9285
  }
9240
9286
 
9241
9287
  .layout-clean-flat [data-svadmin-table-head] [data-slot="table-head"] {
9242
- height: 3rem;
9288
+ height: 2.75rem;
9243
9289
  border-bottom-color: var(--svadmin-border);
9244
9290
  background: var(--svadmin-surface-muted);
9245
9291
  color: var(--svadmin-text-muted);
@@ -9254,12 +9300,19 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9254
9300
  }
9255
9301
 
9256
9302
  .layout-clean-flat [data-svadmin-table-row] [data-slot="table-cell"] {
9257
- height: 3.5rem;
9303
+ height: 3rem;
9258
9304
  border-bottom-color: var(--svadmin-border);
9259
9305
  color: var(--svadmin-text);
9260
9306
  font-size: 0.8125rem;
9261
9307
  }
9262
9308
 
9309
+ .layout-clean-flat [data-svadmin-table-head] [data-slot="table-head"][data-density="compact"],
9310
+ .layout-clean-flat [data-svadmin-table-row] [data-slot="table-cell"][data-density="compact"] {
9311
+ height: 2rem;
9312
+ padding: 0.25rem 0.5rem;
9313
+ font-size: 0.75rem;
9314
+ }
9315
+
9263
9316
  .layout-clean-flat [data-svadmin-table-row]:hover [data-slot="table-cell"] {
9264
9317
  background: var(--svadmin-surface-hover);
9265
9318
  }
@@ -9447,14 +9500,6 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9447
9500
  min-height: 4.25rem;
9448
9501
  }
9449
9502
 
9450
- .layout-clean-flat [data-svadmin-content-page] > :is(div, section, form) {
9451
- margin-bottom: 1.25rem;
9452
- }
9453
-
9454
- .layout-clean-flat [data-svadmin-content-page] > :is(div, section, form):last-child {
9455
- margin-bottom: 0;
9456
- }
9457
-
9458
9503
  .layout-clean-flat [data-svadmin-content-page] > div:first-child,
9459
9504
  .layout-clean-flat [data-svadmin-content-page] > .flex:first-child,
9460
9505
  .layout-clean-flat [data-svadmin-content-page] > .relative:first-child {
@@ -9558,7 +9603,7 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9558
9603
  flex-direction: column;
9559
9604
  gap: 1rem;
9560
9605
  border: 1px solid var(--border);
9561
- border-radius: 0.75rem;
9606
+ border-radius: var(--radius-lg);
9562
9607
  background: var(--card);
9563
9608
  padding: 1rem;
9564
9609
  color: var(--foreground);
@@ -9747,7 +9792,7 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9747
9792
  flex-direction: column;
9748
9793
  gap: 0.75rem;
9749
9794
  border: 1px solid var(--border);
9750
- border-radius: 0.75rem;
9795
+ border-radius: var(--radius-lg);
9751
9796
  background: var(--card);
9752
9797
  padding: 1rem;
9753
9798
  color: var(--foreground);
@@ -9798,7 +9843,7 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9798
9843
  .svadmin-anomaly-badge:is([data-slot="badge"], .svadmin-badge)[data-good="true"]:hover { background: color-mix(in oklch, var(--success) 90%, transparent); }
9799
9844
 
9800
9845
  .svadmin-stats-card { gap: 1rem; border-radius: 0.5rem; padding: 1.25rem; }
9801
- .svadmin-stats-card[data-variant="default"] { background: var(--card); box-shadow: var(--shadow-surface); transition: box-shadow 300ms; }
9846
+ .svadmin-stats-card[data-variant="default"] { background: var(--card); box-shadow: var(--shadow-surface); transition: box-shadow var(--svadmin-motion-standard); }
9802
9847
  .svadmin-stats-card[data-variant="default"]:hover { box-shadow: var(--shadow-surface-hover); }
9803
9848
  .svadmin-stats-card[data-variant="outline"] { border: 2px solid var(--border); background: transparent; }
9804
9849
  .svadmin-stats-card[data-variant="filled"] { border: 0; background: color-mix(in srgb, var(--muted) 50%, transparent); box-shadow: var(--shadow-surface); }
@@ -9955,6 +10000,328 @@ details.svadmin-collapsible:not([open]) > :not(summary) {
9955
10000
  }
9956
10001
  }
9957
10002
 
10003
+ /* --- Stripe-inspired visual refinement ---------------------
10004
+ * The existing clean-flat preset owns the shell geometry. This layer keeps
10005
+ * that contract intact while giving the example a single neutral canvas,
10006
+ * restrained elevation, and one deliberate interaction accent.
10007
+ */
10008
+ .layout-clean-flat[data-theme="stripe"] {
10009
+ --background: #f6f9fc;
10010
+ --foreground: #0a2540;
10011
+ --radius-md: 0.5rem;
10012
+ --radius-lg: 0.5rem;
10013
+ --radius-xl: 0.5rem;
10014
+ --card: #ffffff;
10015
+ --card-foreground: #0a2540;
10016
+ --popover: #ffffff;
10017
+ --popover-foreground: #0a2540;
10018
+ --secondary: #eef2f7;
10019
+ --secondary-foreground: #425466;
10020
+ --muted: #f1f4f8;
10021
+ --muted-foreground: #425466;
10022
+ --accent: #eef0ff;
10023
+ --accent-foreground: #5147d9;
10024
+ --border: #e6ebf1;
10025
+ --input: #cbd5e1;
10026
+ --sidebar: #ffffff;
10027
+ --sidebar-foreground: #425466;
10028
+ --sidebar-accent: #f3f5ff;
10029
+ --sidebar-accent-foreground: #0a2540;
10030
+ --sidebar-border: #e6ebf1;
10031
+ --svadmin-shadow-control: 0 1px 2px rgb(15 23 42 / 0.04), 0 0 0 1px rgb(15 23 42 / 0.02);
10032
+ --svadmin-shadow-surface: 0 1px 3px rgb(15 23 42 / 0.04), 0 4px 8px rgb(15 23 42 / 0.04);
10033
+ --svadmin-shadow-surface-hover: 0 2px 4px rgb(15 23 42 / 0.06), 0 6px 12px rgb(15 23 42 / 0.06);
10034
+ --svadmin-control-shadow: var(--svadmin-shadow-control);
10035
+ --svadmin-surface-shadow: var(--svadmin-shadow-surface);
10036
+ --svadmin-surface-hover-shadow: var(--svadmin-shadow-surface-hover);
10037
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
10038
+ letter-spacing: 0;
10039
+ }
10040
+
10041
+ .layout-clean-flat[data-theme="stripe"].svadmin-theme-dark,
10042
+ .dark.layout-clean-flat[data-theme="stripe"] {
10043
+ --background: #0f172a;
10044
+ --foreground: #f1f5f9;
10045
+ --card: #111c2e;
10046
+ --card-foreground: #f1f5f9;
10047
+ --popover: #111c2e;
10048
+ --popover-foreground: #f1f5f9;
10049
+ --secondary: #1e293b;
10050
+ --secondary-foreground: #cbd5e1;
10051
+ --muted: #18263b;
10052
+ --muted-foreground: #9aa9bd;
10053
+ --accent: #25224f;
10054
+ --accent-foreground: #c6c2ff;
10055
+ --border: #26364c;
10056
+ --input: #3a4a60;
10057
+ --sidebar: #101b2d;
10058
+ --sidebar-foreground: #cbd5e1;
10059
+ --sidebar-accent: #1a2740;
10060
+ --sidebar-accent-foreground: #f8fafc;
10061
+ --sidebar-border: #26364c;
10062
+ --svadmin-shadow-control: 0 1px 2px rgb(0 0 0 / 0.22), 0 0 0 1px rgb(255 255 255 / 0.02);
10063
+ --svadmin-shadow-surface: 0 2px 4px rgb(0 0 0 / 0.22), 0 8px 18px rgb(0 0 0 / 0.18);
10064
+ --svadmin-shadow-surface-hover: 0 4px 10px rgb(0 0 0 / 0.3), 0 16px 32px rgb(0 0 0 / 0.22);
10065
+ --svadmin-control-shadow: var(--svadmin-shadow-control);
10066
+ --svadmin-surface-shadow: var(--svadmin-shadow-surface);
10067
+ --svadmin-surface-hover-shadow: var(--svadmin-shadow-surface-hover);
10068
+ }
10069
+
10070
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-main] {
10071
+ background: var(--background);
10072
+ color: var(--foreground);
10073
+ background-image:
10074
+ linear-gradient(to right, color-mix(in oklch, var(--primary) 2%, transparent) 1px, transparent 1px),
10075
+ linear-gradient(to bottom, color-mix(in oklch, var(--primary) 2%, transparent) 1px, transparent 1px);
10076
+ background-size: var(--svadmin-grid-size) var(--svadmin-grid-size);
10077
+ }
10078
+
10079
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-sidebar] {
10080
+ border-inline-end: 1px solid var(--sidebar-border);
10081
+ background: var(--sidebar);
10082
+ box-shadow: none;
10083
+ }
10084
+
10085
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-sidebar] > div:first-child {
10086
+ border-bottom: 1px solid var(--sidebar-border);
10087
+ }
10088
+
10089
+ .layout-clean-flat[data-theme="stripe"] .sidebar-menu-item {
10090
+ min-height: 2.25rem;
10091
+ margin-block: 0.125rem;
10092
+ border-radius: 0.375rem;
10093
+ color: var(--sidebar-foreground);
10094
+ font-size: 0.8125rem;
10095
+ font-weight: 500;
10096
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing), color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
10097
+ }
10098
+
10099
+ .layout-clean-flat[data-theme="stripe"] .sidebar-menu-item:hover {
10100
+ background: var(--sidebar-accent);
10101
+ color: var(--sidebar-accent-foreground);
10102
+ }
10103
+
10104
+ .layout-clean-flat[data-theme="stripe"] .sidebar-menu-item-active {
10105
+ background: color-mix(in oklch, var(--primary) 9%, var(--sidebar));
10106
+ color: var(--primary);
10107
+ font-weight: 600;
10108
+ }
10109
+
10110
+ .layout-clean-flat[data-theme="stripe"] .sidebar-menu-item-active::before {
10111
+ content: none;
10112
+ }
10113
+
10114
+ .layout-clean-flat[data-theme="stripe"] .sidebar-menu-item-active svg {
10115
+ color: var(--primary);
10116
+ }
10117
+
10118
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-sidebar] nav > * > button:not(.sidebar-menu-item) {
10119
+ color: var(--muted-foreground);
10120
+ font-size: 0.6875rem;
10121
+ font-weight: 600;
10122
+ letter-spacing: 0;
10123
+ text-transform: none;
10124
+ }
10125
+
10126
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-topbar] {
10127
+ min-height: 4rem;
10128
+ border-bottom: 1px solid var(--border);
10129
+ background: color-mix(in oklch, var(--card) 96%, transparent);
10130
+ box-shadow: none;
10131
+ }
10132
+
10133
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-topbar] .svadmin-header-search {
10134
+ min-width: 10rem;
10135
+ border-color: var(--border);
10136
+ border-radius: 0.5rem;
10137
+ background: var(--muted);
10138
+ color: var(--muted-foreground);
10139
+ box-shadow: none;
10140
+ }
10141
+
10142
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-content-page] {
10143
+ padding-block: 1.5rem 3rem;
10144
+ }
10145
+
10146
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-auth-page] {
10147
+ background: var(--background);
10148
+ background-image:
10149
+ linear-gradient(to right, color-mix(in oklch, var(--primary) 4%, transparent) 1px, transparent 1px),
10150
+ linear-gradient(to bottom, color-mix(in oklch, var(--primary) 4%, transparent) 1px, transparent 1px);
10151
+ background-size: var(--svadmin-grid-size) var(--svadmin-grid-size);
10152
+ color: var(--foreground);
10153
+ }
10154
+
10155
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-page-header] h1,
10156
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-list-header] h1,
10157
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-form-header] h1,
10158
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-resource-operations] h1 {
10159
+ color: var(--foreground);
10160
+ letter-spacing: 0;
10161
+ }
10162
+
10163
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-page-header] p,
10164
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-list-header] p,
10165
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-form-header] p {
10166
+ color: var(--muted-foreground);
10167
+ }
10168
+
10169
+ .layout-clean-flat[data-theme="stripe"] [data-slot="card"] {
10170
+ border: 1px solid var(--border);
10171
+ border-radius: 0.5rem;
10172
+ background: var(--card);
10173
+ box-shadow: var(--svadmin-surface-shadow);
10174
+ }
10175
+
10176
+ .layout-clean-flat[data-theme="stripe"] [data-slot="card"][data-interactive="true"] {
10177
+ transition: box-shadow var(--svadmin-motion-standard) var(--svadmin-motion-easing), border-color var(--svadmin-motion-standard) var(--svadmin-motion-easing);
10178
+ }
10179
+
10180
+ .layout-clean-flat[data-theme="stripe"] [data-slot="card"][data-interactive="true"]:hover {
10181
+ box-shadow: var(--svadmin-surface-hover-shadow);
10182
+ }
10183
+
10184
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-metric-card] {
10185
+ min-height: 7rem;
10186
+ border: 1px solid var(--border);
10187
+ border-radius: 0.5rem;
10188
+ background: var(--card);
10189
+ box-shadow: var(--svadmin-surface-shadow);
10190
+ }
10191
+
10192
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-metric-card] [data-svadmin-metric-value] {
10193
+ font-variant-numeric: tabular-nums;
10194
+ }
10195
+
10196
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button) {
10197
+ border-radius: 0.5rem;
10198
+ box-shadow: var(--svadmin-control-shadow);
10199
+ font-weight: 600;
10200
+ transition: transform var(--svadmin-motion-standard) var(--svadmin-motion-easing), box-shadow var(--svadmin-motion-standard) var(--svadmin-motion-easing), background-color var(--svadmin-motion-standard) var(--svadmin-motion-easing), border-color var(--svadmin-motion-standard) var(--svadmin-motion-easing);
10201
+ }
10202
+
10203
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button):is([data-variant="ghost"], [data-variant="link"], .svadmin-button--ghost, .svadmin-button--link) {
10204
+ box-shadow: none;
10205
+ }
10206
+
10207
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button)[data-variant="default"],
10208
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button).svadmin-button--default {
10209
+ box-shadow:
10210
+ 0 2px 5px color-mix(in oklch, var(--primary) 40%, transparent),
10211
+ inset 0 1px 0 rgb(255 255 255 / 0.2);
10212
+ }
10213
+
10214
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button):not(:disabled, [aria-disabled="true"], [data-disabled]):active {
10215
+ transform: translateY(0) scale(0.98);
10216
+ }
10217
+
10218
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button):is([data-variant="default"], [data-variant="outline"], .svadmin-button--default, .svadmin-button--outline):not(:disabled, [aria-disabled="true"], [data-disabled]):active {
10219
+ box-shadow: inset 0 2px 4px rgb(0 0 0 / 0.18);
10220
+ }
10221
+
10222
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button):focus-visible,
10223
+ .layout-clean-flat[data-theme="stripe"] [data-slot="input"]:focus-visible,
10224
+ .layout-clean-flat[data-theme="stripe"] [data-slot="textarea"]:focus-visible,
10225
+ .layout-clean-flat[data-theme="stripe"] [data-slot="select"]:focus-visible,
10226
+ .layout-clean-flat[data-theme="stripe"] [data-slot="select-trigger"]:focus-visible {
10227
+ outline: 2px solid var(--ring);
10228
+ outline-offset: var(--svadmin-focus-offset);
10229
+ }
10230
+
10231
+ .layout-clean-flat[data-theme="stripe"] :is(.transition, .transition-all, .transition-colors, .transition-transform, .transition-opacity) {
10232
+ transition-duration: var(--svadmin-motion-standard);
10233
+ transition-timing-function: var(--svadmin-motion-easing);
10234
+ }
10235
+
10236
+ .layout-clean-flat[data-theme="stripe"] [data-slot="input"],
10237
+ .layout-clean-flat[data-theme="stripe"] [data-slot="textarea"],
10238
+ .layout-clean-flat[data-theme="stripe"] [data-slot="select"],
10239
+ .layout-clean-flat[data-theme="stripe"] [data-slot="select-trigger"] {
10240
+ border-radius: 0.5rem;
10241
+ background: var(--card);
10242
+ box-shadow: var(--svadmin-control-shadow);
10243
+ }
10244
+
10245
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-table-head] [data-slot="table-head"] {
10246
+ background: var(--muted);
10247
+ color: var(--muted-foreground);
10248
+ font-size: 0.75rem;
10249
+ font-weight: 600;
10250
+ letter-spacing: 0;
10251
+ text-transform: none;
10252
+ }
10253
+
10254
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-table-row] [data-slot="table-cell"] {
10255
+ background: var(--card);
10256
+ color: var(--foreground);
10257
+ }
10258
+
10259
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-table-row] {
10260
+ transition: background-color var(--svadmin-motion-fast) var(--svadmin-motion-easing);
10261
+ }
10262
+
10263
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-table-row]:hover [data-slot="table-cell"] {
10264
+ background: color-mix(in oklch, var(--primary) 3%, var(--card));
10265
+ }
10266
+
10267
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-table-row][data-state="selected"] [data-slot="table-cell"] {
10268
+ background: var(--accent);
10269
+ color: var(--accent-foreground);
10270
+ }
10271
+
10272
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="input"], [data-slot="textarea"], [data-slot="select"], [data-slot="select-trigger"])[aria-invalid="true"] {
10273
+ border-color: var(--destructive);
10274
+ }
10275
+
10276
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="input"], [data-slot="textarea"], [data-slot="select"], [data-slot="select-trigger"])[aria-invalid="true"]:focus-visible {
10277
+ outline-color: var(--destructive);
10278
+ }
10279
+
10280
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-table-toolbar] {
10281
+ border: 1px solid var(--border);
10282
+ border-radius: 0.5rem;
10283
+ background: var(--card);
10284
+ box-shadow: var(--svadmin-surface-shadow);
10285
+ }
10286
+
10287
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-form-actions] {
10288
+ border-top: 1px solid var(--border);
10289
+ background: color-mix(in oklch, var(--card) 96%, var(--background));
10290
+ box-shadow: none;
10291
+ }
10292
+
10293
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-auth-page] > main > div > section {
10294
+ border-radius: 0.5rem;
10295
+ box-shadow: var(--svadmin-surface-shadow);
10296
+ }
10297
+
10298
+ @media (max-width: 48rem) {
10299
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-content-page] {
10300
+ padding-block: 1rem 2rem;
10301
+ }
10302
+
10303
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-topbar] .svadmin-header-search {
10304
+ min-width: 0;
10305
+ }
10306
+
10307
+ .layout-clean-flat[data-theme="stripe"] [data-svadmin-metric-card] {
10308
+ min-height: 6.25rem;
10309
+ }
10310
+ }
10311
+
10312
+ @media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
10313
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button):is([data-variant="default"], [data-variant="outline"], .svadmin-button--default, .svadmin-button--outline):not(:disabled, [aria-disabled="true"], [data-disabled]):hover:not(:active) {
10314
+ transform: translateY(-0.125rem);
10315
+ }
10316
+ }
10317
+
10318
+ @media (prefers-reduced-motion: reduce) {
10319
+ :is([data-slot="button"], [data-svadmin-button], .svadmin-button):not(:disabled, [aria-disabled="true"], [data-disabled]):active,
10320
+ .layout-clean-flat[data-theme="stripe"] :is([data-slot="button"], .svadmin-button):not(:disabled, [aria-disabled="true"], [data-disabled]):active {
10321
+ transform: none;
10322
+ }
10323
+ }
10324
+
9958
10325
  :root,
9959
10326
  .svadmin-theme{
9960
10327
  --color-background: var(--background);