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

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