@graview/primitives 0.1.19 → 0.1.20

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 (50) hide show
  1. package/dist/app-bar.d.ts +23 -6
  2. package/dist/app-bar.d.ts.map +1 -1
  3. package/dist/app-bar.js +45 -22
  4. package/dist/app-bar.js.map +1 -1
  5. package/dist/arrange-bar.d.ts +41 -24
  6. package/dist/arrange-bar.d.ts.map +1 -1
  7. package/dist/arrange-bar.js +123 -220
  8. package/dist/arrange-bar.js.map +1 -1
  9. package/dist/arrange-lists.d.ts +56 -0
  10. package/dist/arrange-lists.d.ts.map +1 -0
  11. package/dist/arrange-lists.js +196 -0
  12. package/dist/arrange-lists.js.map +1 -0
  13. package/dist/bar-panes.d.ts.map +1 -1
  14. package/dist/bar-panes.js +24 -16
  15. package/dist/bar-panes.js.map +1 -1
  16. package/dist/connections.d.ts.map +1 -1
  17. package/dist/connections.js +19 -3
  18. package/dist/connections.js.map +1 -1
  19. package/dist/index.d.ts +2 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +3 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/pages.d.ts +1 -0
  24. package/dist/pages.d.ts.map +1 -1
  25. package/dist/pages.js +1 -0
  26. package/dist/pages.js.map +1 -1
  27. package/dist/rule-line.d.ts +36 -0
  28. package/dist/rule-line.d.ts.map +1 -0
  29. package/dist/rule-line.js +91 -0
  30. package/dist/rule-line.js.map +1 -0
  31. package/dist/seat-field.d.ts.map +1 -1
  32. package/dist/seat-field.js +27 -0
  33. package/dist/seat-field.js.map +1 -1
  34. package/dist/seat-panel.d.ts.map +1 -1
  35. package/dist/seat-panel.js +4 -1
  36. package/dist/seat-panel.js.map +1 -1
  37. package/dist/spec-css.d.ts.map +1 -1
  38. package/dist/spec-css.js +2 -0
  39. package/dist/spec-css.js.map +1 -1
  40. package/dist/spec-views.d.ts.map +1 -1
  41. package/dist/spec-views.js +7 -0
  42. package/dist/spec-views.js.map +1 -1
  43. package/dist/view-doors.d.ts.map +1 -1
  44. package/dist/view-doors.js +7 -0
  45. package/dist/view-doors.js.map +1 -1
  46. package/dist/workbench/standing.d.ts +8 -2
  47. package/dist/workbench/standing.d.ts.map +1 -1
  48. package/dist/workbench/standing.js +9 -4
  49. package/dist/workbench/standing.js.map +1 -1
  50. package/package.json +6 -6
@@ -1,118 +1,14 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { arrangeAllows, arrangeable, formatArrangement } from "@graview/core/arrange";
3
3
  import { dayAsRead, labelOf, valueWords, } from "@graview/core";
4
- import { useState } from "react";
4
+ import { retryingImport } from "@graview/core/retry";
5
+ import { lazyModule, POPOVER_STYLE, usePopover } from "@graview/react/provider";
6
+ import { useEffect, useRef } from "react";
5
7
  import { VISUALLY_HIDDEN } from "./primitives/measure.js";
6
8
  export { arrangementOf, withArrangement } from "./arrangement.js";
