@ponchia/ui 0.6.4 → 0.6.6
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/CHANGELOG.md +106 -0
- package/README.md +17 -10
- package/behaviors/index.d.ts +2 -0
- package/behaviors/index.d.ts.map +1 -1
- package/behaviors/index.js +2 -0
- package/behaviors/sources.d.ts +28 -0
- package/behaviors/sources.d.ts.map +1 -0
- package/behaviors/sources.js +158 -0
- package/classes/classes.json +146 -2
- package/classes/index.d.ts +63 -0
- package/classes/index.js +80 -0
- package/css/report.css +384 -3
- package/css/sources.css +18 -0
- package/css/tokens.css +8 -1
- package/dist/bronto.css +1 -1
- package/dist/css/report.css +1 -1
- package/dist/css/sources.css +1 -1
- package/dist/css/tokens.css +1 -1
- package/docs/frontier-primitives.md +286 -0
- package/docs/package-contract.md +263 -0
- package/docs/reference.md +75 -2
- package/docs/reporting.md +305 -15
- package/docs/sources.md +32 -0
- package/docs/stability.md +6 -3
- package/llms.txt +71 -25
- package/package.json +11 -3
- package/qwik/index.d.ts +1 -0
- package/qwik/index.d.ts.map +1 -1
- package/qwik/index.js +5 -0
- package/react/index.d.ts +1 -0
- package/react/index.d.ts.map +1 -1
- package/react/index.js +3 -0
- package/solid/index.d.ts +2 -0
- package/solid/index.d.ts.map +1 -1
- package/solid/index.js +3 -0
package/classes/index.d.ts
CHANGED
|
@@ -263,16 +263,69 @@ export declare const cls: {
|
|
|
263
263
|
readonly reportMeta: 'ui-report__meta';
|
|
264
264
|
readonly reportToc: 'ui-report__toc';
|
|
265
265
|
readonly reportSummary: 'ui-report__summary';
|
|
266
|
+
readonly reportDecision: 'ui-report__decision';
|
|
267
|
+
readonly reportDecisionKicker: 'ui-report__decision-kicker';
|
|
268
|
+
readonly reportDecisionTitle: 'ui-report__decision-title';
|
|
269
|
+
readonly reportDecisionBody: 'ui-report__decision-body';
|
|
270
|
+
readonly reportDecisionMeta: 'ui-report__decision-meta';
|
|
271
|
+
readonly reportDecisionGrid: 'ui-report__decision-grid';
|
|
272
|
+
readonly reportDecisionItem: 'ui-report__decision-item';
|
|
273
|
+
readonly reportDecisionLabel: 'ui-report__decision-label';
|
|
274
|
+
readonly reportDecisionValue: 'ui-report__decision-value';
|
|
266
275
|
readonly reportSection: 'ui-report__section';
|
|
267
276
|
readonly reportSectionUnnumbered: 'ui-report__section--unnumbered';
|
|
268
277
|
readonly reportSectionHead: 'ui-report__section-head';
|
|
269
278
|
readonly reportFinding: 'ui-report__finding';
|
|
279
|
+
readonly reportFindingCritical: 'ui-report__finding--critical';
|
|
280
|
+
readonly reportFindingMajor: 'ui-report__finding--major';
|
|
281
|
+
readonly reportFindingMinor: 'ui-report__finding--minor';
|
|
282
|
+
readonly reportFindingResolved: 'ui-report__finding--resolved';
|
|
283
|
+
readonly reportFindingTitle: 'ui-report__finding-title';
|
|
284
|
+
readonly reportFindingClaim: 'ui-report__finding-claim';
|
|
285
|
+
readonly reportFindingImpact: 'ui-report__finding-impact';
|
|
286
|
+
readonly reportFindingRemediation: 'ui-report__finding-remediation';
|
|
287
|
+
readonly reportFindingEvidence: 'ui-report__finding-evidence';
|
|
288
|
+
readonly reportFindingCaveat: 'ui-report__finding-caveat';
|
|
270
289
|
readonly reportEvidence: 'ui-report__evidence';
|
|
271
290
|
readonly reportFigure: 'ui-report__figure';
|
|
272
291
|
readonly reportCaption: 'ui-report__caption';
|
|
273
292
|
readonly reportSources: 'ui-report__sources';
|
|
274
293
|
readonly reportAppendix: 'ui-report__appendix';
|
|
275
294
|
readonly reportFootnotes: 'ui-report__footnotes';
|
|
295
|
+
readonly reportActions: 'ui-report__actions';
|
|
296
|
+
readonly reportAction: 'ui-report__action';
|
|
297
|
+
readonly reportActionStatus: 'ui-report__action-status';
|
|
298
|
+
readonly reportActionTitle: 'ui-report__action-title';
|
|
299
|
+
readonly reportActionOwner: 'ui-report__action-owner';
|
|
300
|
+
readonly reportActionDue: 'ui-report__action-due';
|
|
301
|
+
readonly reportActionPriority: 'ui-report__action-priority';
|
|
302
|
+
readonly reportActionCriteria: 'ui-report__action-criteria';
|
|
303
|
+
readonly reportActionSource: 'ui-report__action-source';
|
|
304
|
+
readonly claim: 'ui-claim';
|
|
305
|
+
readonly claimSupported: 'ui-claim--supported';
|
|
306
|
+
readonly claimPartial: 'ui-claim--partial';
|
|
307
|
+
readonly claimDisputed: 'ui-claim--disputed';
|
|
308
|
+
readonly claimUnsupported: 'ui-claim--unsupported';
|
|
309
|
+
readonly claimUnknown: 'ui-claim--unknown';
|
|
310
|
+
readonly claimStatement: 'ui-claim__statement';
|
|
311
|
+
readonly claimStatus: 'ui-claim__status';
|
|
312
|
+
readonly claimScope: 'ui-claim__scope';
|
|
313
|
+
readonly claimBasis: 'ui-claim__basis';
|
|
314
|
+
readonly claimLimits: 'ui-claim__limits';
|
|
315
|
+
readonly claimRefs: 'ui-claim__refs';
|
|
316
|
+
readonly claimCaveat: 'ui-claim__caveat';
|
|
317
|
+
readonly evidenceGrid: 'ui-evidence-grid';
|
|
318
|
+
readonly evidenceLedger: 'ui-evidence-ledger';
|
|
319
|
+
readonly evidenceItem: 'ui-evidence-item';
|
|
320
|
+
readonly evidenceItemTitle: 'ui-evidence-item__title';
|
|
321
|
+
readonly evidenceItemMeta: 'ui-evidence-item__meta';
|
|
322
|
+
readonly evidenceItemBody: 'ui-evidence-item__body';
|
|
323
|
+
readonly evidenceItemKind: 'ui-evidence-item__kind';
|
|
324
|
+
readonly evidenceItemMethod: 'ui-evidence-item__method';
|
|
325
|
+
readonly evidenceItemWindow: 'ui-evidence-item__window';
|
|
326
|
+
readonly evidenceItemValue: 'ui-evidence-item__value';
|
|
327
|
+
readonly evidenceItemSource: 'ui-evidence-item__source';
|
|
328
|
+
readonly evidenceItemCaveat: 'ui-evidence-item__caveat';
|
|
276
329
|
readonly compare: 'ui-compare';
|
|
277
330
|
readonly compare2up: 'ui-compare--2up';
|
|
278
331
|
readonly compareCol: 'ui-compare__col';
|
|
@@ -585,6 +638,14 @@ export interface CompareOpts {
|
|
|
585
638
|
/** Pin exactly two equal columns (hard before/after) instead of the auto-fitting set. */
|
|
586
639
|
cols?: 2;
|
|
587
640
|
}
|
|
641
|
+
export interface ReportFindingOpts {
|
|
642
|
+
/** Severity/status band. Pair with an author-written label; tone is not the only signal. */
|
|
643
|
+
severity?: 'critical' | 'major' | 'minor' | 'resolved';
|
|
644
|
+
}
|
|
645
|
+
export interface ClaimOpts {
|
|
646
|
+
/** Evidence status. Pair with written status text; tone is only a scanning aid. */
|
|
647
|
+
status?: 'supported' | 'partial' | 'disputed' | 'unsupported' | 'unknown';
|
|
648
|
+
}
|
|
588
649
|
export interface ChipOpts {
|
|
589
650
|
accent?: boolean;
|
|
590
651
|
}
|
|
@@ -787,6 +848,8 @@ export interface Ui {
|
|
|
787
848
|
num(opts?: NumOpts): string;
|
|
788
849
|
delta(opts?: DeltaOpts): string;
|
|
789
850
|
compare(opts?: CompareOpts): string;
|
|
851
|
+
reportFinding(opts?: ReportFindingOpts): string;
|
|
852
|
+
claim(opts?: ClaimOpts): string;
|
|
790
853
|
chip(opts?: ChipOpts): string;
|
|
791
854
|
link(opts?: LinkOpts): string;
|
|
792
855
|
dot(opts?: DotOpts): string;
|
package/classes/index.js
CHANGED
|
@@ -279,16 +279,69 @@ export const cls = Object.freeze({
|
|
|
279
279
|
reportMeta: 'ui-report__meta',
|
|
280
280
|
reportToc: 'ui-report__toc',
|
|
281
281
|
reportSummary: 'ui-report__summary',
|
|
282
|
+
reportDecision: 'ui-report__decision',
|
|
283
|
+
reportDecisionKicker: 'ui-report__decision-kicker',
|
|
284
|
+
reportDecisionTitle: 'ui-report__decision-title',
|
|
285
|
+
reportDecisionBody: 'ui-report__decision-body',
|
|
286
|
+
reportDecisionMeta: 'ui-report__decision-meta',
|
|
287
|
+
reportDecisionGrid: 'ui-report__decision-grid',
|
|
288
|
+
reportDecisionItem: 'ui-report__decision-item',
|
|
289
|
+
reportDecisionLabel: 'ui-report__decision-label',
|
|
290
|
+
reportDecisionValue: 'ui-report__decision-value',
|
|
282
291
|
reportSection: 'ui-report__section',
|
|
283
292
|
reportSectionUnnumbered: 'ui-report__section--unnumbered',
|
|
284
293
|
reportSectionHead: 'ui-report__section-head',
|
|
285
294
|
reportFinding: 'ui-report__finding',
|
|
295
|
+
reportFindingCritical: 'ui-report__finding--critical',
|
|
296
|
+
reportFindingMajor: 'ui-report__finding--major',
|
|
297
|
+
reportFindingMinor: 'ui-report__finding--minor',
|
|
298
|
+
reportFindingResolved: 'ui-report__finding--resolved',
|
|
299
|
+
reportFindingTitle: 'ui-report__finding-title',
|
|
300
|
+
reportFindingClaim: 'ui-report__finding-claim',
|
|
301
|
+
reportFindingImpact: 'ui-report__finding-impact',
|
|
302
|
+
reportFindingRemediation: 'ui-report__finding-remediation',
|
|
303
|
+
reportFindingEvidence: 'ui-report__finding-evidence',
|
|
304
|
+
reportFindingCaveat: 'ui-report__finding-caveat',
|
|
286
305
|
reportEvidence: 'ui-report__evidence',
|
|
287
306
|
reportFigure: 'ui-report__figure',
|
|
288
307
|
reportCaption: 'ui-report__caption',
|
|
289
308
|
reportSources: 'ui-report__sources',
|
|
290
309
|
reportAppendix: 'ui-report__appendix',
|
|
291
310
|
reportFootnotes: 'ui-report__footnotes',
|
|
311
|
+
reportActions: 'ui-report__actions',
|
|
312
|
+
reportAction: 'ui-report__action',
|
|
313
|
+
reportActionStatus: 'ui-report__action-status',
|
|
314
|
+
reportActionTitle: 'ui-report__action-title',
|
|
315
|
+
reportActionOwner: 'ui-report__action-owner',
|
|
316
|
+
reportActionDue: 'ui-report__action-due',
|
|
317
|
+
reportActionPriority: 'ui-report__action-priority',
|
|
318
|
+
reportActionCriteria: 'ui-report__action-criteria',
|
|
319
|
+
reportActionSource: 'ui-report__action-source',
|
|
320
|
+
claim: 'ui-claim',
|
|
321
|
+
claimSupported: 'ui-claim--supported',
|
|
322
|
+
claimPartial: 'ui-claim--partial',
|
|
323
|
+
claimDisputed: 'ui-claim--disputed',
|
|
324
|
+
claimUnsupported: 'ui-claim--unsupported',
|
|
325
|
+
claimUnknown: 'ui-claim--unknown',
|
|
326
|
+
claimStatement: 'ui-claim__statement',
|
|
327
|
+
claimStatus: 'ui-claim__status',
|
|
328
|
+
claimScope: 'ui-claim__scope',
|
|
329
|
+
claimBasis: 'ui-claim__basis',
|
|
330
|
+
claimLimits: 'ui-claim__limits',
|
|
331
|
+
claimRefs: 'ui-claim__refs',
|
|
332
|
+
claimCaveat: 'ui-claim__caveat',
|
|
333
|
+
evidenceGrid: 'ui-evidence-grid',
|
|
334
|
+
evidenceLedger: 'ui-evidence-ledger',
|
|
335
|
+
evidenceItem: 'ui-evidence-item',
|
|
336
|
+
evidenceItemTitle: 'ui-evidence-item__title',
|
|
337
|
+
evidenceItemMeta: 'ui-evidence-item__meta',
|
|
338
|
+
evidenceItemBody: 'ui-evidence-item__body',
|
|
339
|
+
evidenceItemKind: 'ui-evidence-item__kind',
|
|
340
|
+
evidenceItemMethod: 'ui-evidence-item__method',
|
|
341
|
+
evidenceItemWindow: 'ui-evidence-item__window',
|
|
342
|
+
evidenceItemValue: 'ui-evidence-item__value',
|
|
343
|
+
evidenceItemSource: 'ui-evidence-item__source',
|
|
344
|
+
evidenceItemCaveat: 'ui-evidence-item__caveat',
|
|
292
345
|
compare: 'ui-compare',
|
|
293
346
|
compare2up: 'ui-compare--2up',
|
|
294
347
|
compareCol: 'ui-compare__col',
|
|
@@ -721,6 +774,31 @@ const meterTone = (tone) =>
|
|
|
721
774
|
tone,
|
|
722
775
|
);
|
|
723
776
|
|
|
777
|
+
const reportFindingSeverity = (severity) =>
|
|
778
|
+
toneClass(
|
|
779
|
+
'reportFinding',
|
|
780
|
+
{
|
|
781
|
+
critical: cls.reportFindingCritical,
|
|
782
|
+
major: cls.reportFindingMajor,
|
|
783
|
+
minor: cls.reportFindingMinor,
|
|
784
|
+
resolved: cls.reportFindingResolved,
|
|
785
|
+
},
|
|
786
|
+
severity,
|
|
787
|
+
);
|
|
788
|
+
|
|
789
|
+
const claimStatus = (status) =>
|
|
790
|
+
toneClass(
|
|
791
|
+
'claim',
|
|
792
|
+
{
|
|
793
|
+
supported: cls.claimSupported,
|
|
794
|
+
partial: cls.claimPartial,
|
|
795
|
+
disputed: cls.claimDisputed,
|
|
796
|
+
unsupported: cls.claimUnsupported,
|
|
797
|
+
unknown: cls.claimUnknown,
|
|
798
|
+
},
|
|
799
|
+
status,
|
|
800
|
+
);
|
|
801
|
+
|
|
724
802
|
export const ui = {
|
|
725
803
|
button: ({ variant, icon, size } = {}) =>
|
|
726
804
|
j(
|
|
@@ -745,6 +823,8 @@ export const ui = {
|
|
|
745
823
|
invert && cls.deltaInvert,
|
|
746
824
|
),
|
|
747
825
|
compare: ({ cols } = {}) => j(cls.compare, cols === 2 && cls.compare2up),
|
|
826
|
+
reportFinding: ({ severity } = {}) => j(cls.reportFinding, reportFindingSeverity(severity)),
|
|
827
|
+
claim: ({ status } = {}) => j(cls.claim, claimStatus(status)),
|
|
748
828
|
chip: ({ accent } = {}) => j(cls.chip, accent && cls.chipAccent),
|
|
749
829
|
link: ({ arrow, cta } = {}) => j(cls.link, arrow && cls.linkArrow, cta && cls.linkCta),
|
|
750
830
|
dot: ({ tone, live } = {}) => j(cls.dot, dotTone(tone), live && cls.dotLive),
|
package/css/report.css
CHANGED
|
@@ -30,6 +30,24 @@
|
|
|
30
30
|
counter-reset: report-section;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
.ui-report > *,
|
|
34
|
+
.ui-report__cover > *,
|
|
35
|
+
.ui-report__head > *,
|
|
36
|
+
.ui-report__toc > *,
|
|
37
|
+
.ui-report__summary > *,
|
|
38
|
+
.ui-report__decision > *,
|
|
39
|
+
.ui-report__finding > *,
|
|
40
|
+
.ui-report__evidence > *,
|
|
41
|
+
.ui-report__section > *,
|
|
42
|
+
.ui-report__figure > *,
|
|
43
|
+
.ui-claim > *,
|
|
44
|
+
.ui-evidence-grid > *,
|
|
45
|
+
.ui-evidence-ledger > *,
|
|
46
|
+
.ui-compare > *,
|
|
47
|
+
.ui-compare__col > * {
|
|
48
|
+
min-inline-size: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
33
51
|
.ui-report__cover {
|
|
34
52
|
align-content: end;
|
|
35
53
|
border-block-end: 1px solid var(--line);
|
|
@@ -142,8 +160,204 @@
|
|
|
142
160
|
border-inline-start: 2px solid var(--accent);
|
|
143
161
|
}
|
|
144
162
|
|
|
163
|
+
.ui-report__decision {
|
|
164
|
+
background: var(--panel);
|
|
165
|
+
border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--line));
|
|
166
|
+
border-inline-start: 3px solid var(--accent);
|
|
167
|
+
border-radius: var(--radius-md);
|
|
168
|
+
display: grid;
|
|
169
|
+
gap: var(--space-sm);
|
|
170
|
+
padding: var(--space-md);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.ui-report__decision-kicker {
|
|
174
|
+
color: var(--accent-text);
|
|
175
|
+
font-family: var(--mono);
|
|
176
|
+
font-size: var(--text-2xs);
|
|
177
|
+
letter-spacing: var(--tracking-wide);
|
|
178
|
+
margin: 0;
|
|
179
|
+
text-transform: uppercase;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.ui-report__decision-title {
|
|
183
|
+
color: var(--text);
|
|
184
|
+
font-family: var(--display);
|
|
185
|
+
font-size: var(--text-lg);
|
|
186
|
+
font-weight: var(--display-weight);
|
|
187
|
+
letter-spacing: 0;
|
|
188
|
+
line-height: 1.18;
|
|
189
|
+
margin: 0;
|
|
190
|
+
text-transform: uppercase;
|
|
191
|
+
text-wrap: balance;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.ui-report__decision-body {
|
|
195
|
+
color: var(--text-soft);
|
|
196
|
+
line-height: 1.6;
|
|
197
|
+
margin: 0;
|
|
198
|
+
max-inline-size: var(--report-measure);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.ui-report__decision-meta {
|
|
202
|
+
color: var(--text-dim);
|
|
203
|
+
display: flex;
|
|
204
|
+
flex-wrap: wrap;
|
|
205
|
+
font-family: var(--mono);
|
|
206
|
+
font-size: var(--text-2xs);
|
|
207
|
+
gap: 0.45rem 0.75rem;
|
|
208
|
+
letter-spacing: 0;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.ui-report__decision-grid {
|
|
212
|
+
border-block-start: 1px solid var(--line);
|
|
213
|
+
display: grid;
|
|
214
|
+
gap: 0;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.ui-report__decision-item {
|
|
218
|
+
align-items: start;
|
|
219
|
+
border-block-end: 1px solid var(--line);
|
|
220
|
+
display: grid;
|
|
221
|
+
gap: var(--space-xs);
|
|
222
|
+
grid-template-columns: minmax(8rem, 14rem) minmax(0, 1fr);
|
|
223
|
+
padding-block: var(--space-xs);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.ui-report__decision-label,
|
|
227
|
+
.ui-report__decision-value {
|
|
228
|
+
margin: 0;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.ui-report__decision-label {
|
|
232
|
+
color: var(--text-dim);
|
|
233
|
+
font-family: var(--mono);
|
|
234
|
+
font-size: var(--text-2xs);
|
|
235
|
+
letter-spacing: var(--tracking-wide);
|
|
236
|
+
text-transform: uppercase;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.ui-report__decision-value {
|
|
240
|
+
color: var(--text-soft);
|
|
241
|
+
line-height: 1.5;
|
|
242
|
+
}
|
|
243
|
+
|
|
145
244
|
.ui-report__finding {
|
|
146
|
-
|
|
245
|
+
--report-finding-tone: var(--line-strong);
|
|
246
|
+
|
|
247
|
+
border-inline-start: 2px solid var(--report-finding-tone);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.ui-report__finding--critical {
|
|
251
|
+
--report-finding-tone: var(--danger);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.ui-report__finding--major {
|
|
255
|
+
--report-finding-tone: var(--warning);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.ui-report__finding--minor {
|
|
259
|
+
--report-finding-tone: var(--info);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.ui-report__finding--resolved {
|
|
263
|
+
--report-finding-tone: var(--success);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.ui-report__finding-title,
|
|
267
|
+
.ui-report__finding-claim,
|
|
268
|
+
.ui-report__finding-impact,
|
|
269
|
+
.ui-report__finding-remediation,
|
|
270
|
+
.ui-report__finding-evidence,
|
|
271
|
+
.ui-report__finding-caveat {
|
|
272
|
+
margin: 0;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.ui-report__finding-title {
|
|
276
|
+
color: var(--text);
|
|
277
|
+
font-size: var(--text-md);
|
|
278
|
+
font-weight: 650;
|
|
279
|
+
line-height: 1.25;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.ui-report__finding-claim {
|
|
283
|
+
color: var(--text);
|
|
284
|
+
line-height: 1.6;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.ui-report__finding-impact,
|
|
288
|
+
.ui-report__finding-remediation,
|
|
289
|
+
.ui-report__finding-evidence {
|
|
290
|
+
color: var(--text-soft);
|
|
291
|
+
line-height: 1.55;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.ui-report__finding-caveat {
|
|
295
|
+
color: var(--text-dim);
|
|
296
|
+
font-size: var(--text-sm);
|
|
297
|
+
line-height: 1.55;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.ui-claim {
|
|
301
|
+
--claim-tone: var(--accent);
|
|
302
|
+
|
|
303
|
+
background: var(--panel-soft);
|
|
304
|
+
border: 1px solid var(--line);
|
|
305
|
+
border-inline-start: 2px solid var(--claim-tone);
|
|
306
|
+
border-radius: var(--radius-md);
|
|
307
|
+
display: grid;
|
|
308
|
+
gap: var(--space-xs);
|
|
309
|
+
padding: var(--space-sm);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.ui-claim--supported {
|
|
313
|
+
--claim-tone: var(--success);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.ui-claim--partial {
|
|
317
|
+
--claim-tone: var(--warning);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.ui-claim--disputed,
|
|
321
|
+
.ui-claim--unsupported {
|
|
322
|
+
--claim-tone: var(--danger);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.ui-claim--unknown {
|
|
326
|
+
--claim-tone: var(--info);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.ui-claim__statement,
|
|
330
|
+
.ui-claim__status,
|
|
331
|
+
.ui-claim__scope,
|
|
332
|
+
.ui-claim__basis,
|
|
333
|
+
.ui-claim__limits,
|
|
334
|
+
.ui-claim__refs,
|
|
335
|
+
.ui-claim__caveat {
|
|
336
|
+
margin: 0;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.ui-claim__statement {
|
|
340
|
+
color: var(--text);
|
|
341
|
+
font-weight: 650;
|
|
342
|
+
line-height: 1.45;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.ui-claim__status,
|
|
346
|
+
.ui-claim__scope,
|
|
347
|
+
.ui-claim__refs {
|
|
348
|
+
color: var(--text-dim);
|
|
349
|
+
font-family: var(--mono);
|
|
350
|
+
font-size: var(--text-2xs);
|
|
351
|
+
letter-spacing: 0;
|
|
352
|
+
text-transform: uppercase;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.ui-claim__basis,
|
|
356
|
+
.ui-claim__limits,
|
|
357
|
+
.ui-claim__caveat {
|
|
358
|
+
color: var(--text-soft);
|
|
359
|
+
font-size: var(--text-sm);
|
|
360
|
+
line-height: 1.55;
|
|
147
361
|
}
|
|
148
362
|
|
|
149
363
|
.ui-report__evidence {
|
|
@@ -208,6 +422,142 @@
|
|
|
208
422
|
text-transform: uppercase;
|
|
209
423
|
}
|
|
210
424
|
|
|
425
|
+
.ui-evidence-grid {
|
|
426
|
+
display: grid;
|
|
427
|
+
gap: var(--space-sm);
|
|
428
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.ui-evidence-item {
|
|
432
|
+
background: var(--panel-soft);
|
|
433
|
+
border: 1px solid var(--line);
|
|
434
|
+
border-radius: var(--radius-md);
|
|
435
|
+
display: grid;
|
|
436
|
+
gap: 0.35rem;
|
|
437
|
+
padding: var(--space-sm);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
.ui-evidence-item__title {
|
|
441
|
+
color: var(--text);
|
|
442
|
+
font-size: var(--text-sm);
|
|
443
|
+
font-weight: 600;
|
|
444
|
+
margin: 0;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
.ui-evidence-item__meta {
|
|
448
|
+
color: var(--text-dim);
|
|
449
|
+
font-family: var(--mono);
|
|
450
|
+
font-size: var(--text-2xs);
|
|
451
|
+
letter-spacing: 0;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.ui-evidence-item__body {
|
|
455
|
+
color: var(--text-soft);
|
|
456
|
+
font-size: var(--text-sm);
|
|
457
|
+
line-height: 1.55;
|
|
458
|
+
margin: 0;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.ui-evidence-item__kind,
|
|
462
|
+
.ui-evidence-item__method,
|
|
463
|
+
.ui-evidence-item__window,
|
|
464
|
+
.ui-evidence-item__value,
|
|
465
|
+
.ui-evidence-item__source,
|
|
466
|
+
.ui-evidence-item__caveat {
|
|
467
|
+
margin: 0;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
.ui-evidence-item__kind,
|
|
471
|
+
.ui-evidence-item__method,
|
|
472
|
+
.ui-evidence-item__window,
|
|
473
|
+
.ui-evidence-item__source {
|
|
474
|
+
color: var(--text-dim);
|
|
475
|
+
font-family: var(--mono);
|
|
476
|
+
font-size: var(--text-2xs);
|
|
477
|
+
letter-spacing: 0;
|
|
478
|
+
text-transform: uppercase;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
.ui-evidence-item__value {
|
|
482
|
+
color: var(--text);
|
|
483
|
+
font-size: var(--text-md);
|
|
484
|
+
font-weight: 650;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
.ui-evidence-item__caveat {
|
|
488
|
+
color: var(--text-dim);
|
|
489
|
+
font-size: var(--text-sm);
|
|
490
|
+
line-height: 1.5;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
.ui-evidence-ledger {
|
|
494
|
+
display: grid;
|
|
495
|
+
gap: var(--space-sm);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
.ui-report__actions {
|
|
499
|
+
border-block-start: 1px solid var(--line);
|
|
500
|
+
display: grid;
|
|
501
|
+
gap: 0;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
.ui-report__action {
|
|
505
|
+
align-items: start;
|
|
506
|
+
border-block-end: 1px solid var(--line);
|
|
507
|
+
display: grid;
|
|
508
|
+
gap: var(--space-xs);
|
|
509
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
510
|
+
padding-block: var(--space-sm);
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.ui-report__action-status {
|
|
514
|
+
align-self: start;
|
|
515
|
+
color: var(--text-dim);
|
|
516
|
+
font-family: var(--mono);
|
|
517
|
+
font-size: var(--text-2xs);
|
|
518
|
+
letter-spacing: var(--tracking-wide);
|
|
519
|
+
text-transform: uppercase;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
.ui-report__action-title,
|
|
523
|
+
.ui-report__action-owner,
|
|
524
|
+
.ui-report__action-due,
|
|
525
|
+
.ui-report__action-priority,
|
|
526
|
+
.ui-report__action-criteria,
|
|
527
|
+
.ui-report__action-source {
|
|
528
|
+
margin: 0;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
.ui-report__action-title {
|
|
532
|
+
color: var(--text);
|
|
533
|
+
font-weight: 650;
|
|
534
|
+
line-height: 1.45;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.ui-report__action-owner,
|
|
538
|
+
.ui-report__action-due,
|
|
539
|
+
.ui-report__action-priority,
|
|
540
|
+
.ui-report__action-source {
|
|
541
|
+
color: var(--text-dim);
|
|
542
|
+
font-family: var(--mono);
|
|
543
|
+
font-size: var(--text-2xs);
|
|
544
|
+
letter-spacing: 0;
|
|
545
|
+
text-transform: uppercase;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.ui-report__action-criteria {
|
|
549
|
+
color: var(--text-soft);
|
|
550
|
+
font-size: var(--text-sm);
|
|
551
|
+
line-height: 1.5;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
@media (max-width: 32rem) {
|
|
555
|
+
.ui-report__decision-item,
|
|
556
|
+
.ui-report__action {
|
|
557
|
+
grid-template-columns: 1fr;
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
211
561
|
.ui-report__sources,
|
|
212
562
|
.ui-report__appendix,
|
|
213
563
|
.ui-report__footnotes {
|
|
@@ -343,13 +693,44 @@
|
|
|
343
693
|
min-block-size: auto;
|
|
344
694
|
}
|
|
345
695
|
|
|
696
|
+
/* Chromium-class print engines overprint grid rows across page breaks
|
|
697
|
+
(fragmented grid tracks restart at the page top, on top of the running
|
|
698
|
+
content). Demote ONLY the vertical document-flow wrappers to block flow
|
|
699
|
+
and emulate their gap with margins; multi-column grids (.ui-compare,
|
|
700
|
+
.ui-meter__row, .ui-report__decision-item, .ui-evidence-grid, …) keep
|
|
701
|
+
grid — their content is break-inside-avoided as a unit instead. */
|
|
702
|
+
.ui-report,
|
|
703
|
+
.ui-report__section,
|
|
704
|
+
.ui-report__figure,
|
|
705
|
+
.ui-report__actions,
|
|
706
|
+
.ui-evidence-ledger {
|
|
707
|
+
display: block;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
.ui-report > * + * {
|
|
711
|
+
margin-block-start: var(--report-gap);
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
.ui-report__section > * + * {
|
|
715
|
+
margin-block-start: var(--space-md);
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
.ui-report__figure > * + *,
|
|
719
|
+
.ui-evidence-ledger > * + * {
|
|
720
|
+
margin-block-start: var(--space-sm);
|
|
721
|
+
}
|
|
722
|
+
|
|
346
723
|
.ui-report__cover,
|
|
347
724
|
.ui-report__head,
|
|
348
|
-
.ui-
|
|
725
|
+
.ui-report__decision,
|
|
349
726
|
.ui-report__summary,
|
|
350
727
|
.ui-report__finding,
|
|
351
728
|
.ui-report__evidence,
|
|
352
|
-
.ui-report__figure
|
|
729
|
+
.ui-report__figure,
|
|
730
|
+
.ui-report__toc,
|
|
731
|
+
.ui-claim,
|
|
732
|
+
.ui-evidence-item,
|
|
733
|
+
.ui-report__action {
|
|
353
734
|
break-inside: avoid;
|
|
354
735
|
}
|
|
355
736
|
|
package/css/sources.css
CHANGED
|
@@ -117,11 +117,13 @@
|
|
|
117
117
|
gap: var(--space-sm);
|
|
118
118
|
list-style: none;
|
|
119
119
|
margin: 0;
|
|
120
|
+
min-inline-size: 0;
|
|
120
121
|
padding: 0;
|
|
121
122
|
}
|
|
122
123
|
|
|
123
124
|
.ui-source-list__item {
|
|
124
125
|
margin: 0;
|
|
126
|
+
min-inline-size: 0;
|
|
125
127
|
}
|
|
126
128
|
|
|
127
129
|
/* --- Source card — a single source preview. --- */
|
|
@@ -132,15 +134,28 @@
|
|
|
132
134
|
border-radius: var(--radius-md);
|
|
133
135
|
display: grid;
|
|
134
136
|
gap: 0.3rem;
|
|
137
|
+
min-inline-size: 0;
|
|
135
138
|
padding: 0.75rem 0.9rem;
|
|
136
139
|
print-color-adjust: exact;
|
|
137
140
|
}
|
|
138
141
|
|
|
142
|
+
.ui-source-card:target,
|
|
143
|
+
.ui-source-card.is-source-active {
|
|
144
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--src-tone) 22%, transparent);
|
|
145
|
+
outline: 2px solid var(--src-tone);
|
|
146
|
+
outline-offset: 2px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.ui-source-card > * {
|
|
150
|
+
min-inline-size: 0;
|
|
151
|
+
}
|
|
152
|
+
|
|
139
153
|
.ui-source-card__title {
|
|
140
154
|
color: var(--text);
|
|
141
155
|
font-size: var(--text-sm);
|
|
142
156
|
font-weight: 600;
|
|
143
157
|
margin: 0;
|
|
158
|
+
overflow-wrap: break-word;
|
|
144
159
|
}
|
|
145
160
|
|
|
146
161
|
.ui-source-card__origin {
|
|
@@ -148,17 +163,20 @@
|
|
|
148
163
|
font-family: var(--mono);
|
|
149
164
|
font-size: var(--text-2xs);
|
|
150
165
|
letter-spacing: var(--tracking-wide);
|
|
166
|
+
overflow-wrap: anywhere;
|
|
151
167
|
}
|
|
152
168
|
|
|
153
169
|
.ui-source-card__time {
|
|
154
170
|
color: var(--text-dim);
|
|
155
171
|
font-family: var(--mono);
|
|
156
172
|
font-size: var(--text-2xs);
|
|
173
|
+
overflow-wrap: anywhere;
|
|
157
174
|
}
|
|
158
175
|
|
|
159
176
|
.ui-source-card__excerpt {
|
|
160
177
|
color: var(--text-soft);
|
|
161
178
|
margin: 0;
|
|
179
|
+
overflow-wrap: anywhere;
|
|
162
180
|
}
|
|
163
181
|
|
|
164
182
|
.ui-source-card__actions {
|
package/css/tokens.css
CHANGED
|
@@ -282,8 +282,15 @@
|
|
|
282
282
|
--shadow-raised: 0 0 0 1px var(--text);
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
+
:root[data-contrast='high'] {
|
|
286
|
+
--line: var(--line-strong);
|
|
287
|
+
--text-dim: var(--text-soft);
|
|
288
|
+
--focus-ring: var(--accent);
|
|
289
|
+
--shadow-raised: 0 0 0 1px var(--text);
|
|
290
|
+
}
|
|
291
|
+
|
|
285
292
|
@media (prefers-contrast: more) {
|
|
286
|
-
:root {
|
|
293
|
+
:root:root {
|
|
287
294
|
--line: var(--line-strong);
|
|
288
295
|
--text-dim: var(--text-soft);
|
|
289
296
|
--focus-ring: var(--accent);
|