docula 0.41.1 → 0.90.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 (56) hide show
  1. package/README.md +228 -4
  2. package/dist/docula.d.ts +240 -16
  3. package/dist/docula.js +1596 -222
  4. package/package.json +11 -9
  5. package/templates/classic/api.hbs +214 -0
  6. package/{template → templates/classic}/changelog-entry.hbs +2 -0
  7. package/{template → templates/classic}/changelog.hbs +2 -0
  8. package/templates/classic/css/api.css +753 -0
  9. package/{template → templates/classic}/css/base.css +10 -0
  10. package/{template → templates/classic}/css/multipage.css +7 -0
  11. package/{template → templates/classic}/docs.hbs +3 -1
  12. package/{template/index.hbs → templates/classic/home.hbs} +9 -1
  13. package/templates/classic/includes/api-try-it.hbs +61 -0
  14. package/templates/classic/includes/multipage/api-reference.hbs +1 -0
  15. package/templates/classic/includes/multipage/documentation.hbs +1 -0
  16. package/{template → templates/classic}/includes/multipage/hero.hbs +1 -2
  17. package/{template → templates/classic}/includes/multipage/home.hbs +3 -3
  18. package/{template → templates/classic}/includes/singlepage/content.hbs +3 -3
  19. package/templates/classic/js/api.js +282 -0
  20. package/templates/modern/api.hbs +215 -0
  21. package/templates/modern/changelog-entry.hbs +36 -0
  22. package/templates/modern/changelog.hbs +38 -0
  23. package/templates/modern/css/api.css +1051 -0
  24. package/templates/modern/css/highlight/highlight.min.js +1433 -0
  25. package/templates/modern/css/highlight/styles/base16/docula.css +123 -0
  26. package/templates/modern/css/home.css +96 -0
  27. package/templates/modern/css/styles.css +711 -0
  28. package/templates/modern/docs.hbs +30 -0
  29. package/templates/modern/home.hbs +53 -0
  30. package/templates/modern/includes/api-reference.hbs +1 -0
  31. package/templates/modern/includes/api-try-it.hbs +61 -0
  32. package/templates/modern/includes/doc.hbs +18 -0
  33. package/templates/modern/includes/documentation.hbs +1 -0
  34. package/templates/modern/includes/footer.hbs +6 -0
  35. package/templates/modern/includes/header-bar.hbs +57 -0
  36. package/templates/modern/includes/header.hbs +15 -0
  37. package/templates/modern/includes/hero.hbs +11 -0
  38. package/templates/modern/includes/home.hbs +46 -0
  39. package/templates/modern/includes/scripts.hbs +164 -0
  40. package/templates/modern/includes/sidebar.hbs +22 -0
  41. package/templates/modern/includes/theme-toggle.hbs +5 -0
  42. package/templates/modern/js/api.js +300 -0
  43. package/template/api.hbs +0 -28
  44. package/template/releases.hbs +0 -86
  45. /package/{template → templates/classic}/css/highlight/highlight.min.js +0 -0
  46. /package/{template → templates/classic}/css/highlight/styles/base16/dracula.min.css +0 -0
  47. /package/{template → templates/classic}/css/landing.css +0 -0
  48. /package/{template → templates/classic}/css/singlepage.css +0 -0
  49. /package/{template → templates/classic}/includes/footer.hbs +0 -0
  50. /package/{template → templates/classic}/includes/header.hbs +0 -0
  51. /package/{template → templates/classic}/includes/multipage/doc.hbs +0 -0
  52. /package/{template → templates/classic}/includes/multipage/header.hbs +0 -0
  53. /package/{template → templates/classic}/includes/multipage/scripts.hbs +0 -0
  54. /package/{template → templates/classic}/includes/multipage/sidebar.hbs +0 -0
  55. /package/{template → templates/classic}/includes/scripts.hbs +0 -0
  56. /package/{template → templates/classic}/includes/singlepage/hero.hbs +0 -0
