@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.
Files changed (68) hide show
  1. package/README.md +18 -0
  2. package/dist/Board/Board.d.ts +6 -3
  3. package/dist/Board/Board.d.ts.map +1 -1
  4. package/dist/Board/Board.js +19 -1
  5. package/dist/Board/Board.js.map +1 -1
  6. package/dist/Board/BoardCard.d.ts +42 -7
  7. package/dist/Board/BoardCard.d.ts.map +1 -1
  8. package/dist/Board/BoardCard.js +54 -8
  9. package/dist/Board/BoardCard.js.map +1 -1
  10. package/dist/DeploymentUpdate/useDeploymentUpdate.d.ts +31 -0
  11. package/dist/DeploymentUpdate/useDeploymentUpdate.d.ts.map +1 -0
  12. package/dist/DeploymentUpdate/useDeploymentUpdate.js +94 -0
  13. package/dist/DeploymentUpdate/useDeploymentUpdate.js.map +1 -0
  14. package/dist/Nav/Nav.d.ts +167 -0
  15. package/dist/Nav/Nav.d.ts.map +1 -0
  16. package/dist/Nav/Nav.js +165 -0
  17. package/dist/Nav/Nav.js.map +1 -0
  18. package/dist/Nav/NavLink.d.ts +43 -0
  19. package/dist/Nav/NavLink.d.ts.map +1 -0
  20. package/dist/Nav/NavLink.js +111 -0
  21. package/dist/Nav/NavLink.js.map +1 -0
  22. package/dist/Nav/navItems.d.ts +67 -0
  23. package/dist/Nav/navItems.d.ts.map +1 -0
  24. package/dist/Nav/navItems.js +104 -0
  25. package/dist/Nav/navItems.js.map +1 -0
  26. package/dist/Nav/useNavLayout.d.ts +86 -0
  27. package/dist/Nav/useNavLayout.d.ts.map +1 -0
  28. package/dist/Nav/useNavLayout.js +114 -0
  29. package/dist/Nav/useNavLayout.js.map +1 -0
  30. package/dist/NavBar/NavBar.d.ts +37 -111
  31. package/dist/NavBar/NavBar.d.ts.map +1 -1
  32. package/dist/NavBar/NavBar.js +30 -110
  33. package/dist/NavBar/NavBar.js.map +1 -1
  34. package/dist/index.d.ts +8 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +4 -1
  37. package/dist/index.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/Board/Board.mdx +25 -2
  40. package/src/Board/Board.stories.tsx +52 -1
  41. package/src/Board/Board.test.tsx +82 -0
  42. package/src/Board/Board.tsx +24 -4
  43. package/src/Board/BoardCard.tsx +103 -21
  44. package/src/Board/boardMoveHandleContainer.test.ts +54 -0
  45. package/src/DeploymentUpdate/useDeploymentUpdate.ts +143 -0
  46. package/src/Nav/Nav.mdx +169 -0
  47. package/src/Nav/Nav.stories.tsx +402 -0
  48. package/src/Nav/Nav.test.tsx +338 -0
  49. package/src/Nav/Nav.tsx +406 -0
  50. package/src/Nav/NavLink.tsx +220 -0
  51. package/src/Nav/navItems.test.ts +163 -0
  52. package/src/Nav/navItems.ts +175 -0
  53. package/src/Nav/useNavLayout.ts +197 -0
  54. package/src/NavBar/NavBar.mdx +26 -0
  55. package/src/NavBar/NavBar.tsx +54 -240
  56. package/src/index.ts +29 -1
  57. package/src/sourceRules.test.ts +13 -1
  58. package/dist/NavBar/NavBarLink.d.ts +0 -43
  59. package/dist/NavBar/NavBarLink.d.ts.map +0 -1
  60. package/dist/NavBar/NavBarLink.js +0 -67
  61. package/dist/NavBar/NavBarLink.js.map +0 -1
  62. package/dist/NavBar/navBarCurrent.d.ts +0 -37
  63. package/dist/NavBar/navBarCurrent.d.ts.map +0 -1
  64. package/dist/NavBar/navBarCurrent.js +0 -48
  65. package/dist/NavBar/navBarCurrent.js.map +0 -1
  66. package/src/NavBar/NavBarLink.tsx +0 -139
  67. package/src/NavBar/navBarCurrent.test.ts +0 -81
  68. 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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AA2DhC,MAAM,mBAAmB,GAAG,OAAO,CAAA;AAEnC,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAElC,MAAM,eAAe,GAAG,CACtB,KAAoB,EACI,EAAE,CAC1B,KAAK,KAAK,MAAM;IAChB,KAAK,KAAK,WAAW;IACrB,KAAK,KAAK,UAAU,CAAA;AAEtB;;;;;;;;;;;GAWG;AACH,MAAM,cAAc,GAAG,CACrB,GAAW,EACW,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAE/C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,GAAW,EACX,IAAmB,EACnB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,UAAU,GAAG,mBAAmB,EAChC,SAAS,GAAG,kBAAkB,EAC9B,UAAU,MACa,EAAE,EAAkB,EAAE;IAC7C,8DAA8D;IAC9D,+DAA+D;IAC/D,gCAAgC;IAChC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,QAAQ,CACpC,GAAG,EAAE,CACH,CAAC,UAAU,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAC5C,CAAA;IAED,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;QAChD,OAAO,EAAE,iBAAiB,CAAC,YAAY,SAAS,GAAG,CAAC;KACrD,CAAC,CAAA;IAEF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;QACjD,OAAO,EAAE,iBAAiB,CAAC,YAAY,UAAU,GAAG,CAAC;KACtD,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,CAAC,QAAuB,EAAE,EAAE;QAC1C,aAAa,CAAC,QAAQ,CAAC,CAAA;QAEvB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAsB,YAAY;QAChD,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,MAAM,CAAA;IAEV,MAAM,MAAM,GAAsB,WAAW;QAC3C,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,KAAK,MAAM;YACf,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,KAAK,WAAW;gBACpB,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,MAAM,CAAA;IAEd,OAAO;QACL,WAAW,EAAE,MAAM,KAAK,WAAW;QACnC,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,GAAG,EAAE;YACX,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QACvD,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -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
