@noodleseed/one 0.90.0 → 0.92.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.
Files changed (221) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +3 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/auth-live-doctor.js +1 -1
  5. package/dist/commands/auth-live-doctor.js.map +1 -1
  6. package/dist/commands/catalog-data-hosted-deployment.d.ts.map +1 -1
  7. package/dist/commands/catalog-data-hosted-deployment.js +2 -2
  8. package/dist/commands/catalog-data-hosted-deployment.js.map +1 -1
  9. package/dist/commands/catalog-data-local-authoring.d.ts.map +1 -1
  10. package/dist/commands/catalog-data-local-authoring.js +27 -0
  11. package/dist/commands/catalog-data-local-authoring.js.map +1 -1
  12. package/dist/commands/deploy-dotenv-import.d.ts +28 -0
  13. package/dist/commands/deploy-dotenv-import.d.ts.map +1 -0
  14. package/dist/commands/deploy-dotenv-import.js +50 -0
  15. package/dist/commands/deploy-dotenv-import.js.map +1 -0
  16. package/dist/commands/deploy-fire-progress.d.ts +28 -0
  17. package/dist/commands/deploy-fire-progress.d.ts.map +1 -0
  18. package/dist/commands/deploy-fire-progress.js +64 -0
  19. package/dist/commands/deploy-fire-progress.js.map +1 -0
  20. package/dist/commands/deploy-first-flow.d.ts +72 -0
  21. package/dist/commands/deploy-first-flow.d.ts.map +1 -0
  22. package/dist/commands/deploy-first-flow.js +315 -0
  23. package/dist/commands/deploy-first-flow.js.map +1 -0
  24. package/dist/commands/deploy-ops.d.ts +1 -27
  25. package/dist/commands/deploy-ops.d.ts.map +1 -1
  26. package/dist/commands/deploy-ops.js +122 -145
  27. package/dist/commands/deploy-ops.js.map +1 -1
  28. package/dist/commands/deploy-output.d.ts +7 -1
  29. package/dist/commands/deploy-output.d.ts.map +1 -1
  30. package/dist/commands/deploy-output.js +21 -12
  31. package/dist/commands/deploy-output.js.map +1 -1
  32. package/dist/commands/deploy-preflight.d.ts +35 -0
  33. package/dist/commands/deploy-preflight.d.ts.map +1 -0
  34. package/dist/commands/deploy-preflight.js +74 -0
  35. package/dist/commands/deploy-preflight.js.map +1 -0
  36. package/dist/commands/deploy-resume.d.ts +23 -0
  37. package/dist/commands/deploy-resume.d.ts.map +1 -0
  38. package/dist/commands/deploy-resume.js +79 -0
  39. package/dist/commands/deploy-resume.js.map +1 -0
  40. package/dist/commands/design.d.ts +7 -0
  41. package/dist/commands/design.d.ts.map +1 -0
  42. package/dist/commands/design.js +95 -0
  43. package/dist/commands/design.js.map +1 -0
  44. package/dist/commands/devtools.d.ts.map +1 -1
  45. package/dist/commands/devtools.js +5 -1
  46. package/dist/commands/devtools.js.map +1 -1
  47. package/dist/deploy.d.ts +2 -0
  48. package/dist/deploy.d.ts.map +1 -1
  49. package/dist/deploy.js +3 -0
  50. package/dist/deploy.js.map +1 -1
  51. package/dist/dev.d.ts +2 -0
  52. package/dist/dev.d.ts.map +1 -1
  53. package/dist/dev.js +8 -2
  54. package/dist/dev.js.map +1 -1
  55. package/dist/devtools-design-brief.d.ts +10 -0
  56. package/dist/devtools-design-brief.d.ts.map +1 -0
  57. package/dist/devtools-design-brief.js +121 -0
  58. package/dist/devtools-design-brief.js.map +1 -0
  59. package/dist/devtools-design-contract.d.ts +74 -0
  60. package/dist/devtools-design-contract.d.ts.map +1 -0
  61. package/dist/devtools-design-contract.js +306 -0
  62. package/dist/devtools-design-contract.js.map +1 -0
  63. package/dist/devtools-design-element.d.ts +6 -0
  64. package/dist/devtools-design-element.d.ts.map +1 -0
  65. package/dist/devtools-design-element.js +233 -0
  66. package/dist/devtools-design-element.js.map +1 -0
  67. package/dist/devtools-design-preview.d.ts +6 -0
  68. package/dist/devtools-design-preview.d.ts.map +1 -0
  69. package/dist/devtools-design-preview.js +438 -0
  70. package/dist/devtools-design-preview.js.map +1 -0
  71. package/dist/devtools-design-routes.d.ts +14 -0
  72. package/dist/devtools-design-routes.d.ts.map +1 -0
  73. package/dist/devtools-design-routes.js +197 -0
  74. package/dist/devtools-design-routes.js.map +1 -0
  75. package/dist/devtools-design-store.d.ts +16 -0
  76. package/dist/devtools-design-store.d.ts.map +1 -0
  77. package/dist/devtools-design-store.js +209 -0
  78. package/dist/devtools-design-store.js.map +1 -0
  79. package/dist/devtools-design-styles.d.ts +3 -0
  80. package/dist/devtools-design-styles.d.ts.map +1 -0
  81. package/dist/devtools-design-styles.js +509 -0
  82. package/dist/devtools-design-styles.js.map +1 -0
  83. package/dist/devtools-design.d.ts +1 -3
  84. package/dist/devtools-design.d.ts.map +1 -1
  85. package/dist/devtools-design.js +449 -56
  86. package/dist/devtools-design.js.map +1 -1
  87. package/dist/devtools-harness.d.ts.map +1 -1
  88. package/dist/devtools-harness.js +13 -10
  89. package/dist/devtools-harness.js.map +1 -1
  90. package/dist/devtools-preview.d.ts +3 -0
  91. package/dist/devtools-preview.d.ts.map +1 -1
  92. package/dist/devtools-preview.js +3 -0
  93. package/dist/devtools-preview.js.map +1 -1
  94. package/dist/devtools-responsive-styles.d.ts.map +1 -1
  95. package/dist/devtools-responsive-styles.js +15 -0
  96. package/dist/devtools-responsive-styles.js.map +1 -1
  97. package/dist/devtools-styles.js +1 -1
  98. package/dist/devtools-styles.js.map +1 -1
  99. package/dist/fire.d.ts +2 -2
  100. package/dist/fire.d.ts.map +1 -1
  101. package/dist/fire.js +6 -6
  102. package/dist/fire.js.map +1 -1
  103. package/dist/first-run.d.ts.map +1 -1
  104. package/dist/first-run.js +39 -33
  105. package/dist/first-run.js.map +1 -1
  106. package/dist/local-config.d.ts +2 -1
  107. package/dist/local-config.d.ts.map +1 -1
  108. package/dist/local-config.js +29 -2
  109. package/dist/local-config.js.map +1 -1
  110. package/dist/plugin-mode/build-readiness-server.d.ts.map +1 -1
  111. package/dist/plugin-mode/build-readiness-server.js +54 -4
  112. package/dist/plugin-mode/build-readiness-server.js.map +1 -1
  113. package/dist/preview-session.d.ts +5 -0
  114. package/dist/preview-session.d.ts.map +1 -1
  115. package/dist/preview-session.js +1 -0
  116. package/dist/preview-session.js.map +1 -1
  117. package/dist/project-dotenv.d.ts +15 -0
  118. package/dist/project-dotenv.d.ts.map +1 -0
  119. package/dist/project-dotenv.js +135 -0
  120. package/dist/project-dotenv.js.map +1 -0
  121. package/dist/project-scaffold-templates.d.ts.map +1 -1
  122. package/dist/project-scaffold-templates.js +6 -3
  123. package/dist/project-scaffold-templates.js.map +1 -1
  124. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  125. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  126. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  127. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js +1 -1
  128. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js.map +1 -1
  129. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +5 -5
  130. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  131. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  132. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  133. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  134. package/node_modules/@noodle-borg/agent-kit/dist/index.js +1 -1
  135. package/node_modules/@noodle-borg/agent-kit/dist/index.js.map +1 -1
  136. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js +2 -2
  137. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js.map +1 -1
  138. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +1 -1
  139. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  140. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.js +1 -1
  141. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.js.map +1 -1
  142. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.d.ts.map +1 -1
  143. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.js +12 -0
  144. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.js.map +1 -1
  145. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
  146. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +3 -6
  147. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  148. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +2 -2
  149. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  150. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js +1 -1
  151. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js.map +1 -1
  152. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  153. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +3 -1
  154. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  155. package/node_modules/@noodle-borg/auth/dist/verify.js +16 -4
  156. package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
  157. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.d.ts +0 -2
  158. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.d.ts.map +1 -1
  159. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.js +0 -76
  160. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.js.map +1 -1
  161. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +2 -8
  162. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  163. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +8 -237
  164. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  165. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts +26 -0
  166. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts.map +1 -0
  167. package/node_modules/@noodle-borg/connector-http/dist/http-response.js +249 -0
  168. package/node_modules/@noodle-borg/connector-http/dist/http-response.js.map +1 -0
  169. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js +4 -4
  170. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js.map +1 -1
  171. package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
  172. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +8 -5
  173. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  174. package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -1
  175. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  176. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  177. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.d.ts +41 -0
  178. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.d.ts.map +1 -0
  179. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js +93 -0
  180. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js.map +1 -0
  181. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts +2 -0
  182. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
  183. package/node_modules/@noodle-borg/service/dist/registry-targets.js +10 -4
  184. package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
  185. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +17 -0
  186. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
  187. package/node_modules/@noodle-borg/service/dist/registry.d.ts +4 -2
  188. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  189. package/node_modules/@noodle-borg/service/dist/registry.js +79 -75
  190. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  191. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  192. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +16 -0
  193. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  194. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.d.ts +21 -0
  195. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.d.ts.map +1 -0
  196. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.js +25 -0
  197. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.js.map +1 -0
  198. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.d.ts +16 -0
  199. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.d.ts.map +1 -0
  200. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.js +20 -0
  201. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.js.map +1 -0
  202. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.d.ts +12 -0
  203. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.d.ts.map +1 -0
  204. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +132 -0
  205. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js.map +1 -0
  206. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +2 -1
  207. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  208. package/node_modules/@noodle-borg/service/dist/routes/paths.js +3 -0
  209. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  210. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  211. package/node_modules/@noodle-borg/service/dist/service.js +15 -12
  212. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  213. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +82 -0
  214. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts.map +1 -1
  215. package/node_modules/@noodle-borg/wire-contracts/dist/index.js +37 -0
  216. package/node_modules/@noodle-borg/wire-contracts/dist/index.js.map +1 -1
  217. package/package.json +1 -1
  218. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.d.ts +0 -2
  219. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.d.ts.map +0 -1
  220. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.js +0 -22
  221. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.js.map +0 -1
