@kolkrabbi/kol-shell 0.60.0 → 0.61.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.
- package/package.json +5 -5
- package/src/AppShell.jsx +3 -0
- package/src/NavRail.jsx +11 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The application shell",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"@kolkrabbi/kol-component": ">=0.229.0",
|
|
16
16
|
"@kolkrabbi/kol-icons": ">=0.16.0",
|
|
17
|
-
"@kolkrabbi/kol-theme": ">=0.
|
|
17
|
+
"@kolkrabbi/kol-theme": ">=0.165.0",
|
|
18
18
|
"gsap": "^3.13.0",
|
|
19
19
|
"react": "^18.3.0 || ^19.0.0",
|
|
20
20
|
"react-dom": "^18.3.0 || ^19.0.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@kolkrabbi/kol-component": "^0.
|
|
23
|
+
"@kolkrabbi/kol-component": "^0.239.0",
|
|
24
|
+
"@kolkrabbi/kol-framework": "^0.49.0",
|
|
24
25
|
"@kolkrabbi/kol-icons": "^0.33.0",
|
|
25
|
-
"@kolkrabbi/kol-
|
|
26
|
-
"@kolkrabbi/kol-theme": "^0.163.0"
|
|
26
|
+
"@kolkrabbi/kol-theme": "^0.165.0"
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
29
|
"src",
|
package/src/AppShell.jsx
CHANGED
|
@@ -42,6 +42,7 @@ import { TABBAR_H, MastheadContext } from '@kolkrabbi/kol-component'
|
|
|
42
42
|
* open/close is the consumer's `onNavigate` (kol-mirror's model: navigating to
|
|
43
43
|
* `/settings` while already there returns to the last page), and the theme
|
|
44
44
|
* toggle lives on the settings page, not in the rail (user, 2026-08-28).
|
|
45
|
+
* @param {boolean} [props.railFade=true] the rail's list fades out at its foot (`NavRail fade`); `false` opts out
|
|
45
46
|
* @param {string} props.railToggleKey a key that toggles the rail (e.g. '\\') — ignored while typing in a field;
|
|
46
47
|
* the rail comes back on every `currentPath` change (ShellHomeSystem, 2026-08-27)
|
|
47
48
|
* @param {'shell'|'bare'|'overlay'|'drawer'|'bar'} props.touch the touch-primary policy (default 'shell' = the rail regardless):
|
|
@@ -130,6 +131,7 @@ export default function AppShell({
|
|
|
130
131
|
onNavigate,
|
|
131
132
|
iconComponent,
|
|
132
133
|
railComponent: Rail = NavRail,
|
|
134
|
+
railFade = true,
|
|
133
135
|
railToggleKey,
|
|
134
136
|
touch = 'shell',
|
|
135
137
|
appName,
|
|
@@ -370,6 +372,7 @@ export default function AppShell({
|
|
|
370
372
|
onNavigate={navigate}
|
|
371
373
|
iconComponent={iconComponent}
|
|
372
374
|
drawer={drawer}
|
|
375
|
+
fade={railFade}
|
|
373
376
|
/>
|
|
374
377
|
)}
|
|
375
378
|
{/* THE BACK OF THE BACK — surface-primary, always, in every app; the
|
package/src/NavRail.jsx
CHANGED
|
@@ -70,6 +70,10 @@ import Logomark from './Logomark.jsx'
|
|
|
70
70
|
* @param {boolean} drawer off-canvas mode: no grab, no drag, no token writes, rows always
|
|
71
71
|
* labelled, and the rail sizes itself from `--kol-shell-drawer-width` (default 240px).
|
|
72
72
|
* AppShell sets this from `touch="drawer"` — see ShellRailNoDrawerOnMobile, 2026-08-31.
|
|
73
|
+
* @param {boolean} [fade=true] the list fades out at its foot — the workshop rail's fade
|
|
74
|
+
* (2026-10-01), here too on the user's word (2026-10-02). The rows sit in their own scroll
|
|
75
|
+
* region between the mark and the pinned bottom rows, so a list longer than the window scrolls
|
|
76
|
+
* and runs out under the fade instead of being cut by the edge. `false` draws the list plain.
|
|
73
77
|
*/
|
|
74
78
|
const RAIL_W = '--kol-shell-rail-width'
|
|
75
79
|
const CLOSED = 48
|
|
@@ -277,6 +281,7 @@ export default function NavRail({
|
|
|
277
281
|
iconComponent,
|
|
278
282
|
hidden = false,
|
|
279
283
|
drawer = false,
|
|
284
|
+
fade = true,
|
|
280
285
|
}) {
|
|
281
286
|
const railRef = useRef(null)
|
|
282
287
|
const grabRef = useRef(null)
|
|
@@ -340,9 +345,12 @@ export default function NavRail({
|
|
|
340
345
|
</div>
|
|
341
346
|
</Tooltip>
|
|
342
347
|
)}
|
|
343
|
-
{
|
|
344
|
-
|
|
345
|
-
|
|
348
|
+
{/* THE LIST IS ITS OWN REGION (2026-10-02): it takes the room between the mark and the pinned
|
|
349
|
+
* bottom rows — what the bare spacer used to hold — scrolls when the rows outrun the window,
|
|
350
|
+
* and fades at its foot unless `fade={false}`. Same column, same gap, as the rail's own. */}
|
|
351
|
+
<div className={`kol-shell-rail-list flex min-h-0 w-full flex-1 flex-col items-start gap-2 overflow-y-auto overflow-x-hidden ${fade ? 'kol-shell-rail-list--fade' : ''}`.trim()}>
|
|
352
|
+
{items.map(row)}
|
|
353
|
+
</div>
|
|
346
354
|
{/* the rule runs the full rail width, out past the px-2 */}
|
|
347
355
|
{bottomItems.length > 0 && <div className="self-stretch -mx-2 border-t border-fg-08" />}
|
|
348
356
|
{bottomItems.map(row)}
|