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