@flanksource/clicky-ui 0.3.33 → 0.3.35

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 (729) hide show
  1. package/README.md +4 -0
  2. package/dist/ai.cjs +3 -0
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +3 -0
  5. package/dist/ai.js.map +1 -1
  6. package/dist/comments/CommentCard.cjs +9 -8
  7. package/dist/comments/CommentCard.cjs.map +1 -1
  8. package/dist/comments/CommentCard.d.ts +1 -1
  9. package/dist/comments/CommentCard.d.ts.map +1 -1
  10. package/dist/comments/CommentCard.js +2 -1
  11. package/dist/comments/CommentCard.js.map +1 -1
  12. package/dist/comments/CommentCardParts.cjs +2 -1
  13. package/dist/comments/CommentCardParts.cjs.map +1 -1
  14. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  15. package/dist/comments/CommentCardParts.js +2 -1
  16. package/dist/comments/CommentCardParts.js.map +1 -1
  17. package/dist/comments/CommentProvider.d.ts +1 -1
  18. package/dist/comments/CommentSidePanel.cjs +3 -2
  19. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  20. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  21. package/dist/comments/CommentSidePanel.js +2 -1
  22. package/dist/comments/CommentSidePanel.js.map +1 -1
  23. package/dist/comments/CommentThread.d.ts +1 -1
  24. package/dist/comments/CommentThreadList.d.ts +1 -1
  25. package/dist/comments/MentionTextarea.d.ts +1 -1
  26. package/dist/comments/comment-context.d.ts +4 -4
  27. package/dist/comments/comment-fixtures.d.ts +1 -1
  28. package/dist/comments/comment-types.d.ts +1 -1
  29. package/dist/comments/comment-utils.cjs +0 -27
  30. package/dist/comments/comment-utils.cjs.map +1 -1
  31. package/dist/comments/comment-utils.d.ts +1 -7
  32. package/dist/comments/comment-utils.d.ts.map +1 -1
  33. package/dist/comments/comment-utils.js +0 -27
  34. package/dist/comments/comment-utils.js.map +1 -1
  35. package/dist/comments.cjs +4 -3
  36. package/dist/comments.cjs.map +1 -1
  37. package/dist/comments.d.ts +1 -0
  38. package/dist/comments.d.ts.map +1 -1
  39. package/dist/comments.js +2 -1
  40. package/dist/comments.js.map +1 -1
  41. package/dist/components/AccordionList.d.ts +1 -1
  42. package/dist/components/ComboboxControl.d.ts +1 -1
  43. package/dist/components/ComboboxMenu.d.ts +2 -2
  44. package/dist/components/ComboboxTags.cjs +41 -11
  45. package/dist/components/ComboboxTags.cjs.map +1 -1
  46. package/dist/components/ComboboxTags.d.ts +6 -0
  47. package/dist/components/ComboboxTags.d.ts.map +1 -1
  48. package/dist/components/ComboboxTags.js +41 -11
  49. package/dist/components/ComboboxTags.js.map +1 -1
  50. package/dist/components/DateField.d.ts +3 -3
  51. package/dist/components/DatePicker.d.ts +3 -3
  52. package/dist/components/DateTimePicker.d.ts +3 -3
  53. package/dist/components/ErrorWrapper.d.ts +2 -2
  54. package/dist/components/Field.d.ts +1 -1
  55. package/dist/components/FilterBar.d.ts +1 -1
  56. package/dist/components/FormLookupProvider.d.ts +1 -1
  57. package/dist/components/FormatOptionsDropdown.d.ts +1 -1
  58. package/dist/components/IconButton.d.ts +3 -3
  59. package/dist/components/InputField.d.ts +2 -2
  60. package/dist/components/ItemActions.d.ts +1 -1
  61. package/dist/components/JsonSchemaForm.cjs +17 -36
  62. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  63. package/dist/components/JsonSchemaForm.d.ts +1 -1
  64. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  65. package/dist/components/JsonSchemaForm.js +17 -36
  66. package/dist/components/JsonSchemaForm.js.map +1 -1
  67. package/dist/components/ListMenu.d.ts +1 -1
  68. package/dist/components/MultiSelect.d.ts +1 -1
  69. package/dist/components/RangeSlider.cjs +15 -1
  70. package/dist/components/RangeSlider.cjs.map +1 -1
  71. package/dist/components/RangeSlider.d.ts.map +1 -1
  72. package/dist/components/RangeSlider.js +15 -1
  73. package/dist/components/RangeSlider.js.map +1 -1
  74. package/dist/components/SearchInput.d.ts +1 -1
  75. package/dist/components/SegmentedControl.d.ts +1 -1
  76. package/dist/components/SplitButton.d.ts +1 -1
  77. package/dist/components/Switch.d.ts +1 -1
  78. package/dist/components/TreePickerField.cjs +11 -2
  79. package/dist/components/TreePickerField.cjs.map +1 -1
  80. package/dist/components/TreePickerField.d.ts +13 -4
  81. package/dist/components/TreePickerField.d.ts.map +1 -1
  82. package/dist/components/TreePickerField.js +11 -2
  83. package/dist/components/TreePickerField.js.map +1 -1
  84. package/dist/components/UnitStepControls.d.ts +1 -1
  85. package/dist/components/button.d.ts +3 -3
  86. package/dist/components/combobox-types.d.ts +1 -1
  87. package/dist/components/density-switcher.d.ts +1 -1
  88. package/dist/components/filter-bar-context.d.ts +1 -1
  89. package/dist/components/filter-bar-field-utils.d.ts +2 -2
  90. package/dist/components/form-lookup-context.d.ts +1 -1
  91. package/dist/components/icon-menu-picker.d.ts +1 -1
  92. package/dist/components/json-schema-form-accordion-array.cjs +44 -21
  93. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  94. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  95. package/dist/components/json-schema-form-accordion-array.js +47 -24
  96. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  97. package/dist/components/json-schema-form-array.cjs +53 -30
  98. package/dist/components/json-schema-form-array.cjs.map +1 -1
  99. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  100. package/dist/components/json-schema-form-array.js +54 -31
  101. package/dist/components/json-schema-form-array.js.map +1 -1
  102. package/dist/components/json-schema-form-cards-array.cjs +32 -22
  103. package/dist/components/json-schema-form-cards-array.cjs.map +1 -1
  104. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
  105. package/dist/components/json-schema-form-cards-array.js +33 -23
  106. package/dist/components/json-schema-form-cards-array.js.map +1 -1
  107. package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts +44 -0
  108. package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts.map +1 -0
  109. package/dist/components/json-schema-form-discriminator.d.ts +1 -1
  110. package/dist/components/json-schema-form-errors.cjs +5 -1
  111. package/dist/components/json-schema-form-errors.cjs.map +1 -1
  112. package/dist/components/json-schema-form-errors.d.ts +2 -1
  113. package/dist/components/json-schema-form-errors.d.ts.map +1 -1
  114. package/dist/components/json-schema-form-errors.js +6 -2
  115. package/dist/components/json-schema-form-errors.js.map +1 -1
  116. package/dist/components/json-schema-form-extensions.d.ts +1 -1
  117. package/dist/components/json-schema-form-filter-input.cjs +50 -0
  118. package/dist/components/json-schema-form-filter-input.cjs.map +1 -0
  119. package/dist/components/json-schema-form-filter-input.d.ts +5 -0
  120. package/dist/components/json-schema-form-filter-input.d.ts.map +1 -0
  121. package/dist/components/json-schema-form-filter-input.js +50 -0
  122. package/dist/components/json-schema-form-filter-input.js.map +1 -0
  123. package/dist/components/json-schema-form-filter.cjs +49 -0
  124. package/dist/components/json-schema-form-filter.cjs.map +1 -0
  125. package/dist/components/json-schema-form-filter.d.ts +8 -0
  126. package/dist/components/json-schema-form-filter.d.ts.map +1 -0
  127. package/dist/components/json-schema-form-filter.js +49 -0
  128. package/dist/components/json-schema-form-filter.js.map +1 -0
  129. package/dist/components/json-schema-form-layout.cjs +84 -17
  130. package/dist/components/json-schema-form-layout.cjs.map +1 -1
  131. package/dist/components/json-schema-form-layout.d.ts +1 -1
  132. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  133. package/dist/components/json-schema-form-layout.js +84 -17
  134. package/dist/components/json-schema-form-layout.js.map +1 -1
  135. package/dist/components/json-schema-form-list-array.cjs +16 -5
  136. package/dist/components/json-schema-form-list-array.cjs.map +1 -1
  137. package/dist/components/json-schema-form-list-array.d.ts +2 -1
  138. package/dist/components/json-schema-form-list-array.d.ts.map +1 -1
  139. package/dist/components/json-schema-form-list-array.js +16 -5
  140. package/dist/components/json-schema-form-list-array.js.map +1 -1
  141. package/dist/components/json-schema-form-object.cjs +239 -85
  142. package/dist/components/json-schema-form-object.cjs.map +1 -1
  143. package/dist/components/json-schema-form-object.d.ts +2 -2
  144. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  145. package/dist/components/json-schema-form-object.js +241 -87
  146. package/dist/components/json-schema-form-object.js.map +1 -1
  147. package/dist/components/json-schema-form-preferences.cjs +1 -1
  148. package/dist/components/json-schema-form-preferences.cjs.map +1 -1
  149. package/dist/components/json-schema-form-preferences.d.ts +1 -1
  150. package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
  151. package/dist/components/json-schema-form-preferences.js +1 -1
  152. package/dist/components/json-schema-form-preferences.js.map +1 -1
  153. package/dist/components/json-schema-form-properties-errors.fixtures.d.ts +14 -0
  154. package/dist/components/json-schema-form-properties-errors.fixtures.d.ts.map +1 -0
  155. package/dist/components/json-schema-form-properties-size.cjs +19 -0
  156. package/dist/components/json-schema-form-properties-size.cjs.map +1 -0
  157. package/dist/components/json-schema-form-properties-size.d.ts +4 -0
  158. package/dist/components/json-schema-form-properties-size.d.ts.map +1 -0
  159. package/dist/components/json-schema-form-properties-size.js +19 -0
  160. package/dist/components/json-schema-form-properties-size.js.map +1 -0
  161. package/dist/components/json-schema-form-properties.cjs +305 -0
  162. package/dist/components/json-schema-form-properties.cjs.map +1 -0
  163. package/dist/components/json-schema-form-properties.d.ts +20 -0
  164. package/dist/components/json-schema-form-properties.d.ts.map +1 -0
  165. package/dist/components/json-schema-form-properties.fixtures.d.ts +157 -0
  166. package/dist/components/json-schema-form-properties.fixtures.d.ts.map +1 -0
  167. package/dist/components/json-schema-form-properties.js +305 -0
  168. package/dist/components/json-schema-form-properties.js.map +1 -0
  169. package/dist/components/json-schema-form-property-actions-context.cjs +6 -0
  170. package/dist/components/json-schema-form-property-actions-context.cjs.map +1 -0
  171. package/dist/components/json-schema-form-property-actions-context.d.ts +2 -0
  172. package/dist/components/json-schema-form-property-actions-context.d.ts.map +1 -0
  173. package/dist/components/json-schema-form-property-actions-context.js +6 -0
  174. package/dist/components/json-schema-form-property-actions-context.js.map +1 -0
  175. package/dist/components/json-schema-form-property-collection.cjs +31 -0
  176. package/dist/components/json-schema-form-property-collection.cjs.map +1 -0
  177. package/dist/components/json-schema-form-property-collection.d.ts +6 -0
  178. package/dist/components/json-schema-form-property-collection.d.ts.map +1 -0
  179. package/dist/components/json-schema-form-property-collection.js +31 -0
  180. package/dist/components/json-schema-form-property-collection.js.map +1 -0
  181. package/dist/components/json-schema-form-property-draft.cjs +45 -0
  182. package/dist/components/json-schema-form-property-draft.cjs.map +1 -0
  183. package/dist/components/json-schema-form-property-draft.d.ts +8 -0
  184. package/dist/components/json-schema-form-property-draft.d.ts.map +1 -0
  185. package/dist/components/json-schema-form-property-draft.js +45 -0
  186. package/dist/components/json-schema-form-property-draft.js.map +1 -0
  187. package/dist/components/json-schema-form-property-preview.cjs +68 -0
  188. package/dist/components/json-schema-form-property-preview.cjs.map +1 -0
  189. package/dist/components/json-schema-form-property-preview.d.ts +7 -0
  190. package/dist/components/json-schema-form-property-preview.d.ts.map +1 -0
  191. package/dist/components/json-schema-form-property-preview.js +68 -0
  192. package/dist/components/json-schema-form-property-preview.js.map +1 -0
  193. package/dist/components/json-schema-form-property-selection.cjs +89 -0
  194. package/dist/components/json-schema-form-property-selection.cjs.map +1 -0
  195. package/dist/components/json-schema-form-property-selection.d.ts +6 -0
  196. package/dist/components/json-schema-form-property-selection.d.ts.map +1 -0
  197. package/dist/components/json-schema-form-property-selection.js +89 -0
  198. package/dist/components/json-schema-form-property-selection.js.map +1 -0
  199. package/dist/components/json-schema-form-render.cjs +41 -4
  200. package/dist/components/json-schema-form-render.cjs.map +1 -1
  201. package/dist/components/json-schema-form-render.d.ts +1 -1
  202. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  203. package/dist/components/json-schema-form-render.js +42 -5
  204. package/dist/components/json-schema-form-render.js.map +1 -1
  205. package/dist/components/json-schema-form-resolve.cjs +2 -0
  206. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  207. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  208. package/dist/components/json-schema-form-resolve.js +2 -0
  209. package/dist/components/json-schema-form-resolve.js.map +1 -1
  210. package/dist/components/json-schema-form-runtime-types.d.ts +222 -0
  211. package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -0
  212. package/dist/components/json-schema-form-table-array.cjs +82 -51
  213. package/dist/components/json-schema-form-table-array.cjs.map +1 -1
  214. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  215. package/dist/components/json-schema-form-table-array.js +84 -53
  216. package/dist/components/json-schema-form-table-array.js.map +1 -1
  217. package/dist/components/json-schema-form-template-menu.d.ts +1 -1
  218. package/dist/components/json-schema-form-template.d.ts +1 -1
  219. package/dist/components/json-schema-form-types.d.ts +7 -179
  220. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  221. package/dist/components/json-schema-form-utils.cjs +10 -9
  222. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  223. package/dist/components/json-schema-form-utils.d.ts +11 -1
  224. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  225. package/dist/components/json-schema-form-utils.js +10 -9
  226. package/dist/components/json-schema-form-utils.js.map +1 -1
  227. package/dist/components/loading.d.ts +4 -4
  228. package/dist/components/mdx-editor-callout.d.ts +1 -1
  229. package/dist/components/mdx-editor-options.d.ts +1 -1
  230. package/dist/components/select.d.ts +3 -3
  231. package/dist/components/theme-switcher.d.ts +1 -1
  232. package/dist/components/use-list-menu-selection.d.ts +1 -1
  233. package/dist/components/useComboboxLayout.d.ts +1 -1
  234. package/dist/components/workload-picker-utils.d.ts +1 -1
  235. package/dist/data/Avatar.d.ts +1 -1
  236. package/dist/data/AvatarBadge.d.ts +1 -1
  237. package/dist/data/Badge.d.ts +1 -1
  238. package/dist/data/Callout.d.ts +1 -1
  239. package/dist/data/DataTable.cjs +575 -435
  240. package/dist/data/DataTable.cjs.map +1 -1
  241. package/dist/data/DataTable.d.ts +21 -13
  242. package/dist/data/DataTable.d.ts.map +1 -1
  243. package/dist/data/DataTable.grouping.d.ts +1 -1
  244. package/dist/data/DataTable.js +575 -435
  245. package/dist/data/DataTable.js.map +1 -1
  246. package/dist/data/ExecutionTree.d.ts +1 -1
  247. package/dist/data/FilterPill.d.ts +1 -1
  248. package/dist/data/FixtureEditor/RawFenceEditor.d.ts +1 -1
  249. package/dist/data/FixtureEditor/types.d.ts +1 -1
  250. package/dist/data/Gauge.d.ts +1 -1
  251. package/dist/data/GaugeHoverCard.d.ts +1 -1
  252. package/dist/data/Icon.d.ts +1 -1
  253. package/dist/data/KeyValueList.d.ts +1 -1
  254. package/dist/data/MarkdownEditor.d.ts +1 -1
  255. package/dist/data/MatrixTable.d.ts +1 -1
  256. package/dist/data/ObjectGraph.d.ts +1 -1
  257. package/dist/data/ProgressBars.d.ts +1 -1
  258. package/dist/data/Properties.cjs +86 -35
  259. package/dist/data/Properties.cjs.map +1 -1
  260. package/dist/data/Properties.d.ts +2 -2
  261. package/dist/data/Properties.d.ts.map +1 -1
  262. package/dist/data/Properties.js +87 -36
  263. package/dist/data/Properties.js.map +1 -1
  264. package/dist/data/RadialGauge.d.ts +1 -1
  265. package/dist/data/SchemaViewer.d.ts +1 -1
  266. package/dist/data/SortableHeader.d.ts +1 -1
  267. package/dist/data/StatStrip.d.ts +1 -1
  268. package/dist/data/StatusBreakdown.d.ts +1 -1
  269. package/dist/data/TabButton.d.ts +1 -1
  270. package/dist/data/TaskManager.cjs +9 -17
  271. package/dist/data/TaskManager.cjs.map +1 -1
  272. package/dist/data/TaskManager.d.ts.map +1 -1
  273. package/dist/data/TaskManager.js +9 -17
  274. package/dist/data/TaskManager.js.map +1 -1
  275. package/dist/data/TaskManagerButton.cjs +17 -34
  276. package/dist/data/TaskManagerButton.cjs.map +1 -1
  277. package/dist/data/TaskManagerButton.d.ts.map +1 -1
  278. package/dist/data/TaskManagerButton.js +18 -35
  279. package/dist/data/TaskManagerButton.js.map +1 -1
  280. package/dist/data/TaskProcessDetails.cjs +5 -26
  281. package/dist/data/TaskProcessDetails.cjs.map +1 -1
  282. package/dist/data/TaskProcessDetails.d.ts +2 -1
  283. package/dist/data/TaskProcessDetails.d.ts.map +1 -1
  284. package/dist/data/TaskProcessDetails.js +5 -26
  285. package/dist/data/TaskProcessDetails.js.map +1 -1
  286. package/dist/data/TaskProgress.cjs +24 -15
  287. package/dist/data/TaskProgress.cjs.map +1 -1
  288. package/dist/data/TaskProgress.d.ts +2 -1
  289. package/dist/data/TaskProgress.d.ts.map +1 -1
  290. package/dist/data/TaskProgress.js +24 -15
  291. package/dist/data/TaskProgress.js.map +1 -1
  292. package/dist/data/TaskResourceReadings.cjs +42 -0
  293. package/dist/data/TaskResourceReadings.cjs.map +1 -0
  294. package/dist/data/TaskResourceReadings.d.ts +6 -0
  295. package/dist/data/TaskResourceReadings.d.ts.map +1 -0
  296. package/dist/data/TaskResourceReadings.js +42 -0
  297. package/dist/data/TaskResourceReadings.js.map +1 -0
  298. package/dist/data/TaskSnapshot.cjs.map +1 -1
  299. package/dist/data/TaskSnapshot.d.ts +14 -1
  300. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  301. package/dist/data/TaskSnapshot.js.map +1 -1
  302. package/dist/data/Timeline.d.ts +1 -1
  303. package/dist/data/Tree.d.ts +1 -1
  304. package/dist/data/TreeGroupHeader.d.ts +1 -1
  305. package/dist/data/TreeNode.d.ts +1 -1
  306. package/dist/data/Version.d.ts +3 -3
  307. package/dist/data/ai/ChatWindow.cjs +22 -12
  308. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  309. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  310. package/dist/data/ai/ChatWindow.js +22 -12
  311. package/dist/data/ai/ChatWindow.js.map +1 -1
  312. package/dist/data/ai/ChatWindow.test-utils.d.ts +4 -2
  313. package/dist/data/ai/ChatWindow.test-utils.d.ts.map +1 -1
  314. package/dist/data/ai/ChatWindow.types.d.ts +1 -1
  315. package/dist/data/ai/ChatWindowManager.cjs +2 -0
  316. package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
  317. package/dist/data/ai/ChatWindowManager.d.ts +1 -1
  318. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  319. package/dist/data/ai/ChatWindowManager.js +2 -0
  320. package/dist/data/ai/ChatWindowManager.js.map +1 -1
  321. package/dist/data/ai/PolicyTree.d.ts +1 -1
  322. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +1 -1
  323. package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
  324. package/dist/data/ai/PromptRunEditor/index.cjs +4 -0
  325. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  326. package/dist/data/ai/PromptRunEditor/index.d.ts +5 -2
  327. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  328. package/dist/data/ai/PromptRunEditor/index.js +4 -0
  329. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  330. package/dist/data/ai/SessionChatComposer.d.ts +1 -1
  331. package/dist/data/ai/SessionInspector.approvals.cjs +147 -0
  332. package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -0
  333. package/dist/data/ai/SessionInspector.approvals.d.ts +21 -0
  334. package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -0
  335. package/dist/data/ai/SessionInspector.approvals.js +147 -0
  336. package/dist/data/ai/SessionInspector.approvals.js.map +1 -0
  337. package/dist/data/ai/SessionInspector.cjs +21 -8
  338. package/dist/data/ai/SessionInspector.cjs.map +1 -1
  339. package/dist/data/ai/SessionInspector.d.ts +6 -2
  340. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  341. package/dist/data/ai/SessionInspector.hierarchy.d.ts +1 -1
  342. package/dist/data/ai/SessionInspector.js +21 -8
  343. package/dist/data/ai/SessionInspector.js.map +1 -1
  344. package/dist/data/ai/SessionInspector.panel-parts.cjs +47 -0
  345. package/dist/data/ai/SessionInspector.panel-parts.cjs.map +1 -0
  346. package/dist/data/ai/SessionInspector.panel-parts.d.ts +20 -0
  347. package/dist/data/ai/SessionInspector.panel-parts.d.ts.map +1 -0
  348. package/dist/data/ai/SessionInspector.panel-parts.js +47 -0
  349. package/dist/data/ai/SessionInspector.panel-parts.js.map +1 -0
  350. package/dist/data/ai/SessionInspector.panels.cjs +40 -99
  351. package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
  352. package/dist/data/ai/SessionInspector.panels.d.ts +3 -1
  353. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
  354. package/dist/data/ai/SessionInspector.panels.js +12 -71
  355. package/dist/data/ai/SessionInspector.panels.js.map +1 -1
  356. package/dist/data/ai/SessionViewer.d.ts +1 -1
  357. package/dist/data/ai/SessionViewer.rows.d.ts +1 -1
  358. package/dist/data/ai/SessionViewer.tool-details.d.ts +1 -1
  359. package/dist/data/ai/SessionViewer.unified.d.ts +23 -0
  360. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  361. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +1 -1
  362. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +1 -1
  363. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +1 -1
  364. package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs +3 -1
  365. package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
  366. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +3 -1
  367. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  368. package/dist/data/ai/SpecRuntimeEditor/VerifySection.js +3 -1
  369. package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
  370. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +1 -1
  371. package/dist/data/ai/SpecRuntimeEditor/index.cjs +3 -1
  372. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  373. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +5 -2
  374. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  375. package/dist/data/ai/SpecRuntimeEditor/index.js +3 -1
  376. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  377. package/dist/data/ai/chat-window-context.cjs +1 -0
  378. package/dist/data/ai/chat-window-context.cjs.map +1 -1
  379. package/dist/data/ai/chat-window-context.d.ts +13 -5
  380. package/dist/data/ai/chat-window-context.d.ts.map +1 -1
  381. package/dist/data/ai/chat-window-context.js +1 -0
  382. package/dist/data/ai/chat-window-context.js.map +1 -1
  383. package/dist/data/ai/index.d.ts +2 -1
  384. package/dist/data/ai/index.d.ts.map +1 -1
  385. package/dist/data/ai/use-session-scroll.d.ts +1 -1
  386. package/dist/data/badge-variants.d.ts +2 -2
  387. package/dist/data/cache-browser/adapter.d.ts +1 -1
  388. package/dist/data/cells/CellFilterActions.d.ts +1 -1
  389. package/dist/data/cells/EntityCell.d.ts +1 -1
  390. package/dist/data/cells/tag-utils.d.ts +1 -1
  391. package/dist/data/chat/Chat.cjs +42 -46
  392. package/dist/data/chat/Chat.cjs.map +1 -1
  393. package/dist/data/chat/Chat.d.ts +16 -5
  394. package/dist/data/chat/Chat.d.ts.map +1 -1
  395. package/dist/data/chat/Chat.js +43 -47
  396. package/dist/data/chat/Chat.js.map +1 -1
  397. package/dist/data/chat/ModelSelector.d.ts +1 -1
  398. package/dist/data/chat/PromptInput.cjs +13 -0
  399. package/dist/data/chat/PromptInput.cjs.map +1 -1
  400. package/dist/data/chat/PromptInput.d.ts +8 -2
  401. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  402. package/dist/data/chat/PromptInput.js +14 -1
  403. package/dist/data/chat/PromptInput.js.map +1 -1
  404. package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
  405. package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
  406. package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
  407. package/dist/data/chat/tool-render/adapter.d.ts +1 -1
  408. package/dist/data/chat/tool-render/context.d.ts +1 -1
  409. package/dist/data/chat/tool-render/defaults.d.ts +1 -1
  410. package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
  411. package/dist/data/chat/tool-render/summary.d.ts +1 -1
  412. package/dist/data/chat/types.d.ts +1 -1
  413. package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
  414. package/dist/data/data-table-server-filters.d.ts +1 -1
  415. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +1 -1
  416. package/dist/data/diagnostics/ErrorDetails.d.ts +1 -1
  417. package/dist/data/diagnostics/StackFrameRow.d.ts +1 -1
  418. package/dist/data/git/GitChangeList.d.ts +1 -1
  419. package/dist/data/icon-fallback.d.ts +1 -1
  420. package/dist/data/properties-context.cjs +6 -0
  421. package/dist/data/properties-context.cjs.map +1 -0
  422. package/dist/data/properties-context.d.ts +7 -0
  423. package/dist/data/properties-context.d.ts.map +1 -0
  424. package/dist/data/properties-context.js +6 -0
  425. package/dist/data/properties-context.js.map +1 -0
  426. package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
  427. package/dist/data/runtime/RuntimeBar.cjs +7 -3
  428. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  429. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  430. package/dist/data/runtime/RuntimeBar.js +7 -3
  431. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  432. package/dist/data/task-copy.cjs +1 -1
  433. package/dist/data/task-copy.cjs.map +1 -1
  434. package/dist/data/task-copy.js +1 -1
  435. package/dist/data/task-copy.js.map +1 -1
  436. package/dist/data/task-resource-summary.cjs +30 -0
  437. package/dist/data/task-resource-summary.cjs.map +1 -0
  438. package/dist/data/task-resource-summary.d.ts +15 -0
  439. package/dist/data/task-resource-summary.d.ts.map +1 -0
  440. package/dist/data/task-resource-summary.js +30 -0
  441. package/dist/data/task-resource-summary.js.map +1 -0
  442. package/dist/data/task-status.cjs +8 -2
  443. package/dist/data/task-status.cjs.map +1 -1
  444. package/dist/data/task-status.d.ts +3 -0
  445. package/dist/data/task-status.d.ts.map +1 -1
  446. package/dist/data/task-status.js +8 -2
  447. package/dist/data/task-status.js.map +1 -1
  448. package/dist/data/task-work-progress.cjs +24 -0
  449. package/dist/data/task-work-progress.cjs.map +1 -0
  450. package/dist/data/task-work-progress.d.ts +21 -0
  451. package/dist/data/task-work-progress.d.ts.map +1 -0
  452. package/dist/data/task-work-progress.js +24 -0
  453. package/dist/data/task-work-progress.js.map +1 -0
  454. package/dist/data/test-runner/TestRunner.d.ts +1 -1
  455. package/dist/data/test-runner/adapter.d.ts +1 -1
  456. package/dist/data/test-runner/context.d.ts +1 -1
  457. package/dist/data/use-data-table-virtual.cjs +73 -0
  458. package/dist/data/use-data-table-virtual.cjs.map +1 -0
  459. package/dist/data/use-data-table-virtual.d.ts +40 -0
  460. package/dist/data/use-data-table-virtual.d.ts.map +1 -0
  461. package/dist/data/use-data-table-virtual.js +73 -0
  462. package/dist/data/use-data-table-virtual.js.map +1 -0
  463. package/dist/data/verification/VerificationResults.d.ts +1 -1
  464. package/dist/data/version-info.cjs +3 -3
  465. package/dist/data/version-info.js +3 -3
  466. package/dist/expressions/lang/attributes.cjs +56 -0
  467. package/dist/expressions/lang/attributes.cjs.map +1 -0
  468. package/dist/expressions/lang/attributes.d.ts +22 -0
  469. package/dist/expressions/lang/attributes.d.ts.map +1 -0
  470. package/dist/expressions/lang/attributes.js +56 -0
  471. package/dist/expressions/lang/attributes.js.map +1 -0
  472. package/dist/expressions/lang/completion.cjs +164 -0
  473. package/dist/expressions/lang/completion.cjs.map +1 -0
  474. package/dist/expressions/lang/completion.d.ts +29 -0
  475. package/dist/expressions/lang/completion.d.ts.map +1 -0
  476. package/dist/expressions/lang/completion.js +164 -0
  477. package/dist/expressions/lang/completion.js.map +1 -0
  478. package/dist/expressions/lang/environment.cjs +115 -0
  479. package/dist/expressions/lang/environment.cjs.map +1 -0
  480. package/dist/expressions/lang/environment.d.ts +54 -0
  481. package/dist/expressions/lang/environment.d.ts.map +1 -0
  482. package/dist/expressions/lang/environment.js +115 -0
  483. package/dist/expressions/lang/environment.js.map +1 -0
  484. package/dist/expressions/lang/generated/conformance.json.d.ts +4962 -0
  485. package/dist/expressions/lang/generated/index.cjs +18 -0
  486. package/dist/expressions/lang/generated/index.cjs.map +1 -0
  487. package/dist/expressions/lang/generated/index.d.ts +9 -0
  488. package/dist/expressions/lang/generated/index.d.ts.map +1 -0
  489. package/dist/expressions/lang/generated/index.js +18 -0
  490. package/dist/expressions/lang/generated/index.js.map +1 -0
  491. package/dist/expressions/lang/generated/languages.json.cjs +18 -0
  492. package/dist/expressions/lang/generated/languages.json.cjs.map +1 -0
  493. package/dist/expressions/lang/generated/languages.json.d.ts +2305 -0
  494. package/dist/expressions/lang/generated/languages.json.js +18 -0
  495. package/dist/expressions/lang/generated/languages.json.js.map +1 -0
  496. package/dist/expressions/lang/generated/spec.json.cjs +12 -0
  497. package/dist/expressions/lang/generated/spec.json.cjs.map +1 -0
  498. package/dist/expressions/lang/generated/spec.json.d.ts +6260 -0
  499. package/dist/expressions/lang/generated/spec.json.js +12 -0
  500. package/dist/expressions/lang/generated/spec.json.js.map +1 -0
  501. package/dist/expressions/lang/hover.cjs +106 -0
  502. package/dist/expressions/lang/hover.cjs.map +1 -0
  503. package/dist/expressions/lang/hover.d.ts +54 -0
  504. package/dist/expressions/lang/hover.d.ts.map +1 -0
  505. package/dist/expressions/lang/hover.js +106 -0
  506. package/dist/expressions/lang/hover.js.map +1 -0
  507. package/dist/expressions/lang/index.cjs +87 -0
  508. package/dist/expressions/lang/index.cjs.map +1 -0
  509. package/dist/expressions/lang/index.d.ts +65 -0
  510. package/dist/expressions/lang/index.d.ts.map +1 -0
  511. package/dist/expressions/lang/index.js +90 -0
  512. package/dist/expressions/lang/index.js.map +1 -0
  513. package/dist/expressions/lang/merge.cjs +52 -0
  514. package/dist/expressions/lang/merge.cjs.map +1 -0
  515. package/dist/expressions/lang/merge.d.ts +12 -0
  516. package/dist/expressions/lang/merge.d.ts.map +1 -0
  517. package/dist/expressions/lang/merge.js +52 -0
  518. package/dist/expressions/lang/merge.js.map +1 -0
  519. package/dist/expressions/lang/prefix.cjs +91 -0
  520. package/dist/expressions/lang/prefix.cjs.map +1 -0
  521. package/dist/expressions/lang/prefix.d.ts +36 -0
  522. package/dist/expressions/lang/prefix.d.ts.map +1 -0
  523. package/dist/expressions/lang/prefix.js +91 -0
  524. package/dist/expressions/lang/prefix.js.map +1 -0
  525. package/dist/expressions/lang/spec.d.ts +13 -0
  526. package/dist/expressions/lang/spec.d.ts.map +1 -0
  527. package/dist/expressions/lang/theme.cjs +97 -0
  528. package/dist/expressions/lang/theme.cjs.map +1 -0
  529. package/dist/expressions/lang/theme.d.ts +6 -0
  530. package/dist/expressions/lang/theme.d.ts.map +1 -0
  531. package/dist/expressions/lang/theme.js +97 -0
  532. package/dist/expressions/lang/theme.js.map +1 -0
  533. package/dist/expressions/lang/types.d.ts +81 -0
  534. package/dist/expressions/lang/types.d.ts.map +1 -0
  535. package/dist/expressions/playground/ExpressionPlayground.cjs +308 -0
  536. package/dist/expressions/playground/ExpressionPlayground.cjs.map +1 -0
  537. package/dist/expressions/playground/ExpressionPlayground.d.ts +42 -0
  538. package/dist/expressions/playground/ExpressionPlayground.d.ts.map +1 -0
  539. package/dist/expressions/playground/ExpressionPlayground.js +291 -0
  540. package/dist/expressions/playground/ExpressionPlayground.js.map +1 -0
  541. package/dist/expressions/playground/RunControls.cjs +51 -0
  542. package/dist/expressions/playground/RunControls.cjs.map +1 -0
  543. package/dist/expressions/playground/RunControls.d.ts +7 -0
  544. package/dist/expressions/playground/RunControls.d.ts.map +1 -0
  545. package/dist/expressions/playground/RunControls.js +51 -0
  546. package/dist/expressions/playground/RunControls.js.map +1 -0
  547. package/dist/expressions/playground/VerticalSplit.cjs +109 -0
  548. package/dist/expressions/playground/VerticalSplit.cjs.map +1 -0
  549. package/dist/expressions/playground/VerticalSplit.d.ts +23 -0
  550. package/dist/expressions/playground/VerticalSplit.d.ts.map +1 -0
  551. package/dist/expressions/playground/VerticalSplit.js +109 -0
  552. package/dist/expressions/playground/VerticalSplit.js.map +1 -0
  553. package/dist/expressions/playground/api.cjs +49 -0
  554. package/dist/expressions/playground/api.cjs.map +1 -0
  555. package/dist/expressions/playground/api.d.ts +53 -0
  556. package/dist/expressions/playground/api.d.ts.map +1 -0
  557. package/dist/expressions/playground/api.js +49 -0
  558. package/dist/expressions/playground/api.js.map +1 -0
  559. package/dist/expressions/playground/languages.cjs +88 -0
  560. package/dist/expressions/playground/languages.cjs.map +1 -0
  561. package/dist/expressions/playground/languages.d.ts +43 -0
  562. package/dist/expressions/playground/languages.d.ts.map +1 -0
  563. package/dist/expressions/playground/languages.js +88 -0
  564. package/dist/expressions/playground/languages.js.map +1 -0
  565. package/dist/expressions/playground/panels/GraphPanel.cjs +72 -0
  566. package/dist/expressions/playground/panels/GraphPanel.cjs.map +1 -0
  567. package/dist/expressions/playground/panels/GraphPanel.d.ts +19 -0
  568. package/dist/expressions/playground/panels/GraphPanel.d.ts.map +1 -0
  569. package/dist/expressions/playground/panels/GraphPanel.js +72 -0
  570. package/dist/expressions/playground/panels/GraphPanel.js.map +1 -0
  571. package/dist/expressions/playground/panels/ResultPanel.cjs +82 -0
  572. package/dist/expressions/playground/panels/ResultPanel.cjs.map +1 -0
  573. package/dist/expressions/playground/panels/ResultPanel.d.ts +11 -0
  574. package/dist/expressions/playground/panels/ResultPanel.d.ts.map +1 -0
  575. package/dist/expressions/playground/panels/ResultPanel.js +82 -0
  576. package/dist/expressions/playground/panels/ResultPanel.js.map +1 -0
  577. package/dist/expressions/playground/panels/SpecPanel.cjs +76 -0
  578. package/dist/expressions/playground/panels/SpecPanel.cjs.map +1 -0
  579. package/dist/expressions/playground/panels/SpecPanel.d.ts +18 -0
  580. package/dist/expressions/playground/panels/SpecPanel.d.ts.map +1 -0
  581. package/dist/expressions/playground/panels/SpecPanel.js +76 -0
  582. package/dist/expressions/playground/panels/SpecPanel.js.map +1 -0
  583. package/dist/expressions/playground/panels/TokensPanel.cjs +89 -0
  584. package/dist/expressions/playground/panels/TokensPanel.cjs.map +1 -0
  585. package/dist/expressions/playground/panels/TokensPanel.d.ts +15 -0
  586. package/dist/expressions/playground/panels/TokensPanel.d.ts.map +1 -0
  587. package/dist/expressions/playground/panels/TokensPanel.js +72 -0
  588. package/dist/expressions/playground/panels/TokensPanel.js.map +1 -0
  589. package/dist/expressions/playground/panels/graphNodes.cjs +35 -0
  590. package/dist/expressions/playground/panels/graphNodes.cjs.map +1 -0
  591. package/dist/expressions/playground/panels/graphNodes.d.ts +19 -0
  592. package/dist/expressions/playground/panels/graphNodes.d.ts.map +1 -0
  593. package/dist/expressions/playground/panels/graphNodes.js +35 -0
  594. package/dist/expressions/playground/panels/graphNodes.js.map +1 -0
  595. package/dist/expressions/playground/runAction.cjs +12 -0
  596. package/dist/expressions/playground/runAction.cjs.map +1 -0
  597. package/dist/expressions/playground/runAction.d.ts +15 -0
  598. package/dist/expressions/playground/runAction.d.ts.map +1 -0
  599. package/dist/expressions/playground/runAction.js +12 -0
  600. package/dist/expressions/playground/runAction.js.map +1 -0
  601. package/dist/expressions/playground/runShortcut.cjs +9 -0
  602. package/dist/expressions/playground/runShortcut.cjs.map +1 -0
  603. package/dist/expressions/playground/runShortcut.d.ts +2 -0
  604. package/dist/expressions/playground/runShortcut.d.ts.map +1 -0
  605. package/dist/expressions/playground/runShortcut.js +9 -0
  606. package/dist/expressions/playground/runShortcut.js.map +1 -0
  607. package/dist/expressions/playground/useEditorTheme.cjs +40 -0
  608. package/dist/expressions/playground/useEditorTheme.cjs.map +1 -0
  609. package/dist/expressions/playground/useEditorTheme.d.ts +16 -0
  610. package/dist/expressions/playground/useEditorTheme.d.ts.map +1 -0
  611. package/dist/expressions/playground/useEditorTheme.js +23 -0
  612. package/dist/expressions/playground/useEditorTheme.js.map +1 -0
  613. package/dist/expressions/playground/useEvaluator.cjs +72 -0
  614. package/dist/expressions/playground/useEvaluator.cjs.map +1 -0
  615. package/dist/expressions/playground/useEvaluator.d.ts +25 -0
  616. package/dist/expressions/playground/useEvaluator.d.ts.map +1 -0
  617. package/dist/expressions/playground/useEvaluator.js +72 -0
  618. package/dist/expressions/playground/useEvaluator.js.map +1 -0
  619. package/dist/expressions/playground/useParsedInput.cjs +22 -0
  620. package/dist/expressions/playground/useParsedInput.cjs.map +1 -0
  621. package/dist/expressions/playground/useParsedInput.d.ts +20 -0
  622. package/dist/expressions/playground/useParsedInput.d.ts.map +1 -0
  623. package/dist/expressions/playground/useParsedInput.js +22 -0
  624. package/dist/expressions/playground/useParsedInput.js.map +1 -0
  625. package/dist/expressions/playground/verticalSplitModel.cjs +11 -0
  626. package/dist/expressions/playground/verticalSplitModel.cjs.map +1 -0
  627. package/dist/expressions/playground/verticalSplitModel.d.ts +3 -0
  628. package/dist/expressions/playground/verticalSplitModel.d.ts.map +1 -0
  629. package/dist/expressions/playground/verticalSplitModel.js +11 -0
  630. package/dist/expressions/playground/verticalSplitModel.js.map +1 -0
  631. package/dist/expressions/playground.cjs +18 -0
  632. package/dist/expressions/playground.cjs.map +1 -0
  633. package/dist/expressions/playground.d.ts +18 -0
  634. package/dist/expressions/playground.d.ts.map +1 -0
  635. package/dist/expressions/playground.js +18 -0
  636. package/dist/expressions/playground.js.map +1 -0
  637. package/dist/expressions.cjs +28 -0
  638. package/dist/expressions.cjs.map +1 -0
  639. package/dist/expressions.d.ts +10 -0
  640. package/dist/expressions.d.ts.map +1 -0
  641. package/dist/expressions.js +28 -0
  642. package/dist/expressions.js.map +1 -0
  643. package/dist/hooks/density-provider.d.ts +1 -1
  644. package/dist/hooks/theme-provider.d.ts +1 -1
  645. package/dist/hooks/use-density.d.ts +1 -1
  646. package/dist/hooks/use-resource-clock.cjs +14 -0
  647. package/dist/hooks/use-resource-clock.cjs.map +1 -0
  648. package/dist/hooks/use-resource-clock.d.ts +2 -0
  649. package/dist/hooks/use-resource-clock.d.ts.map +1 -0
  650. package/dist/hooks/use-resource-clock.js +14 -0
  651. package/dist/hooks/use-resource-clock.js.map +1 -0
  652. package/dist/hooks/use-task-run.cjs +12 -3
  653. package/dist/hooks/use-task-run.cjs.map +1 -1
  654. package/dist/hooks/use-task-run.d.ts.map +1 -1
  655. package/dist/hooks/use-task-run.js +12 -3
  656. package/dist/hooks/use-task-run.js.map +1 -1
  657. package/dist/hooks/use-theme.d.ts +1 -1
  658. package/dist/icons/registry.d.ts +1 -1
  659. package/dist/icons/types.d.ts +1 -1
  660. package/dist/index.cjs +4 -3
  661. package/dist/index.cjs.map +1 -1
  662. package/dist/index.js +2 -1
  663. package/dist/index.js.map +1 -1
  664. package/dist/layout/AppShell.d.ts +1 -1
  665. package/dist/layout/AppShell.nav.drag.d.ts +1 -1
  666. package/dist/layout/AppSidebar.d.ts +1 -1
  667. package/dist/layout/Panel.d.ts +1 -1
  668. package/dist/layout/PanelFrame.d.ts +1 -1
  669. package/dist/layout/Section.d.ts +1 -1
  670. package/dist/layout/SplitPane.d.ts +1 -1
  671. package/dist/layout/Tabs.d.ts +1 -1
  672. package/dist/layout/Workspace.d.ts +1 -1
  673. package/dist/layout/Workspace.model.d.ts +1 -1
  674. package/dist/lib/combobox-values.d.ts +1 -1
  675. package/dist/lib/comment-stage.cjs +31 -0
  676. package/dist/lib/comment-stage.cjs.map +1 -0
  677. package/dist/lib/comment-stage.d.ts +8 -0
  678. package/dist/lib/comment-stage.d.ts.map +1 -0
  679. package/dist/lib/comment-stage.js +31 -0
  680. package/dist/lib/comment-stage.js.map +1 -0
  681. package/dist/monaco/MonacoEditor.cjs +3 -3
  682. package/dist/monaco/MonacoEditor.cjs.map +1 -1
  683. package/dist/monaco/MonacoEditor.js +2 -2
  684. package/dist/monaco/MonacoEditor.js.map +1 -1
  685. package/dist/monaco/types.d.ts +1 -1
  686. package/dist/monaco/use-monaco-worker.d.ts +1 -1
  687. package/dist/overlay/CellActions.d.ts +1 -1
  688. package/dist/overlay/CommandPalette.d.ts +2 -2
  689. package/dist/overlay/CommandPalette.model.d.ts +1 -1
  690. package/dist/overlay/CommandPaletteList.d.ts +1 -1
  691. package/dist/overlay/DropdownMenu.d.ts +1 -1
  692. package/dist/overlay/HoverCard.d.ts +1 -1
  693. package/dist/overlay/Modal.d.ts +2 -2
  694. package/dist/overlay/Toast.d.ts +1 -1
  695. package/dist/overlay/TourCard.d.ts +1 -1
  696. package/dist/overlay/TourProvider.d.ts +1 -1
  697. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  698. package/dist/overlay/toast-context.d.ts +2 -2
  699. package/dist/overlay/tour-context.d.ts +1 -1
  700. package/dist/overlay/tour-types.d.ts +1 -1
  701. package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
  702. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +1 -1
  703. package/dist/profiles/editor/profileBuilder.d.ts +1 -1
  704. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
  705. package/dist/profiles/fields/profileFieldControls.d.ts +1 -1
  706. package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
  707. package/dist/profiles/fields/profileFieldState.d.ts +1 -1
  708. package/dist/profiles/query/jsonPathSample.d.ts +1 -1
  709. package/dist/profiles/query/jsonPathSampleRow.d.ts +1 -1
  710. package/dist/profiles/query/prometheusResults.d.ts +2 -2
  711. package/dist/rpc/EndpointList.d.ts +1 -1
  712. package/dist/rpc/EntityExplorerApp.d.ts +1 -1
  713. package/dist/rpc/OperationCatalog.d.ts +1 -1
  714. package/dist/rpc/OperationEntityContextPicker.d.ts +1 -1
  715. package/dist/rpc/OperationEntityPage.d.ts +1 -1
  716. package/dist/rpc/OperationResultView.d.ts +1 -1
  717. package/dist/rpc/RouterProvider.d.ts +1 -1
  718. package/dist/rpc/SchemaActionForm.d.ts +1 -1
  719. package/dist/rpc/formMetadata.d.ts +1 -1
  720. package/dist/rpc/router.d.ts +1 -1
  721. package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
  722. package/dist/styles.css +1 -1
  723. package/dist/utils.cjs +4 -0
  724. package/dist/utils.cjs.map +1 -1
  725. package/dist/utils.d.ts +1 -0
  726. package/dist/utils.d.ts.map +1 -1
  727. package/dist/utils.js +4 -0
  728. package/dist/utils.js.map +1 -1
  729. package/package.json +21 -2
