@kolkrabbi/kol-shell 0.34.0 → 0.36.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 +3 -3
- package/src/NavRail.jsx +6 -6
- package/src/SettingsShortcuts.jsx +17 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "KOL application shell — fixed 48px NavRail + AppShell layout root, PageShell/PageHeader scaffolds, ContentFilters catalog organism, GridCard, SettingsScaffold, WalkthroughPanel, ShortcutsOverlay. App chrome (kol-framework owns site chrome). Nav items, content, shortcuts and settings are consumer-injected. Sits above @kolkrabbi/kol-{theme,component,framework}.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,10 +20,10 @@
|
|
|
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.153.0",
|
|
24
24
|
"@kolkrabbi/kol-icons": "^0.25.0",
|
|
25
25
|
"@kolkrabbi/kol-framework": "^0.36.0",
|
|
26
|
-
"@kolkrabbi/kol-theme": "^0.
|
|
26
|
+
"@kolkrabbi/kol-theme": "^0.122.0"
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
29
|
"src",
|
package/src/NavRail.jsx
CHANGED
|
@@ -285,12 +285,12 @@ export default function NavRail({
|
|
|
285
285
|
return (
|
|
286
286
|
<div
|
|
287
287
|
ref={railRef}
|
|
288
|
-
/*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
className=
|
|
288
|
+
/* ONE SIDE, ALWAYS LEFT (ShellDrawerSideCorrection, kol-chess 2026-09-01).
|
|
289
|
+
* 0.34.0 mirrored the panel to fix a button: the complaint was the
|
|
290
|
+
* trigger travelling to mid-screen, never the navigation's side. The
|
|
291
|
+
* trigger is now pinned top-right in both states, so a left panel has
|
|
292
|
+
* nothing to collide with and the drawer opens where the rail lives. */
|
|
293
|
+
className="kol-shell-rail bg-surface-primary fixed inset-y-0 left-0 flex flex-col items-start pt-4 pb-4 px-2 gap-2 border-r border-fg-08"
|
|
294
294
|
/* A drawer takes its own width, NOT the live rail token — that token is
|
|
295
295
|
* zeroed in drawer mode so the content gets the whole viewport back. */
|
|
296
296
|
style={{ width: drawer ? 'var(--kol-shell-drawer-width, 240px)' : `var(${RAIL_W})` }}
|
|
@@ -9,9 +9,20 @@ import { SettingsRow } from '@kolkrabbi/kol-component'
|
|
|
9
9
|
/**
|
|
10
10
|
* SettingsShortcuts — the keyboard-shortcuts block of a settings page
|
|
11
11
|
* (ShellHomeSystem, kol-fxr 2026-08-27): the same `[{ section, items: [{ id,
|
|
12
|
-
* label, combo }] }]` array `ShortcutsOverlay` takes, laid out six columns ×
|
|
12
|
+
* label, combo }] }]` array `ShortcutsOverlay` takes, laid out UP TO six columns ×
|
|
13
13
|
* two sections per column, filled column-first (user, 2026-08-27) — each
|
|
14
|
-
* section an eyebrow (`kol-eyebrow`, strong ink) over SettingsRows.
|
|
14
|
+
* section an eyebrow (`kol-eyebrow`, strong ink) over SettingsRows. The six
|
|
15
|
+
* is a CEILING, not a command (SettingsShortcutsGridColumns, kol-mirror
|
|
16
|
+
* 2026-09-01 — the fourth home of the cols-as-command defect, unswept when
|
|
17
|
+
* CatalogPage was the third): `grid-cols-6` computed six 18px slivers in a
|
|
18
|
+
* 350px row. Same idiom as CatalogPage / ContentCollection — no track under
|
|
19
|
+
* the 150px floor (`GRAB AND PAN THE DESK` / `Space + drag`, the widest cells
|
|
20
|
+
* in the estate), none wider than the container, and the count falls out of
|
|
21
|
+
* the width: two at 390, six on the desk, where the sixth-share clears the
|
|
22
|
+
* floor so nothing moves. Below `md` the grid flows by ROW — the two-row
|
|
23
|
+
* column-first shape is a desk ruling and would overflow implicit columns
|
|
24
|
+
* off the right edge on a phone. Gap is `gap-x-6 md:gap-x-12`, the rung
|
|
25
|
+
* ContentFiltersMobileGaps set for this shape (48px was 17% of the row). A combo is one
|
|
15
26
|
* token by nature — the value cell is `whitespace-nowrap` and the label yields
|
|
16
27
|
* (SettingsShortcutsComboWrap, kol-monitor 2026-08-27: `⌘ K` broke as `⌘` over
|
|
17
28
|
* `K` in the six-column grid — the cell was squeezed to min-content, not full).
|
|
@@ -27,7 +38,10 @@ import { SettingsRow } from '@kolkrabbi/kol-component'
|
|
|
27
38
|
*/
|
|
28
39
|
export default function SettingsShortcuts({ sections = [], comboLabel = (c) => c, className = '' }) {
|
|
29
40
|
return (
|
|
30
|
-
<div
|
|
41
|
+
<div
|
|
42
|
+
className={`grid md:grid-rows-2 md:grid-flow-col gap-x-6 md:gap-x-12 gap-y-6 ${className}`.trim()}
|
|
43
|
+
style={{ gridTemplateColumns: 'repeat(auto-fill, minmax(min(100%, max(150px, calc((100% - 5 * 48px) / 6))), 1fr))' }}
|
|
44
|
+
>
|
|
31
45
|
{sections.map(({ section, items }) => (
|
|
32
46
|
<div key={section} style={{ display: 'flex', flexDirection: 'column', gap: 4 }}>
|
|
33
47
|
<span className="kol-eyebrow text-strong mb-2">{section}</span>
|