@@ -1,62 +1,455 @@
1
- /** Quiet placeholder for the future visual annotation workflow. */
1
+ import { DEVTOOLS_DESIGN_ELEMENT_CLIENT_JS } from './devtools-design-element.js';
2
+ import { DEVTOOLS_DESIGN_PREVIEW_CLIENT_JS } from './devtools-design-preview.js';
3
+ const cursorIcon = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"><path d="M5 3.5v15l4.1-4 2.8 6 3.1-1.5-2.7-5.9H18L5 3.5Z"/></svg>';
4
+ const chevronIcon = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m7 10 5 5 5-5"/></svg>';
5
+ const undoIcon = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 7 4 12l5 5"/><path d="M20 17a8 8 0 0 0-13.8-5.5L4 12"/></svg>';
6
+ const redoIcon = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m15 7 5 5-5 5"/><path d="M4 17a8 8 0 0 1 13.8-5.5L20 12"/></svg>';
7
+ function textControl(label, property, placeholder) {
8
+ return (`<div class="design-control-row"><label for="design-${property}">${label}</label>` +
9
+ `<input id="design-${property}" class="design-input" data-design-property="${property}" ` +
10
+ `type="text" placeholder="${placeholder}" spellcheck="false"></div>`);
11
+ }
12
+ function colorControl(label, property) {
13
+ return (`<div class="design-control-row"><label for="design-${property}">${label}</label>` +
14
+ '<span class="design-color-input">' +
15
+ `<input data-color-for="${property}" type="color" value="#f97316" aria-label="${label} picker">` +
16
+ `<input id="design-${property}" class="design-input" data-design-property="${property}" ` +
17
+ `type="text" placeholder="Unchanged" spellcheck="false"></span></div>`);
18
+ }
2
19
  export const DEVTOOLS_DESIGN_HTML = [
3
20
  '<div id="design-view" class="design-view hidden" role="tabpanel" aria-labelledby="mode-design">',
4
- '<section class="design-placeholder" aria-labelledby="design-title">',
5
- '<h3 id="design-title">Fine-tune the widget you already built</h3>',
6
- '<p>Coming soon.</p>',
21
+ '<section id="design-empty" class="design-empty">',
22
+ `<span class="design-empty__mark" aria-hidden="true">${cursorIcon}</span>`,
23
+ '<h3>Open a widget to start designing</h3>',
24
+ '<p>Choose a widget tool in Preview, then return here to select and fine-tune its elements.</p>',
25
+ '<button id="design-choose-widget" class="design-action" type="button">Choose a widget</button>',
26
+ '</section>',
27
+ '<section id="design-workspace" class="design-workspace" hidden>',
28
+ '<div class="design-canvas">',
29
+ '<div class="design-canvas__bar">',
30
+ `<button id="design-select-toggle" class="design-select-toggle" type="button" aria-pressed="false">${cursorIcon}<span>Annotations off</span></button>`,
31
+ '<div class="design-canvas__meta">',
32
+ '<span id="design-unsaved" class="design-unsaved" hidden>Unsaved</span>',
33
+ `<button id="design-tweaks-toggle" class="design-count" type="button" aria-expanded="false" aria-controls="design-tweaks-panel"><span id="design-count">0 tweaks</span>${chevronIcon}</button>`,
34
+ '</div>',
35
+ '</div>',
36
+ '<section id="design-tweaks-panel" class="design-tweaks-popover" role="region" aria-label="Saved design tweaks" hidden>',
37
+ '<header class="design-tweaks-popover__head"><span>Saved tweaks</span><span class="design-tweaks-popover__hint">Design history</span></header>',
38
+ '<div id="design-changes" class="design-changes"><p class="design-changes-empty">Saved tweaks will appear here.</p></div>',
39
+ '</section>',
40
+ '<div id="design-frame-slot"></div>',
41
+ '</div>',
42
+ '<aside class="design-inspector" role="region" aria-label="Design inspector">',
43
+ '<header class="design-inspector__head">',
44
+ '<div><span class="design-inspector__eyebrow">Selected element</span>',
45
+ '<p id="design-target" class="design-target">Nothing selected</p>',
46
+ '<span id="design-target-path" class="design-target-path">Pick an element directly in the widget</span></div>',
47
+ '<button id="design-clear" class="design-icon-button" type="button" aria-label="Clear selection" title="Clear selection">×</button>',
48
+ '</header>',
49
+ '<div class="design-scroll">',
50
+ '<section class="design-section">',
51
+ '<label class="design-section__label" for="design-intent">Describe</label>',
52
+ '<textarea id="design-intent" aria-label="Describe this change" placeholder="Describe how this element should look or feel..."></textarea>',
53
+ '</section>',
54
+ '<section class="design-section"><span class="design-section__label">Type</span>',
55
+ '<div class="design-control-group">',
56
+ colorControl('Text color', 'color'),
57
+ textControl('Font size', 'font-size', 'e.g. 16px'),
58
+ textControl('Font weight', 'font-weight', 'e.g. 600'),
59
+ textControl('Line height', 'line-height', 'e.g. 1.4'),
60
+ '<div class="design-control-row"><label>Text align</label><div class="design-segment" data-design-segment="text-align">',
61
+ '<button type="button" data-value="left" aria-pressed="false">Left</button>',
62
+ '<button type="button" data-value="center" aria-pressed="false">Center</button>',
63
+ '<button type="button" data-value="right" aria-pressed="false">Right</button>',
64
+ '</div></div></div></section>',
65
+ '<section class="design-section"><span class="design-section__label">Surface and shape</span>',
66
+ '<div class="design-control-group">',
67
+ colorControl('Background color', 'background-color'),
68
+ textControl('Opacity', 'opacity', 'e.g. 0.9'),
69
+ colorControl('Border color', 'border-color'),
70
+ textControl('Border width', 'border-width', 'e.g. 1px'),
71
+ textControl('Border radius', 'border-radius', 'e.g. 12px'),
72
+ '</div></section>',
73
+ '<section class="design-section"><span class="design-section__label">Space and layout</span>',
74
+ '<div class="design-control-group">',
75
+ textControl('Padding', 'padding-top', 'e.g. 12px'),
76
+ textControl('Margin', 'margin-top', 'e.g. 0'),
77
+ textControl('Gap', 'row-gap', 'e.g. 8px'),
78
+ textControl('Width', 'width', 'e.g. 100%'),
79
+ textControl('Height', 'height', 'e.g. auto'),
80
+ '</div></section>',
81
+ '</div>',
82
+ '<footer class="design-inspector__footer">',
83
+ '<div class="design-history">',
84
+ `<button id="design-undo" class="design-icon-button" type="button" disabled>${undoIcon}<span>Undo</span></button>`,
85
+ `<button id="design-redo" class="design-icon-button" type="button" disabled>${redoIcon}<span>Redo</span></button>`,
86
+ '</div>',
87
+ '<div class="design-actions">',
88
+ '<button id="design-save" class="design-action" type="button" disabled>Save annotation</button>',
89
+ '<button id="design-send" class="design-action design-action--send" type="button" disabled>Send to agent</button>',
90
+ '</div>',
91
+ '<div id="design-status" class="design-status" role="status" aria-live="polite"></div>',
92
+ '<div id="design-copy-fallback" class="design-copy-fallback">',
93
+ '<input id="design-copy-value" class="design-input" type="text" readonly aria-label="Agent instruction">',
94
+ '<button id="design-copy" class="design-action" type="button">Copy instruction</button>',
95
+ '</div>',
96
+ '</footer>',
97
+ '</aside>',
7
98
  '</section>',
8
99
  '</div>',
9
100
  ].join('');
