@veluai/velu 0.2.37 → 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 (44) hide show
  1. package/dist/cli.js +41 -41
  2. package/docs/aalam.md +44 -0
  3. package/docs/mintlify-migration.md +8 -3
  4. package/docs/thulir.md +23 -0
  5. package/docs/vepa.md +2 -1
  6. package/package.json +4 -2
  7. package/runtime/velu-ui/base.css +9 -0
  8. package/runtime/velu-ui/components/ApiReferencePage.jsx +4 -3
  9. package/runtime/velu-ui/components/ApiSamples.jsx +9 -2
  10. package/runtime/velu-ui/components/Callout.jsx +4 -1
  11. package/runtime/velu-ui/components/PageFooter.jsx +3 -1
  12. package/runtime/velu-ui/components/PageHeader.jsx +7 -1
  13. package/runtime/velu-ui/components/PageNav.jsx +98 -22
  14. package/runtime/velu-ui/components/Sidebar.jsx +21 -9
  15. package/runtime/velu-ui/components/ThemeToggle.jsx +1 -0
  16. package/runtime/velu-ui/components/TocBar.jsx +21 -2
  17. package/runtime/velu-ui/components/Update.jsx +22 -10
  18. package/runtime/velu-ui/components/VepaFooter.jsx +19 -17
  19. package/runtime/velu-ui/components/api-page.css +6 -3
  20. package/runtime/velu-ui/components/chatbot.css +5 -4
  21. package/runtime/velu-ui/components/docs-layout.css +99 -114
  22. package/runtime/velu-ui/components/page-footer.css +2 -3
  23. package/runtime/velu-ui/components/page-header.css +6 -0
  24. package/runtime/velu-ui/components/page-nav.css +192 -0
  25. package/runtime/velu-ui/components/sidebar.css +5 -13
  26. package/runtime/velu-ui/primitives/switcher.css +4 -0
  27. package/runtime/velu-ui/styles.css +2 -0
  28. package/runtime/velu-ui/themes/aalam.css +266 -0
  29. package/runtime/velu-ui/themes/thulir.css +428 -0
  30. package/runtime/velu-ui/themes/vepa.css +142 -10
  31. package/schema/velu.schema.json +23 -3
  32. package/src/navigation.js +22 -3
  33. package/src/runtime/App.jsx +182 -107
  34. package/templates/starter/ai-tools/claude-code.mdx +1 -0
  35. package/templates/starter/ai-tools/cursor.mdx +1 -0
  36. package/templates/starter/api-reference/introduction.mdx +1 -0
  37. package/templates/starter/development.mdx +1 -0
  38. package/templates/starter/essentials/code.mdx +1 -0
  39. package/templates/starter/essentials/images.mdx +1 -0
  40. package/templates/starter/essentials/markdown.mdx +1 -0
  41. package/templates/starter/essentials/navigation.mdx +1 -0
  42. package/templates/starter/essentials/settings.mdx +1 -0
  43. package/templates/starter/index.mdx +1 -0
  44. package/templates/starter/quickstart.mdx +1 -0
@@ -79,29 +79,21 @@
79
79
  letter-spacing: 0.02em;
80
80
  text-transform: uppercase;
81
81
  }
