@12ui/design 0.2.55 → 0.2.57

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 (222) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/branch-client.d.ts +2 -0
  3. package/dist/branch-client.d.ts.map +1 -1
  4. package/dist/branch-client.js +1 -0
  5. package/dist/branch-client.js.map +1 -1
  6. package/dist/cli-arguments.d.ts.map +1 -1
  7. package/dist/cli-arguments.js +2 -0
  8. package/dist/cli-arguments.js.map +1 -1
  9. package/dist/cli-conversion-derivation.d.ts +2 -1
  10. package/dist/cli-conversion-derivation.d.ts.map +1 -1
  11. package/dist/cli-conversion-derivation.js +9 -1
  12. package/dist/cli-conversion-derivation.js.map +1 -1
  13. package/dist/cli-convert-command.d.ts.map +1 -1
  14. package/dist/cli-convert-command.js +111 -16
  15. package/dist/cli-convert-command.js.map +1 -1
  16. package/dist/cli-corpus-command.d.ts.map +1 -1
  17. package/dist/cli-corpus-command.js +5 -2
  18. package/dist/cli-corpus-command.js.map +1 -1
  19. package/dist/cli-corpus-evidence.d.ts.map +1 -1
  20. package/dist/cli-corpus-evidence.js +2 -1
  21. package/dist/cli-corpus-evidence.js.map +1 -1
  22. package/dist/cli-corpus-reference-downloads.d.ts +1 -0
  23. package/dist/cli-corpus-reference-downloads.d.ts.map +1 -1
  24. package/dist/cli-corpus-reference-downloads.js +13 -3
  25. package/dist/cli-corpus-reference-downloads.js.map +1 -1
  26. package/dist/cli-corpus-types.d.ts +2 -0
  27. package/dist/cli-corpus-types.d.ts.map +1 -1
  28. package/dist/cli-draft-command.d.ts +11 -0
  29. package/dist/cli-draft-command.d.ts.map +1 -1
  30. package/dist/cli-draft-command.js +10 -1
  31. package/dist/cli-draft-command.js.map +1 -1
  32. package/dist/cli-help/design.d.ts +2 -2
  33. package/dist/cli-help/design.d.ts.map +1 -1
  34. package/dist/cli-help/design.js +12 -2
  35. package/dist/cli-help/design.js.map +1 -1
  36. package/dist/cli-help/index.d.ts +2 -2
  37. package/dist/cli-improve-command.d.ts.map +1 -1
  38. package/dist/cli-improve-command.js +317 -70
  39. package/dist/cli-improve-command.js.map +1 -1
  40. package/dist/cli-next-command.d.ts.map +1 -1
  41. package/dist/cli-next-command.js +44 -4
  42. package/dist/cli-next-command.js.map +1 -1
  43. package/dist/cli-usage.js +2 -2
  44. package/dist/concept-input.d.ts +21 -0
  45. package/dist/concept-input.d.ts.map +1 -1
  46. package/dist/concept-input.js +32 -10
  47. package/dist/concept-input.js.map +1 -1
  48. package/dist/conversion-client.d.ts +39 -1
  49. package/dist/conversion-client.d.ts.map +1 -1
  50. package/dist/conversion-client.js +205 -3
  51. package/dist/conversion-client.js.map +1 -1
  52. package/dist/corpus-client.d.ts +7 -1
  53. package/dist/corpus-client.d.ts.map +1 -1
  54. package/dist/corpus-client.js +6 -2
  55. package/dist/corpus-client.js.map +1 -1
  56. package/dist/corpus-reference-download-retry.d.ts +68 -0
  57. package/dist/corpus-reference-download-retry.d.ts.map +1 -0
  58. package/dist/corpus-reference-download-retry.js +123 -0
  59. package/dist/corpus-reference-download-retry.js.map +1 -0
  60. package/dist/corpus-request-error.d.ts +17 -0
  61. package/dist/corpus-request-error.d.ts.map +1 -0
  62. package/dist/corpus-request-error.js +21 -0
  63. package/dist/corpus-request-error.js.map +1 -0
  64. package/dist/draft-run.d.ts +9 -0
  65. package/dist/draft-run.d.ts.map +1 -1
  66. package/dist/draft-run.js +22 -5
  67. package/dist/draft-run.js.map +1 -1
  68. package/dist/draft-workspace.d.ts +2 -1
  69. package/dist/draft-workspace.d.ts.map +1 -1
  70. package/dist/draft-workspace.js.map +1 -1
  71. package/dist/hosted-draft-identity.d.ts +1 -0
  72. package/dist/hosted-draft-identity.d.ts.map +1 -1
  73. package/dist/hosted-draft-identity.js +1 -0
  74. package/dist/hosted-draft-identity.js.map +1 -1
  75. package/dist/improve-added-specs.d.ts +9 -0
  76. package/dist/improve-added-specs.d.ts.map +1 -1
  77. package/dist/improve-added-specs.js +28 -7
  78. package/dist/improve-added-specs.js.map +1 -1
  79. package/dist/improve-bootstrap-secret.d.ts +35 -0
  80. package/dist/improve-bootstrap-secret.d.ts.map +1 -0
  81. package/dist/improve-bootstrap-secret.js +61 -0
  82. package/dist/improve-bootstrap-secret.js.map +1 -0
  83. package/dist/improve-capture-redirect.d.ts +46 -0
  84. package/dist/improve-capture-redirect.d.ts.map +1 -0
  85. package/dist/improve-capture-redirect.js +68 -0
  86. package/dist/improve-capture-redirect.js.map +1 -0
  87. package/dist/improve-concept.d.ts +14 -1
  88. package/dist/improve-concept.d.ts.map +1 -1
  89. package/dist/improve-concept.js +29 -8
  90. package/dist/improve-concept.js.map +1 -1
  91. package/dist/improve-conversion-attempts.d.ts +96 -0
  92. package/dist/improve-conversion-attempts.d.ts.map +1 -0
  93. package/dist/improve-conversion-attempts.js +93 -0
  94. package/dist/improve-conversion-attempts.js.map +1 -0
  95. package/dist/improve-conversion-stage.d.ts +14 -0
  96. package/dist/improve-conversion-stage.d.ts.map +1 -1
  97. package/dist/improve-conversion-stage.js +254 -70
  98. package/dist/improve-conversion-stage.js.map +1 -1
  99. package/dist/improve-convert-progress.d.ts +36 -0
  100. package/dist/improve-convert-progress.d.ts.map +1 -0
  101. package/dist/improve-convert-progress.js +43 -0
  102. package/dist/improve-convert-progress.js.map +1 -0
  103. package/dist/improve-convert-resilience.d.ts +116 -0
  104. package/dist/improve-convert-resilience.d.ts.map +1 -1
  105. package/dist/improve-convert-resilience.js +158 -1
  106. package/dist/improve-convert-resilience.js.map +1 -1
  107. package/dist/improve-delivery-stages.d.ts.map +1 -1
  108. package/dist/improve-delivery-stages.js +5 -0
  109. package/dist/improve-delivery-stages.js.map +1 -1
  110. package/dist/improve-dom-diff.d.ts +2 -0
  111. package/dist/improve-dom-diff.d.ts.map +1 -1
  112. package/dist/improve-dom-diff.js +7 -0
  113. package/dist/improve-dom-diff.js.map +1 -1
  114. package/dist/improve-dom-gate.d.ts +7 -0
  115. package/dist/improve-dom-gate.d.ts.map +1 -1
  116. package/dist/improve-dom-gate.js +13 -0
  117. package/dist/improve-dom-gate.js.map +1 -1
  118. package/dist/improve-generation-stages.d.ts +3 -0
  119. package/dist/improve-generation-stages.d.ts.map +1 -1
  120. package/dist/improve-generation-stages.js +56 -10
  121. package/dist/improve-generation-stages.js.map +1 -1
  122. package/dist/improve-icon-svg.d.ts +47 -0
  123. package/dist/improve-icon-svg.d.ts.map +1 -0
  124. package/dist/improve-icon-svg.js +83 -0
  125. package/dist/improve-icon-svg.js.map +1 -0
  126. package/dist/improve-kit-assets.d.ts +129 -0
  127. package/dist/improve-kit-assets.d.ts.map +1 -0
  128. package/dist/improve-kit-assets.js +333 -0
  129. package/dist/improve-kit-assets.js.map +1 -0
  130. package/dist/improve-kit-ignore.d.ts +32 -0
  131. package/dist/improve-kit-ignore.d.ts.map +1 -0
  132. package/dist/improve-kit-ignore.js +111 -0
  133. package/dist/improve-kit-ignore.js.map +1 -0
  134. package/dist/improve-kit-readme.d.ts +11 -2
  135. package/dist/improve-kit-readme.d.ts.map +1 -1
  136. package/dist/improve-kit-readme.js +282 -26
  137. package/dist/improve-kit-readme.js.map +1 -1
  138. package/dist/improve-kit-stall.d.ts +113 -0
  139. package/dist/improve-kit-stall.d.ts.map +1 -0
  140. package/dist/improve-kit-stall.js +311 -0
  141. package/dist/improve-kit-stall.js.map +1 -0
  142. package/dist/improve-kit-status.d.ts +105 -0
  143. package/dist/improve-kit-status.d.ts.map +1 -0
  144. package/dist/improve-kit-status.js +215 -0
  145. package/dist/improve-kit-status.js.map +1 -0
  146. package/dist/improve-options.d.ts +16 -1
  147. package/dist/improve-options.d.ts.map +1 -1
  148. package/dist/improve-options.js +65 -15
  149. package/dist/improve-options.js.map +1 -1
  150. package/dist/improve-plan-annotated-render.d.ts +45 -0
  151. package/dist/improve-plan-annotated-render.d.ts.map +1 -0
  152. package/dist/improve-plan-annotated-render.js +196 -0
  153. package/dist/improve-plan-annotated-render.js.map +1 -0
  154. package/dist/improve-plan-annotator.d.ts +7 -1
  155. package/dist/improve-plan-annotator.d.ts.map +1 -1
  156. package/dist/improve-plan-annotator.js +22 -45
  157. package/dist/improve-plan-annotator.js.map +1 -1
  158. package/dist/improve-raster-layers-section.d.ts +21 -0
  159. package/dist/improve-raster-layers-section.d.ts.map +1 -0
  160. package/dist/improve-raster-layers-section.js +45 -0
  161. package/dist/improve-raster-layers-section.js.map +1 -0
  162. package/dist/improve-reset.d.ts +122 -0
  163. package/dist/improve-reset.d.ts.map +1 -0
  164. package/dist/improve-reset.js +141 -0
  165. package/dist/improve-reset.js.map +1 -0
  166. package/dist/improve-run-summary.d.ts +35 -0
  167. package/dist/improve-run-summary.d.ts.map +1 -0
  168. package/dist/improve-run-summary.js +180 -0
  169. package/dist/improve-run-summary.js.map +1 -0
  170. package/dist/improve-stage-shared.d.ts +44 -1
  171. package/dist/improve-stage-shared.d.ts.map +1 -1
  172. package/dist/improve-stage-shared.js +80 -3
  173. package/dist/improve-stage-shared.js.map +1 -1
  174. package/dist/improve-stop-handler.d.ts +73 -0
  175. package/dist/improve-stop-handler.d.ts.map +1 -0
  176. package/dist/improve-stop-handler.js +126 -0
  177. package/dist/improve-stop-handler.js.map +1 -0
  178. package/dist/improve-terminal-event.d.ts +118 -0
  179. package/dist/improve-terminal-event.d.ts.map +1 -0
  180. package/dist/improve-terminal-event.js +87 -0
  181. package/dist/improve-terminal-event.js.map +1 -0
  182. package/dist/improve-token-patch.d.ts +2 -0
  183. package/dist/improve-token-patch.d.ts.map +1 -1
  184. package/dist/improve-token-patch.js +23 -5
  185. package/dist/improve-token-patch.js.map +1 -1
  186. package/dist/improve-workspace.d.ts +94 -2
  187. package/dist/improve-workspace.d.ts.map +1 -1
  188. package/dist/improve-workspace.js +19 -1
  189. package/dist/improve-workspace.js.map +1 -1
  190. package/dist/index.d.ts +2 -1
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +1 -0
  193. package/dist/index.js.map +1 -1
  194. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  195. package/dist/legacy-skill-catalog.js +143 -0
  196. package/dist/legacy-skill-catalog.js.map +1 -1
  197. package/dist/mcp-tool-definitions.js +1 -1
  198. package/dist/mcp-tool-definitions.js.map +1 -1
  199. package/dist/mcp-tool-handler.d.ts.map +1 -1
  200. package/dist/mcp-tool-handler.js +3 -0
  201. package/dist/mcp-tool-handler.js.map +1 -1
  202. package/dist/redesign-capture.d.ts +17 -0
  203. package/dist/redesign-capture.d.ts.map +1 -1
  204. package/dist/redesign-capture.js +55 -3
  205. package/dist/redesign-capture.js.map +1 -1
  206. package/dist/responsive-alternative-materializer.d.ts +19 -0
  207. package/dist/responsive-alternative-materializer.d.ts.map +1 -0
  208. package/dist/responsive-alternative-materializer.js +76 -0
  209. package/dist/responsive-alternative-materializer.js.map +1 -0
  210. package/dist/run-journal-unfinished.d.ts +56 -0
  211. package/dist/run-journal-unfinished.d.ts.map +1 -0
  212. package/dist/run-journal-unfinished.js +126 -0
  213. package/dist/run-journal-unfinished.js.map +1 -0
  214. package/dist/run-journal.d.ts +25 -1
  215. package/dist/run-journal.d.ts.map +1 -1
  216. package/dist/run-journal.js +15 -1
  217. package/dist/run-journal.js.map +1 -1
  218. package/open-design.json +2 -2
  219. package/package.json +1 -1
  220. package/skills/12ui-design/SKILL.md +9 -1
  221. package/skills/12ui-design/improve.md +83 -6
  222. package/skills/12ui-design/inspire.md +1 -1
