@graview/primitives 0.1.18 → 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 (199) hide show
  1. package/dist/app-bar.d.ts +30 -6
  2. package/dist/app-bar.d.ts.map +1 -1
  3. package/dist/app-bar.js +55 -27
  4. package/dist/app-bar.js.map +1 -1
  5. package/dist/arrange-bar.d.ts +42 -25
  6. package/dist/arrange-bar.d.ts.map +1 -1
  7. package/dist/arrange-bar.js +129 -194
  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 +3 -1
  14. package/dist/bar-panes.d.ts.map +1 -1
  15. package/dist/bar-panes.js +36 -21
  16. package/dist/bar-panes.js.map +1 -1
  17. package/dist/chat.d.ts +68 -30
  18. package/dist/chat.d.ts.map +1 -1
  19. package/dist/chat.js +205 -222
  20. package/dist/chat.js.map +1 -1
  21. package/dist/connections.d.ts.map +1 -1
  22. package/dist/connections.js +19 -3
  23. package/dist/connections.js.map +1 -1
  24. package/dist/declared-lens-doors.d.ts +18 -0
  25. package/dist/declared-lens-doors.d.ts.map +1 -1
  26. package/dist/declared-lens-doors.js +25 -3
  27. package/dist/declared-lens-doors.js.map +1 -1
  28. package/dist/declared-lenses.d.ts.map +1 -1
  29. package/dist/declared-lenses.js +4 -7
  30. package/dist/declared-lenses.js.map +1 -1
  31. package/dist/draft-door.d.ts +3 -0
  32. package/dist/draft-door.d.ts.map +1 -0
  33. package/dist/draft-door.js +22 -0
  34. package/dist/draft-door.js.map +1 -0
  35. package/dist/draft-frame.d.ts +25 -0
  36. package/dist/draft-frame.d.ts.map +1 -0
  37. package/dist/draft-frame.js +69 -0
  38. package/dist/draft-frame.js.map +1 -0
  39. package/dist/editable.d.ts +4 -1
  40. package/dist/editable.d.ts.map +1 -1
  41. package/dist/editable.js +9 -8
  42. package/dist/editable.js.map +1 -1
  43. package/dist/find.d.ts.map +1 -1
  44. package/dist/find.js +23 -5
  45. package/dist/find.js.map +1 -1
  46. package/dist/frame.d.ts +5 -4
  47. package/dist/frame.d.ts.map +1 -1
  48. package/dist/frame.js +5 -4
  49. package/dist/frame.js.map +1 -1
  50. package/dist/index.d.ts +14 -7
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +15 -6
  53. package/dist/index.js.map +1 -1
  54. package/dist/lens/board.d.ts.map +1 -1
  55. package/dist/lens/board.js +7 -3
  56. package/dist/lens/board.js.map +1 -1
  57. package/dist/lens/calendar-options.d.ts +8 -1
  58. package/dist/lens/calendar-options.d.ts.map +1 -1
  59. package/dist/lens/calendar-options.js +5 -0
  60. package/dist/lens/calendar-options.js.map +1 -1
  61. package/dist/lens/calendar-view.d.ts.map +1 -1
  62. package/dist/lens/calendar-view.js +2 -2
  63. package/dist/lens/calendar-view.js.map +1 -1
  64. package/dist/lens/columns.d.ts.map +1 -1
  65. package/dist/lens/columns.js +2 -2
  66. package/dist/lens/columns.js.map +1 -1
  67. package/dist/lens/coverage.d.ts.map +1 -1
  68. package/dist/lens/coverage.js +14 -10
  69. package/dist/lens/coverage.js.map +1 -1
  70. package/dist/lens/more.d.ts.map +1 -1
  71. package/dist/lens/more.js +2 -1
  72. package/dist/lens/more.js.map +1 -1
  73. package/dist/lens-keeping.d.ts +17 -0
  74. package/dist/lens-keeping.d.ts.map +1 -0
  75. package/dist/lens-keeping.js +127 -0
  76. package/dist/lens-keeping.js.map +1 -0
  77. package/dist/lines-key.d.ts +12 -0
  78. package/dist/lines-key.d.ts.map +1 -0
  79. package/dist/lines-key.js +74 -0
  80. package/dist/lines-key.js.map +1 -0
  81. package/dist/notice-place.d.ts +3 -3
  82. package/dist/notice-place.d.ts.map +1 -1
  83. package/dist/notice-place.js +4 -4
  84. package/dist/notice-place.js.map +1 -1
  85. package/dist/notices.d.ts +6 -0
  86. package/dist/notices.d.ts.map +1 -1
  87. package/dist/notices.js +7 -1
  88. package/dist/notices.js.map +1 -1
  89. package/dist/pages.d.ts +10 -5
  90. package/dist/pages.d.ts.map +1 -1
  91. package/dist/pages.js +10 -5
  92. package/dist/pages.js.map +1 -1
  93. package/dist/places.d.ts +0 -24
  94. package/dist/places.d.ts.map +1 -1
  95. package/dist/places.js +5 -1
  96. package/dist/places.js.map +1 -1
  97. package/dist/profile.d.ts +7 -1
  98. package/dist/profile.d.ts.map +1 -1
  99. package/dist/profile.js +2 -2
  100. package/dist/profile.js.map +1 -1
  101. package/dist/quick-relations.d.ts.map +1 -1
  102. package/dist/quick-relations.js +2 -2
  103. package/dist/quick-relations.js.map +1 -1
  104. package/dist/reader-lenses.d.ts +21 -0
  105. package/dist/reader-lenses.d.ts.map +1 -0
  106. package/dist/reader-lenses.js +27 -0
  107. package/dist/reader-lenses.js.map +1 -0
  108. package/dist/relation-key.d.ts +2 -0
  109. package/dist/relation-key.d.ts.map +1 -1
  110. package/dist/relation-key.js +13 -23
  111. package/dist/relation-key.js.map +1 -1
  112. package/dist/rule-line.d.ts +36 -0
  113. package/dist/rule-line.d.ts.map +1 -0
  114. package/dist/rule-line.js +91 -0
  115. package/dist/rule-line.js.map +1 -0
  116. package/dist/scene-bar.d.ts +29 -0
  117. package/dist/scene-bar.d.ts.map +1 -0
  118. package/dist/scene-bar.js +72 -0
  119. package/dist/scene-bar.js.map +1 -0
  120. package/dist/scene-css.d.ts.map +1 -1
  121. package/dist/scene-css.js +525 -0
  122. package/dist/scene-css.js.map +1 -1
  123. package/dist/scene.d.ts +5 -2
  124. package/dist/scene.d.ts.map +1 -1
  125. package/dist/scene.js +5 -1
  126. package/dist/scene.js.map +1 -1
  127. package/dist/seat-field.d.ts +58 -0
  128. package/dist/seat-field.d.ts.map +1 -0
  129. package/dist/seat-field.js +171 -0
  130. package/dist/seat-field.js.map +1 -0
  131. package/dist/seat-move.d.ts +32 -0
  132. package/dist/seat-move.d.ts.map +1 -0
  133. package/dist/seat-move.js +56 -0
  134. package/dist/seat-move.js.map +1 -0
  135. package/dist/seat-panel.d.ts +37 -0
  136. package/dist/seat-panel.d.ts.map +1 -0
  137. package/dist/seat-panel.js +134 -0
  138. package/dist/seat-panel.js.map +1 -0
  139. package/dist/seat.d.ts +20 -58
  140. package/dist/seat.d.ts.map +1 -1
  141. package/dist/seat.js +28 -45
  142. package/dist/seat.js.map +1 -1
  143. package/dist/seeding.d.ts.map +1 -1
  144. package/dist/seeding.js +4 -4
  145. package/dist/seeding.js.map +1 -1
  146. package/dist/shell.d.ts +25 -21
  147. package/dist/shell.d.ts.map +1 -1
  148. package/dist/shell.js +46 -116
  149. package/dist/shell.js.map +1 -1
  150. package/dist/spec-css.d.ts.map +1 -1
  151. package/dist/spec-css.js +2 -0
  152. package/dist/spec-css.js.map +1 -1
  153. package/dist/spec-views.d.ts.map +1 -1
  154. package/dist/spec-views.js +10 -2
  155. package/dist/spec-views.js.map +1 -1
  156. package/dist/subject.d.ts +4 -2
  157. package/dist/subject.d.ts.map +1 -1
  158. package/dist/subject.js +12 -8
  159. package/dist/subject.js.map +1 -1
  160. package/dist/theme.d.ts.map +1 -1
  161. package/dist/theme.js +6 -523
  162. package/dist/theme.js.map +1 -1
  163. package/dist/view-doors.d.ts.map +1 -1
  164. package/dist/view-doors.js +7 -0
  165. package/dist/view-doors.js.map +1 -1
  166. package/dist/workbench/activity.d.ts.map +1 -1
  167. package/dist/workbench/activity.js +9 -9
  168. package/dist/workbench/activity.js.map +1 -1
  169. package/dist/workbench/back-out.js +3 -3
  170. package/dist/workbench/back-out.js.map +1 -1
  171. package/dist/workbench/inspector.d.ts +11 -6
  172. package/dist/workbench/inspector.d.ts.map +1 -1
  173. package/dist/workbench/inspector.js +42 -56
  174. package/dist/workbench/inspector.js.map +1 -1
  175. package/dist/workbench/standing.d.ts +8 -2
  176. package/dist/workbench/standing.d.ts.map +1 -1
  177. package/dist/workbench/standing.js +9 -4
  178. package/dist/workbench/standing.js.map +1 -1
  179. package/dist/workbench/trail.d.ts +10 -17
  180. package/dist/workbench/trail.d.ts.map +1 -1
  181. package/dist/workbench/trail.js +29 -41
  182. package/dist/workbench/trail.js.map +1 -1
  183. package/package.json +7 -7
  184. package/dist/companion.d.ts +0 -58
  185. package/dist/companion.d.ts.map +0 -1
  186. package/dist/companion.js +0 -463
  187. package/dist/companion.js.map +0 -1
  188. package/dist/ladder.d.ts +0 -2
  189. package/dist/ladder.d.ts.map +0 -1
  190. package/dist/ladder.js +0 -48
  191. package/dist/ladder.js.map +0 -1
  192. package/dist/popover.d.ts +0 -21
  193. package/dist/popover.d.ts.map +0 -1
  194. package/dist/popover.js +0 -28
  195. package/dist/popover.js.map +0 -1
  196. package/dist/wordmark.d.ts +0 -15
  197. package/dist/wordmark.d.ts.map +0 -1
  198. package/dist/wordmark.js +0 -50
  199. package/dist/wordmark.js.map +0 -1
