@veluai/velu 0.2.38 → 0.2.39

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 (41) hide show
  1. package/dist/cli.js +38 -38
  2. package/docs/aalam.md +44 -0
  3. package/docs/mintlify-migration.md +8 -3
  4. package/docs/thulir.md +23 -0
  5. package/package.json +4 -2
  6. package/runtime/velu-ui/base.css +9 -0
  7. package/runtime/velu-ui/components/ApiReferencePage.jsx +4 -3
  8. package/runtime/velu-ui/components/ApiSamples.jsx +9 -2
  9. package/runtime/velu-ui/components/Callout.jsx +4 -1
  10. package/runtime/velu-ui/components/PageFooter.jsx +3 -1
  11. package/runtime/velu-ui/components/PageHeader.jsx +7 -1
  12. package/runtime/velu-ui/components/PageNav.jsx +98 -22
  13. package/runtime/velu-ui/components/Sidebar.jsx +21 -9
  14. package/runtime/velu-ui/components/ThemeToggle.jsx +1 -0
  15. package/runtime/velu-ui/components/TocBar.jsx +21 -2
  16. package/runtime/velu-ui/components/VepaFooter.jsx +19 -17
  17. package/runtime/velu-ui/components/api-page.css +6 -3
  18. package/runtime/velu-ui/components/chatbot.css +5 -4
  19. package/runtime/velu-ui/components/docs-layout.css +99 -114
  20. package/runtime/velu-ui/components/page-footer.css +2 -3
  21. package/runtime/velu-ui/components/page-header.css +6 -0
  22. package/runtime/velu-ui/components/page-nav.css +192 -0
  23. package/runtime/velu-ui/components/sidebar.css +5 -13
  24. package/runtime/velu-ui/primitives/switcher.css +4 -0
  25. package/runtime/velu-ui/styles.css +2 -0
  26. package/runtime/velu-ui/themes/aalam.css +266 -0
  27. package/runtime/velu-ui/themes/thulir.css +428 -0
  28. package/schema/velu.schema.json +23 -3
  29. package/src/navigation.js +22 -3
  30. package/src/runtime/App.jsx +171 -106
  31. package/templates/starter/ai-tools/claude-code.mdx +1 -0
  32. package/templates/starter/ai-tools/cursor.mdx +1 -0
  33. package/templates/starter/api-reference/introduction.mdx +1 -0
  34. package/templates/starter/development.mdx +1 -0
  35. package/templates/starter/essentials/code.mdx +1 -0
  36. package/templates/starter/essentials/images.mdx +1 -0
  37. package/templates/starter/essentials/markdown.mdx +1 -0
  38. package/templates/starter/essentials/navigation.mdx +1 -0
  39. package/templates/starter/essentials/settings.mdx +1 -0
  40. package/templates/starter/index.mdx +1 -0
  41. package/templates/starter/quickstart.mdx +1 -0