@@ -0,0 +1,15 @@
1
+ import { TaskSnapshot } from './TaskSnapshot';
2
+ export type ResourceSummary = {
3
+ state: "fresh" | "stale";
4
+ cpu: number;
5
+ rss: number;
6
+ sampledAt: number;
7
+ } | {
8
+ state: "unavailable";
9
+ };
10
+ export declare function resourceSummary(snapshots: TaskSnapshot[], options: {
11
+ now: number;
12
+ connected: boolean;
13
+ }): ResourceSummary;
14
+ export declare function taskTransportConnected(status: string): boolean;
15
+ //# sourceMappingURL=task-resource-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-resource-summary.d.ts","sourceRoot":"","sources":["../../src/data/task-resource-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAEnI,wBAAgB,eAAe,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,eAAe,CAoBxH;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9D"}
@@ -0,0 +1,30 @@
1
+ import { isTaskProcessDetails } from "./task-process-details.js";
2
+ function resourceSummary(snapshots, options) {
3
+ const processes = /* @__PURE__ */ new Map();
4
+ for (const snapshot of snapshots) {
5
+ if (snapshot.status !== "running" && snapshot.status !== "pending") continue;
6
+ if (!isTaskProcessDetails(snapshot.details)) continue;
7
+ const key = snapshot.details.pid ? `${snapshot.details.command}:${snapshot.details.pid}` : snapshot.id;
8
+ if (!processes.has(key) || snapshot.type === "task") processes.set(key, snapshot);
9
+ }
10
+ if (!processes.size) return { state: "unavailable" };
11
+ let cpu = 0, rss = 0, sampledAt = options.now;
12
+ for (const snapshot of processes.values()) {
13
+ if (!isTaskProcessDetails(snapshot.details)) continue;
14
+ const sample = snapshot.details.latest;
15
+ const at = Date.parse(sample.sampledAt);
16
+ if (!Number.isFinite(at) || at <= 0) return { state: "unavailable" };
17
+ cpu += sample.cpuPercent;
18
+ rss += sample.rssBytes;
19
+ sampledAt = Math.min(sampledAt, at);
20
+ }
21
+ return { state: options.connected && options.now - sampledAt <= 5e3 ? "fresh" : "stale", cpu, rss, sampledAt };
22
+ }
23
+ function taskTransportConnected(status) {
24
+ return status === "connected" || status === "polling" || status === "complete";
25
+ }
26
+ export {
27
+ resourceSummary,
28
+ taskTransportConnected
29
+ };
30
+ //# sourceMappingURL=task-resource-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-resource-summary.js","sources":["../../src/data/task-resource-summary.ts"],"sourcesContent":["import type { TaskSnapshot } from \"./TaskSnapshot\";\nimport { isTaskProcessDetails } from \"./task-process-details\";\n\nexport type ResourceSummary = { state: \"fresh\" | \"stale\"; cpu: number; rss: number; sampledAt: number } | { state: \"unavailable\" };\n\nexport function resourceSummary(snapshots: TaskSnapshot[], options: { now: number; connected: boolean }): ResourceSummary {\n const processes = new Map<string, TaskSnapshot>();\n for (const snapshot of snapshots) {\n if (snapshot.status !== \"running\" && snapshot.status !== \"pending\") continue;\n if (!isTaskProcessDetails(snapshot.details)) continue;\n const key = snapshot.details.pid ? `${snapshot.details.command}:${snapshot.details.pid}` : snapshot.id;\n if (!processes.has(key) || snapshot.type === \"task\") processes.set(key, snapshot);\n }\n if (!processes.size) return { state: \"unavailable\" };\n let cpu = 0, rss = 0, sampledAt = options.now;\n for (const snapshot of processes.values()) {\n if (!isTaskProcessDetails(snapshot.details)) continue;\n const sample = snapshot.details.latest;\n const at = Date.parse(sample.sampledAt);\n if (!Number.isFinite(at) || at <= 0) return { state: \"unavailable\" };\n cpu += sample.cpuPercent;\n rss += sample.rssBytes;\n sampledAt = Math.min(sampledAt, at);\n }\n return { state: options.connected && options.now - sampledAt <= 5000 ? \"fresh\" : \"stale\", cpu, rss, sampledAt };\n}\n\nexport function taskTransportConnected(status: string): boolean {\n return status === \"connected\" || status === \"polling\" || status === \"complete\";\n}\n"],"names":[],"mappings":";AAKO,SAAS,gBAAgB,WAA2B,SAA+D;AACxH,QAAM,gCAAgB,IAAA;AACtB,aAAW,YAAY,WAAW;AAChC,QAAI,SAAS,WAAW,aAAa,SAAS,WAAW,UAAW;AACpE,QAAI,CAAC,qBAAqB,SAAS,OAAO,EAAG;AAC7C,UAAM,MAAM,SAAS,QAAQ,MAAM,GAAG,SAAS,QAAQ,OAAO,IAAI,SAAS,QAAQ,GAAG,KAAK,SAAS;AACpG,QAAI,CAAC,UAAU,IAAI,GAAG,KAAK,SAAS,SAAS,OAAQ,WAAU,IAAI,KAAK,QAAQ;AAAA,EAClF;AACA,MAAI,CAAC,UAAU,KAAM,QAAO,EAAE,OAAO,cAAA;AACrC,MAAI,MAAM,GAAG,MAAM,GAAG,YAAY,QAAQ;AAC1C,aAAW,YAAY,UAAU,UAAU;AACzC,QAAI,CAAC,qBAAqB,SAAS,OAAO,EAAG;AAC7C,UAAM,SAAS,SAAS,QAAQ;AAChC,UAAM,KAAK,KAAK,MAAM,OAAO,SAAS;AACtC,QAAI,CAAC,OAAO,SAAS,EAAE,KAAK,MAAM,EAAG,QAAO,EAAE,OAAO,cAAA;AACrD,WAAO,OAAO;AACd,WAAO,OAAO;AACd,gBAAY,KAAK,IAAI,WAAW,EAAE;AAAA,EACpC;AACA,SAAO,EAAE,OAAO,QAAQ,aAAa,QAAQ,MAAM,aAAa,MAAO,UAAU,SAAS,KAAK,KAAK,UAAA;AACtG;AAEO,SAAS,uBAAuB,QAAyB;AAC9D,SAAO,WAAW,eAAe,WAAW,aAAa,WAAW;AACtE;"}
@@ -71,7 +71,9 @@ function taskSegments(counts) {
71
71
  { count: counts.warn, color: "bg-yellow-400", label: "warnings" },
72
72
  { count: counts.fail, color: "bg-red-500", label: "failed" },
73
73
  { count: counts.run, color: "bg-blue-500", label: "running" },
74
- { count: counts.pending, color: "bg-gray-300", label: "pending" }
74
+ { count: counts.pending, color: "bg-gray-300", label: "pending" },
75
+ { count: counts.canceled ?? 0, color: "bg-gray-400", label: "canceled" },
76
+ { count: counts.unstarted ?? 0, color: "bg-gray-200", label: "unstarted" }
75
77
  ];