@@ -4,9 +4,26 @@ import sharp from 'sharp';
4
4
  import { runDraftCommand } from './cli-draft-command.js';
5
5
  import { CliRefusal } from './cli-refusal.js';
6
6
  import { draftPaths, readDraftRecord } from './draft-workspace.js';
7
- import { captureImprovePage, parseImproveBootstrap } from './redesign-capture.js';
7
+ import { IMPROVE_BOOTSTRAP_NOT_STORED } from './improve-bootstrap-secret.js';
8
+ import { abandonImproveConversions, withoutImproveStages } from './improve-reset.js';
9
+ import { captureImprovePage } from './redesign-capture.js';
8
10
  import { improveSha256, noteImproveStage, } from './improve-stage-shared.js';
9
11
  import { writeImproveRecord, } from './improve-workspace.js';
12
+ /**
13
+ * The captured URL as the DOM extraction saw it, for a capture boundary that
14
+ * did not report one. `current.domdoc.json` has recorded `source.url` all
15
+ * along — it is the file the notion redirect was found in — so the comparison
16
+ * never depends on a browser implementation detail.
17
+ */
18
+ const domDocSourceUrl = async (file) => {
19
+ try {
20
+ const doc = JSON.parse(await readFile(file, 'utf8'));
21
+ return typeof doc.source?.url === 'string' ? doc.source.url : undefined;
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ };
10
27
  export const runImproveCaptureStage = async (args) => {
11
28
  if (args.record.capture)
12
29
  return noteImproveStage({
@@ -16,6 +33,13 @@ export const runImproveCaptureStage = async (args) => {
16
33
  let sourceImage;
17
34
  let dimensions;
18
35
  if (args.options.input.kind === 'url') {
36
+ // The record holds only a redacted bootstrap (F31), so a resume that has to
37
+ // capture again needs the live triple passed once more. Saying so before
38
+ // the browser opens costs nothing; capturing a signed-out page and
39
+ // converting it costs a run.
40
+ if (args.record.bootstrap.length > 0 && args.options.bootstrap.length === 0) {
41
+ throw new CliRefusal(IMPROVE_BOOTSTRAP_NOT_STORED, 'improve_bootstrap_not_stored');
42
+ }
19
43
  await mkdir(paths.captureDir, { recursive: true });
20
44
  sourceImage = path.join(paths.captureDir, 'source.png');
21
45
  dimensions = await (args.dependencies.capture ?? captureImprovePage)({
@@ -24,7 +48,8 @@ export const runImproveCaptureStage = async (args) => {
24
48
  domDocFile: paths.currentDomDoc,
25
49
  viewport: args.record.viewport,
26
50
  fullPage: args.record.fullPage,
27
- bootstrap: args.record.bootstrap.map(parseImproveBootstrap),
51
+ // The parsed, in-process value — never the record's redacted copy.
52
+ bootstrap: args.options.bootstrap,
28
53
  });
29
54
  }
30
55
  else {
@@ -43,6 +68,9 @@ export const runImproveCaptureStage = async (args) => {
43
68
  dimensions = { width: metadata.width, height: metadata.height };
44
69
  }
45
70
  const bytes = await readFile(sourceImage);
71
+ const capturedUrl = args.options.input.kind === 'url'
72
+ ? dimensions.url ?? await domDocSourceUrl(paths.currentDomDoc)
73
+ : undefined;
46
74
  let record = {
47
75
  ...args.record,
48
76
  input: {
@@ -54,8 +82,10 @@ export const runImproveCaptureStage = async (args) => {
54
82
  capture: {
55
83
  sourceImage,
56
84
  sha256: improveSha256(bytes),
57
- ...dimensions,
85
+ width: dimensions.width,
86
+ height: dimensions.height,
58
87
  ...(args.options.input.kind === 'url' ? { domDoc: paths.currentDomDoc } : {}),
88
+ ...(capturedUrl ? { capturedUrl } : {}),
59
89
  },
60
90
  };
61
91
  record = await noteImproveStage({
@@ -108,6 +138,10 @@ export const runImproveDraftStage = async (args) => {
108
138
  workspaceRoot: stateRoot,
109
139
  write: () => undefined,
110
140
  warn: args.dependencies.warn,
141
+ // The reference is `capture/source.png`, which improve just took of the page
142
+ // being improved. Draft's build-route notice would tell every improve run to
143
+ // convert that screenshot instead — the one thing the run is not for.
144
+ referenceFromCapture: true,
111
145
  });
112
146
  const materialized = await materializedCandidates(result);
113
147
  await mkdir(args.options.paths.candidatesDir, { recursive: true });
@@ -135,27 +169,39 @@ export const runImproveDraftStage = async (args) => {
135
169
  export const runImprovePickStage = async (args) => {
136
170
  if (!args.record.draft)
137
171
  throw new Error('Cannot pick before draft');
138
- const candidate = args.record.draft.candidates.find((entry) => entry.slot === args.options.pick);
172
+ const candidate = args.record.draft.candidates.find((entry) => entry.slot === args.pick);
139
173
  if (!candidate)
140
- throw new CliRefusal(`Candidate ${args.options.pick} was not materialized`, 'improve_pick_missing');
174
+ throw new CliRefusal(`Candidate ${args.pick} was not materialized`, 'improve_pick_missing');
141
175
  if (args.record.pick?.slot === candidate.slot)
142
176
  return noteImproveStage({
143
177
  record: args.record, stage: 'pick', priceCeilingUsd: args.price, replayed: true, write: true,
144
178
  });
145
179
  await copyFile(candidate.path, args.options.paths.winnerImage);
180
+ // Changing the winner discards a conversion somebody paid for. It used to be
181
+ // deleted with `target/` and never written down; notion's kit shows the shape
182
+ // of the cost — an abandoned conversion emitted paid progress for 55 minutes
183
+ // while a second process converted the candidate that was actually chosen.
184
+ // Nothing here can stop it: the hosted API has no cancel verb, and the polls
185
+ // it stops making were free. All this can do is name what was dropped.
186
+ let carried = args.record;
146
187
  if (args.record.pick) {
188
+ const abandoned = await abandonImproveConversions({
189
+ record: carried,
190
+ reason: `pick changed from ${args.record.pick.slot} to ${candidate.slot}`,
191
+ warn: args.dependencies?.warn ?? ((line) => { console.warn(line); }),
192
+ });
193
+ carried = abandoned.record;
194
+ if (abandoned.id) {
195
+ args.dependencies?.journal?.note({ degradations: ['improve_pick_abandoned_conversion'] });
196
+ }
147
197
  await Promise.all([
148
198
  rm(args.options.paths.targetDir, { recursive: true, force: true }),
149
199
  rm(args.options.paths.planDir, { recursive: true, force: true }),
150
200
  ]);
151
201
  }
152
202
  let record = {
153
- ...args.record,
203
+ ...(args.record.pick ? withoutImproveStages(carried, ['convert', 'plan']) : carried),
154
204
  pick: { slot: candidate.slot, imagePath: args.options.paths.winnerImage, sha256: candidate.sha256 },
155
- ...(args.record.pick ? { convert: undefined, plan: undefined } : {}),
156
- stages: args.record.pick
157
- ? Object.fromEntries(Object.entries(args.record.stages).filter(([stage]) => !['convert', 'plan'].includes(stage)))
158
- : args.record.stages,
159
205
  };
160
206
  record = await noteImproveStage({
161
207
  record, stage: 'pick', priceCeilingUsd: args.price, replayed: false, write: false,
@@ -1 +1 @@
1
- {"version":3,"file":"improve-generation-stages.js","sourceRoot":"","sources":["../src/improve-generation-stages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improve-generation-stages.js","sourceRoot":"","sources":["../src/improve-generation-stages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Icon SVGs a lane can actually ship (F30).
3
+ *
4
+ * The corpus glyph a LayerDoc carries in `iconSvg` paints with
5
+ * `currentColor`, which resolves against the *referencing* document. Written
6
+ * to `plan/assets/` and used the way the kit README tells a lane to use an
7
+ * asset — an external `<img>`, a `background-image`, a `url()` — there is no
8
+ * inherited colour, so every planned accent collapsed to black: two wave-2
9
+ * lanes shipped black icons on a dark rail before catching it at the
10
+ * screenshot step, and both invented CSS masks independently.
11
+ *
12
+ * The colour is not a guess: the icon layer declares it (`color`), so the
13
+ * plan writes that colour into an `<img>`-safe file and keeps the
14
+ * `currentColor` original beside it as `-inline.svg` for the inline and mask
15
+ * uses where inheriting is the point. When the design declares no colour
16
+ * there is nothing to plumb, so only the inline variant is written and the
17
+ * spec says so rather than shipping a file that renders black.
18
+ */
19
+ /** The declared colour of an icon layer, or nothing when none is usable. */
20
+ export declare const improveDeclaredIconColor: (value: unknown) => string | undefined;
21
+ export type ImproveIconSvgFile = {
22
+ /** File name inside `plan/assets/`. */
23
+ name: string;
24
+ svg: string;
25
+ /** `img` is safe as an external file; `inline` needs a colour at the call site. */
26
+ usage: 'img' | 'inline';
27
+ };
28
+ export type ImproveIconSvgVariants = {
29
+ files: ImproveIconSvgFile[];
30
+ /** The file the Added spec names as the asset. */
31
+ primary: ImproveIconSvgFile;
32
+ /** The `currentColor` sibling, when one was written. */
33
+ inline?: ImproveIconSvgFile;
34
+ color?: string;
35
+ /** One sentence for the spec and the plan: which file goes where. */
36
+ note: string;
37
+ };
38
+ /**
39
+ * The files to write for one icon layer. `stem` is the asset name without its
40
+ * extension, e.g. `added-014-user`.
41
+ */
42
+ export declare const improveIconSvgVariants: (args: {
43
+ svg: string;
44
+ color: unknown;
45
+ stem: string;
46
+ }) => ImproveIconSvgVariants;
47
+ //# sourceMappingURL=improve-icon-svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-icon-svg.d.ts","sourceRoot":"","sources":["../src/improve-icon-svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAaH,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,MAAM,GAAG,SAKlE,CAAC;AAMF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,kDAAkD;IAClD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,wDAAwD;IACxD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,KAAG,sBAsCH,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Icon SVGs a lane can actually ship (F30).
3
+ *
4
+ * The corpus glyph a LayerDoc carries in `iconSvg` paints with
5
+ * `currentColor`, which resolves against the *referencing* document. Written
6
+ * to `plan/assets/` and used the way the kit README tells a lane to use an
7
+ * asset — an external `<img>`, a `background-image`, a `url()` — there is no
8
+ * inherited colour, so every planned accent collapsed to black: two wave-2
9
+ * lanes shipped black icons on a dark rail before catching it at the
10
+ * screenshot step, and both invented CSS masks independently.
11
+ *
12
+ * The colour is not a guess: the icon layer declares it (`color`), so the
13
+ * plan writes that colour into an `<img>`-safe file and keeps the
14
+ * `currentColor` original beside it as `-inline.svg` for the inline and mask
15
+ * uses where inheriting is the point. When the design declares no colour
16
+ * there is nothing to plumb, so only the inline variant is written and the
17
+ * spec says so rather than shipping a file that renders black.
18
+ */
19
+ /**
20
+ * Hex, functional, or a bare CSS ident. The pattern excludes quotes, angle
21
+ * brackets and ampersands, so a value that passes is safe in an attribute.
22
+ */
23
+ const COLOR_FORM = /^(?:#[0-9a-f]{3,8}|(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color)\([-0-9a-z%.,/ ]*\)|[a-z]{3,20})$/iu;
24
+ /** Names that inherit or paint nothing: they cannot colour a standalone file. */
25
+ const UNUSABLE = new Set([
26
+ 'currentcolor', 'inherit', 'initial', 'unset', 'revert', 'revert-layer', 'transparent', 'none',
27
+ ]);
28
+ /** The declared colour of an icon layer, or nothing when none is usable. */
29
+ export const improveDeclaredIconColor = (value) => {
30
+ if (typeof value !== 'string')
31
+ return undefined;
32
+ const trimmed = value.trim();
33
+ if (!trimmed || !COLOR_FORM.test(trimmed))
34
+ return undefined;
35
+ return UNUSABLE.has(trimmed.toLowerCase()) ? undefined : trimmed;
36
+ };
37
+ /** Separate literals: a `/g/` regex carries `lastIndex` between `test` calls. */
38
+ const HAS_CURRENT_COLOR = /currentcolor/iu;
39
+ const EVERY_CURRENT_COLOR = /currentcolor/giu;
40
+ /**
41
+ * The files to write for one icon layer. `stem` is the asset name without its
42
+ * extension, e.g. `added-014-user`.
43
+ */
44
+ export const improveIconSvgVariants = (args) => {
45
+ const svg = args.svg.trim();
46
+ const color = improveDeclaredIconColor(args.color);
47
+ const imgName = `${args.stem}.svg`;
48
+ const inlineName = `${args.stem}-inline.svg`;
49
+ if (!HAS_CURRENT_COLOR.test(svg)) {
50
+ const primary = { name: imgName, svg, usage: 'img' };
51
+ return {
52
+ files: [primary],
53
+ primary,
54
+ ...(color ? { color } : {}),
55
+ note: `\`${imgName}\` carries its own colours: it is safe as an \`<img>\`, a`
56
+ + ' `background-image`, or inlined.',
57
+ };
58
+ }
59
+ if (!color) {
60
+ const primary = { name: inlineName, svg, usage: 'inline' };
61
+ return {
62
+ files: [primary],
63
+ primary,
64
+ inline: primary,
65
+ note: `The design declares no colour for this icon, so only \`${inlineName}\` is written and`
66
+ + ' it paints with `currentColor`. Inline it, or use it as a `mask-image` with a token'
67
+ + ' colour — as an external `<img>` it renders black.',
68
+ };
69
+ }
70
+ const img = { name: imgName, svg: svg.replace(EVERY_CURRENT_COLOR, color), usage: 'img' };
71
+ const inline = { name: inlineName, svg, usage: 'inline' };
72
+ return {
73
+ files: [img, inline],
74
+ primary: img,
75
+ inline,
76
+ color,
77
+ note: `Use \`${imgName}\` for an external \`<img>\`, \`background-image\`, or \`url()\`:`
78
+ + ` its fill and stroke are the design's declared \`${color}\`. Use \`${inlineName}\``
79
+ + ' (`currentColor`) only inlined in the markup or as a `mask-image` where the call site'
80
+ + ' sets the colour.',
81
+ };
82
+ };
83
+ //# sourceMappingURL=improve-icon-svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-icon-svg.js","sourceRoot":"","sources":["../src/improve-icon-svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;GAGG;AACH,MAAM,UAAU,GAAG,qGAAqG,CAAC;AAEzH,iFAAiF;AACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM;CAC/F,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAc,EAAsB,EAAE;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACnE,CAAC,CAAC;AAEF,iFAAiF;AACjF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAqB9C;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAItC,EAA0B,EAAE;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC;IAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,OAAO,GAAuB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACzE,OAAO;YACL,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,OAAO;YACP,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,IAAI,EAAE,KAAK,OAAO,2DAA2D;kBACzE,kCAAkC;SACvC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAuB,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC/E,OAAO;YACL,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,OAAO;YACP,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,0DAA0D,UAAU,mBAAmB;kBACzF,qFAAqF;kBACrF,oDAAoD;SACzD,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAuB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC9G,MAAM,MAAM,GAAuB,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC9E,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,GAAG;QACZ,MAAM;QACN,KAAK;QACL,IAAI,EAAE,SAAS,OAAO,mEAAmE;cACrF,oDAAoD,KAAK,aAAa,UAAU,IAAI;cACpF,uFAAuF;cACvF,mBAAmB;KACxB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,129 @@
1
+ import type { LayerBox } from './improve-layerdoc-types.js';
2
+ /**
3
+ * What the kit's extracted files ARE, named once.
4
+ *
5
+ * Two overnight lanes threw the design away because nothing in the kit said
6
+ * that `cutout-1-….png` was the hero artwork and `clean-0-….png` was the same
7
+ * backdrop with that artwork removed. One of them hand-drew the ribbon in CSS
8
+ * and crushed the plate under a 64% scrim. The role wording below is the fixed
9
+ * answer, and every renderer — README, plan, stall report — reads it from here
10
+ * so no two surfaces can describe the same file differently.
11
+ */
12
+ /** A layer covering at least this share of the canvas is the page's imagery, not a detail. */
13
+ export declare const IMPROVE_HERO_COVERAGE = 0.25;
14
+ /** The most a readability scrim may dim a plate before it is destroying the design. */
15
+ export declare const IMPROVE_SCRIM_MAX_OPACITY_PCT = 35;
16
+ export type ImproveAssetRole = 'clean-plate' | 'cutout' | 'upscaled-plate' | 'upscaled-region' | 'source-crop' | 'prepared-source' | 'design' | 'other';
17
+ export type ImproveAssetRoleCopy = {
18
+ label: string;
19
+ instruction: string;
20
+ };
21
+ /**
22
+ * Whether a reader copies this file into the repository.
23
+ *
24
+ * The kit's first instruction used to be "copy the files the table names",
25
+ * which named `winner.png` and both resolutions of every layer alongside the
26
+ * one file that actually carries a layer's pixels. Each row now says which of
27
+ * the three it is, so the instruction and the guardrails agree.
28
+ */
29
+ export type ImproveShipDisposition = 'ship' | 'alternate resolution' | typeof IMPROVE_ALTERNATE_BACKDROP | 'reference only';
30
+ /**
31
+ * The disposition of every clean plate that is not the page's backdrop.
32
+ *
33
+ * A conversion can emit several: `clean-0` is the backdrop with the artwork
34
+ * removed, `clean-1` is that same backdrop with a further layer removed too.
35
+ * Both used to read `ship`, with no layer and no placement, and a lane shipped
36
+ * `clean-1` — a page whose backdrop had erased the layer nothing else replaced.
37
+ */
38
+ export declare const IMPROVE_ALTERNATE_BACKDROP: "alternate backdrop (only if that layer is omitted)";
39
+ export declare const IMPROVE_ASSET_ROLE_COPY: Record<ImproveAssetRole, ImproveAssetRoleCopy>;
40
+ export type ImproveBoundsPct = {
41
+ x: number;
42
+ y: number;
43
+ width: number;
44
+ height: number;
45
+ };
46
+ export type ImproveKitAsset = {
47
+ /** Manifest artifact id, e.g. `cutout-1`. */
48
+ id: string;
49
+ /** Kit-relative path, so the row is copy-pasteable from the kit root. */
50
+ file: string;
51
+ role: ImproveAssetRole;
52
+ roleLabel: string;
53
+ instruction: string;
54
+ /** The LayerDoc layer this file belongs to, when the document declares one. */
55
+ layer?: {
56
+ kind: string;
57
+ name: string;
58
+ index: number;
59
+ };
60
+ bounds?: ImproveBoundsPct;
61
+ /** Share of the canvas the owning layer covers, 0-1. */
62
+ coverage?: number;
63
+ hero: boolean;
64
+ /** The declared file is actually in the kit. */
65
+ present: boolean;
66
+ /** Copy it in, keep it as an alternate, or read it only. */
67
+ ship: ImproveShipDisposition;
68
+ };
69
+ export type ImproveRasterLayer = {
70
+ /** Index into `flattenLayerDoc(document)`, which is the diff's `afterIndex`. */
71
+ index: number;
72
+ kind: string;
73
+ name: string;
74
+ bounds: ImproveBoundsPct;
75
+ coverage: number;
76
+ hero: boolean;
77
+ /** The one file that carries this layer's pixels. */
78
+ asset?: ImproveKitAsset;
79
+ /** Other resolutions or lineages of the same layer; ship one, not all. */
80
+ alternates: ImproveKitAsset[];
81
+ };
82
+ export type ImproveKitAssetIndex = {
83
+ canvas?: {
84
+ width: number;
85
+ height: number;
86
+ };
87
+ assets: ImproveKitAsset[];
88
+ rasterLayers: ImproveRasterLayer[];
89
+ layerDocPresent: boolean;
90
+ manifestPresent: boolean;
91
+ };
92
+ export declare const boundsPct: (box: LayerBox, canvas: {
93
+ width: number;
94
+ height: number;
95
+ }) => ImproveBoundsPct;
96
+ /**
97
+ * Which frame the percentages above belong to.
98
+ *
99
+ * A lane read the plan's bounds as pixels of `winner.png` and placed every
100
+ * layer short: the design is its own size (1536x1024 in that run) while the
101
+ * page being rebuilt is the capture frame (1440x900). A percentage is the same
102
+ * number in both frames, so the fix is one line naming the frame — rendered
103
+ * from here so the README and the plan cannot word it differently.
104
+ */
105
+ export declare const improveFrameMappingLine: (args: {
106
+ frame?: {
107
+ width: number;
108
+ height: number;
109
+ };
110
+ design?: {
111
+ width: number;
112
+ height: number;
113
+ };
114
+ }) => string;
115
+ export declare const formatImproveBounds: (bounds: ImproveBoundsPct) => string;
116
+ /** A plate the README calls an alternate must never be listed as one to carry. */
117
+ export declare const isImproveAlternateBackdrop: (asset?: ImproveKitAsset) => boolean;
118
+ /** The raster layers a plan tells a reader to copy in: alternates are not among them. */
119
+ export declare const improveCarriedRasterLayers: (layers: readonly ImproveRasterLayer[]) => ImproveRasterLayer[];
120
+ /**
121
+ * Read the kit's LayerDoc and asset manifest into one table the README, the
122
+ * plan, and the stall report all render from.
123
+ */
124
+ export declare const readImproveKitAssets: (args: {
125
+ runDir: string;
126
+ layerDocPath: string;
127
+ document?: unknown;
128
+ }) => Promise<ImproveKitAssetIndex>;
129
+ //# sourceMappingURL=improve-kit-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improve-kit-assets.d.ts","sourceRoot":"","sources":["../src/improve-kit-assets.ts"],"names":[],"mappings":"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"}