10
- /** Styles are isolated so the core devtools stylesheet stays below the repository size threshold. */
11
- export const DEVTOOLS_DESIGN_STYLES = `
12
- .mode--design{display:inline-flex;min-width:104px;align-items:center;justify-content:center;gap:7px}
13
- .mode__soon{
14
- padding:2px 5px;
15
- border-radius:999px;
16
- background:rgba(244,63,94,.11);
17
- color:#fb7185;
18
- font-size:7px;
19
- font-weight:750;
20
- letter-spacing:.06em;
21
- line-height:1.35;
22
- text-transform:uppercase;
23
- }
24
- .mode--design.is-active .mode__soon{background:rgba(249,115,22,.16);color:#fdba74}
25
- #design-view{
26
- min-height:0;
27
- flex:1;
28
- overflow:auto;
29
- padding:clamp(28px,5vw,72px);
30
- }
31
- .design-view{align-items:center;justify-content:center;text-align:center}
32
- .design-placeholder{
33
- display:grid;
34
- width:min(560px,100%);
35
- place-items:center;
36
- gap:14px;
37
- margin:auto;
38
- }
39
- .design-placeholder h3{
40
- margin:0;
41
- color:var(--nd-text);
42
- font-size:clamp(30px,4vw,52px);
43
- font-weight:560;
44
- letter-spacing:-.05em;
45
- line-height:1.02;
46
- }
47
- .design-placeholder p{
48
- margin:0;
49
- color:#f59e0b;
50
- font-family:var(--nd-mono);
51
- font-size:10px;
52
- font-weight:700;
53
- letter-spacing:.14em;
54
- text-transform:uppercase;
55
- }
56
- @media (max-width:560px){
57
- #design-view{padding:28px 18px}
58
- .mode{min-width:66px;padding-left:10px;padding-right:10px}
59
- .mode--design{min-width:92px}
60
- }
61
- `;
101
+ export const DEVTOOLS_DESIGN_CLIENT_JS = [
102
+ DEVTOOLS_DESIGN_ELEMENT_CLIENT_JS,
103
+ DEVTOOLS_DESIGN_PREVIEW_CLIENT_JS,
104
+ `
105
+ (function(){
106
+ var ui={configured:false,active:false,frame:null,getContext:null,previewParent:null,previewNext:null,inspectorParent:null,inspectorNext:null,activityLabel:null};
107
+ var empty=document.getElementById("design-empty");
108
+ var workspace=document.getElementById("design-workspace");
109
+ var slot=document.getElementById("design-frame-slot");
110
+ var inspector=document.querySelector(".design-inspector");
111
+ var activity=document.getElementById("log");
112
+ var targetLabel=document.getElementById("design-target");
113
+ var targetPath=document.getElementById("design-target-path");
114
+ var intent=document.getElementById("design-intent");
115
+ var count=document.getElementById("design-count");
116
+ var selectToggle=document.getElementById("design-select-toggle");
117
+ var selectToggleLabel=selectToggle.querySelector("span");
118
+ var tweaksToggle=document.getElementById("design-tweaks-toggle");
119
+ var tweaksPanel=document.getElementById("design-tweaks-panel");
120
+ var unsaved=document.getElementById("design-unsaved");
121
+ var changes=document.getElementById("design-changes");
122
+ var saveButton=document.getElementById("design-save");
123
+ var sendButton=document.getElementById("design-send");
124
+ var undoButton=document.getElementById("design-undo");
125
+ var redoButton=document.getElementById("design-redo");
126
+ var statusElement=document.getElementById("design-status");
127
+ var fallback=document.getElementById("design-copy-fallback");
128
+ var fallbackValue=document.getElementById("design-copy-value");
129
+ var propertyInputs=document.querySelectorAll("[data-design-property]");
130
+ var draftDirty=false;
131
+ var tweaksCloseTimer=0;
132
+ function openTweaks(){
133
+ if(tweaksToggle.disabled) return;
134
+ window.clearTimeout(tweaksCloseTimer);
135
+ tweaksPanel.hidden=false;
136
+ tweaksToggle.setAttribute("aria-expanded","true");
137
+ window.requestAnimationFrame(function(){tweaksPanel.classList.add("is-open");});
138
+ }
139
+ function closeTweaks(returnFocus,immediate){
140
+ window.clearTimeout(tweaksCloseTimer);
141
+ tweaksToggle.setAttribute("aria-expanded","false");
142
+ tweaksPanel.classList.remove("is-open");
143
+ if(immediate) tweaksPanel.hidden=true;
144
+ else tweaksCloseTimer=window.setTimeout(function(){tweaksPanel.hidden=true;},170);
145
+ if(returnFocus) tweaksToggle.focus();
146
+ }
147
+ function toggleTweaks(){
148
+ if(tweaksToggle.getAttribute("aria-expanded")==="true") closeTweaks(false,false);
149
+ else openTweaks();
150
+ }
151
+ function message(text,isError){
152
+ statusElement.textContent=text||"";
153
+ statusElement.classList.toggle("is-error",Boolean(isError));
154
+ }
155
+ function targetName(target){
156
+ if(!target) return "Nothing selected";
157
+ return target.accessibleName||target.visibleText||target.role||target.tagName;
158
+ }
159
+ function targetBreadcrumb(target){
160
+ if(!target) return "Pick an element directly in the widget";
161
+ var path=(target.ancestry||[]).map(function(item){return item.tagName+(item.stableId?"#"+item.stableId:"");});
162
+ path.push(target.tagName+(target.stableId?"#"+target.stableId:""));
163
+ return path.join(" › ");
164
+ }
165
+ function setDraftDirty(value){
166
+ draftDirty=Boolean(value);
167
+ unsaved.hidden=!draftDirty;
168
+ }
169
+ function rgbHex(value){
170
+ if(!value) return "#f97316";
171
+ if(/^#[0-9a-f]{6}$/i.test(value)) return value;
172
+ var match=value.match(/rgba?\\(\\s*(\\d+)\\D+(\\d+)\\D+(\\d+)/i);
173
+ if(!match) return "#f97316";
174
+ return "#"+[match[1],match[2],match[3]].map(function(part){return Number(part).toString(16).padStart(2,"0");}).join("");
175
+ }
176
+ function populateControls(target){
177
+ for(var i=0;i<propertyInputs.length;i++){
178
+ var property=propertyInputs[i].dataset.designProperty;
179
+ propertyInputs[i].value="";
180
+ propertyInputs[i].placeholder=target&&target.computedStyles&&target.computedStyles[property]
181
+ ? target.computedStyles[property]
182
+ : "Unchanged";
183
+ }
184
+ var pickers=document.querySelectorAll("[data-color-for]");
185
+ for(var p=0;p<pickers.length;p++){
186
+ var colorProperty=pickers[p].dataset.colorFor;
187
+ pickers[p].value=rgbHex(target&&target.computedStyles&&target.computedStyles[colorProperty]);
188
+ }
189
+ var segments=document.querySelectorAll("[data-design-segment] button");
190
+ for(var s=0;s<segments.length;s++) segments[s].setAttribute("aria-pressed","false");
191
+ }
192
+ function renderChanges(session){
193
+ var annotations=session&&session.annotations?session.annotations:[];
194
+ count.textContent=annotations.length+" tweak"+(annotations.length===1?"":"s");
195
+ tweaksToggle.disabled=!annotations.length;
196
+ if(!annotations.length){
197
+ closeTweaks(false,true);
198
+ }
199
+ changes.innerHTML="";
200
+ if(!annotations.length){
201
+ changes.innerHTML='<p class="design-changes-empty">Saved tweaks will appear here.</p>';
202
+ return;
203
+ }
204
+ annotations.forEach(function(annotation,index){
205
+ var item=document.createElement("article"); item.className="design-change";
206
+ var heading=document.createElement("div"); heading.className="design-change__heading";
207
+ var number=document.createElement("span"); number.className="design-change__number"; number.textContent="Tweak "+String(index+1).padStart(2,"0");
208
+ var title=document.createElement("strong"); title.textContent=targetName(annotation.target);
209
+ heading.appendChild(number); heading.appendChild(title);
210
+ var details=document.createElement("dl"); details.className="design-change__details";
211
+ function detail(label,value){
212
+ var row=document.createElement("div");
213
+ var term=document.createElement("dt"); term.textContent=label;
214
+ var description=document.createElement("dd"); description.textContent=value;
215
+ row.appendChild(term); row.appendChild(description); details.appendChild(row);
216
+ }
217
+ detail("Target",targetName(annotation.target));
218
+ detail("Selector",targetBreadcrumb(annotation.target));
219
+ detail("Request",annotation.intent||"Visual controls only");
220
+ var visual=(annotation.changes||[]).map(function(change){
221
+ return change.property+": "+(change.from||"unset")+" → "+change.to;
222
+ }).join("\\n");
223
+ detail("Visual changes",visual||"No direct style values");
224
+ var actions=document.createElement("div"); actions.className="design-change__actions";
225
+ var copy=document.createElement("button"); copy.type="button"; copy.textContent="Copy tweak";
226
+ copy.addEventListener("click",function(){copyTweak(annotation,index);});
227
+ var remove=document.createElement("button"); remove.type="button"; remove.className="is-danger"; remove.textContent="Remove";
228
+ remove.addEventListener("click",function(){window.NoodleDesign.removeAnnotation(annotation.id);});
229
+ actions.appendChild(copy); actions.appendChild(remove);
230
+ item.appendChild(heading); item.appendChild(details); item.appendChild(actions); changes.appendChild(item);
231
+ });
232
+ }
233
+ function render(state){
234
+ var selected=state.selected&&state.selected.target;
235
+ selectToggle.setAttribute("aria-pressed",state.selecting?"true":"false");
236
+ selectToggleLabel.textContent=state.selecting?"Annotations on":"Annotations off";
237
+ targetLabel.textContent=targetName(selected);
238
+ targetPath.textContent=selected
239
+ ? targetBreadcrumb(selected)
240
+ : state.selecting?"Select an element directly in the widget":"Turn on annotations to select an element";
241
+ saveButton.disabled=!selected;
242
+ undoButton.disabled=state.historyLength===0;
243
+ redoButton.disabled=state.futureLength===0;
244
+ sendButton.disabled=!(state.session&&state.session.annotations&&state.session.annotations.length);
245
+ renderChanges(state.session);
246
+ if(selected&&intent.dataset.targetId!==String(state.selectionId)){
247
+ intent.value="";
248
+ intent.dataset.targetId=String(state.selectionId);
249
+ populateControls(selected);
250
+ setDraftDirty(false);
251
+ }
252
+ if(!selected&&intent.dataset.targetId){
253
+ intent.value="";
254
+ intent.dataset.targetId="";
255
+ populateControls(null);
256
+ setDraftDirty(false);
257
+ }
258
+ }
259
+ function currentChanges(selected){
260
+ var output=[];
261
+ for(var i=0;i<propertyInputs.length;i++){
262
+ var input=propertyInputs[i];
263
+ var value=input.value.trim();
264
+ if(!value) continue;
265
+ var property=input.dataset.designProperty;
266
+ output.push({property:property,from:selected.computedStyles[property]||"",to:value});
267
+ if(property==="padding-top"){
268
+ ["padding-right","padding-bottom","padding-left"].forEach(function(side){
269
+ output.push({property:side,from:selected.computedStyles[side]||"",to:value});
270
+ });
271
+ }
272
+ if(property==="margin-top"){
273
+ ["margin-right","margin-bottom","margin-left"].forEach(function(side){
274
+ output.push({property:side,from:selected.computedStyles[side]||"",to:value});
275
+ });
276
+ }
277
+ if(property==="row-gap"){
278
+ output.push({property:"column-gap",from:selected.computedStyles["column-gap"]||"",to:value});
279
+ }
280
+ }
281
+ var pressed=document.querySelector('[data-design-segment="text-align"] button[aria-pressed="true"]');
282
+ if(pressed){
283
+ output.push({property:"text-align",from:selected.computedStyles["text-align"]||"",to:pressed.dataset.value});
284
+ }
285
+ return output;
286
+ }
287
+ function preview(){
288
+ var state=window.NoodleDesign.state();
289
+ var selected=state.selected&&state.selected.target;
290
+ window.NoodleDesign.previewChanges(selected?currentChanges(selected):[]);
291
+ }
292
+ function save(){
293
+ var state=window.NoodleDesign.state();
294
+ var selected=state.selected&&state.selected.target;
295
+ if(!selected) return;
296
+ var description=intent.value.trim();
297
+ var visual=currentChanges(selected);
298
+ if(!description&&!visual.length){message("Describe a change or tune a visual property.",true);return;}
299
+ var id=window.crypto&&window.crypto.randomUUID?window.crypto.randomUUID():"annotation-"+Date.now();
300
+ window.NoodleDesign.saveAnnotation({
301
+ id:id,
302
+ intent:description,
303
+ target:selected,
304
+ changes:visual,
305
+ acceptanceCriteria:[
306
+ "The requested change is visible at the captured viewport and theme.",
307
+ "The selected element remains readable and usable."
308
+ ],
309
+ preserve:["Keep the element text, semantics, and existing behavior unless the request says otherwise."]
310
+ });
311
+ intent.value=""; populateControls(null); setDraftDirty(false);
312
+ }
313
+ function copyTweak(annotation,index){
314
+ var lines=[
315
+ "Tweak "+String(index+1).padStart(2,"0"),
316
+ "Target: "+targetName(annotation.target),
317
+ "Selector: "+targetBreadcrumb(annotation.target),
318
+ "Request: "+(annotation.intent||"Visual controls only"),
319
+ "Visual changes:"
320
+ ];
321
+ (annotation.changes||[]).forEach(function(change){
322
+ lines.push("- "+change.property+": "+(change.from||"unset")+" → "+change.to);
323
+ });
324
+ if(!(annotation.changes||[]).length) lines.push("- No direct style values");
325
+ var operation=navigator.clipboard&&navigator.clipboard.writeText
326
+ ? navigator.clipboard.writeText(lines.join("\\n"))
327
+ : Promise.reject(new Error("clipboard unavailable"));
328
+ operation.then(function(){message("Tweak copied.",false);}).catch(function(){
329
+ fallbackValue.value=lines.join("\\n");
330
+ fallback.classList.add("is-visible");
331
+ message("Copy the tweak details below.",true);
332
+ });
333
+ }
334
+ function copyInstruction(instruction){
335
+ var operation=navigator.clipboard&&navigator.clipboard.writeText
336
+ ? navigator.clipboard.writeText(instruction)
337
+ : Promise.reject(new Error("clipboard unavailable"));
338
+ return operation.then(function(){
339
+ fallback.classList.remove("is-visible");
340
+ message("Agent instruction copied. Paste it into your coding agent.",false);
341
+ }).catch(function(){
342
+ fallbackValue.value=instruction;
343
+ fallback.classList.add("is-visible");
344
+ message("The brief is ready. Copy the instruction and paste it into your coding agent.",true);
345
+ });
346
+ }
347
+ function send(){
348
+ sendButton.disabled=true; message("Preparing the implementation brief...",false);
349
+ window.NoodleDesign.finalize().then(function(body){
350
+ return copyInstruction(body.delivery.instruction);
351
+ }).catch(function(error){
352
+ message(error.message||"Could not prepare the design brief.",true);
353
+ }).then(function(){render(window.NoodleDesign.state());});
354
+ }
355
+ function mountFrame(){
356
+ if(!ui.frame||ui.frame.parentNode===slot) return;
357
+ ui.previewParent=ui.frame.parentNode; ui.previewNext=ui.frame.nextSibling;
358
+ slot.appendChild(ui.frame);
359
+ }
360
+ function restoreFrame(){
361
+ if(!ui.frame||!ui.previewParent||ui.frame.parentNode!==slot) return;
362
+ if(ui.previewNext&&ui.previewNext.parentNode===ui.previewParent) ui.previewParent.insertBefore(ui.frame,ui.previewNext);
363
+ else ui.previewParent.appendChild(ui.frame);
364
+ }
365
+ function mountInspector(){
366
+ if(!inspector||!activity||inspector.parentNode===activity) return;
367
+ ui.inspectorParent=inspector.parentNode; ui.inspectorNext=inspector.nextSibling;
368
+ ui.activityLabel=activity.getAttribute("aria-label");
369
+ activity.appendChild(inspector);
370
+ activity.setAttribute("aria-label","Design tools");
371
+ }
372
+ function restoreInspector(){
373
+ if(!inspector||!ui.inspectorParent||inspector.parentNode!==activity) return;
374
+ if(ui.inspectorNext&&ui.inspectorNext.parentNode===ui.inspectorParent) ui.inspectorParent.insertBefore(inspector,ui.inspectorNext);
375
+ else ui.inspectorParent.appendChild(inspector);
376
+ activity.setAttribute("aria-label",ui.activityLabel||"MCP calls");
377
+ }
378
+ function enter(){
379
+ ui.active=true;
380
+ mountInspector();
381
+ var current=ui.getContext&&ui.getContext();
382
+ var ready=Boolean(current&&current.toolName);
383
+ empty.hidden=ready; workspace.hidden=!ready;
384
+ if(!ready){message("Open a widget in Preview, then return to Design.",true);return Promise.resolve();}
385
+ mountFrame();
386
+ return window.NoodleDesign.enter();
387
+ }
388
+ function leave(){ui.active=false;closeTweaks(false,true);restoreFrame();restoreInspector();return window.NoodleDesign.leave();}
389
+ function frameLoaded(){if(ui.active) window.NoodleDesign.rehydrate();}
390
+ function configure(options){
391
+ ui.frame=options.frame; ui.getContext=options.getContext; ui.configured=true;
392
+ window.NoodleDesign.configure({
393
+ frame:ui.frame,
394
+ getContext:ui.getContext,
395
+ onChange:render,
396
+ onStatus:message
397
+ });
398
+ }
399
+ document.getElementById("design-choose-widget").addEventListener("click",function(){document.getElementById("mode-preview").click();});
400
+ document.getElementById("design-clear").addEventListener("click",function(){
401
+ var state=window.NoodleDesign.state();
402
+ if(state.selected&&state.selected.element) state.selected.element.ownerDocument.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:true}));
403
+ });
404
+ selectToggle.addEventListener("click",function(){
405
+ var state=window.NoodleDesign.state();
406
+ window.NoodleDesign.setSelecting(!state.selecting);
407
+ });
408
+ tweaksToggle.addEventListener("click",function(){
409
+ if(tweaksToggle.disabled) return;
410
+ toggleTweaks();
411
+ });
412
+ document.addEventListener("pointerdown",function(event){
413
+ if(tweaksToggle.getAttribute("aria-expanded")!=="true") return;
414
+ if(tweaksPanel.contains(event.target)||tweaksToggle.contains(event.target)) return;
415
+ closeTweaks(false,false);
416
+ });
417
+ document.addEventListener("keydown",function(event){
418
+ if(event.key==="Escape"&&tweaksToggle.getAttribute("aria-expanded")==="true"){
419
+ event.stopPropagation();
420
+ closeTweaks(true,false);
421
+ }
422
+ });
423
+ saveButton.addEventListener("click",save);
424
+ sendButton.addEventListener("click",send);
425
+ undoButton.addEventListener("click",function(){window.NoodleDesign.undo();});
426
+ redoButton.addEventListener("click",function(){window.NoodleDesign.redo();});
427
+ document.getElementById("design-copy").addEventListener("click",function(){copyInstruction(fallbackValue.value);});
428
+ intent.addEventListener("input",function(){setDraftDirty(Boolean(window.NoodleDesign.state().selected));});
429
+ for(var i=0;i<propertyInputs.length;i++){
430
+ propertyInputs[i].addEventListener("input",function(){
431
+ setDraftDirty(Boolean(window.NoodleDesign.state().selected));
432
+ saveButton.disabled=!window.NoodleDesign.state().selected;
433
+ preview();
434
+ });
435
+ }
436
+ var pickers=document.querySelectorAll("[data-color-for]");
437
+ for(var p=0;p<pickers.length;p++){
438
+ pickers[p].addEventListener("input",function(){
439
+ var input=document.querySelector('[data-design-property="'+this.dataset.colorFor+'"]');
440
+ if(input){input.value=this.value;input.dispatchEvent(new Event("input",{bubbles:true}));}
441
+ });
442
+ }
443
+ var segmentButtons=document.querySelectorAll("[data-design-segment] button");
444
+ for(var s=0;s<segmentButtons.length;s++){
445
+ segmentButtons[s].addEventListener("click",function(){
446
+ var siblings=this.parentNode.querySelectorAll("button");
447
+ for(var n=0;n<siblings.length;n++) siblings[n].setAttribute("aria-pressed",siblings[n]===this?"true":"false");
448
+ setDraftDirty(Boolean(window.NoodleDesign.state().selected));
449
+ preview();
450
+ });
451
+ }
452
+ window.NoodleDesignUI={configure:configure,enter:enter,leave:leave,frameLoaded:frameLoaded,state:function(){return {active:ui.active};}};
453
+ })();`,
454
+ ].join('\n');
62
455
  //# sourceMappingURL=devtools-design.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-design.js","sourceRoot":"","sources":["../src/devtools-design.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,iGAAiG;IACjG,qEAAqE;IACrE,mEAAmE;IACnE,qBAAqB;IACrB,YAAY;IACZ,QAAQ;CACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,qGAAqG;AACrG,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDrC,CAAC"}
1
+ {"version":3,"file":"devtools-design.js","sourceRoot":"","sources":["../src/devtools-design.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-harness.d.ts","sourceRoot":"","sources":["../src/devtools-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1D,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtF;AAgBD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC,GAAG,MAAM,CA8BT;AAUD,+GAA+G;AAC/G,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAcvE;AAMD,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC,GAAG,MAAM,CAkHT"}
1
+ {"version":3,"file":"devtools-harness.d.ts","sourceRoot":"","sources":["../src/devtools-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1D,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtF;AAgBD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC,GAAG,MAAM,CA8BT;AAUD,+GAA+G;AAC/G,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAcvE;AAMD,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC,GAAG,MAAM,CAoHT"}