@svadmin/surface 0.8.19 → 0.9.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 (191) hide show
  1. package/README.md +70 -38
  2. package/STYLING.md +31 -0
  3. package/compatibility.json +23 -2
  4. package/dist/agent-contract.d.ts +37 -0
  5. package/dist/agent-contract.js +203 -0
  6. package/dist/agent.d.ts +38 -7
  7. package/dist/agent.js +98 -59
  8. package/dist/binding.d.ts +2 -0
  9. package/dist/binding.js +7 -1
  10. package/dist/builtin-definitions.d.ts +6 -0
  11. package/dist/builtin-definitions.js +40 -0
  12. package/dist/builtin-schemas.d.ts +25 -0
  13. package/dist/builtin-schemas.js +13 -0
  14. package/dist/catalog.d.ts +4 -61
  15. package/dist/catalog.js +20 -44
  16. package/dist/components/MetricWidget.svelte +12 -8
  17. package/dist/components/ResourceFormBody.svelte +97 -0
  18. package/dist/components/ResourceFormBody.svelte.d.ts +13 -0
  19. package/dist/components/ResourceFormWidget.svelte +19 -0
  20. package/dist/components/ResourceFormWidget.svelte.d.ts +4 -0
  21. package/dist/components/ResourceTableWidget.svelte +14 -12
  22. package/dist/components/SurfaceEditPreview.svelte +107 -0
  23. package/dist/components/SurfaceEditPreview.svelte.d.ts +20 -0
  24. package/dist/components/SurfaceRenderer.svelte +120 -163
  25. package/dist/components/SurfaceRenderer.svelte.d.ts +4 -0
  26. package/dist/components/SurfaceWorkflowProvider.svelte +22 -0
  27. package/dist/components/SurfaceWorkflowProvider.svelte.d.ts +17 -0
  28. package/dist/components/SvarGridWidget.svelte +47 -0
  29. package/dist/components/SvarGridWidget.svelte.d.ts +4 -0
  30. package/dist/components/SvarSurfaceProvider.svelte +12 -0
  31. package/dist/components/SvarSurfaceProvider.svelte.d.ts +11 -0
  32. package/dist/edits.d.ts +57 -0
  33. package/dist/edits.js +166 -0
  34. package/dist/index.d.ts +8 -2
  35. package/dist/index.js +5 -1
  36. package/dist/interactive.d.ts +6 -0
  37. package/dist/interactive.js +15 -0
  38. package/dist/openui.d.ts +64 -0
  39. package/dist/openui.js +168 -0
  40. package/dist/schema.d.ts +108 -0
  41. package/dist/schema.js +73 -0
  42. package/dist/server-sqlite.d.ts +1 -0
  43. package/dist/server-sqlite.js +2 -0
  44. package/dist/server.d.ts +4 -0
  45. package/dist/server.js +4 -0
  46. package/dist/source-cache.d.ts +30 -0
  47. package/dist/source-cache.js +135 -0
  48. package/dist/styled-system/css/conditions.js +36 -0
  49. package/dist/styled-system/css/css.d.ts +22 -0
  50. package/dist/styled-system/css/css.js +45 -0
  51. package/dist/styled-system/css/cva.d.ts +6 -0
  52. package/dist/styled-system/css/cva.js +87 -0
  53. package/dist/styled-system/css/cx.d.ts +5 -0
  54. package/dist/styled-system/css/cx.js +15 -0
  55. package/dist/styled-system/css/index.d.ts +5 -0
  56. package/dist/styled-system/css/index.js +4 -0
  57. package/dist/styled-system/css/sva.d.ts +4 -0
  58. package/dist/styled-system/css/sva.js +46 -0
  59. package/dist/styled-system/design-contract.d.ts +13 -0
  60. package/dist/styled-system/design-contract.js +11 -0
  61. package/dist/styled-system/helpers.js +316 -0
  62. package/dist/styled-system/patterns/aspect-ratio.d.ts +20 -0
  63. package/dist/styled-system/patterns/aspect-ratio.js +38 -0
  64. package/dist/styled-system/patterns/bleed.d.ts +21 -0
  65. package/dist/styled-system/patterns/bleed.js +24 -0
  66. package/dist/styled-system/patterns/box.d.ts +20 -0
  67. package/dist/styled-system/patterns/box.js +15 -0
  68. package/dist/styled-system/patterns/center.d.ts +20 -0
  69. package/dist/styled-system/patterns/center.js +21 -0
  70. package/dist/styled-system/patterns/circle.d.ts +20 -0
  71. package/dist/styled-system/patterns/circle.js +25 -0
  72. package/dist/styled-system/patterns/container.d.ts +20 -0
  73. package/dist/styled-system/patterns/container.js +21 -0
  74. package/dist/styled-system/patterns/cq.d.ts +21 -0
  75. package/dist/styled-system/patterns/cq.js +21 -0
  76. package/dist/styled-system/patterns/divider.d.ts +22 -0
  77. package/dist/styled-system/patterns/divider.js +25 -0
  78. package/dist/styled-system/patterns/flex.d.ts +26 -0
  79. package/dist/styled-system/patterns/flex.js +26 -0
  80. package/dist/styled-system/patterns/float.d.ts +23 -0
  81. package/dist/styled-system/patterns/float.js +52 -0
  82. package/dist/styled-system/patterns/grid-item.d.ts +25 -0
  83. package/dist/styled-system/patterns/grid-item.js +25 -0
  84. package/dist/styled-system/patterns/grid.d.ts +24 -0
  85. package/dist/styled-system/patterns/grid.js +27 -0
  86. package/dist/styled-system/patterns/hstack.d.ts +21 -0
  87. package/dist/styled-system/patterns/hstack.js +24 -0
  88. package/dist/styled-system/patterns/index.d.ts +21 -0
  89. package/dist/styled-system/patterns/index.js +20 -0
  90. package/dist/styled-system/patterns/link-overlay.d.ts +20 -0
  91. package/dist/styled-system/patterns/link-overlay.js +24 -0
  92. package/dist/styled-system/patterns/spacer.d.ts +20 -0
  93. package/dist/styled-system/patterns/spacer.js +25 -0
  94. package/dist/styled-system/patterns/square.d.ts +20 -0
  95. package/dist/styled-system/patterns/square.js +24 -0
  96. package/dist/styled-system/patterns/stack.d.ts +23 -0
  97. package/dist/styled-system/patterns/stack.js +24 -0
  98. package/dist/styled-system/patterns/visually-hidden.d.ts +20 -0
  99. package/dist/styled-system/patterns/visually-hidden.js +18 -0
  100. package/dist/styled-system/patterns/vstack.d.ts +21 -0
  101. package/dist/styled-system/patterns/vstack.js +24 -0
  102. package/dist/styled-system/patterns/wrap.d.ts +24 -0
  103. package/dist/styled-system/patterns/wrap.js +25 -0
  104. package/dist/styled-system/recipes/content-header.d.ts +31 -0
  105. package/dist/styled-system/recipes/content-header.js +65 -0
  106. package/dist/styled-system/recipes/content-page.d.ts +34 -0
  107. package/dist/styled-system/recipes/content-page.js +43 -0
  108. package/dist/styled-system/recipes/create-recipe.js +82 -0
  109. package/dist/styled-system/recipes/index.d.ts +17 -0
  110. package/dist/styled-system/recipes/index.js +16 -0
  111. package/dist/styled-system/recipes/metric-block.d.ts +34 -0
  112. package/dist/styled-system/recipes/metric-block.js +76 -0
  113. package/dist/styled-system/recipes/product-list.d.ts +31 -0
  114. package/dist/styled-system/recipes/product-list.js +73 -0
  115. package/dist/styled-system/recipes/product-section.d.ts +31 -0
  116. package/dist/styled-system/recipes/product-section.js +49 -0
  117. package/dist/styled-system/recipes/product-settings-row.d.ts +34 -0
  118. package/dist/styled-system/recipes/product-settings-row.js +58 -0
  119. package/dist/styled-system/recipes/product-settings.d.ts +31 -0
  120. package/dist/styled-system/recipes/product-settings.js +57 -0
  121. package/dist/styled-system/recipes/product-status.d.ts +34 -0
  122. package/dist/styled-system/recipes/product-status.js +45 -0
  123. package/dist/styled-system/recipes/product-toolbar.d.ts +31 -0
  124. package/dist/styled-system/recipes/product-toolbar.js +41 -0
  125. package/dist/styled-system/recipes/product-workspace.d.ts +34 -0
  126. package/dist/styled-system/recipes/product-workspace.js +58 -0
  127. package/dist/styled-system/recipes/surface-metric.d.ts +38 -0
  128. package/dist/styled-system/recipes/surface-metric.js +63 -0
  129. package/dist/styled-system/recipes/surface-table.d.ts +34 -0
  130. package/dist/styled-system/recipes/surface-table.js +62 -0
  131. package/dist/styled-system/recipes/ui-badge.d.ts +31 -0
  132. package/dist/styled-system/recipes/ui-badge.js +38 -0
  133. package/dist/styled-system/recipes/ui-button.d.ts +32 -0
  134. package/dist/styled-system/recipes/ui-button.js +43 -0
  135. package/dist/styled-system/recipes/ui-input.d.ts +31 -0
  136. package/dist/styled-system/recipes/ui-input.js +49 -0
  137. package/dist/styled-system/recipes/ui-textarea.d.ts +31 -0
  138. package/dist/styled-system/recipes/ui-textarea.js +24 -0
  139. package/dist/styled-system/styles.css +1257 -0
  140. package/dist/styled-system/tokens/index.d.ts +9 -0
  141. package/dist/styled-system/tokens/index.js +268 -0
  142. package/dist/styled-system/tokens/tokens.d.ts +36 -0
  143. package/dist/styled-system/types/composition.d.ts +227 -0
  144. package/dist/styled-system/types/conditions.d.ts +236 -0
  145. package/dist/styled-system/types/csstype.d.ts +22570 -0
  146. package/dist/styled-system/types/index.d.ts +6 -0
  147. package/dist/styled-system/types/parts.d.ts +8 -0
  148. package/dist/styled-system/types/pattern.d.ts +78 -0
  149. package/dist/styled-system/types/prop-type.d.ts +223 -0
  150. package/dist/styled-system/types/recipe.d.ts +181 -0
  151. package/dist/styled-system/types/selectors.d.ts +59 -0
  152. package/dist/styled-system/types/static-css.d.ts +56 -0
  153. package/dist/styled-system/types/style-props.d.ts +8088 -0
  154. package/dist/styled-system/types/system-types.d.ts +151 -0
  155. package/dist/styles/editor.css +124 -0
  156. package/dist/styles/editor.generated.d.ts +8 -0
  157. package/dist/styles/editor.generated.js +9 -0
  158. package/dist/styles.css +1262 -0
  159. package/dist/svar-catalog.d.ts +3 -0
  160. package/dist/svar-catalog.js +7 -0
  161. package/dist/svar-context.d.ts +9 -0
  162. package/dist/svar-context.js +1 -0
  163. package/dist/svar-schema.d.ts +21 -0
  164. package/dist/svar-schema.js +36 -0
  165. package/dist/svar.d.ts +4 -0
  166. package/dist/svar.js +3 -0
  167. package/dist/svelte.d.ts +4 -2
  168. package/dist/svelte.js +2 -1
  169. package/dist/types.d.ts +4 -0
  170. package/dist/validation.js +2 -102
  171. package/dist/wire.d.ts +13 -0
  172. package/dist/wire.js +30 -0
  173. package/dist/workflows/action-contracts.d.ts +7 -0
  174. package/dist/workflows/action-contracts.js +54 -0
  175. package/dist/workflows/catalog.d.ts +20 -0
  176. package/dist/workflows/catalog.js +50 -0
  177. package/dist/workflows/client.d.ts +45 -0
  178. package/dist/workflows/client.js +125 -0
  179. package/dist/workflows/context.d.ts +9 -0
  180. package/dist/workflows/context.js +5 -0
  181. package/dist/workflows/openui-guard.d.ts +19 -0
  182. package/dist/workflows/openui-guard.js +209 -0
  183. package/dist/workflows/service.d.ts +58 -0
  184. package/dist/workflows/service.js +296 -0
  185. package/dist/workflows/sqlite-store.d.ts +20 -0
  186. package/dist/workflows/sqlite-store.js +91 -0
  187. package/dist/workflows/types.d.ts +103 -0
  188. package/dist/workflows/types.js +8 -0
  189. package/dist/workflows.d.ts +5 -0
  190. package/dist/workflows.js +4 -0
  191. package/package.json +52 -8
