rclnodejs 1.9.0 → 2.0.0-beta.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 (98) hide show
  1. package/.prettierignore +4 -0
  2. package/README.md +2 -2
  3. package/binding.gyp +6 -5
  4. package/lib/action/client.js +5 -4
  5. package/lib/action/uuid.js +1 -1
  6. package/lib/client.js +0 -45
  7. package/lib/distro.js +11 -4
  8. package/lib/interface_loader.js +1 -1
  9. package/lib/message_introspector.js +1 -29
  10. package/lib/message_serialization.js +2 -2
  11. package/lib/native_loader.js +21 -9
  12. package/lib/node.js +2 -2
  13. package/lib/prebuilds.js +47 -0
  14. package/lib/rmw.js +6 -1
  15. package/lib/subscription.js +2 -2
  16. package/package.json +11 -6
  17. package/prebuilds/linux-arm64/humble-jammy-arm64-electron-rclnodejs.node +0 -0
  18. package/prebuilds/linux-arm64/humble-jammy-arm64-node-rclnodejs.node +0 -0
  19. package/prebuilds/linux-arm64/jazzy-noble-arm64-electron-rclnodejs.node +0 -0
  20. package/prebuilds/linux-arm64/jazzy-noble-arm64-node-rclnodejs.node +0 -0
  21. package/prebuilds/linux-arm64/kilted-noble-arm64-electron-rclnodejs.node +0 -0
  22. package/prebuilds/linux-arm64/kilted-noble-arm64-node-rclnodejs.node +0 -0
  23. package/prebuilds/linux-arm64/lyrical-resolute-arm64-electron-rclnodejs.node +0 -0
  24. package/prebuilds/linux-arm64/lyrical-resolute-arm64-node-rclnodejs.node +0 -0
  25. package/prebuilds/linux-x64/humble-jammy-x64-electron-rclnodejs.node +0 -0
  26. package/prebuilds/linux-x64/humble-jammy-x64-node-rclnodejs.node +0 -0
  27. package/prebuilds/linux-x64/jazzy-noble-x64-electron-rclnodejs.node +0 -0
  28. package/prebuilds/linux-x64/jazzy-noble-x64-node-rclnodejs.node +0 -0
  29. package/prebuilds/linux-x64/kilted-noble-x64-electron-rclnodejs.node +0 -0
  30. package/prebuilds/linux-x64/kilted-noble-x64-node-rclnodejs.node +0 -0
  31. package/prebuilds/linux-x64/lyrical-resolute-x64-electron-rclnodejs.node +0 -0
  32. package/prebuilds/linux-x64/lyrical-resolute-x64-node-rclnodejs.node +0 -0
  33. package/rosidl_gen/packages.js +4 -4
  34. package/rosidl_gen/templates/message-template.js +20 -6
  35. package/rosocket/README.md +152 -0
  36. package/rosocket/cli.js +168 -0
  37. package/rosocket/index.js +245 -0
  38. package/scripts/install.js +14 -3
  39. package/scripts/tag_prebuilds.js +26 -9
  40. package/src/rcl_action_client_bindings.cpp +4 -4
  41. package/src/rcl_graph_bindings.cpp +8 -8
  42. package/src/rcl_lifecycle_bindings.cpp +1 -1
  43. package/src/rcl_subscription_bindings.cpp +2 -2
  44. package/src/rcl_utilities.cpp +4 -4
  45. package/src/rcl_utilities.h +2 -2
  46. package/types/distro.d.ts +15 -1
  47. package/prebuilds/linux-arm64/humble-jammy-arm64-rclnodejs.node +0 -0
  48. package/prebuilds/linux-arm64/jazzy-noble-arm64-rclnodejs.node +0 -0
  49. package/prebuilds/linux-arm64/kilted-noble-arm64-rclnodejs.node +0 -0
  50. package/prebuilds/linux-x64/humble-jammy-x64-rclnodejs.node +0 -0
  51. package/prebuilds/linux-x64/jazzy-noble-x64-rclnodejs.node +0 -0
  52. package/prebuilds/linux-x64/kilted-noble-x64-rclnodejs.node +0 -0
  53. package/tools/jsdoc/Makefile +0 -5
  54. package/tools/jsdoc/README.md +0 -96
  55. package/tools/jsdoc/build-index.js +0 -610
  56. package/tools/jsdoc/publish.js +0 -854
  57. package/tools/jsdoc/regenerate-published-docs.js +0 -605
  58. package/tools/jsdoc/static/fonts/OpenSans-Bold-webfont.eot +0 -0
  59. package/tools/jsdoc/static/fonts/OpenSans-Bold-webfont.svg +0 -1830
  60. package/tools/jsdoc/static/fonts/OpenSans-Bold-webfont.woff +0 -0
  61. package/tools/jsdoc/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  62. package/tools/jsdoc/static/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  63. package/tools/jsdoc/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  64. package/tools/jsdoc/static/fonts/OpenSans-Italic-webfont.eot +0 -0
  65. package/tools/jsdoc/static/fonts/OpenSans-Italic-webfont.svg +0 -1830
  66. package/tools/jsdoc/static/fonts/OpenSans-Italic-webfont.woff +0 -0
  67. package/tools/jsdoc/static/fonts/OpenSans-Light-webfont.eot +0 -0
  68. package/tools/jsdoc/static/fonts/OpenSans-Light-webfont.svg +0 -1831
  69. package/tools/jsdoc/static/fonts/OpenSans-Light-webfont.woff +0 -0
  70. package/tools/jsdoc/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  71. package/tools/jsdoc/static/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  72. package/tools/jsdoc/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  73. package/tools/jsdoc/static/fonts/OpenSans-Regular-webfont.eot +0 -0
  74. package/tools/jsdoc/static/fonts/OpenSans-Regular-webfont.svg +0 -1831
  75. package/tools/jsdoc/static/fonts/OpenSans-Regular-webfont.woff +0 -0
  76. package/tools/jsdoc/static/scripts/linenumber.js +0 -25
  77. package/tools/jsdoc/static/scripts/prettify/Apache-License-2.0.txt +0 -202
  78. package/tools/jsdoc/static/scripts/prettify/lang-css.js +0 -36
  79. package/tools/jsdoc/static/scripts/prettify/prettify.js +0 -738
  80. package/tools/jsdoc/static/styles/jsdoc-default.css +0 -1012
  81. package/tools/jsdoc/static/styles/prettify-jsdoc.css +0 -111
  82. package/tools/jsdoc/static/styles/prettify-tomorrow.css +0 -132
  83. package/tools/jsdoc/tmpl/augments.tmpl +0 -10
  84. package/tools/jsdoc/tmpl/container.tmpl +0 -193
  85. package/tools/jsdoc/tmpl/details.tmpl +0 -143
  86. package/tools/jsdoc/tmpl/example.tmpl +0 -2
  87. package/tools/jsdoc/tmpl/examples.tmpl +0 -13
  88. package/tools/jsdoc/tmpl/exceptions.tmpl +0 -17
  89. package/tools/jsdoc/tmpl/layout.tmpl +0 -83
  90. package/tools/jsdoc/tmpl/mainpage.tmpl +0 -163
  91. package/tools/jsdoc/tmpl/members.tmpl +0 -43
  92. package/tools/jsdoc/tmpl/method.tmpl +0 -124
  93. package/tools/jsdoc/tmpl/params.tmpl +0 -133
  94. package/tools/jsdoc/tmpl/properties.tmpl +0 -110
  95. package/tools/jsdoc/tmpl/returns.tmpl +0 -12
  96. package/tools/jsdoc/tmpl/source.tmpl +0 -8
  97. package/tools/jsdoc/tmpl/tutorial.tmpl +0 -19
  98. package/tools/jsdoc/tmpl/type.tmpl +0 -7
