rapidoc 11.0.1 → 12.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 (80) hide show
  1. package/README.md +46 -31
  2. package/dist/rapidoc-min.js +1424 -213
  3. package/dist/rapidoc-static-min.js +13542 -0
  4. package/package.json +47 -35
  5. package/src/components/api-request.ts +869 -0
  6. package/src/components/api-response.ts +509 -0
  7. package/src/components/json-tree.ts +171 -0
  8. package/src/components/schema-base-element.ts +315 -0
  9. package/src/components/schema-table.ts +430 -0
  10. package/src/components/schema-tree.ts +386 -0
  11. package/src/components/tag-input.ts +184 -0
  12. package/src/index.js +6 -0
  13. package/src/oauth-receiver.ts +29 -0
  14. package/src/rapidoc-mini.ts +582 -0
  15. package/src/rapidoc.ts +1808 -0
  16. package/src/static/index.d.ts +149 -0
  17. package/src/static/index.js +62 -0
  18. package/src/static/navigation.js +497 -0
  19. package/src/static/render.js +490 -0
  20. package/src/static/serializer.js +216 -0
  21. package/src/styles/auth-styles.js +318 -0
  22. package/src/styles/border-styles.js +24 -0
  23. package/src/styles/css-bundle.js +129 -0
  24. package/src/styles/custom-styles.js +8 -0
  25. package/src/styles/dialog-box-styles.js +102 -0
  26. package/src/styles/endpoint-styles.js +559 -0
  27. package/src/styles/flex-styles.js +16 -0
  28. package/src/styles/font-styles.js +432 -0
  29. package/src/styles/info-styles.js +36 -0
  30. package/src/styles/input-styles.js +555 -0
  31. package/src/styles/layout-styles.js +396 -0
  32. package/src/styles/microlighter-styles.js +99 -0
  33. package/src/styles/nav-styles.js +609 -0
  34. package/src/styles/param-list-styles.js +261 -0
  35. package/src/styles/schema-styles.js +288 -0
  36. package/src/styles/tab-styles.js +106 -0
  37. package/src/styles/theme-tokens.js +582 -0
  38. package/src/templates/advanced-search-dialog-template.js +94 -0
  39. package/src/templates/api-response-template.js +219 -0
  40. package/src/templates/callback-template.js +86 -0
  41. package/src/templates/code-samples-template.js +52 -0
  42. package/src/templates/components-template.js +86 -0
  43. package/src/templates/downloads-template.js +85 -0
  44. package/src/templates/endpoint-template.js +386 -0
  45. package/src/templates/expanded-endpoint-template.js +266 -0
  46. package/src/templates/focused-endpoint-template.js +145 -0
  47. package/src/templates/header-template.js +92 -0
  48. package/src/templates/logo-template.js +21 -0
  49. package/src/templates/main-body-template.js +102 -0
  50. package/src/templates/navbar-template.js +489 -0
  51. package/src/templates/overview-template.js +104 -0
  52. package/src/templates/request-body-template.js +651 -0
  53. package/src/templates/request-params-template.js +474 -0
  54. package/src/templates/security-scheme-template.js +1263 -0
  55. package/src/templates/server-template.js +152 -0
  56. package/src/utils/auto-color-scheme.js +99 -0
  57. package/src/utils/bind-navbar.js +175 -0
  58. package/src/utils/color-utils.js +59 -0
  59. package/src/utils/common-utils.js +191 -0
  60. package/src/utils/curl-utils.js +123 -0
  61. package/src/utils/highlighter.js +416 -0
  62. package/src/utils/markdown-utils.js +110 -0
  63. package/src/utils/mcp/common.js +467 -0
  64. package/src/utils/mcp/generators/csharp.js +242 -0
  65. package/src/utils/mcp/generators/go.js +298 -0
  66. package/src/utils/mcp/generators/java.js +330 -0
  67. package/src/utils/mcp/generators/python.js +248 -0
  68. package/src/utils/mcp/generators/rust.js +281 -0
  69. package/src/utils/mcp/generators/typescript.js +290 -0
  70. package/src/utils/mcp-generator.js +143 -0
  71. package/src/utils/mock-interceptor.js +508 -0
  72. package/src/utils/oauth-utils.js +87 -0
  73. package/src/utils/request-utils.js +203 -0
  74. package/src/utils/response-utils.js +203 -0
  75. package/src/utils/sanitize.js +57 -0
  76. package/src/utils/schema-utils.js +1927 -0
  77. package/src/utils/slugger.js +189 -0
  78. package/src/utils/spec-parser.js +915 -0
  79. package/src/utils/url-utils.js +211 -0
  80. package/src/utils/xml-utils.js +61 -0