@@ -0,0 +1,428 @@
1
+ /* Thulir is Velu's independently implemented equivalent of Mintlify's Mint
2
+ theme. Geometry and typography were measured against the npm CLI renderer
3
+ client 0.0.3566; selectors are scoped so migrated custom CSS still wins. */
4
+ :root:has(:is([data-site-theme='thulir'],[data-site-theme='aalam'])),
5
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) {
6
+ --page-bg: #fff;
7
+ --text-color: var(--vepa-gray-700);
8
+ --muted-color: var(--vepa-gray-500);
9
+ --border-color: var(--vepa-gray-200);
10
+ --surface-color: var(--vepa-gray-50);
11
+ --thulir-heading: var(--vepa-gray-900);
12
+ --thulir-hairline: var(--vepa-gray-100);
13
+ --velu-header-height: 7rem;
14
+ --velu-sidebar-width: 20rem;
15
+ --velu-aside-right-width: 24rem;
16
+ --f-h1: 36px;
17
+ --lh-h1: 40px;
18
+ --f-h4: 18px;
19
+ --lh-h4: 28px;
20
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
21
+ font-family: var(--font-sans);
22
+ color: var(--text-color);
23
+ font-size: 16px;
24
+ line-height: 28px;
25
+ -webkit-font-smoothing: antialiased;
26
+ }
27
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) { font-family: inherit; }
28
+ :root[data-theme='dark']:has(:is([data-site-theme='thulir'],[data-site-theme='aalam'])),
29
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) {
30
+ --page-bg: var(--vepa-background-dark);
31
+ --text-color: var(--vepa-gray-400);
32
+ --muted-color: var(--vepa-gray-400);
33
+ --border-color: var(--vepa-gray-800);
34
+ --surface-color: var(--vepa-gray-900);
35
+ --thulir-heading: var(--vepa-gray-200);
36
+ --thulir-hairline: var(--vepa-gray-800);
37
+ }
38
+
39
+ /* 64px top bar + 48px tab strip. */
40
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header {
41
+ padding: 0;
42
+ gap: 0 !important;
43
+ border: 0;
44
+ box-shadow: inset 0 -1px var(--thulir-hairline);
45
+ background: var(--page-bg);
46
+ backdrop-filter: none;
47
+ }
48
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__top {
49
+ position: relative;
50
+ height: 64px;
51
+ padding-inline: 48px;
52
+ grid-template-columns: repeat(3, minmax(0, 1fr));
53
+ gap: 16px;
54
+ }
55
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__top::after {
56
+ content: '';
57
+ position: absolute;
58
+ inset-inline: 48px;
59
+ bottom: 0;
60
+ height: 1px;
61
+ background: color-mix(in srgb, var(--vepa-gray-500) 5%, transparent);
62
+ pointer-events: none;
63
+ }
64
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__top::after {
65
+ background: color-mix(in srgb, var(--vepa-gray-300) 6%, transparent);
66
+ }
67
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__col--center { width: 100%; }
68
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__col--center > * { width: 100%; justify-content: center !important; flex-wrap: nowrap !important; }
69
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__mark { display: none; }
70
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-logo { height: 28px; }
71
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__wordmark {
72
+ color: var(--thulir-heading);
73
+ font-family: inherit;
74
+ font-size: 30px;
75
+ line-height: 36px;
76
+ font-weight: 700;
77
+ letter-spacing: -.025em;
78
+ }
79
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-search__trigger {
80
+ width: min(440px, 100%) !important;
81
+ height: 36px;
82
+ padding: 0 12px 0 14px;
83
+ background: var(--page-bg);
84
+ border-color: var(--thulir-hairline);
85
+ border-radius: 12px;
86
+ font-size: 14px;
87
+ line-height: 24px;
88
+ }
89
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__action {
90
+ padding: 8px 12px;
91
+ border: 0;
92
+ border-radius: 12px;
93
+ font-size: 14px;
94
+ line-height: 20px;
95
+ }
96
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__action--link { padding-inline: 8px; font-weight: 400; }
97
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__action--primary { font-weight: 500; background: var(--thulir-cta-color, var(--accent-color)); padding-right: 8px; gap: 4px; }
98
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__action--primary::after { content: ''; width: 12px; height: 12px; background: currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' d='m9 4 8 8-8 8'/%3E%3C/svg%3E") center / contain no-repeat; }
99
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__actions-list { gap: 24px !important; }
100
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__action--link { padding-inline: 0; }
101
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-search__trigger .velu-search__kbd { border: 0; background: transparent; padding: 0; font: 400 12px/20px var(--font-sans); }
102
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__col--actions { gap: 16px !important; }
103
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-search__trigger { color: var(--muted-color); }
104
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__tabs {
105
+ height: 48px;
106
+ padding-inline: 48px;
107
+ gap: 24px !important;
108
+ }
109
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__tab {
110
+ height: 48px;
111
+ padding: 0;
112
+ border-bottom-width: 1px;
113
+ font-size: 14px;
114
+ line-height: 20px;
115
+ font-weight: 400;
116
+ }
117
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__tab--active { color: var(--thulir-heading); font-weight: 600; }
118
+
119
+ /* Mint's desktop content grid leaves 32px at both viewport edges. */
120
+ @container docs (min-width: 1024px) {
121
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__aside--left {
122
+ display: flex;
123
+ left: 32px;
124
+ top: 112px;
125
+ bottom: 0;
126
+ width: 288px;
127
+ padding: 32px 0 16px;
128
+ transform: none;
129
+ }
130
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__center {
131
+ margin-left: 272px;
132
+ margin-right: 384px;
133
+ min-height: calc(100vh - 112px);
134
+ }
135
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__aside--right {
136
+ display: block;
137
+ top: 112px;
138
+ right: 32px;
139
+ width: 264px;
140
+ padding: 0;
141
+ }
142
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__sidebar-toggle { display: none; }
143
+ }
144
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__main { padding: 44px 4px 0 91.2px; }
145
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__article { max-inline-size: 689px; margin-inline: 0; }
146
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__aside--right .velu-toc { margin-top: 0; }
147
+ [data-site-theme='thulir'] .velu-docs-nav-scroll { scrollbar-width: none; background-image: none; }
148
+ [data-site-theme='thulir'] .velu-docs-nav-scroll::-webkit-scrollbar { display: none; }
149
+
150
+ /* Navigation: 14/24 type, plain group labels, and a rounded active tint. */
151
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-sidebar { margin: 0; width: 256px; }
152
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-sidebar__indicator { inset-inline-end: 0; border-radius: 12px; background: color-mix(in srgb, var(--accent-color) 10%, transparent); }
153
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-sidebar__indicator::before { display: none; }
154
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-sidebar__section,.velu-api-sidebar__section) {
155
+ position: static;
156
+ padding: 0 16px 11px;
157
+ background: transparent;
158
+ color: var(--thulir-heading);
159
+ font: 600 14px/24px var(--font-sans);
160
+ letter-spacing: 0;
161
+ text-transform: none;
162
+ }
163
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-sidebar__section::after { display: none; }
164
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-sidebar__item,.velu-sidebar__subitem,.velu-api-sidebar__item) {
165
+ min-height: 36px;
166
+ padding: 6px 16px;
167
+ border-radius: 12px;
168
+ font: 400 14px/24px var(--font-sans);
169
+ }
170
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-sidebar__item,.velu-api-sidebar__item):hover { background: var(--surface-color); }
171
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-sidebar__item--active,.velu-api-sidebar__item--active) { color: var(--accent-color); font-weight: 600; border: 0; }
172
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-sidebar__list,.velu-api-sidebar__list) { gap: 0 !important; }
173
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-sidebar > sidebar-group { gap: 0 !important; margin-bottom: 28px; }
174
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-sidebar { margin: 0; border: 0; width: 256px; gap: 0 !important; }
175
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-sidebar__list + .velu-api-sidebar__section { margin-top: 28px; }
176
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-sidebar__item--active { background: color-mix(in srgb, var(--accent-color) 10%, transparent); }
177
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-sidebar__item--active .velu-method-badge { color: #fff; background: var(--method-cta); }
178
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-sidebar__label { font: inherit; }
179
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-sidebar__item { gap: 10px; }
180
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-sidebar__item .velu-method-badge { font-size: 9px; line-height: 14px; padding: 0 4px; border: 0; border-radius: 5px; }
181
+
182
+ /* Reading typography and spacing. */
183
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-context-bar { position: relative; min-height: 24px; margin-bottom: 4px; }
184
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-context-bar__eyebrow { color: var(--accent-color); font: 600 14px/20px var(--font-sans); text-transform: none; letter-spacing: 0; align-self: flex-start; }
185
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-context-bar__actions { position: absolute; right: 0; top: 24px; }
186
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-hero { display: flex; flex-direction: column; gap: 8px !important; margin: 0; }
187
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-hero h1 { margin: 0; color: var(--thulir-heading); font: 600 36px/40px var(--font-sans); letter-spacing: -.025em; }
188
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-hero p { margin: 0; color: var(--text-color) !important; font: 400 18px/28px var(--font-sans); }
189
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-hero + .velu-prose { margin-top: 32px; }
190
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-prose { color: var(--text-color); font: 400 16px/28px var(--font-sans); }
191
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-prose > p { margin-block: 20px; max-width: none; }
192
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-prose > :first-child { margin-top: 0; }
193
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-prose :is(h2,h3,h4) { color: var(--thulir-heading); font-family: var(--font-sans); font-weight: 600; }
194
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-prose h2 { margin: 36px 0 18px; font-size: 24px; line-height: 32px; letter-spacing: -.025em; color: #111827; }
195
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-prose > h2 + p { margin-top: 18px; }
196
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-columns,.velu-card-group) { display: grid; grid-template-columns: repeat(var(--vepa-columns,2),minmax(0,1fr)); gap: 16px; margin-block: 28px 24px; }
197
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-card { border-radius: 16px; border-color: color-mix(in srgb, var(--vepa-gray-950) 10%, transparent); }
198
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-card__body { padding: 24px; gap: 4px; }
199
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-card__icon { width: 24px; height: 24px; font-size: 24px; margin-bottom: 4px; }
200
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-card__title { color: var(--thulir-heading); font: 600 16px/24px var(--font-sans); }
201
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-card__text { font: 400 16px/24px var(--font-sans); }
202
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout[data-type='note'] {
203
+ --velu-callout-bg: #eff6ff !important;
204
+ --velu-callout-stroke: #bfdbfe !important;
205
+ color: #1e40af;
206
+ border-radius: 16px;
207
+ padding: 16px 20px;
208
+ font: 400 14px/20px var(--font-sans);
209
+ margin-block: 16px;
210
+ }
211
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout__default-note { display: none; }
212
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout__mint-note { display: inline !important; }
213
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout__icon { height: 20px; line-height: 20px; margin-right: 12px; font-size: 16px; }
214
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout[data-type='note'] { padding-left: 48px; }
215
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout[data-type='note'] .velu-callout__icon { margin-left: -28px; }
216
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .lucide { stroke-width: 2; }
217
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-steps { margin: 40px 0 24px; }
218
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout[data-type='note'] .velu-callout__icon { color: #3564d4; }
219
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step { grid-template-columns: 28px 1fr; column-gap: 16px; }
220
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step__circle { width: 28px; height: 28px; background: var(--surface-color); color: var(--text-color); font-size: 12px; }
221
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step__line { width: 1px; background: var(--border-color); }
222
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step { column-gap: 18px; padding-top: 8px; }
223
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step__title { font: 600 16px/28px var(--font-sans); color: var(--thulir-heading); }
224
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step__body { padding: 20px 0; font: 400 16px/28px var(--font-sans); }
225
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step__line { height: calc(100% - 16px); margin-top: 8px; min-block-size: 0; background: var(--thulir-hairline); }
226
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-feedback { display: none !important; }
227
+
228
+ /* Plain Mint table of contents: title row and links, without Velu's comet. */
229
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-toc { width: 264px; padding-top: 40px; font: 400 14px/24px var(--font-sans); }
230
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-toc > button { display: flex; align-items: center; gap: 8px; padding: 0; border: 0; background: none; color: var(--vepa-gray-600); font: 400 14px/24px var(--font-sans); cursor: pointer; }
231
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-toc > button::before { content: '≡'; color: var(--muted-color); font-size: 15px; font-weight: 400; }
232
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-toc ul { margin: 0; padding: 0; list-style: none; }
233
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-toc ul ul { padding-left: 16px; }
234
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-toc-bar__list::before { display: none; }
235
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-toc-bar__item { border-inline-start: 0; }
236
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-toc a { display: block; padding-block: 4px; color: var(--text-color); text-decoration: none; }
237
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-toc a[aria-current] { color: var(--accent-color); font-weight: 400; text-shadow: -.15px 0 currentColor, .15px 0 currentColor; }
238
+
239
+ /* Mint API pages use a 544px document column and a 448px code rail. */
240
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-api='true'] .velu-docs-layout__center { margin-right: 528px; }
241
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-api='true'] .velu-docs-layout__article { max-inline-size: 544px; }
242
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-api='true'] .velu-hero + .velu-prose { margin-top: 24px; }
243
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-api='true'] .velu-docs-layout__aside--right { right: 32px; width: 448px; padding: 40px 0 24px; }
244
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-samples { min-width: 0; gap: 24px; }
245
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-samples > * { min-width: 0; max-width: 100%; }
246
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-samples :is(pre,code) { font-size: 13px; line-height: 22px; }
247
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-request { border: 1px solid var(--border-color); border-radius: 16px; background: var(--surface-color); overflow: hidden; }
248
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-request__header { display: flex; justify-content: space-between; gap: 12px; padding: 8px 12px; font-size: 12px; line-height: 20px; }
249
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-request__header select { max-width: 45%; color: var(--muted-color); background: transparent; border: 0; font: inherit; }
250
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-request .velu-code-block { border: 0; border-radius: 16px; }
251
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__section { position: relative; margin-block-start: 48px; }
252
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__section > h2 { margin: 0 0 24px; padding-bottom: 12px; border-bottom: 1px solid var(--border-color); font: 600 18px/28px var(--font-sans); }
253
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-responses__status { position: absolute; right: 0; top: 4px; color: var(--muted-color); font-size: 12px; }
254
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__custom-content { margin-block: 32px 48px; }
255
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__inline-samples { display: none; }
256
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it { --try-it-row-min: 16ch; padding: 6px; gap: 8px !important; flex-wrap: nowrap !important; border-radius: 16px; }
257
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it__row { min-width: 0; padding: 8px; }
258
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it__cta { flex: none; padding-inline: 14px; }
259
+
260
+ /* Simple text pagination used by Mint / Thulir (Aalam uses Maple cards). */
261
+ [data-site-theme='thulir'] .velu-pagenav { margin-top: 86px; margin-bottom: 86px; gap: 24px !important; display: flex; flex-wrap: nowrap; padding-inline: 2px; line-height: 20px; }
262
+ [data-site-theme='thulir'] .velu-pagenav__dir { font: 400 12px/20px var(--font-sans); }
263
+ [data-site-theme='thulir'] .velu-pagenav > * { flex: 1 1 0; }
264
+ [data-site-theme='thulir'] .velu-pagenav__card--next { justify-content: flex-end; }
265
+ [data-site-theme='thulir'] .velu-pagenav__card { padding: 0; border: 0; border-radius: 0; flex-direction: row; align-items: center; gap: 10px; font-size: 14px; }
266
+ [data-site-theme='thulir'] .velu-pagenav__title { font-size: 14px; line-height: 20px; font-weight: 600; }
267
+ [data-site-theme='thulir'] .velu-pagenav__dir span { display: none; }
268
+ [data-site-theme='thulir'] .velu-pagenav__card--prev { flex-direction: row-reverse; justify-content: flex-end; }
269
+
270
+ /* Full-width advanced footer. */
271
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) > [data-velu-footer] { margin-inline: 0; }
272
+ .thulir-footer { border-top: 1px solid var(--thulir-hairline); background: var(--page-bg); }
273
+ .thulir-footer__inner { display: flex; flex-direction: column; gap: 48px; max-width: 984px; width: 100%; margin: auto; padding: 112px 32px; }
274
+ .thulir-footer__top { display: flex; justify-content: space-between; gap: 32px; }
275
+ .thulir-footer__brand-column { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; min-width: 192px; gap: 96px; }
276
+ .thulir-footer__brand { color: var(--thulir-heading); text-decoration: none; font: 700 30px/35px var(--font-sans); max-width: 180px; }
277
+ .thulir-footer__columns { display: grid; grid-template-columns: repeat(var(--footer-columns),minmax(0,1fr)); gap: 32px; flex: 1; }
278
+ .thulir-footer__column { display: flex; flex-direction: column; align-items: center; }
279
+ .thulir-footer__links { display: flex; flex-direction: column; gap: 16px; }
280
+ .thulir-footer__heading { margin: 0 0 4px; color: var(--vepa-gray-950); font: 600 14px/20px var(--font-sans); }
281
+ .thulir-footer__link { color: color-mix(in srgb, var(--vepa-gray-950) 50%, transparent); text-decoration: none; font: 400 14px/20px var(--font-sans); }
282
+ .thulir-footer__link:hover { color: var(--text-color); }
283
+ .thulir-footer .velu-socials { gap: 16px !important; }
284
+ .thulir-footer .velu-social { width: 20px; height: 20px; color: var(--muted-color); }
285
+ .thulir-footer .velu-social svg { width: 20px; height: 20px; }
286
+ .thulir-footer__brand-socials { display: none !important; }
287
+ .thulir-footer__mobile-socials { display: none !important; }
288
+ .thulir-footer__brand-mobile-socials { display: none !important; }
289
+ .thulir-footer__end-socials { min-width: 140px; align-self: flex-start; justify-content: flex-end !important; }
290
+ .thulir-footer__divider { height: 1px; background: var(--thulir-hairline); }
291
+ .thulir-footer__bottom { display: flex; align-items: center; justify-content: space-between; }
292
+ .thulir-footer__powered { color: var(--vepa-gray-400); text-decoration: none; font: 400 14px/20px var(--font-sans); }
293
+
294
+ /* Fixed type sizes keep code and parameter chips consistent across widths. */
295
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block { border-radius: 16px; border-color: color-mix(in srgb, var(--vepa-gray-950) 10%, transparent); }
296
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block :is(pre,code) { font: 400 14px/24px var(--font-mono); }
297
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block__body { padding: 16px; border-radius: 16px; }
298
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block__copy { border: 0; background: transparent; width: 24px; height: 24px; top: 12px; right: 12px; }
299
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block__header { height: 36px; padding: 0 12px; align-items: stretch; }
300
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block__tabs { gap: 16px; }
301
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block__tab { padding: 0 6px; border-radius: 0; font: 400 12px/20px var(--font-sans); height: 36px; }
302
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block__tab-icon { display: none; }
303
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block__tab--active { color: var(--accent-color); background: transparent; border-bottom: 1px solid var(--accent-color); }
304
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-samples :is(pre,code) { font: 400 12px/21.6px var(--font-mono); }
305
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-samples .velu-code-block__body { padding: 14px 18px; }
306
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block { --syntax-string: #0a3069; --syntax-property: #116329; --syntax-keyword: #cf222e; --syntax-number: #0550ae; --syntax-punctuation: #1f2328; }
307
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block .token.property { color: var(--syntax-property); }
308
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__tryit { margin-block: 24px 32px; }
309
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it__row { height: 38px; padding: 6px; border-radius: 12px; }
310
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it__cta { height: 36px; min-height: 36px; padding: 0 12px; border-radius: 12px; font: 600 16px/24px var(--font-sans); }
311
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it__copy { visibility: hidden; }
312
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it:hover .velu-try-it__copy,
313
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it:focus-within .velu-try-it__copy { visibility: visible; }
314
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-try-it .velu-method-badge { font: 700 14px/20px var(--font-sans); border: 0; padding: 2px 6px; border-radius: 6px; }
315
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__section > h2 { font-weight: 600; letter-spacing: 0; color: #111827; border-color: var(--thulir-hairline); }
316
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__section { margin-top: 48.8px; }
317
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__section + .velu-api-page__section { margin-top: 50.8px; }
318
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__section > h2 { line-height: 27px; padding-bottom: 10px; margin-bottom: 42px; }
319
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__section:has(.velu-vepa-responses) > h2 { margin-bottom: 16px; }
320
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field > .velu-cluster { gap: 8px !important; }
321
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field__name { font: 600 14px/24px var(--font-mono); }
322
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-field__chip,.velu-field__required) { font: 400 12px/16px var(--font-mono); padding-inline: 8px; border-radius: 6px; }
323
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field__chip { background: #f9f9f9; color: #525252; }
324
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field__required { background: #fff1f2; color: #ff0000; }
325
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field + .velu-field { margin-top: 24px; padding-top: 24px; border-color: var(--thulir-hairline); }
326
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field__body:empty { display: none; }
327
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-vepa-responses > section > p { font: 400 14px/24px var(--font-sans); margin: 0 0 34px; }
328
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-api='true'] .velu-pagenav { margin-bottom: 78px; }
329
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-body-type { position: absolute; right: 8px; top: 4px; font: 400 12px/20px var(--font-mono); }
330
+
331
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-prose h2,.velu-card__title,.velu-api-page__section > h2,.thulir-footer__heading) { color: #fff; }
332
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-card { border-color: #ffffff1a; }
333
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout[data-type='note'] { --velu-callout-bg: #2563eb33 !important; --velu-callout-stroke: #1e3a8a !important; color: #93c5fd; }
334
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-callout[data-type='note'] .velu-callout__icon { color: #93c5fd; }
335
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-step__circle { background: var(--vepa-gray-800); color: #fff; }
336
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-code-block { --syntax-string: #ce9178; --syntax-property: #9cdcfe; --syntax-keyword: #569cd6; --syntax-number: #b5cea8; --syntax-punctuation: #d4d4d4; }
337
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field__chip { background: #ffffff0d; color: #a3a3a3; }
338
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-field__required { background: #fb71851a; color: #f87171; }
339
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .thulir-footer__link { color: #ffffff80; }
340
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) .thulir-footer__powered { color: var(--vepa-gray-500); }
341
+ [data-theme='dark'] :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.thulir-footer__divider,.velu-header) { --thulir-hairline: #ffffff0d; }
342
+
343
+ @container docs (min-width: 1024px) {
344
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__actions-list { display: flex; }
345
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__kebab { display: none; }
346
+ }
347
+
348
+ @container docs (max-width: 1279px) {
349
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__aside--right { display: none; }
350
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__center,
351
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-api='true'] .velu-docs-layout__center { margin-right: 32px; }
352
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-toc-bar { display: block; background: var(--page-bg); border-bottom: 1px solid var(--thulir-hairline); margin-bottom: 8px; }
353
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-toc-bar__toggle { padding: 12px 20px; font-size: 14px; }
354
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-toc-bar__list { padding-inline: 20px; max-height: calc(100dvh - var(--velu-header-height) - 64px); overflow-y: auto; overscroll-behavior: contain; }
355
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-api-page__inline-samples { display: block; margin-block: 24px 56px; }
356
+ }
357
+ @container docs (max-width: 1023px) {
358
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) { --velu-header-height: 7.5rem; }
359
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header { position: fixed; width: 100%; }
360
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__top { grid-template-columns: minmax(0,1fr) auto auto; height: 64px; padding-inline: 16px; gap: 12px !important; }
361
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__top::after { inset-inline: 16px; }
362
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__wordmark { font-size: 24px; line-height: 30px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
363
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__col--center { width: auto; }
364
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__actions-list { display: none; }
365
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__col--actions > .velu-theme-menu { display: none; }
366
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__tabs { height: 56px; padding-inline: 16px; overflow-x: auto; gap: 24px !important; }
367
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__tab { display: inline-flex; flex: none; height: 56px; }
368
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__menu { display: inline-flex; flex: none; order: -1; margin-inline: 0; }
369
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__sidebar-toggle { display: none; }
370
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__aside--left {
371
+ display: flex; inset: 0 auto 0 0; inline-size: min(360px, 90vw); width: min(360px, 90vw);
372
+ padding: 16px 0; background: var(--page-bg); z-index: 35; overflow: hidden;
373
+ transform: translateX(-100%); visibility: hidden;
374
+ }
375
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-drawer-open='true'] .velu-docs-layout__aside--left { transform: none; visibility: visible; box-shadow: 16px 0 32px #0002; }
376
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__aside--left > * { opacity: 1; pointer-events: auto; }
377
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__drawer-head { display: flex; align-items: center; gap: 8px; padding-inline: 16px; }
378
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__drawer-brand { min-width: 0; flex: 1; }
379
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__drawer-head :is(.velu-theme-menu,.velu-docs-layout__drawer-close) { flex: none; }
380
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__drawer-close { width: 36px; height: 36px; }
381
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__drawer-docselect { display: block; margin-inline: 16px; align-self: stretch; }
382
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__scrim { display: block; }
383
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-drawer-open='true'] .velu-docs-layout__scrim { opacity: 1; visibility: visible; pointer-events: auto; }
384
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-nav-scroll { overscroll-behavior: contain; }
385
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-nav-scroll :is(.velu-sidebar,.velu-api-sidebar) { width: 100%; padding-inline: 16px; box-sizing: border-box; }
386
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-nav-scroll :is(.velu-sidebar__section,.velu-api-sidebar__section) { padding: 8px 0; color: var(--thulir-heading); font-weight: 650; }
387
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-nav-scroll :is(.velu-sidebar__list,.velu-api-sidebar__list) { margin-inline-start: 8px; padding-inline-start: 8px; border-inline-start: 0; }
388
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-nav-scroll .velu-sidebar__sublist { margin-inline-start: 16px; padding-inline-start: 8px; border-inline-start: 0; }
389
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__drawer-docselect > label { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 600; color: var(--muted-color); }
390
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__drawer-docselect { z-index: 10; }
391
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-nav-scroll .velu-sidebar__indicator { display: none; }
392
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-nav-scroll .velu-sidebar__item--active { background: color-mix(in srgb, var(--accent-color) 10%, transparent); }
393
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__center,
394
+ :is([data-site-theme='thulir'],[data-site-theme='aalam'])[data-api='true'] .velu-docs-layout__center { margin-inline: 0; padding-top: 120px; min-height: 100vh; }
395
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__main { padding: 44px 20px 0; }
396
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__article { max-inline-size: 728px; margin-inline: auto; }
397
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) > [data-velu-footer] { margin-inline: 0; }
398
+ .thulir-footer__inner { padding-block: 80px; }
399
+ }
400
+
401
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) [data-component='tabs'] { min-width: 0; margin-block: 24px; }
402
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) [data-component='tabs'] > [role='tablist'] { overflow-x: auto; scrollbar-width: thin; }
403
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) [data-component='tabs'] > [role='tablist'] > [role='tab'] { flex: none; white-space: nowrap; background: transparent; color: var(--muted-color); border: 0; border-bottom: 2px solid transparent; font: inherit; font-size: 14px; cursor: pointer; }
404
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) [data-component='tabs'] > [role='tablist'] > [aria-selected='true'] { color: var(--accent-color); border-bottom-color: currentColor; }
405
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) [data-component='tabs'] > [role='tabpanel'] { padding-top: 16px; min-width: 0; }
406
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) [data-component='tabs'] [role='tab']:focus-visible { outline: 2px solid var(--accent-color); outline-offset: -2px; }
407
+ @container docs (max-width: 640px) {
408
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__top { display: grid; }
409
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__tabs > .velu-header__tab { display: none; }
410
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__crumbs { display: flex; max-inline-size: none; font: 400 14px/20px var(--font-sans); color: var(--muted-color); }
411
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__crumb--current { font-weight: 500; color: var(--thulir-heading); }
412
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__crumb-sep { margin-inline: 12px; }
413
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__tabs { gap: 12px !important; }
414
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-header__menu { display: inline-flex; order: -1; margin-inline: 0; }
415
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-docs-layout__main { padding-inline: 20px; }
416
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-hero h1 { font-size: 30px; line-height: 36px; }
417
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) .velu-pagenav { margin-bottom: 78px; }
418
+ :is([data-site-theme='thulir'],[data-site-theme='aalam']) :is(.velu-columns,.velu-card-group) { grid-template-columns: 1fr; }
419
+ .thulir-footer__inner { padding-block: 64px; }
420
+ .thulir-footer__top { flex-direction: column; }
421
+ .thulir-footer__brand-column { flex-direction: row; align-items: center; gap: 0; min-width: 0; }
422
+ .thulir-footer__brand { font-size: 24px; line-height: 30px; max-width: 192px; letter-spacing: -.025em; }
423
+ .thulir-footer__brand-mobile-socials { display: flex !important; min-width: 140px; justify-content: flex-end !important; }
424
+ .thulir-footer__columns { display: flex; flex-direction: column; gap: 32px; }
425
+ .thulir-footer__column { align-items: flex-start; }
426
+ .thulir-footer__end-socials { display: none !important; }
427
+ .thulir-footer__mobile-socials { display: flex !important; }
428
+ }
@@ -9,8 +9,8 @@
9
9
  "properties": {
10
10
  "theme": {
11
11
  "type": "string",
12
- "enum": ["velu", "vepa"],
13
- "description": "Visual preset. Vepa follows the Mintlify Sequoia layout; light/dark preference is independent. Defaults to velu."
12
+ "enum": ["velu", "vepa", "thulir", "aalam"],
13
+ "description": "Visual preset. Vepa follows Mintlify Sequoia, Thulir follows Mintlify Mint, and Aalam follows Mintlify Maple; light/dark preference is independent. Defaults to velu."
14
14
  },
15
15
  "$schema": {
16
16
  "type": "string",
@@ -283,14 +283,34 @@
283
283
  },
284
284
  "pages": {
285
285
  "type": "array",
286
- "description": "Ordered list of page paths (no extension, relative to the project root) and/or nested groups.",
286
+ "description": "Ordered list of page paths (no extension, relative to the project root), page objects with optional icons, and/or nested groups.",
287
287
  "items": {
288
288
  "oneOf": [
289
289
  { "type": "string" },
290
+ { "$ref": "#/$defs/pageEntry" },
290
291
  { "$ref": "#/$defs/group" }
291
292
  ]
292
293
  }
293
294
  },
295
+ "pageEntry": {
296
+ "type": "object",
297
+ "additionalProperties": false,
298
+ "required": ["page"],
299
+ "properties": {
300
+ "page": {
301
+ "type": "string",
302
+ "description": "Page path without extension, relative to the project root."
303
+ },
304
+ "icon": {
305
+ "type": "string",
306
+ "description": "Lucide icon id shown beside the page in the sidebar."
307
+ },
308
+ "title": {
309
+ "type": "string",
310
+ "description": "Optional sidebar label override (otherwise frontmatter title)."
311
+ }
312
+ }
313
+ },
294
314
  "group": {
295
315
  "type": "object",
296
316
  "additionalProperties": false,
package/src/navigation.js CHANGED
@@ -187,12 +187,20 @@ function normalizeGroup(g) {
187
187
  }
188
188
 
189
189
  /** A `pages[]` entry is a string (page path), a generated OpenAPI page
190
- * ({ apiPage, label, method }), or a nested group. */
190
+ * ({ apiPage, label, method }), a page object ({ page, icon? }), or a
191
+ * nested group. Page icons also come from MDX frontmatter `icon`. */
191
192
  function normalizePageEntry(entry) {
192
193
  if (typeof entry === 'string') return { kind: 'page', pagePath: entry };
193
194
  if (entry && entry.apiPage) {
194
195
  return { kind: 'page', pagePath: entry.apiPage, label: entry.label, method: entry.method, api: true };
195
196
  }
197
+ // Mintlify / Velu page object: { page: "path", icon?: "rocket", ... }
198
+ if (entry && typeof entry.page === 'string') {
199
+ const node = { kind: 'page', pagePath: entry.page };
200
+ if (entry.icon) node.icon = entry.icon;
201
+ if (entry.title || entry.label) node.label = entry.title ?? entry.label;
202
+ return node;
203
+ }
196
204
  return normalizeGroup(entry);
197
205
  }
198
206
 
@@ -392,13 +400,18 @@ function sidebarSectionsHaveApi(sections) {
392
400
  }
393
401
 
394
402
  /** Flatten sidebar sections (incl. nested groups) to an ordered list of
395
- * page links {label, href} — the page reading order for prev/next. */
403
+ * page links {label, href, description?} — the page reading order for
404
+ * prev/next. */
396
405
  function flattenSidebar(sections) {
397
406
  const out = [];
398
407
  const walk = (items) => {
399
408
  for (const it of items) {
400
409
  if (it.items) walk(it.items);
401
- else out.push({ label: it.label, href: it.href });
410
+ else {
411
+ const page = { label: it.label, href: it.href };
412
+ if (it.description) page.description = it.description;
413
+ out.push(page);
414
+ }
402
415
  }
403
416
  };
404
417
  for (const s of sections) walk(s.items);
@@ -454,6 +467,12 @@ function itemFor(pageNode, pagesMap, ctx) {
454
467
  // method badge); normal pages source their label from frontmatter.
455
468
  const label = pageNode.label ?? fm?.sidebarTitle ?? fm?.title ?? titleCase(lastSeg(href));
456
469
  const item = { label, href };
470
+ const icon = pageNode.icon ?? fm?.icon;
471
+ if (icon) item.icon = icon;
472
+ const description = fm?.description;
473
+ if (typeof description === 'string' && description.trim()) {
474
+ item.description = description.trim();
475
+ }
457
476
  const method = pageNode.method ?? pagesMap[href]?.operation?.method;
458
477
  if (method) item.method = method;
459
478
  return item;