@@ -1,1012 +0,0 @@
1
- :root {
2
- --bg: #f3f7fb;
3
- --bg-deep: #dfeaf4;
4
- --surface: rgba(255, 255, 255, 0.82);
5
- --surface-strong: rgba(255, 255, 255, 0.96);
6
- --surface-muted: rgba(233, 241, 248, 0.8);
7
- --border: rgba(28, 53, 77, 0.12);
8
- --border-strong: rgba(28, 53, 77, 0.2);
9
- --text: #12263a;
10
- --text-soft: #486277;
11
- --text-muted: #667f92;
12
- --accent: #0b84c9;
13
- --accent-strong: #08679b;
14
- --accent-soft: rgba(11, 132, 201, 0.12);
15
- --success-soft: rgba(0, 128, 106, 0.12);
16
- --shadow-lg: 0 24px 60px rgba(14, 31, 53, 0.14);
17
- --shadow-md: 0 12px 30px rgba(14, 31, 53, 0.1);
18
- --radius-xl: 28px;
19
- --radius-lg: 20px;
20
- --radius-md: 14px;
21
- --sidebar-width: 320px;
22
- }
23
-
24
- @font-face {
25
- font-family: 'Open Sans';
26
- font-weight: 400;
27
- font-style: normal;
28
- src: url('../fonts/OpenSans-Regular-webfont.eot');
29
- src:
30
- local('Open Sans'),
31
- local('OpenSans'),
32
- url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
33
- url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
34
- url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
35
- }
36
-
37
- @font-face {
38
- font-family: 'Open Sans';
39
- font-weight: 700;
40
- font-style: normal;
41
- src: url('../fonts/OpenSans-Bold-webfont.eot');
42
- src:
43
- local('Open Sans Bold'),
44
- local('OpenSans-Bold'),
45
- url('../fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
46
- url('../fonts/OpenSans-Bold-webfont.woff') format('woff'),
47
- url('../fonts/OpenSans-Bold-webfont.svg#open_sansbold') format('svg');
48
- }
49
-
50
- @font-face {
51
- font-family: 'Open Sans Light';
52
- font-weight: 300;
53
- font-style: normal;
54
- src: url('../fonts/OpenSans-Light-webfont.eot');
55
- src:
56
- local('Open Sans Light'),
57
- local('OpenSans Light'),
58
- url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
59
- url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
60
- url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
61
- }
62
-
63
- html {
64
- overflow-y: auto;
65
- background: linear-gradient(180deg, #eff5fa 0%, #f7fbff 100%);
66
- font-size: 15px;
67
- scroll-behavior: smooth;
68
- }
69
-
70
- body {
71
- margin: 0;
72
- font-family: 'Open Sans', 'Segoe UI', sans-serif;
73
- line-height: 1.65;
74
- color: var(--text);
75
- background: transparent;
76
- }
77
-
78
- a,
79
- a:visited,
80
- a:active {
81
- color: var(--accent-strong);
82
- text-decoration: none;
83
- }
84
-
85
- a:hover {
86
- color: var(--accent);
87
- }
88
-
89
- tt,
90
- code,
91
- kbd,
92
- samp,
93
- .name,
94
- .signature {
95
- font-family: 'SFMono-Regular', 'Cascadia Code', 'Fira Code', Consolas, monospace;
96
- }
97
-
98
- .site-backdrop {
99
- position: fixed;
100
- inset: 0;
101
- background:
102
- radial-gradient(circle at top left, rgba(11, 132, 201, 0.18), transparent 32%),
103
- radial-gradient(circle at right 10%, rgba(0, 128, 106, 0.12), transparent 24%),
104
- linear-gradient(180deg, rgba(255, 255, 255, 0.6), rgba(243, 247, 251, 0.95));
105
- pointer-events: none;
106
- z-index: -2;
107
- }
108
-
109
- .site-grid {
110
- position: fixed;
111
- inset: 0;
112
- background-image:
113
- linear-gradient(rgba(18, 38, 58, 0.03) 1px, transparent 1px),
114
- linear-gradient(90deg, rgba(18, 38, 58, 0.03) 1px, transparent 1px);
115
- background-size: 32px 32px;
116
- mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.28), transparent 75%);
117
- pointer-events: none;
118
- z-index: -1;
119
- }
120
-
121
- .app-shell {
122
- display: grid;
123
- grid-template-columns: minmax(260px, var(--sidebar-width)) minmax(0, 1fr);
124
- gap: 28px;
125
- max-width: 1680px;
126
- margin: 0 auto;
127
- padding: 24px;
128
- box-sizing: border-box;
129
- }
130
-
131
- .site-sidebar {
132
- position: sticky;
133
- top: 24px;
134
- height: calc(100vh - 48px);
135
- display: flex;
136
- flex-direction: column;
137
- gap: 18px;
138
- }
139
-
140
- .brand-card,
141
- .site-nav,
142
- .site-header,
143
- .doc-section,
144
- .hero-card,
145
- .prose-card,
146
- .symbol-card,
147
- .site-footer {
148
- backdrop-filter: blur(18px);
149
- -webkit-backdrop-filter: blur(18px);
150
- }
151
-
152
- .brand-card,
153
- .site-nav {
154
- background: var(--surface);
155
- border: 1px solid var(--border);
156
- border-radius: var(--radius-xl);
157
- box-shadow: var(--shadow-md);
158
- }
159
-
160
- .brand-card {
161
- padding: 24px;
162
- }
163
-
164
- .brand-link {
165
- display: flex;
166
- flex-direction: column;
167
- gap: 6px;
168
- color: var(--text);
169
- }
170
-
171
- .brand-kicker,
172
- .page-eyebrow,
173
- .hero-kicker,
174
- .section-kicker,
175
- .doc-kind-label,
176
- .symbol-kind {
177
- text-transform: uppercase;
178
- letter-spacing: 0.18em;
179
- font-size: 0.74rem;
180
- font-weight: 700;
181
- }
182
-
183
- .brand-kicker,
184
- .page-eyebrow,
185
- .hero-kicker,
186
- .section-kicker,
187
- .doc-kind-label {
188
- color: var(--accent-strong);
189
- }
190
-
191
- .brand-title {
192
- font-family: 'Open Sans Light', 'Open Sans', sans-serif;
193
- font-size: 2rem;
194
- line-height: 1;
195
- letter-spacing: -0.06em;
196
- }
197
-
198
- .brand-version {
199
- width: fit-content;
200
- padding: 0.35rem 0.7rem;
201
- border-radius: 999px;
202
- background: var(--accent-soft);
203
- color: var(--accent-strong);
204
- font-size: 0.82rem;
205
- font-weight: 700;
206
- }
207
-
208
- .brand-description,
209
- .page-subtitle {
210
- margin: 0;
211
- color: var(--text-soft);
212
- }
213
-
214
- .nav-toggle {
215
- display: none;
216
- border: 0;
217
- border-radius: 14px;
218
- padding: 0.95rem 1rem;
219
- background: var(--text);
220
- color: #fff;
221
- font: inherit;
222
- font-weight: 700;
223
- box-shadow: var(--shadow-md);
224
- }
225
-
226
- .site-nav {
227
- flex: 1;
228
- overflow: auto;
229
- padding: 18px;
230
- }
231
-
232
- .nav-home {
233
- margin-bottom: 16px;
234
- }
235
-
236
- .nav-home a {
237
- display: block;
238
- padding: 0.95rem 1rem;
239
- border-radius: 16px;
240
- background: linear-gradient(135deg, rgba(11, 132, 201, 0.12), rgba(0, 128, 106, 0.08));
241
- color: var(--text);
242
- font-weight: 700;
243
- }
244
-
245
- .nav-section + .nav-section {
246
- margin-top: 18px;
247
- }
248
-
249
- .nav-section h3 {
250
- margin: 0 0 0.7rem;
251
- color: var(--text-muted);
252
- font-size: 0.8rem;
253
- letter-spacing: 0.12em;
254
- text-transform: uppercase;
255
- }
256
-
257
- .nav-list,
258
- .site-nav ul {
259
- list-style: none;
260
- margin: 0;
261
- padding: 0;
262
- }
263
-
264
- .site-nav li + li {
265
- margin-top: 0.35rem;
266
- }
267
-
268
- .site-nav li a {
269
- display: block;
270
- padding: 0.55rem 0.75rem;
271
- border-radius: 12px;
272
- color: var(--text-soft);
273
- transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
274
- }
275
-
276
- .site-nav li a:hover {
277
- background: rgba(11, 132, 201, 0.08);
278
- color: var(--text);
279
- transform: translateX(2px);
280
- }
281
-
282
- .site-main {
283
- min-width: 0;
284
- display: flex;
285
- flex-direction: column;
286
- gap: 24px;
287
- }
288
-
289
- .site-header {
290
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(239, 247, 252, 0.72));
291
- border: 1px solid var(--border);
292
- border-radius: var(--radius-xl);
293
- padding: 30px 34px;
294
- box-shadow: var(--shadow-md);
295
- }
296
-
297
- .page-title {
298
- margin: 0;
299
- font-family: 'Open Sans Light', 'Open Sans', sans-serif;
300
- font-size: clamp(2.8rem, 4vw, 4.8rem);
301
- line-height: 0.95;
302
- letter-spacing: -0.07em;
303
- }
304
-
305
- #main {
306
- display: flex;
307
- flex-direction: column;
308
- gap: 22px;
309
- }
310
-
311
- .doc-section,
312
- .hero-card,
313
- .prose-card,
314
- .site-footer {
315
- background: var(--surface-strong);
316
- border: 1px solid var(--border);
317
- border-radius: var(--radius-xl);
318
- box-shadow: var(--shadow-lg);
319
- }
320
-
321
- .doc-section,
322
- .hero-card,
323
- .prose-card {
324
- padding: 30px 34px;
325
- }
326
-
327
- .doc-page-header {
328
- margin-bottom: 1.5rem;
329
- }
330
-
331
- .doc-heading-meta {
332
- margin-bottom: 0.75rem;
333
- }
334
-
335
- .doc-heading {
336
- margin: 0;
337
- font-size: clamp(1.9rem, 2.4vw, 2.8rem);
338
- line-height: 1.06;
339
- letter-spacing: -0.05em;
340
- }
341
-
342
- .class-description,
343
- .description,
344
- .summary,
345
- .hero-description,
346
- .param-desc {
347
- color: var(--text-soft);
348
- }
349
-
350
- .class-description,
351
- .description,
352
- .summary {
353
- margin: 1rem 0 0;
354
- }
355
-
356
- .doc-article > .subsection-title:first-of-type {
357
- margin-top: 2rem;
358
- }
359
-
360
- h2,
361
- h3,
362
- h4,
363
- h5,
364
- h6 {
365
- margin: 0;
366
- color: var(--text);
367
- }
368
-
369
- h3.subsection-title {
370
- margin: 2rem 0 1rem;
371
- font-size: 1.2rem;
372
- letter-spacing: -0.03em;
373
- }
374
-
375
- h5,
376
- .container-overview .subsection-title {
377
- margin: 1.4rem 0 0.8rem;
378
- font-size: 0.98rem;
379
- letter-spacing: 0.02em;
380
- }
381
-
382
- h6 {
383
- margin: 1rem 0 0.5rem;
384
- font-size: 0.9rem;
385
- color: var(--text-soft);
386
- }
387
-
388
- .hero-card {
389
- position: relative;
390
- overflow: hidden;
391
- background:
392
- linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(231, 243, 250, 0.9)),
393
- linear-gradient(120deg, rgba(11, 132, 201, 0.16), transparent 42%);
394
- }
395
-
396
- .hero-card::after {
397
- content: '';
398
- position: absolute;
399
- top: -50px;
400
- right: -50px;
401
- width: 180px;
402
- height: 180px;
403
- border-radius: 50%;
404
- background: radial-gradient(circle, rgba(11, 132, 201, 0.16), transparent 68%);
405
- pointer-events: none;
406
- }
407
-
408
- .hero-copy {
409
- position: relative;
410
- z-index: 1;
411
- }
412
-
413
- .hero-layout {
414
- display: grid;
415
- grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.8fr);
416
- gap: 22px;
417
- align-items: stretch;
418
- }
419
-
420
- .hero-copy h2 {
421
- font-size: clamp(2.2rem, 3vw, 3.4rem);
422
- letter-spacing: -0.06em;
423
- }
424
-
425
- .hero-copy h2 span {
426
- color: var(--text-muted);
427
- font-size: 0.65em;
428
- }
429
-
430
- .hero-tags {
431
- display: flex;
432
- flex-wrap: wrap;
433
- gap: 0.65rem;
434
- margin-top: 1.25rem;
435
- }
436
-
437
- .hero-lead {
438
- max-width: 52rem;
439
- margin: 1rem 0 0;
440
- color: var(--text-soft);
441
- font-size: 1.02rem;
442
- }
443
-
444
- .hero-actions {
445
- display: flex;
446
- flex-wrap: wrap;
447
- gap: 0.8rem;
448
- margin-top: 1.35rem;
449
- }
450
-
451
- .hero-action {
452
- display: inline-flex;
453
- align-items: center;
454
- justify-content: center;
455
- min-height: 46px;
456
- padding: 0 1rem;
457
- border: 1px solid var(--border-strong);
458
- border-radius: 14px;
459
- background: rgba(255, 255, 255, 0.72);
460
- color: var(--text);
461
- font-weight: 700;
462
- transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
463
- }
464
-
465
- .hero-action:hover {
466
- transform: translateY(-1px);
467
- background: rgba(255, 255, 255, 0.94);
468
- border-color: rgba(11, 132, 201, 0.22);
469
- }
470
-
471
- .hero-action.primary {
472
- background: linear-gradient(135deg, var(--accent), var(--accent-strong));
473
- border-color: transparent;
474
- color: #fff;
475
- }
476
-
477
- .hero-panel {
478
- position: relative;
479
- z-index: 1;
480
- padding: 1.25rem;
481
- border: 1px solid rgba(18, 38, 58, 0.1);
482
- border-radius: 22px;
483
- background: rgba(248, 252, 255, 0.82);
484
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
485
- }
486
-
487
- .hero-panel-title {
488
- margin: 0 0 0.8rem;
489
- color: var(--text);
490
- font-size: 0.92rem;
491
- font-weight: 700;
492
- text-transform: uppercase;
493
- letter-spacing: 0.12em;
494
- }
495
-
496
- .hero-snippet {
497
- margin: 0;
498
- background: #eff6fb;
499
- }
500
-
501
- .hero-points {
502
- margin: 1rem 0 0;
503
- padding-left: 1rem;
504
- color: var(--text-soft);
505
- }
506
-
507
- .hero-points li + li {
508
- margin-top: 0.5rem;
509
- }
510
-
511
- .hero-tags span,
512
- .returns-type span,
513
- .symbol-kind,
514
- .doc-kind-label {
515
- display: inline-flex;
516
- align-items: center;
517
- gap: 0.4rem;
518
- width: fit-content;
519
- padding: 0.35rem 0.75rem;
520
- border-radius: 999px;
521
- background: var(--accent-soft);
522
- }
523
-
524
- .hero-tags span {
525
- color: var(--accent-strong);
526
- font-size: 0.82rem;
527
- font-weight: 700;
528
- }
529
-
530
- .prose-card > :first-child,
531
- .description > :first-child,
532
- .param-desc > :first-child {
533
- margin-top: 0;
534
- }
535
-
536
- .prose-card > :last-child,
537
- .description > :last-child,
538
- .param-desc > :last-child {
539
- margin-bottom: 0;
540
- }
541
-
542
- .homepage-strip,
543
- .homepage-grid {
544
- display: grid;
545
- gap: 18px;
546
- }
547
-
548
- .stats-strip {
549
- grid-template-columns: repeat(3, minmax(0, 1fr));
550
- }
551
-
552
- .stats-card,
553
- .homepage-card {
554
- background: var(--surface-strong);
555
- border: 1px solid var(--border);
556
- border-radius: var(--radius-lg);
557
- box-shadow: var(--shadow-md);
558
- }
559
-
560
- .stats-card {
561
- padding: 20px 22px;
562
- }
563
-
564
- .stats-card strong {
565
- display: block;
566
- font-family: 'Open Sans Light', 'Open Sans', sans-serif;
567
- font-size: 2.2rem;
568
- letter-spacing: -0.06em;
569
- }
570
-
571
- .stats-card span {
572
- display: block;
573
- margin-top: 0.35rem;
574
- font-weight: 700;
575
- color: var(--text);
576
- }
577
-
578
- .stats-card p,
579
- .homepage-card p {
580
- margin: 0.65rem 0 0;
581
- color: var(--text-soft);
582
- }
583
-
584
- .homepage-grid {
585
- grid-template-columns: repeat(3, minmax(0, 1fr));
586
- }
587
-
588
- .homepage-card {
589
- padding: 22px 24px;
590
- }
591
-
592
- .homepage-card-wide {
593
- grid-column: span 2;
594
- }
595
-
596
- .homepage-card h3 {
597
- margin-top: 0.2rem;
598
- font-size: 1.22rem;
599
- line-height: 1.2;
600
- }
601
-
602
- .homepage-card a,
603
- .guide-card a {
604
- position: relative;
605
- z-index: 1;
606
- }
607
-
608
- .compact-header {
609
- margin-bottom: 1.2rem;
610
- }
611
-
612
- .compact-header h3 {
613
- font-size: 1.35rem;
614
- }
615
-
616
- .homepage-guides {
617
- display: flex;
618
- flex-direction: column;
619
- gap: 18px;
620
- }
621
-
622
- .guide-grid {
623
- display: grid;
624
- gap: 18px;
625
- grid-template-columns: repeat(3, minmax(0, 1fr));
626
- }
627
-
628
- .guide-grid-secondary {
629
- grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
630
- }
631
-
632
- .guide-card {
633
- padding: 24px 26px;
634
- background: var(--surface-strong);
635
- border: 1px solid var(--border);
636
- border-radius: var(--radius-lg);
637
- box-shadow: var(--shadow-md);
638
- scroll-margin-top: 120px;
639
- }
640
-
641
- .guide-card h3 {
642
- margin-top: 0.2rem;
643
- font-size: 1.22rem;
644
- line-height: 1.2;
645
- }
646
-
647
- .guide-card p {
648
- margin: 0.75rem 0 0;
649
- color: var(--text-soft);
650
- }
651
-
652
- .guide-card pre {
653
- margin: 1rem 0 0;
654
- }
655
-
656
- .guide-list {
657
- margin: 1rem 0 0;
658
- padding-left: 1.1rem;
659
- color: var(--text-soft);
660
- }
661
-
662
- .guide-list li + li {
663
- margin-top: 0.5rem;
664
- }
665
-
666
- .guide-list-tight {
667
- margin-top: 0.85rem;
668
- }
669
-
670
- .symbol-list {
671
- display: grid;
672
- gap: 18px;
673
- }
674
-
675
- .symbol-card {
676
- padding: 22px 24px;
677
- border: 1px solid var(--border);
678
- border-radius: var(--radius-lg);
679
- background: linear-gradient(180deg, rgba(250, 252, 255, 0.98), rgba(243, 248, 251, 0.9));
680
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
681
- }
682
-
683
- .symbol-heading {
684
- display: flex;
685
- flex-wrap: wrap;
686
- align-items: center;
687
- gap: 0.8rem;
688
- }
689
-
690
- .symbol-kind {
691
- color: var(--accent-strong);
692
- }
693
-
694
- .name {
695
- display: inline-block;
696
- margin: 0;
697
- padding: 0.18rem 0.5rem;
698
- border-radius: 10px;
699
- background: rgba(11, 132, 201, 0.08);
700
- color: var(--text);
701
- font-size: 1.05rem;
702
- word-break: break-word;
703
- }
704
-
705
- .variation {
706
- display: none;
707
- }
708
-
709
- .signature-attributes,
710
- .type-signature,
711
- .ancestors,
712
- .attribs {
713
- color: var(--text-muted);
714
- }
715
-
716
- .ancestors a,
717
- .attribs a {
718
- color: inherit !important;
719
- }
720
-
721
- .details {
722
- display: grid;
723
- grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
724
- gap: 0.8rem 1rem;
725
- margin: 1.3rem 0 0;
726
- padding: 1rem 1.1rem;
727
- border: 1px solid rgba(18, 38, 58, 0.08);
728
- border-radius: var(--radius-md);
729
- background: var(--surface-muted);
730
- }
731
-
732
- .details dt {
733
- margin: 0;
734
- font-weight: 700;
735
- color: var(--text);
736
- }
737
-
738
- .details dd {
739
- margin: 0;
740
- color: var(--text-soft);
741
- }
742
-
743
- .details ul,
744
- .details li,
745
- .tutorial-children,
746
- .symbol-index {
747
- margin: 0;
748
- padding: 0;
749
- list-style: none;
750
- }
751
-
752
- .details li + li,
753
- .tutorial-children li + li {
754
- margin-top: 0.35rem;
755
- }
756
-
757
- .table-wrap {
758
- margin-top: 1rem;
759
- overflow-x: auto;
760
- border: 1px solid var(--border);
761
- border-radius: var(--radius-md);
762
- }
763
-
764
- table {
765
- width: 100%;
766
- border-collapse: collapse;
767
- background: rgba(255, 255, 255, 0.84);
768
- }
769
-
770
- thead tr {
771
- background: rgba(11, 132, 201, 0.08);
772
- }
773
-
774
- th,
775
- td {
776
- padding: 0.85rem 0.9rem;
777
- border-bottom: 1px solid rgba(18, 38, 58, 0.08);
778
- text-align: left;
779
- vertical-align: top;
780
- }
781
-
782
- th {
783
- font-size: 0.82rem;
784
- text-transform: uppercase;
785
- letter-spacing: 0.08em;
786
- color: var(--text-soft);
787
- }
788
-
789
- tbody tr:last-child td {
790
- border-bottom: 0;
791
- }
792
-
793
- .params .name,
794
- .props .name,
795
- .name code {
796
- color: var(--text);
797
- font-size: 0.94rem;
798
- }
799
-
800
- .params td.description > p:first-child,
801
- .props td.description > p:first-child {
802
- margin-top: 0;
803
- }
804
-
805
- .params td.description > p:last-child,
806
- .props td.description > p:last-child {
807
- margin-bottom: 0;
808
- }
809
-
810
- .code-caption {
811
- margin: 1rem 0 0.45rem;
812
- color: var(--text-muted);
813
- font-size: 0.9rem;
814
- font-style: italic;
815
- }
816
-
817
- .prettyprint {
818
- width: 100%;
819
- overflow: auto;
820
- border: 1px solid rgba(18, 38, 58, 0.1);
821
- border-radius: 16px;
822
- background: #f5f9fc;
823
- }
824
-
825
- .prettyprint.source {
826
- width: 100%;
827
- }
828
-
829
- .prettyprint code {
830
- display: block;
831
- margin: 0;
832
- padding: 1rem 1.15rem;
833
- background: transparent;
834
- color: var(--text);
835
- font-size: 0.94rem;
836
- line-height: 1.7;
837
- }
838
-
839
- .prettyprint code span.line {
840
- display: inline-block;
841
- }
842
-
843
- .prettyprint.linenums {
844
- padding-left: 0;
845
- user-select: none;
846
- }
847
-
848
- .prettyprint.linenums ol {
849
- margin: 0;
850
- padding-left: 3.8rem;
851
- }
852
-
853
- .prettyprint.linenums li {
854
- border-left: 1px solid rgba(18, 38, 58, 0.08);
855
- padding-left: 1rem;
856
- }
857
-
858
- .prettyprint.linenums li.selected,
859
- .prettyprint.linenums li.selected * {
860
- background-color: rgba(255, 236, 153, 0.44);
861
- }
862
-
863
- .prettyprint.linenums li * {
864
- user-select: text;
865
- }
866
-
867
- .returns-type,
868
- .exception-block {
869
- margin-top: 0.85rem;
870
- }
871
-
872
- .returns-type {
873
- display: flex;
874
- flex-wrap: wrap;
875
- align-items: center;
876
- gap: 0.55rem;
877
- color: var(--text-soft);
878
- }
879
-
880
- .returns-type span {
881
- color: var(--accent-strong);
882
- }
883
-
884
- .symbol-index {
885
- display: grid;
886
- gap: 0.55rem 1rem;
887
- grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
888
- }
889
-
890
- .symbol-index dt,
891
- .symbol-index dd {
892
- margin: 0;
893
- }
894
-
895
- .tutorial-children {
896
- display: flex;
897
- flex-wrap: wrap;
898
- gap: 0.6rem;
899
- margin-bottom: 1rem;
900
- }
901
-
902
- .tutorial-children a {
903
- display: inline-block;
904
- padding: 0.45rem 0.8rem;
905
- border-radius: 999px;
906
- background: rgba(11, 132, 201, 0.08);
907
- }
908
-
909
- article img {
910
- max-width: 100%;
911
- border-radius: 16px;
912
- }
913
-
914
- .site-footer {
915
- padding: 18px 22px;
916
- color: var(--text-muted);
917
- font-size: 0.9rem;
918
- }
919
-
920
- .important {
921
- color: #a34800;
922
- }
923
-
924
- .yes-def {
925
- text-indent: -9999px;
926
- }
927
-
928
- .disabled {
929
- color: #454545;
930
- }
931
-
932
- @media (max-width: 1100px) {
933
- .app-shell {
934
- grid-template-columns: 1fr;
935
- }
936
-
937
- .site-sidebar {
938
- position: static;
939
- height: auto;
940
- }
941
-
942
- .nav-toggle {
943
- display: block;
944
- }
945
-
946
- .site-nav {
947
- display: none;
948
- max-height: 60vh;
949
- }
950
-
951
- .app-shell.nav-open .site-nav {
952
- display: block;
953
- }
954
-
955
- .hero-layout,
956
- .stats-strip,
957
- .homepage-grid,
958
- .guide-grid,
959
- .guide-grid-secondary {
960
- grid-template-columns: 1fr 1fr;
961
- }
962
-
963
- .homepage-card-wide {
964
- grid-column: span 2;
965
- }
966
- }
967
-
968
- @media (max-width: 720px) {
969
- .app-shell {
970
- padding: 14px;
971
- gap: 16px;
972
- }
973
-
974
- .site-header,
975
- .doc-section,
976
- .hero-card,
977
- .prose-card,
978
- .site-footer,
979
- .brand-card,
980
- .site-nav {
981
- padding: 22px 20px;
982
- border-radius: 22px;
983
- }
984
-
985
- .page-title {
986
- font-size: 2.6rem;
987
- }
988
-
989
- .hero-layout,
990
- .stats-strip,
991
- .homepage-grid,
992
- .guide-grid,
993
- .guide-grid-secondary {
994
- grid-template-columns: 1fr;
995
- }
996
-
997
- .homepage-card-wide {
998
- grid-column: span 1;
999
- }
1000
-
1001
- .details {
1002
- grid-template-columns: 1fr;
1003
- }
1004
-
1005
- .symbol-index {
1006
- grid-template-columns: 1fr;
1007
- }
1008
-
1009
- .symbol-heading {
1010
- align-items: flex-start;
1011
- }
1012
- }