@atelic-action/artifact 4.2.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,11 @@
1
1
  /* The composed documents in this package: the sealed document stage (Gate),
2
- the monthly page (Report), the writeup (Writeup), the note (Note), the
3
- read (Read), and the first call sheet (FirstCall). Moved from @atelic-action/ui's styles/artifact.css with the
4
- documents (ATE-671), in the order that sheet bundled them, which the two
5
- @page rules depend on: the later one wins, and the writeup's is the later
6
- one. The note, the read, and the first call sheet follow the writeup and
7
- set no @page, so the writeup's stays the one that wins.
2
+ the monthly page (Report), the read (TheRead, with its section card in
3
+ Topic), the note (Note), and the first call sheet (FirstCall). Moved from
4
+ @atelic-action/ui's styles/artifact.css with the documents (ATE-671), in
5
+ the order that sheet bundled them, which the two @page rules depend on:
6
+ the later one wins, and the read's is the later one. The note and the
7
+ first call sheet follow the read and set no @page, so the read's stays
8
+ the one that wins.
8
9
 
9
10
  The pieces the documents share stay in @atelic-action/ui: the grade chip
10
11
  (.op-grade), the sign off (.op-who, .op-sign), the shot (.op-shot), the
@@ -456,7 +457,7 @@
456
457
  .atelic-ui .gate-sign {
457
458
  margin: 44px 0 18px;
458
459
  /* The pitch surface sign off is the script face (voice.md rule 9),
459
- the same face the writeup and the monthly page close on, centered
460
+ the same face the read and the monthly page close on, centered
460
461
  on the dark stage. */
461
462
  font-family: var(--font-script);
462
463
  font-size: clamp(38px, 5.5vw, 56px);
@@ -513,7 +514,7 @@
513
514
 
514
515
  /* =================================================================
515
516
  THE MONTHLY PAGE: one letter sheet and its hosted twin. Three
516
- renderings of one DOM, the same as the writeup's:
517
+ renderings of one DOM, the same as the read's:
517
518
 
518
519
  - Screen (wide): the sheet at letter width on the surface, under the
519
520
  artifact shell's dark header.
@@ -817,8 +818,10 @@
817
818
  }
818
819
 
819
820
  /* =================================================================
820
- THE WRITEUP: a web page first, and the printed copy from the same
821
- page.
821
+ THE READ, the card and the column (.op): a web page first, and the
822
+ printed copy from the same page. The .op rules are the document's
823
+ frame, shared with every section card (Topic.tsx); the read's own
824
+ beats (.rd) follow at the foot of this sheet.
822
825
 
823
826
  - Phone first: the base rules are the phone's. Each section is a card
824
827
  of small blocks in one column; a table's rows stack, each fact
@@ -1074,7 +1077,7 @@
1074
1077
  background: var(--neutral-300);
1075
1078
  }
1076
1079
 
1077
- /* The blocks are the shared package's components. These are the writeup's
1080
+ /* The blocks are the shared package's components. These are the read's
1078
1081
  sizes for them. */
1079
1082
  .atelic-ui .op-checks .checklist,
1080
1083
  .atelic-ui .op-scale .threshold-scale {
@@ -1085,7 +1088,7 @@
1085
1088
  font-size: 13px;
1086
1089
  }
1087
1090
 
1088
- /* the table: its layout is the shared DataTable's; these are the writeup's
1091
+ /* the table: its layout is the shared DataTable's; these are the read's
1089
1092
  own sizes and the two line row names. */
