@tai42/studio-sdk 16.0.0 → 16.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/dist/components/explorer-body.d.ts +49 -0
  2. package/dist/components/explorer-body.d.ts.map +1 -0
  3. package/dist/components/explorer-body.js +67 -0
  4. package/dist/components/explorer-body.js.map +1 -0
  5. package/dist/components/explorer-page-size.d.ts +4 -0
  6. package/dist/components/explorer-page-size.d.ts.map +1 -0
  7. package/dist/components/explorer-page-size.js +36 -0
  8. package/dist/components/explorer-page-size.js.map +1 -0
  9. package/dist/components/explorer-tag-filter.d.ts +17 -0
  10. package/dist/components/explorer-tag-filter.d.ts.map +1 -0
  11. package/dist/components/explorer-tag-filter.js +29 -0
  12. package/dist/components/explorer-tag-filter.js.map +1 -0
  13. package/dist/components/explorer-tags.d.ts +22 -0
  14. package/dist/components/explorer-tags.d.ts.map +1 -0
  15. package/dist/components/explorer-tags.js +51 -0
  16. package/dist/components/explorer-tags.js.map +1 -0
  17. package/dist/components/explorer-view.d.ts +3 -17
  18. package/dist/components/explorer-view.d.ts.map +1 -1
  19. package/dist/components/explorer-view.js +53 -170
  20. package/dist/components/explorer-view.js.map +1 -1
  21. package/dist/components/extension-combo-builder.d.ts +0 -5
  22. package/dist/components/extension-combo-builder.d.ts.map +1 -1
  23. package/dist/components/extension-combo-builder.js +4 -42
  24. package/dist/components/extension-combo-builder.js.map +1 -1
  25. package/dist/components/extension-combo-parts.d.ts +44 -0
  26. package/dist/components/extension-combo-parts.d.ts.map +1 -0
  27. package/dist/components/extension-combo-parts.js +57 -0
  28. package/dist/components/extension-combo-parts.js.map +1 -0
  29. package/dist/components/fleet-report.d.ts.map +1 -1
  30. package/dist/components/fleet-report.js +51 -37
  31. package/dist/components/fleet-report.js.map +1 -1
  32. package/dist/components/icons/chrome-marks.d.ts +50 -0
  33. package/dist/components/icons/chrome-marks.d.ts.map +1 -0
  34. package/dist/components/icons/chrome-marks.js +51 -0
  35. package/dist/components/icons/chrome-marks.js.map +1 -0
  36. package/dist/components/icons/icon-frame.d.ts +29 -0
  37. package/dist/components/icons/icon-frame.d.ts.map +1 -0
  38. package/dist/components/icons/icon-frame.js +19 -0
  39. package/dist/components/icons/icon-frame.js.map +1 -0
  40. package/dist/components/icons/index.d.ts +40 -0
  41. package/dist/components/icons/index.d.ts.map +1 -0
  42. package/dist/components/icons/index.js +6 -0
  43. package/dist/components/icons/index.js.map +1 -0
  44. package/dist/components/icons/nav-map.d.ts +14 -0
  45. package/dist/components/icons/nav-map.d.ts.map +1 -0
  46. package/dist/components/icons/nav-map.js +28 -0
  47. package/dist/components/icons/nav-map.js.map +1 -0
  48. package/dist/components/icons/nav-marks.d.ts +44 -0
  49. package/dist/components/icons/nav-marks.d.ts.map +1 -0
  50. package/dist/components/icons/nav-marks.js +45 -0
  51. package/dist/components/icons/nav-marks.js.map +1 -0
  52. package/dist/components/icons/status-marks.d.ts +21 -0
  53. package/dist/components/icons/status-marks.d.ts.map +1 -0
  54. package/dist/components/icons/status-marks.js +22 -0
  55. package/dist/components/icons/status-marks.js.map +1 -0
  56. package/dist/components/icons/theme-marks.d.ts +9 -0
  57. package/dist/components/icons/theme-marks.d.ts.map +1 -0
  58. package/dist/components/icons/theme-marks.js +10 -0
  59. package/dist/components/icons/theme-marks.js.map +1 -0
  60. package/dist/components/json-diff.d.ts.map +1 -1
  61. package/dist/components/json-diff.js +1 -3
  62. package/dist/components/json-diff.js.map +1 -1
  63. package/dist/components/json-tree-context.d.ts +13 -0
  64. package/dist/components/json-tree-context.d.ts.map +1 -0
  65. package/dist/components/json-tree-context.js +15 -0
  66. package/dist/components/json-tree-context.js.map +1 -0
  67. package/dist/components/json-tree-model.d.ts +56 -0
  68. package/dist/components/json-tree-model.d.ts.map +1 -0
  69. package/dist/components/json-tree-model.js +125 -0
  70. package/dist/components/json-tree-model.js.map +1 -0
  71. package/dist/components/json-tree-nodes.d.ts +30 -0
  72. package/dist/components/json-tree-nodes.d.ts.map +1 -0
  73. package/dist/components/json-tree-nodes.js +118 -0
  74. package/dist/components/json-tree-nodes.js.map +1 -0
  75. package/dist/components/json-tree.d.ts.map +1 -1
  76. package/dist/components/json-tree.js +7 -295
  77. package/dist/components/json-tree.js.map +1 -1
  78. package/dist/components/json-value-format.d.ts +20 -0
  79. package/dist/components/json-value-format.d.ts.map +1 -0
  80. package/dist/components/json-value-format.js +63 -0
  81. package/dist/components/json-value-format.js.map +1 -0
  82. package/dist/components/markdown-blocks.d.ts +38 -0
  83. package/dist/components/markdown-blocks.d.ts.map +1 -0
  84. package/dist/components/markdown-blocks.js +168 -0
  85. package/dist/components/markdown-blocks.js.map +1 -0
  86. package/dist/components/markdown-inline.d.ts +24 -0
  87. package/dist/components/markdown-inline.d.ts.map +1 -0
  88. package/dist/components/markdown-inline.js +257 -0
  89. package/dist/components/markdown-inline.js.map +1 -0
  90. package/dist/components/markdown.d.ts +3 -52
  91. package/dist/components/markdown.d.ts.map +1 -1
  92. package/dist/components/markdown.js +4 -376
  93. package/dist/components/markdown.js.map +1 -1
  94. package/dist/components/observer-registry.d.ts +38 -0
  95. package/dist/components/observer-registry.d.ts.map +1 -0
  96. package/dist/components/observer-registry.js +131 -0
  97. package/dist/components/observer-registry.js.map +1 -0
  98. package/dist/components/overflow-measure.d.ts +38 -0
  99. package/dist/components/overflow-measure.d.ts.map +1 -0
  100. package/dist/components/overflow-measure.js +54 -0
  101. package/dist/components/overflow-measure.js.map +1 -0
  102. package/dist/components/prose-regions.d.ts +81 -0
  103. package/dist/components/prose-regions.d.ts.map +1 -0
  104. package/dist/components/prose-regions.js +128 -0
  105. package/dist/components/prose-regions.js.map +1 -0
  106. package/dist/components/scroll-region.d.ts.map +1 -1
  107. package/dist/components/scroll-region.js +3 -298
  108. package/dist/components/scroll-region.js.map +1 -1
  109. package/dist/components/tab-stop-parse.d.ts +53 -0
  110. package/dist/components/tab-stop-parse.d.ts.map +1 -0
  111. package/dist/components/tab-stop-parse.js +202 -0
  112. package/dist/components/tab-stop-parse.js.map +1 -0
  113. package/dist/components/templated-text-field.d.ts.map +1 -1
  114. package/dist/components/templated-text-field.js +10 -148
  115. package/dist/components/templated-text-field.js.map +1 -1
  116. package/dist/components/templated-text-kwargs-editor.d.ts +24 -0
  117. package/dist/components/templated-text-kwargs-editor.d.ts.map +1 -0
  118. package/dist/components/templated-text-kwargs-editor.js +48 -0
  119. package/dist/components/templated-text-kwargs-editor.js.map +1 -0
  120. package/dist/components/templated-text-kwargs.d.ts +37 -0
  121. package/dist/components/templated-text-kwargs.d.ts.map +1 -0
  122. package/dist/components/templated-text-kwargs.js +66 -0
  123. package/dist/components/templated-text-kwargs.js.map +1 -0
  124. package/dist/components/templated-text-source.d.ts +33 -0
  125. package/dist/components/templated-text-source.d.ts.map +1 -0
  126. package/dist/components/templated-text-source.js +53 -0
  127. package/dist/components/templated-text-source.js.map +1 -0
  128. package/dist/components/tool-picker-parts.d.ts +39 -0
  129. package/dist/components/tool-picker-parts.d.ts.map +1 -0
  130. package/dist/components/tool-picker-parts.js +87 -0
  131. package/dist/components/tool-picker-parts.js.map +1 -0
  132. package/dist/components/tool-picker.d.ts +1 -2
  133. package/dist/components/tool-picker.d.ts.map +1 -1
  134. package/dist/components/tool-picker.js +4 -66
  135. package/dist/components/tool-picker.js.map +1 -1
  136. package/dist/components/version-history-panel.d.ts.map +1 -1
  137. package/dist/components/version-history-panel.js +7 -34
  138. package/dist/components/version-history-panel.js.map +1 -1
  139. package/dist/components/version-history-rows.d.ts +48 -0
  140. package/dist/components/version-history-rows.d.ts.map +1 -0
  141. package/dist/components/version-history-rows.js +51 -0
  142. package/dist/components/version-history-rows.js.map +1 -0
  143. package/dist/guards.d.ts +6 -0
  144. package/dist/guards.d.ts.map +1 -0
  145. package/dist/guards.js +8 -0
  146. package/dist/guards.js.map +1 -0
  147. package/dist/hooks/interactions-connection.d.ts +43 -0
  148. package/dist/hooks/interactions-connection.d.ts.map +1 -0
  149. package/dist/hooks/interactions-connection.js +171 -0
  150. package/dist/hooks/interactions-connection.js.map +1 -0
  151. package/dist/hooks/interactions-stream.d.ts +80 -0
  152. package/dist/hooks/interactions-stream.d.ts.map +1 -0
  153. package/dist/hooks/interactions-stream.js +233 -0
  154. package/dist/hooks/interactions-stream.js.map +1 -0
  155. package/dist/hooks/useApi.d.ts +2192 -2192
  156. package/dist/hooks/useApi.d.ts.map +1 -1
  157. package/dist/hooks/useSse.d.ts +3 -6
  158. package/dist/hooks/useSse.d.ts.map +1 -1
  159. package/dist/hooks/useSse.js +38 -451
  160. package/dist/hooks/useSse.js.map +1 -1
  161. package/dist/navigation/app-link.d.ts +25 -0
  162. package/dist/navigation/app-link.d.ts.map +1 -0
  163. package/dist/navigation/app-link.js +33 -0
  164. package/dist/navigation/app-link.js.map +1 -0
  165. package/dist/navigation/context.d.ts +3 -20
  166. package/dist/navigation/context.d.ts.map +1 -1
  167. package/dist/navigation/context.js +7 -267
  168. package/dist/navigation/context.js.map +1 -1
  169. package/dist/navigation/entry-state.d.ts +23 -0
  170. package/dist/navigation/entry-state.d.ts.map +1 -0
  171. package/dist/navigation/entry-state.js +39 -0
  172. package/dist/navigation/entry-state.js.map +1 -0
  173. package/dist/navigation/guard-registry.d.ts +30 -0
  174. package/dist/navigation/guard-registry.d.ts.map +1 -0
  175. package/dist/navigation/guard-registry.js +46 -0
  176. package/dist/navigation/guard-registry.js.map +1 -0
  177. package/dist/navigation/guarded-navigation.d.ts +24 -0
  178. package/dist/navigation/guarded-navigation.d.ts.map +1 -0
  179. package/dist/navigation/guarded-navigation.js +102 -0
  180. package/dist/navigation/guarded-navigation.js.map +1 -0
  181. package/dist/navigation/index.d.ts +3 -2
  182. package/dist/navigation/index.d.ts.map +1 -1
  183. package/dist/navigation/index.js +2 -1
  184. package/dist/navigation/index.js.map +1 -1
  185. package/dist/navigation/types.d.ts +8 -11
  186. package/dist/navigation/types.d.ts.map +1 -1
  187. package/dist/navigation/use-back-forward-guard.d.ts +5 -0
  188. package/dist/navigation/use-back-forward-guard.d.ts.map +1 -0
  189. package/dist/navigation/use-back-forward-guard.js +82 -0
  190. package/dist/navigation/use-back-forward-guard.js.map +1 -0
  191. package/dist/plugin/registry.d.ts +6 -15
  192. package/dist/plugin/registry.d.ts.map +1 -1
  193. package/dist/plugin/registry.js +83 -75
  194. package/dist/plugin/registry.js.map +1 -1
  195. package/dist/schema-form/SecretRefField.d.ts +2 -3
  196. package/dist/schema-form/SecretRefField.d.ts.map +1 -1
  197. package/dist/schema-form/SecretRefField.js +23 -12
  198. package/dist/schema-form/SecretRefField.js.map +1 -1
  199. package/dist/schema-form/classify.d.ts +1 -122
  200. package/dist/schema-form/classify.d.ts.map +1 -1
  201. package/dist/schema-form/classify.js +174 -237
  202. package/dist/schema-form/classify.js.map +1 -1
  203. package/dist/schema-form/default-value.d.ts.map +1 -1
  204. package/dist/schema-form/default-value.js +42 -19
  205. package/dist/schema-form/default-value.js.map +1 -1
  206. package/dist/schema-form/enum-field.d.ts +1 -1
  207. package/dist/schema-form/enum-field.d.ts.map +1 -1
  208. package/dist/schema-form/field-model.d.ts +121 -0
  209. package/dist/schema-form/field-model.d.ts.map +1 -0
  210. package/dist/schema-form/field-model.js +2 -0
  211. package/dist/schema-form/field-model.js.map +1 -0
  212. package/dist/schema-form/field-node.d.ts.map +1 -1
  213. package/dist/schema-form/field-node.js +25 -14
  214. package/dist/schema-form/field-node.js.map +1 -1
  215. package/dist/schema-form/media-field.d.ts +1 -1
  216. package/dist/schema-form/media-field.d.ts.map +1 -1
  217. package/dist/schema-form/media-field.js +47 -28
  218. package/dist/schema-form/media-field.js.map +1 -1
  219. package/dist/schema-form/string-annotations.d.ts +20 -0
  220. package/dist/schema-form/string-annotations.d.ts.map +1 -0
  221. package/dist/schema-form/string-annotations.js +105 -0
  222. package/dist/schema-form/string-annotations.js.map +1 -0
  223. package/dist/schema-form/string-field.d.ts +1 -1
  224. package/dist/schema-form/string-field.d.ts.map +1 -1
  225. package/dist/schema-form/union-field.d.ts +1 -1
  226. package/dist/schema-form/union-field.d.ts.map +1 -1
  227. package/dist/schema-form/union-field.js.map +1 -1
  228. package/dist/schema-form/union.d.ts +1 -1
  229. package/dist/schema-form/union.d.ts.map +1 -1
  230. package/dist/schema-form/validate.d.ts.map +1 -1
  231. package/dist/schema-form/validate.js +126 -105
  232. package/dist/schema-form/validate.js.map +1 -1
  233. package/dist/state-binding/AdapterMapping.d.ts.map +1 -1
  234. package/dist/state-binding/AdapterMapping.js +0 -0
  235. package/dist/state-binding/AdapterMapping.js.map +1 -1
  236. package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
  237. package/dist/state-binding/StateAttachRow.js +52 -36
  238. package/dist/state-binding/StateAttachRow.js.map +1 -1
  239. package/dist/state-binding/adapter-mapping-row.d.ts +17 -0
  240. package/dist/state-binding/adapter-mapping-row.d.ts.map +1 -0
  241. package/dist/state-binding/adapter-mapping-row.js +87 -0
  242. package/dist/state-binding/adapter-mapping-row.js.map +1 -0
  243. package/dist/structured-output/StructuredOutput.d.ts.map +1 -1
  244. package/dist/structured-output/StructuredOutput.js +1 -3
  245. package/dist/structured-output/StructuredOutput.js.map +1 -1
  246. package/package.json +2 -2
  247. package/src/components/explorer-body.tsx +239 -0
  248. package/src/components/explorer-page-size.ts +39 -0
  249. package/src/components/explorer-tag-filter.tsx +80 -0
  250. package/src/components/explorer-tags.ts +64 -0
  251. package/src/components/explorer-view.tsx +114 -366
  252. package/src/components/extension-combo-builder.tsx +35 -152
  253. package/src/components/extension-combo-parts.tsx +237 -0
  254. package/src/components/fleet-report.tsx +97 -54
  255. package/src/components/icons/chrome-marks.tsx +195 -0
  256. package/src/components/icons/icon-frame.tsx +50 -0
  257. package/src/components/icons/index.ts +84 -0
  258. package/src/components/icons/nav-map.ts +55 -0
  259. package/src/components/icons/nav-marks.tsx +205 -0
  260. package/src/components/icons/status-marks.tsx +46 -0
  261. package/src/components/icons/theme-marks.tsx +33 -0
  262. package/src/components/json-diff.tsx +1 -4
  263. package/src/components/json-tree-context.ts +26 -0
  264. package/src/components/json-tree-model.ts +139 -0
  265. package/src/components/json-tree-nodes.tsx +224 -0
  266. package/src/components/json-tree.tsx +15 -434
  267. package/src/components/json-value-format.ts +64 -0
  268. package/src/components/markdown-blocks.ts +198 -0
  269. package/src/components/markdown-inline.tsx +365 -0
  270. package/src/components/markdown.tsx +5 -471
  271. package/src/components/observer-registry.ts +139 -0
  272. package/src/components/overflow-measure.ts +69 -0
  273. package/src/components/prose-regions.ts +153 -0
  274. package/src/components/scroll-region.tsx +20 -360
  275. package/src/components/tab-stop-parse.ts +217 -0
  276. package/src/components/templated-text-field.tsx +38 -330
  277. package/src/components/templated-text-kwargs-editor.tsx +147 -0
  278. package/src/components/templated-text-kwargs.ts +92 -0
  279. package/src/components/templated-text-source.tsx +226 -0
  280. package/src/components/tool-picker-parts.tsx +184 -0
  281. package/src/components/tool-picker.tsx +22 -114
  282. package/src/components/version-history-panel.tsx +38 -142
  283. package/src/components/version-history-rows.tsx +220 -0
  284. package/src/guards.ts +7 -0
  285. package/src/hooks/interactions-connection.ts +227 -0
  286. package/src/hooks/interactions-stream.ts +274 -0
  287. package/src/hooks/useSse.ts +50 -477
  288. package/src/navigation/app-link.tsx +70 -0
  289. package/src/navigation/context.tsx +11 -330
  290. package/src/navigation/entry-state.ts +42 -0
  291. package/src/navigation/guard-registry.ts +65 -0
  292. package/src/navigation/guarded-navigation.ts +147 -0
  293. package/src/navigation/index.ts +2 -2
  294. package/src/navigation/types.ts +8 -11
  295. package/src/navigation/use-back-forward-guard.ts +90 -0
  296. package/src/plugin/registry.ts +111 -90
  297. package/src/schema-form/SecretRefField.tsx +121 -71
  298. package/src/schema-form/classify.ts +244 -395
  299. package/src/schema-form/default-value.ts +48 -17
  300. package/src/schema-form/enum-field.tsx +1 -1
  301. package/src/schema-form/field-model.ts +133 -0
  302. package/src/schema-form/field-node.tsx +94 -38
  303. package/src/schema-form/media-field.tsx +134 -65
  304. package/src/schema-form/string-annotations.ts +111 -0
  305. package/src/schema-form/string-field.tsx +1 -1
  306. package/src/schema-form/union-field.tsx +2 -1
  307. package/src/schema-form/union.ts +1 -1
  308. package/src/schema-form/validate.ts +184 -103
  309. package/src/state-binding/AdapterMapping.tsx +0 -0
  310. package/src/state-binding/StateAttachRow.tsx +222 -147
  311. package/src/state-binding/adapter-mapping-row.tsx +232 -0
  312. package/src/structured-output/StructuredOutput.tsx +1 -4
  313. package/dist/components/icons.d.ts +0 -160
  314. package/dist/components/icons.d.ts.map +0 -1
  315. package/dist/components/icons.js +0 -160
  316. package/dist/components/icons.js.map +0 -1
  317. package/src/components/icons.tsx +0 -586
