@kolkrabbi/kol-framework 0.17.0 → 0.19.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-framework",
3
- "version": "0.17.0",
3
+ "version": "0.19.0",
4
4
  "description": "KOL app shell — sidenav, layout, theme toggle, footer, heroes + brand color layer. SideNav takes nav data as props so the tree stays app-local.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,8 +27,8 @@
27
27
  "app-shell"
28
28
  ],
29
29
  "dependencies": {
30
- "@kolkrabbi/kol-component": "^0.32.2",
31
- "@kolkrabbi/kol-icons": "^0.12.1"
30
+ "@kolkrabbi/kol-component": "^0.37.0",
31
+ "@kolkrabbi/kol-icons": "^0.15.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "react": "^18.3.0 || ^19.0.0",
@@ -108,12 +108,10 @@ export default function ShellHeader({
108
108
  {actions}
109
109
  {showThemeToggle && (
110
110
  <Tooltip label="Toggle theme">
111
- {/* one rung up at lg+ — the bar has room, and the toggle is
112
- * the most-used control in the row. New spec API (0.9.0):
113
- * quiet square = button geometry + fill none + no label
114
- * (was the old `icon` variant default). */}
115
- <span className="hidden lg:inline-flex"><ThemeToggle fill="none" label={false} size="lg" /></span>
116
- <span className="lg:hidden"><ThemeToggle fill="none" label={false} size="lg" /></span>
111
+ {/* md at every width (user re-rule 2026-08-09: the whole
112
+ * header glyph row rides md, full ink — the earlier lg-at-lg+
113
+ * split is repealed, which also collapsed the two spans). */}
114
+ <ThemeToggle fill="none" label={false} size="md" />
117
115
  </Tooltip>
118
116
  )}
119
117
  {onMenuClick && (
@@ -121,13 +119,12 @@ export default function ShellHeader({
121
119
  {/* IconFrame, not Button (user ruling 2026-08-01). Header
122
120
  * chrome takes a click but must not light up; the frame has
123
121
  * no state rules at all, which is the property Button can
124
- * only approximate by dropping its own. `nav` rests at
125
- * oq-64 — the `text-fg-64` this control hand-wrote for
126
- * months. */}
122
+ * only approximate by dropping its own. `nav` rests at FULL
123
+ * ink since the 2026-08-09 re-rule (was oq-64). */}
127
124
  <IconFrame
128
125
  name="hamburger"
129
126
  variant="nav"
130
- size="lg"
127
+ size="md"
131
128
  onClick={onMenuClick}
132
129
  aria-label="Open navigation menu"
133
130
  />
@@ -92,23 +92,28 @@ export default function ThemeToggle({
92
92
  /* The ROLL — wheel mechanics (2026-07-30, one-glyph ruling): two copies of
93
93
  * the split circle; rotation accumulates with the slot (−180° per
94
94
  * glyph-width) on the same 500ms/ease clock as the strip's translateX, so
95
- * light→dark rolls one way and dark→light rolls back. */
95
+ * light→dark rolls one way and dark→light rolls back.
96
+ *
97
+ * Chrome classes are kol-roll* from kol-theme (ComponentTailwindSourceTrap,
98
+ * 2026-08-12) — these were Tailwind utilities, which a consumer's scanner
99
+ * never generates from node_modules, so the roll silently froze in any app
100
+ * without the @source lines. Only per-render geometry stays inline. */
96
101
  const slot = SLOT[shown]
97
102
  const iconSwap = (px) => (
98
103
  <span
99
- className="relative inline-block overflow-hidden"
104
+ className="kol-roll"
100
105
  style={{ width: px, height: px }}
101
106
  aria-hidden="true"
102
107
  >
103
108
  <span
104
- className="flex transition-transform duration-500 ease-in-out"
109
+ className="kol-roll-strip"
105
110
  style={{ width: px * 2, transform: `translateX(-${slot * px}px)` }}
106
111
  >
107
112
  {[0, 1].map((i) => (
108
113
  <span
109
114
  key={i}
110
- className="inline-flex transition-transform duration-500 ease-in-out"
111
- style={{ transform: `rotate(${slot * -180}deg)`, lineHeight: 0 }}
115
+ className="kol-roll-slot"
116
+ style={{ transform: `rotate(${slot * -180}deg)` }}
112
117
  >
113
118
  <Icon name="mode-toggle-01" size={px} />
114
119
  </span>