@@ -0,0 +1,1262 @@
1
+ :where(:root, :host, .svadmin-theme, .dark, [data-theme]) {
2
+ --svadmin-spacing-xs: 0.25rem;
3
+ --svadmin-spacing-sm: 0.75rem;
4
+ --svadmin-spacing-md: 1rem;
5
+ --svadmin-spacing-lg: 1.25rem;
6
+ --svadmin-spacing-content-stack: var(--spacing);
7
+ --svadmin-spacing-content-inline: calc(var(--spacing) * 2);
8
+ --svadmin-spacing-content-section: calc(var(--spacing) * 3);
9
+ --svadmin-spacing-content-panel: calc(var(--spacing) * 4);
10
+ --svadmin-spacing-content-page: calc(var(--spacing) * 6);
11
+ --svadmin-sizes-content-narrow: var(--container-3xl);
12
+ --svadmin-sizes-content-default: 74rem;
13
+ --svadmin-sizes-content-wide: 92rem;
14
+ --svadmin-sizes-content-description: var(--container-2xl);
15
+ --svadmin-sizes-content-skeleton-height: calc(var(--spacing) * 8);
16
+ --svadmin-sizes-content-skeleton-width: calc(var(--spacing) * 24);
17
+ --svadmin-font-sizes-compact: 0.75rem;
18
+ --svadmin-font-sizes-body: 0.875rem;
19
+ --svadmin-font-sizes-content-caption: var(--text-xs);
20
+ --svadmin-font-sizes-content-body: var(--text-sm);
21
+ --svadmin-font-sizes-content-title: var(--text-xl);
22
+ --svadmin-font-sizes-content-metric: var(--text-2xl);
23
+ --svadmin-line-heights-content-caption: var(--text-xs--line-height);
24
+ --svadmin-line-heights-content-body: var(--text-sm--line-height);
25
+ --svadmin-line-heights-content-title: var(--leading-tight);
26
+ --svadmin-line-heights-content-description: calc(var(--spacing) * 6);
27
+ --svadmin-line-heights-content-metric: var(--text-2xl--line-height);
28
+ --svadmin-font-weights-content-medium: var(--font-weight-medium);
29
+ --svadmin-font-weights-content-strong: var(--font-weight-semibold);
30
+ --svadmin-letter-spacings-content-normal: var(--tracking-normal);
31
+ --svadmin-shadows-content-card: 0 0 0 0 transparent, 0 0 0 0 transparent, 0 0 0 0 transparent, 0 0 0 0 transparent, 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
32
+ --svadmin-colors-surface: var(--card);
33
+ --svadmin-colors-foreground: var(--foreground);
34
+ --svadmin-colors-muted: var(--muted-foreground);
35
+ --svadmin-colors-border: var(--border);
36
+ --svadmin-colors-success: var(--success);
37
+ --svadmin-colors-warning: var(--warning);
38
+ --svadmin-colors-danger: var(--destructive);
39
+ --svadmin-colors-info: var(--info);
40
+ --svadmin-colors-content-foreground: var(--color-foreground);
41
+ --svadmin-colors-content-muted: var(--color-muted-foreground);
42
+ --svadmin-colors-content-card: var(--color-card);
43
+ --svadmin-colors-content-border: var(--color-border);
44
+ --svadmin-colors-content-positive: var(--color-success);
45
+ --svadmin-colors-content-negative: var(--color-destructive);
46
+ --svadmin-colors-content-warning: var(--color-warning-foreground);
47
+ --svadmin-radii-surface: var(--radius-lg);
48
+ --svadmin-radii-content-card: var(--radius-lg);
49
+ }
50
+
51
+ @layer components {
52
+
53
+ .svadmin-ui-badge {
54
+ border: 1px solid transparent;
55
+ padding: 0.125rem 0.625rem;
56
+ gap: 0.25rem;
57
+ overflow: hidden;
58
+ border-radius: var(--radius-sm);
59
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
60
+ display: inline-flex;
61
+ flex-shrink: 0;
62
+ align-items: center;
63
+ justify-content: center;
64
+ font-size: 0.75rem;
65
+ font-weight: 600;
66
+ line-height: 1;
67
+ white-space: nowrap;
68
+ width: fit-content;
69
+ min-height: 1.25rem;
70
+ }
71
+
72
+ .svadmin-ui-badge > svg {
73
+ pointer-events: none;
74
+ width: 0.75rem;
75
+ height: 0.75rem;
76
+ }
77
+
78
+ .svadmin-ui-button {
79
+ border: 1px solid transparent;
80
+ gap: 0.375rem;
81
+ border-radius: var(--radius-md);
82
+ outline: 2px solid transparent;
83
+ outline-offset: 2px;
84
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
85
+ display: inline-flex;
86
+ flex-shrink: 0;
87
+ align-items: center;
88
+ justify-content: center;
89
+ background-clip: padding-box;
90
+ -webkit-background-clip: padding-box;
91
+ font-size: 0.875rem;
92
+ font-weight: 500;
93
+ line-height: 1;
94
+ white-space: nowrap;
95
+ -webkit-user-select: none;
96
+ user-select: none;
97
+ }
98
+
99
+ .svadmin-ui-button > svg {
100
+ flex-shrink: 0;
101
+ pointer-events: none;
102
+ width: 1rem;
103
+ height: 1rem;
104
+ }
105
+
106
+ .svadmin-ui-button:disabled,.svadmin-ui-button[aria-disabled="true"] {
107
+ pointer-events: none;
108
+ opacity: 0.5;
109
+ }
110
+
111
+ .svadmin-ui-button:active {
112
+ transform: translateY(1px);
113
+ }
114
+
115
+ .svadmin-ui-textarea {
116
+ border: 1px solid var(--border);
117
+ padding: 0.5rem 0.75rem;
118
+ background: transparent;
119
+ font: inherit;
120
+ border-radius: 0.5rem;
121
+ outline: 2px solid transparent;
122
+ outline-offset: 2px;
123
+ transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
124
+ resize: vertical;
125
+ color: var(--foreground);
126
+ font-size: 0.875rem;
127
+ width: 100%;
128
+ min-height: 5rem;
129
+ }
130
+
131
+ .svadmin-ui-textarea[aria-invalid="true"] {
132
+ border-color: var(--destructive);
133
+ box-shadow: 0 0 0 3px var(--destructive);
134
+ }
135
+
136
+ .svadmin-ui-textarea:disabled {
137
+ cursor: not-allowed;
138
+ opacity: 0.5;
139
+ }
140
+
141
+ .svadmin-ui-textarea::placeholder {
142
+ color: var(--muted-foreground);
143
+ }
144
+
145
+ .svadmin-ui-textarea:focus-visible {
146
+ border-color: var(--ring);
147
+ box-shadow: 0 0 0 3px var(--ring);
148
+ }
149
+ }
150
+
151
+ @supports (color: color-mix(in lab, red, red)) {
152
+ @layer components {
153
+ .svadmin-ui-textarea[aria-invalid="true"] {
154
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--destructive) 20%, transparent);
155
+ }
156
+
157
+ .svadmin-ui-textarea:focus-visible {
158
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 20%, transparent);
159
+ }
160
+ }
161
+ }
162
+
163
+ @layer components {
164
+
165
+ .svadmin-ui-badge--variant_default {
166
+ background: var(--primary);
167
+ color: var(--primary-foreground);
168
+ }
169
+
170
+ .svadmin-ui-badge--variant_secondary {
171
+ background: var(--secondary);
172
+ color: var(--secondary-foreground);
173
+ }
174
+
175
+ .svadmin-ui-badge--variant_destructive {
176
+ background: var(--muted);
177
+ border-color: var(--destructive);
178
+ color: var(--foreground);
179
+ }
180
+ }
181
+
182
+ @supports (color: color-mix(in lab, red, red)) {
183
+ @layer components {
184
+ .svadmin-ui-badge--variant_destructive {
185
+ background: color-mix(in oklch, var(--destructive) 10%, transparent);
186
+ border-color: color-mix(in oklch, var(--destructive) 20%, transparent);
187
+ color: var(--destructive);
188
+ }
189
+ }
190
+ }
191
+
192
+ @layer components {
193
+
194
+ .svadmin-ui-badge--variant_subtle {
195
+ background: var(--muted);
196
+ border-color: var(--primary);
197
+ color: var(--foreground);
198
+ }
199
+ }
200
+
201
+ @supports (color: color-mix(in lab, red, red)) {
202
+ @layer components {
203
+ .svadmin-ui-badge--variant_subtle {
204
+ background: color-mix(in oklch, var(--primary) 10%, transparent);
205
+ border-color: color-mix(in oklch, var(--primary) 20%, transparent);
206
+ color: var(--primary);
207
+ }
208
+ }
209
+ }
210
+
211
+ @layer components {
212
+
213
+ .svadmin-ui-badge--variant_subtle-success {
214
+ background: var(--muted);
215
+ border-color: var(--success);
216
+ color: var(--foreground);
217
+ }
218
+ }
219
+
220
+ @supports (color: color-mix(in lab, red, red)) {
221
+ @layer components {
222
+ .svadmin-ui-badge--variant_subtle-success {
223
+ background: color-mix(in oklch, var(--success) 10%, transparent);
224
+ border-color: color-mix(in oklch, var(--success) 20%, transparent);
225
+ color: var(--success);
226
+ }
227
+ }
228
+ }
229
+
230
+ @layer components {
231
+
232
+ .svadmin-ui-badge--variant_subtle-warning {
233
+ background: var(--muted);
234
+ border-color: var(--warning);
235
+ color: var(--foreground);
236
+ }
237
+ }
238
+
239
+ @supports (color: color-mix(in lab, red, red)) {
240
+ @layer components {
241
+ .svadmin-ui-badge--variant_subtle-warning {
242
+ background: color-mix(in oklch, var(--warning) 10%, transparent);
243
+ border-color: color-mix(in oklch, var(--warning) 20%, transparent);
244
+ color: var(--warning);
245
+ }
246
+ }
247
+ }
248
+
249
+ @layer components {
250
+
251
+ .svadmin-ui-badge--variant_subtle-destructive {
252
+ background: var(--muted);
253
+ border-color: var(--destructive);
254
+ color: var(--foreground);
255
+ }
256
+ }
257
+
258
+ @supports (color: color-mix(in lab, red, red)) {
259
+ @layer components {
260
+ .svadmin-ui-badge--variant_subtle-destructive {
261
+ background: color-mix(in oklch, var(--destructive) 10%, transparent);
262
+ border-color: color-mix(in oklch, var(--destructive) 20%, transparent);
263
+ color: var(--destructive);
264
+ }
265
+ }
266
+ }
267
+
268
+ @layer components {
269
+
270
+ .svadmin-ui-badge--variant_subtle-pill {
271
+ background: var(--muted);
272
+ border-color: var(--border);
273
+ border-radius: 999px;
274
+ color: var(--muted-foreground);
275
+ font-weight: 500;
276
+ }
277
+ }
278
+
279
+ @supports (color: color-mix(in lab, red, red)) {
280
+ @layer components {
281
+ .svadmin-ui-badge--variant_subtle-pill {
282
+ background: color-mix(in oklch, var(--muted) 70%, transparent);
283
+ border-color: color-mix(in oklch, var(--border) 80%, transparent);
284
+ }
285
+ }
286
+ }
287
+
288
+ @layer components {
289
+
290
+ .svadmin-ui-badge--variant_outline {
291
+ border-color: var(--color-border, var(--border));
292
+ color: var(--foreground);
293
+ }
294
+
295
+ .svadmin-ui-badge--variant_outline:hover,.svadmin-ui-badge--variant_ghost:hover {
296
+ background: var(--muted);
297
+ color: var(--muted-foreground);
298
+ }
299
+
300
+ .svadmin-ui-badge--variant_link {
301
+ text-decoration: underline;
302
+ color: var(--primary);
303
+ text-underline-offset: 0.25rem;
304
+ }
305
+
306
+ .svadmin-ui-button--variant_default {
307
+ background: var(--primary);
308
+ color: var(--primary-foreground);
309
+ }
310
+
311
+ .svadmin-ui-button--variant_default:hover {
312
+ background: var(--primary);
313
+ }
314
+ }
315
+
316
+ @supports (color: color-mix(in lab, red, red)) {
317
+ @layer components {
318
+ .svadmin-ui-button--variant_default:hover {
319
+ background: color-mix(in oklch, var(--primary) 80%, var(--foreground));
320
+ }
321
+ }
322
+ }
323
+
324
+ @layer components {
325
+
326
+ .svadmin-ui-button--size_default {
327
+ padding: 0 0.75rem;
328
+ min-height: 2.25rem;
329
+ }
330
+
331
+ .svadmin-ui-button--variant_outline {
332
+ background: var(--background);
333
+ border-color: var(--color-border, var(--border));
334
+ color: var(--foreground);
335
+ }
336
+
337
+ .svadmin-ui-button--variant_outline:hover {
338
+ background: var(--muted);
339
+ }
340
+
341
+ .svadmin-ui-button--variant_secondary {
342
+ background: var(--secondary);
343
+ color: var(--secondary-foreground);
344
+ }
345
+
346
+ .svadmin-ui-button--variant_secondary:hover,.svadmin-ui-button--variant_ghost:hover,.svadmin-ui-button--variant_destructive {
347
+ background: var(--muted);
348
+ color: var(--foreground);
349
+ }
350
+
351
+ .svadmin-ui-button--variant_destructive {
352
+ border-color: var(--destructive);
353
+ }
354
+
355
+ .svadmin-ui-button--variant_destructive:hover {
356
+ background: var(--muted);
357
+ }
358
+ }
359
+
360
+ @supports (color: color-mix(in lab, red, red)) {
361
+ @layer components {
362
+ .svadmin-ui-button--variant_destructive {
363
+ background: color-mix(in oklch, var(--destructive) 10%, transparent);
364
+ border-color: transparent;
365
+ color: var(--destructive);
366
+ }
367
+
368
+ .svadmin-ui-button--variant_destructive:hover {
369
+ background: color-mix(in oklch, var(--destructive) 20%, transparent);
370
+ }
371
+ }
372
+ }
373
+
374
+ @layer components {
375
+
376
+ .svadmin-ui-button--variant_link {
377
+ text-decoration: underline;
378
+ color: var(--primary);
379
+ text-underline-offset: 0.25rem;
380
+ }
381
+
382
+ .svadmin-ui-button--size_xs {
383
+ padding: 0 0.5rem;
384
+ font-size: 0.75rem;
385
+ min-height: 1.5rem;
386
+ }
387
+
388
+ .svadmin-ui-button--size_sm {
389
+ padding: 0 0.75rem;
390
+ font-size: 0.8rem;
391
+ min-height: 2rem;
392
+ }
393
+
394
+ .svadmin-ui-button--size_lg {
395
+ padding: 0 1rem;
396
+ min-height: 2.5rem;
397
+ }
398
+
399
+ .svadmin-ui-button--size_icon {
400
+ width: 2.25rem;
401
+ height: 2.25rem;
402
+ }
403
+
404
+ .svadmin-ui-button--size_icon-xs {
405
+ width: 1.5rem;
406
+ height: 1.5rem;
407
+ }
408
+
409
+ .svadmin-ui-button--size_icon-sm {
410
+ width: 2rem;
411
+ height: 2rem;
412
+ }
413
+
414
+ .svadmin-ui-button--size_icon-lg {
415
+ width: 2.5rem;
416
+ height: 2.5rem;
417
+ }
418
+ }
419
+
420
+ .svadmin-surface-metric__root {
421
+ min-width: 0;
422
+ }
423
+
424
+ .svadmin-surface-metric__card {
425
+ border-inline-start-style: solid;
426
+ border-inline-start-width: 3px;
427
+ }
428
+
429
+ .svadmin-surface-metric__description {
430
+ color: var(--svadmin-colors-muted);
431
+ }
432
+
433
+ .svadmin-surface-metric__state {
434
+ --svadmin-metric-state-border-width: 3px;
435
+ }
436
+
437
+ .svadmin-surface-table__root {
438
+ min-width: 0;
439
+ }
440
+
441
+ .svadmin-surface-table__state {
442
+ color: var(--svadmin-colors-muted);
443
+ }
444
+
445
+ :where(.svadmin-content-header__root > :not(:last-child)) {
446
+ margin-block-start: 0px;
447
+ margin-block-end: var(--svadmin-spacing-content-section);
448
+ }
449
+
450
+ .svadmin-content-header__breadcrumbs {
451
+ gap: var(--svadmin-spacing-content-inline);
452
+ display: flex;
453
+ align-items: center;
454
+ font-size: var(--svadmin-font-sizes-content-caption);
455
+ line-height: var(--svadmin-line-heights-content-caption);
456
+ color: var(--svadmin-colors-content-muted);
457
+ }
458
+
459
+ .svadmin-content-header__currentCrumb {
460
+ color: var(--svadmin-colors-content-foreground);
461
+ }
462
+
463
+ .svadmin-content-header__row {
464
+ gap: var(--svadmin-spacing-content-panel);
465
+ display: flex;
466
+ flex-direction: column;
467
+ }
468
+
469
+ .svadmin-content-header__heading {
470
+ min-width: 0px;
471
+ }
472
+
473
+ :where(.svadmin-content-header__heading > :not(:last-child)) {
474
+ margin-block-start: 0px;
475
+ margin-block-end: var(--svadmin-spacing-content-stack);
476
+ }
477
+
478
+ .svadmin-content-header__eyebrow {
479
+ font-size: var(--svadmin-font-sizes-content-caption);
480
+ line-height: var(--svadmin-line-heights-content-caption);
481
+ font-weight: var(--svadmin-font-weights-content-medium);
482
+ color: var(--svadmin-colors-content-muted);
483
+ }
484
+
485
+ .svadmin-content-header__title {
486
+ font-size: var(--svadmin-font-sizes-content-title);
487
+ line-height: var(--svadmin-line-heights-content-title);
488
+ font-weight: var(--svadmin-font-weights-content-strong);
489
+ letter-spacing: var(--svadmin-letter-spacings-content-normal);
490
+ color: var(--svadmin-colors-content-foreground);
491
+ }
492
+
493
+ .svadmin-content-header__description {
494
+ font-size: var(--svadmin-font-sizes-content-body);
495
+ line-height: var(--svadmin-line-heights-content-description);
496
+ color: var(--svadmin-colors-content-muted);
497
+ max-width: var(--svadmin-sizes-content-description);
498
+ }
499
+
500
+ .svadmin-content-header__actions {
501
+ gap: var(--svadmin-spacing-content-inline);
502
+ display: flex;
503
+ flex-shrink: 0;
504
+ flex-wrap: wrap;
505
+ align-items: center;
506
+ }
507
+
508
+ .svadmin-content-page__root {
509
+ margin-inline: auto;
510
+ width: 100%;
511
+ }
512
+
513
+ :where(.svadmin-content-page__root > :not(:last-child)) {
514
+ margin-block-start: 0px;
515
+ margin-block-end: var(--svadmin-spacing-content-page);
516
+ }
517
+
518
+ .svadmin-metric-block__root {
519
+ padding: var(--svadmin-spacing-content-panel);
520
+ border-radius: var(--svadmin-radii-content-card);
521
+ border-style: solid;
522
+ border-width: 1px;
523
+ border-color: var(--svadmin-colors-content-border);
524
+ background-color: var(--svadmin-colors-content-card);
525
+ box-shadow: var(--svadmin-shadows-content-card);
526
+ min-width: 0px;
527
+ }
528
+
529
+ .layout-clean-flat [data-svadmin-content-page] .svadmin-metric-block__root {
530
+ background: var(--svadmin-surface);
531
+ border-color: var(--svadmin-border);
532
+ border-radius: var(--svadmin-radii-content-card);
533
+ box-shadow: var(--svadmin-surface-shadow);
534
+ min-width: 0px;
535
+ }
536
+
537
+ .svadmin-metric-block__header {
538
+ gap: var(--svadmin-spacing-content-section);
539
+ display: flex;
540
+ align-items: flex-start;
541
+ justify-content: space-between;
542
+ }
543
+
544
+ .svadmin-metric-block__label {
545
+ font-size: var(--svadmin-font-sizes-content-body);
546
+ line-height: var(--svadmin-line-heights-content-body);
547
+ }
548
+
549
+ .svadmin-metric-block__label,.svadmin-metric-block__icon {
550
+ color: var(--svadmin-colors-content-muted);
551
+ }
552
+
553
+ .svadmin-metric-block__skeleton {
554
+ margin-top: var(--svadmin-spacing-content-section);
555
+ height: var(--svadmin-sizes-content-skeleton-height);
556
+ width: var(--svadmin-sizes-content-skeleton-width);
557
+ }
558
+
559
+ .svadmin-metric-block__value {
560
+ overflow: hidden;
561
+ text-overflow: ellipsis;
562
+ white-space: nowrap;
563
+ font-size: var(--svadmin-font-sizes-content-metric);
564
+ line-height: var(--svadmin-line-heights-content-metric);
565
+ font-weight: var(--svadmin-font-weights-content-strong);
566
+ letter-spacing: var(--svadmin-letter-spacings-content-normal);
567
+ color: var(--svadmin-colors-content-foreground);
568
+ font-variant-numeric: tabular-nums;
569
+ margin-top: var(--svadmin-spacing-content-inline);
570
+ }
571
+
572
+ .svadmin-metric-block__meta {
573
+ gap: var(--svadmin-spacing-content-inline);
574
+ display: flex;
575
+ flex-wrap: wrap;
576
+ font-size: var(--svadmin-font-sizes-content-caption);
577
+ line-height: var(--svadmin-line-heights-content-caption);
578
+ margin-top: var(--svadmin-spacing-content-inline);
579
+ }
580
+
581
+ .svadmin-metric-block__trend {
582
+ font-weight: var(--svadmin-font-weights-content-medium);
583
+ font-variant-numeric: tabular-nums;
584
+ }
585
+
586
+ .svadmin-metric-block__detail {
587
+ color: var(--svadmin-colors-content-muted);
588
+ }
589
+
590
+ .svadmin-product-toolbar__root {
591
+ gap: calc(var(--spacing, 0.25rem) * 3);
592
+ padding-block: calc(var(--spacing, 0.25rem) * 3);
593
+ border-bottom: 1px solid;
594
+ border-color: var(--svadmin-colors-border);
595
+ display: flex;
596
+ flex-wrap: wrap;
597
+ align-items: center;
598
+ justify-content: space-between;
599
+ min-width: 0;
600
+ }
601
+
602
+ .svadmin-product-toolbar__leading {
603
+ flex: 1 1 16rem;
604
+ }
605
+
606
+ .svadmin-product-toolbar__leading,.svadmin-product-toolbar__trailing {
607
+ gap: calc(var(--spacing, 0.25rem) * 2);
608
+ display: flex;
609
+ flex-wrap: wrap;
610
+ align-items: center;
611
+ min-width: 0;
612
+ }
613
+
614
+ .svadmin-product-toolbar__trailing {
615
+ margin-inline-start: auto;
616
+ }
617
+
618
+ .svadmin-product-section__root {
619
+ gap: calc(var(--spacing, 0.25rem) * 3);
620
+ display: flex;
621
+ flex-wrap: wrap;
622
+ align-items: flex-start;
623
+ justify-content: space-between;
624
+ }
625
+
626
+ .svadmin-product-section__heading {
627
+ flex: 1 1 16rem;
628
+ min-width: 0;
629
+ }
630
+
631
+ .svadmin-product-section__title {
632
+ margin: 0;
633
+ color: var(--svadmin-colors-foreground);
634
+ font-size: 1rem;
635
+ line-height: 1.5;
636
+ font-weight: 600;
637
+ overflow-wrap: anywhere;
638
+ }
639
+
640
+ .svadmin-product-section__description {
641
+ margin: calc(var(--spacing, 0.25rem) * 1) 0 0;
642
+ color: var(--svadmin-colors-muted);
643
+ font-size: 0.8125rem;
644
+ line-height: 1.5;
645
+ max-width: 65ch;
646
+ }
647
+
648
+ .svadmin-product-section__actions {
649
+ gap: calc(var(--spacing, 0.25rem) * 2);
650
+ display: flex;
651
+ flex-wrap: wrap;
652
+ align-items: center;
653
+ flex-shrink: 0;
654
+ min-width: 0;
655
+ }
656
+
657
+ .svadmin-product-settings-row__root {
658
+ gap: calc(var(--spacing, 0.25rem) * 3);
659
+ padding-block: calc(var(--spacing, 0.25rem) * 5);
660
+ display: grid;
661
+ grid-template-columns: minmax(0, 1fr);
662
+ align-items: start;
663
+ min-width: 0;
664
+ }
665
+
666
+ .svadmin-product-settings-row__heading {
667
+ min-width: 0;
668
+ }
669
+
670
+ .svadmin-product-settings-row__label {
671
+ margin: 0;
672
+ color: var(--svadmin-colors-foreground);
673
+ font-size: var(--svadmin-font-sizes-body);
674
+ line-height: 1.5;
675
+ font-weight: 500;
676
+ overflow-wrap: anywhere;
677
+ }
678
+
679
+ .svadmin-product-settings-row__description {
680
+ margin: calc(var(--spacing, 0.25rem) * 1) 0 0;
681
+ color: var(--svadmin-colors-muted);
682
+ font-size: 0.8125rem;
683
+ line-height: 1.5;
684
+ overflow-wrap: anywhere;
685
+ max-width: 52ch;
686
+ }
687
+
688
+ .svadmin-product-settings-row__control {
689
+ min-width: 0;
690
+ max-width: 100%;
691
+ }
692
+
693
+ .svadmin-product-settings__root {
694
+ color: var(--svadmin-colors-foreground);
695
+ font-size: var(--svadmin-font-sizes-body);
696
+ line-height: 1.5;
697
+ min-width: 0;
698
+ }
699
+
700
+ .svadmin-product-settings__header {
701
+ gap: calc(var(--spacing, 0.25rem) * 3);
702
+ padding-block: calc(var(--spacing, 0.25rem) * 4);
703
+ border-bottom: 1px solid;
704
+ border-color: var(--svadmin-colors-border);
705
+ display: flex;
706
+ flex-wrap: wrap;
707
+ align-items: flex-start;
708
+ justify-content: space-between;
709
+ }
710
+
711
+ .svadmin-product-settings__heading {
712
+ flex: 1 1 16rem;
713
+ min-width: 0;
714
+ }
715
+
716
+ .svadmin-product-settings__title {
717
+ margin: 0;
718
+ color: var(--svadmin-colors-foreground);
719
+ font-size: 1rem;
720
+ line-height: 1.5;
721
+ font-weight: 600;
722
+ overflow-wrap: anywhere;
723
+ }
724
+
725
+ .svadmin-product-settings__description {
726
+ margin: calc(var(--spacing, 0.25rem) * 1) 0 0;
727
+ color: var(--svadmin-colors-muted);
728
+ font-size: 0.8125rem;
729
+ line-height: 1.5;
730
+ max-width: 65ch;
731
+ }
732
+
733
+ .svadmin-product-settings__actions {
734
+ gap: calc(var(--spacing, 0.25rem) * 2);
735
+ display: flex;
736
+ flex-wrap: wrap;
737
+ align-items: center;
738
+ flex-shrink: 0;
739
+ min-width: 0;
740
+ }
741
+
742
+ .svadmin-product-settings__body {
743
+ padding-block: calc(var(--spacing, 0.25rem) * 1);
744
+ min-width: 0;
745
+ }
746
+
747
+ .svadmin-product-status__root {
748
+ --svadmin-status-color: var(--muted-foreground);
749
+ }
750
+
751
+ .svadmin-product-status__root[data-slot=badge] {
752
+ background: var(--muted);
753
+ border-color: var(--svadmin-status-color);
754
+ color: var(--foreground);
755
+ white-space: nowrap;
756
+ }
757
+
758
+ @supports (color: color-mix(in oklab, black, white)) {
759
+ .svadmin-product-status__root[data-slot=badge] {
760
+ background: color-mix(in oklab, var(--svadmin-status-color) 10%, var(--card));
761
+ border-color: color-mix(in oklab, var(--svadmin-status-color) 25%, var(--card));
762
+ color: color-mix(in oklab, var(--svadmin-status-color) 35%, var(--foreground));
763
+ }
764
+ }
765
+
766
+ .svadmin-product-workspace__root {
767
+ gap: calc(var(--spacing, 0.25rem) * 6);
768
+ display: flex;
769
+ flex-direction: column;
770
+ min-width: 0;
771
+ }
772
+
773
+ .svadmin-product-workspace__summary {
774
+ min-width: 0;
775
+ }
776
+
777
+ .svadmin-product-workspace__columns {
778
+ gap: calc(var(--spacing, 0.25rem) * 8);
779
+ display: grid;
780
+ grid-template-columns: minmax(0, 1fr);
781
+ align-items: start;
782
+ min-width: 0;
783
+ }
784
+
785
+ .svadmin-product-workspace__primary {
786
+ min-width: 0;
787
+ }
788
+
789
+ .svadmin-product-workspace__secondary {
790
+ gap: calc(var(--spacing, 0.25rem) * 6);
791
+ display: flex;
792
+ flex-direction: column;
793
+ min-width: 0;
794
+ }
795
+
796
+ @layer components {
797
+
798
+ .svadmin-ui-input__root {
799
+ position: relative;
800
+ }
801
+
802
+ .svadmin-ui-input__root,.svadmin-ui-input__control {
803
+ width: 100%;
804
+ min-width: 0;
805
+ height: 2.25rem;
806
+ }
807
+
808
+ .svadmin-ui-input__control {
809
+ border: 1px solid var(--border);
810
+ background: transparent;
811
+ border-radius: 0.5rem;
812
+ outline: 2px solid transparent;
813
+ outline-offset: 2px;
814
+ transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
815
+ color: var(--foreground);
816
+ }
817
+
818
+ .svadmin-ui-input__control:not([data-input-type="file"]) {
819
+ padding: 0.375rem 0.75rem;
820
+ font-size: 0.875rem;
821
+ }
822
+
823
+ .svadmin-ui-input__control[data-input-type="file"] {
824
+ inset: 0;
825
+ border: 0;
826
+ padding: 0;
827
+ position: absolute;
828
+ z-index: 1;
829
+ opacity: 0;
830
+ appearance: none;
831
+ -webkit-appearance: none;
832
+ cursor: pointer;
833
+ height: 100%;
834
+ }
835
+
836
+ .svadmin-ui-input__control[aria-invalid="true"] {
837
+ border-color: var(--destructive);
838
+ box-shadow: 0 0 0 3px var(--destructive);
839
+ }
840
+
841
+ .svadmin-ui-input__control:disabled {
842
+ cursor: not-allowed;
843
+ opacity: 0.5;
844
+ }
845
+
846
+ .svadmin-ui-input__control::placeholder {
847
+ color: var(--muted-foreground);
848
+ }
849
+
850
+ .svadmin-ui-input__control[data-input-type="file"]:focus-visible + .svadmin-file-input__visual,.svadmin-ui-input__control:focus-visible {
851
+ border-color: var(--ring);
852
+ box-shadow: 0 0 0 3px var(--ring);
853
+ }
854
+ }
855
+
856
+ @supports (color: color-mix(in lab, red, red)) {
857
+ @layer components {
858
+ .svadmin-ui-input__control[aria-invalid="true"] {
859
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--destructive) 20%, transparent);
860
+ }
861
+
862
+ .svadmin-ui-input__control[data-input-type="file"]:focus-visible + .svadmin-file-input__visual,.svadmin-ui-input__control:focus-visible {
863
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 20%, transparent);
864
+ }
865
+ }
866
+ }
867
+
868
+ @layer components {
869
+
870
+ .svadmin-ui-input__visual {
871
+ border: 1px solid var(--border);
872
+ background: var(--card);
873
+ padding: 0.25rem 0.75rem 0.25rem 0.25rem;
874
+ gap: 0.75rem;
875
+ overflow: hidden;
876
+ border-radius: 0.5rem;
877
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;
878
+ display: flex;
879
+ align-items: center;
880
+ box-shadow: var(--shadow-control);
881
+ color: var(--muted-foreground);
882
+ pointer-events: none;
883
+ width: 100%;
884
+ height: 100%;
885
+ }
886
+
887
+ .svadmin-file-input[data-disabled="true"] .svadmin-ui-input__visual {
888
+ opacity: 0.5;
889
+ }
890
+
891
+ .svadmin-ui-input__button {
892
+ border: 1px solid var(--border);
893
+ padding: 0 0.625rem;
894
+ background: var(--muted);
895
+ font: inherit;
896
+ flex: 0 0 auto;
897
+ border-radius: 0.375rem;
898
+ display: inline-flex;
899
+ align-items: center;
900
+ color: var(--foreground);
901
+ font-size: 0.75rem;
902
+ white-space: nowrap;
903
+ height: 1.75rem;
904
+ }
905
+ }
906
+
907
+ @supports (color: color-mix(in lab, red, red)) {
908
+ @layer components {
909
+ .svadmin-ui-input__button {
910
+ border: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
911
+ }
912
+ }
913
+ }
914
+
915
+ @layer components {
916
+
917
+ .svadmin-ui-input__name {
918
+ overflow: hidden;
919
+ text-overflow: ellipsis;
920
+ white-space: nowrap;
921
+ }
922
+ }
923
+
924
+ .svadmin-product-list__filters {
925
+ gap: calc(var(--spacing, 0.25rem) * 1);
926
+ border-bottom: 1px solid;
927
+ border-color: var(--svadmin-colors-border);
928
+ padding-bottom: calc(var(--spacing, 0.25rem) * 3);
929
+ }
930
+
931
+ .svadmin-product-list__filters,.svadmin-product-list__filter {
932
+ display: flex;
933
+ flex-wrap: wrap;
934
+ align-items: center;
935
+ min-width: 0;
936
+ }
937
+
938
+ .svadmin-product-list__filter {
939
+ border: 0;
940
+ background: transparent;
941
+ padding: calc(var(--spacing, 0.25rem) * 1.5) calc(var(--spacing, 0.25rem) * 3);
942
+ gap: calc(var(--spacing, 0.25rem) * 2);
943
+ border-radius: var(--radius-md);
944
+ color: var(--svadmin-colors-muted);
945
+ font-size: var(--svadmin-font-sizes-body);
946
+ font-weight: 500;
947
+ cursor: pointer;
948
+ }
949
+
950
+ .svadmin-product-list__filter[aria-pressed=true] {
951
+ background: var(--accent);
952
+ color: var(--accent-foreground);
953
+ }
954
+
955
+ .svadmin-product-list__filter:focus-visible {
956
+ outline: 2px solid var(--ring);
957
+ outline-offset: 2px;
958
+ }
959
+
960
+ .svadmin-product-list__filter:hover {
961
+ background: var(--muted);
962
+ }
963
+
964
+ .svadmin-product-list__filterCount {
965
+ font-size: var(--svadmin-font-sizes-compact);
966
+ font-variant-numeric: tabular-nums;
967
+ color: inherit;
968
+ }
969
+
970
+ .svadmin-product-list__table {
971
+ border-block: 1px solid;
972
+ border-color: var(--svadmin-colors-border);
973
+ min-width: 0;
974
+ max-width: 100%;
975
+ overflow-x: auto;
976
+ }
977
+
978
+ .svadmin-product-list__table [data-slot=table-head] {
979
+ padding: calc(var(--spacing, 0.25rem) * 3) calc(var(--spacing, 0.25rem) * 4);
980
+ border-bottom: 1px solid;
981
+ border-color: var(--svadmin-colors-border);
982
+ color: var(--svadmin-colors-muted);
983
+ font-size: 0.8125rem;
984
+ font-weight: 500;
985
+ text-align: start;
986
+ white-space: nowrap;
987
+ }
988
+
989
+ .svadmin-product-list__table [data-slot=table-cell] {
990
+ padding: calc(var(--spacing, 0.25rem) * 3) calc(var(--spacing, 0.25rem) * 4);
991
+ vertical-align: middle;
992
+ }
993
+
994
+ .svadmin-product-list__table [data-slot=table-caption] {
995
+ padding: calc(var(--spacing, 0.25rem) * 3) calc(var(--spacing, 0.25rem) * 4);
996
+ text-align: start;
997
+ color: var(--svadmin-colors-muted);
998
+ font-size: var(--svadmin-font-sizes-compact);
999
+ }
1000
+
1001
+ .svadmin-product-list__table > [data-slot=table-container] {
1002
+ overflow: visible;
1003
+ }
1004
+
1005
+ .svadmin-product-list__table tbody [data-slot=table-row]:not(:last-child) {
1006
+ border-bottom: 1px solid;
1007
+ border-color: var(--svadmin-colors-border);
1008
+ }
1009
+
1010
+ .svadmin-product-list__table [data-table-density=comfortable] [data-slot=table-cell] {
1011
+ padding-block: calc(var(--spacing, 0.25rem) * 4);
1012
+ }
1013
+
1014
+ .svadmin-product-list__table [data-slot=table] {
1015
+ border-collapse: collapse;
1016
+ font-size: var(--svadmin-font-sizes-body);
1017
+ width: 100%;
1018
+ }
1019
+
1020
+ .svadmin-product-list__table [data-align=end] {
1021
+ text-align: end;
1022
+ }
1023
+
1024
+ .svadmin-product-list__table:focus-visible {
1025
+ outline: 2px solid var(--ring);
1026
+ outline-offset: 2px;
1027
+ }
1028
+
1029
+ .svadmin-product-list__table tbody [data-slot=table-row]:hover {
1030
+ background: var(--muted);
1031
+ }
1032
+
1033
+ .svadmin-product-list__identity {
1034
+ gap: calc(var(--spacing, 0.25rem) * 3);
1035
+ display: flex;
1036
+ align-items: center;
1037
+ min-width: 12rem;
1038
+ }
1039
+
1040
+ .svadmin-product-list__avatar {
1041
+ background: var(--muted);
1042
+ border: 1px solid;
1043
+ place-items: center;
1044
+ border-color: var(--svadmin-colors-border);
1045
+ border-radius: var(--radius-md);
1046
+ display: grid;
1047
+ flex-shrink: 0;
1048
+ color: var(--svadmin-colors-muted);
1049
+ font-size: var(--svadmin-font-sizes-compact);
1050
+ font-weight: 600;
1051
+ width: 2rem;
1052
+ height: 2rem;
1053
+ }
1054
+
1055
+ .svadmin-product-list__name {
1056
+ color: var(--svadmin-colors-foreground);
1057
+ font-size: var(--svadmin-font-sizes-body);
1058
+ line-height: 1.5;
1059
+ font-weight: 500;
1060
+ white-space: normal;
1061
+ overflow-wrap: anywhere;
1062
+ max-width: 28rem;
1063
+ }
1064
+
1065
+ .svadmin-product-list__secondary {
1066
+ color: var(--svadmin-colors-muted);
1067
+ font-size: var(--svadmin-font-sizes-compact);
1068
+ line-height: 1.5;
1069
+ display: block;
1070
+ overflow-wrap: anywhere;
1071
+ }
1072
+
1073
+ .svadmin-product-list__numeric {
1074
+ font-variant-numeric: tabular-nums;
1075
+ text-align: end;
1076
+ white-space: nowrap;
1077
+ }
1078
+
1079
+ .svadmin-product-list__footer {
1080
+ gap: calc(var(--spacing, 0.25rem) * 2);
1081
+ padding-block: calc(var(--spacing, 0.25rem) * 3);
1082
+ display: flex;
1083
+ flex-wrap: wrap;
1084
+ align-items: center;
1085
+ justify-content: space-between;
1086
+ min-width: 0;
1087
+ }
1088
+
1089
+ .svadmin-product-list__footer,.svadmin-product-list__help {
1090
+ color: var(--svadmin-colors-muted);
1091
+ font-size: 0.8125rem;
1092
+ }
1093
+
1094
+ .svadmin-product-list__help {
1095
+ margin: 0;
1096
+ line-height: 1.5;
1097
+ max-width: 65ch;
1098
+ }
1099
+
1100
+ @media (width >= 40rem) {
1101
+ .svadmin-content-header__row {
1102
+ flex-direction: row;
1103
+ align-items: flex-start;
1104
+ justify-content: space-between;
1105
+ }
1106
+ }
1107
+
1108
+ @media (min-width: 48rem) {
1109
+ .svadmin-product-settings-row__root {
1110
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
1111
+ column-gap: calc(var(--spacing, 0.25rem) * 6);
1112
+ }
1113
+ }
1114
+
1115
+ .svadmin-surface-metric__card--tone_neutral {
1116
+ border-inline-start-color: var(--svadmin-colors-border);
1117
+ }
1118
+
1119
+ .svadmin-surface-metric__state--tone_neutral {
1120
+ --svadmin-metric-state-accent: var(--svadmin-colors-border);
1121
+ }
1122
+
1123
+ .svadmin-surface-metric__card--density_comfortable {
1124
+ padding: var(--svadmin-spacing-lg);
1125
+ }
1126
+
1127
+ .svadmin-surface-metric__state--density_comfortable {
1128
+ --svadmin-metric-state-padding: 1.25rem;
1129
+ --svadmin-metric-state-height: 6rem;
1130
+ }
1131
+
1132
+ .svadmin-surface-metric__card--tone_success {
1133
+ border-inline-start-color: var(--svadmin-colors-success);
1134
+ }
1135
+
1136
+ .svadmin-surface-metric__state--tone_success {
1137
+ --svadmin-metric-state-accent: var(--svadmin-colors-success);
1138
+ }
1139
+
1140
+ .svadmin-surface-metric__card--tone_warning {
1141
+ border-inline-start-color: var(--svadmin-colors-warning);
1142
+ }
1143
+
1144
+ .svadmin-surface-metric__state--tone_warning {
1145
+ --svadmin-metric-state-accent: var(--svadmin-colors-warning);
1146
+ }
1147
+
1148
+ .svadmin-surface-metric__card--tone_danger {
1149
+ border-inline-start-color: var(--svadmin-colors-danger);
1150
+ }
1151
+
1152
+ .svadmin-surface-metric__state--tone_danger {
1153
+ --svadmin-metric-state-accent: var(--svadmin-colors-danger);
1154
+ }
1155
+
1156
+ .svadmin-surface-metric__card--tone_info {
1157
+ border-inline-start-color: var(--svadmin-colors-info);
1158
+ }
1159
+
1160
+ .svadmin-surface-metric__state--tone_info {
1161
+ --svadmin-metric-state-accent: var(--svadmin-colors-info);
1162
+ }
1163
+
1164
+ .svadmin-surface-metric__card--density_compact {
1165
+ padding: var(--svadmin-spacing-sm);
1166
+ }
1167
+
1168
+ .svadmin-surface-metric__state--density_compact {
1169
+ --svadmin-metric-state-padding: 0.75rem;
1170
+ --svadmin-metric-state-height: 4.5rem;
1171
+ }
1172
+
1173
+ .svadmin-surface-table__header--density_comfortable,.svadmin-surface-table__content--density_comfortable {
1174
+ padding-inline: var(--svadmin-spacing-md);
1175
+ }
1176
+
1177
+ .svadmin-surface-table__head--density_comfortable[data-slot="table-head"],.svadmin-surface-table__cell--density_comfortable[data-slot="table-cell"] {
1178
+ padding-block: 0.5rem;
1179
+ font-size: var(--svadmin-font-sizes-body);
1180
+ }
1181
+
1182
+ .svadmin-surface-table__state--density_comfortable {
1183
+ --svadmin-table-state-height: 8rem;
1184
+ }
1185
+
1186
+ .svadmin-surface-table__header--density_compact,.svadmin-surface-table__content--density_compact {
1187
+ padding-inline: var(--svadmin-spacing-sm);
1188
+ }
1189
+
1190
+ .svadmin-surface-table__head--density_compact[data-slot="table-head"],.svadmin-surface-table__cell--density_compact[data-slot="table-cell"] {
1191
+ padding-block: var(--svadmin-spacing-xs);
1192
+ font-size: var(--svadmin-font-sizes-compact);
1193
+ }
1194
+
1195
+ .svadmin-surface-table__state--density_compact {
1196
+ --svadmin-table-state-height: 6rem;
1197
+ }
1198
+
1199
+ .svadmin-content-page__root--width_default {
1200
+ max-width: var(--svadmin-sizes-content-default);
1201
+ }
1202
+
1203
+ .svadmin-content-page__root--width_narrow {
1204
+ max-width: var(--svadmin-sizes-content-narrow);
1205
+ }
1206
+
1207
+ .svadmin-content-page__root--width_wide {
1208
+ max-width: var(--svadmin-sizes-content-wide);
1209
+ }
1210
+
1211
+ .svadmin-metric-block__trend--trendTone_neutral {
1212
+ color: var(--svadmin-colors-content-muted);
1213
+ }
1214
+
1215
+ .svadmin-metric-block__trend--trendTone_positive {
1216
+ color: var(--svadmin-colors-content-positive);
1217
+ }
1218
+
1219
+ .svadmin-metric-block__trend--trendTone_negative {
1220
+ color: var(--svadmin-colors-content-negative);
1221
+ }
1222
+
1223
+ .svadmin-metric-block__trend--trendTone_warning {
1224
+ color: var(--svadmin-colors-content-warning);
1225
+ }
1226
+
1227
+ .svadmin-product-settings-row__root--separated_true {
1228
+ border-top: 1px solid;
1229
+ border-color: var(--svadmin-colors-border);
1230
+ }
1231
+
1232
+ .svadmin-product-status__root--status_neutral {
1233
+ --svadmin-status-color: var(--muted-foreground);
1234
+ }
1235
+
1236
+ .svadmin-product-status__root--status_success {
1237
+ --svadmin-status-color: var(--success);
1238
+ }
1239
+
1240
+ .svadmin-product-status__root--status_warning {
1241
+ --svadmin-status-color: var(--warning);
1242
+ }
1243
+
1244
+ .svadmin-product-status__root--status_danger {
1245
+ --svadmin-status-color: var(--destructive);
1246
+ }
1247
+
1248
+ .svadmin-product-status__root--status_info {
1249
+ --svadmin-status-color: var(--info);
1250
+ }
1251
+
1252
+ @media (min-width: 64rem) {
1253
+ .svadmin-product-workspace__columns--hasSecondary_true {
1254
+ grid-template-columns: minmax(0, 1fr) minmax(0, var(--workspace-secondary-width, 22rem));
1255
+ }
1256
+ .svadmin-product-workspace__primary--hasSecondary_true {
1257
+ order: 1;
1258
+ }
1259
+ .svadmin-product-workspace__secondary--hasSecondary_true {
1260
+ order: 2;
1261
+ }
1262
+ }