@tai42/studio-sdk 16.0.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/dist/components/code-block.js +1 -1
  2. package/dist/components/code-block.js.map +1 -1
  3. package/dist/components/confirm-dialog.js +1 -1
  4. package/dist/components/confirm-dialog.js.map +1 -1
  5. package/dist/components/copy-field.js +1 -1
  6. package/dist/components/copy-field.js.map +1 -1
  7. package/dist/components/date-range-picker.d.ts.map +1 -1
  8. package/dist/components/date-range-picker.js.map +1 -1
  9. package/dist/components/dialog.d.ts.map +1 -1
  10. package/dist/components/dialog.js.map +1 -1
  11. package/dist/components/dirty-guard.d.ts.map +1 -1
  12. package/dist/components/dirty-guard.js +1 -1
  13. package/dist/components/dirty-guard.js.map +1 -1
  14. package/dist/components/explorer-body.d.ts +49 -0
  15. package/dist/components/explorer-body.d.ts.map +1 -0
  16. package/dist/components/explorer-body.js +67 -0
  17. package/dist/components/explorer-body.js.map +1 -0
  18. package/dist/components/explorer-page-size.d.ts +4 -0
  19. package/dist/components/explorer-page-size.d.ts.map +1 -0
  20. package/dist/components/explorer-page-size.js +36 -0
  21. package/dist/components/explorer-page-size.js.map +1 -0
  22. package/dist/components/explorer-tag-filter.d.ts +17 -0
  23. package/dist/components/explorer-tag-filter.d.ts.map +1 -0
  24. package/dist/components/explorer-tag-filter.js +29 -0
  25. package/dist/components/explorer-tag-filter.js.map +1 -0
  26. package/dist/components/explorer-tags.d.ts +22 -0
  27. package/dist/components/explorer-tags.d.ts.map +1 -0
  28. package/dist/components/explorer-tags.js +51 -0
  29. package/dist/components/explorer-tags.js.map +1 -0
  30. package/dist/components/explorer-view.d.ts +3 -17
  31. package/dist/components/explorer-view.d.ts.map +1 -1
  32. package/dist/components/explorer-view.js +53 -170
  33. package/dist/components/explorer-view.js.map +1 -1
  34. package/dist/components/extension-combo-builder.d.ts +1 -6
  35. package/dist/components/extension-combo-builder.d.ts.map +1 -1
  36. package/dist/components/extension-combo-builder.js +4 -79
  37. package/dist/components/extension-combo-builder.js.map +1 -1
  38. package/dist/components/extension-combo-parts.d.ts +44 -0
  39. package/dist/components/extension-combo-parts.d.ts.map +1 -0
  40. package/dist/components/extension-combo-parts.js +52 -0
  41. package/dist/components/extension-combo-parts.js.map +1 -0
  42. package/dist/components/field.d.ts +8 -0
  43. package/dist/components/field.d.ts.map +1 -1
  44. package/dist/components/field.js +0 -8
  45. package/dist/components/field.js.map +1 -1
  46. package/dist/components/fleet-report.d.ts +1 -1
  47. package/dist/components/fleet-report.d.ts.map +1 -1
  48. package/dist/components/fleet-report.js +51 -37
  49. package/dist/components/fleet-report.js.map +1 -1
  50. package/dist/components/folder-nav.d.ts.map +1 -1
  51. package/dist/components/folder-nav.js +1 -1
  52. package/dist/components/folder-nav.js.map +1 -1
  53. package/dist/components/form-dialog.d.ts.map +1 -1
  54. package/dist/components/form-dialog.js +1 -1
  55. package/dist/components/form-dialog.js.map +1 -1
  56. package/dist/components/icons/chrome-marks.d.ts +50 -0
  57. package/dist/components/icons/chrome-marks.d.ts.map +1 -0
  58. package/dist/components/icons/chrome-marks.js +51 -0
  59. package/dist/components/icons/chrome-marks.js.map +1 -0
  60. package/dist/components/icons/icon-frame.d.ts +29 -0
  61. package/dist/components/icons/icon-frame.d.ts.map +1 -0
  62. package/dist/components/icons/icon-frame.js +19 -0
  63. package/dist/components/icons/icon-frame.js.map +1 -0
  64. package/dist/components/icons/index.d.ts +40 -0
  65. package/dist/components/icons/index.d.ts.map +1 -0
  66. package/dist/components/icons/index.js +39 -0
  67. package/dist/components/icons/index.js.map +1 -0
  68. package/dist/components/icons/nav-map.d.ts +14 -0
  69. package/dist/components/icons/nav-map.d.ts.map +1 -0
  70. package/dist/components/icons/nav-map.js +28 -0
  71. package/dist/components/icons/nav-map.js.map +1 -0
  72. package/dist/components/icons/nav-marks.d.ts +44 -0
  73. package/dist/components/icons/nav-marks.d.ts.map +1 -0
  74. package/dist/components/icons/nav-marks.js +45 -0
  75. package/dist/components/icons/nav-marks.js.map +1 -0
  76. package/dist/components/icons/status-marks.d.ts +21 -0
  77. package/dist/components/icons/status-marks.d.ts.map +1 -0
  78. package/dist/components/icons/status-marks.js +22 -0
  79. package/dist/components/icons/status-marks.js.map +1 -0
  80. package/dist/components/icons/theme-marks.d.ts +9 -0
  81. package/dist/components/icons/theme-marks.d.ts.map +1 -0
  82. package/dist/components/icons/theme-marks.js +10 -0
  83. package/dist/components/icons/theme-marks.js.map +1 -0
  84. package/dist/components/inputs.js.map +1 -1
  85. package/dist/components/json-diff.d.ts.map +1 -1
  86. package/dist/components/json-diff.js +1 -3
  87. package/dist/components/json-diff.js.map +1 -1
  88. package/dist/components/json-tree-context.d.ts +13 -0
  89. package/dist/components/json-tree-context.d.ts.map +1 -0
  90. package/dist/components/json-tree-context.js +15 -0
  91. package/dist/components/json-tree-context.js.map +1 -0
  92. package/dist/components/json-tree-model.d.ts +56 -0
  93. package/dist/components/json-tree-model.d.ts.map +1 -0
  94. package/dist/components/json-tree-model.js +125 -0
  95. package/dist/components/json-tree-model.js.map +1 -0
  96. package/dist/components/json-tree-nodes.d.ts +35 -0
  97. package/dist/components/json-tree-nodes.d.ts.map +1 -0
  98. package/dist/components/json-tree-nodes.js +113 -0
  99. package/dist/components/json-tree-nodes.js.map +1 -0
  100. package/dist/components/json-tree.d.ts +20 -0
  101. package/dist/components/json-tree.d.ts.map +1 -1
  102. package/dist/components/json-tree.js +7 -315
  103. package/dist/components/json-tree.js.map +1 -1
  104. package/dist/components/json-value-format.d.ts +20 -0
  105. package/dist/components/json-value-format.d.ts.map +1 -0
  106. package/dist/components/json-value-format.js +63 -0
  107. package/dist/components/json-value-format.js.map +1 -0
  108. package/dist/components/markdown-blocks.d.ts +38 -0
  109. package/dist/components/markdown-blocks.d.ts.map +1 -0
  110. package/dist/components/markdown-blocks.js +168 -0
  111. package/dist/components/markdown-blocks.js.map +1 -0
  112. package/dist/components/markdown-inline.d.ts +24 -0
  113. package/dist/components/markdown-inline.d.ts.map +1 -0
  114. package/dist/components/markdown-inline.js +257 -0
  115. package/dist/components/markdown-inline.js.map +1 -0
  116. package/dist/components/markdown.d.ts +3 -52
  117. package/dist/components/markdown.d.ts.map +1 -1
  118. package/dist/components/markdown.js +4 -376
  119. package/dist/components/markdown.js.map +1 -1
  120. package/dist/components/observer-registry.d.ts +38 -0
  121. package/dist/components/observer-registry.d.ts.map +1 -0
  122. package/dist/components/observer-registry.js +131 -0
  123. package/dist/components/observer-registry.js.map +1 -0
  124. package/dist/components/overflow-measure.d.ts +38 -0
  125. package/dist/components/overflow-measure.d.ts.map +1 -0
  126. package/dist/components/overflow-measure.js +54 -0
  127. package/dist/components/overflow-measure.js.map +1 -0
  128. package/dist/components/page-fill.d.ts.map +1 -1
  129. package/dist/components/page-fill.js.map +1 -1
  130. package/dist/components/prose-regions.d.ts +81 -0
  131. package/dist/components/prose-regions.d.ts.map +1 -0
  132. package/dist/components/prose-regions.js +128 -0
  133. package/dist/components/prose-regions.js.map +1 -0
  134. package/dist/components/radio-group.d.ts.map +1 -1
  135. package/dist/components/radio-group.js.map +1 -1
  136. package/dist/components/scroll-region.d.ts +24 -0
  137. package/dist/components/scroll-region.d.ts.map +1 -1
  138. package/dist/components/scroll-region.js +3 -322
  139. package/dist/components/scroll-region.js.map +1 -1
  140. package/dist/components/tab-stop-parse.d.ts +53 -0
  141. package/dist/components/tab-stop-parse.d.ts.map +1 -0
  142. package/dist/components/tab-stop-parse.js +202 -0
  143. package/dist/components/tab-stop-parse.js.map +1 -0
  144. package/dist/components/table.d.ts +1 -1
  145. package/dist/components/table.d.ts.map +1 -1
  146. package/dist/components/tags.d.ts.map +1 -1
  147. package/dist/components/tags.js +1 -1
  148. package/dist/components/tags.js.map +1 -1
  149. package/dist/components/templated-text-field.d.ts +1 -1
  150. package/dist/components/templated-text-field.d.ts.map +1 -1
  151. package/dist/components/templated-text-field.js +10 -174
  152. package/dist/components/templated-text-field.js.map +1 -1
  153. package/dist/components/templated-text-kwargs-editor.d.ts +24 -0
  154. package/dist/components/templated-text-kwargs-editor.d.ts.map +1 -0
  155. package/dist/components/templated-text-kwargs-editor.js +48 -0
  156. package/dist/components/templated-text-kwargs-editor.js.map +1 -0
  157. package/dist/components/templated-text-kwargs.d.ts +37 -0
  158. package/dist/components/templated-text-kwargs.d.ts.map +1 -0
  159. package/dist/components/templated-text-kwargs.js +66 -0
  160. package/dist/components/templated-text-kwargs.js.map +1 -0
  161. package/dist/components/templated-text-source.d.ts +33 -0
  162. package/dist/components/templated-text-source.d.ts.map +1 -0
  163. package/dist/components/templated-text-source.js +53 -0
  164. package/dist/components/templated-text-source.js.map +1 -0
  165. package/dist/components/tool-picker-parts.d.ts +39 -0
  166. package/dist/components/tool-picker-parts.d.ts.map +1 -0
  167. package/dist/components/tool-picker-parts.js +87 -0
  168. package/dist/components/tool-picker-parts.js.map +1 -0
  169. package/dist/components/tool-picker.d.ts +1 -2
  170. package/dist/components/tool-picker.d.ts.map +1 -1
  171. package/dist/components/tool-picker.js +4 -66
  172. package/dist/components/tool-picker.js.map +1 -1
  173. package/dist/components/version-history-panel.d.ts.map +1 -1
  174. package/dist/components/version-history-panel.js +7 -34
  175. package/dist/components/version-history-panel.js.map +1 -1
  176. package/dist/components/version-history-rows.d.ts +48 -0
  177. package/dist/components/version-history-rows.d.ts.map +1 -0
  178. package/dist/components/version-history-rows.js +51 -0
  179. package/dist/components/version-history-rows.js.map +1 -0
  180. package/dist/components/view-toggle.d.ts.map +1 -1
  181. package/dist/components/view-toggle.js.map +1 -1
  182. package/dist/element-slot.d.ts +11 -0
  183. package/dist/element-slot.d.ts.map +1 -1
  184. package/dist/element-slot.js +0 -11
  185. package/dist/element-slot.js.map +1 -1
  186. package/dist/guards.d.ts +6 -0
  187. package/dist/guards.d.ts.map +1 -0
  188. package/dist/guards.js +8 -0
  189. package/dist/guards.js.map +1 -0
  190. package/dist/hooks/interactions-connection.d.ts +43 -0
  191. package/dist/hooks/interactions-connection.d.ts.map +1 -0
  192. package/dist/hooks/interactions-connection.js +171 -0
  193. package/dist/hooks/interactions-connection.js.map +1 -0
  194. package/dist/hooks/interactions-stream.d.ts +80 -0
  195. package/dist/hooks/interactions-stream.d.ts.map +1 -0
  196. package/dist/hooks/interactions-stream.js +233 -0
  197. package/dist/hooks/interactions-stream.js.map +1 -0
  198. package/dist/hooks/useApi.d.ts +2259 -2189
  199. package/dist/hooks/useApi.d.ts.map +1 -1
  200. package/dist/hooks/useApi.js +0 -11
  201. package/dist/hooks/useApi.js.map +1 -1
  202. package/dist/hooks/useAuth.d.ts +6 -0
  203. package/dist/hooks/useAuth.d.ts.map +1 -1
  204. package/dist/hooks/useAuth.js +0 -6
  205. package/dist/hooks/useAuth.js.map +1 -1
  206. package/dist/hooks/useCapabilities.d.ts +18 -2
  207. package/dist/hooks/useCapabilities.d.ts.map +1 -1
  208. package/dist/hooks/useCapabilities.js +1 -17
  209. package/dist/hooks/useCapabilities.js.map +1 -1
  210. package/dist/hooks/useSse.d.ts +34 -6
  211. package/dist/hooks/useSse.d.ts.map +1 -1
  212. package/dist/hooks/useSse.js +27 -471
  213. package/dist/hooks/useSse.js.map +1 -1
  214. package/dist/hooks/useSystemKinds.d.ts +1 -1
  215. package/dist/hooks/useSystemKinds.d.ts.map +1 -1
  216. package/dist/hooks/useSystemKinds.js +0 -18
  217. package/dist/hooks/useSystemKinds.js.map +1 -1
  218. package/dist/hooks/useTheme.d.ts +15 -0
  219. package/dist/hooks/useTheme.d.ts.map +1 -1
  220. package/dist/hooks/useTheme.js +0 -15
  221. package/dist/hooks/useTheme.js.map +1 -1
  222. package/dist/hooks/useToolDisplayNames.d.ts +0 -14
  223. package/dist/hooks/useToolDisplayNames.d.ts.map +1 -1
  224. package/dist/hooks/useToolDisplayNames.js +0 -14
  225. package/dist/hooks/useToolDisplayNames.js.map +1 -1
  226. package/dist/host.d.ts +3 -3
  227. package/dist/host.d.ts.map +1 -1
  228. package/dist/host.js +2 -9
  229. package/dist/host.js.map +1 -1
  230. package/dist/index.d.ts +103 -103
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +49 -62
  233. package/dist/index.js.map +1 -1
  234. package/dist/navigation/app-link.d.ts +25 -0
  235. package/dist/navigation/app-link.d.ts.map +1 -0
  236. package/dist/navigation/app-link.js +33 -0
  237. package/dist/navigation/app-link.js.map +1 -0
  238. package/dist/navigation/context.d.ts +3 -20
  239. package/dist/navigation/context.d.ts.map +1 -1
  240. package/dist/navigation/context.js +7 -267
  241. package/dist/navigation/context.js.map +1 -1
  242. package/dist/navigation/entry-state.d.ts +23 -0
  243. package/dist/navigation/entry-state.d.ts.map +1 -0
  244. package/dist/navigation/entry-state.js +39 -0
  245. package/dist/navigation/entry-state.js.map +1 -0
  246. package/dist/navigation/guard-registry.d.ts +30 -0
  247. package/dist/navigation/guard-registry.d.ts.map +1 -0
  248. package/dist/navigation/guard-registry.js +46 -0
  249. package/dist/navigation/guard-registry.js.map +1 -0
  250. package/dist/navigation/guarded-navigation.d.ts +24 -0
  251. package/dist/navigation/guarded-navigation.d.ts.map +1 -0
  252. package/dist/navigation/guarded-navigation.js +102 -0
  253. package/dist/navigation/guarded-navigation.js.map +1 -0
  254. package/dist/navigation/index.d.ts +5 -4
  255. package/dist/navigation/index.d.ts.map +1 -1
  256. package/dist/navigation/index.js +2 -1
  257. package/dist/navigation/index.js.map +1 -1
  258. package/dist/navigation/types.d.ts +8 -11
  259. package/dist/navigation/types.d.ts.map +1 -1
  260. package/dist/navigation/use-back-forward-guard.d.ts +12 -0
  261. package/dist/navigation/use-back-forward-guard.d.ts.map +1 -0
  262. package/dist/navigation/use-back-forward-guard.js +75 -0
  263. package/dist/navigation/use-back-forward-guard.js.map +1 -0
  264. package/dist/navigation/use-search-commit.d.ts.map +1 -1
  265. package/dist/navigation/use-search-commit.js.map +1 -1
  266. package/dist/plugin/host-state.d.ts.map +1 -1
  267. package/dist/plugin/host-state.js.map +1 -1
  268. package/dist/plugin/registry.d.ts +6 -15
  269. package/dist/plugin/registry.d.ts.map +1 -1
  270. package/dist/plugin/registry.js +83 -75
  271. package/dist/plugin/registry.js.map +1 -1
  272. package/dist/schema-editor/SchemaEditor.d.ts.map +1 -1
  273. package/dist/schema-editor/SchemaEditor.js.map +1 -1
  274. package/dist/schema-editor/index.d.ts +3 -3
  275. package/dist/schema-editor/index.d.ts.map +1 -1
  276. package/dist/schema-editor/index.js +1 -6
  277. package/dist/schema-editor/index.js.map +1 -1
  278. package/dist/schema-form/SecretRefField.d.ts +18 -3
  279. package/dist/schema-form/SecretRefField.d.ts.map +1 -1
  280. package/dist/schema-form/SecretRefField.js +21 -26
  281. package/dist/schema-form/SecretRefField.js.map +1 -1
  282. package/dist/schema-form/classify.d.ts +1 -113
  283. package/dist/schema-form/classify.d.ts.map +1 -1
  284. package/dist/schema-form/classify.js +174 -246
  285. package/dist/schema-form/classify.js.map +1 -1
  286. package/dist/schema-form/context.d.ts +6 -0
  287. package/dist/schema-form/context.d.ts.map +1 -1
  288. package/dist/schema-form/context.js +0 -6
  289. package/dist/schema-form/context.js.map +1 -1
  290. package/dist/schema-form/default-value.d.ts.map +1 -1
  291. package/dist/schema-form/default-value.js +42 -19
  292. package/dist/schema-form/default-value.js.map +1 -1
  293. package/dist/schema-form/enum-field.d.ts +1 -1
  294. package/dist/schema-form/enum-field.d.ts.map +1 -1
  295. package/dist/schema-form/field-group.d.ts +6 -0
  296. package/dist/schema-form/field-group.d.ts.map +1 -1
  297. package/dist/schema-form/field-group.js +0 -6
  298. package/dist/schema-form/field-group.js.map +1 -1
  299. package/dist/schema-form/field-model.d.ts +121 -0
  300. package/dist/schema-form/field-model.d.ts.map +1 -0
  301. package/dist/schema-form/field-model.js +2 -0
  302. package/dist/schema-form/field-model.js.map +1 -0
  303. package/dist/schema-form/field-node.d.ts.map +1 -1
  304. package/dist/schema-form/field-node.js +25 -14
  305. package/dist/schema-form/field-node.js.map +1 -1
  306. package/dist/schema-form/index.d.ts +8 -8
  307. package/dist/schema-form/index.d.ts.map +1 -1
  308. package/dist/schema-form/index.js +3 -34
  309. package/dist/schema-form/index.js.map +1 -1
  310. package/dist/schema-form/json-field.d.ts +19 -0
  311. package/dist/schema-form/json-field.d.ts.map +1 -1
  312. package/dist/schema-form/json-field.js +0 -19
  313. package/dist/schema-form/json-field.js.map +1 -1
  314. package/dist/schema-form/media-field.d.ts +1 -1
  315. package/dist/schema-form/media-field.d.ts.map +1 -1
  316. package/dist/schema-form/media-field.js +49 -30
  317. package/dist/schema-form/media-field.js.map +1 -1
  318. package/dist/schema-form/record-field.d.ts +12 -0
  319. package/dist/schema-form/record-field.d.ts.map +1 -1
  320. package/dist/schema-form/record-field.js +1 -13
  321. package/dist/schema-form/record-field.js.map +1 -1
  322. package/dist/schema-form/string-annotations.d.ts +20 -0
  323. package/dist/schema-form/string-annotations.d.ts.map +1 -0
  324. package/dist/schema-form/string-annotations.js +105 -0
  325. package/dist/schema-form/string-annotations.js.map +1 -0
  326. package/dist/schema-form/string-field.d.ts +1 -1
  327. package/dist/schema-form/string-field.d.ts.map +1 -1
  328. package/dist/schema-form/string-field.js +1 -1
  329. package/dist/schema-form/string-field.js.map +1 -1
  330. package/dist/schema-form/union-field.d.ts +1 -1
  331. package/dist/schema-form/union-field.d.ts.map +1 -1
  332. package/dist/schema-form/union-field.js.map +1 -1
  333. package/dist/schema-form/union.d.ts +8 -1
  334. package/dist/schema-form/union.d.ts.map +1 -1
  335. package/dist/schema-form/union.js +0 -7
  336. package/dist/schema-form/union.js.map +1 -1
  337. package/dist/schema-form/validate.d.ts.map +1 -1
  338. package/dist/schema-form/validate.js +126 -105
  339. package/dist/schema-form/validate.js.map +1 -1
  340. package/dist/state-binding/AdapterMapping.d.ts.map +1 -1
  341. package/dist/state-binding/AdapterMapping.js +0 -0
  342. package/dist/state-binding/AdapterMapping.js.map +1 -1
  343. package/dist/state-binding/BindingJqField.d.ts.map +1 -1
  344. package/dist/state-binding/BindingJqField.js +2 -2
  345. package/dist/state-binding/BindingJqField.js.map +1 -1
  346. package/dist/state-binding/InputInjectionRow.d.ts.map +1 -1
  347. package/dist/state-binding/InputInjectionRow.js +3 -3
  348. package/dist/state-binding/InputInjectionRow.js.map +1 -1
  349. package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
  350. package/dist/state-binding/StateAttachRow.js +57 -41
  351. package/dist/state-binding/StateAttachRow.js.map +1 -1
  352. package/dist/state-binding/StateBindingSection.d.ts.map +1 -1
  353. package/dist/state-binding/StateBindingSection.js.map +1 -1
  354. package/dist/state-binding/SubjectScopeFields.d.ts.map +1 -1
  355. package/dist/state-binding/SubjectScopeFields.js.map +1 -1
  356. package/dist/state-binding/UpdateRow.d.ts.map +1 -1
  357. package/dist/state-binding/UpdateRow.js +2 -2
  358. package/dist/state-binding/UpdateRow.js.map +1 -1
  359. package/dist/state-binding/adapter-mapping-row.d.ts +17 -0
  360. package/dist/state-binding/adapter-mapping-row.d.ts.map +1 -0
  361. package/dist/state-binding/adapter-mapping-row.js +87 -0
  362. package/dist/state-binding/adapter-mapping-row.js.map +1 -0
  363. package/dist/state-binding/index.d.ts +21 -21
  364. package/dist/state-binding/index.d.ts.map +1 -1
  365. package/dist/state-binding/index.js +9 -15
  366. package/dist/state-binding/index.js.map +1 -1
  367. package/dist/state-binding/templated-text-catalog.d.ts.map +1 -1
  368. package/dist/state-binding/templated-text-catalog.js.map +1 -1
  369. package/dist/state-binding/types.d.ts +2 -2
  370. package/dist/state-binding/types.d.ts.map +1 -1
  371. package/dist/structured-output/StructuredOutput.d.ts.map +1 -1
  372. package/dist/structured-output/StructuredOutput.js +1 -3
  373. package/dist/structured-output/StructuredOutput.js.map +1 -1
  374. package/package.json +2 -2
  375. package/src/components/code-block.tsx +1 -1
  376. package/src/components/confirm-dialog.tsx +1 -1
  377. package/src/components/copy-field.tsx +1 -1
  378. package/src/components/date-range-picker.tsx +1 -1
  379. package/src/components/dialog.tsx +1 -1
  380. package/src/components/dirty-guard.tsx +3 -3
  381. package/src/components/explorer-body.tsx +239 -0
  382. package/src/components/explorer-page-size.ts +39 -0
  383. package/src/components/explorer-tag-filter.tsx +80 -0
  384. package/src/components/explorer-tags.ts +64 -0
  385. package/src/components/explorer-view.tsx +115 -367
  386. package/src/components/extension-combo-builder.tsx +35 -153
  387. package/src/components/extension-combo-parts.tsx +236 -0
  388. package/src/components/field.tsx +1 -1
  389. package/src/components/fleet-report.tsx +98 -55
  390. package/src/components/folder-nav.tsx +2 -2
  391. package/src/components/form-dialog.tsx +2 -2
  392. package/src/components/icons/chrome-marks.tsx +195 -0
  393. package/src/components/icons/icon-frame.tsx +50 -0
  394. package/src/components/icons/index.ts +84 -0
  395. package/src/components/icons/nav-map.ts +55 -0
  396. package/src/components/icons/nav-marks.tsx +205 -0
  397. package/src/components/icons/status-marks.tsx +46 -0
  398. package/src/components/icons/theme-marks.tsx +33 -0
  399. package/src/components/inputs.tsx +1 -1
  400. package/src/components/json-diff.tsx +1 -4
  401. package/src/components/json-tree-context.ts +26 -0
  402. package/src/components/json-tree-model.ts +139 -0
  403. package/src/components/json-tree-nodes.tsx +224 -0
  404. package/src/components/json-tree.tsx +15 -434
  405. package/src/components/json-value-format.ts +64 -0
  406. package/src/components/markdown-blocks.ts +198 -0
  407. package/src/components/markdown-inline.tsx +365 -0
  408. package/src/components/markdown.tsx +6 -472
  409. package/src/components/observer-registry.ts +139 -0
  410. package/src/components/overflow-measure.ts +69 -0
  411. package/src/components/page-fill.tsx +1 -1
  412. package/src/components/prose-regions.ts +153 -0
  413. package/src/components/radio-group.tsx +1 -1
  414. package/src/components/scroll-region.tsx +22 -361
  415. package/src/components/tab-stop-parse.ts +217 -0
  416. package/src/components/table.tsx +1 -1
  417. package/src/components/tags.tsx +2 -2
  418. package/src/components/templated-text-field.tsx +39 -332
  419. package/src/components/templated-text-kwargs-editor.tsx +147 -0
  420. package/src/components/templated-text-kwargs.ts +92 -0
  421. package/src/components/templated-text-source.tsx +226 -0
  422. package/src/components/tool-picker-parts.tsx +184 -0
  423. package/src/components/tool-picker.tsx +22 -114
  424. package/src/components/version-history-panel.tsx +39 -143
  425. package/src/components/version-history-rows.tsx +220 -0
  426. package/src/components/view-toggle.tsx +1 -1
  427. package/src/element-slot.ts +1 -1
  428. package/src/guards.ts +7 -0
  429. package/src/hooks/interactions-connection.ts +227 -0
  430. package/src/hooks/interactions-stream.ts +274 -0
  431. package/src/hooks/useApi.ts +1 -1
  432. package/src/hooks/useAuth.ts +1 -1
  433. package/src/hooks/useCapabilities.ts +3 -3
  434. package/src/hooks/useSse.ts +51 -478
  435. package/src/hooks/useSystemKinds.tsx +2 -2
  436. package/src/hooks/useTheme.ts +1 -1
  437. package/src/hooks/useToolDisplayNames.tsx +2 -2
  438. package/src/host.ts +7 -7
  439. package/src/index.ts +292 -292
  440. package/src/navigation/app-link.tsx +70 -0
  441. package/src/navigation/context.tsx +12 -331
  442. package/src/navigation/entry-state.ts +42 -0
  443. package/src/navigation/guard-registry.ts +65 -0
  444. package/src/navigation/guarded-navigation.ts +147 -0
  445. package/src/navigation/index.ts +14 -14
  446. package/src/navigation/types.ts +8 -11
  447. package/src/navigation/use-back-forward-guard.ts +90 -0
  448. package/src/navigation/use-search-commit.ts +1 -1
  449. package/src/plugin/host-state.ts +1 -1
  450. package/src/plugin/registry.ts +111 -90
  451. package/src/schema-editor/SchemaEditor.tsx +1 -1
  452. package/src/schema-editor/index.ts +3 -3
  453. package/src/schema-form/SecretRefField.tsx +122 -72
  454. package/src/schema-form/classify.ts +245 -396
  455. package/src/schema-form/context.ts +1 -1
  456. package/src/schema-form/default-value.ts +48 -17
  457. package/src/schema-form/enum-field.tsx +1 -1
  458. package/src/schema-form/field-group.tsx +1 -1
  459. package/src/schema-form/field-model.ts +133 -0
  460. package/src/schema-form/field-node.tsx +95 -39
  461. package/src/schema-form/index.ts +10 -10
  462. package/src/schema-form/json-field.tsx +1 -1
  463. package/src/schema-form/media-field.tsx +136 -67
  464. package/src/schema-form/record-field.tsx +2 -2
  465. package/src/schema-form/string-annotations.ts +111 -0
  466. package/src/schema-form/string-field.tsx +2 -2
  467. package/src/schema-form/union-field.tsx +3 -2
  468. package/src/schema-form/union.ts +1 -1
  469. package/src/schema-form/validate.ts +185 -104
  470. package/src/state-binding/AdapterMapping.tsx +0 -0
  471. package/src/state-binding/BindingJqField.tsx +3 -3
  472. package/src/state-binding/InputInjectionRow.tsx +4 -4
  473. package/src/state-binding/StateAttachRow.tsx +229 -154
  474. package/src/state-binding/StateBindingSection.tsx +1 -1
  475. package/src/state-binding/SubjectScopeFields.tsx +1 -1
  476. package/src/state-binding/UpdateRow.tsx +3 -3
  477. package/src/state-binding/adapter-mapping-row.tsx +232 -0
  478. package/src/state-binding/index.ts +43 -43
  479. package/src/state-binding/templated-text-catalog.ts +0 -1
  480. package/src/state-binding/types.ts +2 -2
  481. package/src/structured-output/StructuredOutput.tsx +1 -4
  482. package/dist/components/icons.d.ts +0 -160
  483. package/dist/components/icons.d.ts.map +0 -1
  484. package/dist/components/icons.js +0 -160
  485. package/dist/components/icons.js.map +0 -1
  486. package/src/components/icons.tsx +0 -586
