@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-workshop",
3
- "version": "0.19.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.26.1",
17
+ "@kolkrabbi/kol-component": "0.27.0",
18
18
  "@kolkrabbi/kol-icons": "0.10.0",
19
- "@kolkrabbi/kol-framework": "0.14.0",
20
- "@kolkrabbi/kol-theme": "0.31.2"
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; the rest of the row still toggles
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
- const labelNode = to ? (
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()