@stainless-api/ui-primitives 0.1.0-beta.9 → 1.0.0-beta.55

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 (51) hide show
  1. package/dist/DropdownMenu-DJ2-gPoP.d.ts +54 -0
  2. package/dist/components/Accordion.d.ts +26 -0
  3. package/dist/components/Accordion.js +29 -0
  4. package/dist/components/Badge.d.ts +40 -0
  5. package/dist/components/Badge.js +63 -0
  6. package/dist/components/Button.d.ts +45 -0
  7. package/dist/components/Button.js +50 -0
  8. package/dist/components/Callout.d.ts +18 -0
  9. package/dist/components/Callout.js +26 -0
  10. package/dist/components/Steps.d.ts +17 -0
  11. package/dist/components/Steps.js +22 -0
  12. package/dist/components/dropdown/Dropdown.d.ts +63 -0
  13. package/dist/components/dropdown/Dropdown.js +52 -0
  14. package/dist/components/dropdown/DropdownButton.d.ts +61 -0
  15. package/dist/components/dropdown/DropdownButton.js +54 -0
  16. package/dist/components/dropdown/DropdownMenu.d.ts +2 -0
  17. package/dist/components/dropdown/DropdownMenu.js +76 -0
  18. package/dist/components/icons/Function.d.ts +9 -0
  19. package/dist/components/icons/Function.js +6 -0
  20. package/dist/components/icons/index.d.ts +2 -0
  21. package/dist/components/icons/index.js +2 -0
  22. package/dist/index.d.ts +8 -0
  23. package/dist/index.js +8 -0
  24. package/dist/scripts/index.d.ts +23 -0
  25. package/dist/scripts/index.js +162 -0
  26. package/dist/styles/starlight-compat.css +131 -0
  27. package/dist/styles/theme.css +183 -0
  28. package/dist/styles.css +1184 -0
  29. package/package.json +47 -24
  30. package/.env +0 -1
  31. package/CHANGELOG.md +0 -61
  32. package/eslint.config.js +0 -2
  33. package/src/components/Accordion.tsx +0 -41
  34. package/src/components/Button.tsx +0 -95
  35. package/src/components/Callout.tsx +0 -31
  36. package/src/components/DropdownButton.tsx +0 -109
  37. package/src/components/accordion.css +0 -145
  38. package/src/components/button.css +0 -187
  39. package/src/components/callout.css +0 -70
  40. package/src/components/dropdown-button.css +0 -164
  41. package/src/index.ts +0 -4
  42. package/src/scripts/dropdown-button.ts +0 -55
  43. package/src/scripts/index.ts +0 -1
  44. package/src/styles/layout.css +0 -11
  45. package/src/styles/scales.css +0 -129
  46. package/src/styles/starlight-compat.css +0 -160
  47. package/src/styles/swatches.css +0 -87
  48. package/src/styles/theme.css +0 -49
  49. package/src/styles/typography.css +0 -183
  50. package/src/styles.css +0 -11
  51. package/tsconfig.json +0 -11
