@flanksource/clicky-ui 0.3.55 → 0.3.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1118) hide show
  1. package/NOTICE.md +6 -0
  2. package/dist/ai.cjs +6 -0
  3. package/dist/ai.js +3 -1
  4. package/dist/chat.cjs +2 -0
  5. package/dist/chat.d.ts +1 -0
  6. package/dist/chat.d.ts.map +1 -1
  7. package/dist/chat.js +2 -1
  8. package/dist/comments/CommentCard.cjs +37 -7
  9. package/dist/comments/CommentCard.cjs.map +1 -1
  10. package/dist/comments/CommentCard.d.ts +11 -1
  11. package/dist/comments/CommentCard.d.ts.map +1 -1
  12. package/dist/comments/CommentCard.js +37 -7
  13. package/dist/comments/CommentCard.js.map +1 -1
  14. package/dist/comments/CommentCardParts.cjs +9 -4
  15. package/dist/comments/CommentCardParts.cjs.map +1 -1
  16. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  17. package/dist/comments/CommentCardParts.js +9 -4
  18. package/dist/comments/CommentCardParts.js.map +1 -1
  19. package/dist/comments/CommentComposer.cjs +8 -8
  20. package/dist/comments/CommentComposer.cjs.map +1 -1
  21. package/dist/comments/CommentComposer.d.ts.map +1 -1
  22. package/dist/comments/CommentComposer.js +8 -8
  23. package/dist/comments/CommentComposer.js.map +1 -1
  24. package/dist/comments/CommentProvider.cjs +5 -1
  25. package/dist/comments/CommentProvider.cjs.map +1 -1
  26. package/dist/comments/CommentProvider.d.ts +1 -1
  27. package/dist/comments/CommentProvider.d.ts.map +1 -1
  28. package/dist/comments/CommentProvider.js +5 -1
  29. package/dist/comments/CommentProvider.js.map +1 -1
  30. package/dist/comments/CommentSidePanel.cjs +17 -11
  31. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  32. package/dist/comments/CommentSidePanel.d.ts +6 -0
  33. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  34. package/dist/comments/CommentSidePanel.js +17 -11
  35. package/dist/comments/CommentSidePanel.js.map +1 -1
  36. package/dist/comments/CommentThread.cjs +4 -1
  37. package/dist/comments/CommentThread.cjs.map +1 -1
  38. package/dist/comments/CommentThread.d.ts +4 -1
  39. package/dist/comments/CommentThread.d.ts.map +1 -1
  40. package/dist/comments/CommentThread.js +4 -1
  41. package/dist/comments/CommentThread.js.map +1 -1
  42. package/dist/comments/CommentThreadList.cjs +6 -3
  43. package/dist/comments/CommentThreadList.cjs.map +1 -1
  44. package/dist/comments/CommentThreadList.d.ts +7 -2
  45. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  46. package/dist/comments/CommentThreadList.js +6 -3
  47. package/dist/comments/CommentThreadList.js.map +1 -1
  48. package/dist/comments/MentionTextarea.cjs +1 -1
  49. package/dist/comments/MentionTextarea.cjs.map +1 -1
  50. package/dist/comments/MentionTextarea.d.ts.map +1 -1
  51. package/dist/comments/MentionTextarea.js +1 -1
  52. package/dist/comments/MentionTextarea.js.map +1 -1
  53. package/dist/comments/comment-assign.cjs +68 -0
  54. package/dist/comments/comment-assign.cjs.map +1 -0
  55. package/dist/comments/comment-assign.d.ts +31 -0
  56. package/dist/comments/comment-assign.d.ts.map +1 -0
  57. package/dist/comments/comment-assign.js +67 -0
  58. package/dist/comments/comment-assign.js.map +1 -0
  59. package/dist/comments/comment-types.cjs.map +1 -1
  60. package/dist/comments/comment-types.d.ts +39 -0
  61. package/dist/comments/comment-types.d.ts.map +1 -1
  62. package/dist/comments/comment-types.js.map +1 -1
  63. package/dist/comments/comment-utils.cjs +2 -0
  64. package/dist/comments/comment-utils.cjs.map +1 -1
  65. package/dist/comments/comment-utils.d.ts +2 -0
  66. package/dist/comments/comment-utils.d.ts.map +1 -1
  67. package/dist/comments/comment-utils.js +2 -0
  68. package/dist/comments/comment-utils.js.map +1 -1
  69. package/dist/comments.cjs +3 -0
  70. package/dist/comments.d.ts +1 -0
  71. package/dist/comments.d.ts.map +1 -1
  72. package/dist/comments.js +2 -1
  73. package/dist/components/ComboboxMenu.cjs +23 -13
  74. package/dist/components/ComboboxMenu.cjs.map +1 -1
  75. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  76. package/dist/components/ComboboxMenu.js +23 -13
  77. package/dist/components/ComboboxMenu.js.map +1 -1
  78. package/dist/components/ErrorWrapper.cjs +15 -4
  79. package/dist/components/ErrorWrapper.cjs.map +1 -1
  80. package/dist/components/ErrorWrapper.d.ts +7 -0
  81. package/dist/components/ErrorWrapper.d.ts.map +1 -1
  82. package/dist/components/ErrorWrapper.js +15 -4
  83. package/dist/components/ErrorWrapper.js.map +1 -1
  84. package/dist/components/FilterBar.cjs +29 -6
  85. package/dist/components/FilterBar.cjs.map +1 -1
  86. package/dist/components/FilterBar.d.ts +3 -1
  87. package/dist/components/FilterBar.d.ts.map +1 -1
  88. package/dist/components/FilterBar.js +29 -6
  89. package/dist/components/FilterBar.js.map +1 -1
  90. package/dist/components/ItemActions.cjs +1 -1
  91. package/dist/components/ItemActions.cjs.map +1 -1
  92. package/dist/components/ItemActions.js +1 -1
  93. package/dist/components/ItemActions.js.map +1 -1
  94. package/dist/components/ListMenu.cjs +33 -3
  95. package/dist/components/ListMenu.cjs.map +1 -1
  96. package/dist/components/ListMenu.d.ts +4 -1
  97. package/dist/components/ListMenu.d.ts.map +1 -1
  98. package/dist/components/ListMenu.js +33 -3
  99. package/dist/components/ListMenu.js.map +1 -1
  100. package/dist/components/ListMenuItems.cjs +80 -0
  101. package/dist/components/ListMenuItems.cjs.map +1 -0
  102. package/dist/components/ListMenuItems.d.ts +8 -0
  103. package/dist/components/ListMenuItems.d.ts.map +1 -0
  104. package/dist/components/ListMenuItems.js +80 -0
  105. package/dist/components/ListMenuItems.js.map +1 -0
  106. package/dist/components/LocalPathPicker.cjs +182 -0
  107. package/dist/components/LocalPathPicker.cjs.map +1 -0
  108. package/dist/components/LocalPathPicker.d.ts +11 -0
  109. package/dist/components/LocalPathPicker.d.ts.map +1 -0
  110. package/dist/components/LocalPathPicker.js +182 -0
  111. package/dist/components/LocalPathPicker.js.map +1 -0
  112. package/dist/components/LocalPathTree.cjs +89 -0
  113. package/dist/components/LocalPathTree.cjs.map +1 -0
  114. package/dist/components/LocalPathTree.d.ts +9 -0
  115. package/dist/components/LocalPathTree.d.ts.map +1 -0
  116. package/dist/components/LocalPathTree.js +89 -0
  117. package/dist/components/LocalPathTree.js.map +1 -0
  118. package/dist/components/RangeSlider.cjs +10 -30
  119. package/dist/components/RangeSlider.cjs.map +1 -1
  120. package/dist/components/RangeSlider.d.ts.map +1 -1
  121. package/dist/components/RangeSlider.js +4 -24
  122. package/dist/components/RangeSlider.js.map +1 -1
  123. package/dist/components/Slider.cjs +79 -0
  124. package/dist/components/Slider.cjs.map +1 -0
  125. package/dist/components/Slider.d.ts +23 -0
  126. package/dist/components/Slider.d.ts.map +1 -0
  127. package/dist/components/Slider.js +79 -0
  128. package/dist/components/Slider.js.map +1 -0
  129. package/dist/components/combobox-types.d.ts +4 -1
  130. package/dist/components/combobox-types.d.ts.map +1 -1
  131. package/dist/components/filter-bar-field-utils.cjs +3 -5
  132. package/dist/components/filter-bar-field-utils.cjs.map +1 -1
  133. package/dist/components/filter-bar-field-utils.d.ts.map +1 -1
  134. package/dist/components/filter-bar-field-utils.js +3 -5
  135. package/dist/components/filter-bar-field-utils.js.map +1 -1
  136. package/dist/components/filter-bar-tree-model.cjs +22 -0
  137. package/dist/components/filter-bar-tree-model.cjs.map +1 -0
  138. package/dist/components/filter-bar-tree-model.d.ts +33 -0
  139. package/dist/components/filter-bar-tree-model.d.ts.map +1 -0
  140. package/dist/components/filter-bar-tree-model.js +21 -0
  141. package/dist/components/filter-bar-tree-model.js.map +1 -0
  142. package/dist/components/filter-bar-tree.cjs +84 -0
  143. package/dist/components/filter-bar-tree.cjs.map +1 -0
  144. package/dist/components/filter-bar-tree.d.ts +7 -0
  145. package/dist/components/filter-bar-tree.d.ts.map +1 -0
  146. package/dist/components/filter-bar-tree.js +84 -0
  147. package/dist/components/filter-bar-tree.js.map +1 -0
  148. package/dist/components/json-schema-form-debug-glyph-map.cjs +2 -0
  149. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -1
  150. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -1
  151. package/dist/components/json-schema-form-debug-glyph-map.js +2 -0
  152. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -1
  153. package/dist/components/json-schema-form-help-links.cjs +18 -0
  154. package/dist/components/json-schema-form-help-links.cjs.map +1 -0
  155. package/dist/components/json-schema-form-help-links.d.ts +5 -0
  156. package/dist/components/json-schema-form-help-links.d.ts.map +1 -0
  157. package/dist/components/json-schema-form-help-links.js +18 -0
  158. package/dist/components/json-schema-form-help-links.js.map +1 -0
  159. package/dist/components/json-schema-form-help-model.cjs +7 -0
  160. package/dist/components/json-schema-form-help-model.cjs.map +1 -0
  161. package/dist/components/json-schema-form-help-model.d.ts +3 -0
  162. package/dist/components/json-schema-form-help-model.d.ts.map +1 -0
  163. package/dist/components/json-schema-form-help-model.js +7 -0
  164. package/dist/components/json-schema-form-help-model.js.map +1 -0
  165. package/dist/components/json-schema-form-json.cjs +48 -0
  166. package/dist/components/json-schema-form-json.cjs.map +1 -0
  167. package/dist/components/json-schema-form-json.d.ts +7 -0
  168. package/dist/components/json-schema-form-json.d.ts.map +1 -0
  169. package/dist/components/json-schema-form-json.js +48 -0
  170. package/dist/components/json-schema-form-json.js.map +1 -0
  171. package/dist/components/json-schema-form-layout.cjs +7 -5
  172. package/dist/components/json-schema-form-layout.cjs.map +1 -1
  173. package/dist/components/json-schema-form-layout.d.ts +2 -2
  174. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  175. package/dist/components/json-schema-form-layout.js +7 -5
  176. package/dist/components/json-schema-form-layout.js.map +1 -1
  177. package/dist/components/json-schema-form-object.cjs +2 -13
  178. package/dist/components/json-schema-form-object.cjs.map +1 -1
  179. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  180. package/dist/components/json-schema-form-object.js +2 -13
  181. package/dist/components/json-schema-form-object.js.map +1 -1
  182. package/dist/components/json-schema-form-refs.cjs +1 -1
  183. package/dist/components/json-schema-form-refs.cjs.map +1 -1
  184. package/dist/components/json-schema-form-refs.d.ts.map +1 -1
  185. package/dist/components/json-schema-form-refs.js +1 -1
  186. package/dist/components/json-schema-form-refs.js.map +1 -1
  187. package/dist/components/json-schema-form-render.cjs +20 -6
  188. package/dist/components/json-schema-form-render.cjs.map +1 -1
  189. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  190. package/dist/components/json-schema-form-render.js +20 -6
  191. package/dist/components/json-schema-form-render.js.map +1 -1
  192. package/dist/components/json-schema-form-resolve.cjs +22 -2
  193. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  194. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  195. package/dist/components/json-schema-form-resolve.js +22 -2
  196. package/dist/components/json-schema-form-resolve.js.map +1 -1
  197. package/dist/components/json-schema-form-types.d.ts +5 -1
  198. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  199. package/dist/components/json-schema-form-union-model.cjs +46 -0
  200. package/dist/components/json-schema-form-union-model.cjs.map +1 -0
  201. package/dist/components/json-schema-form-union-model.d.ts +6 -0
  202. package/dist/components/json-schema-form-union-model.d.ts.map +1 -0
  203. package/dist/components/json-schema-form-union-model.js +43 -0
  204. package/dist/components/json-schema-form-union-model.js.map +1 -0
  205. package/dist/components/json-schema-form-union.cjs +52 -0
  206. package/dist/components/json-schema-form-union.cjs.map +1 -0
  207. package/dist/components/json-schema-form-union.d.ts +7 -0
  208. package/dist/components/json-schema-form-union.d.ts.map +1 -0
  209. package/dist/components/json-schema-form-union.js +52 -0
  210. package/dist/components/json-schema-form-union.js.map +1 -0
  211. package/dist/components/list-menu-virtual.cjs +5 -0
  212. package/dist/components/list-menu-virtual.cjs.map +1 -0
  213. package/dist/components/list-menu-virtual.d.ts +12 -0
  214. package/dist/components/list-menu-virtual.d.ts.map +1 -0
  215. package/dist/components/list-menu-virtual.js +6 -0
  216. package/dist/components/list-menu-virtual.js.map +1 -0
  217. package/dist/components/local-path.cjs +12 -0
  218. package/dist/components/local-path.cjs.map +1 -0
  219. package/dist/components/local-path.d.ts +14 -0
  220. package/dist/components/local-path.d.ts.map +1 -0
  221. package/dist/components/local-path.js +12 -0
  222. package/dist/components/local-path.js.map +1 -0
  223. package/dist/components/slider-shared.cjs +32 -0
  224. package/dist/components/slider-shared.cjs.map +1 -0
  225. package/dist/components/slider-shared.d.ts +18 -0
  226. package/dist/components/slider-shared.d.ts.map +1 -0
  227. package/dist/components/slider-shared.js +27 -0
  228. package/dist/components/slider-shared.js.map +1 -0
  229. package/dist/components.cjs +8 -0
  230. package/dist/components.d.ts +6 -1
  231. package/dist/components.d.ts.map +1 -1
  232. package/dist/components.js +5 -1
  233. package/dist/connections/ConnectionsPage.cjs +51 -19
  234. package/dist/connections/ConnectionsPage.cjs.map +1 -1
  235. package/dist/connections/ConnectionsPage.d.ts +9 -1
  236. package/dist/connections/ConnectionsPage.d.ts.map +1 -1
  237. package/dist/connections/ConnectionsPage.js +52 -20
  238. package/dist/connections/ConnectionsPage.js.map +1 -1
  239. package/dist/connections/connectionDashboard.cjs +13 -8
  240. package/dist/connections/connectionDashboard.cjs.map +1 -1
  241. package/dist/connections/connectionDashboard.d.ts +8 -3
  242. package/dist/connections/connectionDashboard.d.ts.map +1 -1
  243. package/dist/connections/connectionDashboard.js +14 -9
  244. package/dist/connections/connectionDashboard.js.map +1 -1
  245. package/dist/connections/connectionDashboardModel.cjs.map +1 -1
  246. package/dist/connections/connectionDashboardModel.d.ts +4 -0
  247. package/dist/connections/connectionDashboardModel.d.ts.map +1 -1
  248. package/dist/connections/connectionDashboardModel.js.map +1 -1
  249. package/dist/connections/connectionDashboardRow.cjs +75 -55
  250. package/dist/connections/connectionDashboardRow.cjs.map +1 -1
  251. package/dist/connections/connectionDashboardRow.d.ts +3 -2
  252. package/dist/connections/connectionDashboardRow.d.ts.map +1 -1
  253. package/dist/connections/connectionDashboardRow.js +75 -55
  254. package/dist/connections/connectionDashboardRow.js.map +1 -1
  255. package/dist/connections/connectionNamespaceField.cjs +17 -0
  256. package/dist/connections/connectionNamespaceField.cjs.map +1 -0
  257. package/dist/connections/connectionNamespaceField.d.ts +10 -0
  258. package/dist/connections/connectionNamespaceField.d.ts.map +1 -0
  259. package/dist/connections/connectionNamespaceField.js +17 -0
  260. package/dist/connections/connectionNamespaceField.js.map +1 -0
  261. package/dist/connections/connectionSchemaFormExtensions.cjs +98 -0
  262. package/dist/connections/connectionSchemaFormExtensions.cjs.map +1 -0
  263. package/dist/connections/connectionSchemaFormExtensions.d.ts +41 -0
  264. package/dist/connections/connectionSchemaFormExtensions.d.ts.map +1 -0
  265. package/dist/connections/connectionSchemaFormExtensions.js +96 -0
  266. package/dist/connections/connectionSchemaFormExtensions.js.map +1 -0
  267. package/dist/connections/connectionsPageModel.cjs +11 -0
  268. package/dist/connections/connectionsPageModel.cjs.map +1 -1
  269. package/dist/connections/connectionsPageModel.d.ts +5 -0
  270. package/dist/connections/connectionsPageModel.d.ts.map +1 -1
  271. package/dist/connections/connectionsPageModel.js +11 -1
  272. package/dist/connections/connectionsPageModel.js.map +1 -1
  273. package/dist/connections.cjs +5 -0
  274. package/dist/connections.d.ts +2 -1
  275. package/dist/connections.d.ts.map +1 -1
  276. package/dist/connections.js +3 -2
  277. package/dist/data/AvatarBadge.cjs +3 -3
  278. package/dist/data/AvatarBadge.cjs.map +1 -1
  279. package/dist/data/AvatarBadge.js +3 -3
  280. package/dist/data/AvatarBadge.js.map +1 -1
  281. package/dist/data/CodeDiff.cjs +2 -0
  282. package/dist/data/CodeDiff.cjs.map +1 -1
  283. package/dist/data/CodeDiff.js +2 -0
  284. package/dist/data/CodeDiff.js.map +1 -1
  285. package/dist/data/DataTable.cjs +3 -2
  286. package/dist/data/DataTable.cjs.map +1 -1
  287. package/dist/data/DataTable.d.ts.map +1 -1
  288. package/dist/data/DataTable.js +3 -2
  289. package/dist/data/DataTable.js.map +1 -1
  290. package/dist/data/Gauge.cjs +1 -1
  291. package/dist/data/Gauge.cjs.map +1 -1
  292. package/dist/data/Gauge.js +1 -1
  293. package/dist/data/Gauge.js.map +1 -1
  294. package/dist/data/HighlightedTokens.cjs +2 -10
  295. package/dist/data/HighlightedTokens.cjs.map +1 -1
  296. package/dist/data/HighlightedTokens.d.ts.map +1 -1
  297. package/dist/data/HighlightedTokens.js +1 -9
  298. package/dist/data/HighlightedTokens.js.map +1 -1
  299. package/dist/data/Markdown.cjs +38 -11
  300. package/dist/data/Markdown.cjs.map +1 -1
  301. package/dist/data/Markdown.d.ts +9 -1
  302. package/dist/data/Markdown.d.ts.map +1 -1
  303. package/dist/data/Markdown.js +39 -12
  304. package/dist/data/Markdown.js.map +1 -1
  305. package/dist/data/MultiGaugeBar.cjs +157 -0
  306. package/dist/data/MultiGaugeBar.cjs.map +1 -0
  307. package/dist/data/MultiGaugeBar.d.ts +29 -0
  308. package/dist/data/MultiGaugeBar.d.ts.map +1 -0
  309. package/dist/data/MultiGaugeBar.js +157 -0
  310. package/dist/data/MultiGaugeBar.js.map +1 -0
  311. package/dist/data/OpenInFilesLink.cjs +27 -0
  312. package/dist/data/OpenInFilesLink.cjs.map +1 -0
  313. package/dist/data/OpenInFilesLink.d.ts +15 -0
  314. package/dist/data/OpenInFilesLink.d.ts.map +1 -0
  315. package/dist/data/OpenInFilesLink.js +27 -0
  316. package/dist/data/OpenInFilesLink.js.map +1 -0
  317. package/dist/data/ProgressBar.cjs +5 -3
  318. package/dist/data/ProgressBar.cjs.map +1 -1
  319. package/dist/data/ProgressBar.d.ts +5 -1
  320. package/dist/data/ProgressBar.d.ts.map +1 -1
  321. package/dist/data/ProgressBar.js +5 -3
  322. package/dist/data/ProgressBar.js.map +1 -1
  323. package/dist/data/ProgressBars.cjs +13 -5
  324. package/dist/data/ProgressBars.cjs.map +1 -1
  325. package/dist/data/ProgressBars.d.ts +6 -1
  326. package/dist/data/ProgressBars.d.ts.map +1 -1
  327. package/dist/data/ProgressBars.js +13 -5
  328. package/dist/data/ProgressBars.js.map +1 -1
  329. package/dist/data/Properties.cjs +3 -3
  330. package/dist/data/Properties.cjs.map +1 -1
  331. package/dist/data/Properties.js +3 -3
  332. package/dist/data/Properties.js.map +1 -1
  333. package/dist/data/TaskProgress.cjs +14 -6
  334. package/dist/data/TaskProgress.cjs.map +1 -1
  335. package/dist/data/TaskProgress.d.ts +3 -1
  336. package/dist/data/TaskProgress.d.ts.map +1 -1
  337. package/dist/data/TaskProgress.js +14 -6
  338. package/dist/data/TaskProgress.js.map +1 -1
  339. package/dist/data/TaskPrompts.cjs +96 -0
  340. package/dist/data/TaskPrompts.cjs.map +1 -0
  341. package/dist/data/TaskPrompts.d.ts +6 -0
  342. package/dist/data/TaskPrompts.d.ts.map +1 -0
  343. package/dist/data/TaskPrompts.js +96 -0
  344. package/dist/data/TaskPrompts.js.map +1 -0
  345. package/dist/data/TaskSnapshot.cjs.map +1 -1
  346. package/dist/data/TaskSnapshot.d.ts +3 -0
  347. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  348. package/dist/data/TaskSnapshot.js.map +1 -1
  349. package/dist/data/TimeseriesCoreBars.cjs +7 -3
  350. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  351. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  352. package/dist/data/TimeseriesCoreBars.js +8 -4
  353. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  354. package/dist/data/TimeseriesGauge.cjs +12 -5
  355. package/dist/data/TimeseriesGauge.cjs.map +1 -1
  356. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  357. package/dist/data/TimeseriesGauge.js +13 -6
  358. package/dist/data/TimeseriesGauge.js.map +1 -1
  359. package/dist/data/TimeseriesPanel.cjs +10 -9
  360. package/dist/data/TimeseriesPanel.cjs.map +1 -1
  361. package/dist/data/TimeseriesPanel.d.ts +1 -1
  362. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  363. package/dist/data/TimeseriesPanel.js +11 -10
  364. package/dist/data/TimeseriesPanel.js.map +1 -1
  365. package/dist/data/TimeseriesPanel.model.cjs +62 -10
  366. package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
  367. package/dist/data/TimeseriesPanel.model.d.ts +40 -1
  368. package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
  369. package/dist/data/TimeseriesPanel.model.js +62 -11
  370. package/dist/data/TimeseriesPanel.model.js.map +1 -1
  371. package/dist/data/WorkloadCard.cjs +7 -3
  372. package/dist/data/WorkloadCard.cjs.map +1 -1
  373. package/dist/data/WorkloadCard.d.ts +3 -1
  374. package/dist/data/WorkloadCard.d.ts.map +1 -1
  375. package/dist/data/WorkloadCard.js +7 -3
  376. package/dist/data/WorkloadCard.js.map +1 -1
  377. package/dist/data/WorkloadCard.model.cjs.map +1 -1
  378. package/dist/data/WorkloadCard.model.d.ts +2 -0
  379. package/dist/data/WorkloadCard.model.d.ts.map +1 -1
  380. package/dist/data/WorkloadCard.model.js.map +1 -1
  381. package/dist/data/ai/ChatWindow.placement.cjs +2 -1
  382. package/dist/data/ai/ChatWindow.placement.cjs.map +1 -1
  383. package/dist/data/ai/ChatWindow.placement.d.ts +1 -1
  384. package/dist/data/ai/ChatWindow.placement.d.ts.map +1 -1
  385. package/dist/data/ai/ChatWindow.placement.js +2 -1
  386. package/dist/data/ai/ChatWindow.placement.js.map +1 -1
  387. package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs +6 -3
  388. package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs.map +1 -1
  389. package/dist/data/ai/PromptCatalog/PromptLayerStrip.js +6 -3
  390. package/dist/data/ai/PromptCatalog/PromptLayerStrip.js.map +1 -1
  391. package/dist/data/ai/PromptCatalog/PromptPage.cjs +2 -1
  392. package/dist/data/ai/PromptCatalog/PromptPage.cjs.map +1 -1
  393. package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -1
  394. package/dist/data/ai/PromptCatalog/PromptPage.js +2 -1
  395. package/dist/data/ai/PromptCatalog/PromptPage.js.map +1 -1
  396. package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs +9 -6
  397. package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs.map +1 -1
  398. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -1
  399. package/dist/data/ai/PromptCatalog/PromptPageHeader.js +9 -6
  400. package/dist/data/ai/PromptCatalog/PromptPageHeader.js.map +1 -1
  401. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs +3 -3
  402. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs.map +1 -1
  403. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +2 -1
  404. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -1
  405. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js +3 -3
  406. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js.map +1 -1
  407. package/dist/data/ai/PromptCatalog/prompt-page-model.cjs +4 -3
  408. package/dist/data/ai/PromptCatalog/prompt-page-model.cjs.map +1 -1
  409. package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts +1 -1
  410. package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts.map +1 -1
  411. package/dist/data/ai/PromptCatalog/prompt-page-model.js +4 -3
  412. package/dist/data/ai/PromptCatalog/prompt-page-model.js.map +1 -1
  413. package/dist/data/ai/PromptCatalog/types.d.ts +1 -0
  414. package/dist/data/ai/PromptCatalog/types.d.ts.map +1 -1
  415. package/dist/data/ai/SpecRuntimeBar.cjs +2 -2
  416. package/dist/data/ai/SpecRuntimeBar.cjs.map +1 -1
  417. package/dist/data/ai/SpecRuntimeBar.d.ts +4 -1
  418. package/dist/data/ai/SpecRuntimeBar.d.ts.map +1 -1
  419. package/dist/data/ai/SpecRuntimeBar.js +2 -2
  420. package/dist/data/ai/SpecRuntimeBar.js.map +1 -1
  421. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +1 -1
  422. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
  423. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +1 -1
  424. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
  425. package/dist/data/ai/SpecRuntimeEditor.model.cjs +2 -2
  426. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  427. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +2 -2
  428. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  429. package/dist/data/ai/SpecRuntimeEditor.model.js +2 -2
  430. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  431. package/dist/data/ai/ThreadPicker.cjs +2 -2
  432. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  433. package/dist/data/ai/ThreadPicker.js +2 -2
  434. package/dist/data/ai/ThreadPicker.js.map +1 -1
  435. package/dist/data/ai/index.d.ts +2 -0
  436. package/dist/data/ai/index.d.ts.map +1 -1
  437. package/dist/data/ai/use-prompt-run-stream.cjs +126 -0
  438. package/dist/data/ai/use-prompt-run-stream.cjs.map +1 -0
  439. package/dist/data/ai/use-prompt-run-stream.d.ts +52 -0
  440. package/dist/data/ai/use-prompt-run-stream.d.ts.map +1 -0
  441. package/dist/data/ai/use-prompt-run-stream.js +126 -0
  442. package/dist/data/ai/use-prompt-run-stream.js.map +1 -0
  443. package/dist/data/cache-browser/CacheBrowser.cjs +1 -0
  444. package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -1
  445. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
  446. package/dist/data/cache-browser/CacheBrowser.js +1 -0
  447. package/dist/data/cache-browser/CacheBrowser.js.map +1 -1
  448. package/dist/data/charts/BarChart.cjs +194 -0
  449. package/dist/data/charts/BarChart.cjs.map +1 -0
  450. package/dist/data/charts/BarChart.d.ts +19 -0
  451. package/dist/data/charts/BarChart.d.ts.map +1 -0
  452. package/dist/data/charts/BarChart.js +194 -0
  453. package/dist/data/charts/BarChart.js.map +1 -0
  454. package/dist/data/charts/ChartLegend.cjs +54 -0
  455. package/dist/data/charts/ChartLegend.cjs.map +1 -0
  456. package/dist/data/charts/ChartLegend.d.ts +17 -0
  457. package/dist/data/charts/ChartLegend.d.ts.map +1 -0
  458. package/dist/data/charts/ChartLegend.js +54 -0
  459. package/dist/data/charts/ChartLegend.js.map +1 -0
  460. package/dist/data/charts/Sparkline.cjs +56 -0
  461. package/dist/data/charts/Sparkline.cjs.map +1 -0
  462. package/dist/data/charts/Sparkline.d.ts +15 -0
  463. package/dist/data/charts/Sparkline.d.ts.map +1 -0
  464. package/dist/data/charts/Sparkline.js +56 -0
  465. package/dist/data/charts/Sparkline.js.map +1 -0
  466. package/dist/data/charts/StackedBarChart.cjs +241 -0
  467. package/dist/data/charts/StackedBarChart.cjs.map +1 -0
  468. package/dist/data/charts/StackedBarChart.d.ts +20 -0
  469. package/dist/data/charts/StackedBarChart.d.ts.map +1 -0
  470. package/dist/data/charts/StackedBarChart.js +241 -0
  471. package/dist/data/charts/StackedBarChart.js.map +1 -0
  472. package/dist/data/charts/TrendChart.cjs +157 -0
  473. package/dist/data/charts/TrendChart.cjs.map +1 -0
  474. package/dist/data/charts/TrendChart.d.ts +20 -0
  475. package/dist/data/charts/TrendChart.d.ts.map +1 -0
  476. package/dist/data/charts/TrendChart.js +157 -0
  477. package/dist/data/charts/TrendChart.js.map +1 -0
  478. package/dist/data/charts/chart-marks.cjs +115 -0
  479. package/dist/data/charts/chart-marks.cjs.map +1 -0
  480. package/dist/data/charts/chart-marks.d.ts +39 -0
  481. package/dist/data/charts/chart-marks.d.ts.map +1 -0
  482. package/dist/data/charts/chart-marks.js +112 -0
  483. package/dist/data/charts/chart-marks.js.map +1 -0
  484. package/dist/data/charts/chart-palette.cjs +74 -0
  485. package/dist/data/charts/chart-palette.cjs.map +1 -0
  486. package/dist/data/charts/chart-palette.d.ts +58 -0
  487. package/dist/data/charts/chart-palette.d.ts.map +1 -0
  488. package/dist/data/charts/chart-palette.js +72 -0
  489. package/dist/data/charts/chart-palette.js.map +1 -0
  490. package/dist/data/charts/chart-scale.cjs +115 -0
  491. package/dist/data/charts/chart-scale.cjs.map +1 -0
  492. package/dist/data/charts/chart-scale.d.ts +41 -0
  493. package/dist/data/charts/chart-scale.d.ts.map +1 -0
  494. package/dist/data/charts/chart-scale.js +104 -0
  495. package/dist/data/charts/chart-scale.js.map +1 -0
  496. package/dist/data/charts/chart.test-utils.d.ts +7 -0
  497. package/dist/data/charts/chart.test-utils.d.ts.map +1 -0
  498. package/dist/data/charts/index.d.ts +7 -0
  499. package/dist/data/charts/index.d.ts.map +1 -0
  500. package/dist/data/chat/MessageActions.cjs +1 -1
  501. package/dist/data/chat/MessageActions.cjs.map +1 -1
  502. package/dist/data/chat/MessageActions.js +1 -1
  503. package/dist/data/chat/MessageActions.js.map +1 -1
  504. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +1 -1
  505. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +1 -1
  506. package/dist/data/diagnostics/DiagnosticsTree.cjs +1 -1
  507. package/dist/data/diagnostics/DiagnosticsTree.cjs.map +1 -1
  508. package/dist/data/diagnostics/DiagnosticsTree.js +1 -1
  509. package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -1
  510. package/dist/data/diagnostics/FrameSourceWindow.cjs +9 -2
  511. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  512. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  513. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  514. package/dist/data/diagnostics/FrameSourceWindow.js +9 -2
  515. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  516. package/dist/data/diagnostics/ProblemActions.cjs +37 -0
  517. package/dist/data/diagnostics/ProblemActions.cjs.map +1 -0
  518. package/dist/data/diagnostics/ProblemActions.d.ts +6 -0
  519. package/dist/data/diagnostics/ProblemActions.d.ts.map +1 -0
  520. package/dist/data/diagnostics/ProblemActions.js +37 -0
  521. package/dist/data/diagnostics/ProblemActions.js.map +1 -0
  522. package/dist/data/diagnostics/ProblemFacet.cjs +33 -0
  523. package/dist/data/diagnostics/ProblemFacet.cjs.map +1 -0
  524. package/dist/data/diagnostics/ProblemFacet.d.ts +9 -0
  525. package/dist/data/diagnostics/ProblemFacet.d.ts.map +1 -0
  526. package/dist/data/diagnostics/ProblemFacet.js +33 -0
  527. package/dist/data/diagnostics/ProblemFacet.js.map +1 -0
  528. package/dist/data/diagnostics/ProblemRow.cjs +62 -0
  529. package/dist/data/diagnostics/ProblemRow.cjs.map +1 -0
  530. package/dist/data/diagnostics/ProblemRow.d.ts +14 -0
  531. package/dist/data/diagnostics/ProblemRow.d.ts.map +1 -0
  532. package/dist/data/diagnostics/ProblemRow.js +62 -0
  533. package/dist/data/diagnostics/ProblemRow.js.map +1 -0
  534. package/dist/data/diagnostics/ProblemViewOptions.cjs +18 -0
  535. package/dist/data/diagnostics/ProblemViewOptions.cjs.map +1 -0
  536. package/dist/data/diagnostics/ProblemViewOptions.d.ts +6 -0
  537. package/dist/data/diagnostics/ProblemViewOptions.d.ts.map +1 -0
  538. package/dist/data/diagnostics/ProblemViewOptions.js +18 -0
  539. package/dist/data/diagnostics/ProblemViewOptions.js.map +1 -0
  540. package/dist/data/diagnostics/StackFrameRow.cjs +1 -1
  541. package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
  542. package/dist/data/diagnostics/StackFrameRow.js +1 -1
  543. package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
  544. package/dist/data/diagnostics/diagnostic-identity.cjs +14 -0
  545. package/dist/data/diagnostics/diagnostic-identity.cjs.map +1 -0
  546. package/dist/data/diagnostics/diagnostic-identity.d.ts +3 -0
  547. package/dist/data/diagnostics/diagnostic-identity.d.ts.map +1 -0
  548. package/dist/data/diagnostics/diagnostic-identity.js +14 -0
  549. package/dist/data/diagnostics/diagnostic-identity.js.map +1 -0
  550. package/dist/data/diagnostics/use-problem-expansion.cjs +16 -0
  551. package/dist/data/diagnostics/use-problem-expansion.cjs.map +1 -0
  552. package/dist/data/diagnostics/use-problem-expansion.d.ts +3 -0
  553. package/dist/data/diagnostics/use-problem-expansion.d.ts.map +1 -0
  554. package/dist/data/diagnostics/use-problem-expansion.js +16 -0
  555. package/dist/data/diagnostics/use-problem-expansion.js.map +1 -0
  556. package/dist/data/git/GitChangeList.cjs +9 -6
  557. package/dist/data/git/GitChangeList.cjs.map +1 -1
  558. package/dist/data/git/GitChangeList.d.ts +6 -0
  559. package/dist/data/git/GitChangeList.d.ts.map +1 -1
  560. package/dist/data/git/GitChangeList.js +9 -6
  561. package/dist/data/git/GitChangeList.js.map +1 -1
  562. package/dist/data/git/pickers/GitPickersDemo.d.ts.map +1 -1
  563. package/dist/data/git/pickers/ReferencePicker.cjs +1 -0
  564. package/dist/data/git/pickers/ReferencePicker.cjs.map +1 -1
  565. package/dist/data/git/pickers/ReferencePicker.js +1 -0
  566. package/dist/data/git/pickers/ReferencePicker.js.map +1 -1
  567. package/dist/data/lint/LintDetail.cjs +230 -189
  568. package/dist/data/lint/LintDetail.cjs.map +1 -1
  569. package/dist/data/lint/LintDetail.d.ts +25 -3
  570. package/dist/data/lint/LintDetail.d.ts.map +1 -1
  571. package/dist/data/lint/LintDetail.js +231 -192
  572. package/dist/data/lint/LintDetail.js.map +1 -1
  573. package/dist/data/lint/LintFilterBar.cjs +78 -83
  574. package/dist/data/lint/LintFilterBar.cjs.map +1 -1
  575. package/dist/data/lint/LintFilterBar.d.ts +23 -6
  576. package/dist/data/lint/LintFilterBar.d.ts.map +1 -1
  577. package/dist/data/lint/LintFilterBar.js +78 -85
  578. package/dist/data/lint/LintFilterBar.js.map +1 -1
  579. package/dist/data/lint/LintIgnoreMenu.cjs +59 -0
  580. package/dist/data/lint/LintIgnoreMenu.cjs.map +1 -0
  581. package/dist/data/lint/LintIgnoreMenu.d.ts +20 -0
  582. package/dist/data/lint/LintIgnoreMenu.d.ts.map +1 -0
  583. package/dist/data/lint/LintIgnoreMenu.js +58 -0
  584. package/dist/data/lint/LintIgnoreMenu.js.map +1 -0
  585. package/dist/data/lint/LintResults.cjs +59 -14
  586. package/dist/data/lint/LintResults.cjs.map +1 -1
  587. package/dist/data/lint/LintResults.d.ts +25 -1
  588. package/dist/data/lint/LintResults.d.ts.map +1 -1
  589. package/dist/data/lint/LintResults.fixtures.d.ts +19 -0
  590. package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -1
  591. package/dist/data/lint/LintResults.js +60 -15
  592. package/dist/data/lint/LintResults.js.map +1 -1
  593. package/dist/data/lint/LintTable.cjs +156 -0
  594. package/dist/data/lint/LintTable.cjs.map +1 -0
  595. package/dist/data/lint/LintTable.d.ts +13 -0
  596. package/dist/data/lint/LintTable.d.ts.map +1 -0
  597. package/dist/data/lint/LintTable.js +156 -0
  598. package/dist/data/lint/LintTable.js.map +1 -0
  599. package/dist/data/lint/LintTreeNode.cjs +42 -19
  600. package/dist/data/lint/LintTreeNode.cjs.map +1 -1
  601. package/dist/data/lint/LintTreeNode.d.ts +7 -2
  602. package/dist/data/lint/LintTreeNode.d.ts.map +1 -1
  603. package/dist/data/lint/LintTreeNode.js +44 -21
  604. package/dist/data/lint/LintTreeNode.js.map +1 -1
  605. package/dist/data/lint/ViolationSnippet.cjs +113 -0
  606. package/dist/data/lint/ViolationSnippet.cjs.map +1 -0
  607. package/dist/data/lint/ViolationSnippet.d.ts +20 -0
  608. package/dist/data/lint/ViolationSnippet.d.ts.map +1 -0
  609. package/dist/data/lint/ViolationSnippet.js +112 -0
  610. package/dist/data/lint/ViolationSnippet.js.map +1 -0
  611. package/dist/data/lint/actions.cjs +44 -16
  612. package/dist/data/lint/actions.cjs.map +1 -1
  613. package/dist/data/lint/actions.d.ts +7 -3
  614. package/dist/data/lint/actions.d.ts.map +1 -1
  615. package/dist/data/lint/actions.js +44 -16
  616. package/dist/data/lint/actions.js.map +1 -1
  617. package/dist/data/lint/grouping.cjs +105 -8
  618. package/dist/data/lint/grouping.cjs.map +1 -1
  619. package/dist/data/lint/grouping.d.ts +21 -1
  620. package/dist/data/lint/grouping.d.ts.map +1 -1
  621. package/dist/data/lint/grouping.js +105 -10
  622. package/dist/data/lint/grouping.js.map +1 -1
  623. package/dist/data/lint/ignore-menu-items.cjs +18 -0
  624. package/dist/data/lint/ignore-menu-items.cjs.map +1 -0
  625. package/dist/data/lint/ignore-menu-items.d.ts +6 -0
  626. package/dist/data/lint/ignore-menu-items.d.ts.map +1 -0
  627. package/dist/data/lint/ignore-menu-items.js +17 -0
  628. package/dist/data/lint/ignore-menu-items.js.map +1 -0
  629. package/dist/data/lint/index.d.ts +7 -5
  630. package/dist/data/lint/index.d.ts.map +1 -1
  631. package/dist/data/lint/stats.cjs +19 -4
  632. package/dist/data/lint/stats.cjs.map +1 -1
  633. package/dist/data/lint/stats.d.ts +13 -3
  634. package/dist/data/lint/stats.d.ts.map +1 -1
  635. package/dist/data/lint/stats.js +17 -5
  636. package/dist/data/lint/stats.js.map +1 -1
  637. package/dist/data/lint/types.cjs +8 -0
  638. package/dist/data/lint/types.cjs.map +1 -1
  639. package/dist/data/lint/types.d.ts +47 -0
  640. package/dist/data/lint/types.d.ts.map +1 -1
  641. package/dist/data/lint/types.js +8 -1
  642. package/dist/data/lint/types.js.map +1 -1
  643. package/dist/data/lint/violation-menu-items.cjs +31 -0
  644. package/dist/data/lint/violation-menu-items.cjs.map +1 -0
  645. package/dist/data/lint/violation-menu-items.d.ts +12 -0
  646. package/dist/data/lint/violation-menu-items.d.ts.map +1 -0
  647. package/dist/data/lint/violation-menu-items.js +31 -0
  648. package/dist/data/lint/violation-menu-items.js.map +1 -0
  649. package/dist/data/markdown-source-blocks.cjs +38 -0
  650. package/dist/data/markdown-source-blocks.cjs.map +1 -0
  651. package/dist/data/markdown-source-blocks.d.ts +32 -0
  652. package/dist/data/markdown-source-blocks.d.ts.map +1 -0
  653. package/dist/data/markdown-source-blocks.js +35 -0
  654. package/dist/data/markdown-source-blocks.js.map +1 -0
  655. package/dist/data/test-runner/FilterFacet.cjs +52 -0
  656. package/dist/data/test-runner/FilterFacet.cjs.map +1 -0
  657. package/dist/data/test-runner/FilterFacet.d.ts +13 -0
  658. package/dist/data/test-runner/FilterFacet.d.ts.map +1 -0
  659. package/dist/data/test-runner/FilterFacet.js +52 -0
  660. package/dist/data/test-runner/FilterFacet.js.map +1 -0
  661. package/dist/data/test-runner/MatrixMarks.cjs +19 -29
  662. package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
  663. package/dist/data/test-runner/MatrixMarks.d.ts +4 -4
  664. package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
  665. package/dist/data/test-runner/MatrixMarks.js +19 -29
  666. package/dist/data/test-runner/MatrixMarks.js.map +1 -1
  667. package/dist/data/test-runner/TestAttemptDetail.cjs +1 -1
  668. package/dist/data/test-runner/TestAttemptDetail.js +1 -1
  669. package/dist/data/test-runner/TestDetailPanel.cjs +11 -0
  670. package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
  671. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  672. package/dist/data/test-runner/TestDetailPanel.js +11 -0
  673. package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
  674. package/dist/data/test-runner/TestFilterBar.cjs +3 -44
  675. package/dist/data/test-runner/TestFilterBar.cjs.map +1 -1
  676. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  677. package/dist/data/test-runner/TestFilterBar.js +3 -44
  678. package/dist/data/test-runner/TestFilterBar.js.map +1 -1
  679. package/dist/data/test-runner/TestRunner.cjs +3 -1
  680. package/dist/data/test-runner/TestRunner.cjs.map +1 -1
  681. package/dist/data/test-runner/TestRunner.d.ts +7 -1
  682. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  683. package/dist/data/test-runner/TestRunner.js +3 -1
  684. package/dist/data/test-runner/TestRunner.js.map +1 -1
  685. package/dist/data/test-runner/context.cjs.map +1 -1
  686. package/dist/data/test-runner/context.d.ts +3 -0
  687. package/dist/data/test-runner/context.d.ts.map +1 -1
  688. package/dist/data/test-runner/context.js.map +1 -1
  689. package/dist/data/test-runner/types.d.ts +2 -0
  690. package/dist/data/test-runner/types.d.ts.map +1 -1
  691. package/dist/data/timeseries-query.cjs +98 -2
  692. package/dist/data/timeseries-query.cjs.map +1 -1
  693. package/dist/data/timeseries-query.d.ts +31 -5
  694. package/dist/data/timeseries-query.d.ts.map +1 -1
  695. package/dist/data/timeseries-query.js +98 -3
  696. package/dist/data/timeseries-query.js.map +1 -1
  697. package/dist/data/timeseries-stream-provider.cjs +38 -0
  698. package/dist/data/timeseries-stream-provider.cjs.map +1 -0
  699. package/dist/data/timeseries-stream-provider.d.ts +26 -0
  700. package/dist/data/timeseries-stream-provider.d.ts.map +1 -0
  701. package/dist/data/timeseries-stream-provider.js +38 -0
  702. package/dist/data/timeseries-stream-provider.js.map +1 -0
  703. package/dist/data/timeseries-stream.cjs +304 -0
  704. package/dist/data/timeseries-stream.cjs.map +1 -0
  705. package/dist/data/timeseries-stream.d.ts +81 -0
  706. package/dist/data/timeseries-stream.d.ts.map +1 -0
  707. package/dist/data/timeseries-stream.fixtures.d.ts +36 -0
  708. package/dist/data/timeseries-stream.fixtures.d.ts.map +1 -0
  709. package/dist/data/timeseries-stream.js +296 -0
  710. package/dist/data/timeseries-stream.js.map +1 -0
  711. package/dist/data/token-style.cjs +13 -0
  712. package/dist/data/token-style.cjs.map +1 -0
  713. package/dist/data/token-style.d.ts +4 -0
  714. package/dist/data/token-style.d.ts.map +1 -0
  715. package/dist/data/token-style.js +13 -0
  716. package/dist/data/token-style.js.map +1 -0
  717. package/dist/data/traces/ProcessTraceDetail.cjs +1 -1
  718. package/dist/data/traces/ProcessTraceDetail.js +1 -1
  719. package/dist/data/traces/index.d.ts +8 -1
  720. package/dist/data/traces/index.d.ts.map +1 -1
  721. package/dist/data/traces/otel/OperationList.cjs +64 -0
  722. package/dist/data/traces/otel/OperationList.cjs.map +1 -0
  723. package/dist/data/traces/otel/OperationList.d.ts +10 -0
  724. package/dist/data/traces/otel/OperationList.d.ts.map +1 -0
  725. package/dist/data/traces/otel/OperationList.js +64 -0
  726. package/dist/data/traces/otel/OperationList.js.map +1 -0
  727. package/dist/data/traces/otel/OtelTraceDetail.cjs +781 -0
  728. package/dist/data/traces/otel/OtelTraceDetail.cjs.map +1 -0
  729. package/dist/data/traces/otel/OtelTraceDetail.d.ts +7 -0
  730. package/dist/data/traces/otel/OtelTraceDetail.d.ts.map +1 -0
  731. package/dist/data/traces/otel/OtelTraceDetail.js +781 -0
  732. package/dist/data/traces/otel/OtelTraceDetail.js.map +1 -0
  733. package/dist/data/traces/otel/OtelTraceSearch.cjs +145 -0
  734. package/dist/data/traces/otel/OtelTraceSearch.cjs.map +1 -0
  735. package/dist/data/traces/otel/OtelTraceSearch.d.ts +16 -0
  736. package/dist/data/traces/otel/OtelTraceSearch.d.ts.map +1 -0
  737. package/dist/data/traces/otel/OtelTraceSearch.js +145 -0
  738. package/dist/data/traces/otel/OtelTraceSearch.js.map +1 -0
  739. package/dist/data/traces/otel/OtelTraceTable.cjs +47 -0
  740. package/dist/data/traces/otel/OtelTraceTable.cjs.map +1 -0
  741. package/dist/data/traces/otel/OtelTraceTable.d.ts +12 -0
  742. package/dist/data/traces/otel/OtelTraceTable.d.ts.map +1 -0
  743. package/dist/data/traces/otel/OtelTraceTable.js +47 -0
  744. package/dist/data/traces/otel/OtelTraceTable.js.map +1 -0
  745. package/dist/data/traces/otel/QueryBar.cjs +158 -0
  746. package/dist/data/traces/otel/QueryBar.cjs.map +1 -0
  747. package/dist/data/traces/otel/QueryBar.d.ts +12 -0
  748. package/dist/data/traces/otel/QueryBar.d.ts.map +1 -0
  749. package/dist/data/traces/otel/QueryBar.js +158 -0
  750. package/dist/data/traces/otel/QueryBar.js.map +1 -0
  751. package/dist/data/traces/otel/SpanCards.cjs +264 -0
  752. package/dist/data/traces/otel/SpanCards.cjs.map +1 -0
  753. package/dist/data/traces/otel/SpanCards.d.ts +17 -0
  754. package/dist/data/traces/otel/SpanCards.d.ts.map +1 -0
  755. package/dist/data/traces/otel/SpanCards.js +261 -0
  756. package/dist/data/traces/otel/SpanCards.js.map +1 -0
  757. package/dist/data/traces/otel/SpanCategory.cjs +18 -0
  758. package/dist/data/traces/otel/SpanCategory.cjs.map +1 -0
  759. package/dist/data/traces/otel/SpanCategory.d.ts +7 -0
  760. package/dist/data/traces/otel/SpanCategory.d.ts.map +1 -0
  761. package/dist/data/traces/otel/SpanCategory.js +18 -0
  762. package/dist/data/traces/otel/SpanCategory.js.map +1 -0
  763. package/dist/data/traces/otel/TraceResults.cjs +195 -0
  764. package/dist/data/traces/otel/TraceResults.cjs.map +1 -0
  765. package/dist/data/traces/otel/TraceResults.d.ts +19 -0
  766. package/dist/data/traces/otel/TraceResults.d.ts.map +1 -0
  767. package/dist/data/traces/otel/TraceResults.js +193 -0
  768. package/dist/data/traces/otel/TraceResults.js.map +1 -0
  769. package/dist/data/traces/otel/api.cjs +36 -0
  770. package/dist/data/traces/otel/api.cjs.map +1 -0
  771. package/dist/data/traces/otel/api.d.ts +87 -0
  772. package/dist/data/traces/otel/api.d.ts.map +1 -0
  773. package/dist/data/traces/otel/api.js +33 -0
  774. package/dist/data/traces/otel/api.js.map +1 -0
  775. package/dist/data/traces/otel/fixtures.d.ts +4 -0
  776. package/dist/data/traces/otel/fixtures.d.ts.map +1 -0
  777. package/dist/data/traces/otel/metrics.cjs +7 -0
  778. package/dist/data/traces/otel/metrics.cjs.map +1 -0
  779. package/dist/data/traces/otel/metrics.d.ts +2 -0
  780. package/dist/data/traces/otel/metrics.d.ts.map +1 -0
  781. package/dist/data/traces/otel/metrics.js +7 -0
  782. package/dist/data/traces/otel/metrics.js.map +1 -0
  783. package/dist/data/traces/otel/model.cjs +167 -0
  784. package/dist/data/traces/otel/model.cjs.map +1 -0
  785. package/dist/data/traces/otel/model.d.ts +81 -0
  786. package/dist/data/traces/otel/model.d.ts.map +1 -0
  787. package/dist/data/traces/otel/model.js +154 -0
  788. package/dist/data/traces/otel/model.js.map +1 -0
  789. package/dist/data/traces/otel/query.cjs +90 -0
  790. package/dist/data/traces/otel/query.cjs.map +1 -0
  791. package/dist/data/traces/otel/query.d.ts +20 -0
  792. package/dist/data/traces/otel/query.d.ts.map +1 -0
  793. package/dist/data/traces/otel/query.js +86 -0
  794. package/dist/data/traces/otel/query.js.map +1 -0
  795. package/dist/data/traces/otel/result-model.cjs +25 -0
  796. package/dist/data/traces/otel/result-model.cjs.map +1 -0
  797. package/dist/data/traces/otel/result-model.d.ts +5 -0
  798. package/dist/data/traces/otel/result-model.d.ts.map +1 -0
  799. package/dist/data/traces/otel/result-model.js +24 -0
  800. package/dist/data/traces/otel/result-model.js.map +1 -0
  801. package/dist/data/traces/otel/source.cjs +11 -0
  802. package/dist/data/traces/otel/source.cjs.map +1 -0
  803. package/dist/data/traces/otel/source.d.ts +5 -0
  804. package/dist/data/traces/otel/source.d.ts.map +1 -0
  805. package/dist/data/traces/otel/source.js +10 -0
  806. package/dist/data/traces/otel/source.js.map +1 -0
  807. package/dist/data/traces/otel/span-traces.cjs +39 -0
  808. package/dist/data/traces/otel/span-traces.cjs.map +1 -0
  809. package/dist/data/traces/otel/span-traces.d.ts +3 -0
  810. package/dist/data/traces/otel/span-traces.d.ts.map +1 -0
  811. package/dist/data/traces/otel/span-traces.js +39 -0
  812. package/dist/data/traces/otel/span-traces.js.map +1 -0
  813. package/dist/data/use-data-table-virtual.d.ts +1 -1
  814. package/dist/data/version-info.cjs +3 -3
  815. package/dist/data/version-info.js +3 -3
  816. package/dist/data/workload-panel/MemoryStack.cjs +49 -0
  817. package/dist/data/workload-panel/MemoryStack.cjs.map +1 -0
  818. package/dist/data/workload-panel/MemoryStack.d.ts +11 -0
  819. package/dist/data/workload-panel/MemoryStack.d.ts.map +1 -0
  820. package/dist/data/workload-panel/MemoryStack.js +48 -0
  821. package/dist/data/workload-panel/MemoryStack.js.map +1 -0
  822. package/dist/data/workload-panel/Metrics.cjs +197 -0
  823. package/dist/data/workload-panel/Metrics.cjs.map +1 -0
  824. package/dist/data/workload-panel/Metrics.d.ts +11 -0
  825. package/dist/data/workload-panel/Metrics.d.ts.map +1 -0
  826. package/dist/data/workload-panel/Metrics.js +196 -0
  827. package/dist/data/workload-panel/Metrics.js.map +1 -0
  828. package/dist/data/workload-panel/WorkloadPanel.cjs +66 -0
  829. package/dist/data/workload-panel/WorkloadPanel.cjs.map +1 -0
  830. package/dist/data/workload-panel/WorkloadPanel.d.ts +3 -0
  831. package/dist/data/workload-panel/WorkloadPanel.d.ts.map +1 -0
  832. package/dist/data/workload-panel/WorkloadPanel.js +66 -0
  833. package/dist/data/workload-panel/WorkloadPanel.js.map +1 -0
  834. package/dist/data/workload-panel/fixtures.d.ts +60 -0
  835. package/dist/data/workload-panel/fixtures.d.ts.map +1 -0
  836. package/dist/data/workload-panel/model.cjs +137 -0
  837. package/dist/data/workload-panel/model.cjs.map +1 -0
  838. package/dist/data/workload-panel/model.d.ts +53 -0
  839. package/dist/data/workload-panel/model.d.ts.map +1 -0
  840. package/dist/data/workload-panel/model.js +133 -0
  841. package/dist/data/workload-panel/model.js.map +1 -0
  842. package/dist/data/workload-panel/types.d.ts +56 -0
  843. package/dist/data/workload-panel/types.d.ts.map +1 -0
  844. package/dist/data.cjs +68 -6
  845. package/dist/data.d.ts +9 -1
  846. package/dist/data.d.ts.map +1 -1
  847. package/dist/data.js +32 -10
  848. package/dist/file-findings/AnnotatedCode.cjs +243 -0
  849. package/dist/file-findings/AnnotatedCode.cjs.map +1 -0
  850. package/dist/file-findings/AnnotatedCode.d.ts +30 -0
  851. package/dist/file-findings/AnnotatedCode.d.ts.map +1 -0
  852. package/dist/file-findings/AnnotatedCode.js +243 -0
  853. package/dist/file-findings/AnnotatedCode.js.map +1 -0
  854. package/dist/file-findings/FileFindingsView.cjs +213 -0
  855. package/dist/file-findings/FileFindingsView.cjs.map +1 -0
  856. package/dist/file-findings/FileFindingsView.d.ts +35 -0
  857. package/dist/file-findings/FileFindingsView.d.ts.map +1 -0
  858. package/dist/file-findings/FileFindingsView.js +213 -0
  859. package/dist/file-findings/FileFindingsView.js.map +1 -0
  860. package/dist/file-findings/LazyAnnotatedCode.cjs +22 -0
  861. package/dist/file-findings/LazyAnnotatedCode.cjs.map +1 -0
  862. package/dist/file-findings/LazyAnnotatedCode.d.ts +5 -0
  863. package/dist/file-findings/LazyAnnotatedCode.d.ts.map +1 -0
  864. package/dist/file-findings/LazyAnnotatedCode.js +22 -0
  865. package/dist/file-findings/LazyAnnotatedCode.js.map +1 -0
  866. package/dist/file-findings/adapters.cjs +155 -0
  867. package/dist/file-findings/adapters.cjs.map +1 -0
  868. package/dist/file-findings/adapters.d.ts +24 -0
  869. package/dist/file-findings/adapters.d.ts.map +1 -0
  870. package/dist/file-findings/adapters.js +153 -0
  871. package/dist/file-findings/adapters.js.map +1 -0
  872. package/dist/file-findings/file-review/CommentDraft.cjs +97 -0
  873. package/dist/file-findings/file-review/CommentDraft.cjs.map +1 -0
  874. package/dist/file-findings/file-review/CommentDraft.d.ts +25 -0
  875. package/dist/file-findings/file-review/CommentDraft.d.ts.map +1 -0
  876. package/dist/file-findings/file-review/CommentDraft.js +97 -0
  877. package/dist/file-findings/file-review/CommentDraft.js.map +1 -0
  878. package/dist/file-findings/file-review/FileReview.cjs +863 -0
  879. package/dist/file-findings/file-review/FileReview.cjs.map +1 -0
  880. package/dist/file-findings/file-review/FileReview.d.ts +79 -0
  881. package/dist/file-findings/file-review/FileReview.d.ts.map +1 -0
  882. package/dist/file-findings/file-review/FileReview.fixtures.d.ts +25 -0
  883. package/dist/file-findings/file-review/FileReview.fixtures.d.ts.map +1 -0
  884. package/dist/file-findings/file-review/FileReview.js +863 -0
  885. package/dist/file-findings/file-review/FileReview.js.map +1 -0
  886. package/dist/file-findings/file-review/InlineAuthors.cjs +77 -0
  887. package/dist/file-findings/file-review/InlineAuthors.cjs.map +1 -0
  888. package/dist/file-findings/file-review/InlineAuthors.d.ts +9 -0
  889. package/dist/file-findings/file-review/InlineAuthors.d.ts.map +1 -0
  890. package/dist/file-findings/file-review/InlineAuthors.js +77 -0
  891. package/dist/file-findings/file-review/InlineAuthors.js.map +1 -0
  892. package/dist/file-findings/file-review/InlineThread.cjs +77 -0
  893. package/dist/file-findings/file-review/InlineThread.cjs.map +1 -0
  894. package/dist/file-findings/file-review/InlineThread.d.ts +27 -0
  895. package/dist/file-findings/file-review/InlineThread.d.ts.map +1 -0
  896. package/dist/file-findings/file-review/InlineThread.js +77 -0
  897. package/dist/file-findings/file-review/InlineThread.js.map +1 -0
  898. package/dist/file-findings/file-review/ProblemsList.cjs +164 -0
  899. package/dist/file-findings/file-review/ProblemsList.cjs.map +1 -0
  900. package/dist/file-findings/file-review/ProblemsList.d.ts +15 -0
  901. package/dist/file-findings/file-review/ProblemsList.d.ts.map +1 -0
  902. package/dist/file-findings/file-review/ProblemsList.js +164 -0
  903. package/dist/file-findings/file-review/ProblemsList.js.map +1 -0
  904. package/dist/file-findings/file-review/SourceView.cjs +179 -0
  905. package/dist/file-findings/file-review/SourceView.cjs.map +1 -0
  906. package/dist/file-findings/file-review/SourceView.d.ts +29 -0
  907. package/dist/file-findings/file-review/SourceView.d.ts.map +1 -0
  908. package/dist/file-findings/file-review/SourceView.js +179 -0
  909. package/dist/file-findings/file-review/SourceView.js.map +1 -0
  910. package/dist/file-findings/file-review/blame.cjs +35 -0
  911. package/dist/file-findings/file-review/blame.cjs.map +1 -0
  912. package/dist/file-findings/file-review/blame.d.ts +28 -0
  913. package/dist/file-findings/file-review/blame.d.ts.map +1 -0
  914. package/dist/file-findings/file-review/blame.js +33 -0
  915. package/dist/file-findings/file-review/blame.js.map +1 -0
  916. package/dist/file-findings/file-review/geometry.cjs +101 -0
  917. package/dist/file-findings/file-review/geometry.cjs.map +1 -0
  918. package/dist/file-findings/file-review/geometry.d.ts +45 -0
  919. package/dist/file-findings/file-review/geometry.d.ts.map +1 -0
  920. package/dist/file-findings/file-review/geometry.js +98 -0
  921. package/dist/file-findings/file-review/geometry.js.map +1 -0
  922. package/dist/file-findings/file-review/hooks.cjs +101 -0
  923. package/dist/file-findings/file-review/hooks.cjs.map +1 -0
  924. package/dist/file-findings/file-review/hooks.d.ts +22 -0
  925. package/dist/file-findings/file-review/hooks.d.ts.map +1 -0
  926. package/dist/file-findings/file-review/hooks.js +99 -0
  927. package/dist/file-findings/file-review/hooks.js.map +1 -0
  928. package/dist/file-findings/file-review/marks.cjs +52 -0
  929. package/dist/file-findings/file-review/marks.cjs.map +1 -0
  930. package/dist/file-findings/file-review/marks.d.ts +23 -0
  931. package/dist/file-findings/file-review/marks.d.ts.map +1 -0
  932. package/dist/file-findings/file-review/marks.js +47 -0
  933. package/dist/file-findings/file-review/marks.js.map +1 -0
  934. package/dist/file-findings/file-review/problem-filters.cjs +14 -0
  935. package/dist/file-findings/file-review/problem-filters.cjs.map +1 -0
  936. package/dist/file-findings/file-review/problem-filters.d.ts +10 -0
  937. package/dist/file-findings/file-review/problem-filters.d.ts.map +1 -0
  938. package/dist/file-findings/file-review/problem-filters.js +13 -0
  939. package/dist/file-findings/file-review/problem-filters.js.map +1 -0
  940. package/dist/file-findings/file-review/quote-anchor.cjs +234 -0
  941. package/dist/file-findings/file-review/quote-anchor.cjs.map +1 -0
  942. package/dist/file-findings/file-review/quote-anchor.d.ts +54 -0
  943. package/dist/file-findings/file-review/quote-anchor.d.ts.map +1 -0
  944. package/dist/file-findings/file-review/quote-anchor.js +226 -0
  945. package/dist/file-findings/file-review/quote-anchor.js.map +1 -0
  946. package/dist/file-findings/file-review/source-anchor.cjs +104 -0
  947. package/dist/file-findings/file-review/source-anchor.cjs.map +1 -0
  948. package/dist/file-findings/file-review/source-anchor.d.ts +27 -0
  949. package/dist/file-findings/file-review/source-anchor.d.ts.map +1 -0
  950. package/dist/file-findings/file-review/source-anchor.js +99 -0
  951. package/dist/file-findings/file-review/source-anchor.js.map +1 -0
  952. package/dist/file-findings/file-review/source-marks.cjs +71 -0
  953. package/dist/file-findings/file-review/source-marks.cjs.map +1 -0
  954. package/dist/file-findings/file-review/source-marks.d.ts +27 -0
  955. package/dist/file-findings/file-review/source-marks.d.ts.map +1 -0
  956. package/dist/file-findings/file-review/source-marks.js +68 -0
  957. package/dist/file-findings/file-review/source-marks.js.map +1 -0
  958. package/dist/file-findings/findings-comments.cjs +136 -0
  959. package/dist/file-findings/findings-comments.cjs.map +1 -0
  960. package/dist/file-findings/findings-comments.d.ts +28 -0
  961. package/dist/file-findings/findings-comments.d.ts.map +1 -0
  962. package/dist/file-findings/findings-comments.js +131 -0
  963. package/dist/file-findings/findings-comments.js.map +1 -0
  964. package/dist/file-findings/findings-languages.cjs +53 -0
  965. package/dist/file-findings/findings-languages.cjs.map +1 -0
  966. package/dist/file-findings/findings-languages.d.ts +11 -0
  967. package/dist/file-findings/findings-languages.d.ts.map +1 -0
  968. package/dist/file-findings/findings-languages.js +53 -0
  969. package/dist/file-findings/findings-languages.js.map +1 -0
  970. package/dist/file-findings/mdx-source.cjs +48 -0
  971. package/dist/file-findings/mdx-source.cjs.map +1 -0
  972. package/dist/file-findings/mdx-source.d.ts +7 -0
  973. package/dist/file-findings/mdx-source.d.ts.map +1 -0
  974. package/dist/file-findings/mdx-source.js +48 -0
  975. package/dist/file-findings/mdx-source.js.map +1 -0
  976. package/dist/file-findings/monaco-language.cjs +73 -0
  977. package/dist/file-findings/monaco-language.cjs.map +1 -0
  978. package/dist/file-findings/monaco-language.d.ts +11 -0
  979. package/dist/file-findings/monaco-language.d.ts.map +1 -0
  980. package/dist/file-findings/monaco-language.js +72 -0
  981. package/dist/file-findings/monaco-language.js.map +1 -0
  982. package/dist/file-findings/severity-counts.cjs +20 -0
  983. package/dist/file-findings/severity-counts.cjs.map +1 -0
  984. package/dist/file-findings/severity-counts.d.ts +5 -0
  985. package/dist/file-findings/severity-counts.d.ts.map +1 -0
  986. package/dist/file-findings/severity-counts.js +19 -0
  987. package/dist/file-findings/severity-counts.js.map +1 -0
  988. package/dist/file-findings/types.cjs +12 -0
  989. package/dist/file-findings/types.cjs.map +1 -0
  990. package/dist/file-findings/types.d.ts +43 -0
  991. package/dist/file-findings/types.d.ts.map +1 -0
  992. package/dist/file-findings/types.js +11 -0
  993. package/dist/file-findings/types.js.map +1 -0
  994. package/dist/file-findings.cjs +47 -0
  995. package/dist/file-findings.d.ts +15 -0
  996. package/dist/file-findings.d.ts.map +1 -0
  997. package/dist/file-findings.js +15 -0
  998. package/dist/hooks/event-hub.cjs +22 -8
  999. package/dist/hooks/event-hub.cjs.map +1 -1
  1000. package/dist/hooks/event-hub.d.ts.map +1 -1
  1001. package/dist/hooks/event-hub.js +22 -8
  1002. package/dist/hooks/event-hub.js.map +1 -1
  1003. package/dist/icons/components/UiBrowser.cjs +51 -0
  1004. package/dist/icons/components/UiBrowser.cjs.map +1 -0
  1005. package/dist/icons/components/UiBrowser.d.ts +15 -0
  1006. package/dist/icons/components/UiBrowser.d.ts.map +1 -0
  1007. package/dist/icons/components/UiBrowser.js +48 -0
  1008. package/dist/icons/components/UiBrowser.js.map +1 -0
  1009. package/dist/icons/components/UiCreditCard.cjs +51 -0
  1010. package/dist/icons/components/UiCreditCard.cjs.map +1 -0
  1011. package/dist/icons/components/UiCreditCard.d.ts +15 -0
  1012. package/dist/icons/components/UiCreditCard.d.ts.map +1 -0
  1013. package/dist/icons/components/UiCreditCard.js +48 -0
  1014. package/dist/icons/components/UiCreditCard.js.map +1 -0
  1015. package/dist/icons/components/UiShoppingCart.cjs +51 -0
  1016. package/dist/icons/components/UiShoppingCart.cjs.map +1 -0
  1017. package/dist/icons/components/UiShoppingCart.d.ts +15 -0
  1018. package/dist/icons/components/UiShoppingCart.d.ts.map +1 -0
  1019. package/dist/icons/components/UiShoppingCart.js +48 -0
  1020. package/dist/icons/components/UiShoppingCart.js.map +1 -0
  1021. package/dist/icons/index.d.ts +6 -0
  1022. package/dist/icons/index.d.ts.map +1 -1
  1023. package/dist/icons/registry.cjs +6 -0
  1024. package/dist/icons/registry.cjs.map +1 -1
  1025. package/dist/icons/registry.d.ts.map +1 -1
  1026. package/dist/icons/registry.js +6 -0
  1027. package/dist/icons/registry.js.map +1 -1
  1028. package/dist/icons.cjs +9 -0
  1029. package/dist/icons.js +4 -1
  1030. package/dist/index.cjs +86 -7
  1031. package/dist/index.d.ts +1 -0
  1032. package/dist/index.d.ts.map +1 -1
  1033. package/dist/index.js +40 -12
  1034. package/dist/layout/AppShell.cjs +37 -21
  1035. package/dist/layout/AppShell.cjs.map +1 -1
  1036. package/dist/layout/AppShell.d.ts +13 -2
  1037. package/dist/layout/AppShell.d.ts.map +1 -1
  1038. package/dist/layout/AppShell.js +37 -21
  1039. package/dist/layout/AppShell.js.map +1 -1
  1040. package/dist/layout/AppShell.nav.cjs +7 -6
  1041. package/dist/layout/AppShell.nav.cjs.map +1 -1
  1042. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  1043. package/dist/layout/AppShell.nav.js +7 -6
  1044. package/dist/layout/AppShell.nav.js.map +1 -1
  1045. package/dist/layout/SplitPane.cjs +16 -6
  1046. package/dist/layout/SplitPane.cjs.map +1 -1
  1047. package/dist/layout/SplitPane.d.ts +12 -2
  1048. package/dist/layout/SplitPane.d.ts.map +1 -1
  1049. package/dist/layout/SplitPane.js +16 -6
  1050. package/dist/layout/SplitPane.js.map +1 -1
  1051. package/dist/layout/Workspace.cjs +37 -33
  1052. package/dist/layout/Workspace.cjs.map +1 -1
  1053. package/dist/layout/Workspace.d.ts.map +1 -1
  1054. package/dist/layout/Workspace.js +37 -33
  1055. package/dist/layout/Workspace.js.map +1 -1
  1056. package/dist/layout/Workspace.regions.cjs +3 -3
  1057. package/dist/layout/Workspace.regions.cjs.map +1 -1
  1058. package/dist/layout/Workspace.regions.js +3 -3
  1059. package/dist/layout/Workspace.regions.js.map +1 -1
  1060. package/dist/lib/breakpoints.cjs +102 -0
  1061. package/dist/lib/breakpoints.cjs.map +1 -0
  1062. package/dist/lib/breakpoints.d.ts +36 -0
  1063. package/dist/lib/breakpoints.d.ts.map +1 -0
  1064. package/dist/lib/breakpoints.js +99 -0
  1065. package/dist/lib/breakpoints.js.map +1 -0
  1066. package/dist/lib/combobox.cjs +2 -1
  1067. package/dist/lib/combobox.cjs.map +1 -1
  1068. package/dist/lib/combobox.d.ts +1 -1
  1069. package/dist/lib/combobox.d.ts.map +1 -1
  1070. package/dist/lib/combobox.js +2 -1
  1071. package/dist/lib/combobox.js.map +1 -1
  1072. package/dist/lib/path-tree.cjs +21 -0
  1073. package/dist/lib/path-tree.cjs.map +1 -1
  1074. package/dist/lib/path-tree.d.ts +15 -0
  1075. package/dist/lib/path-tree.d.ts.map +1 -1
  1076. package/dist/lib/path-tree.js +21 -1
  1077. package/dist/lib/path-tree.js.map +1 -1
  1078. package/dist/overlay/Modal.cjs +2 -1
  1079. package/dist/overlay/Modal.cjs.map +1 -1
  1080. package/dist/overlay/Modal.d.ts.map +1 -1
  1081. package/dist/overlay/Modal.js +2 -1
  1082. package/dist/overlay/Modal.js.map +1 -1
  1083. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  1084. package/dist/profiles/editor/profileEditor.cjs +1 -1
  1085. package/dist/profiles/editor/profileEditor.cjs.map +1 -1
  1086. package/dist/profiles/editor/profileEditor.js +1 -1
  1087. package/dist/profiles/editor/profileEditor.js.map +1 -1
  1088. package/dist/profiles/editor/profileEditorSections.cjs +6 -2
  1089. package/dist/profiles/editor/profileEditorSections.cjs.map +1 -1
  1090. package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -1
  1091. package/dist/profiles/editor/profileEditorSections.js +6 -2
  1092. package/dist/profiles/editor/profileEditorSections.js.map +1 -1
  1093. package/dist/profiles/query/prometheusResults.cjs +24 -36
  1094. package/dist/profiles/query/prometheusResults.cjs.map +1 -1
  1095. package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
  1096. package/dist/profiles/query/prometheusResults.js +24 -36
  1097. package/dist/profiles/query/prometheusResults.js.map +1 -1
  1098. package/dist/rpc/CommandForm.cjs +1 -1
  1099. package/dist/rpc/CommandForm.cjs.map +1 -1
  1100. package/dist/rpc/CommandForm.js +1 -1
  1101. package/dist/rpc/CommandForm.js.map +1 -1
  1102. package/dist/rpc/classify.cjs +1 -1
  1103. package/dist/rpc/classify.cjs.map +1 -1
  1104. package/dist/rpc/classify.d.ts.map +1 -1
  1105. package/dist/rpc/classify.js +1 -1
  1106. package/dist/rpc/classify.js.map +1 -1
  1107. package/dist/rpc/useOperations.d.ts +24 -24
  1108. package/dist/rpc.cjs +0 -2
  1109. package/dist/rpc.d.ts +0 -1
  1110. package/dist/rpc.d.ts.map +1 -1
  1111. package/dist/rpc.js +1 -2
  1112. package/dist/styles.css +1 -1
  1113. package/dist/utils.cjs +6 -0
  1114. package/dist/utils.d.ts +2 -1
  1115. package/dist/utils.d.ts.map +1 -1
  1116. package/dist/utils.js +3 -2
  1117. package/package.json +9 -3
  1118. package/schemas/json-schema-form.schema.json +9 -1