82
- /* Fade zone just below the pinned heading: a gradient overlay
83
- (page-bg transparent) that sits directly under the sticky header
84
- and scrolls with it. Items sliding up pass behind it and fade out
85
- before they tuck under the (crisp) heading. Absolutely positioned
86
- so it adds no resting layout space; pointer-events:none so it never
87
- eats clicks. Hidden by default — only shown once the nav is actually
88
- scrolled (the layout toggles it via data-fade-top on the scroll
89
- region), so a section's first item isn't faded at rest. */
82
+ /* Softly cover rows as they pass beneath a pinned section label. The fade
83
+ derives from the sidebar surface so project CSS that recolors #sidebar also
84
+ recolors the sticky chrome. */
90
85
  .velu-sidebar__section::after {
91
86
  content: '';
92
87
  position: absolute;
93
88
  inset-inline: 0;
94
89
  inset-block-start: 100%;
95
- block-size: var(--s3);
90
+ block-size: var(--s-2);
91
+ pointer-events: none;
96
92
  background: linear-gradient(
97
93
  to bottom,
98
- var(--velu-sidebar-bg, var(--page-bg)),
99
94
  color-mix(in srgb, var(--velu-sidebar-bg, var(--page-bg)) 55%, transparent),
100
95
  transparent
101
96
  );
102
- pointer-events: none;
103
- opacity: 0;
104
- transition: opacity 0.15s ease;
105
97
  }
106
98
  /* When a heading becomes the newly-pinned one (data-stuck set by the
107
99
  runtime as you scroll past sections), fade + slide it in so the
@@ -13,6 +13,10 @@
13
13
  own lines (vertical). No media query. */
