@shoalrun/cli 0.1.0-beta.1 → 1.0.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/CODE-REFERENCES.md +137 -0
  3. package/README.md +8 -5
  4. package/adapters/python/requirements.txt +1 -0
  5. package/adapters/python/shoalrun_reference.py +234 -0
  6. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +4 -2
  7. package/agent-docs/SNAPSHOT.json +5 -5
  8. package/agent-docs/about.md +3 -3
  9. package/agent-docs/api-docs/code-reference-settings.md +160 -0
  10. package/agent-docs/api-docs/code-reference-settings.sections/catalog-settings.md +50 -0
  11. package/agent-docs/api-docs/code-reference-settings.sections/complete-reference-page.md +46 -0
  12. package/agent-docs/api-docs/code-reference-settings.sections/converter-snapshot.md +58 -0
  13. package/agent-docs/api-docs/code-reference-settings.sections/descriptions-type-links-and-source-links.md +40 -0
  14. package/agent-docs/api-docs/code-reference-settings.sections/html-markdown-and-agents.md +38 -0
  15. package/agent-docs/api-docs/code-reference-settings.sections/metadata-and-selection.md +38 -0
  16. package/agent-docs/api-docs/code-reference-settings.sections/publication-sources.md +54 -0
  17. package/agent-docs/api-docs/code-reference-settings.sections/python-adapter-limits.md +38 -0
  18. package/agent-docs/api-docs/code-reference-settings.sections/related-reading.md +32 -0
  19. package/agent-docs/api-docs/code-reference-settings.sections/symbol-fields.md +56 -0
  20. package/agent-docs/api-docs/code-references.md +143 -0
  21. package/agent-docs/author/agent-overview.md +2 -2
  22. package/agent-docs/changelog/code-api-references.md +44 -0
  23. package/agent-docs/changelog.md +9 -1
  24. package/agent-docs/cli.md +11 -1
  25. package/agent-docs/cli.sections/audit-a-project-and-api-sources.md +1 -1
  26. package/agent-docs/cli.sections/author-pages.md +1 -1
  27. package/agent-docs/cli.sections/build-and-serve.md +1 -1
  28. package/agent-docs/cli.sections/inspect-config-and-operations.md +1 -1
  29. package/agent-docs/cli.sections/npm-scripts-in-this-repository.md +1 -1
  30. package/agent-docs/cli.sections/related-reading.md +1 -1
  31. package/agent-docs/cli.sections/search-and-chat.md +1 -1
  32. package/agent-docs/cli.sections/start-a-project.md +1 -1
  33. package/agent-docs/cli.sections/validate-code-reference-snapshots.md +41 -0
  34. package/agent-docs/cli.sections/working-tree-authoring-tools.md +1 -1
  35. package/agent-docs/config/apis.md +5 -1
  36. package/agent-docs/config/examples.md +3 -3
  37. package/agent-docs/config/examples.sections/feature-showcase.md +3 -3
  38. package/agent-docs/config/examples.sections/minimal-site.md +2 -2
  39. package/agent-docs/config/examples.sections/multilingual-help-center.md +2 -2
  40. package/agent-docs/config/examples.sections/parcel-api-documentation.md +2 -2
  41. package/agent-docs/config/examples.sections/related-reading.md +2 -2
  42. package/agent-docs/config/examples.sections/shared-company-preset.md +2 -2
  43. package/agent-docs/config.md +2 -2
  44. package/agent-docs/configuration.md +2 -2
  45. package/agent-docs/configuration.sections/build-several-sites-from-shared-content.md +1 -1
  46. package/agent-docs/configuration.sections/change-inherited-lists-deliberately.md +1 -1
  47. package/agent-docs/configuration.sections/extract-a-section-with-include.md +1 -1
  48. package/agent-docs/configuration.sections/inspect-and-validate-changes.md +1 -1
  49. package/agent-docs/configuration.sections/related-reading.md +1 -1
  50. package/agent-docs/configuration.sections/separate-config-inheritance-from-page-metadata.md +1 -1
  51. package/agent-docs/configuration.sections/share-defaults-through-extends.md +1 -1
  52. package/agent-docs/configuration.sections/start-with-one-working-file.md +2 -2
  53. package/agent-docs/configuration.sections/understand-the-three-stages.md +1 -1
  54. package/agent-docs/configuration.sections/understand-where-paths-point.md +1 -1
  55. package/agent-docs/documents.json +609 -215
  56. package/agent-docs/features.md +3 -2
  57. package/agent-docs/provenance.json +6 -6
  58. package/agent-docs/publish/api-references.md +3 -1
  59. package/agent-docs/publish/api-references.sections/author-the-reference-page.md +3 -1
  60. package/agent-docs/publish/api-references.sections/build-and-verify-the-output.md +3 -1
  61. package/agent-docs/publish/api-references.sections/inspect-the-machine-readable-contract.md +3 -1
  62. package/agent-docs/publish/api-references.sections/next-steps.md +3 -1
  63. package/agent-docs/publish/api-references.sections/preview-a-small-api-reference.md +3 -1
  64. package/agent-docs/publish/api-references.sections/put-the-spec-in-your-project.md +3 -1
  65. package/agent-docs/publish/api-references.sections/register-the-operation.md +3 -1
  66. package/agent-docs/publish/api-references.sections/related-reading.md +3 -1
  67. package/agent-docs/publish/api-references.sections/review-imported-content-before-publishing.md +3 -1
  68. package/agent-docs/publish/api-references.sections/what-readers-get.md +3 -1
  69. package/agent-docs/search-index.json +1 -1
  70. package/agent-docs/start.md +3 -3
  71. package/agent-docs/start.sections/add-the-page-to-navigation.md +2 -2
  72. package/agent-docs/start.sections/build-and-check-both-outputs.md +2 -2
  73. package/agent-docs/start.sections/build-this-site.md +2 -2
  74. package/agent-docs/start.sections/check-writing-style.md +2 -2
  75. package/agent-docs/start.sections/create-a-page.md +2 -2
  76. package/agent-docs/start.sections/make-it-yours.md +2 -2
  77. package/agent-docs/start.sections/migrating-from-github-packages.md +2 -2
  78. package/agent-docs/start.sections/prerequisites.md +2 -2
  79. package/agent-docs/start.sections/related-reading.md +2 -2
  80. package/agent-docs/start.sections/start-your-own-project.md +3 -3
  81. package/agent-docs/status.md +6 -4
  82. package/agent-docs/styling/themes.md +7 -3
  83. package/agent-docs/what-is-shoalrun.md +2 -2
  84. package/dist/artifact-bundle.d.ts +1 -0
  85. package/dist/artifact-bundle.js +11 -3
  86. package/dist/cli-discovery.d.ts +1 -1
  87. package/dist/cli-discovery.js +1 -0
  88. package/dist/cli.js +7 -0
  89. package/dist/code-reference-model.d.ts +85 -0
  90. package/dist/code-reference-model.js +73 -0
  91. package/dist/code-references.d.ts +23 -0
  92. package/dist/code-references.js +371 -0
  93. package/dist/compiler-config.d.ts +1 -0
  94. package/dist/compiler.js +4 -3
  95. package/dist/config.js +1 -1
  96. package/dist/content-source.d.ts +1 -0
  97. package/dist/content-workspace.d.ts +1 -0
  98. package/dist/content-workspace.js +2 -0
  99. package/dist/fonts.d.ts +9 -0
  100. package/dist/fonts.js +58 -3
  101. package/dist/page-materialization.js +3 -2
  102. package/dist/page-renderer.d.ts +1 -0
  103. package/dist/page-renderer.js +3 -1
  104. package/dist/publication-render.d.ts +2 -1
  105. package/dist/publication-render.js +2 -2
  106. package/dist/representation-tree.js +4 -0
  107. package/examples/code-references/content/start.md +53 -0
  108. package/examples/code-references/docs.config.yaml +262 -0
  109. package/examples/code-references/python/orchard/__init__.py +11 -0
  110. package/examples/code-references/python/orchard/client.py +212 -0
  111. package/examples/code-references/python/orchard/errors.py +31 -0
  112. package/examples/code-references/python/orchard/models.py +69 -0
  113. package/examples/code-references/python/orchard/pagination.py +39 -0
  114. package/examples/code-references/reference.json +1244 -0
  115. package/package.json +8 -1
  116. package/schemas/code-reference.schema.json +306 -0
  117. package/skills/shoalrun-author/SKILL.md +4 -0
  118. package/skills/shoalrun-author/references/code-api-references.md +15 -0
  119. package/styles/site.css +61 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shoalrun/cli",
