@tai42/studio-sdk 15.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 (322) 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 +2409 -2293
  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-editor/SchemaEditor.d.ts +8 -1
  196. package/dist/schema-editor/SchemaEditor.d.ts.map +1 -1
  197. package/dist/schema-editor/SchemaEditor.js +2 -2
  198. package/dist/schema-editor/SchemaEditor.js.map +1 -1
  199. package/dist/schema-form/SecretRefField.d.ts +2 -3
  200. package/dist/schema-form/SecretRefField.d.ts.map +1 -1
  201. package/dist/schema-form/SecretRefField.js +23 -12
  202. package/dist/schema-form/SecretRefField.js.map +1 -1
  203. package/dist/schema-form/classify.d.ts +1 -122
  204. package/dist/schema-form/classify.d.ts.map +1 -1
  205. package/dist/schema-form/classify.js +174 -237
  206. package/dist/schema-form/classify.js.map +1 -1
  207. package/dist/schema-form/default-value.d.ts.map +1 -1
  208. package/dist/schema-form/default-value.js +42 -19
  209. package/dist/schema-form/default-value.js.map +1 -1
  210. package/dist/schema-form/enum-field.d.ts +1 -1
  211. package/dist/schema-form/enum-field.d.ts.map +1 -1
  212. package/dist/schema-form/field-model.d.ts +121 -0
  213. package/dist/schema-form/field-model.d.ts.map +1 -0
  214. package/dist/schema-form/field-model.js +2 -0
  215. package/dist/schema-form/field-model.js.map +1 -0
  216. package/dist/schema-form/field-node.d.ts.map +1 -1
  217. package/dist/schema-form/field-node.js +25 -14
  218. package/dist/schema-form/field-node.js.map +1 -1
  219. package/dist/schema-form/media-field.d.ts +1 -1
  220. package/dist/schema-form/media-field.d.ts.map +1 -1
  221. package/dist/schema-form/media-field.js +47 -28
  222. package/dist/schema-form/media-field.js.map +1 -1
  223. package/dist/schema-form/string-annotations.d.ts +20 -0
  224. package/dist/schema-form/string-annotations.d.ts.map +1 -0
  225. package/dist/schema-form/string-annotations.js +105 -0
  226. package/dist/schema-form/string-annotations.js.map +1 -0
  227. package/dist/schema-form/string-field.d.ts +1 -1
  228. package/dist/schema-form/string-field.d.ts.map +1 -1
  229. package/dist/schema-form/union-field.d.ts +1 -1
  230. package/dist/schema-form/union-field.d.ts.map +1 -1
  231. package/dist/schema-form/union-field.js.map +1 -1
  232. package/dist/schema-form/union.d.ts +1 -1
  233. package/dist/schema-form/union.d.ts.map +1 -1
  234. package/dist/schema-form/validate.d.ts.map +1 -1
  235. package/dist/schema-form/validate.js +126 -105
  236. package/dist/schema-form/validate.js.map +1 -1
  237. package/dist/state-binding/AdapterMapping.d.ts.map +1 -1
  238. package/dist/state-binding/AdapterMapping.js +0 -0
  239. package/dist/state-binding/AdapterMapping.js.map +1 -1
  240. package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
  241. package/dist/state-binding/StateAttachRow.js +52 -36
  242. package/dist/state-binding/StateAttachRow.js.map +1 -1
  243. package/dist/state-binding/adapter-mapping-row.d.ts +17 -0
  244. package/dist/state-binding/adapter-mapping-row.d.ts.map +1 -0
  245. package/dist/state-binding/adapter-mapping-row.js +87 -0
  246. package/dist/state-binding/adapter-mapping-row.js.map +1 -0
  247. package/dist/structured-output/StructuredOutput.d.ts.map +1 -1
  248. package/dist/structured-output/StructuredOutput.js +1 -3
  249. package/dist/structured-output/StructuredOutput.js.map +1 -1
  250. package/package.json +2 -2
  251. package/src/components/explorer-body.tsx +239 -0
  252. package/src/components/explorer-page-size.ts +39 -0
  253. package/src/components/explorer-tag-filter.tsx +80 -0
  254. package/src/components/explorer-tags.ts +64 -0
  255. package/src/components/explorer-view.tsx +114 -366
  256. package/src/components/extension-combo-builder.tsx +35 -152
  257. package/src/components/extension-combo-parts.tsx +237 -0
  258. package/src/components/fleet-report.tsx +97 -54
  259. package/src/components/icons/chrome-marks.tsx +195 -0
  260. package/src/components/icons/icon-frame.tsx +50 -0
  261. package/src/components/icons/index.ts +84 -0
  262. package/src/components/icons/nav-map.ts +55 -0
  263. package/src/components/icons/nav-marks.tsx +205 -0
  264. package/src/components/icons/status-marks.tsx +46 -0
  265. package/src/components/icons/theme-marks.tsx +33 -0
  266. package/src/components/json-diff.tsx +1 -4
  267. package/src/components/json-tree-context.ts +26 -0
  268. package/src/components/json-tree-model.ts +139 -0
  269. package/src/components/json-tree-nodes.tsx +224 -0
  270. package/src/components/json-tree.tsx +15 -434
  271. package/src/components/json-value-format.ts +64 -0
  272. package/src/components/markdown-blocks.ts +198 -0
  273. package/src/components/markdown-inline.tsx +365 -0
  274. package/src/components/markdown.tsx +5 -471
  275. package/src/components/observer-registry.ts +139 -0
  276. package/src/components/overflow-measure.ts +69 -0
  277. package/src/components/prose-regions.ts +153 -0
  278. package/src/components/scroll-region.tsx +20 -360
  279. package/src/components/tab-stop-parse.ts +217 -0
  280. package/src/components/templated-text-field.tsx +38 -330
  281. package/src/components/templated-text-kwargs-editor.tsx +147 -0
  282. package/src/components/templated-text-kwargs.ts +92 -0
  283. package/src/components/templated-text-source.tsx +226 -0
  284. package/src/components/tool-picker-parts.tsx +184 -0
  285. package/src/components/tool-picker.tsx +22 -114
  286. package/src/components/version-history-panel.tsx +38 -142
  287. package/src/components/version-history-rows.tsx +220 -0
  288. package/src/guards.ts +7 -0
  289. package/src/hooks/interactions-connection.ts +227 -0
  290. package/src/hooks/interactions-stream.ts +274 -0
  291. package/src/hooks/useSse.ts +50 -477
  292. package/src/navigation/app-link.tsx +70 -0
  293. package/src/navigation/context.tsx +11 -330
  294. package/src/navigation/entry-state.ts +42 -0
  295. package/src/navigation/guard-registry.ts +65 -0
  296. package/src/navigation/guarded-navigation.ts +147 -0
  297. package/src/navigation/index.ts +2 -2
  298. package/src/navigation/types.ts +8 -11
  299. package/src/navigation/use-back-forward-guard.ts +90 -0
  300. package/src/plugin/registry.ts +111 -90
  301. package/src/schema-editor/SchemaEditor.tsx +9 -1
  302. package/src/schema-form/SecretRefField.tsx +121 -71
  303. package/src/schema-form/classify.ts +244 -395
  304. package/src/schema-form/default-value.ts +48 -17
  305. package/src/schema-form/enum-field.tsx +1 -1
  306. package/src/schema-form/field-model.ts +133 -0
  307. package/src/schema-form/field-node.tsx +94 -38
  308. package/src/schema-form/media-field.tsx +134 -65
  309. package/src/schema-form/string-annotations.ts +111 -0
  310. package/src/schema-form/string-field.tsx +1 -1
  311. package/src/schema-form/union-field.tsx +2 -1
  312. package/src/schema-form/union.ts +1 -1
  313. package/src/schema-form/validate.ts +184 -103
  314. package/src/state-binding/AdapterMapping.tsx +0 -0
  315. package/src/state-binding/StateAttachRow.tsx +222 -147
  316. package/src/state-binding/adapter-mapping-row.tsx +232 -0
  317. package/src/structured-output/StructuredOutput.tsx +1 -4
  318. package/dist/components/icons.d.ts +0 -160
  319. package/dist/components/icons.d.ts.map +0 -1
  320. package/dist/components/icons.js +0 -160
  321. package/dist/components/icons.js.map +0 -1
  322. package/src/components/icons.tsx +0 -586
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** Status marks — success, warning, failure and the pending/running ring. */
3
+ import { Icon } from './icon-frame';
4
+ /** Success. */
5
+ export const CheckCircleIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "9" }), _jsx("path", { d: "M8 12.3 10.9 15.2 16 9.5" })] }));
6
+ /** Warning. */
7
+ export const AlertTriangleIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("path", { d: "M10.6 3.9 2.7 17.9a1.6 1.6 0 0 0 1.4 2.4h15.8a1.6 1.6 0 0 0 1.4-2.4L13.4 3.9a1.6 1.6 0 0 0-2.8 0z" }), _jsx("path", { d: "M12 9.6v4" }), _jsx("path", { d: "M12 16.9h.01" })] }));
8
+ /** Failure. */
9
+ export const XCircleIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "9" }), _jsx("path", { d: "M15 9 9 15" }), _jsx("path", { d: "M9 9 15 15" })] }));
10
+ /**
11
+ * Pending / running / queued — a clock hand inside a dashed ring.
12
+ *
13
+ * The dash period has to TILE the circumference or the ring closes on a seam.
14
+ * At r = 9 the circumference is 2π·9 = 56.5487. A 3.2/3.2 array (period 6.4)
15
+ * fits 8.84 times, so the ring shut with a 2.15 gap instead of 3.2 — and with
16
+ * the inherited round linecap eating 1.6 at each end that seam rendered ~0.37 px
17
+ * wide at 16 px, reading as joined while every other gap read as a gap. Eight
18
+ * whole periods divide it exactly: 56.5487 / 8 = 7.0686, halved for the dash and
19
+ * the gap = 3.5343 each, giving 16 even segments and no seam.
20
+ */
21
+ export const PendingIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "9", strokeDasharray: "3.5343 3.5343" }), _jsx("path", { d: "M12 7.5V12l3 2" })] }));
22
+ //# sourceMappingURL=status-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-marks.js","sourceRoot":"","sources":["../../../src/components/icons/status-marks.tsx"],"names":[],"mappings":";AAAA,6EAA6E;AAC7E,OAAO,EAAE,IAAI,EAAsB,MAAM,cAAc,CAAC;AAExD,eAAe;AACf,MAAM,CAAC,MAAM,eAAe,GAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CACvD,MAAC,IAAI,OAAK,KAAK,aACb,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAG,EAChC,eAAM,CAAC,EAAC,0BAA0B,GAAG,IAChC,CACR,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,iBAAiB,GAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CACzD,MAAC,IAAI,OAAK,KAAK,aACb,eAAM,CAAC,EAAC,mGAAmG,GAAG,EAC9G,eAAM,CAAC,EAAC,WAAW,GAAG,EACtB,eAAM,CAAC,EAAC,cAAc,GAAG,IACpB,CACR,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CACnD,MAAC,IAAI,OAAK,KAAK,aACb,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAG,EAChC,eAAM,CAAC,EAAC,YAAY,GAAG,EACvB,eAAM,CAAC,EAAC,YAAY,GAAG,IAClB,CACR,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CACnD,MAAC,IAAI,OAAK,KAAK,aACb,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,eAAe,EAAC,eAAe,GAAG,EAChE,eAAM,CAAC,EAAC,gBAAgB,GAAG,IACtB,CACR,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** The theme trio — one mark per option of the light / dark / system control. */
2
+ import { type IconComponent } from './icon-frame';
3
+ /** Light theme. */
4
+ export declare const SunIcon: IconComponent;
5
+ /** Dark theme. */
6
+ export declare const MoonIcon: IconComponent;
7
+ /** Follow the operating system. */
8
+ export declare const MonitorIcon: IconComponent;
9
+ //# sourceMappingURL=theme-marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-marks.d.ts","sourceRoot":"","sources":["../../../src/components/icons/theme-marks.tsx"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAExD,mBAAmB;AACnB,eAAO,MAAM,OAAO,EAAE,aAYrB,CAAC;AAEF,kBAAkB;AAClB,eAAO,MAAM,QAAQ,EAAE,aAItB,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,WAAW,EAAE,aAMzB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** The theme trio — one mark per option of the light / dark / system control. */
3
+ import { Icon } from './icon-frame';
4
+ /** Light theme. */
5
+ export const SunIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "4.2" }), _jsx("path", { d: "M12 2.6v2.4" }), _jsx("path", { d: "M12 19v2.4" }), _jsx("path", { d: "M2.6 12H5" }), _jsx("path", { d: "M19 12h2.4" }), _jsx("path", { d: "M5.3 5.3 7 7" }), _jsx("path", { d: "M17 17 18.7 18.7" }), _jsx("path", { d: "M18.7 5.3 17 7" }), _jsx("path", { d: "M7 17 5.3 18.7" })] }));
6
+ /** Dark theme. */
7
+ export const MoonIcon = (props) => (_jsx(Icon, { ...props, children: _jsx("path", { d: "M20.5 14.3A9 9 0 0 1 9.7 3.5a9 9 0 1 0 10.8 10.8z" }) }));
8
+ /** Follow the operating system. */
9
+ export const MonitorIcon = (props) => (_jsxs(Icon, { ...props, children: [_jsx("rect", { x: "3", y: "4", width: "18", height: "12.5", rx: "2" }), _jsx("path", { d: "M8 21h8" }), _jsx("path", { d: "M12 16.5V21" })] }));
10
+ //# sourceMappingURL=theme-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-marks.js","sourceRoot":"","sources":["../../../src/components/icons/theme-marks.tsx"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,OAAO,EAAE,IAAI,EAAsB,MAAM,cAAc,CAAC;AAExD,mBAAmB;AACnB,MAAM,CAAC,MAAM,OAAO,GAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CAC/C,MAAC,IAAI,OAAK,KAAK,aACb,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,GAAG,EAClC,eAAM,CAAC,EAAC,aAAa,GAAG,EACxB,eAAM,CAAC,EAAC,YAAY,GAAG,EACvB,eAAM,CAAC,EAAC,WAAW,GAAG,EACtB,eAAM,CAAC,EAAC,YAAY,GAAG,EACvB,eAAM,CAAC,EAAC,cAAc,GAAG,EACzB,eAAM,CAAC,EAAC,kBAAkB,GAAG,EAC7B,eAAM,CAAC,EAAC,gBAAgB,GAAG,EAC3B,eAAM,CAAC,EAAC,gBAAgB,GAAG,IACtB,CACR,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CAChD,KAAC,IAAI,OAAK,KAAK,YACb,eAAM,CAAC,EAAC,mDAAmD,GAAG,GACzD,CACR,CAAC;AAEF,mCAAmC;AACnC,MAAM,CAAC,MAAM,WAAW,GAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CACnD,MAAC,IAAI,OAAK,KAAK,aACb,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,GAAG,EACpD,eAAM,CAAC,EAAC,SAAS,GAAG,EACpB,eAAM,CAAC,EAAC,aAAa,GAAG,IACnB,CACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-diff.d.ts","sourceRoot":"","sources":["../../src/components/json-diff.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAuDD,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,EAAE,CAIvE;AAyCD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,SAAS,CAiDpE"}
1
+ {"version":3,"file":"json-diff.d.ts","sourceRoot":"","sources":["../../src/components/json-diff.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAmDD,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,EAAE,CAIvE;AAyCD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,SAAS,CAiDpE"}
@@ -24,9 +24,7 @@ import {} from 'react';
24
24
  import { Badge } from './badge';
25
25
  import { JsonTree } from './json-tree';
26
26
  import { Table, TBody, TD, TH, THead, TR } from './table';
27
- function isRecord(value) {
28
- return typeof value === 'object' && value !== null && !Array.isArray(value);
29
- }
27
+ import { isRecord } from '../guards';
30
28
  /** Structural deep-equality over JSON values (arrays compared position-wise). */
31
29
  function deepEqual(a, b) {
32
30
  if (a === b)
@@ -1 +1 @@
1
- {"version":3,"file":"json-diff.js","sourceRoot":"","sources":["../../src/components/json-diff.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-diff.js","sourceRoot":"","sources":["../../src/components/json-diff.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface JsonTreeContextValue {
2
+ /** Whether the node at `path`/`depth` is open right now. */
3
+ readonly isOpen: (path: string, depth: number) => boolean;
4
+ /** Records the reader's explicit toggle of one node. */
5
+ readonly setOpen: (path: string, open: boolean) => void;
6
+ /** Copies a value's JSON, returning whether the write succeeded. */
7
+ readonly copy: (value: unknown) => Promise<boolean>;
8
+ readonly pageSize: number;
9
+ }
10
+ export declare const JsonTreeContext: import("react").Context<JsonTreeContextValue | null>;
11
+ /** The shared tree state; a subcomponent outside a `JsonTree` is a wiring error. */
12
+ export declare function useJsonTreeContext(): JsonTreeContextValue;
13
+ //# sourceMappingURL=json-tree-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-tree-context.d.ts","sourceRoot":"","sources":["../../src/components/json-tree-context.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,sDAAmD,CAAC;AAEhF,oFAAoF;AACpF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAMzD"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The shared tree state a `JsonTree` publishes to its nodes: per-node open state,
3
+ * the reader's toggle, the single copy path, and the page size.
4
+ */
5
+ import { createContext, useContext } from 'react';
6
+ export const JsonTreeContext = createContext(null);
7
+ /** The shared tree state; a subcomponent outside a `JsonTree` is a wiring error. */
8
+ export function useJsonTreeContext() {
9
+ const context = useContext(JsonTreeContext);
10
+ if (context === null) {
11
+ throw new Error('JsonTree subcomponents must be rendered inside a JsonTree.');
12
+ }
13
+ return context;
14
+ }
15
+ //# sourceMappingURL=json-tree-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-tree-context.js","sourceRoot":"","sources":["../../src/components/json-tree-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAYlD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAA8B,IAAI,CAAC,CAAC;AAEhF,oFAAoF;AACpF,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /** The deepest level opened by the guarded default; deeper nodes start collapsed. */
2
+ export declare const AUTO_EXPAND_DEPTH = 1;
3
+ /**
4
+ * The deepest level EXPAND-ALL reaches. Past it a node opens only on an explicit
5
+ * click, so the one action that opens the whole tree still cannot force an
6
+ * unbounded-depth payload into the DOM in a single stroke.
7
+ */
8
+ export declare const MAX_AUTO_DEPTH = 6;
9
+ /** Children rendered per page; the rest wait behind a "show more" control. */
10
+ export declare const PAGE_SIZE = 100;
11
+ /**
12
+ * The most rendered nodes EXPAND-ALL may auto-open in one stroke. The depth cap and
13
+ * the per-page limit each bound ONE dimension, but a payload that is wide AND deep
14
+ * multiplies them — auto-opening every node up to the cap would lay out on the order
15
+ * of PAGE_SIZE^depth nodes and freeze the tab. Expand-all instead opens containers
16
+ * breadth-first only until this budget is spent; a node past it stays collapsed and
17
+ * opens on an explicit click, so a huge payload opens a bounded, usable subset.
18
+ */
19
+ export declare const AUTO_EXPAND_NODE_BUDGET = 1500;
20
+ /** Whether a value is a disclosure (object or array) rather than a leaf. */
21
+ export declare function isContainer(value: unknown): boolean;
22
+ /** A container's child count, without materializing its entries. */
23
+ export declare function containerCount(value: unknown): number;
24
+ /**
25
+ * The first `end` entries of a container, arrays keyed by index and objects by
26
+ * key. Only the visible window is materialized, so a million-element array's
27
+ * children never all exist at once.
28
+ */
29
+ export declare function sliceEntries(value: unknown, end: number): [string, unknown][];
30
+ /** One container's summary text: its kind and its child count. */
31
+ export declare function containerSummary(value: unknown, count: number): string;
32
+ /**
33
+ * A child's identity for the open-state map. Each segment is percent-encoded, so a
34
+ * key that itself contains the separator cannot collide with a different path.
35
+ */
36
+ export declare function childPath(parent: string, name: string): string;
37
+ /** The default open state a call site's `defaultExpanded` selects. */
38
+ export type Baseline = 'depth' | 'expanded' | 'collapsed';
39
+ export declare function initialBaseline(defaultExpanded: boolean | undefined): Baseline;
40
+ /**
41
+ * The set of paths EXPAND-ALL auto-opens: a breadth-first sweep that opens each
42
+ * container in turn — spending its visible child count against a shared node budget
43
+ * and enqueuing that page's own container children — skipping any node whose page
44
+ * would overspend {@link AUTO_EXPAND_NODE_BUDGET} or that sits past {@link MAX_AUTO_DEPTH}.
45
+ * Only a bounded window of a huge payload is materialized, so this stays cheap even
46
+ * when the data is enormous; the paths it omits stay collapsed and open on a click.
47
+ */
48
+ export declare function expandedOpenPaths(root: unknown): ReadonlySet<string>;
49
+ /**
50
+ * Whether a node is open, from the baseline and the reader's own toggles. An
51
+ * explicit toggle always wins; otherwise the baseline decides — the depth-guarded
52
+ * default opens through {@link AUTO_EXPAND_DEPTH}, expand-all opens the budgeted
53
+ * breadth-first set, collapse-all opens nothing.
54
+ */
55
+ export declare function computeOpen(baseline: Baseline, overrides: ReadonlyMap<string, boolean>, expandedPaths: ReadonlySet<string> | null, path: string, depth: number): boolean;
56
+ //# sourceMappingURL=json-tree-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-tree-model.d.ts","sourceRoot":"","sources":["../../src/components/json-tree-model.ts"],"names":[],"mappings":"AAOA,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,8EAA8E;AAC9E,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnD;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIrD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAU7E;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,sEAAsE;AACtE,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1D,wBAAgB,eAAe,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAI9E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CA4BpE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,EACzC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAMT"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * The bounded-traversal model behind `JsonTree`: container inspection, the paged
3
+ * child slice, path identity, and the open-state computation for the depth
4
+ * default, expand-all and collapse-all baselines. Pure — no React, no DOM.
5
+ */
6
+ import { isRecord } from '../guards';
7
+ /** The deepest level opened by the guarded default; deeper nodes start collapsed. */
8
+ export const AUTO_EXPAND_DEPTH = 1;
9
+ /**
10
+ * The deepest level EXPAND-ALL reaches. Past it a node opens only on an explicit
11
+ * click, so the one action that opens the whole tree still cannot force an
12
+ * unbounded-depth payload into the DOM in a single stroke.
13
+ */
14
+ export const MAX_AUTO_DEPTH = 6;
15
+ /** Children rendered per page; the rest wait behind a "show more" control. */
16
+ export const PAGE_SIZE = 100;
17
+ /**
18
+ * The most rendered nodes EXPAND-ALL may auto-open in one stroke. The depth cap and
19
+ * the per-page limit each bound ONE dimension, but a payload that is wide AND deep
20
+ * multiplies them — auto-opening every node up to the cap would lay out on the order
21
+ * of PAGE_SIZE^depth nodes and freeze the tab. Expand-all instead opens containers
22
+ * breadth-first only until this budget is spent; a node past it stays collapsed and
23
+ * opens on an explicit click, so a huge payload opens a bounded, usable subset.
24
+ */
25
+ export const AUTO_EXPAND_NODE_BUDGET = 1500;
26
+ /** Whether a value is a disclosure (object or array) rather than a leaf. */
27
+ export function isContainer(value) {
28
+ return Array.isArray(value) || isRecord(value);
29
+ }
30
+ /** A container's child count, without materializing its entries. */
31
+ export function containerCount(value) {
32
+ if (Array.isArray(value))
33
+ return value.length;
34
+ if (isRecord(value))
35
+ return Object.keys(value).length;
36
+ throw new Error('containerCount expects an array or a record.');
37
+ }
38
+ /**
39
+ * The first `end` entries of a container, arrays keyed by index and objects by
40
+ * key. Only the visible window is materialized, so a million-element array's
41
+ * children never all exist at once.
42
+ */
43
+ export function sliceEntries(value, end) {
44
+ if (Array.isArray(value)) {
45
+ return value.slice(0, end).map((item, index) => [String(index), item]);
46
+ }
47
+ // Slice the keys before reading values, so only the visible window is materialized.
48
+ if (isRecord(value))
49
+ return Object.keys(value)
50
+ .slice(0, end)
51
+ .map((key) => [key, value[key]]);
52
+ throw new Error('sliceEntries expects an array or a record.');
53
+ }
54
+ /** One container's summary text: its kind and its child count. */
55
+ export function containerSummary(value, count) {
56
+ return Array.isArray(value) ? `Array(${String(count)})` : `Object(${String(count)})`;
57
+ }
58
+ /**
59
+ * A child's identity for the open-state map. Each segment is percent-encoded, so a
60
+ * key that itself contains the separator cannot collide with a different path.
61
+ */
62
+ export function childPath(parent, name) {
63
+ const segment = encodeURIComponent(name);
64
+ return parent === '' ? segment : `${parent}/${segment}`;
65
+ }
66
+ export function initialBaseline(defaultExpanded) {
67
+ if (defaultExpanded === true)
68
+ return 'expanded';
69
+ if (defaultExpanded === false)
70
+ return 'collapsed';
71
+ return 'depth';
72
+ }
73
+ /**
74
+ * The set of paths EXPAND-ALL auto-opens: a breadth-first sweep that opens each
75
+ * container in turn — spending its visible child count against a shared node budget
76
+ * and enqueuing that page's own container children — skipping any node whose page
77
+ * would overspend {@link AUTO_EXPAND_NODE_BUDGET} or that sits past {@link MAX_AUTO_DEPTH}.
78
+ * Only a bounded window of a huge payload is materialized, so this stays cheap even
79
+ * when the data is enormous; the paths it omits stay collapsed and open on a click.
80
+ */
81
+ export function expandedOpenPaths(root) {
82
+ const open = new Set();
83
+ if (!isContainer(root))
84
+ return open;
85
+ let budget = AUTO_EXPAND_NODE_BUDGET;
86
+ const queue = [
87
+ { value: root, path: '', depth: 0 },
88
+ ];
89
+ while (queue.length > 0) {
90
+ const node = queue.shift();
91
+ if (node === undefined)
92
+ break;
93
+ if (node.depth >= MAX_AUTO_DEPTH)
94
+ continue;
95
+ const shown = Math.min(PAGE_SIZE, containerCount(node.value));
96
+ // Skip when the budget can't seat a whole page (a later, smaller node may still fit).
97
+ if (shown > budget)
98
+ continue;
99
+ budget -= shown;
100
+ open.add(node.path);
101
+ for (const [name, childValue] of sliceEntries(node.value, shown)) {
102
+ if (isContainer(childValue)) {
103
+ queue.push({ value: childValue, path: childPath(node.path, name), depth: node.depth + 1 });
104
+ }
105
+ }
106
+ }
107
+ return open;
108
+ }
109
+ /**
110
+ * Whether a node is open, from the baseline and the reader's own toggles. An
111
+ * explicit toggle always wins; otherwise the baseline decides — the depth-guarded
112
+ * default opens through {@link AUTO_EXPAND_DEPTH}, expand-all opens the budgeted
113
+ * breadth-first set, collapse-all opens nothing.
114
+ */
115
+ export function computeOpen(baseline, overrides, expandedPaths, path, depth) {
116
+ const override = overrides.get(path);
117
+ if (override !== undefined)
118
+ return override;
119
+ if (baseline === 'expanded')
120
+ return expandedPaths?.has(path) ?? false;
121
+ if (baseline === 'collapsed')
122
+ return false;
123
+ return depth <= AUTO_EXPAND_DEPTH;
124
+ }
125
+ //# sourceMappingURL=json-tree-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-tree-model.js","sourceRoot":"","sources":["../../src/components/json-tree-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ReactElement } from 'react';
2
+ /** A copy control's resting face; whichever is exposed is also its accessible name. */
3
+ export declare const COPY_LABEL = "Copy";
4
+ interface CopyButtonProps {
5
+ readonly value: unknown;
6
+ /**
7
+ * The button's resting accessible name. When it flips to its confirmed state the
8
+ * name flips with it, so a control reading "Copied" is never still named "Copy"
9
+ * (WCAG 2.5.3). A `text` button spells the name in its own words; an `icon` button
10
+ * takes it from here.
11
+ */
12
+ readonly label: string;
13
+ readonly variant: 'text' | 'icon';
14
+ }
15
+ /**
16
+ * A copy control that writes its value to the clipboard and shows a transient
17
+ * confirmed state. The write itself lives on the tree context, so a refusal is
18
+ * reported ONCE — as the tree's shared alert — rather than inline at each of the
19
+ * many buttons a large payload carries.
20
+ */
21
+ export declare function CopyButton({ value, label, variant }: CopyButtonProps): ReactElement;
22
+ interface NodeProps {
23
+ readonly name?: string;
24
+ readonly value: unknown;
25
+ readonly depth: number;
26
+ readonly path: string;
27
+ }
28
+ export declare function JsonNode({ name, value, depth, path }: NodeProps): ReactElement;
29
+ export {};
30
+ //# sourceMappingURL=json-tree-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-tree-nodes.d.ts","sourceRoot":"","sources":["../../src/components/json-tree-nodes.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAgD,YAAY,EAAE,MAAM,OAAO,CAAC;AAcxF,uFAAuF;AACvF,eAAO,MAAM,UAAU,SAAS,CAAC;AAoCjC,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,YAAY,CAmDnF;AAED,UAAU,SAAS;IACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAmDD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,GAAG,YAAY,CAuC9E"}
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The rendered nodes of a `JsonTree`: the copy control, one disclosure/leaf node,
4
+ * and a node's paged children. State is read from the tree context; layout uses
5
+ * the code-block rhythm.
6
+ */
7
+ import { useEffect, useRef, useState } from 'react';
8
+ import { CheckIcon, CopyIcon } from './icons';
9
+ import { COPIED_LABEL, COPIED_RESET_MS } from '../hooks/useClipboardCopy';
10
+ import { childPath, containerCount, containerSummary, isContainer, sliceEntries, } from './json-tree-model';
11
+ import { primitiveClass, primitiveText } from './json-value-format';
12
+ import { useJsonTreeContext } from './json-tree-context';
13
+ /** A copy control's resting face; whichever is exposed is also its accessible name. */
14
+ export const COPY_LABEL = 'Copy';
15
+ /**
16
+ * One nesting level's indent: the child block insets and draws its own guide
17
+ * rail. The depth is expressed by the DOM nesting, so each level repeats this
18
+ * single step rather than computing an absolute offset.
19
+ */
20
+ const childrenStyle = {
21
+ paddingLeft: 'var(--tai-space-4)',
22
+ marginLeft: 'var(--tai-space-1)',
23
+ borderLeft: '1px solid var(--tai-color-decor)',
24
+ };
25
+ /** A `<summary>` is a click target; browsers do not style it as one by default. */
26
+ const summaryStyle = {
27
+ display: 'flex',
28
+ alignItems: 'center',
29
+ gap: 'var(--tai-space-2)',
30
+ cursor: 'pointer',
31
+ };
32
+ /** The copy control sits at the far end of a disclosure's row. */
33
+ const nodeCopyStyle = { marginLeft: 'auto' };
34
+ /**
35
+ * The per-node copy button's geometry: borrows `tai-icon-btn` for the focus ring,
36
+ * muted ink and hover, then shrinks to the code rhythm so the row stays dense.
37
+ */
38
+ const nodeCopyButtonStyle = {
39
+ width: 'auto',
40
+ height: 'auto',
41
+ padding: 'var(--tai-space-1)',
42
+ };
43
+ const showMoreStyle = { marginTop: 'var(--tai-space-1)' };
44
+ /**
45
+ * A copy control that writes its value to the clipboard and shows a transient
46
+ * confirmed state. The write itself lives on the tree context, so a refusal is
47
+ * reported ONCE — as the tree's shared alert — rather than inline at each of the
48
+ * many buttons a large payload carries.
49
+ */
50
+ export function CopyButton({ value, label, variant }) {
51
+ const { copy } = useJsonTreeContext();
52
+ const [copied, setCopied] = useState(false);
53
+ const resetTimer = useRef(null);
54
+ // The write is async, so a copy can be in flight when the button unmounts (a dialog
55
+ // holding the tree closes on the same click); checked before the resolution sets state.
56
+ const mounted = useRef(true);
57
+ useEffect(() => {
58
+ mounted.current = true;
59
+ return () => {
60
+ mounted.current = false;
61
+ if (resetTimer.current !== null)
62
+ clearTimeout(resetTimer.current);
63
+ };
64
+ }, []);
65
+ const handleClick = (event) => {
66
+ // Inside a `<summary>` a click both toggles the disclosure natively and reaches
67
+ // the summary's own toggle handler; neither should fire for a copy.
68
+ event.preventDefault();
69
+ event.stopPropagation();
70
+ void copy(value).then((ok) => {
71
+ if (!ok || !mounted.current)
72
+ return;
73
+ setCopied(true);
74
+ if (resetTimer.current !== null)
75
+ clearTimeout(resetTimer.current);
76
+ resetTimer.current = setTimeout(() => {
77
+ if (mounted.current)
78
+ setCopied(false);
79
+ }, COPIED_RESET_MS);
80
+ });
81
+ };
82
+ if (variant === 'text') {
83
+ return (_jsxs("button", { type: "button", className: "tai-btn tai-btn-ghost", onClick: handleClick, children: [copied ? _jsx(CheckIcon, {}) : _jsx(CopyIcon, {}), copied ? COPIED_LABEL : label] }));
84
+ }
85
+ return (_jsx("button", { type: "button", className: "tai-icon-btn", style: { ...nodeCopyStyle, ...nodeCopyButtonStyle }, "aria-label": copied ? COPIED_LABEL : label, onClick: handleClick, children: copied ? _jsx(CheckIcon, {}) : _jsx(CopyIcon, {}) }));
86
+ }
87
+ /**
88
+ * The visible slice of a container's children, plus a "show more" control while
89
+ * any remain. Rendered ONLY when the node is open, so a collapsed container costs
90
+ * nothing and the page count follows how far the reader has opened it.
91
+ */
92
+ function NodeChildren({ value, count, depth, path, }) {
93
+ const { pageSize } = useJsonTreeContext();
94
+ const [visible, setVisible] = useState(pageSize);
95
+ const shownCount = Math.min(visible, count);
96
+ const shown = sliceEntries(value, shownCount);
97
+ const remaining = count - shownCount;
98
+ return (_jsxs("div", { style: childrenStyle, children: [shown.map(([childName, childValue]) => (_jsx(JsonNode, { name: childName, value: childValue, depth: depth + 1, path: childPath(path, childName) }, childName))), remaining > 0 ? (_jsxs("button", { type: "button", className: "tai-btn tai-btn-ghost", style: showMoreStyle, onClick: () => {
99
+ setVisible((current) => current + pageSize);
100
+ }, children: ["Show ", String(Math.min(remaining, pageSize)), " more"] })) : null] }));
101
+ }
102
+ export function JsonNode({ name, value, depth, path }) {
103
+ const { isOpen, setOpen } = useJsonTreeContext();
104
+ if (isContainer(value)) {
105
+ const count = containerCount(value);
106
+ const open = isOpen(path, depth);
107
+ const summary = containerSummary(value, count);
108
+ const handleToggle = (event) => {
109
+ // The disclosure is state-driven: cancel the browser's own toggle so the two
110
+ // never diverge, then record the reader's intent.
111
+ event.preventDefault();
112
+ setOpen(path, !open);
113
+ };
114
+ return (_jsxs("details", { open: open, children: [_jsxs("summary", { style: summaryStyle, onClick: handleToggle, children: [name !== undefined ? _jsxs("span", { className: "tai-syntax-key", children: [name, ": "] }) : null, _jsx("span", { className: "tai-muted", children: summary }), depth > 0 ? (_jsx(CopyButton, { value: value, variant: "icon", label: name !== undefined ? `Copy ${name}` : COPY_LABEL })) : null] }), open ? _jsx(NodeChildren, { value: value, count: count, depth: depth, path: path }) : null] }));
115
+ }
116
+ return (_jsxs("div", { children: [name !== undefined ? _jsxs("span", { className: "tai-syntax-key", children: [name, ": "] }) : null, _jsx("span", { className: primitiveClass(value), children: primitiveText(value) })] }));
117
+ }
118
+ //# sourceMappingURL=json-tree-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-tree-nodes.js","sourceRoot":"","sources":["../../src/components/json-tree-nodes.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-tree.d.ts","sourceRoot":"","sources":["../../src/components/json-tree.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAgD,YAAY,EAAE,MAAM,OAAO,CAAC;AAMxF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA2aD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,YAAY,CA2FtF"}
1
+ {"version":3,"file":"json-tree.d.ts","sourceRoot":"","sources":["../../src/components/json-tree.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAiB1C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,YAAY,CA2FtF"}