@stainless-api/docs-ui 0.1.0-beta.46 → 0.1.0-beta.48

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 (122) hide show
  1. package/dist/{breadcrumbs-ChGb9Ckx.d.ts → breadcrumbs-TNRag6Vy.d.ts} +2 -2
  2. package/dist/{component-generics-CDshlns_.d.ts → component-generics-Cs7jFHLq.d.ts} +2 -2
  3. package/dist/components/MaskedInput.d.ts +1 -1
  4. package/dist/components/MaskedInput.js +1 -1
  5. package/dist/components/breadcrumbs.d.ts +1 -1
  6. package/dist/components/breadcrumbs.js +9 -13
  7. package/dist/components/icons.d.ts +11 -11
  8. package/dist/components/icons.js +1 -1
  9. package/dist/components/index.d.ts +9 -10
  10. package/dist/components/index.js +9 -13
  11. package/dist/components/method.d.ts +1 -1
  12. package/dist/components/method.js +9 -13
  13. package/dist/components/overview.d.ts +1 -1
  14. package/dist/components/overview.js +9 -13
  15. package/dist/components/primitives.d.ts +1 -1
  16. package/dist/components/primitives.js +9 -13
  17. package/dist/components/properties.d.ts +1 -1
  18. package/dist/components/properties.js +9 -13
  19. package/dist/components/sdk.d.ts +1 -2
  20. package/dist/components/sdk.js +9 -13
  21. package/dist/components/sidebar.d.ts +1 -1
  22. package/dist/components/sidebar.js +9 -13
  23. package/dist/components/snippets.d.ts +2 -3
  24. package/dist/components/snippets.js +9 -13
  25. package/dist/contexts/component-generics.d.ts +1 -1
  26. package/dist/contexts/component-generics.js +1 -1
  27. package/dist/contexts/component-types.d.ts +10 -11
  28. package/dist/contexts/component.d.ts +13 -14
  29. package/dist/contexts/component.js +9 -13
  30. package/dist/contexts/docs.d.ts +1 -1
  31. package/dist/contexts/docs.js +1 -1
  32. package/dist/contexts/index.d.ts +16 -18
  33. package/dist/contexts/index.js +9 -13
  34. package/dist/contexts/markdown.d.ts +1 -1
  35. package/dist/contexts/markdown.js +2 -2
  36. package/dist/contexts/navigation.d.ts +1 -2
  37. package/dist/contexts/navigation.js +1 -1
  38. package/dist/contexts/search.d.ts +1 -3
  39. package/dist/contexts/search.js +9 -13
  40. package/dist/contexts/use-components.d.ts +9 -10
  41. package/dist/contexts/use-components.js +2 -2
  42. package/dist/{contexts-HUUrbJAJ.js → contexts-D3ClFTt3.js} +366 -90
  43. package/dist/{docs-OpxXmURB.d.ts → docs-DGpIHBGY.d.ts} +3 -3
  44. package/dist/{index-CkgJvy8B.d.ts → index-BPQVqZ6-.d.ts} +113 -79
  45. package/dist/{index-Ck2YxPj3.d.ts → index-D_zoydBM.d.ts} +6 -6
  46. package/dist/{index-BhNE0nV0.d.ts → index-Dt1TxDPe.d.ts} +8 -8
  47. package/dist/index.d.ts +19 -20
  48. package/dist/index.js +12 -13
  49. package/dist/languages/csharp.d.ts +11 -0
  50. package/dist/languages/csharp.js +11 -0
  51. package/dist/languages/go.d.ts +10 -11
  52. package/dist/languages/go.js +9 -13
  53. package/dist/languages/http.d.ts +10 -11
  54. package/dist/languages/http.js +9 -13
  55. package/dist/languages/index.d.ts +11 -12
  56. package/dist/languages/index.js +10 -14
  57. package/dist/languages/java.d.ts +10 -11
  58. package/dist/languages/java.js +9 -13
  59. package/dist/languages/python.d.ts +10 -11
  60. package/dist/languages/python.js +9 -13
  61. package/dist/languages/ruby.d.ts +10 -11
  62. package/dist/languages/ruby.js +9 -13
  63. package/dist/languages/typescript.d.ts +10 -11
  64. package/dist/languages/typescript.js +9 -13
  65. package/dist/markdown/index.d.ts +2 -3
  66. package/dist/markdown/index.js +9 -13
  67. package/dist/markdown/md.js +1 -1
  68. package/dist/markdown/utils.d.ts +2 -3
  69. package/dist/markdown/utils.js +1 -1
  70. package/dist/{markdown-sJ2VePdG.js → markdown-Bx-mQFEj.js} +1 -1
  71. package/dist/{markdown-Ck30kC3p.d.ts → markdown-J4fsbXbi.d.ts} +2 -2
  72. package/dist/{method-BpjXzDDH.d.ts → method-uqti5jIi.d.ts} +7 -7
  73. package/dist/{navigation-D4bzWy1c.d.ts → navigation-DztmhdsO.d.ts} +3 -3
  74. package/dist/{overview-B24Fc4cH.d.ts → overview-CXiAiRu3.d.ts} +6 -6
  75. package/dist/{primitives-DwXr-yo5.d.ts → primitives-CS8fdjfv.d.ts} +9 -9
  76. package/dist/{properties-wSrkbEk2.d.ts → properties-Bf600pp5.d.ts} +5 -5
  77. package/dist/{routing-GrDalgAW.js → routing-BGBmkDBL.js} +3 -2
  78. package/dist/{routing-Bcos-Z2q.d.ts → routing-BcGPNh2R.d.ts} +1 -1
  79. package/dist/routing.d.ts +1 -1
  80. package/dist/routing.js +1 -1
  81. package/dist/{sdk-CDNNOl31.d.ts → sdk-CuOpWo9I.d.ts} +14 -14
  82. package/dist/search/index.d.ts +5 -6
  83. package/dist/search/index.js +12 -14
  84. package/dist/search/mcp.d.ts +2 -2
  85. package/dist/search/mcp.js +11 -13
  86. package/dist/search/providers/algolia.d.ts +1 -2
  87. package/dist/search/providers/algolia.js +9 -13
  88. package/dist/search/providers/fuse.d.ts +2 -2
  89. package/dist/search/providers/fuse.js +10 -13
  90. package/dist/search/providers/pagefind.d.ts +1 -2
  91. package/dist/search/providers/pagefind.js +1 -1
  92. package/dist/search/providers/walker.d.ts +2 -2
  93. package/dist/search/providers/walker.js +10 -13
  94. package/dist/search/types.d.ts +1 -2
  95. package/dist/search/types.js +1 -1
  96. package/dist/{search-Dbhp1LKw.d.ts → search-DvzBAFUW.d.ts} +3 -3
  97. package/dist/{sidebar-BzEJezB8.d.ts → sidebar-CqfIoVcr.d.ts} +5 -5
  98. package/dist/{snippets-BFLGJy-C.d.ts → snippets-BwifQYD4.d.ts} +8 -8
  99. package/dist/spec.d.ts +3 -3
  100. package/dist/spec.js +2 -2
  101. package/dist/style.d.ts +1 -1
  102. package/dist/style.js +1 -1
  103. package/dist/styles.css +1094 -0
  104. package/dist/{types-1rnoIVpZ.d.ts → types-9YHj_ZeX.d.ts} +1 -1
  105. package/dist/{use-components-DG6NAdUT.js → use-components-BAHidYIO.js} +1 -1
  106. package/dist/{utils-CqR0JQ5q.js → utils-0z34vxY4.js} +2 -2
  107. package/dist/{utils-gEMvF6KH.d.ts → utils-DAOeBdRL.d.ts} +2 -2
  108. package/dist/utils.d.ts +1 -1
  109. package/dist/utils.js +1 -2
  110. package/package.json +6 -3
  111. /package/dist/{chunk-KfF3XP4c.js → chunk-BWfJHHBp.js} +0 -0
  112. /package/dist/{component-generics-4gg5TFK4.js → component-generics-F0_Dx7UT.js} +0 -0
  113. /package/dist/{docs-C2xNNHgT.js → docs-CNvEp0VL.js} +0 -0
  114. /package/dist/{icons-Ckod9aod.js → icons-DzBceOQw.js} +0 -0
  115. /package/dist/{md-Ce-Zhp9O.js → md-D5AxFoS4.js} +0 -0
  116. /package/dist/{navigation-BrIapKIN.js → navigation-bydkHNUW.js} +0 -0
  117. /package/dist/{pagefind-CKBforii.js → pagefind-BHm6c3fb.js} +0 -0
  118. /package/dist/{style-B-5NIls4.js → style-0miv2y38.js} +0 -0
  119. /package/dist/{style-BJCwZ-Wf.d.ts → style-D8hwSwrv.d.ts} +0 -0
  120. /package/dist/{types-Ci-27DYJ.js → types-mRzd9aqe.js} +0 -0
  121. /package/dist/{utils-CI9byvCc.d.ts → utils-BcWczffA.d.ts} +0 -0
  122. /package/dist/{utils-jPbBiaDE.js → utils-CiZXDoFR.js} +0 -0