@@ -0,0 +1,234 @@
1
+ // src/file-findings/file-review/quote-anchor.ts
2
+ var QUOTE_PREFIX = "q:";
3
+ var SOURCE_BLOCK = "[data-source-start]";
4
+ var HEADING = /^h([1-6])$/;
5
+ /** Context words taken on each side to start with; grown until the anchor is unique. */
6
+ var MIN_CONTEXT_WORDS = 2;
7
+ function quoteAnchor(locator) {
8
+ return `q:${JSON.stringify([
9
+ locator.path,
10
+ locator.prefix,
11
+ locator.quote,
12
+ locator.suffix
13
+ ])}`;
14
+ }
15
+ /** The locator a `q:` anchor encodes; throws for a malformed one. */
16
+ function parseQuoteAnchor(anchor) {
17
+ if (!anchor.startsWith("q:")) throw new Error(`not a quote anchor: ${JSON.stringify(anchor)}`);
18
+ const parsed = JSON.parse(anchor.slice(2));
19
+ const [path, prefix, quote, suffix] = Array.isArray(parsed) ? parsed : [];
20
+ if (!Array.isArray(path) || !path.every((heading) => typeof heading === "string") || typeof prefix !== "string" || typeof quote !== "string" || typeof suffix !== "string") throw new Error(`malformed quote anchor ${JSON.stringify(anchor)}`);
21
+ return {
22
+ path,
23
+ prefix,
24
+ quote,
25
+ suffix
26
+ };
27
+ }
28
+ /**
29
+ * Every top-level block of rendered markdown (`Markdown sourceBlocks`) in
30
+ * document order, with the headings above it: its table-of-contents path.
31
+ */
32
+ function markdownOutline(root) {
33
+ const stack = [];
34
+ return [...root.querySelectorAll(SOURCE_BLOCK)].filter((block) => !block.parentElement?.closest(SOURCE_BLOCK)).map((block) => {
35
+ const level = HEADING.exec(block.tagName.toLowerCase())?.[1];
36
+ if (level) {
37
+ while (stack.length > 0 && (stack.at(-1)?.level ?? 0) >= Number(level)) stack.pop();
38
+ const text = blockText(block).replace(/\s+/g, " ").trim().slice(0, 200);
39
+ stack.push({
40
+ level: Number(level),
41
+ text
42
+ });
43
+ }
44
+ return {
45
+ block,
46
+ path: stack.map((heading) => heading.text),
47
+ line: Number(block.dataset.sourceStart)
48
+ };
49
+ });
50
+ }
51
+ var sections = (root) => markdownOutline(root);
52
+ function textNodes(block) {
53
+ const walker = document.createTreeWalker(block, NodeFilter.SHOW_TEXT);
54
+ const nodes = [];
55
+ for (let node = walker.nextNode(); node; node = walker.nextNode()) if (!node.parentElement?.closest("[data-comment-author]")) nodes.push(node);
56
+ return nodes;
57
+ }
58
+ /** A block's text exactly as its text nodes concatenate, so offsets map back onto them. */
59
+ function blockText(block) {
60
+ return textNodes(block).map((node) => node.data).join("");
61
+ }
62
+ function rangeIn(block, start, end) {
63
+ const range = document.createRange();
64
+ let offset = 0;
65
+ let started = false;
66
+ for (const node of textNodes(block)) {
67
+ if (!started && start < offset + node.length) {
68
+ range.setStart(node, start - offset);
69
+ started = true;
70
+ }
71
+ if (started && end <= offset + node.length) {
72
+ range.setEnd(node, end - offset);
73
+ return range;
74
+ }
75
+ offset += node.length;
76
+ }
77
+ throw new Error(`quote-anchor: offsets ${start}-${end} lie outside the block`);
78
+ }
79
+ function pattern(text) {
80
+ return text.trim().split(/\s+/).filter(Boolean).map((word) => word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("\\s*");
81
+ }
82
+ function matches(candidates, locator, context) {
83
+ const before = context.prefix && locator.prefix.trim() ? `(?<=${pattern(locator.prefix)}\\s*)` : "";
84
+ const after = context.suffix && locator.suffix.trim() ? `(?=\\s*${pattern(locator.suffix)})` : "";
85
+ const regex = new RegExp(`${before}${pattern(locator.quote)}${after}`, "g");
86
+ return candidates.flatMap(({ block }) => [...blockText(block).matchAll(regex)].map((m) => ({
87
+ block,
88
+ start: m.index,
89
+ end: m.index + m[0].length
90
+ })));
91
+ }
92
+ var samePath = (a, b) => a.length === b.length && a.every((h, i) => h === b[i]);
93
+ var TIERS = [
94
+ {
95
+ prefix: true,
96
+ suffix: true
97
+ },
98
+ {
99
+ prefix: true,
100
+ suffix: false
101
+ },
102
+ {
103
+ prefix: false,
104
+ suffix: true
105
+ }
106
+ ];
107
+ /**
108
+ * Finds a quote again: in its section by quote plus context, then with one
109
+ * side of the context edited away; failing that (a renamed heading), anywhere
110
+ * by the full context. Null when it is gone or ambiguous.
111
+ */
112
+ function resolveQuote(root, locator) {
113
+ const all = sections(root);
114
+ const section = all.filter((s) => samePath(s.path, locator.path));
115
+ for (const tier of TIERS) {
116
+ const found = matches(section, locator, tier);
117
+ if (found.length === 1) return rangeIn(found[0].block, found[0].start, found[0].end);
118
+ }
119
+ const relocated = matches(all, locator, TIERS[0]);
120
+ return relocated.length === 1 ? rangeIn(relocated[0].block, relocated[0].start, relocated[0].end) : null;
121
+ }
122
+ /**
123
+ * The locator for a selection inside one block, with just enough context on
124
+ * each side to make it unique in its section. Null when the selection spans
125
+ * blocks, is blank, or repeats so exactly that no context tells it apart.
126
+ */
127
+ function locateSelection(root, range) {
128
+ const all = sections(root);
129
+ const own = all.find(({ block }) => block.contains(range.startContainer) && block.contains(range.endContainer));
130
+ if (!own) return null;
131
+ const text = blockText(own.block);
132
+ const lead = document.createRange();
133
+ lead.setStart(own.block, 0);
134
+ lead.setEnd(range.startContainer, range.startOffset);
135
+ const raw = rangeText(range);
136
+ const start = rangeText(lead).length + (raw.length - raw.trimStart().length);
137
+ const end = rangeText(lead).length + raw.trimEnd().length;
138
+ if (end <= start) return null;
139
+ const before = text.slice(0, start).split(/\s+/).filter(Boolean);
140
+ const after = text.slice(end).split(/\s+/).filter(Boolean);
141
+ const section = all.filter((s) => samePath(s.path, own.path));
142
+ for (let words = MIN_CONTEXT_WORDS;; words++) {
143
+ const locator = {
144
+ path: own.path,
145
+ prefix: before.slice(-words).join(" "),
146
+ quote: text.slice(start, end),
147
+ suffix: after.slice(0, words).join(" ")
148
+ };
149
+ const found = matches(section, locator, TIERS[0]);
150
+ if (found.length === 1 && found[0].block === own.block && found[0].start === start) return locator;
151
+ if (words >= before.length && words >= after.length) return null;
152
+ }
153
+ }
154
+ var MARKUP = /[*_`|>#~]|(?:^|\s)[-+](?=\s)/g;
155
+ function sourcePattern(quote) {
156
+ return pattern(quote.replace(MARKUP, " ")).replaceAll("\\s*", "[\\s*_`|>#~]*");
157
+ }
158
+ function sourceBlocks(root, lines) {
159
+ return sections(root).map(({ block }) => {
160
+ const first = Number(block.dataset.sourceStart);
161
+ const last = Number(block.dataset.sourceEnd);
162
+ return {
163
+ block,
164
+ first,
165
+ last,
166
+ text: lines.slice(first - 1, last).join("\n")
167
+ };
168
+ });
169
+ }
170
+ var allMatches = (text, source) => [...text.matchAll(new RegExp(source, "g"))];
171
+ /**
172
+ * The quote locator for a selection in the raw markdown: the selection's words
173
+ * are found in the rendered block built from that line, as the same occurrence
174
+ * they are in the source, so a comment made in Source shows in Preview too.
175
+ * Null when the selection is only markup or its block renders no such words.
176
+ */
177
+ function locateSourceSelection(root, lines, span) {
178
+ const selected = lines[span.line - 1]?.slice(span.start, span.end) ?? "";
179
+ if (!selected.replace(MARKUP, " ").trim()) return null;
180
+ const own = sourceBlocks(root, lines).find((b) => span.line >= b.first && span.line <= b.last);
181
+ if (!own) return null;
182
+ const at = lines.slice(own.first - 1, span.line - 1).reduce((sum, l) => sum + l.length + 1, 0) + span.start;
183
+ const k = allMatches(own.text, sourcePattern(selected)).findIndex((m) => m.index + m[0].length > at && m.index < at + selected.length);
184
+ const hit = k < 0 ? void 0 : allMatches(blockText(own.block), pattern(selected.replace(MARKUP, " ")))[k];
185
+ return hit ? locateSelection(root, rangeIn(own.block, hit.index, hit.index + hit[0].length)) : null;
186
+ }
187
+ /** Where a quote anchor's text sits in the raw markdown, one span per source line it covers. */
188
+ function sourceSpans(root, lines, locator) {
189
+ const range = resolveQuote(root, locator);
190
+ const own = range && sourceBlocks(root, lines).find(({ block }) => block.contains(range.startContainer));
191
+ if (!range || !own) return [];
192
+ const lead = document.createRange();
193
+ lead.setStart(own.block, 0);
194
+ lead.setEnd(range.startContainer, range.startOffset);
195
+ const offset = rangeText(lead).length;
196
+ const k = allMatches(blockText(own.block), pattern(locator.quote)).findIndex((m) => m.index === offset);
197
+ const hit = k < 0 ? void 0 : allMatches(own.text, sourcePattern(locator.quote))[k];
198
+ if (!hit) return [];
199
+ const spans = [];
200
+ let lineStart = 0;
201
+ for (let line = own.first; line <= own.last; line++) {
202
+ const text = lines[line - 1] ?? "";
203
+ const start = Math.max(hit.index, lineStart) - lineStart;
204
+ const end = Math.min(hit.index + hit[0].length, lineStart + text.length) - lineStart;
205
+ if (end > start) spans.push({
206
+ line,
207
+ start,
208
+ end
209
+ });
210
+ lineStart += text.length + 1;
211
+ }
212
+ return spans;
213
+ }
214
+ function rangeText(range) {
215
+ const content = range.cloneContents();
216
+ for (const avatar of content.querySelectorAll("[data-comment-author]")) avatar.remove();
217
+ return content.textContent ?? "";
218
+ }
219
+ /** Reader-facing label: the section and the quoted words. */
220
+ function describeQuote(locator) {
221
+ const section = locator.path.at(-1);
222
+ return `${section ? `${section} › ` : ""}“${locator.quote}”`;
223
+ }
224
+ exports.QUOTE_PREFIX = QUOTE_PREFIX;
225
+ exports.describeQuote = describeQuote;
226
+ exports.locateSelection = locateSelection;
227
+ exports.locateSourceSelection = locateSourceSelection;
228
+ exports.markdownOutline = markdownOutline;
229
+ exports.parseQuoteAnchor = parseQuoteAnchor;
230
+ exports.quoteAnchor = quoteAnchor;
231
+ exports.resolveQuote = resolveQuote;
232
+ exports.sourceSpans = sourceSpans;
233
+
234
+ //# sourceMappingURL=quote-anchor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote-anchor.cjs","names":[],"sources":["../../../src/file-findings/file-review/quote-anchor.ts"],"sourcesContent":["// Anchors on words inside rendered markdown, in the spirit of the W3C\n// TextQuoteSelector: a quote is found again through the heading outline (the\n// section it sits in) plus a few words on each side, so the same words\n// elsewhere — or edits to other sections — never move it.\n\n/** A quote inside the section named by `path` (its heading trail), with the words around it. */\nexport type QuoteLocator = { path: string[]; prefix: string; quote: string; suffix: string };\n\nexport const QUOTE_PREFIX = \"q:\";\n\nconst SOURCE_BLOCK = \"[data-source-start]\";\nconst HEADING = /^h([1-6])$/;\n/** Heading text kept in a path; longer headings are cut so stored anchors stay bounded. */\nexport const OUTLINE_HEADING_LIMIT = 200;\n/** Context words taken on each side to start with; grown until the anchor is unique. */\nconst MIN_CONTEXT_WORDS = 2;\n\nexport function quoteAnchor(locator: QuoteLocator): string {\n return `${QUOTE_PREFIX}${JSON.stringify([locator.path, locator.prefix, locator.quote, locator.suffix])}`;\n}\n\n/** The locator a `q:` anchor encodes; throws for a malformed one. */\nexport function parseQuoteAnchor(anchor: string): QuoteLocator {\n if (!anchor.startsWith(QUOTE_PREFIX)) throw new Error(`not a quote anchor: ${JSON.stringify(anchor)}`);\n const parsed: unknown = JSON.parse(anchor.slice(QUOTE_PREFIX.length));\n const [path, prefix, quote, suffix] = Array.isArray(parsed) ? parsed : [];\n if (\n !Array.isArray(path) ||\n !path.every((heading) => typeof heading === \"string\") ||\n typeof prefix !== \"string\" ||\n typeof quote !== \"string\" ||\n typeof suffix !== \"string\"\n ) {\n throw new Error(`malformed quote anchor ${JSON.stringify(anchor)}`);\n }\n return { path, prefix, quote, suffix };\n}\n\n/** A top-level rendered block, the heading trail it sits under, and its first source line. */\nexport type OutlineEntry = { block: Element; path: string[]; line: number };\n\n/**\n * Every top-level block of rendered markdown (`Markdown sourceBlocks`) in\n * document order, with the headings above it: its table-of-contents path.\n */\nexport function markdownOutline(root: Element): OutlineEntry[] {\n const stack: { level: number; text: string }[] = [];\n return [...root.querySelectorAll(SOURCE_BLOCK)]\n .filter((block) => !block.parentElement?.closest(SOURCE_BLOCK))\n .map((block) => {\n const level = HEADING.exec(block.tagName.toLowerCase())?.[1];\n if (level) {\n while (stack.length > 0 && (stack.at(-1)?.level ?? 0) >= Number(level)) stack.pop();\n const text = blockText(block).replace(/\\s+/g, \" \").trim().slice(0, OUTLINE_HEADING_LIMIT);\n stack.push({ level: Number(level), text });\n }\n return { block, path: stack.map((heading) => heading.text), line: Number((block as HTMLElement).dataset.sourceStart) };\n });\n}\n\ntype Section = Pick<OutlineEntry, \"block\" | \"path\">;\n\nconst sections = (root: Element): Section[] => markdownOutline(root);\n\nfunction textNodes(block: Element): Text[] {\n const walker = document.createTreeWalker(block, NodeFilter.SHOW_TEXT);\n const nodes: Text[] = [];\n for (let node = walker.nextNode(); node; node = walker.nextNode()) {\n if (!node.parentElement?.closest(\"[data-comment-author]\")) nodes.push(node as Text);\n }\n return nodes;\n}\n\n/** A block's text exactly as its text nodes concatenate, so offsets map back onto them. */\nfunction blockText(block: Element): string {\n return textNodes(block)\n .map((node) => node.data)\n .join(\"\");\n}\n\nfunction rangeIn(block: Element, start: number, end: number): Range {\n const range = document.createRange();\n let offset = 0;\n let started = false;\n for (const node of textNodes(block)) {\n if (!started && start < offset + node.length) {\n range.setStart(node, start - offset);\n started = true;\n }\n if (started && end <= offset + node.length) {\n range.setEnd(node, end - offset);\n return range;\n }\n offset += node.length;\n }\n throw new Error(`quote-anchor: offsets ${start}-${end} lie outside the block`);\n}\n\n// Rendered cells and list items concatenate without whitespace (\"lead5 min\"),\n// so any run of whitespace in the locator matches zero or more in the text.\nfunction pattern(text: string): string {\n return text\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .map((word) => word.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"))\n .join(\"\\\\s*\");\n}\n\ntype Match = { block: Element; start: number; end: number };\n\nfunction matches(candidates: readonly Section[], locator: QuoteLocator, context: { prefix: boolean; suffix: boolean }): Match[] {\n const before = context.prefix && locator.prefix.trim() ? `(?<=${pattern(locator.prefix)}\\\\s*)` : \"\";\n const after = context.suffix && locator.suffix.trim() ? `(?=\\\\s*${pattern(locator.suffix)})` : \"\";\n const regex = new RegExp(`${before}${pattern(locator.quote)}${after}`, \"g\");\n return candidates.flatMap(({ block }) =>\n [...blockText(block).matchAll(regex)].map((m) => ({ block, start: m.index, end: m.index + m[0].length })),\n );\n}\n\nconst samePath = (a: readonly string[], b: readonly string[]) => a.length === b.length && a.every((h, i) => h === b[i]);\n\n// Strictest first. A looser tier is tried only when a stricter one finds\n// nothing, so edited context still resolves, but never guesses between two.\nconst TIERS = [\n { prefix: true, suffix: true },\n { prefix: true, suffix: false },\n { prefix: false, suffix: true },\n] as const;\n\n/**\n * Finds a quote again: in its section by quote plus context, then with one\n * side of the context edited away; failing that (a renamed heading), anywhere\n * by the full context. Null when it is gone or ambiguous.\n */\nexport function resolveQuote(root: Element, locator: QuoteLocator): Range | null {\n const all = sections(root);\n const section = all.filter((s) => samePath(s.path, locator.path));\n for (const tier of TIERS) {\n const found = matches(section, locator, tier);\n if (found.length === 1) return rangeIn(found[0]!.block, found[0]!.start, found[0]!.end);\n }\n const relocated = matches(all, locator, TIERS[0]);\n return relocated.length === 1 ? rangeIn(relocated[0]!.block, relocated[0]!.start, relocated[0]!.end) : null;\n}\n\n/**\n * The locator for a selection inside one block, with just enough context on\n * each side to make it unique in its section. Null when the selection spans\n * blocks, is blank, or repeats so exactly that no context tells it apart.\n */\nexport function locateSelection(root: Element, range: Range): QuoteLocator | null {\n const all = sections(root);\n const own = all.find(({ block }) => block.contains(range.startContainer) && block.contains(range.endContainer));\n if (!own) return null;\n const text = blockText(own.block);\n const lead = document.createRange();\n lead.setStart(own.block, 0);\n lead.setEnd(range.startContainer, range.startOffset);\n const raw = rangeText(range);\n const start = rangeText(lead).length + (raw.length - raw.trimStart().length);\n const end = rangeText(lead).length + raw.trimEnd().length;\n if (end <= start) return null;\n\n const before = text.slice(0, start).split(/\\s+/).filter(Boolean);\n const after = text.slice(end).split(/\\s+/).filter(Boolean);\n const section = all.filter((s) => samePath(s.path, own.path));\n for (let words = MIN_CONTEXT_WORDS; ; words++) {\n const locator = {\n path: own.path,\n prefix: before.slice(-words).join(\" \"),\n quote: text.slice(start, end),\n suffix: after.slice(0, words).join(\" \"),\n };\n const found = matches(section, locator, TIERS[0]);\n if (found.length === 1 && found[0]!.block === own.block && found[0]!.start === start) return locator;\n if (words >= before.length && words >= after.length) return null;\n }\n}\n\n/** A run of characters on one source line (1-based line, 0-based columns). */\nexport type SourceSpan = { line: number; start: number; end: number };\n\n// Markdown markup that renders as nothing (emphasis, code ticks, table pipes,\n// quote and heading markers, list bullets), so it may sit between source words.\nconst MARKUP = /[*_`|>#~]|(?:^|\\s)[-+](?=\\s)/g;\n\nfunction sourcePattern(quote: string): string {\n return pattern(quote.replace(MARKUP, \" \")).replaceAll(\"\\\\s*\", \"[\\\\s*_`|>#~]*\");\n}\n\nfunction sourceBlocks(root: Element, lines: readonly string[]) {\n return sections(root).map(({ block }) => {\n const first = Number((block as HTMLElement).dataset.sourceStart);\n const last = Number((block as HTMLElement).dataset.sourceEnd);\n return { block, first, last, text: lines.slice(first - 1, last).join(\"\\n\") };\n });\n}\n\nconst allMatches = (text: string, source: string) => [...text.matchAll(new RegExp(source, \"g\"))];\n\n/**\n * The quote locator for a selection in the raw markdown: the selection's words\n * are found in the rendered block built from that line, as the same occurrence\n * they are in the source, so a comment made in Source shows in Preview too.\n * Null when the selection is only markup or its block renders no such words.\n */\nexport function locateSourceSelection(root: Element, lines: readonly string[], span: SourceSpan): QuoteLocator | null {\n const selected = lines[span.line - 1]?.slice(span.start, span.end) ?? \"\";\n if (!selected.replace(MARKUP, \" \").trim()) return null;\n const own = sourceBlocks(root, lines).find((b) => span.line >= b.first && span.line <= b.last);\n if (!own) return null;\n const at = lines.slice(own.first - 1, span.line - 1).reduce((sum, l) => sum + l.length + 1, 0) + span.start;\n const k = allMatches(own.text, sourcePattern(selected)).findIndex((m) => m.index + m[0].length > at && m.index < at + selected.length);\n const hit = k < 0 ? undefined : allMatches(blockText(own.block), pattern(selected.replace(MARKUP, \" \")))[k];\n return hit ? locateSelection(root, rangeIn(own.block, hit.index, hit.index + hit[0].length)) : null;\n}\n\n/** Where a quote anchor's text sits in the raw markdown, one span per source line it covers. */\nexport function sourceSpans(root: Element, lines: readonly string[], locator: QuoteLocator): SourceSpan[] {\n const range = resolveQuote(root, locator);\n const own = range && sourceBlocks(root, lines).find(({ block }) => block.contains(range.startContainer));\n if (!range || !own) return [];\n const lead = document.createRange();\n lead.setStart(own.block, 0);\n lead.setEnd(range.startContainer, range.startOffset);\n const offset = rangeText(lead).length;\n const k = allMatches(blockText(own.block), pattern(locator.quote)).findIndex((m) => m.index === offset);\n const hit = k < 0 ? undefined : allMatches(own.text, sourcePattern(locator.quote))[k];\n if (!hit) return [];\n const spans: SourceSpan[] = [];\n let lineStart = 0;\n for (let line = own.first; line <= own.last; line++) {\n const text = lines[line - 1] ?? \"\";\n const start = Math.max(hit.index, lineStart) - lineStart;\n const end = Math.min(hit.index + hit[0].length, lineStart + text.length) - lineStart;\n if (end > start) spans.push({ line, start, end });\n lineStart += text.length + 1;\n }\n return spans;\n}\n\nfunction rangeText(range: Range): string {\n const content = range.cloneContents();\n for (const avatar of content.querySelectorAll(\"[data-comment-author]\")) avatar.remove();\n return content.textContent ?? \"\";\n}\n\n/** Reader-facing label: the section and the quoted words. */\nexport function describeQuote(locator: QuoteLocator): string {\n const section = locator.path.at(-1);\n return `${section ? `${section} › ` : \"\"}“${locator.quote}”`;\n}\n"],"mappings":";AAQA,IAAa,eAAe;AAE5B,IAAM,eAAe;AACrB,IAAM,UAAU;;AAIhB,IAAM,oBAAoB;AAE1B,SAAgB,YAAY,SAA+B;CACzD,OAAO,KAAkB,KAAK,UAAU;EAAC,QAAQ;EAAM,QAAQ;EAAQ,QAAQ;EAAO,QAAQ;CAAM,CAAC;AACvG;;AAGA,SAAgB,iBAAiB,QAA8B;CAC7D,IAAI,CAAC,OAAO,WAAA,IAAuB,GAAG,MAAM,IAAI,MAAM,uBAAuB,KAAK,UAAU,MAAM,GAAG;CACrG,MAAM,SAAkB,KAAK,MAAM,OAAO,MAAM,CAAmB,CAAC;CACpE,MAAM,CAAC,MAAM,QAAQ,OAAO,UAAU,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC;CACxE,IACE,CAAC,MAAM,QAAQ,IAAI,KACnB,CAAC,KAAK,OAAO,YAAY,OAAO,YAAY,QAAQ,KACpD,OAAO,WAAW,YAClB,OAAO,UAAU,YACjB,OAAO,WAAW,UAElB,MAAM,IAAI,MAAM,0BAA0B,KAAK,UAAU,MAAM,GAAG;CAEpE,OAAO;EAAE;EAAM;EAAQ;EAAO;CAAO;AACvC;;;;;AASA,SAAgB,gBAAgB,MAA+B;CAC7D,MAAM,QAA2C,CAAC;CAClD,OAAO,CAAC,GAAG,KAAK,iBAAiB,YAAY,CAAC,CAAC,CAC5C,QAAQ,UAAU,CAAC,MAAM,eAAe,QAAQ,YAAY,CAAC,CAAC,CAC9D,KAAK,UAAU;EACd,MAAM,QAAQ,QAAQ,KAAK,MAAM,QAAQ,YAAY,CAAC,CAAC,GAAG;EAC1D,IAAI,OAAO;GACT,OAAO,MAAM,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,MAAM,OAAO,KAAK,GAAG,MAAM,IAAI;GAClF,MAAM,OAAO,UAAU,KAAK,CAAC,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAA,GAAwB;GACxF,MAAM,KAAK;IAAE,OAAO,OAAO,KAAK;IAAG;GAAK,CAAC;EAC3C;EACA,OAAO;GAAE;GAAO,MAAM,MAAM,KAAK,YAAY,QAAQ,IAAI;GAAG,MAAM,OAAQ,MAAsB,QAAQ,WAAW;EAAE;CACvH,CAAC;AACL;AAIA,IAAM,YAAY,SAA6B,gBAAgB,IAAI;AAEnE,SAAS,UAAU,OAAwB;CACzC,MAAM,SAAS,SAAS,iBAAiB,OAAO,WAAW,SAAS;CACpE,MAAM,QAAgB,CAAC;CACvB,KAAK,IAAI,OAAO,OAAO,SAAS,GAAG,MAAM,OAAO,OAAO,SAAS,GAC9D,IAAI,CAAC,KAAK,eAAe,QAAQ,uBAAuB,GAAG,MAAM,KAAK,IAAY;CAEpF,OAAO;AACT;;AAGA,SAAS,UAAU,OAAwB;CACzC,OAAO,UAAU,KAAK,CAAC,CACpB,KAAK,SAAS,KAAK,IAAI,CAAC,CACxB,KAAK,EAAE;AACZ;AAEA,SAAS,QAAQ,OAAgB,OAAe,KAAoB;CAClE,MAAM,QAAQ,SAAS,YAAY;CACnC,IAAI,SAAS;CACb,IAAI,UAAU;CACd,KAAK,MAAM,QAAQ,UAAU,KAAK,GAAG;EACnC,IAAI,CAAC,WAAW,QAAQ,SAAS,KAAK,QAAQ;GAC5C,MAAM,SAAS,MAAM,QAAQ,MAAM;GACnC,UAAU;EACZ;EACA,IAAI,WAAW,OAAO,SAAS,KAAK,QAAQ;GAC1C,MAAM,OAAO,MAAM,MAAM,MAAM;GAC/B,OAAO;EACT;EACA,UAAU,KAAK;CACjB;CACA,MAAM,IAAI,MAAM,yBAAyB,MAAM,GAAG,IAAI,uBAAuB;AAC/E;AAIA,SAAS,QAAQ,MAAsB;CACrC,OAAO,KACJ,KAAK,CAAC,CACN,MAAM,KAAK,CAAC,CACZ,OAAO,OAAO,CAAC,CACf,KAAK,SAAS,KAAK,QAAQ,uBAAuB,MAAM,CAAC,CAAC,CAC1D,KAAK,MAAM;AAChB;AAIA,SAAS,QAAQ,YAAgC,SAAuB,SAAwD;CAC9H,MAAM,SAAS,QAAQ,UAAU,QAAQ,OAAO,KAAK,IAAI,OAAO,QAAQ,QAAQ,MAAM,EAAE,SAAS;CACjG,MAAM,QAAQ,QAAQ,UAAU,QAAQ,OAAO,KAAK,IAAI,UAAU,QAAQ,QAAQ,MAAM,EAAE,KAAK;CAC/F,MAAM,QAAQ,IAAI,OAAO,GAAG,SAAS,QAAQ,QAAQ,KAAK,IAAI,SAAS,GAAG;CAC1E,OAAO,WAAW,SAAS,EAAE,YAC3B,CAAC,GAAG,UAAU,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;EAAE;EAAO,OAAO,EAAE;EAAO,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;CAAO,EAAE,CAC1G;AACF;AAEA,IAAM,YAAY,GAAsB,MAAyB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,MAAM,EAAE,EAAE;AAItH,IAAM,QAAQ;CACZ;EAAE,QAAQ;EAAM,QAAQ;CAAK;CAC7B;EAAE,QAAQ;EAAM,QAAQ;CAAM;CAC9B;EAAE,QAAQ;EAAO,QAAQ;CAAK;AAChC;;;;;;AAOA,SAAgB,aAAa,MAAe,SAAqC;CAC/E,MAAM,MAAM,SAAS,IAAI;CACzB,MAAM,UAAU,IAAI,QAAQ,MAAM,SAAS,EAAE,MAAM,QAAQ,IAAI,CAAC;CAChE,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,QAAQ,QAAQ,SAAS,SAAS,IAAI;EAC5C,IAAI,MAAM,WAAW,GAAG,OAAO,QAAQ,MAAM,EAAE,CAAE,OAAO,MAAM,EAAE,CAAE,OAAO,MAAM,EAAE,CAAE,GAAG;CACxF;CACA,MAAM,YAAY,QAAQ,KAAK,SAAS,MAAM,EAAE;CAChD,OAAO,UAAU,WAAW,IAAI,QAAQ,UAAU,EAAE,CAAE,OAAO,UAAU,EAAE,CAAE,OAAO,UAAU,EAAE,CAAE,GAAG,IAAI;AACzG;;;;;;AAOA,SAAgB,gBAAgB,MAAe,OAAmC;CAChF,MAAM,MAAM,SAAS,IAAI;CACzB,MAAM,MAAM,IAAI,MAAM,EAAE,YAAY,MAAM,SAAS,MAAM,cAAc,KAAK,MAAM,SAAS,MAAM,YAAY,CAAC;CAC9G,IAAI,CAAC,KAAK,OAAO;CACjB,MAAM,OAAO,UAAU,IAAI,KAAK;CAChC,MAAM,OAAO,SAAS,YAAY;CAClC,KAAK,SAAS,IAAI,OAAO,CAAC;CAC1B,KAAK,OAAO,MAAM,gBAAgB,MAAM,WAAW;CACnD,MAAM,MAAM,UAAU,KAAK;CAC3B,MAAM,QAAQ,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC;CACrE,MAAM,MAAM,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;CACnD,IAAI,OAAO,OAAO,OAAO;CAEzB,MAAM,SAAS,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO;CAC/D,MAAM,QAAQ,KAAK,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO;CACzD,MAAM,UAAU,IAAI,QAAQ,MAAM,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC;CAC5D,KAAK,IAAI,QAAQ,oBAAqB,SAAS;EAC7C,MAAM,UAAU;GACd,MAAM,IAAI;GACV,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG;GACrC,OAAO,KAAK,MAAM,OAAO,GAAG;GAC5B,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG;EACxC;EACA,MAAM,QAAQ,QAAQ,SAAS,SAAS,MAAM,EAAE;EAChD,IAAI,MAAM,WAAW,KAAK,MAAM,EAAE,CAAE,UAAU,IAAI,SAAS,MAAM,EAAE,CAAE,UAAU,OAAO,OAAO;EAC7F,IAAI,SAAS,OAAO,UAAU,SAAS,MAAM,QAAQ,OAAO;CAC9D;AACF;AAOA,IAAM,SAAS;AAEf,SAAS,cAAc,OAAuB;CAC5C,OAAO,QAAQ,MAAM,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,WAAW,QAAQ,eAAe;AAC/E;AAEA,SAAS,aAAa,MAAe,OAA0B;CAC7D,OAAO,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,YAAY;EACvC,MAAM,QAAQ,OAAQ,MAAsB,QAAQ,WAAW;EAC/D,MAAM,OAAO,OAAQ,MAAsB,QAAQ,SAAS;EAC5D,OAAO;GAAE;GAAO;GAAO;GAAM,MAAM,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI;EAAE;CAC7E,CAAC;AACH;AAEA,IAAM,cAAc,MAAc,WAAmB,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,QAAQ,GAAG,CAAC,CAAC;;;;;;;AAQ/F,SAAgB,sBAAsB,MAAe,OAA0B,MAAuC;CACpH,MAAM,WAAW,MAAM,KAAK,OAAO,EAAE,EAAE,MAAM,KAAK,OAAO,KAAK,GAAG,KAAK;CACtE,IAAI,CAAC,SAAS,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO;CAClD,MAAM,MAAM,aAAa,MAAM,KAAK,CAAC,CAAC,MAAM,MAAM,KAAK,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,IAAI;CAC7F,IAAI,CAAC,KAAK,OAAO;CACjB,MAAM,KAAK,MAAM,MAAM,IAAI,QAAQ,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,MAAM,EAAE,SAAS,GAAG,CAAC,IAAI,KAAK;CACtG,MAAM,IAAI,WAAW,IAAI,MAAM,cAAc,QAAQ,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,QAAQ,KAAK,SAAS,MAAM;CACrI,MAAM,MAAM,IAAI,IAAI,KAAA,IAAY,WAAW,UAAU,IAAI,KAAK,GAAG,QAAQ,SAAS,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;CACzG,OAAO,MAAM,gBAAgB,MAAM,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI;AACjG;;AAGA,SAAgB,YAAY,MAAe,OAA0B,SAAqC;CACxG,MAAM,QAAQ,aAAa,MAAM,OAAO;CACxC,MAAM,MAAM,SAAS,aAAa,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,YAAY,MAAM,SAAS,MAAM,cAAc,CAAC;CACvG,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC;CAC5B,MAAM,OAAO,SAAS,YAAY;CAClC,KAAK,SAAS,IAAI,OAAO,CAAC;CAC1B,KAAK,OAAO,MAAM,gBAAgB,MAAM,WAAW;CACnD,MAAM,SAAS,UAAU,IAAI,CAAC,CAAC;CAC/B,MAAM,IAAI,WAAW,UAAU,IAAI,KAAK,GAAG,QAAQ,QAAQ,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,UAAU,MAAM;CACtG,MAAM,MAAM,IAAI,IAAI,KAAA,IAAY,WAAW,IAAI,MAAM,cAAc,QAAQ,KAAK,CAAC,CAAC,CAAC;CACnF,IAAI,CAAC,KAAK,OAAO,CAAC;CAClB,MAAM,QAAsB,CAAC;CAC7B,IAAI,YAAY;CAChB,KAAK,IAAI,OAAO,IAAI,OAAO,QAAQ,IAAI,MAAM,QAAQ;EACnD,MAAM,OAAO,MAAM,OAAO,MAAM;EAChC,MAAM,QAAQ,KAAK,IAAI,IAAI,OAAO,SAAS,IAAI;EAC/C,MAAM,MAAM,KAAK,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,QAAQ,YAAY,KAAK,MAAM,IAAI;EAC3E,IAAI,MAAM,OAAO,MAAM,KAAK;GAAE;GAAM;GAAO;EAAI,CAAC;EAChD,aAAa,KAAK,SAAS;CAC7B;CACA,OAAO;AACT;AAEA,SAAS,UAAU,OAAsB;CACvC,MAAM,UAAU,MAAM,cAAc;CACpC,KAAK,MAAM,UAAU,QAAQ,iBAAiB,uBAAuB,GAAG,OAAO,OAAO;CACtF,OAAO,QAAQ,eAAe;AAChC;;AAGA,SAAgB,cAAc,SAA+B;CAC3D,MAAM,UAAU,QAAQ,KAAK,GAAG,EAAE;CAClC,OAAO,GAAG,UAAU,GAAG,QAAQ,OAAO,GAAG,GAAG,QAAQ,MAAM;AAC5D"}
@@ -0,0 +1,54 @@
1
+ /** A quote inside the section named by `path` (its heading trail), with the words around it. */
2
+ export type QuoteLocator = {
3
+ path: string[];
4
+ prefix: string;
5
+ quote: string;
6
+ suffix: string;
7
+ };
8
+ export declare const QUOTE_PREFIX = "q:";
9
+ /** Heading text kept in a path; longer headings are cut so stored anchors stay bounded. */
10
+ export declare const OUTLINE_HEADING_LIMIT = 200;
11
+ export declare function quoteAnchor(locator: QuoteLocator): string;
12
+ /** The locator a `q:` anchor encodes; throws for a malformed one. */
13
+ export declare function parseQuoteAnchor(anchor: string): QuoteLocator;
14
+ /** A top-level rendered block, the heading trail it sits under, and its first source line. */
15
+ export type OutlineEntry = {
16
+ block: Element;
17
+ path: string[];
18
+ line: number;
19
+ };
20
+ /**
21
+ * Every top-level block of rendered markdown (`Markdown sourceBlocks`) in
22
+ * document order, with the headings above it: its table-of-contents path.
23
+ */
24
+ export declare function markdownOutline(root: Element): OutlineEntry[];
25
+ /**
26
+ * Finds a quote again: in its section by quote plus context, then with one
27
+ * side of the context edited away; failing that (a renamed heading), anywhere
28
+ * by the full context. Null when it is gone or ambiguous.
29
+ */
30
+ export declare function resolveQuote(root: Element, locator: QuoteLocator): Range | null;
31
+ /**
32
+ * The locator for a selection inside one block, with just enough context on
33
+ * each side to make it unique in its section. Null when the selection spans
34
+ * blocks, is blank, or repeats so exactly that no context tells it apart.
35
+ */
36
+ export declare function locateSelection(root: Element, range: Range): QuoteLocator | null;
37
+ /** A run of characters on one source line (1-based line, 0-based columns). */
38
+ export type SourceSpan = {
39
+ line: number;
40
+ start: number;
41
+ end: number;
42
+ };
43
+ /**
44
+ * The quote locator for a selection in the raw markdown: the selection's words
45
+ * are found in the rendered block built from that line, as the same occurrence
46
+ * they are in the source, so a comment made in Source shows in Preview too.
47
+ * Null when the selection is only markup or its block renders no such words.
48
+ */
49
+ export declare function locateSourceSelection(root: Element, lines: readonly string[], span: SourceSpan): QuoteLocator | null;
50
+ /** Where a quote anchor's text sits in the raw markdown, one span per source line it covers. */
51
+ export declare function sourceSpans(root: Element, lines: readonly string[], locator: QuoteLocator): SourceSpan[];
52
+ /** Reader-facing label: the section and the quoted words. */
53
+ export declare function describeQuote(locator: QuoteLocator): string;
54
+ //# sourceMappingURL=quote-anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote-anchor.d.ts","sourceRoot":"","sources":["../../../src/file-findings/file-review/quote-anchor.ts"],"names":[],"mappings":"AAKA,gGAAgG;AAChG,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,eAAO,MAAM,YAAY,OAAO,CAAC;AAIjC,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAc7D;AAED,8FAA8F;AAC9F,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAa7D;AAwED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAS/E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,IAAI,CA2BhF;AAED,8EAA8E;AAC9E,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAoBtE;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CASpH;AAED,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,UAAU,EAAE,CAqBxG;AAQD,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAG3D"}
@@ -0,0 +1,226 @@
1
+ // src/file-findings/file-review/quote-anchor.ts
2
+ var QUOTE_PREFIX = "q:";
3
+ var SOURCE_BLOCK = "[data-source-start]";
4
+ var HEADING = /^h([1-6])$/;
5
+ /** Context words taken on each side to start with; grown until the anchor is unique. */
6
+ var MIN_CONTEXT_WORDS = 2;
7
+ function quoteAnchor(locator) {
8
+ return `q:${JSON.stringify([
9
+ locator.path,
10
+ locator.prefix,
11
+ locator.quote,
12
+ locator.suffix
13
+ ])}`;
14
+ }
15
+ /** The locator a `q:` anchor encodes; throws for a malformed one. */
16
+ function parseQuoteAnchor(anchor) {
17
+ if (!anchor.startsWith("q:")) throw new Error(`not a quote anchor: ${JSON.stringify(anchor)}`);
18
+ const parsed = JSON.parse(anchor.slice(2));
19
+ const [path, prefix, quote, suffix] = Array.isArray(parsed) ? parsed : [];
20
+ if (!Array.isArray(path) || !path.every((heading) => typeof heading === "string") || typeof prefix !== "string" || typeof quote !== "string" || typeof suffix !== "string") throw new Error(`malformed quote anchor ${JSON.stringify(anchor)}`);
21
+ return {
22
+ path,
23
+ prefix,
24
+ quote,
25
+ suffix
26
+ };
27
+ }
28
+ /**
29
+ * Every top-level block of rendered markdown (`Markdown sourceBlocks`) in
30
+ * document order, with the headings above it: its table-of-contents path.
31
+ */
32
+ function markdownOutline(root) {
33
+ const stack = [];
34
+ return [...root.querySelectorAll(SOURCE_BLOCK)].filter((block) => !block.parentElement?.closest(SOURCE_BLOCK)).map((block) => {
35
+ const level = HEADING.exec(block.tagName.toLowerCase())?.[1];
36
+ if (level) {
37
+ while (stack.length > 0 && (stack.at(-1)?.level ?? 0) >= Number(level)) stack.pop();
38
+ const text = blockText(block).replace(/\s+/g, " ").trim().slice(0, 200);
39
+ stack.push({
40
+ level: Number(level),
41
+ text
42
+ });
43
+ }
44
+ return {
45
+ block,
46
+ path: stack.map((heading) => heading.text),
47
+ line: Number(block.dataset.sourceStart)
48
+ };
49
+ });
50
+ }
51
+ var sections = (root) => markdownOutline(root);
52
+ function textNodes(block) {
53
+ const walker = document.createTreeWalker(block, NodeFilter.SHOW_TEXT);
54
+ const nodes = [];
55
+ for (let node = walker.nextNode(); node; node = walker.nextNode()) if (!node.parentElement?.closest("[data-comment-author]")) nodes.push(node);
56
+ return nodes;
57
+ }
58
+ /** A block's text exactly as its text nodes concatenate, so offsets map back onto them. */
59
+ function blockText(block) {
60
+ return textNodes(block).map((node) => node.data).join("");
61
+ }
62
+ function rangeIn(block, start, end) {
63
+ const range = document.createRange();
64
+ let offset = 0;
65
+ let started = false;
66
+ for (const node of textNodes(block)) {
67
+ if (!started && start < offset + node.length) {
68
+ range.setStart(node, start - offset);
69
+ started = true;
70
+ }
71
+ if (started && end <= offset + node.length) {
72
+ range.setEnd(node, end - offset);
73
+ return range;
74
+ }
75
+ offset += node.length;
76
+ }
77
+ throw new Error(`quote-anchor: offsets ${start}-${end} lie outside the block`);
78
+ }
79
+ function pattern(text) {
80
+ return text.trim().split(/\s+/).filter(Boolean).map((word) => word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("\\s*");
81
+ }
82
+ function matches(candidates, locator, context) {
83
+ const before = context.prefix && locator.prefix.trim() ? `(?<=${pattern(locator.prefix)}\\s*)` : "";
84
+ const after = context.suffix && locator.suffix.trim() ? `(?=\\s*${pattern(locator.suffix)})` : "";
85
+ const regex = new RegExp(`${before}${pattern(locator.quote)}${after}`, "g");
86
+ return candidates.flatMap(({ block }) => [...blockText(block).matchAll(regex)].map((m) => ({
87
+ block,
88
+ start: m.index,
89
+ end: m.index + m[0].length
90
+ })));
91
+ }
92
+ var samePath = (a, b) => a.length === b.length && a.every((h, i) => h === b[i]);
93
+ var TIERS = [
94
+ {
95
+ prefix: true,
96
+ suffix: true
97
+ },
98
+ {
99
+ prefix: true,
100
+ suffix: false
101
+ },
102
+ {
103
+ prefix: false,
104
+ suffix: true
105
+ }
106
+ ];
107
+ /**
108
+ * Finds a quote again: in its section by quote plus context, then with one
109
+ * side of the context edited away; failing that (a renamed heading), anywhere
110
+ * by the full context. Null when it is gone or ambiguous.
111
+ */
112
+ function resolveQuote(root, locator) {
113
+ const all = sections(root);
114
+ const section = all.filter((s) => samePath(s.path, locator.path));
115
+ for (const tier of TIERS) {
116
+ const found = matches(section, locator, tier);
117
+ if (found.length === 1) return rangeIn(found[0].block, found[0].start, found[0].end);
118
+ }
119
+ const relocated = matches(all, locator, TIERS[0]);
120
+ return relocated.length === 1 ? rangeIn(relocated[0].block, relocated[0].start, relocated[0].end) : null;
121
+ }
122
+ /**
123
+ * The locator for a selection inside one block, with just enough context on
124
+ * each side to make it unique in its section. Null when the selection spans
125
+ * blocks, is blank, or repeats so exactly that no context tells it apart.
126
+ */
127
+ function locateSelection(root, range) {
128
+ const all = sections(root);
129
+ const own = all.find(({ block }) => block.contains(range.startContainer) && block.contains(range.endContainer));
130
+ if (!own) return null;
131
+ const text = blockText(own.block);
132
+ const lead = document.createRange();
133
+ lead.setStart(own.block, 0);
134
+ lead.setEnd(range.startContainer, range.startOffset);
135
+ const raw = rangeText(range);
136
+ const start = rangeText(lead).length + (raw.length - raw.trimStart().length);
137
+ const end = rangeText(lead).length + raw.trimEnd().length;
138
+ if (end <= start) return null;
139
+ const before = text.slice(0, start).split(/\s+/).filter(Boolean);
140
+ const after = text.slice(end).split(/\s+/).filter(Boolean);
141
+ const section = all.filter((s) => samePath(s.path, own.path));
142
+ for (let words = MIN_CONTEXT_WORDS;; words++) {
143
+ const locator = {
144
+ path: own.path,
145
+ prefix: before.slice(-words).join(" "),
146
+ quote: text.slice(start, end),
147
+ suffix: after.slice(0, words).join(" ")
148
+ };
149
+ const found = matches(section, locator, TIERS[0]);
150
+ if (found.length === 1 && found[0].block === own.block && found[0].start === start) return locator;
151
+ if (words >= before.length && words >= after.length) return null;
152
+ }
153
+ }
154
+ var MARKUP = /[*_`|>#~]|(?:^|\s)[-+](?=\s)/g;
155
+ function sourcePattern(quote) {
156
+ return pattern(quote.replace(MARKUP, " ")).replaceAll("\\s*", "[\\s*_`|>#~]*");
157
+ }
158
+ function sourceBlocks(root, lines) {
159
+ return sections(root).map(({ block }) => {
160
+ const first = Number(block.dataset.sourceStart);
161
+ const last = Number(block.dataset.sourceEnd);
162
+ return {
163
+ block,
164
+ first,
165
+ last,
166
+ text: lines.slice(first - 1, last).join("\n")
167
+ };
168
+ });
169
+ }
170
+ var allMatches = (text, source) => [...text.matchAll(new RegExp(source, "g"))];
171
+ /**
172
+ * The quote locator for a selection in the raw markdown: the selection's words
173
+ * are found in the rendered block built from that line, as the same occurrence
174
+ * they are in the source, so a comment made in Source shows in Preview too.
175
+ * Null when the selection is only markup or its block renders no such words.
176
+ */
177
+ function locateSourceSelection(root, lines, span) {
178
+ const selected = lines[span.line - 1]?.slice(span.start, span.end) ?? "";
179
+ if (!selected.replace(MARKUP, " ").trim()) return null;
180
+ const own = sourceBlocks(root, lines).find((b) => span.line >= b.first && span.line <= b.last);
181
+ if (!own) return null;
182
+ const at = lines.slice(own.first - 1, span.line - 1).reduce((sum, l) => sum + l.length + 1, 0) + span.start;
183
+ const k = allMatches(own.text, sourcePattern(selected)).findIndex((m) => m.index + m[0].length > at && m.index < at + selected.length);
184
+ const hit = k < 0 ? void 0 : allMatches(blockText(own.block), pattern(selected.replace(MARKUP, " ")))[k];
185
+ return hit ? locateSelection(root, rangeIn(own.block, hit.index, hit.index + hit[0].length)) : null;
186
+ }
187
+ /** Where a quote anchor's text sits in the raw markdown, one span per source line it covers. */
188
+ function sourceSpans(root, lines, locator) {
189
+ const range = resolveQuote(root, locator);
190
+ const own = range && sourceBlocks(root, lines).find(({ block }) => block.contains(range.startContainer));
191
+ if (!range || !own) return [];
192
+ const lead = document.createRange();
193
+ lead.setStart(own.block, 0);
194
+ lead.setEnd(range.startContainer, range.startOffset);
195
+ const offset = rangeText(lead).length;
196
+ const k = allMatches(blockText(own.block), pattern(locator.quote)).findIndex((m) => m.index === offset);
197
+ const hit = k < 0 ? void 0 : allMatches(own.text, sourcePattern(locator.quote))[k];
198
+ if (!hit) return [];
199
+ const spans = [];
200
+ let lineStart = 0;
201
+ for (let line = own.first; line <= own.last; line++) {
202
+ const text = lines[line - 1] ?? "";
203
+ const start = Math.max(hit.index, lineStart) - lineStart;
204
+ const end = Math.min(hit.index + hit[0].length, lineStart + text.length) - lineStart;
205
+ if (end > start) spans.push({
206
+ line,
207
+ start,
208
+ end
209
+ });
210
+ lineStart += text.length + 1;
211
+ }
212
+ return spans;
213
+ }
214
+ function rangeText(range) {
215
+ const content = range.cloneContents();
216
+ for (const avatar of content.querySelectorAll("[data-comment-author]")) avatar.remove();
217
+ return content.textContent ?? "";
218
+ }
219
+ /** Reader-facing label: the section and the quoted words. */
220
+ function describeQuote(locator) {
221
+ const section = locator.path.at(-1);
222
+ return `${section ? `${section} › ` : ""}“${locator.quote}”`;
223
+ }
224
+ export { QUOTE_PREFIX, describeQuote, locateSelection, locateSourceSelection, markdownOutline, parseQuoteAnchor, quoteAnchor, resolveQuote, sourceSpans };
225
+
226
+ //# sourceMappingURL=quote-anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote-anchor.js","names":[],"sources":["../../../src/file-findings/file-review/quote-anchor.ts"],"sourcesContent":["// Anchors on words inside rendered markdown, in the spirit of the W3C\n// TextQuoteSelector: a quote is found again through the heading outline (the\n// section it sits in) plus a few words on each side, so the same words\n// elsewhere — or edits to other sections — never move it.\n\n/** A quote inside the section named by `path` (its heading trail), with the words around it. */\nexport type QuoteLocator = { path: string[]; prefix: string; quote: string; suffix: string };\n\nexport const QUOTE_PREFIX = \"q:\";\n\nconst SOURCE_BLOCK = \"[data-source-start]\";\nconst HEADING = /^h([1-6])$/;\n/** Heading text kept in a path; longer headings are cut so stored anchors stay bounded. */\nexport const OUTLINE_HEADING_LIMIT = 200;\n/** Context words taken on each side to start with; grown until the anchor is unique. */\nconst MIN_CONTEXT_WORDS = 2;\n\nexport function quoteAnchor(locator: QuoteLocator): string {\n return `${QUOTE_PREFIX}${JSON.stringify([locator.path, locator.prefix, locator.quote, locator.suffix])}`;\n}\n\n/** The locator a `q:` anchor encodes; throws for a malformed one. */\nexport function parseQuoteAnchor(anchor: string): QuoteLocator {\n if (!anchor.startsWith(QUOTE_PREFIX)) throw new Error(`not a quote anchor: ${JSON.stringify(anchor)}`);\n const parsed: unknown = JSON.parse(anchor.slice(QUOTE_PREFIX.length));\n const [path, prefix, quote, suffix] = Array.isArray(parsed) ? parsed : [];\n if (\n !Array.isArray(path) ||\n !path.every((heading) => typeof heading === \"string\") ||\n typeof prefix !== \"string\" ||\n typeof quote !== \"string\" ||\n typeof suffix !== \"string\"\n ) {\n throw new Error(`malformed quote anchor ${JSON.stringify(anchor)}`);\n }\n return { path, prefix, quote, suffix };\n}\n\n/** A top-level rendered block, the heading trail it sits under, and its first source line. */\nexport type OutlineEntry = { block: Element; path: string[]; line: number };\n\n/**\n * Every top-level block of rendered markdown (`Markdown sourceBlocks`) in\n * document order, with the headings above it: its table-of-contents path.\n */\nexport function markdownOutline(root: Element): OutlineEntry[] {\n const stack: { level: number; text: string }[] = [];\n return [...root.querySelectorAll(SOURCE_BLOCK)]\n .filter((block) => !block.parentElement?.closest(SOURCE_BLOCK))\n .map((block) => {\n const level = HEADING.exec(block.tagName.toLowerCase())?.[1];\n if (level) {\n while (stack.length > 0 && (stack.at(-1)?.level ?? 0) >= Number(level)) stack.pop();\n const text = blockText(block).replace(/\\s+/g, \" \").trim().slice(0, OUTLINE_HEADING_LIMIT);\n stack.push({ level: Number(level), text });\n }\n return { block, path: stack.map((heading) => heading.text), line: Number((block as HTMLElement).dataset.sourceStart) };\n });\n}\n\ntype Section = Pick<OutlineEntry, \"block\" | \"path\">;\n\nconst sections = (root: Element): Section[] => markdownOutline(root);\n\nfunction textNodes(block: Element): Text[] {\n const walker = document.createTreeWalker(block, NodeFilter.SHOW_TEXT);\n const nodes: Text[] = [];\n for (let node = walker.nextNode(); node; node = walker.nextNode()) {\n if (!node.parentElement?.closest(\"[data-comment-author]\")) nodes.push(node as Text);\n }\n return nodes;\n}\n\n/** A block's text exactly as its text nodes concatenate, so offsets map back onto them. */\nfunction blockText(block: Element): string {\n return textNodes(block)\n .map((node) => node.data)\n .join(\"\");\n}\n\nfunction rangeIn(block: Element, start: number, end: number): Range {\n const range = document.createRange();\n let offset = 0;\n let started = false;\n for (const node of textNodes(block)) {\n if (!started && start < offset + node.length) {\n range.setStart(node, start - offset);\n started = true;\n }\n if (started && end <= offset + node.length) {\n range.setEnd(node, end - offset);\n return range;\n }\n offset += node.length;\n }\n throw new Error(`quote-anchor: offsets ${start}-${end} lie outside the block`);\n}\n\n// Rendered cells and list items concatenate without whitespace (\"lead5 min\"),\n// so any run of whitespace in the locator matches zero or more in the text.\nfunction pattern(text: string): string {\n return text\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .map((word) => word.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"))\n .join(\"\\\\s*\");\n}\n\ntype Match = { block: Element; start: number; end: number };\n\nfunction matches(candidates: readonly Section[], locator: QuoteLocator, context: { prefix: boolean; suffix: boolean }): Match[] {\n const before = context.prefix && locator.prefix.trim() ? `(?<=${pattern(locator.prefix)}\\\\s*)` : \"\";\n const after = context.suffix && locator.suffix.trim() ? `(?=\\\\s*${pattern(locator.suffix)})` : \"\";\n const regex = new RegExp(`${before}${pattern(locator.quote)}${after}`, \"g\");\n return candidates.flatMap(({ block }) =>\n [...blockText(block).matchAll(regex)].map((m) => ({ block, start: m.index, end: m.index + m[0].length })),\n );\n}\n\nconst samePath = (a: readonly string[], b: readonly string[]) => a.length === b.length && a.every((h, i) => h === b[i]);\n\n// Strictest first. A looser tier is tried only when a stricter one finds\n// nothing, so edited context still resolves, but never guesses between two.\nconst TIERS = [\n { prefix: true, suffix: true },\n { prefix: true, suffix: false },\n { prefix: false, suffix: true },\n] as const;\n\n/**\n * Finds a quote again: in its section by quote plus context, then with one\n * side of the context edited away; failing that (a renamed heading), anywhere\n * by the full context. Null when it is gone or ambiguous.\n */\nexport function resolveQuote(root: Element, locator: QuoteLocator): Range | null {\n const all = sections(root);\n const section = all.filter((s) => samePath(s.path, locator.path));\n for (const tier of TIERS) {\n const found = matches(section, locator, tier);\n if (found.length === 1) return rangeIn(found[0]!.block, found[0]!.start, found[0]!.end);\n }\n const relocated = matches(all, locator, TIERS[0]);\n return relocated.length === 1 ? rangeIn(relocated[0]!.block, relocated[0]!.start, relocated[0]!.end) : null;\n}\n\n/**\n * The locator for a selection inside one block, with just enough context on\n * each side to make it unique in its section. Null when the selection spans\n * blocks, is blank, or repeats so exactly that no context tells it apart.\n */\nexport function locateSelection(root: Element, range: Range): QuoteLocator | null {\n const all = sections(root);\n const own = all.find(({ block }) => block.contains(range.startContainer) && block.contains(range.endContainer));\n if (!own) return null;\n const text = blockText(own.block);\n const lead = document.createRange();\n lead.setStart(own.block, 0);\n lead.setEnd(range.startContainer, range.startOffset);\n const raw = rangeText(range);\n const start = rangeText(lead).length + (raw.length - raw.trimStart().length);\n const end = rangeText(lead).length + raw.trimEnd().length;\n if (end <= start) return null;\n\n const before = text.slice(0, start).split(/\\s+/).filter(Boolean);\n const after = text.slice(end).split(/\\s+/).filter(Boolean);\n const section = all.filter((s) => samePath(s.path, own.path));\n for (let words = MIN_CONTEXT_WORDS; ; words++) {\n const locator = {\n path: own.path,\n prefix: before.slice(-words).join(\" \"),\n quote: text.slice(start, end),\n suffix: after.slice(0, words).join(\" \"),\n };\n const found = matches(section, locator, TIERS[0]);\n if (found.length === 1 && found[0]!.block === own.block && found[0]!.start === start) return locator;\n if (words >= before.length && words >= after.length) return null;\n }\n}\n\n/** A run of characters on one source line (1-based line, 0-based columns). */\nexport type SourceSpan = { line: number; start: number; end: number };\n\n// Markdown markup that renders as nothing (emphasis, code ticks, table pipes,\n// quote and heading markers, list bullets), so it may sit between source words.\nconst MARKUP = /[*_`|>#~]|(?:^|\\s)[-+](?=\\s)/g;\n\nfunction sourcePattern(quote: string): string {\n return pattern(quote.replace(MARKUP, \" \")).replaceAll(\"\\\\s*\", \"[\\\\s*_`|>#~]*\");\n}\n\nfunction sourceBlocks(root: Element, lines: readonly string[]) {\n return sections(root).map(({ block }) => {\n const first = Number((block as HTMLElement).dataset.sourceStart);\n const last = Number((block as HTMLElement).dataset.sourceEnd);\n return { block, first, last, text: lines.slice(first - 1, last).join(\"\\n\") };\n });\n}\n\nconst allMatches = (text: string, source: string) => [...text.matchAll(new RegExp(source, \"g\"))];\n\n/**\n * The quote locator for a selection in the raw markdown: the selection's words\n * are found in the rendered block built from that line, as the same occurrence\n * they are in the source, so a comment made in Source shows in Preview too.\n * Null when the selection is only markup or its block renders no such words.\n */\nexport function locateSourceSelection(root: Element, lines: readonly string[], span: SourceSpan): QuoteLocator | null {\n const selected = lines[span.line - 1]?.slice(span.start, span.end) ?? \"\";\n if (!selected.replace(MARKUP, \" \").trim()) return null;\n const own = sourceBlocks(root, lines).find((b) => span.line >= b.first && span.line <= b.last);\n if (!own) return null;\n const at = lines.slice(own.first - 1, span.line - 1).reduce((sum, l) => sum + l.length + 1, 0) + span.start;\n const k = allMatches(own.text, sourcePattern(selected)).findIndex((m) => m.index + m[0].length > at && m.index < at + selected.length);\n const hit = k < 0 ? undefined : allMatches(blockText(own.block), pattern(selected.replace(MARKUP, \" \")))[k];\n return hit ? locateSelection(root, rangeIn(own.block, hit.index, hit.index + hit[0].length)) : null;\n}\n\n/** Where a quote anchor's text sits in the raw markdown, one span per source line it covers. */\nexport function sourceSpans(root: Element, lines: readonly string[], locator: QuoteLocator): SourceSpan[] {\n const range = resolveQuote(root, locator);\n const own = range && sourceBlocks(root, lines).find(({ block }) => block.contains(range.startContainer));\n if (!range || !own) return [];\n const lead = document.createRange();\n lead.setStart(own.block, 0);\n lead.setEnd(range.startContainer, range.startOffset);\n const offset = rangeText(lead).length;\n const k = allMatches(blockText(own.block), pattern(locator.quote)).findIndex((m) => m.index === offset);\n const hit = k < 0 ? undefined : allMatches(own.text, sourcePattern(locator.quote))[k];\n if (!hit) return [];\n const spans: SourceSpan[] = [];\n let lineStart = 0;\n for (let line = own.first; line <= own.last; line++) {\n const text = lines[line - 1] ?? \"\";\n const start = Math.max(hit.index, lineStart) - lineStart;\n const end = Math.min(hit.index + hit[0].length, lineStart + text.length) - lineStart;\n if (end > start) spans.push({ line, start, end });\n lineStart += text.length + 1;\n }\n return spans;\n}\n\nfunction rangeText(range: Range): string {\n const content = range.cloneContents();\n for (const avatar of content.querySelectorAll(\"[data-comment-author]\")) avatar.remove();\n return content.textContent ?? \"\";\n}\n\n/** Reader-facing label: the section and the quoted words. */\nexport function describeQuote(locator: QuoteLocator): string {\n const section = locator.path.at(-1);\n return `${section ? `${section} › ` : \"\"}“${locator.quote}”`;\n}\n"],"mappings":";AAQA,IAAa,eAAe;AAE5B,IAAM,eAAe;AACrB,IAAM,UAAU;;AAIhB,IAAM,oBAAoB;AAE1B,SAAgB,YAAY,SAA+B;CACzD,OAAO,KAAkB,KAAK,UAAU;EAAC,QAAQ;EAAM,QAAQ;EAAQ,QAAQ;EAAO,QAAQ;CAAM,CAAC;AACvG;;AAGA,SAAgB,iBAAiB,QAA8B;CAC7D,IAAI,CAAC,OAAO,WAAA,IAAuB,GAAG,MAAM,IAAI,MAAM,uBAAuB,KAAK,UAAU,MAAM,GAAG;CACrG,MAAM,SAAkB,KAAK,MAAM,OAAO,MAAM,CAAmB,CAAC;CACpE,MAAM,CAAC,MAAM,QAAQ,OAAO,UAAU,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC;CACxE,IACE,CAAC,MAAM,QAAQ,IAAI,KACnB,CAAC,KAAK,OAAO,YAAY,OAAO,YAAY,QAAQ,KACpD,OAAO,WAAW,YAClB,OAAO,UAAU,YACjB,OAAO,WAAW,UAElB,MAAM,IAAI,MAAM,0BAA0B,KAAK,UAAU,MAAM,GAAG;CAEpE,OAAO;EAAE;EAAM;EAAQ;EAAO;CAAO;AACvC;;;;;AASA,SAAgB,gBAAgB,MAA+B;CAC7D,MAAM,QAA2C,CAAC;CAClD,OAAO,CAAC,GAAG,KAAK,iBAAiB,YAAY,CAAC,CAAC,CAC5C,QAAQ,UAAU,CAAC,MAAM,eAAe,QAAQ,YAAY,CAAC,CAAC,CAC9D,KAAK,UAAU;EACd,MAAM,QAAQ,QAAQ,KAAK,MAAM,QAAQ,YAAY,CAAC,CAAC,GAAG;EAC1D,IAAI,OAAO;GACT,OAAO,MAAM,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,MAAM,OAAO,KAAK,GAAG,MAAM,IAAI;GAClF,MAAM,OAAO,UAAU,KAAK,CAAC,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAA,GAAwB;GACxF,MAAM,KAAK;IAAE,OAAO,OAAO,KAAK;IAAG;GAAK,CAAC;EAC3C;EACA,OAAO;GAAE;GAAO,MAAM,MAAM,KAAK,YAAY,QAAQ,IAAI;GAAG,MAAM,OAAQ,MAAsB,QAAQ,WAAW;EAAE;CACvH,CAAC;AACL;AAIA,IAAM,YAAY,SAA6B,gBAAgB,IAAI;AAEnE,SAAS,UAAU,OAAwB;CACzC,MAAM,SAAS,SAAS,iBAAiB,OAAO,WAAW,SAAS;CACpE,MAAM,QAAgB,CAAC;CACvB,KAAK,IAAI,OAAO,OAAO,SAAS,GAAG,MAAM,OAAO,OAAO,SAAS,GAC9D,IAAI,CAAC,KAAK,eAAe,QAAQ,uBAAuB,GAAG,MAAM,KAAK,IAAY;CAEpF,OAAO;AACT;;AAGA,SAAS,UAAU,OAAwB;CACzC,OAAO,UAAU,KAAK,CAAC,CACpB,KAAK,SAAS,KAAK,IAAI,CAAC,CACxB,KAAK,EAAE;AACZ;AAEA,SAAS,QAAQ,OAAgB,OAAe,KAAoB;CAClE,MAAM,QAAQ,SAAS,YAAY;CACnC,IAAI,SAAS;CACb,IAAI,UAAU;CACd,KAAK,MAAM,QAAQ,UAAU,KAAK,GAAG;EACnC,IAAI,CAAC,WAAW,QAAQ,SAAS,KAAK,QAAQ;GAC5C,MAAM,SAAS,MAAM,QAAQ,MAAM;GACnC,UAAU;EACZ;EACA,IAAI,WAAW,OAAO,SAAS,KAAK,QAAQ;GAC1C,MAAM,OAAO,MAAM,MAAM,MAAM;GAC/B,OAAO;EACT;EACA,UAAU,KAAK;CACjB;CACA,MAAM,IAAI,MAAM,yBAAyB,MAAM,GAAG,IAAI,uBAAuB;AAC/E;AAIA,SAAS,QAAQ,MAAsB;CACrC,OAAO,KACJ,KAAK,CAAC,CACN,MAAM,KAAK,CAAC,CACZ,OAAO,OAAO,CAAC,CACf,KAAK,SAAS,KAAK,QAAQ,uBAAuB,MAAM,CAAC,CAAC,CAC1D,KAAK,MAAM;AAChB;AAIA,SAAS,QAAQ,YAAgC,SAAuB,SAAwD;CAC9H,MAAM,SAAS,QAAQ,UAAU,QAAQ,OAAO,KAAK,IAAI,OAAO,QAAQ,QAAQ,MAAM,EAAE,SAAS;CACjG,MAAM,QAAQ,QAAQ,UAAU,QAAQ,OAAO,KAAK,IAAI,UAAU,QAAQ,QAAQ,MAAM,EAAE,KAAK;CAC/F,MAAM,QAAQ,IAAI,OAAO,GAAG,SAAS,QAAQ,QAAQ,KAAK,IAAI,SAAS,GAAG;CAC1E,OAAO,WAAW,SAAS,EAAE,YAC3B,CAAC,GAAG,UAAU,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;EAAE;EAAO,OAAO,EAAE;EAAO,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;CAAO,EAAE,CAC1G;AACF;AAEA,IAAM,YAAY,GAAsB,MAAyB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,MAAM,EAAE,EAAE;AAItH,IAAM,QAAQ;CACZ;EAAE,QAAQ;EAAM,QAAQ;CAAK;CAC7B;EAAE,QAAQ;EAAM,QAAQ;CAAM;CAC9B;EAAE,QAAQ;EAAO,QAAQ;CAAK;AAChC;;;;;;AAOA,SAAgB,aAAa,MAAe,SAAqC;CAC/E,MAAM,MAAM,SAAS,IAAI;CACzB,MAAM,UAAU,IAAI,QAAQ,MAAM,SAAS,EAAE,MAAM,QAAQ,IAAI,CAAC;CAChE,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,QAAQ,QAAQ,SAAS,SAAS,IAAI;EAC5C,IAAI,MAAM,WAAW,GAAG,OAAO,QAAQ,MAAM,EAAE,CAAE,OAAO,MAAM,EAAE,CAAE,OAAO,MAAM,EAAE,CAAE,GAAG;CACxF;CACA,MAAM,YAAY,QAAQ,KAAK,SAAS,MAAM,EAAE;CAChD,OAAO,UAAU,WAAW,IAAI,QAAQ,UAAU,EAAE,CAAE,OAAO,UAAU,EAAE,CAAE,OAAO,UAAU,EAAE,CAAE,GAAG,IAAI;AACzG;;;;;;AAOA,SAAgB,gBAAgB,MAAe,OAAmC;CAChF,MAAM,MAAM,SAAS,IAAI;CACzB,MAAM,MAAM,IAAI,MAAM,EAAE,YAAY,MAAM,SAAS,MAAM,cAAc,KAAK,MAAM,SAAS,MAAM,YAAY,CAAC;CAC9G,IAAI,CAAC,KAAK,OAAO;CACjB,MAAM,OAAO,UAAU,IAAI,KAAK;CAChC,MAAM,OAAO,SAAS,YAAY;CAClC,KAAK,SAAS,IAAI,OAAO,CAAC;CAC1B,KAAK,OAAO,MAAM,gBAAgB,MAAM,WAAW;CACnD,MAAM,MAAM,UAAU,KAAK;CAC3B,MAAM,QAAQ,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC;CACrE,MAAM,MAAM,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;CACnD,IAAI,OAAO,OAAO,OAAO;CAEzB,MAAM,SAAS,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO;CAC/D,MAAM,QAAQ,KAAK,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO;CACzD,MAAM,UAAU,IAAI,QAAQ,MAAM,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC;CAC5D,KAAK,IAAI,QAAQ,oBAAqB,SAAS;EAC7C,MAAM,UAAU;GACd,MAAM,IAAI;GACV,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG;GACrC,OAAO,KAAK,MAAM,OAAO,GAAG;GAC5B,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG;EACxC;EACA,MAAM,QAAQ,QAAQ,SAAS,SAAS,MAAM,EAAE;EAChD,IAAI,MAAM,WAAW,KAAK,MAAM,EAAE,CAAE,UAAU,IAAI,SAAS,MAAM,EAAE,CAAE,UAAU,OAAO,OAAO;EAC7F,IAAI,SAAS,OAAO,UAAU,SAAS,MAAM,QAAQ,OAAO;CAC9D;AACF;AAOA,IAAM,SAAS;AAEf,SAAS,cAAc,OAAuB;CAC5C,OAAO,QAAQ,MAAM,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,WAAW,QAAQ,eAAe;AAC/E;AAEA,SAAS,aAAa,MAAe,OAA0B;CAC7D,OAAO,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,YAAY;EACvC,MAAM,QAAQ,OAAQ,MAAsB,QAAQ,WAAW;EAC/D,MAAM,OAAO,OAAQ,MAAsB,QAAQ,SAAS;EAC5D,OAAO;GAAE;GAAO;GAAO;GAAM,MAAM,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI;EAAE;CAC7E,CAAC;AACH;AAEA,IAAM,cAAc,MAAc,WAAmB,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,QAAQ,GAAG,CAAC,CAAC;;;;;;;AAQ/F,SAAgB,sBAAsB,MAAe,OAA0B,MAAuC;CACpH,MAAM,WAAW,MAAM,KAAK,OAAO,EAAE,EAAE,MAAM,KAAK,OAAO,KAAK,GAAG,KAAK;CACtE,IAAI,CAAC,SAAS,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO;CAClD,MAAM,MAAM,aAAa,MAAM,KAAK,CAAC,CAAC,MAAM,MAAM,KAAK,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,IAAI;CAC7F,IAAI,CAAC,KAAK,OAAO;CACjB,MAAM,KAAK,MAAM,MAAM,IAAI,QAAQ,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,MAAM,EAAE,SAAS,GAAG,CAAC,IAAI,KAAK;CACtG,MAAM,IAAI,WAAW,IAAI,MAAM,cAAc,QAAQ,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,QAAQ,KAAK,SAAS,MAAM;CACrI,MAAM,MAAM,IAAI,IAAI,KAAA,IAAY,WAAW,UAAU,IAAI,KAAK,GAAG,QAAQ,SAAS,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;CACzG,OAAO,MAAM,gBAAgB,MAAM,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI;AACjG;;AAGA,SAAgB,YAAY,MAAe,OAA0B,SAAqC;CACxG,MAAM,QAAQ,aAAa,MAAM,OAAO;CACxC,MAAM,MAAM,SAAS,aAAa,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,YAAY,MAAM,SAAS,MAAM,cAAc,CAAC;CACvG,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC;CAC5B,MAAM,OAAO,SAAS,YAAY;CAClC,KAAK,SAAS,IAAI,OAAO,CAAC;CAC1B,KAAK,OAAO,MAAM,gBAAgB,MAAM,WAAW;CACnD,MAAM,SAAS,UAAU,IAAI,CAAC,CAAC;CAC/B,MAAM,IAAI,WAAW,UAAU,IAAI,KAAK,GAAG,QAAQ,QAAQ,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,UAAU,MAAM;CACtG,MAAM,MAAM,IAAI,IAAI,KAAA,IAAY,WAAW,IAAI,MAAM,cAAc,QAAQ,KAAK,CAAC,CAAC,CAAC;CACnF,IAAI,CAAC,KAAK,OAAO,CAAC;CAClB,MAAM,QAAsB,CAAC;CAC7B,IAAI,YAAY;CAChB,KAAK,IAAI,OAAO,IAAI,OAAO,QAAQ,IAAI,MAAM,QAAQ;EACnD,MAAM,OAAO,MAAM,OAAO,MAAM;EAChC,MAAM,QAAQ,KAAK,IAAI,IAAI,OAAO,SAAS,IAAI;EAC/C,MAAM,MAAM,KAAK,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,QAAQ,YAAY,KAAK,MAAM,IAAI;EAC3E,IAAI,MAAM,OAAO,MAAM,KAAK;GAAE;GAAM;GAAO;EAAI,CAAC;EAChD,aAAa,KAAK,SAAS;CAC7B;CACA,OAAO;AACT;AAEA,SAAS,UAAU,OAAsB;CACvC,MAAM,UAAU,MAAM,cAAc;CACpC,KAAK,MAAM,UAAU,QAAQ,iBAAiB,uBAAuB,GAAG,OAAO,OAAO;CACtF,OAAO,QAAQ,eAAe;AAChC;;AAGA,SAAgB,cAAc,SAA+B;CAC3D,MAAM,UAAU,QAAQ,KAAK,GAAG,EAAE;CAClC,OAAO,GAAG,UAAU,GAAG,QAAQ,OAAO,GAAG,GAAG,QAAQ,MAAM;AAC5D"}