7
- /*
8
- * NOTHING HERE MAY WIDEN THE PAGE. A select is as wide as its longest
9
- * option, and at a reader's own text size — 32px root on a 390px phone —
10
- * "as declared (due date)" alone pushed the tasks page sideways. Every
11
- * control caps at the row's width and the row wraps; a long option is cut
12
- * inside its box rather than carried outside it.
13
- */
14
- const control = {
15
- font: "inherit",
16
- fontSize: "0.875rem",
17
- minHeight: 32,
18
- minWidth: 0,
19
- maxWidth: "100%",
20
- padding: "4px 8px",
21
- borderRadius: 8,
22
- border: "1px solid var(--graview-edge)",
23
- background: "var(--graview-panel)",
24
- color: "var(--graview-ink)",
25
- textOverflow: "ellipsis",
26
- };
27
- /*
28
- * A SELECT THAT KEEPS ITS FLOOR IN EVERY ENGINE. WebKit draws a native
29
- * select at its own height and ignores `min-height`: at phone width every
30
- * arrange bar's select was 22 pixels tall in WebKit and 32 elsewhere —
31
- * under the 24 a target needs, measured by a check that had only ever run
32
- * in Chromium (the third walk's lesson, in the fifth). With the native
33
- * appearance off the floor holds, and the chevron is drawn in the text's
34
- * color the way the places menu draws it.
35
- */
36
- const choice = {
37
- ...control,
38
- appearance: "none",
39
- WebkitAppearance: "none",
40
- paddingRight: 24,
41
- backgroundImage: "linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%)",
42
- backgroundPosition: "calc(100% - 13px) 55%, calc(100% - 9px) 55%",
43
- backgroundSize: "4px 4px, 4px 4px",
44
- backgroundRepeat: "no-repeat",
45
- };
46
- const label = {
47
- display: "inline-flex",
48
- alignItems: "center",
49
- flexWrap: "wrap",
50
- gap: 6,
51
- minWidth: 0,
52
- maxWidth: "100%",
53
- fontSize: "0.875rem",
54
- color: "var(--graview-ink-muted)",
55
- };
56
- const chip = {
57
- display: "inline-flex",
58
- alignItems: "center",
59
- gap: 6,
60
- minHeight: 28,
61
- padding: "0 2px 0 10px",
62
- borderRadius: 999,
63
- border: "1px solid var(--graview-edge)",
64
- background: "var(--graview-panel)",
65
- color: "var(--graview-ink)",
66
- fontSize: "0.8125rem",
67
- };
68
- /** The far ends an edge condition may name, from the graph. */
69
- /**
70
- * The far ends a menu offers to narrow by. A menu is for choosing, not for
71
- * reading a catalog: past FAR_ENDS it holds the most connected (the ones a
72
- * person most likely means), and the search reaches the rest — a select of
73
- * 1,177 songs was 1,177 elements in every row that offered it (docs/scale.md).
74
- */
75
- export const FAR_ENDS = 40;
76
- /** How many distinct values a word field may hold and still be offered as a list to pick from. */
77
- const WORD_VALUES = 60;
78
- /** Every value one field holds across a kind. */
79
- function heldValues(graph, kind, key) {
80
- return graph.allNodes().filter((node) => node.kind === kind).map((node) => node[key]);
81
- }
82
- /** Four round numbers through the spread of what a list holds: £10,000, £15,000, £25,000 — never £23,995. */
83
- export function roundSteps(values) {
84
- if (values.length < 2)
85
- return [];
86
- const sorted = [...values].sort((a, b) => a - b);
87
- const spread = sorted[sorted.length - 1] - sorted[0];
88
- if (spread <= 0)
89
- return [];
90
- // Rounded to the spread, not the value: prices to the £5,000, years to the year.
91
- const unit = Math.max(1, 10 ** Math.floor(Math.log10(spread / 4)));
92
- const step = spread / 4 >= unit * 5 ? unit * 5 : unit;
93
- const round = (value) => Math.round(value / step) * step;
94
- return [...new Set([0.2, 0.4, 0.6, 0.8].map((at) => round(sorted[Math.floor(at * (sorted.length - 1))])))].filter((value) => value > 0);
95
- }
96
- function farEndsOf(schema, graph, offer) {
97
- const kinds = offer.far ?? [];
98
- const seen = new Map();
99
- const wanted = new Set(kinds);
100
- for (const node of graph.allNodes()) {
101
- if (!wanted.has(node.kind))
102
- continue;
103
- seen.set(node.id, labelOf(schema.tryDefinition(node.kind), node));
104
- }
105
- const ends = [...seen.entries()].map(([id, text]) => ({ id, label: text }));
106
- const kept = ends.length <= FAR_ENDS
107
- ? ends
108
- : ends
109
- .map((end) => ({ end, ties: graph.out(end.id).length + graph.in(end.id).length }))
110
- .sort((a, b) => b.ties - a.ties || a.end.label.localeCompare(b.end.label))
111
- .slice(0, FAR_ENDS)
112
- .map((entry) => entry.end);
113
- return kept.sort((a, b) => a.label.localeCompare(b.label));
114
- }
115
- /** A condition in words: "Due date before 2026-10-01", "The list it is on: Today", "Past". */
9
+ /** Below this width of its own the line is a phone's: the count and one "Arrange". */
10
+ export const ARRANGE_NARROW = 520;
11
+ /** A condition in words: "Due before 1 Oct 2026", "The list it is on: Today", "Past". */
116
12
  export function sayCondition(schema, graph, offers, condition) {
117
13
  const offer = offers.filters.find((candidate) => candidate.key === condition.key);
118
14
  if (!offer)
@@ -145,17 +41,37 @@ export function sayCondition(schema, graph, offers, condition) {
145
41
  return `${offer.label}: ${condition.value}`;
146
42
  return `${offer.label}: ${valueWords(schema.tryDefinition(offers.kind), offer.key, condition.value)}`;
147
43
  }
44
+ /** A field's reading inside a sentence: "due date", "the list it is on" — an initialism ("SUV") kept as it is. */
45
+ export const inSentence = (words) => (/^[A-Z][a-z]/.test(words) ? words.charAt(0).toLowerCase() + words.slice(1) : words);
46
+ /** The two directions of a sort, in the words its values read in. */
47
+ export function directionWords(offer) {
48
+ if (offer?.type === "date")
49
+ return { asc: "Earliest first", desc: "Latest first" };
50
+ if (offer?.type === "number")
51
+ return { asc: "Lowest first", desc: "Highest first" };
52
+ if (offer?.type === "boolean")
53
+ return { asc: "No first", desc: "Yes first" };
54
+ if (offer?.type === "choice")
55
+ return { asc: "In their order", desc: "In reverse order" };
56
+ return { asc: "A to Z", desc: "Z to A" };
57
+ }
58
+ /** The lists the line opens, fetched when first wanted (`arrange-lists.tsx`). */
59
+ const LISTS = lazyModule(retryingImport(() => import("./arrange-lists.js")));
60
+ const Lists = LISTS.part((module, props) => _jsx(module.ArrangeLists, { ...props }), { what: "This list", quiet: true });
61
+ /** The lists, fetched now: for a test, or a page that knows a list is about to open. */
62
+ export const preloadArrangeLists = () => LISTS.load();
148
63
  /** What each bar last sent, by its test id and kind (see `ArrangeBar`). */
149
64
  const SENT = new Map();
150
65
  export function ArrangeBar(props) {
151
66
  const { schema, graph, kind, arrangement: given, onChange } = props;
152
67
  const offers = arrangeable(schema, kind);
153
68
  const id = props.testId ?? "arrange";
154
- const sorts = arrangeAllows(props.allow, "sort");
155
- const groups = arrangeAllows(props.allow, "group");
156
- const filters = arrangeAllows(props.allow, "filter");
157
- const words = props.query !== false;
158
- if (!sorts && !groups && !filters && !words)
69
+ const canSort = arrangeAllows(props.allow, "sort") && offers.sorts.length > 1;
70
+ const canGroup = arrangeAllows(props.allow, "group") && offers.groups.length > 0;
71
+ const canFilter = arrangeAllows(props.allow, "filter") && offers.filters.length > 0;
72
+ const words = props.query !== false && props.allow !== false;
73
+ const count = countWords(props.noun, props.kept);
74
+ if (!canSort && !canGroup && !canFilter && !words && !count)
159
75
  return null;
160
76
  /*
161
77
  * TWO CHANGES BEFORE ONE RENDER ARE TWO CHANGES. The bar merged each change
@@ -180,7 +96,7 @@ export function ArrangeBar(props) {
180
96
  sent.current = { words: new Set(), latest: null, at: 0 };
181
97
  SENT.set(memory, sent.current);
182
98
  }
183
- // What the controls show: what the bar last sent while what comes back is its echo.
99
+ // What the line shows: what the bar last sent while what comes back is its echo.
184
100
  const arrangement = sent.current.latest ?? given;
185
101
  const set = (patch) => {
186
102
  // What the bar last sent, read now — not the arrangement this render was drawn with.
@@ -198,115 +114,102 @@ export function ArrangeBar(props) {
198
114
  const rest = conditions.filter((_, index) => index !== at);
199
115
  set({ filter: rest.length > 0 ? rest : undefined });
200
116
  };
201
- const add = (condition) => set({ filter: [...conditions.filter((c) => !(c.key === condition.key && c.value === condition.value)), condition] });
202
- return (_jsxs("div", { "data-testid": `${id}-bar`, role: "group", "aria-label": "Arrange", style: { display: "flex", flexWrap: "wrap", alignItems: "center", gap: "8px 14px", minWidth: 0, maxWidth: "100%", ...props.style }, children: [words ? (_jsxs("label", { style: label, children: [_jsx("span", { className: "graview-visually-hidden", style: { position: "absolute", width: 1, height: 1, overflow: "hidden", clip: "rect(0 0 0 0)" }, children: "Find" }), _jsx("input", { type: "search", "data-testid": `${id}-query`, value: arrangement.query ?? "", placeholder: "Find\u2026", onChange: (event) => set({ query: event.target.value.length > 0 ? event.target.value : undefined }), style: { ...control, width: "min(100%, 220px)" } })] })) : null, sorts && offers.sorts.length > 1 ? (_jsxs("label", { style: label, children: ["Sort by", _jsxs("select", { "data-testid": `${id}-sort`, value: arrangement.sort?.by ?? "", onChange: (event) => set({
203
- sort: event.target.value ? { by: event.target.value, direction: arrangement.sort?.direction ?? "asc" } : undefined,
204
- }), style: { ...choice, maxWidth: "min(100%, 60vw)" }, children: [_jsx("option", { value: "", children: offers.natural ? `as declared (${offers.sorts.find((o) => o.key === offers.natural.by)?.label.toLowerCase() ?? offers.natural.by})` : "as they come" }), offers.sorts.map((offer) => (_jsx("option", { value: offer.key, children: offer.label }, offer.key)))] }), arrangement.sort ? (_jsx("button", { type: "button", "data-testid": `${id}-direction`, "aria-label": arrangement.sort.direction === "asc" ? "Ascending; press for descending" : "Descending; press for ascending", title: arrangement.sort.direction === "asc" ? "Ascending" : "Descending", onClick: () => set({ sort: { by: arrangement.sort.by, direction: arrangement.sort.direction === "asc" ? "desc" : "asc" } }), style: { ...control, minWidth: 32, cursor: "pointer" }, children: arrangement.sort.direction === "asc" ? "↑" : "↓" })) : null] })) : null, groups && offers.groups.length > 0 ? (_jsxs("label", { style: label, children: ["Group by", _jsxs("select", { "data-testid": `${id}-group`, value: arrangement.group?.by ?? "", onChange: (event) => set({ group: event.target.value ? { by: event.target.value } : undefined }), style: { ...choice, maxWidth: "min(100%, 60vw)" }, children: [_jsx("option", { value: "", children: "nothing" }), offers.groups.map((offer) => (_jsx("option", { value: offer.key, children: offer.label }, offer.key)))] }), arrangement.group && offers.groups.find((offer) => offer.key === arrangement.group.by)?.buckets ? (_jsxs("select", { "data-testid": `${id}-bucket`, "aria-label": "How wide a group is", value: arrangement.group.bucket ?? "day", onChange: (event) => set({ group: { by: arrangement.group.by, bucket: event.target.value } }), style: choice, children: [_jsx("option", { value: "day", children: "by day" }), _jsx("option", { value: "week", children: "by week" }), _jsx("option", { value: "month", children: "by month" }), _jsx("option", { value: "year", children: "by year" }), _jsx("option", { value: "decade", children: "by decade" })] })) : null] })) : null, filters && offers.filters.length > 0 ? (_jsx(AddCondition, { schema: schema, graph: graph, offers: offers, testId: id, onAdd: add })) : null, filters
205
- ? conditions.map((condition, at) => (_jsxs("span", { style: chip, "data-testid": `${id}-condition`, children: [sayCondition(schema, graph, offers, condition), _jsx("button", { type: "button", "aria-label": `Remove: ${sayCondition(schema, graph, offers, condition)}`, onClick: () => without(at),
206
- // A control big enough to hit: 24px is the floor the face is held to, and a bare "×" glyph is 16 by 13.
207
- style: { font: "inherit", border: 0, background: "transparent", color: "inherit", cursor: "pointer", padding: 0, lineHeight: 1, minWidth: 24, minHeight: 24, display: "inline-flex", alignItems: "center", justifyContent: "center", borderRadius: 999 }, children: "\u00D7" })] }, `${condition.key}:${condition.value}`)))
208
- : null, props.kept && props.kept.shown !== props.kept.of ? (_jsxs("span", { "data-testid": `${id}-kept`, style: { ...label, marginLeft: "auto" }, children: [props.kept.shown, " of ", props.kept.of] })) : null] }));
117
+ const has = (condition) => conditions.some((c) => c.key === condition.key && c.value === condition.value);
118
+ // A condition already kept is taken off by pressing it again: the list says which are on.
119
+ const toggle = (condition) => has(condition)
120
+ ? without(conditions.findIndex((c) => c.key === condition.key && c.value === condition.value))
121
+ : set({ filter: [...conditions, condition] });
122
+ const sortOffer = arrangement.sort ? offers.sorts.find((offer) => offer.key === arrangement.sort.by) : undefined;
123
+ const groupOffer = arrangement.group ? offers.groups.find((offer) => offer.key === arrangement.group.by) : undefined;
124
+ const ways = directionWords(sortOffer);
125
+ // The lists themselves come when one is first opened (`ArrangeLists`): the line is all a page carries up front.
126
+ const listProps = { schema, graph, offers, arrangement, set, toggle, has, testId: id };
127
+ const sortTrigger = arrangement.sort ? (_jsxs(_Fragment, { children: ["Sorted by ", inSentence(sortOffer?.label ?? arrangement.sort.by), _jsx("span", { "aria-hidden": "true", children: arrangement.sort.direction === "desc" ? " ↓" : " ↑" })] })) : ("Sort");
128
+ const bucket = arrangement.group?.bucket && groupOffer?.buckets ? `, a ${arrangement.group.bucket} each` : "";
129
+ const groupTrigger = arrangement.group ? `Grouped by ${inSentence(groupOffer?.label ?? arrangement.group.by)}${bucket}` : "Group";
130
+ return (_jsxs("div", { "data-testid": `${id}-bar`, role: "group", "aria-label": "Arrange", className: "graview-arrange", style: props.style, onPointerEnter: LISTS.prefetch, onFocus: LISTS.prefetch, children: [_jsx("style", { children: ARRANGE_CSS }), _jsxs("div", { className: "graview-arrange-line", children: [count ? (_jsxs("span", { className: "graview-arrange-count", "data-testid": `${id}-count`, children: [count.kept ? _jsx("span", { "data-testid": `${id}-kept`, children: count.kept }) : null, count.words] })) : null, canSort ? (_jsx("span", { className: "graview-arrange-part graview-arrange-one", children: _jsx(Choice, { testId: `${id}-sort`, value: arrangement.sort?.by ?? "", set: arrangement.sort !== undefined, label: "Sort", name: arrangement.sort ? `Sorted by ${inSentence(sortOffer?.label ?? arrangement.sort.by)}, ${ways[arrangement.sort.direction].toLowerCase()}` : "Sort", list: (done) => _jsx(Lists, { which: "sort", done: done, ...listProps }), children: sortTrigger }) })) : null, canGroup ? (_jsx("span", { className: "graview-arrange-part graview-arrange-one", children: _jsx(Choice, { testId: `${id}-group`, value: arrangement.group?.by ?? "", set: arrangement.group !== undefined, label: "Group", name: groupTrigger, list: (done) => _jsx(Lists, { which: "group", done: done, ...listProps }), children: groupTrigger }) })) : null, canFilter ? (_jsx("span", { className: "graview-arrange-part graview-arrange-one", children: _jsx(Choice, { testId: `${id}-add`, value: "", set: false, label: "Filter", name: conditions.length > 0 ? `Filter — ${conditions.length} on` : "Filter", list: (done) => _jsx(Lists, { which: "filter", done: done, ...listProps }), children: "Filter" }) })) : null, canSort || canGroup || canFilter ? (_jsx("span", { className: "graview-arrange-part graview-arrange-all", children: _jsx(Choice, { testId: `${id}-all`, value: "", set: false, label: "Arrange", name: "Arrange: sort, group and filter", list: (done) => _jsx(Lists, { which: "all", done: done, parts: { sort: canSort, group: canGroup, filter: canFilter }, ...listProps }), children: "Arrange" }) })) : null, conditions.map((condition, at) => {
131
+ const words = sayCondition(schema, graph, offers, condition);
132
+ return (_jsxs("span", { className: "graview-arrange-token", "data-testid": `${id}-condition`, children: [words, _jsx("button", { type: "button", "aria-label": `Remove: ${words}`, title: "Remove", onClick: () => without(at), children: "\u00D7" })] }, `${condition.key}:${condition.value}`));
133
+ }), words ? (_jsxs("label", { className: "graview-arrange-words-at", children: [_jsx("span", { style: VISUALLY_HIDDEN, children: "Find" }), _jsx("input", { type: "search", className: "graview-arrange-words", "data-testid": `${id}-query`, value: arrangement.query ?? "", placeholder: "Find\u2026", onChange: (event) => set({ query: event.target.value.length > 0 ? event.target.value : undefined }) })] })) : null] })] }));
134
+ }
135
+ /** The count in words, and the part of it that says what the arrangement kept when it kept fewer. */
136
+ function countWords(noun, kept) {
137
+ if (!kept)
138
+ return null;
139
+ const narrowed = kept.shown !== kept.of;
140
+ if (!noun)
141
+ return narrowed ? { words: "", kept: `${kept.shown} of ${kept.of}` } : null;
142
+ const word = kept.of === 1 ? noun.one : noun.many;
143
+ return narrowed ? { words: ` ${word}`, kept: `${kept.shown} of ${kept.of}` } : { words: `${kept.of} ${word}` };
209
144
  }
210
145
  /**
211
- * "Add a condition": one select naming the offer, then — for what needs a
212
- * value — a second control for it. Two presses, and the chip appears.
146
+ * One word on the line that opens a short list: the trigger is text and a
147
+ * chevron, a box only while hovered, open or holding the keyboard. Its
148
+ * list opens in the top layer (the popover family's habits: one open at a
149
+ * time, the keyboard goes in — to the choice already made — Escape or a
150
+ * press away closes it and gives the keyboard back), and the arrow keys
151
+ * walk it.
213
152
  */
214
- function AddCondition({ schema, graph, offers, testId, onAdd, }) {
215
- /*
216
- * Every offer's values are known up front — a choice's options, `is`'s
217
- * words, an edge's far ends, a boolean's yes and no — so the whole set is
218
- * one grouped select and one press adds a chip. A date wants typing, so
219
- * it is listed as three entries that ask for the date when chosen.
220
- */
221
- // The day a date's condition is waiting for, asked beside the choice (`AskDay`).
222
- const [asking, setAsking] = useState(null);
223
- const entries = [];
224
- for (const offer of offers.filters) {
225
- if (offer.about === "is") {
226
- for (const word of offer.options ?? [])
227
- entries.push({ value: `is:${word}`, label: word, group: offer.label, condition: { key: "is", value: word } });
228
- }
229
- else if (offer.about === "edge") {
230
- entries.push({ value: `${offer.key}:*`, label: "anything", group: offer.label, condition: { key: offer.key, value: "*" } });
231
- entries.push({ value: `${offer.key}:none`, label: "nothing", group: offer.label, condition: { key: offer.key, value: "none" } });
232
- for (const end of farEndsOf(schema, graph, offer))
233
- entries.push({ value: `${offer.key}:${end.id}`, label: end.label, group: offer.label, condition: { key: offer.key, value: end.id } });
234
- }
235
- else if (offer.type === "date") {
236
- for (const op of ["before", "after", "on"])
237
- entries.push({ value: `${offer.key}:${op}`, label: `${op}…`, group: offer.label, ask: { key: offer.key, op, label: offer.label } });
238
- }
239
- else if (offer.type === "number") {
240
- // A few round steps through what the list holds: one press, never a number typed blind.
241
- const definition = schema.tryDefinition(offers.kind);
242
- const steps = roundSteps(heldValues(graph, offers.kind, offer.key).filter((value) => typeof value === "number"));
243
- for (const op of ["at-most", "at-least"]) {
244
- for (const step of op === "at-most" ? steps : [...steps].reverse()) {
245
- entries.push({ value: `${offer.key}:${op}:${step}`, label: `${op === "at-most" ? "at most" : "at least"} ${valueWords(definition, offer.key, step)}`, group: offer.label, condition: { key: offer.key, value: `${op}:${step}` } });
246
- }
247
- }
248
- }
249
- else if (offer.type === "text") {
250
- // A word field by the values it holds — a make, a color — when they are few enough to be a list rather than a name each.
251
- const held = [...new Set(heldValues(graph, offers.kind, offer.key).filter((value) => typeof value === "string" && value.length > 0 && !value.includes(",")))].sort((a, b) => a.localeCompare(b));
252
- if (held.length >= 2 && held.length <= WORD_VALUES) {
253
- for (const word of held)
254
- entries.push({ value: `${offer.key}:${word}`, label: word, group: offer.label, condition: { key: offer.key, value: word } });
255
- }
256
- }
257
- else if (offer.type === "boolean") {
258
- entries.push({ value: `${offer.key}:true`, label: "yes", group: offer.label, condition: { key: offer.key, value: "true" } });
259
- entries.push({ value: `${offer.key}:false`, label: "no", group: offer.label, condition: { key: offer.key, value: "false" } });
260
- }
261
- else {
262
- for (const option of offer.options ?? [])
263
- entries.push({ value: `${offer.key}:${option}`, label: valueWords(schema.tryDefinition(offers.kind), offer.key, option), group: offer.label, condition: { key: offer.key, value: option } });
264
- }
265
- }
266
- const groups = [...new Set(entries.map((entry) => entry.group))];
267
- return (_jsxs(_Fragment, { children: [_jsxs("label", { style: label, children: [_jsx("span", { style: VISUALLY_HIDDEN, children: "Only" }), _jsxs("select", { "data-testid": `${testId}-add`, value: "", onChange: (event) => {
268
- const entry = entries.find((candidate) => candidate.value === event.target.value);
269
- if (!entry)
270
- return;
271
- if (entry.condition) {
272
- setAsking(null);
273
- onAdd(entry.condition);
274
- }
275
- else if (entry.ask)
276
- setAsking(entry.ask);
277
- }, style: choice, children: [_jsx("option", { value: "", children: "Only\u2026" }), groups.map((group) => (_jsx("optgroup", { label: group, children: entries
278
- .filter((entry) => entry.group === group)
279
- .map((entry) => (_jsx("option", { value: entry.value, children: entry.label }, entry.value))) }, group)))] })] }), asking ? (_jsx(AskDay, { ask: asking, testId: testId, onDay: (day) => {
280
- setAsking(null);
281
- onAdd({ key: asking.key, value: `${asking.op}:${day}` });
282
- }, onCancel: () => setAsking(null) })) : null] }));
153
+ function Choice({ testId, value, set, label, name, list, children, }) {
154
+ const popover = usePopover("arrange", { align: "start" });
155
+ const pane = useRef(null);
156
+ useEffect(() => {
157
+ if (!popover.open)
158
+ return;
159
+ // In at the choice already made, when there is one; else the first entry (the family's own rule).
160
+ pane.current?.querySelector('[aria-pressed="true"]')?.focus({ preventScroll: true });
161
+ }, [popover.open]);
162
+ return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "graview-arrange-open", "data-testid": testId, "data-set": set ? "" : undefined, value: value, "aria-label": name, ...popover.trigger, onClick: popover.toggle, children: [children, _jsx(Chevron, {})] }), popover.open ? (_jsx("div", { ...popover.pane, ref: (element) => {
163
+ popover.pane.ref(element);
164
+ pane.current = element;
165
+ }, role: "group", "aria-label": label, "data-testid": "arrange-list", "data-arrange": testId, className: "graview-arrange-list", style: POPOVER_STYLE, onKeyDown: walk, children: list(() => popover.setOpen(false)) })) : null] }));
166
+ }
167
+ /** The arrow keys walk a list's entries, Home and End go to its ends. */
168
+ function walk(event) {
169
+ if (!["ArrowDown", "ArrowUp", "Home", "End"].includes(event.key))
170
+ return;
171
+ const stops = [...event.currentTarget.querySelectorAll("button:not([disabled]), input")];
172
+ if (stops.length === 0)
173
+ return;
174
+ const at = stops.indexOf(document.activeElement);
175
+ // A date box keeps its own arrows: they change the day.
176
+ if (document.activeElement instanceof HTMLInputElement && (event.key === "ArrowUp" || event.key === "ArrowDown"))
177
+ return;
178
+ event.preventDefault();
179
+ const next = event.key === "Home" ? 0 : event.key === "End" ? stops.length - 1 : event.key === "ArrowDown" ? (at + 1) % stops.length : (at - 1 + stops.length) % stops.length;
180
+ stops[next].focus();
181
+ }
182
+ /** The way a list opens: a chevron drawn, as the place control draws it. */
183
+ function Chevron() {
184
+ return (_jsx("svg", { width: "9", height: "9", viewBox: "0 0 10 10", "aria-hidden": "true", focusable: "false", style: { flex: "0 0 auto", opacity: 0.7 }, children: _jsx("path", { d: "M2 3.5 L5 6.5 L8 3.5", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" }) }));
283
185
  }
284
186
  /*
285
- * WHICH DAY, ASKED IN THE FILTER ITSELF. "Due before…" opened the browser's
286
- * own prompt — "which day? (YYYY-MM-DD)" — a box over the whole page that
287
- * asked a person to type the stored format. The day is asked beside the
288
- * choice that wanted it, with the browser's own date control, and added by
289
- * Enter or "Add"; Escape or × lets it go.
187
+ * NOTHING HERE MAY WIDEN THE PAGE, and nothing is a box at rest. The line
188
+ * wraps; a long choice wraps inside its words. The line is its own
189
+ * container, so a narrow lens in a wide window is narrow too. 28 pixels
190
+ * is each target's floor (24 is the face's), in every engine: there is no
191
+ * native select left for WebKit to draw at its own height.
290
192
  */
291
- function AskDay({ ask, testId, onDay, onCancel }) {
292
- const [day, setDay] = useState("");
293
- const valid = /^\d{4}-\d{2}-\d{2}$/.test(day) && Number(day.slice(0, 4)) >= 1000;
294
- const add = () => {
295
- if (valid)
296
- onDay(day);
297
- };
298
- return (_jsxs("span", { role: "group", "aria-label": `${ask.label} ${ask.op} which day`, "data-testid": `${testId}-ask-day`, style: { display: "inline-flex", alignItems: "center", gap: 6 }, children: [_jsx("span", { "aria-hidden": "true", children: `${ask.label} ${ask.op}` }), _jsx("input", { type: "date", "data-testid": `${testId}-day`, "aria-label": `${ask.label} ${ask.op} which day`, autoFocus: true, value: day, onChange: (event) => setDay(event.target.value), onKeyDown: (event) => {
299
- if (event.key === "Enter") {
300
- event.preventDefault();
301
- add();
302
- }
303
- else if (event.key === "Escape") {
304
- event.preventDefault();
305
- onCancel();
306
- }
307
- }, style: { ...choice, minHeight: 24 } }), _jsx("button", { type: "button", "data-testid": `${testId}-day-add`, disabled: !valid, onClick: add, style: { ...choice, minHeight: 24 }, children: "Add" }), _jsx("button", { type: "button", "aria-label": "Never mind", title: "Never mind", onClick: onCancel, style: { font: "inherit", border: 0, background: "transparent", color: "inherit", cursor: "pointer", padding: 0, minWidth: 24, minHeight: 24 }, children: "\u00D7" })] }));
308
- }
309
- /** A small caption for what an arrangement did, for a surface with no room for the row. */
193
+ const ARRANGE_CSS = `
194
+ .graview-arrange{container-type:inline-size;box-sizing:border-box;width:100%;min-width:0;max-width:100%}
195
+ .graview-arrange-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0;font-size:.875rem;line-height:1.35;color:var(--graview-ink-muted)}
196
+ .graview-arrange-count{margin-right:2px;color:var(--graview-ink-muted)}
197
+ .graview-arrange-part{display:inline-flex;align-items:center;min-width:0}
198
+ .graview-arrange-count~.graview-arrange-part::before{content:"·";margin-right:6px;color:var(--graview-ink-muted)}
199
+ .graview-arrange-open{display:inline-flex;align-items:center;gap:5px;min-height:28px;min-width:0;max-width:100%;margin:0;padding:0 6px;border:1px solid transparent;border-radius:7px;background:none;box-shadow:none;font:inherit;letter-spacing:normal;text-transform:none;text-align:left;color:var(--graview-ink-muted);cursor:pointer}
200
+ .graview-arrange-open[data-set]{color:var(--graview-ink)}
201
+ .graview-arrange-open:hover,.graview-arrange-open[aria-expanded=true]{border-color:var(--graview-edge);color:var(--graview-ink)}
202
+ .graview-arrange :focus-visible,.graview-arrange-list :focus-visible{outline:2px solid var(--graview-accent);outline-offset:1px}
203
+ .graview-arrange-all{display:none}
204
+ @container (max-width: ${ARRANGE_NARROW - 1}px){.graview-arrange-one{display:none}.graview-arrange-all{display:inline-flex}}
205
+ .graview-arrange-token{display:inline-flex;align-items:center;gap:0;min-width:0;padding-left:6px;color:var(--graview-ink);overflow-wrap:anywhere}
206
+ .graview-arrange-token button{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:0;padding:0;border:0;border-radius:6px;background:none;font:inherit;line-height:1;color:var(--graview-ink-muted);cursor:pointer}
207
+ .graview-arrange-token button:hover{color:var(--graview-ink);background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
208
+ .graview-arrange-words-at{display:inline-flex;min-width:0;max-width:100%}
209
+ .graview-arrange-words{box-sizing:border-box;width:min(100%,12rem);min-height:28px;margin:0;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;font:inherit;color:var(--graview-ink)}
210
+ .graview-arrange-words:hover,.graview-arrange-words:focus{border-color:var(--graview-edge)}
211
+ `;
212
+ /** A small caption for what an arrangement did, for a surface with no room for the line. */
310
213
  export function arrangementCaption(arrangement) {
311
214
  const parts = [];
312
215
  if (arrangement.query)
@@ -1 +1 @@
1
- {"version":3,"file":"arrange-bar.js","sourceRoot":"","sources":["../src/arrange-bar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arrange-bar.js","sourceRoot":"","sources":["../src/arrange-bar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { type AnySchema, type Arrangeable, type Arrangement, type ArrangeGraph, type Condition } from "@graview/core";
2
+ /**
3
+ * THE ARRANGING LINE'S LISTS: what "Sort", "Group", "Filter" and "Arrange"
4
+ * open. Fetched when a list is first opened, or when the pointer or the
5
+ * keyboard comes to the line: a page carries only the line up front.
6
+ */
7
+ /**
8
+ * The far ends a menu offers to narrow by. A menu is for choosing, not for
9
+ * reading a catalog: past FAR_ENDS it holds the most connected (the ones a
10
+ * person most likely means), and the search reaches the rest — a select of
11
+ * 1,177 songs was 1,177 elements in every row that offered it (docs/scale.md).
12
+ */
13
+ export declare const FAR_ENDS = 40;
14
+ /** Four round numbers through the spread of what a list holds: £10,000, £15,000, £25,000 — never £23,995. */
15
+ export declare function roundSteps(values: readonly number[]): readonly number[];
16
+ /** One way to narrow, as the Filter list offers it: a condition one press adds, or a day still to ask for. */
17
+ export interface FilterEntry {
18
+ /** `key:value` — what the entry's button carries as its `value`, for a harness to find it by. */
19
+ readonly value: string;
20
+ readonly label: string;
21
+ /** The offer it is under: its heading in the list. */
22
+ readonly group: string;
23
+ readonly condition?: Condition;
24
+ readonly ask?: {
25
+ readonly key: string;
26
+ readonly op: string;
27
+ readonly label: string;
28
+ };
29
+ }
30
+ /**
31
+ * Every way to narrow the kind, known up front — a choice's options, `is`'s
32
+ * words, an edge's far ends, a boolean's yes and no, a few round numbers, a
33
+ * word field's few values — so one press adds a condition. A date wants a
34
+ * day, so it is offered as "before…", "after…" and "on…", which ask for it.
35
+ */
36
+ export declare function filterEntries(schema: AnySchema, graph: ArrangeGraph, offers: Arrangeable): readonly FilterEntry[];
37
+ export interface ListsProps {
38
+ readonly which: "sort" | "group" | "filter" | "all";
39
+ readonly parts?: {
40
+ readonly sort: boolean;
41
+ readonly group: boolean;
42
+ readonly filter: boolean;
43
+ };
44
+ readonly schema: AnySchema;
45
+ readonly graph: ArrangeGraph;
46
+ readonly offers: Arrangeable;
47
+ readonly arrangement: Arrangement;
48
+ readonly set: (patch: Partial<Arrangement>) => void;
49
+ readonly toggle: (condition: Condition) => void;
50
+ readonly has: (condition: Condition) => boolean;
51
+ readonly testId: string;
52
+ readonly done: () => void;
53
+ }
54
+ /** One list, or on a narrow line all three; the keyboard to the choice made once it is drawn. */
55
+ export declare function ArrangeLists(props: ListsProps): import("react").JSX.Element;
56
+ //# sourceMappingURL=arrange-lists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrange-lists.d.ts","sourceRoot":"","sources":["../src/arrange-lists.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,WAAW,EAEhB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EAEf,MAAM,eAAe,CAAC;AAIvB;;;;GAIG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,KAAK,CAAC;AAU3B,6GAA6G;AAC7G,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAUvE;AAsBD,8GAA8G;AAC9G,MAAM,WAAW,WAAW;IAC1B,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACtF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAkCjH;AAID,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/F,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,+BA6E7C"}