@kolkrabbi/kol-shell 0.23.0 → 0.24.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 +1 -1
- package/src/SettingsScaffold.jsx +16 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.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",
|
package/src/SettingsScaffold.jsx
CHANGED
|
@@ -50,7 +50,9 @@ import PageHeader from './PageHeader.jsx'
|
|
|
50
50
|
* @param {Array} props.items rows to search/filter over; omit and the row is chrome only
|
|
51
51
|
* @param {Array} props.filterGroups ContentFilters groups
|
|
52
52
|
* @param {Array} props.searchKeys which keys `items` are searched on
|
|
53
|
-
* @param {ReactNode} props.trailingActions the page's own controls, right of the row
|
|
53
|
+
* @param {ReactNode|Function} props.trailingActions the page's own controls, right of the row.
|
|
54
|
+
* A FUNCTION receives `(tab, setTab)` — for a control that has to
|
|
55
|
+
* move the page, e.g. an icon pair that jumps back to Settings
|
|
54
56
|
* @param {string} props.tone forwarded to ContentFilters (`sunken` is fxr's approved page)
|
|
55
57
|
* @param {Object} props.filtersProps escape hatch — anything else the organism takes
|
|
56
58
|
*/
|
|
@@ -97,7 +99,19 @@ export default function SettingsScaffold({
|
|
|
97
99
|
totalCount={items?.length ?? 0}
|
|
98
100
|
filterGroups={filterGroups}
|
|
99
101
|
searchKeys={searchKeys}
|
|
100
|
-
|
|
102
|
+
/* A NODE cannot reach the tab it sits beside. fxr's OPTIONS /
|
|
103
|
+
* SHORTCUTS pair stays visible on About and Repo (user 2026-08-28 — the
|
|
104
|
+
* row is the page's furniture, and hiding it made the header jump a
|
|
105
|
+
* line on every leave), and picking either one must return you to
|
|
106
|
+
* Settings. Owning `tab` here took that away: the pair changed the
|
|
107
|
+
* settings view while you sat on About and you had to click SETTINGS
|
|
108
|
+
* yourself (SettingsScaffoldTabFromTrailing, 2026-08-30).
|
|
109
|
+
*
|
|
110
|
+
* A render prop, not a controlled `tab`/`onTabChange` pair: the
|
|
111
|
+
* controlled shape hands page state back to the consumer, which is
|
|
112
|
+
* precisely what 0.23.0 removed. This hands out a setter and leaves the
|
|
113
|
+
* state where the last ticket put it. A plain node still works. */
|
|
114
|
+
trailingActions={typeof trailingActions === 'function' ? trailingActions(tab, setTab) : trailingActions}
|
|
101
115
|
/* THE TABS ARE THE VIEW STRIP — the same row fxr's SETTINGS and the home
|
|
102
116
|
* page's RECENT / SAVED run on, not a strip of our own. That is the
|
|
103
117
|
* whole point: one row grammar, not a settings dialect of it. */
|