@@ -1,116 +1,14 @@
1
- import { jsx as _jsx, jsxs as _jsxs } 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
- import { labelOf, valueWords, } from "@graview/core";
3
+ import { dayAsRead, labelOf, valueWords, } from "@graview/core";
4
+ import { retryingImport } from "@graview/core/retry";
5
+ import { lazyModule, POPOVER_STYLE, usePopover } from "@graview/react/provider";
6
+ import { useEffect, useRef } from "react";
7
+ import { VISUALLY_HIDDEN } from "./primitives/measure.js";
4
8
  export { arrangementOf, withArrangement } from "./arrangement.js";
5
- /*
6
- * NOTHING HERE MAY WIDEN THE PAGE. A select is as wide as its longest
7
- * option, and at a reader's own text size — 32px root on a 390px phone —
8
- * "as declared (due date)" alone pushed the tasks page sideways. Every
9
- * control caps at the row's width and the row wraps; a long option is cut
10
- * inside its box rather than carried outside it.
11
- */
12
- const control = {
13
- font: "inherit",
14
- fontSize: "0.875rem",
15
- minHeight: 32,
16
- minWidth: 0,
17
- maxWidth: "100%",
18
- padding: "4px 8px",
19
- borderRadius: 8,
20
- border: "1px solid var(--graview-edge)",
21
- background: "var(--graview-panel)",
22
- color: "var(--graview-ink)",
23
- textOverflow: "ellipsis",
24
- };
25
- /*
26
- * A SELECT THAT KEEPS ITS FLOOR IN EVERY ENGINE. WebKit draws a native
27
- * select at its own height and ignores `min-height`: at phone width every
28
- * arrange bar's select was 22 pixels tall in WebKit and 32 elsewhere —
29
- * under the 24 a target needs, measured by a check that had only ever run
30
- * in Chromium (the third walk's lesson, in the fifth). With the native
31
- * appearance off the floor holds, and the chevron is drawn in the text's
32
- * color the way the places menu draws it.
33
- */
34
- const choice = {
35
- ...control,
36
- appearance: "none",
37
- WebkitAppearance: "none",
38
- paddingRight: 24,
39
- backgroundImage: "linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%)",
40
- backgroundPosition: "calc(100% - 13px) 55%, calc(100% - 9px) 55%",
41
- backgroundSize: "4px 4px, 4px 4px",
42
- backgroundRepeat: "no-repeat",
43
- };
44
- const label = {
45
- display: "inline-flex",
46
- alignItems: "center",
47
- flexWrap: "wrap",
48
- gap: 6,
49
- minWidth: 0,
50
- maxWidth: "100%",
51
- fontSize: "0.875rem",
52
- color: "var(--graview-ink-muted)",
53
- };
54
- const chip = {
55
- display: "inline-flex",
56
- alignItems: "center",
57
- gap: 6,
58
- minHeight: 28,
59
- padding: "0 2px 0 10px",
60
- borderRadius: 999,
61
- border: "1px solid var(--graview-edge)",
62
- background: "var(--graview-panel)",
63
- color: "var(--graview-ink)",
64
- fontSize: "0.8125rem",
65
- };
66
- /** The far ends an edge condition may name, from the graph. */
67
- /**
68
- * The far ends a menu offers to narrow by. A menu is for choosing, not for
69
- * reading a catalog: past FAR_ENDS it holds the most connected (the ones a
70
- * person most likely means), and the search reaches the rest — a select of
71
- * 1,177 songs was 1,177 elements in every row that offered it (docs/scale.md).
72
- */
73
- export const FAR_ENDS = 40;
74
- /** How many distinct values a word field may hold and still be offered as a list to pick from. */
75
- const WORD_VALUES = 60;
76
- /** Every value one field holds across a kind. */
77
- function heldValues(graph, kind, key) {
78
- return graph.allNodes().filter((node) => node.kind === kind).map((node) => node[key]);
79
- }
80
- /** Four round numbers through the spread of what a list holds: £10,000, £15,000, £25,000 — never £23,995. */
81
- export function roundSteps(values) {
82
- if (values.length < 2)
83
- return [];
84
- const sorted = [...values].sort((a, b) => a - b);
85
- const spread = sorted[sorted.length - 1] - sorted[0];
86
- if (spread <= 0)
87
- return [];
88
- // Rounded to the spread, not the value: prices to the £5,000, years to the year.
89
- const unit = Math.max(1, 10 ** Math.floor(Math.log10(spread / 4)));
90
- const step = spread / 4 >= unit * 5 ? unit * 5 : unit;
91
- const round = (value) => Math.round(value / step) * step;
92
- 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);
93
- }
94
- function farEndsOf(schema, graph, offer) {
95
- const kinds = offer.far ?? [];
96
- const seen = new Map();
97
- const wanted = new Set(kinds);
98
- for (const node of graph.allNodes()) {
99
- if (!wanted.has(node.kind))
100
- continue;
101
- seen.set(node.id, labelOf(schema.tryDefinition(node.kind), node));
102
- }
103
- const ends = [...seen.entries()].map(([id, text]) => ({ id, label: text }));
104
- const kept = ends.length <= FAR_ENDS
105
- ? ends
106
- : ends
107
- .map((end) => ({ end, ties: graph.out(end.id).length + graph.in(end.id).length }))
108
- .sort((a, b) => b.ties - a.ties || a.end.label.localeCompare(b.end.label))
109
- .slice(0, FAR_ENDS)
110
- .map((entry) => entry.end);
111
- return kept.sort((a, b) => a.label.localeCompare(b.label));
112
- }
113
- /** 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". */
114
12
  export function sayCondition(schema, graph, offers, condition) {
115
13
  const offer = offers.filters.find((candidate) => candidate.key === condition.key);
116
14
  if (!offer)
@@ -127,7 +25,8 @@ export function sayCondition(schema, graph, offers, condition) {
127
25
  }
128
26
  if (offer.type === "date") {
129
27
  const [op, date] = condition.value.split(":");
130
- return `${offer.label} ${op} ${date ?? ""}`.trim();
28
+ // The day as a person reads it ("Due before 1 Sep 2026"), as the chip's card says it.
29
+ return `${offer.label} ${op} ${date ? dayAsRead(date) : ""}`.trim();
131
30
  }
132
31
  if (offer.type === "boolean")
133
32
  return `${offer.label}: ${condition.value === "true" ? "yes" : "no"}`;
@@ -142,17 +41,37 @@ export function sayCondition(schema, graph, offers, condition) {
142
41
  return `${offer.label}: ${condition.value}`;
143
42
  return `${offer.label}: ${valueWords(schema.tryDefinition(offers.kind), offer.key, condition.value)}`;
144
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();
145
63
  /** What each bar last sent, by its test id and kind (see `ArrangeBar`). */
146
64
  const SENT = new Map();
147
65
  export function ArrangeBar(props) {
148
66
  const { schema, graph, kind, arrangement: given, onChange } = props;
149
67
  const offers = arrangeable(schema, kind);
150
68
  const id = props.testId ?? "arrange";
151
- const sorts = arrangeAllows(props.allow, "sort");
152
- const groups = arrangeAllows(props.allow, "group");
153
- const filters = arrangeAllows(props.allow, "filter");
154
- const words = props.query !== false;
155
- 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)
156
75
  return null;
157
76
  /*
158
77
  * TWO CHANGES BEFORE ONE RENDER ARE TWO CHANGES. The bar merged each change
@@ -177,7 +96,7 @@ export function ArrangeBar(props) {
177
96
  sent.current = { words: new Set(), latest: null, at: 0 };
178
97
  SENT.set(memory, sent.current);
179
98
  }
180
- // 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.
181
100
  const arrangement = sent.current.latest ?? given;
182
101
  const set = (patch) => {
183
102
  // What the bar last sent, read now — not the arrangement this render was drawn with.
@@ -195,86 +114,102 @@ export function ArrangeBar(props) {
195
114
  const rest = conditions.filter((_, index) => index !== at);
196
115
  set({ filter: rest.length > 0 ? rest : undefined });
197
116
  };
198
- const add = (condition) => set({ filter: [...conditions.filter((c) => !(c.key === condition.key && c.value === condition.value)), condition] });
199
- 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({
200
- sort: event.target.value ? { by: event.target.value, direction: arrangement.sort?.direction ?? "asc" } : undefined,
201
- }), 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
202
- ? 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),
203
- // A control big enough to hit: 24px is the floor the face is held to, and a bare "×" glyph is 16 by 13.
204
- 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}`)))
205
- : 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}` };
206
144
  }
207
145
  /**
208
- * "Add a condition": one select naming the offer, then — for what needs a
209
- * 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.
210
152
  */
211
- function AddCondition({ schema, graph, offers, testId, onAdd, }) {
212
- /*
213
- * Every offer's values are known up front — a choice's options, `is`'s
214
- * words, an edge's far ends, a boolean's yes and no — so the whole set is
215
- * one grouped select and one press adds a chip. A date wants typing, so
216
- * it is listed as three entries that ask for the date when chosen.
217
- */
218
- const entries = [];
219
- for (const offer of offers.filters) {
220
- if (offer.about === "is") {
221
- for (const word of offer.options ?? [])
222
- entries.push({ value: `is:${word}`, label: word, group: offer.label, condition: { key: "is", value: word } });
223
- }
224
- else if (offer.about === "edge") {
225
- entries.push({ value: `${offer.key}:*`, label: "anything", group: offer.label, condition: { key: offer.key, value: "*" } });
226
- entries.push({ value: `${offer.key}:none`, label: "nothing", group: offer.label, condition: { key: offer.key, value: "none" } });
227
- for (const end of farEndsOf(schema, graph, offer))
228
- entries.push({ value: `${offer.key}:${end.id}`, label: end.label, group: offer.label, condition: { key: offer.key, value: end.id } });
229
- }
230
- else if (offer.type === "date") {
231
- for (const op of ["before", "after", "on"])
232
- entries.push({ value: `${offer.key}:${op}`, label: `${op}…`, group: offer.label, ask: { key: offer.key, op, label: offer.label } });
233
- }
234
- else if (offer.type === "number") {
235
- // A few round steps through what the list holds: one press, never a number typed blind.
236
- const definition = schema.tryDefinition(offers.kind);
237
- const steps = roundSteps(heldValues(graph, offers.kind, offer.key).filter((value) => typeof value === "number"));
238
- for (const op of ["at-most", "at-least"]) {
239
- for (const step of op === "at-most" ? steps : [...steps].reverse()) {
240
- 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}` } });
241
- }
242
- }
243
- }
244
- else if (offer.type === "text") {
245
- // 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.
246
- 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));
247
- if (held.length >= 2 && held.length <= WORD_VALUES) {
248
- for (const word of held)
249
- entries.push({ value: `${offer.key}:${word}`, label: word, group: offer.label, condition: { key: offer.key, value: word } });
250
- }
251
- }
252
- else if (offer.type === "boolean") {
253
- entries.push({ value: `${offer.key}:true`, label: "yes", group: offer.label, condition: { key: offer.key, value: "true" } });
254
- entries.push({ value: `${offer.key}:false`, label: "no", group: offer.label, condition: { key: offer.key, value: "false" } });
255
- }
256
- else {
257
- for (const option of offer.options ?? [])
258
- entries.push({ value: `${offer.key}:${option}`, label: valueWords(schema.tryDefinition(offers.kind), offer.key, option), group: offer.label, condition: { key: offer.key, value: option } });
259
- }
260
- }
261
- const groups = [...new Set(entries.map((entry) => entry.group))];
262
- return (_jsxs("label", { style: label, children: ["Only", _jsxs("select", { "data-testid": `${testId}-add`, value: "", onChange: (event) => {
263
- const entry = entries.find((candidate) => candidate.value === event.target.value);
264
- if (!entry)
265
- return;
266
- if (entry.condition)
267
- onAdd(entry.condition);
268
- else if (entry.ask) {
269
- const date = typeof window !== "undefined" ? window.prompt(`${entry.ask.label} ${entry.ask.op} which day? (YYYY-MM-DD)`) : null;
270
- if (date && /^\d{4}-\d{2}-\d{2}$/.test(date))
271
- onAdd({ key: entry.ask.key, value: `${entry.ask.op}:${date}` });
272
- }
273
- }, style: choice, children: [_jsx("option", { value: "", children: "only\u2026" }), groups.map((group) => (_jsx("optgroup", { label: group, children: entries
274
- .filter((entry) => entry.group === group)
275
- .map((entry) => (_jsx("option", { value: entry.value, children: entry.label }, entry.value))) }, group)))] })] }));
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();
276
181
  }
277
- /** A small caption for what an arrangement did, for a surface with no room for the row. */
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" }) }));
185
+ }
186
+ /*
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.
192
+ */
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. */
278
213
  export function arrangementCaption(arrangement) {
279
214
  const parts = [];
280
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"}