@@ -28,51 +28,65 @@ const OUTCOME_STATUS = {
28
28
  recycling: { tone: 'tai-status-warn', Icon: AlertTriangleIcon },
29
29
  stale: { tone: 'tai-status-warn', Icon: AlertTriangleIcon },
30
30
  };
31
- export function FleetReport({ summary, action = 'save' }) {
32
- if (summary === null || summary.status === 'converged')
33
- return null;
34
- // Only a saved config change carries the "Change saved" framing; a reload or a
35
- // deregister saved nothing.
36
- const savedFraming = action === 'save';
37
- if (summary.status === 'unreachable') {
38
- // Where to send the operator once the bus is back: re-run the same op, except a
39
- // saved change reloads from the System page.
40
- const unreachableRemediation = action === 'deregister'
41
- ? 'Re-run the deregister once the bus is back.'
42
- : action === 'remove'
43
- ? 'Re-run the remove once the bus is back.'
44
- : action === 'reload'
45
- ? 'Re-run the reload once the bus is back.'
46
- : 'Re-run the reload from the System page once the bus is back.';
47
- return (_jsxs("div", { role: "alert", className: "tai-error-state tai-stack tai-stack-2", children: [_jsxs("strong", { className: "tai-status tai-status-err", children: [_jsx(XCircleIcon, {}), savedFraming
48
- ? 'Change saved, but the worker fleet was not reached'
49
- : 'The worker fleet was not reached'] }), _jsx("p", { children: `The worker bus was unreachable, so other workers may still be running the old config. ${unreachableRemediation}` }), summary.error !== null ? (_jsx("p", { className: "tai-code-block tai-code-block-wrap", children: summary.error })) : null] }));
31
+ /**
32
+ * Where to send the operator, per action and phase. On `unreachable` the copy
33
+ * is a full sentence ending "once the bus is back."; on `degraded` it is the
34
+ * verb phrase spliced into the sentence the panel builds. A saved change reloads
35
+ * from the System page; a detach re-runs itself, since a reload would re-attach.
36
+ */
37
+ function remediationText(action, phase) {
38
+ if (phase === 'unreachable') {
39
+ if (action === 'deregister')
40
+ return 'Re-run the deregister once the bus is back.';
41
+ if (action === 'remove')
42
+ return 'Re-run the remove once the bus is back.';
43
+ if (action === 'reload')
44
+ return 'Re-run the reload once the bus is back.';
45
+ return 'Re-run the reload from the System page once the bus is back.';
50
46
  }
51
- // degraded — the bus was reached but named workers did not converge. That is a
52
- // warning, not a failure, so it takes the warning surface: a warn-toned
53
- // headline inside an error-toned panel would state two different severities.
54
- //
55
- // A count and its noun agree. `worker(s)` is machine output at the one moment
56
- // an operator is being told something went wrong, and a single unconverged
57
- // worker is the commonest degraded fleet there is.
58
- const count = summary.failures.length;
47
+ if (action === 'deregister')
48
+ return 're-run the deregister';
49
+ if (action === 'remove')
50
+ return 're-run the remove';
51
+ if (action === 'reload')
52
+ return 're-run the reload';
53
+ return 'reload the fleet from the System page';
54
+ }
55
+ /** The loud panel for a bus that could not be reached: no sibling was told. */
56
+ function UnreachableReport({ error, savedFraming, remediation, }) {
57
+ return (_jsxs("div", { role: "alert", className: "tai-error-state tai-stack tai-stack-2", children: [_jsxs("strong", { className: "tai-status tai-status-err", children: [_jsx(XCircleIcon, {}), savedFraming
58
+ ? 'Change saved, but the worker fleet was not reached'
59
+ : 'The worker fleet was not reached'] }), _jsx("p", { children: `The worker bus was unreachable, so other workers may still be running the old config. ${remediation}` }), error !== null ? _jsx("p", { className: "tai-code-block tai-code-block-wrap", children: error }) : null] }));
60
+ }
61
+ /**
62
+ * The loud panel for a reachable bus whose named workers did not converge. A
63
+ * warning, not a failure, so it takes the warning surface: a warn-toned headline
64
+ * inside an error-toned panel would state two different severities.
65
+ */
66
+ function DegradedReport({ failures, savedFraming, remediation, }) {
67
+ // A count and its noun agree. `worker(s)` is machine output at the one moment an
68
+ // operator is being told something went wrong, and a single unconverged worker
69
+ // is the commonest degraded fleet there is.
70
+ const count = failures.length;
59
71
  const workers = `${String(count)} worker${count === 1 ? '' : 's'}`;
60
- // How the operator converges the stranded workers: re-run the same op, except a
61
- // saved change reloads the fleet from the System page.
62
- const remediation = action === 'deregister'
63
- ? 're-run the deregister'
64
- : action === 'remove'
65
- ? 're-run the remove'
66
- : action === 'reload'
67
- ? 're-run the reload'
68
- : 'reload the fleet from the System page';
69
72
  return (_jsxs("div", { role: "alert", className: "tai-warn-state tai-stack tai-stack-2", children: [_jsxs("strong", { className: "tai-status tai-status-warn", children: [_jsx(AlertTriangleIcon, {}), savedFraming
70
73
  ? `Change saved, but ${workers} did not converge`
71
74
  : `${workers} did not converge`] }), _jsx("p", { children: `${count === 1 ? 'This worker' : 'These workers'} may still be running the old config — ` +
72
75
  remediation +
73
- ` to converge ${count === 1 ? 'it' : 'them'}.` }), _jsx("ul", { className: "tai-stack tai-stack-2", children: summary.failures.map((failure) => {
76
+ ` to converge ${count === 1 ? 'it' : 'them'}.` }), _jsx("ul", { className: "tai-stack tai-stack-2", children: failures.map((failure) => {
74
77
  const { tone, Icon } = OUTCOME_STATUS[failure.outcome];
75
78
  return (_jsxs("li", { className: "tai-row", children: [_jsx("span", { className: "tai-mono", children: failure.name }), _jsxs("span", { className: `tai-status ${tone}`, children: [_jsx(Icon, {}), OUTCOME_LABEL[failure.outcome]] }), failure.message !== null ? (_jsx("span", { className: "tai-muted", children: failure.message })) : null] }, failure.name));
76
79
  }) })] }));
77
80
  }
81
+ export function FleetReport({ summary, action = 'save' }) {
82
+ if (summary === null || summary.status === 'converged')
83
+ return null;
84
+ // Only a saved config change carries the "Change saved" framing; a reload or a
85
+ // deregister saved nothing.
86
+ const savedFraming = action === 'save';
87
+ if (summary.status === 'unreachable') {
88
+ return (_jsx(UnreachableReport, { error: summary.error, savedFraming: savedFraming, remediation: remediationText(action, 'unreachable') }));
89
+ }
90
+ return (_jsx(DegradedReport, { failures: summary.failures, savedFraming: savedFraming, remediation: remediationText(action, 'degraded') }));
91
+ }
78
92
  //# sourceMappingURL=fleet-report.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-report.js","sourceRoot":"","sources":["../../src/components/fleet-report.tsx"],"names":[],"mappings":";AAgCA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,SAAS,CAAC;AAE1F,4DAA4D;AAC5D,MAAM,aAAa,GAAwC;IACzD,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,uCAAuC;IAChD,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,0CAA0C;IACrD,SAAS,EAAE,qCAAqC;IAChD,SAAS,EAAE,YAAY;IACvB,KAAK,EAAE,8BAA8B;CACtC,CAAC;AASF;;;;;;;;GAQG;AACH,MAAM,cAAc,GAA4C;IAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE;IACrD,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE;IAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC9D,SAAS,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5D,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC/D,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;CAC5D,CAAC;AAmBF,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAoB;IACxE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAEpE,+EAA+E;IAC/E,4BAA4B;IAC5B,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC;IAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACrC,gFAAgF;QAChF,6CAA6C;QAC7C,MAAM,sBAAsB,GAC1B,MAAM,KAAK,YAAY;YACrB,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,MAAM,KAAK,QAAQ;gBACnB,CAAC,CAAC,yCAAyC;gBAC3C,CAAC,CAAC,MAAM,KAAK,QAAQ;oBACnB,CAAC,CAAC,yCAAyC;oBAC3C,CAAC,CAAC,8DAA8D,CAAC;QACzE,OAAO,CACL,eAAK,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,uCAAuC,aACjE,kBAAQ,SAAS,EAAC,2BAA2B,aAC3C,KAAC,WAAW,KAAG,EACd,YAAY;4BACX,CAAC,CAAC,oDAAoD;4BACtD,CAAC,CAAC,kCAAkC,IAC/B,EACT,sBACG,yFAAyF,sBAAsB,EAAE,GAChH,EAEH,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACxB,YAAG,SAAS,EAAC,oCAAoC,YAAE,OAAO,CAAC,KAAK,GAAK,CACtE,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,wEAAwE;IACxE,6EAA6E;IAC7E,EAAE;IACF,8EAA8E;IAC9E,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACnE,gFAAgF;IAChF,uDAAuD;IACvD,MAAM,WAAW,GACf,MAAM,KAAK,YAAY;QACrB,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,MAAM,KAAK,QAAQ;YACnB,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,MAAM,KAAK,QAAQ;gBACnB,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,uCAAuC,CAAC;IAClD,OAAO,CACL,eAAK,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,sCAAsC,aAChE,kBAAQ,SAAS,EAAC,4BAA4B,aAC5C,KAAC,iBAAiB,KAAG,EACpB,YAAY;wBACX,CAAC,CAAC,qBAAqB,OAAO,mBAAmB;wBACjD,CAAC,CAAC,GAAG,OAAO,mBAAmB,IAC1B,EACT,sBACG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,yCAAyC;oBACxF,WAAW;oBACX,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAC9C,EACJ,aAAI,SAAS,EAAC,uBAAuB,YAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACvD,OAAO,CACL,cAAuB,SAAS,EAAC,SAAS,aACxC,eAAM,SAAS,EAAC,UAAU,YAAE,OAAO,CAAC,IAAI,GAAQ,EAChD,gBAAM,SAAS,EAAE,cAAc,IAAI,EAAE,aACnC,KAAC,IAAI,KAAG,EACP,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAC1B,EACN,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAC1B,eAAM,SAAS,EAAC,WAAW,YAAE,OAAO,CAAC,OAAO,GAAQ,CACrD,CAAC,CAAC,CAAC,IAAI,KARD,OAAO,CAAC,IAAI,CAShB,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,IACD,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fleet-report.js","sourceRoot":"","sources":["../../src/components/fleet-report.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /** App-chrome and control marks: search, navigation controls, list actions,
2
+ * ordering arrows, and the reveal/mask pair. */
3
+ import { type IconComponent } from './icon-frame';
4
+ /** A magnifier. */
5
+ export declare const SearchIcon: IconComponent;
6
+ /** Sign out: a door with an outbound arrow. */
7
+ export declare const SignOutIcon: IconComponent;
8
+ /** The three-bar menu / drawer toggle. */
9
+ export declare const MenuIcon: IconComponent;
10
+ /** Dismiss. */
11
+ export declare const CloseIcon: IconComponent;
12
+ /** A funnel. */
13
+ export declare const FilterIcon: IconComponent;
14
+ /** Back / previous. */
15
+ export declare const ArrowLeftIcon: IconComponent;
16
+ /** Move the item one place earlier in an ordered list. */
17
+ export declare const ArrowUpIcon: IconComponent;
18
+ /** Move the item one place later in an ordered list. */
19
+ export declare const ArrowDownIcon: IconComponent;
20
+ /** Expand / collapse affordance. */
21
+ export declare const ChevronDownIcon: IconComponent;
22
+ /** Disclosure / breadcrumb separator. */
23
+ export declare const ChevronRightIcon: IconComponent;
24
+ /** A bare tick, for selection and confirmation. */
25
+ export declare const CheckIcon: IconComponent;
26
+ /** A bare dash, for a partial selection — the tick's mixed-state counterpart. */
27
+ export declare const MinusIcon: IconComponent;
28
+ /** Add / insert: the dash crossed by an upright, for an append or attach affordance. */
29
+ export declare const PlusIcon: IconComponent;
30
+ /** Edit: a pencil laid across the surface it writes on. */
31
+ export declare const EditIcon: IconComponent;
32
+ /** Detach / unmount: a plug pulled from its socket, the two prongs above the gap. */
33
+ export declare const UnplugIcon: IconComponent;
34
+ /** Copy to clipboard: a sheet duplicated behind another. */
35
+ export declare const CopyIcon: IconComponent;
36
+ /** Opens in a new tab / leaves the app. */
37
+ export declare const ExternalLinkIcon: IconComponent;
38
+ /** Ascending sort: an up arrow beside narrow-to-wide rows. */
39
+ export declare const SortAscIcon: IconComponent;
40
+ /** Descending sort: a down arrow beside wide-to-narrow rows. */
41
+ export declare const SortDescIcon: IconComponent;
42
+ /** Reveal a masked value. */
43
+ export declare const EyeIcon: IconComponent;
44
+ /** Mask a revealed value. */
45
+ export declare const EyeOffIcon: IconComponent;
46
+ /** Folder: a tabbed folder, for the tool-organization tree and breadcrumbs. */
47
+ export declare const FolderIcon: IconComponent;
48
+ /** Grid: a 2x2 tile array — the card-view half of the list/card toggle. */
49
+ export declare const GridIcon: IconComponent;
50
+ //# sourceMappingURL=chrome-marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome-marks.d.ts","sourceRoot":"","sources":["../../../src/components/icons/chrome-marks.tsx"],"names":[],"mappings":"AAAA;gDACgD;AAChD,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAExD,mBAAmB;AACnB,eAAO,MAAM,UAAU,EAAE,aAKxB,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,WAAW,EAAE,aAMzB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,aAMtB,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,SAAS,EAAE,aAKvB,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,UAAU,EAAE,aAIxB,CAAC;AAEF,uBAAuB;AACvB,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,WAAW,EAAE,aAKzB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AAEF,oCAAoC;AACpC,eAAO,MAAM,eAAe,EAAE,aAI7B,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,aAI9B,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,SAAS,EAAE,aAIvB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,SAAS,EAAE,aAIvB,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,QAAQ,EAAE,aAKtB,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,EAAE,aAKtB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,EAAE,aAMxB,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,EAAE,aAKtB,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB,EAAE,aAM9B,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,aAQzB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,YAAY,EAAE,aAQ1B,CAAC;AAEF,6BAA6B;AAC7B,eAAO,MAAM,OAAO,EAAE,aAKrB,CAAC;AAEF,6BAA6B;AAC7B,eAAO,MAAM,UAAU,EAAE,aAOxB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,aAIxB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,EAAE,aAOtB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** App-chrome and control marks: search, navigation controls, list actions,
3
+ * ordering arrows, and the reveal/mask pair. */
4
+ import { Icon } from './icon-frame';
5
+ /** A magnifier. */
6
+ export const SearchIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("circle", { cx: "10.5", cy: "10.5", r: "6.5" }), _jsx("path", { d: "M15.3 15.3 20.5 20.5" })] }));
7
+ /** Sign out: a door with an outbound arrow. */
8
+ export const SignOutIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M9.5 20.5H5.5A1.5 1.5 0 0 1 4 19V5a1.5 1.5 0 0 1 1.5-1.5h4" }), _jsx("path", { d: "M15.5 16.5 20 12l-4.5-4.5" }), _jsx("path", { d: "M20 12H9.5" })] }));
9
+ /** The three-bar menu / drawer toggle. */
10
+ export const MenuIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M3.5 6.5h17" }), _jsx("path", { d: "M3.5 12h17" }), _jsx("path", { d: "M3.5 17.5h17" })] }));
11
+ /** Dismiss. */
12
+ export const CloseIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M5.5 5.5 18.5 18.5" }), _jsx("path", { d: "M18.5 5.5 5.5 18.5" })] }));
13
+ /** A funnel. */
14
+ export const FilterIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M3.5 5h17l-6.6 7.8V19l-3.8 2v-8.2z" }) }));
15
+ /** Back / previous. */
16
+ export const ArrowLeftIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M20 12H4.5" }), _jsx("path", { d: "M11 5 4 12l7 7" })] }));
17
+ /** Move the item one place earlier in an ordered list. */
18
+ export const ArrowUpIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M12 20V4.5" }), _jsx("path", { d: "M5 11 12 4l7 7" })] }));
19
+ /** Move the item one place later in an ordered list. */
20
+ export const ArrowDownIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M12 4v15.5" }), _jsx("path", { d: "M5 13 12 20l7-7" })] }));
21
+ /** Expand / collapse affordance. */
22
+ export const ChevronDownIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M5.5 9 12 15.5 18.5 9" }) }));
23
+ /** Disclosure / breadcrumb separator. */
24
+ export const ChevronRightIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M9 5.5 15.5 12 9 18.5" }) }));
25
+ /** A bare tick, for selection and confirmation. */
26
+ export const CheckIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M4.5 12.5 9.5 17.5 19.5 6.5" }) }));
27
+ /** A bare dash, for a partial selection — the tick's mixed-state counterpart. */
28
+ export const MinusIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M5.5 12h13" }) }));
29
+ /** Add / insert: the dash crossed by an upright, for an append or attach affordance. */
30
+ export const PlusIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M5.5 12h13" }), _jsx("path", { d: "M12 5.5v13" })] }));
31
+ /** Edit: a pencil laid across the surface it writes on. */
32
+ export const EditIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M4 20h4L18.5 9.5a2 2 0 0 0-2.83-2.83L5 17.2z" }), _jsx("path", { d: "M14 8 16 10" })] }));
33
+ /** Detach / unmount: a plug pulled from its socket, the two prongs above the gap. */
34
+ export const UnplugIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M15.5 8.5 20 4" }), _jsx("path", { d: "M10.5 6.5 6 11l7 7 4.5-4.5z" }), _jsx("path", { d: "M13.5 3.5 11 6M18 8.5 20.5 11M8.5 15.5 4 20" })] }));
35
+ /** Copy to clipboard: a sheet duplicated behind another. */
36
+ export const CopyIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("rect", { x: "8.5", y: "8.5", width: "12", height: "12", rx: "2" }), _jsx("path", { d: "M15.5 5.5V5A1.5 1.5 0 0 0 14 3.5H5A1.5 1.5 0 0 0 3.5 5v9A1.5 1.5 0 0 0 5 15.5h.5" })] }));
37
+ /** Opens in a new tab / leaves the app. */
38
+ export const ExternalLinkIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M13.5 4.5h6v6" }), _jsx("path", { d: "M19.5 4.5 11 13" }), _jsx("path", { d: "M18 14v4.5A1.5 1.5 0 0 1 16.5 20h-11A1.5 1.5 0 0 1 4 18.5v-11A1.5 1.5 0 0 1 5.5 6H10" })] }));
39
+ /** Ascending sort: an up arrow beside narrow-to-wide rows. */
40
+ export const SortAscIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M6.5 20V5" }), _jsx("path", { d: "M3.5 8.5 6.5 5l3 3.5" }), _jsx("path", { d: "M12.5 7h3" }), _jsx("path", { d: "M12.5 12h5.5" }), _jsx("path", { d: "M12.5 17h8" })] }));
41
+ /** Descending sort: a down arrow beside wide-to-narrow rows. */
42
+ export const SortDescIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M6.5 4v15" }), _jsx("path", { d: "M3.5 15.5 6.5 19l3-3.5" }), _jsx("path", { d: "M12.5 7h8" }), _jsx("path", { d: "M12.5 12h5.5" }), _jsx("path", { d: "M12.5 17h3" })] }));
43
+ /** Reveal a masked value. */
44
+ export const EyeIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M2 12s3.8-7 10-7 10 7 10 7-3.8 7-10 7-10-7-10-7z" }), _jsx("circle", { cx: "12", cy: "12", r: "3.2" })] }));
45
+ /** Mask a revealed value. */
46
+ export const EyeOffIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M17.9 17.9A9.9 9.9 0 0 1 12 19.8c-6.2 0-10-7-10-7a18.3 18.3 0 0 1 4.6-5.4" }), _jsx("path", { d: "M9.9 4.4A9.1 9.1 0 0 1 12 4.2c6.2 0 10 7 10 7a18.4 18.4 0 0 1-2.1 3.1" }), _jsx("path", { d: "M14.1 14.1a3.2 3.2 0 1 1-4.4-4.4" }), _jsx("path", { d: "M2.6 2.6 21.4 21.4" })] }));
47
+ /** Folder: a tabbed folder, for the tool-organization tree and breadcrumbs. */
48
+ export const FolderIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M3 6.5a2 2 0 0 1 2-2h4l2 2.5h6a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }) }));
49
+ /** Grid: a 2x2 tile array — the card-view half of the list/card toggle. */
50
+ export const GridIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("rect", { x: "4", y: "4", width: "7", height: "7", rx: "1.5" }), _jsx("rect", { x: "13", y: "4", width: "7", height: "7", rx: "1.5" }), _jsx("rect", { x: "4", y: "13", width: "7", height: "7", rx: "1.5" }), _jsx("rect", { x: "13", y: "13", width: "7", height: "7", rx: "1.5" })] }));
51
+ //# sourceMappingURL=chrome-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome-marks.js","sourceRoot":"","sources":["../../../src/components/icons/chrome-marks.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The shared SVG frame every mark is drawn in, and the icon prop/component
3
+ * types. Marks import `Icon` from here; it is deliberately not re-exported from
4
+ * the barrel, so it is never mistaken for a mark.
5
+ */
6
+ import type { ReactElement, SVGProps } from 'react';
7
+ /**
8
+ * Props of every icon: the full SVG surface, so `style`, events and ARIA pass
9
+ * through. `className` is APPENDED to the `tai-icon` sizing class rather than
10
+ * replacing it — the same merge every other design-system primitive does.
11
+ */
12
+ export type IconProps = SVGProps<SVGSVGElement>;
13
+ /** The shape every exported icon satisfies. */
14
+ export type IconComponent = (props: IconProps) => ReactElement;
15
+ /**
16
+ * The shared frame every mark is drawn in. Defaults are declared BEFORE the prop
17
+ * spread so a caller can override any of them, while `className` is destructured
18
+ * out of the spread so the caller's class is merged with `tai-icon` instead of
19
+ * replacing it.
20
+ *
21
+ * The accessibility defaults are DERIVED from whether the caller gave the icon a
22
+ * name rather than fixed. A hard-coded `aria-hidden="true"` is not self-serving:
23
+ * it makes `<Icon aria-label="Warning" />` — the form a caller naturally reaches
24
+ * for — a named-but-hidden element, which exposes nothing and fails nowhere. So
25
+ * `aria-hidden` is emitted only for an icon with NO accessible name, and an icon
26
+ * that has one is given the `role="img"` that makes the name reachable.
27
+ */
28
+ export declare function Icon({ className, children, ...props }: IconProps): ReactElement;
29
+ //# sourceMappingURL=icon-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-frame.d.ts","sourceRoot":"","sources":["../../../src/components/icons/icon-frame.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEhD,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,YAAY,CAAC;AAE/D;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,GAAG,YAAY,CAmB/E"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * The shared frame every mark is drawn in. Defaults are declared BEFORE the prop
4
+ * spread so a caller can override any of them, while `className` is destructured
5
+ * out of the spread so the caller's class is merged with `tai-icon` instead of
6
+ * replacing it.
7
+ *
8
+ * The accessibility defaults are DERIVED from whether the caller gave the icon a
9
+ * name rather than fixed. A hard-coded `aria-hidden="true"` is not self-serving:
10
+ * it makes `<Icon aria-label="Warning" />` — the form a caller naturally reaches
11
+ * for — a named-but-hidden element, which exposes nothing and fails nowhere. So
12
+ * `aria-hidden` is emitted only for an icon with NO accessible name, and an icon
13
+ * that has one is given the `role="img"` that makes the name reachable.
14
+ */
15
+ export function Icon({ className, children, ...props }) {
16
+ const named = props['aria-label'] !== undefined || props['aria-labelledby'] !== undefined;
17
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": named ? undefined : 'true', role: named ? 'img' : undefined, className: className === undefined ? 'tai-icon' : `tai-icon ${className}`, ...props, children: children }));
18
+ }
19
+ //# sourceMappingURL=icon-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-frame.js","sourceRoot":"","sources":["../../../src/components/icons/icon-frame.tsx"],"names":[],"mappings":";AAiBA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAa;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC;IAC1F,OAAO,CACL,cACE,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACT,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EACvC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAC/B,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,KACrE,KAAK,YAER,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The design system's icon set — the ONLY sanctioned source of iconography in
3
+ * Studio (Unicode glyphs as icons are banned).
4
+ *
5
+ * Every mark is hand-authored inline SVG on a 24-unit grid with ~2 units of
6
+ * optical padding, drawn stroke-only in `currentColor` at a uniform 1.6 stroke.
7
+ * Because the paint is `currentColor` an icon inherits the ink of whatever it
8
+ * sits in — a token color at FULL opacity, never a dimmed one; to mute an icon,
9
+ * mute the surrounding text color, never the icon's alpha.
10
+ *
11
+ * Sizing is owned by the `tai-icon` class (16 px square, no shrink), which every
12
+ * icon applies unconditionally. A caller-supplied `className` is APPENDED to it,
13
+ * the way every other design-system primitive treats the prop — an inline `<svg>`
14
+ * with a `viewBox` and no width/height has no intrinsic size, so a `className`
15
+ * that replaced `tai-icon` would not make the mark slightly wrong, it would blow
16
+ * it up to the replaced-element default.
17
+ *
18
+ * Icons are decorative by default (`aria-hidden="true"`): they accompany a text
19
+ * label or sit inside a control that carries its own accessible name. An icon
20
+ * that is the ONLY carrier of meaning is given a name by the caller —
21
+ * `<AlertTriangleIcon aria-label="Warning" />` — and NAMING IT IS ENOUGH: the
22
+ * frame derives the other two attributes from the name, so `aria-hidden` is
23
+ * dropped and `role="img"` supplied. A name and `aria-hidden` can therefore
24
+ * never ship together by omission. Both derived attributes are still
25
+ * overridable through the prop spread, and the older explicit three-prop form
26
+ * (`aria-hidden={false} role="img" aria-label="…"`) keeps working unchanged.
27
+ *
28
+ * {@link NAV_ICONS} is PUBLISHED SURFACE: the canonical route-token → icon
29
+ * mapping, exported so a navigation surface renders the agreed mark for a route
30
+ * instead of choosing one. Studio's own shell renders its nav as text and reads
31
+ * none of it; the map is exhaustive over {@link RouteToken} regardless, so a new
32
+ * route fails the build here until it has a mark.
33
+ */
34
+ export type { IconProps, IconComponent } from './icon-frame';
35
+ export { DashboardIcon, ToolsIcon, AgentsIcon, PresetsIcon, ExtensionsIcon, TemplatesIcon, ConnectorsIcon, HooksIcon, StorageIcon, DatabaseIcon, SchedulingIcon, InteractionsIcon, NotificationsIcon, ConversationsIcon, MarketplaceIcon, ManifestIcon, SettingsIcon, SystemIcon, ServedEndpointsIcon, PluginIcon, } from './nav-marks';
36
+ export { SearchIcon, SignOutIcon, MenuIcon, CloseIcon, FilterIcon, ArrowLeftIcon, ArrowUpIcon, ArrowDownIcon, ChevronDownIcon, ChevronRightIcon, CheckIcon, MinusIcon, PlusIcon, EditIcon, UnplugIcon, CopyIcon, ExternalLinkIcon, SortAscIcon, SortDescIcon, EyeIcon, EyeOffIcon, FolderIcon, GridIcon, } from './chrome-marks';
37
+ export { SunIcon, MoonIcon, MonitorIcon } from './theme-marks';
38
+ export { CheckCircleIcon, AlertTriangleIcon, XCircleIcon, PendingIcon } from './status-marks';
39
+ export { NAV_ICONS } from './nav-map';
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/icons/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { DashboardIcon, ToolsIcon, AgentsIcon, PresetsIcon, ExtensionsIcon, TemplatesIcon, ConnectorsIcon, HooksIcon, StorageIcon, DatabaseIcon, SchedulingIcon, InteractionsIcon, NotificationsIcon, ConversationsIcon, MarketplaceIcon, ManifestIcon, SettingsIcon, SystemIcon, ServedEndpointsIcon, PluginIcon, } from './nav-marks';
2
+ export { SearchIcon, SignOutIcon, MenuIcon, CloseIcon, FilterIcon, ArrowLeftIcon, ArrowUpIcon, ArrowDownIcon, ChevronDownIcon, ChevronRightIcon, CheckIcon, MinusIcon, PlusIcon, EditIcon, UnplugIcon, CopyIcon, ExternalLinkIcon, SortAscIcon, SortDescIcon, EyeIcon, EyeOffIcon, FolderIcon, GridIcon, } from './chrome-marks';
3
+ export { SunIcon, MoonIcon, MonitorIcon } from './theme-marks';
4
+ export { CheckCircleIcon, AlertTriangleIcon, XCircleIcon, PendingIcon } from './status-marks';
5
+ export { NAV_ICONS } from './nav-map';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/icons/index.ts"],"names":[],"mappings":"AAkCA,OAAO,EACL,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The canonical route-token → icon mapping. Exhaustive over {@link RouteToken}
3
+ * (bar `login`, which is not a listed destination), so adding a route fails the
4
+ * build here until it has a mark.
5
+ */
6
+ import type { RouteToken } from '../../navigation/types';
7
+ import type { IconComponent } from './icon-frame';
8
+ /**
9
+ * The canonical mark for every navigable route token. `login` is excluded: it is
10
+ * not a destination the navigation surfaces list. Keyed by the token type, so
11
+ * adding a route to {@link RouteToken} fails the build here until it gets a mark.
12
+ */
13
+ export declare const NAV_ICONS: Readonly<Record<Exclude<RouteToken, 'login'>, IconComponent>>;
14
+ //# sourceMappingURL=nav-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-map.d.ts","sourceRoot":"","sources":["../../../src/components/icons/nav-map.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAuBlD;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAoBnF,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { DashboardIcon, ToolsIcon, AgentsIcon, PresetsIcon, DatabaseIcon, ExtensionsIcon, TemplatesIcon, ConnectorsIcon, ServedEndpointsIcon, HooksIcon, StorageIcon, SchedulingIcon, InteractionsIcon, NotificationsIcon, ConversationsIcon, MarketplaceIcon, ManifestIcon, SettingsIcon, SystemIcon, } from './nav-marks';
2
+ /**
3
+ * The canonical mark for every navigable route token. `login` is excluded: it is
4
+ * not a destination the navigation surfaces list. Keyed by the token type, so
5
+ * adding a route to {@link RouteToken} fails the build here until it gets a mark.
6
+ */
7
+ export const NAV_ICONS = {
8
+ observability: DashboardIcon,
9
+ tools: ToolsIcon,
10
+ agents: AgentsIcon,
11
+ presets: PresetsIcon,
12
+ states: DatabaseIcon,
13
+ extensions: ExtensionsIcon,
14
+ templates: TemplatesIcon,
15
+ connectors: ConnectorsIcon,
16
+ servedEndpoints: ServedEndpointsIcon,
17
+ hooks: HooksIcon,
18
+ storage: StorageIcon,
19
+ scheduling: SchedulingIcon,
20
+ interactions: InteractionsIcon,
21
+ notifications: NotificationsIcon,
22
+ conversations: ConversationsIcon,
23
+ marketplace: MarketplaceIcon,
24
+ manifest: ManifestIcon,
25
+ settings: SettingsIcon,
26
+ system: SystemIcon,
27
+ };
28
+ //# sourceMappingURL=nav-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-map.js","sourceRoot":"","sources":["../../../src/components/icons/nav-map.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAkE;IACtF,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,aAAa;IACxB,UAAU,EAAE,cAAc;IAC1B,eAAe,EAAE,mBAAmB;IACpC,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,WAAW;IACpB,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,iBAAiB;IAChC,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;CACnB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /** The route-destination marks — one per navigable Studio route, plus the
2
+ * plugin-provenance mark for plugin-contributed navigation. */
3
+ import { type IconComponent } from './icon-frame';
4
+ /** Observability: a dial gauge — arc, base and needle. */
5
+ export declare const DashboardIcon: IconComponent;
6
+ /** Tools: an open-ended spanner over its handle. */
7
+ export declare const ToolsIcon: IconComponent;
8
+ /** Agents: a bot — antenna, panel head with eyes and mouth, side ports. */
9
+ export declare const AgentsIcon: IconComponent;
10
+ /** Presets: three sliders, each with its knob at a different stop. */
11
+ export declare const PresetsIcon: IconComponent;
12
+ /** Extensions: a jigsaw piece — knob above, socket to the right. */
13
+ export declare const ExtensionsIcon: IconComponent;
14
+ /** Templates: a stack of two sheets, the front one offset. */
15
+ export declare const TemplatesIcon: IconComponent;
16
+ /** Connectors: a two-pin power plug on its lead. */
17
+ export declare const ConnectorsIcon: IconComponent;
18
+ /** Hooks: a webhook fan-out — one source branching to two subscribers. */
19
+ export declare const HooksIcon: IconComponent;
20
+ /** Storage: a database cylinder with two shelves. */
21
+ export declare const StorageIcon: IconComponent;
22
+ /** States: a stacked-disk cylinder — one document store per subject. */
23
+ export declare const DatabaseIcon: IconComponent;
24
+ /** Scheduling: a calendar grid with its binding posts. */
25
+ export declare const SchedulingIcon: IconComponent;
26
+ /** Interactions: two overlapping speech bubbles — a conversation. */
27
+ export declare const InteractionsIcon: IconComponent;
28
+ /** Notifications: a bell with its clapper. */
29
+ export declare const NotificationsIcon: IconComponent;
30
+ /** Conversations: one speech bubble holding transcript lines. */
31
+ export declare const ConversationsIcon: IconComponent;
32
+ /** Marketplace: a shopping bag. */
33
+ export declare const MarketplaceIcon: IconComponent;
34
+ /** Manifest: a document with a folded corner and its entries. */
35
+ export declare const ManifestIcon: IconComponent;
36
+ /** Settings: an eight-tooth cog around its bore. */
37
+ export declare const SettingsIcon: IconComponent;
38
+ /** System: a processor die with its pins. */
39
+ export declare const SystemIcon: IconComponent;
40
+ /** Served endpoints: a broadcast node radiating to the tools it serves. */
41
+ export declare const ServedEndpointsIcon: IconComponent;
42
+ /** Plugin: a puzzle piece — the host's provenance mark for plugin-contributed nav. */
43
+ export declare const PluginIcon: IconComponent;
44
+ //# sourceMappingURL=nav-marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-marks.d.ts","sourceRoot":"","sources":["../../../src/components/icons/nav-marks.tsx"],"names":[],"mappings":"AAAA;+DAC+D;AAC/D,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAExD,0DAA0D;AAC1D,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,SAAS,EAAE,aAIvB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,UAAU,EAAE,aAWxB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,WAAW,EAAE,aAYzB,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,cAAc,EAAE,aAI5B,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,cAAc,EAAE,aAO5B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,SAAS,EAAE,aASvB,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,WAAW,EAAE,aAMzB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,YAAY,EAAE,aAM1B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,cAAc,EAAE,aAY5B,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,EAAE,aAK9B,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,EAAE,aAK/B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,EAAE,aAO/B,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,eAAe,EAAE,aAK7B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,YAAY,EAAE,aAQ1B,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,YAAY,EAAE,aAK1B,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,UAAU,EAAE,aAaxB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,EAAE,aAQjC,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,UAAU,EAAE,aAIxB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** The route-destination marks — one per navigable Studio route, plus the
3
+ * plugin-provenance mark for plugin-contributed navigation. */
4
+ import { Icon } from './icon-frame';
5
+ /** Observability: a dial gauge — arc, base and needle. */
6
+ export const DashboardIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M3 17.5a9 9 0 0 1 18 0" }), _jsx("path", { d: "M3 17.5h18" }), _jsx("path", { d: "M12 17.5 16.4 11.9" })] }));
7
+ /** Tools: an open-ended spanner over its handle. */
8
+ export const ToolsIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M14.6 6.2a1 1 0 0 0 0 1.5l1.7 1.7a1 1 0 0 0 1.5 0l3.2-3.2a5.9 5.9 0 0 1-7.4 7.4l-6.8 6.8a2.1 2.1 0 0 1-3-3l6.8-6.8a5.9 5.9 0 0 1 7.4-7.4z" }) }));
9
+ /** Agents: a bot — antenna, panel head with eyes and mouth, side ports. */
10
+ export const AgentsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M12 4.6V7.4" }), _jsx("circle", { cx: "12", cy: "3.2", r: "1.4" }), _jsx("rect", { x: "4.4", y: "7.4", width: "15.2", height: "12.4", rx: "3" }), _jsx("path", { d: "M2.6 12.6v2.8" }), _jsx("path", { d: "M21.4 12.6v2.8" }), _jsx("path", { d: "M9.2 11.6v1.8" }), _jsx("path", { d: "M14.8 11.6v1.8" }), _jsx("path", { d: "M9.6 16.6h4.8" })] }));
11
+ /** Presets: three sliders, each with its knob at a different stop. */
12
+ export const PresetsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M3 6.8h6.5" }), _jsx("path", { d: "M13.5 6.8H21" }), _jsx("circle", { cx: "11.5", cy: "6.8", r: "2" }), _jsx("path", { d: "M3 12h10.5" }), _jsx("path", { d: "M17.5 12H21" }), _jsx("circle", { cx: "15.5", cy: "12", r: "2" }), _jsx("path", { d: "M3 17.2h4.5" }), _jsx("path", { d: "M11.5 17.2H21" }), _jsx("circle", { cx: "9.5", cy: "17.2", r: "2" })] }));
13
+ /** Extensions: a jigsaw piece — knob above, socket to the right. */
14
+ export const ExtensionsIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M9.5 6.5a2.2 2.2 0 0 1 4.4 0v.7h4.3a1.3 1.3 0 0 1 1.3 1.3v3.4H18a2.2 2.2 0 0 0 0 4.4h1.5v2.8a1.3 1.3 0 0 1-1.3 1.3H5.8a1.3 1.3 0 0 1-1.3-1.3V8.5a1.3 1.3 0 0 1 1.3-1.3h3.7z" }) }));
15
+ /** Templates: a stack of two sheets, the front one offset. */
16
+ export const TemplatesIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M8 8V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-3" }), _jsx("rect", { x: "3", y: "8", width: "13", height: "13", rx: "2" })] }));
17
+ /** Connectors: a two-pin power plug on its lead. */
18
+ export const ConnectorsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M9 3v5" }), _jsx("path", { d: "M15 3v5" }), _jsx("path", { d: "M6.5 8h11v3.5a5.5 5.5 0 0 1-11 0z" }), _jsx("path", { d: "M12 17v4" })] }));
19
+ /** Hooks: a webhook fan-out — one source branching to two subscribers. */
20
+ export const HooksIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("circle", { cx: "12", cy: "5.8", r: "2.6" }), _jsx("circle", { cx: "5.4", cy: "18.2", r: "2.6" }), _jsx("circle", { cx: "18.6", cy: "18.2", r: "2.6" }), _jsx("path", { d: "M10.7 8.1 6.7 15.9" }), _jsx("path", { d: "M13.3 8.1 17.3 15.9" }), _jsx("path", { d: "M8 18.2h8" })] }));
21
+ /** Storage: a database cylinder with two shelves. */
22
+ export const StorageIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("ellipse", { cx: "12", cy: "6", rx: "7.5", ry: "3" }), _jsx("path", { d: "M4.5 6v12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3V6" }), _jsx("path", { d: "M4.5 12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3" })] }));
23
+ /** States: a stacked-disk cylinder — one document store per subject. */
24
+ export const DatabaseIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("ellipse", { cx: "12", cy: "5", rx: "8", ry: "3" }), _jsx("path", { d: "M4 5v6c0 1.66 3.58 3 8 3s8-1.34 8-3V5" }), _jsx("path", { d: "M4 11v6c0 1.66 3.58 3 8 3s8-1.34 8-3v-6" })] }));
25
+ /** Scheduling: a calendar grid with its binding posts. */
26
+ export const SchedulingIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("rect", { x: "3", y: "5", width: "18", height: "16", rx: "2" }), _jsx("path", { d: "M3 10h18" }), _jsx("path", { d: "M8 3v4" }), _jsx("path", { d: "M16 3v4" }), _jsx("path", { d: "M7.6 14h.01" }), _jsx("path", { d: "M12 14h.01" }), _jsx("path", { d: "M16.4 14h.01" }), _jsx("path", { d: "M7.6 17.6h.01" }), _jsx("path", { d: "M12 17.6h.01" })] }));
27
+ /** Interactions: two overlapping speech bubbles — a conversation. */
28
+ export const InteractionsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M4.5 3h7a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H8l-3 3v-3h-.5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z" }), _jsx("path", { d: "M12.5 9h7a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H19v3l-3-3h-3.5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2z" })] }));
29
+ /** Notifications: a bell with its clapper. */
30
+ export const NotificationsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M18 8.5a6 6 0 0 0-12 0c0 6-2.5 7.5-2.5 7.5h17S18 14.5 18 8.5z" }), _jsx("path", { d: "M13.7 19a2 2 0 0 1-3.4 0" })] }));
31
+ /** Conversations: one speech bubble holding transcript lines. */
32
+ export const ConversationsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H10l-4.5 3.5V16h-1A2.5 2.5 0 0 1 4 13.5z" }), _jsx("path", { d: "M8 7.5h8" }), _jsx("path", { d: "M8 10.5h8" }), _jsx("path", { d: "M8 13.5h4" })] }));
33
+ /** Marketplace: a shopping bag. */
34
+ export const MarketplaceIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M4.6 8h14.8l-1 12.1a1 1 0 0 1-1 .9H6.6a1 1 0 0 1-1-.9L4.6 8z" }), _jsx("path", { d: "M8.5 11V6.6a3.5 3.5 0 0 1 7 0V11" })] }));
35
+ /** Manifest: a document with a folded corner and its entries. */
36
+ export const ManifestIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M13.5 3H6.5A1.5 1.5 0 0 0 5 4.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8.5z" }), _jsx("path", { d: "M13.5 3v5.5H19" }), _jsx("path", { d: "M8.5 12.5h7" }), _jsx("path", { d: "M8.5 16.5h7" }), _jsx("path", { d: "M8.5 8.5h2" })] }));
37
+ /** Settings: an eight-tooth cog around its bore. */
38
+ export const SettingsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M9.5 5.9 10.3 3.2 13.7 3.2 14.5 5.9 17 4.5 19.5 7 18.1 9.5 20.8 10.3 20.8 13.7 18.1 14.5 19.5 17 17 19.5 14.5 18.1 13.7 20.8 10.3 20.8 9.5 18.1 7 19.5 4.5 17 5.9 14.5 3.2 13.7 3.2 10.3 5.9 9.5 4.5 7 7 4.5Z" }), _jsx("circle", { cx: "12", cy: "12", r: "3.2" })] }));
39
+ /** System: a processor die with its pins. */
40
+ export const SystemIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("rect", { x: "6.5", y: "6.5", width: "11", height: "11", rx: "1.6" }), _jsx("rect", { x: "9.8", y: "9.8", width: "4.4", height: "4.4", rx: "1" }), _jsx("path", { d: "M9.5 3v3.5" }), _jsx("path", { d: "M14.5 3v3.5" }), _jsx("path", { d: "M9.5 17.5V21" }), _jsx("path", { d: "M14.5 17.5V21" }), _jsx("path", { d: "M3 9.5h3.5" }), _jsx("path", { d: "M3 14.5h3.5" }), _jsx("path", { d: "M17.5 9.5H21" }), _jsx("path", { d: "M17.5 14.5H21" })] }));
41
+ /** Served endpoints: a broadcast node radiating to the tools it serves. */
42
+ export const ServedEndpointsIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "2.5" }), _jsx("path", { d: "M7.8 7.8a6 6 0 0 0 0 8.4" }), _jsx("path", { d: "M16.2 7.8a6 6 0 0 1 0 8.4" }), _jsx("path", { d: "M5 5a9 9 0 0 0 0 14" }), _jsx("path", { d: "M19 5a9 9 0 0 1 0 14" })] }));
43
+ /** Plugin: a puzzle piece — the host's provenance mark for plugin-contributed nav. */
44
+ export const PluginIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M10 4a2 2 0 0 1 4 0c0 .8.7 1.4 1.5 1.4H18a1 1 0 0 1 1 1v2.6c0 .8.6 1.5 1.4 1.5a2 2 0 0 1 0 4c-.8 0-1.4.7-1.4 1.5V19a1 1 0 0 1-1 1h-2.6c-.8 0-1.4-.6-1.4-1.4a2 2 0 0 0-4 0c0 .8-.6 1.4-1.4 1.4H6a1 1 0 0 1-1-1v-2.5C5 15.7 4.4 15 3.6 15a2 2 0 0 1 0-4c.8 0 1.4-.7 1.4-1.5V6a1 1 0 0 1 1-1h2.5C9.3 5 10 4.4 10 3.6z" }) }));
45
+ //# sourceMappingURL=nav-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-marks.js","sourceRoot":"","sources":["../../../src/components/icons/nav-marks.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** Status marks — success, warning, failure and the pending/running ring. */
2
+ import { type IconComponent } from './icon-frame';
3
+ /** Success. */
4
+ export declare const CheckCircleIcon: IconComponent;
5
+ /** Warning. */
6
+ export declare const AlertTriangleIcon: IconComponent;
7
+ /** Failure. */
8
+ export declare const XCircleIcon: IconComponent;
9
+ /**
10
+ * Pending / running / queued — a clock hand inside a dashed ring.
11
+ *
12
+ * The dash period has to TILE the circumference or the ring closes on a seam.
13
+ * At r = 9 the circumference is 2π·9 = 56.5487. A 3.2/3.2 array (period 6.4)
14
+ * fits 8.84 times, so the ring shut with a 2.15 gap instead of 3.2 — and with
15
+ * the inherited round linecap eating 1.6 at each end that seam rendered ~0.37 px
16
+ * wide at 16 px, reading as joined while every other gap read as a gap. Eight
17
+ * whole periods divide it exactly: 56.5487 / 8 = 7.0686, halved for the dash and
18
+ * the gap = 3.5343 each, giving 16 even segments and no seam.
19
+ */
20
+ export declare const PendingIcon: IconComponent;
21
+ //# sourceMappingURL=status-marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-marks.d.ts","sourceRoot":"","sources":["../../../src/components/icons/status-marks.tsx"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAExD,eAAe;AACf,eAAO,MAAM,eAAe,EAAE,aAK7B,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,iBAAiB,EAAE,aAM/B,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,WAAW,EAAE,aAMzB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,EAAE,aAKzB,CAAC"}