package/dist/styles.css CHANGED
@@ -1,3 +1,1093 @@
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-line-height: 1.5;
7
+ --stl-typography-line-height-headings: 1.2;
8
+
9
+ --stl-typography-text-body: var(--stl-typography-scale-base);
10
+ --stl-typography-text-body-sm: var(--stl-typography-scale-sm);
11
+ --stl-typography-text-body-xs: var(--stl-typography-scale-xs);
12
+
13
+ --stl-typography-text-code: max(0.875em, var(--stl-typography-scale-sm));
14
+
15
+ --stl-typography-text-h1: var(--stl-typography-scale-5xl);
16
+ --stl-typography-text-h2: var(--stl-typography-scale-4xl);
17
+ --stl-typography-text-h3: var(--stl-typography-scale-3xl);
18
+ --stl-typography-text-h4: var(--stl-typography-scale-2xl);
19
+ --stl-typography-text-h5: var(--stl-typography-scale-xl);
20
+
21
+ --stl-typography-scale-xs: 12px;
22
+ --stl-typography-scale-sm: 14px;
23
+ --stl-typography-scale-base: 16px;
24
+ --stl-typography-scale-lg: 18px;
25
+ --stl-typography-scale-xl: 20px;
26
+ --stl-typography-scale-2xl: 24px;
27
+ --stl-typography-scale-3xl: 29px;
28
+ --stl-typography-scale-4xl: 35px;
29
+ --stl-typography-scale-5xl: 42px;
30
+ --stl-typography-scale-6xl: 64px;
31
+
32
+ --stl-color-text-selection-foreground: /* unset by default; text colors are unchanged */;
33
+ --stl-color-text-selection-background: light-dark(
34
+ rgb(from var(--stl-color-text-selection) r g b / calc(alpha * 0.2)),
35
+ rgb(from var(--stl-color-text-selection) r g b / calc(alpha * 0.35))
36
+ );
37
+ }
38
+ }
39
+
40
+ /* Prose exists in its own sub-layer for easy reverting */
41
+ body {
42
+ font-family: var(--stl-typography-font);
43
+ font-feature-settings:
44
+ 'ss01' on,
45
+ 'ss03' on,
46
+ 'ss04' on,
47
+ 'ss06' on,
48
+ 'ss08' on;
49
+ }
50
+
51
+ .stl-ui-prose {
52
+ letter-spacing: -0.01em;
53
+ font-weight: 400;
54
+ line-height: var(--stl-typography-line-height);
55
+ font-size: var(--stl-typography-text-body);
56
+ color: var(--stl-color-foreground-reduced);
57
+
58
+ :where(.stl-ui-not-prose) {
59
+ letter-spacing: initial;
60
+ font-weight: initial;
61
+ line-height: initial;
62
+ font-size: initial;
63
+ color: initial;
64
+ }
65
+
66
+ :where(strong:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose strong) {
67
+ color: var(--stl-color-foreground);
68
+ }
69
+
70
+ :where(a:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose a) {
71
+ color: var(--stl-color-link-foreground);
72
+ text-decoration-color: rgb(from currentColor r g b / calc(alpha * var(--stl-opacity-level-040)));
73
+ transition: text-decoration-color 0.1s ease-out;
74
+ &:hover {
75
+ text-decoration-color: currentColor;
76
+ }
77
+ }
78
+
79
+ :where(h1, h2, h3, h4, h5, h6):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
80
+ color: var(--stl-color-foreground);
81
+ font-weight: 500;
82
+ line-height: var(--stl-typography-line-height-headings);
83
+ }
84
+
85
+ :where(h1:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h1) {
86
+ /* Heading 1/Medium */
87
+ font-size: var(--stl-typography-text-h1);
88
+ letter-spacing: -0.03em;
89
+ margin-top: 64px;
90
+ }
91
+
92
+ :where(h2:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h2) {
93
+ /* Heading 2/Medium */
94
+ font-size: var(--stl-typography-text-h2);
95
+ letter-spacing: -0.03em;
96
+ margin-top: 48px;
97
+ }
98
+
99
+ :where(h3:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h3) {
100
+ /* Heading 3/Medium */
101
+ font-size: var(--stl-typography-text-h3);
102
+ letter-spacing: -0.02em;
103
+ margin-top: 40px;
104
+ }
105
+
106
+ :where(h4:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h4) {
107
+ /* Heading 4/Medium */
108
+ font-size: var(--stl-typography-text-h4);
109
+ letter-spacing: -0.02em;
110
+ margin-top: 32px;
111
+ }
112
+
113
+ :where(h5:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose h5) {
114
+ /* Heading 5/Medium */
115
+ font-size: var(--stl-typography-text-h5);
116
+ letter-spacing: -0.02em;
117
+ margin-top: 24px;
118
+ }
119
+
120
+ :where(li:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose li) {
121
+ &:where(:not(:last-child)) {
122
+ margin-bottom: 8px;
123
+ }
124
+ }
125
+
126
+ :where(
127
+ pre:not(.stl-ui-not-prose *, .expressive-code *),
128
+ .stl-ui-not-prose .stl-ui-prose pre:not(.expressive-code *)
129
+ ) {
130
+ padding: 12px 20px;
131
+ border-radius: var(--stl-ui-layout-border-radius-sml);
132
+ border: 1px solid var(--stl-color-border-faint);
133
+ background-color: var(--stl-color-faint-background);
134
+ overflow: scroll;
135
+ margin-bottom: 1rem;
136
+ }
137
+
138
+ :where(ol, ul) {
139
+ &:where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
140
+ padding-left: 26px;
141
+ }
142
+ }
143
+
144
+ :where(ol, ul, aside, img, figure, details):where(
145
+ :not(.stl-ui-not-prose *),
146
+ .stl-ui-not-prose .stl-ui-prose *
147
+ ) {
148
+ margin-top: 16px;
149
+ }
150
+
151
+ /* all code (inline + block) */
152
+ :where(code):where(:not(.stl-ui-not-prose *), .stl-ui-not-prose .stl-ui-prose *) {
153
+ font-family: var(--stl-typography-font-mono);
154
+ font-feature-settings:
155
+ 'ss01' on,
156
+ 'ss03' on,
157
+ 'ss04' on,
158
+ 'ss06' on;
159
+
160
+ font-size: var(--stl-typography-text-code);
161
+ font-weight: inherit;
162
+ letter-spacing: normal;
163
+
164
+ /* inline code */
165
+ &:where(:not(pre > &)) {
166
+ color: var(--stl-color-foreground);
167
+ padding: 0 0.2em;
168
+ background-color: rgb(from var(--stl-color-foreground) r g b / 0.1);
169
+ border-radius: 0.2em;
170
+ }
171
+
172
+ /* code blocks */
173
+ &:where(pre > &) {
174
+ font-size: var(--stl-typography-text-body-sm);
175
+ }
176
+ }
177
+ }
178
+
179
+ /* _direct_ children of stl-ui-prose should get a margin-top by default for spacing. */
180
+ :where(.stl-ui-prose, .stl-ui-prose > .sl-markdown-content) > :where(:not(:first-child)) {
181
+ margin-top: 16px;
182
+ }
183
+
184
+ @layer starlight.content {
185
+ .stl-ui-prose .sl-markdown-content {
186
+ a,
187
+ a:hover {
188
+ color: revert-layer;
189
+ }
190
+ }
191
+ }
192
+
193
+ ::selection {
194
+ background-color: var(--stl-color-text-selection-background);
195
+ color: var(--stl-color-text-selection-foreground);
196
+ }
197
+
198
+ @layer stl-ui.tokens {
199
+ /* Layout - Stainless */
200
+ :root {
201
+ --stl-ui-layout-border-radius-xs: 4px;
202
+ --stl-ui-layout-border-radius-sml: 8px;
203
+ --stl-ui-layout-border-radius: 12px;
204
+ --stl-ui-layout-border-radius-med: 16px;
205
+ --stl-ui-layout-border-radius-max: 9999px;
206
+ --stl-ui-left-content-indent: 24px;
207
+
208
+ --stl-ui-page-padding-inline: 20px;
209
+ }
210
+ }
211
+
212
+ /* 1. Base colors */
213
+ @layer stl-ui.tokens {
214
+ :root {
215
+ --stl-opacity-level-080: 0.80;
216
+ --stl-opacity-level-040: 0.40;
217
+ --stl-opacity-level-016: 0.16;
218
+ --stl-opacity-level-008: 0.08;
219
+ --stl-opacity-level-004: 0.04;
220
+ /* background */
221
+ --stl-color-background: light-dark(rgb(255 255 255), rgb(10 10 10));
222
+ --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))));
223
+ /* background shades */
224
+ /* muted background */
225
+ --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))));
226
+ --stl-color-muted-background-hover: rgb(from var(--stl-color-muted-background) r g b/calc(alpha * 2));
227
+ /* faint background */
228
+ --stl-color-faint-background: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)));
229
+ --stl-color-faint-background-hover: rgb(from var(--stl-color-faint-background) r g b/calc(alpha * 2));
230
+ /* ui elements like cards and buttons match --stl-color-background in light mode, but have a slight tint in dark mode */
231
+ --stl-color-ui-background: light-dark(
232
+ var(--stl-color-background),
233
+ rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-004)))
234
+ );
235
+ --stl-color-ui-background-hover: light-dark(
236
+ var(--stl-color-background-hover),
237
+ rgb(from var(--stl-color-ui-background) r g b/calc(alpha * 2))
238
+ );
239
+ /* foreground */
240
+ --stl-color-foreground: light-dark(rgb(38 38 38), rgb(245 245 245));
241
+ --stl-color-foreground-reduced: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
242
+ --stl-color-foreground-muted: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
243
+ /* inverse */
244
+ --stl-color-inverse-background: var(--stl-color-foreground);
245
+ --stl-color-inverse-background-hover: rgb(from var(--stl-color-inverse-background) r g b/calc(alpha * 0.9));
246
+ --stl-color-inverse-foreground: var(--stl-color-background);
247
+ /* default border (“foreground border”) */
248
+ --stl-color-border: rgb(from var(--stl-color-foreground) r g b/calc(alpha * var(--stl-opacity-level-016)));
249
+ --stl-color-border-faint: rgb(from var(--stl-color-border) r g b/calc(alpha * 0.5));
250
+ --stl-color-border-strong: rgb(from var(--stl-color-border) r g b/calc(alpha * 2.5));
251
+ }
252
+ }
253
+ /* 2. Color palettes (accent, red, green, etc) */
254
+ @layer stl-ui.tokens {
255
+ :root {
256
+ /* accent */
257
+ --stl-color-accent: light-dark(#155dfc, #2b7fff);
258
+ --stl-color-accent-foreground: var(--stl-color-accent);
259
+ --stl-color-accent-foreground-reduced: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
260
+ --stl-color-accent-foreground-muted: rgb(from var(--stl-color-accent-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
261
+ --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))));
262
+ --stl-color-accent-muted-background-hover: rgb(from var(--stl-color-accent-muted-background) r g b/calc(alpha * 2));
263
+ --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))));
264
+ --stl-color-accent-border-faint: rgb(from var(--stl-color-accent-border) r g b/calc(alpha * 0.5));
265
+ --stl-color-accent-border-strong: var(--stl-color-accent);
266
+ --stl-color-accent-inverse-background: var(--stl-color-accent);
267
+ --stl-color-accent-inverse-background-hover: rgb(from var(--stl-color-accent) r g b/calc(alpha * var(--stl-opacity-level-080)));
268
+ --stl-color-accent-inverse-foreground: rgb(255, 255, 255);
269
+ /* red */
270
+ --stl-color-red: light-dark(#d01e22, #e34041);
271
+ --stl-color-red-foreground: var(--stl-color-red);
272
+ --stl-color-red-foreground-reduced: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
273
+ --stl-color-red-foreground-muted: rgb(from var(--stl-color-red-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
274
+ --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))));
275
+ --stl-color-red-muted-background-hover: rgb(from var(--stl-color-red-muted-background) r g b/calc(alpha * 2));
276
+ --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))));
277
+ --stl-color-red-border-faint: rgb(from var(--stl-color-red-border) r g b/calc(alpha * 0.5));
278
+ --stl-color-red-border-strong: var(--stl-color-red);
279
+ --stl-color-red-inverse-background: var(--stl-color-red);
280
+ --stl-color-red-inverse-background-hover: rgb(from var(--stl-color-red) r g b/calc(alpha * var(--stl-opacity-level-080)));
281
+ --stl-color-red-inverse-foreground: rgb(255, 255, 255);
282
+ /* green */
283
+ --stl-color-green: light-dark(#16a34a, #22c55e);
284
+ --stl-color-green-foreground: var(--stl-color-green);
285
+ --stl-color-green-foreground-reduced: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
286
+ --stl-color-green-foreground-muted: rgb(from var(--stl-color-green-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
287
+ --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))));
288
+ --stl-color-green-muted-background-hover: rgb(from var(--stl-color-green-muted-background) r g b/calc(alpha * 2));
289
+ --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))));
290
+ --stl-color-green-border-faint: rgb(from var(--stl-color-green-border) r g b/calc(alpha * 0.5));
291
+ --stl-color-green-border-strong: var(--stl-color-green);
292
+ --stl-color-green-inverse-background: var(--stl-color-green);
293
+ --stl-color-green-inverse-background-hover: rgb(from var(--stl-color-green) r g b/calc(alpha * var(--stl-opacity-level-080)));
294
+ --stl-color-green-inverse-foreground: rgb(255, 255, 255);
295
+ /* blue */
296
+ --stl-color-blue: light-dark(#155dfc, #2b7fff);
297
+ --stl-color-blue-foreground: var(--stl-color-blue);
298
+ --stl-color-blue-foreground-reduced: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
299
+ --stl-color-blue-foreground-muted: rgb(from var(--stl-color-blue-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
300
+ --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))));
301
+ --stl-color-blue-muted-background-hover: rgb(from var(--stl-color-blue-muted-background) r g b/calc(alpha * 2));
302
+ --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))));
303
+ --stl-color-blue-border-faint: rgb(from var(--stl-color-blue-border) r g b/calc(alpha * 0.5));
304
+ --stl-color-blue-border-strong: var(--stl-color-blue);
305
+ --stl-color-blue-inverse-background: var(--stl-color-blue);
306
+ --stl-color-blue-inverse-background-hover: rgb(from var(--stl-color-blue) r g b/calc(alpha * var(--stl-opacity-level-080)));
307
+ --stl-color-blue-inverse-foreground: rgb(255, 255, 255);
308
+ /* yellow */
309
+ --stl-color-yellow: light-dark(#ca8a04, #eab308);
310
+ --stl-color-yellow-foreground: var(--stl-color-yellow);
311
+ --stl-color-yellow-foreground-reduced: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
312
+ --stl-color-yellow-foreground-muted: rgb(from var(--stl-color-yellow-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
313
+ --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))));
314
+ --stl-color-yellow-muted-background-hover: rgb(from var(--stl-color-yellow-muted-background) r g b/calc(alpha * 2));
315
+ --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))));
316
+ --stl-color-yellow-border-faint: rgb(from var(--stl-color-yellow-border) r g b/calc(alpha * 0.5));
317
+ --stl-color-yellow-border-strong: var(--stl-color-yellow);
318
+ --stl-color-yellow-inverse-background: var(--stl-color-yellow);
319
+ --stl-color-yellow-inverse-background-hover: rgb(from var(--stl-color-yellow) r g b/calc(alpha * var(--stl-opacity-level-080)));
320
+ --stl-color-yellow-inverse-foreground: rgb(255, 255, 255);
321
+ /* orange */
322
+ --stl-color-orange: light-dark(#ea580c, #f97316);
323
+ --stl-color-orange-foreground: var(--stl-color-orange);
324
+ --stl-color-orange-foreground-reduced: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
325
+ --stl-color-orange-foreground-muted: rgb(from var(--stl-color-orange-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
326
+ --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))));
327
+ --stl-color-orange-muted-background-hover: rgb(from var(--stl-color-orange-muted-background) r g b/calc(alpha * 2));
328
+ --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))));
329
+ --stl-color-orange-border-faint: rgb(from var(--stl-color-orange-border) r g b/calc(alpha * 0.5));
330
+ --stl-color-orange-border-strong: var(--stl-color-orange);
331
+ --stl-color-orange-inverse-background: var(--stl-color-orange);
332
+ --stl-color-orange-inverse-background-hover: rgb(from var(--stl-color-orange) r g b/calc(alpha * var(--stl-opacity-level-080)));
333
+ --stl-color-orange-inverse-foreground: rgb(255, 255, 255);
334
+ /* purple */
335
+ --stl-color-purple: light-dark(#9333ea, #a855f7);
336
+ --stl-color-purple-foreground: var(--stl-color-purple);
337
+ --stl-color-purple-foreground-reduced: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
338
+ --stl-color-purple-foreground-muted: rgb(from var(--stl-color-purple-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
339
+ --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))));
340
+ --stl-color-purple-muted-background-hover: rgb(from var(--stl-color-purple-muted-background) r g b/calc(alpha * 2));
341
+ --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))));
342
+ --stl-color-purple-border-faint: rgb(from var(--stl-color-purple-border) r g b/calc(alpha * 0.5));
343
+ --stl-color-purple-border-strong: var(--stl-color-purple);
344
+ --stl-color-purple-inverse-background: var(--stl-color-purple);
345
+ --stl-color-purple-inverse-background-hover: rgb(from var(--stl-color-purple) r g b/calc(alpha * var(--stl-opacity-level-080)));
346
+ --stl-color-purple-inverse-foreground: rgb(255, 255, 255);
347
+ /* cyan */
348
+ --stl-color-cyan: light-dark(#0891b2, #06b6d4);
349
+ --stl-color-cyan-foreground: var(--stl-color-cyan);
350
+ --stl-color-cyan-foreground-reduced: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
351
+ --stl-color-cyan-foreground-muted: rgb(from var(--stl-color-cyan-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
352
+ --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))));
353
+ --stl-color-cyan-muted-background-hover: rgb(from var(--stl-color-cyan-muted-background) r g b/calc(alpha * 2));
354
+ --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))));
355
+ --stl-color-cyan-border-faint: rgb(from var(--stl-color-cyan-border) r g b/calc(alpha * 0.5));
356
+ --stl-color-cyan-border-strong: var(--stl-color-cyan);
357
+ --stl-color-cyan-inverse-background: var(--stl-color-cyan);
358
+ --stl-color-cyan-inverse-background-hover: rgb(from var(--stl-color-cyan) r g b/calc(alpha * var(--stl-opacity-level-080)));
359
+ --stl-color-cyan-inverse-foreground: rgb(255, 255, 255);
360
+ /* pink */
361
+ --stl-color-pink: light-dark(#ec4899, #ec4899);
362
+ --stl-color-pink-foreground: var(--stl-color-pink);
363
+ --stl-color-pink-foreground-reduced: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-080)));
364
+ --stl-color-pink-foreground-muted: rgb(from var(--stl-color-pink-foreground) r g b/calc(alpha * var(--stl-opacity-level-040)));
365
+ --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))));
366
+ --stl-color-pink-muted-background-hover: rgb(from var(--stl-color-pink-muted-background) r g b/calc(alpha * 2));
367
+ --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))));
368
+ --stl-color-pink-border-faint: rgb(from var(--stl-color-pink-border) r g b/calc(alpha * 0.5));
369
+ --stl-color-pink-border-strong: var(--stl-color-pink);
370
+ --stl-color-pink-inverse-background: var(--stl-color-pink);
371
+ --stl-color-pink-inverse-background-hover: rgb(from var(--stl-color-pink) r g b/calc(alpha * var(--stl-opacity-level-080)));
372
+ --stl-color-pink-inverse-foreground: rgb(255, 255, 255);
373
+ }
374
+ :root[data-theme=dark],
375
+ .stl-theme-dark {
376
+ color-scheme: dark;
377
+ background: var(--stl-color-background);
378
+ color: var(--stl-color-foreground);
379
+ }
380
+ :root[data-theme=light],
381
+ .stl-theme-light {
382
+ color-scheme: light;
383
+ background: var(--stl-color-background);
384
+ color: var(--stl-color-foreground);
385
+ }
386
+ }
387
+ /* Semantic color roles */
388
+ @layer stl-ui.tokens {
389
+ :root {
390
+ --stl-color-link-foreground: var(--stl-color-accent-foreground);
391
+ --stl-color-text-selection: var(--stl-color-accent-inverse-background);
392
+ }
393
+ }
394
+ .stl-ui-button {
395
+ height: 32px;
396
+ padding: 8px 10px;
397
+ border-radius: var(--stl-ui-layout-border-radius-sml);
398
+ line-height: 150%;
399
+ font-weight: 500;
400
+ font-size: var(--stl-typography-text-body-sm);
401
+ font-family: var(--stl-typography-font);
402
+
403
+ cursor: pointer;
404
+ display: inline-flex;
405
+ align-items: center;
406
+ justify-content: center;
407
+ gap: 2px;
408
+ white-space: nowrap;
409
+ flex-shrink: 0;
410
+
411
+ border: 1px solid transparent;
412
+ color: var(--stl-color-inverse-foreground);
413
+ background-color: var(--stl-color-inverse-background);
414
+
415
+ &:hover {
416
+ background-color: var(--stl-color-inverse-background-hover);
417
+ }
418
+
419
+ &[hidden] {
420
+ display: none;
421
+ }
422
+ }
423
+
424
+ /* --- COLOR VARIANTS --- */
425
+
426
+ .stl-ui-button--accent {
427
+ color: var(--stl-color-accent-inverse-foreground);
428
+ background-color: var(--stl-color-accent-inverse-background);
429
+ &:hover {
430
+ background-color: var(--stl-color-accent-inverse-background-hover);
431
+ }
432
+ }
433
+
434
+ .stl-ui-button--accent-muted {
435
+ color: var(--stl-color-accent-foreground);
436
+ background-color: var(--stl-color-accent-muted-background);
437
+ &:hover {
438
+ background-color: var(--stl-color-accent-muted-background-hover);
439
+ }
440
+ &.stl-ui-button--with-border {
441
+ border-color: var(--stl-color-accent-border);
442
+ }
443
+ }
444
+
445
+ .stl-ui-button--muted {
446
+ color: var(--stl-color-foreground);
447
+ background-color: var(--stl-color-muted-background);
448
+ &:hover {
449
+ background-color: var(--stl-color-muted-background-hover);
450
+ }
451
+ &.stl-ui-button--with-border {
452
+ border-color: var(--stl-color-border);
453
+ }
454
+ }
455
+
456
+ .stl-ui-button--outline {
457
+ color: var(--stl-color-foreground);
458
+ background-color: var(--stl-color-ui-background);
459
+ border-color: var(--stl-color-border);
460
+ &:hover {
461
+ background:
462
+ linear-gradient(var(--stl-color-ui-background-hover), var(--stl-color-ui-background-hover)),
463
+ linear-gradient(var(--stl-color-ui-background), var(--stl-color-ui-background));
464
+ }
465
+ }
466
+
467
+ .stl-ui-button--ghost {
468
+ color: var(--stl-color-foreground);
469
+ background-color: transparent;
470
+ &:hover {
471
+ background-color: var(--stl-color-background-hover);
472
+ }
473
+ &.stl-ui-button--with-border {
474
+ border-color: var(--stl-color-border);
475
+ }
476
+ }
477
+
478
+ .stl-ui-button--success {
479
+ color: var(--stl-color-green-inverse-foreground);
480
+ background-color: var(--stl-color-green-inverse-background);
481
+ &:hover {
482
+ background-color: var(--stl-color-green-inverse-background-hover);
483
+ }
484
+ }
485
+
486
+ .stl-ui-button--destructive {
487
+ color: var(--stl-color-red-inverse-foreground);
488
+ background-color: var(--stl-color-red-inverse-background);
489
+ &:hover {
490
+ background-color: var(--stl-color-red-inverse-background-hover);
491
+ }
492
+ }
493
+
494
+ /* --- LOADING STATE --- */
495
+
496
+ /**
497
+ * When loading, set aria-disabled="true" and aria-label="<Doing action...>"
498
+ * Don't use disabled, it loses focus.
499
+ */
500
+
501
+ .stl-ui-button--loading {
502
+ -webkit-text-fill-color: transparent;
503
+ position: relative;
504
+
505
+ & * {
506
+ color: transparent;
507
+ }
508
+
509
+ &::before {
510
+ content: '';
511
+ animation: stl-ui-button--loading-spin 1s linear infinite;
512
+ position: absolute;
513
+ width: 16px;
514
+ height: 16px;
515
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxvYWRlci1jaXJjbGUtaWNvbiBsdWNpZGUtbG9hZGVyLWNpcmNsZSI+PHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2Ii8+PC9zdmc+');
516
+ mask-size: contain;
517
+ mask-position: center;
518
+ mask-repeat: no-repeat;
519
+ background: currentColor;
520
+ }
521
+ }
522
+
523
+ @keyframes stl-ui-button--loading-spin {
524
+ to {
525
+ transform: rotate(360deg);
526
+ }
527
+ }
528
+
529
+ /* --- SIZE VARIANTS --- */
530
+ .stl-ui-button--size-sm {
531
+ height: 24px;
532
+ padding: 0 6px;
533
+ border-radius: var(--stl-ui-layout-border-radius-xs);
534
+ line-height: 100%;
535
+ font-weight: 500;
536
+ font-size: var(--stl-typography-text-body-xs);
537
+ }
538
+
539
+ .stl-ui-button--size-lg {
540
+ height: 40px;
541
+ padding: 8px 14px;
542
+ border-radius: var(--stl-ui-layout-border-radius);
543
+ line-height: 150%;
544
+ font-weight: 500;
545
+ font-size: var(--stl-typography-text-body);
546
+ }
547
+
548
+ /* --- ICONS --- */
549
+ .stl-ui-button__icon {
550
+ flex-shrink: 0;
551
+ display: flex;
552
+ align-items: center;
553
+ justify-content: center;
554
+
555
+ svg {
556
+ margin-top: 0;
557
+ }
558
+ }
559
+
560
+ /* Left Icon */
561
+ .stl-ui-button:has(.stl-ui-button__icon:first-child) .stl-ui-button__icon {
562
+ margin-left: -4px;
563
+ margin-right: 4px;
564
+ }
565
+
566
+ .stl-ui-button:has(.stl-ui-button__icon:last-child) .stl-ui-button__icon {
567
+ /* Right Icon */
568
+ margin-right: -4px;
569
+ margin-left: 4px;
570
+
571
+ /* Right & Left Icon */
572
+ &:first-child {
573
+ margin-left: -4px;
574
+ margin-right: 4px;
575
+ }
576
+ }
577
+
578
+ /* Only Icon */
579
+ .stl-ui-button:not(:has(.stl-ui-button-label)):has(.stl-ui-button__icon:last-child):has(
580
+ .stl-ui-button__icon:first-child
581
+ ) {
582
+ aspect-ratio: 1 / 1;
583
+
584
+ .stl-ui-button__icon {
585
+ margin-left: -4px;
586
+ margin-right: -4px;
587
+ }
588
+ }
589
+
590
+ /* --- LINKS --- */
591
+
592
+ a.stl-ui-button {
593
+ text-decoration: none;
594
+ text-align: center;
595
+ }
596
+
597
+ .stl-ui-dropdown {
598
+ --stl-ui-dropdown-button-color: var(--stl-color-foreground);
599
+ --stl-ui-dropdown-button-background-color: var(--stl-color-ui-background);
600
+ --stl-ui-dropdown-button-border-color: var(--stl-color-border);
601
+
602
+ --stl-ui-dropdown-button-border-radius: var(--stl-ui-layout-border-radius-sml);
603
+ --stl-ui-dropdown-button-font-size: var(--stl-typography-scale-sm);
604
+
605
+ --stl-ui-dropdown-button-height: 32px;
606
+ --stl-ui-dropdown-button-padding: 0 10px;
607
+ --stl-ui-dropdown-button-line-height: 100%;
608
+ --stl-ui-dropdown-button-font-weight: 500;
609
+
610
+ position: relative;
611
+ display: inline-flex;
612
+ align-items: center;
613
+
614
+ color: var(--stl-ui-dropdown-button-color);
615
+ gap: 0;
616
+ font-size: var(--stl-ui-dropdown-button-font-size);
617
+
618
+ hr {
619
+ --stl-ui-dropdown-button__divider-height: 1px;
620
+ --stl-ui-dropdown-button__divider-color: var(--stl-color-border);
621
+
622
+ height: var(--stl-ui-dropdown-button__divider-height);
623
+ background-color: var(--stl-ui-dropdown-button__divider-color);
624
+ border: none;
625
+
626
+ margin: 4px 0;
627
+ width: calc(100% + 8px);
628
+ transform: translateX(-4px);
629
+ }
630
+
631
+ .stl-ui-dropdown__button {
632
+ background-color: var(--stl-ui-dropdown-button-background-color);
633
+
634
+ border: 1px solid var(--stl-ui-dropdown-button-border-color);
635
+ border-radius: var(--stl-ui-dropdown-button-border-radius);
636
+ height: var(--stl-ui-dropdown-button-height);
637
+ padding: var(--stl-ui-dropdown-button-padding);
638
+ line-height: var(--stl-ui-dropdown-button-line-height);
639
+ font-weight: var(--stl-ui-dropdown-button-font-weight);
640
+ cursor: pointer;
641
+ display: flex;
642
+ align-items: center;
643
+ justify-content: center;
644
+ color: inherit;
645
+
646
+ &:focus {
647
+ outline: 1px auto Highlight;
648
+ }
649
+
650
+ &:hover {
651
+ background-color: var(--stl-color-ui-background-hover);
652
+ }
653
+
654
+ .stl-ui-dropdown__trigger-icon {
655
+ margin-right: -4px;
656
+ margin-left: 4px;
657
+ display: flex;
658
+ align-items: center;
659
+ justify-content: center;
660
+ }
661
+ }
662
+
663
+ .stl-ui-dropdown__icon {
664
+ display: flex;
665
+ align-items: center;
666
+ justify-content: center;
667
+
668
+ svg {
669
+ width: 16px;
670
+ height: 16px;
671
+ }
672
+ }
673
+
674
+ /**
675
+ * Dropdown Button
676
+ */
677
+ .stl-ui-dropdown-button--action {
678
+ display: flex;
679
+ align-items: center;
680
+ gap: 8px;
681
+ border-top-right-radius: 0;
682
+ border-bottom-right-radius: 0;
683
+ border-right-width: 0;
684
+
685
+ &:hover {
686
+ background-color: var(--stl-color-ui-background-hover);
687
+ z-index: 1;
688
+ border-right-width: 1px;
689
+ & + .stl-ui-dropdown-button__trigger {
690
+ border-left-width: 0;
691
+ }
692
+ }
693
+
694
+ &.disabled {
695
+ cursor: not-allowed;
696
+ background-color: var(--stl-color-ui-background);
697
+ }
698
+ }
699
+
700
+ .stl-ui-dropdown-button__trigger {
701
+ border-radius: 0;
702
+ border-top-right-radius: var(--stl-ui-dropdown-button-border-radius);
703
+ border-bottom-right-radius: var(--stl-ui-dropdown-button-border-radius);
704
+
705
+ &:hover {
706
+ background-color: var(--stl-color-ui-background-hover);
707
+ }
708
+ }
709
+
710
+ .stl-ui-dropdown__trigger-selected {
711
+ display: flex;
712
+ align-items: center;
713
+ gap: 8px;
714
+ }
715
+
716
+ /**
717
+ * Dropdown Menu
718
+ */
719
+ .stl-ui-dropdown-menu {
720
+ --stl-ui-dropdown-menu-background-color: var(--stl-color-ui-background);
721
+ --stl-ui-dropdown-menu-border-color: var(--stl-color-border);
722
+ --stl-ui-dropdown-menu-box-shadow: 0px 4px 4px -2px #00000014;
723
+ --stl-ui-dropdown-menu-border-radius: var(--stl-ui-layout-border-radius-sml);
724
+
725
+ /* opaque background with sometimes-transparent color on top in image layer*/
726
+ background-color: var(--stl-color-background);
727
+ background-image: linear-gradient(
728
+ to right,
729
+ var(--stl-ui-dropdown-menu-background-color),
730
+ var(--stl-ui-dropdown-menu-background-color)
731
+ );
732
+
733
+ border: 1px solid var(--stl-ui-dropdown-menu-border-color);
734
+ box-shadow: var(--stl-ui-dropdown-menu-box-shadow);
735
+ border-radius: var(--stl-ui-dropdown-menu-border-radius);
736
+
737
+ position: absolute;
738
+ right: 0;
739
+ z-index: 1000;
740
+ min-width: 100%;
741
+ width: max-content;
742
+ padding: 4px;
743
+ display: none;
744
+
745
+ &.stl-ui-dropdown-menu--above {
746
+ top: auto;
747
+ bottom: 100%;
748
+ margin-bottom: 4px;
749
+ }
750
+
751
+ &.stl-ui-dropdown-menu--below {
752
+ top: 100%;
753
+ bottom: auto;
754
+ margin-top: 4px;
755
+ }
756
+
757
+ &[data-state='open'] {
758
+ display: block;
759
+ }
760
+
761
+ .stl-ui-dropdown-menu__item {
762
+ --stl-ui-dropdown-menu__item-border-radius: var(--stl-ui-dropdown-button-border-radius);
763
+ --stl-ui-dropdown-menu__item-height: var(--stl-ui-dropdown-button-height);
764
+ --stl-ui-dropdown-menu__item-line-height: var(--stl-ui-dropdown-button-line-height);
765
+ --stl-ui-dropdown-menu__item-hover-background-color: var(--stl-color-ui-background-hover);
766
+
767
+ border-radius: var(--stl-ui-dropdown-menu__item-border-radius);
768
+ height: var(--stl-ui-dropdown-menu__item-height);
769
+ line-height: var(--stl-ui-dropdown-menu__item-line-height);
770
+
771
+ background: transparent;
772
+ border: none;
773
+
774
+ padding: 8px;
775
+ cursor: pointer;
776
+ display: flex;
777
+ align-items: center;
778
+ justify-content: space-between;
779
+ gap: 16px;
780
+ width: 100%;
781
+
782
+ &:hover,
783
+ &:focus-visible {
784
+ background-color: var(--stl-ui-dropdown-menu__item-hover-background-color);
785
+ }
786
+
787
+ &:hover,
788
+ &:focus-visible,
789
+ &:focus {
790
+ color: var(--stl-color-foreground);
791
+ }
792
+
793
+ &.stl-ui-dropdown-menu__item-link {
794
+ display: flex;
795
+ align-items: center;
796
+ justify-content: space-between;
797
+ gap: 16px;
798
+ width: 100%;
799
+
800
+ &:hover {
801
+ color: var(--stl-color-foreground);
802
+ }
803
+ }
804
+
805
+ .stl-ui-dropdown-menu__item-icon {
806
+ display: flex;
807
+ }
808
+
809
+ .stl-ui-dropdown-menu__item-content {
810
+ display: flex;
811
+ align-items: center;
812
+ gap: 8px;
813
+ }
814
+
815
+ .stl-ui-dropdown-menu__item-text {
816
+ white-space: nowrap;
817
+ }
818
+
819
+ .stl-ui-dropdown-menu__item-text--subtle {
820
+ color: var(--stl-color-foreground-muted);
821
+ }
822
+
823
+ strong {
824
+ color: var(--stl-color-foreground);
825
+ font-weight: 500;
826
+ }
827
+
828
+ .stl-ui-dropdown-menu__item-subtle-icon {
829
+ --stl-ui-dropdown-menu__item-subtle-icon-color: rgb(from var(--stl-color-foreground) r g b / 0.25);
830
+
831
+ svg {
832
+ color: var(--stl-ui-dropdown-menu__item-subtle-icon-color);
833
+ }
834
+ }
835
+ }
836
+ }
837
+ }
838
+
839
+ .stl-ui-callout {
840
+ --stl-ui-callout-background-color: var(--stl-color-faint-background);
841
+ --stl-ui-callout-border-color: var(--stl-color-border);
842
+ --stl-ui-callout-accent-color: var(--stl-color-foreground);
843
+
844
+ border: 1px solid var(--stl-ui-callout-border-color);
845
+ background-color: var(--stl-ui-callout-background-color);
846
+ border-radius: var(--stl-ui-layout-border-radius);
847
+ padding: 12px;
848
+ line-height: var(--stl-typography-line-height);
849
+ font-weight: 400;
850
+ font-size: var(--stl-typography-text-body);
851
+ color: var(--stl-color-foreground);
852
+
853
+ display: flex;
854
+ align-items: flex-start;
855
+ gap: 8px;
856
+
857
+ :where(a, strong) {
858
+ color: var(--stl-ui-callout-strong-color, var(--stl-ui-callout-accent-color));
859
+ }
860
+ :where(a) {
861
+ text-decoration-color: rgba(from currentColor r g b / 0.4);
862
+ transition: text-decoration-color 0.1s ease;
863
+ &:hover {
864
+ text-decoration-color: rgba(from currentColor r g b / 0.8);
865
+ }
866
+ }
867
+
868
+ ::selection {
869
+ background-color: light-dark(
870
+ rgb(from var(--stl-ui-callout-background-color) r g b / 0.2),
871
+ rgb(from var(--stl-ui-callout-background-color) r g b / 0.35)
872
+ );
873
+ color: var(--stl-color-foreground);
874
+ }
875
+ }
876
+
877
+ .stl-ui-callout--info {
878
+ --stl-ui-callout-background-color: var(--stl-color-faint-background);
879
+ --stl-ui-callout-border-color: var(--stl-color-border);
880
+ --stl-ui-callout-accent-color: var(--stl-color-foreground-reduced);
881
+ --stl-ui-callout-strong-color: var(--stl-color-foreground);
882
+ }
883
+
884
+ .stl-ui-callout--note {
885
+ --stl-ui-callout-background-color: var(--stl-color-blue-muted-background);
886
+ --stl-ui-callout-border-color: var(--stl-color-blue-border);
887
+ --stl-ui-callout-accent-color: var(--stl-color-blue-foreground);
888
+ }
889
+
890
+ .stl-ui-callout--tip {
891
+ --stl-ui-callout-background-color: var(--stl-color-purple-muted-background);
892
+ --stl-ui-callout-border-color: var(--stl-color-purple-border);
893
+ --stl-ui-callout-accent-color: var(--stl-color-purple-foreground);
894
+ }
895
+
896
+ .stl-ui-callout--success {
897
+ --stl-ui-callout-background-color: var(--stl-color-green-muted-background);
898
+ --stl-ui-callout-border-color: var(--stl-color-green-border);
899
+ --stl-ui-callout-accent-color: var(--stl-color-green-foreground);
900
+ }
901
+
902
+ .stl-ui-callout--warning {
903
+ --stl-ui-callout-background-color: var(--stl-color-yellow-muted-background);
904
+ --stl-ui-callout-border-color: var(--stl-color-yellow-border);
905
+ --stl-ui-callout-accent-color: var(--stl-color-yellow-foreground);
906
+ }
907
+
908
+ .stl-ui-callout--danger {
909
+ --stl-ui-callout-background-color: var(--stl-color-red-muted-background);
910
+ --stl-ui-callout-border-color: var(--stl-color-red-border);
911
+ --stl-ui-callout-accent-color: var(--stl-color-red-foreground);
912
+ }
913
+
914
+ .stl-ui-callout__icon {
915
+ color: var(--stl-ui-callout-accent-color);
916
+ flex-shrink: 0;
917
+ width: 1em;
918
+ height: 1em;
919
+ margin: calc((1lh - 1em) / 2);
920
+ }
921
+
922
+ .stl-ui-callout__content {
923
+ flex: 1;
924
+ margin-top: 0;
925
+
926
+ & > :first-child {
927
+ margin-top: 0;
928
+ }
929
+ }
930
+
931
+ /* revert starlight details styles */
932
+ @layer starlight.content {
933
+ /* artificially increase specificity to outcompete selectors in the same layer whose styles we want to revert */
934
+ .stl-ui-prose .sl-markdown-content.sl-markdown-content.sl-markdown-content {
935
+ details,
936
+ summary,
937
+ summary::before,
938
+ summary::marker {
939
+ all: revert-layer;
940
+ }
941
+ }
942
+ }
943
+
944
+ .stl-ui-accordion {
945
+ --stl-ui-accordion-padding: 12px;
946
+ --stl-ui-accordion-content-padding-bottom: 4px;
947
+ --stl-ui-accordion-marker-size: 1em;
948
+ --stl-ui-accordion-marker-margin: calc((1lh - var(--stl-ui-accordion-marker-size)) / 2);
949
+ --stl-ui-accordion-marker-color: var(--stl-color-border-strong);
950
+ --stl-ui-accordion-row-gap: 8px;
951
+ --stl-ui-accordion-summary-column-gap: 8px;
952
+ --stl-ui-accordion-border-radius: var(--stl-ui-layout-border-radius);
953
+ /* left inset to make content line up with summary content (after chevron) */
954
+ --stl-ui--internal--accordion-padding-start: calc(
955
+ var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-marker-size) +
956
+ var(--stl-ui-accordion-marker-margin) * 2 + var(--stl-ui-accordion-summary-column-gap)
957
+ );
958
+
959
+ background-color: var(--stl-color-ui-background);
960
+ border: 1px solid var(--stl-color-border);
961
+ border-radius: var(--stl-ui-accordion-border-radius);
962
+ font-size: var(--stl-typography-text-body);
963
+
964
+ padding: var(--stl-ui-accordion-padding);
965
+ /* indent content to line up with left edge of summary content */
966
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
967
+
968
+ & > .stl-ui-accordion__summary {
969
+ display: block;
970
+ list-style: none;
971
+
972
+ /* summary extends to the edges of the element in order to increase click target */
973
+ padding: var(--stl-ui-accordion-padding);
974
+ padding-inline-start: var(--stl-ui--internal--accordion-padding-start);
975
+ margin: calc(-1 * var(--stl-ui-accordion-padding));
976
+ margin-inline-start: calc(-1 * var(--stl-ui--internal--accordion-padding-start));
977
+
978
+ cursor: pointer;
979
+ font-weight: 500;
980
+
981
+ border-radius: var(--stl-ui-accordion-border-radius);
982
+
983
+ &::before {
984
+ content: '';
985
+ width: var(--stl-ui-accordion-marker-size);
986
+ height: var(--stl-ui-accordion-marker-size);
987
+ margin: var(--stl-ui-accordion-marker-margin);
988
+ background-color: var(--stl-ui-accordion-marker-color);
989
+ display: block;
990
+ position: absolute;
991
+ --stl-ui-accordion--internal--marker-width: calc(
992
+ var(--stl-ui-accordion-marker-size) + var(--stl-ui-accordion-marker-margin) * 2
993
+ );
994
+ --stl-ui-accordion--internal--summary-marker-transform: translateX(
995
+ calc(
996
+ -1 * var(--stl-ui-accordion--internal--marker-width) - var(--stl-ui-accordion-summary-column-gap)
997
+ )
998
+ );
999
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform);
1000
+
1001
+ --lucide-chevron-right: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tcmlnaHQtaWNvbiBsdWNpZGUtY2hldnJvbi1yaWdodCI+PHBhdGggZD0ibTkgMTggNi02LTYtNiIvPjwvc3ZnPg==');
1002
+ mask-image: var(--lucide-chevron-right);
1003
+ mask-size: contain;
1004
+ mask-repeat: no-repeat;
1005
+
1006
+ transition: transform 0.1s ease-out;
1007
+ }
1008
+
1009
+ & > :first-child {
1010
+ margin-top: 0;
1011
+ }
1012
+ }
1013
+
1014
+ &[open] {
1015
+ border-color: var(--stl-color-border-strong);
1016
+ padding-bottom: calc(var(--stl-ui-accordion-padding) + var(--stl-ui-accordion-content-padding-bottom));
1017
+
1018
+ & > .stl-ui-accordion__summary {
1019
+ /* padding-bottom shouldn’t extend beyond the row gap while open, i.e. we shouldn’t be negative-margin-placing content overlapping summary */
1020
+ --stl-ui--internal--summary-padding-bottom: min(
1021
+ var(--stl-ui-accordion-padding),
1022
+ var(--stl-ui-accordion-row-gap)
1023
+ );
1024
+ padding-bottom: var(--stl-ui--internal--summary-padding-bottom);
1025
+ margin-bottom: calc(var(--stl-ui-accordion-row-gap) - var(--stl-ui--internal--summary-padding-bottom));
1026
+ border-bottom-left-radius: 0;
1027
+ border-bottom-right-radius: 0;
1028
+
1029
+ &::before {
1030
+ transform: var(--stl-ui-accordion--internal--summary-marker-transform) rotate(90deg);
1031
+ }
1032
+ }
1033
+ }
1034
+
1035
+ &:has(> .stl-ui-accordion__summary:hover) {
1036
+ background-color: var(--stl-color-ui-background-hover);
1037
+ }
1038
+
1039
+ & > .stl-ui-accordion__summary + * {
1040
+ margin-top: 0;
1041
+ }
1042
+ }
1043
+
1044
+ /* Groups */
1045
+
1046
+ .stl-ui-accordion-group {
1047
+ & > .stl-ui-accordion:has(+ .stl-ui-accordion) {
1048
+ border-bottom-left-radius: 0;
1049
+ border-bottom-right-radius: 0;
1050
+ & > .stl-ui-accordion__summary {
1051
+ border-bottom-left-radius: 0;
1052
+ border-bottom-right-radius: 0;
1053
+ }
1054
+ }
1055
+
1056
+ & > .stl-ui-accordion + .stl-ui-accordion {
1057
+ margin-top: 0;
1058
+ border-top-width: 0;
1059
+ border-top-left-radius: 0;
1060
+ border-top-right-radius: 0;
1061
+
1062
+ & > .stl-ui-accordion__summary {
1063
+ border-top-left-radius: 0;
1064
+ border-top-right-radius: 0;
1065
+ }
1066
+ }
1067
+
1068
+ /* Ensure the darker border always extends all the way around the active element, instead of
1069
+ * leaving an inactive border-top */
1070
+
1071
+ .stl-ui-accordion:not(:hover, [open]):has(+ .stl-ui-accordion:hover) {
1072
+ border-bottom-width: 0;
1073
+ }
1074
+ .stl-ui-accordion:not(:hover, [open]) + .stl-ui-accordion:hover {
1075
+ border-top-width: 1px;
1076
+ }
1077
+
1078
+ .stl-ui-accordion:not([open]):has(+ .stl-ui-accordion[open]) {
1079
+ border-bottom-width: 0;
1080
+ }
1081
+ .stl-ui-accordion:not([open]) + .stl-ui-accordion[open] {
1082
+ border-top-width: 1px;
1083
+ }
1084
+ }
1085
+
1086
+ /* design system variables */
1087
+
1088
+ /* components */
1089
+
1090
+
1
1091
  /* Resets */
2
1092
  .stldocs-root {
3
1093
  line-height: 100%;
@@ -1787,5 +2877,9 @@
1787
2877
 
1788
2878
  /* For standalone usage of docs-ui */
1789
2879
 
2880
+ /*
2881
+ * TODO: replace with real import once rolldown css support matures further
2882
+ * This import gets bundled so this import will should need to be resolved at runtime
2883
+ */
1790
2884
 
1791
2885