@issuegraph/viewer 0.5.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clusters.d.ts +116 -0
- package/dist/clusters.d.ts.map +1 -1
- package/dist/clusters.js +85 -2
- package/dist/clusters.js.map +1 -1
- package/dist/document.d.ts +76 -5
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +19 -1
- package/dist/document.js.map +1 -1
- package/dist/index.d.ts +14 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +28 -0
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +7 -2
- package/dist/layout.js.map +1 -1
- package/dist/marks.d.ts +105 -0
- package/dist/marks.d.ts.map +1 -0
- package/dist/marks.js +430 -0
- package/dist/marks.js.map +1 -0
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +31 -0
- package/dist/navigation.js.map +1 -1
- package/dist/parts.d.ts +23 -0
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +64 -2
- package/dist/parts.js.map +1 -1
- package/dist/projections/graph.d.ts +15 -0
- package/dist/projections/graph.d.ts.map +1 -1
- package/dist/projections/graph.js +68 -14
- package/dist/projections/graph.js.map +1 -1
- package/dist/projections/linear.d.ts +45 -0
- package/dist/projections/linear.d.ts.map +1 -1
- package/dist/projections/linear.js +65 -12
- package/dist/projections/linear.js.map +1 -1
- package/dist/projections/tree.d.ts.map +1 -1
- package/dist/projections/tree.js +3 -0
- package/dist/projections/tree.js.map +1 -1
- package/dist/styles.d.ts +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +472 -0
- package/dist/styles.js.map +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +47 -0
- package/dist/theme.js.map +1 -1
- package/package.json +1 -1
package/dist/styles.js
CHANGED
|
@@ -22,6 +22,285 @@
|
|
|
22
22
|
* hairlines — and a host that wants the panel suppressed overrides the four
|
|
23
23
|
* properties on `.ig-viewer`.
|
|
24
24
|
*/
|
|
25
|
+
/**
|
|
26
|
+
* §17j's rail density, written once and emitted under two keys.
|
|
27
|
+
*
|
|
28
|
+
* ## Why this is a function and not a block
|
|
29
|
+
*
|
|
30
|
+
* The density has to be reachable two ways — by the container's width, which is
|
|
31
|
+
* §17j's own rule, and by a consumer who disagrees with the crossover this
|
|
32
|
+
* package picked. CSS cannot express "this condition OR that selector" across
|
|
33
|
+
* an `@container` boundary: a rule inside the query cannot also be a rule
|
|
34
|
+
* outside it, so the declarations would have to be written twice. The
|
|
35
|
+
* stylesheet is already a template literal, so they are written once here and
|
|
36
|
+
* interpolated twice instead.
|
|
37
|
+
*
|
|
38
|
+
* `scope` is a selector the whole block hangs off, and every rule below is
|
|
39
|
+
* RELATIVE to it. The original block carried its own `.ig-viewer` prefixes on
|
|
40
|
+
* about half its rules; those are gone, because the scope supplies one and two
|
|
41
|
+
* would never match.
|
|
42
|
+
*
|
|
43
|
+
* ## What it does to specificity, which is a gain rather than a risk
|
|
44
|
+
*
|
|
45
|
+
* Every selector here gains the scope's two compound units, so each dense rule
|
|
46
|
+
* beats the base rule it overrides by SPECIFICITY rather than by source order.
|
|
47
|
+
* One of these already had to be hand-scoped for exactly that reason — the
|
|
48
|
+
* together-unit row, where a container query adds no specificity and the base
|
|
49
|
+
* rule further down the file won, leaving the unit row drawn with nothing in
|
|
50
|
+
* it. That hazard is now closed for the whole block rather than at one site.
|
|
51
|
+
*/
|
|
52
|
+
function railDensity(scope) {
|
|
53
|
+
return `
|
|
54
|
+
${scope} .ig-slot {
|
|
55
|
+
align-items: center;
|
|
56
|
+
grid-template-columns: var(--ig-rank-column-dense) 1fr auto;
|
|
57
|
+
min-height: var(--ig-row-height-dense);
|
|
58
|
+
padding-block: var(--ig-row-padding-block-dense);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* TWO LINES, AND NEITHER WRAPS. A wrapping title is what turns a 53px row
|
|
62
|
+
into a 106px one, so the truncation is not cosmetic — it is what makes the
|
|
63
|
+
height a property of the row rather than of its longest title. */
|
|
64
|
+
${scope} .ig-slot .ig-row-head {
|
|
65
|
+
gap: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
${scope} .ig-slot .ig-title {
|
|
69
|
+
line-height: var(--ig-row-title-line);
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
text-overflow: ellipsis;
|
|
72
|
+
white-space: nowrap;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* STEP 5 OF THE DROP ORDER, AND IT IS LAST FOR A REASON '17j' STATES:
|
|
76
|
+
*"A row without a title is not a row."* Everything above leaves first. */
|
|
77
|
+
${scope} .ig-slot .ig-row-body {
|
|
78
|
+
gap: var(--ig-row-line-gap);
|
|
79
|
+
min-width: 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* LINE 2, AND IT DOES NOT WRAP. '17j' draws it as one mono run —
|
|
83
|
+
'#512 . P0 . blocked-by #488' — so the chips sit ON the identity's line
|
|
84
|
+
rather than under it. 'nowrap' is what makes the 53px a property of the
|
|
85
|
+
ROW: one long title or one extra badge would otherwise buy a second line
|
|
86
|
+
and double the height, which is exactly how this rail reached 408px. */
|
|
87
|
+
${scope} .ig-slot .ig-row-meta {
|
|
88
|
+
align-items: center;
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-wrap: nowrap;
|
|
91
|
+
gap: var(--ig-space-tight);
|
|
92
|
+
line-height: var(--ig-row-meta-line);
|
|
93
|
+
min-width: 0;
|
|
94
|
+
overflow: hidden;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* The chips keep their own row semantics and stop wrapping, so what does not
|
|
98
|
+
fit is clipped rather than stacked. The drop order above decides WHICH
|
|
99
|
+
chips are there to clip; this only decides they stay on the line. */
|
|
100
|
+
${scope} .ig-slot .ig-row-meta .ig-badges {
|
|
101
|
+
flex-wrap: nowrap;
|
|
102
|
+
min-width: 0;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* The issue number never shrinks away — '17j' lists it among the five things
|
|
106
|
+
never dropped at any width. The title truncates first and the chips clip;
|
|
107
|
+
the number holds its ground. */
|
|
108
|
+
${scope} .ig-slot .ig-row-meta .ig-id {
|
|
109
|
+
flex: none;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* AT RAIL DENSITY LINE 2 IS TEXT, NOT PILLS — and this is read off the frame
|
|
113
|
+
rather than inferred from the height. '17j' draws the meta line as a single
|
|
114
|
+
mono run, '#512 . P0 . blocked-by #488': no outlines, no fills, just the
|
|
115
|
+
glyph and the words. §16a's wider panel is where they are chips.
|
|
116
|
+
|
|
117
|
+
IT IS ALSO WHAT MAKES 53px REACHABLE. A bordered chip is its padding plus
|
|
118
|
+
its stroke plus its line box, so a line of them cannot be 15px however the
|
|
119
|
+
line-height is set — the flex row grows to its tallest item and the row
|
|
120
|
+
followed it to 74px. Removing the chrome removes the reason.
|
|
121
|
+
|
|
122
|
+
THE FOUR REDUNDANT CHANNELS SURVIVE THIS, which is the thing worth
|
|
123
|
+
checking before doing it: dash, terminal and glyph are untouched, and hue
|
|
124
|
+
moves from the border to the text it was outlining. '17j' names the hold
|
|
125
|
+
GLYPH among the five things never dropped, and it is still drawn. */
|
|
126
|
+
${scope} .ig-slot .ig-row-meta .ig-badge {
|
|
127
|
+
background: none;
|
|
128
|
+
border: 0;
|
|
129
|
+
border-radius: 0;
|
|
130
|
+
padding: 0;
|
|
131
|
+
/* AND THE TEXT INSIDE A CHIP DOES NOT WRAP EITHER. Stopping the ROW from
|
|
132
|
+
wrapping is not enough: a chip squeezed by its neighbours wraps its own
|
|
133
|
+
label instead, and 'signals disagree' at 84px became two 15px lines and
|
|
134
|
+
took the row to 67px while every sibling sat at 53. One row in seven,
|
|
135
|
+
which is exactly the kind of thing that survives a review and does not
|
|
136
|
+
survive a measurement. What does not fit is clipped, per the drop
|
|
137
|
+
order. */
|
|
138
|
+
white-space: nowrap;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* AND THE SWAP, AT RAIL DENSITY. '17j' draws a together unit here as a
|
|
142
|
+
marker inline with an ordinary title at the ordinary 53px, so the head
|
|
143
|
+
comes back and the enclosure stands down. One row, one rank, in both
|
|
144
|
+
densities - RULINGS.md section 1 - drawn the way each width can afford. */
|
|
145
|
+
/* SCOPED WITH '.ig-viewer' SO ORDER CANNOT DECIDE THIS. A container query
|
|
146
|
+
adds no specificity, so this rule and the wide-density one it overrides
|
|
147
|
+
were an even 0,3,0 and the LATER of the two won — which put the base rule,
|
|
148
|
+
written further down the file, in charge of both densities and left the
|
|
149
|
+
unit row showing nothing but its em dash. Measured, not spotted: every row
|
|
150
|
+
was 53px and one of them was empty. The extra class makes the override win
|
|
151
|
+
on specificity, where it does not depend on where anyone adds a rule
|
|
152
|
+
later. */
|
|
153
|
+
${scope} .ig-slot[data-unit='true'] > .ig-row-body > .ig-row-head {
|
|
154
|
+
display: flex;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
${scope} .ig-slot[data-unit='true'] .ig-unit-mark,
|
|
158
|
+
${scope} .ig-slot[data-unit='true'] .ig-unit {
|
|
159
|
+
display: none;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* The marker itself: the glyph and the count, on the title's line. It is a
|
|
163
|
+
COUNT and not a pill here because 53px has no room for one, and because
|
|
164
|
+
the pill's words are already the accessible name's. */
|
|
165
|
+
${scope} .ig-unit-count {
|
|
166
|
+
color: var(--ig-edge-together-with);
|
|
167
|
+
display: inline;
|
|
168
|
+
font-family: var(--ig-font-mono);
|
|
169
|
+
margin-right: var(--ig-space-tight);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* THE FOOTER ROWS TOO, AND THIS IS THE POPULATION THE ROW FIX MISSED.
|
|
173
|
+
A footer entry is deliberately ONE LINE and shorter than a ranked row -
|
|
174
|
+
16a gives it no rank, no station and no explanation block, because it is
|
|
175
|
+
not a fact about the work. That part was right. What was not governed is
|
|
176
|
+
its TITLE: it wrapped, and the excluded row carrying a canonical reference
|
|
177
|
+
ran to 73px while its siblings sat at 36. A footer row taller than a
|
|
178
|
+
ranked row inverts the whole point of the group.
|
|
179
|
+
|
|
180
|
+
THE DEFECT IS THE ONE ALREADY FIXED ON .ig-slot, ONE ROW KIND OVER: a
|
|
181
|
+
title with nothing stopping it wrapping takes the row with it. Fixed at
|
|
182
|
+
the class this time rather than at the site - the rail renders three row
|
|
183
|
+
kinds and the first pass governed two. */
|
|
184
|
+
${scope} .ig-footer-row .ig-title {
|
|
185
|
+
line-height: var(--ig-row-title-line);
|
|
186
|
+
min-width: 0;
|
|
187
|
+
overflow: hidden;
|
|
188
|
+
text-overflow: ellipsis;
|
|
189
|
+
white-space: nowrap;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
${scope} .ig-footer-row .ig-badges {
|
|
193
|
+
flex-wrap: nowrap;
|
|
194
|
+
min-width: 0;
|
|
195
|
+
overflow: hidden;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* AND THE CHIPS LOSE THEIR CHROME HERE TOO, which is what actually makes a
|
|
199
|
+
footer entry ONE LINE. 16a draws it as "a label chip, a title and an
|
|
200
|
+
identity, on one line"; a bordered chip is padding plus stroke plus line
|
|
201
|
+
box, so a row carrying any relationship badge stood at 36px against 22px
|
|
202
|
+
for one carrying none - and the badge block, not the title, was the last
|
|
203
|
+
thing driving it.
|
|
204
|
+
|
|
205
|
+
MEASURED IN TWO PASSES, WHICH IS THE POINT. Stopping after the title fix
|
|
206
|
+
left the footer group at two heights and looked finished: the row that had
|
|
207
|
+
been 73px was down to 36 and matched its siblings, so the obvious check
|
|
208
|
+
passed. It was the SECOND measurement - why 22 and why 36 - that found the
|
|
209
|
+
badges. A class is not fixed until nothing in it varies for a reason you
|
|
210
|
+
have not named. */
|
|
211
|
+
${scope} .ig-footer-row .ig-badge {
|
|
212
|
+
background: none;
|
|
213
|
+
border: 0;
|
|
214
|
+
border-radius: 0;
|
|
215
|
+
padding: 0;
|
|
216
|
+
white-space: nowrap;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* THE THIRD AND LAST MEMBER OF THE CLASS: the identity. An excluded row
|
|
220
|
+
carries TWO - its own, and the canonical it defers to ('455 -> 512') - and
|
|
221
|
+
the second wrapped, which is why that row alone stood at 30px when the
|
|
222
|
+
others reached 17. Same defect as the title and the chips, third element,
|
|
223
|
+
found by asking the same question a third time rather than by stopping at
|
|
224
|
+
the first uniform-looking answer. */
|
|
225
|
+
${scope} .ig-footer-row .ig-id {
|
|
226
|
+
white-space: nowrap;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* THE NOW STRIP AT RAIL DENSITY. '17j' draws it as the first row of the rail
|
|
230
|
+
at all three backlog sizes, in the same rhythm as the rows beneath it -
|
|
231
|
+
RULINGS.md section 4: "a single now strip as the first row of the rail,
|
|
232
|
+
above rank 1, on a raised surface, carrying no rank number".
|
|
233
|
+
|
|
234
|
+
THE RANK SLOT IS ALREADY RIGHT AND IS NOT TOUCHED HERE: the strip carries a
|
|
235
|
+
'now' mark where a rank would be, never a number, which is the half of
|
|
236
|
+
section 4 the build already had. What was wrong was only its height. */
|
|
237
|
+
${scope} .ig-now-row {
|
|
238
|
+
min-height: var(--ig-row-height-dense);
|
|
239
|
+
padding-block: var(--ig-row-padding-block-dense);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
${scope} .ig-now-row .ig-row-head {
|
|
243
|
+
gap: 0;
|
|
244
|
+
min-width: 0;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
${scope} .ig-now-row .ig-title {
|
|
248
|
+
line-height: var(--ig-row-title-line);
|
|
249
|
+
overflow: hidden;
|
|
250
|
+
text-overflow: ellipsis;
|
|
251
|
+
white-space: nowrap;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
${scope} .ig-now-row .ig-id {
|
|
255
|
+
line-height: var(--ig-row-meta-line);
|
|
256
|
+
overflow: hidden;
|
|
257
|
+
text-overflow: ellipsis;
|
|
258
|
+
white-space: nowrap;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/* HIDDEN HERE, AND NOT YET EXPANDABLE — WHICH IS HALF OF WHAT 17j ASKS FOR.
|
|
262
|
+
The tile says: "The provenance line never renders inline here. In the rail
|
|
263
|
+
it is expand-on-demand; in 16a's wider panel it is inline. Same row, two
|
|
264
|
+
densities."
|
|
265
|
+
|
|
266
|
+
THE INLINE HALF IS DONE AND THE ON-DEMAND HALF IS NOT. There is no
|
|
267
|
+
row-level expand affordance at this density — 16f's right-arrow "expand
|
|
268
|
+
provenance" does not exist — so a rail reader reaches the explanation
|
|
269
|
+
through the inspector's WHY RANK block rather than through the row. The
|
|
270
|
+
information is one selection away, not lost, but this comment previously
|
|
271
|
+
claimed "expand-on-demand" and that was an overclaim about a control
|
|
272
|
+
nothing draws.
|
|
273
|
+
|
|
274
|
+
The markup stays whole so the wider container still renders it inline and
|
|
275
|
+
so the accessible name is unchanged; what the rail declines is spending
|
|
276
|
+
53px of every row on it. The missing affordance is filed, not forgotten. */
|
|
277
|
+
${scope} .ig-slot .ig-provenance,
|
|
278
|
+
${scope} .ig-slot .ig-hold,
|
|
279
|
+
${scope} .ig-slot .ig-caveat {
|
|
280
|
+
display: none;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* AND THE ON-DEMAND HALF, WHICH IS WHAT 17j ACTUALLY ASKED FOR. A row the
|
|
284
|
+
reader opened with 16f's right-arrow draws its provenance again.
|
|
285
|
+
|
|
286
|
+
THE 53px IS NOT BROKEN BY THIS, it is spent deliberately: an open row is
|
|
287
|
+
taller because the reader asked it to be, and closing it returns the row to
|
|
288
|
+
the rhythm. That is the difference between a row that grows because nothing
|
|
289
|
+
governs it - the defect this sweep removed - and one that grows because
|
|
290
|
+
somebody pressed a key.
|
|
291
|
+
|
|
292
|
+
ONLY THE PROVENANCE COMES BACK. Holds and caveats stay down: 17j names the
|
|
293
|
+
provenance line and nothing else, and the holds are already in the
|
|
294
|
+
inspector's WHY RANK block as controls rather than prose. */
|
|
295
|
+
${scope} .ig-slot[aria-expanded='true'] {
|
|
296
|
+
min-height: var(--ig-row-height-dense);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
${scope} .ig-slot[aria-expanded='true'] .ig-provenance {
|
|
300
|
+
display: block;
|
|
301
|
+
}
|
|
302
|
+
`;
|
|
303
|
+
}
|
|
25
304
|
export const viewerStylesheet = `
|
|
26
305
|
.ig-viewer {
|
|
27
306
|
background: var(--ig-bg);
|
|
@@ -46,7 +325,33 @@ export const viewerStylesheet = `
|
|
|
46
325
|
outline-offset: calc(var(--ig-focus-ring) * -1);
|
|
47
326
|
}
|
|
48
327
|
|
|
328
|
+
/* THE ROW'S DENSITY IS READ FROM THIS BOX, AND THAT IS §17j's CLOSING RULE
|
|
329
|
+
RATHER THAN A PREFERENCE. The same row renders at 390px in the workspace
|
|
330
|
+
rail and at 330px in §18's settings rail, so it *"must take its width from
|
|
331
|
+
its container and pick its drop step from that — not from a viewport media
|
|
332
|
+
query, and not from a prop the host sets. A package that reads the window
|
|
333
|
+
cannot be dropped into someone else's settings page, which is the whole BYO
|
|
334
|
+
premise."*
|
|
335
|
+
|
|
336
|
+
A viewport query would have been the obvious reach and it is precisely
|
|
337
|
+
wrong: it answers a question about the WINDOW when the row's question is
|
|
338
|
+
about the COLUMN it was given. Two rails of different widths on one screen
|
|
339
|
+
is not an edge case here — §17a's rail and §18's settings rail are that
|
|
340
|
+
screen.
|
|
341
|
+
|
|
342
|
+
"NOT FROM A PROP THE HOST SETS" IS ABOUT THE DEFAULT, AND data-density DOES
|
|
343
|
+
NOT BREAK IT. What §17j refuses is a package that CANNOT work out its own
|
|
344
|
+
density — one that draws a wrong row until a host wires something up, which
|
|
345
|
+
is how a drop-in stops being a drop-in. This box still answers that question
|
|
346
|
+
on its own and nothing has to be passed for it to be right. What the
|
|
347
|
+
attribute adds is the ability to DISAGREE, which is a different thing: the
|
|
348
|
+
crossover this package picked is a default, the host is the only party that
|
|
349
|
+
knows about print, a user preference or its own breakpoints, and an override
|
|
350
|
+
nobody uses costs the drop-in case nothing. See the crossover comment below
|
|
351
|
+
for why the number needs no ruling once it is a default. */
|
|
49
352
|
.ig-list {
|
|
353
|
+
container-name: ig-rail;
|
|
354
|
+
container-type: inline-size;
|
|
50
355
|
list-style: none;
|
|
51
356
|
margin: 0;
|
|
52
357
|
padding: 0;
|
|
@@ -323,6 +628,13 @@ export const viewerStylesheet = `
|
|
|
323
628
|
/* ── working now ───────────────────────────────────────────────────────── */
|
|
324
629
|
|
|
325
630
|
.ig-now {
|
|
631
|
+
/* THE NOW STRIP IS PART OF THE RAIL'S RHYTHM, so it reads the same container
|
|
632
|
+
the rows do. It is its own list element, so without this the density rules
|
|
633
|
+
scoped to 'ig-rail' simply did not reach it and the strip stood 83px tall
|
|
634
|
+
beside 53px rows - 57% taller than everything under it, in the one slot
|
|
635
|
+
17j gives the top of the rail. */
|
|
636
|
+
container-name: ig-rail;
|
|
637
|
+
container-type: inline-size;
|
|
326
638
|
list-style: none;
|
|
327
639
|
margin: 0;
|
|
328
640
|
padding: 0;
|
|
@@ -391,6 +703,113 @@ export const viewerStylesheet = `
|
|
|
391
703
|
padding: var(--ig-row-padding-block) var(--ig-space-wide);
|
|
392
704
|
}
|
|
393
705
|
|
|
706
|
+
/* ── §17j's RAIL DENSITY ───────────────────────────────────────────────────
|
|
707
|
+
|
|
708
|
+
THE 53px ROW, AND THE ORDER THINGS LEAVE IT. '17j' fixes both, and the
|
|
709
|
+
reason it fixes the second is that the build *"showed everything because
|
|
710
|
+
nothing told it what to give up"*. This is that instruction.
|
|
711
|
+
|
|
712
|
+
9 pad + 17 title + 3 gap + 15 meta + 9 pad = 53px, divider inclusive
|
|
713
|
+
tracks: 30px rank · 1fr issue · auto delta
|
|
714
|
+
|
|
715
|
+
THE FINDING THIS ENCODES, which is the one to keep: at 6, 60 and 312 issues
|
|
716
|
+
the rail is IDENTICAL. What changes is around it — virtualisation appears,
|
|
717
|
+
the runner-hold footer grows, filter chips stop being optional, the canvas
|
|
718
|
+
starts refusing. *"If you are making the rail denser as the backlog grows,
|
|
719
|
+
you are compressing the surface that was never the problem."* So nothing
|
|
720
|
+
here keys off the backlog size, and nothing ever should.
|
|
721
|
+
|
|
722
|
+
430 IS THIS PACKAGE'S DEFAULT, NOT A CLAIM ABOUT THE DESIGN, AND A CONSUMER
|
|
723
|
+
CAN TAKE IT OVER. That is the whole posture of this package — sensible
|
|
724
|
+
defaults, everything overridable — and it is why this number needed no
|
|
725
|
+
ruling in the end. '17j' gives two anchors and no crossover: the workspace
|
|
726
|
+
rail is 390, §18's settings rail is 330 where steps 1-3 apply "by default",
|
|
727
|
+
and §16a's panel, which keeps provenance inline, is wider than either and
|
|
728
|
+
carries no published figure anywhere. 430 sits above the rail and below that
|
|
729
|
+
panel. A host that does nothing gets it and gets correct behaviour; a host
|
|
730
|
+
that disagrees sets data-density on the viewer root and this condition stops
|
|
731
|
+
deciding for them.
|
|
732
|
+
|
|
733
|
+
SO THE OPEN QUESTION IS CLOSED RATHER THAN WAITING. An earlier revision of
|
|
734
|
+
this comment filed the distance between 390 and 430 as needing a width for
|
|
735
|
+
§16a's panel. It does not: a DEFAULT only has to be reasonable, and the
|
|
736
|
+
figure would only have mattered if this were the single crossover every
|
|
737
|
+
consumer had to live with. It is not, so it is not blocking.
|
|
738
|
+
|
|
739
|
+
IT CANNOT BE A TOKEN, AND THE NEXT PERSON WILL TRY. Making the threshold a
|
|
740
|
+
theme property is the obvious reach, and it does not work: a container
|
|
741
|
+
condition takes a length and only a length. Measured in a browser — a
|
|
742
|
+
max-width condition written as a literal applies, and the same condition
|
|
743
|
+
naming a custom property PARSES INTO A RULE THAT MATCHES AT NO WIDTH AT ALL,
|
|
744
|
+
while CSS.supports() reports that same condition as supported. It fails
|
|
745
|
+
silently in both directions: the rule is not dropped, it is simply never
|
|
746
|
+
satisfied, and the one API that could have warned agrees it is fine. That is
|
|
747
|
+
a CSS limitation rather than a decision, and it is why the escape hatch below
|
|
748
|
+
is a selector rather than a property.
|
|
749
|
+
|
|
750
|
+
'17k' MAKES THE LOWER ANCHOR EXACT, which is worth keeping. It fixes the
|
|
751
|
+
three workspace layouts under one rule — "the rail never yields" — so the
|
|
752
|
+
workspace draws its rail at 390 at every width it supports and no amount of
|
|
753
|
+
resizing moves it across this threshold. Before that it fell to 312 below
|
|
754
|
+
1360, so 430 had to clear two numbers and only one was '17j's. The editor's
|
|
755
|
+
sheet pins that relationship rather than restating it: see its test "keeps
|
|
756
|
+
the workspace rail on the dense side of layer 1's crossover". */
|
|
757
|
+
@container ig-rail (max-width: 430px) {
|
|
758
|
+
${railDensity('.ig-viewer:not([data-density])')}
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
/* THE ESCAPE HATCH ITSELF, AND IT IS THE SAME BLOCK WITH A DIFFERENT KEY.
|
|
762
|
+
Emitted a second time under an attribute that carries no width at all, so
|
|
763
|
+
a consumer who sets it gets the dense row wherever they want it. The
|
|
764
|
+
scopes above and below are mutually exclusive by construction — one is
|
|
765
|
+
:not([data-density]) and the other names a value — so nothing here
|
|
766
|
+
depends on which of them a browser reads first.
|
|
767
|
+
|
|
768
|
+
THE OTHER DIRECTION NEEDS NO RULES. data-density='wide' matches neither
|
|
769
|
+
scope, so the row falls back to the base density this sheet declares
|
|
770
|
+
above, at any container width. */
|
|
771
|
+
${railDensity(".ig-viewer[data-density='dense']")}
|
|
772
|
+
|
|
773
|
+
/* STEPS 1-3 OF THE DROP ORDER, AT §18's 330px SETTINGS RAIL, which '17j'
|
|
774
|
+
names as the width where they apply by default.
|
|
775
|
+
|
|
776
|
+
THE SELECTORS ARE THE MARKUP'S OWN ATTRIBUTES, not class guesses: evidence
|
|
777
|
+
is 'data-evidence', a relationship is 'data-edge', a priority is
|
|
778
|
+
'data-priority' with 'query' / 'tier' / 'promoted'. Three of these were
|
|
779
|
+
written from memory first and two were wrong — the parts publish
|
|
780
|
+
'data-evidence="verified"', never a 'data-ig-badge'. */
|
|
781
|
+
|
|
782
|
+
/* STEP 1 — evidence and verification chips. '17j': *"Reassurance, not an
|
|
783
|
+
answer to any question the rail is asked."* */
|
|
784
|
+
@container ig-rail (max-width: 360px) {
|
|
785
|
+
.ig-slot .ig-badge[data-evidence] {
|
|
786
|
+
display: none;
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
/* STEP 2 — relationship badges past the FIRST, which is kept because it is
|
|
791
|
+
the one causing the hold. Scoped to 'data-edge' so it counts relationships
|
|
792
|
+
and not the priority, evidence and readiness chips that share '.ig-badge';
|
|
793
|
+
a positional 'nth-of-type' would have hidden whichever chip happened to sit
|
|
794
|
+
second, which is not what the rule says at all. The '+n more' chip carries
|
|
795
|
+
what left, and it already exists — 'data-omitted'. */
|
|
796
|
+
@container ig-rail (max-width: 345px) {
|
|
797
|
+
.ig-slot .ig-badge[data-edge] ~ .ig-badge[data-edge] {
|
|
798
|
+
display: none;
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
/* STEP 3 — the priority token. A DECLARED TIER goes, because '17j' says it is
|
|
803
|
+
*"recoverable from the rank itself"*. A PROMOTION stays: 'P3 → 0' is the
|
|
804
|
+
one form the rank cannot give back, and it is rank provenance rather than a
|
|
805
|
+
restatement. A matched query stays for the same reason — it names WHICH
|
|
806
|
+
query, which no rank encodes. */
|
|
807
|
+
@container ig-rail (max-width: 335px) {
|
|
808
|
+
.ig-slot .ig-badge[data-priority='tier'] {
|
|
809
|
+
display: none;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
|
|
394
813
|
/* THE ONE ROW GROUND THE FRAME DRAWS, and it is not a stripe. A together unit
|
|
395
814
|
is the compound station, and the tint says so; the other ranked rows carry
|
|
396
815
|
no background at all. */
|
|
@@ -464,6 +883,30 @@ export const viewerStylesheet = `
|
|
|
464
883
|
min-width: 0;
|
|
465
884
|
}
|
|
466
885
|
|
|
886
|
+
/* A UNIT AT THE WIDE DENSITY IS ITS ENCLOSURE, which is what §16a draws: the
|
|
887
|
+
pill, the note, and a member list. The ordinary head the row also carries is
|
|
888
|
+
the RAIL's way of drawing the same unit, so it stands down here rather than
|
|
889
|
+
printing the lead's title above a box that already opens with it. */
|
|
890
|
+
.ig-slot[data-unit='true'] > .ig-row-body > .ig-row-head {
|
|
891
|
+
display: none;
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
.ig-unit-count {
|
|
895
|
+
display: none;
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
/* LINE 2 AT THE WIDE DENSITY. §16a's panel draws the same sequence — identity
|
|
899
|
+
then chips — and simply has room, so here it WRAPS rather than clipping and
|
|
900
|
+
the provenance turnstile stays inline beneath it. Same markup, two
|
|
901
|
+
densities; the rail's rules are in the container query above. */
|
|
902
|
+
.ig-row-meta {
|
|
903
|
+
align-items: center;
|
|
904
|
+
display: flex;
|
|
905
|
+
flex-wrap: wrap;
|
|
906
|
+
gap: var(--ig-space-tight);
|
|
907
|
+
min-width: 0;
|
|
908
|
+
}
|
|
909
|
+
|
|
467
910
|
/* ── readiness stations ────────────────────────────────────────────────── */
|
|
468
911
|
|
|
469
912
|
.ig-station {
|
|
@@ -1033,6 +1476,35 @@ export const viewerStylesheet = `
|
|
|
1033
1476
|
stroke-width: var(--ig-stroke);
|
|
1034
1477
|
}
|
|
1035
1478
|
|
|
1479
|
+
/* A MARK IS HIT-TESTABLE, AND THAT IS THE OPPOSITE OF WHAT IT FIRST SAID.
|
|
1480
|
+
|
|
1481
|
+
It carried a pointer-events none rule, reasoning from the halo: a decoration
|
|
1482
|
+
over a line must not swallow the click aimed at the line. That reasoning does
|
|
1483
|
+
not transfer, because a halo IS the line again and a mark is NOT — every one
|
|
1484
|
+
of these is deliberately offset AWAY from the path, so a click on it does not
|
|
1485
|
+
fall through onto the edge. It falls through onto the canvas, and the viewer's
|
|
1486
|
+
walk climbs to the canvas group and reports a click on nothing, clearing the
|
|
1487
|
+
very selection the reader was making. A conflict's companion is the clearest
|
|
1488
|
+
case: a visibly separate line that could not be pointed at.
|
|
1489
|
+
|
|
1490
|
+
That is a defect this package has already paid for once. The overlay module
|
|
1491
|
+
keeps its pointer identity on the dash clone for exactly this reason, and says
|
|
1492
|
+
so: dropping the identity makes a clone a dead zone over its own edge. Every
|
|
1493
|
+
mark here publishes the same identity, so making it unhittable spent the
|
|
1494
|
+
identity it had just been given.
|
|
1495
|
+
|
|
1496
|
+
Colour is set per element, from the token name the caller supplied, for the
|
|
1497
|
+
reason the edge hues are set per element: one source for a channel. Nothing
|
|
1498
|
+
here paints a state, because nothing here knows what a state is. */
|
|
1499
|
+
.ig-edge-mark {
|
|
1500
|
+
font-family: var(--ig-font-ui);
|
|
1501
|
+
font-size: var(--ig-font-size-small);
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
.ig-edge-companion {
|
|
1505
|
+
stroke-width: var(--ig-stroke);
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1036
1508
|
.ig-terminal[data-edge='blocked-by'] { color: var(--ig-edge-blocked-by); }
|
|
1037
1509
|
.ig-terminal[data-edge='serialize-with'] { color: var(--ig-edge-serialize-with); }
|
|
1038
1510
|
.ig-terminal[data-edge='together-with'] { color: var(--ig-edge-together-with); }
|
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO;EACP,KAAK;;;;;;;;;;EAUL,KAAK;;;;EAIL,KAAK;;;;;;;;;EASL,KAAK;;;;;;;;;;EAUL,KAAK;;;;;;;;;;;;;EAaL,KAAK;;;;;;;;EAQL,KAAK;;;;;;;;;;;;;;;;;;EAkBL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BL,KAAK;;;;EAIL,KAAK;EACL,KAAK;;;;;;;EAOL,KAAK;;;;;;;;;;;;;;;;;;;EAmBL,KAAK;;;;;;;;EAQL,KAAK;;;;;;;;;;;;;;;;;;;EAmBL,KAAK;;;;;;;;;;;;;;EAcL,KAAK;;;;;;;;;;;;EAYL,KAAK;;;;;EAKL,KAAK;;;;;EAKL,KAAK;;;;;;;EAOL,KAAK;;;;;;;;;;;;;;;;;;;;;;;EAuBL,KAAK;EACL,KAAK;EACL,KAAK;;;;;;;;;;;;;;;;EAgBL,KAAK;;;;EAIL,KAAK;;;CAGN,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsc9B,WAAW,CAAC,gCAAgC,CAAC;;;;;;;;;;;;;EAa7C,WAAW,CAAC,kCAAkC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA80BhD,CAAC"}
|
package/dist/theme.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export type ColorToken = (typeof COLOR_TOKENS)[number];
|
|
|
34
34
|
export declare const TYPE_TOKENS: readonly ["--ig-font-ui", "--ig-font-mono", "--ig-font-size", "--ig-font-size-small", "--ig-line-height", "--ig-font-size-micro", "--ig-font-size-pill", "--ig-weight-regular", "--ig-weight-medium", "--ig-weight-strong", "--ig-weight-heavy", "--ig-tracking-label", "--ig-tracking-group", "--ig-tracking-pill", "--ig-tracking-badge", "--ig-font-size-meta", "--ig-font-size-compact", "--ig-font-size-row", "--ig-font-size-rank"];
|
|
35
35
|
export type TypeToken = (typeof TYPE_TOKENS)[number];
|
|
36
36
|
/** Geometry tokens. Every value is a number of CSS pixels. */
|
|
37
|
-
export declare const METRIC_TOKENS: readonly ["--ig-space", "--ig-space-tight", "--ig-radius", "--ig-row-height", "--ig-station-size", "--ig-station-halo", "--ig-stroke", "--ig-stroke-connector", "--ig-stroke-audit", "--ig-terminal-length", "--ig-terminal-width", "--ig-gutter-width", "--ig-spine-width", "--ig-char-width", "--ig-label-char-width", "--ig-focus-ring", "--ig-space-micro", "--ig-space-snug", "--ig-space-loose", "--ig-space-wide", "--ig-radius-small", "--ig-radius-large", "--ig-row-min-height", "--ig-row-padding-block", "--ig-band-rail", "--ig-rank-column", "--ig-station-box", "--ig-card-line"];
|
|
37
|
+
export declare const METRIC_TOKENS: readonly ["--ig-space", "--ig-space-tight", "--ig-radius", "--ig-row-height", "--ig-station-size", "--ig-station-halo", "--ig-stroke", "--ig-stroke-connector", "--ig-stroke-audit", "--ig-terminal-length", "--ig-terminal-width", "--ig-gutter-width", "--ig-spine-width", "--ig-char-width", "--ig-label-char-width", "--ig-focus-ring", "--ig-space-micro", "--ig-space-snug", "--ig-space-loose", "--ig-space-wide", "--ig-radius-small", "--ig-radius-large", "--ig-row-min-height", "--ig-row-padding-block", "--ig-band-rail", "--ig-rank-column", "--ig-row-height-dense", "--ig-row-padding-block-dense", "--ig-rank-column-dense", "--ig-row-title-line", "--ig-row-meta-line", "--ig-row-line-gap", "--ig-station-box", "--ig-card-line"];
|
|
38
38
|
export type MetricToken = (typeof METRIC_TOKENS)[number];
|
|
39
39
|
/**
|
|
40
40
|
* Surface-treatment tokens: values that are none of a colour, a type value or
|
package/dist/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY,+ZAgCd,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,2aAgDb,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,8DAA8D;AAC9D,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY,+ZAgCd,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,2aAgDb,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,8DAA8D;AAC9D,eAAO,MAAM,aAAa,utBAoEf,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,wIAsBf,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,0DAA0D;AAC1D,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAKxC,CAAC;AAEH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACzD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,KA+OzB,CAAC;AAEH,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACrE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,KAAK,CAOvE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,SAAU,GAAG,MAAM,CAWjE"}
|
package/dist/theme.js
CHANGED
|
@@ -165,6 +165,17 @@ export const METRIC_TOKENS = Object.freeze([
|
|
|
165
165
|
// would make the alignment grid move whenever either did, which is the one
|
|
166
166
|
// thing this column exists to prevent.
|
|
167
167
|
'--ig-rank-column',
|
|
168
|
+
// §17j's RAIL density, beside §16a's above rather than replacing it, because
|
|
169
|
+
// there are two densities and the tile says so: the provenance line is
|
|
170
|
+
// inline in §16a's wider panel and expand-on-demand in the rail. A host
|
|
171
|
+
// retheming one must be able to reach the other, so both are in the
|
|
172
|
+
// contract.
|
|
173
|
+
'--ig-row-height-dense',
|
|
174
|
+
'--ig-row-padding-block-dense',
|
|
175
|
+
'--ig-rank-column-dense',
|
|
176
|
+
'--ig-row-title-line',
|
|
177
|
+
'--ig-row-meta-line',
|
|
178
|
+
'--ig-row-line-gap',
|
|
168
179
|
// §16b's spine furniture: the station disc that sits ON the spine line, and
|
|
169
180
|
// the line height a card's own height is counted in.
|
|
170
181
|
'--ig-station-box',
|
|
@@ -390,6 +401,42 @@ export const defaultTheme = Object.freeze({
|
|
|
390
401
|
'--ig-band-rail': 3,
|
|
391
402
|
// §16a's rank track, read straight off `grid-template-columns: 34px 1fr`.
|
|
392
403
|
'--ig-rank-column': 34,
|
|
404
|
+
// ── §17j's RAIL density ────────────────────────────────────────────────
|
|
405
|
+
//
|
|
406
|
+
// THE THREE ABOVE ARE §16a's, AND §16a IS THE WIDE PANEL. Their comments
|
|
407
|
+
// say so — `34px 1fr` and `padding: 13px 20px` were read off that tile —
|
|
408
|
+
// and applying them to §17's rail is what made one density serve two
|
|
409
|
+
// surfaces. `RULINGS.md`'s §17j is explicit that there are two: *"The
|
|
410
|
+
// provenance line never renders inline here. In the rail it is
|
|
411
|
+
// expand-on-demand; in §16a's wider panel it is inline. Same row, two
|
|
412
|
+
// densities."*
|
|
413
|
+
//
|
|
414
|
+
// So these are the rail's own, read off `17j`'s stated anatomy rather than
|
|
415
|
+
// derived from §16a's:
|
|
416
|
+
//
|
|
417
|
+
// 9 pad + 17 title + 3 gap + 15 meta + 9 pad = 53px, divider inclusive
|
|
418
|
+
// tracks: 30px rank · 1fr issue · auto delta
|
|
419
|
+
//
|
|
420
|
+
// They are applied by a CONTAINER query, never a viewport one — `17j`'s
|
|
421
|
+
// closing consequence is that the same row renders at 390 in the workspace
|
|
422
|
+
// and 330 in §18's settings rail, so it *"must take its width from its
|
|
423
|
+
// container and pick its drop step from that"*. A package that reads the
|
|
424
|
+
// window cannot be dropped into someone else's settings page, which is the
|
|
425
|
+
// whole BYO premise.
|
|
426
|
+
'--ig-row-height-dense': 53,
|
|
427
|
+
'--ig-row-padding-block-dense': 9,
|
|
428
|
+
'--ig-rank-column-dense': 30,
|
|
429
|
+
// The two text lines the 53px is composed of, so the height is built from
|
|
430
|
+
// its parts rather than asserted as one number a later edit can drift from.
|
|
431
|
+
// The meta token was added, removed when nothing read it — this package
|
|
432
|
+
// fails a token with no use, and rightly — and is back now that the meta
|
|
433
|
+
// line exists to read it.
|
|
434
|
+
'--ig-row-title-line': 17,
|
|
435
|
+
'--ig-row-meta-line': 15,
|
|
436
|
+
// The 3 in 9 + 17 + 3 + 15 + 9. Its own token because the anatomy is a
|
|
437
|
+
// SUM: a gap borrowed from the spacing scale would drift the height the
|
|
438
|
+
// moment that scale moved, and the height is the thing 17j fixes.
|
|
439
|
+
'--ig-row-line-gap': 3,
|
|
393
440
|
// §16b's station disc, 26px across on the spine.
|
|
394
441
|
'--ig-station-box': 26,
|
|
395
442
|
// One line of text inside a §16b node card, which is what lets the layout
|
package/dist/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,oBAAoB;IACpB,sBAAsB;IACtB,mBAAmB;IACnB,sBAAsB;IACtB,0BAA0B;IAC1B,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,qEAAqE;IACrE,oEAAoE;IACpE,6EAA6E;IAC7E,yCAAyC;IACzC,EAAE;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,+EAA+E;IAC/E,oBAAoB;IACpB,mBAAmB;IACnB,qBAAqB;CACb,CAAC,CAAC;AAIZ;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,sDAAsD;IACtD,EAAE;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,sBAAsB;IACtB,qBAAqB;IACrB,0EAA0E;IAC1E,yEAAyE;IACzE,oEAAoE;IACpE,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,6EAA6E;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,0CAA0C;IAC1C,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,8EAA8E;IAC9E,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,iDAAiD;IACjD,qBAAqB;IACrB,wBAAwB;IACxB,oBAAoB;IACpB,qBAAqB;CACb,CAAC,CAAC;AAIZ,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,YAAY;IACZ,kBAAkB;IAClB,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,sBAAsB;IACtB,qBAAqB;IACrB,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,uBAAuB;IACvB,iBAAiB;IACjB,sDAAsD;IACtD,EAAE;IACF,6EAA6E;IAC7E,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,4EAA4E;IAC5E,yEAAyE;IACzE,qEAAqE;IACrE,6EAA6E;IAC7E,qBAAqB;IACrB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,6EAA6E;IAC7E,6EAA6E;IAC7E,qEAAqE;IACrE,6EAA6E;IAC7E,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,qEAAqE;IACrE,0EAA0E;IAC1E,gDAAgD;IAChD,gBAAgB;IAChB,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,uCAAuC;IACvC,kBAAkB;IAClB,6EAA6E;IAC7E,uEAAuE;IACvE,wEAAwE;IACxE,oEAAoE;IACpE,YAAY;IACZ,uBAAuB;IACvB,8BAA8B;IAC9B,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,mBAAmB;IACnB,4EAA4E;IAC5E,qDAAqD;IACrD,kBAAkB;IAClB,gBAAgB;CACR,CAAC,CAAC;AAIZ;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,6EAA6E;IAC7E,yEAAyE;IACzE,6EAA6E;IAC7E,oDAAoD;IACpD,gBAAgB;IAChB,kBAAkB;IAClB,yEAAyE;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,iDAAiD;IACjD,gBAAgB;IAChB,gBAAgB;IAChB,yEAAyE;IACzE,qEAAqE;IACrE,4EAA4E;IAC5E,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,0EAA0E;IAC1E,uBAAuB;IACvB,wBAAwB;CAChB,CAAC,CAAC;AAIZ,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC3D,GAAG,YAAY;IACf,GAAG,WAAW;IACd,GAAG,aAAa;IAChB,GAAG,aAAa;CACjB,CAAC,CAAC;AAWH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAU,MAAM,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,SAAS;QACpB,cAAc,EAAE,SAAS;QACzB,gBAAgB,EAAE,SAAS;QAC3B,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,SAAS;QACtB,gBAAgB,EAAE,SAAS;QAC3B,iBAAiB,EAAE,SAAS;QAC5B,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,SAAS;QACvB,oBAAoB,EAAE,SAAS;QAC/B,sBAAsB,EAAE,SAAS;QACjC,mBAAmB,EAAE,SAAS;QAC9B,sBAAsB,EAAE,SAAS;QACjC,0BAA0B,EAAE,SAAS;QACrC,yBAAyB,EAAE,SAAS;QACpC,wBAAwB,EAAE,SAAS;QACnC,2BAA2B,EAAE,SAAS;QACtC,qEAAqE;QACrE,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,EAAE;QACF,4EAA4E;QAC5E,sEAAsE;QACtE,4EAA4E;QAC5E,sEAAsE;QACtE,sEAAsE;QACtE,yEAAyE;QACzE,+BAA+B;QAC/B,oBAAoB,EAAE,SAAS;QAC/B,mBAAmB,EAAE,SAAS;QAC9B,wEAAwE;QACxE,iEAAiE;QACjE,qBAAqB,EAAE,SAAS;KACjC,CAAC;IACF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,cAAc,EAAE,6CAA6C;QAC7D,sEAAsE;QACtE,kDAAkD;QAClD,gBAAgB,EAAE,2DAA2D;QAC7E,gBAAgB,EAAE,MAAM;QACxB,sBAAsB,EAAE,MAAM;QAC9B,kBAAkB,EAAE,MAAM;QAC1B,uEAAuE;QACvE,yEAAyE;QACzE,mEAAmE;QACnE,sBAAsB,EAAE,MAAM;QAC9B,qBAAqB,EAAE,OAAO;QAC9B,2EAA2E;QAC3E,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,+BAA+B;QAC/B,qBAAqB,EAAE,KAAK;QAC5B,oBAAoB,EAAE,KAAK;QAC3B,oBAAoB,EAAE,KAAK;QAC3B,mBAAmB,EAAE,KAAK;QAC1B,6DAA6D;QAC7D,qBAAqB,EAAE,QAAQ;QAC/B,yEAAyE;QACzE,qEAAqE;QACrE,qBAAqB,EAAE,OAAO;QAC9B,2EAA2E;QAC3E,2EAA2E;QAC3E,sEAAsE;QACtE,sDAAsD;QACtD,oBAAoB,EAAE,QAAQ;QAC9B,qBAAqB,EAAE,QAAQ;QAC/B,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,uEAAuE;QACvE,4BAA4B;QAC5B,qBAAqB,EAAE,QAAQ;QAC/B,wBAAwB,EAAE,QAAQ;QAClC,oBAAoB,EAAE,QAAQ;QAC9B,qBAAqB,EAAE,MAAM;KAC9B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,YAAY,EAAE,EAAE;QAChB,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,EAAE;QACrB,mBAAmB,EAAE,EAAE;QACvB,sEAAsE;QACtE,kCAAkC;QAClC,mBAAmB,EAAE,CAAC;QACtB,aAAa,EAAE,GAAG;QAClB,2EAA2E;QAC3E,4DAA4D;QAC5D,uBAAuB,EAAE,GAAG;QAC5B,2EAA2E;QAC3E,sEAAsE;QACtE,2EAA2E;QAC3E,sDAAsD;QACtD,EAAE;QACF,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,oEAAoE;QACpE,wEAAwE;QACxE,yEAAyE;QACzE,8BAA8B;QAC9B,mBAAmB,EAAE,CAAC;QACtB,yEAAyE;QACzE,yEAAyE;QACzE,6DAA6D;QAC7D,sBAAsB,EAAE,CAAC;QACzB,qBAAqB,EAAE,CAAC;QACxB,0EAA0E;QAC1E,2EAA2E;QAC3E,qEAAqE;QACrE,wEAAwE;QACxE,2EAA2E;QAC3E,0DAA0D;QAC1D,mBAAmB,EAAE,GAAG;QACxB,kBAAkB,EAAE,GAAG;QACvB,2EAA2E;QAC3E,0EAA0E;QAC1E,qDAAqD;QACrD,iBAAiB,EAAE,GAAG;QACtB,4DAA4D;QAC5D,sEAAsE;QACtE,gEAAgE;QAChE,0EAA0E;QAC1E,yEAAyE;QACzE,kEAAkE;QAClE,EAAE;QACF,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,0EAA0E;QAC1E,wDAAwD;QACxD,uBAAuB,EAAE,CAAC;QAC1B,iBAAiB,EAAE,CAAC;QACpB,2EAA2E;QAC3E,wDAAwD;QACxD,wEAAwE;QACxE,oBAAoB;QACpB,kBAAkB,EAAE,CAAC;QACrB,iBAAiB,EAAE,CAAC;QACpB,kBAAkB,EAAE,EAAE;QACtB,iBAAiB,EAAE,EAAE;QACrB,uEAAuE;QACvE,sEAAsE;QACtE,mBAAmB,EAAE,CAAC;QACtB,mBAAmB,EAAE,EAAE;QACvB,2EAA2E;QAC3E,yEAAyE;QACzE,qEAAqE;QACrE,qBAAqB,EAAE,EAAE;QACzB,oEAAoE;QACpE,yEAAyE;QACzE,wBAAwB,EAAE,EAAE;QAC5B,oEAAoE;QACpE,gBAAgB,EAAE,CAAC;QACnB,0EAA0E;QAC1E,kBAAkB,EAAE,EAAE;QACtB,0EAA0E;QAC1E,EAAE;QACF,yEAAyE;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,sEAAsE;QACtE,+DAA+D;QAC/D,sEAAsE;QACtE,eAAe;QACf,EAAE;QACF,2EAA2E;QAC3E,uBAAuB;QACvB,EAAE;QACF,2EAA2E;QAC3E,iDAAiD;QACjD,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,uEAAuE;QACvE,yEAAyE;QACzE,2EAA2E;QAC3E,qBAAqB;QACrB,uBAAuB,EAAE,EAAE;QAC3B,8BAA8B,EAAE,CAAC;QACjC,wBAAwB,EAAE,EAAE;QAC5B,0EAA0E;QAC1E,4EAA4E;QAC5E,wEAAwE;QACxE,yEAAyE;QACzE,0BAA0B;QAC1B,qBAAqB,EAAE,EAAE;QACzB,oBAAoB,EAAE,EAAE;QACxB,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,mBAAmB,EAAE,CAAC;QACtB,iDAAiD;QACjD,kBAAkB,EAAE,EAAE;QACtB,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,qEAAqE;QACrE,gBAAgB,EAAE,EAAE;KACrB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,iEAAiE;QACjE,yEAAyE;QACzE,sEAAsE;QACtE,2BAA2B;QAC3B,gBAAgB,EAAE,IAAI;QACtB,kBAAkB,EAAE,KAAK;QACzB,+DAA+D;QAC/D,gBAAgB,EAAE,IAAI;QACtB,2EAA2E;QAC3E,sEAAsE;QACtE,yEAAyE;QACzE,wEAAwE;QACxE,iBAAiB;QACjB,gBAAgB,EAAE,IAAI;QACtB,wEAAwE;QACxE,2EAA2E;QAC3E,0CAA0C;QAC1C,EAAE;QACF,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,6DAA6D;QAC7D,uBAAuB,EAAE,sCAAsC;QAC/D,wBAAwB,EAAE,sCAAsC;KACjE,CAAC;CACH,CAAC,CAAC;AAUH;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAW,EAAE,QAAuB;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7D,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;KACjE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,KAAyB;IACpD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,QAAQ,GAAG,OAAO;IACvD,6EAA6E;IAC7E,4EAA4E;IAC5E,yDAAyD;IACzD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrF,KAAK,MAAM,KAAK,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClF,KAAK,MAAM,KAAK,IAAI,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACjG,KAAK,MAAM,KAAK,IAAI,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvF,OAAO,GAAG,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@issuegraph/viewer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Render an Issuegraph document as a work order — the ordered spine with readiness stations, the five edge treatments, and three projections. Rendering only: no fetching, no mutation, no auth, and every value themeable through CSS custom properties.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"issuegraph",
|