@stainless-api/docs-ui 0.1.0-beta.7 → 0.1.0-beta.70

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 (215) hide show
  1. package/dist/breadcrumbs-BhYwbXkc.d.ts +25 -0
  2. package/dist/breadcrumbs-Cvm5Ifm7.d.ts +25 -0
  3. package/dist/breadcrumbs-DA4WgDhR.js +63 -0
  4. package/dist/chunk-BN_g-Awi.js +18 -0
  5. package/dist/cli-F3kMmeoJ.js +166 -0
  6. package/dist/component-P9sn5yyG.js +23 -0
  7. package/dist/component-generics-ByGsYTc8.d.ts +30 -0
  8. package/dist/component-generics-POFirVVb.js +45 -0
  9. package/dist/component-generics-zU0Pqx8m.d.ts +30 -0
  10. package/dist/components/MaskedInput.d.ts +14 -0
  11. package/dist/components/MaskedInput.js +76 -0
  12. package/dist/components/breadcrumbs.d.ts +2 -0
  13. package/dist/components/breadcrumbs.js +9 -0
  14. package/dist/components/icons.d.ts +60 -0
  15. package/dist/components/icons.js +3 -0
  16. package/dist/components/index.d.ts +11 -0
  17. package/dist/components/index.js +19 -0
  18. package/dist/components/method.d.ts +2 -0
  19. package/dist/components/method.js +10 -0
  20. package/dist/components/overview.d.ts +2 -0
  21. package/dist/components/overview.js +11 -0
  22. package/dist/components/primitives.d.ts +2 -0
  23. package/dist/components/primitives.js +8 -0
  24. package/dist/components/properties.d.ts +2 -0
  25. package/dist/components/properties.js +9 -0
  26. package/dist/components/sdk-sidebar.d.ts +2 -0
  27. package/dist/components/sdk-sidebar.js +10 -0
  28. package/dist/components/sdk.d.ts +2 -0
  29. package/dist/components/sdk.js +10 -0
  30. package/dist/components/snippets.d.ts +3 -0
  31. package/dist/components/snippets.js +9 -0
  32. package/dist/components/stl-sidebar.d.ts +2 -0
  33. package/dist/components/stl-sidebar.js +5 -0
  34. package/dist/components-w1JmIrB0.js +71 -0
  35. package/dist/contexts/component-generics.d.ts +2 -0
  36. package/dist/contexts/component-generics.js +3 -0
  37. package/dist/contexts/component-types.d.ts +17 -0
  38. package/dist/contexts/component-types.js +0 -0
  39. package/dist/contexts/component.d.ts +30 -0
  40. package/dist/contexts/component.js +30 -0
  41. package/dist/contexts/docs.d.ts +2 -0
  42. package/dist/contexts/docs.js +3 -0
  43. package/dist/contexts/index.d.ts +23 -0
  44. package/dist/contexts/index.js +7 -0
  45. package/dist/contexts/markdown.d.ts +2 -0
  46. package/dist/contexts/markdown.js +4 -0
  47. package/dist/contexts/navigation.d.ts +2 -0
  48. package/dist/contexts/navigation.js +3 -0
  49. package/dist/contexts/use-components.d.ts +15 -0
  50. package/dist/contexts/use-components.js +4 -0
  51. package/dist/contexts-CVj20VV4.js +41 -0
  52. package/dist/csharp-D6_jlynY.js +283 -0
  53. package/dist/docs-BmOB2f-I.js +61 -0
  54. package/dist/docs-g4IPmtZr.d.ts +48 -0
  55. package/dist/docs-z3fl2eW-.d.ts +48 -0
  56. package/dist/go-COaHV3Hc.js +303 -0
  57. package/dist/http-fOPCX17A.js +389 -0
  58. package/dist/icons-BYKn5X8E.js +885 -0
  59. package/dist/index-B8Zys1C2.d.ts +347 -0
  60. package/dist/index-C5Zmb2CI.d.ts +16 -0
  61. package/dist/index-CwjGm9zX.d.ts +1722 -0
  62. package/dist/index-D7PkxNgB.d.ts +16 -0
  63. package/dist/index-DIaM6Ync.d.ts +347 -0
  64. package/dist/index.d.ts +20 -0
  65. package/dist/index.js +32 -7542
  66. package/dist/java-CxGSJVvv.js +403 -0
  67. package/dist/languages/cli.d.ts +12 -0
  68. package/dist/languages/cli.js +21 -0
  69. package/dist/languages/csharp.d.ts +12 -0
  70. package/dist/languages/csharp.js +9 -0
  71. package/dist/languages/go.d.ts +12 -0
  72. package/dist/languages/go.js +9 -0
  73. package/dist/languages/http.d.ts +12 -0
  74. package/dist/languages/http.js +20 -0
  75. package/dist/languages/index.d.ts +12 -0
  76. package/dist/languages/index.js +29 -0
  77. package/dist/languages/java.d.ts +12 -0
  78. package/dist/languages/java.js +9 -0
  79. package/dist/languages/python.d.ts +12 -0
  80. package/dist/languages/python.js +9 -0
  81. package/dist/languages/ruby.d.ts +12 -0
  82. package/dist/languages/ruby.js +9 -0
  83. package/dist/languages/terraform.d.ts +12 -0
  84. package/dist/languages/terraform.js +9 -0
  85. package/dist/languages/typescript.d.ts +12 -0
  86. package/dist/languages/typescript.js +9 -0
  87. package/dist/languages-B6eap2M6.js +30 -0
  88. package/dist/markdown/index.d.ts +12 -0
  89. package/dist/markdown/index.js +107 -0
  90. package/dist/markdown/md.d.ts +15 -0
  91. package/dist/markdown/md.js +41 -0
  92. package/dist/markdown/printer.d.ts +13 -0
  93. package/dist/markdown/printer.js +100 -0
  94. package/dist/markdown/utils.d.ts +21 -0
  95. package/dist/markdown/utils.js +31 -0
  96. package/dist/markdown-CTKHMLVr.js +49 -0
  97. package/dist/markdown-Cdh0TSHp.d.ts +22 -0
  98. package/dist/markdown-Cibv9fDR.d.ts +22 -0
  99. package/dist/method-630cPKDl.d.ts +59 -0
  100. package/dist/method-BPDUyBlD.js +96 -0
  101. package/dist/method-BzkPRXGL.d.ts +59 -0
  102. package/dist/navigation-BW-SBvb4.d.ts +29 -0
  103. package/dist/navigation-DWYqC_HX.d.ts +29 -0
  104. package/dist/navigation-aoYZ_tl4.js +24 -0
  105. package/dist/overview-Cui1XtuC.d.ts +39 -0
  106. package/dist/overview-DFwfIK6k.js +138 -0
  107. package/dist/overview-RXc9iPzz.d.ts +39 -0
  108. package/dist/primitives-DJEqe_r1.js +250 -0
  109. package/dist/primitives-DhGxFYx6.d.ts +105 -0
  110. package/dist/primitives-MsH-h0bU.d.ts +105 -0
  111. package/dist/properties-BnbBKd5a.js +132 -0
  112. package/dist/properties-Bynmj9_H.d.ts +54 -0
  113. package/dist/properties-C9W4QJ_F.d.ts +54 -0
  114. package/dist/python-DsTuWCKE.js +269 -0
  115. package/dist/routing-C64k4fmX.js +205 -0
  116. package/dist/routing-Cm_9XJiQ.d.ts +61 -0
  117. package/dist/routing-utiR5mY3.d.ts +61 -0
  118. package/dist/routing.d.ts +2 -0
  119. package/dist/routing.js +3 -180
  120. package/dist/ruby-BncKp6hd.js +387 -0
  121. package/dist/sdk-BvZeXpsj.d.ts +122 -0
  122. package/dist/sdk-Bw99eXxA.js +399 -0
  123. package/dist/sdk-GMOw94wL.d.ts +122 -0
  124. package/dist/sdk-sidebar-NCBSWuUW.d.ts +15 -0
  125. package/dist/sdk-sidebar-VNY2-O1Y.d.ts +15 -0
  126. package/dist/sdk-sidebar-V_MTkVw8.js +50 -0
  127. package/dist/snippets-BehbU3rt.js +164 -0
  128. package/dist/snippets-Bj7Ey56K.d.ts +53 -0
  129. package/dist/snippets-CQQSDvg2.d.ts +53 -0
  130. package/dist/spec.d.ts +65 -0
  131. package/dist/spec.js +167 -0
  132. package/dist/stl-sidebar-CXzs_shz.d.ts +58 -0
  133. package/dist/stl-sidebar-DSkUHwcU.d.ts +58 -0
  134. package/dist/stl-sidebar-WtimNrk1.js +106 -0
  135. package/dist/style-HpXpcJ9v.js +172 -0
  136. package/dist/style.d.ts +171 -0
  137. package/dist/style.js +3 -0
  138. package/dist/styles/main.css +744 -754
  139. package/dist/styles/main.js +0 -0
  140. package/dist/styles/primitives.css +327 -458
  141. package/dist/styles/primitives.js +0 -0
  142. package/dist/styles/resets.css +32 -41
  143. package/dist/styles/resets.js +0 -0
  144. package/dist/styles/search.css +192 -270
  145. package/dist/styles/search.js +0 -0
  146. package/dist/styles/sidebar.css +170 -69
  147. package/dist/styles/sidebar.js +0 -0
  148. package/dist/styles/variables.css +26 -89
  149. package/dist/styles/variables.js +0 -0
  150. package/dist/styles.css +3273 -0
  151. package/dist/styles.mjs +1 -0
  152. package/dist/terraform-B95X4rNK.js +243 -0
  153. package/dist/typescript-n46M9OtL.js +449 -0
  154. package/dist/use-components-BUz3GbO4.js +7 -0
  155. package/dist/utils-DPbkW1Tz.js +54 -0
  156. package/dist/utils.d.ts +20 -0
  157. package/dist/utils.js +3 -0
  158. package/package.json +74 -22
  159. package/dist/mcp.js +0 -16003
  160. package/dist/styles/snippets.css +0 -132
  161. package/src/components/breadcrumbs.tsx +0 -94
  162. package/src/components/chat.tsx +0 -154
  163. package/src/components/dropdown.tsx +0 -91
  164. package/src/components/icons.tsx +0 -584
  165. package/src/components/index.ts +0 -9
  166. package/src/components/method.tsx +0 -144
  167. package/src/components/overview.tsx +0 -159
  168. package/src/components/primitives.tsx +0 -284
  169. package/src/components/properties.tsx +0 -130
  170. package/src/components/scripts/dropdown.ts +0 -78
  171. package/src/components/sdk.tsx +0 -402
  172. package/src/components/sidebar.tsx +0 -99
  173. package/src/components/snippets.tsx +0 -179
  174. package/src/contexts/component-generics.tsx +0 -48
  175. package/src/contexts/component-types.tsx +0 -5
  176. package/src/contexts/component.tsx +0 -32
  177. package/src/contexts/docs.tsx +0 -75
  178. package/src/contexts/index.tsx +0 -17
  179. package/src/contexts/markdown.tsx +0 -43
  180. package/src/contexts/navigation.tsx +0 -44
  181. package/src/contexts/search.tsx +0 -28
  182. package/src/contexts/use-components.tsx +0 -4
  183. package/src/index.ts +0 -6
  184. package/src/languages/go.tsx +0 -281
  185. package/src/languages/http.tsx +0 -321
  186. package/src/languages/index.ts +0 -26
  187. package/src/languages/java.tsx +0 -358
  188. package/src/languages/python.tsx +0 -255
  189. package/src/languages/ruby.tsx +0 -320
  190. package/src/languages/typescript.tsx +0 -393
  191. package/src/markdown/index.ts +0 -107
  192. package/src/markdown/md.ts +0 -45
  193. package/src/markdown/utils.ts +0 -49
  194. package/src/routing.ts +0 -238
  195. package/src/search/form.tsx +0 -127
  196. package/src/search/index.tsx +0 -1
  197. package/src/search/indexer.ts +0 -246
  198. package/src/search/mcp.ts +0 -61
  199. package/src/search/printer.tsx +0 -86
  200. package/src/search/providers/algolia.ts +0 -88
  201. package/src/search/providers/fuse.ts +0 -19
  202. package/src/search/providers/pagefind.ts +0 -17
  203. package/src/search/providers/walker.ts +0 -30
  204. package/src/search/results.tsx +0 -181
  205. package/src/search/state.ts +0 -64
  206. package/src/search/types.ts +0 -116
  207. package/src/style.ts +0 -197
  208. package/src/styles/main.css +0 -993
  209. package/src/styles/primitives.css +0 -572
  210. package/src/styles/resets.css +0 -47
  211. package/src/styles/search.css +0 -342
  212. package/src/styles/sidebar.css +0 -87
  213. package/src/styles/snippets.css +0 -132
  214. package/src/styles/variables.css +0 -90
  215. package/src/utils.ts +0 -41
