@stainless-api/ui-primitives 0.1.0-beta.5 → 0.1.0-beta.50

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