14
14
  .velu-switcher > * {
15
15
  flex-grow: 1;
16
+ /* Flex default `min-width: auto` refuses to shrink below content
17
+ size and can force the row (then the page) wider than the
18
+ viewport — the classic sticky-header horizontal-slide bug. */
19
+ min-inline-size: 0;
16
20
  flex-basis: calc(
17
21
  (var(--switcher-threshold, var(--measure)) - 100%) * 999
18
22
  );
@@ -64,3 +64,5 @@
64
64
  @import './components/toc-bar.css' layer(velu);
65
65
  @import './components/search.css' layer(velu);
66
66
  @import './themes/vepa.css' layer(velu);
67
+ @import './themes/thulir.css' layer(velu);
68
+ @import './themes/aalam.css' layer(velu);
@@ -0,0 +1,266 @@
1
+ /* Aalam: Maple layout. Desktop left column is one overflow-y-auto
2
+ scroller (logo, theme, search, anchors, groups) with a stable gutter. */
3
+ @container docs (min-width: 1024px) {
4
+ [data-site-theme='aalam'] { --velu-header-height: 48px; --velu-sidebar-width: 19rem; }
5
+ [data-site-theme='aalam'] .velu-header { position: fixed; top: 0; left: 19rem; width: calc(100% - 19rem); height: 48px; }
6
+ [data-site-theme='aalam'] .velu-header::before { content: ''; position: fixed; left: calc(19rem - 1px); top: 0; bottom: 0; width: 1px; background: var(--border-color); pointer-events: none; z-index: 1; }
7
+ [data-site-theme='aalam'] .velu-header__top { display: none; }
8
+ [data-site-theme='aalam'] .velu-header__tabs { height: 48px; padding-inline: 48px; }
9
+ [data-site-theme='aalam'] .velu-header__tab { height: 48px; }
10
+ [data-site-theme='aalam'] .velu-docs-layout__aside--left {
11
+ left: 0; top: 0; bottom: 0; width: 19rem;
12
+ padding: 0; border-right: 1px solid var(--border-color);
13
+ }
14
+ [data-site-theme='aalam'] .velu-docs-aside-stack {
15
+ overflow-y: auto;
16
+ overflow-x: hidden;
17
+ scrollbar-gutter: stable;
18
+ padding: 24px 28px;
19
+ gap: 0 !important;
20
+ scrollbar-width: thin;
21
+ scrollbar-color: rgb(0 0 0 / 0.15) transparent;
22
+ }
23
+ [data-theme='dark'] [data-site-theme='aalam'] .velu-docs-aside-stack {
24
+ scrollbar-color: rgb(255 255 255 / 0.2) transparent;
25
+ }
26
+ [data-site-theme='aalam'] .velu-docs-aside-stack::-webkit-scrollbar { width: 10px; }
27
+ [data-site-theme='aalam'] .velu-docs-aside-stack::-webkit-scrollbar-thumb {
28
+ background: rgb(0 0 0 / 0.15);
29
+ border-radius: 8px;
30
+ }
31
+ [data-theme='dark'] [data-site-theme='aalam'] .velu-docs-aside-stack::-webkit-scrollbar-thumb {
32
+ background: rgb(255 255 255 / 0.2);
33
+ }
34
+ [data-site-theme='aalam'] .velu-docs-nav-region { flex: none; min-block-size: 0; }
35
+ [data-site-theme='aalam'] .velu-docs-nav-scroll {
36
+ overflow: visible;
37
+ flex: none;
38
+ background-image: none;
39
+ scrollbar-width: auto;
40
+ }
41
+ [data-site-theme='aalam'] .velu-docs-nav-scroll::-webkit-scrollbar { display: unset; width: 0; height: 0; }
42
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head {
43
+ display: flex;
44
+ align-items: flex-start;
45
+ justify-content: space-between;
46
+ gap: 8px;
47
+ padding: 0;
48
+ }
49
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-close { display: none; }
50
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-brand {
51
+ display: block;
52
+ flex: none;
53
+ max-width: 12rem;
54
+ }
55
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-brand .velu-header__mark { display: none; }
56
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-brand .velu-header__wordmark {
57
+ display: block;
58
+ font-size: 30px;
59
+ line-height: 1.15;
60
+ font-weight: 700;
61
+ letter-spacing: -0.025em;
62
+ }
63
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle {
64
+ flex: none;
65
+ width: 3.25rem;
66
+ height: 1.75rem;
67
+ padding: 4px;
68
+ border-radius: 999px;
69
+ background: transparent;
70
+ }
71
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle::after {
72
+ content: '';
73
+ position: absolute;
74
+ top: 4px;
75
+ left: 4px;
76
+ width: 20px;
77
+ height: 20px;
78
+ border-radius: 50%;
79
+ background: color-mix(in srgb, var(--text-color) 10%, transparent);
80
+ transition: transform 0.2s ease;
81
+ pointer-events: none;
82
+ }
83
+ [data-theme='dark'] [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle::after {
84
+ transform: translateX(1.4rem);
85
+ background: var(--page-bg);
86
+ }
87
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle__icon {
88
+ position: absolute;
89
+ top: 50%;
90
+ width: 12px;
91
+ height: 12px;
92
+ margin: -6px 0 0;
93
+ opacity: 1 !important;
94
+ transform: none !important;
95
+ z-index: 1;
96
+ }
97
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle__icon--sun {
98
+ left: 8px;
99
+ inset-inline-start: 8px;
100
+ color: var(--muted-color);
101
+ }
102
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle__icon--moon {
103
+ left: auto;
104
+ right: 8px;
105
+ inset-inline-start: auto;
106
+ inset-inline-end: 8px;
107
+ color: var(--muted-color);
108
+ }
109
+ [data-site-theme='aalam'] .velu-docs-aside-product,
110
+ [data-site-theme='aalam'] .velu-docs-aside-search { display: block; margin-top: 24px; width: 100%; }
111
+ [data-site-theme='aalam'] .velu-docs-aside-product + .velu-docs-aside-search { margin-top: 16px; }
112
+ [data-site-theme='aalam'] .velu-docs-aside-search .velu-search__trigger,
113
+ [data-site-theme='aalam'] .velu-docs-aside-search #search-bar-entry-sidebar { width: 100% !important; }
114
+ [data-site-theme='aalam'] .velu-sidebar { width: 100%; margin: 0; }
115
+ [data-site-theme='aalam'] .velu-docs-layout__center { margin-left: 19rem; margin-right: 312px; padding-top: 48px; }
116
+ [data-site-theme='aalam'] .velu-docs-layout__main { padding: 44px 32px 0; }
117
+ [data-site-theme='aalam'] .velu-docs-layout__article { max-inline-size: 576px; margin-inline: auto; }
118
+ [data-site-theme='aalam'] .velu-docs-layout__aside--right { top: 48px; right: 32px; width: 272px; }
119
+ [data-site-theme='aalam'] .velu-vepa-toc { padding-top: 40px; }
120
+ [data-site-theme='aalam'] > [data-velu-footer] { margin-left: 19rem; }
121
+ }
122
+ @container docs (min-width: 1024px) and (max-width: 1279px) {
123
+ [data-site-theme='aalam'] .velu-docs-layout__center { margin-right: 0; }
124
+ [data-site-theme='aalam'] .velu-toc-bar { inset-block-start: 48px; }
125
+ }
126
+ [data-site-theme='aalam'] .velu-docs-aside-product .velu-nav-select { display: block; width: 100%; }
127
+ [data-site-theme='aalam'] .velu-docs-aside-product .velu-nav-select__btn {
128
+ min-height: 32px;
129
+ height: 32px;
130
+ padding: 6px 10px;
131
+ border: 0;
132
+ border-radius: 12px;
133
+ font-size: 14px;
134
+ font-weight: 500;
135
+ line-height: 20px;
136
+ background: color-mix(in srgb, var(--text-color) 5%, transparent);
137
+ }
138
+ [data-site-theme='aalam'] .velu-docs-aside-product .velu-nav-select__btn:hover {
139
+ background: color-mix(in srgb, var(--text-color) 8%, transparent);
140
+ }
141
+ [data-site-theme='aalam'] .velu-docs-aside-footer {
142
+ flex: none;
143
+ position: relative;
144
+ z-index: 2;
145
+ width: 100%;
146
+ padding: 12px 16px;
147
+ border-top: 1px solid var(--border-color);
148
+ background: var(--page-bg);
149
+ }
150
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select { display: block; width: 100%; }
151
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select__btn {
152
+ min-height: 32px;
153
+ height: 32px;
154
+ padding: 6px 10px;
155
+ border: 0;
156
+ border-radius: 8px;
157
+ font-size: 14px;
158
+ font-weight: 500;
159
+ line-height: 20px;
160
+ background: transparent;
161
+ }
162
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select__btn:hover {
163
+ background: color-mix(in srgb, var(--text-color) 5%, transparent);
164
+ }
165
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select__menu {
166
+ inset-block-start: auto;
167
+ inset-block-end: calc(100% + 4px);
168
+ }
169
+ [data-site-theme='aalam'] .velu-sidebar__indicator { display: none; }
170
+ [data-site-theme='aalam'] .velu-sidebar__section {
171
+ position: static;
172
+ font-weight: 500;
173
+ padding: 0 0 10px 16px;
174
+ font: 500 14px/20px var(--font-sans);
175
+ color: var(--thulir-heading);
176
+ text-transform: none;
177
+ letter-spacing: 0;
178
+ background: transparent;
179
+ }
180
+ [data-site-theme='aalam'] .velu-sidebar__section::after { display: none; }
181
+ [data-site-theme='aalam'] .velu-sidebar__icon { inline-size: 16px; block-size: 16px; }
182
+ [data-site-theme='aalam'] .velu-sidebar__section .velu-sidebar__icon { inline-size: 14px; block-size: 14px; }
183
+ [data-site-theme='aalam'] .velu-sidebar__item,
184
+ [data-site-theme='aalam'] .velu-sidebar__subitem,
185
+ [data-site-theme='aalam'] .velu-api-sidebar__item {
186
+ min-height: 0;
187
+ margin-inline-start: 16px;
188
+ padding: 6px 12px 6px 16px;
189
+ width: calc(100% - 1rem);
190
+ box-sizing: border-box;
191
+ border-radius: 0;
192
+ border-left: 1px solid color-mix(in srgb, var(--text-color) 5%, transparent);
193
+ gap: 12px;
194
+ font: 400 14px/20px var(--font-sans);
195
+ background: transparent;
196
+ }
197
+ [data-site-theme='aalam'] :is(.velu-sidebar__item,.velu-api-sidebar__item):hover {
198
+ background: transparent;
199
+ border-left-color: color-mix(in srgb, var(--text-color) 20%, transparent);
200
+ color: var(--thulir-heading);
201
+ }
202
+ [data-site-theme='aalam'] :is(.velu-sidebar__item--active,.velu-api-sidebar__item--active) {
203
+ background: transparent;
204
+ color: var(--accent-color);
205
+ border-left-color: var(--accent-color);
206
+ font-weight: 500;
207
+ }
208
+ [data-site-theme='aalam'] .velu-sidebar__list,
209
+ [data-site-theme='aalam'] .velu-api-sidebar__list {
210
+ margin: 0 !important;
211
+ padding: 0 !important;
212
+ border: 0;
213
+ }
214
+ [data-site-theme='aalam'] .velu-sidebar > sidebar-group { margin-bottom: 0; margin-top: 32px; }
215
+ [data-site-theme='aalam'] .velu-api-sidebar {
216
+ width: 100%;
217
+ margin: 32px 0 0;
218
+ gap: 0 !important;
219
+ }
220
+ [data-site-theme='aalam'] .velu-api-sidebar__section {
221
+ position: static;
222
+ padding: 0 0 10px 16px;
223
+ font: 500 14px/20px var(--font-sans);
224
+ color: var(--thulir-heading);
225
+ text-transform: none;
226
+ letter-spacing: 0;
227
+ background: transparent;
228
+ }
229
+ [data-site-theme='aalam'] .velu-api-sidebar__list + .velu-api-sidebar__section {
230
+ margin-top: 32px;
231
+ }
232
+ [data-site-theme='aalam'] .velu-docs-anchors {
233
+ margin-top: 32px;
234
+ gap: 0;
235
+ padding: 0;
236
+ }
237
+ [data-site-theme='aalam'] .velu-docs-anchors__link {
238
+ padding-left: 16px;
239
+ margin-bottom: 12px;
240
+ gap: 14px;
241
+ font: 400 14px/24px var(--font-sans);
242
+ color: var(--text-color);
243
+ }
244
+ [data-site-theme='aalam'] .velu-docs-anchors__link:hover { color: var(--thulir-heading); }
245
+ [data-site-theme='aalam'] .velu-docs-anchors__icon { color: var(--muted-color); }
246
+ [data-site-theme='aalam'] .velu-docs-anchors__icon svg { width: 16px; height: 16px; }
247
+ [data-site-theme='aalam'] .velu-hero { margin-bottom: 32px; }
248
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme { display: flex; flex: none; align-items: center; gap: 0; padding: 3px; border: 1px solid var(--border-color); border-radius: 999px; }
249
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme button { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; color: var(--muted-color); background: transparent; cursor: pointer; }
250
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme button[aria-pressed='true'] { background: var(--surface-color); color: var(--text-color); }
251
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme svg { width: 12px; height: 12px; }
252
+ @container docs (max-width: 1023px) {
253
+ [data-site-theme='aalam'] .velu-header__col--actions > .vepa-footer-theme { display: none; }
254
+ [data-site-theme='aalam'] .velu-docs-aside-search { display: none; }
255
+ [data-site-theme='aalam'] .velu-docs-aside-product { margin: 16px 16px 0; }
256
+ }
257
+
258
+ /* Maple-style previous/next — tray chrome lives in page-nav.css;
259
+ theme only owns spacing against the article column. */
260
+ [data-site-theme='aalam'] .velu-pagenav--aalam {
261
+ margin-top: 48px;
262
+ margin-bottom: 48px;
263
+ }
264
+ [data-site-theme='aalam'][data-api='true'] .velu-pagenav--aalam {
265
+ margin-bottom: 40px;
266
+ }