1090
1093
  .atelic-ui .op-table .data-table {
1091
1094
  font-size: 15px;
@@ -1115,6 +1118,58 @@
1115
1118
  .atelic-ui .op-table td:has(.op-wrap) {
1116
1119
  white-space: normal;
1117
1120
  }
1121
+ /* the phone test: a small grade chip before each run's score, at the
1122
+ column's left edge on a wide screen */
1123
+ .atelic-ui .op-speed .op-grade {
1124
+ display: inline-grid;
1125
+ place-items: center;
1126
+ width: 22px;
1127
+ height: 22px;
1128
+ margin: 0 8px 0 0;
1129
+ padding: 0;
1130
+ font-size: 12px;
1131
+ }
1132
+ .atelic-ui .op-speed-score {
1133
+ display: inline-flex;
1134
+ align-items: center;
1135
+ font-variant-numeric: tabular-nums;
1136
+ }
1137
+ .atelic-ui .op-speed tbody th {
1138
+ white-space: nowrap;
1139
+ font-weight: 600;
1140
+ }
1141
+ @media print, (min-width: 721px) {
1142
+ .atelic-ui .op-speed-score {
1143
+ display: flex;
1144
+ justify-content: space-between;
1145
+ width: 100%;
1146
+ }
1147
+ }
1148
+ /* the why over the table: one small line, the title run into the body */
1149
+ .atelic-ui .op-speed-why {
1150
+ margin-top: 12px;
1151
+ font-size: 13px;
1152
+ line-height: 1.45;
1153
+ color: var(--op-ink-soft);
1154
+ }
1155
+ .atelic-ui .op-speed-why .callout-icon {
1156
+ width: 14px;
1157
+ height: 14px;
1158
+ margin-top: 2px;
1159
+ }
1160
+ .atelic-ui .op-speed-why .callout-title,
1161
+ .atelic-ui .op-speed-why .callout-body {
1162
+ display: inline;
1163
+ font-size: inherit;
1164
+ line-height: inherit;
1165
+ }
1166
+ .atelic-ui .op-speed-why .callout-title {
1167
+ font-weight: 600;
1168
+ color: var(--op-ink);
1169
+ }
1170
+ .atelic-ui .op-speed-why .callout-title::after {
1171
+ content: " ";
1172
+ }
1118
1173
  .atelic-ui .op-mark-cell {
1119
1174
  display: inline-flex;
1120
1175
  align-items: center;
@@ -1138,7 +1193,7 @@
1138
1193
  fill: currentColor;
1139
1194
  }
1140
1195
 
1141
- /* a few big numbers: the shared StatRow, at the writeup's sizes */
1196
+ /* a few big numbers: the shared StatRow, at the read's sizes */
1142
1197
  .atelic-ui .op-stats .stat-row {
1143
1198
  gap: 18px 28px;
1144
1199
  }
@@ -1183,7 +1238,7 @@
1183
1238
  object-position: center;
1184
1239
  }
1185
1240
 
1186
- /* the native disclosure: the shared one, at the writeup's sizes */
1241
+ /* the native disclosure: the shared one, at the read's sizes */
1187
1242
  .atelic-ui .op-block.disclosure.is-native {
1188
1243
  border-top: 1px solid var(--op-rule);
1189
1244
  }
@@ -1676,7 +1731,7 @@
1676
1731
 
1677
1732
  /* =================================================================
1678
1733
  THE NOTE: the first touch set as a page (Note.tsx). A letter, not a
1679
- report, read on a phone first. Its column is the writeup's 920px,
1734
+ report, read on a phone first. Its column is the read's 920px,
1680
1735
  centered under the header with the header's own gutters, and every
1681
1736
  line of text runs the column's full width.
1682
1737
 
@@ -1691,15 +1746,15 @@
1691
1746
  - Print: one letter sheet. The chrome steps aside (ui's artifact.css
1692
1747
  hides the header and the credit band on any artifact page), the
1693
1748
  type comes down, and the screens shrink. The note sets
1694
- no @page of its own: the writeup's, the later one in this sheet,
1749
+ no @page of its own: the read's, the later one in this sheet,
1695
1750
  sets letter paper for every artifact page.
1696
1751
 
1697
1752
  Tokens only. The finding is the shared Callout (@atelic-action/ui's components.css),
1698
1753
  the screen the shared .op-shot, the sign off the shared .op-who;
1699
1754
  this sheet sets the letter around them and their sizes here.
1700
1755
  ================================================================= */
1701
- /* The shared .op-shot reads the writeup's own two tokens, mapped here as
1702
- the writeup's .op root maps them. */
1756
+ /* The shared .op-shot reads the read's own two tokens, mapped here as
1757
+ the read's .op root maps them. */
1703
1758
  .atelic-ui .nt {
1704
1759
  --op-card: var(--card);
1705
1760
  --op-ink-faint: var(--neutral-500);
@@ -1707,7 +1762,7 @@
1707
1762
  color: var(--ink);
1708
1763
  background: var(--surface);
1709
1764
  }
1710
- /* The writeup's column (.op-doc, 920px), centered under the header and
1765
+ /* The read's column (.op-doc, 920px), centered under the header and
1711
1766
  held off the edges by the header's gutters (chrome.css, .nav-inner). */
1712
1767
  .atelic-ui .nt-doc {
1713
1768
  max-width: calc(920px + 2 * var(--gutter));
@@ -1909,7 +1964,7 @@
1909
1964
  font-size: 24px;
1910
1965
  margin-bottom: 8px;
1911
1966
  }
