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,609 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ #advanced-search-btn {
5
+ display: none;
6
+ margin-left: 5px;
7
+ width: 75px;
8
+ }
9
+ .btn-clear-filter {
10
+ margin-left: 5px;
11
+ color: var(--foreground);
12
+ width: 75px;
13
+ }
14
+ .nav-bar-header {
15
+ position: sticky;
16
+ top: 0;
17
+ z-index: 10;
18
+ display: flex;
19
+ flex-direction: column;
20
+ box-sizing: border-box;
21
+ width: 100%;
22
+ backdrop-filter: blur(12px);
23
+ -webkit-backdrop-filter: blur(12px);
24
+ transition:
25
+ box-shadow 0.2s ease,
26
+ background 0.2s ease;
27
+ }
28
+ @container scroll-state(scrollable: top) {
29
+ .nav-bar-header {
30
+ box-shadow:
31
+ 0 4px 12px -2px rgba(0, 0, 0, 0.25),
32
+ 0 2px 4px -1px rgba(0, 0, 0, 0.15);
33
+ }
34
+ }
35
+ .nav-bar-search-container {
36
+ display: flex;
37
+ flex-direction: row;
38
+ justify-content: center;
39
+ align-items: stretch;
40
+ padding: 8px 16px 12px 16px;
41
+ box-sizing: border-box;
42
+ width: 100%;
43
+ }
44
+ .nav-bar-search-container.has-bottom-border {
45
+ border-bottom: 1px solid var(--muted);
46
+ }
47
+ .nav-bar-search-input-wrapper {
48
+ display: flex;
49
+ flex: 1;
50
+ position: relative;
51
+ line-height: 22px;
52
+ }
53
+ /* Wrapper in the selector so it outranks input-styles' input[type='text'] padding (room for the icon) */
54
+ .nav-bar-search-input-wrapper .nav-bar-search-input {
55
+ width: 100%;
56
+ line-height: 1.25;
57
+ padding: 0.45em 28px 0.45em 10px;
58
+ color: var(--foreground);
59
+ border: 1px solid var(--input);
60
+ border-radius: var(--radius);
61
+ background: var(--input-background);
62
+ font-size: calc(var(--font-size-small) + 1px);
63
+ box-sizing: border-box;
64
+ transition:
65
+ border-color 0.2s,
66
+ box-shadow 0.2s;
67
+ }
68
+ .nav-bar-search-input:focus {
69
+ outline: none;
70
+ border-color: var(--sidebar-ring);
71
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--sidebar-ring) 25%, transparent);
72
+ }
73
+ .nav-bar-search-icon {
74
+ position: absolute;
75
+ right: 8px;
76
+ top: 50%;
77
+ transform: translateY(-50%);
78
+ font-size: var(--font-size-regular);
79
+ cursor: pointer;
80
+ color: var(--foreground);
81
+ opacity: 0.6;
82
+ user-select: none;
83
+ }
84
+ /* The static nav's filter icon is a single-colour SVG (magnifying glass), not a glyph. */
85
+ svg.nav-bar-search-icon {
86
+ cursor: default;
87
+ pointer-events: none;
88
+ }
89
+ .nav-bar-search-icon:hover {
90
+ opacity: 1;
91
+ color: var(--foreground);
92
+ }
93
+ #nav-bar-btn {
94
+ position: absolute;
95
+ top: 16px;
96
+ right: 16px;
97
+ font-size: 36px;
98
+ line-height: 30px;
99
+ width: 50px;
100
+ height: 50px;
101
+ background: var(--card);
102
+ color: var(--foreground);
103
+ border: 1px solid var(--border);
104
+ border-radius: var(--radius);
105
+ cursor: pointer;
106
+ z-index: 10;
107
+ box-shadow:
108
+ 0 12px 16px 0 rgba(0, 0, 0, 0.24),
109
+ 0 17px 50px 0 rgba(0, 0, 0, 0.19);
110
+ &:hover {
111
+ border-color: var(--primary);
112
+ color: var(--primary);
113
+ }
114
+ }
115
+ .nav-bar {
116
+ width: 0;
117
+ height: 100%;
118
+ overflow: hidden;
119
+ color: var(--sidebar-foreground);
120
+ background: var(--sidebar);
121
+ background-blend-mode: multiply;
122
+ border-right: 1px solid var(--sidebar-border);
123
+ /* Same size as body text (14px by default), like most API references; 20px line height at that size. */
124
+ font-size: var(--font-size-regular);
125
+ line-height: calc(var(--font-size-regular) + 6px);
126
+ position: relative;
127
+ flex-direction: column;
128
+ flex-wrap: nowrap;
129
+ word-break: break-word;
130
+ &.floating-nav {
131
+ position: absolute;
132
+ top: 0;
133
+ left: 0;
134
+ width: 330px;
135
+ overflow: scroll;
136
+ z-index: 5;
137
+ }
138
+ }
139
+
140
+ .nav-bar-info:focus-visible,
141
+ .nav-bar-tag:focus-visible,
142
+ .nav-bar-path:focus-visible {
143
+ outline: 1px solid;
144
+ box-shadow: none;
145
+ outline-offset: -4px;
146
+ }
147
+ .nav-bar-expand-all:focus-visible,
148
+ .nav-bar-collapse-all:focus-visible,
149
+ .nav-bar-tag-icon:focus-visible {
150
+ outline: 1px solid;
151
+ box-shadow: none;
152
+ outline-offset: 2px;
153
+ }
154
+ ::slotted([slot='nav-logo']) {
155
+ max-height: var(--sidebar-logo-max-height);
156
+ overflow: hidden;
157
+ box-sizing: border-box;
158
+ width: auto;
159
+ padding: 16px 16px 0 16px;
160
+ object-fit: contain;
161
+ }
162
+ .nav-scroll {
163
+ overflow-x: hidden;
164
+ overflow-y: auto;
165
+ overflow-y: overlay;
166
+ scrollbar-width: thin;
167
+ scrollbar-color: var(--muted) transparent;
168
+ scroll-padding-top: 60px;
169
+ container-type: scroll-state;
170
+ }
171
+
172
+ .nav-bar-tag {
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: space-between;
176
+ flex-direction: row;
177
+ }
178
+ .nav-bar-paths-under-tag {
179
+ overflow: hidden;
180
+ padding-left: 10px;
181
+ }
182
+ .collapsed .nav-bar-paths-under-tag,
183
+ .nav-bar-tag-and-paths.collapsed .nav-bar-paths-under-tag {
184
+ display: none;
185
+ visibility: hidden;
186
+ max-height: 0;
187
+ }
188
+
189
+ .nav-bar-expand-all {
190
+ transform: rotate(90deg);
191
+ cursor: pointer;
192
+ margin-inline-end: 10px;
193
+ }
194
+ .nav-bar-collapse-all {
195
+ transform: rotate(270deg);
196
+ cursor: pointer;
197
+ }
198
+ .nav-bar-expand-all:hover,
199
+ .nav-bar-collapse-all:hover {
200
+ color: var(--primary);
201
+ }
202
+
203
+ .nav-bar-tag-icon,
204
+ .nav-bar-tag-group-icon {
205
+ font-size: 14px;
206
+ color: var(--foreground);
207
+ cursor: pointer;
208
+ display: inline-flex;
209
+ align-items: center;
210
+ justify-content: center;
211
+ width: 16px;
212
+ height: 16px;
213
+ line-height: 1;
214
+ user-select: none;
215
+ transition: color 0.15s ease;
216
+ }
217
+ .nav-bar-tag-icon:hover,
218
+ .nav-bar-tag-group-icon:hover {
219
+ color: var(--foreground);
220
+ }
221
+
222
+ .nav-bar-tag-icon::after,
223
+ .nav-bar-tag-group-icon::after {
224
+ content: '';
225
+ width: 14px;
226
+ height: 14px;
227
+ display: inline-block;
228
+ background-color: currentColor;
229
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
230
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
231
+ -webkit-mask-size: 14px 14px;
232
+ mask-size: 14px 14px;
233
+ -webkit-mask-repeat: no-repeat;
234
+ mask-repeat: no-repeat;
235
+ -webkit-mask-position: center;
236
+ mask-position: center;
237
+ transition: transform 0.2s ease-out 0s;
238
+ transform-origin: center;
239
+ }
240
+
241
+ .nav-bar-tag-and-paths.collapsed .nav-bar-tag-icon::after,
242
+ .nav-bar-tag-group.collapsed .nav-bar-tag-group-icon::after {
243
+ transform: rotate(-90deg);
244
+ }
245
+
246
+ .nav-bar-tag-and-paths.expanded .nav-bar-tag-icon::after,
247
+ .nav-bar-tag-group.expanded .nav-bar-tag-group-icon::after {
248
+ transform: rotate(0deg);
249
+ }
250
+ .nav-scroll::-webkit-scrollbar {
251
+ width: 8px;
252
+ }
253
+ .nav-scroll::-webkit-scrollbar-track {
254
+ background: transparent;
255
+ }
256
+ .nav-scroll::-webkit-scrollbar-thumb {
257
+ background: var(--muted);
258
+ }
259
+ .nav-bar-tag-group {
260
+ margin-top: 6px;
261
+ margin-bottom: 2px;
262
+ }
263
+ .nav-bar-tag-group-header {
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: space-between;
267
+ padding: 8px 15px 4px 6px;
268
+ font-weight: 700;
269
+ text-transform: uppercase;
270
+ letter-spacing: 0.05em;
271
+ color: var(--foreground);
272
+ cursor: pointer;
273
+ user-select: none;
274
+ border-inline-start: 4px solid transparent;
275
+ transition:
276
+ border-color 0.15s ease,
277
+ color 0.15s ease;
278
+ }
279
+ .nav-bar-tag-group-header:hover {
280
+ color: var(--foreground);
281
+ }
282
+ .nav-bar-tag-group-title {
283
+ flex: 1;
284
+ min-width: 0;
285
+ }
286
+ .nav-bar-tag-group.collapsed .nav-bar-tags-under-group {
287
+ display: none;
288
+ }
289
+ .nav-bar-tags-under-group {
290
+ border-inline-start: 1px solid var(--border);
291
+ margin-inline-start: 10px;
292
+ }
293
+
294
+ .nav-bar-tag {
295
+ color: var(--primary);
296
+ border-inline-start: 4px solid transparent;
297
+ font-weight: 600;
298
+ padding: 10px 15px 10px 10px;
299
+ text-transform: capitalize;
300
+ min-width: 0;
301
+ }
302
+ .nav-bar-tag a,
303
+ .nav-bar-tag-title,
304
+ a.nav-bar-tag-title {
305
+ color: inherit;
306
+ text-decoration: none;
307
+ flex: 1;
308
+ min-width: 0;
309
+ }
310
+ .nav-bar-tag a:hover,
311
+ .nav-bar-tag-title:hover,
312
+ a.nav-bar-tag-title:hover {
313
+ color: inherit;
314
+ text-decoration: none;
315
+ }
316
+
317
+ .nav-bar-components,
318
+ .nav-bar-h1,
319
+ .nav-bar-h2,
320
+ .nav-bar-info,
321
+ .nav-bar-tag,
322
+ .nav-bar-path {
323
+ display: flex;
324
+ cursor: pointer;
325
+ width: 100%;
326
+ border: none;
327
+ color: var(--foreground);
328
+ background: transparent;
329
+ border-inline-start: 4px solid transparent;
330
+ transition:
331
+ background 0.15s ease,
332
+ color 0.15s ease;
333
+ }
334
+
335
+ .nav-bar-path,
336
+ a.nav-bar-path {
337
+ align-items: center;
338
+ justify-content: space-between;
339
+ gap: 8px;
340
+ min-width: 0;
341
+ box-sizing: border-box;
342
+ text-decoration: none;
343
+ }
344
+
345
+ .nav-bar-path:hover,
346
+ a.nav-bar-path:hover {
347
+ text-decoration: none;
348
+ }
349
+
350
+ .nav-bar-path > * {
351
+ pointer-events: none;
352
+ }
353
+
354
+ .nav-bar-path.deprecated {
355
+ filter: opacity(0.5);
356
+ }
357
+
358
+ .portal-sidebar-footer-link {
359
+ padding: 16px 12px;
360
+ }
361
+
362
+ .nav-bar-path-label {
363
+ display: flex;
364
+ align-items: baseline;
365
+ min-width: 0;
366
+ flex: 1;
367
+ }
368
+
369
+ .nav-bar-webhook {
370
+ font-weight: bold;
371
+ margin-right: 8px;
372
+ font-size: var(--font-size-xs);
373
+ flex-shrink: 0;
374
+ }
375
+
376
+ /* A path in place of the summary (use-path-in-nav-bar); also in the static navigation, which has no font styles */
377
+ .nav-bar-path-label .mono-font {
378
+ font-family: var(--font-mono);
379
+ }
380
+
381
+ .nav-method {
382
+ font-weight: bold;
383
+ margin-inline-start: auto;
384
+ flex-shrink: 0;
385
+ font-size: var(--font-size-xs);
386
+ white-space: nowrap;
387
+
388
+ &.false {
389
+ display: none;
390
+ }
391
+ }
392
+
393
+ .nav-method.as-colored-text {
394
+ color: var(--method-default);
395
+ }
396
+ .nav-method.as-colored-text.get {
397
+ color: var(--method-get);
398
+ }
399
+ .nav-method.as-colored-text.put {
400
+ color: var(--method-put);
401
+ }
402
+ .nav-method.as-colored-text.post {
403
+ color: var(--method-post);
404
+ }
405
+ .nav-method.as-colored-text.delete {
406
+ color: var(--method-delete);
407
+ }
408
+ .nav-method.as-colored-text.head {
409
+ color: var(--method-head);
410
+ }
411
+ .nav-method.as-colored-text.patch {
412
+ color: var(--method-patch);
413
+ }
414
+ .nav-method.as-colored-text.options {
415
+ color: var(--method-options);
416
+ }
417
+ .nav-method.as-colored-text.trace {
418
+ color: var(--method-trace);
419
+ }
420
+ .nav-method.as-colored-text.query {
421
+ color: var(--method-query);
422
+ }
423
+ .nav-method.as-colored-text.copy {
424
+ color: var(--method-default);
425
+ }
426
+ .nav-method.as-colored-text.purge {
427
+ color: var(--method-default);
428
+ }
429
+
430
+ .nav-method.as-colored-block {
431
+ padding: 1px 4px;
432
+ min-width: 32px;
433
+ text-align: center;
434
+ border-radius: 4px;
435
+ color: var(--method-badge-fg);
436
+ background: var(--method-default);
437
+ font-weight: 600;
438
+ }
439
+ :host([color-scheme='light']) .nav-method.as-colored-block {
440
+ color: var(--method-badge-fg);
441
+ }
442
+ @media (prefers-color-scheme: light) {
443
+ :host([color-scheme='system']) .nav-method.as-colored-block {
444
+ color: var(--method-badge-fg);
445
+ }
446
+ }
447
+ .colored-block .nav-method.as-colored-block {
448
+ outline: 1px solid;
449
+ }
450
+
451
+ .nav-method.as-colored-block.get {
452
+ background: var(--method-get);
453
+ }
454
+ .nav-method.as-colored-block.put {
455
+ background: var(--method-put);
456
+ }
457
+ .nav-method.as-colored-block.post {
458
+ background: var(--method-post);
459
+ }
460
+ .nav-method.as-colored-block.delete {
461
+ background: var(--method-delete);
462
+ }
463
+ .nav-method.as-colored-block.head {
464
+ background: var(--method-head);
465
+ }
466
+ .nav-method.as-colored-block.patch {
467
+ background: var(--method-patch);
468
+ }
469
+ .nav-method.as-colored-block.options {
470
+ background: var(--method-options);
471
+ }
472
+ .nav-method.as-colored-block.trace {
473
+ background: var(--method-trace);
474
+ }
475
+ .nav-method.as-colored-block.query {
476
+ background: var(--method-query);
477
+ }
478
+ .nav-method.as-colored-block.copy {
479
+ background: var(--method-default);
480
+ }
481
+ .nav-method.as-colored-block.purge {
482
+ background: var(--method-default);
483
+ }
484
+
485
+ .nav-bar-h1,
486
+ .nav-bar-h2,
487
+ .nav-bar-path {
488
+ font-weight: 400;
489
+ padding: var(--sidebar-item-padding);
490
+ }
491
+
492
+ .nav-bar-info {
493
+ padding: 12px 10px;
494
+ font-weight: 600;
495
+ }
496
+ .nav-bar-section {
497
+ display: flex;
498
+ flex-direction: row;
499
+ justify-content: space-between;
500
+ color: var(--foreground);
501
+ padding: var(--sidebar-item-padding);
502
+ font-weight: 700;
503
+ }
504
+ .nav-bar-section.operations {
505
+ display: none !important;
506
+ }
507
+
508
+ .nav-bar-section:first-child {
509
+ display: none;
510
+ }
511
+ .nav-bar-h2 {
512
+ padding-inline-start: 28px;
513
+ }
514
+
515
+ /* Active item indicator - always left-bar style */
516
+ .nav-bar-h1.active,
517
+ .nav-bar-h2.active,
518
+ .nav-bar-info.active,
519
+ .nav-bar-tag.active,
520
+ .nav-bar-path.active,
521
+ .nav-bar-section.operations.active,
522
+ .nav-bar-h1.left-bar.active,
523
+ .nav-bar-h2.left-bar.active,
524
+ .nav-bar-info.left-bar.active,
525
+ .nav-bar-tag.left-bar.active,
526
+ .nav-bar-path.left-bar.active,
527
+ .nav-bar-section.left-bar.operations.active {
528
+ border-inline-start: 4px solid var(--sidebar-primary);
529
+ color: var(--sidebar-primary);
530
+ }
531
+
532
+ .nav-bar-h1.active:hover,
533
+ .nav-bar-h2.active:hover,
534
+ .nav-bar-info.active:hover,
535
+ .nav-bar-tag.active:hover,
536
+ .nav-bar-path.active:hover,
537
+ .nav-bar-section.operations.active:hover,
538
+ .nav-bar-h1.left-bar.active:hover,
539
+ .nav-bar-h2.left-bar.active:hover,
540
+ .nav-bar-info.left-bar.active:hover,
541
+ .nav-bar-tag.left-bar.active:hover,
542
+ .nav-bar-path.left-bar.active:hover,
543
+ .nav-bar-section.left-bar.operations.active:hover {
544
+ color: var(--sidebar-primary);
545
+ }
546
+
547
+ /* Highlight collapsed parents using modern CSS :has() */
548
+ .nav-bar-tag-and-paths.collapsed:has(.nav-bar-path.active) > .nav-bar-tag {
549
+ border-inline-start-color: var(--sidebar-primary);
550
+ color: var(--sidebar-primary);
551
+ }
552
+
553
+ .nav-bar-tag-group.collapsed:has(.active) > .nav-bar-tag-group-header {
554
+ border-inline-start-color: var(--sidebar-primary);
555
+ color: var(--sidebar-primary);
556
+ }
557
+
558
+ .nav-bar-tag-and-paths.collapsed:has(.nav-bar-path.active) > .nav-bar-tag:hover,
559
+ .nav-bar-tag-group.collapsed:has(.active) > .nav-bar-tag-group-header:hover {
560
+ color: var(--sidebar-primary);
561
+ }
562
+
563
+ .nav-bar-h1:hover,
564
+ .nav-bar-h2:hover,
565
+ .nav-bar-info:hover,
566
+ .nav-bar-tag:hover,
567
+ .nav-bar-path:hover {
568
+ color: var(--sidebar-accent-foreground);
569
+ background: var(--sidebar-accent);
570
+ }
571
+
572
+ /* nav-item-overflow: ellipsis (default) vs wrap */
573
+ :host([nav-item-overflow='ellipsis']) .nav-bar-tag-group-title,
574
+ :host(:not([nav-item-overflow])) .nav-bar-tag-group-title,
575
+ .overflow-ellipsis .nav-bar-tag-group-title,
576
+ :host([nav-item-overflow='ellipsis']) .nav-bar-tag-title,
577
+ :host(:not([nav-item-overflow])) .nav-bar-tag-title,
578
+ .overflow-ellipsis .nav-bar-tag-title,
579
+ :host([nav-item-overflow='ellipsis']) .nav-bar-path-label,
580
+ :host(:not([nav-item-overflow])) .nav-bar-path-label,
581
+ .overflow-ellipsis .nav-bar-path-label,
582
+ :host([nav-item-overflow='ellipsis']) .nav-bar-info,
583
+ :host(:not([nav-item-overflow])) .nav-bar-info,
584
+ .overflow-ellipsis .nav-bar-info,
585
+ :host([nav-item-overflow='ellipsis']) .nav-bar-section-title,
586
+ :host(:not([nav-item-overflow])) .nav-bar-section-title,
587
+ .overflow-ellipsis .nav-bar-section-title {
588
+ white-space: nowrap;
589
+ overflow: hidden;
590
+ text-overflow: ellipsis;
591
+ display: block;
592
+ }
593
+
594
+ :host([nav-item-overflow='wrap']) .nav-bar-tag-group-title,
595
+ .overflow-wrap .nav-bar-tag-group-title,
596
+ :host([nav-item-overflow='wrap']) .nav-bar-tag-title,
597
+ .overflow-wrap .nav-bar-tag-title,
598
+ :host([nav-item-overflow='wrap']) .nav-bar-path-label,
599
+ .overflow-wrap .nav-bar-path-label,
600
+ :host([nav-item-overflow='wrap']) .nav-bar-info,
601
+ .overflow-wrap .nav-bar-info,
602
+ :host([nav-item-overflow='wrap']) .nav-bar-section-title,
603
+ .overflow-wrap .nav-bar-section-title {
604
+ white-space: normal;
605
+ overflow: visible;
606
+ text-overflow: clip;
607
+ word-break: break-word;
608
+ }
609
+ `;