3
- "version": "0.1.0-beta.1",
3
+ "version": "1.0.0",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public"
@@ -11,6 +11,7 @@
11
11
  "license": "Apache-2.0",
12
12
  "type": "module",
13
13
  "exports": {
14
+ "./references": "./dist/code-reference-model.js",
14
15
  "./content": "./dist/content-delivery.js",
15
16
  "./authoring": "./dist/authoring-api.js",
16
17
  "./*": "./*",
@@ -27,6 +28,7 @@
27
28
  "templates",
28
29
  "examples",
29
30
  "!examples/**/public/**",
31
+ "!examples/**/site-dist/**",
30
32
  "!examples/**/node_modules/**",
31
33
  "example-configs",
32
34
  "!example-configs/**/.shoalrun/**",
@@ -34,7 +36,12 @@
34
36
  "skills",
35
37
  "README.md",
36
38
  "AUTHORING.md",
39
+ "CODE-REFERENCES.md",
37
40
  "DEPLOYMENT-PROFILES.md",
41
+ "schemas/code-reference.schema.json",
42
+ "adapters/python",
43
+ "!**/__pycache__/**",
44
+ "!adapters/python/test_*.py",
38
45
  "schemas/content-export.schema.json",
39
46
  "schemas/content-rest.openapi.json",
40
47
  "CHANGELOG.md",
@@ -0,0 +1,306 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "type": "number",
7
+ "const": 1
8
+ },
9
+ "kind": {
10
+ "type": "string",
11
+ "const": "shoalrun-code-reference"
12
+ },
13
+ "programmingLanguage": {
14
+ "type": "string",
15
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
16
+ },
17
+ "producer": {
18
+ "type": "object",
19
+ "properties": {
20
+ "name": {
21
+ "type": "string",
22
+ "minLength": 1,
23
+ "maxLength": 100
24
+ },
25
+ "version": {
26
+ "type": "string",
27
+ "minLength": 1,
28
+ "maxLength": 100
29
+ },
30
+ "extractorVersion": {
31
+ "type": "string",
32
+ "maxLength": 100
33
+ }
34
+ },
35
+ "required": [
36
+ "name",
37
+ "version"
38
+ ],
39
+ "additionalProperties": false
40
+ },
41
+ "sourceDigest": {
42
+ "type": "string",
43
+ "pattern": "^[a-f0-9]{64}$"
44
+ },
45
+ "symbols": {
46
+ "minItems": 1,
47
+ "maxItems": 10000,
48
+ "type": "array",
49
+ "items": {
50
+ "type": "object",
51
+ "properties": {
52
+ "id": {
53
+ "type": "string",
54
+ "minLength": 1,
55
+ "maxLength": 512,
56
+ "pattern": "^[^\\s\\x00-\\x1f]+$"
57
+ },
58
+ "name": {
59
+ "type": "string",
60
+ "minLength": 1,
61
+ "maxLength": 512
62
+ },
63
+ "kind": {
64
+ "type": "string",
65
+ "enum": [
66
+ "module",
67
+ "namespace",
68
+ "class",
69
+ "interface",
70
+ "enum",
71
+ "type",
72
+ "function",
73
+ "method",
74
+ "constructor",
75
+ "property",
76
+ "attribute",
77
+ "constant"
78
+ ]
79
+ },
80
+ "parent": {
81
+ "type": "string",
82
+ "minLength": 1,
83
+ "maxLength": 512,
84
+ "pattern": "^[^\\s\\x00-\\x1f]+$"
85
+ },
86
+ "visibility": {
87
+ "default": "public",
88
+ "type": "string",
89
+ "enum": [
90
+ "public",
91
+ "private"
92
+ ]
93
+ },
94
+ "summary": {
95
+ "type": "string",
96
+ "maxLength": 1000
97
+ },
98
+ "description": {
99
+ "type": "string",
100
+ "maxLength": 100000
101
+ },
102
+ "annotation": {
103
+ "type": "string",
104
+ "maxLength": 100000
105
+ },
106
+ "default": {
107
+ "type": "string",
108
+ "maxLength": 100000
109
+ },
110
+ "required": {
111
+ "type": "boolean"
112
+ },
113
+ "bases": {
114
+ "maxItems": 100,
115
+ "type": "array",
116
+ "items": {
117
+ "type": "string",
118
+ "maxLength": 100000
119
+ }
120
+ },
121
+ "constructorSignature": {
122
+ "type": "string",
123
+ "maxLength": 100000
124
+ },
125
+ "typeReferences": {
126
+ "type": "object",
127
+ "propertyNames": {
128
+ "type": "string",
129
+ "minLength": 1,
130
+ "maxLength": 512
131
+ },
132
+ "additionalProperties": {
133
+ "type": "string",
134
+ "minLength": 1,
135
+ "maxLength": 512,
136
+ "pattern": "^[^\\s\\x00-\\x1f]+$"
137
+ }
138
+ },
139
+ "signatures": {
140
+ "maxItems": 100,
141
+ "type": "array",
142
+ "items": {
143
+ "type": "string",
144
+ "maxLength": 100000
145
+ }
146
+ },
147
+ "parameters": {
148
+ "maxItems": 1000,
149
+ "type": "array",
150
+ "items": {
151
+ "type": "object",
152
+ "properties": {
153
+ "name": {
154
+ "type": "string",
155
+ "minLength": 1,
156
+ "maxLength": 512
157
+ },
158
+ "type": {
159
+ "type": "string",
160
+ "maxLength": 100000
161
+ },
162
+ "description": {
163
+ "type": "string",
164
+ "maxLength": 100000
165
+ },
166
+ "default": {
167
+ "type": "string",
168
+ "maxLength": 100000
169
+ }
170
+ },
171
+ "required": [
172
+ "name"
173
+ ],
174
+ "additionalProperties": false
175
+ }
176
+ },
177
+ "returns": {
178
+ "type": "object",
179
+ "properties": {
180
+ "type": {
181
+ "type": "string",
182
+ "maxLength": 100000
183
+ },
184
+ "description": {
185
+ "type": "string",
186
+ "maxLength": 100000
187
+ }
188
+ },
189
+ "additionalProperties": false
190
+ },
191
+ "yields": {
192
+ "type": "object",
193
+ "properties": {
194
+ "type": {
195
+ "type": "string",
196
+ "maxLength": 100000
197
+ },
198
+ "description": {
199
+ "type": "string",
200
+ "maxLength": 100000
201
+ }
202
+ },
203
+ "additionalProperties": false
204
+ },
205
+ "raises": {
206
+ "maxItems": 1000,
207
+ "type": "array",
208
+ "items": {
209
+ "type": "object",
210
+ "properties": {
211
+ "name": {
212
+ "type": "string",
213
+ "minLength": 1,
214
+ "maxLength": 512
215
+ },
216
+ "type": {
217
+ "type": "string",
218
+ "maxLength": 100000
219
+ },
220
+ "description": {
221
+ "type": "string",
222
+ "maxLength": 100000
223
+ },
224
+ "default": {
225
+ "type": "string",
226
+ "maxLength": 100000
227
+ }
228
+ },
229
+ "required": [
230
+ "name"
231
+ ],
232
+ "additionalProperties": false
233
+ }
234
+ },
235
+ "examples": {
236
+ "maxItems": 100,
237
+ "type": "array",
238
+ "items": {
239
+ "type": "object",
240
+ "properties": {
241
+ "title": {
242
+ "type": "string",
243
+ "maxLength": 512
244
+ },
245
+ "code": {
246
+ "type": "string",
247
+ "maxLength": 100000
248
+ }
249
+ },
250
+ "required": [
251
+ "code"
252
+ ],
253
+ "additionalProperties": false
254
+ }
255
+ },
256
+ "seeAlso": {
257
+ "maxItems": 1000,
258
+ "type": "array",
259
+ "items": {
260
+ "type": "string",
261
+ "minLength": 1,
262
+ "maxLength": 512,
263
+ "pattern": "^[^\\s\\x00-\\x1f]+$"
264
+ }
265
+ },
266
+ "source": {
267
+ "type": "object",
268
+ "properties": {
269
+ "path": {
270
+ "type": "string",
271
+ "minLength": 1,
272
+ "maxLength": 1000,
273
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^/\\\\\\x00:]+(?:\\/[^/\\\\\\x00:]+)*$"
274
+ },
275
+ "line": {
276
+ "type": "integer",
277
+ "exclusiveMinimum": 0,
278
+ "maximum": 9007199254740991
279
+ }
280
+ },
281
+ "required": [
282
+ "path"
283
+ ],
284
+ "additionalProperties": false
285
+ }
286
+ },
287
+ "required": [
288
+ "id",
289
+ "name",
290
+ "kind",
291
+ "visibility"
292
+ ],
293
+ "additionalProperties": false
294
+ }
295
+ }
296
+ },
297
+ "required": [
298
+ "schemaVersion",
299
+ "kind",
300
+ "programmingLanguage",
301
+ "producer",
302
+ "symbols"
303
+ ],
304
+ "additionalProperties": false,
305
+ "title": "Shoalrun Code API reference snapshot"
306
+ }
@@ -21,6 +21,10 @@ When reading a published site through Markdown, follow topic-index links when pr
21
21
 