@@ -0,0 +1,1184 @@
1
+ @layer stl-ui.tokens {
2
+ :root {
3
+ --stl-typography-font: "Geist", system-ui, sans-serif;
4
+ --stl-typography-font-mono: "Geist Mono", ui-monospace, monospace;
5
+ --stl-typography-font-heading: var(--stl-typography-font);
6
+ --stl-typography-line-height: 1.5;
7
+ --stl-typography-line-height-heading: 1.2;
8
+ --stl-typography-text-body: var(--stl-typography-scale-base);
9
+ --stl-typography-text-body-sm: var(--stl-typography-scale-sm);
10
+ --stl-typography-text-body-xs: var(--stl-typography-scale-xs);
11
+ --stl-typography-text-code: max(.875em, var(--stl-typography-scale-xs));
12
+ --stl-typography-text-h1: var(--stl-typography-scale-5xl);
13
+ --stl-typography-text-h2: var(--stl-typography-scale-4xl);
14
+ --stl-typography-text-h3: var(--stl-typography-scale-3xl);
15
+ --stl-typography-text-h4: var(--stl-typography-scale-2xl);
16
+ --stl-typography-text-h5: var(--stl-typography-scale-xl);
17
+ --stl-typography-scale-xs: 12px;
18
+ --stl-typography-scale-sm: 14px;
19
+ --stl-typography-scale-base: 16px;
20
+ --stl-typography-scale-lg: 18px;
21
+ --stl-typography-scale-xl: 20px;
22
+ --stl-typography-scale-2xl: 24px;
23
+ --stl-typography-scale-3xl: 29px;
24
+ --stl-typography-scale-4xl: 35px;
25
+ --stl-typography-scale-5xl: 42px;
26
+ --stl-typography-scale-6xl: 64px;
27
+ --stl-color-text-selection-foreground: /* unset by default; text colors are unchanged */;
28
+ --stl-color-text-selection-background: light-dark(rgb(from var(--stl-color-text-selection) r g b / calc(alpha * .15)), rgb(from var(--stl-color-text-selection) r g b / calc(alpha * .35)));
29
+ --stl-ui-layout-border-radius-xs: 4px;
30
+ --stl-ui-layout-border-radius-sml: 8px;
31
+ --stl-ui-layout-border-radius: 12px;
32
+ --stl-ui-layout-border-radius-med: 16px;
33
+ --stl-ui-layout-border-radius-max: 100vmax;
34
+ --stl-ui-left-content-indent: 24px;
35
+ --stl-ui-page-padding-inline: 20px;
36
+ --stl-opacity-level-080: .8;
37
+ --stl-opacity-level-040: .4;
38
+ --stl-opacity-level-016: .16;
39
+ --stl-opacity-level-008: .08;
40
+ --stl-opacity-level-004: .04;
41
+ --stl-color-background: light-dark(#fff, #0a0a0a);
42
+ --stl-color-background-hover: light-dark(rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004))), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))));
43
+ --stl-color-muted-background: light-dark(rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
44
+ --stl-color-muted-background-hover: rgb(from var(--stl-color-muted-background) r g b/calc(alpha * 2));
45
+ --stl-color-faint-background: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)));
46
+ --stl-color-faint-background-hover: rgb(from var(--stl-color-faint-background) r g b/calc(alpha * 2));
47
+ --stl-color-ui-background: light-dark(var(--stl-color-background), rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004))));
48
+ --stl-color-ui-background-hover: light-dark(var(--stl-color-background-hover), rgb(from var(--stl-color-ui-background) r g b/calc(alpha * 2)));
49
+ --stl-color-foreground: light-dark(#262626, #f5f5f5);
50
+ --stl-color-foreground-reduced: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
51
+ --stl-color-foreground-muted: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
52
+ --stl-color-inverse-background: var(--stl-color-foreground);
53
+ --stl-color-inverse-background-hover: rgb(from var(--stl-color-inverse-background) r g b/calc(alpha * .9));
54
+ --stl-color-inverse-foreground: var(--stl-color-background);
55
+ --stl-color-border: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016)));
56
+ --stl-color-border-faint: rgb(from var(--stl-color-border) r g b/calc(alpha * .5));
57
+ --stl-color-border-strong: rgb(from var(--stl-color-border) r g b/calc(alpha * 2.5));
58
+ --stl-color-accent: light-dark(#155dfc, #2b7fff);
59
+ --stl-color-accent-foreground: var(--stl-color-accent);
60
+ --stl-color-accent-foreground-reduced: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
61
+ --stl-color-accent-foreground-muted: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
62
+ --stl-color-accent-muted-background: light-dark(rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
63
+ --stl-color-accent-muted-background-hover: rgb(from var(--stl-color-accent-muted-background) r g b/calc(alpha * 2));
64
+ --stl-color-accent-border: light-dark(rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-accent) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
65
+ --stl-color-accent-border-faint: rgb(from var(--stl-color-accent-border) r g b/calc(alpha * .5));
66
+ --stl-color-accent-border-strong: var(--stl-color-accent);
67
+ --stl-color-accent-inverse-background: var(--stl-color-accent);
68
+ --stl-color-accent-inverse-background-hover: rgb(from var(--stl-color-accent-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
69
+ --stl-color-accent-inverse-foreground: #fff;
70
+ --stl-color-red: light-dark(#d01e22, #e34041);
71
+ --stl-color-red-foreground: var(--stl-color-red);
72
+ --stl-color-red-foreground-reduced: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
73
+ --stl-color-red-foreground-muted: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
74
+ --stl-color-red-muted-background: light-dark(rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
75
+ --stl-color-red-muted-background-hover: rgb(from var(--stl-color-red-muted-background) r g b/calc(alpha * 2));
76
+ --stl-color-red-border: light-dark(rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-red) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
77
+ --stl-color-red-border-faint: rgb(from var(--stl-color-red-border) r g b/calc(alpha * .5));
78
+ --stl-color-red-border-strong: var(--stl-color-red);
79
+ --stl-color-red-inverse-background: var(--stl-color-red);
80
+ --stl-color-red-inverse-background-hover: rgb(from var(--stl-color-red-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
81
+ --stl-color-red-inverse-foreground: #fff;
82
+ --stl-color-green: light-dark(#16a34a, #22c55e);
83
+ --stl-color-green-foreground: var(--stl-color-green);
84
+ --stl-color-green-foreground-reduced: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
85
+ --stl-color-green-foreground-muted: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
86
+ --stl-color-green-muted-background: light-dark(rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
87
+ --stl-color-green-muted-background-hover: rgb(from var(--stl-color-green-muted-background) r g b/calc(alpha * 2));
88
+ --stl-color-green-border: light-dark(rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-green) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
89
+ --stl-color-green-border-faint: rgb(from var(--stl-color-green-border) r g b/calc(alpha * .5));
90
+ --stl-color-green-border-strong: var(--stl-color-green);
91
+ --stl-color-green-inverse-background: var(--stl-color-green);
92
+ --stl-color-green-inverse-background-hover: rgb(from var(--stl-color-green-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
93
+ --stl-color-green-inverse-foreground: #fff;
94
+ --stl-color-blue: light-dark(#155dfc, #2b7fff);
95
+ --stl-color-blue-foreground: var(--stl-color-blue);
96
+ --stl-color-blue-foreground-reduced: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
97
+ --stl-color-blue-foreground-muted: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
98
+ --stl-color-blue-muted-background: light-dark(rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
99
+ --stl-color-blue-muted-background-hover: rgb(from var(--stl-color-blue-muted-background) r g b/calc(alpha * 2));
100
+ --stl-color-blue-border: light-dark(rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-blue) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
101
+ --stl-color-blue-border-faint: rgb(from var(--stl-color-blue-border) r g b/calc(alpha * .5));
102
+ --stl-color-blue-border-strong: var(--stl-color-blue);
103
+ --stl-color-blue-inverse-background: var(--stl-color-blue);
104
+ --stl-color-blue-inverse-background-hover: rgb(from var(--stl-color-blue-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
105
+ --stl-color-blue-inverse-foreground: #fff;
106
+ --stl-color-yellow: light-dark(#ca8a04, #eab308);
107
+ --stl-color-yellow-foreground: var(--stl-color-yellow);
108
+ --stl-color-yellow-foreground-reduced: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
109
+ --stl-color-yellow-foreground-muted: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
110
+ --stl-color-yellow-muted-background: light-dark(rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
111
+ --stl-color-yellow-muted-background-hover: rgb(from var(--stl-color-yellow-muted-background) r g b/calc(alpha * 2));
112
+ --stl-color-yellow-border: light-dark(rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-yellow) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
113
+ --stl-color-yellow-border-faint: rgb(from var(--stl-color-yellow-border) r g b/calc(alpha * .5));
114
+ --stl-color-yellow-border-strong: var(--stl-color-yellow);
115
+ --stl-color-yellow-inverse-background: var(--stl-color-yellow);
116
+ --stl-color-yellow-inverse-background-hover: rgb(from var(--stl-color-yellow-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
117
+ --stl-color-yellow-inverse-foreground: #fff;
118
+ --stl-color-orange: light-dark(#ea580c, #f97316);
119
+ --stl-color-orange-foreground: var(--stl-color-orange);
120
+ --stl-color-orange-foreground-reduced: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
121
+ --stl-color-orange-foreground-muted: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
122
+ --stl-color-orange-muted-background: light-dark(rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
123
+ --stl-color-orange-muted-background-hover: rgb(from var(--stl-color-orange-muted-background) r g b/calc(alpha * 2));
124
+ --stl-color-orange-border: light-dark(rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-orange) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
125
+ --stl-color-orange-border-faint: rgb(from var(--stl-color-orange-border) r g b/calc(alpha * .5));
126
+ --stl-color-orange-border-strong: var(--stl-color-orange);
127
+ --stl-color-orange-inverse-background: var(--stl-color-orange);
128
+ --stl-color-orange-inverse-background-hover: rgb(from var(--stl-color-orange-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
129
+ --stl-color-orange-inverse-foreground: #fff;
130
+ --stl-color-purple: light-dark(#9333ea, #a855f7);
131
+ --stl-color-purple-foreground: var(--stl-color-purple);
132
+ --stl-color-purple-foreground-reduced: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
133
+ --stl-color-purple-foreground-muted: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
134
+ --stl-color-purple-muted-background: light-dark(rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
135
+ --stl-color-purple-muted-background-hover: rgb(from var(--stl-color-purple-muted-background) r g b/calc(alpha * 2));
136
+ --stl-color-purple-border: light-dark(rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-purple) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
137
+ --stl-color-purple-border-faint: rgb(from var(--stl-color-purple-border) r g b/calc(alpha * .5));
138
+ --stl-color-purple-border-strong: var(--stl-color-purple);
139
+ --stl-color-purple-inverse-background: var(--stl-color-purple);
140
+ --stl-color-purple-inverse-background-hover: rgb(from var(--stl-color-purple-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
141
+ --stl-color-purple-inverse-foreground: #fff;
142
+ --stl-color-cyan: light-dark(#0891b2, #06b6d4);
143
+ --stl-color-cyan-foreground: var(--stl-color-cyan);
144
+ --stl-color-cyan-foreground-reduced: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
145
+ --stl-color-cyan-foreground-muted: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
146
+ --stl-color-cyan-muted-background: light-dark(rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
147
+ --stl-color-cyan-muted-background-hover: rgb(from var(--stl-color-cyan-muted-background) r g b/calc(alpha * 2));
148
+ --stl-color-cyan-border: light-dark(rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-cyan) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
149
+ --stl-color-cyan-border-faint: rgb(from var(--stl-color-cyan-border) r g b/calc(alpha * .5));
150
+ --stl-color-cyan-border-strong: var(--stl-color-cyan);
151
+ --stl-color-cyan-inverse-background: var(--stl-color-cyan);
152
+ --stl-color-cyan-inverse-background-hover: rgb(from var(--stl-color-cyan-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
153
+ --stl-color-cyan-inverse-foreground: #fff;
154
+ --stl-color-pink: light-dark(#ec4899, #ec4899);
155
+ --stl-color-pink-foreground: var(--stl-color-pink);
156
+ --stl-color-pink-foreground-reduced: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
157
+ --stl-color-pink-foreground-muted: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
158
+ --stl-color-pink-muted-background: light-dark(rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-008))), rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-016))));
159
+ --stl-color-pink-muted-background-hover: rgb(from var(--stl-color-pink-muted-background) r g b/calc(alpha * 2));
160
+ --stl-color-pink-border: light-dark(rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-016))), rgb(from var(--stl-color-pink) r g b/calc(alpha * calc(var(--stl-opacity-level-016) * 1.5))));
161
+ --stl-color-pink-border-faint: rgb(from var(--stl-color-pink-border) r g b/calc(alpha * .5));
162
+ --stl-color-pink-border-strong: var(--stl-color-pink);
163
+ --stl-color-pink-inverse-background: var(--stl-color-pink);
164
+ --stl-color-pink-inverse-background-hover: rgb(from var(--stl-color-pink-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
165
+ --stl-color-pink-inverse-foreground: #fff;
166
+ }
167
+
168
+ :root[data-theme="dark"], .stl-theme-dark {
169
+ color-scheme: dark;
170
+ background: var(--stl-color-background);
171
+ color: var(--stl-color-foreground);
172
+ }
173
+
174
+ :root[data-theme="light"], .stl-theme-light {
175
+ color-scheme: light;
176
+ background: var(--stl-color-background);
177
+ color: var(--stl-color-foreground);
178
+ }
179
+
180
+ :root {
181
+ --stl-color-link-foreground: var(--stl-color-accent-foreground);
182
+ --stl-color-text-selection: var(--stl-color-accent-inverse-background);
183
+ }
184
+ }
185
+
186
+ body {
187
+ font-family: var(--stl-typography-font);
188
+ }
189
+
190
+ @scope (.stl-ui-prose) to (.stl-ui-not-prose) {
191
+ :scope {
192
+ letter-spacing: -.01em;
193
+ font-weight: 400;
194
+ line-height: var(--stl-typography-line-height);
195
+ font-size: var(--stl-typography-text-body);
196
+ color: var(--stl-color-foreground-reduced);
197
+
198
+ &.small {
199
+ font-size: var(--stl-typography-scale-sm);
200
+ letter-spacing: normal;
201
+ }
202
+ }
203
+
204
+ :where(strong) {
205
+ color: rgb(from currentColor r g b / 1);
206
+ }
207
+
208
+ :where(a) {
209
+ color: var(--stl-color-link-foreground);
210
+ text-decoration-color: rgb(from currentColor r g b / calc(alpha * var(--stl-opacity-level-040)));
211
+ transition: text-decoration-color .1s ease-out;
212
+
213
+ &:hover {
214
+ text-decoration-color: currentColor;
215
+ }
216
+ }
217
+
218
+ :where(h1, h2, h3, h4, h5, h6) {
219
+ color: var(--stl-color-foreground);
220
+ font-weight: 500;
221
+ line-height: var(--stl-typography-line-height-heading);
222
+ font-family: var(--stl-typography-font-heading);
223
+ text-wrap: pretty;
224
+ }
225
+
226
+ :where(h1, h2, h3) {
227
+ text-wrap: balance;
228
+ }
229
+
230
+ :where(h1) {
231
+ font-size: var(--stl-typography-text-h1);
232
+ letter-spacing: -.03em;
233
+ margin-top: 1.5em;
234
+ }
235
+
236
+ :where(h2) {
237
+ font-size: var(--stl-typography-text-h2);
238
+ letter-spacing: -.03em;
239
+ margin-top: 1.35em;
240
+ }
241
+
242
+ :where(h3) {
243
+ font-size: var(--stl-typography-text-h3);
244
+ letter-spacing: -.02em;
245
+ margin-top: 1.35em;
246
+ }
247
+
248
+ :where(h4) {
249
+ font-size: var(--stl-typography-text-h4);
250
+ letter-spacing: -.02em;
251
+ margin-top: 1.35em;
252
+ }
253
+
254
+ :where(h5) {
255
+ font-size: var(--stl-typography-text-h5);
256
+ letter-spacing: -.02em;
257
+ margin-top: 1.2em;
258
+ }
259
+
260
+ :scope.smaller-headings {
261
+ --stl-typography-text-h1: var(--stl-typography-scale-3xl);
262
+ --stl-typography-text-h2: var(--stl-typography-scale-2xl);
263
+ --stl-typography-text-h3: var(--stl-typography-scale-xl);
264
+ --stl-typography-text-h4: var(--stl-typography-scale-lg);
265
+ --stl-typography-text-h5: var(--stl-typography-scale-base);
266
+
267
+ & :where(h1) {
268
+ margin-top: 1.5em;
269
+ }
270
+
271
+ & :where(h2, h3, h4) {
272
+ margin-top: 1.25em;
273
+ }
274
+
275
+ & :where(h5) {
276
+ margin-top: 1em;
277
+ }
278
+ }
279
+
280
+ :where(ol, ul) {
281
+ padding-left: 26px;
282
+ }
283
+
284
+ :where(li + li) {
285
+ margin-block-start: 8px;
286
+ }
287
+
288
+ :where(code) {
289
+ font-family: var(--stl-typography-font-mono);
290
+ font-feature-settings: "ss01" on,
291
+ "ss03" on,
292
+ "ss04" on,
293
+ "ss06" on;
294
+ font-size: var(--stl-typography-text-code);
295
+ font-weight: inherit;
296
+ letter-spacing: normal;
297
+ white-space: pre;
298
+ }
299
+
300
+ &:where(code:not(pre > code)) {
301
+ color: var(--stl-color-foreground);
302
+ background-color: rgb(from var(--stl-color-foreground) r g b / .1);
303
+ border-radius: .2em;
304
+ padding: 0 .2em;
305
+ }
306
+
307
+ :where(pre:not(.expressive-code *)) {
308
+ border-radius: var(--stl-ui-layout-border-radius-sml);
309
+ border: 1px solid var(--stl-color-border);
310
+ background-color: var(--stl-color-faint-background);
311
+ margin-bottom: 1rem;
312
+ padding: 12px 20px;
313
+ overflow: auto;
314
+ }
315
+
316
+ :where(ol, ul, aside, img, figure, details) {
317
+ margin-top: 16px;
318
+ }
319
+ }
320
+
321
+ :where(:is(.stl-ui-prose, .stl-ui-prose > .sl-markdown-content) > :not(:first-child)) {
322
+ margin-top: 16px;
323
+ }
324
+
325
+ :where(.stl-ui-not-prose) {
326
+ letter-spacing: initial;
327
+ font-weight: initial;
328
+ line-height: initial;
329
+ font-size: initial;
330
+ color: initial;
331
+ }
332
+
333
+ @layer starlight.content {
334
+ .stl-ui-prose .sl-markdown-content {
335
+ & a, & a:hover {
336
+ color: revert-layer;
337
+ }
338
+ }
339
+
340
+ .stl-ui-prose .sl-markdown-content.sl-markdown-content.sl-markdown-content {
341
+ & details, & summary, & summary:before, & summary::marker {
342
+ all: revert-layer;
343
+ }
344
+ }
345
+ }
346
+
347
+ ::selection {
348
+ background-color: var(--stl-color-text-selection-background);
349
+ color: var(--stl-color-text-selection-foreground);
350
+ }
351
+
352
+ .stl-ui-button {
353
+ border-radius: var(--stl-ui-layout-border-radius-sml);
354
+ height: 32px;
355
+ font-weight: 500;
356
+ line-height: 150%;
357
+ font-size: var(--stl-typography-text-body-sm);
358
+ font-family: var(--stl-typography-font);
359
+ cursor: pointer;
360
+ white-space: nowrap;
361
+ color: var(--stl-color-inverse-foreground);
362
+ background-color: var(--stl-color-inverse-background);
363
+ border: 1px solid #0000;
364
+ flex-shrink: 0;
365
+ justify-content: center;
366
+ align-items: center;
367
+ gap: 2px;
368
+ padding: 8px 10px;
369
+ display: inline-flex;
370
+
371
+ &:hover {
372
+ background-color: var(--stl-color-inverse-background-hover);
373
+ }
374
+
375
+ &[hidden] {
376
+ display: none;
377
+ }
378
+ }
379
+
380
+ .stl-ui-button--accent {
381
+ color: var(--stl-color-accent-inverse-foreground);
382
+ background-color: var(--stl-color-accent-inverse-background);
383
+
384
+ &:hover {
385
+ background-color: var(--stl-color-accent-inverse-background-hover);
386
+ }
387
+ }
388
+
389
+ .stl-ui-button--accent-muted {
390
+ color: var(--stl-color-accent-foreground);
391
+ background-color: var(--stl-color-accent-muted-background);
392
+
393
+ &:hover {
394
+ background-color: var(--stl-color-accent-muted-background-hover);
395
+ }
396
+
397
+ &.stl-ui-button--with-border {
398
+ border-color: var(--stl-color-accent-border);
399
+ }
400
+ }
401
+
402
+ .stl-ui-button--muted {
403
+ color: var(--stl-color-foreground);
404
+ background-color: var(--stl-color-muted-background);
405
+
406
+ &:hover {
407
+ background-color: var(--stl-color-muted-background-hover);
408
+ }
409
+
410
+ &.stl-ui-button--with-border {
411
+ border-color: var(--stl-color-border);
412
+ }
413
+ }
414
+
415
+ .stl-ui-button--outline {
416
+ color: var(--stl-color-foreground);
417
+ background-color: var(--stl-color-ui-background);
418
+ border-color: var(--stl-color-border);
419
+
420
+ &:hover {
421
+ background: linear-gradient(var(--stl-color-ui-background-hover), var(--stl-color-ui-background-hover)),
422
+ linear-gradient(var(--stl-color-ui-background), var(--stl-color-ui-background));
423
+ }
424
+ }
425
+
426
+ .stl-ui-button--ghost {
427
+ color: var(--stl-color-foreground);
428
+ background-color: #0000;
429
+
430
+ &:hover {
431
+ background-color: var(--stl-color-background-hover);
432
+ }
433
+
434
+ &.stl-ui-button--with-border {
435
+ border-color: var(--stl-color-border);
436
+ }
437
+ }
438
+
439
+ .stl-ui-button--success {
440
+ color: var(--stl-color-green-inverse-foreground);
441
+ background-color: var(--stl-color-green-inverse-background);
442
+
443
+ &:hover {
444
+ background-color: var(--stl-color-green-inverse-background-hover);
445
+ }
446
+ }
447
+
448
+ .stl-ui-button--destructive {
449
+ color: var(--stl-color-red-inverse-foreground);
450
+ background-color: var(--stl-color-red-inverse-background);
451
+
452
+ &:hover {
453
+ background-color: var(--stl-color-red-inverse-background-hover);
454
+ }
455
+ }
456
+
457
+ .stl-ui-button--loading {
458
+ -webkit-text-fill-color: transparent;
459
+ position: relative;
460
+
461
+ & * {
462
+ color: #0000;
463
+ }
464
+
465
+ &:before {
466
+ content: "";
467
+ background: currentColor;
468
+ width: 16px;
469
+ height: 16px;
470
+ animation: 1s linear infinite stl-ui-button--loading-spin;
471
+ position: absolute;
472
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxvYWRlci1jaXJjbGUtaWNvbiBsdWNpZGUtbG9hZGVyLWNpcmNsZSI+PHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2Ii8+PC9zdmc+");
473
+ mask-position: center;
474
+ mask-size: contain;
475
+ mask-repeat: no-repeat;
476
+ }
477
+ }
478
+
479
+ @keyframes stl-ui-button--loading-spin {
480
+ to {
481
+ transform: rotate(360deg);
482
+ }
483
+ }
484
+
485
+ .stl-ui-button--size-sm {
486
+ border-radius: var(--stl-ui-layout-border-radius-xs);
487
+ height: 24px;
488
+ font-weight: 500;
489
+ line-height: 100%;
490
+ font-size: var(--stl-typography-text-body-xs);
491
+ padding: 0 6px;
492
+ }
493
+
494
+ .stl-ui-button--size-lg {
495
+ border-radius: var(--stl-ui-layout-border-radius);
496
+ height: 40px;
497
+ font-weight: 500;
498
+ line-height: 150%;
499
+ font-size: var(--stl-typography-text-body);
500
+ padding: 8px 14px;
501
+ }
502
+
503
+ .stl-ui-button__icon {
504
+ flex-shrink: 0;
505
+ justify-content: center;
506
+ align-items: center;
507
+ display: flex;
508
+
509
+ & svg {
510
+ margin-top: 0;
511
+ }
512
+ }
513
+
514
+ .stl-ui-button:has(.stl-ui-button__icon:first-child) .stl-ui-button__icon {
515
+ margin-left: -4px;
516
+ margin-right: 4px;
517
+ }
518
+
519
+ .stl-ui-button:has(.stl-ui-button__icon:last-child) .stl-ui-button__icon {
520
+ margin-left: 4px;
521
+ margin-right: -4px;
522
+
523
+ &:first-child {
524
+ margin-left: -4px;
525
+ margin-right: 4px;
526
+ }
527
+ }
528
+
529
+ .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(.stl-ui-button__icon:first-child) {
530
+ aspect-ratio: 1;
531
+
532
+ & .stl-ui-button__icon {
533
+ margin-left: -4px;
534
+ margin-right: -4px;
535
+ }
536
+ }
537
+
538
+ a.stl-ui-button {
539
+ text-align: center;
540
+ text-decoration: none;
541
+ }
542
+
543
+ .stl-ui-dropdown {
544
+ --stl-ui-dropdown-button-color: var(--stl-color-foreground);
545
+ --stl-ui-dropdown-button-background-color: var(--stl-color-ui-background);
546
+ --stl-ui-dropdown-button-border-color: var(--stl-color-border);
547
+ --stl-ui-dropdown-button-border-radius: var(--stl-ui-layout-border-radius-sml);
548
+ --stl-ui-dropdown-button-font-size: var(--stl-typography-scale-sm);
549
+ --stl-ui-dropdown-button-height: 2rem;
550
+ --stl-ui-dropdown-button-padding-inline: calc(.75rem - 1px);
551
+ --stl-ui-dropdown-button-line-height: 100%;
552
+ --stl-ui-dropdown-button-font-weight: 500;
553
+ color: var(--stl-ui-dropdown-button-color);
554
+ font-size: var(--stl-ui-dropdown-button-font-size);
555
+ align-items: center;
556
+ gap: 0;
557
+ display: inline-flex;
558
+ position: relative;
559
+
560
+ & hr {
561
+ --stl-ui-dropdown-button__divider-height: 1px;
562
+ --stl-ui-dropdown-button__divider-color: var(--stl-color-border);
563
+ height: var(--stl-ui-dropdown-button__divider-height);
564
+ background-color: var(--stl-ui-dropdown-button__divider-color);
565
+ border: none;
566
+ width: calc(100% + 8px);
567
+ margin: 4px 0;
568
+ transform: translateX(-4px);
569
+ }
570
+
571
+ & .stl-ui-dropdown__button {
572
+ background-color: var(--stl-ui-dropdown-button-background-color);
573
+ border: 1px solid var(--stl-ui-dropdown-button-border-color);
574
+ border-radius: var(--stl-ui-dropdown-button-border-radius);
575
+ height: var(--stl-ui-dropdown-button-height);
576
+ padding-inline: var(--stl-ui-dropdown-button-padding-inline);
577
+ line-height: var(--stl-ui-dropdown-button-line-height);
578
+ font-weight: var(--stl-ui-dropdown-button-font-weight);
579
+ cursor: pointer;
580
+ color: inherit;
581
+ justify-content: center;
582
+ align-items: center;
583
+ display: flex;
584
+
585
+ &:focus {
586
+ outline: 1px auto highlight;
587
+ }
588
+
589
+ &:hover {
590
+ background-color: var(--stl-color-ui-background-hover);
591
+ }
592
+
593
+ & .stl-ui-dropdown__trigger-icon {
594
+ justify-content: center;
595
+ align-items: center;
596
+ margin-left: 4px;
597
+ margin-right: -4px;
598
+ display: flex;
599
+ }
600
+ }
601
+
602
+ & .stl-ui-dropdown__icon {
603
+ justify-content: center;
604
+ align-items: center;
605
+ display: flex;
606
+
607
+ & svg {
608
+ width: 16px;
609
+ height: 16px;
610
+ }
611
+ }
612
+
613
+ & .stl-ui-dropdown-button--action {
614
+ border-right-width: 0;
615
+ border-top-right-radius: 0;
616
+ border-bottom-right-radius: 0;
617
+ align-items: center;
618
+ gap: 8px;
619
+ display: flex;
620
+
621
+ &:hover {
622
+ background-color: var(--stl-color-ui-background-hover);
623
+ z-index: 1;
624
+ border-right-width: 1px;
625
+
626
+ & + .stl-ui-dropdown-button__trigger {
627
+ border-left-width: 0;
628
+ }
629
+ }
630
+
631
+ &.disabled {
632
+ cursor: not-allowed;
633
+ background-color: var(--stl-color-ui-background);
634
+ }
635
+ }
636
+
637
+ & .stl-ui-dropdown-button__trigger {
638
+ border-radius: 0;
639
+ border-top-right-radius: var(--stl-ui-dropdown-button-border-radius);
640
+ border-bottom-right-radius: var(--stl-ui-dropdown-button-border-radius);
641
+
642
+ &:hover {
643
+ background-color: var(--stl-color-ui-background-hover);
644
+ }
645
+ }
646
+
647
+ & .stl-ui-dropdown__trigger-selected {
648
+ align-items: center;
649
+ gap: 8px;
650
+ display: flex;
651
+ }
652
+
653
+ & .stl-ui-dropdown-menu {
654
+ --stl-ui-dropdown-menu-background-color: var(--stl-color-ui-background);
655
+ --stl-ui-dropdown-menu-border-color: var(--stl-color-border);
656
+ --stl-ui-dropdown-menu-box-shadow: 0px 4px 4px -2px #00000014;
657
+ --stl-ui-dropdown-menu-border-radius: var(--stl-ui-layout-border-radius-sml);
658
+ background-color: var(--stl-color-background);
659
+ background-image: linear-gradient(to right,
660
+ var(--stl-ui-dropdown-menu-background-color),
661
+ var(--stl-ui-dropdown-menu-background-color));
662
+ border: 1px solid var(--stl-ui-dropdown-menu-border-color);
663
+ box-shadow: var(--stl-ui-dropdown-menu-box-shadow);
664
+ border-radius: var(--stl-ui-dropdown-menu-border-radius);
665
+ z-index: 1000;
666
+ width: max-content;
667
+ min-width: 100%;
668
+ padding: 4px;
669
+ display: none;
670
+ position: absolute;
671
+ right: 0;
672
+
673
+ &.stl-ui-dropdown-menu--above {
674
+ margin-bottom: 4px;
675
+ top: auto;
676
+ bottom: 100%;
677
+ }
678
+
679
+ &.stl-ui-dropdown-menu--below {
680
+ margin-top: 4px;
681
+ top: 100%;
682
+ bottom: auto;
683
+ }
684
+
685
+ &[data-state="open"] {
686
+ display: block;
687
+ }
688
+
689
+ & .stl-ui-dropdown-menu__item {
690
+ --stl-ui-dropdown-menu__item-border-radius: var(--stl-ui-dropdown-button-border-radius);
691
+ --stl-ui-dropdown-menu__item-height: var(--stl-ui-dropdown-button-height);
692
+ --stl-ui-dropdown-menu__item-line-height: var(--stl-ui-dropdown-button-line-height);
693
+ --stl-ui-dropdown-menu__item-hover-background-color: var(--stl-color-ui-background-hover);
694
+ border-radius: var(--stl-ui-dropdown-menu__item-border-radius);
695
+ height: var(--stl-ui-dropdown-menu__item-height);
696
+ line-height: var(--stl-ui-dropdown-menu__item-line-height);
697
+ cursor: pointer;
698
+ background: none;
699
+ border: none;
700
+ justify-content: space-between;
701
+ align-items: center;
702
+ gap: 16px;
703
+ width: 100%;
704
+ padding: 8px;
705
+ display: flex;
706
+
707
+ &:hover, &:focus-visible {
708
+ background-color: var(--stl-ui-dropdown-menu__item-hover-background-color);
709
+ }
710
+
711
+ &:hover, &:focus-visible, &:focus {
712
+ color: var(--stl-color-foreground);
713
+ }
714
+
715
+ &.stl-ui-dropdown-menu__item-link {
716
+ justify-content: space-between;
717
+ align-items: center;
718
+ gap: 16px;
719
+ width: 100%;
720
+ display: flex;
721
+
722
+ &:hover {
723
+ color: var(--stl-color-foreground);
724
+ }
725
+ }
726
+
727
+ & .stl-ui-dropdown-menu__item-icon {
728
+ display: flex;
729
+ }
730
+
731
+ & .stl-ui-dropdown-menu__item-content {
732
+ align-items: center;
733
+ gap: 8px;
734
+ display: flex;
735
+ }
736
+
737
+ & .stl-ui-dropdown-menu__item-text {
738
+ white-space: nowrap;
739
+ }
740
+
741
+ & .stl-ui-dropdown-menu__item-text--subtle {
742
+ color: var(--stl-color-foreground-muted);
743
+ }
744
+
745
+ & strong {
746
+ color: var(--stl-color-foreground);
747
+ font-weight: 500;
748
+ }
749
+
750
+ & .stl-ui-dropdown-menu__item-subtle-icon {
751
+ --stl-ui-dropdown-menu__item-subtle-icon-color: rgb(from var(--stl-color-foreground) r g b / .25);
752
+
753
+ & svg {
754
+ color: var(--stl-ui-dropdown-menu__item-subtle-icon-color);
755
+ }
756
+ }
757
+ }
758
+ }
759
+ }
760
+
761
+ .stl-ui-callout {
762
+ --stl-ui-callout-background-color: var(--stl-color-faint-background);
763
+ --stl-ui-callout-border-color: var(--stl-color-border);
764
+ --stl-ui-callout-accent-color: var(--stl-color-foreground);
765
+ border: 1px solid var(--stl-ui-callout-border-color);
766
+ background-color: var(--stl-ui-callout-background-color);
767
+ border-radius: var(--stl-ui-layout-border-radius);
768
+ line-height: var(--stl-typography-line-height);
769
+ font-weight: 400;
770
+ font-size: var(--stl-typography-text-body);
771
+ color: var(--stl-color-foreground);
772
+ align-items: flex-start;
773
+ gap: 8px;
774
+ padding: 12px;
775
+ display: flex;
776
+
777
+ & :where(a, strong) {
778
+ color: var(--stl-ui-callout-strong-color, var(--stl-ui-callout-accent-color));
779
+ }
780
+
781
+ & :where(a) {
782
+ text-decoration-color: rgba(from currentColor r g b / .4);
783
+ transition: text-decoration-color .1s;
784
+
785
+ &:hover {
786
+ text-decoration-color: rgba(from currentColor r g b / .8);
787
+ }
788
+ }
789
+
790
+ & ::selection {
791
+ background-color: light-dark(rgb(from var(--stl-ui-callout-background-color) r g b / .2), rgb(from var(--stl-ui-callout-background-color) r g b / .35));
792
+ color: var(--stl-color-foreground);
793
+ }
794
+ }
795
+
796
+ .stl-ui-callout--info {
797
+ --stl-ui-callout-background-color: var(--stl-color-faint-background);
798
+ --stl-ui-callout-border-color: var(--stl-color-border);
799
+ --stl-ui-callout-accent-color: var(--stl-color-foreground-reduced);
800
+ --stl-ui-callout-strong-color: var(--stl-color-foreground);
801
+ }
802
+
803
+ .stl-ui-callout--note {
804
+ --stl-ui-callout-background-color: var(--stl-color-blue-muted-background);
805
+ --stl-ui-callout-border-color: var(--stl-color-blue-border);
806
+ --stl-ui-callout-accent-color: var(--stl-color-blue-foreground);
807
+ }
808
+
809
+ .stl-ui-callout--tip {
810
+ --stl-ui-callout-background-color: var(--stl-color-purple-muted-background);
811
+ --stl-ui-callout-border-color: var(--stl-color-purple-border);
812
+ --stl-ui-callout-accent-color: var(--stl-color-purple-foreground);
813
+ }
814
+
815
+ .stl-ui-callout--success {
816
+ --stl-ui-callout-background-color: var(--stl-color-green-muted-background);
817
+ --stl-ui-callout-border-color: var(--stl-color-green-border);
818
+ --stl-ui-callout-accent-color: var(--stl-color-green-foreground);
819
+ }
820
+
821
+ .stl-ui-callout--warning {
822
+ --stl-ui-callout-background-color: var(--stl-color-yellow-muted-background);
823
+ --stl-ui-callout-border-color: var(--stl-color-yellow-border);
824
+ --stl-ui-callout-accent-color: var(--stl-color-yellow-foreground);
825
+ }
826
+
827
+ .stl-ui-callout--danger {
828
+ --stl-ui-callout-background-color: var(--stl-color-red-muted-background);
829
+ --stl-ui-callout-border-color: var(--stl-color-red-border);
830
+ --stl-ui-callout-accent-color: var(--stl-color-red-foreground);
831
+ }
832
+
833
+ .stl-ui-callout__icon {
834
+ color: var(--stl-ui-callout-accent-color);
835
+ flex-shrink: 0;
836
+ width: 1em;
837
+ height: 1em;
838
+ margin: calc(.5lh - .5em);
839
+ }
840
+
841
+ .stl-ui-callout__content {
842
+ flex: 1;
843
+ margin-top: 0;
844
+
845
+ & > :first-child {
846
+ margin-top: 0;
847
+ }
848
+ }
849
+
850
+ .stl-ui-accordion {
851
+ --stl-ui-accordion-padding: 12px;
852
+ --stl-ui-accordion-content-padding-bottom: 4px;
853
+ --stl-ui-accordion-marker-size: 1em;
854
+ --stl-ui-accordion-marker-margin: calc((1lh - var(--stl-ui-accordion-marker-size)) / 2);
855
+ --stl-ui-accordion-marker-color: var(--stl-color-border-strong);
856
+ --stl-ui-accordion-row-gap: 8px;
857
+ --stl-ui-accordion-summary-column-gap: 8px;
858
+ --stl-ui-accordion-border-radius: var(--stl-ui-layout-border-radius);
859
+ --stl-ui--internal--accordion-padding-start: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
860
+ var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap));
861
+ background-color: var(--stl-color-ui-background);
862
+ border: 1px solid var(--stl-color-border);
863
+ border-radius: var(--stl-ui-accordion-border-radius);
864
+ font-size: var(--stl-typography-text-body);
865
+ padding: var(--stl-ui-accordion-padding);
866
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
867
+
868
+ & > .stl-ui-accordion__summary {
869
+ padding: var(--stl-ui-accordion-padding);
870
+ margin: calc(-1 * var(--stl-ui-accordion-padding));
871
+ cursor: pointer;
872
+ border-radius: var(--stl-ui-accordion-border-radius);
873
+ margin-inline-start: calc(-1 * var(--stl-ui--internal--accordion-padding-start));
874
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
875
+ font-weight: 500;
876
+ list-style: none;
877
+ display: block;
878
+
879
+ &:before {
880
+ content: "";
881
+ width: var(--stl-ui-accordion-marker-size);
882
+ height: var(--stl-ui-accordion-marker-size);
883
+ margin: var(--stl-ui-accordion-marker-margin);
884
+ background-color: var(--stl-ui-accordion-marker-color);
885
+ --stl-ui-accordion--internal--marker-width: calc(var(--stl-ui-accordion-marker-size) + var(--stl-ui-accordion-marker-margin) * 2);
886
+ --stl-ui-accordion--internal--summary-marker-transform: translateX(calc(-1 * var(--stl-ui-accordion--internal--marker-width) - var(--stl-ui-accordion-summary-column-gap)));
887
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform);
888
+ --lucide-chevron-right: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tcmlnaHQtaWNvbiBsdWNpZGUtY2hldnJvbi1yaWdodCI+PHBhdGggZD0ibTkgMTggNi02LTYtNiIvPjwvc3ZnPg==");
889
+ mask-image: var(--lucide-chevron-right);
890
+ transition: transform .1s ease-out;
891
+ display: block;
892
+ position: absolute;
893
+ mask-size: contain;
894
+ mask-repeat: no-repeat;
895
+ }
896
+
897
+ & > :first-child {
898
+ margin-top: 0;
899
+ }
900
+ }
901
+
902
+ &[open] {
903
+ border-color: var(--stl-color-border-strong);
904
+ padding-bottom: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-content-padding-bottom));
905
+
906
+ & > .stl-ui-accordion__summary {
907
+ --stl-ui--internal--summary-padding-bottom: min(var(--stl-ui-accordion-padding),
908
+ var(--stl-ui-accordion-row-gap));
909
+ padding-bottom: var(--stl-ui--internal--summary-padding-bottom);
910
+ margin-bottom: calc(var(--stl-ui-accordion-row-gap) - var(--stl-ui--internal--summary-padding-bottom));
911
+ border-bottom-right-radius: 0;
912
+ border-bottom-left-radius: 0;
913
+
914
+ &:before {
915
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform) rotate(90deg);
916
+ }
917
+ }
918
+ }
919
+
920
+ &:has( > .stl-ui-accordion__summary:hover) {
921
+ background-color: var(--stl-color-ui-background-hover);
922
+ }
923
+
924
+ & > .stl-ui-accordion__summary + * {
925
+ margin-top: 0;
926
+ }
927
+ }
928
+
929
+ .stl-ui-accordion-group {
930
+ & > .stl-ui-accordion:has( + .stl-ui-accordion) {
931
+ border-bottom-right-radius: 0;
932
+ border-bottom-left-radius: 0;
933
+
934
+ & > .stl-ui-accordion__summary {
935
+ border-bottom-right-radius: 0;
936
+ border-bottom-left-radius: 0;
937
+ }
938
+ }
939
+
940
+ & > .stl-ui-accordion + .stl-ui-accordion {
941
+ border-top-width: 0;
942
+ border-top-left-radius: 0;
943
+ border-top-right-radius: 0;
944
+ margin-top: 0;
945
+
946
+ & > .stl-ui-accordion__summary {
947
+ border-top-left-radius: 0;
948
+ border-top-right-radius: 0;
949
+ }
950
+ }
951
+
952
+ & .stl-ui-accordion:not(:hover, [open]):has( + .stl-ui-accordion:hover) {
953
+ border-bottom-width: 0;
954
+ }
955
+
956
+ & .stl-ui-accordion:not(:hover, [open]) + .stl-ui-accordion:hover {
957
+ border-top-width: 1px;
958
+ }
959
+
960
+ & .stl-ui-accordion:not([open]):has( + .stl-ui-accordion[open]) {
961
+ border-bottom-width: 0;
962
+ }
963
+
964
+ & .stl-ui-accordion:not([open]) + .stl-ui-accordion[open] {
965
+ border-top-width: 1px;
966
+ }
967
+ }
968
+
969
+ .stl-ui-steps {
970
+ padding-left: 0;
971
+ }
972
+
973
+ .stl-ui-steps__step {
974
+ --step-icon-width: 24px;
975
+ --step-padding: 12px;
976
+ padding: var(--step-padding);
977
+ padding-left: calc(var(--step-icon-width) + var(--step-padding));
978
+ margin: 0;
979
+ list-style: none;
980
+ position: relative;
981
+
982
+ &:before {
983
+ content: counter(list-item);
984
+ left: 0;
985
+ top: var(--step-padding);
986
+ width: var(--step-icon-width);
987
+ height: var(--step-icon-width);
988
+ border: 1px solid var(--stl-color-border);
989
+ background: var(--stl-color-bg);
990
+ z-index: 1;
991
+ font-size: var(--stl-typography-text-body-xs);
992
+ border-radius: 100%;
993
+ justify-content: center;
994
+ align-items: center;
995
+ font-style: normal;
996
+ font-weight: 600;
997
+ line-height: 100%;
998
+ display: flex;
999
+ position: absolute;
1000
+ }
1001
+
1002
+ &:after {
1003
+ content: "";
1004
+ left: calc(var(--step-icon-width) / 2 - .5px);
1005
+ top: calc(var(--step-icon-width) + var(--step-padding));
1006
+ bottom: calc(-1 * (var(--step-padding)));
1007
+ background: var(--stl-color-border);
1008
+ width: 1px;
1009
+ position: absolute;
1010
+ }
1011
+
1012
+ &:last-child {
1013
+ padding-bottom: 0;
1014
+
1015
+ &:after {
1016
+ display: none;
1017
+ }
1018
+ }
1019
+ }
1020
+
1021
+ .stl-ui-steps__step-title {
1022
+ font-weight: 600;
1023
+ }
1024
+
1025
+ .stl-ui-steps__step-content {
1026
+ margin-top: 4px;
1027
+ margin-bottom: 0;
1028
+ }
1029
+
1030
+ .stl-ui-badge {
1031
+ letter-spacing: normal;
1032
+ border-style: solid;
1033
+ border-width: 1px;
1034
+ align-items: center;
1035
+ gap: .125em;
1036
+ font-weight: 500;
1037
+ display: inline-flex;
1038
+
1039
+ &.stl-ui-badge--size-sm {
1040
+ height: 20px;
1041
+ font-size: var(--stl-typography-scale-xs);
1042
+ border-radius: var(--stl-ui-layout-border-radius-xs);
1043
+ --stl-ui-badge-icon-size: 14px;
1044
+ padding: 0 2px;
1045
+ }
1046
+
1047
+ &, &.stl-ui-badge--size-md {
1048
+ height: 24px;
1049
+ font-size: var(--stl-typography-scale-sm);
1050
+ border-radius: var(--stl-ui-layout-border-radius-xs);
1051
+ --stl-ui-badge-icon-size: 14px;
1052
+ padding: 0 4px;
1053
+ }
1054
+
1055
+ &.stl-ui-badge--size-lg {
1056
+ height: 32px;
1057
+ font-size: var(--stl-typography-scale-md);
1058
+ border-radius: var(--stl-ui-layout-border-radius-sml);
1059
+ --stl-ui-badge-icon-size: 16px;
1060
+ padding: 0 6px;
1061
+ }
1062
+
1063
+ &.stl-ui-badge--intent-none {
1064
+ background-color: var(--stl-color-ui-background);
1065
+ color: var(--stl-color-foreground-muted);
1066
+ --stl-ui-badge-icon-opacity: var(--stl-opacity-level-040);
1067
+ border-color: var(--stl-color-border);
1068
+ }
1069
+
1070
+ &.stl-ui-badge--intent-info {
1071
+ background-color: var(--stl-color-muted-background);
1072
+ color: var(--stl-color-foreground);
1073
+ border-color: var(--stl-color-border);
1074
+
1075
+ &.stl-ui-badge--solid {
1076
+ background-color: var(--stl-color-inverse-background);
1077
+ color: var(--stl-color-inverse-foreground);
1078
+ --stl-ui-badge-icon-opacity: 1;
1079
+ }
1080
+ }
1081
+
1082
+ &.stl-ui-badge--intent-success, &.stl-ui-badge--http-get {
1083
+ background-color: var(--stl-color-green-muted-background);
1084
+ color: var(--stl-color-green-foreground);
1085
+ border-color: var(--stl-color-green-border);
1086
+
1087
+ &.stl-ui-badge--solid {
1088
+ background-color: var(--stl-color-green-inverse-background);
1089
+ color: var(--stl-color-green-inverse-foreground);
1090
+ }
1091
+ }
1092
+
1093
+ &.stl-ui-badge--intent-warning {
1094
+ background-color: var(--stl-color-yellow-muted-background);
1095
+ color: var(--stl-color-yellow-foreground);
1096
+ border-color: var(--stl-color-yellow-border);
1097
+
1098
+ &.stl-ui-badge--solid {
1099
+ background-color: var(--stl-color-yellow-inverse-background);
1100
+ color: var(--stl-color-yellow-inverse-foreground);
1101
+ }
1102
+ }
1103
+
1104
+ &.stl-ui-badge--intent-danger, &.stl-ui-badge--http-delete {
1105
+ background-color: var(--stl-color-red-muted-background);
1106
+ color: var(--stl-color-red-foreground);
1107
+ border-color: var(--stl-color-red-border);
1108
+
1109
+ &.stl-ui-badge--solid {
1110
+ background-color: var(--stl-color-red-inverse-background);
1111
+ color: var(--stl-color-red-inverse-foreground);
1112
+ }
1113
+ }
1114
+
1115
+ &.stl-ui-badge--intent-note, &.stl-ui-badge--http-post {
1116
+ background-color: var(--stl-color-blue-muted-background);
1117
+ color: var(--stl-color-blue-foreground);
1118
+ border-color: var(--stl-color-blue-border);
1119
+
1120
+ &.stl-ui-badge--solid {
1121
+ background-color: var(--stl-color-blue-inverse-background);
1122
+ color: var(--stl-color-blue-inverse-foreground);
1123
+ }
1124
+ }
1125
+
1126
+ &.stl-ui-badge--intent-tip {
1127
+ background-color: var(--stl-color-purple-muted-background);
1128
+ color: var(--stl-color-purple-foreground);
1129
+ border-color: var(--stl-color-purple-border);
1130
+
1131
+ &.stl-ui-badge--solid {
1132
+ background-color: var(--stl-color-purple-inverse-background);
1133
+ color: var(--stl-color-purple-inverse-foreground);
1134
+ }
1135
+ }
1136
+
1137
+ &.stl-ui-badge--intent-accent {
1138
+ background-color: var(--stl-color-accent-muted-background);
1139
+ color: var(--stl-color-accent-foreground);
1140
+ border-color: var(--stl-color-accent-border);
1141
+
1142
+ &.stl-ui-badge--solid {
1143
+ background-color: var(--stl-color-accent-inverse-background);
1144
+ color: var(--stl-color-accent-inverse-foreground);
1145
+ }
1146
+ }
1147
+
1148
+ &.stl-ui-badge--http-put, &.stl-ui-badge--http-patch {
1149
+ background-color: var(--stl-color-orange-muted-background);
1150
+ color: var(--stl-color-orange-foreground);
1151
+ border-color: var(--stl-color-orange-border);
1152
+
1153
+ &.stl-ui-badge--solid {
1154
+ background-color: var(--stl-color-orange-inverse-background);
1155
+ color: var(--stl-color-orange-inverse-foreground);
1156
+ }
1157
+ }
1158
+
1159
+ & .stl-ui-badge__content {
1160
+ padding: .25em;
1161
+ display: inline-block;
1162
+ }
1163
+
1164
+ & svg {
1165
+ color: rgb(from currentColor r g b / 1);
1166
+ opacity: var(--stl-ui-badge-icon-opacity, 1);
1167
+ width: var(--stl-ui-badge-icon-size);
1168
+ height: var(--stl-ui-badge-icon-size);
1169
+ flex-shrink: 0;
1170
+ display: inline-block;
1171
+ }
1172
+
1173
+ &:has( > svg:only-child) {
1174
+ aspect-ratio: 1;
1175
+ justify-content: center;
1176
+ padding: 0;
1177
+ }
1178
+
1179
+ &.stl-ui-badge--http {
1180
+ font-family: var(--stl-typography-font-mono);
1181
+ font-variant-numeric: tabular-nums;
1182
+ text-transform: uppercase;
1183
+ }
1184
+ }