@@ -13,382 +13,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  */
14
14
  import { useMemo } from 'react';
15
15
  import { CodeBlock } from './code-block';
16
- import { safeHttpUrl } from './primitives';
17
- // -- block grammar -----------------------------------------------------------
18
- const BLANK = /^[ \t]*$/;
19
- /** A fence opener: three-or-more backticks or tildes, then an info string. */
20
- const FENCE_OPEN = /^[ \t]{0,3}(`{3,}|~{3,})[ \t]*(.*)$/;
21
- /**
22
- * An ATX heading: 1–6 hashes, a required space, then text. A closing hash run is
23
- * stripped only when whitespace separates it from the content, so `# C#` keeps
24
- * its literal `C#`.
25
- */
26
- const HEADING = /^[ \t]{0,3}(#{1,6})[ \t]+(.*?)(?:[ \t]+#+)?[ \t]*$/;
27
- /** A thematic break: three-or-more `-`, `*` or `_`, spaces allowed between. */
28
- const THEMATIC_BREAK = /^[ \t]{0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/;
29
- /** A blockquote line: a `>` marker and its (optionally space-prefixed) content. */
30
- const BLOCKQUOTE = /^[ \t]{0,3}>[ \t]?(.*)$/;
31
- /** An unordered list item: a `-`, `*` or `+` bullet, a space, then content. */
32
- const UNORDERED_ITEM = /^[ \t]*[-*+][ \t]+(.*)$/;
33
- /** An ordered list item: a start number, a `.` or `)` delimiter, a space, then content. */
34
- const ORDERED_ITEM = /^[ \t]*(\d{1,9})[.)][ \t]+(.*)$/;
35
- /** True when a line starts a block that interrupts an open paragraph. */
36
- function startsBlock(line) {
37
- return (FENCE_OPEN.test(line) ||
38
- HEADING.test(line) ||
39
- THEMATIC_BREAK.test(line) ||
40
- BLOCKQUOTE.test(line) ||
41
- UNORDERED_ITEM.test(line) ||
42
- ORDERED_ITEM.test(line));
43
- }
44
- /**
45
- * The `closer` for an open fence: the same marker character, at least as long as
46
- * the opener, alone on its line. A source that never closes its fence takes the
47
- * rest of the document as code — the same run-to-end rule CommonMark applies —
48
- * rather than silently dropping the block.
49
- */
50
- function fenceCloser(marker) {
51
- const char = marker.startsWith('`') ? '`' : '~';
52
- return new RegExp(`^[ \\t]{0,3}${char}{${String(marker.length)},}[ \\t]*$`);
53
- }
54
- /**
55
- * Folds markdown source into an ordered list of blocks. Pure and total: any
56
- * string parses, and text that matches no block construct becomes a paragraph
57
- * rather than being discarded.
58
- */
59
- export function parseMarkdown(markdown) {
60
- const lines = markdown.replace(/\r\n?/g, '\n').split('\n');
61
- return parseBlocks(lines);
62
- }
63
- function parseBlocks(lines) {
64
- const blocks = [];
65
- let i = 0;
66
- while (i < lines.length) {
67
- const line = lines[i] ?? '';
68
- if (BLANK.test(line)) {
69
- i += 1;
70
- continue;
71
- }
72
- const fence = FENCE_OPEN.exec(line);
73
- if (fence !== null) {
74
- const closer = fenceCloser(fence[1] ?? '');
75
- const info = (fence[2] ?? '').trim();
76
- const body = [];
77
- i += 1;
78
- for (; i < lines.length; i += 1) {
79
- const next = lines[i] ?? '';
80
- if (closer.test(next))
81
- break;
82
- body.push(next);
83
- }
84
- // Step past the closing fence when one is present; at end-of-document
85
- // there is nothing to step past.
86
- if (i < lines.length)
87
- i += 1;
88
- blocks.push({
89
- type: 'code',
90
- language: info.length > 0 ? info : undefined,
91
- code: body.join('\n'),
92
- });
93
- continue;
94
- }
95
- const heading = HEADING.exec(line);
96
- if (heading !== null) {
97
- blocks.push({
98
- type: 'heading',
99
- level: (heading[1] ?? '').length,
100
- text: heading[2] ?? '',
101
- });
102
- i += 1;
103
- continue;
104
- }
105
- if (THEMATIC_BREAK.test(line)) {
106
- blocks.push({ type: 'thematicBreak' });
107
- i += 1;
108
- continue;
109
- }
110
- if (BLOCKQUOTE.test(line)) {
111
- const inner = [];
112
- for (; i < lines.length; i += 1) {
113
- const quoted = BLOCKQUOTE.exec(lines[i] ?? '');
114
- if (quoted === null)
115
- break;
116
- inner.push(quoted[1] ?? '');
117
- }
118
- blocks.push({ type: 'blockquote', children: parseBlocks(inner) });
119
- continue;
120
- }
121
- const unordered = UNORDERED_ITEM.exec(line);
122
- const ordered = unordered === null ? ORDERED_ITEM.exec(line) : null;
123
- if (unordered !== null || ordered !== null) {
124
- const pattern = ordered !== null ? ORDERED_ITEM : UNORDERED_ITEM;
125
- // An ordered item's content is its second group, behind the start number; an
126
- // unordered item's content is its first.
127
- const textGroup = ordered !== null ? 2 : 1;
128
- const items = [];
129
- for (; i < lines.length; i += 1) {
130
- const item = pattern.exec(lines[i] ?? '');
131
- if (item === null)
132
- break;
133
- items.push(item[textGroup] ?? '');
134
- }
135
- if (ordered !== null) {
136
- blocks.push({ type: 'list', ordered: true, items, start: Number(ordered[1] ?? '1') });
137
- }
138
- else {
139
- blocks.push({ type: 'list', ordered: false, items });
140
- }
141
- continue;
142
- }
143
- // A paragraph: this line and the following lines up to a blank line or the
144
- // start of another block. Soft line breaks are kept as newlines.
145
- const paragraph = [line];
146
- i += 1;
147
- for (; i < lines.length; i += 1) {
148
- const next = lines[i] ?? '';
149
- if (BLANK.test(next) || startsBlock(next))
150
- break;
151
- paragraph.push(next);
152
- }
153
- blocks.push({ type: 'paragraph', text: paragraph.join('\n') });
154
- }
155
- return blocks;
156
- }
157
- // -- inline grammar ----------------------------------------------------------
158
- // Single-character predicates, so the `\S` and `\w` classes decide flanking
159
- // exactly — a non-breaking space is whitespace, an underscore a word character —
160
- // rather than an open-coded space test getting those edges wrong.
161
- const NON_SPACE = /\S/;
162
- const WORD = /\w/;
163
- /** Inline code: a run of backticks and its literal, unparsed content, on one line. */
164
- const CODE_SPAN = /`([^`\n]+)`/g;
165
- /**
166
- * The earliest run delimited by `marker` (`**`, `__`, `*` or `_`) at or after
167
- * `from`. Walks once, holding one pending opener per line and closing it at the
168
- * first marker a non-space away (and, for `_`, not abutting a word character on
169
- * its outer edges). One pending opener per line reproduces the leftmost lazy
170
- * match, quirks and all (`***a***` → `***a**`, `**a*` → none); a newline drops the
171
- * opener. O(1) per character.
172
- */
173
- function findEmphasisSpan(text, from, marker) {
174
- const m = marker.length;
175
- const mark = marker[0];
176
- const underscore = mark === '_';
177
- let opener = -1;
178
- for (let j = from; j + m <= text.length; j += 1) {
179
- const ch = text[j];
180
- if (ch === '\n') {
181
- opener = -1;
182
- continue;
183
- }
184
- if (ch !== mark || (m === 2 && text[j + 1] !== mark))
185
- continue;
186
- // A closer: first marker >=1 body char away, preceded by a non-space (and,
187
- // for `_`, not followed by a word character).
188
- if (opener !== -1 &&
189
- j >= opener + m + 1 &&
190
- NON_SPACE.test(text[j - 1] ?? '') &&
191
- (!underscore || j + m >= text.length || !WORD.test(text[j + m] ?? ''))) {
192
- return { index: opener, length: j + m - opener, content: text.slice(opener + m, j) };
193
- }
194
- // The opener: first marker followed by a non-space (and, for `_`, not abutting
195
- // a word character on its left); only the first is kept.
196
- if (opener === -1 &&
197
- j + m < text.length &&
198
- NON_SPACE.test(text[j + m] ?? '') &&
199
- (!underscore || j === 0 || !WORD.test(text[j - 1] ?? ''))) {
200
- opener = j;
201
- }
202
- }
203
- return null;
204
- }
205
- /**
206
- * The destination run of a bracketed construct: one-or-more non-`)`, non-space
207
- * characters bounded by `)`. Forward-only cursor. See {@link DestinationScan} for
208
- * `end`/`stop`.
209
- */
210
- function scanDestination(text, start) {
211
- let k = start;
212
- while (k < text.length && text[k] !== ')' && NON_SPACE.test(text[k] ?? ''))
213
- k += 1;
214
- if (k > start && text[k] === ')')
215
- return { end: k, stop: k };
216
- // A failure halts at `k`: the whitespace that stopped the walk, or `text.length`
217
- // when the run reached the end. Either way `[start, k)` holds no `)`.
218
- return { end: -1, stop: k };
219
- }
220
- /**
221
- * The earliest `[label](dest)` (or, when `image`, `![alt](dest)`) at or after
222
- * `from`. A label runs from `[` to the first `]`; a link needs a non-empty label,
223
- * an image admits an empty one. Linear: each `[` candidate reuses a forward-only
224
- * `]` pointer and a destination memoized on that `]`, and `deadUntil` records a
225
- * proven no-`)` span so later candidates starting inside it skip the scan.
226
- */
227
- function findBracketed(text, from, image) {
228
- let close = -1; // first `]` at an index the current candidate can still use
229
- let destKey = -1; // the `]` the memoized destination belongs to
230
- let destEnd = -1; // closing `)` for `destKey`, or -1
231
- // Exclusive index up to which a scan proved no `)` exists; a destination start
232
- // below it skips the scan. A start at or past it must still scan. Call-local.
233
- let deadUntil = -1;
234
- let bracket = text.indexOf('[', from);
235
- while (bracket !== -1) {
236
- // An image opens at the `!` immediately before its `[`.
237
- const start = image ? bracket - 1 : bracket;
238
- if (!image || (start >= from && text[start] === '!')) {
239
- if (close < bracket + 1)
240
- close = text.indexOf(']', bracket + 1);
241
- if (close === -1)
242
- return null;
243
- const labelOk = image || close > bracket + 1;
244
- if (labelOk && text[close + 1] === '(') {
245
- if (destKey !== close) {
246
- destKey = close;
247
- const destStart = close + 2;
248
- if (deadUntil !== -1 && destStart < deadUntil) {
249
- // A destination inside a proven no-`)` span halts where that scan did.
250
- destEnd = -1;
251
- }
252
- else {
253
- const scan = scanDestination(text, destStart);
254
- destEnd = scan.end;
255
- if (scan.end === -1 && scan.stop > destStart)
256
- deadUntil = scan.stop;
257
- }
258
- }
259
- if (destEnd !== -1) {
260
- return {
261
- index: start,
262
- length: destEnd + 1 - start,
263
- content: text.slice(bracket + 1, close),
264
- extra: text.slice(close + 2, destEnd),
265
- };
266
- }
267
- }
268
- }
269
- bracket = text.indexOf('[', bracket + 1);
270
- }
271
- return null;
272
- }
273
- /** Inline code at or after `from`; the shared cursor is set immediately before the scan. */
274
- function findCode(text, from) {
275
- CODE_SPAN.lastIndex = from;
276
- const match = CODE_SPAN.exec(text);
277
- if (match === null)
278
- return null;
279
- return { kind: 'code', index: match.index, length: match[0].length, content: match[1] ?? '' };
280
- }
281
- /** Tags an emphasis span with its element kind, or passes `null` through. */
282
- function asFound(kind, span) {
283
- return span === null
284
- ? null
285
- : { kind, index: span.index, length: span.length, content: span.content };
286
- }
287
- /**
288
- * Inline constructs in tie-break order at a shared position: code, image, link,
289
- * strong, emphasis — so `**` reads as one strong span, not two emphasis markers.
290
- * Strong and emphasis are split per marker (`**`/`__`, `*`/`_`) so each marker
291
- * caches its own exhaustion and the pass stays linear; star precedes underscore.
292
- */
293
- const INLINE_RULES = [
294
- { kind: 'code', find: findCode },
295
- {
296
- kind: 'image',
297
- find: (text, from) => {
298
- const span = findBracketed(text, from, true);
299
- return span === null ? null : { kind: 'image', ...span };
300
- },
301
- },
302
- {
303
- kind: 'link',
304
- find: (text, from) => {
305
- const span = findBracketed(text, from, false);
306
- return span === null ? null : { kind: 'link', ...span };
307
- },
308
- },
309
- { kind: 'strong', find: (text, from) => asFound('strong', findEmphasisSpan(text, from, '**')) },
310
- { kind: 'strong', find: (text, from) => asFound('strong', findEmphasisSpan(text, from, '__')) },
311
- {
312
- kind: 'emphasis',
313
- find: (text, from) => asFound('emphasis', findEmphasisSpan(text, from, '*')),
314
- },
315
- {
316
- kind: 'emphasis',
317
- find: (text, from) => asFound('emphasis', findEmphasisSpan(text, from, '_')),
318
- },
319
- ];
320
- /**
321
- * Resolves inline markup to React nodes. A cursor walks the text once; each rule
322
- * caches its earliest match at or after the cursor and is rescanned only when the
323
- * cursor passes that match, so the rules' rescans cover disjoint forward ranges
324
- * and the pass is linear. Plain runs are pushed as text children that React
325
- * escapes; a link is admitted only when `safeHttpUrl` accepts it, and an image
326
- * contributes its `alt` text alone.
327
- */
328
- function renderInline(text, keyBase) {
329
- const nodes = [];
330
- // Per rule: `undefined` not yet scanned, `null` no match through the end
331
- // (final), otherwise the pending match to reuse until the cursor passes it.
332
- const cache = INLINE_RULES.map(() => undefined);
333
- let pos = 0;
334
- while (pos < text.length) {
335
- let best = null;
336
- for (const [r, rule] of INLINE_RULES.entries()) {
337
- let hit = cache[r];
338
- if (hit === undefined || (hit !== null && hit.index < pos)) {
339
- hit = rule.find(text, pos);
340
- cache[r] = hit;
341
- }
342
- if (hit !== null && (best === null || hit.index < best.index)) {
343
- best = hit;
344
- }
345
- }
346
- if (best === null) {
347
- nodes.push(text.slice(pos));
348
- break;
349
- }
350
- if (best.index > pos) {
351
- nodes.push(text.slice(pos, best.index));
352
- }
353
- nodes.push(renderInlineMatch(best, `${keyBase}-${String(best.index)}`));
354
- pos = best.index + best.length;
355
- }
356
- return nodes;
357
- }
358
- /**
359
- * Test-only entry point to the inline scanner. Resolves inline markup to React
360
- * nodes exactly as `renderInline` does, but without mounting or serializing a
361
- * DOM, so a test can time the scan itself in isolation from render cost. Not part
362
- * of the public API.
363
- */
364
- export function scanInline(text) {
365
- return renderInline(text, 'k');
366
- }
367
- function renderInlineMatch(found, key) {
368
- switch (found.kind) {
369
- case 'code':
370
- return _jsx("code", { children: found.content }, key);
371
- case 'image':
372
- // Images are not rendered: the alt text is all that survives, and no URL
373
- // is fetched.
374
- return found.content;
375
- case 'link': {
376
- const url = safeHttpUrl(found.extra ?? '');
377
- const children = renderInline(found.content, `${key}-t`);
378
- if (url === undefined) {
379
- // A destination that is not an absolute http(s) URL never becomes a live
380
- // anchor: the display text is rendered as plain text.
381
- return _jsx("span", { children: children }, key);
382
- }
383
- return (_jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer external", children: children }, key));
384
- }
385
- case 'strong':
386
- return _jsx("strong", { children: renderInline(found.content, `${key}-t`) }, key);
387
- case 'emphasis':
388
- return _jsx("em", { children: renderInline(found.content, `${key}-t`) }, key);
389
- }
390
- }
391
- // -- block rendering ---------------------------------------------------------
16
+ import { parseMarkdown } from './markdown-blocks';
17
+ import { renderInline } from './markdown-inline';
18
+ export { parseMarkdown } from './markdown-blocks';
19
+ export { scanInline } from './markdown-inline';
392
20
  /** The intrinsic element each heading level renders, keyed for a valid JSX tag. */
393
21
  const HEADING_TAG = {
394
22
  1: 'h1',
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/components/markdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/components/markdown.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ONE `ResizeObserver` and ONE `MutationObserver` for every scrolling box in the
3
+ * document, rather than a pair per mount. Handlers register per target; the
4
+ * shared observers observe an element the first time anyone asks and drop it once
5
+ * nobody wants it.
6
+ */
7
+ /**
8
+ * The handlers waiting on each observed element. A SET, not a single handler:
9
+ * one element can be both a box and another box's child — a `<pre>` inside a
10
+ * `ScrollRegion` is exactly that — and both owners must still hear its resize.
11
+ */
12
+ type ResizeHandler = () => void;
13
+ /**
14
+ * Registers `handler` for `target`'s resizes, observing the element only the
15
+ * first time anyone asks for it: re-observing an element already under a
16
+ * `ResizeObserver` re-arms its initial notification, which spends a forced
17
+ * layout on a measurement nobody asked for.
18
+ */
19
+ export declare function holdResizeTarget(target: Element, handler: ResizeHandler): void;
20
+ /** Stops observing `target` for `handler`, and entirely once nobody wants it. */
21
+ export declare function releaseResizeTarget(target: Element, handler: ResizeHandler): void;
22
+ type ContentHandler = () => void;
23
+ export declare function holdContentTarget(target: Element, handler: ContentHandler): void;
24
+ /**
25
+ * Stops watching `target`'s content for `handler`.
26
+ *
27
+ * `MutationObserver` has no `unobserve`: the only way to drop one registration
28
+ * is to disconnect the observer and re-observe everything else, which would cost
29
+ * one registration per surviving box every time a box unmounts. A released box
30
+ * is therefore dropped from the handler map at once — its records find no
31
+ * handler and are ignored — and the observer is rebuilt only once the dead
32
+ * registrations outnumber the live ones, which keeps the total registration work
33
+ * proportional to the number of mounts. Records already queued survive the
34
+ * rebuild: they are taken off the observer and delivered by hand.
35
+ */
36
+ export declare function releaseContentTarget(target: Element, handler: ContentHandler): void;
37
+ export {};
38
+ //# sourceMappingURL=observer-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observer-registry.d.ts","sourceRoot":"","sources":["../../src/components/observer-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,KAAK,aAAa,GAAG,MAAM,IAAI,CAAC;AAkBhC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAU9E;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAOjF;AASD,KAAK,cAAc,GAAG,MAAM,IAAI,CAAC;AAkCjC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAShF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAgBnF"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * ONE `ResizeObserver` and ONE `MutationObserver` for every scrolling box in the
3
+ * document, rather than a pair per mount. Handlers register per target; the
4
+ * shared observers observe an element the first time anyone asks and drop it once
5
+ * nobody wants it.
6
+ */
7
+ const resizeHandlers = new WeakMap();
8
+ let sharedResize;
9
+ function sharedResizeObserver() {
10
+ sharedResize ??= new ResizeObserver((entries) => {
11
+ // A box and its children are observed separately, so one frame can deliver
12
+ // several entries owned by the same handler; measuring once is enough.
13
+ const fired = new Set();
14
+ for (const entry of entries) {
15
+ for (const handler of resizeHandlers.get(entry.target) ?? [])
16
+ fired.add(handler);
17
+ }
18
+ for (const handler of fired)
19
+ handler();
20
+ });
21
+ return sharedResize;
22
+ }
23
+ /**
24
+ * Registers `handler` for `target`'s resizes, observing the element only the
25
+ * first time anyone asks for it: re-observing an element already under a
26
+ * `ResizeObserver` re-arms its initial notification, which spends a forced
27
+ * layout on a measurement nobody asked for.
28
+ */
29
+ export function holdResizeTarget(target, handler) {
30
+ const handlers = resizeHandlers.get(target);
31
+ if (handlers !== undefined) {
32
+ handlers.add(handler);
33
+ return;
34
+ }
35
+ // Registered before the element is observed, so the initial notification the
36
+ // observation arms reaches the handler that asked for it.
37
+ resizeHandlers.set(target, new Set([handler]));
38
+ sharedResizeObserver().observe(target);
39
+ }
40
+ /** Stops observing `target` for `handler`, and entirely once nobody wants it. */
41
+ export function releaseResizeTarget(target, handler) {
42
+ const handlers = resizeHandlers.get(target);
43
+ if (handlers === undefined)
44
+ return;
45
+ handlers.delete(handler);
46
+ if (handlers.size > 0)
47
+ return;
48
+ resizeHandlers.delete(target);
49
+ sharedResizeObserver().unobserve(target);
50
+ }
51
+ /** What a box wants to hear about: its content replaced, appended or edited. */
52
+ const CONTENT_OBSERVER_INIT = {
53
+ childList: true,
54
+ subtree: true,
55
+ characterData: true,
56
+ };
57
+ /**
58
+ * The handlers waiting on each observed box, and the boxes the shared observer
59
+ * currently holds. Keyed by `Node` because a `characterData` record names the
60
+ * TEXT node that changed, and the walk to the box that owns it goes through
61
+ * whatever nodes lie between.
62
+ */
63
+ const contentHandlers = new WeakMap();
64
+ const contentTargets = new Set();
65
+ let sharedContent;
66
+ /** Registrations the shared observer still holds for released boxes. */
67
+ let staleContentTargets = 0;
68
+ function deliverContentRecords(records) {
69
+ const fired = new Set();
70
+ for (const record of records) {
71
+ // A `childList` record names the changed parent and a `characterData` record
72
+ // the text node itself, either of them at any depth under a box. Every box
73
+ // on the ancestor chain therefore owns the change, exactly as a separate
74
+ // observer on each of them would have seen it — a `<pre>` inside a
75
+ // `ScrollRegion` measures both.
76
+ for (let node = record.target; node !== null; node = node.parentNode) {
77
+ for (const handler of contentHandlers.get(node) ?? [])
78
+ fired.add(handler);
79
+ }
80
+ }
81
+ for (const handler of fired)
82
+ handler();
83
+ }
84
+ function sharedContentObserver() {
85
+ sharedContent ??= new MutationObserver(deliverContentRecords);
86
+ return sharedContent;
87
+ }
88
+ export function holdContentTarget(target, handler) {
89
+ let handlers = contentHandlers.get(target);
90
+ if (handlers === undefined) {
91
+ handlers = new Set();
92
+ contentHandlers.set(target, handlers);
93
+ contentTargets.add(target);
94
+ sharedContentObserver().observe(target, CONTENT_OBSERVER_INIT);
95
+ }
96
+ handlers.add(handler);
97
+ }
98
+ /**
99
+ * Stops watching `target`'s content for `handler`.
100
+ *
101
+ * `MutationObserver` has no `unobserve`: the only way to drop one registration
102
+ * is to disconnect the observer and re-observe everything else, which would cost
103
+ * one registration per surviving box every time a box unmounts. A released box
104
+ * is therefore dropped from the handler map at once — its records find no
105
+ * handler and are ignored — and the observer is rebuilt only once the dead
106
+ * registrations outnumber the live ones, which keeps the total registration work
107
+ * proportional to the number of mounts. Records already queued survive the
108
+ * rebuild: they are taken off the observer and delivered by hand.
109
+ */
110
+ export function releaseContentTarget(target, handler) {
111
+ const handlers = contentHandlers.get(target);
112
+ if (handlers === undefined)
113
+ return;
114
+ handlers.delete(handler);
115
+ if (handlers.size > 0)
116
+ return;
117
+ contentHandlers.delete(target);
118
+ contentTargets.delete(target);
119
+ staleContentTargets += 1;
120
+ if (staleContentTargets <= contentTargets.size)
121
+ return;
122
+ const observer = sharedContentObserver();
123
+ const queued = observer.takeRecords();
124
+ observer.disconnect();
125
+ staleContentTargets = 0;
126
+ for (const live of contentTargets)
127
+ observer.observe(live, CONTENT_OBSERVER_INIT);
128
+ if (queued.length > 0)
129
+ deliverContentRecords(queued);
130
+ }
131
+ //# sourceMappingURL=observer-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observer-registry.js","sourceRoot":"","sources":["../../src/components/observer-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The overflow measurement and the region-attribute contract: whether a box
3
+ * scrolls right now, and the conditional `tabindex`/`role`/`aria-label` a
4
+ * scrolling box wears. The leaf the React surface and the prose walk both build
5
+ * on; it imports neither of them, which is what breaks the write/measure cycle.
6
+ */
7
+ export declare const SCROLL_REGION_CLASS = "tai-scroll-region";
8
+ export declare function overflows(element: HTMLElement): boolean;
9
+ /**
10
+ * Whether the element should carry the region attributes right now.
11
+ *
12
+ * A region that stops overflowing keeps its tab stop for as long as it holds
13
+ * focus: taking `tabindex` off the focused element drops the reader onto the
14
+ * document body, and a window resize is not their doing. Only an element that
15
+ * already has the stop can be the active element, so this can hold a stop open
16
+ * but never invent one.
17
+ */
18
+ export declare function needsRegion(element: HTMLElement): boolean;
19
+ /** A tracked scrollable surface, with the name it wears while it scrolls. */
20
+ export interface TrackedSurface {
21
+ readonly surface: HTMLElement;
22
+ readonly label: string;
23
+ }
24
+ /** Strips the region attributes from a surface that is not a region now. */
25
+ export declare function clearScrollRegionAttributes(wrapper: HTMLElement): void;
26
+ /** Applies the same conditional attribute set `ScrollRegion` renders. */
27
+ export declare function applyScrollRegionAttributes(wrapper: HTMLElement, label: string, scrolling: boolean): void;
28
+ /**
29
+ * Re-applies the region attributes to `tracked`, reading ALL of them before
30
+ * writing any.
31
+ *
32
+ * `needsRegion` reads `scrollWidth`, which forces layout if anything has been
33
+ * written since the last one — so measuring and writing surface by surface makes
34
+ * the browser re-lay-out the prose once per surface, every time. Two phases cost
35
+ * one layout for the whole batch however many surfaces it holds.
36
+ */
37
+ export declare function refreshRegions(tracked: readonly TrackedSurface[]): void;
38
+ //# sourceMappingURL=overflow-measure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overflow-measure.d.ts","sourceRoot":"","sources":["../../src/components/overflow-measure.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,4EAA4E;AAC5E,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAItE;AAED,yEAAyE;AACzE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,IAAI,CAQN;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAKvE"}