22
22
  Read `reference.authoring-workspace` for tool contracts and `guide.authoring-workspace` for the working-tree procedure. Before unfamiliar syntax, check the relevant component attributes, configuration structure, or asset-handling contract instead of assuming another tool’s conventions. For MDX components, read their canonical reference; `<Step>` belongs inside `<Steps>` for an ordinary titled procedure, while your harness's task plan is separate. Read implementation/specification evidence with your harness's permitted tools; record the sources for changed claims. Bundled guidance does not establish a consumer project's facts.
23
23
 
24
+ ## Code API references
25
+
26
+ For source-code library or SDK references, read [references/code-api-references.md](references/code-api-references.md). Keep these separate from OpenAPI endpoint references. Extract explicitly, validate the snapshot, preserve publication and feature scope, and choose symbol, class, module, or optional complete-page presentation deliberately.
27
+
24
28
  ## Products and availability
25
29
 
26
30
  For independently versioned products, cross-product reuse, product-scoped delivery, or feature availability labels, read [references/publications.md](references/publications.md). Preserve product/channel/version/language identity, distinguish publication membership from feature grants, and check installed-version support before using new fields. Availability labels describe support; they don't filter the published content.
@@ -0,0 +1,15 @@
1
+ # Code API reference authoring
2
+
3
+ Read `guide.code-api-references` and `reference.code-api-references` from the installed package's bundled docs when present. Check installed-version support; the feature starts in 1.0.0. A source checkout also provides `CODE-REFERENCES.md` and a runnable `examples/code-references` project.
4
+
5
+ Use `codeReferences` for a language library or SDK, and `apis` for OpenAPI HTTP endpoints. A converter writes the versioned snapshot; normal builds never invoke it. The optional Python adapter requires an explicitly prepared Python 3.11+ environment with its pinned requirements. Keep extraction roots narrow and don't enable runtime inspection or external discovery to make an unsupported package appear to work. Other languages can provide their own converter; don't claim a bundled Kotlin extractor.
6
+
7
+ Run `shoalrun references check FILE`, inspect the snapshot's public symbols and prose, then configure the catalog. Snapshot descriptions are inert Markdown; MDX, project directives, relative links, and images aren't supported. Preserve exact symbol IDs and use explicit document IDs/slugs when public identities must survive a rename. Keep snapshots in the project and regenerate them after source changes.
8
+
9
+ Choose `layout: symbols`, `classes`, or `modules` by reading needs. All retain individual symbol URLs. Add `singlePage` only when a complete reference is useful; configure its ID, slug, title, summary, and optional metadata, then link that ID in navigation. Group class or module pages in navigation instead of listing every symbol when a shorter menu is wanted.
10
+
11
+ Preserve product/channel/version/language source bindings. Catalog and symbol metadata classify their content; a parent's feature requirements aren't inherited by children. Strict source classification also applies to the complete page. Pass the same profile through validation, build, and export. Check that private, restricted, or audience-excluded symbols don't reappear inside grouped or complete pages.
12
+
13
+ Type links use explicit converter targets and remain within eligible catalog/publication scope. Keep unknown types unlinked. Required fields are distinct from nullable fields; show defaults as unevaluated expressions. Configure repository source links only with a real HTTPS base directory and intended release/commit; never invent a repository location.
14
+
15
+ Review class/module and complete pages in HTML and Markdown. Check inline symbol links, retained individual URLs, narrow-screen table scrolling and keyboard focus, and content-export/PDF selection by ID where relevant. Reading references doesn't require JavaScript; Copy controls do. Extraction doesn't prove runtime behavior or execute examples.
package/styles/site.css CHANGED
@@ -167,7 +167,7 @@ button{cursor:pointer}
167
167
  /* Reading rhythm for overviews, guides, and reference prose. */
