@veluai/velu 0.2.13 → 0.2.15

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 (109) hide show
  1. package/README.md +80 -80
  2. package/dist/cli.js +37 -37
  3. package/package.json +64 -64
  4. package/runtime/velu-ui/base.css +320 -320
  5. package/runtime/velu-ui/components/Accordion.jsx +64 -64
  6. package/runtime/velu-ui/components/ApiClient.jsx +207 -207
  7. package/runtime/velu-ui/components/ApiField.jsx +87 -87
  8. package/runtime/velu-ui/components/ApiPath.jsx +63 -63
  9. package/runtime/velu-ui/components/ApiReferencePage.jsx +384 -384
  10. package/runtime/velu-ui/components/ApiSamples.jsx +36 -36
  11. package/runtime/velu-ui/components/ApiSidebar.jsx +122 -122
  12. package/runtime/velu-ui/components/AskBar.jsx +71 -71
  13. package/runtime/velu-ui/components/Callout.jsx +114 -114
  14. package/runtime/velu-ui/components/Card.jsx +131 -131
  15. package/runtime/velu-ui/components/Chatbot.jsx +885 -885
  16. package/runtime/velu-ui/components/CodeBlock.jsx +375 -375
  17. package/runtime/velu-ui/components/Columns.jsx +56 -56
  18. package/runtime/velu-ui/components/ContextMenu.jsx +298 -273
  19. package/runtime/velu-ui/components/ErrorCard.jsx +138 -138
  20. package/runtime/velu-ui/components/Field.jsx +81 -81
  21. package/runtime/velu-ui/components/Image.jsx +163 -163
  22. package/runtime/velu-ui/components/Logo.jsx +31 -31
  23. package/runtime/velu-ui/components/MethodBadge.jsx +31 -31
  24. package/runtime/velu-ui/components/NavSelect.jsx +108 -108
  25. package/runtime/velu-ui/components/NotFound.jsx +63 -63
  26. package/runtime/velu-ui/components/PageFeedback.jsx +219 -219
  27. package/runtime/velu-ui/components/PageFooter.jsx +145 -145
  28. package/runtime/velu-ui/components/PageHeader.jsx +422 -422
  29. package/runtime/velu-ui/components/PageNav.jsx +77 -77
  30. package/runtime/velu-ui/components/PoweredBy.jsx +51 -51
  31. package/runtime/velu-ui/components/Prompt.jsx +115 -115
  32. package/runtime/velu-ui/components/Search.jsx +460 -460
  33. package/runtime/velu-ui/components/Sidebar.jsx +254 -254
  34. package/runtime/velu-ui/components/SocialLinks.jsx +90 -90
  35. package/runtime/velu-ui/components/Steps.jsx +65 -65
  36. package/runtime/velu-ui/components/ThemeToggle.jsx +48 -48
  37. package/runtime/velu-ui/components/Toc.jsx +537 -537
  38. package/runtime/velu-ui/components/TocBar.jsx +195 -195
  39. package/runtime/velu-ui/components/Tree.jsx +87 -87
  40. package/runtime/velu-ui/components/TryItBar.jsx +102 -102
  41. package/runtime/velu-ui/components/accordion.css +92 -92
  42. package/runtime/velu-ui/components/api-page.css +208 -208
  43. package/runtime/velu-ui/components/api.css +635 -635
  44. package/runtime/velu-ui/components/ask-bar.css +94 -94
  45. package/runtime/velu-ui/components/card.css +105 -105
  46. package/runtime/velu-ui/components/chatbot.css +622 -622
  47. package/runtime/velu-ui/components/code-block.css +263 -263
  48. package/runtime/velu-ui/components/context-menu.css +173 -173
  49. package/runtime/velu-ui/components/docs-layout.css +822 -822
  50. package/runtime/velu-ui/components/field.css +82 -82
  51. package/runtime/velu-ui/components/image.css +237 -237
  52. package/runtime/velu-ui/components/nav-select.css +157 -157
  53. package/runtime/velu-ui/components/not-found.css +94 -94
  54. package/runtime/velu-ui/components/page-feedback.css +241 -241
  55. package/runtime/velu-ui/components/page-footer.css +130 -130
  56. package/runtime/velu-ui/components/page-header.css +558 -558
  57. package/runtime/velu-ui/components/page-nav.css +50 -50
  58. package/runtime/velu-ui/components/powered-by.css +92 -92
  59. package/runtime/velu-ui/components/prompt.css +99 -99
  60. package/runtime/velu-ui/components/search.css +307 -307
  61. package/runtime/velu-ui/components/sidebar.css +205 -205
  62. package/runtime/velu-ui/components/steps.css +77 -77
  63. package/runtime/velu-ui/components/theme-toggle.css +102 -102
  64. package/runtime/velu-ui/components/toc-bar.css +234 -234
  65. package/runtime/velu-ui/components/tree.css +49 -49
  66. package/runtime/velu-ui/index.js +54 -54
  67. package/runtime/velu-ui/lib/api-send.js +92 -92
  68. package/runtime/velu-ui/lib/brand-icons.jsx +103 -103
  69. package/runtime/velu-ui/lib/component-schemas.js +100 -100
  70. package/runtime/velu-ui/lib/copyText.js +64 -64
  71. package/runtime/velu-ui/lib/docs-assistant.js +250 -250
  72. package/runtime/velu-ui/lib/lang-icons.jsx +147 -147
  73. package/runtime/velu-ui/lib/pagefind.js +113 -113
  74. package/runtime/velu-ui/lib/prism-langs.js +957 -957
  75. package/runtime/velu-ui/lib/prism-loader.js +74 -74
  76. package/runtime/velu-ui/lib/resolveIcon.jsx +29 -29
  77. package/runtime/velu-ui/lib/scrollIntoNearestView.js +66 -66
  78. package/runtime/velu-ui/mdx-components.jsx +105 -105
  79. package/runtime/velu-ui/primitives/Cluster.jsx +49 -49
  80. package/runtime/velu-ui/primitives/Stack.jsx +63 -63
  81. package/runtime/velu-ui/primitives/Switcher.jsx +57 -57
  82. package/runtime/velu-ui/primitives/stack.css +3 -3
  83. package/runtime/velu-ui/primitives/switcher.css +25 -25
  84. package/runtime/velu-ui/styles.css +46 -46
  85. package/runtime/velu-ui/tokens.css +4 -4
  86. package/schema/velu.schema.json +423 -423
  87. package/src/lib/extract-mdx-error.js +170 -170
  88. package/src/lib/issues.js +159 -159
  89. package/src/lib/known-components.js +34 -34
  90. package/src/navigation.js +443 -443
  91. package/src/runtime/App.jsx +1669 -1668
  92. package/src/runtime/ErrorBoundary.jsx +54 -54
  93. package/src/runtime/client-entry.jsx +22 -22
  94. package/src/runtime/server-entry.jsx +16 -16
  95. package/src/template.html +48 -48
  96. package/templates/starter/ai-tools/claude-code.mdx +26 -26
  97. package/templates/starter/ai-tools/cursor.mdx +17 -17
  98. package/templates/starter/api-reference/introduction.mdx +43 -43
  99. package/templates/starter/development.mdx +19 -19
  100. package/templates/starter/essentials/code.mdx +29 -29
  101. package/templates/starter/essentials/images.mdx +29 -29
  102. package/templates/starter/essentials/markdown.mdx +25 -25
  103. package/templates/starter/essentials/navigation.mdx +39 -39
  104. package/templates/starter/essentials/settings.mdx +30 -30
  105. package/templates/starter/favicon.svg +6 -6
  106. package/templates/starter/index.mdx +31 -31
  107. package/templates/starter/openapi.json +160 -160
  108. package/templates/starter/quickstart.mdx +31 -31
  109. package/templates/starter/velu.json +41 -41
