parse-stack-next 5.0.1 → 5.1.0
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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.yml +105 -0
- data/.github/ISSUE_TEMPLATE/feature_request.yml +67 -0
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/codeql.yml +1 -1
- data/.github/workflows/docs.yml +3 -3
- data/.github/workflows/release.yml +14 -3
- data/.github/workflows/ruby.yml +1 -1
- data/.gitignore +1 -0
- data/.yardopts +19 -0
- data/CHANGELOG.md +792 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +8 -5
- data/README.md +15 -0
- data/Rakefile +5 -1
- data/docs/acl_clp_guide.md +553 -0
- data/docs/atlas_vector_search_guide.md +123 -22
- data/docs/client_sdk_guide.md +201 -5
- data/docs/usage_guide.md +21 -0
- data/docs/yard-template/default/fulldoc/html/css/common.css +1222 -0
- data/docs/yard-template/default/fulldoc/html/css/full_list.css +387 -0
- data/lib/parse/agent/tools.rb +153 -1
- data/lib/parse/cache/redis.rb +53 -0
- data/lib/parse/client/caching.rb +18 -1
- data/lib/parse/client.rb +79 -12
- data/lib/parse/embeddings/cohere.rb +143 -6
- data/lib/parse/embeddings/provider.rb +20 -2
- data/lib/parse/embeddings/voyage.rb +102 -0
- data/lib/parse/embeddings.rb +332 -1
- data/lib/parse/live_query/client.rb +167 -4
- data/lib/parse/live_query/configuration.rb +12 -0
- data/lib/parse/live_query/subscription.rb +55 -2
- data/lib/parse/live_query.rb +123 -1
- data/lib/parse/lock.rb +342 -0
- data/lib/parse/lock_backend.rb +308 -0
- data/lib/parse/model/classes/audience.rb +5 -0
- data/lib/parse/model/classes/installation.rb +122 -0
- data/lib/parse/model/classes/job_schedule.rb +3 -1
- data/lib/parse/model/classes/job_status.rb +4 -1
- data/lib/parse/model/classes/push_status.rb +4 -1
- data/lib/parse/model/classes/session.rb +7 -0
- data/lib/parse/model/classes/user.rb +204 -0
- data/lib/parse/model/core/create_lock.rb +28 -146
- data/lib/parse/model/core/embed_managed.rb +162 -13
- data/lib/parse/model/core/parse_reference.rb +17 -1
- data/lib/parse/model/core/querying.rb +26 -2
- data/lib/parse/model/file.rb +523 -18
- data/lib/parse/query.rb +31 -1
- data/lib/parse/stack/version.rb +1 -1
- data/lib/parse/stack.rb +98 -1
- data/parse-stack-next.gemspec +2 -2
- metadata +17 -7
|
@@ -0,0 +1,1222 @@
|
|
|
1
|
+
/* parse-stack-next YARD theme overlay
|
|
2
|
+
*
|
|
3
|
+
* Loaded after YARD's default common.css, so every rule here is an
|
|
4
|
+
* intentional override. Palette:
|
|
5
|
+
*
|
|
6
|
+
* Ruby red #B22234 / #E63946 (accent, links, headings)
|
|
7
|
+
* Parse blue #169CEE / #4FB8F4 (highlights, borders, code)
|
|
8
|
+
* Graphite #1E1F22 / #2A2C30 (dark bg / surfaces)
|
|
9
|
+
* Slate #6B7280 / #9CA3AF (muted text, dividers)
|
|
10
|
+
* Bone #F8F9FA / #FFFFFF (light bg / surfaces)
|
|
11
|
+
*
|
|
12
|
+
* Honors prefers-color-scheme for automatic dark mode.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
:root {
|
|
16
|
+
--ruby: #B22234;
|
|
17
|
+
--ruby-hi: #E63946;
|
|
18
|
+
--parse: #169CEE;
|
|
19
|
+
--parse-hi: #4FB8F4;
|
|
20
|
+
--graphite: #1E1F22;
|
|
21
|
+
--graphite-2: #2A2C30;
|
|
22
|
+
--graphite-3: #34373C;
|
|
23
|
+
--slate: #6B7280;
|
|
24
|
+
--slate-2: #9CA3AF;
|
|
25
|
+
--bone: #F8F9FA;
|
|
26
|
+
--paper: #FFFFFF;
|
|
27
|
+
--ink: #1F2328;
|
|
28
|
+
--rule: #E5E7EB;
|
|
29
|
+
|
|
30
|
+
--bg: var(--paper);
|
|
31
|
+
--bg-soft: var(--bone);
|
|
32
|
+
--bg-code: #F3F5F7;
|
|
33
|
+
--fg: var(--ink);
|
|
34
|
+
--fg-muted: var(--slate);
|
|
35
|
+
--accent: var(--ruby);
|
|
36
|
+
--accent-hi: var(--ruby-hi);
|
|
37
|
+
--link: var(--parse);
|
|
38
|
+
--link-hover: var(--ruby);
|
|
39
|
+
--border: var(--rule);
|
|
40
|
+
/* Inline-code text color. Lighter pink-rose so the inline `tags`
|
|
41
|
+
* read as a separate color family from h1/h2 ruby accents. */
|
|
42
|
+
--code-inline: #C2185B;
|
|
43
|
+
|
|
44
|
+
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter",
|
|
45
|
+
Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
46
|
+
--font-mono: "JetBrains Mono", "SF Mono", "Menlo", "Consolas",
|
|
47
|
+
"Liberation Mono", "DejaVu Sans Mono", monospace;
|
|
48
|
+
|
|
49
|
+
--radius: 8px;
|
|
50
|
+
--radius-sm: 4px;
|
|
51
|
+
--shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.06);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media (prefers-color-scheme: dark) {
|
|
55
|
+
:root {
|
|
56
|
+
--bg: var(--graphite);
|
|
57
|
+
--bg-soft: var(--graphite-2);
|
|
58
|
+
--bg-code: var(--graphite-3);
|
|
59
|
+
--fg: #E6E8EB;
|
|
60
|
+
--fg-muted: var(--slate-2);
|
|
61
|
+
--border: #3A3D42;
|
|
62
|
+
--link: #88CDFD; /* sky / Github-Dark blue, lighter than parse-hi */
|
|
63
|
+
--link-hover: var(--ruby-hi);
|
|
64
|
+
--accent: #FF8FA3; /* rose-pink for h1/h2/h3 accents in dark mode */
|
|
65
|
+
--accent-hi: #FFB4C2;
|
|
66
|
+
--code-inline: #FF8FA3; /* lighter rose-pink for inline code in dark mode */
|
|
67
|
+
--shadow: 0 1px 2px rgba(0,0,0,.4), 0 4px 14px rgba(0,0,0,.5);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* -------- base -------- */
|
|
72
|
+
|
|
73
|
+
html, body {
|
|
74
|
+
background: var(--bg);
|
|
75
|
+
color: var(--fg);
|
|
76
|
+
font-family: var(--font-sans);
|
|
77
|
+
font-size: 15px;
|
|
78
|
+
line-height: 1.6;
|
|
79
|
+
-webkit-font-smoothing: antialiased;
|
|
80
|
+
-moz-osx-font-smoothing: grayscale;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
#main, #content, .docstring, .tags {
|
|
84
|
+
color: var(--fg);
|
|
85
|
+
background: var(--bg);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
a, a:visited {
|
|
89
|
+
color: var(--link);
|
|
90
|
+
text-decoration: none;
|
|
91
|
+
transition: color .15s ease;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
a:hover, a:focus {
|
|
95
|
+
color: var(--link-hover);
|
|
96
|
+
text-decoration: underline;
|
|
97
|
+
text-decoration-thickness: 1px;
|
|
98
|
+
text-underline-offset: 3px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* YARD's style.css ships `#content a { color: #05a }` and
|
|
102
|
+
* `#content a:hover { background: #ffffa5 }` (highlighter yellow,
|
|
103
|
+
* straight from 2010). Re-target with matching specificity. */
|
|
104
|
+
#content a,
|
|
105
|
+
#content a:visited,
|
|
106
|
+
#filecontents a,
|
|
107
|
+
#filecontents a:visited,
|
|
108
|
+
.docstring a,
|
|
109
|
+
.docstring a:visited,
|
|
110
|
+
.tags a,
|
|
111
|
+
.tags a:visited {
|
|
112
|
+
color: var(--link);
|
|
113
|
+
text-decoration: none;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
#content a:hover,
|
|
117
|
+
#filecontents a:hover,
|
|
118
|
+
.docstring a:hover,
|
|
119
|
+
.tags a:hover {
|
|
120
|
+
color: var(--link-hover);
|
|
121
|
+
background: transparent;
|
|
122
|
+
text-decoration: underline;
|
|
123
|
+
text-underline-offset: 3px;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
p, li {
|
|
127
|
+
color: var(--fg);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
hr {
|
|
131
|
+
border: 0;
|
|
132
|
+
border-top: 1px solid var(--border);
|
|
133
|
+
margin: 2rem 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* -------- headings -------- */
|
|
137
|
+
|
|
138
|
+
h1, h2, h3, h4, h5, h6 {
|
|
139
|
+
font-family: var(--font-sans);
|
|
140
|
+
color: var(--fg);
|
|
141
|
+
font-weight: 650;
|
|
142
|
+
letter-spacing: -0.01em;
|
|
143
|
+
line-height: 1.25;
|
|
144
|
+
margin-top: 1.6em;
|
|
145
|
+
margin-bottom: 0.6em;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
h1 {
|
|
149
|
+
font-size: 1.9em;
|
|
150
|
+
border-bottom: 2px solid var(--accent);
|
|
151
|
+
padding-bottom: .35em;
|
|
152
|
+
/* NB: do NOT set display: inline-block here -- the README #toc is
|
|
153
|
+
* float:right, and an inline-block h1 establishes a new block
|
|
154
|
+
* formatting context which refuses to flow next to the float,
|
|
155
|
+
* pushing the rest of the page far below the ToC. Keep h1 a block. */
|
|
156
|
+
display: block;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
h2 {
|
|
160
|
+
font-size: 1.45em;
|
|
161
|
+
border-bottom: 1px solid var(--border);
|
|
162
|
+
padding-bottom: .3em;
|
|
163
|
+
color: var(--accent);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
h3 { font-size: 1.18em; color: var(--accent); }
|
|
167
|
+
h4 { font-size: 1.05em; color: var(--fg); }
|
|
168
|
+
|
|
169
|
+
/* -------- header / top nav -------- */
|
|
170
|
+
|
|
171
|
+
#header, .nav_wrap {
|
|
172
|
+
background: var(--bg-soft);
|
|
173
|
+
border-bottom: 1px solid var(--border);
|
|
174
|
+
color: var(--fg);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
#menu, #footer {
|
|
178
|
+
background: var(--bg-soft);
|
|
179
|
+
color: var(--fg-muted);
|
|
180
|
+
border-top: 1px solid var(--border);
|
|
181
|
+
border-bottom: 1px solid var(--border);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
#menu a, #footer a {
|
|
185
|
+
color: var(--link);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
#search a {
|
|
189
|
+
background: var(--graphite-2);
|
|
190
|
+
color: #fff;
|
|
191
|
+
border: 1px solid var(--border);
|
|
192
|
+
border-radius: var(--radius-sm);
|
|
193
|
+
padding: 4px 10px;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
@media (prefers-color-scheme: dark) {
|
|
197
|
+
#search a { background: var(--parse); border-color: var(--parse); }
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
#full_list, #full_list_nav, #content {
|
|
201
|
+
font-family: var(--font-sans);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/* -------- sidebar / full-list pane -------- */
|
|
205
|
+
|
|
206
|
+
#full_list {
|
|
207
|
+
background: var(--bg-soft);
|
|
208
|
+
color: var(--fg);
|
|
209
|
+
border-right: 1px solid var(--border);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
#full_list li, #full_list .clear { color: var(--fg); }
|
|
213
|
+
|
|
214
|
+
#full_list li a {
|
|
215
|
+
color: var(--fg);
|
|
216
|
+
border-radius: var(--radius-sm);
|
|
217
|
+
padding: 2px 6px;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
#full_list li a:hover,
|
|
221
|
+
#full_list li.collapsed > a:hover {
|
|
222
|
+
background: var(--parse);
|
|
223
|
+
color: #fff;
|
|
224
|
+
text-decoration: none;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
#full_list li.odd { background: transparent; }
|
|
228
|
+
#full_list li.even { background: rgba(0,0,0,.02); }
|
|
229
|
+
|
|
230
|
+
@media (prefers-color-scheme: dark) {
|
|
231
|
+
#full_list li.even { background: rgba(255,255,255,.03); }
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
#nav_inactive, #nav_active {
|
|
235
|
+
color: var(--fg-muted);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/* -------- code -------- */
|
|
239
|
+
|
|
240
|
+
code, kbd, pre, tt {
|
|
241
|
+
font-family: var(--font-mono);
|
|
242
|
+
font-size: .92em;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
code, tt {
|
|
246
|
+
background: var(--bg-code);
|
|
247
|
+
color: var(--code-inline);
|
|
248
|
+
padding: 1px 5px;
|
|
249
|
+
border-radius: var(--radius-sm);
|
|
250
|
+
border: 1px solid var(--border);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
a > code, a > tt, h1 code, h2 code, h3 code, h4 code {
|
|
254
|
+
color: inherit;
|
|
255
|
+
background: transparent;
|
|
256
|
+
border: none;
|
|
257
|
+
padding: 0;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
pre, pre.code, .source_code pre {
|
|
261
|
+
background: var(--bg-code);
|
|
262
|
+
color: var(--fg);
|
|
263
|
+
border: 1px solid var(--border);
|
|
264
|
+
border-left: 3px solid var(--parse);
|
|
265
|
+
border-radius: var(--radius);
|
|
266
|
+
padding: 12px 16px;
|
|
267
|
+
overflow-x: auto;
|
|
268
|
+
box-shadow: var(--shadow);
|
|
269
|
+
line-height: 1.5;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
pre code, pre tt {
|
|
273
|
+
background: transparent;
|
|
274
|
+
border: 0;
|
|
275
|
+
padding: 0;
|
|
276
|
+
color: inherit;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* method signatures (top of method docs) */
|
|
280
|
+
.method_details_list .method_details {
|
|
281
|
+
border-top: 1px solid var(--border);
|
|
282
|
+
padding-top: 1.2em;
|
|
283
|
+
margin-top: 1.5em;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.signature, .method_details .method_signature {
|
|
287
|
+
background: var(--bg-soft);
|
|
288
|
+
border: 1px solid var(--border);
|
|
289
|
+
border-left: 3px solid var(--accent);
|
|
290
|
+
border-radius: var(--radius);
|
|
291
|
+
padding: 10px 14px;
|
|
292
|
+
font-family: var(--font-mono);
|
|
293
|
+
color: var(--fg);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.summary_signature {
|
|
297
|
+
background: var(--bg-soft);
|
|
298
|
+
border-radius: var(--radius-sm);
|
|
299
|
+
padding: 2px 8px;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.summary_signature a, .summary_signature a:visited {
|
|
303
|
+
color: var(--accent);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/* -------- docstring boxes -------- */
|
|
307
|
+
|
|
308
|
+
.docstring, .tags {
|
|
309
|
+
font-family: var(--font-sans);
|
|
310
|
+
color: var(--fg);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.note {
|
|
314
|
+
background: var(--bg-soft);
|
|
315
|
+
border: 1px solid var(--border);
|
|
316
|
+
border-left: 3px solid var(--parse);
|
|
317
|
+
border-radius: var(--radius);
|
|
318
|
+
padding: 10px 14px;
|
|
319
|
+
margin: 1em 0;
|
|
320
|
+
color: var(--fg);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.note.deprecated {
|
|
324
|
+
border-left-color: var(--accent);
|
|
325
|
+
background: rgba(178, 34, 52, .06);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.note.private {
|
|
329
|
+
border-left-color: var(--slate);
|
|
330
|
+
color: var(--fg-muted);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.note.title {
|
|
334
|
+
font-weight: 600;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/* -------- tags / categories -------- */
|
|
338
|
+
|
|
339
|
+
.tags ul.param > li, .tags ul.return > li {
|
|
340
|
+
border-left: 2px solid var(--border);
|
|
341
|
+
padding-left: 12px;
|
|
342
|
+
margin: 6px 0;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.tags h3, .tags h4 {
|
|
346
|
+
color: var(--accent);
|
|
347
|
+
font-size: 1em;
|
|
348
|
+
margin-top: 1.4em;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.tag_title {
|
|
352
|
+
text-transform: uppercase;
|
|
353
|
+
font-size: .78em;
|
|
354
|
+
letter-spacing: .06em;
|
|
355
|
+
color: var(--fg-muted);
|
|
356
|
+
font-weight: 700;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/* -------- tables -------- */
|
|
360
|
+
|
|
361
|
+
table {
|
|
362
|
+
border-collapse: collapse;
|
|
363
|
+
width: 100%;
|
|
364
|
+
margin: 1em 0;
|
|
365
|
+
font-size: .95em;
|
|
366
|
+
background: var(--bg);
|
|
367
|
+
border: 1px solid var(--border);
|
|
368
|
+
border-radius: var(--radius);
|
|
369
|
+
overflow: hidden;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
th, td {
|
|
373
|
+
padding: 8px 12px;
|
|
374
|
+
text-align: left;
|
|
375
|
+
border-bottom: 1px solid var(--border);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
th {
|
|
379
|
+
background: var(--bg-soft);
|
|
380
|
+
color: var(--fg);
|
|
381
|
+
font-weight: 600;
|
|
382
|
+
border-bottom: 2px solid var(--border);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
tr:last-child td { border-bottom: 0; }
|
|
386
|
+
|
|
387
|
+
tr:hover td { background: var(--bg-soft); }
|
|
388
|
+
|
|
389
|
+
/* -------- blockquotes -------- */
|
|
390
|
+
|
|
391
|
+
blockquote {
|
|
392
|
+
border-left: 3px solid var(--parse);
|
|
393
|
+
background: var(--bg-soft);
|
|
394
|
+
margin: 1em 0;
|
|
395
|
+
padding: 8px 16px;
|
|
396
|
+
border-radius: 0 var(--radius) var(--radius) 0;
|
|
397
|
+
color: var(--fg);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/* -------- search box -------- */
|
|
401
|
+
|
|
402
|
+
#search input[type=text],
|
|
403
|
+
#search input[type=search],
|
|
404
|
+
.search input,
|
|
405
|
+
.search input[type=search],
|
|
406
|
+
input#search_box,
|
|
407
|
+
input[name=q],
|
|
408
|
+
.frames #search input {
|
|
409
|
+
background: var(--bg);
|
|
410
|
+
color: var(--fg);
|
|
411
|
+
border: 1px solid var(--border);
|
|
412
|
+
border-radius: var(--radius-sm);
|
|
413
|
+
padding: 4px 10px;
|
|
414
|
+
font-family: var(--font-sans);
|
|
415
|
+
outline: none;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
input#search_box:focus,
|
|
419
|
+
input[name=q]:focus,
|
|
420
|
+
.search input:focus {
|
|
421
|
+
border-color: var(--parse);
|
|
422
|
+
box-shadow: 0 0 0 2px rgba(22, 156, 238, .2);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
input#search_box::placeholder,
|
|
426
|
+
input[name=q]::placeholder {
|
|
427
|
+
color: var(--fg-muted);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/* -------- index page -------- */
|
|
431
|
+
|
|
432
|
+
#listing ul.alpha {
|
|
433
|
+
list-style: none;
|
|
434
|
+
padding: 0;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
#listing ul.alpha li.letter {
|
|
438
|
+
margin-top: 1.4em;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
#listing ul.alpha li.letter h2 {
|
|
442
|
+
color: var(--accent);
|
|
443
|
+
border-bottom: 2px solid var(--accent);
|
|
444
|
+
display: inline-block;
|
|
445
|
+
padding: 0 .8em .2em 0;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
#listing ul li a {
|
|
449
|
+
border-bottom: 1px dotted var(--border);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/* -------- inheritance / mixin lists -------- */
|
|
453
|
+
|
|
454
|
+
dl.box {
|
|
455
|
+
background: var(--bg-soft);
|
|
456
|
+
border: 1px solid var(--border);
|
|
457
|
+
border-radius: var(--radius);
|
|
458
|
+
padding: 12px 16px;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
dl.box dt {
|
|
462
|
+
color: var(--fg-muted);
|
|
463
|
+
font-weight: 600;
|
|
464
|
+
text-transform: uppercase;
|
|
465
|
+
font-size: .78em;
|
|
466
|
+
letter-spacing: .05em;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
dl.box dd {
|
|
470
|
+
margin: 4px 0 12px;
|
|
471
|
+
color: var(--fg);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/* -------- type signatures inline -------- */
|
|
475
|
+
|
|
476
|
+
.type, .object_link a {
|
|
477
|
+
color: var(--link);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.docstring h3, .docstring h4 {
|
|
481
|
+
border-bottom: 1px solid var(--border);
|
|
482
|
+
padding-bottom: .25em;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/* -------- subtle "this method only on" badges -------- */
|
|
486
|
+
|
|
487
|
+
.permalink {
|
|
488
|
+
color: var(--fg-muted);
|
|
489
|
+
text-decoration: none;
|
|
490
|
+
margin-right: 6px;
|
|
491
|
+
opacity: .6;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.permalink:hover {
|
|
495
|
+
color: var(--accent);
|
|
496
|
+
opacity: 1;
|
|
497
|
+
text-decoration: none;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/* -------- selection -------- */
|
|
501
|
+
|
|
502
|
+
::selection {
|
|
503
|
+
background: rgba(22, 156, 238, .25);
|
|
504
|
+
color: var(--fg);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/* -------- scrollbars (webkit) -------- */
|
|
508
|
+
|
|
509
|
+
::-webkit-scrollbar { width: 10px; height: 10px; }
|
|
510
|
+
::-webkit-scrollbar-track { background: var(--bg-soft); }
|
|
511
|
+
::-webkit-scrollbar-thumb { background: var(--slate-2); border-radius: 6px; border: 2px solid var(--bg-soft); }
|
|
512
|
+
::-webkit-scrollbar-thumb:hover { background: var(--parse); }
|
|
513
|
+
|
|
514
|
+
/* -------- README Table of Contents (#toc) --------
|
|
515
|
+
*
|
|
516
|
+
* The #toc element is injected by app.js (`generateTOC`) as the
|
|
517
|
+
* first child of #content with YARD's default `float: right`. The
|
|
518
|
+
* earlier banner-image cap (max-width: 480px on the first <p> img
|
|
519
|
+
* inside #filecontents) is enough to let the float layout work as
|
|
520
|
+
* YARD intended -- so we keep the float and just restyle.
|
|
521
|
+
*/
|
|
522
|
+
|
|
523
|
+
#toc {
|
|
524
|
+
background: var(--bg-soft);
|
|
525
|
+
border: 1px solid var(--border);
|
|
526
|
+
border-left: 3px solid var(--parse);
|
|
527
|
+
border-radius: var(--radius);
|
|
528
|
+
box-shadow: var(--shadow);
|
|
529
|
+
color: var(--fg);
|
|
530
|
+
max-width: 300px;
|
|
531
|
+
padding: 16px 22px 16px 18px;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
/* Banner / wide images at the very top of a file page. Cap the
|
|
535
|
+
* leading hero image so it doesn't fight the ToC for horizontal
|
|
536
|
+
* real estate. Regular inline images can still go full width. */
|
|
537
|
+
#filecontents > p:first-child > img,
|
|
538
|
+
#filecontents > p:first-child + p > img {
|
|
539
|
+
max-width: 480px;
|
|
540
|
+
height: auto;
|
|
541
|
+
display: block;
|
|
542
|
+
margin: 0 0 16px;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
#filecontents img {
|
|
546
|
+
max-width: 100%;
|
|
547
|
+
height: auto;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
@media (max-width: 900px) {
|
|
551
|
+
/* Stack on narrow viewports: drop the float and let the ToC live
|
|
552
|
+
* in normal flow at the top of the article. */
|
|
553
|
+
#toc {
|
|
554
|
+
float: none;
|
|
555
|
+
max-width: none;
|
|
556
|
+
margin: 0 0 16px;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
#toc .title {
|
|
561
|
+
color: var(--accent);
|
|
562
|
+
font-weight: 650;
|
|
563
|
+
letter-spacing: -0.01em;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
#toc a,
|
|
567
|
+
#toc a:visited {
|
|
568
|
+
color: var(--link);
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
#toc a:hover {
|
|
572
|
+
color: var(--accent);
|
|
573
|
+
text-decoration: underline;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
#toc.hidden,
|
|
577
|
+
#toc.hidden:hover {
|
|
578
|
+
background: var(--bg-soft);
|
|
579
|
+
box-shadow: none;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/* -------- Iframe sidebar host (left rail) --------
|
|
583
|
+
* The class-list iframe lives inside #nav (or similar); make sure the
|
|
584
|
+
* surrounding container doesn't show a stale white background while
|
|
585
|
+
* the iframe is loading.
|
|
586
|
+
*/
|
|
587
|
+
|
|
588
|
+
iframe#nav,
|
|
589
|
+
#nav {
|
|
590
|
+
background: var(--bg-soft);
|
|
591
|
+
border-right: 1px solid var(--border);
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
#footer {
|
|
595
|
+
color: var(--fg-muted);
|
|
596
|
+
font-size: .85em;
|
|
597
|
+
text-align: center;
|
|
598
|
+
padding: 20px 0;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
#footer a, #footer a:visited { color: var(--link); }
|
|
602
|
+
|
|
603
|
+
/* ============================================================
|
|
604
|
+
* High-specificity overrides for YARD's style.css
|
|
605
|
+
* ------------------------------------------------------------
|
|
606
|
+
* style.css ships rules like `*:not(pre) > code { background:
|
|
607
|
+
* #f7f7f9 }` and `.docstring pre.code { background: #f7f7f9 }`
|
|
608
|
+
* whose specificity beats our simpler `code {}` / `pre {}` rules.
|
|
609
|
+
* Match or exceed their specificity here so the dark palette
|
|
610
|
+
* applies inside docstrings, notes, and #filecontents.
|
|
611
|
+
* ============================================================ */
|
|
612
|
+
|
|
613
|
+
/* Inline code (anywhere except inside pre). */
|
|
614
|
+
*:not(pre) > code,
|
|
615
|
+
*:not(pre) > tt {
|
|
616
|
+
background: var(--bg-code);
|
|
617
|
+
color: var(--code-inline);
|
|
618
|
+
border: 1px solid var(--border);
|
|
619
|
+
border-radius: var(--radius-sm);
|
|
620
|
+
padding: 1px 5px;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/* Inline code/tt inside paragraph text in docstrings + tags. */
|
|
624
|
+
.docstring p > code,
|
|
625
|
+
.docstring p > tt,
|
|
626
|
+
.docstring li > code,
|
|
627
|
+
.docstring li > tt,
|
|
628
|
+
.tags p > code,
|
|
629
|
+
.tags p > tt,
|
|
630
|
+
#filecontents p > code,
|
|
631
|
+
#filecontents p > tt,
|
|
632
|
+
#filecontents li > code,
|
|
633
|
+
#filecontents li > tt {
|
|
634
|
+
background: var(--bg-code);
|
|
635
|
+
color: var(--code-inline);
|
|
636
|
+
border: 1px solid var(--border);
|
|
637
|
+
border-radius: var(--radius-sm);
|
|
638
|
+
padding: 1px 5px;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
/* Code blocks (fenced + indented + tag examples). */
|
|
642
|
+
.docstring pre.code,
|
|
643
|
+
#filecontents pre.code,
|
|
644
|
+
.tags pre.example,
|
|
645
|
+
.source_code pre {
|
|
646
|
+
background: var(--bg-code);
|
|
647
|
+
color: var(--fg);
|
|
648
|
+
border: 1px solid var(--border);
|
|
649
|
+
border-left: 3px solid var(--parse);
|
|
650
|
+
border-radius: var(--radius);
|
|
651
|
+
padding: 12px 16px;
|
|
652
|
+
line-height: 1.5;
|
|
653
|
+
overflow-x: auto;
|
|
654
|
+
box-shadow: var(--shadow);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
pre.code,
|
|
658
|
+
pre.code .info.file {
|
|
659
|
+
color: var(--fg);
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
pre.code a {
|
|
663
|
+
color: var(--link);
|
|
664
|
+
border-bottom: 1px dotted var(--parse);
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
/* Note boxes — every variant needs explicit override because each
|
|
668
|
+
* carries a single-class selector with a hardcoded light background
|
|
669
|
+
* (.note.todo, .note.deprecated, .note.private, .note.returns_void). */
|
|
670
|
+
.note,
|
|
671
|
+
.note.todo,
|
|
672
|
+
.note.returns_void,
|
|
673
|
+
.note.deprecated,
|
|
674
|
+
.note.private,
|
|
675
|
+
.note.title.deprecated,
|
|
676
|
+
.docstring .note {
|
|
677
|
+
background: var(--bg-soft);
|
|
678
|
+
color: var(--fg);
|
|
679
|
+
border: 1px solid var(--border);
|
|
680
|
+
border-left: 3px solid var(--parse);
|
|
681
|
+
border-radius: var(--radius);
|
|
682
|
+
padding: 10px 14px;
|
|
683
|
+
margin: 1em 0;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
.note.deprecated,
|
|
687
|
+
.note.title.deprecated {
|
|
688
|
+
border-left-color: var(--accent);
|
|
689
|
+
background: rgba(178, 34, 52, .08);
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.note.private {
|
|
693
|
+
border-left-color: var(--slate-2);
|
|
694
|
+
color: var(--fg-muted);
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
.note.todo {
|
|
698
|
+
border-left-color: #E5A93B; /* amber */
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/* Tag titles ("Returns:", "Parameters:", etc.) often render against
|
|
702
|
+
* a YARD-supplied yellow/blue strip — neutralize. */
|
|
703
|
+
.tags .tag_title,
|
|
704
|
+
.tags h3.tag_title {
|
|
705
|
+
background: transparent;
|
|
706
|
+
color: var(--accent);
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
/* Method-summary section header strip and inheritance bar. */
|
|
710
|
+
h2.h2_sum,
|
|
711
|
+
.summary h2,
|
|
712
|
+
.method_details_list .method_details h3,
|
|
713
|
+
#filecontents h2 small a,
|
|
714
|
+
.docstring h2 small a {
|
|
715
|
+
background: var(--bg-soft);
|
|
716
|
+
color: var(--fg);
|
|
717
|
+
border-color: var(--border);
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
/* Inheritance / mixin "subclass" inline boxes. */
|
|
721
|
+
.box_info {
|
|
722
|
+
background: var(--bg-soft);
|
|
723
|
+
border: 1px solid var(--border);
|
|
724
|
+
border-radius: var(--radius);
|
|
725
|
+
padding: 10px 14px;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
.box_info dt {
|
|
729
|
+
background: transparent;
|
|
730
|
+
color: var(--fg-muted);
|
|
731
|
+
border-color: var(--border);
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
.box_info dd {
|
|
735
|
+
background: transparent;
|
|
736
|
+
color: var(--fg);
|
|
737
|
+
border-color: var(--border);
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
/* ============================================================
|
|
741
|
+
* Ruby syntax highlighting — dark-mode palette
|
|
742
|
+
* ------------------------------------------------------------
|
|
743
|
+
* YARD's stock token colors are tuned for light backgrounds:
|
|
744
|
+
* .comment is #0066ff, .val/.tstring is #036a07, .kw is #0000ff,
|
|
745
|
+
* .label is #c5060b -- all invisible-to-unreadable on graphite.
|
|
746
|
+
* Re-target the token classes with a high-contrast palette that
|
|
747
|
+
* stays in the ruby/parse-blue family.
|
|
748
|
+
* ============================================================ */
|
|
749
|
+
|
|
750
|
+
@media (prefers-color-scheme: dark) {
|
|
751
|
+
:root {
|
|
752
|
+
/* Pull the code panel DARKER than the surrounding page (--bg is
|
|
753
|
+
* #1E1F22) so the bright syntax tokens have something to pop
|
|
754
|
+
* against. */
|
|
755
|
+
--bg-code: #0B0C0E;
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
/* Default (light) — leave YARD's stock colors alone. Only re-skin in dark. */
|
|
760
|
+
@media (prefers-color-scheme: dark) {
|
|
761
|
+
pre.code,
|
|
762
|
+
pre.code .info.file {
|
|
763
|
+
color: #E6E8EB;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
/* Strings + string-like literals. */
|
|
767
|
+
pre.code .val,
|
|
768
|
+
pre.code .tstring_content,
|
|
769
|
+
pre.code .heredoc_beg,
|
|
770
|
+
pre.code .heredoc_end,
|
|
771
|
+
pre.code .qwords_beg,
|
|
772
|
+
pre.code .qwords_end,
|
|
773
|
+
pre.code .qwords_sep,
|
|
774
|
+
pre.code .words_beg,
|
|
775
|
+
pre.code .words_end,
|
|
776
|
+
pre.code .words_sep,
|
|
777
|
+
pre.code .qsymbols_beg,
|
|
778
|
+
pre.code .qsymbols_end,
|
|
779
|
+
pre.code .qsymbols_sep,
|
|
780
|
+
pre.code .symbols_beg,
|
|
781
|
+
pre.code .symbols_end,
|
|
782
|
+
pre.code .symbols_sep,
|
|
783
|
+
pre.code .tstring,
|
|
784
|
+
pre.code .dstring,
|
|
785
|
+
pre.code .regexp,
|
|
786
|
+
.dregexp {
|
|
787
|
+
color: #A5E2A5; /* lighter green, was #036a07 */
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
/* Method names / function ids. */
|
|
791
|
+
pre.code .fid,
|
|
792
|
+
pre.code .rubyid_new,
|
|
793
|
+
pre.code .rubyid_to_s,
|
|
794
|
+
pre.code .rubyid_to_sym,
|
|
795
|
+
pre.code .rubyid_to_f,
|
|
796
|
+
pre.code .dot + pre.code .id,
|
|
797
|
+
pre.code .rubyid_to_i pre.code .rubyid_each {
|
|
798
|
+
color: #82D4F4; /* parse-blue tint */
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
/* Comments — most important to brighten. */
|
|
802
|
+
pre.code .comment {
|
|
803
|
+
color: #9CA3AF; /* slate, was #0066ff */
|
|
804
|
+
font-style: italic;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
/* Constants (class names). */
|
|
808
|
+
pre.code .const,
|
|
809
|
+
pre.code .constant {
|
|
810
|
+
color: #FFB86C; /* warm amber-orange */
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
/* Symbols and labels. */
|
|
814
|
+
pre.code .label,
|
|
815
|
+
pre.code .symbol {
|
|
816
|
+
color: #FF9580; /* salmon */
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
/* Keywords (def, class, require, etc.). */
|
|
820
|
+
pre.code .kw,
|
|
821
|
+
pre.code .rubyid_require,
|
|
822
|
+
pre.code .rubyid_extend,
|
|
823
|
+
pre.code .rubyid_include {
|
|
824
|
+
color: #FF7B96; /* ruby-pink */
|
|
825
|
+
font-weight: 600;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
pre.code .ivar { color: #79C0FF; }
|
|
829
|
+
pre.code .gvar,
|
|
830
|
+
pre.code .rubyid_backref,
|
|
831
|
+
pre.code .rubyid_nth_ref { color: #D2A8FF; }
|
|
832
|
+
|
|
833
|
+
/* Object link colors inside highlighted code. */
|
|
834
|
+
#content .summary_desc pre.code .id > .object_link a,
|
|
835
|
+
#content .docstring pre.code .id > .object_link a,
|
|
836
|
+
pre.code a {
|
|
837
|
+
color: #82D4F4;
|
|
838
|
+
border-bottom-color: #82D4F4;
|
|
839
|
+
}
|
|
840
|
+
#content .summary_desc pre.code .const > .object_link a,
|
|
841
|
+
#content .docstring pre.code .const > .object_link a {
|
|
842
|
+
color: #FFB86C;
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
/* ============================================================
|
|
847
|
+
* Class header info box (Inherits / Includes / Defined in)
|
|
848
|
+
* ------------------------------------------------------------
|
|
849
|
+
* YARD's stripe rules `.box_info dl:nth-child(odd/even) > *`
|
|
850
|
+
* hardcode #eee and #fff. Match the same specificity with our
|
|
851
|
+
* dark palette so the rows are legible.
|
|
852
|
+
* ============================================================ */
|
|
853
|
+
|
|
854
|
+
.box_info dl dt,
|
|
855
|
+
.box_info dl dd {
|
|
856
|
+
background: var(--bg);
|
|
857
|
+
color: var(--fg);
|
|
858
|
+
border-color: var(--border) !important;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
.box_info dl:nth-child(odd) > * {
|
|
862
|
+
background: var(--bg-soft);
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
.box_info dl:nth-child(even) > * {
|
|
866
|
+
background: var(--bg);
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
.box_info dl:last-child > * {
|
|
870
|
+
border-bottom-color: var(--border) !important;
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
.box_info dl dd a,
|
|
874
|
+
.box_info dl dd a:visited {
|
|
875
|
+
color: var(--link);
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
/* "show all" toggle button. */
|
|
879
|
+
.box_info .more_info_link {
|
|
880
|
+
color: var(--link);
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
/* Breadcrumb at top of class pages. The "current page" item often
|
|
884
|
+
* renders in a low-contrast gray; bump it. */
|
|
885
|
+
#menu .title {
|
|
886
|
+
color: var(--fg);
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
/* ============================================================
|
|
890
|
+
* Sidebar/iframe extras: toggle arrows + top-bar layout
|
|
891
|
+
* ============================================================ */
|
|
892
|
+
|
|
893
|
+
/* The collapse arrows in the class-tree iframe are a base64 PNG
|
|
894
|
+
* sprite of dark glyphs on a transparent background — invisible
|
|
895
|
+
* against our dark surface. CSS filter inverts them in place. */
|
|
896
|
+
#full_list li a.toggle {
|
|
897
|
+
filter: invert(0.85) hue-rotate(180deg) brightness(1.6);
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
/* ============================================================
|
|
901
|
+
* Final-pass inline-code + toggle-button overrides
|
|
902
|
+
* ------------------------------------------------------------
|
|
903
|
+
* YARD ships several places that re-color inline code (e.g.
|
|
904
|
+
* <code class="highlighter-rouge"> from kramdown markdown) and
|
|
905
|
+
* "summary_toggle" / "constants_summary_toggle" / "more_info_link"
|
|
906
|
+
* buttons. Belt-and-braces overrides with !important so the dark
|
|
907
|
+
* palette always wins, regardless of YARD's inline / cascade order.
|
|
908
|
+
* ============================================================ */
|
|
909
|
+
|
|
910
|
+
/* Every inline code or tt outside <pre> in docstring / file / tags / summary.
|
|
911
|
+
* This also catches kramdown's `<code class="highlighter-rouge">`. */
|
|
912
|
+
.docstring code,
|
|
913
|
+
.docstring tt,
|
|
914
|
+
.tags code,
|
|
915
|
+
.tags tt,
|
|
916
|
+
.summary code,
|
|
917
|
+
.summary tt,
|
|
918
|
+
#filecontents code,
|
|
919
|
+
#filecontents tt,
|
|
920
|
+
.discussion code,
|
|
921
|
+
.discussion tt,
|
|
922
|
+
.method_details code,
|
|
923
|
+
.method_details tt {
|
|
924
|
+
background: var(--bg-code) !important;
|
|
925
|
+
color: var(--code-inline) !important;
|
|
926
|
+
border: 1px solid var(--border) !important;
|
|
927
|
+
border-radius: var(--radius-sm);
|
|
928
|
+
padding: 1px 6px !important;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
/* But never on the code blocks themselves (the pre.code descendants). */
|
|
932
|
+
pre code,
|
|
933
|
+
pre tt,
|
|
934
|
+
pre.code code,
|
|
935
|
+
pre.code tt {
|
|
936
|
+
background: transparent !important;
|
|
937
|
+
border: 0 !important;
|
|
938
|
+
padding: 0 !important;
|
|
939
|
+
color: inherit !important;
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
/* "show all" / "more" link inside the .box_info inheritance bar. */
|
|
943
|
+
.more_info_link,
|
|
944
|
+
a.more_info_link,
|
|
945
|
+
a.show_link {
|
|
946
|
+
background: var(--bg-soft) !important;
|
|
947
|
+
color: var(--link) !important;
|
|
948
|
+
border: 1px solid var(--border) !important;
|
|
949
|
+
border-radius: var(--radius-sm) !important;
|
|
950
|
+
padding: 2px 8px !important;
|
|
951
|
+
font-size: 0.85em;
|
|
952
|
+
font-weight: 600;
|
|
953
|
+
text-decoration: none !important;
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
.more_info_link:hover,
|
|
957
|
+
a.show_link:hover {
|
|
958
|
+
background: var(--parse) !important;
|
|
959
|
+
color: #fff !important;
|
|
960
|
+
border-color: var(--parse) !important;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
/* "collapse" / "expand" toggle pills on summary sections. */
|
|
964
|
+
.summary_toggle,
|
|
965
|
+
.constants_summary_toggle,
|
|
966
|
+
a.summary_toggle,
|
|
967
|
+
a.constants_summary_toggle {
|
|
968
|
+
background: var(--bg-soft) !important;
|
|
969
|
+
color: var(--link) !important;
|
|
970
|
+
border: 1px solid var(--border) !important;
|
|
971
|
+
border-radius: 999px;
|
|
972
|
+
padding: 2px 10px !important;
|
|
973
|
+
font-size: 0.8em;
|
|
974
|
+
font-weight: 600;
|
|
975
|
+
text-decoration: none !important;
|
|
976
|
+
margin-left: 8px;
|
|
977
|
+
text-transform: lowercase;
|
|
978
|
+
letter-spacing: .02em;
|
|
979
|
+
vertical-align: middle;
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
.summary_toggle:hover,
|
|
983
|
+
.constants_summary_toggle:hover {
|
|
984
|
+
background: var(--parse) !important;
|
|
985
|
+
color: #fff !important;
|
|
986
|
+
border-color: var(--parse) !important;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
/* The hide_toc anchor inside the README ToC. */
|
|
990
|
+
#toc .hide_toc,
|
|
991
|
+
#toc .hide_toc a {
|
|
992
|
+
color: var(--link);
|
|
993
|
+
text-decoration: none;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
#toc .hide_toc:hover,
|
|
997
|
+
#toc .hide_toc a:hover {
|
|
998
|
+
color: var(--accent);
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
/* "collapse" / "expand" arrow indicators on summary lists, if any. */
|
|
1002
|
+
.summary li > a.summary_signature::before {
|
|
1003
|
+
color: var(--fg-muted);
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
/* ============================================================
|
|
1007
|
+
* Method / attribute signature bars
|
|
1008
|
+
* ------------------------------------------------------------
|
|
1009
|
+
* YARD ships `p.signature, h3.signature { background: #e8f4ff }`
|
|
1010
|
+
* which is a hardcoded light blue — fights every dark surface.
|
|
1011
|
+
* Re-skin with matching specificity.
|
|
1012
|
+
* ============================================================ */
|
|
1013
|
+
|
|
1014
|
+
p.signature,
|
|
1015
|
+
h3.signature,
|
|
1016
|
+
.method_details p.signature,
|
|
1017
|
+
.method_details h3.signature {
|
|
1018
|
+
background: var(--bg-soft) !important;
|
|
1019
|
+
color: var(--fg) !important;
|
|
1020
|
+
border: 1px solid var(--border) !important;
|
|
1021
|
+
border-left: 3px solid var(--accent) !important;
|
|
1022
|
+
border-radius: var(--radius);
|
|
1023
|
+
padding: 8px 14px !important;
|
|
1024
|
+
font-family: var(--font-mono);
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
p.signature .extras,
|
|
1028
|
+
h3.signature .extras {
|
|
1029
|
+
color: var(--fg-muted) !important;
|
|
1030
|
+
font-family: var(--font-sans);
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
p.signature .not_defined_here,
|
|
1034
|
+
h3.signature .not_defined_here,
|
|
1035
|
+
p.signature .aliases,
|
|
1036
|
+
h3.signature .aliases {
|
|
1037
|
+
color: var(--fg-muted) !important;
|
|
1038
|
+
font-family: var(--font-sans);
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
p.signature tt,
|
|
1042
|
+
h3.signature tt,
|
|
1043
|
+
p.signature code,
|
|
1044
|
+
h3.signature code {
|
|
1045
|
+
background: transparent !important;
|
|
1046
|
+
border: 0 !important;
|
|
1047
|
+
color: var(--fg) !important;
|
|
1048
|
+
padding: 0 !important;
|
|
1049
|
+
font-family: var(--font-mono);
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
/* The strong/method-name portion inside the signature (e.g. `#field`)
|
|
1053
|
+
* was rendering near-invisible because YARD's #content a { color: #05a }
|
|
1054
|
+
* lost out to nothing and links inside .signature became near-transparent.
|
|
1055
|
+
* Force the method name to the foreground color. */
|
|
1056
|
+
p.signature strong,
|
|
1057
|
+
h3.signature strong,
|
|
1058
|
+
p.signature a,
|
|
1059
|
+
h3.signature a,
|
|
1060
|
+
p.signature a:visited,
|
|
1061
|
+
h3.signature a:visited {
|
|
1062
|
+
color: var(--fg) !important;
|
|
1063
|
+
font-weight: 700;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
/* The "Object" return-type pill inside attribute signatures keeps
|
|
1067
|
+
* its tt-wrapper; let it carry the inline-code background. */
|
|
1068
|
+
h3.signature > tt,
|
|
1069
|
+
p.signature > tt {
|
|
1070
|
+
background: var(--bg-code) !important;
|
|
1071
|
+
border: 1px solid var(--border) !important;
|
|
1072
|
+
border-radius: var(--radius-sm);
|
|
1073
|
+
padding: 1px 6px !important;
|
|
1074
|
+
color: var(--code-inline) !important;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
.method_details {
|
|
1078
|
+
border-top: 1px solid var(--border);
|
|
1079
|
+
margin-top: 24px;
|
|
1080
|
+
padding-top: 8px;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
/* ============================================================
|
|
1084
|
+
* Object links, "show all", "more..."
|
|
1085
|
+
* ============================================================ */
|
|
1086
|
+
|
|
1087
|
+
/* `.summary_desc .object_link a, .docstring .object_link a` ships with
|
|
1088
|
+
* background #edf4fa + color #05a (light bg, dark link). Re-skin. */
|
|
1089
|
+
.summary_desc .object_link a,
|
|
1090
|
+
.docstring .object_link a,
|
|
1091
|
+
.tags .object_link a,
|
|
1092
|
+
#filecontents .object_link a,
|
|
1093
|
+
.discussion .object_link a {
|
|
1094
|
+
background: var(--bg-code) !important;
|
|
1095
|
+
color: var(--code-inline) !important;
|
|
1096
|
+
border: 1px solid var(--border);
|
|
1097
|
+
border-radius: var(--radius-sm);
|
|
1098
|
+
padding: 1px 6px !important;
|
|
1099
|
+
font-family: var(--font-mono);
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
.summary_desc .object_link a:hover,
|
|
1103
|
+
.docstring .object_link a:hover,
|
|
1104
|
+
.tags .object_link a:hover,
|
|
1105
|
+
#filecontents .object_link a:hover {
|
|
1106
|
+
background: var(--parse) !important;
|
|
1107
|
+
color: #fff !important;
|
|
1108
|
+
border-color: var(--parse);
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
/* Object links inside <pre.code> stay transparent (YARD already sets
|
|
1112
|
+
* `background: inherit` there; we re-pin to avoid !important fighting). */
|
|
1113
|
+
.summary_desc pre.code .object_link a,
|
|
1114
|
+
.docstring pre.code .object_link a,
|
|
1115
|
+
pre.code .object_link a {
|
|
1116
|
+
background: transparent !important;
|
|
1117
|
+
border: 0 !important;
|
|
1118
|
+
padding: 0 !important;
|
|
1119
|
+
color: var(--link) !important;
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
/* "show all" inheritance-tree toggle inside .box_info. */
|
|
1123
|
+
a.inheritanceTree,
|
|
1124
|
+
.box_info a.inheritanceTree,
|
|
1125
|
+
.inheritanceTree {
|
|
1126
|
+
background: var(--bg-soft) !important;
|
|
1127
|
+
color: var(--link) !important;
|
|
1128
|
+
border: 1px solid var(--border) !important;
|
|
1129
|
+
border-radius: var(--radius-sm) !important;
|
|
1130
|
+
padding: 1px 8px !important;
|
|
1131
|
+
font-size: 0.85em;
|
|
1132
|
+
font-weight: 600;
|
|
1133
|
+
text-decoration: none !important;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
a.inheritanceTree:hover {
|
|
1137
|
+
background: var(--parse) !important;
|
|
1138
|
+
color: #fff !important;
|
|
1139
|
+
border-color: var(--parse) !important;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
/* "more..." / "(less)" toggle inserted by createDefineLinks(). */
|
|
1143
|
+
a.toggleDefines,
|
|
1144
|
+
.toggleDefines {
|
|
1145
|
+
background: var(--bg-soft) !important;
|
|
1146
|
+
color: var(--link) !important;
|
|
1147
|
+
border: 1px solid var(--border) !important;
|
|
1148
|
+
border-radius: var(--radius-sm) !important;
|
|
1149
|
+
padding: 1px 8px !important;
|
|
1150
|
+
font-size: 0.8em;
|
|
1151
|
+
font-weight: 600;
|
|
1152
|
+
text-decoration: none !important;
|
|
1153
|
+
margin-left: 4px;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
a.toggleDefines:hover {
|
|
1157
|
+
background: var(--parse) !important;
|
|
1158
|
+
color: #fff !important;
|
|
1159
|
+
border-color: var(--parse) !important;
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
/* `.defines` is the hidden detail span the toggle reveals; keep its
|
|
1163
|
+
* text inheriting the page palette (it was a light surface in stock). */
|
|
1164
|
+
.defines {
|
|
1165
|
+
color: var(--fg-muted);
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
/* ============================================================
|
|
1169
|
+
* .note.title.* badges (Private, Readonly, Writeonly, Constructor)
|
|
1170
|
+
* ------------------------------------------------------------
|
|
1171
|
+
* These are the inline pill badges next to method signatures. YARD
|
|
1172
|
+
* ships hardcoded pastel backgrounds for each — too light to read
|
|
1173
|
+
* on a dark surface. Specificity 0,3,0 (three classes) so we need
|
|
1174
|
+
* to match it.
|
|
1175
|
+
* ============================================================ */
|
|
1176
|
+
|
|
1177
|
+
.note.title {
|
|
1178
|
+
background: var(--bg-soft) !important;
|
|
1179
|
+
color: var(--fg) !important;
|
|
1180
|
+
border: 1px solid var(--border) !important;
|
|
1181
|
+
border-radius: var(--radius-sm);
|
|
1182
|
+
padding: 1px 8px !important;
|
|
1183
|
+
font-size: 0.78em;
|
|
1184
|
+
font-weight: 700;
|
|
1185
|
+
text-transform: uppercase;
|
|
1186
|
+
letter-spacing: .04em;
|
|
1187
|
+
vertical-align: middle;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
.note.title.private {
|
|
1191
|
+
background: var(--bg-soft) !important;
|
|
1192
|
+
color: var(--fg-muted) !important;
|
|
1193
|
+
border-color: var(--slate) !important;
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
.note.title.readonly {
|
|
1197
|
+
background: rgba(22, 156, 238, .18) !important;
|
|
1198
|
+
color: var(--link) !important;
|
|
1199
|
+
border-color: var(--parse) !important;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
.note.title.writeonly {
|
|
1203
|
+
background: rgba(69, 166, 56, .18) !important;
|
|
1204
|
+
color: #7ED4A6 !important;
|
|
1205
|
+
border-color: #4D8E48 !important;
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
.note.title.constructor {
|
|
1209
|
+
background: rgba(255, 143, 163, .15) !important;
|
|
1210
|
+
color: var(--accent) !important;
|
|
1211
|
+
border-color: var(--accent) !important;
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
.note.title.not_defined_here,
|
|
1215
|
+
.note.title.deprecated {
|
|
1216
|
+
background: rgba(255, 107, 122, .15) !important;
|
|
1217
|
+
color: var(--accent-hi) !important;
|
|
1218
|
+
border-color: var(--accent) !important;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
/* Strike-through line for deprecated entries already comes from
|
|
1222
|
+
* .deprecated rules elsewhere — leave it alone. */
|