168
168
  .content{grid-area:main;min-width:0;max-width:68rem;overflow-wrap:anywhere}
169
169
  .eyebrow{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:var(--color-emphasis)}
170
- .page-head{padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--color-border)}
170
+ .page-head{padding-bottom:.75rem;margin-bottom:.65rem;border-bottom:1px solid var(--color-border)}
171
171
  .content[data-document-type=cookbook] .page-head{padding:1.45rem 1.6rem;margin-bottom:1.8rem;border:1px solid var(--color-border);border-top:4px solid var(--color-accent);border-radius:var(--radius-panel);background:var(--color-field-surface)}
172
172
  .content[data-document-type=cookbook] .page-head .eyebrow{display:inline-block;padding:.28rem .55rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface)}
173
173
  .content[data-document-type=cookbook] .page-head h1{margin:.8rem 0 .8rem}
@@ -182,6 +182,7 @@ button{cursor:pointer}
182
182
  .audience-labels{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:-.25rem 0 1.25rem;font-size:.78rem}
183
183
  .audience-label-heading{font-weight:650;color:var(--color-muted);margin-right:.1rem}
184
184
  .audience-badge{padding:.2rem .55rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-ink);font-weight:600;line-height:1.4;overflow-wrap:anywhere}
185
+ .page-head>:last-child{margin-bottom:0}
185
186
  .formats{display:inline-flex;align-items:center;min-height:2.5rem;font-size:.78rem;font-weight:600;color:var(--color-muted);text-decoration:none;border:1px solid transparent;border-radius:var(--radius-small);padding:.35rem .6rem;margin-left:-.6rem}