@@ -0,0 +1,3273 @@
1
+ /* Typography - Stainless */
2
+ @layer stl-ui.tokens {
3
+ :root {
4
+ --stl-typography-font: 'Geist', system-ui, sans-serif;
5
+ --stl-typography-font-mono: 'Geist Mono', ui-monospace, monospace;
6
+ --stl-typography-font-heading: var(--stl-typography-font);
7
+
8
+ --stl-typography-line-height: 1.5;
9
+ --stl-typography-line-height-heading: 1.2;
10
+
11
+ --stl-typography-text-body: var(--stl-typography-scale-base);
12
+ --stl-typography-text-body-sm: var(--stl-typography-scale-sm);
13
+ --stl-typography-text-body-xs: var(--stl-typography-scale-xs);
14
+
15
+ --stl-typography-text-code: max(0.875em, var(--stl-typography-scale-xs));
16
+
17
+ --stl-typography-text-h1: var(--stl-typography-scale-5xl);
18
+ --stl-typography-text-h2: var(--stl-typography-scale-4xl);
19
+ --stl-typography-text-h3: var(--stl-typography-scale-3xl);
20
+ --stl-typography-text-h4: var(--stl-typography-scale-2xl);
21
+ --stl-typography-text-h5: var(--stl-typography-scale-xl);
22
+ --stl-typography-scale-xs: 12px;
23
+ --stl-typography-scale-sm: 14px;
24
+ --stl-typography-scale-base: 16px;
25
+ --stl-typography-scale-lg: 18px;
26
+ --stl-typography-scale-xl: 20px;
27
+ --stl-typography-scale-2xl: 24px;
28
+ --stl-typography-scale-3xl: 29px;
29
+ --stl-typography-scale-4xl: 35px;
30
+ --stl-typography-scale-5xl: 42px;
31
+ --stl-typography-scale-6xl: 64px;
32
+
33
+ --stl-color-text-selection-foreground: /* unset by default; text colors are unchanged */;
34
+ --stl-color-text-selection-background: light-dark(
35
+ rgb(from var(--stl-color-text-selection) r g b / calc(alpha * 0.15)),
36
+ rgb(from var(--stl-color-text-selection) r g b / calc(alpha * 0.35))
37
+ );
38
+ }
39
+ }
40
+
41
+ /* Prose exists in its own sub-layer for easy reverting */
42
+ body {
43
+ font-family: var(--stl-typography-font);
44
+ }
45
+
46
+ .stl-ui-prose {
47
+ letter-spacing: -0.01em;
48
+ font-weight: 400;
49
+ line-height: var(--stl-typography-line-height);
50
+ font-size: var(--stl-typography-text-body);
51
+ color: var(--stl-color-foreground-reduced);
52
+
53
+ :where(.stl-ui-not-prose) {
54
+ letter-spacing: initial;
55
+ font-weight: initial;
56
+ line-height: initial;
57
+ font-size: initial;
58
+ color: initial;
59
+ }
60
+
61
+ &.small {
62
+ font-size: var(--stl-typography-scale-sm);
63
+ letter-spacing: normal;
64
+ }
65
+
66
+ :where(strong:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose strong) {
67
+ color: rgb(from currentColor r g b / 1);
68
+ }
69
+
70
+ :where(a:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose a) {
71
+ color: var(--stl-color-link-foreground);
72
+ text-decoration-color: rgb(from currentColor r g b / calc(alpha * var(--stl-opacity-level-040)));
73
+ transition: text-decoration-color 0.1s ease-out;
74
+ &:hover {
75
+ text-decoration-color: currentColor;
76
+ }
77
+ }
78
+
79
+ :where(h1, h2, h3, h4, h5, h6):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
80
+ color: var(--stl-color-foreground);
81
+ font-weight: 500;
82
+ line-height: var(--stl-typography-line-height-heading);
83
+ font-family: var(--stl-typography-font-heading);
84
+
85
+ text-wrap: pretty;
86
+ &:where(h1, h2, h3) {
87
+ text-wrap: balance;
88
+ }
89
+ }
90
+
91
+ :where(h1:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h1) {
92
+ /* Heading 1/Medium */
93
+ font-size: var(--stl-typography-text-h1);
94
+ letter-spacing: -0.03em;
95
+ margin-top: 1.5em;
96
+ }
97
+
98
+ :where(h2:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h2) {
99
+ /* Heading 2/Medium */
100
+ font-size: var(--stl-typography-text-h2);
101
+ letter-spacing: -0.03em;
102
+ margin-top: 1.35em;
103
+ }
104
+
105
+ :where(h3:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h3) {
106
+ /* Heading 3/Medium */
107
+ font-size: var(--stl-typography-text-h3);
108
+ letter-spacing: -0.02em;
109
+ margin-top: 1.35em;
110
+ }
111
+
112
+ :where(h4:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h4) {
113
+ /* Heading 4/Medium */
114
+ font-size: var(--stl-typography-text-h4);
115
+ letter-spacing: -0.02em;
116
+ margin-top: 1.35em;
117
+ }
118
+
119
+ :where(h5:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h5) {
120
+ /* Heading 5/Medium */
121
+ font-size: var(--stl-typography-text-h5);
122
+ letter-spacing: -0.02em;
123
+ margin-top: 1.2em;
124
+ }
125
+
126
+ :where(li:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose li) {
127
+ &:where(:not(:last-child)) {
128
+ margin-bottom: 8px;
129
+ }
130
+ }
131
+
132
+ &.smaller-headings {
133
+ --stl-typography-text-h1: var(--stl-typography-scale-3xl);
134
+ --stl-typography-text-h2: var(--stl-typography-scale-2xl);
135
+ --stl-typography-text-h3: var(--stl-typography-scale-xl);
136
+ --stl-typography-text-h4: var(--stl-typography-scale-lg);
137
+ --stl-typography-text-h5: var(--stl-typography-scale-base);
138
+
139
+ :where(h1) {
140
+ margin-top: 1.5em;
141
+ }
142
+ :where(h2, h3, h4) {
143
+ margin-top: 1.25em;
144
+ }
145
+ :where(h5) {
146
+ margin-top: 1em;
147
+ }
148
+ }
149
+
150
+ /* code blocks */
151
+ :where(
152
+ pre:not(.stl-ui-not-prose *, .expressive-code *),
153
+ .stl-ui-not-prose .stl-ui-prose pre:not(.expressive-code *)
154
+ ) {
155
+ padding: 12px 20px;
156
+ border-radius: var(--stl-ui-layout-border-radius-sml);
157
+ border: 1px solid var(--stl-color-border);
158
+ background-color: var(--stl-color-faint-background);
159
+ overflow: auto;
160
+ margin-bottom: 1rem;
161
+ }
162
+
163
+ :where(ol, ul) {
164
+ &:where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
165
+ padding-left: 26px;
166
+ }
167
+ }
168
+
169
+ :where(ol, ul, aside, img, figure, details):where(
170
+ :not(.stl-ui-not-prose *),
171
+ .stl-ui-not-prose .stl-ui-prose *
172
+ ) {
173
+ margin-top: 16px;
174
+ }
175
+
176
+ /* all code (inline + block) */
177
+ :where(code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
178
+ font-family: var(--stl-typography-font-mono);
179
+ font-feature-settings:
180
+ 'ss01' on,
181
+ 'ss03' on,
182
+ 'ss04' on,
183
+ 'ss06' on;
184
+
185
+ font-size: var(--stl-typography-text-code);
186
+ font-weight: inherit;
187
+ letter-spacing: normal;
188
+
189
+ /* inline code */
190
+ &:where(:not(pre > code)) {
191
+ color: var(--stl-color-foreground);
192
+ padding: 0 0.2em;
193
+ background-color: rgb(from var(--stl-color-foreground) r g b / 0.1);
194
+ border-radius: 0.2em;
195
+ }
196
+
197
+ /* code blocks */
198
+ /* &:where(pre > &) { } */
199
+ }
200
+ }
201
+
202
+ /* _direct_ children of stl-ui-prose should get a margin-top by default for spacing. */
203
+ :where(.stl-ui-prose, .stl-ui-prose > .sl-markdown-content) > :where(:not(:first-child)) {
204
+ margin-top: 16px;
205
+ }
206
+
207
+ @layer starlight.content {
208
+ .stl-ui-prose .sl-markdown-content {
209
+ a,
210
+ a:hover {
211
+ color: revert-layer;
212
+ }
213
+ }
214
+ }
215
+
216
+ ::selection {
217
+ background-color: var(--stl-color-text-selection-background);
218
+ color: var(--stl-color-text-selection-foreground);
219
+ }
220
+
221
+ @layer stl-ui.tokens {
222
+ /* Layout - Stainless */
223
+ :root {
224
+ --stl-ui-layout-border-radius-xs: 4px;
225
+ --stl-ui-layout-border-radius-sml: 8px;
226
+ --stl-ui-layout-border-radius: 12px;
227
+ --stl-ui-layout-border-radius-med: 16px;
228
+ --stl-ui-layout-border-radius-max: 100vmax;
229
+ --stl-ui-left-content-indent: 24px;
230
+
231
+ --stl-ui-page-padding-inline: 20px;
232
+ }
233
+ }
234
+
235
+ /* 1. Base colors */
236
+ @layer stl-ui.tokens {
237
+ :root {
238
+ --stl-opacity-level-080: 0.80;
239
+ --stl-opacity-level-040: 0.40;
240
+ --stl-opacity-level-016: 0.16;
241
+ --stl-opacity-level-008: 0.08;
242
+ --stl-opacity-level-004: 0.04;
243
+ /* background */
244
+ --stl-color-background: light-dark(rgb(255 255 255), rgb(10 10 10));
245
+ --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))));
246
+ /* background shades */
247
+ /* muted background */
248
+ --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))));
249
+ --stl-color-muted-background-hover: rgb(from var(--stl-color-muted-background) r g b/calc(alpha * 2));
250
+ /* faint background */
251
+ --stl-color-faint-background: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)));
252
+ --stl-color-faint-background-hover: rgb(from var(--stl-color-faint-background) r g b/calc(alpha * 2));
253
+ /* ui elements like cards and buttons match --stl-color-background in light mode, but have a slight tint in dark mode */
254
+ --stl-color-ui-background: light-dark(
255
+ var(--stl-color-background),
256
+ rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)))
257
+ );
258
+ --stl-color-ui-background-hover: light-dark(
259
+ var(--stl-color-background-hover),
260
+ rgb(from var(--stl-color-ui-background) r g b/calc(alpha * 2))
261
+ );
262
+ /* foreground */
263
+ --stl-color-foreground: light-dark(rgb(38 38 38), rgb(245 245 245));
264
+ --stl-color-foreground-reduced: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
265
+ --stl-color-foreground-muted: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
266
+ /* inverse */
267
+ --stl-color-inverse-background: var(--stl-color-foreground);
268
+ --stl-color-inverse-background-hover: rgb(from var(--stl-color-inverse-background) r g b/calc(alpha * 0.9));
269
+ --stl-color-inverse-foreground: var(--stl-color-background);
270
+ /* default border (“foreground border”) */
271
+ --stl-color-border: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016)));
272
+ --stl-color-border-faint: rgb(from var(--stl-color-border) r g b/calc(alpha * 0.5));
273
+ --stl-color-border-strong: rgb(from var(--stl-color-border) r g b/calc(alpha * 2.5));
274
+ }
275
+ }
276
+ /* 2. Color palettes (accent, red, green, etc) */
277
+ @layer stl-ui.tokens {
278
+ :root {
279
+ /* accent */
280
+ --stl-color-accent: light-dark(#155dfc, #2b7fff);
281
+ --stl-color-accent-foreground: var(--stl-color-accent);
282
+ --stl-color-accent-foreground-reduced: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
283
+ --stl-color-accent-foreground-muted: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
284
+ --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))));
285
+ --stl-color-accent-muted-background-hover: rgb(from var(--stl-color-accent-muted-background) r g b/calc(alpha * 2));
286
+ --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))));
287
+ --stl-color-accent-border-faint: rgb(from var(--stl-color-accent-border) r g b/calc(alpha * 0.5));
288
+ --stl-color-accent-border-strong: var(--stl-color-accent);
289
+ --stl-color-accent-inverse-background: var(--stl-color-accent);
290
+ --stl-color-accent-inverse-background-hover: rgb(from var(--stl-color-accent-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
291
+ --stl-color-accent-inverse-foreground: rgb(255, 255, 255);
292
+ /* red */
293
+ --stl-color-red: light-dark(#d01e22, #e34041);
294
+ --stl-color-red-foreground: var(--stl-color-red);
295
+ --stl-color-red-foreground-reduced: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
296
+ --stl-color-red-foreground-muted: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
297
+ --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))));
298
+ --stl-color-red-muted-background-hover: rgb(from var(--stl-color-red-muted-background) r g b/calc(alpha * 2));
299
+ --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))));
300
+ --stl-color-red-border-faint: rgb(from var(--stl-color-red-border) r g b/calc(alpha * 0.5));
301
+ --stl-color-red-border-strong: var(--stl-color-red);
302
+ --stl-color-red-inverse-background: var(--stl-color-red);
303
+ --stl-color-red-inverse-background-hover: rgb(from var(--stl-color-red-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
304
+ --stl-color-red-inverse-foreground: rgb(255, 255, 255);
305
+ /* green */
306
+ --stl-color-green: light-dark(#16a34a, #22c55e);
307
+ --stl-color-green-foreground: var(--stl-color-green);
308
+ --stl-color-green-foreground-reduced: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
309
+ --stl-color-green-foreground-muted: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
310
+ --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))));
311
+ --stl-color-green-muted-background-hover: rgb(from var(--stl-color-green-muted-background) r g b/calc(alpha * 2));
312
+ --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))));
313
+ --stl-color-green-border-faint: rgb(from var(--stl-color-green-border) r g b/calc(alpha * 0.5));
314
+ --stl-color-green-border-strong: var(--stl-color-green);
315
+ --stl-color-green-inverse-background: var(--stl-color-green);
316
+ --stl-color-green-inverse-background-hover: rgb(from var(--stl-color-green-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
317
+ --stl-color-green-inverse-foreground: rgb(255, 255, 255);
318
+ /* blue */
319
+ --stl-color-blue: light-dark(#155dfc, #2b7fff);
320
+ --stl-color-blue-foreground: var(--stl-color-blue);
321
+ --stl-color-blue-foreground-reduced: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
322
+ --stl-color-blue-foreground-muted: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
323
+ --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))));
324
+ --stl-color-blue-muted-background-hover: rgb(from var(--stl-color-blue-muted-background) r g b/calc(alpha * 2));
325
+ --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))));
326
+ --stl-color-blue-border-faint: rgb(from var(--stl-color-blue-border) r g b/calc(alpha * 0.5));
327
+ --stl-color-blue-border-strong: var(--stl-color-blue);
328
+ --stl-color-blue-inverse-background: var(--stl-color-blue);
329
+ --stl-color-blue-inverse-background-hover: rgb(from var(--stl-color-blue-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
330
+ --stl-color-blue-inverse-foreground: rgb(255, 255, 255);
331
+ /* yellow */
332
+ --stl-color-yellow: light-dark(#ca8a04, #eab308);
333
+ --stl-color-yellow-foreground: var(--stl-color-yellow);
334
+ --stl-color-yellow-foreground-reduced: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
335
+ --stl-color-yellow-foreground-muted: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
336
+ --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))));
337
+ --stl-color-yellow-muted-background-hover: rgb(from var(--stl-color-yellow-muted-background) r g b/calc(alpha * 2));
338
+ --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))));
339
+ --stl-color-yellow-border-faint: rgb(from var(--stl-color-yellow-border) r g b/calc(alpha * 0.5));
340
+ --stl-color-yellow-border-strong: var(--stl-color-yellow);
341
+ --stl-color-yellow-inverse-background: var(--stl-color-yellow);
342
+ --stl-color-yellow-inverse-background-hover: rgb(from var(--stl-color-yellow-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
343
+ --stl-color-yellow-inverse-foreground: rgb(255, 255, 255);
344
+ /* orange */
345
+ --stl-color-orange: light-dark(#ea580c, #f97316);
346
+ --stl-color-orange-foreground: var(--stl-color-orange);
347
+ --stl-color-orange-foreground-reduced: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
348
+ --stl-color-orange-foreground-muted: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
349
+ --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))));
350
+ --stl-color-orange-muted-background-hover: rgb(from var(--stl-color-orange-muted-background) r g b/calc(alpha * 2));
351
+ --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))));
352
+ --stl-color-orange-border-faint: rgb(from var(--stl-color-orange-border) r g b/calc(alpha * 0.5));
353
+ --stl-color-orange-border-strong: var(--stl-color-orange);
354
+ --stl-color-orange-inverse-background: var(--stl-color-orange);
355
+ --stl-color-orange-inverse-background-hover: rgb(from var(--stl-color-orange-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
356
+ --stl-color-orange-inverse-foreground: rgb(255, 255, 255);
357
+ /* purple */
358
+ --stl-color-purple: light-dark(#9333ea, #a855f7);
359
+ --stl-color-purple-foreground: var(--stl-color-purple);
360
+ --stl-color-purple-foreground-reduced: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
361
+ --stl-color-purple-foreground-muted: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
362
+ --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))));
363
+ --stl-color-purple-muted-background-hover: rgb(from var(--stl-color-purple-muted-background) r g b/calc(alpha * 2));
364
+ --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))));
365
+ --stl-color-purple-border-faint: rgb(from var(--stl-color-purple-border) r g b/calc(alpha * 0.5));
366
+ --stl-color-purple-border-strong: var(--stl-color-purple);
367
+ --stl-color-purple-inverse-background: var(--stl-color-purple);
368
+ --stl-color-purple-inverse-background-hover: rgb(from var(--stl-color-purple-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
369
+ --stl-color-purple-inverse-foreground: rgb(255, 255, 255);
370
+ /* cyan */
371
+ --stl-color-cyan: light-dark(#0891b2, #06b6d4);
372
+ --stl-color-cyan-foreground: var(--stl-color-cyan);
373
+ --stl-color-cyan-foreground-reduced: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
374
+ --stl-color-cyan-foreground-muted: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
375
+ --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))));
376
+ --stl-color-cyan-muted-background-hover: rgb(from var(--stl-color-cyan-muted-background) r g b/calc(alpha * 2));
377
+ --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))));
378
+ --stl-color-cyan-border-faint: rgb(from var(--stl-color-cyan-border) r g b/calc(alpha * 0.5));
379
+ --stl-color-cyan-border-strong: var(--stl-color-cyan);
380
+ --stl-color-cyan-inverse-background: var(--stl-color-cyan);
381
+ --stl-color-cyan-inverse-background-hover: rgb(from var(--stl-color-cyan-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
382
+ --stl-color-cyan-inverse-foreground: rgb(255, 255, 255);
383
+ /* pink */
384
+ --stl-color-pink: light-dark(#ec4899, #ec4899);
385
+ --stl-color-pink-foreground: var(--stl-color-pink);
386
+ --stl-color-pink-foreground-reduced: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
387
+ --stl-color-pink-foreground-muted: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
388
+ --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))));
389
+ --stl-color-pink-muted-background-hover: rgb(from var(--stl-color-pink-muted-background) r g b/calc(alpha * 2));
390
+ --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))));
391
+ --stl-color-pink-border-faint: rgb(from var(--stl-color-pink-border) r g b/calc(alpha * 0.5));
392
+ --stl-color-pink-border-strong: var(--stl-color-pink);
393
+ --stl-color-pink-inverse-background: var(--stl-color-pink);
394
+ --stl-color-pink-inverse-background-hover: rgb(from var(--stl-color-pink-inverse-background) r g b/calc(alpha * var(--stl-opacity-level-080)));
395
+ --stl-color-pink-inverse-foreground: rgb(255, 255, 255);
396
+ }
397
+ :root[data-theme=dark],
398
+ .stl-theme-dark {
399
+ color-scheme: dark;
400
+ background: var(--stl-color-background);
401
+ color: var(--stl-color-foreground);
402
+ }
403
+ :root[data-theme=light],
404
+ .stl-theme-light {
405
+ color-scheme: light;
406
+ background: var(--stl-color-background);
407
+ color: var(--stl-color-foreground);
408
+ }
409
+ }
410
+ /* Semantic color roles */
411
+ @layer stl-ui.tokens {
412
+ :root {
413
+ --stl-color-link-foreground: var(--stl-color-accent-foreground);
414
+ --stl-color-text-selection: var(--stl-color-accent-inverse-background);
415
+ }
416
+ }
417
+ .stl-ui-button {
418
+ height: 32px;
419
+ padding: 8px 10px;
420
+ border-radius: var(--stl-ui-layout-border-radius-sml);
421
+ line-height: 150%;
422
+ font-weight: 500;
423
+ font-size: var(--stl-typography-text-body-sm);
424
+ font-family: var(--stl-typography-font);
425
+
426
+ cursor: pointer;
427
+ display: inline-flex;
428
+ align-items: center;
429
+ justify-content: center;
430
+ gap: 2px;
431
+ white-space: nowrap;
432
+ flex-shrink: 0;
433
+
434
+ border: 1px solid transparent;
435
+ color: var(--stl-color-inverse-foreground);
436
+ background-color: var(--stl-color-inverse-background);
437
+
438
+ &:hover {
439
+ background-color: var(--stl-color-inverse-background-hover);
440
+ }
441
+
442
+ &[hidden] {
443
+ display: none;
444
+ }
445
+ }
446
+
447
+ /* --- COLOR VARIANTS --- */
448
+
449
+ .stl-ui-button--accent {
450
+ color: var(--stl-color-accent-inverse-foreground);
451
+ background-color: var(--stl-color-accent-inverse-background);
452
+ &:hover {
453
+ background-color: var(--stl-color-accent-inverse-background-hover);
454
+ }
455
+ }
456
+
457
+ .stl-ui-button--accent-muted {
458
+ color: var(--stl-color-accent-foreground);
459
+ background-color: var(--stl-color-accent-muted-background);
460
+ &:hover {
461
+ background-color: var(--stl-color-accent-muted-background-hover);
462
+ }
463
+ &.stl-ui-button--with-border {
464
+ border-color: var(--stl-color-accent-border);
465
+ }
466
+ }
467
+
468
+ .stl-ui-button--muted {
469
+ color: var(--stl-color-foreground);
470
+ background-color: var(--stl-color-muted-background);
471
+ &:hover {
472
+ background-color: var(--stl-color-muted-background-hover);
473
+ }
474
+ &.stl-ui-button--with-border {
475
+ border-color: var(--stl-color-border);
476
+ }
477
+ }
478
+
479
+ .stl-ui-button--outline {
480
+ color: var(--stl-color-foreground);
481
+ background-color: var(--stl-color-ui-background);
482
+ border-color: var(--stl-color-border);
483
+ &:hover {
484
+ background:
485
+ linear-gradient(var(--stl-color-ui-background-hover), var(--stl-color-ui-background-hover)),
486
+ linear-gradient(var(--stl-color-ui-background), var(--stl-color-ui-background));
487
+ }
488
+ }
489
+
490
+ .stl-ui-button--ghost {
491
+ color: var(--stl-color-foreground);
492
+ background-color: transparent;
493
+ &:hover {
494
+ background-color: var(--stl-color-background-hover);
495
+ }
496
+ &.stl-ui-button--with-border {
497
+ border-color: var(--stl-color-border);
498
+ }
499
+ }
500
+
501
+ .stl-ui-button--success {
502
+ color: var(--stl-color-green-inverse-foreground);
503
+ background-color: var(--stl-color-green-inverse-background);
504
+ &:hover {
505
+ background-color: var(--stl-color-green-inverse-background-hover);
506
+ }
507
+ }
508
+
509
+ .stl-ui-button--destructive {
510
+ color: var(--stl-color-red-inverse-foreground);
511
+ background-color: var(--stl-color-red-inverse-background);
512
+ &:hover {
513
+ background-color: var(--stl-color-red-inverse-background-hover);
514
+ }
515
+ }
516
+
517
+ /* --- LOADING STATE --- */
518
+
519
+ /**
520
+ * When loading, set aria-disabled="true" and aria-label="<Doing action...>"
521
+ * Don't use disabled, it loses focus.
522
+ */
523
+
524
+ .stl-ui-button--loading {
525
+ -webkit-text-fill-color: transparent;
526
+ position: relative;
527
+
528
+ & * {
529
+ color: transparent;
530
+ }
531
+
532
+ &::before {
533
+ content: '';
534
+ animation: stl-ui-button--loading-spin 1s linear infinite;
535
+ position: absolute;
536
+ width: 16px;
537
+ height: 16px;
538
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxvYWRlci1jaXJjbGUtaWNvbiBsdWNpZGUtbG9hZGVyLWNpcmNsZSI+PHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2Ii8+PC9zdmc+');
539
+ mask-size: contain;
540
+ mask-position: center;
541
+ mask-repeat: no-repeat;
542
+ background: currentColor;
543
+ }
544
+ }
545
+
546
+ @keyframes stl-ui-button--loading-spin {
547
+ to {
548
+ transform: rotate(360deg);
549
+ }
550
+ }
551
+
552
+ /* --- SIZE VARIANTS --- */
553
+ .stl-ui-button--size-sm {
554
+ height: 24px;
555
+ padding: 0 6px;
556
+ border-radius: var(--stl-ui-layout-border-radius-xs);
557
+ line-height: 100%;
558
+ font-weight: 500;
559
+ font-size: var(--stl-typography-text-body-xs);
560
+ }
561
+
562
+ .stl-ui-button--size-lg {
563
+ height: 40px;
564
+ padding: 8px 14px;
565
+ border-radius: var(--stl-ui-layout-border-radius);
566
+ line-height: 150%;
567
+ font-weight: 500;
568
+ font-size: var(--stl-typography-text-body);
569
+ }
570
+
571
+ /* --- ICONS --- */
572
+ .stl-ui-button__icon {
573
+ flex-shrink: 0;
574
+ display: flex;
575
+ align-items: center;
576
+ justify-content: center;
577
+
578
+ svg {
579
+ margin-top: 0;
580
+ }
581
+ }
582
+
583
+ /* Left Icon */
584
+ .stl-ui-button:has(.stl-ui-button__icon:first-child) .stl-ui-button__icon {
585
+ margin-left: -4px;
586
+ margin-right: 4px;
587
+ }
588
+
589
+ .stl-ui-button:has(.stl-ui-button__icon:last-child) .stl-ui-button__icon {
590
+ /* Right Icon */
591
+ margin-right: -4px;
592
+ margin-left: 4px;
593
+
594
+ /* Right & Left Icon */
595
+ &:first-child {
596
+ margin-left: -4px;
597
+ margin-right: 4px;
598
+ }
599
+ }
600
+
601
+ /* Only Icon */
602
+ .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(
603
+ .stl-ui-button__icon:first-child
604
+ ) {
605
+ aspect-ratio: 1 / 1;
606
+
607
+ .stl-ui-button__icon {
608
+ margin-left: -4px;
609
+ margin-right: -4px;
610
+ }
611
+ }
612
+
613
+ /* --- LINKS --- */
614
+
615
+ a.stl-ui-button {
616
+ text-decoration: none;
617
+ text-align: center;
618
+ }
619
+
620
+ .stl-ui-dropdown {
621
+ --stl-ui-dropdown-button-color: var(--stl-color-foreground);
622
+ --stl-ui-dropdown-button-background-color: var(--stl-color-ui-background);
623
+ --stl-ui-dropdown-button-border-color: var(--stl-color-border);
624
+
625
+ --stl-ui-dropdown-button-border-radius: var(--stl-ui-layout-border-radius-sml);
626
+ --stl-ui-dropdown-button-font-size: var(--stl-typography-scale-sm);
627
+
628
+ --stl-ui-dropdown-button-height: 32px;
629
+ --stl-ui-dropdown-button-padding: 0 10px;
630
+ --stl-ui-dropdown-button-line-height: 100%;
631
+ --stl-ui-dropdown-button-font-weight: 500;
632
+
633
+ position: relative;
634
+ display: inline-flex;
635
+ align-items: center;
636
+
637
+ color: var(--stl-ui-dropdown-button-color);
638
+ gap: 0;
639
+ font-size: var(--stl-ui-dropdown-button-font-size);
640
+
641
+ hr {
642
+ --stl-ui-dropdown-button__divider-height: 1px;
643
+ --stl-ui-dropdown-button__divider-color: var(--stl-color-border);
644
+
645
+ height: var(--stl-ui-dropdown-button__divider-height);
646
+ background-color: var(--stl-ui-dropdown-button__divider-color);
647
+ border: none;
648
+
649
+ margin: 4px 0;
650
+ width: calc(100% + 8px);
651
+ transform: translateX(-4px);
652
+ }
653
+
654
+ .stl-ui-dropdown__button {
655
+ background-color: var(--stl-ui-dropdown-button-background-color);
656
+
657
+ border: 1px solid var(--stl-ui-dropdown-button-border-color);
658
+ border-radius: var(--stl-ui-dropdown-button-border-radius);
659
+ height: var(--stl-ui-dropdown-button-height);
660
+ padding: var(--stl-ui-dropdown-button-padding);
661
+ line-height: var(--stl-ui-dropdown-button-line-height);
662
+ font-weight: var(--stl-ui-dropdown-button-font-weight);
663
+ cursor: pointer;
664
+ display: flex;
665
+ align-items: center;
666
+ justify-content: center;
667
+ color: inherit;
668
+
669
+ &:focus {
670
+ outline: 1px auto Highlight;
671
+ }
672
+
673
+ &:hover {
674
+ background-color: var(--stl-color-ui-background-hover);
675
+ }
676
+
677
+ .stl-ui-dropdown__trigger-icon {
678
+ margin-right: -4px;
679
+ margin-left: 4px;
680
+ display: flex;
681
+ align-items: center;
682
+ justify-content: center;
683
+ }
684
+ }
685
+
686
+ .stl-ui-dropdown__icon {
687
+ display: flex;
688
+ align-items: center;
689
+ justify-content: center;
690
+
691
+ svg {
692
+ width: 16px;
693
+ height: 16px;
694
+ }
695
+ }
696
+
697
+ /**
698
+ * Dropdown Button
699
+ */
700
+ .stl-ui-dropdown-button--action {
701
+ display: flex;
702
+ align-items: center;
703
+ gap: 8px;
704
+ border-top-right-radius: 0;
705
+ border-bottom-right-radius: 0;
706
+ border-right-width: 0;
707
+
708
+ &:hover {
709
+ background-color: var(--stl-color-ui-background-hover);
710
+ z-index: 1;
711
+ border-right-width: 1px;
712
+ & + .stl-ui-dropdown-button__trigger {
713
+ border-left-width: 0;
714
+ }
715
+ }
716
+
717
+ &.disabled {
718
+ cursor: not-allowed;
719
+ background-color: var(--stl-color-ui-background);
720
+ }
721
+ }
722
+
723
+ .stl-ui-dropdown-button__trigger {
724
+ border-radius: 0;
725
+ border-top-right-radius: var(--stl-ui-dropdown-button-border-radius);
726
+ border-bottom-right-radius: var(--stl-ui-dropdown-button-border-radius);
727
+
728
+ &:hover {
729
+ background-color: var(--stl-color-ui-background-hover);
730
+ }
731
+ }
732
+
733
+ .stl-ui-dropdown__trigger-selected {
734
+ display: flex;
735
+ align-items: center;
736
+ gap: 8px;
737
+ }
738
+
739
+ /**
740
+ * Dropdown Menu
741
+ */
742
+ .stl-ui-dropdown-menu {
743
+ --stl-ui-dropdown-menu-background-color: var(--stl-color-ui-background);
744
+ --stl-ui-dropdown-menu-border-color: var(--stl-color-border);
745
+ --stl-ui-dropdown-menu-box-shadow: 0px 4px 4px -2px #00000014;
746
+ --stl-ui-dropdown-menu-border-radius: var(--stl-ui-layout-border-radius-sml);
747
+
748
+ /* opaque background with sometimes-transparent color on top in image layer*/
749
+ background-color: var(--stl-color-background);
750
+ background-image: linear-gradient(
751
+ to right,
752
+ var(--stl-ui-dropdown-menu-background-color),
753
+ var(--stl-ui-dropdown-menu-background-color)
754
+ );
755
+
756
+ border: 1px solid var(--stl-ui-dropdown-menu-border-color);
757
+ box-shadow: var(--stl-ui-dropdown-menu-box-shadow);
758
+ border-radius: var(--stl-ui-dropdown-menu-border-radius);
759
+
760
+ position: absolute;
761
+ right: 0;
762
+ z-index: 1000;
763
+ min-width: 100%;
764
+ width: max-content;
765
+ padding: 4px;
766
+ display: none;
767
+
768
+ &.stl-ui-dropdown-menu--above {
769
+ top: auto;
770
+ bottom: 100%;
771
+ margin-bottom: 4px;
772
+ }
773
+
774
+ &.stl-ui-dropdown-menu--below {
775
+ top: 100%;
776
+ bottom: auto;
777
+ margin-top: 4px;
778
+ }
779
+
780
+ &[data-state='open'] {
781
+ display: block;
782
+ }
783
+
784
+ .stl-ui-dropdown-menu__item {
785
+ --stl-ui-dropdown-menu__item-border-radius: var(--stl-ui-dropdown-button-border-radius);
786
+ --stl-ui-dropdown-menu__item-height: var(--stl-ui-dropdown-button-height);
787
+ --stl-ui-dropdown-menu__item-line-height: var(--stl-ui-dropdown-button-line-height);
788
+ --stl-ui-dropdown-menu__item-hover-background-color: var(--stl-color-ui-background-hover);
789
+
790
+ border-radius: var(--stl-ui-dropdown-menu__item-border-radius);
791
+ height: var(--stl-ui-dropdown-menu__item-height);
792
+ line-height: var(--stl-ui-dropdown-menu__item-line-height);
793
+
794
+ background: transparent;
795
+ border: none;
796
+
797
+ padding: 8px;
798
+ cursor: pointer;
799
+ display: flex;
800
+ align-items: center;
801
+ justify-content: space-between;
802
+ gap: 16px;
803
+ width: 100%;
804
+
805
+ &:hover,
806
+ &:focus-visible {
807
+ background-color: var(--stl-ui-dropdown-menu__item-hover-background-color);
808
+ }
809
+
810
+ &:hover,
811
+ &:focus-visible,
812
+ &:focus {
813
+ color: var(--stl-color-foreground);
814
+ }
815
+
816
+ &.stl-ui-dropdown-menu__item-link {
817
+ display: flex;
818
+ align-items: center;
819
+ justify-content: space-between;
820
+ gap: 16px;
821
+ width: 100%;
822
+
823
+ &:hover {
824
+ color: var(--stl-color-foreground);
825
+ }
826
+ }
827
+
828
+ .stl-ui-dropdown-menu__item-icon {
829
+ display: flex;
830
+ }
831
+
832
+ .stl-ui-dropdown-menu__item-content {
833
+ display: flex;
834
+ align-items: center;
835
+ gap: 8px;
836
+ }
837
+
838
+ .stl-ui-dropdown-menu__item-text {
839
+ white-space: nowrap;
840
+ }
841
+
842
+ .stl-ui-dropdown-menu__item-text--subtle {
843
+ color: var(--stl-color-foreground-muted);
844
+ }
845
+
846
+ strong {
847
+ color: var(--stl-color-foreground);
848
+ font-weight: 500;
849
+ }
850
+
851
+ .stl-ui-dropdown-menu__item-subtle-icon {
852
+ --stl-ui-dropdown-menu__item-subtle-icon-color: rgb(from var(--stl-color-foreground) r g b / 0.25);
853
+
854
+ svg {
855
+ color: var(--stl-ui-dropdown-menu__item-subtle-icon-color);
856
+ }
857
+ }
858
+ }
859
+ }
860
+ }
861
+
862
+ .stl-ui-callout {
863
+ --stl-ui-callout-background-color: var(--stl-color-faint-background);
864
+ --stl-ui-callout-border-color: var(--stl-color-border);
865
+ --stl-ui-callout-accent-color: var(--stl-color-foreground);
866
+
867
+ border: 1px solid var(--stl-ui-callout-border-color);
868
+ background-color: var(--stl-ui-callout-background-color);
869
+ border-radius: var(--stl-ui-layout-border-radius);
870
+ padding: 12px;
871
+ line-height: var(--stl-typography-line-height);
872
+ font-weight: 400;
873
+ font-size: var(--stl-typography-text-body);
874
+ color: var(--stl-color-foreground);
875
+
876
+ display: flex;
877
+ align-items: flex-start;
878
+ gap: 8px;
879
+
880
+ :where(a, strong) {
881
+ color: var(--stl-ui-callout-strong-color, var(--stl-ui-callout-accent-color));
882
+ }
883
+ :where(a) {
884
+ text-decoration-color: rgba(from currentColor r g b / 0.4);
885
+ transition: text-decoration-color 0.1s ease;
886
+ &:hover {
887
+ text-decoration-color: rgba(from currentColor r g b / 0.8);
888
+ }
889
+ }
890
+
891
+ ::selection {
892
+ background-color: light-dark(
893
+ rgb(from var(--stl-ui-callout-background-color) r g b / 0.2),
894
+ rgb(from var(--stl-ui-callout-background-color) r g b / 0.35)
895
+ );
896
+ color: var(--stl-color-foreground);
897
+ }
898
+ }
899
+
900
+ .stl-ui-callout--info {
901
+ --stl-ui-callout-background-color: var(--stl-color-faint-background);
902
+ --stl-ui-callout-border-color: var(--stl-color-border);
903
+ --stl-ui-callout-accent-color: var(--stl-color-foreground-reduced);
904
+ --stl-ui-callout-strong-color: var(--stl-color-foreground);
905
+ }
906
+
907
+ .stl-ui-callout--note {
908
+ --stl-ui-callout-background-color: var(--stl-color-blue-muted-background);
909
+ --stl-ui-callout-border-color: var(--stl-color-blue-border);
910
+ --stl-ui-callout-accent-color: var(--stl-color-blue-foreground);
911
+ }
912
+
913
+ .stl-ui-callout--tip {
914
+ --stl-ui-callout-background-color: var(--stl-color-purple-muted-background);
915
+ --stl-ui-callout-border-color: var(--stl-color-purple-border);
916
+ --stl-ui-callout-accent-color: var(--stl-color-purple-foreground);
917
+ }
918
+
919
+ .stl-ui-callout--success {
920
+ --stl-ui-callout-background-color: var(--stl-color-green-muted-background);
921
+ --stl-ui-callout-border-color: var(--stl-color-green-border);
922
+ --stl-ui-callout-accent-color: var(--stl-color-green-foreground);
923
+ }
924
+
925
+ .stl-ui-callout--warning {
926
+ --stl-ui-callout-background-color: var(--stl-color-yellow-muted-background);
927
+ --stl-ui-callout-border-color: var(--stl-color-yellow-border);
928
+ --stl-ui-callout-accent-color: var(--stl-color-yellow-foreground);
929
+ }
930
+
931
+ .stl-ui-callout--danger {
932
+ --stl-ui-callout-background-color: var(--stl-color-red-muted-background);
933
+ --stl-ui-callout-border-color: var(--stl-color-red-border);
934
+ --stl-ui-callout-accent-color: var(--stl-color-red-foreground);
935
+ }
936
+
937
+ .stl-ui-callout__icon {
938
+ color: var(--stl-ui-callout-accent-color);
939
+ flex-shrink: 0;
940
+ width: 1em;
941
+ height: 1em;
942
+ margin: calc((1lh - 1em) / 2);
943
+ }
944
+
945
+ .stl-ui-callout__content {
946
+ flex: 1;
947
+ margin-top: 0;
948
+
949
+ & > :first-child {
950
+ margin-top: 0;
951
+ }
952
+ }
953
+
954
+ /* revert starlight details styles */
955
+ @layer starlight.content {
956
+ /* artificially increase specificity to outcompete selectors in the same layer whose styles we want to revert */
957
+ .stl-ui-prose .sl-markdown-content.sl-markdown-content.sl-markdown-content {
958
+ details,
959
+ summary,
960
+ summary::before,
961
+ summary::marker {
962
+ all: revert-layer;
963
+ }
964
+ }
965
+ }
966
+
967
+ .stl-ui-accordion {
968
+ --stl-ui-accordion-padding: 12px;
969
+ --stl-ui-accordion-content-padding-bottom: 4px;
970
+ --stl-ui-accordion-marker-size: 1em;
971
+ --stl-ui-accordion-marker-margin: calc((1lh - var(--stl-ui-accordion-marker-size)) / 2);
972
+ --stl-ui-accordion-marker-color: var(--stl-color-border-strong);
973
+ --stl-ui-accordion-row-gap: 8px;
974
+ --stl-ui-accordion-summary-column-gap: 8px;
975
+ --stl-ui-accordion-border-radius: var(--stl-ui-layout-border-radius);
976
+ /* left inset to make content line up with summary content (after chevron) */
977
+ --stl-ui--internal--accordion-padding-start: calc(
978
+ var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
979
+ var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap)
980
+ );
981
+
982
+ background-color: var(--stl-color-ui-background);
983
+ border: 1px solid var(--stl-color-border);
984
+ border-radius: var(--stl-ui-accordion-border-radius);
985
+ font-size: var(--stl-typography-text-body);
986
+
987
+ padding: var(--stl-ui-accordion-padding);
988
+ /* indent content to line up with left edge of summary content */
989
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
990
+
991
+ & > .stl-ui-accordion__summary {
992
+ display: block;
993
+ list-style: none;
994
+
995
+ /* summary extends to the edges of the element in order to increase click target */
996
+ padding: var(--stl-ui-accordion-padding);
997
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
998
+ margin: calc(-1 * var(--stl-ui-accordion-padding));
999
+ margin-inline-start: calc(-1 * var(--stl-ui--internal--accordion-padding-start));
1000
+
1001
+ cursor: pointer;
1002
+ font-weight: 500;
1003
+
1004
+ border-radius: var(--stl-ui-accordion-border-radius);
1005
+
1006
+ &::before {
1007
+ content: '';
1008
+ width: var(--stl-ui-accordion-marker-size);
1009
+ height: var(--stl-ui-accordion-marker-size);
1010
+ margin: var(--stl-ui-accordion-marker-margin);
1011
+ background-color: var(--stl-ui-accordion-marker-color);
1012
+ display: block;
1013
+ position: absolute;
1014
+ --stl-ui-accordion--internal--marker-width: calc(
1015
+ var(--stl-ui-accordion-marker-size) + var(--stl-ui-accordion-marker-margin) * 2
1016
+ );
1017
+ --stl-ui-accordion--internal--summary-marker-transform: translateX(
1018
+ calc(
1019
+ -1 * var(--stl-ui-accordion--internal--marker-width) - var(--stl-ui-accordion-summary-column-gap)
1020
+ )
1021
+ );
1022
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform);
1023
+
1024
+ --lucide-chevron-right: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tcmlnaHQtaWNvbiBsdWNpZGUtY2hldnJvbi1yaWdodCI+PHBhdGggZD0ibTkgMTggNi02LTYtNiIvPjwvc3ZnPg==');
1025
+ mask-image: var(--lucide-chevron-right);
1026
+ mask-size: contain;
1027
+ mask-repeat: no-repeat;
1028
+
1029
+ transition: transform 0.1s ease-out;
1030
+ }
1031
+
1032
+ & > :first-child {
1033
+ margin-top: 0;
1034
+ }
1035
+ }
1036
+
1037
+ &[open] {
1038
+ border-color: var(--stl-color-border-strong);
1039
+ padding-bottom: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-content-padding-bottom));
1040
+
1041
+ & > .stl-ui-accordion__summary {
1042
+ /* padding-bottom shouldn’t extend beyond the row gap while open, i.e. we shouldn’t be negative-margin-placing content overlapping summary */
1043
+ --stl-ui--internal--summary-padding-bottom: min(
1044
+ var(--stl-ui-accordion-padding),
1045
+ var(--stl-ui-accordion-row-gap)
1046
+ );
1047
+ padding-bottom: var(--stl-ui--internal--summary-padding-bottom);
1048
+ margin-bottom: calc(var(--stl-ui-accordion-row-gap) - var(--stl-ui--internal--summary-padding-bottom));
1049
+ border-bottom-left-radius: 0;
1050
+ border-bottom-right-radius: 0;
1051
+
1052
+ &::before {
1053
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform) rotate(90deg);
1054
+ }
1055
+ }
1056
+ }
1057
+
1058
+ &:has(> .stl-ui-accordion__summary:hover) {
1059
+ background-color: var(--stl-color-ui-background-hover);
1060
+ }
1061
+
1062
+ & > .stl-ui-accordion__summary + * {
1063
+ margin-top: 0;
1064
+ }
1065
+ }
1066
+
1067
+ /* Groups */
1068
+
1069
+ .stl-ui-accordion-group {
1070
+ & > .stl-ui-accordion:has(+ .stl-ui-accordion) {
1071
+ border-bottom-left-radius: 0;
1072
+ border-bottom-right-radius: 0;
1073
+ & > .stl-ui-accordion__summary {
1074
+ border-bottom-left-radius: 0;
1075
+ border-bottom-right-radius: 0;
1076
+ }
1077
+ }
1078
+
1079
+ & > .stl-ui-accordion + .stl-ui-accordion {
1080
+ margin-top: 0;
1081
+ border-top-width: 0;
1082
+ border-top-left-radius: 0;
1083
+ border-top-right-radius: 0;
1084
+
1085
+ & > .stl-ui-accordion__summary {
1086
+ border-top-left-radius: 0;
1087
+ border-top-right-radius: 0;
1088
+ }
1089
+ }
1090
+
1091
+ /* Ensure the darker border always extends all the way around the active element, instead of
1092
+ * leaving an inactive border-top */
1093
+
1094
+ .stl-ui-accordion:not(:hover, [open]):has(+ .stl-ui-accordion:hover) {
1095
+ border-bottom-width: 0;
1096
+ }
1097
+ .stl-ui-accordion:not(:hover, [open]) + .stl-ui-accordion:hover {
1098
+ border-top-width: 1px;
1099
+ }
1100
+
1101
+ .stl-ui-accordion:not([open]):has(+ .stl-ui-accordion[open]) {
1102
+ border-bottom-width: 0;
1103
+ }
1104
+ .stl-ui-accordion:not([open]) + .stl-ui-accordion[open] {
1105
+ border-top-width: 1px;
1106
+ }
1107
+ }
1108
+
1109
+ .stl-ui-steps {
1110
+ padding-left: 0;
1111
+ }
1112
+
1113
+ .stl-ui-steps__step {
1114
+ --step-icon-width: 24px;
1115
+ --step-padding: 12px;
1116
+ list-style: none;
1117
+ position: relative;
1118
+ padding: var(--step-padding);
1119
+ /* Space for the custom marker */
1120
+ padding-left: calc(var(--step-icon-width) + var(--step-padding));
1121
+ margin: 0;
1122
+
1123
+ &::before {
1124
+ content: counter(list-item);
1125
+ position: absolute;
1126
+ left: 0;
1127
+ top: var(--step-padding);
1128
+ width: var(--step-icon-width);
1129
+ height: var(--step-icon-width);
1130
+ border: 1px solid var(--stl-color-border);
1131
+ border-radius: 100%;
1132
+ display: flex;
1133
+ align-items: center;
1134
+ justify-content: center;
1135
+ background: var(--stl-color-bg);
1136
+ z-index: 1;
1137
+ font-size: var(--stl-typography-text-body-xs);
1138
+ font-style: normal;
1139
+ font-weight: 600;
1140
+ line-height: 100%;
1141
+ }
1142
+
1143
+ &::after {
1144
+ content: '';
1145
+ position: absolute;
1146
+ left: calc(var(--step-icon-width) / 2 - 0.5px);
1147
+ top: calc(var(--step-icon-width) + var(--step-padding));
1148
+ bottom: calc(-1 * (var(--step-padding)));
1149
+ width: 1px;
1150
+ background: var(--stl-color-border);
1151
+ }
1152
+
1153
+ &:last-child {
1154
+ padding-bottom: 0;
1155
+
1156
+ /* No line after the last step */
1157
+ &::after {
1158
+ display: none;
1159
+ }
1160
+ }
1161
+ }
1162
+ .stl-ui-steps__step-title {
1163
+ font-weight: 600;
1164
+ }
1165
+
1166
+ .stl-ui-steps__step-content {
1167
+ margin-bottom: 0;
1168
+ margin-top: 4px;
1169
+ }
1170
+
1171
+ .stl-ui-badge {
1172
+ display: inline-flex;
1173
+ align-items: center;
1174
+ gap: 0.125em;
1175
+
1176
+ font-weight: 500;
1177
+ letter-spacing: normal;
1178
+
1179
+ border-width: 1px;
1180
+ border-style: solid;
1181
+
1182
+ /* sizes */
1183
+ &.stl-ui-badge--size-sm {
1184
+ height: 20px;
1185
+ font-size: var(--stl-typography-scale-xs);
1186
+ padding: 0 2px;
1187
+ border-radius: var(--stl-ui-layout-border-radius-xs);
1188
+ --stl-ui-badge-icon-size: 14px;
1189
+ }
1190
+ &,
1191
+ &.stl-ui-badge--size-md {
1192
+ height: 24px;
1193
+ font-size: var(--stl-typography-scale-sm);
1194
+ padding: 0 4px;
1195
+ border-radius: var(--stl-ui-layout-border-radius-xs);
1196
+ --stl-ui-badge-icon-size: 14px;
1197
+ }
1198
+ &.stl-ui-badge--size-lg {
1199
+ height: 32px;
1200
+ font-size: var(--stl-typography-scale-md);
1201
+ padding: 0 6px;
1202
+ border-radius: var(--stl-ui-layout-border-radius-sml);
1203
+ --stl-ui-badge-icon-size: 16px;
1204
+ }
1205
+
1206
+ /* intents */
1207
+ &.stl-ui-badge--intent-none {
1208
+ background-color: var(--stl-color-ui-background);
1209
+ color: var(--stl-color-foreground-muted);
1210
+ --stl-ui-badge-icon-opacity: var(--stl-opacity-level-040);
1211
+ border-color: var(--stl-color-border);
1212
+ }
1213
+ &.stl-ui-badge--intent-info {
1214
+ background-color: var(--stl-color-muted-background);
1215
+ color: var(--stl-color-foreground);
1216
+ border-color: var(--stl-color-border);
1217
+ &.stl-ui-badge--solid {
1218
+ background-color: var(--stl-color-inverse-background);
1219
+ color: var(--stl-color-inverse-foreground);
1220
+ --stl-ui-badge-icon-opacity: 1;
1221
+ }
1222
+ }
1223
+ &.stl-ui-badge--intent-success,
1224
+ &.stl-ui-badge--http-get {
1225
+ background-color: var(--stl-color-green-muted-background);
1226
+ color: var(--stl-color-green-foreground);
1227
+ border-color: var(--stl-color-green-border);
1228
+ &.stl-ui-badge--solid {
1229
+ background-color: var(--stl-color-green-inverse-background);
1230
+ color: var(--stl-color-green-inverse-foreground);
1231
+ }
1232
+ }
1233
+ &.stl-ui-badge--intent-warning {
1234
+ background-color: var(--stl-color-yellow-muted-background);
1235
+ color: var(--stl-color-yellow-foreground);
1236
+ border-color: var(--stl-color-yellow-border);
1237
+ &.stl-ui-badge--solid {
1238
+ background-color: var(--stl-color-yellow-inverse-background);
1239
+ color: var(--stl-color-yellow-inverse-foreground);
1240
+ }
1241
+ }
1242
+ &.stl-ui-badge--intent-danger,
1243
+ &.stl-ui-badge--http-delete {
1244
+ background-color: var(--stl-color-red-muted-background);
1245
+ color: var(--stl-color-red-foreground);
1246
+ border-color: var(--stl-color-red-border);
1247
+ &.stl-ui-badge--solid {
1248
+ background-color: var(--stl-color-red-inverse-background);
1249
+ color: var(--stl-color-red-inverse-foreground);
1250
+ }
1251
+ }
1252
+ &.stl-ui-badge--intent-note,
1253
+ &.stl-ui-badge--http-post {
1254
+ background-color: var(--stl-color-blue-muted-background);
1255
+ color: var(--stl-color-blue-foreground);
1256
+ border-color: var(--stl-color-blue-border);
1257
+ &.stl-ui-badge--solid {
1258
+ background-color: var(--stl-color-blue-inverse-background);
1259
+ color: var(--stl-color-blue-inverse-foreground);
1260
+ }
1261
+ }
1262
+ &.stl-ui-badge--intent-tip {
1263
+ background-color: var(--stl-color-purple-muted-background);
1264
+ color: var(--stl-color-purple-foreground);
1265
+ border-color: var(--stl-color-purple-border);
1266
+ &.stl-ui-badge--solid {
1267
+ background-color: var(--stl-color-purple-inverse-background);
1268
+ color: var(--stl-color-purple-inverse-foreground);
1269
+ }
1270
+ }
1271
+ &.stl-ui-badge--intent-accent {
1272
+ background-color: var(--stl-color-accent-muted-background);
1273
+ color: var(--stl-color-accent-foreground);
1274
+ border-color: var(--stl-color-accent-border);
1275
+ &.stl-ui-badge--solid {
1276
+ background-color: var(--stl-color-accent-inverse-background);
1277
+ color: var(--stl-color-accent-inverse-foreground);
1278
+ }
1279
+ }
1280
+ &.stl-ui-badge--http-put,
1281
+ &.stl-ui-badge--http-patch {
1282
+ background-color: var(--stl-color-orange-muted-background);
1283
+ color: var(--stl-color-orange-foreground);
1284
+ border-color: var(--stl-color-orange-border);
1285
+ &.stl-ui-badge--solid {
1286
+ background-color: var(--stl-color-orange-inverse-background);
1287
+ color: var(--stl-color-orange-inverse-foreground);
1288
+ }
1289
+ }
1290
+
1291
+ /* Text content */
1292
+ .stl-ui-badge__content {
1293
+ display: inline-block;
1294
+ padding: 0.25em;
1295
+ }
1296
+
1297
+ /* Icons */
1298
+ svg {
1299
+ flex-shrink: 0;
1300
+ display: inline-block;
1301
+ color: rgb(from currentColor r g b / 1);
1302
+ opacity: var(--stl-ui-badge-icon-opacity, 1);
1303
+ width: var(--stl-ui-badge-icon-size);
1304
+ height: var(--stl-ui-badge-icon-size);
1305
+ }
1306
+ &:has(> svg:only-child) {
1307
+ padding: 0;
1308
+ aspect-ratio: 1;
1309
+ justify-content: center;
1310
+ }
1311
+
1312
+ /* HTTP */
1313
+ &.stl-ui-badge--http {
1314
+ font-family: var(--stl-typography-font-mono);
1315
+ font-variant-numeric: tabular-nums;
1316
+ text-transform: uppercase;
1317
+ }
1318
+ }
1319
+
1320
+ /* design system variables */
1321
+
1322
+ /* components */
1323
+
1324
+
1325
+ /* Resets */
1326
+ .stldocs-root {
1327
+ line-height: 1.5;
1328
+ letter-spacing: -0.01em;
1329
+
1330
+ a:not(.stl-ui-callout a) {
1331
+ color: inherit;
1332
+ cursor: pointer;
1333
+ text-decoration: none;
1334
+ }
1335
+
1336
+ *,
1337
+ *::before,
1338
+ *::after {
1339
+ box-sizing: border-box;
1340
+ }
1341
+
1342
+ /* Markdown content should get prose styling */
1343
+ :where(h1, h2, h3, h4, h5):where(:not(.stldocs-markdown, .stldocs-markdown *)) {
1344
+ display: block;
1345
+ color: var(--stl-color-foreground);
1346
+ font-weight: 500;
1347
+ line-height: var(--stl-typography-line-height-heading);
1348
+ font-family: var(--stl-typography-font-heading);
1349
+ }
1350
+
1351
+ display: block;
1352
+ margin: 0;
1353
+ }
1354
+
1355
+ .sl-markdown-content {
1356
+ .stldocs-root
1357
+ :not(a, strong, em, del, span, input, code, br)
1358
+ + :not(a, strong, em, del, span, input, code, br, :where(.not-content *)) {
1359
+ margin-top: 0;
1360
+ }
1361
+ }
1362
+
1363
+ :root {
1364
+ --stldocs-color-selected: var(--stl-color-muted-background);
1365
+ --stldocs-color-bg-inline-code: var(--stl-color-muted-background);
1366
+
1367
+ --stldocs-content-width: 720px;
1368
+ --stldocs-content-padding: 16px;
1369
+
1370
+ --stldocs-color-http-get-bg: var(--stl-color-green-muted-background);
1371
+ --stldocs-color-http-get: var(--stl-color-green-foreground);
1372
+ --stldocs-color-http-put-bg: var(--stl-color-orange-muted-background);
1373
+ --stldocs-color-http-put: var(--stl-color-orange-foreground);
1374
+ --stldocs-color-http-post-bg: var(--stl-color-blue-muted-background);
1375
+ --stldocs-color-http-post: var(--stl-color-blue-foreground);
1376
+ --stldocs-color-http-delete-bg: var(--stl-color-red-muted-background);
1377
+ --stldocs-color-http-delete: var(--stl-color-red-foreground);
1378
+
1379
+ --stldocs-syntax-color-green: var(--stl-color-green-foreground);
1380
+ --stldocs-syntax-color-orange: var(--stl-color-orange-foreground);
1381
+ --stldocs-syntax-color-purple: var(--stl-color-purple-foreground);
1382
+ --stldocs-syntax-color-blue: var(--stl-color-blue-foreground);
1383
+
1384
+ --stldocs-expander-margin-shift: 24px;
1385
+ --stldocs-expander-right-margin: 8px;
1386
+ --stldocs-title-padding-y: 2.5rem;
1387
+ --stldocs-color-backdrop-overlay: var(--stl-color-muted-background);
1388
+ }
1389
+
1390
+ /* Design System Defaults */
1391
+ .stldocs-root {
1392
+ font-family: var(--stl-typography-font);
1393
+ background-color: var(--stl-color-background);
1394
+ color: var(--stl-color-foreground);
1395
+ letter-spacing: -0.01em;
1396
+
1397
+ :where(h1) {
1398
+ font-size: var(--stl-typography-text-h1);
1399
+ letter-spacing: -0.03em;
1400
+ }
1401
+
1402
+ :where(h2) {
1403
+ font-size: var(--stl-typography-text-h2);
1404
+ letter-spacing: -0.03em;
1405
+ }
1406
+
1407
+ :where(h3) {
1408
+ font-size: var(--stl-typography-text-h3);
1409
+ letter-spacing: -0.02em;
1410
+ }
1411
+
1412
+ :where(h4) {
1413
+ font-size: var(--stl-typography-text-h4);
1414
+ letter-spacing: -0.02em;
1415
+ }
1416
+
1417
+ :where(h5) {
1418
+ font-size: var(--stl-typography-text-h5);
1419
+ letter-spacing: -0.02em;
1420
+ }
1421
+ }
1422
+
1423
+ /* Color mapping for types */
1424
+ .stldocs-root {
1425
+ .stldocs-text-keyword {
1426
+ color: var(--stl-color-foreground-muted);
1427
+ }
1428
+
1429
+ .stldocs-property-type,
1430
+ .stldocs-property-declaration,
1431
+ .stldocs-type:not(.stldocs-property-typename .stldocs-type) {
1432
+ font-family: var(--stl-typography-font-mono);
1433
+
1434
+ .stldocs-type-keyword {
1435
+ color: var(--stldocs-syntax-color-orange);
1436
+ }
1437
+
1438
+ .stldocs-type-string {
1439
+ color: var(--stldocs-syntax-color-green);
1440
+ }
1441
+
1442
+ .stldocs-type-brace,
1443
+ .stldocs-type-bracket,
1444
+ .stldocs-type-plain,
1445
+ .stldocs-text-operator,
1446
+ .stldocs-text-punctuation,
1447
+ .stldocs-truncation,
1448
+ .stldocs-type-array {
1449
+ color: var(--stl-color-foreground-reduced);
1450
+ }
1451
+
1452
+ .stldocs-type-plain {
1453
+ font-family: var(--stl-typography-font);
1454
+ }
1455
+
1456
+ .stldocs-type-reference {
1457
+ color: var(--stldocs-syntax-color-blue);
1458
+ font-weight: 600;
1459
+ a:hover {
1460
+ text-decoration: underline;
1461
+ }
1462
+ }
1463
+
1464
+ .stldocs-literal-string {
1465
+ color: var(--stldocs-syntax-color-green);
1466
+ }
1467
+
1468
+ .stldocs-literal-numeric {
1469
+ color: var(--stldocs-syntax-color-orange);
1470
+ }
1471
+
1472
+ .stldocs-text-identifier {
1473
+ font-family: var(--stl-typography-font-mono);
1474
+ color: var(--stl-color-foreground);
1475
+ }
1476
+
1477
+ .stldocs-type-propertyname .stldocs-text-identifier {
1478
+ font-family: var(--stl-typography-font);
1479
+ font-weight: 600;
1480
+ }
1481
+ }
1482
+
1483
+ [data-stldocs-language='http'],
1484
+ [data-stldocs-language='cli'] {
1485
+ .stldocs-property-type,
1486
+ .stldocs-property-declaration {
1487
+ .stldocs-truncation,
1488
+ .stldocs-type-array,
1489
+ .stldocs-text-punctuation {
1490
+ font-family: var(--stl-typography-font);
1491
+ }
1492
+ }
1493
+ }
1494
+ }
1495
+
1496
+ /* HTTP Method Color Settings */
1497
+ .stldocs-root .stldocs-method-route,
1498
+ .stldocs-root .stldocs-sidebar-method {
1499
+ [data-method='get'] {
1500
+ background: var(--stldocs-color-http-get-bg);
1501
+ color: var(--stldocs-color-http-get);
1502
+ border-color: var(--stldocs-color-http-get);
1503
+ }
1504
+
1505
+ [data-method='post'] {
1506
+ background: var(--stldocs-color-http-post-bg);
1507
+ color: var(--stldocs-color-http-post);
1508
+ border-color: var(--stldocs-color-http-post);
1509
+ }
1510
+
1511
+ [data-method='patch'],
1512
+ [data-method='put'] {
1513
+ background: var(--stldocs-color-http-put-bg);
1514
+ color: var(--stldocs-color-http-put);
1515
+ border-color: var(--stldocs-color-http-put);
1516
+ }
1517
+
1518
+ [data-method='delete'] {
1519
+ background: var(--stldocs-color-http-delete-bg);
1520
+ color: var(--stldocs-color-http-delete);
1521
+ border-color: var(--stldocs-color-http-delete);
1522
+ }
1523
+ }
1524
+
1525
+ /* Generic expand/collapse button */
1526
+ .stldocs-root .stldocs-expander {
1527
+ &[data-stldocs-expander-muted='true'] {
1528
+ .stldocs-icon {
1529
+ visibility: hidden;
1530
+ }
1531
+
1532
+ &:hover {
1533
+ .stldocs-icon {
1534
+ visibility: visible;
1535
+ }
1536
+ }
1537
+ }
1538
+
1539
+ .stldocs-expander-summary {
1540
+ cursor: pointer;
1541
+ display: flex;
1542
+ /* padding: 0.4rem 0; */
1543
+
1544
+ & > .stldocs-expander-summary-icon {
1545
+ margin-right: 8px;
1546
+ transform: translateX(-0.5px) translateY(-0.5px);
1547
+
1548
+ & > .stldocs-icon {
1549
+ vertical-align: middle;
1550
+ color: var(--stl-color-foreground-muted);
1551
+ background-color: var(--stl-color-background);
1552
+ }
1553
+
1554
+ & > :last-child {
1555
+ display: none;
1556
+ }
1557
+ }
1558
+ }
1559
+
1560
+ &[open],
1561
+ &[data-open='true'] {
1562
+ & > .stldocs-expander-summary {
1563
+ .stldocs-type-preview[data-stldocs-type-preview='properties'] .stldocs-type-preview-content {
1564
+ display: none;
1565
+ }
1566
+
1567
+ & > .stldocs-expander-summary-icon {
1568
+ & > :first-child {
1569
+ display: none;
1570
+ }
1571
+
1572
+ & > :last-child {
1573
+ display: inline;
1574
+ }
1575
+ }
1576
+ }
1577
+
1578
+ & > .stldocs-expander-content {
1579
+ margin-left: var(--stldocs-expander-margin-shift);
1580
+ line-height: 150%;
1581
+
1582
+ & > .stldocs-property-children {
1583
+ border-left: 1px solid var(--stl-color-border);
1584
+ padding-left: 16px;
1585
+
1586
+ .stldocs-expander {
1587
+ margin-left: calc(-1 * var(--stldocs-expander-margin-shift));
1588
+ padding-right: var(--stldocs-expander-right-margin);
1589
+ }
1590
+ }
1591
+ }
1592
+ }
1593
+ }
1594
+
1595
+ /* Markdown content */
1596
+ .stldocs-root .stldocs-content {
1597
+ a {
1598
+ color: var(--stl-color-link-foreground);
1599
+ }
1600
+
1601
+ code:not(pre code) {
1602
+ font-family: var(--stl-typography-font-mono);
1603
+ border-radius: 4px;
1604
+ padding: 0 4px;
1605
+ background-color: var(--stldocs-color-bg-inline-code);
1606
+ word-break: break-all;
1607
+ font-size: 0.84rem;
1608
+ }
1609
+
1610
+ strong {
1611
+ font-weight: bold;
1612
+ }
1613
+
1614
+ em {
1615
+ font-style: italic;
1616
+ }
1617
+
1618
+ p {
1619
+ display: block;
1620
+ margin: 0 0 1em;
1621
+
1622
+ &:last-child {
1623
+ margin: 0;
1624
+ }
1625
+ }
1626
+
1627
+ li {
1628
+ margin-bottom: 0.25rem;
1629
+ display: list-item;
1630
+ }
1631
+
1632
+ ol,
1633
+ ul {
1634
+ display: block;
1635
+ list-style-type: initial;
1636
+ margin-left: 2rem;
1637
+ margin-bottom: 0.8rem;
1638
+ }
1639
+
1640
+ ol {
1641
+ list-style-type: decimal;
1642
+ }
1643
+
1644
+ hr {
1645
+ margin-bottom: 16px;
1646
+ border: none;
1647
+ border-bottom: 1px solid var(--stl-color-border);
1648
+ }
1649
+ }
1650
+
1651
+ .stldocs-root .stldocs-input {
1652
+ border: 1px solid var(--stl-color-border);
1653
+ background: var(--stl-color-background);
1654
+ border-radius: var(--stl-ui-layout-border-radius-sml);
1655
+ display: flex;
1656
+
1657
+ &:focus-within {
1658
+ border-color: var(--stl-color-accent);
1659
+ }
1660
+
1661
+ &.stldocs-input-disabled {
1662
+ opacity: 0.5;
1663
+ }
1664
+
1665
+ input,
1666
+ .stldocs-masked-input-display {
1667
+ flex-grow: 1;
1668
+ border: none;
1669
+ background-color: transparent;
1670
+ margin: 0.5rem;
1671
+ font-size: 1rem;
1672
+ letter-spacing: initial;
1673
+ white-space: pre;
1674
+ contain: content;
1675
+ padding: 0;
1676
+
1677
+ &:focus {
1678
+ outline: none;
1679
+ }
1680
+ }
1681
+
1682
+ .stldocs-masked-input-wrapper {
1683
+ &:focus-within .stldocs-masked-input-display,
1684
+ &:not(:focus-within) input {
1685
+ opacity: 0;
1686
+ }
1687
+ }
1688
+
1689
+ .stldocs-masked-input-obscured {
1690
+ -webkit-text-stroke: currentColor 0.2em;
1691
+ }
1692
+
1693
+ .stldocs-icon {
1694
+ margin: auto 0.25rem auto 0.75rem;
1695
+ }
1696
+ }
1697
+
1698
+ .stldocs-root .stldocs-masked-input-wrapper {
1699
+ display: flex;
1700
+ flex-grow: 1;
1701
+ position: relative;
1702
+ font-family: var(--stl-typography-font-mono);
1703
+ }
1704
+
1705
+ .stldocs-root .stldocs-masked-input-display {
1706
+ position: absolute;
1707
+ inset: 0;
1708
+ display: flex;
1709
+ align-items: center;
1710
+ pointer-events: none; /* so you can click through to the real input */
1711
+ }
1712
+
1713
+ .stldocs-root .stldocs-listview {
1714
+ overflow-y: scroll;
1715
+
1716
+ .stldocs-listview-item:not(:last-child) {
1717
+ border-bottom: 1px solid var(--stl-color-border);
1718
+ }
1719
+
1720
+ [data-stldocs-listview-selected='true'] > :first-child {
1721
+ background:
1722
+ linear-gradient(var(--stl-color-ui-background-hover), var(--stl-color-ui-background-hover)),
1723
+ linear-gradient(var(--stl-color-ui-background), var(--stl-color-ui-background));
1724
+ border-radius: 0.5rem;
1725
+ }
1726
+ }
1727
+
1728
+ .stldocs-root {
1729
+ .stldocs-tooltip-host {
1730
+ display: inline-block;
1731
+ }
1732
+
1733
+ .stldocs-tooltip-content {
1734
+ border: 1px solid var(--stl-color-border);
1735
+ background: var(--stl-color-background);
1736
+ border-radius: 8px;
1737
+ padding: 0.2rem 0.4rem;
1738
+
1739
+ * {
1740
+ font-size: 0.8rem !important;
1741
+ }
1742
+
1743
+ position: absolute;
1744
+
1745
+ transition:
1746
+ opacity 0.3s ease-in-out,
1747
+ visibility 0.3s step-end 0.3s;
1748
+ visibility: hidden;
1749
+ opacity: 0;
1750
+
1751
+ max-width: 400px;
1752
+ max-height: 300px;
1753
+ overflow: auto;
1754
+
1755
+ .stldocs-property-description {
1756
+ display: none;
1757
+ }
1758
+ }
1759
+
1760
+ .stldocs-tooltip:hover .stldocs-tooltip-content {
1761
+ transition-delay: 0s, 0s;
1762
+ visibility: visible;
1763
+ opacity: 1;
1764
+ }
1765
+ }
1766
+
1767
+ .stldocs-root {
1768
+ .stldocs-breadcrumbs {
1769
+ display: flex;
1770
+ align-items: center;
1771
+ gap: 0.5rem;
1772
+
1773
+ svg {
1774
+ width: 1rem;
1775
+ min-width: 1rem;
1776
+ stroke: var(--stl-color-foreground-reduced);
1777
+ opacity: 0.25;
1778
+ margin: 0;
1779
+ }
1780
+
1781
+ .stldocs-breadcrumbs-non-link,
1782
+ .stldocs-breadcrumbs-link {
1783
+ color: var(--stl-color-foreground-reduced);
1784
+ font-size: var(--stl-typography-scale-sm);
1785
+ line-height: 150%;
1786
+ text-decoration: none;
1787
+ }
1788
+
1789
+ .stldocs-breadcrumbs-link:hover {
1790
+ text-decoration: underline;
1791
+ color: var(--stl-color-foreground);
1792
+ }
1793
+
1794
+ .stldocs-breadcrumbs-item {
1795
+ display: flex;
1796
+ align-items: center;
1797
+ gap: 0.5rem;
1798
+ margin: 0;
1799
+ }
1800
+ }
1801
+ }
1802
+
1803
+ .stldocs-root .stldocs-expand-toggle {
1804
+ font-size: var(--stl-typography-scale-sm);
1805
+ display: flex;
1806
+ flex-grow: 1;
1807
+ justify-content: flex-end;
1808
+ user-select: none;
1809
+
1810
+ &[data-stldocs-property-toggle-expanded='false'] {
1811
+ .stldocs-expand-toggle-content:last-child {
1812
+ display: none;
1813
+ }
1814
+ }
1815
+
1816
+ &[data-stldocs-property-toggle-expanded='true'] {
1817
+ .stldocs-expand-toggle-content:first-child {
1818
+ display: none;
1819
+ }
1820
+ }
1821
+
1822
+ .stldocs-expand-toggle-content {
1823
+ cursor: pointer;
1824
+
1825
+ .stldocs-icon {
1826
+ vertical-align: middle;
1827
+ }
1828
+ }
1829
+ }
1830
+
1831
+ /* Overview page content */
1832
+ .stldocs-root .stldocs-overview {
1833
+ .stldocs-overview-header {
1834
+ padding: var(--stldocs-title-padding-y) 0;
1835
+
1836
+ & > * {
1837
+ max-width: var(--stldocs-content-width);
1838
+ margin: auto 0;
1839
+ }
1840
+
1841
+ .stldocs-overview-header-info {
1842
+ margin-top: 16px;
1843
+ height: 40px;
1844
+ display: flex;
1845
+ align-items: center;
1846
+
1847
+ .stldocs-overview-header-info-timestamp {
1848
+ font-size: var(--stl-typography-scale-xs);
1849
+ color: var(--stl-color-foreground);
1850
+ opacity: 50%;
1851
+ }
1852
+ }
1853
+ }
1854
+
1855
+ .stldocs-resource {
1856
+ padding: 2rem 0;
1857
+
1858
+ &:not([data-stl-resource-language='terraform']) .stldocs-resource-content {
1859
+ max-width: var(--stldocs-content-width);
1860
+ margin: auto 0;
1861
+ }
1862
+
1863
+ .stldocs-resource-header {
1864
+ display: flex;
1865
+ flex-direction: column;
1866
+ gap: 16px;
1867
+ opacity: 85%;
1868
+
1869
+ .stldocs-resource-title {
1870
+ .stldocs-icon {
1871
+ margin-left: 8px;
1872
+ color: var(--stl-color-foreground-muted);
1873
+ vertical-align: middle;
1874
+ display: inline;
1875
+ height: 1rem;
1876
+ }
1877
+
1878
+ .stldocs-resource-title-segment {
1879
+ margin-right: 8px;
1880
+ color: var(--stl-color-foreground);
1881
+
1882
+ &:not(:last-child) {
1883
+ color: var(--stl-color-foreground-reduced);
1884
+ font-weight: 400;
1885
+ }
1886
+ }
1887
+ }
1888
+
1889
+ .stldocs-resource-name {
1890
+ font-family: var(--stl-typography-font-mono);
1891
+ color: var(--stl-color-foreground);
1892
+ }
1893
+
1894
+ .stldocs-resource-description {
1895
+ font-size: var(--stl-typography-scale-base);
1896
+ color: var(--stl-color-foreground-reduced);
1897
+ line-height: 150%;
1898
+ }
1899
+ }
1900
+
1901
+ .stldocs-resource-content {
1902
+ .stldocs-resource-content-group {
1903
+ display: flex;
1904
+ flex-direction: column;
1905
+
1906
+ .stldocs-resource-content-group-model-title {
1907
+ padding-top: var(--stldocs-content-padding);
1908
+ color: var(--stl-color-foreground-muted);
1909
+ font-weight: normal;
1910
+ font-size: 1rem;
1911
+ padding-bottom: 0.5rem;
1912
+ display: flex;
1913
+ }
1914
+
1915
+ .stldocs-resource-content-group-name {
1916
+ color: var(--stl-color-foreground-muted);
1917
+ }
1918
+
1919
+ .stldocs-resource-content-properties {
1920
+ margin-left: calc(-1 * var(--stldocs-expander-margin-shift));
1921
+ }
1922
+ }
1923
+ }
1924
+ }
1925
+
1926
+ > .stldocs-resource:nth-child(2) {
1927
+ padding-top: 0;
1928
+ }
1929
+ }
1930
+
1931
+ /* Overview page method summary */
1932
+ .stldocs-root .stldocs-overview .stldocs-method-summary,
1933
+ .stldocs-root .stldocs-overview .stldocs-method {
1934
+ padding: var(--stldocs-content-padding) 0;
1935
+
1936
+ .stldocs-method-header {
1937
+ display: flex;
1938
+ flex-direction: column;
1939
+ gap: 4px;
1940
+
1941
+ .stldocs-method-title {
1942
+ margin-bottom: 2px;
1943
+
1944
+ a:hover {
1945
+ text-decoration: underline;
1946
+ }
1947
+ }
1948
+
1949
+ .stldocs-method-route {
1950
+ padding-top: 4px;
1951
+ }
1952
+ }
1953
+
1954
+ .stldocs-method-signature {
1955
+ max-width: var(--stldocs-content-width);
1956
+ overflow: hidden;
1957
+ text-overflow: ellipsis;
1958
+ }
1959
+
1960
+ .stldocs-method-description {
1961
+ color: var(--stl-color-foreground-muted);
1962
+ height: 1.7rem;
1963
+ overflow-y: hidden;
1964
+ line-height: 1.7rem;
1965
+ padding-bottom: var(--stldocs-content-padding);
1966
+
1967
+ .stldocs-content > * {
1968
+ white-space: nowrap;
1969
+ overflow-x: hidden;
1970
+ text-overflow: ellipsis;
1971
+ }
1972
+ }
1973
+ }
1974
+
1975
+ /* Method route rendering is shared between method previews and pages */
1976
+ .stldocs-root .stldocs-method-header .stldocs-method-route {
1977
+ display: flex;
1978
+ gap: 4px;
1979
+ padding: 0;
1980
+
1981
+ .stldocs-method-route-endpoint {
1982
+ font-family: var(--stl-typography-font-mono);
1983
+ font-size: var(--stl-typography-scale-sm);
1984
+ color: var(--stl-color-foreground-reduced);
1985
+ align-content: center;
1986
+ line-height: 120%;
1987
+ overflow: hidden;
1988
+ text-overflow: ellipsis;
1989
+ white-space: nowrap;
1990
+ }
1991
+ }
1992
+
1993
+ /* Models and properties */
1994
+ .stldocs-root .stldocs-property,
1995
+ .stldocs-root .stldocs-model {
1996
+ display: flex;
1997
+ flex-direction: column;
1998
+ gap: 0.8rem;
1999
+ padding: 0.5rem 0;
2000
+ font-size: var(--stl-typography-scale-sm);
2001
+
2002
+ .stldocs-expander-summary-content {
2003
+ width: 100%;
2004
+ }
2005
+
2006
+ .stldocs-property-header {
2007
+ align-items: first baseline;
2008
+ display: flex;
2009
+ gap: 0.5rem;
2010
+ flex-wrap: wrap;
2011
+ }
2012
+
2013
+ .stldocs-property-info {
2014
+ display: flex;
2015
+ flex-direction: column;
2016
+
2017
+ & > .stldocs-property-type > .stldocs-text-identifier {
2018
+ color: var(--stl-color-foreground);
2019
+ }
2020
+ }
2021
+
2022
+ .stldocs-property-type {
2023
+ font-family: var(--stl-typography-font-mono);
2024
+ color: var(--stl-color-foreground-muted);
2025
+ }
2026
+
2027
+ .stldocs-property-type,
2028
+ .stldocs-property-declaration {
2029
+ .stldocs-type-preview[data-stldocs-type-preview='union']
2030
+ .stldocs-type-preview[data-stldocs-type-preview='properties'] {
2031
+ display: none;
2032
+ }
2033
+ }
2034
+
2035
+ .stldocs-property-deprecated {
2036
+ font-family: var(--stl-typography-font);
2037
+ color: var(--stl-color-red-foreground);
2038
+ font-size: var(--stl-typography-scale-sm);
2039
+ font-weight: 600;
2040
+ }
2041
+
2042
+ .stldocs-property-deprecated-message {
2043
+ color: var(--stl-color-red-foreground);
2044
+ font-size: var(--stl-typography-scale-sm);
2045
+ }
2046
+ .stldocs-property-declaration {
2047
+ white-space: nowrap;
2048
+ overflow: hidden;
2049
+ text-overflow: ellipsis;
2050
+ min-width: 0;
2051
+ max-width: max-content;
2052
+ border-radius: var(--stl-ui-layout-border-radius-xs);
2053
+ padding-inline: var(--stl-ui-layout-border-radius-xs);
2054
+ margin-left: calc(-1 * var(--stl-ui-layout-border-radius-xs));
2055
+ background-color: transparent;
2056
+ transition: 0.1s background-color ease;
2057
+
2058
+ .stldocs-property-deprecated {
2059
+ margin-right: 0.44rem;
2060
+ }
2061
+ }
2062
+ .stldocs-property-info:is(:target, .stldocs-property-highlighted) .stldocs-property-declaration {
2063
+ background-color: var(--stl-color-accent-muted-background);
2064
+ transition: 0.1s background-color ease;
2065
+ }
2066
+
2067
+ .stldocs-property-description,
2068
+ .stldocs-property-title {
2069
+ font-size: var(--stl-typography-scale-sm);
2070
+ color: var(--stl-color-foreground-reduced);
2071
+
2072
+ .stldocs-content {
2073
+ color: inherit;
2074
+ font-size: inherit;
2075
+ }
2076
+ }
2077
+
2078
+ .stldocs-property-name {
2079
+ font-family: var(--stl-typography-font-mono);
2080
+ color: var(--stl-color-foreground);
2081
+ font-weight: 700;
2082
+ }
2083
+
2084
+ .stldocs-property-annotation {
2085
+ color: var(--stl-color-foreground-reduced);
2086
+ }
2087
+
2088
+ .stldocs-property-typename {
2089
+ font-size: var(--stl-typography-scale-xs);
2090
+ color: var(--stl-color-foreground-muted);
2091
+ line-height: 175%;
2092
+
2093
+ .stldocs-type-reference {
2094
+ font-size: 0.8rem;
2095
+ color: var(--stldocs-syntax-color-blue);
2096
+ font-weight: 600;
2097
+ }
2098
+ }
2099
+
2100
+ .stldocs-property-type {
2101
+ .stldocs-truncation {
2102
+ margin-right: 0.2rem;
2103
+ white-space: nowrap;
2104
+ }
2105
+ }
2106
+
2107
+ .stldocs-property-badges {
2108
+ display: flex;
2109
+ font-size: 0.85rem;
2110
+ gap: 0.5rem;
2111
+ text-transform: lowercase;
2112
+ line-height: 1.5rem;
2113
+ }
2114
+
2115
+ .stldocs-property-constraints {
2116
+ display: flex;
2117
+ }
2118
+
2119
+ .stldocs-property-constraint {
2120
+ color: var(--stl-color-foreground-reduced);
2121
+
2122
+ &:not(:last-child) {
2123
+ &::after {
2124
+ content: ', ';
2125
+ margin-right: 0.4rem;
2126
+ color: var(--stl-color-foreground-reduced);
2127
+ }
2128
+ }
2129
+
2130
+ .stldocs-property-constraint-name {
2131
+ color: var(--stl-color-foreground-reduced);
2132
+
2133
+ &::after {
2134
+ content: ':';
2135
+ margin-right: 0.4rem;
2136
+ }
2137
+ }
2138
+
2139
+ .stldocs-property-constraint-value {
2140
+ background-color: var(--stldocs-color-bg-inline-code);
2141
+ color: var(--stl-color-foreground-reduced);
2142
+ font-family: var(--stl-typography-font-mono);
2143
+ border-radius: 4px;
2144
+ padding: 3px 4px;
2145
+ }
2146
+ }
2147
+
2148
+ .stldocs-property-type:not(:first-child) {
2149
+ font-size: 0.8rem;
2150
+ }
2151
+
2152
+ .stldocs-property .stldocs-property-type {
2153
+ font-size: 0.8rem;
2154
+ }
2155
+ }
2156
+
2157
+ .stldocs-root {
2158
+ .stldocs-properties {
2159
+ display: flex;
2160
+ flex-direction: column;
2161
+ line-height: 150%;
2162
+ }
2163
+ }
2164
+
2165
+ .stldocs-root .stldocs-property {
2166
+ padding: 0.2rem 0;
2167
+
2168
+ [open] > .stldocs-expander-summary {
2169
+ padding-bottom: 0;
2170
+ }
2171
+ }
2172
+
2173
+ .stldocs-root .stldocs-property:not(.stldocs-property .stldocs-property) > .stldocs-property-info {
2174
+ margin-left: var(--stldocs-expander-margin-shift);
2175
+ }
2176
+
2177
+ .stldocs-root .stldocs-tooltip-content .stldocs-property {
2178
+ gap: 0.1rem;
2179
+ padding: 0.1rem !important;
2180
+ border: 0;
2181
+ }
2182
+
2183
+ .stldocs-root .stldocs-badge {
2184
+ display: inline-block;
2185
+ background-color: var(--stl-color-muted-background);
2186
+ padding: 0 0.5rem;
2187
+ border-radius: 4px;
2188
+ font-size: var(--stl-typography-scale-xs);
2189
+ font-weight: 500;
2190
+
2191
+ &[data-badge-id='deprecated'] {
2192
+ background-color: var(--stl-color-red-muted-background);
2193
+ color: var(--stl-color-red-foreground);
2194
+ text-transform: capitalize;
2195
+ }
2196
+
2197
+ &[data-badge-id='optional'] {
2198
+ background-color: var(--stl-color-muted-background);
2199
+ text-transform: capitalize;
2200
+ }
2201
+ }
2202
+
2203
+ /* Method Pages */
2204
+
2205
+ .stldocs-root .stldocs-method-signature {
2206
+ font-family: var(--stl-typography-font-mono);
2207
+ font-size: var(--stl-typography-scale-sm);
2208
+ color: var(--stl-color-foreground-muted);
2209
+ white-space: pre-wrap;
2210
+ word-wrap: break-word;
2211
+ font-weight: 400;
2212
+ line-height: 1.5rem;
2213
+
2214
+ .stldocs-signature-qualified {
2215
+ color: var(--stl-color-foreground-reduced);
2216
+ font-weight: 400;
2217
+ }
2218
+
2219
+ .stldocs-signature-name {
2220
+ color: var(--stl-color-foreground);
2221
+ font-weight: 600;
2222
+ }
2223
+
2224
+ .stldoc-signature-params {
2225
+ .stldocs-text-identifier {
2226
+ color: var(--stl-color-foreground);
2227
+ }
2228
+ }
2229
+
2230
+ .stldocs-type {
2231
+ color: var(--stl-color-foreground);
2232
+ }
2233
+
2234
+ .stldocs-type-preview[data-stldocs-type-preview='properties'] {
2235
+ display: none;
2236
+ }
2237
+
2238
+ .stldocs-method-badges {
2239
+ margin-top: 1rem;
2240
+ }
2241
+ }
2242
+
2243
+ .stldocs-root .stldocs-method {
2244
+ .stldocs-method-content-column {
2245
+ display: contents;
2246
+ }
2247
+
2248
+ .stldocs-method-header {
2249
+ padding: var(--stldocs-title-padding-y) var(--stldocs-content-padding) var(--stldocs-content-padding);
2250
+
2251
+ .stldocs-method-title {
2252
+ font-size: var(--stl-typography-text-h1);
2253
+ letter-spacing: -0.03em;
2254
+ }
2255
+
2256
+ .stldocs-method-signature {
2257
+ margin-top: 0.75rem;
2258
+ }
2259
+
2260
+ .stldocs-method-route {
2261
+ padding-top: 12px;
2262
+ }
2263
+ }
2264
+
2265
+ .stldocs-method-description {
2266
+ grid-area: 1 / 1 / 2 / 2;
2267
+ padding-bottom: var(--stldocs-content-padding);
2268
+
2269
+ code {
2270
+ line-height: 150%;
2271
+ font-size: 0.93rem;
2272
+ }
2273
+ }
2274
+
2275
+ .stldocs-method-example {
2276
+ margin-top: 1rem;
2277
+ grid-area: 2 / 1 / 3 / 2;
2278
+
2279
+ .stldocs-snippet-multi-response {
2280
+ display: none;
2281
+ }
2282
+ }
2283
+
2284
+ .stldocs-snippet-multi-response {
2285
+ border: 1px solid var(--stl-color-border);
2286
+ border-radius: 12px;
2287
+
2288
+ .stldocs-snippet {
2289
+ background-color: transparent;
2290
+ }
2291
+
2292
+ .stldocs-snippet-code .shiki {
2293
+ padding: 0.5rem;
2294
+ }
2295
+ }
2296
+
2297
+ .stldocs-method-info {
2298
+ padding: var(--stldocs-content-padding) 0;
2299
+ grid-area: 3 / 1 / 4 / 2;
2300
+ display: flex;
2301
+ gap: 2rem;
2302
+ flex-direction: column;
2303
+ margin-top: 2.5rem;
2304
+ font-size: var(--stl-typography-scale-sm);
2305
+
2306
+ h5 {
2307
+ display: flex;
2308
+ }
2309
+ }
2310
+
2311
+ /* TODO(soon): we shouldn't be copying these styles here. */
2312
+ .stldocs-method-available-languages a {
2313
+ color: var(--stl-color-link-foreground);
2314
+ text-decoration-color: rgb(from currentColor r g b / calc(alpha * var(--stl-opacity-level-040)));
2315
+ transition: text-decoration-color 0.1s ease-out;
2316
+ }
2317
+
2318
+ .stldocs-method-info-section {
2319
+ display: flex;
2320
+ gap: 0.5rem;
2321
+ flex-direction: column;
2322
+
2323
+ h5 .stl-ui-badge {
2324
+ vertical-align: bottom;
2325
+ margin-left: 0.5em;
2326
+ margin-top: -1px;
2327
+ transform: translateY(1px);
2328
+ }
2329
+ }
2330
+
2331
+ .stldocs-method-content-column {
2332
+ display: contents;
2333
+ }
2334
+
2335
+ .stldocs-method-body {
2336
+ display: grid;
2337
+ gap: 2rem;
2338
+ grid-template-columns: minmax(0, 1fr);
2339
+ grid-template-rows: repeat(4, auto);
2340
+ padding: var(--stldocs-content-padding) 0;
2341
+
2342
+ .stldocs-method-description p {
2343
+ color: var(--stl-color-foreground-reduced);
2344
+ line-height: 150%;
2345
+ }
2346
+
2347
+ h5 {
2348
+ font-weight: 400;
2349
+ color: var(--stl-color-foreground-muted);
2350
+ font-size: var(--stl-typography-scale-base);
2351
+ }
2352
+
2353
+ .stldocs-method-parameters,
2354
+ .stldocs-method-parameters,
2355
+ .stldocs-method-returns {
2356
+ margin-left: calc(-1 * var(--stldocs-expander-margin-shift));
2357
+ }
2358
+
2359
+ .stldocs-method-parameters {
2360
+ display: flex;
2361
+ flex-direction: column;
2362
+ gap: 0.5rem;
2363
+ }
2364
+
2365
+ .stldocs-method-parameters h5 {
2366
+ margin-left: var(--stldocs-expander-margin-shift);
2367
+ }
2368
+
2369
+ .stldocs-terraform-resource-title {
2370
+ font-family: var(--stl-typography-font-mono);
2371
+ font-size: 1.1rem;
2372
+ white-space: nowrap;
2373
+ overflow: hidden;
2374
+ text-overflow: ellipsis;
2375
+ }
2376
+ }
2377
+
2378
+ .stldocs-snippet {
2379
+ top: calc(var(--sl-nav-height) + 1rem);
2380
+ position: sticky;
2381
+ z-index: 5;
2382
+
2383
+ font-size: var(--stl-typography-scale-sm);
2384
+ font-family: var(--stl-typography-font-mono);
2385
+
2386
+ padding: 0.5rem;
2387
+ border-radius: calc(12px + 0.5rem);
2388
+ display: flex;
2389
+ flex-direction: column;
2390
+ background-color: var(--stl-color-faint-background);
2391
+ border: 1px solid var(--stl-color-border-faint);
2392
+
2393
+ .stldocs-snippet-request {
2394
+ background-color: var(--stl-color-background);
2395
+ --shiki-background: var(--stl-color-background);
2396
+ border: 1px solid var(--stl-color-border);
2397
+ border-radius: 12px;
2398
+ position: relative;
2399
+
2400
+ .stldocs-snippet-code {
2401
+ border-bottom-left-radius: 12px;
2402
+ border-bottom-right-radius: 12px;
2403
+ }
2404
+ }
2405
+
2406
+ .stldocs-snippet-request-title {
2407
+ display: flex;
2408
+ justify-content: space-between;
2409
+ background-color: var(--stl-color-background);
2410
+ color: var(--stl-color-foreground-reduced);
2411
+ border-bottom: 1px solid var(--stl-color-border);
2412
+ border-top-right-radius: 12px;
2413
+ border-top-left-radius: 12px;
2414
+ padding: 0.5rem;
2415
+ padding-left: 0.75rem;
2416
+ gap: 0.5rem;
2417
+ font-family: var(--stl-typography-font);
2418
+
2419
+ .stldocs-snippet-request-title-method {
2420
+ flex-grow: 1;
2421
+ min-width: 0;
2422
+ }
2423
+
2424
+ .stldocs-snippet-request-title-method,
2425
+ .stldocs-snippet-request-title-content {
2426
+ display: flex;
2427
+ gap: 0.5rem;
2428
+ align-items: center;
2429
+ }
2430
+
2431
+ h3 {
2432
+ font-weight: 500;
2433
+ font-style: normal;
2434
+ line-height: 100%;
2435
+ font-size: inherit;
2436
+ font-family: var(--stl-typography-font);
2437
+ color: var(--stl-color-foreground);
2438
+ margin: 0;
2439
+
2440
+ overflow: hidden;
2441
+ white-space: nowrap;
2442
+ text-overflow: ellipsis;
2443
+ }
2444
+
2445
+ @media (min-width: 1280px) {
2446
+ .stldocs-snippet-request-title-label {
2447
+ display: none;
2448
+ }
2449
+ }
2450
+
2451
+ .stldocs-icon {
2452
+ width: 16px;
2453
+ }
2454
+
2455
+ .stldocs-snippet-request-title-content {
2456
+ font-family: var(--stl-typography-font);
2457
+ display: flex;
2458
+ gap: 0.5rem;
2459
+
2460
+ .stldocs-snippet-request-title-language {
2461
+ position: relative;
2462
+ color: var(--stl-color-foreground);
2463
+ cursor: pointer;
2464
+ display: flex;
2465
+ align-items: center;
2466
+ gap: 4px;
2467
+
2468
+ select {
2469
+ z-index: 5;
2470
+ padding-right: 25px;
2471
+ display: flex;
2472
+ align-items: center;
2473
+ }
2474
+ }
2475
+ }
2476
+ }
2477
+
2478
+ .stldocs-snippet-response-pane {
2479
+ padding: 0.5rem;
2480
+ display: none;
2481
+ --shiki-background: var(--stl-color-faint-background);
2482
+
2483
+ &.stldocs-snippet-response-pane-active {
2484
+ display: block;
2485
+ }
2486
+
2487
+ .stldocs-snippet-code {
2488
+ padding: 0;
2489
+ }
2490
+ }
2491
+
2492
+ .stldocs-snippet-response {
2493
+ margin-top: 1rem;
2494
+ }
2495
+ }
2496
+
2497
+ .stldocs-method-response-column {
2498
+ display: flex;
2499
+ flex-direction: column;
2500
+ gap: 1rem;
2501
+ margin-top: 2.5rem;
2502
+ }
2503
+
2504
+ .stldocs-snippet-code {
2505
+ width: 0;
2506
+ min-width: 100%;
2507
+ overflow: auto;
2508
+ display: block;
2509
+ white-space: preserve nowrap;
2510
+ padding: 1rem;
2511
+ max-height: 560px;
2512
+ font-size: var(--stl-typography-scale-sm);
2513
+ line-height: 1.5;
2514
+ transition: height 240ms ease;
2515
+ will-change: height;
2516
+ scrollbar-color: var(--stl-color-border) transparent;
2517
+
2518
+ pre,
2519
+ .shiki {
2520
+ margin: 0;
2521
+ padding: 0;
2522
+ width: max-content;
2523
+ min-width: 100%;
2524
+ }
2525
+
2526
+ pre.shiki {
2527
+ counter-reset: codeblock-line;
2528
+
2529
+ .line {
2530
+ counter-increment: codeblock-line;
2531
+
2532
+ &::before {
2533
+ content: counter(codeblock-line);
2534
+ color: var(--stl-color-foreground-muted);
2535
+ margin-right: 1rem;
2536
+ opacity: 0.5;
2537
+ display: inline-flex;
2538
+ width: 1rem;
2539
+ text-align: right;
2540
+ }
2541
+
2542
+ &.ellipsis {
2543
+ color: var(--stl-color-foreground-muted) !important;
2544
+ opacity: 0.5;
2545
+ }
2546
+ }
2547
+ }
2548
+ }
2549
+
2550
+ .stldocs-snippet-footer {
2551
+ border-top: 1px solid var(--stl-color-border);
2552
+ padding: 0.5rem;
2553
+ }
2554
+
2555
+ .stldocs-snippet-response-tab {
2556
+ display: flex;
2557
+ gap: 0.5rem;
2558
+ overflow-x: auto;
2559
+
2560
+ .stldocs-snippet-response-tab-item {
2561
+ flex: 1;
2562
+ border-bottom: 2px solid transparent;
2563
+ min-width: 160px;
2564
+ height: 40px;
2565
+
2566
+ button {
2567
+ width: 100%;
2568
+ white-space: nowrap;
2569
+ overflow: hidden;
2570
+ text-overflow: ellipsis;
2571
+ vertical-align: middle;
2572
+ color: var(--stl-color-foreground-reduced);
2573
+ }
2574
+
2575
+ button:hover {
2576
+ background-color: var(--stl-color-background-hover);
2577
+ }
2578
+ }
2579
+
2580
+ .stldocs-snippet-response-tab-item-active {
2581
+ border-color: var(--stl-color-accent-inverse-background);
2582
+
2583
+ button {
2584
+ color: var(--stl-color-foreground);
2585
+ }
2586
+ }
2587
+
2588
+ &.stldocs-snippet-response-tab-single-return {
2589
+ background-color: var(--stl-color-faint-background);
2590
+ border-top-left-radius: 12px;
2591
+ border-top-right-radius: 12px;
2592
+
2593
+ .stldocs-snippet-response-tab-item {
2594
+ border: none;
2595
+ color: var(--stl-color-foreground-reduced);
2596
+ font-weight: 400;
2597
+ display: flex;
2598
+
2599
+ button {
2600
+ justify-content: flex-start;
2601
+ cursor: default;
2602
+ height: auto;
2603
+
2604
+ &:hover {
2605
+ background-color: transparent;
2606
+ }
2607
+ }
2608
+ }
2609
+ }
2610
+ }
2611
+
2612
+ .stldocs-markdown {
2613
+ :first-child {
2614
+ margin-top: 0;
2615
+ }
2616
+ }
2617
+ }
2618
+
2619
+ .stldocs-root .stldocs-language-block {
2620
+ background-color: var(--stl-color-background);
2621
+ border: 1px solid var(--stl-color-border);
2622
+ border-radius: 8px;
2623
+ padding: 16px;
2624
+ display: flex;
2625
+ flex-direction: column;
2626
+ gap: 8px;
2627
+
2628
+ .stldocs-language-block-content {
2629
+ display: flex;
2630
+ gap: 12px;
2631
+
2632
+ .stldocs-language-block-content-icon {
2633
+ display: inline-flex;
2634
+ border: 1px solid var(--stl-color-border);
2635
+ border-radius: 4px;
2636
+ padding: 12px;
2637
+ aspect-ratio: 1 / 1;
2638
+ }
2639
+
2640
+ .stldocs-language-block-content-info {
2641
+ .stldocs-language-block-content-info-language {
2642
+ line-height: 120%;
2643
+ font-weight: 600;
2644
+ }
2645
+
2646
+ .stldocs-language-block-content-info-version {
2647
+ font-family: var(--stl-typography-font-mono);
2648
+ font-size: var(--stl-typography-scale-sm);
2649
+ font-weight: 200;
2650
+ }
2651
+ }
2652
+ }
2653
+
2654
+ .stldocs-language-block-install {
2655
+ display: flex;
2656
+ font-family: var(--stl-typography-font-mono);
2657
+ font-size: var(--stl-typography-scale-sm);
2658
+ background-color: var(--stldocs-color-bg-inline-code);
2659
+ border: 1px solid var(--stl-color-border);
2660
+ color: var(--stl-color-foreground-reduced);
2661
+ border-radius: 4px;
2662
+ padding: 4px 8px;
2663
+
2664
+ pre {
2665
+ flex-grow: 1;
2666
+ white-space: nowrap;
2667
+ overflow-x: hidden;
2668
+ text-overflow: ellipsis;
2669
+ display: flex;
2670
+ align-items: center;
2671
+ }
2672
+
2673
+ svg {
2674
+ vertical-align: middle;
2675
+ min-width: 16px;
2676
+ }
2677
+ }
2678
+
2679
+ .stldocs-language-block-links {
2680
+ display: flex;
2681
+ gap: 8px;
2682
+
2683
+ & > a:last-child {
2684
+ flex-grow: 1;
2685
+ }
2686
+ }
2687
+ }
2688
+
2689
+ @media (min-width: 1280px) {
2690
+ .stldocs-root .stldocs-method.stldocs-method-double-pane {
2691
+ .stldocs-method-example {
2692
+ flex: 1 1 500px;
2693
+ max-width: 100%;
2694
+ width: 100%;
2695
+ }
2696
+
2697
+ .stldocs-method-body {
2698
+ flex-direction: row;
2699
+ gap: 2rem;
2700
+ }
2701
+ }
2702
+ }
2703
+
2704
+ /* Don't put expanders in the margin on mobile */
2705
+ @media (max-width: 50rem) {
2706
+ .stldocs-root .stldocs-method-body {
2707
+ padding: 1rem var(--stldocs-content-padding) !important;
2708
+ }
2709
+
2710
+ .stldocs-root .stldocs-resource .stldocs-resource-content {
2711
+ padding: 0 var(--stldocs-content-padding) !important;
2712
+
2713
+ .stldocs-resource-content-properties {
2714
+ margin-left: 0 !important;
2715
+ }
2716
+ }
2717
+ }
2718
+
2719
+ @media (min-width: 50rem) {
2720
+ .stldocs-root .stldocs-method {
2721
+ .stldocs-method-header {
2722
+ padding: var(--stldocs-title-padding-y) 0;
2723
+ }
2724
+ }
2725
+ }
2726
+
2727
+ @media (min-width: 1280px) {
2728
+ .stldocs-root {
2729
+ .stldocs-method.stldocs-method-double-pane .stldocs-method-content-column {
2730
+ display: block;
2731
+ }
2732
+
2733
+ .stldocs-method.stldocs-method-double-pane .stldocs-method-body {
2734
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2735
+ grid-template-areas: 'description example';
2736
+ grid-template-rows: unset;
2737
+
2738
+ .stldocs-snippet {
2739
+ .stldocs-snippet-response {
2740
+ display: block;
2741
+ }
2742
+
2743
+ .stldocs-snippet-response-pane {
2744
+ position: relative;
2745
+ padding: 0;
2746
+ --shiki-background: transparent;
2747
+
2748
+ &::before {
2749
+ content: '';
2750
+ flex: 0 0 1rem;
2751
+ width: calc(100% + 2rem);
2752
+ height: 1px;
2753
+ position: absolute;
2754
+ top: calc(-0.5rem);
2755
+ left: -1rem;
2756
+ background-color: var(--stl-color-border-faint);
2757
+ }
2758
+ }
2759
+
2760
+ .stldocs-snippet-multi-response {
2761
+ display: block;
2762
+ padding: 0;
2763
+ }
2764
+ }
2765
+
2766
+ .stldocs-method-response-column {
2767
+ display: none;
2768
+ margin-top: 0;
2769
+ }
2770
+
2771
+ .stldocs-method-content-column {
2772
+ grid-area: description;
2773
+ }
2774
+
2775
+ .stldocs-method-example {
2776
+ margin-top: 0;
2777
+ grid-area: example;
2778
+
2779
+ .stldocs-snippet-multi-response {
2780
+ display: block;
2781
+ border: none;
2782
+
2783
+ .stldocs-snippet {
2784
+ background-color: transparent;
2785
+ border: none;
2786
+ }
2787
+ }
2788
+ }
2789
+
2790
+ .stldocs-method-info {
2791
+ grid-area: unset;
2792
+ margin-top: 0;
2793
+ }
2794
+
2795
+ .stldocs-snippet-response-tab {
2796
+ margin-bottom: 0.5rem;
2797
+
2798
+ &.stldocs-snippet-response-tab-single-return {
2799
+ background-color: transparent;
2800
+
2801
+ .stldocs-snippet-response-tab-item {
2802
+ button {
2803
+ &:hover {
2804
+ background-color: transparent;
2805
+ }
2806
+ }
2807
+ }
2808
+ }
2809
+ }
2810
+ }
2811
+ }
2812
+ }
2813
+
2814
+ .stldocs-sidebar {
2815
+ font-family: var(--stl-typography-font);
2816
+ font-size: var(--stl-typography-scale-sm);
2817
+ /* Remove background color from stldocs-root reset. */
2818
+ background-color: transparent;
2819
+ --stldocs-sidebar-item-padding-inline: 12px;
2820
+ --stldocs-sidebar-item-padding-block: 6px;
2821
+ --stldocs-sidebar-indent: 12px;
2822
+
2823
+ ul,
2824
+ summary {
2825
+ list-style-type: none;
2826
+ }
2827
+
2828
+ .stldocs-expander-summary,
2829
+ .stldocs-sidebar-entry-group > a {
2830
+ font-weight: 500;
2831
+ }
2832
+
2833
+ .stldocs-expander-summary {
2834
+ display: flex;
2835
+ align-items: center;
2836
+ user-select: none;
2837
+
2838
+ .stldocs-expander-summary-icon {
2839
+ margin-left: 4px;
2840
+ opacity: 0.65;
2841
+ transition:
2842
+ opacity 0.1s ease-out,
2843
+ transform 0.1s ease-out;
2844
+ border-radius: 4px;
2845
+
2846
+ &:hover {
2847
+ background-color: var(--stl-color-background-hover);
2848
+ }
2849
+ }
2850
+
2851
+ span[aria-hidden='true'] {
2852
+ opacity: 0;
2853
+ }
2854
+ }
2855
+
2856
+ .stldocs-sidebar-entry-group {
2857
+ position: relative;
2858
+
2859
+ /* Anchor is positioned over the <details>. */
2860
+ > a {
2861
+ position: absolute;
2862
+ top: 0;
2863
+ left: 0;
2864
+ right: 0;
2865
+ padding-block: var(--stldocs-sidebar-item-padding-block);
2866
+ padding-inline: var(--stldocs-sidebar-item-padding-inline);
2867
+ }
2868
+ }
2869
+
2870
+ .stldocs-sidebar-expander[open] > .stldocs-expander-summary .stldocs-expander-summary-icon {
2871
+ opacity: 1;
2872
+ transform: rotate(90deg);
2873
+ }
2874
+
2875
+ /* List items. */
2876
+ .stldocs-sidebar-entry,
2877
+ .stldocs-expander-summary {
2878
+ margin: 0;
2879
+ border-radius: 8px;
2880
+ }
2881
+
2882
+ .stldocs-expander-summary,
2883
+ .stldocs-sidebar-entry-link a {
2884
+ padding: var(--stldocs-sidebar-item-padding-block) var(--stldocs-sidebar-item-padding-inline);
2885
+ }
2886
+
2887
+ summary.stldocs-expander-summary,
2888
+ .stldocs-sidebar-entry-link a {
2889
+ cursor: pointer;
2890
+ }
2891
+
2892
+ .stldocs-sidebar-entry-link a:hover {
2893
+ color: var(--stl-color-foreground);
2894
+ }
2895
+
2896
+ .stldocs-sidebar-entry-link a {
2897
+ color: var(--stl-color-foreground-reduced);
2898
+ font-weight: 400;
2899
+ display: flex;
2900
+ text-decoration: none;
2901
+ span {
2902
+ font-weight: inherit;
2903
+ }
2904
+
2905
+ &:hover {
2906
+ text-decoration: underline;
2907
+ text-decoration-color: var(--stl-color-foreground-reduced);
2908
+ }
2909
+ &[aria-current='page'] {
2910
+ font-weight: 500;
2911
+ color: var(--stl-color-foreground);
2912
+ }
2913
+ }
2914
+
2915
+ /* When the sidebar entry has a link, disable pointer events on the <details> text
2916
+ so that they pass through to the <a>. */
2917
+ .stldocs-sidebar-entry-group:has(> a) .stldocs-expander-summary > span {
2918
+ pointer-events: none;
2919
+ }
2920
+
2921
+ .stldocs-sidebar-entry-link:has(> a:is(:hover, [aria-current='page'])),
2922
+ .stldocs-sidebar-entry-group:has(> a:is(:hover, [aria-current='page']))
2923
+ > .stldocs-sidebar-expander
2924
+ > .stldocs-expander-summary,
2925
+ summary.stldocs-expander-summary:hover {
2926
+ background-color: var(--stl-color-background-hover);
2927
+ }
2928
+
2929
+ /* Nested list items have flat left edge. */
2930
+ .stldocs-sidebar-list .stldocs-sidebar-list :is(.stldocs-expander-summary, .stldocs-sidebar-entry) {
2931
+ border-start-start-radius: 0;
2932
+ border-end-start-radius: 0;
2933
+ }
2934
+
2935
+ .stldocs-sidebar-list {
2936
+ padding: 0;
2937
+ }
2938
+
2939
+ .stldocs-sidebar-list .stldocs-sidebar-list .stldocs-sidebar-entry {
2940
+ border-inline-start: 1px solid var(--stl-color-border-faint);
2941
+ margin-inline-start: var(--stldocs-sidebar-indent);
2942
+
2943
+ > a[aria-current='page'] {
2944
+ border-inline-start: 2px solid var(--stl-color-accent-border-strong);
2945
+ margin-left: -1px;
2946
+ }
2947
+ }
2948
+
2949
+ /* Icon positioning within links/groups. */
2950
+ .stldocs-sidebar-entry-link > a,
2951
+ .stldocs-sidebar-entry-group > a,
2952
+ .stldocs-sidebar-entry-group .stldocs-expander-summary > span {
2953
+ display: flex;
2954
+ align-items: center;
2955
+ gap: 8px;
2956
+ }
2957
+
2958
+ /* Hover/active states for HTTP badges. */
2959
+ a[aria-current='page'] .stl-ui-badge--http {
2960
+ &.stl-ui-badge--http-get {
2961
+ background-color: var(--stl-color-green-inverse-background);
2962
+ color: var(--stl-color-green-inverse-foreground);
2963
+ }
2964
+
2965
+ &.stl-ui-badge--http-post {
2966
+ background-color: var(--stl-color-blue-inverse-background);
2967
+ color: var(--stl-color-blue-inverse-foreground);
2968
+ }
2969
+
2970
+ &.stl-ui-badge--http-patch,
2971
+ &.stl-ui-badge--http-put {
2972
+ background-color: var(--stl-color-orange-inverse-background);
2973
+ color: var(--stl-color-orange-inverse-foreground);
2974
+ }
2975
+
2976
+ &.stl-ui-badge--http-delete {
2977
+ background-color: var(--stl-color-red-inverse-background);
2978
+ color: var(--stl-color-red-inverse-foreground);
2979
+ }
2980
+ }
2981
+
2982
+ a:hover:not([aria-current='page']) .stl-ui-badge--http {
2983
+ &.stl-ui-badge--http-get {
2984
+ background-color: var(--stl-color-green-muted-background-hover);
2985
+ }
2986
+
2987
+ &.stl-ui-badge--http-post {
2988
+ background-color: var(--stl-color-blue-muted-background-hover);
2989
+ }
2990
+
2991
+ &.stl-ui-badge--http-patch,
2992
+ &.stl-ui-badge--http-put {
2993
+ background-color: var(--stl-color-orange-muted-background-hover);
2994
+ }
2995
+
2996
+ &.stl-ui-badge--http-delete {
2997
+ background-color: var(--stl-color-red-muted-background-hover);
2998
+ }
2999
+ }
3000
+ }
3001
+
3002
+ .stldocs-root .stldocs-search-form {
3003
+ display: flex;
3004
+ flex-direction: column;
3005
+
3006
+ .stldocs-search-filter {
3007
+ margin-top: 0.5rem;
3008
+ display: flex;
3009
+ gap: 0.5rem;
3010
+
3011
+ .stl-ui-button {
3012
+ flex: 1 1 auto;
3013
+ padding: 0;
3014
+ display: flex;
3015
+ gap: 0.5em;
3016
+
3017
+ .stldocs-search-filter-count {
3018
+ font-size: 0.75rem;
3019
+ background-color: var(--stldocs-color-selected);
3020
+ border-radius: 100vmax;
3021
+ padding: 0 0.35rem;
3022
+ line-height: 1.5;
3023
+ font-variant-numeric: tabular-nums;
3024
+ }
3025
+
3026
+ svg {
3027
+ flex: 0 0 auto;
3028
+ }
3029
+ }
3030
+
3031
+ @media not (min-width: 50rem) {
3032
+ svg {
3033
+ display: block;
3034
+ }
3035
+ .stldocs-search-filter-label,
3036
+ .stldocs-search-filter-count {
3037
+ display: none;
3038
+ }
3039
+ }
3040
+ }
3041
+
3042
+ .stldocs-search-result {
3043
+ display: flex;
3044
+ flex-direction: column;
3045
+ gap: 0.5rem;
3046
+ cursor: pointer;
3047
+ margin: 0.5rem 0;
3048
+ padding: 0.5rem 0.8rem;
3049
+
3050
+ mark {
3051
+ color: var(--stl-color-foreground);
3052
+ background-color: var(--stl-color-text-selection-background);
3053
+ box-shadow: inset 0 -1px rgb(from var(--stl-color-text-selection-background) r g b / 1);
3054
+ }
3055
+
3056
+ &[data-stldocs-search-result='resource'] {
3057
+ .stldocs-search-result-resource-info {
3058
+ display: flex;
3059
+ gap: 0.5rem;
3060
+
3061
+ .stldocs-search-result-resource-title {
3062
+ font-weight: 600;
3063
+ }
3064
+
3065
+ .stldocs-search-result-resource-path {
3066
+ font-family: var(--stl-typography-font-mono);
3067
+ color: var(--stl-color-foreground);
3068
+ overflow: hidden;
3069
+ text-overflow: ellipsis;
3070
+ white-space: nowrap;
3071
+ }
3072
+ }
3073
+ }
3074
+
3075
+ &[data-stldocs-search-result='http_method'] {
3076
+ h3.stldocs-method-title {
3077
+ font-size: 1.2rem;
3078
+ }
3079
+
3080
+ .stldocs-method-header {
3081
+ display: flex;
3082
+ flex-direction: column;
3083
+ gap: 0.5rem;
3084
+
3085
+ .stldocs-method-signature {
3086
+ font-family: var(--stl-typography-font-mono);
3087
+ color: var(--stl-color-foreground);
3088
+ white-space: pre-wrap;
3089
+ word-break: break-word;
3090
+
3091
+ .stldocs-text-identifier {
3092
+ color: var(--stl-color-foreground);
3093
+ }
3094
+ }
3095
+
3096
+ .stldocs-method-route {
3097
+ font-size: 0.8rem;
3098
+
3099
+ .stldocs-method-route-endpoint {
3100
+ font-family: var(--stl-typography-font-mono);
3101
+ color: var(--stl-color-foreground-muted);
3102
+ }
3103
+ }
3104
+ }
3105
+
3106
+ .stldocs-method-description {
3107
+ color: var(--stl-color-foreground);
3108
+ }
3109
+ }
3110
+
3111
+ &[data-stldocs-search-result='property'] {
3112
+ .stldocs-property-info {
3113
+ display: flex;
3114
+ flex-direction: column;
3115
+ gap: 0.5rem;
3116
+ }
3117
+
3118
+ .stldocs-property-header {
3119
+ display: flex;
3120
+ gap: 0.5rem;
3121
+
3122
+ .stldocs-property-name {
3123
+ font-family: var(--stl-typography-font-mono);
3124
+ }
3125
+
3126
+ .stldocs-property-typename {
3127
+ color: var(--stl-color-foreground-muted);
3128
+ }
3129
+ }
3130
+
3131
+ .stldocs-property-description {
3132
+ color: var(--stl-color-foreground);
3133
+ }
3134
+ }
3135
+
3136
+ &[data-stldocs-search-result='model'] {
3137
+ .stldocs-property-info {
3138
+ display: flex;
3139
+ flex-direction: column;
3140
+ gap: 0.5rem;
3141
+
3142
+ .stldocs-property-type {
3143
+ font-family: var(--stl-typography-font-mono);
3144
+ color: var(--stl-color-foreground);
3145
+ }
3146
+ }
3147
+ }
3148
+
3149
+ &[data-stldocs-search-result='guide'] {
3150
+ .stldocs-search-result-guide-title {
3151
+ font-size: 1.2rem;
3152
+ }
3153
+
3154
+ .stldocs-search-result-guide-excerpt {
3155
+ color: var(--stl-color-foreground);
3156
+ }
3157
+
3158
+ .stldocs-search-breadcrumb-item {
3159
+ text-transform: capitalize;
3160
+ }
3161
+ }
3162
+ }
3163
+
3164
+ .stldocs-search-breadcrumb {
3165
+ display: flex;
3166
+ gap: 0.5rem;
3167
+ font-size: 0.8rem;
3168
+ overflow: hidden;
3169
+ text-overflow: ellipsis;
3170
+ white-space: nowrap;
3171
+
3172
+ .stldocs-search-breadcrumb-item {
3173
+ color: var(--stl-color-foreground-muted);
3174
+ }
3175
+
3176
+ .stldocs-icon {
3177
+ margin-top: auto;
3178
+ margin-bottom: auto;
3179
+ }
3180
+ }
3181
+
3182
+ .stldocs-search-disabled-state-container {
3183
+ margin: auto;
3184
+ text-align: center;
3185
+ }
3186
+ }
3187
+
3188
+ .stldocs-root .stldocs-search-modal {
3189
+ height: calc(100svh - var(--sl-nav-height));
3190
+ width: 100%;
3191
+ overflow: hidden;
3192
+ display: none;
3193
+ padding: 1rem 1rem 0;
3194
+ inset: 0;
3195
+ background-color: var(--stl-color-background);
3196
+ color: var(--stl-color-foreground);
3197
+ gap: 0.5rem;
3198
+ border: none;
3199
+
3200
+ &:popover-open,
3201
+ &[data-stldocs-modal-open='true'] {
3202
+ display: flex;
3203
+ flex-direction: column;
3204
+ position: fixed;
3205
+ top: var(--sl-nav-height);
3206
+ }
3207
+
3208
+ .stldocs-search-form {
3209
+ height: 100%;
3210
+ width: 100%;
3211
+
3212
+ .stldocs-listview {
3213
+ margin: 0.8rem 0 0;
3214
+ height: 100%;
3215
+ padding-bottom: 1rem;
3216
+ }
3217
+ }
3218
+
3219
+ .stldocs-search-modal-close-button {
3220
+ display: flex;
3221
+ justify-content: flex-end;
3222
+ }
3223
+
3224
+ &::backdrop {
3225
+ background-color: var(--stldocs-color-backdrop-overlay);
3226
+ -webkit-backdrop-filter: blur(0.25rem);
3227
+ backdrop-filter: blur(0.25rem);
3228
+ top: var(--sl-nav-height);
3229
+ }
3230
+ }
3231
+
3232
+ @keyframes stldocs-spinner-rotate {
3233
+ 100% {
3234
+ transform: rotate(360deg);
3235
+ }
3236
+ }
3237
+
3238
+ @media (min-width: 50rem) {
3239
+ .stldocs-root {
3240
+ .stldocs-search-modal {
3241
+ height: 100%;
3242
+ width: 1024px;
3243
+ max-width: calc(100% - 4rem);
3244
+ max-height: 80vh;
3245
+ margin: 3rem auto;
3246
+ border: 1px solid var(--stl-color-border);
3247
+ /* nest with input that has --stl-ui-layout-border-radius-sml */
3248
+ border-radius: calc(var(--stl-ui-layout-border-radius-sml) + 0.9rem);
3249
+
3250
+ .stldocs-search-modal-close-button {
3251
+ display: none;
3252
+ }
3253
+
3254
+ &:popover-open,
3255
+ &[data-stldocs-modal-open='true'] {
3256
+ top: 0;
3257
+ }
3258
+
3259
+ &::backdrop {
3260
+ top: 0;
3261
+ }
3262
+ }
3263
+ }
3264
+ }
3265
+
3266
+ /* For standalone usage of docs-ui */
3267
+
3268
+ /*
3269
+ * TODO: replace with real import once rolldown css support matures further
3270
+ * This import gets bundled so this import will should need to be resolved at runtime
3271
+ */
3272
+
3273
+