1912
- /* The sign off's own links read as the writeup's do: quiet, in the text color. */
1967
+ /* The sign off's own links read as the read's do: quiet, in the text color. */
1913
1968
  .atelic-ui .nt-close .op-who a {
1914
1969
  color: inherit;
1915
1970
  text-decoration: none;
@@ -1953,7 +2008,7 @@
1953
2008
 
1954
2009
  /* ---- print: one letter sheet ----
1955
2010
  The rows hold on paper, since they are shorter than the stacked page.
1956
- The sheet is the page at the writeup's three quarters, the thumbnails
2011
+ The sheet is the page at the read's three quarters, the thumbnails
1957
2012
  are held short with room for their captions, and the badge drops. */
1958
2013
  @media print {
1959
2014
  html:has(.atelic-ui .nt-doc) {
@@ -2031,24 +2086,22 @@
2031
2086
  }
2032
2087
 
2033
2088
  /* =================================================================
2034
- THE READ: the baseline's grades explained by cause (Read.tsx). The
2035
- writeup's sibling: it sits inside the writeup's own .op root, so the
2036
- column, the head, the grade chip and its key, the tier heading, the
2037
- section card, the screen, the close, and every print rule of the
2038
- writeup's are its own already. This block adds only what the read has
2039
- and the writeup does not: the scorecard and the note over it, the
2040
- two beats a section adds to the writeup's card (today and after, and
2041
- what we recommend), and the numbered plan. It sets no @page; the writeup's, earlier in this sheet and the
2042
- later of the two there, sets letter paper for every artifact page.
2089
+ THE READ, its own beats (.rd): what TheRead.tsx adds around the .op
2090
+ frame above, whose column, head, grade chip and key, tier heading,
2091
+ section card, screen, close, and print rules it already wears: the
2092
+ scorecard and the note over it, the two beats a section adds to the
2093
+ card (today and after, and what we recommend), and the numbered plan.
2094
+ It sets no @page; the frame's, earlier in this sheet and the later of
2095
+ the two there, sets letter paper for every artifact page.
2043
2096
 
2044
2097
  Tokens only (theme.css).
2045
2098
  ================================================================= */
2046
2099
 
2047
- /* The lede runs the full width of the page; the writeup's intro is the one that is capped. */
2100
+ /* The lede runs the full width of the page; the frame's .op-intro is the one that is capped. */
2048
2101
  .atelic-ui .rd-lede {
2049
2102
  max-width: none;
2050
2103
  }
2051
- /* Prose links read as links here, where the writeup's are quiet. */
2104
+ /* Prose links read as links here, where the frame's are quiet. */
2052
2105
  .atelic-ui .rd-lede a,
2053
2106
  .atelic-ui .rd-note a,
2054
2107
  .atelic-ui .rd-doc .op-why a,
@@ -2366,7 +2419,7 @@
2366
2419
  }
2367
2420
  }
2368
2421
 
2369
- /* ---- print: the writeup's rules carry the page; these hold the read's
2422
+ /* ---- print: the frame's rules carry the page; these hold the read's
2370
2423
  own blocks whole ---- */
2371
2424
  @media print {
2372
2425
  .atelic-ui .rd-steps {
@@ -2387,7 +2440,7 @@
2387
2440
  }
2388
2441
  }
2389
2442
 
2390
- /* ---- the first call sheet (FirstCall): the writeup's topic and findings
2443
+ /* ---- the first call sheet (FirstCall): the read's topic and findings
2391
2444
  blocks and the read's steps carry it; these are the few rules it adds
2392
2445
  (the Claude Design cut of 2026-10-23) ---- */
2393
2446
  .atelic-ui .fc-units {
@@ -4,9 +4,35 @@
4
4
  * chip, the sign off, the page components, the button), which this package
5
5
  * depends on and never copies, and wears the styles in ./documents.css.
6
6
  */
7
+ export type { WriteupGrade, WriteupPerson, WriteupShot } from "@atelic-action/ui/artifact";
7
8
  export * from "./FirstCall";
8
9
  export { Gate, type GatePayload, type GatePerson, type GateProps, normalizeEmail } from "./Gate";
9
10
  export * from "./Note";
10
- export * from "./Read";
11
11
  export * from "./Report";
12
- export * from "./Writeup";
12
+ export * from "./TheRead";
13
+ export {
14
+ type ReadBar,
15
+ type ReadBlock,
16
+ type ReadBullet,
17
+ type ReadCell,
18
+ type ReadChecks,
19
+ type ReadColumns,
20
+ type ReadFindings,
21
+ type ReadInnerBlock,
22
+ type ReadMark,
23
+ type ReadMore,
24
+ type ReadScale,
25
+ type ReadShots,
26
+ type ReadSorted,
27
+ type ReadSource,
28
+ type ReadSpeed,
29
+ type ReadSpeedLabels,
30
+ type ReadSpeedRun,
31
+ type ReadStats,
32
+ type ReadTable,
33
+ type ReadTone,
34
+ type ReadTopic,
35
+ ratingCell,
36
+ readSpeedLabels,
37
+ Topic,
38
+ } from "./Topic";