@charcuterie/ui 3.23.0 → 3.25.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/README.md +18 -0
- package/dist/Board/Board.d.ts +6 -3
- package/dist/Board/Board.d.ts.map +1 -1
- package/dist/Board/Board.js +19 -1
- package/dist/Board/Board.js.map +1 -1
- package/dist/Board/BoardCard.d.ts +42 -7
- package/dist/Board/BoardCard.d.ts.map +1 -1
- package/dist/Board/BoardCard.js +54 -8
- package/dist/Board/BoardCard.js.map +1 -1
- package/dist/DeploymentUpdate/useDeploymentUpdate.d.ts +31 -0
- package/dist/DeploymentUpdate/useDeploymentUpdate.d.ts.map +1 -0
- package/dist/DeploymentUpdate/useDeploymentUpdate.js +94 -0
- package/dist/DeploymentUpdate/useDeploymentUpdate.js.map +1 -0
- package/dist/Nav/Nav.d.ts +167 -0
- package/dist/Nav/Nav.d.ts.map +1 -0
- package/dist/Nav/Nav.js +165 -0
- package/dist/Nav/Nav.js.map +1 -0
- package/dist/Nav/NavLink.d.ts +43 -0
- package/dist/Nav/NavLink.d.ts.map +1 -0
- package/dist/Nav/NavLink.js +111 -0
- package/dist/Nav/NavLink.js.map +1 -0
- package/dist/Nav/navItems.d.ts +67 -0
- package/dist/Nav/navItems.d.ts.map +1 -0
- package/dist/Nav/navItems.js +104 -0
- package/dist/Nav/navItems.js.map +1 -0
- package/dist/Nav/useNavLayout.d.ts +86 -0
- package/dist/Nav/useNavLayout.d.ts.map +1 -0
- package/dist/Nav/useNavLayout.js +114 -0
- package/dist/Nav/useNavLayout.js.map +1 -0
- package/dist/NavBar/NavBar.d.ts +37 -111
- package/dist/NavBar/NavBar.d.ts.map +1 -1
- package/dist/NavBar/NavBar.js +30 -110
- package/dist/NavBar/NavBar.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Board/Board.mdx +25 -2
- package/src/Board/Board.stories.tsx +52 -1
- package/src/Board/Board.test.tsx +82 -0
- package/src/Board/Board.tsx +24 -4
- package/src/Board/BoardCard.tsx +103 -21
- package/src/Board/boardMoveHandleContainer.test.ts +54 -0
- package/src/DeploymentUpdate/useDeploymentUpdate.ts +143 -0
- package/src/Nav/Nav.mdx +169 -0
- package/src/Nav/Nav.stories.tsx +402 -0
- package/src/Nav/Nav.test.tsx +338 -0
- package/src/Nav/Nav.tsx +406 -0
- package/src/Nav/NavLink.tsx +220 -0
- package/src/Nav/navItems.test.ts +163 -0
- package/src/Nav/navItems.ts +175 -0
- package/src/Nav/useNavLayout.ts +197 -0
- package/src/NavBar/NavBar.mdx +26 -0
- package/src/NavBar/NavBar.tsx +54 -240
- package/src/index.ts +29 -1
- package/src/sourceRules.test.ts +13 -1
- package/dist/NavBar/NavBarLink.d.ts +0 -43
- package/dist/NavBar/NavBarLink.d.ts.map +0 -1
- package/dist/NavBar/NavBarLink.js +0 -67
- package/dist/NavBar/NavBarLink.js.map +0 -1
- package/dist/NavBar/navBarCurrent.d.ts +0 -37
- package/dist/NavBar/navBarCurrent.d.ts.map +0 -1
- package/dist/NavBar/navBarCurrent.js +0 -48
- package/dist/NavBar/navBarCurrent.js.map +0 -1
- package/src/NavBar/NavBarLink.tsx +0 -139
- package/src/NavBar/navBarCurrent.test.ts +0 -81
- package/src/NavBar/navBarCurrent.ts +0 -64
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { useMediaQuery } from "@charcuterie/logic";
|
|
2
|
+
import { matchMediaMatcher } from "@charcuterie/logic/browser";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
const DEFAULT_ICONS_BELOW = "64rem";
|
|
5
|
+
const DEFAULT_MENU_BELOW = "48rem";
|
|
6
|
+
const isNavLayoutMode = (value) => value === "auto" ||
|
|
7
|
+
value === "collapsed" ||
|
|
8
|
+
value === "expanded";
|
|
9
|
+
/**
|
|
10
|
+
* `localStorage`, wrapped both ways.
|
|
11
|
+
*
|
|
12
|
+
* It throws in a sandboxed iframe and in some privacy modes, and it
|
|
13
|
+
* does not exist at all while a page renders on a server — a rail
|
|
14
|
+
* that cannot remember its width should still have one.
|
|
15
|
+
*
|
|
16
|
+
* `@charcuterie/logic/browser`'s `localStoragePersistence` is the
|
|
17
|
+
* same shape and is deliberately **not** reused: it validates what
|
|
18
|
+
* it reads with `isColorSchemeMode`, so it answers `null` for every
|
|
19
|
+
* value this hook stores.
|
|
20
|
+
*/
|
|
21
|
+
const readStoredMode = (key) => {
|
|
22
|
+
try {
|
|
23
|
+
const stored = window.localStorage.getItem(key);
|
|
24
|
+
return isNavLayoutMode(stored) ? stored : null;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const writeStoredMode = (key, mode) => {
|
|
31
|
+
try {
|
|
32
|
+
window.localStorage.setItem(key, mode);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// A page that cannot persist still switches for this session.
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The width rule for a rail-shaped navigation, written once.
|
|
40
|
+
*
|
|
41
|
+
* Three states, and the app chooses none of them:
|
|
42
|
+
*
|
|
43
|
+
* | Width | Layout | What the app renders |
|
|
44
|
+
* | --- | --- | --- |
|
|
45
|
+
* | `>= iconsBelow` | `rail` | a `Rail` holding a `Nav` |
|
|
46
|
+
* | `>= menuBelow` | `railIcons` | the same `Rail`, narrower |
|
|
47
|
+
* | below that | `menu` | a trigger in the `Header` |
|
|
48
|
+
*
|
|
49
|
+
* ### Why the app still places it
|
|
50
|
+
*
|
|
51
|
+
* Because the placement genuinely differs and the rule does not. The
|
|
52
|
+
* `menu` state puts a control in the header — a different corner of
|
|
53
|
+
* the page from a side rail — and no amount of restyling moves an
|
|
54
|
+
* element across `Shell`'s grid. So the library owns *which* state
|
|
55
|
+
* is right, at what width, with what override and where the override
|
|
56
|
+
* is remembered; the app owns two `if`s. That is the half that was
|
|
57
|
+
* being rewritten per app, and rewritten differently: Docket's nav
|
|
58
|
+
* wraps to three lines on a phone, mail-sifter collapses at `40rem`,
|
|
59
|
+
* and QueuePilot at `760px`, all of them arrived at alone.
|
|
60
|
+
*
|
|
61
|
+
* ### The override does not reach the narrow state
|
|
62
|
+
*
|
|
63
|
+
* `expanded` on a 390px screen would be a 212px rail beside 178px of
|
|
64
|
+
* content. The width wins there, and the remembered choice is *kept*
|
|
65
|
+
* rather than cleared — rotating a tablet back to landscape restores
|
|
66
|
+
* the rail the reader asked for, instead of silently forgetting it.
|
|
67
|
+
*
|
|
68
|
+
* ### It is a hook, not CSS
|
|
69
|
+
*
|
|
70
|
+
* The same reason `usePanelItemSize` is: a media query can restyle a
|
|
71
|
+
* rail, but it cannot move a control into the header, and it cannot
|
|
72
|
+
* tell the trigger whether to render at all. A resize re-renders;
|
|
73
|
+
* a scheme or density change still does not.
|
|
74
|
+
*/
|
|
75
|
+
export const useNavLayout = ({ iconsBelow = DEFAULT_ICONS_BELOW, menuBelow = DEFAULT_MENU_BELOW, storageKey, } = {}) => {
|
|
76
|
+
// Read once, lazily — a `useState` initialiser, so the stored
|
|
77
|
+
// choice is in place for the first paint and the rail does not
|
|
78
|
+
// open wide and then snap shut.
|
|
79
|
+
const [mode, setStoredMode] = useState(() => (storageKey === undefined
|
|
80
|
+
? null
|
|
81
|
+
: readStoredMode(storageKey)) ?? "auto");
|
|
82
|
+
const { isMatching: isBelowMenu } = useMediaQuery({
|
|
83
|
+
matcher: matchMediaMatcher(`(width < ${menuBelow})`),
|
|
84
|
+
});
|
|
85
|
+
const { isMatching: isBelowIcons } = useMediaQuery({
|
|
86
|
+
matcher: matchMediaMatcher(`(width < ${iconsBelow})`),
|
|
87
|
+
});
|
|
88
|
+
const setMode = (nextMode) => {
|
|
89
|
+
setStoredMode(nextMode);
|
|
90
|
+
if (storageKey !== undefined) {
|
|
91
|
+
writeStoredMode(storageKey, nextMode);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const autoLayout = isBelowIcons
|
|
95
|
+
? "railIcons"
|
|
96
|
+
: "rail";
|
|
97
|
+
const layout = isBelowMenu
|
|
98
|
+
? "menu"
|
|
99
|
+
: mode === "auto"
|
|
100
|
+
? autoLayout
|
|
101
|
+
: mode === "collapsed"
|
|
102
|
+
? "railIcons"
|
|
103
|
+
: "rail";
|
|
104
|
+
return {
|
|
105
|
+
isCollapsed: layout === "railIcons",
|
|
106
|
+
layout,
|
|
107
|
+
mode,
|
|
108
|
+
setMode,
|
|
109
|
+
toggle: () => {
|
|
110
|
+
setMode(layout === "rail" ? "collapsed" : "expanded");
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=useNavLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNavLayout.js","sourceRoot":"","sources":["../../src/Nav/useNavLayout.ts"],"names":[],"mappings":"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"}
|
package/dist/NavBar/NavBar.d.ts
CHANGED
|
@@ -1,130 +1,56 @@
|
|
|
1
1
|
import type { ControlSize } from "@charcuterie/tokens";
|
|
2
2
|
import type { Placement } from "@floating-ui/react";
|
|
3
3
|
import type { ReactNode } from "react";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
key?: string;
|
|
14
|
-
/** The visible text, and the accessible name. */
|
|
15
|
-
label: string;
|
|
16
|
-
};
|
|
4
|
+
import type { NavItem } from "../Nav/navItems.ts";
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Use `Nav`'s `NavItem`. Removed in the next major.
|
|
7
|
+
*/
|
|
8
|
+
export type NavBarItem = NavItem;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Use `NavProps` with `layout="bar"`. Removed in the
|
|
11
|
+
* next major.
|
|
12
|
+
*/
|
|
17
13
|
export type NavBarProps = {
|
|
18
14
|
className?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Where the reader is — `useLocation().pathname` in a
|
|
21
|
-
* react-router app. `aria-current="page"` is derived from it by
|
|
22
|
-
* `getIsCurrentHref`, which matches a parent path for its
|
|
23
|
-
* children and treats `/` as exact.
|
|
24
|
-
*
|
|
25
|
-
* Omitted means nothing is current, which is the honest answer on
|
|
26
|
-
* a route no destination owns.
|
|
27
|
-
*/
|
|
28
15
|
currentHref?: string;
|
|
29
|
-
/**
|
|
30
|
-
* **Initial** only, and the bar owns it from then on — the same
|
|
31
|
-
* uncontrolled contract every other component here has. It exists
|
|
32
|
-
* so a story (and a screenshot) can show the menu open; an app
|
|
33
|
-
* almost never passes it.
|
|
34
|
-
*/
|
|
35
16
|
isMenuVisible?: boolean;
|
|
36
17
|
items: readonly NavBarItem[];
|
|
37
|
-
/**
|
|
38
|
-
* Required, and it becomes the `<nav>`'s `aria-label`. Two unnamed
|
|
39
|
-
* navigation landmarks in one page is axe's `landmark-unique`, and
|
|
40
|
-
* more to the point it is a screen reader announcing "navigation"
|
|
41
|
-
* twice with no way to tell which is the main one.
|
|
42
|
-
*/
|
|
43
18
|
label: string;
|
|
44
|
-
/**
|
|
45
|
-
* Where the trigger sits in the bar's track once the row has
|
|
46
|
-
* folded. `"end"` when the header puts its own actions at the
|
|
47
|
-
* far edge, so the fold control joins them instead of hugging
|
|
48
|
-
* the wordmark with the whole track empty after it.
|
|
49
|
-
*
|
|
50
|
-
* It reaches **only** the folded row, which holds exactly one
|
|
51
|
-
* item — so it cannot disturb where the links sit when the bar
|
|
52
|
-
* is whole, and there is deliberately no prop that can.
|
|
53
|
-
*/
|
|
54
19
|
menuAlign?: "end" | "start";
|
|
55
|
-
/**
|
|
56
|
-
* The collapsed trigger's glyph. **No default** — the library
|
|
57
|
-
* ships no icons, and `☰` renders as nothing where the font lacks
|
|
58
|
-
* it. With no icon the trigger is a text button reading
|
|
59
|
-
* `menuLabel`, which works everywhere.
|
|
60
|
-
*/
|
|
61
20
|
menuIcon?: ReactNode;
|
|
62
|
-
/**
|
|
63
|
-
* Names the trigger and, through it, the panel it opens. A
|
|
64
|
-
* `role="dialog"` takes no accessible name from its content.
|
|
65
|
-
*/
|
|
66
21
|
menuLabel?: string;
|
|
67
22
|
menuPlacement?: Placement;
|
|
68
23
|
size?: ControlSize;
|
|
69
24
|
};
|
|
70
25
|
/**
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* the menu, when it opens, is the complete list in the product's own
|
|
100
|
-
* order.
|
|
101
|
-
*
|
|
102
|
-
* ## Measured, not breakpointed
|
|
103
|
-
*
|
|
104
|
-
* There is no `collapseAt` prop and no media query. The bar reads
|
|
105
|
-
* the width its links actually have and folds when their sum stops
|
|
106
|
-
* fitting, so a longer label, a tenth destination, a
|
|
107
|
-
* `data-density="kiosk"` or a reader at 175% browser zoom each move
|
|
108
|
-
* the fold on their own. A hardcoded pixel number is wrong the first
|
|
109
|
-
* time any of those changes — mux-magic collapses at `480px` and
|
|
110
|
-
* plex-channels at `760px`, and neither number has a reason.
|
|
111
|
-
*
|
|
112
|
-
* ⚠️ **The bar must not be sized by its own contents.** It measures
|
|
113
|
-
* its own box to decide what to draw in it, so a container that
|
|
114
|
-
* shrink-wraps makes the answer its own input: put it in a
|
|
115
|
-
* `minmax(0, 1fr)` grid track or a `flex-1 min-w-0` row. The root
|
|
116
|
-
* carries `min-w-0 flex-1` for the flex case; a grid track is the
|
|
117
|
-
* caller's to declare. Same trap `useAdaptiveColumns` documents from
|
|
118
|
-
* the other end.
|
|
119
|
-
*
|
|
120
|
-
* ## Mounted exactly once
|
|
121
|
-
*
|
|
122
|
-
* A destination is in the bar or in the panel, never both. The
|
|
123
|
-
* fleet's habit is to render the whole nav twice and hide one copy
|
|
124
|
-
* with `hidden md:flex` — mux-magic's `PageHeader` across two
|
|
125
|
-
* ~55-line blocks, mail-sifter's `TriageQueue` again — which puts
|
|
126
|
-
* every link in the DOM at every width, so an agent driving the page
|
|
127
|
-
* finds two of each and cannot tell which one a human can see.
|
|
26
|
+
* @deprecated Use `Nav` with `layout="bar"` — which is `Nav`'s
|
|
27
|
+
* default, so `<Nav activeHref={…} items={…} label="Main" />` is the
|
|
28
|
+
* whole migration. **Removed in the next major.**
|
|
29
|
+
*
|
|
30
|
+
* This is now a thin adapter over `Nav` and keeps every behaviour it
|
|
31
|
+
* shipped with: the measured whole-row fold, the real `<a href>` in
|
|
32
|
+
* both the bar and the panel, and the same props under the same
|
|
33
|
+
* names. Only two things differ, and both are fixes:
|
|
34
|
+
*
|
|
35
|
+
* 1. `currentHref` is `activeHref` on `Nav`.
|
|
36
|
+
* 2. **Two items can no longer both be current.** This component
|
|
37
|
+
* asked the question once per item, so a bar holding `/settings`
|
|
38
|
+
* and `/settings/labels` marked *both* while the reader was on
|
|
39
|
+
* the deeper one — against its own decision record, which says a
|
|
40
|
+
* nav with two current items has stopped saying anything. `Nav`
|
|
41
|
+
* takes the deepest match. If an app was relying on the parent
|
|
42
|
+
* also lighting up, it was relying on a defect.
|
|
43
|
+
*
|
|
44
|
+
* ## Why it went away
|
|
45
|
+
*
|
|
46
|
+
* It answered half the question. A horizontal row that folds is one
|
|
47
|
+
* shape an app's destinations take; a labelled side rail, a
|
|
48
|
+
* collapsed icon rail and a Narrow-View bottom strip are the others,
|
|
49
|
+
* and this component could not become any of them — so an app that
|
|
50
|
+
* wanted a rail was back to hand-rolling, which is the state this
|
|
51
|
+
* was built to end. `Nav` is the same list drawn in whichever of the
|
|
52
|
+
* five places fits, and `useNavLayout` is the width rule that says
|
|
53
|
+
* which.
|
|
128
54
|
*/
|
|
129
55
|
export declare const NavBar: ({ className, currentHref, isMenuVisible, items, label, menuAlign, menuIcon, menuLabel, menuPlacement, size, }: NavBarProps) => ReactNode;
|
|
130
56
|
//# sourceMappingURL=NavBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar.d.ts","sourceRoot":"","sources":["../../src/NavBar/NavBar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NavBar.d.ts","sourceRoot":"","sources":["../../src/NavBar/NavBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAA;AAEhC;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,MAAM,GAAI,+GAWpB,WAAW,KAAG,SAchB,CAAA"}
|
package/dist/NavBar/NavBar.js
CHANGED
|
@@ -1,114 +1,34 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { Button } from "../Button/Button.js";
|
|
4
|
-
import { IconButton } from "../IconButton/IconButton.js";
|
|
5
|
-
import { usePanelItemSize } from "../Overlay/usePanelItemSize.js";
|
|
6
|
-
import { Popover } from "../Popover/Popover.js";
|
|
7
|
-
import { useToolbarOverflow } from "../Toolbar/useToolbarOverflow.js";
|
|
8
|
-
import { toClassName } from "../toClassName.js";
|
|
9
|
-
import { NavBarLink } from "./NavBarLink.js";
|
|
10
|
-
import { getIsCurrentHref } from "./navBarCurrent.js";
|
|
2
|
+
import { Nav } from "../Nav/Nav.js";
|
|
11
3
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* the menu, when it opens, is the complete list in the product's own
|
|
41
|
-
* order.
|
|
42
|
-
*
|
|
43
|
-
* ## Measured, not breakpointed
|
|
44
|
-
*
|
|
45
|
-
* There is no `collapseAt` prop and no media query. The bar reads
|
|
46
|
-
* the width its links actually have and folds when their sum stops
|
|
47
|
-
* fitting, so a longer label, a tenth destination, a
|
|
48
|
-
* `data-density="kiosk"` or a reader at 175% browser zoom each move
|
|
49
|
-
* the fold on their own. A hardcoded pixel number is wrong the first
|
|
50
|
-
* time any of those changes — mux-magic collapses at `480px` and
|
|
51
|
-
* plex-channels at `760px`, and neither number has a reason.
|
|
52
|
-
*
|
|
53
|
-
* ⚠️ **The bar must not be sized by its own contents.** It measures
|
|
54
|
-
* its own box to decide what to draw in it, so a container that
|
|
55
|
-
* shrink-wraps makes the answer its own input: put it in a
|
|
56
|
-
* `minmax(0, 1fr)` grid track or a `flex-1 min-w-0` row. The root
|
|
57
|
-
* carries `min-w-0 flex-1` for the flex case; a grid track is the
|
|
58
|
-
* caller's to declare. Same trap `useAdaptiveColumns` documents from
|
|
59
|
-
* the other end.
|
|
60
|
-
*
|
|
61
|
-
* ## Mounted exactly once
|
|
62
|
-
*
|
|
63
|
-
* A destination is in the bar or in the panel, never both. The
|
|
64
|
-
* fleet's habit is to render the whole nav twice and hide one copy
|
|
65
|
-
* with `hidden md:flex` — mux-magic's `PageHeader` across two
|
|
66
|
-
* ~55-line blocks, mail-sifter's `TriageQueue` again — which puts
|
|
67
|
-
* every link in the DOM at every width, so an agent driving the page
|
|
68
|
-
* finds two of each and cannot tell which one a human can see.
|
|
4
|
+
* @deprecated Use `Nav` with `layout="bar"` — which is `Nav`'s
|
|
5
|
+
* default, so `<Nav activeHref={…} items={…} label="Main" />` is the
|
|
6
|
+
* whole migration. **Removed in the next major.**
|
|
7
|
+
*
|
|
8
|
+
* This is now a thin adapter over `Nav` and keeps every behaviour it
|
|
9
|
+
* shipped with: the measured whole-row fold, the real `<a href>` in
|
|
10
|
+
* both the bar and the panel, and the same props under the same
|
|
11
|
+
* names. Only two things differ, and both are fixes:
|
|
12
|
+
*
|
|
13
|
+
* 1. `currentHref` is `activeHref` on `Nav`.
|
|
14
|
+
* 2. **Two items can no longer both be current.** This component
|
|
15
|
+
* asked the question once per item, so a bar holding `/settings`
|
|
16
|
+
* and `/settings/labels` marked *both* while the reader was on
|
|
17
|
+
* the deeper one — against its own decision record, which says a
|
|
18
|
+
* nav with two current items has stopped saying anything. `Nav`
|
|
19
|
+
* takes the deepest match. If an app was relying on the parent
|
|
20
|
+
* also lighting up, it was relying on a defect.
|
|
21
|
+
*
|
|
22
|
+
* ## Why it went away
|
|
23
|
+
*
|
|
24
|
+
* It answered half the question. A horizontal row that folds is one
|
|
25
|
+
* shape an app's destinations take; a labelled side rail, a
|
|
26
|
+
* collapsed icon rail and a Narrow-View bottom strip are the others,
|
|
27
|
+
* and this component could not become any of them — so an app that
|
|
28
|
+
* wanted a rail was back to hand-rolling, which is the state this
|
|
29
|
+
* was built to end. `Nav` is the same list drawn in whichever of the
|
|
30
|
+
* five places fits, and `useNavLayout` is the width rule that says
|
|
31
|
+
* which.
|
|
69
32
|
*/
|
|
70
|
-
export const NavBar = ({ className, currentHref, isMenuVisible
|
|
71
|
-
const itemKeys = items.map((item) => item.key ?? item.href);
|
|
72
|
-
const { containerRef, trackItem, visibleCount } = useToolbarOverflow({ itemKeys });
|
|
73
|
-
/**
|
|
74
|
-
* All or nothing. `visibleCount` is the progressive answer and
|
|
75
|
-
* this is the only thing read off it: the moment one link stops
|
|
76
|
-
* fitting, every link goes into the menu together.
|
|
77
|
-
*
|
|
78
|
-
* The hook's `trackTrigger` is deliberately not wired up, and the
|
|
79
|
-
* missing measurement costs nothing here. It exists so a
|
|
80
|
-
* progressive bar can ask "how many fit **beside a trigger**",
|
|
81
|
-
* which is a question this bar never asks: either every link fits
|
|
82
|
-
* with no trigger at all, or the row is one trigger and nothing
|
|
83
|
-
* else. `chooseVisibleCount` tests the whole-row case first and
|
|
84
|
-
* with the trigger costed at zero, so that branch is exact.
|
|
85
|
-
*/
|
|
86
|
-
const isCollapsed = visibleCount < items.length;
|
|
87
|
-
const { hide, isVisible, toggle } = useVisibility({
|
|
88
|
-
isVisible: isMenuVisible,
|
|
89
|
-
});
|
|
90
|
-
const panelItemSize = usePanelItemSize("lg");
|
|
91
|
-
const renderLink = (item, placement) => (_jsx(NavBarLink, { isCurrent: getIsCurrentHref({
|
|
92
|
-
currentHref,
|
|
93
|
-
href: item.href,
|
|
94
|
-
}), item: item, onNavigate: placement === "panel" ? hide : undefined, placement: placement, size: placement === "bar" ? size : panelItemSize, trackElement: placement === "bar" ? trackItem : undefined }, item.key ?? item.href));
|
|
95
|
-
const trigger = menuIcon === undefined ? (_jsx(Button, { appearance: "ghost", intent: "neutral", onClick: toggle, size: size, children: menuLabel })) : (_jsx(IconButton, { appearance: "ghost", intent: "neutral", label: menuLabel, onClick: toggle, size: size, children: menuIcon }));
|
|
96
|
-
return (_jsx("nav", { "aria-label": label, className: toClassName("flex min-w-0 flex-1 items-center gap-1",
|
|
97
|
-
// Two written-out entries rather than one interpolated
|
|
98
|
-
// string: Tailwind's scanner cannot see a class that
|
|
99
|
-
// exists only at runtime.
|
|
100
|
-
isCollapsed && menuAlign === "end"
|
|
101
|
-
? "justify-end"
|
|
102
|
-
: "justify-start", className), ref: containerRef, children: isCollapsed ? (_jsx(Popover
|
|
103
|
-
// The default panel is `max-w-xs p-3` — sized for a
|
|
104
|
-
// paragraph of prose. This one holds full-bleed rows that
|
|
105
|
-
// bring their own inset, so the padding shrinks to the
|
|
106
|
-
// gutter around them and the width is left to the list.
|
|
107
|
-
, {
|
|
108
|
-
// The default panel is `max-w-xs p-3` — sized for a
|
|
109
|
-
// paragraph of prose. This one holds full-bleed rows that
|
|
110
|
-
// bring their own inset, so the padding shrinks to the
|
|
111
|
-
// gutter around them and the width is left to the list.
|
|
112
|
-
className: "max-w-none p-1", heading: menuLabel, isVisible: isVisible, onDismiss: hide, placement: menuPlacement, trigger: trigger, children: _jsx("ul", { className: "flex min-w-48 list-none flex-col gap-0.5", children: items.map((item) => (_jsx("li", { children: renderLink(item, "panel") }, item.key ?? item.href))) }) })) : (items.map((item) => renderLink(item, "bar"))) }));
|
|
113
|
-
};
|
|
33
|
+
export const NavBar = ({ className, currentHref, isMenuVisible, items, label, menuAlign, menuIcon, menuLabel, menuPlacement, size, }) => (_jsx(Nav, { activeHref: currentHref, className: className, isMenuVisible: isMenuVisible, items: items, label: label, layout: "bar", menuAlign: menuAlign, menuIcon: menuIcon, menuLabel: menuLabel, menuPlacement: menuPlacement, size: size }));
|
|
114
34
|
//# sourceMappingURL=NavBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../src/NavBar/NavBar.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../src/NavBar/NavBar.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAgB,CAAA;AAyBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACrB,SAAS,EACT,WAAW,EACX,aAAa,EACb,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,aAAa,EACb,IAAI,GACQ,EAAa,EAAE,CAAC,CAC5B,KAAC,GAAG,IACF,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAC,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,IAAI,GACV,CACH,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -84,6 +84,8 @@ export type { DateInputKeywords, DateInputResult, ParseDateInputOptions, } from
|
|
|
84
84
|
export { DEFAULT_DATE_INPUT_KEYWORDS, parseDateInput, } from "./DatePicker/parseDateInput.ts";
|
|
85
85
|
export type { DateRange, PlainDate, PlainDateFormatOptions, } from "./DatePicker/plainDate.ts";
|
|
86
86
|
export { addDays, addMonths, clampPlainDate, comparePlainDates, formatPlainDate, getDayNumber, getDaysBetween, getDaysInMonth, getFirstDayOfWeek, getIsLeapYear, getIsSameDay, getIsValidPlainDate, getIsWithinRange, getLocalPlainDate, getMonthNames, getPlainDateFromDayNumber, getWeekday, getWeekdayNames, parseIsoDate, toIsoDate, } from "./DatePicker/plainDate.ts";
|
|
87
|
+
export type { DeploymentUpdate, UseDeploymentUpdateOptions, } from "./DeploymentUpdate/useDeploymentUpdate.ts";
|
|
88
|
+
export { DEFAULT_DEPLOYMENT_EVENTS_PATH, DEFAULT_DEPLOYMENT_PATH, useDeploymentUpdate, } from "./DeploymentUpdate/useDeploymentUpdate.ts";
|
|
87
89
|
export type { DialogProps, DialogSize, } from "./Dialog/Dialog.tsx";
|
|
88
90
|
export { Dialog } from "./Dialog/Dialog.tsx";
|
|
89
91
|
export type { DropRailProps, DropRailTarget, } from "./DropRail/DropRail.tsx";
|
|
@@ -129,9 +131,14 @@ export type { MenuItem, MenuProps, } from "./Menu/Menu.tsx";
|
|
|
129
131
|
export { Menu } from "./Menu/Menu.tsx";
|
|
130
132
|
export type { ModalProps } from "./Modal/Modal.tsx";
|
|
131
133
|
export { Modal } from "./Modal/Modal.tsx";
|
|
134
|
+
export type { NavLayout, NavProps, } from "./Nav/Nav.tsx";
|
|
135
|
+
export { Nav } from "./Nav/Nav.tsx";
|
|
136
|
+
export type { NavItem, NavRailItem, } from "./Nav/navItems.ts";
|
|
137
|
+
export { getIsCurrentHref, resolveActiveKey, } from "./Nav/navItems.ts";
|
|
138
|
+
export type { NavLayoutMode, NavLayoutState, ResolvedNavLayout, UseNavLayoutOptions, } from "./Nav/useNavLayout.ts";
|
|
139
|
+
export { useNavLayout } from "./Nav/useNavLayout.ts";
|
|
132
140
|
export type { NavBarItem, NavBarProps, } from "./NavBar/NavBar.tsx";
|
|
133
141
|
export { NavBar } from "./NavBar/NavBar.tsx";
|
|
134
|
-
export { getIsCurrentHref } from "./NavBar/navBarCurrent.ts";
|
|
135
142
|
export type { PickerOption, PickerProps, } from "./Picker/Picker.tsx";
|
|
136
143
|
export { Picker } from "./Picker/Picker.tsx";
|
|
137
144
|
export type { PopoverProps } from "./Popover/Popover.tsx";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -56,6 +56,7 @@ export { DatePicker } from "./DatePicker/DatePicker.js";
|
|
|
56
56
|
export { DEFAULT_DATE_PRESETS } from "./DatePicker/datePresets.js";
|
|
57
57
|
export { DEFAULT_DATE_INPUT_KEYWORDS, parseDateInput, } from "./DatePicker/parseDateInput.js";
|
|
58
58
|
export { addDays, addMonths, clampPlainDate, comparePlainDates, formatPlainDate, getDayNumber, getDaysBetween, getDaysInMonth, getFirstDayOfWeek, getIsLeapYear, getIsSameDay, getIsValidPlainDate, getIsWithinRange, getLocalPlainDate, getMonthNames, getPlainDateFromDayNumber, getWeekday, getWeekdayNames, parseIsoDate, toIsoDate, } from "./DatePicker/plainDate.js";
|
|
59
|
+
export { DEFAULT_DEPLOYMENT_EVENTS_PATH, DEFAULT_DEPLOYMENT_PATH, useDeploymentUpdate, } from "./DeploymentUpdate/useDeploymentUpdate.js";
|
|
59
60
|
export { Dialog } from "./Dialog/Dialog.js";
|
|
60
61
|
export { DropRail } from "./DropRail/DropRail.js";
|
|
61
62
|
export { EmptyState } from "./EmptyState/EmptyState.js";
|
|
@@ -79,8 +80,10 @@ export { MediaTile } from "./MediaTile/MediaTile.js";
|
|
|
79
80
|
export { mediaTransitions } from "./MediaTile/mediaStatus.js";
|
|
80
81
|
export { Menu } from "./Menu/Menu.js";
|
|
81
82
|
export { Modal } from "./Modal/Modal.js";
|
|
83
|
+
export { Nav } from "./Nav/Nav.js";
|
|
84
|
+
export { getIsCurrentHref, resolveActiveKey, } from "./Nav/navItems.js";
|
|
85
|
+
export { useNavLayout } from "./Nav/useNavLayout.js";
|
|
82
86
|
export { NavBar } from "./NavBar/NavBar.js";
|
|
83
|
-
export { getIsCurrentHref } from "./NavBar/navBarCurrent.js";
|
|
84
87
|
export { Picker } from "./Picker/Picker.js";
|
|
85
88
|
export { Popover } from "./Popover/Popover.js";
|
|
86
89
|
export { ProgressBar } from "./ProgressBar/ProgressBar.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA2B,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAE9D,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iCAAiC,CAAA;AAKxC,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAA;AAK7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAmB,CAAA;AAKzC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAqB,CAAA;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAmB,CAAA;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA+B,CAAA;AAK3D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAmB,CAAA;AASzC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAqB,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA6B,CAAA;AAMxD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAiB,CAAA;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAyB,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA+C,CAAA;AAKnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA2C,CAAA;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAyB,CAAA;AAKlD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA6B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAO3B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA2B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA6B,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAMlE,OAAO,EACL,2BAA2B,EAC3B,cAAc,GACf,MAAM,gCAAgC,CAAA;AAMvC,OAAO,EACL,OAAO,EACP,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,GACV,MAAM,2BAA2B,CAAA;AAKlC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAqB,CAAA;AAK5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAyB,CAAA;AAKlD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA6B,CAAA;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAmB,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAwB,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAqB,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA6B,CAAA;AAExD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAyB,CAAA;AAKlD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAuB,CAAA;AAK/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA+C,CAAA;AAKnF,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA2B,CAAA;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAiB,CAAA;AAKtC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAqC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAOtE,OAAO,EACL,WAAW,EACX,eAAe,GAChB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAK9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA2B,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAiB,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAmB,CAAA;AAKzC,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Board/Board.mdx
CHANGED
|
@@ -103,11 +103,34 @@ awkward. Pointer Events cost the same (nothing) and cover every input.
|
|
|
103
103
|
`Board` ships **no icon**, because a `⋮` renders as nothing where the font lacks it — this
|
|
104
104
|
sandbox's chromium, the kiosk image, the ePaper build
|
|
105
105
|
([decision](https://github.com/Sawtaytoes/charcuterie/blob/master/docs/decisions/2026-07-29-ship-no-icons-and-no-symbol-glyphs.md)).
|
|
106
|
-
An app that already owns a glyph set passes `moveIcon` and buys back ~
|
|
107
|
-
500px lane is the difference between twenty characters of title and thirty.
|
|
106
|
+
An app that already owns a glyph set passes `moveIcon` and buys back ~35px a row.
|
|
108
107
|
|
|
109
108
|
<Canvas of={BoardStories.AllVariants} />
|
|
110
109
|
|
|
110
|
+
### …and it takes the word back the moment a drag cannot work
|
|
111
|
+
|
|
112
|
+
`moveIcon` applies **while the lanes are side by side**. Under `cq-lg` the board is one lane
|
|
113
|
+
and a segmented control, there is nothing on screen to drop onto, and a grip glyph there
|
|
114
|
+
teaches the one gesture that cannot succeed. So the handle says **Move** again, which is the
|
|
115
|
+
gesture that does work: pressing it opens the same menu of the other lanes.
|
|
116
|
+
|
|
117
|
+
<Canvas of={BoardStories.MoveHandleByWidth} />
|
|
118
|
+
|
|
119
|
+
QueuePilot is the report behind this, from both directions. It shipped `≡` in a one-lane
|
|
120
|
+
board and the owner could not move anybody — *"There's no right-click or anything. How do I
|
|
121
|
+
move these?"* — and the first fix dropped the glyph at every width, which broke the wide
|
|
122
|
+
board where dragging is exactly what a person reaches for
|
|
123
|
+
([decision](https://github.com/Sawtaytoes/charcuterie/blob/master/docs/decisions/2026-08-27-the-move-handle-wears-the-gesture-that-can-succeed.md)).
|
|
124
|
+
|
|
125
|
+
Both affordances are in the DOM and CSS picks between them — no `ResizeObserver`, so the
|
|
126
|
+
first paint is right on a kiosk Pi. Both are `aria-hidden`, and the handle's whole
|
|
127
|
+
accessible name is a `VisuallyHidden` sentence beside them, so **the name is the same at
|
|
128
|
+
every width** and one `getByRole` query drives both layouts.
|
|
129
|
+
|
|
130
|
+
The query is against the **board's** container, which is named `board` for this one reason.
|
|
131
|
+
An unnamed `cq-lg:` inside a card asks the *lane*, and the lane answers backwards: a lane in
|
|
132
|
+
a three-up board is ~280px, and the Narrow View's single lane is the whole board.
|
|
133
|
+
|
|
111
134
|
## A lane heading can be a link
|
|
112
135
|
|
|
113
136
|
<Canvas of={BoardStories.LinkedLaneHeadings} />
|