@@ -1,208 +1,208 @@
1
- /* Auto-generated OpenAPI reference page. Composes existing API components; this
2
- only adds the page-level rhythm, the response tabs, and the playground's
3
- live-response panel + body input. All tokens — light/dark via [data-theme]. */
4
-
5
- .velu-api-page__title {
6
- font-size: var(--f-h1);
7
- font-weight: var(--weight-bold);
8
- line-height: 1.1;
9
- letter-spacing: -0.02em;
10
- margin: 0 0 var(--s1);
11
- }
12
- .velu-api-page__lede {
13
- color: var(--muted-color);
14
- margin: 0 0 var(--s2);
15
- }
16
- .velu-api-page__tryit {
17
- margin-block: var(--s2);
18
- }
19
- .velu-api-page__section {
20
- margin-block-start: var(--s3);
21
- }
22
- .velu-api-page__section > h2 {
23
- font-size: var(--f-h3);
24
- font-weight: var(--weight-semibold);
25
- margin: 0 0 var(--s1);
26
- }
27
- .velu-api-page__enum {
28
- margin-block-start: var(--s-3);
29
- color: var(--muted-color);
30
- font-size: var(--f-h6);
31
- }
32
- .velu-api-page__enum code {
33
- margin-inline-end: var(--s-4);
34
- }
35
-
36
- /* ── Response sections (doc body) ──────────────────────────────────────── */
37
- /* One default-open accordion per status; the summary shows a status pill +
38
- the content-type. */
39
- .velu-api-resp__head {
40
- display: inline-flex;
41
- align-items: baseline;
42
- gap: var(--s0);
43
- }
44
- /* Plain status code — no pill chrome, no per-status color, regular weight. */
45
- .velu-api-resp__status {
46
- font-family: var(--font-mono);
47
- }
48
- .velu-api-resp__ctype {
49
- color: var(--muted-color);
50
- font-family: var(--font-mono);
51
- font-size: var(--f-h6);
52
- }
53
- .velu-api-resp__desc {
54
- color: var(--muted-color);
55
- margin: 0 0 var(--s1);
56
- }
57
-
58
- /* ── Playground live-response panel (ApiClient aside) ──────────────────── */
59
- /* A Body / Header tabbed card reusing the CodeGroup tab chrome
60
- (.velu-code-block__*): Body shows a status-colored callout + the response
61
- body; Header shows the response headers as a fixed-height scrollable table. */
62
- .velu-api-resp-panel__content {
63
- display: flex;
64
- flex-direction: column;
65
- gap: var(--s1);
66
- padding: var(--s1);
67
- background: var(--page-bg);
68
- }
69
- .velu-api-resp-panel__status {
70
- /* The Callout owns its color; keep the weight regular. */
71
- font-size: var(--f-h6);
72
- }
73
-
74
- /* Body + Header tabs — fixed height, vertically scrollable, so a long
75
- response never makes the panel grow unbounded. */
76
- .velu-api-resp-headers__scroll,
77
- .velu-api-resp-body__scroll {
78
- max-block-size: 15rem;
79
- overflow-y: auto;
80
- }
81
- /* The CodeBlock owns its own border/radius; let it fill the scroll box. */
82
- .velu-api-resp-body__scroll > .velu-code-block {
83
- border: 0;
84
- border-radius: 0;
85
- }
86
-
87
- /* Response headers table — flush rows with hairline dividers. */
88
- .velu-api-resp-headers {
89
- inline-size: 100%;
90
- border-collapse: collapse;
91
- font-size: var(--f-h6);
92
- }
93
- .velu-api-resp-headers tr + tr td {
94
- border-block-start: var(--border-width) solid var(--border-color);
95
- }
96
- .velu-api-resp-headers td {
97
- padding: var(--s-2) var(--s-1);
98
- vertical-align: top;
99
- word-break: break-word;
100
- }
101
- .velu-api-resp-headers__key {
102
- color: var(--muted-color);
103
- font-family: var(--font-mono);
104
- white-space: nowrap;
105
- padding-inline-end: var(--s1) !important;
106
- }
107
- .velu-api-resp-headers__val {
108
- font-family: var(--font-mono);
109
- inline-size: 100%;
110
- }
111
-
112
- /* Editable JSON body in the playground. */
113
- .velu-api-body-input {
114
- inline-size: 100%;
115
- resize: vertical;
116
- padding: var(--s0);
117
- border: var(--border-width) solid var(--border-color);
118
- border-radius: var(--radius-sm);
119
- background: var(--page-bg);
120
- color: var(--text-color);
121
- font-family: var(--font-mono);
122
- font-size: var(--f-h6);
123
- line-height: 1.5;
124
- }
125
-
126
- /* ── Right-rail samples ────────────────────────────────────────────────── */
127
- /* A TOC needs only ~280px, but the request/response code samples were being
128
- cropped in that width. On API pages widen the right rail — both the aside
129
- width AND the centre column's right margin read this one var, so they stay
130
- in sync. (At < 1024px the @container query hides the rail + zeroes the
131
- margin, so this wider value never affects narrow layouts.) */
132
- .velu-docs-layout[data-api='true'] {
133
- --velu-aside-right-width: 28rem; /* 448px */
134
- }
135
-
136
- .velu-api-samples {
137
- display: flex;
138
- flex-direction: column;
139
- gap: var(--s2);
140
- }
141
-
142
- /* Breathing room inside each sample group — the code panels were reading
143
- as cramped against the rail edge. */
144
- .velu-api-samples > * {
145
- margin: 0;
146
- }
147
- .velu-api-samples :is(pre, code) {
148
- font-size: var(--f-h6);
149
- line-height: 1.6;
150
- }
151
-
152
- /* ── Try-It playground modal ───────────────────────────────────────────── */
153
- /* The playground renders above the page on a dimmed, blurred backdrop
154
- rather than inline. */
155
- .velu-api-modal {
156
- position: fixed;
157
- inset: 0;
158
- z-index: 80;
159
- display: flex;
160
- align-items: flex-start;
161
- justify-content: center;
162
- padding: clamp(var(--s1), 6vh, var(--s5)) var(--s2);
163
- overflow-y: auto;
164
- background: color-mix(in srgb, var(--page-bg) 35%, rgba(0, 0, 0, 0.55));
165
- backdrop-filter: blur(6px) saturate(1.1);
166
- -webkit-backdrop-filter: blur(6px) saturate(1.1);
167
- animation: velu-api-modal-in 140ms ease-out;
168
- }
169
- .velu-api-modal__panel {
170
- inline-size: 100%;
171
- max-inline-size: 64rem;
172
- border-radius: var(--radius-md);
173
- box-shadow:
174
- 0 24px 64px -16px rgba(0, 0, 0, 0.45),
175
- 0 8px 24px -12px rgba(0, 0, 0, 0.35);
176
- animation: velu-api-modal-rise 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
177
- }
178
- @keyframes velu-api-modal-in {
179
- from { opacity: 0; }
180
- to { opacity: 1; }
181
- }
182
- @keyframes velu-api-modal-rise {
183
- from { opacity: 0; transform: translateY(8px) scale(0.99); }
184
- to { opacity: 1; transform: none; }
185
- }
186
- @media (prefers-reduced-motion: reduce) {
187
- .velu-api-modal,
188
- .velu-api-modal__panel {
189
- animation: none;
190
- }
191
- }
192
-
193
- /* Compact method pill in the sidebar (replaces the icon for API endpoints). */
194
- .velu-sidebar__method {
195
- flex: none;
196
- font-family: var(--font-mono);
197
- font-size: 0.6rem;
198
- font-weight: var(--weight-bold);
199
- letter-spacing: 0.03em;
200
- padding: 0.18em 0.36em;
201
- border-radius: var(--radius-xs, 4px);
202
- text-transform: uppercase;
203
- }
204
- .velu-sidebar__method.velu-method-badge--get { color: var(--get-pill-color); background: color-mix(in srgb, var(--get-pill-color) 14%, transparent); }
205
- .velu-sidebar__method.velu-method-badge--post { color: var(--post-pill-color); background: color-mix(in srgb, var(--post-pill-color) 14%, transparent); }
206
- .velu-sidebar__method.velu-method-badge--put { color: var(--put-pill-color); background: color-mix(in srgb, var(--put-pill-color) 14%, transparent); }
207
- .velu-sidebar__method.velu-method-badge--patch { color: var(--patch-pill-color); background: color-mix(in srgb, var(--patch-pill-color) 14%, transparent); }
208
- .velu-sidebar__method.velu-method-badge--delete { color: var(--delete-pill-color); background: color-mix(in srgb, var(--delete-pill-color) 14%, transparent); }
1
+ /* Auto-generated OpenAPI reference page. Composes existing API components; this
2
+ only adds the page-level rhythm, the response tabs, and the playground's
3
+ live-response panel + body input. All tokens — light/dark via [data-theme]. */
4
+
5
+ .velu-api-page__title {
6
+ font-size: var(--f-h1);
7
+ font-weight: var(--weight-bold);
8
+ line-height: 1.1;
9
+ letter-spacing: -0.02em;
10
+ margin: 0 0 var(--s1);
11
+ }
12
+ .velu-api-page__lede {
13
+ color: var(--muted-color);
14
+ margin: 0 0 var(--s2);
15
+ }
16
+ .velu-api-page__tryit {
17
+ margin-block: var(--s2);
18
+ }
19
+ .velu-api-page__section {
20
+ margin-block-start: var(--s3);
21
+ }
22
+ .velu-api-page__section > h2 {
23
+ font-size: var(--f-h3);
24
+ font-weight: var(--weight-semibold);
25
+ margin: 0 0 var(--s1);
26
+ }
27
+ .velu-api-page__enum {
28
+ margin-block-start: var(--s-3);
29
+ color: var(--muted-color);
30
+ font-size: var(--f-h6);
31
+ }
32
+ .velu-api-page__enum code {
33
+ margin-inline-end: var(--s-4);
34
+ }
35
+
36
+ /* ── Response sections (doc body) ──────────────────────────────────────── */
37
+ /* One default-open accordion per status; the summary shows a status pill +
38
+ the content-type. */
39
+ .velu-api-resp__head {
40
+ display: inline-flex;
41
+ align-items: baseline;
42
+ gap: var(--s0);
43
+ }
44
+ /* Plain status code — no pill chrome, no per-status color, regular weight. */
45
+ .velu-api-resp__status {
46
+ font-family: var(--font-mono);
47
+ }
48
+ .velu-api-resp__ctype {
49
+ color: var(--muted-color);
50
+ font-family: var(--font-mono);
51
+ font-size: var(--f-h6);
52
+ }
53
+ .velu-api-resp__desc {
54
+ color: var(--muted-color);
55
+ margin: 0 0 var(--s1);
56
+ }
57
+
58
+ /* ── Playground live-response panel (ApiClient aside) ──────────────────── */
59
+ /* A Body / Header tabbed card reusing the CodeGroup tab chrome
60
+ (.velu-code-block__*): Body shows a status-colored callout + the response
61
+ body; Header shows the response headers as a fixed-height scrollable table. */
62
+ .velu-api-resp-panel__content {
63
+ display: flex;
64
+ flex-direction: column;
65
+ gap: var(--s1);
66
+ padding: var(--s1);
67
+ background: var(--page-bg);
68
+ }
69
+ .velu-api-resp-panel__status {
70
+ /* The Callout owns its color; keep the weight regular. */
71
+ font-size: var(--f-h6);
72
+ }
73
+
74
+ /* Body + Header tabs — fixed height, vertically scrollable, so a long
75
+ response never makes the panel grow unbounded. */
76
+ .velu-api-resp-headers__scroll,
77
+ .velu-api-resp-body__scroll {
78
+ max-block-size: 15rem;
79
+ overflow-y: auto;
80
+ }
81
+ /* The CodeBlock owns its own border/radius; let it fill the scroll box. */
82
+ .velu-api-resp-body__scroll > .velu-code-block {
83
+ border: 0;
84
+ border-radius: 0;
85
+ }
86
+
87
+ /* Response headers table — flush rows with hairline dividers. */
88
+ .velu-api-resp-headers {
89
+ inline-size: 100%;
90
+ border-collapse: collapse;
91
+ font-size: var(--f-h6);
92
+ }
93
+ .velu-api-resp-headers tr + tr td {
94
+ border-block-start: var(--border-width) solid var(--border-color);
95
+ }
96
+ .velu-api-resp-headers td {
97
+ padding: var(--s-2) var(--s-1);
98
+ vertical-align: top;
99
+ word-break: break-word;
100
+ }
101
+ .velu-api-resp-headers__key {
102
+ color: var(--muted-color);
103
+ font-family: var(--font-mono);
104
+ white-space: nowrap;
105
+ padding-inline-end: var(--s1) !important;
106
+ }
107
+ .velu-api-resp-headers__val {
108
+ font-family: var(--font-mono);
109
+ inline-size: 100%;
110
+ }
111
+
112
+ /* Editable JSON body in the playground. */
113
+ .velu-api-body-input {
114
+ inline-size: 100%;
115
+ resize: vertical;
116
+ padding: var(--s0);
117
+ border: var(--border-width) solid var(--border-color);
118
+ border-radius: var(--radius-sm);
119
+ background: var(--page-bg);
120
+ color: var(--text-color);
121
+ font-family: var(--font-mono);
122
+ font-size: var(--f-h6);
123
+ line-height: 1.5;
124
+ }
125
+
126
+ /* ── Right-rail samples ────────────────────────────────────────────────── */
127
+ /* A TOC needs only ~280px, but the request/response code samples were being
128
+ cropped in that width. On API pages widen the right rail — both the aside
129
+ width AND the centre column's right margin read this one var, so they stay
130
+ in sync. (At < 1024px the @container query hides the rail + zeroes the
131
+ margin, so this wider value never affects narrow layouts.) */
132
+ .velu-docs-layout[data-api='true'] {
133
+ --velu-aside-right-width: 28rem; /* 448px */
134
+ }
135
+
136
+ .velu-api-samples {
137
+ display: flex;
138
+ flex-direction: column;
139
+ gap: var(--s2);
140
+ }
141
+
142
+ /* Breathing room inside each sample group — the code panels were reading
143
+ as cramped against the rail edge. */
144
+ .velu-api-samples > * {
145
+ margin: 0;
146
+ }
147
+ .velu-api-samples :is(pre, code) {
148
+ font-size: var(--f-h6);
149
+ line-height: 1.6;
150
+ }
151
+
152
+ /* ── Try-It playground modal ───────────────────────────────────────────── */
153
+ /* The playground renders above the page on a dimmed, blurred backdrop
154
+ rather than inline. */
155
+ .velu-api-modal {
156
+ position: fixed;
157
+ inset: 0;
158
+ z-index: 80;
159
+ display: flex;
160
+ align-items: flex-start;
161
+ justify-content: center;
162
+ padding: clamp(var(--s1), 6vh, var(--s5)) var(--s2);
163
+ overflow-y: auto;
164
+ background: color-mix(in srgb, var(--page-bg) 35%, rgba(0, 0, 0, 0.55));
165
+ backdrop-filter: blur(6px) saturate(1.1);
166
+ -webkit-backdrop-filter: blur(6px) saturate(1.1);
167
+ animation: velu-api-modal-in 140ms ease-out;
168
+ }
169
+ .velu-api-modal__panel {
170
+ inline-size: 100%;
171
+ max-inline-size: 64rem;
172
+ border-radius: var(--radius-md);
173
+ box-shadow:
174
+ 0 24px 64px -16px rgba(0, 0, 0, 0.45),
175
+ 0 8px 24px -12px rgba(0, 0, 0, 0.35);
176
+ animation: velu-api-modal-rise 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
177
+ }
178
+ @keyframes velu-api-modal-in {
179
+ from { opacity: 0; }
180
+ to { opacity: 1; }
181
+ }
182
+ @keyframes velu-api-modal-rise {
183
+ from { opacity: 0; transform: translateY(8px) scale(0.99); }
184
+ to { opacity: 1; transform: none; }
185
+ }
186
+ @media (prefers-reduced-motion: reduce) {
187
+ .velu-api-modal,
188
+ .velu-api-modal__panel {
189
+ animation: none;
190
+ }
191
+ }
192
+
193
+ /* Compact method pill in the sidebar (replaces the icon for API endpoints). */
194
+ .velu-sidebar__method {
195
+ flex: none;
196
+ font-family: var(--font-mono);
197
+ font-size: 0.6rem;
198
+ font-weight: var(--weight-bold);
199
+ letter-spacing: 0.03em;
200
+ padding: 0.18em 0.36em;
201
+ border-radius: var(--radius-xs, 4px);
202
+ text-transform: uppercase;
203
+ }
204
+ .velu-sidebar__method.velu-method-badge--get { color: var(--get-pill-color); background: color-mix(in srgb, var(--get-pill-color) 14%, transparent); }
205
+ .velu-sidebar__method.velu-method-badge--post { color: var(--post-pill-color); background: color-mix(in srgb, var(--post-pill-color) 14%, transparent); }
206
+ .velu-sidebar__method.velu-method-badge--put { color: var(--put-pill-color); background: color-mix(in srgb, var(--put-pill-color) 14%, transparent); }
207
+ .velu-sidebar__method.velu-method-badge--patch { color: var(--patch-pill-color); background: color-mix(in srgb, var(--patch-pill-color) 14%, transparent); }
208
+ .velu-sidebar__method.velu-method-badge--delete { color: var(--delete-pill-color); background: color-mix(in srgb, var(--delete-pill-color) 14%, transparent); }