- export type NavBarItem = {
5
- /**
6
- * Where it goes. Routed through the injected `RouterLink` when it
7
- * is this app's own path, and left to the platform when it is not.
8
- */
9
- href: string;
10
- /** Decoration beside the label. Never the accessible name. */
11
- icon?: ReactNode;
12
- /** Defaults to `href`, which is already unique in a nav. */
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
- * The app's destinations as real links, in one line — folding into a
72
- * single menu button, whole, when that line does not fit.
73
- *
74
- * ## Why this is not `Toolbar`
75
- *
76
- * `Toolbar` already solves collapse-into-an-overflow, and this
77
- * component **reuses its measurement** (`useToolbarOverflow`) rather
78
- * than growing a second one. What it cannot reuse is the rendering:
79
- * a `ToolbarAction` is `{ label, onSelect }` and a collapsed one
80
- * becomes a `MenuItem`, so a nav folded into a `Toolbar` is a row of
81
- * `<button>`s. Navigation is an `<a href>` — see `NavBarLink`.
82
- *
83
- * The overflow is a `Popover` (`role="dialog"`) rather than a `Menu`
84
- * for the same reason: `role="menu"` permits only the `menuitem`
85
- * family, and a `menuitem` is something you *do*, not somewhere you
86
- * *go*.
87
- *
88
- * ## It folds WHOLE, and that is the decision
89
- *
90
- * `Toolbar` collapses **progressively** — items drop off the end one
91
- * at a time — because its items are ranked: the two things you do to
92
- * a running job matter more than the two you do to the deck. A nav
93
- * is not ranked. Its order is the shape of the product (Docket's
94
- * reads as the pipeline: Triage → Backlog → Phases → Board →
95
- * Archives), and a half-collapsed one splits that shape across two
96
- * places with no rule the reader can learn — "some of the app is up
97
- * here and the rest is behind a button" is worse than either whole
98
- * answer. So the bar shows **every** destination or **none**, and
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":"AACA,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;AAWtC,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;IAC5B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,MAAM,GAAI,+GAWpB,WAAW,KAAG,SAsHhB,CAAA"}
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"}
@@ -1,114 +1,34 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useVisibility } from "@charcuterie/logic";
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
- * The app's destinations as real links, in one line — folding into a
13
- * single menu button, whole, when that line does not fit.
14
- *
15
- * ## Why this is not `Toolbar`
16
- *
17
- * `Toolbar` already solves collapse-into-an-overflow, and this
18
- * component **reuses its measurement** (`useToolbarOverflow`) rather
19
- * than growing a second one. What it cannot reuse is the rendering:
20
- * a `ToolbarAction` is `{ label, onSelect }` and a collapsed one
21
- * becomes a `MenuItem`, so a nav folded into a `Toolbar` is a row of
22
- * `<button>`s. Navigation is an `<a href>` — see `NavBarLink`.
23
- *
24
- * The overflow is a `Popover` (`role="dialog"`) rather than a `Menu`
25
- * for the same reason: `role="menu"` permits only the `menuitem`
26
- * family, and a `menuitem` is something you *do*, not somewhere you
27
- * *go*.
28
- *
29
- * ## It folds WHOLE, and that is the decision
30
- *
31
- * `Toolbar` collapses **progressively** — items drop off the end one
32
- * at a time — because its items are ranked: the two things you do to
33
- * a running job matter more than the two you do to the deck. A nav
34
- * is not ranked. Its order is the shape of the product (Docket's
35
- * reads as the pipeline: Triage → Backlog → Phases → Board →
36
- * Archives), and a half-collapsed one splits that shape across two
37
- * places with no rule the reader can learn — "some of the app is up
38
- * here and the rest is behind a button" is worse than either whole
39
- * answer. So the bar shows **every** destination or **none**, and
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 = false, items, label, menuAlign = "start", menuIcon, menuLabel = "Menu", menuPlacement = "bottom-start", size = "sm", }) => {
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":"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"}
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";
@@ -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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@charcuterie/ui",
3
- "version": "3.23.0",
3
+ "version": "3.25.0",
4
4
  "description": "The Charcuterie components. Tokens for look, @charcuterie/logic for state, ARIA that agents can actually drive.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -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 ~55px a row, which in a
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} />