186
187
  .formats:hover{color:var(--color-link-hover);background:var(--color-nav-hover)}
187
188
  .endpoint-route{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:1.35rem 0 1rem;padding:.65rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-field-surface);min-width:0}
@@ -489,7 +490,7 @@ button{cursor:pointer}
489
490
  .mast-inner{padding:.9rem 1.1rem;gap:.65rem}
490
491
  .brand{font-size:.9rem}
491
492
  .edition{font-size:.65rem}
492
- .page-head{padding-bottom:1.5rem;margin-bottom:1.5rem}
493
+ .page-head{padding-bottom:.75rem;margin-bottom:.65rem}
493
494
  .page-head h1{font-size:2.1rem}
494
495
  .content .summary{font-size:1rem}
495
496
  .content h2{font-size:1.3rem;margin-top:2rem}
@@ -835,3 +836,61 @@ button[data-copy-markdown][hidden]{display:none}
835
836
  .content .doc-image-align-left{display:block;margin-left:0;margin-right:auto}
836
837
  .content .doc-image-align-center{display:block;margin-left:auto;margin-right:auto}
837
838
  .content .doc-image-align-right{display:block;margin-left:auto;margin-right:0}
839
+
840
+ /* Code API references share one type scale across prose, declarations and tables. */
841
+ .content[data-document-type=code-reference]{--reference-text:.9375rem;--reference-code:.875rem;--reference-small:.8125rem;font-size:var(--reference-text);line-height:1.65}
842
+ .content[data-document-type=code-reference] .page-head h1{font-family:var(--font-code);font-size:clamp(1.75rem,2.2vw,2.25rem);letter-spacing:-.035em;line-height:1.2;overflow-wrap:anywhere}
843
+ .content[data-document-type=code-reference] .summary{font-size:var(--reference-text);line-height:1.65;max-width:68ch}
844
+ .content[data-document-type=code-reference] .eyebrow{font-size:var(--reference-small)}
845
+ .content[data-document-type=code-reference] .page-formats{margin-bottom:1rem}
846
+ .content[data-document-type=code-reference] .formats{font-size:var(--reference-small)}
847
+ .content[data-document-type=code-reference] article p{font-size:inherit;line-height:1.65;margin:.75rem 0 1rem}
848
+ .content[data-document-type=code-reference] article>h2{font-size:1.25rem;line-height:1.35;letter-spacing:-.025em;margin:1.75rem 0 .85rem;padding-top:1rem}
849
+ .content[data-document-type=code-reference] article h3{font-size:1rem;line-height:1.4;margin:1.4rem 0 .65rem}
850
+ .content[data-document-type=code-reference] article :is(h4,h5){font-size:var(--reference-text);line-height:1.4}
851
+ .content[data-document-type=code-reference] article code{font-size:var(--reference-code)}
852
+ .content[data-document-type=code-reference] .code-reference-identity{display:flex;align-items:baseline;flex-wrap:wrap;gap:.65rem;font-size:var(--reference-small);color:var(--color-muted);margin:.35rem 0 .65rem}
853
+ .content[data-document-type=code-reference] .code-reference-identity strong{font-size:inherit;text-transform:none;letter-spacing:0;font-weight:600;color:var(--color-emphasis)}
854
+ .content[data-document-type=code-reference] .code-reference-identity code{background:none;padding:0;color:inherit;max-width:100%;overflow-wrap:anywhere}
855
+ .content[data-document-type=code-reference] .code-reference-identity a{text-decoration:none}
856
+ .content[data-document-type=code-reference] .code-reference-identity a:hover{text-decoration:underline}
857
+ .content[data-document-type=code-reference] .code-block:has(code.code-reference-signature){display:grid;grid-template-columns:minmax(0,1fr) auto;position:relative;margin:.65rem 0 1rem;box-shadow:none;background:var(--color-field-surface);border:1px solid var(--color-border);border-radius:var(--radius-small)}
858
+ .content[data-document-type=code-reference] pre:has(>code.code-reference-signature){grid-column:1;grid-row:1;min-width:0;padding:.85rem 1rem;font-size:var(--reference-code);line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--color-field-surface)!important;color:var(--color-ink)!important}
859
+ .code-block:has(code.code-reference-signature)>.code-toolbar{grid-column:2;grid-row:1;align-self:start;min-height:0;height:auto;padding:.45rem .4rem 0 0;border:0}
860
+ .code-block:has(code.code-reference-signature)>.code-toolbar>:not(.code-copy){display:none}
861
+ .code-block:has(code.code-reference-signature)>.code-toolbar>.code-copy{position:static;min-height:2rem;font-size:var(--reference-small)}
862
+ .content[data-document-type=code-reference] code.code-reference-signature,.content[data-document-type=code-reference] code.code-reference-signature span{color:var(--color-ink)!important;font-weight:400;white-space:inherit;overflow-wrap:inherit}
863
+ .content[data-document-type=code-reference] .code-block:has(code.code-reference-signature) .code-copy{color:var(--color-muted)}
864
+ .content[data-document-type=code-reference] .code-block:has(code.code-reference-signature) .code-copy:hover{color:var(--color-ink);background:var(--color-nav-hover);border-color:var(--color-border)}
865
+ .content[data-document-type=code-reference] .code-block:has(code.code-reference-signature) .code-copy:focus-visible{outline-color:var(--color-accent)}
866
+ .content[data-document-type=code-reference] table.code-reference-table{table-layout:auto;font-size:var(--reference-text);line-height:1.65;margin:.75rem 0 1.25rem}
867
+ .content[data-document-type=code-reference] .code-reference-table th{font-size:var(--reference-small);text-transform:none;letter-spacing:0;background:transparent;color:var(--color-muted);font-weight:600;border-bottom:1px solid var(--color-border)}
868
+ .content[data-document-type=code-reference] .code-reference-table :is(th,td){padding:.65rem .6rem;overflow-wrap:normal}
869
+ .content[data-document-type=code-reference] .code-reference-table td{font-size:var(--reference-text)}
870
+ .content[data-document-type=code-reference] .code-reference-table td:first-child{width:22%;font-weight:500}
871
+ .content[data-document-type=code-reference] .code-reference-table td:nth-child(2){width:26%;color:var(--color-muted)}
872
+ .content[data-document-type=code-reference] .code-reference-table td:last-child{min-width:12rem}
873
+ .content[data-document-type=code-reference] .code-reference-table code{font-size:var(--reference-code);overflow-wrap:normal;background:none;padding:0}
874
+ .content[data-document-type=code-reference] .code-reference-table a{font-weight:600;text-decoration:none}
875
+ .content[data-document-type=code-reference] .code-reference-table a code{color:var(--color-link)}
876
+ .content[data-document-type=code-reference] .code-reference-table a:hover{text-decoration:underline}
877
+ .content[data-document-type=code-reference] .code-reference-table tbody tr:hover{background:var(--color-field-surface)}
878
+ .content[data-document-type=code-reference] .code-reference-table:has(th:nth-child(4)) td:first-child{width:18%}
879
+ .content[data-document-type=code-reference] .code-reference-table:has(th:nth-child(4)) td:nth-child(2){width:23%}
880
+ .content[data-document-type=code-reference] .code-reference-table:has(th:nth-child(4)) td:nth-child(3){width:22%;color:var(--color-muted)}
881
+ .content[data-document-type=code-reference] .code-reference-summary{display:none}
882
+ .content[data-document-type=code-reference] .code-reference-table-scroll{max-width:100%;min-width:0;overflow-x:auto;margin:.75rem 0 1.25rem;scrollbar-width:thin}
883
+ .content[data-document-type=code-reference] .code-reference-table-scroll:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
884
+ .content[data-document-type=code-reference] .code-reference-table-scroll table{min-width:38rem;margin:0}
885
+ .content[data-document-type=code-reference] .code-reference-table-scroll table:has(th:nth-child(4)){min-width:46rem}
886
+ @media print{
887
+ .content[data-document-type=code-reference] .code-reference-table-scroll{overflow:visible}
888
+ .content[data-document-type=code-reference] .code-reference-table-scroll table,.content[data-document-type=code-reference] .code-reference-table-scroll table:has(th:nth-child(4)){min-width:0;table-layout:fixed}
889
+ .content[data-document-type=code-reference] .code-reference-table-scroll :is(th,td,code){overflow-wrap:anywhere;min-width:0}
890
+ }
891
+ @media(max-width:48rem){
892
+ .content[data-document-type=code-reference] .page-head h1{font-size:1.75rem}
893
+ .content[data-document-type=code-reference] table.code-reference-table{table-layout:auto}
894
+ .content[data-document-type=code-reference] .code-reference-table :is(th,td){padding:.55rem .3rem}
895
+ .content[data-document-type=code-reference] .code-reference-table td:last-child{min-width:14rem}
896
+ }