@flanksource/clicky-ui 0.3.1 → 0.3.3

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 (382) hide show
  1. package/dist/comments/CommentAuthor.cjs +58 -0
  2. package/dist/comments/CommentAuthor.cjs.map +1 -0
  3. package/dist/comments/CommentAuthor.d.ts +17 -0
  4. package/dist/comments/CommentAuthor.d.ts.map +1 -0
  5. package/dist/comments/CommentAuthor.js +58 -0
  6. package/dist/comments/CommentAuthor.js.map +1 -0
  7. package/dist/comments/CommentCard.cjs +343 -0
  8. package/dist/comments/CommentCard.cjs.map +1 -0
  9. package/dist/comments/CommentCard.d.ts +27 -0
  10. package/dist/comments/CommentCard.d.ts.map +1 -0
  11. package/dist/comments/CommentCard.js +343 -0
  12. package/dist/comments/CommentCard.js.map +1 -0
  13. package/dist/comments/CommentComposer.cjs +207 -0
  14. package/dist/comments/CommentComposer.cjs.map +1 -0
  15. package/dist/comments/CommentComposer.d.ts +23 -0
  16. package/dist/comments/CommentComposer.d.ts.map +1 -0
  17. package/dist/comments/CommentComposer.js +207 -0
  18. package/dist/comments/CommentComposer.js.map +1 -0
  19. package/dist/comments/CommentFilterBar.cjs +145 -0
  20. package/dist/comments/CommentFilterBar.cjs.map +1 -0
  21. package/dist/comments/CommentFilterBar.d.ts +15 -0
  22. package/dist/comments/CommentFilterBar.d.ts.map +1 -0
  23. package/dist/comments/CommentFilterBar.js +145 -0
  24. package/dist/comments/CommentFilterBar.js.map +1 -0
  25. package/dist/comments/CommentMarkdown.cjs +156 -0
  26. package/dist/comments/CommentMarkdown.cjs.map +1 -0
  27. package/dist/comments/CommentMarkdown.d.ts +13 -0
  28. package/dist/comments/CommentMarkdown.d.ts.map +1 -0
  29. package/dist/comments/CommentMarkdown.js +156 -0
  30. package/dist/comments/CommentMarkdown.js.map +1 -0
  31. package/dist/comments/CommentProgress.cjs +86 -0
  32. package/dist/comments/CommentProgress.cjs.map +1 -0
  33. package/dist/comments/CommentProgress.d.ts +16 -0
  34. package/dist/comments/CommentProgress.d.ts.map +1 -0
  35. package/dist/comments/CommentProgress.js +86 -0
  36. package/dist/comments/CommentProgress.js.map +1 -0
  37. package/dist/comments/CommentProvider.cjs +99 -0
  38. package/dist/comments/CommentProvider.cjs.map +1 -0
  39. package/dist/comments/CommentProvider.d.ts +19 -0
  40. package/dist/comments/CommentProvider.d.ts.map +1 -0
  41. package/dist/comments/CommentProvider.js +99 -0
  42. package/dist/comments/CommentProvider.js.map +1 -0
  43. package/dist/comments/CommentSidePanel.cjs +219 -0
  44. package/dist/comments/CommentSidePanel.cjs.map +1 -0
  45. package/dist/comments/CommentSidePanel.d.ts +16 -0
  46. package/dist/comments/CommentSidePanel.d.ts.map +1 -0
  47. package/dist/comments/CommentSidePanel.js +219 -0
  48. package/dist/comments/CommentSidePanel.js.map +1 -0
  49. package/dist/comments/CommentThread.cjs +57 -0
  50. package/dist/comments/CommentThread.cjs.map +1 -0
  51. package/dist/comments/CommentThread.d.ts +24 -0
  52. package/dist/comments/CommentThread.d.ts.map +1 -0
  53. package/dist/comments/CommentThread.js +57 -0
  54. package/dist/comments/CommentThread.js.map +1 -0
  55. package/dist/comments/CommentThreadList.cjs +124 -0
  56. package/dist/comments/CommentThreadList.cjs.map +1 -0
  57. package/dist/comments/CommentThreadList.d.ts +25 -0
  58. package/dist/comments/CommentThreadList.d.ts.map +1 -0
  59. package/dist/comments/CommentThreadList.js +124 -0
  60. package/dist/comments/CommentThreadList.js.map +1 -0
  61. package/dist/comments/GroupedComments.cjs +74 -0
  62. package/dist/comments/GroupedComments.cjs.map +1 -0
  63. package/dist/comments/GroupedComments.d.ts +18 -0
  64. package/dist/comments/GroupedComments.d.ts.map +1 -0
  65. package/dist/comments/GroupedComments.js +74 -0
  66. package/dist/comments/GroupedComments.js.map +1 -0
  67. package/dist/comments/MentionTextarea.cjs +253 -0
  68. package/dist/comments/MentionTextarea.cjs.map +1 -0
  69. package/dist/comments/MentionTextarea.d.ts +28 -0
  70. package/dist/comments/MentionTextarea.d.ts.map +1 -0
  71. package/dist/comments/MentionTextarea.js +253 -0
  72. package/dist/comments/MentionTextarea.js.map +1 -0
  73. package/dist/comments/comment-context.cjs +33 -0
  74. package/dist/comments/comment-context.cjs.map +1 -0
  75. package/dist/comments/comment-context.d.ts +32 -0
  76. package/dist/comments/comment-context.d.ts.map +1 -0
  77. package/dist/comments/comment-context.js +33 -0
  78. package/dist/comments/comment-context.js.map +1 -0
  79. package/dist/comments/comment-fixtures.d.ts +11 -0
  80. package/dist/comments/comment-fixtures.d.ts.map +1 -0
  81. package/dist/comments/comment-types.cjs +19 -0
  82. package/dist/comments/comment-types.cjs.map +1 -0
  83. package/dist/comments/comment-types.d.ts +170 -0
  84. package/dist/comments/comment-types.d.ts.map +1 -0
  85. package/dist/comments/comment-types.js +19 -0
  86. package/dist/comments/comment-types.js.map +1 -0
  87. package/dist/comments/comment-utils.cjs +216 -0
  88. package/dist/comments/comment-utils.cjs.map +1 -0
  89. package/dist/comments/comment-utils.d.ts +59 -0
  90. package/dist/comments/comment-utils.d.ts.map +1 -0
  91. package/dist/comments/comment-utils.js +216 -0
  92. package/dist/comments/comment-utils.js.map +1 -0
  93. package/dist/comments.cjs +57 -0
  94. package/dist/comments.cjs.map +1 -0
  95. package/dist/comments.d.ts +16 -0
  96. package/dist/comments.d.ts.map +1 -0
  97. package/dist/comments.js +57 -0
  98. package/dist/comments.js.map +1 -0
  99. package/dist/components/FilterBar.cjs +13 -3
  100. package/dist/components/FilterBar.cjs.map +1 -1
  101. package/dist/components/FilterBar.js +13 -3
  102. package/dist/components/FilterBar.js.map +1 -1
  103. package/dist/components/JsonSchemaForm.cjs +20 -6
  104. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  105. package/dist/components/JsonSchemaForm.d.ts +1 -1
  106. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  107. package/dist/components/JsonSchemaForm.js +22 -8
  108. package/dist/components/JsonSchemaForm.js.map +1 -1
  109. package/dist/components/NamespacePicker.cjs +52 -0
  110. package/dist/components/NamespacePicker.cjs.map +1 -0
  111. package/dist/components/NamespacePicker.d.ts +17 -0
  112. package/dist/components/NamespacePicker.d.ts.map +1 -0
  113. package/dist/components/NamespacePicker.js +52 -0
  114. package/dist/components/NamespacePicker.js.map +1 -0
  115. package/dist/components/form-lookup-context.cjs +36 -0
  116. package/dist/components/form-lookup-context.cjs.map +1 -0
  117. package/dist/components/form-lookup-context.d.ts +9 -0
  118. package/dist/components/form-lookup-context.d.ts.map +1 -0
  119. package/dist/components/form-lookup-context.js +36 -0
  120. package/dist/components/form-lookup-context.js.map +1 -0
  121. package/dist/components/json-schema-form-discriminator.cjs +67 -0
  122. package/dist/components/json-schema-form-discriminator.cjs.map +1 -0
  123. package/dist/components/json-schema-form-discriminator.d.ts +10 -0
  124. package/dist/components/json-schema-form-discriminator.d.ts.map +1 -0
  125. package/dist/components/json-schema-form-discriminator.js +67 -0
  126. package/dist/components/json-schema-form-discriminator.js.map +1 -0
  127. package/dist/components/json-schema-form-fields.cjs +66 -1
  128. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  129. package/dist/components/json-schema-form-fields.d.ts +7 -0
  130. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  131. package/dist/components/json-schema-form-fields.js +66 -1
  132. package/dist/components/json-schema-form-fields.js.map +1 -1
  133. package/dist/components/json-schema-form-grid.cjs +92 -0
  134. package/dist/components/json-schema-form-grid.cjs.map +1 -0
  135. package/dist/components/json-schema-form-grid.d.ts +9 -0
  136. package/dist/components/json-schema-form-grid.d.ts.map +1 -0
  137. package/dist/components/json-schema-form-grid.js +92 -0
  138. package/dist/components/json-schema-form-grid.js.map +1 -0
  139. package/dist/components/json-schema-form-render.cjs +20 -3
  140. package/dist/components/json-schema-form-render.cjs.map +1 -1
  141. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  142. package/dist/components/json-schema-form-render.js +22 -5
  143. package/dist/components/json-schema-form-render.js.map +1 -1
  144. package/dist/components/json-schema-form-resolve.cjs +24 -2
  145. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  146. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  147. package/dist/components/json-schema-form-resolve.js +24 -2
  148. package/dist/components/json-schema-form-resolve.js.map +1 -1
  149. package/dist/components/json-schema-form-types.d.ts +37 -2
  150. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  151. package/dist/components/json-schema-form-utils.cjs +8 -0
  152. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  153. package/dist/components/json-schema-form-utils.d.ts +1 -0
  154. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  155. package/dist/components/json-schema-form-utils.js +8 -0
  156. package/dist/components/json-schema-form-utils.js.map +1 -1
  157. package/dist/components/workload-picker-utils.cjs.map +1 -1
  158. package/dist/components/workload-picker-utils.d.ts +11 -1
  159. package/dist/components/workload-picker-utils.d.ts.map +1 -1
  160. package/dist/components/workload-picker-utils.js.map +1 -1
  161. package/dist/components.cjs +6 -0
  162. package/dist/components.cjs.map +1 -1
  163. package/dist/components.d.ts +4 -2
  164. package/dist/components.d.ts.map +1 -1
  165. package/dist/components.js +6 -0
  166. package/dist/components.js.map +1 -1
  167. package/dist/data/Clicky.cjs +225 -60
  168. package/dist/data/Clicky.cjs.map +1 -1
  169. package/dist/data/Clicky.d.ts +7 -1
  170. package/dist/data/Clicky.d.ts.map +1 -1
  171. package/dist/data/Clicky.fixtures.d.ts +3 -1
  172. package/dist/data/Clicky.fixtures.d.ts.map +1 -1
  173. package/dist/data/Clicky.js +226 -61
  174. package/dist/data/Clicky.js.map +1 -1
  175. package/dist/data/ExecutionTree.cjs +68 -0
  176. package/dist/data/ExecutionTree.cjs.map +1 -0
  177. package/dist/data/ExecutionTree.d.ts +40 -0
  178. package/dist/data/ExecutionTree.d.ts.map +1 -0
  179. package/dist/data/ExecutionTree.js +68 -0
  180. package/dist/data/ExecutionTree.js.map +1 -0
  181. package/dist/data/GaugeHoverCard.cjs +35 -0
  182. package/dist/data/GaugeHoverCard.cjs.map +1 -0
  183. package/dist/data/GaugeHoverCard.d.ts +25 -0
  184. package/dist/data/GaugeHoverCard.d.ts.map +1 -0
  185. package/dist/data/GaugeHoverCard.js +35 -0
  186. package/dist/data/GaugeHoverCard.js.map +1 -0
  187. package/dist/data/MarkdownEditor.cjs +616 -0
  188. package/dist/data/MarkdownEditor.cjs.map +1 -0
  189. package/dist/data/MarkdownEditor.d.ts +61 -0
  190. package/dist/data/MarkdownEditor.d.ts.map +1 -0
  191. package/dist/data/MarkdownEditor.js +616 -0
  192. package/dist/data/MarkdownEditor.js.map +1 -0
  193. package/dist/data/MarkdownEditor.model.cjs +27 -0
  194. package/dist/data/MarkdownEditor.model.cjs.map +1 -0
  195. package/dist/data/MarkdownEditor.model.d.ts +38 -0
  196. package/dist/data/MarkdownEditor.model.d.ts.map +1 -0
  197. package/dist/data/MarkdownEditor.model.js +27 -0
  198. package/dist/data/MarkdownEditor.model.js.map +1 -0
  199. package/dist/data/ObjectGraph.cjs +44 -0
  200. package/dist/data/ObjectGraph.cjs.map +1 -0
  201. package/dist/data/ObjectGraph.d.ts +39 -0
  202. package/dist/data/ObjectGraph.d.ts.map +1 -0
  203. package/dist/data/ObjectGraph.js +44 -0
  204. package/dist/data/ObjectGraph.js.map +1 -0
  205. package/dist/data/SchemaViewer.cjs +152 -0
  206. package/dist/data/SchemaViewer.cjs.map +1 -0
  207. package/dist/data/SchemaViewer.d.ts +27 -0
  208. package/dist/data/SchemaViewer.d.ts.map +1 -0
  209. package/dist/data/SchemaViewer.js +152 -0
  210. package/dist/data/SchemaViewer.js.map +1 -0
  211. package/dist/data/TimeseriesCoreBars.cjs +51 -12
  212. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  213. package/dist/data/TimeseriesCoreBars.d.ts +32 -5
  214. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  215. package/dist/data/TimeseriesCoreBars.js +51 -12
  216. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  217. package/dist/data/TimeseriesCoreBars.model.cjs +5 -5
  218. package/dist/data/TimeseriesCoreBars.model.cjs.map +1 -1
  219. package/dist/data/TimeseriesCoreBars.model.d.ts +4 -4
  220. package/dist/data/TimeseriesCoreBars.model.d.ts.map +1 -1
  221. package/dist/data/TimeseriesCoreBars.model.js +5 -5
  222. package/dist/data/TimeseriesCoreBars.model.js.map +1 -1
  223. package/dist/data/TimeseriesGauge.cjs +103 -65
  224. package/dist/data/TimeseriesGauge.cjs.map +1 -1
  225. package/dist/data/TimeseriesGauge.d.ts +10 -1
  226. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  227. package/dist/data/TimeseriesGauge.js +104 -66
  228. package/dist/data/TimeseriesGauge.js.map +1 -1
  229. package/dist/data/WorkloadCard.cjs +4 -4
  230. package/dist/data/WorkloadCard.cjs.map +1 -1
  231. package/dist/data/WorkloadCard.d.ts +3 -2
  232. package/dist/data/WorkloadCard.d.ts.map +1 -1
  233. package/dist/data/WorkloadCard.js +4 -4
  234. package/dist/data/WorkloadCard.js.map +1 -1
  235. package/dist/data/ai/ChatWindow.cjs +11 -19
  236. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  237. package/dist/data/ai/ChatWindow.d.ts +1 -7
  238. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  239. package/dist/data/ai/ChatWindow.js +11 -19
  240. package/dist/data/ai/ChatWindow.js.map +1 -1
  241. package/dist/data/ai/ChatWindowRequestBody.cjs +20 -0
  242. package/dist/data/ai/ChatWindowRequestBody.cjs.map +1 -0
  243. package/dist/data/ai/ChatWindowRequestBody.d.ts +9 -0
  244. package/dist/data/ai/ChatWindowRequestBody.d.ts.map +1 -0
  245. package/dist/data/ai/ChatWindowRequestBody.js +20 -0
  246. package/dist/data/ai/ChatWindowRequestBody.js.map +1 -0
  247. package/dist/data/chat/Chat.cjs +12 -0
  248. package/dist/data/chat/Chat.cjs.map +1 -1
  249. package/dist/data/chat/Chat.d.ts +8 -1
  250. package/dist/data/chat/Chat.d.ts.map +1 -1
  251. package/dist/data/chat/Chat.js +12 -0
  252. package/dist/data/chat/Chat.js.map +1 -1
  253. package/dist/data/gauge-stats.cjs +19 -0
  254. package/dist/data/gauge-stats.cjs.map +1 -0
  255. package/dist/data/gauge-stats.d.ts +15 -0
  256. package/dist/data/gauge-stats.d.ts.map +1 -0
  257. package/dist/data/gauge-stats.js +19 -0
  258. package/dist/data/gauge-stats.js.map +1 -0
  259. package/dist/data/schema-viewer-model.cjs +436 -0
  260. package/dist/data/schema-viewer-model.cjs.map +1 -0
  261. package/dist/data/schema-viewer-model.d.ts +64 -0
  262. package/dist/data/schema-viewer-model.d.ts.map +1 -0
  263. package/dist/data/schema-viewer-model.js +436 -0
  264. package/dist/data/schema-viewer-model.js.map +1 -0
  265. package/dist/data/version-info.cjs +2 -2
  266. package/dist/data/version-info.js +2 -2
  267. package/dist/data.cjs +23 -0
  268. package/dist/data.cjs.map +1 -1
  269. package/dist/data.d.ts +11 -3
  270. package/dist/data.d.ts.map +1 -1
  271. package/dist/data.js +23 -0
  272. package/dist/data.js.map +1 -1
  273. package/dist/index.cjs +87 -2
  274. package/dist/index.cjs.map +1 -1
  275. package/dist/index.d.ts +1 -0
  276. package/dist/index.d.ts.map +1 -1
  277. package/dist/index.js +87 -2
  278. package/dist/index.js.map +1 -1
  279. package/dist/rpc/EntityExplorerApp.cjs +102 -143
  280. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  281. package/dist/rpc/EntityExplorerApp.d.ts +34 -1
  282. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  283. package/dist/rpc/EntityExplorerApp.js +105 -146
  284. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  285. package/dist/rpc/OperationActionBar.cjs +135 -0
  286. package/dist/rpc/OperationActionBar.cjs.map +1 -0
  287. package/dist/rpc/OperationActionBar.d.ts +20 -0
  288. package/dist/rpc/OperationActionBar.d.ts.map +1 -0
  289. package/dist/rpc/OperationActionBar.js +135 -0
  290. package/dist/rpc/OperationActionBar.js.map +1 -0
  291. package/dist/rpc/OperationCatalog.cjs +79 -116
  292. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  293. package/dist/rpc/OperationCatalog.d.ts +8 -1
  294. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  295. package/dist/rpc/OperationCatalog.js +80 -117
  296. package/dist/rpc/OperationCatalog.js.map +1 -1
  297. package/dist/rpc/OperationCommandPage.cjs +134 -223
  298. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  299. package/dist/rpc/OperationCommandPage.d.ts +1 -1
  300. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  301. package/dist/rpc/OperationCommandPage.js +135 -224
  302. package/dist/rpc/OperationCommandPage.js.map +1 -1
  303. package/dist/rpc/OperationEntityPage.cjs +49 -100
  304. package/dist/rpc/OperationEntityPage.cjs.map +1 -1
  305. package/dist/rpc/OperationEntityPage.d.ts +6 -1
  306. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  307. package/dist/rpc/OperationEntityPage.js +50 -101
  308. package/dist/rpc/OperationEntityPage.js.map +1 -1
  309. package/dist/rpc/OperationResultView.cjs +43 -0
  310. package/dist/rpc/OperationResultView.cjs.map +1 -0
  311. package/dist/rpc/OperationResultView.d.ts +30 -0
  312. package/dist/rpc/OperationResultView.d.ts.map +1 -0
  313. package/dist/rpc/OperationResultView.js +43 -0
  314. package/dist/rpc/OperationResultView.js.map +1 -0
  315. package/dist/rpc/SchemaActionForm.cjs +102 -0
  316. package/dist/rpc/SchemaActionForm.cjs.map +1 -0
  317. package/dist/rpc/SchemaActionForm.d.ts +23 -0
  318. package/dist/rpc/SchemaActionForm.d.ts.map +1 -0
  319. package/dist/rpc/SchemaActionForm.js +102 -0
  320. package/dist/rpc/SchemaActionForm.js.map +1 -0
  321. package/dist/rpc/accept-options.cjs.map +1 -1
  322. package/dist/rpc/accept-options.d.ts +0 -1
  323. package/dist/rpc/accept-options.d.ts.map +1 -1
  324. package/dist/rpc/accept-options.js.map +1 -1
  325. package/dist/rpc/apiClient.cjs +34 -2
  326. package/dist/rpc/apiClient.cjs.map +1 -1
  327. package/dist/rpc/apiClient.d.ts +4 -1
  328. package/dist/rpc/apiClient.d.ts.map +1 -1
  329. package/dist/rpc/apiClient.js +34 -2
  330. package/dist/rpc/apiClient.js.map +1 -1
  331. package/dist/rpc/clickyMetadata.cjs +4 -4
  332. package/dist/rpc/clickyMetadata.cjs.map +1 -1
  333. package/dist/rpc/clickyMetadata.d.ts +0 -1
  334. package/dist/rpc/clickyMetadata.d.ts.map +1 -1
  335. package/dist/rpc/clickyMetadata.js +4 -4
  336. package/dist/rpc/clickyMetadata.js.map +1 -1
  337. package/dist/rpc/formMetadata.cjs +1 -0
  338. package/dist/rpc/formMetadata.cjs.map +1 -1
  339. package/dist/rpc/formMetadata.d.ts +6 -1
  340. package/dist/rpc/formMetadata.d.ts.map +1 -1
  341. package/dist/rpc/formMetadata.js +1 -0
  342. package/dist/rpc/formMetadata.js.map +1 -1
  343. package/dist/rpc/rowNavigation.cjs +86 -0
  344. package/dist/rpc/rowNavigation.cjs.map +1 -0
  345. package/dist/rpc/rowNavigation.d.ts +14 -0
  346. package/dist/rpc/rowNavigation.d.ts.map +1 -0
  347. package/dist/rpc/rowNavigation.js +86 -0
  348. package/dist/rpc/rowNavigation.js.map +1 -0
  349. package/dist/rpc/schemaActionPath.cjs +22 -0
  350. package/dist/rpc/schemaActionPath.cjs.map +1 -0
  351. package/dist/rpc/schemaActionPath.d.ts +4 -0
  352. package/dist/rpc/schemaActionPath.d.ts.map +1 -0
  353. package/dist/rpc/schemaActionPath.js +22 -0
  354. package/dist/rpc/schemaActionPath.js.map +1 -0
  355. package/dist/rpc/surfaceIconMap.cjs +35 -0
  356. package/dist/rpc/surfaceIconMap.cjs.map +1 -0
  357. package/dist/rpc/surfaceIconMap.d.ts +3 -0
  358. package/dist/rpc/surfaceIconMap.d.ts.map +1 -0
  359. package/dist/rpc/surfaceIconMap.js +35 -0
  360. package/dist/rpc/surfaceIconMap.js.map +1 -0
  361. package/dist/rpc/types.cjs.map +1 -1
  362. package/dist/rpc/types.d.ts +2 -0
  363. package/dist/rpc/types.d.ts.map +1 -1
  364. package/dist/rpc/types.js.map +1 -1
  365. package/dist/rpc/useOperations.cjs.map +1 -1
  366. package/dist/rpc/useOperations.d.ts +4 -1
  367. package/dist/rpc/useOperations.d.ts.map +1 -1
  368. package/dist/rpc/useOperations.js.map +1 -1
  369. package/dist/rpc.cjs +4 -2
  370. package/dist/rpc.cjs.map +1 -1
  371. package/dist/rpc.d.ts +7 -6
  372. package/dist/rpc.d.ts.map +1 -1
  373. package/dist/rpc.js +4 -2
  374. package/dist/rpc.js.map +1 -1
  375. package/dist/styles.css +1 -1
  376. package/package.json +6 -1
  377. package/dist/rpc/AcceptPicker.cjs +0 -137
  378. package/dist/rpc/AcceptPicker.cjs.map +0 -1
  379. package/dist/rpc/AcceptPicker.d.ts +0 -12
  380. package/dist/rpc/AcceptPicker.d.ts.map +0 -1
  381. package/dist/rpc/AcceptPicker.js +0 -137
  382. package/dist/rpc/AcceptPicker.js.map +0 -1
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const commentUtils = require("./comment-utils.cjs");
6
+ const commentContext = require("./comment-context.cjs");
7
+ function CommentProvider({
8
+ children,
9
+ comments,
10
+ config,
11
+ resolveAnchor = commentContext.exactAnchorResolver,
12
+ onCreate,
13
+ onReply,
14
+ onUpdateStatus,
15
+ onDelete,
16
+ onChecklistToggle,
17
+ onMention
18
+ }) {
19
+ const [railMode, setRailMode] = react.useState("closed");
20
+ const [focusedAnchor, setFocusedAnchor] = react.useState(null);
21
+ const [highlightAnchor, setHighlightAnchor] = react.useState(null);
22
+ const anchorEls = react.useRef({});
23
+ const contentRef = react.useRef(null);
24
+ const commentCounts = react.useMemo(() => commentUtils.deriveAnchorCounts(comments), [comments]);
25
+ const commentMeta = react.useMemo(() => commentUtils.deriveAnchorMeta(comments), [comments]);
26
+ const focusAnchor = react.useCallback((anchor) => {
27
+ setFocusedAnchor(anchor);
28
+ setRailMode("focused");
29
+ }, []);
30
+ const openCommentList = react.useCallback(() => {
31
+ setRailMode((prev) => prev === "all" ? "closed" : "all");
32
+ }, []);
33
+ const closeRail = react.useCallback(() => setRailMode("closed"), []);
34
+ const registerAnchor = react.useCallback((anchor, el) => {
35
+ if (el) anchorEls.current[anchor] = el;
36
+ else delete anchorEls.current[anchor];
37
+ }, []);
38
+ const getAnchorTop = react.useCallback(
39
+ (anchor) => {
40
+ const resolved = resolveAnchor(anchor, Object.keys(anchorEls.current));
41
+ const el = resolved ? anchorEls.current[resolved] : null;
42
+ const container = contentRef.current;
43
+ if (!el || !container) return null;
44
+ return el.getBoundingClientRect().top - container.getBoundingClientRect().top;
45
+ },
46
+ [resolveAnchor]
47
+ );
48
+ react.useEffect(() => {
49
+ if (railMode === "focused" && !focusedAnchor) setRailMode("closed");
50
+ }, [railMode, focusedAnchor]);
51
+ const callbacks = react.useMemo(
52
+ () => ({
53
+ ...onCreate ? { onCreate } : {},
54
+ ...onReply ? { onReply } : {},
55
+ ...onUpdateStatus ? { onUpdateStatus } : {},
56
+ ...onDelete ? { onDelete } : {},
57
+ ...onChecklistToggle ? { onChecklistToggle } : {},
58
+ ...onMention ? { onMention } : {}
59
+ }),
60
+ [onCreate, onReply, onUpdateStatus, onDelete, onChecklistToggle, onMention]
61
+ );
62
+ const value = react.useMemo(
63
+ () => ({
64
+ comments,
65
+ config,
66
+ callbacks,
67
+ commentCounts,
68
+ commentMeta,
69
+ railMode,
70
+ focusedAnchor,
71
+ focusAnchor,
72
+ openCommentList,
73
+ closeRail,
74
+ registerAnchor,
75
+ getAnchorTop,
76
+ contentRef,
77
+ highlightAnchor,
78
+ setHighlightAnchor
79
+ }),
80
+ [
81
+ comments,
82
+ config,
83
+ callbacks,
84
+ commentCounts,
85
+ commentMeta,
86
+ railMode,
87
+ focusedAnchor,
88
+ focusAnchor,
89
+ openCommentList,
90
+ closeRail,
91
+ registerAnchor,
92
+ getAnchorTop,
93
+ highlightAnchor
94
+ ]
95
+ );
96
+ return /* @__PURE__ */ jsxRuntime.jsx(commentContext.CommentContext.Provider, { value, children });
97
+ }
98
+ exports.CommentProvider = CommentProvider;
99
+ //# sourceMappingURL=CommentProvider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentProvider.cjs","sources":["../../src/comments/CommentProvider.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { deriveAnchorCounts, deriveAnchorMeta } from \"./comment-utils\";\nimport {\n CommentContext,\n exactAnchorResolver,\n type AnchorResolver,\n type CommentContextValue,\n type CommentRailMode,\n} from \"./comment-context\";\nimport { type Comment, type CommentAnchor, type CommentCallbacks, type CommentConfig } from \"./comment-types\";\n\nexport type CommentProviderProps = CommentCallbacks & {\n children: ReactNode;\n /** All comments for the document; counts and metadata are derived from these. */\n comments: Comment[];\n config: CommentConfig;\n /** Strategy to map a requested anchor onto a registered one. Defaults to exact. */\n resolveAnchor?: AnchorResolver;\n};\n\n/**\n * Supplies comment state to a document subtree: derived per-anchor counts and\n * metadata, rail open/focus state, and a generic anchor registry (cells call\n * `registerAnchor` so the side panel can scroll-align to them). Owns no\n * fetching — `comments` and the callbacks are controlled by the consumer.\n */\nexport function CommentProvider({\n children,\n comments,\n config,\n resolveAnchor = exactAnchorResolver,\n onCreate,\n onReply,\n onUpdateStatus,\n onDelete,\n onChecklistToggle,\n onMention,\n}: CommentProviderProps) {\n const [railMode, setRailMode] = useState<CommentRailMode>(\"closed\");\n const [focusedAnchor, setFocusedAnchor] = useState<CommentAnchor | null>(null);\n const [highlightAnchor, setHighlightAnchor] = useState<CommentAnchor | null>(null);\n const anchorEls = useRef<Record<string, HTMLElement>>({});\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const commentCounts = useMemo(() => deriveAnchorCounts(comments), [comments]);\n const commentMeta = useMemo(() => deriveAnchorMeta(comments), [comments]);\n\n const focusAnchor = useCallback((anchor: CommentAnchor) => {\n setFocusedAnchor(anchor);\n setRailMode(\"focused\");\n }, []);\n\n const openCommentList = useCallback(() => {\n setRailMode((prev) => (prev === \"all\" ? \"closed\" : \"all\"));\n }, []);\n\n const closeRail = useCallback(() => setRailMode(\"closed\"), []);\n\n const registerAnchor = useCallback((anchor: CommentAnchor, el: HTMLElement | null) => {\n if (el) anchorEls.current[anchor] = el;\n else delete anchorEls.current[anchor];\n }, []);\n\n const getAnchorTop = useCallback(\n (anchor: CommentAnchor): number | null => {\n const resolved = resolveAnchor(anchor, Object.keys(anchorEls.current));\n const el = resolved ? anchorEls.current[resolved] : null;\n const container = contentRef.current;\n if (!el || !container) return null;\n return el.getBoundingClientRect().top - container.getBoundingClientRect().top;\n },\n [resolveAnchor],\n );\n\n // A focused rail with no anchor selected has nothing to show.\n useEffect(() => {\n if (railMode === \"focused\" && !focusedAnchor) setRailMode(\"closed\");\n }, [railMode, focusedAnchor]);\n\n const callbacks = useMemo<CommentCallbacks>(\n () => ({\n ...(onCreate ? { onCreate } : {}),\n ...(onReply ? { onReply } : {}),\n ...(onUpdateStatus ? { onUpdateStatus } : {}),\n ...(onDelete ? { onDelete } : {}),\n ...(onChecklistToggle ? { onChecklistToggle } : {}),\n ...(onMention ? { onMention } : {}),\n }),\n [onCreate, onReply, onUpdateStatus, onDelete, onChecklistToggle, onMention],\n );\n\n const value = useMemo<CommentContextValue>(\n () => ({\n comments,\n config,\n callbacks,\n commentCounts,\n commentMeta,\n railMode,\n focusedAnchor,\n focusAnchor,\n openCommentList,\n closeRail,\n registerAnchor,\n getAnchorTop,\n contentRef,\n highlightAnchor,\n setHighlightAnchor,\n }),\n [\n comments,\n config,\n callbacks,\n commentCounts,\n commentMeta,\n railMode,\n focusedAnchor,\n focusAnchor,\n openCommentList,\n closeRail,\n registerAnchor,\n getAnchorTop,\n highlightAnchor,\n ],\n );\n\n return <CommentContext.Provider value={value}>{children}</CommentContext.Provider>;\n}\n"],"names":["exactAnchorResolver","useState","useRef","useMemo","deriveAnchorCounts","deriveAnchorMeta","useCallback","useEffect","jsx","CommentContext"],"mappings":";;;;;;AA0BO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgBA,eAAAA;AAAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACvB,QAAM,CAAC,UAAU,WAAW,IAAIC,MAAAA,SAA0B,QAAQ;AAClE,QAAM,CAAC,eAAe,gBAAgB,IAAIA,MAAAA,SAA+B,IAAI;AAC7E,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,MAAAA,SAA+B,IAAI;AACjF,QAAM,YAAYC,MAAAA,OAAoC,EAAE;AACxD,QAAM,aAAaA,MAAAA,OAA8B,IAAI;AAErD,QAAM,gBAAgBC,MAAAA,QAAQ,MAAMC,aAAAA,mBAAmB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAC5E,QAAM,cAAcD,MAAAA,QAAQ,MAAME,aAAAA,iBAAiB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAExE,QAAM,cAAcC,kBAAY,CAAC,WAA0B;AACzD,qBAAiB,MAAM;AACvB,gBAAY,SAAS;AAAA,EACvB,GAAG,CAAA,CAAE;AAEL,QAAM,kBAAkBA,MAAAA,YAAY,MAAM;AACxC,gBAAY,CAAC,SAAU,SAAS,QAAQ,WAAW,KAAM;AAAA,EAC3D,GAAG,CAAA,CAAE;AAEL,QAAM,YAAYA,MAAAA,YAAY,MAAM,YAAY,QAAQ,GAAG,CAAA,CAAE;AAE7D,QAAM,iBAAiBA,MAAAA,YAAY,CAAC,QAAuB,OAA2B;AACpF,QAAI,GAAI,WAAU,QAAQ,MAAM,IAAI;AAAA,QAC/B,QAAO,UAAU,QAAQ,MAAM;AAAA,EACtC,GAAG,CAAA,CAAE;AAEL,QAAM,eAAeA,MAAAA;AAAAA,IACnB,CAAC,WAAyC;AACxC,YAAM,WAAW,cAAc,QAAQ,OAAO,KAAK,UAAU,OAAO,CAAC;AACrE,YAAM,KAAK,WAAW,UAAU,QAAQ,QAAQ,IAAI;AACpD,YAAM,YAAY,WAAW;AAC7B,UAAI,CAAC,MAAM,CAAC,UAAW,QAAO;AAC9B,aAAO,GAAG,sBAAA,EAAwB,MAAM,UAAU,wBAAwB;AAAA,IAC5E;AAAA,IACA,CAAC,aAAa;AAAA,EAAA;AAIhBC,QAAAA,UAAU,MAAM;AACd,QAAI,aAAa,aAAa,CAAC,2BAA2B,QAAQ;AAAA,EACpE,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,QAAM,YAAYJ,MAAAA;AAAAA,IAChB,OAAO;AAAA,MACL,GAAI,WAAW,EAAE,SAAA,IAAa,CAAA;AAAA,MAC9B,GAAI,UAAU,EAAE,QAAA,IAAY,CAAA;AAAA,MAC5B,GAAI,iBAAiB,EAAE,eAAA,IAAmB,CAAA;AAAA,MAC1C,GAAI,WAAW,EAAE,SAAA,IAAa,CAAA;AAAA,MAC9B,GAAI,oBAAoB,EAAE,kBAAA,IAAsB,CAAA;AAAA,MAChD,GAAI,YAAY,EAAE,cAAc,CAAA;AAAA,IAAC;AAAA,IAEnC,CAAC,UAAU,SAAS,gBAAgB,UAAU,mBAAmB,SAAS;AAAA,EAAA;AAG5E,QAAM,QAAQA,MAAAA;AAAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,SAAOK,2BAAAA,IAACC,eAAAA,eAAe,UAAf,EAAwB,OAAe,SAAA,CAAS;AAC1D;;"}
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ import { AnchorResolver } from './comment-context';
3
+ import { Comment, CommentCallbacks, CommentConfig } from './comment-types';
4
+ export type CommentProviderProps = CommentCallbacks & {
5
+ children: ReactNode;
6
+ /** All comments for the document; counts and metadata are derived from these. */
7
+ comments: Comment[];
8
+ config: CommentConfig;
9
+ /** Strategy to map a requested anchor onto a registered one. Defaults to exact. */
10
+ resolveAnchor?: AnchorResolver;
11
+ };
12
+ /**
13
+ * Supplies comment state to a document subtree: derived per-anchor counts and
14
+ * metadata, rail open/focus state, and a generic anchor registry (cells call
15
+ * `registerAnchor` so the side panel can scroll-align to them). Owns no
16
+ * fetching — `comments` and the callbacks are controlled by the consumer.
17
+ */
18
+ export declare function CommentProvider({ children, comments, config, resolveAnchor, onCreate, onReply, onUpdateStatus, onDelete, onChecklistToggle, onMention, }: CommentProviderProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=CommentProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentProvider.d.ts","sourceRoot":"","sources":["../../src/comments/CommentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1F,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,OAAO,EAAsB,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9G,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,QAAQ,EAAE,SAAS,CAAC;IACpB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,mFAAmF;IACnF,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAmC,EACnC,QAAQ,EACR,OAAO,EACP,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,SAAS,GACV,EAAE,oBAAoB,2CA0FtB"}
@@ -0,0 +1,99 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useState, useRef, useMemo, useCallback, useEffect } from "react";
3
+ import { deriveAnchorCounts, deriveAnchorMeta } from "./comment-utils.js";
4
+ import { exactAnchorResolver, CommentContext } from "./comment-context.js";
5
+ function CommentProvider({
6
+ children,
7
+ comments,
8
+ config,
9
+ resolveAnchor = exactAnchorResolver,
10
+ onCreate,
11
+ onReply,
12
+ onUpdateStatus,
13
+ onDelete,
14
+ onChecklistToggle,
15
+ onMention
16
+ }) {
17
+ const [railMode, setRailMode] = useState("closed");
18
+ const [focusedAnchor, setFocusedAnchor] = useState(null);
19
+ const [highlightAnchor, setHighlightAnchor] = useState(null);
20
+ const anchorEls = useRef({});
21
+ const contentRef = useRef(null);
22
+ const commentCounts = useMemo(() => deriveAnchorCounts(comments), [comments]);
23
+ const commentMeta = useMemo(() => deriveAnchorMeta(comments), [comments]);
24
+ const focusAnchor = useCallback((anchor) => {
25
+ setFocusedAnchor(anchor);
26
+ setRailMode("focused");
27
+ }, []);
28
+ const openCommentList = useCallback(() => {
29
+ setRailMode((prev) => prev === "all" ? "closed" : "all");
30
+ }, []);
31
+ const closeRail = useCallback(() => setRailMode("closed"), []);
32
+ const registerAnchor = useCallback((anchor, el) => {
33
+ if (el) anchorEls.current[anchor] = el;
34
+ else delete anchorEls.current[anchor];
35
+ }, []);
36
+ const getAnchorTop = useCallback(
37
+ (anchor) => {
38
+ const resolved = resolveAnchor(anchor, Object.keys(anchorEls.current));
39
+ const el = resolved ? anchorEls.current[resolved] : null;
40
+ const container = contentRef.current;
41
+ if (!el || !container) return null;
42
+ return el.getBoundingClientRect().top - container.getBoundingClientRect().top;
43
+ },
44
+ [resolveAnchor]
45
+ );
46
+ useEffect(() => {
47
+ if (railMode === "focused" && !focusedAnchor) setRailMode("closed");
48
+ }, [railMode, focusedAnchor]);
49
+ const callbacks = useMemo(
50
+ () => ({
51
+ ...onCreate ? { onCreate } : {},
52
+ ...onReply ? { onReply } : {},
53
+ ...onUpdateStatus ? { onUpdateStatus } : {},
54
+ ...onDelete ? { onDelete } : {},
55
+ ...onChecklistToggle ? { onChecklistToggle } : {},
56
+ ...onMention ? { onMention } : {}
57
+ }),
58
+ [onCreate, onReply, onUpdateStatus, onDelete, onChecklistToggle, onMention]
59
+ );
60
+ const value = useMemo(
61
+ () => ({
62
+ comments,
63
+ config,
64
+ callbacks,
65
+ commentCounts,
66
+ commentMeta,
67
+ railMode,
68
+ focusedAnchor,
69
+ focusAnchor,
70
+ openCommentList,
71
+ closeRail,
72
+ registerAnchor,
73
+ getAnchorTop,
74
+ contentRef,
75
+ highlightAnchor,
76
+ setHighlightAnchor
77
+ }),
78
+ [
79
+ comments,
80
+ config,
81
+ callbacks,
82
+ commentCounts,
83
+ commentMeta,
84
+ railMode,
85
+ focusedAnchor,
86
+ focusAnchor,
87
+ openCommentList,
88
+ closeRail,
89
+ registerAnchor,
90
+ getAnchorTop,
91
+ highlightAnchor
92
+ ]
93
+ );
94
+ return /* @__PURE__ */ jsx(CommentContext.Provider, { value, children });
95
+ }
96
+ export {
97
+ CommentProvider
98
+ };
99
+ //# sourceMappingURL=CommentProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentProvider.js","sources":["../../src/comments/CommentProvider.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { deriveAnchorCounts, deriveAnchorMeta } from \"./comment-utils\";\nimport {\n CommentContext,\n exactAnchorResolver,\n type AnchorResolver,\n type CommentContextValue,\n type CommentRailMode,\n} from \"./comment-context\";\nimport { type Comment, type CommentAnchor, type CommentCallbacks, type CommentConfig } from \"./comment-types\";\n\nexport type CommentProviderProps = CommentCallbacks & {\n children: ReactNode;\n /** All comments for the document; counts and metadata are derived from these. */\n comments: Comment[];\n config: CommentConfig;\n /** Strategy to map a requested anchor onto a registered one. Defaults to exact. */\n resolveAnchor?: AnchorResolver;\n};\n\n/**\n * Supplies comment state to a document subtree: derived per-anchor counts and\n * metadata, rail open/focus state, and a generic anchor registry (cells call\n * `registerAnchor` so the side panel can scroll-align to them). Owns no\n * fetching — `comments` and the callbacks are controlled by the consumer.\n */\nexport function CommentProvider({\n children,\n comments,\n config,\n resolveAnchor = exactAnchorResolver,\n onCreate,\n onReply,\n onUpdateStatus,\n onDelete,\n onChecklistToggle,\n onMention,\n}: CommentProviderProps) {\n const [railMode, setRailMode] = useState<CommentRailMode>(\"closed\");\n const [focusedAnchor, setFocusedAnchor] = useState<CommentAnchor | null>(null);\n const [highlightAnchor, setHighlightAnchor] = useState<CommentAnchor | null>(null);\n const anchorEls = useRef<Record<string, HTMLElement>>({});\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const commentCounts = useMemo(() => deriveAnchorCounts(comments), [comments]);\n const commentMeta = useMemo(() => deriveAnchorMeta(comments), [comments]);\n\n const focusAnchor = useCallback((anchor: CommentAnchor) => {\n setFocusedAnchor(anchor);\n setRailMode(\"focused\");\n }, []);\n\n const openCommentList = useCallback(() => {\n setRailMode((prev) => (prev === \"all\" ? \"closed\" : \"all\"));\n }, []);\n\n const closeRail = useCallback(() => setRailMode(\"closed\"), []);\n\n const registerAnchor = useCallback((anchor: CommentAnchor, el: HTMLElement | null) => {\n if (el) anchorEls.current[anchor] = el;\n else delete anchorEls.current[anchor];\n }, []);\n\n const getAnchorTop = useCallback(\n (anchor: CommentAnchor): number | null => {\n const resolved = resolveAnchor(anchor, Object.keys(anchorEls.current));\n const el = resolved ? anchorEls.current[resolved] : null;\n const container = contentRef.current;\n if (!el || !container) return null;\n return el.getBoundingClientRect().top - container.getBoundingClientRect().top;\n },\n [resolveAnchor],\n );\n\n // A focused rail with no anchor selected has nothing to show.\n useEffect(() => {\n if (railMode === \"focused\" && !focusedAnchor) setRailMode(\"closed\");\n }, [railMode, focusedAnchor]);\n\n const callbacks = useMemo<CommentCallbacks>(\n () => ({\n ...(onCreate ? { onCreate } : {}),\n ...(onReply ? { onReply } : {}),\n ...(onUpdateStatus ? { onUpdateStatus } : {}),\n ...(onDelete ? { onDelete } : {}),\n ...(onChecklistToggle ? { onChecklistToggle } : {}),\n ...(onMention ? { onMention } : {}),\n }),\n [onCreate, onReply, onUpdateStatus, onDelete, onChecklistToggle, onMention],\n );\n\n const value = useMemo<CommentContextValue>(\n () => ({\n comments,\n config,\n callbacks,\n commentCounts,\n commentMeta,\n railMode,\n focusedAnchor,\n focusAnchor,\n openCommentList,\n closeRail,\n registerAnchor,\n getAnchorTop,\n contentRef,\n highlightAnchor,\n setHighlightAnchor,\n }),\n [\n comments,\n config,\n callbacks,\n commentCounts,\n commentMeta,\n railMode,\n focusedAnchor,\n focusAnchor,\n openCommentList,\n closeRail,\n registerAnchor,\n getAnchorTop,\n highlightAnchor,\n ],\n );\n\n return <CommentContext.Provider value={value}>{children}</CommentContext.Provider>;\n}\n"],"names":[],"mappings":";;;;AA0BO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACvB,QAAM,CAAC,UAAU,WAAW,IAAI,SAA0B,QAAQ;AAClE,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA+B,IAAI;AAC7E,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAA+B,IAAI;AACjF,QAAM,YAAY,OAAoC,EAAE;AACxD,QAAM,aAAa,OAA8B,IAAI;AAErD,QAAM,gBAAgB,QAAQ,MAAM,mBAAmB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAC5E,QAAM,cAAc,QAAQ,MAAM,iBAAiB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAExE,QAAM,cAAc,YAAY,CAAC,WAA0B;AACzD,qBAAiB,MAAM;AACvB,gBAAY,SAAS;AAAA,EACvB,GAAG,CAAA,CAAE;AAEL,QAAM,kBAAkB,YAAY,MAAM;AACxC,gBAAY,CAAC,SAAU,SAAS,QAAQ,WAAW,KAAM;AAAA,EAC3D,GAAG,CAAA,CAAE;AAEL,QAAM,YAAY,YAAY,MAAM,YAAY,QAAQ,GAAG,CAAA,CAAE;AAE7D,QAAM,iBAAiB,YAAY,CAAC,QAAuB,OAA2B;AACpF,QAAI,GAAI,WAAU,QAAQ,MAAM,IAAI;AAAA,QAC/B,QAAO,UAAU,QAAQ,MAAM;AAAA,EACtC,GAAG,CAAA,CAAE;AAEL,QAAM,eAAe;AAAA,IACnB,CAAC,WAAyC;AACxC,YAAM,WAAW,cAAc,QAAQ,OAAO,KAAK,UAAU,OAAO,CAAC;AACrE,YAAM,KAAK,WAAW,UAAU,QAAQ,QAAQ,IAAI;AACpD,YAAM,YAAY,WAAW;AAC7B,UAAI,CAAC,MAAM,CAAC,UAAW,QAAO;AAC9B,aAAO,GAAG,sBAAA,EAAwB,MAAM,UAAU,wBAAwB;AAAA,IAC5E;AAAA,IACA,CAAC,aAAa;AAAA,EAAA;AAIhB,YAAU,MAAM;AACd,QAAI,aAAa,aAAa,CAAC,2BAA2B,QAAQ;AAAA,EACpE,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,QAAM,YAAY;AAAA,IAChB,OAAO;AAAA,MACL,GAAI,WAAW,EAAE,SAAA,IAAa,CAAA;AAAA,MAC9B,GAAI,UAAU,EAAE,QAAA,IAAY,CAAA;AAAA,MAC5B,GAAI,iBAAiB,EAAE,eAAA,IAAmB,CAAA;AAAA,MAC1C,GAAI,WAAW,EAAE,SAAA,IAAa,CAAA;AAAA,MAC9B,GAAI,oBAAoB,EAAE,kBAAA,IAAsB,CAAA;AAAA,MAChD,GAAI,YAAY,EAAE,cAAc,CAAA;AAAA,IAAC;AAAA,IAEnC,CAAC,UAAU,SAAS,gBAAgB,UAAU,mBAAmB,SAAS;AAAA,EAAA;AAG5E,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,SAAO,oBAAC,eAAe,UAAf,EAAwB,OAAe,SAAA,CAAS;AAC1D;"}
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const utils = require("../lib/utils.cjs");
6
+ const Icon = require("../data/Icon.cjs");
7
+ const CommentThread = require("./CommentThread.cjs");
8
+ const CommentThreadList = require("./CommentThreadList.cjs");
9
+ const commentContext = require("./comment-context.cjs");
10
+ const commentUtils = require("./comment-utils.cjs");
11
+ const commentTypes = require("./comment-types.cjs");
12
+ const UiComment = require("../icons/components/UiComment.cjs");
13
+ function defaultAnchorLabel(anchor) {
14
+ if (anchor === commentTypes.DOCUMENT_ANCHOR) return "General";
15
+ return anchor.replace(/\[\d+\]/g, "").replaceAll(".", " › ").replaceAll("_", " ").trim();
16
+ }
17
+ function useAnchorLabel(props) {
18
+ return (anchor) => {
19
+ var _a, _b;
20
+ return ((_a = props.anchorLabels) == null ? void 0 : _a[anchor]) ?? ((_b = props.formatAnchorLabel) == null ? void 0 : _b.call(props, anchor)) ?? defaultAnchorLabel(anchor);
21
+ };
22
+ }
23
+ function LocationMeta({ label }) {
24
+ return /* @__PURE__ */ jsxRuntime.jsx(
25
+ "span",
26
+ {
27
+ "data-testid": "comment-location-meta",
28
+ className: "inline-flex items-center rounded-full bg-muted px-2 py-1 text-[10px] font-medium text-muted-foreground",
29
+ children: label
30
+ }
31
+ );
32
+ }
33
+ function RailToggle({
34
+ active,
35
+ onClick,
36
+ children,
37
+ testId
38
+ }) {
39
+ return /* @__PURE__ */ jsxRuntime.jsxs(
40
+ "button",
41
+ {
42
+ type: "button",
43
+ onClick,
44
+ "data-testid": testId,
45
+ className: utils.cn(
46
+ "inline-flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-xs font-medium shadow-sm transition-colors",
47
+ active ? "border-primary bg-primary text-primary-foreground" : "border-border bg-background text-muted-foreground hover:text-foreground"
48
+ ),
49
+ children: [
50
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiComment.UiComment, className: "text-xs" }),
51
+ children
52
+ ]
53
+ }
54
+ );
55
+ }
56
+ function orderedAnchors(ctx) {
57
+ return Object.keys(ctx.commentMeta).sort((a, b) => {
58
+ if (a === commentTypes.DOCUMENT_ANCHOR) return -1;
59
+ if (b === commentTypes.DOCUMENT_ANCHOR) return 1;
60
+ const at = ctx.getAnchorTop(a);
61
+ const bt = ctx.getAnchorTop(b);
62
+ if (at == null && bt == null) return a.localeCompare(b);
63
+ if (at == null) return 1;
64
+ if (bt == null) return -1;
65
+ if (at !== bt) return at - bt;
66
+ return a.localeCompare(b);
67
+ });
68
+ }
69
+ function orderComments(comments, anchorOrder) {
70
+ const replyMap = commentUtils.buildReplyMap(comments);
71
+ const roots = commentUtils.getRoots(comments).sort((a, b) => {
72
+ const ai = anchorOrder.get(a.anchor ?? commentTypes.DOCUMENT_ANCHOR) ?? Number.MAX_SAFE_INTEGER;
73
+ const bi = anchorOrder.get(b.anchor ?? commentTypes.DOCUMENT_ANCHOR) ?? Number.MAX_SAFE_INTEGER;
74
+ if (ai !== bi) return ai - bi;
75
+ if (a.createdAt !== b.createdAt)
76
+ return a.createdAt.localeCompare(b.createdAt);
77
+ return String(a.id).localeCompare(String(b.id));
78
+ });
79
+ return roots.flatMap((root) => [
80
+ root,
81
+ ...commentUtils.sortReplies(replyMap.get(root.id) ?? [])
82
+ ]);
83
+ }
84
+ function AllComments({
85
+ ctx,
86
+ label
87
+ }) {
88
+ const ordered = react.useMemo(() => {
89
+ const anchorOrder = new Map(orderedAnchors(ctx).map((a, i) => [a, i]));
90
+ return orderComments(ctx.comments, anchorOrder);
91
+ }, [ctx]);
92
+ const handlers = commentUtils.buildThreadListHandlers(ordered, ctx.config, ctx.callbacks);
93
+ if (ordered.length === 0) {
94
+ return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "rounded-lg bg-muted/40 px-3 py-2 text-xs text-muted-foreground", children: "No comments yet." });
95
+ }
96
+ return /* @__PURE__ */ jsxRuntime.jsx(
97
+ "div",
98
+ {
99
+ "data-testid": "comment-all-rail",
100
+ className: "space-y-3 overflow-y-auto pr-1",
101
+ children: /* @__PURE__ */ jsxRuntime.jsx(
102
+ CommentThreadList.CommentThreadList,
103
+ {
104
+ comments: ordered,
105
+ config: ctx.config,
106
+ compact: true,
107
+ renderRootMeta: (c) => /* @__PURE__ */ jsxRuntime.jsx(LocationMeta, { label: label(c.anchor ?? commentTypes.DOCUMENT_ANCHOR) }),
108
+ getThreadProps: (c) => ({
109
+ "data-testid": "comment-feed-item",
110
+ onMouseEnter: () => ctx.setHighlightAnchor(c.anchor ?? commentTypes.DOCUMENT_ANCHOR),
111
+ onMouseLeave: () => ctx.setHighlightAnchor(null)
112
+ }),
113
+ ...handlers
114
+ }
115
+ )
116
+ }
117
+ );
118
+ }
119
+ function FocusedComments({
120
+ ctx,
121
+ anchor,
122
+ label,
123
+ compact
124
+ }) {
125
+ const comments = ctx.comments.filter(
126
+ (c) => (c.anchor ?? commentTypes.DOCUMENT_ANCHOR) === anchor
127
+ );
128
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", "data-comment-anchor": anchor, children: [
129
+ /* @__PURE__ */ jsxRuntime.jsx(
130
+ LocationMeta,
131
+ {
132
+ label: anchor === commentTypes.DOCUMENT_ANCHOR ? "Document-level comment" : `Attached to ${label}`
133
+ }
134
+ ),
135
+ /* @__PURE__ */ jsxRuntime.jsx(
136
+ CommentThread.CommentThread,
137
+ {
138
+ comments,
139
+ config: ctx.config,
140
+ anchor,
141
+ compact: compact ?? false,
142
+ autoFocusComposer: true,
143
+ ...ctx.callbacks
144
+ }
145
+ )
146
+ ] });
147
+ }
148
+ function CommentSidePanel(props) {
149
+ const ctx = commentContext.useCommentContextOptional();
150
+ const label = useAnchorLabel(props);
151
+ if (!ctx) return null;
152
+ const total = Object.values(ctx.commentCounts).reduce((a, b) => a + b, 0);
153
+ if (ctx.railMode === "closed" && total === 0) return null;
154
+ return /* @__PURE__ */ jsxRuntime.jsx(
155
+ "aside",
156
+ {
157
+ "data-testid": "comment-side-panel",
158
+ className: utils.cn("w-[320px] space-y-3", props.className),
159
+ children: ctx.railMode === "all" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
160
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
161
+ /* @__PURE__ */ jsxRuntime.jsxs(RailToggle, { active: true, onClick: ctx.openCommentList, children: [
162
+ "All comments (",
163
+ total,
164
+ ")"
165
+ ] }),
166
+ /* @__PURE__ */ jsxRuntime.jsx(
167
+ "button",
168
+ {
169
+ type: "button",
170
+ onClick: ctx.closeRail,
171
+ className: "ml-auto rounded-md px-2 py-1 text-xs font-medium text-muted-foreground hover:bg-muted hover:text-foreground",
172
+ children: "Close"
173
+ }
174
+ )
175
+ ] }),
176
+ /* @__PURE__ */ jsxRuntime.jsx(AllComments, { ctx, label })
177
+ ] }) : ctx.railMode === "focused" && ctx.focusedAnchor ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
178
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
179
+ total > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
180
+ RailToggle,
181
+ {
182
+ onClick: ctx.openCommentList,
183
+ testId: "comment-open-all",
184
+ children: [
185
+ "All comments (",
186
+ total,
187
+ ")"
188
+ ]
189
+ }
190
+ ),
191
+ /* @__PURE__ */ jsxRuntime.jsx(
192
+ "button",
193
+ {
194
+ type: "button",
195
+ onClick: ctx.closeRail,
196
+ className: "ml-auto rounded-md px-2 py-1 text-xs font-medium text-muted-foreground hover:bg-muted hover:text-foreground",
197
+ children: "Hide"
198
+ }
199
+ )
200
+ ] }),
201
+ /* @__PURE__ */ jsxRuntime.jsx(
202
+ FocusedComments,
203
+ {
204
+ ctx,
205
+ anchor: ctx.focusedAnchor,
206
+ label: label(ctx.focusedAnchor),
207
+ ...props.compact !== void 0 ? { compact: props.compact } : {}
208
+ }
209
+ )
210
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(RailToggle, { onClick: ctx.openCommentList, testId: "comment-open-all", children: [
211
+ "Open comments (",
212
+ total,
213
+ ")"
214
+ ] })
215
+ }
216
+ );
217
+ }
218
+ exports.CommentSidePanel = CommentSidePanel;
219
+ //# sourceMappingURL=CommentSidePanel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentSidePanel.cjs","sources":["../../src/comments/CommentSidePanel.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon } from \"../data/Icon\";\nimport { UiComment } from \"../icons\";\nimport { CommentThread } from \"./CommentThread\";\nimport { CommentThreadList } from \"./CommentThreadList\";\nimport { useCommentContextOptional, type CommentContextValue } from \"./comment-context\";\nimport {\n buildThreadListHandlers,\n getRoots,\n sortReplies,\n buildReplyMap,\n} from \"./comment-utils\";\nimport {\n DOCUMENT_ANCHOR,\n type Comment,\n type CommentAnchor,\n} from \"./comment-types\";\n\nexport type CommentSidePanelProps = {\n /** Explicit label per anchor key. */\n anchorLabels?: Record<CommentAnchor, string>;\n /** Fallback label formatter for anchors without an explicit label. */\n formatAnchorLabel?: (anchor: CommentAnchor) => string;\n compact?: boolean;\n className?: string;\n};\n\nfunction defaultAnchorLabel(anchor: CommentAnchor): string {\n if (anchor === DOCUMENT_ANCHOR) return \"General\";\n return anchor\n .replace(/\\[\\d+\\]/g, \"\")\n .replaceAll(\".\", \" › \")\n .replaceAll(\"_\", \" \")\n .trim();\n}\n\nfunction useAnchorLabel(props: CommentSidePanelProps) {\n return (anchor: CommentAnchor): string =>\n props.anchorLabels?.[anchor] ??\n props.formatAnchorLabel?.(anchor) ??\n defaultAnchorLabel(anchor);\n}\n\nfunction LocationMeta({ label }: { label: string }) {\n return (\n <span\n data-testid=\"comment-location-meta\"\n className=\"inline-flex items-center rounded-full bg-muted px-2 py-1 text-[10px] font-medium text-muted-foreground\"\n >\n {label}\n </span>\n );\n}\n\nfunction RailToggle({\n active,\n onClick,\n children,\n testId,\n}: {\n active?: boolean;\n onClick: () => void;\n children: React.ReactNode;\n testId?: string;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n data-testid={testId}\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-xs font-medium shadow-sm transition-colors\",\n active\n ? \"border-primary bg-primary text-primary-foreground\"\n : \"border-border bg-background text-muted-foreground hover:text-foreground\",\n )}\n >\n <Icon icon={UiComment} className=\"text-xs\" />\n {children}\n </button>\n );\n}\n\nfunction orderedAnchors(ctx: CommentContextValue): string[] {\n return Object.keys(ctx.commentMeta).sort((a, b) => {\n if (a === DOCUMENT_ANCHOR) return -1;\n if (b === DOCUMENT_ANCHOR) return 1;\n const at = ctx.getAnchorTop(a);\n const bt = ctx.getAnchorTop(b);\n if (at == null && bt == null) return a.localeCompare(b);\n if (at == null) return 1;\n if (bt == null) return -1;\n if (at !== bt) return at - bt;\n return a.localeCompare(b);\n });\n}\n\nfunction orderComments(\n comments: Comment[],\n anchorOrder: Map<string, number>,\n): Comment[] {\n const replyMap = buildReplyMap(comments);\n const roots = getRoots(comments).sort((a, b) => {\n const ai =\n anchorOrder.get(a.anchor ?? DOCUMENT_ANCHOR) ?? Number.MAX_SAFE_INTEGER;\n const bi =\n anchorOrder.get(b.anchor ?? DOCUMENT_ANCHOR) ?? Number.MAX_SAFE_INTEGER;\n if (ai !== bi) return ai - bi;\n if (a.createdAt !== b.createdAt)\n return a.createdAt.localeCompare(b.createdAt);\n return String(a.id).localeCompare(String(b.id));\n });\n return roots.flatMap((root) => [\n root,\n ...sortReplies(replyMap.get(root.id) ?? []),\n ]);\n}\n\nfunction AllComments({\n ctx,\n label,\n}: {\n ctx: CommentContextValue;\n label: (a: CommentAnchor) => string;\n}) {\n const ordered = useMemo(() => {\n const anchorOrder = new Map(orderedAnchors(ctx).map((a, i) => [a, i]));\n return orderComments(ctx.comments, anchorOrder);\n }, [ctx]);\n const handlers = buildThreadListHandlers(ordered, ctx.config, ctx.callbacks);\n\n if (ordered.length === 0) {\n return (\n <p className=\"rounded-lg bg-muted/40 px-3 py-2 text-xs text-muted-foreground\">\n No comments yet.\n </p>\n );\n }\n\n return (\n <div\n data-testid=\"comment-all-rail\"\n className=\"space-y-3 overflow-y-auto pr-1\"\n >\n <CommentThreadList\n comments={ordered}\n config={ctx.config}\n compact\n renderRootMeta={(c) => (\n <LocationMeta label={label(c.anchor ?? DOCUMENT_ANCHOR)} />\n )}\n getThreadProps={(c) => ({\n \"data-testid\": \"comment-feed-item\",\n onMouseEnter: () =>\n ctx.setHighlightAnchor(c.anchor ?? DOCUMENT_ANCHOR),\n onMouseLeave: () => ctx.setHighlightAnchor(null),\n })}\n {...handlers}\n />\n </div>\n );\n}\n\nfunction FocusedComments({\n ctx,\n anchor,\n label,\n compact,\n}: {\n ctx: CommentContextValue;\n anchor: CommentAnchor;\n label: string;\n compact?: boolean;\n}) {\n const comments = ctx.comments.filter(\n (c) => (c.anchor ?? DOCUMENT_ANCHOR) === anchor,\n );\n return (\n <div className=\"space-y-3\" data-comment-anchor={anchor}>\n <LocationMeta\n label={\n anchor === DOCUMENT_ANCHOR\n ? \"Document-level comment\"\n : `Attached to ${label}`\n }\n />\n <CommentThread\n comments={comments}\n config={ctx.config}\n anchor={anchor}\n compact={compact ?? false}\n autoFocusComposer\n {...ctx.callbacks}\n />\n </div>\n );\n}\n\n/**\n * A controlled comment rail driven by {@link CommentProvider}. Shows a focused\n * thread for the active anchor, the full document feed in anchor order, or a\n * toggle when collapsed. Renders nothing outside a provider or when empty.\n */\nexport function CommentSidePanel(props: CommentSidePanelProps) {\n const ctx = useCommentContextOptional();\n const label = useAnchorLabel(props);\n if (!ctx) return null;\n\n const total = Object.values(ctx.commentCounts).reduce((a, b) => a + b, 0);\n if (ctx.railMode === \"closed\" && total === 0) return null;\n\n return (\n <aside\n data-testid=\"comment-side-panel\"\n className={cn(\"w-[320px] space-y-3\", props.className)}\n >\n {ctx.railMode === \"all\" ? (\n <>\n <div className=\"flex items-center gap-2\">\n <RailToggle active onClick={ctx.openCommentList}>\n All comments ({total})\n </RailToggle>\n <button\n type=\"button\"\n onClick={ctx.closeRail}\n className=\"ml-auto rounded-md px-2 py-1 text-xs font-medium text-muted-foreground hover:bg-muted hover:text-foreground\"\n >\n Close\n </button>\n </div>\n <AllComments ctx={ctx} label={label} />\n </>\n ) : ctx.railMode === \"focused\" && ctx.focusedAnchor ? (\n <>\n <div className=\"flex items-center gap-2\">\n {total > 0 && (\n <RailToggle\n onClick={ctx.openCommentList}\n testId=\"comment-open-all\"\n >\n All comments ({total})\n </RailToggle>\n )}\n <button\n type=\"button\"\n onClick={ctx.closeRail}\n className=\"ml-auto rounded-md px-2 py-1 text-xs font-medium text-muted-foreground hover:bg-muted hover:text-foreground\"\n >\n Hide\n </button>\n </div>\n <FocusedComments\n ctx={ctx}\n anchor={ctx.focusedAnchor}\n label={label(ctx.focusedAnchor)}\n {...(props.compact !== undefined ? { compact: props.compact } : {})}\n />\n </>\n ) : (\n <RailToggle onClick={ctx.openCommentList} testId=\"comment-open-all\">\n Open comments ({total})\n </RailToggle>\n )}\n </aside>\n );\n}\n"],"names":["DOCUMENT_ANCHOR","jsx","jsxs","cn","Icon","UiComment","buildReplyMap","getRoots","sortReplies","useMemo","buildThreadListHandlers","CommentThreadList","CommentThread","useCommentContextOptional","Fragment"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { CommentAnchor } from './comment-types';
2
+ export type CommentSidePanelProps = {
3
+ /** Explicit label per anchor key. */
4
+ anchorLabels?: Record<CommentAnchor, string>;
5
+ /** Fallback label formatter for anchors without an explicit label. */
6
+ formatAnchorLabel?: (anchor: CommentAnchor) => string;
7
+ compact?: boolean;
8
+ className?: string;
9
+ };
10
+ /**
11
+ * A controlled comment rail driven by {@link CommentProvider}. Shows a focused
12
+ * thread for the active anchor, the full document feed in anchor order, or a
13
+ * toggle when collapsed. Renders nothing outside a provider or when empty.
14
+ */
15
+ export declare function CommentSidePanel(props: CommentSidePanelProps): import("react/jsx-runtime").JSX.Element | null;
16
+ //# sourceMappingURL=CommentSidePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentSidePanel.d.ts","sourceRoot":"","sources":["../../src/comments/CommentSidePanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,qBAAqB,GAAG;IAClC,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7C,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA6KF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,kDA8D5D"}