@@ -0,0 +1,753 @@
1
+ /* API Reference - Classic Template */
2
+
3
+ .api-reference {
4
+ display: flex;
5
+ max-width: 90%;
6
+ margin: 0 auto;
7
+ min-height: calc(100vh - 4rem);
8
+ }
9
+
10
+ /* Sidebar */
11
+ .api-sidebar {
12
+ width: 260px;
13
+ min-width: 260px;
14
+ padding: 20px 16px;
15
+ border-right: 1px solid var(--border);
16
+ position: sticky;
17
+ top: 0;
18
+ height: 100vh;
19
+ overflow-y: auto;
20
+ }
21
+
22
+ .api-search {
23
+ width: 100%;
24
+ padding: 8px 12px;
25
+ border: 1px solid var(--border);
26
+ border-radius: 6px;
27
+ background: var(--background);
28
+ color: var(--color-text);
29
+ font-family: var(--font-family);
30
+ font-size: 13px;
31
+ margin-bottom: 16px;
32
+ outline: none;
33
+ }
34
+
35
+ .api-search:focus {
36
+ border-color: var(--links);
37
+ }
38
+
39
+ .api-search::placeholder {
40
+ color: var(--color-text-secondary);
41
+ }
42
+
43
+ .api-sidebar__group {
44
+ margin-bottom: 4px;
45
+ }
46
+
47
+ .api-sidebar__group-toggle {
48
+ width: 100%;
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: space-between;
52
+ padding: 6px 10px;
53
+ font-size: 12px;
54
+ font-weight: 700;
55
+ text-transform: uppercase;
56
+ letter-spacing: 0.4px;
57
+ color: var(--color-text-secondary);
58
+ border-radius: 4px;
59
+ cursor: pointer;
60
+ background: none;
61
+ border: none;
62
+ font-family: var(--font-family);
63
+ }
64
+
65
+ .api-sidebar__group-toggle:hover {
66
+ background: rgba(255, 255, 255, 0.05);
67
+ }
68
+
69
+ .api-sidebar__group-toggle svg {
70
+ transition: transform 0.15s ease;
71
+ }
72
+
73
+ .api-sidebar__group--collapsed .api-sidebar__group-toggle svg {
74
+ transform: rotate(-90deg);
75
+ }
76
+
77
+ .api-sidebar__group--collapsed .api-sidebar__group-items {
78
+ display: none;
79
+ }
80
+
81
+ .api-sidebar__group-items {
82
+ padding: 2px 0 8px 0;
83
+ }
84
+
85
+ .api-sidebar__item {
86
+ display: flex;
87
+ align-items: center;
88
+ gap: 8px;
89
+ padding: 4px 10px;
90
+ font-size: 13px;
91
+ border-radius: 4px;
92
+ color: var(--color-text);
93
+ white-space: nowrap;
94
+ overflow: hidden;
95
+ text-overflow: ellipsis;
96
+ }
97
+
98
+ .api-sidebar__item:hover {
99
+ background: rgba(255, 255, 255, 0.05);
100
+ }
101
+
102
+ .api-sidebar__item--active {
103
+ background: rgba(255, 255, 255, 0.08);
104
+ }
105
+
106
+ .api-sidebar__item-path {
107
+ overflow: hidden;
108
+ text-overflow: ellipsis;
109
+ }
110
+
111
+ /* Method Badges */
112
+ .method-badge {
113
+ display: inline-flex;
114
+ align-items: center;
115
+ justify-content: center;
116
+ font-size: 10px;
117
+ font-weight: 700;
118
+ font-family: monospace;
119
+ padding: 2px 6px;
120
+ border-radius: 4px;
121
+ min-width: 42px;
122
+ text-transform: uppercase;
123
+ flex-shrink: 0;
124
+ }
125
+
126
+ .method-badge--get { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
127
+ .method-badge--post { background: rgba(59, 130, 246, 0.15); color: #3b82f6; }
128
+ .method-badge--put { background: rgba(249, 115, 22, 0.15); color: #f97316; }
129
+ .method-badge--delete { background: rgba(239, 68, 68, 0.15); color: #ef4444; }
130
+ .method-badge--patch { background: rgba(168, 85, 247, 0.15); color: #a855f7; }
131
+ .method-badge--head,
132
+ .method-badge--options { background: rgba(107, 114, 128, 0.15); color: #9ca3af; }
133
+
134
+ /* Main Content */
135
+ .api-content {
136
+ flex: 1;
137
+ min-width: 0;
138
+ padding: 32px;
139
+ }
140
+
141
+ .api-info {
142
+ padding-bottom: 32px;
143
+ margin-bottom: 32px;
144
+ border-bottom: 1px solid var(--border);
145
+ }
146
+
147
+ .api-info__title {
148
+ font-size: 1.8em;
149
+ font-weight: 700;
150
+ margin-bottom: 8px;
151
+ }
152
+
153
+ .api-info__version {
154
+ display: inline-block;
155
+ font-size: 12px;
156
+ font-weight: 600;
157
+ padding: 2px 8px;
158
+ border-radius: 4px;
159
+ background: rgba(255, 255, 255, 0.08);
160
+ color: var(--color-text-secondary);
161
+ margin-bottom: 16px;
162
+ }
163
+
164
+ .api-info__description {
165
+ font-size: 15px;
166
+ line-height: 1.6;
167
+ color: var(--color-text-secondary);
168
+ }
169
+
170
+ /* Markdown content inside descriptions */
171
+ .api-info__description a,
172
+ .api-group__description a,
173
+ .api-operation__description a {
174
+ color: var(--links);
175
+ text-decoration: underline;
176
+ text-decoration-color: rgba(255, 255, 255, 0.3);
177
+ text-underline-offset: 2px;
178
+ }
179
+
180
+ .api-info__description a:hover,
181
+ .api-group__description a:hover,
182
+ .api-operation__description a:hover {
183
+ text-decoration-color: var(--links);
184
+ }
185
+
186
+ .api-info__description code,
187
+ .api-group__description code,
188
+ .api-operation__description code {
189
+ font-family: monospace;
190
+ font-size: 0.9em;
191
+ padding: 2px 6px;
192
+ border-radius: 4px;
193
+ background: rgba(255, 255, 255, 0.08);
194
+ }
195
+
196
+ .api-info__description h1,
197
+ .api-info__description h2,
198
+ .api-info__description h3 {
199
+ color: var(--color-text);
200
+ margin-top: 1.2em;
201
+ margin-bottom: 0.4em;
202
+ }
203
+
204
+ .api-info__description ul,
205
+ .api-info__description ol {
206
+ padding-left: 1.5em;
207
+ margin: 0.5em 0;
208
+ }
209
+
210
+ .api-info__description li {
211
+ margin: 0.25em 0;
212
+ }
213
+
214
+ .api-info__description p {
215
+ margin: 0.5em 0;
216
+ }
217
+
218
+ .api-info__description p:first-child {
219
+ margin-top: 0;
220
+ }
221
+
222
+ .api-info__description p:last-child {
223
+ margin-bottom: 0;
224
+ }
225
+
226
+ .api-info__servers { margin-top: 16px; }
227
+
228
+ .api-info__server-label {
229
+ font-size: 11px;
230
+ font-weight: 700;
231
+ text-transform: uppercase;
232
+ letter-spacing: 0.4px;
233
+ color: var(--color-text-secondary);
234
+ margin-bottom: 6px;
235
+ }
236
+
237
+ .api-info__server-url {
238
+ display: inline-block;
239
+ font-family: monospace;
240
+ font-size: 13px;
241
+ padding: 4px 10px;
242
+ border-radius: 4px;
243
+ background: rgba(255, 255, 255, 0.05);
244
+ color: var(--color-text);
245
+ }
246
+
247
+ /* Auth */
248
+ .api-auth { margin-top: 1rem; display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
249
+ .api-auth__label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); min-width: 90px; }
250
+ .api-auth__controls { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
251
+ .api-auth__type { padding: 0.35rem 0.6rem; border: 1px solid var(--border); border-radius: 6px; font-size: 0.85rem; background: var(--background); color: var(--color-text); cursor: pointer; }
252
+ .api-auth__value { padding: 0.35rem 0.6rem; border: 1px solid var(--border); border-radius: 6px; font-size: 0.85rem; min-width: 220px; background: var(--background); color: var(--color-text); }
253
+ .api-auth__value--hidden { display: none; }
254
+
255
+ /* Groups */
256
+ .api-group { margin-bottom: 40px; }
257
+ .api-group__header { margin-bottom: 20px; }
258
+ .api-group__title { font-size: 1.3em; font-weight: 700; margin-bottom: 4px; }
259
+ .api-group__description { font-size: 14px; color: var(--color-text-secondary); line-height: 1.5; }
260
+
261
+ /* Operations */
262
+ .api-operation {
263
+ border: 1px solid var(--border);
264
+ border-radius: 8px;
265
+ margin-bottom: 16px;
266
+ overflow: hidden;
267
+ }
268
+
269
+ .api-operation__header {
270
+ display: flex;
271
+ align-items: center;
272
+ gap: 12px;
273
+ padding: 14px 16px;
274
+ cursor: pointer;
275
+ }
276
+
277
+ .api-operation__header:hover { background: rgba(255, 255, 255, 0.03); }
278
+
279
+ .api-operation__path {
280
+ font-family: monospace;
281
+ font-size: 14px;
282
+ font-weight: 500;
283
+ }
284
+
285
+ .api-operation__summary {
286
+ font-size: 13px;
287
+ color: var(--color-text-secondary);
288
+ margin-left: auto;
289
+ white-space: nowrap;
290
+ overflow: hidden;
291
+ text-overflow: ellipsis;
292
+ }
293
+
294
+ .api-operation__toggle-icon {
295
+ flex-shrink: 0;
296
+ transition: transform 0.15s ease;
297
+ color: var(--color-text-secondary);
298
+ }
299
+
300
+ .api-operation--collapsed .api-operation__toggle-icon { transform: rotate(-90deg); }
301
+ .api-operation--collapsed .api-operation__body { display: none; }
302
+
303
+ .api-operation__body {
304
+ display: flex;
305
+ border-top: 1px solid var(--border);
306
+ padding: 0;
307
+ }
308
+
309
+ .api-operation__docs {
310
+ flex: 1;
311
+ min-width: 0;
312
+ padding: 20px;
313
+ }
314
+
315
+ .api-operation__description {
316
+ font-size: 14px;
317
+ line-height: 1.6;
318
+ margin-bottom: 20px;
319
+ color: var(--color-text-secondary);
320
+ }
321
+
322
+ /* Params */
323
+ .api-section-title {
324
+ font-size: 12px;
325
+ font-weight: 700;
326
+ text-transform: uppercase;
327
+ letter-spacing: 0.4px;
328
+ color: var(--color-text-secondary);
329
+ margin-bottom: 10px;
330
+ }
331
+
332
+ .api-params-table {
333
+ width: 100%;
334
+ border-collapse: collapse;
335
+ margin-bottom: 20px;
336
+ font-size: 13px;
337
+ }
338
+
339
+ .api-params-table th {
340
+ text-align: left;
341
+ font-weight: 600;
342
+ padding: 8px 12px;
343
+ border-bottom: 1px solid var(--border);
344
+ font-size: 11px;
345
+ text-transform: uppercase;
346
+ letter-spacing: 0.3px;
347
+ color: var(--color-text-secondary);
348
+ background: none;
349
+ }
350
+
351
+ .api-params-table td {
352
+ padding: 8px 12px;
353
+ border-bottom: 1px solid var(--border);
354
+ vertical-align: top;
355
+ }
356
+
357
+ .api-param-name { font-family: monospace; font-weight: 600; font-size: 13px; }
358
+ .api-param-required { color: #ef4444; font-size: 11px; margin-left: 4px; }
359
+ .api-param-type { font-family: monospace; font-size: 12px; color: var(--color-text-secondary); }
360
+ .api-param-in { font-size: 11px; color: var(--color-text-secondary); padding: 1px 6px; background: rgba(255,255,255,0.08); border-radius: 3px; }
361
+ .api-param-desc { color: var(--color-text-secondary); font-size: 13px; }
362
+
363
+ /* Schema */
364
+ .api-schema { margin-bottom: 20px; }
365
+ .api-schema-props { border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
366
+ .api-schema-prop { display: flex; gap: 12px; padding: 8px 12px; font-size: 13px; border-bottom: 1px solid var(--border); align-items: baseline; }
367
+ .api-schema-prop:last-child { border-bottom: none; }
368
+ .api-schema-prop-name { font-family: monospace; font-weight: 600; min-width: 120px; }
369
+ .api-schema-prop-type { font-family: monospace; font-size: 12px; color: var(--color-text-secondary); min-width: 80px; }
370
+ .api-schema-prop-desc { color: var(--color-text-secondary); flex: 1; }
371
+
372
+ /* Code Tabs */
373
+ .api-code-examples { margin-top: 20px; }
374
+
375
+ .api-code-tabs {
376
+ display: flex;
377
+ gap: 0;
378
+ border-bottom: 1px solid var(--border);
379
+ }
380
+
381
+ .api-code-tab {
382
+ padding: 8px 16px;
383
+ font-size: 12px;
384
+ font-weight: 600;
385
+ color: var(--color-text-secondary);
386
+ border-bottom: 2px solid transparent;
387
+ cursor: pointer;
388
+ background: none;
389
+ border-top: none;
390
+ border-left: none;
391
+ border-right: none;
392
+ font-family: var(--font-family);
393
+ }
394
+
395
+ .api-code-tab:hover { color: var(--color-text); }
396
+ .api-code-tab--active { color: var(--color-text); border-bottom-color: var(--links); }
397
+
398
+ .api-code-panel { display: none; position: relative; }
399
+ .api-code-panel--active { display: block; }
400
+
401
+ .api-code-panel pre {
402
+ background: rgba(255, 255, 255, 0.05);
403
+ border-radius: 0 0 6px 6px;
404
+ padding: 16px;
405
+ margin: 0;
406
+ overflow-x: auto;
407
+ }
408
+
409
+ .api-code-panel pre code {
410
+ background: none;
411
+ padding: 0;
412
+ font-size: 13px;
413
+ line-height: 1.5;
414
+ }
415
+
416
+ .api-copy-btn {
417
+ position: absolute;
418
+ top: 8px;
419
+ right: 8px;
420
+ padding: 4px 8px;
421
+ font-size: 11px;
422
+ border: 1px solid var(--border);
423
+ border-radius: 4px;
424
+ background: rgba(255,255,255,0.08);
425
+ color: var(--color-text-secondary);
426
+ cursor: pointer;
427
+ font-family: var(--font-family);
428
+ }
429
+
430
+ .api-copy-btn:hover { color: var(--color-text); }
431
+
432
+ /* Responses */
433
+ .api-response { margin-bottom: 16px; }
434
+ .api-response__status { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 8px; }
435
+ .api-status-code { font-family: monospace; font-size: 13px; font-weight: 700; padding: 2px 8px; border-radius: 4px; }
436
+ .api-status-code--2xx { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
437
+ .api-status-code--3xx { background: rgba(59, 130, 246, 0.15); color: #3b82f6; }
438
+ .api-status-code--4xx { background: rgba(249, 115, 22, 0.15); color: #f97316; }
439
+ .api-status-code--5xx { background: rgba(239, 68, 68, 0.15); color: #ef4444; }
440
+ .api-status-code--default { background: rgba(255,255,255,0.08); color: var(--color-text-secondary); }
441
+ .api-response__desc { font-size: 13px; color: var(--color-text-secondary); }
442
+
443
+ .api-response__example pre {
444
+ background: rgba(255, 255, 255, 0.05);
445
+ border-radius: 6px;
446
+ padding: 12px 16px;
447
+ margin-top: 8px;
448
+ overflow-x: auto;
449
+ }
450
+
451
+ .api-response__example pre code {
452
+ background: none;
453
+ padding: 0;
454
+ font-size: 12px;
455
+ line-height: 1.5;
456
+ }
457
+
458
+ /* Try It Panel */
459
+ .api-try-it {
460
+ width: 420px;
461
+ min-width: 360px;
462
+ background: rgba(255, 255, 255, 0.03);
463
+ border-left: 1px solid var(--border);
464
+ padding: 20px;
465
+ display: flex;
466
+ flex-direction: column;
467
+ gap: 12px;
468
+ }
469
+
470
+ .api-try-it__title {
471
+ font-size: 13px;
472
+ font-weight: 700;
473
+ text-transform: uppercase;
474
+ letter-spacing: 0.4px;
475
+ color: var(--color-text-secondary);
476
+ }
477
+
478
+ .api-try-it__url-bar {
479
+ display: flex;
480
+ align-items: center;
481
+ gap: 8px;
482
+ background: var(--background);
483
+ border: 1px solid var(--border);
484
+ border-radius: 6px;
485
+ padding: 6px 10px;
486
+ overflow: hidden;
487
+ }
488
+
489
+ .api-try-it__url-display {
490
+ display: flex;
491
+ align-items: center;
492
+ gap: 0;
493
+ flex: 1;
494
+ min-width: 0;
495
+ overflow: hidden;
496
+ }
497
+
498
+ .api-try-it__server-select {
499
+ background: none;
500
+ border: none;
501
+ color: var(--color-text-secondary);
502
+ font-family: monospace;
503
+ font-size: 12px;
504
+ padding: 2px 0;
505
+ cursor: pointer;
506
+ outline: none;
507
+ max-width: 180px;
508
+ flex-shrink: 1;
509
+ min-width: 0;
510
+ }
511
+
512
+ .api-try-it__server-select option {
513
+ background: var(--background);
514
+ color: var(--color-text);
515
+ }
516
+
517
+ .api-try-it__path-display {
518
+ font-family: monospace;
519
+ font-size: 12px;
520
+ color: var(--color-text);
521
+ white-space: nowrap;
522
+ overflow: hidden;
523
+ text-overflow: ellipsis;
524
+ }
525
+
526
+ .api-try-it__section {
527
+ display: flex;
528
+ flex-direction: column;
529
+ gap: 6px;
530
+ }
531
+
532
+ .api-try-it__section-label {
533
+ font-size: 11px;
534
+ font-weight: 700;
535
+ text-transform: uppercase;
536
+ letter-spacing: 0.4px;
537
+ color: var(--color-text-secondary);
538
+ }
539
+
540
+ .api-try-it__param-row {
541
+ display: flex;
542
+ flex-direction: column;
543
+ gap: 4px;
544
+ }
545
+
546
+ .api-try-it__param-info {
547
+ display: flex;
548
+ align-items: center;
549
+ gap: 6px;
550
+ }
551
+
552
+ .api-try-it__param-name {
553
+ font-family: monospace;
554
+ font-size: 12px;
555
+ font-weight: 600;
556
+ color: var(--color-text);
557
+ }
558
+
559
+ .api-try-it__param-in {
560
+ font-size: 10px;
561
+ color: var(--color-text-secondary);
562
+ padding: 1px 5px;
563
+ background: rgba(255, 255, 255, 0.08);
564
+ border-radius: 3px;
565
+ }
566
+
567
+ .api-try-it__param-input {
568
+ width: 100%;
569
+ padding: 6px 10px;
570
+ border: 1px solid var(--border);
571
+ border-radius: 4px;
572
+ background: var(--background);
573
+ color: var(--color-text);
574
+ font-family: monospace;
575
+ font-size: 12px;
576
+ outline: none;
577
+ box-sizing: border-box;
578
+ }
579
+
580
+ .api-try-it__param-input:focus {
581
+ border-color: var(--links);
582
+ }
583
+
584
+ .api-try-it__param-input:disabled {
585
+ opacity: 0.5;
586
+ cursor: not-allowed;
587
+ }
588
+
589
+ .api-try-it__param-input::placeholder {
590
+ color: var(--color-text-secondary);
591
+ }
592
+
593
+ .api-try-it__body-editor {
594
+ width: 100%;
595
+ padding: 10px;
596
+ border: 1px solid var(--border);
597
+ border-radius: 6px;
598
+ background: var(--background);
599
+ color: var(--color-text);
600
+ font-family: monospace;
601
+ font-size: 12px;
602
+ line-height: 1.5;
603
+ resize: vertical;
604
+ outline: none;
605
+ box-sizing: border-box;
606
+ }
607
+
608
+ .api-try-it__body-editor:focus {
609
+ border-color: var(--links);
610
+ }
611
+
612
+ .api-try-it__send-btn {
613
+ width: 100%;
614
+ padding: 8px 16px;
615
+ background: var(--links, #6366f1);
616
+ color: #fff;
617
+ border: none;
618
+ border-radius: 6px;
619
+ font-size: 13px;
620
+ font-weight: 600;
621
+ font-family: var(--font-family);
622
+ cursor: pointer;
623
+ transition: opacity 0.15s ease;
624
+ }
625
+
626
+ .api-try-it__send-btn:hover {
627
+ opacity: 0.9;
628
+ }
629
+
630
+ .api-try-it__send-btn:disabled {
631
+ opacity: 0.6;
632
+ cursor: not-allowed;
633
+ }
634
+
635
+ .api-try-it__response {
636
+ border: 1px solid var(--border);
637
+ border-radius: 6px;
638
+ overflow: hidden;
639
+ background: var(--background);
640
+ }
641
+
642
+ .api-try-it__response--hidden {
643
+ display: none;
644
+ }
645
+
646
+ .api-try-it__response-meta {
647
+ display: flex;
648
+ align-items: center;
649
+ gap: 10px;
650
+ padding: 10px 12px;
651
+ border-bottom: 1px solid var(--border);
652
+ }
653
+
654
+ .api-try-it__response-status {
655
+ font-family: monospace;
656
+ font-size: 13px;
657
+ font-weight: 700;
658
+ padding: 2px 8px;
659
+ border-radius: 4px;
660
+ }
661
+
662
+ .api-try-it__response-status--2xx {
663
+ background: rgba(34, 197, 94, 0.15);
664
+ color: #22c55e;
665
+ }
666
+
667
+ .api-try-it__response-status--3xx {
668
+ background: rgba(59, 130, 246, 0.15);
669
+ color: #3b82f6;
670
+ }
671
+
672
+ .api-try-it__response-status--4xx {
673
+ background: rgba(249, 115, 22, 0.15);
674
+ color: #f97316;
675
+ }
676
+
677
+ .api-try-it__response-status--5xx,
678
+ .api-try-it__response-status--error {
679
+ background: rgba(239, 68, 68, 0.15);
680
+ color: #ef4444;
681
+ }
682
+
683
+ .api-try-it__response-time {
684
+ font-size: 12px;
685
+ color: var(--color-text-secondary);
686
+ margin-left: auto;
687
+ }
688
+
689
+ .api-try-it__response-tabs {
690
+ display: flex;
691
+ border-bottom: 1px solid var(--border);
692
+ }
693
+
694
+ .api-try-it__rtab {
695
+ padding: 6px 14px;
696
+ font-size: 12px;
697
+ font-weight: 600;
698
+ color: var(--color-text-secondary);
699
+ border: none;
700
+ border-bottom: 2px solid transparent;
701
+ background: none;
702
+ cursor: pointer;
703
+ font-family: var(--font-family);
704
+ }
705
+
706
+ .api-try-it__rtab:hover {
707
+ color: var(--color-text);
708
+ }
709
+
710
+ .api-try-it__rtab--active {
711
+ color: var(--color-text);
712
+ border-bottom-color: var(--links);
713
+ }
714
+
715
+ .api-try-it__rpanel {
716
+ display: none;
717
+ }
718
+
719
+ .api-try-it__rpanel--active {
720
+ display: block;
721
+ }
722
+
723
+ .api-try-it__rpanel pre {
724
+ margin: 0;
725
+ padding: 12px;
726
+ overflow-x: auto;
727
+ max-height: 400px;
728
+ overflow-y: auto;
729
+ }
730
+
731
+ .api-try-it__rpanel pre code {
732
+ font-size: 12px;
733
+ line-height: 1.5;
734
+ color: var(--color-text);
735
+ background: none;
736
+ padding: 0;
737
+ white-space: pre-wrap;
738
+ word-break: break-word;
739
+ }
740
+
741
+ /* Mobile */
742
+ .api-mobile-toggle { display: none; padding: 12px 16px; border-bottom: 1px solid var(--border); }
743
+ .api-mobile-toggle button { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; font-size: 14px; background: var(--background); color: var(--color-text); cursor: pointer; font-family: var(--font-family); }
744
+
745
+ @media (max-width: 768px) {
746
+ .api-sidebar { display: none; }
747
+ .api-mobile-toggle { display: block; position: sticky; top: 0; z-index: 40; background: var(--background); }
748
+ .api-sidebar--mobile-open { display: block; position: fixed; top: 0; left: 0; width: 260px; height: 100vh; z-index: 100; background: var(--background); border-right: 1px solid var(--border); }
749
+ .api-content { padding: 20px 16px; }
750
+ .api-operation__summary { display: none; }
751
+ .api-operation__body { flex-direction: column; }
752
+ .api-try-it { width: 100%; min-width: 0; border-left: none; border-top: 1px solid var(--border); }
753
+ }