@@ -0,0 +1,102 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ *,
5
+ *:before,
6
+ *:after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .dialog-box {
11
+ position: absolute;
12
+ top: 100px;
13
+ background: var(--card);
14
+ padding: 0;
15
+ color: var(--card-foreground);
16
+ border-radius: min(var(--radius), 0.5rem);
17
+ max-height: 70vh;
18
+ height: 70vh;
19
+ max-width: 70vw;
20
+ width: 70vw;
21
+ border: 1px solid var(--border);
22
+ overflow: hidden;
23
+ box-shadow:
24
+ 0 14px 28px rgba(0, 0, 0, 0.25),
25
+ 0 10px 10px rgba(0, 0, 0, 0.22);
26
+ }
27
+
28
+ .dialog-box-header {
29
+ position: sticky;
30
+ top: 0;
31
+ align-self: stretch;
32
+ z-index: 10;
33
+ backdrop-filter: blur(12px);
34
+ display: flex;
35
+ align-items: center;
36
+ padding: 0px 16px;
37
+ min-height: 60px;
38
+ max-height: 60px;
39
+ border-bottom: 1px solid var(--border);
40
+ overflow: hidden;
41
+ border-top-left-radius: min(var(--radius), 0.5rem);
42
+ border-top-right-radius: min(var(--radius), 0.5rem);
43
+ & button {
44
+ font-size: 1.5rem;
45
+ font-weight: 700;
46
+ line-height: 1;
47
+ color: var(--foreground);
48
+ border: none;
49
+ outline: none;
50
+ background: transparent;
51
+ cursor: pointer;
52
+ border: 1px solid transparent;
53
+ border-radius: 50%;
54
+ margin-inline-end: -8px;
55
+
56
+ &:hover {
57
+ border-color: var(--primary);
58
+ }
59
+ }
60
+ }
61
+
62
+ .dialog-box-content {
63
+ padding: 1rem;
64
+ display: block;
65
+ overflow: auto;
66
+ height: 100%;
67
+ }
68
+
69
+ .dialog-box-title {
70
+ flex-grow: 1;
71
+ font-size: var(--h2-font-size);
72
+ }
73
+
74
+ .search-options-row {
75
+ display: flex;
76
+ gap: 16px;
77
+ flex-wrap: wrap;
78
+ margin: 8px 0 24px;
79
+ }
80
+
81
+ .search-option-label {
82
+ cursor: pointer;
83
+ display: inline-flex;
84
+ align-items: center;
85
+ gap: 0.5em;
86
+ user-select: none;
87
+ }
88
+
89
+ .search-option-label input {
90
+ cursor: pointer;
91
+ }
92
+
93
+ .search-match-row {
94
+ padding: 5px;
95
+ cursor: pointer;
96
+ border-bottom: 1px solid var(--border);
97
+ }
98
+
99
+ .search-match-row * {
100
+ pointer-events: none;
101
+ }
102
+ `;
@@ -0,0 +1,559 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ .only-large-screen {
5
+ display: none;
6
+ }
7
+ .endpoint-head {
8
+ & .path {
9
+ display: flex;
10
+ font-family: var(--font-mono);
11
+ font-size: var(--font-size-small);
12
+ align-items: center;
13
+ overflow-wrap: break-word;
14
+ word-break: break-all;
15
+ }
16
+
17
+ & .descr {
18
+ font-size: var(--font-size-small);
19
+ color: var(--muted-foreground);
20
+ font-weight: 400;
21
+ align-items: center;
22
+ overflow-wrap: break-word;
23
+ word-break: break-all;
24
+ display: none;
25
+ margin-inline-start: auto;
26
+ padding-inline-start: 16px;
27
+ }
28
+ }
29
+
30
+ .external-docs-box {
31
+ background: var(--muted);
32
+ padding: 2px 8px 8px 8px;
33
+ margin: 8px 0;
34
+ border-radius: min(var(--radius), 0.5rem);
35
+ }
36
+
37
+ .external-docs-link {
38
+ font-family: var(--font-mono);
39
+ font-size: var(--font-size-small);
40
+ }
41
+
42
+ .external-docs-arrow {
43
+ transform: rotate(270deg) scale(1.5);
44
+ display: inline-block;
45
+ margin-left: 5px;
46
+ }
47
+
48
+ .section-expand-collapse-container {
49
+ display: flex;
50
+ justify-content: flex-end;
51
+ gap: 4px;
52
+ }
53
+
54
+ .callback-operation-list {
55
+ margin-left: 16px;
56
+ width: 100%;
57
+ }
58
+
59
+ .callback-operation-item {
60
+ margin-top: 12px;
61
+ }
62
+
63
+ .callback-operation-header {
64
+ display: flex;
65
+ align-items: baseline;
66
+ gap: 8px;
67
+ }
68
+
69
+ .callback-method {
70
+ width: 70px;
71
+ border: none;
72
+ margin: 0;
73
+ padding: 0;
74
+ line-height: 20px;
75
+ vertical-align: baseline;
76
+ text-align: left;
77
+ }
78
+
79
+ /*
80
+ * Read mode: tag groups and tags. One thin neutral rule above each section. A tag group is a small muted
81
+ * uppercase label (like the sidebar's group headers) that sits directly above its first tag, so the two
82
+ * read as one block under a single rule.
83
+ */
84
+ .read-mode-group,
85
+ .read-mode-tag {
86
+ border-top: 1px solid var(--border);
87
+ }
88
+
89
+ .section-gap--read-mode:is(.read-mode-group, .read-mode-tag) {
90
+ padding-top: 24px;
91
+ }
92
+
93
+ .section-gap--read-mode.read-mode-group {
94
+ margin-top: 24px;
95
+ padding-bottom: 0;
96
+ }
97
+
98
+ .section-gap--read-mode.read-mode-group + .read-mode-tag {
99
+ border-top: none;
100
+ padding-top: 0.5em;
101
+ }
102
+
103
+ .rapidoc-heading.title.tag-group {
104
+ margin: 0;
105
+ font-size: var(--font-size-regular);
106
+ font-weight: 600;
107
+ letter-spacing: 0.06em;
108
+ text-transform: uppercase;
109
+ color: var(--muted-foreground);
110
+ }
111
+
112
+ /* The first operation of a tag has no divider above it (the tag's rule is enough), only space */
113
+ .expanded-endpoint-body[data-first-operation-in-tag='true'] {
114
+ margin-top: 32px;
115
+ }
116
+
117
+ .tag-group-description {
118
+ margin-top: 0.5em;
119
+ color: var(--muted-foreground);
120
+ }
121
+
122
+ .m-endpoint {
123
+ border-radius: min(var(--radius), 1rem);
124
+ --method-color: var(--method-default);
125
+ }
126
+ .m-endpoint.expanded {
127
+ margin-bottom: 16px;
128
+ }
129
+ .m-endpoint > .endpoint-head {
130
+ border-width: 1px 1px 1px 5px;
131
+ border-style: solid;
132
+ border-color: transparent;
133
+ border-top-color: var(--border);
134
+ border-radius: min(var(--radius), 1rem);
135
+ display: flex;
136
+ padding: 6px 16px;
137
+ align-items: center;
138
+ cursor: pointer;
139
+ }
140
+ .m-endpoint > .endpoint-head.expanded {
141
+ border-bottom-left-radius: 0;
142
+ border-bottom-right-radius: 0;
143
+ }
144
+ .m-endpoint > .endpoint-head:hover,
145
+ .m-endpoint > .endpoint-head.expanded {
146
+ border-color: var(--method-color, var(--method-default));
147
+ background: color-mix(in srgb, var(--method-color, var(--method-default)) 10%, transparent);
148
+ }
149
+ .m-endpoint > .endpoint-head.put:hover,
150
+ .m-endpoint > .endpoint-head.put.expanded {
151
+ border-color: var(--method-put);
152
+ background: color-mix(in srgb, var(--method-put) 10%, transparent);
153
+ }
154
+ .m-endpoint > .endpoint-head.post:hover,
155
+ .m-endpoint > .endpoint-head.post.expanded {
156
+ border-color: var(--method-post);
157
+ background: color-mix(in srgb, var(--method-post) 10%, transparent);
158
+ }
159
+ .m-endpoint > .endpoint-head.get:hover,
160
+ .m-endpoint > .endpoint-head.get.expanded {
161
+ border-color: var(--method-get);
162
+ background: color-mix(in srgb, var(--method-get) 10%, transparent);
163
+ }
164
+ .m-endpoint > .endpoint-head.delete:hover,
165
+ .m-endpoint > .endpoint-head.delete.expanded {
166
+ border-color: var(--method-delete);
167
+ background: color-mix(in srgb, var(--method-delete) 10%, transparent);
168
+ }
169
+
170
+ .m-endpoint > .endpoint-head.head:hover,
171
+ .m-endpoint > .endpoint-head.head.expanded,
172
+ .m-endpoint > .endpoint-head.patch:hover,
173
+ .m-endpoint > .endpoint-head.patch.expanded,
174
+ .m-endpoint > .endpoint-head.options:hover,
175
+ .m-endpoint > .endpoint-head.options.expanded {
176
+ border-color: var(--yellow);
177
+ background: color-mix(in srgb, var(--yellow) 10%, transparent);
178
+ }
179
+ .m-endpoint > .endpoint-head.trace:hover,
180
+ .m-endpoint > .endpoint-head.trace.expanded {
181
+ border-color: var(--pink);
182
+ background: color-mix(in srgb, var(--pink) 10%, transparent);
183
+ }
184
+ .m-endpoint > .endpoint-head.query:hover,
185
+ .m-endpoint > .endpoint-head.query.expanded {
186
+ border-color: var(--purple);
187
+ background: color-mix(in srgb, var(--purple) 10%, transparent);
188
+ }
189
+ .m-endpoint > .endpoint-head.copy:hover,
190
+ .m-endpoint > .endpoint-head.copy.expanded,
191
+ .m-endpoint > .endpoint-head.purge:hover,
192
+ .m-endpoint > .endpoint-head.purge.expanded {
193
+ border-color: var(--method-color, var(--method-default));
194
+ background: color-mix(in srgb, var(--method-color, var(--method-default)) 10%, transparent);
195
+ }
196
+
197
+ .m-endpoint > .endpoint-head.deprecated:hover,
198
+ .m-endpoint > .endpoint-head.deprecated.expanded {
199
+ border-color: var(--border);
200
+ filter: opacity(0.6);
201
+ }
202
+
203
+ .m-endpoint .endpoint-body {
204
+ flex-wrap: wrap;
205
+ padding: 16px 0px 0 0px;
206
+ border-width: 0px 1px 1px 5px;
207
+ border-style: solid;
208
+ border-color: var(--method-color, var(--method-default));
209
+ border-bottom-left-radius: min(var(--radius), 1rem);
210
+ border-bottom-right-radius: min(var(--radius), 1rem);
211
+ box-shadow: 0px 4px 3px -3px rgba(0, 0, 0, 0.15);
212
+ }
213
+ .m-endpoint .endpoint-body.get {
214
+ border-color: var(--method-get);
215
+ }
216
+ .m-endpoint .endpoint-body.post {
217
+ border-color: var(--method-post);
218
+ }
219
+ .m-endpoint .endpoint-body.put {
220
+ border-color: var(--method-put);
221
+ }
222
+ .m-endpoint .endpoint-body.delete {
223
+ border-color: var(--method-delete);
224
+ }
225
+ .m-endpoint .endpoint-body.patch {
226
+ border-color: var(--method-patch);
227
+ }
228
+ .m-endpoint .endpoint-body.head {
229
+ border-color: var(--method-head);
230
+ }
231
+ .m-endpoint .endpoint-body.options {
232
+ border-color: var(--method-options);
233
+ }
234
+ .m-endpoint .endpoint-body.trace {
235
+ border-color: var(--method-trace);
236
+ }
237
+ .m-endpoint .endpoint-body.query {
238
+ border-color: var(--method-query);
239
+ }
240
+
241
+ .m-endpoint .endpoint-body.deprecated {
242
+ border-color: var(--border);
243
+ filter: opacity(0.6);
244
+ }
245
+
246
+ .endpoint-head .deprecated {
247
+ color: var(--muted-foreground);
248
+ filter: opacity(0.6);
249
+ }
250
+
251
+ .summary {
252
+ padding: 8px 8px;
253
+ }
254
+ .summary .title {
255
+ overflow-wrap: anywhere;
256
+ }
257
+
258
+ .endpoint-head .method {
259
+ padding: 2px 5px;
260
+ vertical-align: middle;
261
+ font-size: var(--font-size-small);
262
+ height: calc(var(--font-size-small) + 16px);
263
+ line-height: calc(var(--font-size-small) + 8px);
264
+ width: 60px;
265
+ border-radius: var(--radius);
266
+ display: inline-block;
267
+ text-align: center;
268
+ font-weight: bold;
269
+ text-transform: uppercase;
270
+ margin-inline-end: 5px;
271
+ border: 2px solid var(--method-color, var(--method-default));
272
+ }
273
+ .endpoint-head .method.delete {
274
+ border: 2px solid var(--method-delete);
275
+ }
276
+ .endpoint-head .method.put {
277
+ border: 2px solid var(--method-put);
278
+ }
279
+ .endpoint-head .method.post {
280
+ border: 2px solid var(--method-post);
281
+ }
282
+ .endpoint-head .method.get {
283
+ border: 2px solid var(--method-get);
284
+ }
285
+ .endpoint-head .method.get.deprecated {
286
+ border: 2px solid var(--border);
287
+ }
288
+ .endpoint-head .method.head {
289
+ border: 2px solid var(--method-head);
290
+ }
291
+ .endpoint-head .method.patch {
292
+ border: 2px solid var(--method-patch);
293
+ }
294
+ .endpoint-head .method.options {
295
+ border: 2px solid var(--method-options);
296
+ }
297
+ .endpoint-head .method.trace {
298
+ border: 2px solid var(--method-trace);
299
+ }
300
+ .endpoint-head .method.query {
301
+ border: 2px solid var(--method-query);
302
+ }
303
+ .endpoint-head .method.copy {
304
+ border: 2px solid var(--method-default);
305
+ }
306
+ .endpoint-head .method.purge {
307
+ border: 2px solid var(--method-default);
308
+ }
309
+
310
+ .head {
311
+ --method-color: var(--method-head);
312
+ }
313
+ .patch {
314
+ --method-color: var(--method-patch);
315
+ }
316
+ .options {
317
+ --method-color: var(--method-options);
318
+ }
319
+ .trace {
320
+ --method-color: var(--method-trace);
321
+ }
322
+ .query {
323
+ --method-color: var(--method-query);
324
+ }
325
+ .put {
326
+ --method-color: var(--method-put);
327
+ }
328
+ .post {
329
+ --method-color: var(--method-post);
330
+ }
331
+ .get {
332
+ --method-color: var(--method-get);
333
+ }
334
+ .delete {
335
+ --method-color: var(--method-delete);
336
+ }
337
+ .copy {
338
+ --method-color: var(--method-default);
339
+ }
340
+ .purge {
341
+ --method-color: var(--method-default);
342
+ }
343
+
344
+ /* No flex-wrap: in a wrapping column each line is as wide as its widest content, so stretched
345
+ request/response panels would overflow narrow screens instead of fitting the container. */
346
+ .req-resp-container {
347
+ display: flex;
348
+ margin-top: 16px;
349
+ align-items: stretch;
350
+ flex-direction: column;
351
+ border-top: 1px solid var(--border);
352
+ min-width: 0;
353
+ }
354
+
355
+ .expanded-req-resp-container {
356
+ display: flex;
357
+ margin-top: 16px;
358
+ align-items: stretch;
359
+ flex-direction: column;
360
+ border-top: none;
361
+ min-width: 0;
362
+ }
363
+
364
+ .request-panel,
365
+ .view-mode-request,
366
+ api-response {
367
+ flex: 1 1 auto;
368
+ min-height: 100px;
369
+ min-width: 0;
370
+ padding: 16px 8px;
371
+ overflow: hidden;
372
+ box-sizing: border-box;
373
+ }
374
+
375
+ /* View Mode: dashed bottom divider when in column layout */
376
+ .m-endpoint .request-panel,
377
+ .m-endpoint .view-mode-request {
378
+ display: flex;
379
+ flex-direction: column;
380
+ border-width: 0 0 1px 0;
381
+ border-style: dashed;
382
+ border-color: var(--method-color, var(--primary));
383
+ }
384
+
385
+ /* Read & Focused Mode: in column layout there should NOT be any dotted line */
386
+ .expanded-endpoint-body .request-panel,
387
+ .expanded-req-resp-container .request-panel {
388
+ display: flex;
389
+ flex-direction: column;
390
+ border: none;
391
+ border-width: 0;
392
+ }
393
+
394
+ /* Explicit method color assignments for View Mode */
395
+ .head .view-mode-request,
396
+ .patch .view-mode-request,
397
+ .options .view-mode-request {
398
+ border-color: var(--yellow);
399
+ }
400
+ .put .view-mode-request {
401
+ border-color: var(--orange);
402
+ }
403
+ .post .view-mode-request {
404
+ border-color: var(--green);
405
+ }
406
+ .get .view-mode-request {
407
+ border-color: var(--blue);
408
+ }
409
+ .delete .view-mode-request {
410
+ border-color: var(--destructive);
411
+ }
412
+ .trace .view-mode-request {
413
+ border-color: var(--pink);
414
+ }
415
+ .query .view-mode-request {
416
+ border-color: var(--purple);
417
+ }
418
+ .copy .view-mode-request,
419
+ .purge .view-mode-request {
420
+ border-color: var(--method-color, var(--method-default));
421
+ }
422
+
423
+ @container (min-width: 860px) {
424
+ .only-large-screen {
425
+ display: block;
426
+ }
427
+ .endpoint-head .path {
428
+ font-size: var(--font-size-regular);
429
+ }
430
+ .endpoint-head .descr {
431
+ display: flex;
432
+ }
433
+ .endpoint-head .m-markdown-small,
434
+ .descr .m-markdown-small {
435
+ display: block;
436
+ }
437
+ .req-resp-container,
438
+ .expanded-req-resp-container {
439
+ flex-direction: row;
440
+ }
441
+ :host([layout='column']) .req-resp-container,
442
+ :host([layout='column']) .expanded-req-resp-container,
443
+ .req-resp-container.column-layout,
444
+ .expanded-req-resp-container.column-layout {
445
+ flex-direction: column !important;
446
+ }
447
+
448
+ /* Column layout overrides */
449
+ :host([layout='column']) .m-endpoint .request-panel,
450
+ :host([layout='column']) .view-mode-request,
451
+ .m-endpoint .request-panel.column-layout,
452
+ .view-mode-request.column-layout {
453
+ border-width: 0 0 1px 0;
454
+ padding: 16px 8px;
455
+ }
456
+ :host([layout='column']) .expanded-endpoint-body .request-panel,
457
+ :host([layout='column']) .expanded-req-resp-container .request-panel,
458
+ .expanded-endpoint-body .request-panel.column-layout,
459
+ .expanded-req-resp-container .request-panel.column-layout {
460
+ border: none !important;
461
+ border-width: 0 !important;
462
+ padding: 16px 8px;
463
+ }
464
+
465
+ :host([layout='row']) .req-resp-container,
466
+ :host([layout='row']) .expanded-req-resp-container,
467
+ .req-resp-container.row-layout,
468
+ .expanded-req-resp-container.row-layout {
469
+ flex-direction: row;
470
+ }
471
+ :host([layout='row']) .request-panel,
472
+ :host([layout='row']) .view-mode-request,
473
+ :host([layout='row']) api-response,
474
+ .req-resp-container.row-layout .request-panel,
475
+ .req-resp-container.row-layout .view-mode-request,
476
+ .req-resp-container.row-layout api-response,
477
+ .expanded-req-resp-container.row-layout .request-panel,
478
+ .expanded-req-resp-container.row-layout .view-mode-request,
479
+ .expanded-req-resp-container.row-layout api-response {
480
+ flex: 1 1 0%;
481
+ min-width: 0;
482
+ }
483
+
484
+ /* Row layout divider in View Mode: full accent color */
485
+ :host([layout='row']) .m-endpoint .request-panel.row-layout,
486
+ :host([layout='row']) .view-mode-request.row-layout,
487
+ .m-endpoint .request-panel.row-layout,
488
+ .view-mode-request.row-layout {
489
+ border-width: 0 1px 0 0;
490
+ border-style: dashed;
491
+ border-color: var(--method-color, var(--primary));
492
+ padding: 16px 20px 16px 8px;
493
+ }
494
+
495
+ /* Row layout divider in Read & Focused Mode: light shade of accent color (50% transparency) */
496
+ :host([layout='row']) .expanded-endpoint-body .request-panel.row-layout,
497
+ :host([layout='row']) .expanded-req-resp-container.row-layout .request-panel,
498
+ .expanded-endpoint-body .request-panel.row-layout,
499
+ .expanded-req-resp-container.row-layout .request-panel {
500
+ border-width: 0 1px 0 0;
501
+ border-style: dashed;
502
+ border-color: color-mix(in srgb, var(--method-color, var(--primary)) 50%, transparent);
503
+ padding: 16px 20px 16px 8px;
504
+ }
505
+
506
+ /* Direct 50% opacity overrides for Read / Focused Mode */
507
+ .head .expanded-endpoint-body .request-panel,
508
+ .head .expanded-req-resp-container .request-panel {
509
+ border-color: color-mix(in srgb, var(--yellow) 50%, transparent);
510
+ }
511
+ .patch .expanded-endpoint-body .request-panel,
512
+ .patch .expanded-req-resp-container .request-panel {
513
+ border-color: color-mix(in srgb, var(--yellow) 50%, transparent);
514
+ }
515
+ .options .expanded-endpoint-body .request-panel,
516
+ .options .expanded-req-resp-container .request-panel {
517
+ border-color: color-mix(in srgb, var(--yellow) 50%, transparent);
518
+ }
519
+ .put .expanded-endpoint-body .request-panel,
520
+ .put .expanded-req-resp-container .request-panel {
521
+ border-color: color-mix(in srgb, var(--orange) 50%, transparent);
522
+ }
523
+ .post .expanded-endpoint-body .request-panel,
524
+ .post .expanded-req-resp-container .request-panel {
525
+ border-color: color-mix(in srgb, var(--green) 50%, transparent);
526
+ }
527
+ .get .expanded-endpoint-body .request-panel,
528
+ .get .expanded-req-resp-container .request-panel {
529
+ border-color: color-mix(in srgb, var(--blue) 50%, transparent);
530
+ }
531
+ .delete .expanded-endpoint-body .request-panel,
532
+ .delete .expanded-req-resp-container .request-panel {
533
+ border-color: color-mix(in srgb, var(--destructive) 50%, transparent);
534
+ }
535
+ .trace .expanded-endpoint-body .request-panel,
536
+ .trace .expanded-req-resp-container .request-panel {
537
+ border-color: color-mix(in srgb, var(--pink) 50%, transparent);
538
+ }
539
+ .query .expanded-endpoint-body .request-panel,
540
+ .query .expanded-req-resp-container .request-panel {
541
+ border-color: color-mix(in srgb, var(--purple) 50%, transparent);
542
+ }
543
+ .copy .expanded-endpoint-body .request-panel,
544
+ .copy .expanded-req-resp-container .request-panel,
545
+ .purge .expanded-endpoint-body .request-panel,
546
+ .purge .expanded-req-resp-container .request-panel {
547
+ border-color: color-mix(in srgb, var(--method-color, var(--method-default)) 50%, transparent);
548
+ }
549
+
550
+ :host([layout='row']) api-response,
551
+ .req-resp-container.row-layout api-response,
552
+ .expanded-req-resp-container.row-layout api-response {
553
+ padding: 16px 8px 16px 20px;
554
+ }
555
+ .summary {
556
+ padding: 8px 16px;
557
+ }
558
+ }
559
+ `;
@@ -0,0 +1,16 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ .row,
5
+ .col {
6
+ display: flex;
7
+ }
8
+ .row {
9
+ align-items: center;
10
+ flex-direction: row;
11
+ }
12
+ .col {
13
+ align-items: stretch;
14
+ flex-direction: column;
15
+ }
16
+ `;