76
78
  }
77
79
  function bucketTasks(tasks) {
@@ -80,6 +82,7 @@ function bucketTasks(tasks) {
80
82
  let fail = 0;
81
83
  let run = 0;
82
84
  let pending = 0;
85
+ let canceled = 0;
83
86
  for (const t of tasks) {
84
87
  switch (t.status) {
85
88
  case "success":
@@ -100,11 +103,14 @@ function bucketTasks(tasks) {
100
103
  case "pending":
101
104
  pending += 1;
102
105
  break;
106
+ case "canceled":
107
+ canceled += 1;
108
+ break;
103
109
  default:
104
110
  ok += 1;
105
111
  }
106
112
  }
107
- return { ok, warn, fail, run, pending };
113
+ return { ok, warn, fail, run, pending, canceled };
108
114
  }
109
115
  exports.bucketTasks = bucketTasks;
110
116
  exports.logLevelColor = logLevelColor;
@@ -1 +1 @@
1
- {"version":3,"file":"task-status.cjs","sources":["../../src/data/task-status.ts"],"sourcesContent":["import {\n UiCancel,\n UiCircleOutline,\n UiCircleX,\n UiClock,\n UiLoader,\n UiPass,\n UiWarningTriangle,\n} from \"../icons\";\nimport type { StaticIconComponent } from \"./Icon\";\nimport type { ProgressSegment } from \"./ProgressBar\";\nimport type { TaskSnapshot } from \"./TaskSnapshot\";\n\n// Status → presentation maps, ported from clicky's task UI (task/ui/src/utils.ts)\n// so the React and Preact renderers agree on icon/color semantics.\n\nconst STATUS_COLORS: Record<string, string> = {\n success: \"text-green-600 dark:text-green-400\",\n PASS: \"text-green-600 dark:text-green-400\",\n completed: \"text-green-600 dark:text-green-400\",\n failed: \"text-red-600 dark:text-red-400\",\n FAIL: \"text-red-600 dark:text-red-400\",\n ERR: \"text-red-600 dark:text-red-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n running: \"text-blue-600 dark:text-blue-400\",\n pending: \"text-gray-400\",\n canceled: \"text-gray-400\",\n SKIP: \"text-gray-400\",\n};\n\n// Status → generated Ui* icon component. Rendered via <Icon icon={…}>; the\n// `running` glyph is spun with `animate-spin` at the call sites.\nconst STATUS_ICONS: Record<string, StaticIconComponent> = {\n pending: UiClock,\n running: UiLoader,\n success: UiPass,\n PASS: UiPass,\n completed: UiPass,\n failed: UiCircleX,\n FAIL: UiCircleX,\n ERR: UiCircleX,\n warning: UiWarningTriangle,\n canceled: UiCancel,\n SKIP: UiCancel,\n};\n\nconst STATUS_BG: Record<string, string> = {\n success: \"bg-green-100 dark:bg-green-500/20\",\n completed: \"bg-green-100 dark:bg-green-500/20\",\n PASS: \"bg-green-100 dark:bg-green-500/20\",\n failed: \"bg-red-100 dark:bg-red-500/20\",\n FAIL: \"bg-red-100 dark:bg-red-500/20\",\n ERR: \"bg-red-100 dark:bg-red-500/20\",\n warning: \"bg-yellow-100 dark:bg-yellow-500/20\",\n running: \"bg-blue-100 dark:bg-blue-500/20\",\n pending: \"bg-gray-100 dark:bg-gray-500/20\",\n};\n\nexport function taskStatusColor(s: string): string {\n return STATUS_COLORS[s] ?? \"text-gray-500\";\n}\n\nexport function taskStatusIcon(s: string): StaticIconComponent {\n return STATUS_ICONS[s] ?? UiCircleOutline;\n}\n\nexport function taskStatusBg(s: string): string {\n return STATUS_BG[s] ?? \"bg-gray-100 dark:bg-gray-500/20\";\n}\n\nexport function logLevelColor(level: string): string {\n switch (level) {\n case \"error\":\n return \"text-red-500\";\n case \"warn\":\n return \"text-yellow-600 dark:text-yellow-400\";\n case \"debug\":\n return \"text-gray-400\";\n default:\n return \"text-gray-500\";\n }\n}\n\n// taskSegments builds the colored progress-bar segments for a set of counts, in\n// the canonical clicky order (passed, warnings, failed, running, pending).\nexport function taskSegments(counts: {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n}): ProgressSegment[] {\n return [\n { count: counts.ok, color: \"bg-green-500\", label: \"passed\" },\n { count: counts.warn, color: \"bg-yellow-400\", label: \"warnings\" },\n { count: counts.fail, color: \"bg-red-500\", label: \"failed\" },\n { count: counts.run, color: \"bg-blue-500\", label: \"running\" },\n { count: counts.pending, color: \"bg-gray-300\", label: \"pending\" },\n ];\n}\n\n// bucketTasks tallies the child tasks of a group by status bucket.\nexport function bucketTasks(tasks: TaskSnapshot[]): {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n} {\n let ok = 0;\n let warn = 0;\n let fail = 0;\n let run = 0;\n let pending = 0;\n for (const t of tasks) {\n switch (t.status) {\n case \"success\":\n case \"PASS\":\n ok += 1;\n break;\n case \"warning\":\n warn += 1;\n break;\n case \"failed\":\n case \"FAIL\":\n case \"ERR\":\n fail += 1;\n break;\n case \"running\":\n run += 1;\n break;\n case \"pending\":\n pending += 1;\n break;\n default:\n ok += 1; // SKIP / canceled / completed count as done\n }\n }\n return { ok, warn, fail, run, pending };\n}\n"],"names":["UiClock","UiLoader","UiPass","UiCircleX","UiWarningTriangle","UiCancel","UiCircleOutline"],"mappings":";;;;;;;;;AAgBA,MAAM,gBAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR;AAIA,MAAM,eAAoD;AAAA,EACxD,SAASA,QAAAA;AAAAA,EACT,SAASC,SAAAA;AAAAA,EACT,SAASC,OAAAA;AAAAA,EACT,MAAMA,OAAAA;AAAAA,EACN,WAAWA,OAAAA;AAAAA,EACX,QAAQC,UAAAA;AAAAA,EACR,MAAMA,UAAAA;AAAAA,EACN,KAAKA,UAAAA;AAAAA,EACL,SAASC,kBAAAA;AAAAA,EACT,UAAUC,SAAAA;AAAAA,EACV,MAAMA,SAAAA;AACR;AAEA,MAAM,YAAoC;AAAA,EACxC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX;AAEO,SAAS,gBAAgB,GAAmB;AACjD,SAAO,cAAc,CAAC,KAAK;AAC7B;AAEO,SAAS,eAAe,GAAgC;AAC7D,SAAO,aAAa,CAAC,KAAKC,gBAAAA;AAC5B;AAEO,SAAS,aAAa,GAAmB;AAC9C,SAAO,UAAU,CAAC,KAAK;AACzB;AAEO,SAAS,cAAc,OAAuB;AACnD,UAAQ,OAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAIO,SAAS,aAAa,QAMP;AACpB,SAAO;AAAA,IACL,EAAE,OAAO,OAAO,IAAI,OAAO,gBAAgB,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,MAAM,OAAO,iBAAiB,OAAO,WAAA;AAAA,IACrD,EAAE,OAAO,OAAO,MAAM,OAAO,cAAc,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,KAAK,OAAO,eAAe,OAAO,UAAA;AAAA,IAClD,EAAE,OAAO,OAAO,SAAS,OAAO,eAAe,OAAO,UAAA;AAAA,EAAU;AAEpE;AAGO,SAAS,YAAY,OAM1B;AACA,MAAI,KAAK;AACT,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI,MAAM;AACV,MAAI,UAAU;AACd,aAAW,KAAK,OAAO;AACrB,YAAQ,EAAE,QAAA;AAAA,MACR,KAAK;AAAA,MACL,KAAK;AACH,cAAM;AACN;AAAA,MACF,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO;AACP;AAAA,MACF,KAAK;AACH,mBAAW;AACX;AAAA,MACF;AACE,cAAM;AAAA,IAAA;AAAA,EAEZ;AACA,SAAO,EAAE,IAAI,MAAM,MAAM,KAAK,QAAA;AAChC;;;;;;;"}
1
+ {"version":3,"file":"task-status.cjs","sources":["../../src/data/task-status.ts"],"sourcesContent":["import {\n UiCancel,\n UiCircleOutline,\n UiCircleX,\n UiClock,\n UiLoader,\n UiPass,\n UiWarningTriangle,\n} from \"../icons\";\nimport type { StaticIconComponent } from \"./Icon\";\nimport type { ProgressSegment } from \"./ProgressBar\";\nimport type { TaskSnapshot } from \"./TaskSnapshot\";\n\n// Status → presentation maps, ported from clicky's task UI (task/ui/src/utils.ts)\n// so the React and Preact renderers agree on icon/color semantics.\n\nconst STATUS_COLORS: Record<string, string> = {\n success: \"text-green-600 dark:text-green-400\",\n PASS: \"text-green-600 dark:text-green-400\",\n completed: \"text-green-600 dark:text-green-400\",\n failed: \"text-red-600 dark:text-red-400\",\n FAIL: \"text-red-600 dark:text-red-400\",\n ERR: \"text-red-600 dark:text-red-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n running: \"text-blue-600 dark:text-blue-400\",\n pending: \"text-gray-400\",\n canceled: \"text-gray-400\",\n SKIP: \"text-gray-400\",\n};\n\n// Status → generated Ui* icon component. Rendered via <Icon icon={…}>; the\n// `running` glyph is spun with `animate-spin` at the call sites.\nconst STATUS_ICONS: Record<string, StaticIconComponent> = {\n pending: UiClock,\n running: UiLoader,\n success: UiPass,\n PASS: UiPass,\n completed: UiPass,\n failed: UiCircleX,\n FAIL: UiCircleX,\n ERR: UiCircleX,\n warning: UiWarningTriangle,\n canceled: UiCancel,\n SKIP: UiCancel,\n};\n\nconst STATUS_BG: Record<string, string> = {\n success: \"bg-green-100 dark:bg-green-500/20\",\n completed: \"bg-green-100 dark:bg-green-500/20\",\n PASS: \"bg-green-100 dark:bg-green-500/20\",\n failed: \"bg-red-100 dark:bg-red-500/20\",\n FAIL: \"bg-red-100 dark:bg-red-500/20\",\n ERR: \"bg-red-100 dark:bg-red-500/20\",\n warning: \"bg-yellow-100 dark:bg-yellow-500/20\",\n running: \"bg-blue-100 dark:bg-blue-500/20\",\n pending: \"bg-gray-100 dark:bg-gray-500/20\",\n};\n\nexport function taskStatusColor(s: string): string {\n return STATUS_COLORS[s] ?? \"text-gray-500\";\n}\n\nexport function taskStatusIcon(s: string): StaticIconComponent {\n return STATUS_ICONS[s] ?? UiCircleOutline;\n}\n\nexport function taskStatusBg(s: string): string {\n return STATUS_BG[s] ?? \"bg-gray-100 dark:bg-gray-500/20\";\n}\n\nexport function logLevelColor(level: string): string {\n switch (level) {\n case \"error\":\n return \"text-red-500\";\n case \"warn\":\n return \"text-yellow-600 dark:text-yellow-400\";\n case \"debug\":\n return \"text-gray-400\";\n default:\n return \"text-gray-500\";\n }\n}\n\n// taskSegments builds the colored progress-bar segments for a set of counts, in\n// the canonical clicky order (passed, warnings, failed, running, pending).\nexport function taskSegments(counts: {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n canceled?: number;\n unstarted?: number;\n}): ProgressSegment[] {\n return [\n { count: counts.ok, color: \"bg-green-500\", label: \"passed\" },\n { count: counts.warn, color: \"bg-yellow-400\", label: \"warnings\" },\n { count: counts.fail, color: \"bg-red-500\", label: \"failed\" },\n { count: counts.run, color: \"bg-blue-500\", label: \"running\" },\n { count: counts.pending, color: \"bg-gray-300\", label: \"pending\" },\n { count: counts.canceled ?? 0, color: \"bg-gray-400\", label: \"canceled\" },\n { count: counts.unstarted ?? 0, color: \"bg-gray-200\", label: \"unstarted\" },\n ];\n}\n\n// bucketTasks tallies the child tasks of a group by status bucket.\nexport function bucketTasks(tasks: TaskSnapshot[]): {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n canceled: number;\n} {\n let ok = 0;\n let warn = 0;\n let fail = 0;\n let run = 0;\n let pending = 0;\n let canceled = 0;\n for (const t of tasks) {\n switch (t.status) {\n case \"success\":\n case \"PASS\":\n ok += 1;\n break;\n case \"warning\":\n warn += 1;\n break;\n case \"failed\":\n case \"FAIL\":\n case \"ERR\":\n fail += 1;\n break;\n case \"running\":\n run += 1;\n break;\n case \"pending\":\n pending += 1;\n break;\n case \"canceled\":\n canceled += 1;\n break;\n default:\n ok += 1; // SKIP and other terminal results count as done\n }\n }\n return { ok, warn, fail, run, pending, canceled };\n}\n"],"names":["UiClock","UiLoader","UiPass","UiCircleX","UiWarningTriangle","UiCancel","UiCircleOutline"],"mappings":";;;;;;;;;AAgBA,MAAM,gBAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR;AAIA,MAAM,eAAoD;AAAA,EACxD,SAASA,QAAAA;AAAAA,EACT,SAASC,SAAAA;AAAAA,EACT,SAASC,OAAAA;AAAAA,EACT,MAAMA,OAAAA;AAAAA,EACN,WAAWA,OAAAA;AAAAA,EACX,QAAQC,UAAAA;AAAAA,EACR,MAAMA,UAAAA;AAAAA,EACN,KAAKA,UAAAA;AAAAA,EACL,SAASC,kBAAAA;AAAAA,EACT,UAAUC,SAAAA;AAAAA,EACV,MAAMA,SAAAA;AACR;AAEA,MAAM,YAAoC;AAAA,EACxC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX;AAEO,SAAS,gBAAgB,GAAmB;AACjD,SAAO,cAAc,CAAC,KAAK;AAC7B;AAEO,SAAS,eAAe,GAAgC;AAC7D,SAAO,aAAa,CAAC,KAAKC,gBAAAA;AAC5B;AAEO,SAAS,aAAa,GAAmB;AAC9C,SAAO,UAAU,CAAC,KAAK;AACzB;AAEO,SAAS,cAAc,OAAuB;AACnD,UAAQ,OAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAIO,SAAS,aAAa,QAQP;AACpB,SAAO;AAAA,IACL,EAAE,OAAO,OAAO,IAAI,OAAO,gBAAgB,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,MAAM,OAAO,iBAAiB,OAAO,WAAA;AAAA,IACrD,EAAE,OAAO,OAAO,MAAM,OAAO,cAAc,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,KAAK,OAAO,eAAe,OAAO,UAAA;AAAA,IAClD,EAAE,OAAO,OAAO,SAAS,OAAO,eAAe,OAAO,UAAA;AAAA,IACtD,EAAE,OAAO,OAAO,YAAY,GAAG,OAAO,eAAe,OAAO,WAAA;AAAA,IAC5D,EAAE,OAAO,OAAO,aAAa,GAAG,OAAO,eAAe,OAAO,YAAA;AAAA,EAAY;AAE7E;AAGO,SAAS,YAAY,OAO1B;AACA,MAAI,KAAK;AACT,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI,MAAM;AACV,MAAI,UAAU;AACd,MAAI,WAAW;AACf,aAAW,KAAK,OAAO;AACrB,YAAQ,EAAE,QAAA;AAAA,MACR,KAAK;AAAA,MACL,KAAK;AACH,cAAM;AACN;AAAA,MACF,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO;AACP;AAAA,MACF,KAAK;AACH,mBAAW;AACX;AAAA,MACF,KAAK;AACH,oBAAY;AACZ;AAAA,MACF;AACE,cAAM;AAAA,IAAA;AAAA,EAEZ;AACA,SAAO,EAAE,IAAI,MAAM,MAAM,KAAK,SAAS,SAAA;AACzC;;;;;;;"}
@@ -11,6 +11,8 @@ export declare function taskSegments(counts: {
11
11
  fail: number;
12
12
  run: number;
13
13
  pending: number;
14
+ canceled?: number;
15
+ unstarted?: number;
14
16
  }): ProgressSegment[];
15
17
  export declare function bucketTasks(tasks: TaskSnapshot[]): {
16
18
  ok: number;
@@ -18,5 +20,6 @@ export declare function bucketTasks(tasks: TaskSnapshot[]): {
18
20
  fail: number;
19
21
  run: number;
20
22
  pending: number;
23
+ canceled: number;
21
24
  };
22
25
  //# sourceMappingURL=task-status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-status.d.ts","sourceRoot":"","sources":["../../src/data/task-status.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA+CnD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAE7D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnD;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,eAAe,EAAE,CAQpB;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CA+BA"}
1
+ {"version":3,"file":"task-status.d.ts","sourceRoot":"","sources":["../../src/data/task-status.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA+CnD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAE7D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnD;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,eAAe,EAAE,CAUpB;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAmCA"}
@@ -69,7 +69,9 @@ function taskSegments(counts) {
69
69
  { count: counts.warn, color: "bg-yellow-400", label: "warnings" },
70
70
  { count: counts.fail, color: "bg-red-500", label: "failed" },
71
71
  { count: counts.run, color: "bg-blue-500", label: "running" },
72
- { count: counts.pending, color: "bg-gray-300", label: "pending" }
72
+ { count: counts.pending, color: "bg-gray-300", label: "pending" },
73
+ { count: counts.canceled ?? 0, color: "bg-gray-400", label: "canceled" },
74
+ { count: counts.unstarted ?? 0, color: "bg-gray-200", label: "unstarted" }
73
75
  ];
74
76
  }
75
77
  function bucketTasks(tasks) {
@@ -78,6 +80,7 @@ function bucketTasks(tasks) {
78
80
  let fail = 0;
79
81
  let run = 0;
80
82
  let pending = 0;
83
+ let canceled = 0;
81
84
  for (const t of tasks) {
82
85
  switch (t.status) {
83
86
  case "success":
@@ -98,11 +101,14 @@ function bucketTasks(tasks) {
98
101
  case "pending":
99
102
  pending += 1;
100
103
  break;
104
+ case "canceled":
105
+ canceled += 1;
106
+ break;
101
107
  default:
102
108
  ok += 1;
103
109
  }
104
110
  }
105
- return { ok, warn, fail, run, pending };
111
+ return { ok, warn, fail, run, pending, canceled };
106
112
  }
107
113
  export {
108
114
  bucketTasks,
@@ -1 +1 @@
1
- {"version":3,"file":"task-status.js","sources":["../../src/data/task-status.ts"],"sourcesContent":["import {\n UiCancel,\n UiCircleOutline,\n UiCircleX,\n UiClock,\n UiLoader,\n UiPass,\n UiWarningTriangle,\n} from \"../icons\";\nimport type { StaticIconComponent } from \"./Icon\";\nimport type { ProgressSegment } from \"./ProgressBar\";\nimport type { TaskSnapshot } from \"./TaskSnapshot\";\n\n// Status → presentation maps, ported from clicky's task UI (task/ui/src/utils.ts)\n// so the React and Preact renderers agree on icon/color semantics.\n\nconst STATUS_COLORS: Record<string, string> = {\n success: \"text-green-600 dark:text-green-400\",\n PASS: \"text-green-600 dark:text-green-400\",\n completed: \"text-green-600 dark:text-green-400\",\n failed: \"text-red-600 dark:text-red-400\",\n FAIL: \"text-red-600 dark:text-red-400\",\n ERR: \"text-red-600 dark:text-red-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n running: \"text-blue-600 dark:text-blue-400\",\n pending: \"text-gray-400\",\n canceled: \"text-gray-400\",\n SKIP: \"text-gray-400\",\n};\n\n// Status → generated Ui* icon component. Rendered via <Icon icon={…}>; the\n// `running` glyph is spun with `animate-spin` at the call sites.\nconst STATUS_ICONS: Record<string, StaticIconComponent> = {\n pending: UiClock,\n running: UiLoader,\n success: UiPass,\n PASS: UiPass,\n completed: UiPass,\n failed: UiCircleX,\n FAIL: UiCircleX,\n ERR: UiCircleX,\n warning: UiWarningTriangle,\n canceled: UiCancel,\n SKIP: UiCancel,\n};\n\nconst STATUS_BG: Record<string, string> = {\n success: \"bg-green-100 dark:bg-green-500/20\",\n completed: \"bg-green-100 dark:bg-green-500/20\",\n PASS: \"bg-green-100 dark:bg-green-500/20\",\n failed: \"bg-red-100 dark:bg-red-500/20\",\n FAIL: \"bg-red-100 dark:bg-red-500/20\",\n ERR: \"bg-red-100 dark:bg-red-500/20\",\n warning: \"bg-yellow-100 dark:bg-yellow-500/20\",\n running: \"bg-blue-100 dark:bg-blue-500/20\",\n pending: \"bg-gray-100 dark:bg-gray-500/20\",\n};\n\nexport function taskStatusColor(s: string): string {\n return STATUS_COLORS[s] ?? \"text-gray-500\";\n}\n\nexport function taskStatusIcon(s: string): StaticIconComponent {\n return STATUS_ICONS[s] ?? UiCircleOutline;\n}\n\nexport function taskStatusBg(s: string): string {\n return STATUS_BG[s] ?? \"bg-gray-100 dark:bg-gray-500/20\";\n}\n\nexport function logLevelColor(level: string): string {\n switch (level) {\n case \"error\":\n return \"text-red-500\";\n case \"warn\":\n return \"text-yellow-600 dark:text-yellow-400\";\n case \"debug\":\n return \"text-gray-400\";\n default:\n return \"text-gray-500\";\n }\n}\n\n// taskSegments builds the colored progress-bar segments for a set of counts, in\n// the canonical clicky order (passed, warnings, failed, running, pending).\nexport function taskSegments(counts: {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n}): ProgressSegment[] {\n return [\n { count: counts.ok, color: \"bg-green-500\", label: \"passed\" },\n { count: counts.warn, color: \"bg-yellow-400\", label: \"warnings\" },\n { count: counts.fail, color: \"bg-red-500\", label: \"failed\" },\n { count: counts.run, color: \"bg-blue-500\", label: \"running\" },\n { count: counts.pending, color: \"bg-gray-300\", label: \"pending\" },\n ];\n}\n\n// bucketTasks tallies the child tasks of a group by status bucket.\nexport function bucketTasks(tasks: TaskSnapshot[]): {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n} {\n let ok = 0;\n let warn = 0;\n let fail = 0;\n let run = 0;\n let pending = 0;\n for (const t of tasks) {\n switch (t.status) {\n case \"success\":\n case \"PASS\":\n ok += 1;\n break;\n case \"warning\":\n warn += 1;\n break;\n case \"failed\":\n case \"FAIL\":\n case \"ERR\":\n fail += 1;\n break;\n case \"running\":\n run += 1;\n break;\n case \"pending\":\n pending += 1;\n break;\n default:\n ok += 1; // SKIP / canceled / completed count as done\n }\n }\n return { ok, warn, fail, run, pending };\n}\n"],"names":[],"mappings":";;;;;;;AAgBA,MAAM,gBAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR;AAIA,MAAM,eAAoD;AAAA,EACxD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR;AAEA,MAAM,YAAoC;AAAA,EACxC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX;AAEO,SAAS,gBAAgB,GAAmB;AACjD,SAAO,cAAc,CAAC,KAAK;AAC7B;AAEO,SAAS,eAAe,GAAgC;AAC7D,SAAO,aAAa,CAAC,KAAK;AAC5B;AAEO,SAAS,aAAa,GAAmB;AAC9C,SAAO,UAAU,CAAC,KAAK;AACzB;AAEO,SAAS,cAAc,OAAuB;AACnD,UAAQ,OAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAIO,SAAS,aAAa,QAMP;AACpB,SAAO;AAAA,IACL,EAAE,OAAO,OAAO,IAAI,OAAO,gBAAgB,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,MAAM,OAAO,iBAAiB,OAAO,WAAA;AAAA,IACrD,EAAE,OAAO,OAAO,MAAM,OAAO,cAAc,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,KAAK,OAAO,eAAe,OAAO,UAAA;AAAA,IAClD,EAAE,OAAO,OAAO,SAAS,OAAO,eAAe,OAAO,UAAA;AAAA,EAAU;AAEpE;AAGO,SAAS,YAAY,OAM1B;AACA,MAAI,KAAK;AACT,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI,MAAM;AACV,MAAI,UAAU;AACd,aAAW,KAAK,OAAO;AACrB,YAAQ,EAAE,QAAA;AAAA,MACR,KAAK;AAAA,MACL,KAAK;AACH,cAAM;AACN;AAAA,MACF,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO;AACP;AAAA,MACF,KAAK;AACH,mBAAW;AACX;AAAA,MACF;AACE,cAAM;AAAA,IAAA;AAAA,EAEZ;AACA,SAAO,EAAE,IAAI,MAAM,MAAM,KAAK,QAAA;AAChC;"}
1
+ {"version":3,"file":"task-status.js","sources":["../../src/data/task-status.ts"],"sourcesContent":["import {\n UiCancel,\n UiCircleOutline,\n UiCircleX,\n UiClock,\n UiLoader,\n UiPass,\n UiWarningTriangle,\n} from \"../icons\";\nimport type { StaticIconComponent } from \"./Icon\";\nimport type { ProgressSegment } from \"./ProgressBar\";\nimport type { TaskSnapshot } from \"./TaskSnapshot\";\n\n// Status → presentation maps, ported from clicky's task UI (task/ui/src/utils.ts)\n// so the React and Preact renderers agree on icon/color semantics.\n\nconst STATUS_COLORS: Record<string, string> = {\n success: \"text-green-600 dark:text-green-400\",\n PASS: \"text-green-600 dark:text-green-400\",\n completed: \"text-green-600 dark:text-green-400\",\n failed: \"text-red-600 dark:text-red-400\",\n FAIL: \"text-red-600 dark:text-red-400\",\n ERR: \"text-red-600 dark:text-red-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n running: \"text-blue-600 dark:text-blue-400\",\n pending: \"text-gray-400\",\n canceled: \"text-gray-400\",\n SKIP: \"text-gray-400\",\n};\n\n// Status → generated Ui* icon component. Rendered via <Icon icon={…}>; the\n// `running` glyph is spun with `animate-spin` at the call sites.\nconst STATUS_ICONS: Record<string, StaticIconComponent> = {\n pending: UiClock,\n running: UiLoader,\n success: UiPass,\n PASS: UiPass,\n completed: UiPass,\n failed: UiCircleX,\n FAIL: UiCircleX,\n ERR: UiCircleX,\n warning: UiWarningTriangle,\n canceled: UiCancel,\n SKIP: UiCancel,\n};\n\nconst STATUS_BG: Record<string, string> = {\n success: \"bg-green-100 dark:bg-green-500/20\",\n completed: \"bg-green-100 dark:bg-green-500/20\",\n PASS: \"bg-green-100 dark:bg-green-500/20\",\n failed: \"bg-red-100 dark:bg-red-500/20\",\n FAIL: \"bg-red-100 dark:bg-red-500/20\",\n ERR: \"bg-red-100 dark:bg-red-500/20\",\n warning: \"bg-yellow-100 dark:bg-yellow-500/20\",\n running: \"bg-blue-100 dark:bg-blue-500/20\",\n pending: \"bg-gray-100 dark:bg-gray-500/20\",\n};\n\nexport function taskStatusColor(s: string): string {\n return STATUS_COLORS[s] ?? \"text-gray-500\";\n}\n\nexport function taskStatusIcon(s: string): StaticIconComponent {\n return STATUS_ICONS[s] ?? UiCircleOutline;\n}\n\nexport function taskStatusBg(s: string): string {\n return STATUS_BG[s] ?? \"bg-gray-100 dark:bg-gray-500/20\";\n}\n\nexport function logLevelColor(level: string): string {\n switch (level) {\n case \"error\":\n return \"text-red-500\";\n case \"warn\":\n return \"text-yellow-600 dark:text-yellow-400\";\n case \"debug\":\n return \"text-gray-400\";\n default:\n return \"text-gray-500\";\n }\n}\n\n// taskSegments builds the colored progress-bar segments for a set of counts, in\n// the canonical clicky order (passed, warnings, failed, running, pending).\nexport function taskSegments(counts: {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n canceled?: number;\n unstarted?: number;\n}): ProgressSegment[] {\n return [\n { count: counts.ok, color: \"bg-green-500\", label: \"passed\" },\n { count: counts.warn, color: \"bg-yellow-400\", label: \"warnings\" },\n { count: counts.fail, color: \"bg-red-500\", label: \"failed\" },\n { count: counts.run, color: \"bg-blue-500\", label: \"running\" },\n { count: counts.pending, color: \"bg-gray-300\", label: \"pending\" },\n { count: counts.canceled ?? 0, color: \"bg-gray-400\", label: \"canceled\" },\n { count: counts.unstarted ?? 0, color: \"bg-gray-200\", label: \"unstarted\" },\n ];\n}\n\n// bucketTasks tallies the child tasks of a group by status bucket.\nexport function bucketTasks(tasks: TaskSnapshot[]): {\n ok: number;\n warn: number;\n fail: number;\n run: number;\n pending: number;\n canceled: number;\n} {\n let ok = 0;\n let warn = 0;\n let fail = 0;\n let run = 0;\n let pending = 0;\n let canceled = 0;\n for (const t of tasks) {\n switch (t.status) {\n case \"success\":\n case \"PASS\":\n ok += 1;\n break;\n case \"warning\":\n warn += 1;\n break;\n case \"failed\":\n case \"FAIL\":\n case \"ERR\":\n fail += 1;\n break;\n case \"running\":\n run += 1;\n break;\n case \"pending\":\n pending += 1;\n break;\n case \"canceled\":\n canceled += 1;\n break;\n default:\n ok += 1; // SKIP and other terminal results count as done\n }\n }\n return { ok, warn, fail, run, pending, canceled };\n}\n"],"names":[],"mappings":";;;;;;;AAgBA,MAAM,gBAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR;AAIA,MAAM,eAAoD;AAAA,EACxD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AACR;AAEA,MAAM,YAAoC;AAAA,EACxC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX;AAEO,SAAS,gBAAgB,GAAmB;AACjD,SAAO,cAAc,CAAC,KAAK;AAC7B;AAEO,SAAS,eAAe,GAAgC;AAC7D,SAAO,aAAa,CAAC,KAAK;AAC5B;AAEO,SAAS,aAAa,GAAmB;AAC9C,SAAO,UAAU,CAAC,KAAK;AACzB;AAEO,SAAS,cAAc,OAAuB;AACnD,UAAQ,OAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAIO,SAAS,aAAa,QAQP;AACpB,SAAO;AAAA,IACL,EAAE,OAAO,OAAO,IAAI,OAAO,gBAAgB,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,MAAM,OAAO,iBAAiB,OAAO,WAAA;AAAA,IACrD,EAAE,OAAO,OAAO,MAAM,OAAO,cAAc,OAAO,SAAA;AAAA,IAClD,EAAE,OAAO,OAAO,KAAK,OAAO,eAAe,OAAO,UAAA;AAAA,IAClD,EAAE,OAAO,OAAO,SAAS,OAAO,eAAe,OAAO,UAAA;AAAA,IACtD,EAAE,OAAO,OAAO,YAAY,GAAG,OAAO,eAAe,OAAO,WAAA;AAAA,IAC5D,EAAE,OAAO,OAAO,aAAa,GAAG,OAAO,eAAe,OAAO,YAAA;AAAA,EAAY;AAE7E;AAGO,SAAS,YAAY,OAO1B;AACA,MAAI,KAAK;AACT,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI,MAAM;AACV,MAAI,UAAU;AACd,MAAI,WAAW;AACf,aAAW,KAAK,OAAO;AACrB,YAAQ,EAAE,QAAA;AAAA,MACR,KAAK;AAAA,MACL,KAAK;AACH,cAAM;AACN;AAAA,MACF,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO;AACP;AAAA,MACF,KAAK;AACH,mBAAW;AACX;AAAA,MACF,KAAK;AACH,oBAAY;AACZ;AAAA,MACF;AACE,cAAM;AAAA,IAAA;AAAA,EAEZ;AACA,SAAO,EAAE,IAAI,MAAM,MAAM,KAAK,SAAS,SAAA;AACzC;"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function taskWorkProgress(run) {
4
+ const work = run.work;
5
+ const total = (work == null ? void 0 : work.total) ?? run.total ?? 0;
6
+ const completed = work ? work.completed + work.cached : run.completed ?? 0;
7
+ const failed = (work == null ? void 0 : work.failed) ?? run.failed ?? 0;
8
+ const running = (work == null ? void 0 : work.running) ?? run.running ?? 0;
9
+ const canceled = (work == null ? void 0 : work.canceled) ?? run.canceled ?? 0;
10
+ const unstarted = (work == null ? void 0 : work.unstarted) ?? 0;
11
+ return {
12
+ total,
13
+ completed,
14
+ failed,
15
+ running,
16
+ canceled,
17
+ unstarted,
18
+ done: completed + failed,
19
+ label: `${completed + failed}/${total} done${failed ? `, ${failed} failed` : ""}${(work == null ? void 0 : work.cached) ? `, ${work.cached} cached` : ""}${canceled ? `, ${canceled} canceled` : ""}${unstarted ? `, ${unstarted} unstarted` : ""}`,
20
+ counts: { ok: completed, warn: 0, fail: failed, run: running, canceled, unstarted, pending: Math.max(0, total - completed - failed - running - canceled - unstarted) }
21
+ };
22
+ }
23
+ exports.taskWorkProgress = taskWorkProgress;
24
+ //# sourceMappingURL=task-work-progress.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-work-progress.cjs","sources":["../../src/data/task-work-progress.ts"],"sourcesContent":["import type { TaskRunMeta, TaskSnapshot } from \"./TaskSnapshot\";\n\nexport function taskWorkProgress(run: TaskSnapshot | TaskRunMeta) {\n const work = run.work;\n const total = work?.total ?? run.total ?? 0;\n const completed = work ? work.completed + work.cached : run.completed ?? 0;\n const failed = work?.failed ?? run.failed ?? 0;\n const running = work?.running ?? run.running ?? 0;\n const canceled = work?.canceled ?? run.canceled ?? 0;\n const unstarted = work?.unstarted ?? 0;\n return {\n total, completed, failed, running, canceled, unstarted,\n done: completed + failed,\n label: `${completed + failed}/${total} done${failed ? `, ${failed} failed` : \"\"}${work?.cached ? `, ${work.cached} cached` : \"\"}${canceled ? `, ${canceled} canceled` : \"\"}${unstarted ? `, ${unstarted} unstarted` : \"\"}`,\n counts: { ok: completed, warn: 0, fail: failed, run: running, canceled, unstarted, pending: Math.max(0, total - completed - failed - running - canceled - unstarted) },\n };\n}\n"],"names":[],"mappings":";;AAEO,SAAS,iBAAiB,KAAiC;AAChE,QAAM,OAAO,IAAI;AACjB,QAAM,SAAQ,6BAAM,UAAS,IAAI,SAAS;AAC1C,QAAM,YAAY,OAAO,KAAK,YAAY,KAAK,SAAS,IAAI,aAAa;AACzE,QAAM,UAAS,6BAAM,WAAU,IAAI,UAAU;AAC7C,QAAM,WAAU,6BAAM,YAAW,IAAI,WAAW;AAChD,QAAM,YAAW,6BAAM,aAAY,IAAI,YAAY;AACnD,QAAM,aAAY,6BAAM,cAAa;AACrC,SAAO;AAAA,IACL;AAAA,IAAO;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAC7C,MAAM,YAAY;AAAA,IAClB,OAAO,GAAG,YAAY,MAAM,IAAI,KAAK,QAAQ,SAAS,KAAK,MAAM,YAAY,EAAE,IAAG,6BAAM,UAAS,KAAK,KAAK,MAAM,YAAY,EAAE,GAAG,WAAW,KAAK,QAAQ,cAAc,EAAE,GAAG,YAAY,KAAK,SAAS,eAAe,EAAE;AAAA,IACxN,QAAQ,EAAE,IAAI,WAAW,MAAM,GAAG,MAAM,QAAQ,KAAK,SAAS,UAAU,WAAW,SAAS,KAAK,IAAI,GAAG,QAAQ,YAAY,SAAS,UAAU,WAAW,SAAS,EAAA;AAAA,EAAE;AAEzK;;"}
@@ -0,0 +1,21 @@
1
+ import { TaskRunMeta, TaskSnapshot } from './TaskSnapshot';
2
+ export declare function taskWorkProgress(run: TaskSnapshot | TaskRunMeta): {
3
+ total: number;
4
+ completed: number;
5
+ failed: number;
6
+ running: number;
7
+ canceled: number;
8
+ unstarted: number;
9
+ done: number;
10
+ label: string;
11
+ counts: {
12
+ ok: number;
13
+ warn: number;
14
+ fail: number;
15
+ run: number;
16
+ canceled: number;
17
+ unstarted: number;
18
+ pending: number;
19
+ };
20
+ };
21
+ //# sourceMappingURL=task-work-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-work-progress.d.ts","sourceRoot":"","sources":["../../src/data/task-work-progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW;;;;;;;;;;;;;;;;;;EAc/D"}
@@ -0,0 +1,24 @@
1
+ function taskWorkProgress(run) {
2
+ const work = run.work;
3
+ const total = (work == null ? void 0 : work.total) ?? run.total ?? 0;
4
+ const completed = work ? work.completed + work.cached : run.completed ?? 0;
5
+ const failed = (work == null ? void 0 : work.failed) ?? run.failed ?? 0;
6
+ const running = (work == null ? void 0 : work.running) ?? run.running ?? 0;
7
+ const canceled = (work == null ? void 0 : work.canceled) ?? run.canceled ?? 0;
8
+ const unstarted = (work == null ? void 0 : work.unstarted) ?? 0;
9
+ return {
10
+ total,
11
+ completed,
12
+ failed,
13
+ running,
14
+ canceled,
15
+ unstarted,
16
+ done: completed + failed,
17
+ label: `${completed + failed}/${total} done${failed ? `, ${failed} failed` : ""}${(work == null ? void 0 : work.cached) ? `, ${work.cached} cached` : ""}${canceled ? `, ${canceled} canceled` : ""}${unstarted ? `, ${unstarted} unstarted` : ""}`,
18
+ counts: { ok: completed, warn: 0, fail: failed, run: running, canceled, unstarted, pending: Math.max(0, total - completed - failed - running - canceled - unstarted) }
19
+ };
20
+ }
21
+ export {
22
+ taskWorkProgress
23
+ };
24
+ //# sourceMappingURL=task-work-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-work-progress.js","sources":["../../src/data/task-work-progress.ts"],"sourcesContent":["import type { TaskRunMeta, TaskSnapshot } from \"./TaskSnapshot\";\n\nexport function taskWorkProgress(run: TaskSnapshot | TaskRunMeta) {\n const work = run.work;\n const total = work?.total ?? run.total ?? 0;\n const completed = work ? work.completed + work.cached : run.completed ?? 0;\n const failed = work?.failed ?? run.failed ?? 0;\n const running = work?.running ?? run.running ?? 0;\n const canceled = work?.canceled ?? run.canceled ?? 0;\n const unstarted = work?.unstarted ?? 0;\n return {\n total, completed, failed, running, canceled, unstarted,\n done: completed + failed,\n label: `${completed + failed}/${total} done${failed ? `, ${failed} failed` : \"\"}${work?.cached ? `, ${work.cached} cached` : \"\"}${canceled ? `, ${canceled} canceled` : \"\"}${unstarted ? `, ${unstarted} unstarted` : \"\"}`,\n counts: { ok: completed, warn: 0, fail: failed, run: running, canceled, unstarted, pending: Math.max(0, total - completed - failed - running - canceled - unstarted) },\n };\n}\n"],"names":[],"mappings":"AAEO,SAAS,iBAAiB,KAAiC;AAChE,QAAM,OAAO,IAAI;AACjB,QAAM,SAAQ,6BAAM,UAAS,IAAI,SAAS;AAC1C,QAAM,YAAY,OAAO,KAAK,YAAY,KAAK,SAAS,IAAI,aAAa;AACzE,QAAM,UAAS,6BAAM,WAAU,IAAI,UAAU;AAC7C,QAAM,WAAU,6BAAM,YAAW,IAAI,WAAW;AAChD,QAAM,YAAW,6BAAM,aAAY,IAAI,YAAY;AACnD,QAAM,aAAY,6BAAM,cAAa;AACrC,SAAO;AAAA,IACL;AAAA,IAAO;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAC7C,MAAM,YAAY;AAAA,IAClB,OAAO,GAAG,YAAY,MAAM,IAAI,KAAK,QAAQ,SAAS,KAAK,MAAM,YAAY,EAAE,IAAG,6BAAM,UAAS,KAAK,KAAK,MAAM,YAAY,EAAE,GAAG,WAAW,KAAK,QAAQ,cAAc,EAAE,GAAG,YAAY,KAAK,SAAS,eAAe,EAAE;AAAA,IACxN,QAAQ,EAAE,IAAI,WAAW,MAAM,GAAG,MAAM,QAAQ,KAAK,SAAS,UAAU,WAAW,SAAS,KAAK,IAAI,GAAG,QAAQ,YAAY,SAAS,UAAU,WAAW,SAAS,EAAA;AAAA,EAAE;AAEzK;"}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from '../../../../../node_modules/@types/react/index.d.ts';
1
+ import { ReactNode } from 'react';
2
2
  import { RunMeta, SnapshotStatus, Test } from './types';
3
3
  import { TestFilters } from './filterState';
4
4
  import { TestNodeAdapter, TestNodeAdapterRegistry } from './adapter';
@@ -1,4 +1,4 @@
1
- import { ReactNode } from '../../../../../node_modules/@types/react/index.d.ts';
1
+ import { ReactNode } from 'react';
2
2
  import { Test } from './types';
3
3
  import { TestRunnerContext } from './context';
4
4
  export type AdapterContext = {
@@ -42,6 +42,6 @@ export type TestRunnerContext = {
42
42
  /** Node adapters driving domain-specific rendering. */
43
43
  adapters: TestNodeAdapterRegistry;
44
44
  };
45
- export declare const TestRunnerProvider: import('../../../../../node_modules/@types/react/index.d.ts').Provider<TestRunnerContext | null>;
45
+ export declare const TestRunnerProvider: import('react').Provider<TestRunnerContext | null>;
46
46
  export declare function useTestRunner(): TestRunnerContext;
47
47
  //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const reactVirtual = require("@tanstack/react-virtual");
5
+ const DEFAULT_OVERSCAN = 8;
6
+ const DEFAULT_ESTIMATE_ROW_HEIGHT = 40;
7
+ function resolveVirtualizeOptions(virtualize) {
8
+ if (!virtualize) return null;
9
+ const opts = typeof virtualize === "object" ? virtualize : {};
10
+ return {
11
+ overscan: opts.overscan ?? DEFAULT_OVERSCAN,
12
+ estimateRowHeight: opts.estimateRowHeight ?? DEFAULT_ESTIMATE_ROW_HEIGHT
13
+ };
14
+ }
15
+ function spacerHeights(items, totalSize, scrollMargin) {
16
+ const first = items[0];
17
+ const last = items[items.length - 1];
18
+ if (!first || !last) return { top: 0, bottom: 0 };
19
+ return {
20
+ top: Math.max(0, first.start - scrollMargin),
21
+ bottom: Math.max(0, totalSize - (last.end - scrollMargin))
22
+ };
23
+ }
24
+ function useDataTableVirtual({
25
+ count,
26
+ options,
27
+ getItemKey
28
+ }) {
29
+ const [scrollEl, setScrollEl] = react.useState(null);
30
+ const [tbodyEl, setTbodyEl] = react.useState(null);
31
+ const [scrollMargin, setScrollMargin] = react.useState(0);
32
+ react.useEffect(() => {
33
+ if (!options || !tbodyEl) return;
34
+ const measure = () => setScrollMargin(tbodyEl.offsetTop);
35
+ measure();
36
+ if (typeof ResizeObserver === "undefined") return;
37
+ const observer = new ResizeObserver(measure);
38
+ if (tbodyEl.parentElement) observer.observe(tbodyEl.parentElement);
39
+ return () => observer.disconnect();
40
+ }, [options, tbodyEl]);
41
+ const estimateSize = react.useCallback(
42
+ () => (options == null ? void 0 : options.estimateRowHeight) ?? DEFAULT_ESTIMATE_ROW_HEIGHT,
43
+ [options == null ? void 0 : options.estimateRowHeight]
44
+ );
45
+ const virtualizer = reactVirtual.useVirtualizer({
46
+ count: options ? count : 0,
47
+ getScrollElement: () => scrollEl,
48
+ estimateSize,
49
+ overscan: (options == null ? void 0 : options.overscan) ?? DEFAULT_OVERSCAN,
50
+ getItemKey,
51
+ scrollMargin
52
+ });
53
+ const virtualItems = options ? virtualizer.getVirtualItems() : [];
54
+ const spacers = react.useMemo(
55
+ () => spacerHeights(virtualItems, virtualizer.getTotalSize(), scrollMargin),
56
+ // getTotalSize() is derived from the measurement cache, which the
57
+ // virtualizer mutates; virtualItems changing is the signal that it moved.
58
+ // eslint-disable-next-line react-hooks/exhaustive-deps
59
+ [virtualItems, scrollMargin]
60
+ );
61
+ return {
62
+ enabled: !!options,
63
+ setScrollEl,
64
+ setTbodyEl,
65
+ virtualizer,
66
+ virtualItems,
67
+ spacers
68
+ };
69
+ }
70
+ exports.resolveVirtualizeOptions = resolveVirtualizeOptions;
71
+ exports.spacerHeights = spacerHeights;
72
+ exports.useDataTableVirtual = useDataTableVirtual;
73
+ //# sourceMappingURL=use-data-table-virtual.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-data-table-virtual.cjs","sources":["../../src/data/use-data-table-virtual.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\n// Row virtualization for DataTable. A table of a few thousand rows costs tens of\n// thousands of DOM nodes (measured at ~48 per row on a real dashboard), which is\n// enough to stall first paint and make every subsequent re-render expensive.\n// Virtualizing keeps only the rows near the viewport in the DOM and represents\n// the rest with two spacer rows.\n//\n// This replaces an earlier `clientReveal` batch window, which kept a\n// `visibleCount` in component state and reset it whenever the `data` array\n// changed identity — so a parent that rebuilt its rows array (even with\n// identical contents) threw away everything the reader had scrolled to. There is\n// deliberately no window state here: scroll offset lives in the DOM and row\n// measurements are keyed by row id, so a same-content-new-identity array is a\n// no-op.\n//\n// Row heights are measured rather than assumed. Cells are `align-top` with\n// density padding and arbitrary caller-rendered content, so a fixed row height\n// would be wrong for any table with wrapping cells.\n\n/** Resolved form of the `virtualize` prop. */\nexport interface VirtualizeOptions {\n overscan: number;\n estimateRowHeight: number;\n}\n\n// Overscan is deliberately higher than the virtualizer's default of 5: a row\n// carrying wrapped text or a tag list can be several times the estimate, so a\n// tight window shows gaps while fast-scrolling.\nconst DEFAULT_OVERSCAN = 8;\n// A comfortable-density single-line row. Only the starting guess — every\n// rendered row is measured and the estimate stops mattering once it has been.\nconst DEFAULT_ESTIMATE_ROW_HEIGHT = 40;\n\nexport function resolveVirtualizeOptions(\n virtualize: boolean | Partial<VirtualizeOptions> | undefined,\n): VirtualizeOptions | null {\n if (!virtualize) return null;\n const opts = typeof virtualize === \"object\" ? virtualize : {};\n return {\n overscan: opts.overscan ?? DEFAULT_OVERSCAN,\n estimateRowHeight: opts.estimateRowHeight ?? DEFAULT_ESTIMATE_ROW_HEIGHT,\n };\n}\n\n/** Heights of the spacer rows that stand in for the rows outside the window.\n * `scrollMargin` is the distance from the scroll container's top to the first\n * virtualized row — the sticky `<thead>` occupies real layout space, so\n * without subtracting it every offset is shifted by the header's height. */\nexport function spacerHeights(\n items: readonly { start: number; end: number }[],\n totalSize: number,\n scrollMargin: number,\n): { top: number; bottom: number } {\n const first = items[0];\n const last = items[items.length - 1];\n if (!first || !last) return { top: 0, bottom: 0 };\n return {\n top: Math.max(0, first.start - scrollMargin),\n bottom: Math.max(0, totalSize - (last.end - scrollMargin)),\n };\n}\n\n/**\n * Wires a virtualizer to DataTable's own scroll container.\n *\n * The scroll element is tracked in state rather than a ref because\n * `getScrollElement` is read during render, before a ref would be attached, and\n * nothing would re-run the virtualizer once it was.\n */\nexport function useDataTableVirtual({\n count,\n options,\n getItemKey,\n}: {\n count: number;\n options: VirtualizeOptions | null;\n getItemKey: (index: number) => string;\n}) {\n const [scrollEl, setScrollEl] = useState<HTMLDivElement | null>(null);\n const [tbodyEl, setTbodyEl] = useState<HTMLTableSectionElement | null>(null);\n const [scrollMargin, setScrollMargin] = useState(0);\n\n // The sticky header sits inside the scroll container, so the first row starts\n // below it. Re-measure when the header can change height: density switches and\n // a filter bar that wraps at narrow widths both move it.\n useEffect(() => {\n if (!options || !tbodyEl) return;\n const measure = () => setScrollMargin(tbodyEl.offsetTop);\n measure();\n if (typeof ResizeObserver === \"undefined\") return;\n const observer = new ResizeObserver(measure);\n if (tbodyEl.parentElement) observer.observe(tbodyEl.parentElement);\n return () => observer.disconnect();\n }, [options, tbodyEl]);\n\n const estimateSize = useCallback(\n () => options?.estimateRowHeight ?? DEFAULT_ESTIMATE_ROW_HEIGHT,\n [options?.estimateRowHeight],\n );\n\n const virtualizer = useVirtualizer({\n count: options ? count : 0,\n getScrollElement: () => scrollEl,\n estimateSize,\n overscan: options?.overscan ?? DEFAULT_OVERSCAN,\n getItemKey,\n scrollMargin,\n });\n\n const virtualItems = options ? virtualizer.getVirtualItems() : [];\n const spacers = useMemo(\n () => spacerHeights(virtualItems, virtualizer.getTotalSize(), scrollMargin),\n // getTotalSize() is derived from the measurement cache, which the\n // virtualizer mutates; virtualItems changing is the signal that it moved.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [virtualItems, scrollMargin],\n );\n\n return {\n enabled: !!options,\n setScrollEl,\n setTbodyEl,\n virtualizer,\n virtualItems,\n spacers,\n };\n}\n"],"names":["useState","useEffect","useCallback","useVirtualizer","useMemo"],"mappings":";;;;AA8BA,MAAM,mBAAmB;AAGzB,MAAM,8BAA8B;AAE7B,SAAS,yBACd,YAC0B;AAC1B,MAAI,CAAC,WAAY,QAAO;AACxB,QAAM,OAAO,OAAO,eAAe,WAAW,aAAa,CAAA;AAC3D,SAAO;AAAA,IACL,UAAU,KAAK,YAAY;AAAA,IAC3B,mBAAmB,KAAK,qBAAqB;AAAA,EAAA;AAEjD;AAMO,SAAS,cACd,OACA,WACA,cACiC;AACjC,QAAM,QAAQ,MAAM,CAAC;AACrB,QAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,MAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,GAAG,QAAQ,EAAA;AAC9C,SAAO;AAAA,IACL,KAAK,KAAK,IAAI,GAAG,MAAM,QAAQ,YAAY;AAAA,IAC3C,QAAQ,KAAK,IAAI,GAAG,aAAa,KAAK,MAAM,aAAa;AAAA,EAAA;AAE7D;AASO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAAgC,IAAI;AACpE,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAyC,IAAI;AAC3E,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAAS,CAAC;AAKlDC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,UAAM,UAAU,MAAM,gBAAgB,QAAQ,SAAS;AACvD,YAAA;AACA,QAAI,OAAO,mBAAmB,YAAa;AAC3C,UAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,QAAI,QAAQ,cAAe,UAAS,QAAQ,QAAQ,aAAa;AACjE,WAAO,MAAM,SAAS,WAAA;AAAA,EACxB,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,QAAM,eAAeC,MAAAA;AAAAA,IACnB,OAAM,mCAAS,sBAAqB;AAAA,IACpC,CAAC,mCAAS,iBAAiB;AAAA,EAAA;AAG7B,QAAM,cAAcC,aAAAA,eAAe;AAAA,IACjC,OAAO,UAAU,QAAQ;AAAA,IACzB,kBAAkB,MAAM;AAAA,IACxB;AAAA,IACA,WAAU,mCAAS,aAAY;AAAA,IAC/B;AAAA,IACA;AAAA,EAAA,CACD;AAED,QAAM,eAAe,UAAU,YAAY,gBAAA,IAAoB,CAAA;AAC/D,QAAM,UAAUC,MAAAA;AAAAA,IACd,MAAM,cAAc,cAAc,YAAY,aAAA,GAAgB,YAAY;AAAA;AAAA;AAAA;AAAA,IAI1E,CAAC,cAAc,YAAY;AAAA,EAAA;AAG7B,SAAO;AAAA,IACL,SAAS,CAAC,CAAC;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;;;;"}
@@ -0,0 +1,40 @@
1
+ /** Resolved form of the `virtualize` prop. */
2
+ export interface VirtualizeOptions {
3
+ overscan: number;
4
+ estimateRowHeight: number;
5
+ }
6
+ export declare function resolveVirtualizeOptions(virtualize: boolean | Partial<VirtualizeOptions> | undefined): VirtualizeOptions | null;
7
+ /** Heights of the spacer rows that stand in for the rows outside the window.
8
+ * `scrollMargin` is the distance from the scroll container's top to the first
9
+ * virtualized row — the sticky `<thead>` occupies real layout space, so
10
+ * without subtracting it every offset is shifted by the header's height. */
11
+ export declare function spacerHeights(items: readonly {
12
+ start: number;
13
+ end: number;
14
+ }[], totalSize: number, scrollMargin: number): {
15
+ top: number;
16
+ bottom: number;
17
+ };
18
+ /**
19
+ * Wires a virtualizer to DataTable's own scroll container.
20
+ *
21
+ * The scroll element is tracked in state rather than a ref because
22
+ * `getScrollElement` is read during render, before a ref would be attached, and
23
+ * nothing would re-run the virtualizer once it was.
24
+ */
25
+ export declare function useDataTableVirtual({ count, options, getItemKey, }: {
26
+ count: number;
27
+ options: VirtualizeOptions | null;
28
+ getItemKey: (index: number) => string;
29
+ }): {
30
+ enabled: boolean;
31
+ setScrollEl: import('react').Dispatch<import('react').SetStateAction<HTMLDivElement | null>>;
32
+ setTbodyEl: import('react').Dispatch<import('react').SetStateAction<HTMLTableSectionElement | null>>;
33
+ virtualizer: import('@tanstack/react-virtual').ReactVirtualizer<HTMLDivElement, Element>;
34
+ virtualItems: import('@tanstack/react-virtual').VirtualItem[];
35
+ spacers: {
36
+ top: number;
37
+ bottom: number;
38
+ };
39
+ };
40
+ //# sourceMappingURL=use-data-table-virtual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-data-table-virtual.d.ts","sourceRoot":"","sources":["../../src/data/use-data-table-virtual.ts"],"names":[],"mappings":"AAqBA,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAUD,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,iBAAiB,GAAG,IAAI,CAO1B;AAED;;;6EAG6E;AAC7E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EAChD,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQjC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,GACX,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;;;;;;;aAzBS,MAAM;gBAAU,MAAM;;EA0E/B"}
@@ -0,0 +1,73 @@
1
+ import { useState, useEffect, useCallback, useMemo } from "react";
2
+ import { useVirtualizer } from "@tanstack/react-virtual";
3
+ const DEFAULT_OVERSCAN = 8;
4
+ const DEFAULT_ESTIMATE_ROW_HEIGHT = 40;
5
+ function resolveVirtualizeOptions(virtualize) {
6
+ if (!virtualize) return null;
7
+ const opts = typeof virtualize === "object" ? virtualize : {};
8
+ return {
9
+ overscan: opts.overscan ?? DEFAULT_OVERSCAN,
10
+ estimateRowHeight: opts.estimateRowHeight ?? DEFAULT_ESTIMATE_ROW_HEIGHT
11
+ };
12
+ }
13
+ function spacerHeights(items, totalSize, scrollMargin) {
14
+ const first = items[0];
15
+ const last = items[items.length - 1];
16
+ if (!first || !last) return { top: 0, bottom: 0 };
17
+ return {
18
+ top: Math.max(0, first.start - scrollMargin),
19
+ bottom: Math.max(0, totalSize - (last.end - scrollMargin))
20
+ };
21
+ }
22
+ function useDataTableVirtual({
23
+ count,
24
+ options,
25
+ getItemKey
26
+ }) {
27
+ const [scrollEl, setScrollEl] = useState(null);
28
+ const [tbodyEl, setTbodyEl] = useState(null);
29
+ const [scrollMargin, setScrollMargin] = useState(0);
30
+ useEffect(() => {
31
+ if (!options || !tbodyEl) return;
32
+ const measure = () => setScrollMargin(tbodyEl.offsetTop);
33
+ measure();
34
+ if (typeof ResizeObserver === "undefined") return;
35
+ const observer = new ResizeObserver(measure);
36
+ if (tbodyEl.parentElement) observer.observe(tbodyEl.parentElement);
37
+ return () => observer.disconnect();
38
+ }, [options, tbodyEl]);
39
+ const estimateSize = useCallback(
40
+ () => (options == null ? void 0 : options.estimateRowHeight) ?? DEFAULT_ESTIMATE_ROW_HEIGHT,
41
+ [options == null ? void 0 : options.estimateRowHeight]
42
+ );
43
+ const virtualizer = useVirtualizer({
44
+ count: options ? count : 0,
45
+ getScrollElement: () => scrollEl,
46
+ estimateSize,
47
+ overscan: (options == null ? void 0 : options.overscan) ?? DEFAULT_OVERSCAN,
48
+ getItemKey,
49
+ scrollMargin
50
+ });
51
+ const virtualItems = options ? virtualizer.getVirtualItems() : [];
52
+ const spacers = useMemo(
53
+ () => spacerHeights(virtualItems, virtualizer.getTotalSize(), scrollMargin),
54
+ // getTotalSize() is derived from the measurement cache, which the
55
+ // virtualizer mutates; virtualItems changing is the signal that it moved.
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ [virtualItems, scrollMargin]
58
+ );
59
+ return {
60
+ enabled: !!options,
61
+ setScrollEl,
62
+ setTbodyEl,
63
+ virtualizer,
64
+ virtualItems,
65
+ spacers
66
+ };
67
+ }
68
+ export {
69
+ resolveVirtualizeOptions,
70
+ spacerHeights,
71
+ useDataTableVirtual
72
+ };
73
+ //# sourceMappingURL=use-data-table-virtual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-data-table-virtual.js","sources":["../../src/data/use-data-table-virtual.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\n// Row virtualization for DataTable. A table of a few thousand rows costs tens of\n// thousands of DOM nodes (measured at ~48 per row on a real dashboard), which is\n// enough to stall first paint and make every subsequent re-render expensive.\n// Virtualizing keeps only the rows near the viewport in the DOM and represents\n// the rest with two spacer rows.\n//\n// This replaces an earlier `clientReveal` batch window, which kept a\n// `visibleCount` in component state and reset it whenever the `data` array\n// changed identity — so a parent that rebuilt its rows array (even with\n// identical contents) threw away everything the reader had scrolled to. There is\n// deliberately no window state here: scroll offset lives in the DOM and row\n// measurements are keyed by row id, so a same-content-new-identity array is a\n// no-op.\n//\n// Row heights are measured rather than assumed. Cells are `align-top` with\n// density padding and arbitrary caller-rendered content, so a fixed row height\n// would be wrong for any table with wrapping cells.\n\n/** Resolved form of the `virtualize` prop. */\nexport interface VirtualizeOptions {\n overscan: number;\n estimateRowHeight: number;\n}\n\n// Overscan is deliberately higher than the virtualizer's default of 5: a row\n// carrying wrapped text or a tag list can be several times the estimate, so a\n// tight window shows gaps while fast-scrolling.\nconst DEFAULT_OVERSCAN = 8;\n// A comfortable-density single-line row. Only the starting guess — every\n// rendered row is measured and the estimate stops mattering once it has been.\nconst DEFAULT_ESTIMATE_ROW_HEIGHT = 40;\n\nexport function resolveVirtualizeOptions(\n virtualize: boolean | Partial<VirtualizeOptions> | undefined,\n): VirtualizeOptions | null {\n if (!virtualize) return null;\n const opts = typeof virtualize === \"object\" ? virtualize : {};\n return {\n overscan: opts.overscan ?? DEFAULT_OVERSCAN,\n estimateRowHeight: opts.estimateRowHeight ?? DEFAULT_ESTIMATE_ROW_HEIGHT,\n };\n}\n\n/** Heights of the spacer rows that stand in for the rows outside the window.\n * `scrollMargin` is the distance from the scroll container's top to the first\n * virtualized row — the sticky `<thead>` occupies real layout space, so\n * without subtracting it every offset is shifted by the header's height. */\nexport function spacerHeights(\n items: readonly { start: number; end: number }[],\n totalSize: number,\n scrollMargin: number,\n): { top: number; bottom: number } {\n const first = items[0];\n const last = items[items.length - 1];\n if (!first || !last) return { top: 0, bottom: 0 };\n return {\n top: Math.max(0, first.start - scrollMargin),\n bottom: Math.max(0, totalSize - (last.end - scrollMargin)),\n };\n}\n\n/**\n * Wires a virtualizer to DataTable's own scroll container.\n *\n * The scroll element is tracked in state rather than a ref because\n * `getScrollElement` is read during render, before a ref would be attached, and\n * nothing would re-run the virtualizer once it was.\n */\nexport function useDataTableVirtual({\n count,\n options,\n getItemKey,\n}: {\n count: number;\n options: VirtualizeOptions | null;\n getItemKey: (index: number) => string;\n}) {\n const [scrollEl, setScrollEl] = useState<HTMLDivElement | null>(null);\n const [tbodyEl, setTbodyEl] = useState<HTMLTableSectionElement | null>(null);\n const [scrollMargin, setScrollMargin] = useState(0);\n\n // The sticky header sits inside the scroll container, so the first row starts\n // below it. Re-measure when the header can change height: density switches and\n // a filter bar that wraps at narrow widths both move it.\n useEffect(() => {\n if (!options || !tbodyEl) return;\n const measure = () => setScrollMargin(tbodyEl.offsetTop);\n measure();\n if (typeof ResizeObserver === \"undefined\") return;\n const observer = new ResizeObserver(measure);\n if (tbodyEl.parentElement) observer.observe(tbodyEl.parentElement);\n return () => observer.disconnect();\n }, [options, tbodyEl]);\n\n const estimateSize = useCallback(\n () => options?.estimateRowHeight ?? DEFAULT_ESTIMATE_ROW_HEIGHT,\n [options?.estimateRowHeight],\n );\n\n const virtualizer = useVirtualizer({\n count: options ? count : 0,\n getScrollElement: () => scrollEl,\n estimateSize,\n overscan: options?.overscan ?? DEFAULT_OVERSCAN,\n getItemKey,\n scrollMargin,\n });\n\n const virtualItems = options ? virtualizer.getVirtualItems() : [];\n const spacers = useMemo(\n () => spacerHeights(virtualItems, virtualizer.getTotalSize(), scrollMargin),\n // getTotalSize() is derived from the measurement cache, which the\n // virtualizer mutates; virtualItems changing is the signal that it moved.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [virtualItems, scrollMargin],\n );\n\n return {\n enabled: !!options,\n setScrollEl,\n setTbodyEl,\n virtualizer,\n virtualItems,\n spacers,\n };\n}\n"],"names":[],"mappings":";;AA8BA,MAAM,mBAAmB;AAGzB,MAAM,8BAA8B;AAE7B,SAAS,yBACd,YAC0B;AAC1B,MAAI,CAAC,WAAY,QAAO;AACxB,QAAM,OAAO,OAAO,eAAe,WAAW,aAAa,CAAA;AAC3D,SAAO;AAAA,IACL,UAAU,KAAK,YAAY;AAAA,IAC3B,mBAAmB,KAAK,qBAAqB;AAAA,EAAA;AAEjD;AAMO,SAAS,cACd,OACA,WACA,cACiC;AACjC,QAAM,QAAQ,MAAM,CAAC;AACrB,QAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,MAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,GAAG,QAAQ,EAAA;AAC9C,SAAO;AAAA,IACL,KAAK,KAAK,IAAI,GAAG,MAAM,QAAQ,YAAY;AAAA,IAC3C,QAAQ,KAAK,IAAI,GAAG,aAAa,KAAK,MAAM,aAAa;AAAA,EAAA;AAE7D;AASO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAgC,IAAI;AACpE,QAAM,CAAC,SAAS,UAAU,IAAI,SAAyC,IAAI;AAC3E,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,CAAC;AAKlD,YAAU,MAAM;AACd,QAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,UAAM,UAAU,MAAM,gBAAgB,QAAQ,SAAS;AACvD,YAAA;AACA,QAAI,OAAO,mBAAmB,YAAa;AAC3C,UAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,QAAI,QAAQ,cAAe,UAAS,QAAQ,QAAQ,aAAa;AACjE,WAAO,MAAM,SAAS,WAAA;AAAA,EACxB,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,QAAM,eAAe;AAAA,IACnB,OAAM,mCAAS,sBAAqB;AAAA,IACpC,CAAC,mCAAS,iBAAiB;AAAA,EAAA;AAG7B,QAAM,cAAc,eAAe;AAAA,IACjC,OAAO,UAAU,QAAQ;AAAA,IACzB,kBAAkB,MAAM;AAAA,IACxB;AAAA,IACA,WAAU,mCAAS,aAAY;AAAA,IAC/B;AAAA,IACA;AAAA,EAAA,CACD;AAED,QAAM,eAAe,UAAU,YAAY,gBAAA,IAAoB,CAAA;AAC/D,QAAM,UAAU;AAAA,IACd,MAAM,cAAc,cAAc,YAAY,aAAA,GAAgB,YAAY;AAAA;AAAA;AAAA;AAAA,IAI1E,CAAC,cAAc,YAAY;AAAA,EAAA;AAG7B,SAAO;AAAA,IACL,SAAS,CAAC,CAAC;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from '../../../../../node_modules/@types/react/index.d.ts';
1
+ import { ReactNode } from 'react';
2
2
  import { Test, TestFilters, TestNodeAdapterRegistry } from '../test-runner';
3
3
  import { VerifyReport } from './verify-report';
4
4
  export type VerificationResultsProps = {
@@ -15,9 +15,9 @@ function detectMode() {
15
15
  }
16
16
  function getVersionInfo() {
17
17
  return {
18
- commit: read(() => "d2375b04", ""),
19
- tag: read(() => "clicky-ui@0.3.32", ""),
20
- date: read(() => "2026-09-03T18:35:20.634Z", ""),
18
+ commit: read(() => "db149da3", ""),
19
+ tag: read(() => "clicky-ui@0.3.34", ""),
20
+ date: read(() => "2026-09-08T19:28:58.240Z", ""),
21
21
  dirty: read(() => true, false),
22
22
  mode: detectMode()
23
23
  };
@@ -13,9 +13,9 @@ function detectMode() {
13
13
  }
14
14
  function getVersionInfo() {
15
15
  return {
16
- commit: read(() => "d2375b04", ""),
17
- tag: read(() => "clicky-ui@0.3.32", ""),
18
- date: read(() => "2026-09-03T18:34:50.732Z", ""),
16
+ commit: read(() => "db149da3", ""),
17
+ tag: read(() => "clicky-ui@0.3.34", ""),
18
+ date: read(() => "2026-09-08T19:28:25.266Z", ""),
19
19
  dirty: read(() => true, false),
20
20
  mode: detectMode()
21
21
  };