@kolkrabbi/kol-workshop 0.19.0 → 0.20.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 +4 -4
- package/src/shell/RailSection.jsx +11 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-workshop",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "KOL workshop/docs system — a handrolled markdown engine, search, tag system (incl. a d3 tag graph), docs viewer, and docs shell. Sits above @kolkrabbi/kol-{theme,icons,component,framework}; content is consumer-injected (the package never globs docs).",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"d3": "^7.9.0",
|
|
16
16
|
"@kolkrabbi/kol-brand": "^0.1.2",
|
|
17
|
-
"@kolkrabbi/kol-component": "0.
|
|
17
|
+
"@kolkrabbi/kol-component": "0.27.0",
|
|
18
18
|
"@kolkrabbi/kol-icons": "0.10.0",
|
|
19
|
-
"@kolkrabbi/kol-
|
|
20
|
-
"@kolkrabbi/kol-
|
|
19
|
+
"@kolkrabbi/kol-theme": "0.31.3",
|
|
20
|
+
"@kolkrabbi/kol-framework": "0.14.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"react": "^18.3.0 || ^19.0.0",
|
|
@@ -45,7 +45,10 @@ import { Link } from 'react-router-dom'
|
|
|
45
45
|
* @param {string} label header text, rendered verbatim (casing is authored)
|
|
46
46
|
* @param {number} [count] leaf rows this section contains — L1 counts the
|
|
47
47
|
* whole subtree, L2 counts its own children
|
|
48
|
-
* @param {string} [to] make the LABEL a link
|
|
48
|
+
* @param {string} [to] L2: make the LABEL a link (the rest of the row
|
|
49
|
+
* still toggles). Non-collapsible rungs: the whole
|
|
50
|
+
* row is the link. Ignored on a collapsible L1 —
|
|
51
|
+
* the eyebrow is a pure two-way toggle (2026-08-09)
|
|
49
52
|
* @param {boolean} [collapsible=true] false → a static header, no toggle, no aria
|
|
50
53
|
* @param {boolean} [collapsed] controlled state; omit for uncontrolled
|
|
51
54
|
* @param {Function} [onToggle] required when `collapsed` is passed
|
|
@@ -103,12 +106,17 @@ export default function RailSection({
|
|
|
103
106
|
? <span className="kol-mono-14 text-subtle">({count})</span>
|
|
104
107
|
: null
|
|
105
108
|
|
|
106
|
-
|
|
109
|
+
/* L1 EYEBROW IS ONE GESTURE (user ruling 2026-08-09, repealing the
|
|
110
|
+
* 2026-08-01 label-door at L1): the whole row toggles BOTH ways — a label
|
|
111
|
+
* link never collapses, and the text is most of the perceived target, so
|
|
112
|
+
* the eyebrow felt expand-only. A category's door lives in the header tabs.
|
|
113
|
+
* L2 keeps the split (2026-08-02 ruling): its label is a chapter's only
|
|
114
|
+
* door to the landing page, and the chevron marks the toggle. */
|
|
115
|
+
const labelNode = to && level === 2 ? (
|
|
107
116
|
/* The label navigates; the rest of the row toggles. stopPropagation keeps
|
|
108
117
|
* one click from doing both. */
|
|
109
118
|
<Link
|
|
110
119
|
to={to}
|
|
111
|
-
className={level === 1 ? 'kol-doc-eyebrow' : undefined}
|
|
112
120
|
onClick={(e) => {
|
|
113
121
|
e.stopPropagation()
|
|
114
122
|
if (isCollapsed && toggle) toggle()
|